/* Final layer: buttons that fit their text, one size scale everywhere, text that never runs over its neighbour.
   Loaded last on purpose, so it wins over the older style layers. */
.btn{height:auto;min-height:46px;padding:10px 18px;line-height:1.2;white-space:normal;text-align:center;overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}
.btn.sm{min-height:36px;padding:7px 13px;font-size:13px}
.btn.block{width:100%}
.btn svg{flex:none}
.btn.loading{min-height:46px}
.seg button,.chip,.curtog button{white-space:nowrap}
.seg button{height:auto;min-height:36px;padding:6px 8px;line-height:1.2;min-width:0}
.gap{flex-wrap:wrap;align-items:stretch}.gap>*{min-width:0}.gap>.btn{flex:1 1 130px}
.card .gap,.sheet .gap{row-gap:8px}
.card>.btn,.card .btn.block{margin-top:0}
.kv{align-items:flex-start;flex-wrap:wrap}.kv>span:first-child{flex:0 1 auto}.kv>span:last-child,.kv>b{margin-left:auto;text-align:right;min-width:0;overflow-wrap:anywhere}
.row .grow{min-width:0}.row .grow b,.row .grow small{overflow-wrap:anywhere}
.card b,.card small,.card p{overflow-wrap:anywhere}
.sheet h2,.page-title h1,.card h2,.card h3{overflow-wrap:anywhere}
.field>label{display:block;line-height:1.3}
.table td,.table th{overflow-wrap:anywhere}
.tabbar .tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.chips{align-items:center}.chip{max-width:78vw;overflow:hidden;text-overflow:ellipsis}
.input,select.input,textarea.input{max-width:100%;box-sizing:border-box}textarea.input{height:auto;padding:12px 14px;line-height:1.4}
/* admin panel */
#ag .chip{flex:none}
.card .gs-btnrow,.card .acts,.card .arow{display:flex;flex-wrap:wrap;gap:8px}
.card .gs-btnrow>.btn,.card .acts>.btn{flex:1 1 120px}
.sw2row{gap:12px;align-items:center}.sw2row>span:first-child{min-width:0;overflow-wrap:anywhere;flex:1}
.nft .nm{min-width:0}.nft .meta{min-width:0}
.banner>div{min-width:0;overflow-wrap:anywhere}
.toast{max-width:min(92vw,420px);overflow-wrap:anywhere}

/* ===== Admin main groups (Home / Money / Store / People / Wallets / Setup): real gaps, 3 per row, never glued together ===== */
#ag{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px!important;padding:8px!important;margin:0!important;overflow:visible!important;border-radius:16px}
#ag .chip{flex:none!important;width:100%;min-width:0;height:40px!important;padding:0 8px!important;justify-content:center;border-radius:12px!important;font-size:14px!important;max-width:none!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.07)!important}
#ag .chip.on{background:#fff!important;color:#000!important;border-color:#fff!important;font-weight:700}
@media (min-width:640px){#ag{grid-template-columns:repeat(6,minmax(0,1fr))}}
/* second row (sub tabs): wraps instead of running off the screen, with space between buttons */
#at{display:flex!important;flex-wrap:wrap!important;gap:8px!important;overflow:visible!important;margin:12px 0 0!important;padding:0!important}
#at .chip.sub{flex:0 1 auto!important;max-width:100%!important;height:36px!important;padding:0 14px!important}
#ab{margin-top:14px}
#ab .card{margin-bottom:12px}
#ab .card+.card{margin-top:12px}
#ab .btn{margin-top:6px}
#ab .gap,#ab .acts,#ab .arow{gap:10px!important}
#ab .row{gap:12px}
#ab .field{margin-bottom:12px}
#ab .stat{gap:10px}
