:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e8edf6;background:#090d14;--panel:#101722;--panel2:#151e2b;--muted:#8491a6;--line:#222d3c;--accent:#70e1b2;--danger:#ff7b86}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 75% -10%,#15362d 0,transparent 30%),#090d14;color:#e8edf6}button,input,select{font:inherit}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{padding:26px 18px;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;background:#0b1018}.brand{font-size:18px;font-weight:800;letter-spacing:-.4px;margin:0 10px 32px}.brand b{color:var(--accent)}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:var(--muted);text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer}.nav button.active,.nav button:hover{background:var(--panel2);color:white}.main{padding:32px;max-width:1500px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:28px}.title h1{font-size:26px;margin:0 0 5px}.muted{color:var(--muted)}.btn{border:1px solid var(--line);background:var(--panel2);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer}.btn.primary{background:var(--accent);color:#07130e;border-color:transparent;font-weight:700}.btn.danger{color:var(--danger)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card,.panel{background:linear-gradient(180deg,#111925,#0e151f);border:1px solid var(--line);border-radius:16px}.card{padding:20px}.kicker{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.value{font-size:26px;font-weight:750;margin-top:8px;letter-spacing:-.5px}.grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.panel{padding:20px}.panel h3{margin:0 0 18px;font-size:15px}.bar{height:10px;background:#1b2533;border-radius:999px;overflow:hidden;margin:10px 0 20px}.bar i{height:100%;display:block;background:var(--accent)}table{width:100%;border-collapse:collapse}th,td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-size:11px;text-transform:uppercase}td.num,th.num{text-align:right}.empty{padding:36px;text-align:center;color:var(--muted)}.row{display:flex;gap:10px;align-items:center}.between{justify-content:space-between}.settings{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form{display:grid;gap:10px}.form input,.form select{width:100%;background:#0b111a;border:1px solid var(--line);color:#fff;padding:11px 12px;border-radius:10px}.item{padding:14px 0;border-bottom:1px solid var(--line)}.item:last-child{border:0}.badge{padding:4px 8px;border-radius:999px;background:#182333;color:var(--muted);font-size:11px}.badge.ok{color:var(--accent)}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.loginbox{width:min(440px,100%);padding:34px;background:var(--panel);border:1px solid var(--line);border-radius:20px}.loginbox h1{font-size:28px;margin:0 0 10px}.loginbox p{color:var(--muted);line-height:1.55}.loginbox .btn{width:100%;margin-top:15px}.notice{margin-top:14px;color:var(--muted);font-size:12px;line-height:1.5}.error{color:var(--danger);white-space:pre-wrap}.assetdot{width:28px;height:28px;border-radius:50%;background:#1b2b35;display:inline-grid;place-items:center;font-size:10px;font-weight:800;margin-right:8px}@media(max-width:900px){.shell{display:block}.sidebar{display:none}.main{padding:14px 14px 40px}.title{flex:1 1 auto;min-width:0;width:100%}.cards{grid-template-columns:1fr 1fr}.grid2,.settings{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.top .row{width:100%}.value{font-size:22px}}@media(max-width:520px){.cards{grid-template-columns:1fr}.top .btn{flex:1}th.hide-sm,td.hide-sm{display:none}}
.logomark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#5ba8ff);color:#07130e;font-size:12px;font-weight:900;letter-spacing:-1px}.brand{display:flex;align-items:center;gap:10px;line-height:1.05}.brand b{font-weight:800}.domain{position:absolute;bottom:24px;left:28px;color:var(--muted);font-size:11px}.sidebar{position:sticky}.tokenIcon{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;vertical-align:middle;margin-right:9px;background:#1b2533;overflow:hidden}.tokenIcon img{width:100%;height:100%;object-fit:cover}.tokenIcon.fallback{font-size:8px;font-weight:800;color:#dce6f4}.sortable{cursor:pointer;user-select:none}.sortable:hover{color:#fff}.clickrow{cursor:pointer}.clickrow:hover{background:#131d29}.detailrow td{padding:0 8px 14px}.detail{background:#0a111a;border:1px solid var(--line);border-radius:12px;padding:10px 14px}.detail>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line)}.detail>div:last-child{border:0}.sourceToggle{width:100%;display:flex;justify-content:space-between;padding:13px;background:#0b111a;border:1px solid var(--line);color:#fff;border-radius:10px;cursor:pointer}.sectionTitle{margin-top:28px!important}.mini{margin-bottom:14px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.btn.selected{border-color:var(--accent);color:var(--accent)}.tree>details{border-bottom:1px solid var(--line)}.tree details:last-child{border:0}.tree summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 6px;cursor:pointer}.tree details details{margin-left:24px;border-top:1px solid #192433}.treeRow{display:grid;grid-template-columns:1fr minmax(100px,auto) minmax(120px,auto);gap:20px;padding:10px 12px 10px 34px;color:var(--muted)}.treeRow b,.treeRow>span:nth-child(2){text-align:right;color:#e8edf6}.group{margin-bottom:14px}.risk{background:rgba(255,123,134,.07)}.security{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border:1px solid #33513f;background:#0e1b16;border-radius:14px;margin-bottom:14px}.security b{color:var(--accent)}.security span{color:#b8c6bd;line-height:1.5}.fieldLabel{font-size:12px;color:var(--muted)}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;background:#0b111a;border:1px solid var(--line);border-radius:10px}.checks label{font-size:13px}.checks input{width:auto}.steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:11px;color:var(--muted)}.steps>*{padding:6px 8px;background:#0b111a;border-radius:7px}.warning{padding:11px;border-radius:9px;background:#2a2012;color:#ffc875;font-size:12px}.tablewrap{overflow-x:auto}.settings{align-items:start}@media(max-width:900px){.domain{display:none}.tablewrap table{min-width:700px}.treeRow{grid-template-columns:1fr auto}.treeRow b{grid-column:2}.security{flex-direction:column}.checks{grid-template-columns:1fr}}
.chartPanel{margin-top:14px}.chart{height:210px}.chartHead,.chartFoot{display:flex;justify-content:space-between;gap:12px}.chartHead{font-size:13px;color:var(--muted)}.chartHead b{color:#fff}.chart svg{width:100%;height:150px;margin-top:10px}.chart polyline{stroke:var(--accent);stroke-width:2}.chartFoot{font-size:10px;color:var(--muted)}.chartEmpty{height:150px;display:grid;place-items:center;color:var(--muted)}
.entityTitle{display:flex;align-items:center;gap:10px}.entityTitle span{display:flex;flex-direction:column}.entityTitle small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.cexIcon,.walletIcon,.chainIcon{width:32px;height:32px;display:inline-grid;place-items:center;border-radius:50%;background:#202b3a;font-weight:900;flex:0 0 auto}.cexIcon.binance{background:#f3ba2f;color:#111}.cexIcon.okx{background:#fff;color:#111}.cexIcon.bybit{background:#f7a600;color:#111}.cexIcon.gate{background:#2cc6a0;color:#08120f}.cexIcon.hyperliquid{background:#8ff0cf;color:#07130e}.sourceLine{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.sourceLine:last-child{border:0}
.chainGrid{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:12px;margin:14px 0}.chainCard{border:1px solid var(--line);background:linear-gradient(180deg,#111925,#0e151f);color:#fff;border-radius:14px;padding:16px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.chainCard:hover{border-color:#3a4a60}.chainIcon{width:42px;height:42px;background:#151e2b;overflow:hidden}.chainIcon img{width:100%;height:100%;object-fit:cover}.chainCard span:last-child{min-width:0;display:grid;grid-template-columns:1fr auto;gap:3px 8px;width:100%}.chainCard b{grid-column:1/-1;color:#aebbd0;font-weight:500}.chainCard strong{font-size:18px}.chainCard small{color:var(--muted);align-self:end}
.riskCard{border-color:#623840}.riskBadge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;white-space:nowrap}.riskBadge.warn{background:rgba(255,123,134,.14);color:#ff9aa3}.riskBadge.ok{background:rgba(112,225,178,.1);color:var(--accent)}.inlineEdit{display:grid;gap:10px;margin-top:14px;padding:14px;background:#0a111a;border:1px solid #344357;border-radius:12px}.inlineEdit input,.inlineEdit select{width:100%;background:#0b111a;border:1px solid var(--line);color:#fff;padding:11px 12px;border-radius:10px}
@media(max-width:1200px){.chainGrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.chainGrid{grid-template-columns:1fr 1fr}.chart{height:180px}.chart svg{height:120px}}@media(max-width:430px){.chainGrid{grid-template-columns:1fr}}
/* V0.5 portfolio allocation language */
.netHero{position:relative;height:220px;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:14px;background:linear-gradient(180deg,#111925,#0e151f)}.netHero svg{position:absolute;inset:0;width:100%;height:100%;opacity:.45}.netHero polyline{stroke:var(--accent);stroke-width:1.5}.netHero.down polyline{stroke:#ff737d}.netHeroContent{position:absolute;left:28px;top:50%;transform:translateY(-50%)}.netHeroLabel{font-size:12px;color:var(--muted);letter-spacing:.1em}.netHeroLine{display:flex;align-items:baseline;gap:16px}.netHeroValue{font-size:46px;font-weight:800;letter-spacing:-1.8px}.netHeroChange{font-size:21px;color:var(--accent)}.netHero.down .netHeroChange{color:#ff737d}.netHeroChange.neutral{font-size:12px;color:var(--muted);margin-top:8px}.allocationPanel{margin-bottom:14px}.sectionHead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.sectionHead h3{margin:0 0 4px}.allocationTotal{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid #344357;border-radius:12px;font-size:15px}.allocationBranches{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.allocationBranch{background:#0a111a;border:1px solid var(--line);border-radius:14px;padding:14px}.branchHead,.allocRow{display:grid;grid-template-columns:32px 1fr minmax(120px,auto) 62px;gap:10px;align-items:center}.branchHead{grid-template-columns:1fr minmax(120px,auto) 62px;padding:3px 4px 12px;border-bottom:1px solid var(--line)}.branchHead span{font-weight:700}.branchHead b,.branchHead em,.allocRow b,.allocRow em{text-align:right}.branchHead em,.allocRow em{font-style:normal;color:var(--muted);font-size:12px}.allocRow{padding:12px 4px;border-bottom:1px solid #182230}.allocRow:last-child{border-bottom:0}.allocNote{padding:10px 4px 4px}.empty.compact{padding:18px}.exchangeHero{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start;padding:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#111925,#0e151f)}.exchangeAccounts{display:grid;gap:0}.exchangeSummary{display:grid;grid-template-columns:38px 1fr minmax(140px,auto) 60px;align-items:center;gap:10px;min-height:62px;padding:8px 10px;border-bottom:1px solid var(--line)}.exchangeSummary:last-child{border-bottom:0}.exchangeSummary span{display:flex;flex-direction:column}.exchangeSummary small{color:var(--muted);margin-top:3px}.exchangeSummary strong,.exchangeSummary em{text-align:right}.exchangeSummary em{font-style:normal;color:var(--muted);font-size:12px}.locationLine{display:grid;grid-template-columns:1fr minmax(140px,auto) 60px;gap:14px;padding:12px 18px 12px 52px;align-items:center}.locationLine b,.locationLine em{text-align:right}.locationLine em{font-style:normal;color:var(--muted);font-size:12px}.editTitle{padding:10px 12px;background:#111b28;border-radius:9px;color:#c7d3e5}.inlineEdit .fieldLabel{display:grid;gap:6px}.inlineEdit .fieldLabel input,.inlineEdit .fieldLabel select{margin-top:0}
@media(max-width:900px){.allocationBranches{grid-template-columns:1fr}.exchangeHero{grid-template-columns:1fr}.netHeroValue{font-size:36px}.netHero{height:190px}.exchangeSummary{grid-template-columns:34px 1fr auto}.exchangeSummary em{display:none}}
@media(max-width:520px){.netHeroContent{left:18px}.netHeroValue{font-size:29px}.netHeroChange{font-size:16px}.allocRow{grid-template-columns:30px 1fr auto}.allocRow em{display:none}.branchHead{grid-template-columns:1fr auto}.branchHead em{display:none}}
/* V0.6: flat summary-first hierarchy */
.metricHero{min-height:150px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#111925,#0d141e);padding:28px;margin-bottom:14px;display:flex;align-items:center}.metricLine{display:flex;align-items:baseline;gap:18px;margin-top:8px}.metricValue{font-size:44px;font-weight:850;letter-spacing:-1.6px}.metricSub{margin-top:10px}.delta{font-size:20px;font-weight:750}.delta.up{color:#70e1b2}.delta.down{color:#ff737d}.delta small{font-size:11px;font-weight:600;color:inherit;opacity:.8}.allocationRoot>.allocationTotal{display:none}.cexIcon{overflow:hidden;background:#fff}.cexIcon img{width:100%;height:100%;object-fit:contain}.cexIcon.fallback{background:#202b3a;color:#fff;font-size:10px}.exchangeList{display:grid;gap:10px}.exchangeAccount{border:1px solid var(--line);border-radius:12px;background:#0a111a;overflow:hidden}.exchangeAccount summary{display:grid;grid-template-columns:38px 1fr minmax(140px,auto) 62px;gap:12px;align-items:center;padding:14px 16px;cursor:pointer}.exchangeAccount summary span{display:flex;flex-direction:column}.exchangeAccount summary small{color:var(--muted);margin-top:3px}.exchangeAccount summary strong,.exchangeAccount summary em{text-align:right}.exchangeAccount summary em{font-style:normal;color:var(--muted);font-size:12px}.push{margin-left:auto}.modalback{position:fixed;inset:0;background:rgba(2,6,12,.72);backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:18px}.walletModal{width:min(480px,100%);background:#101823;border:1px solid #344357;border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.5)}.walletModal h2{margin:0 0 4px}.iconBtn{border:0;background:#1a2431;color:#fff;width:34px;height:34px;border-radius:9px;font-size:22px;cursor:pointer}.walletChoices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.walletChoices button{background:#0b111a;border:1px solid var(--line);color:#fff;border-radius:12px;padding:16px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px}.walletChoices button:hover{border-color:#52647c}.walletChoices span{color:var(--muted);font-size:12px}
@media(max-width:700px){.metricHero{min-height:125px;padding:20px}.metricValue{font-size:32px}.delta{font-size:16px}.exchangeAccount summary{grid-template-columns:34px 1fr auto}.exchangeAccount summary em{display:none}.walletChoices{grid-template-columns:1fr}}
/* V0.8 UX corrections */
.main{margin:0 auto;align-self:start;padding-top:32px}.chainPicker{position:relative}.chainPickerBtn{width:100%;display:flex;justify-content:space-between;align-items:center;background:#0b111a;border:1px solid var(--line);color:#fff;padding:12px 14px;border-radius:10px;cursor:pointer}.chainDrop{margin-top:8px;border:1px solid #344357;background:#0b111a;border-radius:12px;padding:10px}.chainSearch{width:100%;background:#101925!important;border:1px solid var(--line)!important;color:#fff;padding:10px 12px!important;border-radius:9px}.chainOptions{display:grid;grid-template-columns:1fr 1fr;gap:4px;max-height:300px;overflow:auto;margin-top:8px;padding:4px}.chainOptions label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:7px;font-size:13px}.chainOptions label:hover{background:#151e2b}.chainOptions input{width:auto!important}.chainOptions small{color:var(--muted);margin-left:auto}.assetBreakdown{background:#0a111a;border:1px solid #344357;border-radius:12px;padding:12px 14px}.breakHead{display:flex;justify-content:space-between;align-items:center;padding:4px 0 12px;border-bottom:1px solid var(--line)}.breakHead>b{display:flex;align-items:center}.breakRow{display:grid;grid-template-columns:minmax(230px,1fr) 120px 110px 130px;gap:14px;align-items:center;padding:11px 4px;border-bottom:1px solid #182230}.breakRow:last-child{border:0}.breakRow>span:first-child{display:flex;align-items:center;gap:9px}.breakRow>span:first-child>span:last-child{display:flex;flex-direction:column}.breakRow small{color:var(--muted);margin-top:2px}.breakRow>span:not(:first-child),.breakRow>b{text-align:right}.miniIcon{width:28px;height:28px}.priceRules{margin-top:12px}
@media(max-width:700px){.chainOptions{grid-template-columns:1fr}.breakRow{grid-template-columns:1fr auto}.breakRow>span:nth-child(3){display:none}.breakRow>b{grid-column:2}.main{padding-top:18px}}
/* V0.9 allocation alignment + account UX */
.breakHead{display:grid;grid-template-columns:minmax(230px,1fr) 120px 110px 130px;gap:14px;padding:6px 4px 10px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.breakHead span:not(:first-child){text-align:right}.breakRow{grid-template-columns:minmax(230px,1fr) 120px 110px 130px}.breakRow .chainIcon{width:28px;height:28px}.loginAccount{display:flex;flex-direction:column;align-items:flex-end;padding:0 4px}.loginAccount b{font-size:11px;color:var(--accent)}.loginAccount span{font-size:12px;color:var(--muted)}.walletChoices button{display:flex;flex-direction:row;align-items:center;gap:12px}.walletChoices button>span{display:flex;flex-direction:column;gap:3px}.walletChoices small{color:var(--muted)}.walletChoiceLogo{width:38px;height:38px;border-radius:10px}.main{padding-top:18px}.top{margin-top:0}
@media(max-width:700px){.breakHead{grid-template-columns:1fr auto}.breakHead span:nth-child(3),.breakHead span:nth-child(4){display:none}.breakRow{grid-template-columns:1fr auto}.loginAccount{display:none}}
/* V0.10 precise table alignment + settings hierarchy */
.assetTable{table-layout:fixed}.assetTable col.assetCol{width:45%}.assetTable col.amountCol{width:20%}.assetTable col.priceCol{width:15%}.assetTable col.valueCol{width:20%}
.assetBreakdown{padding:12px 8px}.breakHead,.breakRow{grid-template-columns:45% 20% 15% 20%;gap:0;padding-left:0;padding-right:0}.breakHead>span,.breakRow>span,.breakRow>b{padding:0 8px;box-sizing:border-box}.breakHead span:not(:first-child),.breakRow>span:not(:first-child),.breakRow>b{text-align:right}
.settingsCategory{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;padding:18px 2px 4px;border-bottom:1px solid var(--line)}.settingsCategory b{font-size:17px}.settingsCategory span{color:var(--muted);font-size:12px}.logoutIcon{font-size:18px;line-height:1}.loginAccount{margin-right:0}
@media(max-width:700px){.assetTable col.assetCol{width:42%}.assetTable col.amountCol{width:23%}.assetTable col.valueCol{width:35%}.breakHead,.breakRow{grid-template-columns:42% 23% 35%}.breakHead span:nth-child(3),.breakRow>span:nth-child(3){display:none}.breakRow>b{grid-column:auto}}
/* V0.16 */
.allocDetails{border-top:1px solid var(--line)}.allocDetails summary{cursor:pointer;padding:12px 4px;font-weight:700;display:flex;justify-content:space-between}.allocDetails summary span{color:var(--muted);font-weight:500}.walletIcon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#172231}.chainDrop{position:relative;z-index:5}
/* V0.18 small-value filters, wallet badges, light/dark */
.viewControls{display:flex;justify-content:flex-end;gap:8px;margin:-8px 0 14px}.walletTypeBadge{width:36px;height:28px;border-radius:8px;display:inline-grid;place-items:center;background:var(--panel2);border:1px solid var(--line);font-size:9px;font-weight:900;color:var(--accent)}
:root[data-theme="light"]{color:#172033;background:#f5f7fa;--panel:#fff;--panel2:#eef2f7;--muted:#657287;--line:#d9e0e9;--accent:#178b68;--danger:#d74755}
:root[data-theme="light"] body{background:radial-gradient(circle at 75% -10%,#dff5ec 0,transparent 30%),#f5f7fa;color:#172033}
:root[data-theme="light"] .sidebar{background:#fff}:root[data-theme="light"] .nav button.active,:root[data-theme="light"] .nav button:hover{color:#111827}:root[data-theme="light"] .btn,:root[data-theme="light"] .iconBtn,:root[data-theme="light"] .chainCard,:root[data-theme="light"] .chainPickerBtn,:root[data-theme="light"] .walletChoices button{color:#172033;background:#eef2f7}:root[data-theme="light"] .card,:root[data-theme="light"] .panel,:root[data-theme="light"] .metricHero,:root[data-theme="light"] .chainCard{background:linear-gradient(180deg,#fff,#f8fafc)}:root[data-theme="light"] .allocationBranch,:root[data-theme="light"] .exchangeAccount,:root[data-theme="light"] .assetBreakdown,:root[data-theme="light"] .inlineEdit,:root[data-theme="light"] .chainDrop{background:#f8fafc}:root[data-theme="light"] .form input,:root[data-theme="light"] .form select,:root[data-theme="light"] .inlineEdit input,:root[data-theme="light"] .inlineEdit select,:root[data-theme="light"] .chainSearch{background:#fff!important;color:#172033}:root[data-theme="light"] .chartHead b{color:#172033}:root[data-theme="light"] .treeRow b,:root[data-theme="light"] .treeRow>span:nth-child(2){color:#172033}
/* V0.19 simplified settings */
.settingsSimple{display:grid;grid-template-columns:1fr;gap:14px;max-width:980px}.compactSecurity{max-width:980px}.settingsBlock{padding:0;overflow:visible}.settingsBlockHead{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 12px}.settingsBlockHead h3,.settingsBlockHead h4{margin:0 0 3px}.simpleList{border-top:1px solid var(--line)}.simpleItem{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line)}.simpleItem>div:first-child:not(.entityTitle){display:flex;flex-direction:column;gap:4px}.simpleItem small,.entityTitle small{display:block;color:var(--muted);margin-top:4px}.itemActions{display:flex;gap:6px}.actionIcon{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:inherit;cursor:pointer;font-size:17px;display:grid;place-items:center}.actionIcon:hover{border-color:var(--accent);color:var(--accent)}.dangerIcon:hover{border-color:var(--danger);color:var(--danger)}.addNewBtn{width:calc(100% - 40px);margin:14px 20px 18px;padding:11px 14px;border:1px dashed var(--line);border-radius:10px;background:transparent;color:var(--accent);font-weight:750;cursor:pointer;text-align:left}.addNewBtn:hover{background:var(--panel2)}.addNewBtn.subtle{margin-left:0;margin-right:0;width:100%}.revealForm{border-top:1px solid var(--line);padding:18px 20px;background:rgba(127,127,127,.035)}.formActions{display:flex;justify-content:flex-end;gap:8px}.settingsSectionToggle{width:100%;border:0;background:transparent;color:inherit;padding:19px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left}.settingsSectionToggle span{display:flex;flex-direction:column;gap:4px}.settingsSectionToggle small{color:var(--muted);font-weight:400}.metadataBody{border-top:1px solid var(--line);padding:4px 20px 20px}.metadataSub{padding-top:10px}.metadataSub+.metadataSub{border-top:1px solid var(--line);margin-top:18px}.metadataSub .settingsBlockHead{padding-left:0;padding-right:0}.metadataSub .simpleList{border:1px solid var(--line);border-radius:10px;overflow:hidden}.metadataSub .simpleItem{padding:12px 14px}.unifiedChainDrop{max-height:430px;overflow:auto}.networkGroup{margin-top:10px}.networkGroupTitle{display:flex;justify-content:space-between;padding:7px 5px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.05em}.networkGroupTitle small{font-weight:400;letter-spacing:0}.nonEvmOptions{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px}.nonEvmOptions label{display:flex;align-items:center;gap:8px;padding:9px;border-radius:7px}.nonEvmOptions label:hover{background:var(--panel2)}.nonEvmOptions input{width:auto!important}.compactForm{grid-template-columns:1fr 1fr 1fr auto;align-items:end;padding:0 20px 20px}.inlineEdit{margin:0 20px 14px}.simpleItem+.inlineEdit{margin-top:12px}
@media(max-width:700px){.simpleItem{padding:12px 14px}.addNewBtn{width:calc(100% - 28px);margin-left:14px;margin-right:14px}.revealForm{padding:14px}.compactForm{grid-template-columns:1fr;padding:0 14px 14px}.nonEvmOptions{grid-template-columns:1fr}.metadataBody{padding-left:14px;padding-right:14px}}

/* V0.20 Binance-inspired dashboard refinement */
.metricHero{min-height:190px;display:flex;align-items:center;position:relative;overflow:hidden}
.metricHero:not(:has(.heroSpark)):after{content:"";position:absolute;right:3%;bottom:18%;width:32%;height:70%;opacity:.16;background:linear-gradient(180deg,transparent,var(--accent));clip-path:polygon(0 72%,12% 66%,23% 70%,34% 52%,45% 58%,57% 34%,68% 40%,79% 24%,90% 31%,100% 18%,100% 100%,0 100%)}.heroSpark{position:absolute;right:3%;bottom:10%;width:34%;height:75%;pointer-events:none}.heroSpark .heroSparkFill{fill:var(--accent);opacity:.14}.heroSpark .heroSparkLine{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.heroSpark.down .heroSparkFill{fill:#ff737d}.heroSpark.down .heroSparkLine{stroke:#ff737d}.portfolioCheckList{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-height:220px;overflow:auto;padding:4px 2px}
.metricHero>div{position:relative;z-index:1}
.metricValue{font-size:clamp(34px,4vw,54px);letter-spacing:-1.5px}
[data-theme="light"] body,body.light{background:#fff;color:#171717}
[data-theme="light"] .sidebar,[data-theme="light"] .panel,[data-theme="light"] .metricHero,[data-theme="light"] .chainCard,[data-theme="light"] .allocationBranch,[data-theme="light"] .exchangeAccount{background:#fff;border-color:#e8e8e8}
[data-theme="light"] .sidebar{border-right:1px solid #eee}
[data-theme="light"] .nav button.active{background:#f5f5f5;color:#171717}
[data-theme="light"] .btn,[data-theme="light"] .iconBtn{background:#fafafa;border-color:#e5e5e5;color:#181818}
[data-theme="light"] .btn.primary{background:#f0b90b;border-color:#f0b90b;color:#111}
[data-theme="light"] .muted,[data-theme="light"] small{color:#707070}
[data-theme="light"] table th{color:#777}
[data-theme="light"] table td,[data-theme="light"] table th,[data-theme="light"] .breakRow,[data-theme="light"] .breakHead{border-color:#eee}

/* V0.21 exchange-dashboard polish */
.heroKicker{display:flex;align-items:center;gap:8px}.eyeBtn{border:0;background:transparent;color:var(--muted);padding:2px 4px;cursor:pointer;font-size:17px;line-height:1}.eyeBtn:hover{color:var(--text)}
.top{border-bottom:1px solid var(--line);padding-bottom:18px}.panel,.metricHero{border-radius:12px}.sidebar{border-right:1px solid var(--line)}.nav button{border-radius:8px}.nav button.active{font-weight:600}
.tablewrap table{font-size:14px}.assetTable tbody tr:hover{background:color-mix(in srgb,var(--panel) 85%,var(--text) 4%)}.sectionHead h3,.group>h3{font-size:16px}
[data-theme="light"] .metricHero,[data-theme="light"] .panel{box-shadow:none}[data-theme="light"] .assetTable tbody tr:hover{background:#fafafa}

/* V0.22 */
.eyeBtn{width:22px;height:22px;display:inline-grid;place-items:center;border:0;background:transparent;padding:0;cursor:pointer;color:var(--muted)}
.eyeBtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.eyeBtn:hover{color:var(--text)}
.heroKicker{display:flex;align-items:center;gap:7px}.metricHero{border-radius:10px}.panel{border-radius:10px}.btn{border-radius:6px}.chainCard{border-radius:8px}

/* V0.25 visual consistency */
.brand{margin:0 8px 30px;display:block}.brandLogo{display:block;width:178px;height:auto;max-width:100%}
.domain{display:flex;flex-direction:column;gap:5px;line-height:1.35}.domain a{color:var(--muted);text-decoration:none}.domain a:hover{color:var(--accent)}
.overviewSubSummary{font-weight:500!important}.overviewSubSummary span{font-weight:400!important}
.evmLogo{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 32px;background:linear-gradient(145deg,#1f6fff,#44a2ff);color:#fff;border:1px solid rgba(255,255,255,.18);font-size:8px;font-weight:900;letter-spacing:.25px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.08)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#07130e;box-shadow:none}
.loginbox .btn.primary{background:var(--accent);border-color:var(--accent);color:#07130e}
[data-theme="light"] .btn.primary,[data-theme="light"] .loginbox .btn.primary{background:#18a57a;border-color:#18a57a;color:#fff}
[data-theme="light"] .security{background:#f2faf7;border-color:#cfe8de;color:#233b33}
[data-theme="light"] .security b{color:#118462}[data-theme="light"] .security span{color:#526a61}
[data-theme="light"] .domain a:hover{color:#118462}

.bootLoading{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-size:14px;background:var(--bg)}

/* V0.27 brand */
.brand{margin:0 8px 30px;display:flex;align-items:center;gap:10px}
.brandIconWrap{width:38px;height:38px;display:grid;place-items:center;overflow:hidden;flex:0 0 38px}
.brandIcon{width:38px;height:38px;object-fit:contain;filter:hue-rotate(92deg) saturate(.82) brightness(.88)}
.brandProject{font-size:14px;line-height:1.08;font-weight:600;white-space:nowrap}.brandProject b{display:block;color:var(--accent);font-weight:750}

/* V0.28 supporter / donation */
.supportProjectBtn{margin-top:auto;margin-bottom:16px;width:100%;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:10px;padding:10px 12px;text-align:left;cursor:pointer}
.supportProjectBtn:hover{border-color:var(--accent);color:var(--accent)}
.supportHint{margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:12px;line-height:1.5;background:var(--panel2)}
.supportHint button{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;font:inherit}
.addNewBtn:disabled{opacity:.45;cursor:not-allowed}
.donateModal{max-width:540px}.wideBtn{width:100%;margin-top:14px}
.donationAddress{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel2);display:grid;gap:8px}
.donationAddress b{font-size:12px;word-break:break-all}.claimBox{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px}
.countdown{font-size:28px;font-weight:700;letter-spacing:.5px;color:var(--accent);margin-bottom:4px}
.thanksBox{margin-top:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,var(--panel));display:grid;gap:10px}
.thanksBox span{color:var(--muted);font-size:13px;line-height:1.5}
/* V0.30 admin supporter management */
.adminStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.adminStats .panel{padding:16px;display:grid;gap:5px}.adminStats small{color:var(--muted)}.adminStats b{font-size:24px}.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.adminUsers .settingsBlockHead{gap:16px}.adminUsers .settingsBlockHead input{max-width:300px}.adminTableWrap{overflow:auto}.adminTable td small{display:block;color:var(--muted);margin-top:3px}.smallBtn{padding:6px 9px;font-size:12px}.form textarea{width:100%;box-sizing:border-box;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:10px;font:inherit;resize:vertical}@media(max-width:850px){.adminStats{grid-template-columns:1fr 1fr}.adminGrid{grid-template-columns:1fr}.adminUsers .settingsBlockHead{align-items:stretch;flex-direction:column}.adminUsers .settingsBlockHead input{max-width:none}}

/* V0.31 requested refinements */
.brandIconWrap{background:transparent!important}
.brandIcon{filter:none!important}
.domain{gap:7px}
.domain .supportProjectBtn{margin:3px 0 0;padding:0;border:0;border-radius:0;background:transparent;width:auto;color:var(--text);font-size:12px}
.domain .supportProjectBtn:hover{color:var(--accent);border:0}
.evmLogo{background:transparent!important;color:var(--accent)!important;border:2px solid var(--accent)!important;box-shadow:none!important;font-size:8px!important;font-weight:900!important}
.allocationBranch .allocRow{border-bottom:0!important}
.overviewSubSummary .overviewCount{font-size:12px!important;color:var(--muted);font-weight:400!important}
.adminGrantPanel{max-width:760px;margin-bottom:16px;padding:20px!important}
.adminGrantForm{padding:4px 2px 2px;gap:13px!important}
.adminGrantForm .btn.primary{margin-top:3px}
.exchangePicker{display:grid;gap:7px;margin-top:6px}
.exchangePicker #exchangeSearch{margin:0}
.exchangePicker select{min-height:150px}
[data-theme="light"] .domain .supportProjectBtn{color:#172033}
[data-theme="light"] .domain .supportProjectBtn:hover{color:#118462}

/* V0.32 typography / role / sync / control alignment */
:root{--ui-font-size:14px}
body,button,input,select,textarea{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{font-size:var(--ui-font-size)}
h1{font-size:24px} h2{font-size:20px} h3,.settingsBlockHead h3{font-size:14px}
.muted,.fieldLabel,.settingsBlockHead span,.domain,.chainCard small{font-size:12px}
.controlH{height:40px!important;min-height:40px!important;box-sizing:border-box;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.viewControls{align-items:center}
.topActions{align-items:center}
.evmLogo{width:34px!important;height:34px!important;min-width:34px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;padding:0!important;text-align:center!important;box-sizing:border-box!important;font-size:8px!important}
.roleAdmin{font-size:11px;font-weight:500;color:var(--muted);text-transform:lowercase;margin-left:3px}
.roleSupporter{font-size:14px;color:var(--accent);margin-left:4px;cursor:help}
.syncStatus{height:26px;padding:0 9px;border:1px solid var(--border);border-radius:7px;display:inline-flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap}
.syncStatus i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:block}
.syncStatus.ok{border-color:color-mix(in srgb,var(--accent) 75%,var(--border));color:var(--accent)}
.syncStatus.working{color:var(--text)}
.syncStatus.working i{animation:syncPulse 1s infinite alternate}
@keyframes syncPulse{from{opacity:.3}to{opacity:1}}
/* V0.33 login, theme and settings refinements */
.brandIcon{filter:none!important}.evmLogo img{width:100%;height:100%;display:block}.themeBare{width:40px;border:0;background:transparent!important;color:var(--text);font-size:20px;cursor:pointer;padding:0}.themeBare:hover{opacity:.72}.walletChoiceMark{width:40px;height:40px;flex:0 0 40px;display:grid!important;place-items:center!important}.walletChoiceMark img{width:36px;height:36px;object-fit:contain;display:block}.walletChoiceArrow{margin-left:auto!important;font-size:22px!important}.portfolioLoading{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.portfolioLoading span{color:var(--muted);font-size:12px}.loadingSpinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.exchangePicker select{width:100%;min-height:42px}.security,.warning{background:#2a2012!important;border-color:#5b4724!important;color:#ffd88a!important}.security b{color:#ffd05f!important}.security span{color:#ead6a8!important}
[data-theme="light"] .security,[data-theme="light"] .warning{background:#fff7d6!important;border-color:#ead68c!important;color:#66531d!important}[data-theme="light"] .security b{color:#8a6b00!important}[data-theme="light"] .security span{color:#66531d!important}
/* V0.34 interaction refinements */
.brandIconWrap,.brandIcon{background:transparent!important}
.syncStatus{border:0!important;background:transparent!important;cursor:pointer;padding:0 4px!important;font-family:inherit}
.syncStatus .syncForce{display:none}.syncStatus.ok:hover .syncNormal{display:none}.syncStatus.ok:hover .syncForce{display:inline}.syncStatus:disabled{cursor:default;opacity:1}
.walletChoiceMark{width:44px!important;height:44px!important;flex-basis:44px!important}.walletChoiceMark img{width:38px!important;height:38px!important;object-fit:contain!important}
.phantomNetworkChoice{display:grid;gap:8px;margin-top:10px}.phantomNetworkChoice .walletChoice{padding-left:16px}
.catalogSummary{cursor:pointer;list-style:none}.catalogSummary::-webkit-details-marker{display:none}.catalogBody{padding:8px 16px 16px;display:grid;gap:8px}.catalogChain{border:1px solid var(--line);border-radius:10px;overflow:hidden}.catalogChain>summary{cursor:pointer;padding:12px 14px;display:flex;justify-content:space-between;align-items:center}.catalogChain>summary span{color:var(--muted);font-size:12px}.catalogChain .simpleList{border-top:1px solid var(--line)}.adminAddToken{border-top:1px solid var(--line);padding:18px}.adminAddToken h3{margin:0 0 10px}

/* V0.35 layout refinements */
.topActions{display:flex!important;flex-wrap:nowrap;align-items:center;column-gap:8px;gap:8px;min-width:0;justify-content:flex-end}
.syncStatus{width:108px!important;min-width:108px!important;justify-content:flex-start!important;padding:0 9px!important}
.syncStatus .syncNormal,.syncStatus .syncForce{display:inline-block;width:74px;text-align:left}
.syncStatus.ok:hover .syncNormal{display:none}
.syncStatus.ok:hover .syncForce{display:inline-block}
.themeBare,.logoutIcon.themeBare{background:transparent!important;border:0!important;box-shadow:none!important;width:40px!important;min-width:40px!important;padding:0!important}
.themeBare:hover,.logoutIcon.themeBare:hover{background:transparent!important;color:var(--accent)!important}
.walletModal{background:var(--panel)!important;border:1px solid var(--border)!important;border-radius:28px!important;box-shadow:none!important;padding:32px!important;max-width:660px!important}
.walletModal .row.between{padding-bottom:18px;border-bottom:1px solid var(--border)}
.walletChoices{margin-top:20px;gap:10px}
.walletChoice{background:transparent!important;border:1px solid var(--border)!important;border-radius:14px!important}
.walletChoice:hover{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 5%,transparent)!important}
.walletModal #closeWallet{background:transparent!important;border:0!important}
[data-theme="light"] .walletModal{background:#fff!important}
@media(max-width:760px){.topActions{min-width:0}.syncStatus{width:104px!important;min-width:104px!important}}

/* V0.36 modal comfort + sync hover */
.modalback{background:rgba(10,18,26,.18)!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
[data-theme="light"] .modalback{background:rgba(235,241,246,.38)!important}
.syncStatus{grid-template-columns:7px 78px!important;display:grid!important;align-items:center!important;column-gap:6px!important}
.syncStatus i{display:block!important;visibility:visible!important;opacity:1!important}
.syncStatus .syncText{display:block;width:78px}
.syncStatus .syncForce{display:none}
.syncStatus.ok:hover .syncNormal{display:none}
.syncStatus.ok:hover .syncForce{display:inline}
.syncStatus.working:hover .syncNormal{display:inline}
.syncStatus.working:hover .syncForce{display:none}
/* V0.37 hedge/settings refinements */
.syncStatus .syncText{position:relative;width:78px;text-align:left}.syncStatus .syncNormal,.syncStatus .syncForce{position:absolute;left:0;top:50%;transform:translateY(-50%);width:78px;text-align:left}
.hedgeIntro{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.hedgeIntro span{color:var(--muted)}.hedgeForm{grid-template-columns:140px 180px 1fr auto;align-items:end;margin-top:18px}.hedgeImbalance{color:#f59e0b}.lockedFeature{max-width:680px}.saveStateBtn:disabled{cursor:wait;opacity:.8}
@media(max-width:850px){.hedgeForm{grid-template-columns:1fr}}

/* V0.38 sidebar groups / metadata / hedge */
.nav{display:flex!important;flex-direction:column!important;height:100%}
.navMain{display:grid;gap:4px}
.navGroup{border-top:1px solid var(--border);padding-top:10px;margin-top:10px;display:grid}
.navSettings{margin-top:auto}
.metadataEditor{padding:12px 0;display:grid;gap:14px}
.adminChainMetaForm,.adminInlineTokenForm{padding:12px;border:1px solid var(--border);border-radius:12px}
.adminInlineTokenForm{grid-template-columns:1fr 2fr 120px 1fr auto;align-items:end}
.hedgeBalanced{color:var(--accent)}
@media(max-width:900px){.adminInlineTokenForm{grid-template-columns:1fr}}

/* V0.39 navigation, on-chain sorting and Hedge Monitor */
.navAdminSettings{display:grid!important;gap:4px!important;margin-top:22px!important;padding-top:12px!important;border-top:1px solid var(--border)!important}
.navSettings{margin-top:0!important}
.onchainToolbar{display:flex!important;justify-content:space-between!important;align-items:center!important;width:100%}
.toolbarViews,.toolbarSort{display:flex;gap:8px;align-items:center}
.hedgeHead{align-items:flex-end!important}
.hedgeTools{display:flex;gap:8px;align-items:center;margin-left:auto}
.hedgeAddBtn{background:transparent!important;border-color:var(--border)!important;color:var(--accent)!important;font-weight:600}
.hedgeAddBtn:hover{border-color:var(--accent)!important}
.hedgeEditForm{margin-top:16px;padding:16px;border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr 1fr 1fr 1fr 1.5fr auto;align-items:end}
.hedgeActions{justify-content:flex-end;gap:6px}
.syncStatus{width:132px!important;min-width:132px!important;grid-template-columns:7px 96px!important}
.syncStatus .syncText{width:96px!important}
.syncStatus .syncNormal,.syncStatus .syncForce{width:96px!important}
@media(max-width:900px){
 .onchainToolbar{align-items:stretch!important;gap:8px;flex-wrap:wrap}
 .toolbarSort{margin-left:auto}
 .hedgeTools{width:100%;margin-left:0;justify-content:flex-end;flex-wrap:wrap}
 .hedgeEditForm{grid-template-columns:1fr}
}
/* V0.40 admin metadata editor */
.adminTokenCatalog{margin-bottom:18px!important}
.adminUsers{margin-top:18px!important}
.catalogBody{padding:14px 16px 18px!important;gap:12px!important}
.catalogSearch{position:sticky;top:0;z-index:2;background:var(--panel);padding:2px 0 10px}
.catalogSearch input{width:100%;height:42px}
.catalogChain{margin-bottom:8px}
.metadataEditor{padding:16px!important;gap:16px!important}
.adminChainMetaForm{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;padding:14px!important}
.adminChainFields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.rpcField{display:block;clear:both;width:100%;margin-top:2px}
.rpcField textarea{display:block;width:100%;min-height:92px;margin-top:6px;resize:vertical}
.adminTokenList{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.adminTokenRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.adminTokenRow:last-child{border-bottom:0}.adminTokenRow small{display:block;color:var(--muted);margin-top:4px}
.adminTokenEditForm{display:grid;grid-template-columns:140px minmax(260px,2fr) 100px 160px auto auto;gap:8px;align-items:center;width:100%}
.adminInlineTokenForm{margin-top:0!important;border:1px dashed var(--line)!important;background:transparent!important}
.adminInlineTokenForm:focus-within{border-color:var(--accent)!important}
@media(max-width:900px){.adminChainFields,.adminTokenEditForm{grid-template-columns:1fr}.catalogSearch{position:static}}
/* V0.41 admin metadata, confirmations, exchange locations */
.adminTokenCatalog{margin-bottom:24px!important}
.catalogSearch.adminSearchLike{display:flex;justify-content:flex-end;padding:14px 16px 10px}
.catalogSearch.adminSearchLike input{width:260px;max-width:100%;height:38px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:0 12px;font:inherit}
.catalogChain{overflow:visible!important}.catalogChain[open]{padding-bottom:4px}.metadataEditor{position:relative}
.confirmBack{background:rgba(10,18,26,.20)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important}
.confirmModal{width:min(440px,calc(100vw - 36px))!important;padding:26px!important;border-radius:22px!important}
.confirmModal h2{font-size:20px;margin:0 0 8px}.confirmModal p{color:var(--muted);line-height:1.55;margin:0}
.confirmActions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.confirmActions .btn{min-width:92px}
.confirmDanger{background:#b94646!important;border-color:#b94646!important;color:#fff!important}
[data-theme="light"] .confirmBack{background:rgba(235,241,246,.45)!important}
.locationLine{display:grid!important;grid-template-columns:38px 1fr minmax(140px,auto) 62px!important;gap:12px!important;align-items:center!important}
.locationLine .locationName{grid-column:2}.locationLine b{grid-column:3;text-align:right}.locationLine em{grid-column:4;text-align:right}
@media(max-width:700px){.locationLine{grid-template-columns:28px 1fr auto!important}.locationLine em{display:none}.locationLine b{grid-column:3}.catalogSearch.adminSearchLike input{width:100%}}

/* V0.42 consistent searchable pickers + persistent wallet form */
.pickerSearch{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--input,#0b131d);padding:0 11px;height:42px}
.pickerSearch span{color:var(--muted);font-size:16px}
.pickerSearch input{border:0!important;background:transparent!important;outline:0!important;width:100%;height:38px;padding:0!important}
.adminPickerSearch{width:min(420px,100%)}
.catalogBody>.adminPickerSearch{margin:12px 0 14px}
.adminUsers .settingsBlockHead{align-items:center}
.adminUsers .userSearch{margin-left:auto}
.unifiedChainDrop{margin-top:8px}
.unifiedChainDrop>.pickerSearch{margin:10px}
.chainOptions label,.nonEvmOptions label{cursor:pointer}
/* V0.43 consistent admin/settings form controls */
.pickerSearch input{color:#e8edf6!important;caret-color:var(--accent)!important;font-size:13px!important}
.pickerSearch input::placeholder{color:var(--muted)!important;opacity:1}
:root[data-theme="light"] .pickerSearch input{color:#172033!important}
.adminChainMetaForm .fieldLabel,.adminInlineTokenForm .fieldLabel,.adminTokenEditForm .fieldLabel,
.revealForm .fieldLabel,.inlineEdit .fieldLabel{font-size:12px!important;color:var(--muted)!important}
.adminChainMetaForm input,.adminChainMetaForm textarea,.adminInlineTokenForm input,.adminTokenEditForm input,
.revealForm input,.revealForm select,.revealForm textarea,.inlineEdit input,.inlineEdit select,.inlineEdit textarea{
 background:#0b111a!important;border:1px solid var(--line)!important;color:#e8edf6!important;border-radius:10px!important;
 padding:11px 12px!important;font-size:13px!important;line-height:1.35!important;min-height:42px!important;outline:none!important
}
.adminChainMetaForm input:focus,.adminChainMetaForm textarea:focus,.adminInlineTokenForm input:focus,.adminTokenEditForm input:focus,
.revealForm input:focus,.revealForm select:focus,.inlineEdit input:focus,.inlineEdit select:focus{border-color:var(--accent)!important}
:root[data-theme="light"] .adminChainMetaForm input,:root[data-theme="light"] .adminChainMetaForm textarea,
:root[data-theme="light"] .adminInlineTokenForm input,:root[data-theme="light"] .adminTokenEditForm input,
:root[data-theme="light"] .revealForm input,:root[data-theme="light"] .revealForm select,
:root[data-theme="light"] .inlineEdit input,:root[data-theme="light"] .inlineEdit select{background:#fff!important;color:#172033!important}
.adminTokenEditForm{grid-template-columns:140px minmax(300px,2fr) 110px 170px auto!important;align-items:end!important;padding:4px 0!important}
.adminInlineTokenForm{grid-template-columns:140px minmax(300px,2fr) 110px 170px auto!important;align-items:end!important;padding:14px!important;background:rgba(127,127,127,.025)!important;border-style:solid!important}
.tokenFormActions{align-self:end;white-space:nowrap}
@media(max-width:900px){.adminTokenEditForm,.adminInlineTokenForm{grid-template-columns:1fr!important}}
/* V0.44 */
.locationBullet{grid-column:1;color:var(--muted);font-size:15px;text-align:center;line-height:1}
.adminAddTokenBar{display:flex;justify-content:flex-end;padding:14px 0 2px}
.adminAddTokenBar .btn{color:var(--accent);background:transparent}
.editChainPicker .chainDrop{position:relative!important;display:block!important;max-height:360px;overflow:auto}
.editChainPicker .chainPickerBtn{cursor:default}
/* V0.45 state-safe forms and validation feedback */
.formError{grid-column:1/-1;padding:10px 12px;border:1px solid color-mix(in srgb,#ff6b6b 45%,var(--border));border-radius:9px;background:color-mix(in srgb,#ff6b6b 8%,transparent);color:#ff8a8a;font-size:13px;line-height:1.35}
.accountLocationRow .locationName::before{content:'•';display:inline-block;margin-right:9px;color:var(--muted)}
/* V0.46 settings/admin consistency and light-mode fixes */
:root{--input-bg:#0b111a;--input-text:#e8edf6;--edit-bg:#0a111a;--edit-title-bg:#111b28;--edit-title-text:#c7d3e5}
:root[data-theme="light"]{--input-bg:#fff;--input-text:#172033;--edit-bg:#f8fafc;--edit-title-bg:#eef2f7;--edit-title-text:#172033}
.inlineEdit,.revealForm,.metadataEditor,.adminAddChainForm{color:inherit}
.editTitle{background:var(--edit-title-bg)!important;color:var(--edit-title-text)!important;border:1px solid var(--line)}
.inlineEdit{background:var(--edit-bg)!important}
.revealForm{background:color-mix(in srgb,var(--panel) 96%,var(--muted) 4%)!important}
.form input,.form select,.form textarea,.inlineEdit input,.inlineEdit select,.inlineEdit textarea,
.adminChainMetaForm input,.adminChainMetaForm textarea,.adminInlineTokenForm input,.adminTokenEditForm input,
.adminAddChainForm input,.adminAddChainForm textarea{background:var(--input-bg)!important;color:var(--input-text)!important;border-color:var(--line)!important}
.form input::placeholder,.form textarea::placeholder,.inlineEdit input::placeholder,.adminAddChainForm input::placeholder,.adminAddChainForm textarea::placeholder{color:var(--muted)!important;opacity:.9}
:root[data-theme="light"] .chainPickerBtn,:root[data-theme="light"] .chainDrop,:root[data-theme="light"] .pickerSearch,
:root[data-theme="light"] .inlineEdit,:root[data-theme="light"] .revealForm,:root[data-theme="light"] .adminInlineTokenForm,
:root[data-theme="light"] .adminTokenEditForm,:root[data-theme="light"] .adminAddChainForm{background:#fff!important;color:#172033!important}
:root[data-theme="light"] .chainOptions label:hover,:root[data-theme="light"] .nonEvmOptions label:hover{background:#eef2f7!important}
:root[data-theme="light"] .networkGroupTitle,:root[data-theme="light"] .fieldLabel{color:#657287!important}
:root[data-theme="light"] select option{background:#fff;color:#172033}
.adminCatalogTools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 14px}
.adminCatalogTools .adminPickerSearch{margin:0!important;flex:1;max-width:420px}
.adminAddChainBtn{white-space:nowrap}
.adminAddChainForm{margin:12px 0 16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(127,127,127,.025)}
.adminAddChainForm .formActions{margin-top:2px}
.alertModal .confirmActions{justify-content:flex-end}
.alertModal .btn.primary{min-width:92px}
@media(max-width:700px){.adminCatalogTools{align-items:stretch;flex-direction:column}.adminCatalogTools .adminPickerSearch{max-width:none;width:100%}.adminAddChainBtn{width:100%}}
/* V0.47 searchable custom-token chain picker */
.searchSelect{display:grid;gap:8px;width:100%}
.customTokenChainField{grid-column:1/-1}
.customTokenChainSelect{width:100%;min-height:116px;border:1px solid var(--border);border-radius:10px;background:var(--input,#0b131d);color:var(--text);padding:6px 8px;font:inherit}
.customTokenChainSelect option{padding:7px 9px;border-radius:6px}
[data-theme="light"] .customTokenChainSelect{background:#fff;color:#172033}
.customTokenForm{align-items:end}
.customTokenChainSelect:focus{outline:1px solid var(--accent);border-color:var(--accent)}
/* V0.48 global metadata uses the same stable form/list pattern as Settings custom metadata */
.adminGlobalMetadata{display:grid;gap:18px;margin-top:14px}
.adminGlobalMetadata .metadataSub{padding-top:0}
.adminGlobalChainPicker{max-width:720px}
#adminGlobalChainSelect{width:100%;min-height:150px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--input-text);padding:6px 8px;font:inherit}
#adminGlobalChainSelect option{padding:8px 10px;border-radius:6px}
#adminGlobalChainSelect:focus{outline:1px solid var(--accent);border-color:var(--accent)}
.adminSelectedChain{margin-top:12px}
.adminGlobalEdit,.adminGlobalTokenForm{margin-top:10px!important;padding:14px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--edit-bg)!important;display:grid!important;gap:12px!important}
.adminGlobalEdit .editTitle,.adminGlobalTokenForm .editTitle{grid-column:1/-1}
.adminGlobalTokenList .simpleItem{align-items:center}
.adminGlobalTokenList .inlineEdit{margin:0 0 10px 0!important}
.adminGlobalTokenList .entityTitle{min-width:0}
.adminGlobalTokenList .entityTitle small{overflow-wrap:anywhere}
.adminGlobalMetadata .addNewBtn{white-space:nowrap}
.adminTokenCatalog>.settingsBlockHead{align-items:center}
[data-theme="light"] #adminGlobalChainSelect{background:#fff;color:#172033}
@media(max-width:760px){.adminTokenCatalog>.settingsBlockHead{align-items:stretch;gap:10px;flex-direction:column}.adminTokenCatalog>.settingsBlockHead .addNewBtn{width:100%}.adminGlobalChainPicker{max-width:none}}
.adminGlobalToolbar{display:flex;justify-content:flex-end;align-items:center}
.adminGlobalToolbar .addNewBtn{margin:0}
#adminGlobalDetails>.catalogSummary{cursor:pointer}
#adminGlobalDetails[open]>.catalogSummary{border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:2px}
/* V0.49 global built-in metadata editor */
.adminGlobalToolbar{gap:10px;justify-content:flex-start;flex-wrap:wrap}
.adminGlobalToolbar .addNewBtn{width:auto;min-width:190px;padding:10px 14px}
.adminEditChooser{max-width:760px}
.adminEditChooser .formActions{margin-top:12px}
.adminEditSession{display:grid;gap:16px;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--edit-bg)}
.adminEditSession>.editTitle{margin:0}
.adminEditSession .adminGlobalEdit{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.adminChainFields{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(130px,.55fr) minmax(150px,.65fr);gap:12px}
.adminDraftTokens{border-top:1px solid var(--line);padding-top:4px}
.adminDraftTokens>.settingsBlockHead{padding:12px 0}
.adminDraftTokens>.settingsBlockHead .addNewBtn{width:auto;margin:0;padding:9px 12px}
.adminTokenDraftBox{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px;background:var(--panel2)}
.adminTokenDraftGrid{display:grid;grid-template-columns:minmax(130px,.6fr) minmax(260px,2fr) minmax(100px,.45fr) minmax(160px,.8fr);gap:10px}
.adminEditFooter{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:14px}
[data-theme="light"] .adminEditSession,[data-theme="light"] .adminTokenDraftBox{background:#fff}
@media(max-width:900px){.adminChainFields,.adminTokenDraftGrid{grid-template-columns:1fr}.adminGlobalToolbar .addNewBtn{width:100%}}

/* V0.50 — built-in token editor sizing */
.adminTokenDraftGrid{
  display:grid!important;
  grid-template-columns:minmax(120px,.65fr) minmax(320px,2.25fr) minmax(90px,.45fr) minmax(160px,.8fr)!important;
  gap:12px!important;
  align-items:end!important;
}
.adminTokenDraftGrid .fieldLabel{min-width:0;font-size:12px!important;color:var(--muted)!important}
.adminTokenDraftGrid input{
  display:block!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;
  min-height:42px!important;padding:10px 12px!important;border:1px solid var(--line)!important;
  border-radius:10px!important;background:var(--input-bg)!important;color:var(--input-text)!important;
  font:inherit!important;font-size:13px!important;line-height:1.35!important;outline:none!important;
}
.adminTokenDraftGrid input:focus{border-color:var(--accent)!important}
.adminTokenDraftGrid input::placeholder{color:var(--muted)!important;opacity:.9}
.adminTokenDraftBox>.formActions{margin-top:12px;justify-content:flex-end}
[data-theme="light"] .adminTokenDraftGrid input{background:#fff!important;color:#172033!important}
@media(max-width:980px){.adminTokenDraftGrid{grid-template-columns:1fr 2fr 110px 1fr!important}}
@media(max-width:720px){.adminTokenDraftGrid{grid-template-columns:1fr!important}}

/* V0.51 Hedge Monitor: inline first-row editor */
.hedgeFormRow>td{padding:10px 12px!important;background:color-mix(in srgb,var(--panel) 92%,var(--accent) 8%)}
.hedgeInlineForm{display:grid;grid-template-columns:minmax(110px,.75fr) minmax(130px,.9fr) minmax(170px,1.1fr) minmax(180px,1.5fr) auto;gap:10px;align-items:end;width:100%}
.hedgeInlineForm .fieldLabel{margin:0;min-width:0}
.hedgeInlineForm input{width:100%;min-width:0}
.hedgeInlineForm small{display:block;color:var(--muted);font-size:11px;line-height:1.25;margin-top:4px}
.hedgeInlineActions{align-items:center;justify-content:flex-end;white-space:nowrap;padding-bottom:1px}
.hedgeFooter{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.hedgeFooter .muted{font-size:12px}
@media(max-width:1100px){.hedgeInlineForm{grid-template-columns:1fr 1fr}.hedgeInlineActions{justify-content:flex-start}.hedgeFooter{align-items:flex-start;flex-direction:column}}


/* V0.52 Hedge Monitor editor: compact, aligned, and positioned at the edited asset */
.hedgeFormRow>td{
  padding:12px 14px!important;
  background:color-mix(in srgb,var(--panel) 95%,var(--accent) 5%)!important;
}
.hedgeInlineForm{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  width:100%!important;
  margin:0!important;
}
.hedgeEditorTitle{
  display:flex;
  align-items:baseline;
  gap:12px;
  min-width:0;
  font-weight:700;
  color:var(--text);
}
.hedgeEditorTitle small{
  color:var(--muted)!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.3!important;
  margin:0!important;
}
.hedgeInlineFields{
  display:grid;
  grid-template-columns:minmax(110px,.7fr) minmax(130px,.8fr) minmax(150px,.9fr) minmax(220px,1.7fr) auto;
  gap:10px;
  align-items:end;
  width:100%;
}
.hedgeInlineFields .fieldLabel{margin:0!important;min-width:0;font-size:12px}
.hedgeInlineFields input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  min-height:42px!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  font:inherit!important;
  font-size:13px!important;
}
.hedgeInlineActions{display:flex;align-items:center!important;justify-content:flex-end!important;gap:8px;white-space:nowrap;padding:0!important}
.hedgeInlineActions .btn{min-height:42px}
.hedgeEditRow{scroll-margin-top:110px}
.othersInlineFields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end;width:100%}
.othersInlineFields .fieldLabel{margin:0!important;min-width:0;font-size:12px;display:grid;gap:6px;color:var(--muted)}
.othersInlineFields input,.othersInlineFields select{display:block!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;min-height:42px!important;padding:10px 12px!important;border-radius:10px!important;font:inherit!important;font-size:13px!important;background:var(--input-bg)!important;color:var(--input-text)!important;border:1px solid var(--line)!important}
.othersInlineFields .checkboxField{display:flex!important;flex-direction:row;align-items:center!important;gap:10px;grid-column:1/-1;margin-top:2px;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:13px;cursor:pointer;transition:background .15s}
.othersInlineFields .checkboxField:hover{background:color-mix(in srgb,var(--accent) 7%,var(--panel2))}
.othersInlineFields .checkboxField input{width:16px!important;height:16px!important;min-height:auto!important;flex:none;accent-color:var(--accent);cursor:pointer}
.othersNoteField{grid-column:1/-1}
.othersInlineFields .hedgeInlineActions{grid-column:1/-1;justify-content:flex-end!important}
@media(max-width:720px){.othersInlineFields{grid-template-columns:1fr}}
.portfolioSelectBox{text-align:left}.portfolioSelectHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.portfolioSelectHead .brand{margin:0}
.portfolioSelectList{display:grid;gap:10px;margin-top:18px}
.portfolioSelectBtn{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:4px;text-align:left;margin-top:0!important}
.portfolioSelectBtn b{font-size:15px}
.portfolioSwitch{position:relative}.portfolioSwitchTrigger{font-size:18px}.portfolioSwitchMenu{display:none;position:absolute;z-index:30;top:46px;right:0;min-width:190px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px rgba(0,0,0,.28);max-height:280px;overflow:auto}.portfolioSwitchMenu.open{display:grid;gap:2px}.portfolioSwitchMenu button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-size:13px}.portfolioSwitchMenu button:hover,.portfolioSwitchMenu button.selected{background:color-mix(in srgb,var(--accent) 9%,var(--panel2))}.portfolioSwitchMenu button strong{color:var(--accent)}.portfolioSwitchMenu button small{color:var(--muted);font-size:11px}:root[data-theme="light"] .portfolioSwitchMenu{background:#fff;box-shadow:0 18px 42px rgba(31,41,55,.14)}
.portfolioRow{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.portfolioRow.activePortfolioRow{border-left:2px solid var(--accent);padding-left:10px}
.portfolioRenameForm{width:100%}
.portfolioResourceManage{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.portfolioResourceManage>b{display:block;margin-bottom:4px}
.portfolioResourceRow{display:flex;justify-content:space-between;align-items:center;gap:12px}
.inlineCheckbox{display:flex!important;flex-direction:row;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0!important}
.inlineCheckbox input{width:auto!important}
@media(max-width:1180px){
  .hedgeInlineFields{grid-template-columns:1fr 1fr}
  .hedgeNoteField{grid-column:1/-1}
  .hedgeInlineActions{justify-content:flex-start!important}
}
@media(max-width:720px){
  .hedgeInlineFields{grid-template-columns:1fr}
  .hedgeNoteField{grid-column:auto}
  .hedgeEditorTitle{align-items:flex-start;flex-direction:column;gap:3px}
}

/* Admin save feedback stays in the active edit session */
#saveAdminBuiltinEdit.savedState,
#saveAdminBuiltinEdit:disabled.savedState{
  opacity:.48!important;
  cursor:default!important;
  filter:saturate(.65);
}

/* V0.53 donation modal polish */
.donateModal{max-width:720px!important;padding:28px!important}
.donationHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}
.donationHeader h2{margin:0 0 6px;font-size:24px;letter-spacing:-.35px}
.donationHeader .muted{max-width:560px;line-height:1.55;font-size:13px}
.donationNetworkField{position:relative;display:grid;gap:7px;margin-bottom:14px}
.donationNetworkTrigger{display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center;width:100%;min-height:54px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--input-bg);color:var(--input-text);text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.donationNetworkTrigger:hover,.donationNetworkTrigger.open{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 9%,transparent)}
.donationNetworkTrigger:disabled{cursor:default;opacity:.78}
.donationNetworkTrigger>span:nth-child(2){display:grid;gap:2px}.donationNetworkTrigger small{color:var(--muted);font-size:11px;font-weight:400}.donationNetworkTrigger>strong{color:var(--muted);font-size:13px}
.donationNetIcon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);overflow:hidden;font-size:9px;font-weight:800;color:var(--muted)}
.donationNetIcon img{width:100%;height:100%;object-fit:cover}
.donationNetworkMenu{display:none;position:absolute;z-index:30;top:78px;left:0;right:0;padding:7px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px rgba(0,0,0,.28);max-height:290px;overflow:auto}
.donationNetworkMenu.open{display:grid;gap:3px}
.donationNetworkMenu button{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;width:100%;padding:9px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.donationNetworkMenu button:hover,.donationNetworkMenu button.selected{background:color-mix(in srgb,var(--accent) 9%,var(--panel2))}
.donationNetworkMenu button>span:nth-child(2){display:grid;gap:2px}.donationNetworkMenu small{font-size:11px;color:var(--muted)}.donationNetworkMenu strong{color:var(--accent)}
.donationAddressCard{display:grid;grid-template-columns:minmax(0,1fr) 172px;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);align-items:stretch}
.donationAddressInfo{display:flex;flex-direction:column;min-width:0}.donationEyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:9px}.donationAddressInfo>b{font-size:13px;line-height:1.55;word-break:break-all;color:var(--text)}
.donationAddressActions{margin-top:auto;padding-top:16px}.donationAddressActions .btn{min-width:128px}.donationAddressActions .btn.copied{border-color:var(--accent);color:var(--accent)}
.donationQr{display:grid;place-items:center;align-content:center;gap:7px}.donationQrFrame{width:150px;height:150px;padding:8px;background:#fff;border-radius:12px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.donationQrFrame img{width:100%;height:100%;display:block}.donationQrFrame span{color:#5d6470;font-size:11px}.donationQr small{color:var(--muted);font-size:10px}
.donationSentBtn{min-height:50px;margin-top:16px!important}
.donationClaim{margin-top:16px!important;padding:16px!important;border-radius:14px!important;background:color-mix(in srgb,var(--panel2) 94%,var(--accent) 6%)}
.donationClaimHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.donationClaimHead .countdown{margin:0 0 3px;font-variant-numeric:tabular-nums}.donationStep{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 8px;white-space:nowrap}
.donationVerifyChoice{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.donationChoice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--input-bg);cursor:pointer;transition:border-color .18s ease,background-color .18s ease}.donationChoice.selected{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--input-bg))}.donationChoice input{margin-top:3px;accent-color:var(--accent)}.donationChoice span{display:grid;gap:3px}.donationChoice b{font-size:12px}.donationChoice small{font-size:11px;line-height:1.35;color:var(--muted)}
.donationVerifyForm{margin-top:10px}.donationVerifyForm .wideBtn{margin-top:2px!important;min-height:48px}
.donationSuccess{grid-template-columns:38px 1fr auto!important;align-items:center!important}.donationSuccessMark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-size:18px;font-weight:800}.donationSuccess>div:nth-child(2){display:grid;gap:4px}.donationSuccess .btn{min-width:84px}
:root[data-theme="light"] .donationNetworkMenu{background:#fff;box-shadow:0 18px 42px rgba(31,41,55,.14)}
:root[data-theme="light"] .donationAddressCard,:root[data-theme="light"] .donationClaim{background:#f8fafc}
@media(max-width:680px){.donateModal{padding:20px!important}.donationAddressCard{grid-template-columns:1fr}.donationQr{order:-1}.donationVerifyChoice{grid-template-columns:1fr}.donationSuccess{grid-template-columns:38px 1fr!important}.donationSuccess .btn{grid-column:1/-1;width:100%}}

/* V0.53 smooth Admin save/cancel feedback */
.adminEditSession{transition:background-color .18s ease,border-color .18s ease,opacity .18s ease}
#saveAdminBuiltinEdit{min-width:116px;transition:opacity .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease,filter .2s ease}
#saveAdminBuiltinEdit.savedState,#saveAdminBuiltinEdit:disabled.savedState{opacity:.55!important;filter:saturate(.6);cursor:default!important}

/* V0.53 Hedge editor aligned with Settings/Admin form language */
.hedgeInlineForm{background:transparent!important;color:inherit!important}
.hedgeInlineFields .fieldLabel{display:grid!important;gap:6px!important;color:var(--muted)!important;font-size:12px!important}
.hedgeInlineFields input{background:var(--input-bg)!important;color:var(--input-text)!important;border:1px solid var(--line)!important;border-radius:10px!important;min-height:42px!important;padding:10px 12px!important;font-size:13px!important;line-height:1.35!important;outline:none!important;transition:border-color .16s ease,box-shadow .16s ease}
.hedgeInlineFields input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 9%,transparent)}
.hedgeInlineFields input::placeholder{color:var(--muted)!important;opacity:.9}
.hedgeEditorTitle{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--edit-title-bg);color:var(--edit-title-text)}
:root[data-theme="light"] .hedgeFormRow>td{background:#f8fafc!important}


/* V0.54 — Admin alignment, persistent copy feedback and balance notifications */
.adminGrantPanel{max-width:none!important}
.adminGrantForm{
  display:grid!important;
  grid-template-columns:minmax(260px,2fr) minmax(145px,.75fr) minmax(165px,.85fr) minmax(220px,1.35fr) minmax(150px,.7fr)!important;
  gap:12px!important;
  align-items:end!important;
}
.adminGrantForm .btn.primary{height:42px;margin:0!important;align-self:end}
.adminGlobalMetadata{display:grid;gap:14px}
.adminGlobalToolbar{display:flex;align-items:center;gap:10px;min-height:42px}
.adminEditChooser{
  max-width:none!important;
  display:grid!important;
  grid-template-columns:minmax(220px,.7fr) minmax(420px,2fr)!important;
  gap:14px 22px!important;
  align-items:start!important;
  border-top:1px solid var(--line);
  padding-top:16px!important;
}
.adminEditChooser>.settingsBlockHead{grid-column:1;padding:4px 0!important;align-items:flex-start!important}
.adminEditChooser>.adminGlobalChainPicker{grid-column:2;max-width:none!important;width:100%}
.adminEditChooser>.formActions{grid-column:2;margin-top:0!important;justify-content:flex-end}
#adminGlobalChainSelect{min-height:220px}
#adminAddBuiltinChainForm{
  display:grid!important;
  grid-template-columns:minmax(240px,1.5fr) minmax(130px,.55fr) minmax(150px,.65fr) minmax(320px,1.8fr)!important;
  align-items:end!important;
  gap:12px!important;
}
#adminAddBuiltinChainForm>.editTitle,
#adminAddBuiltinChainForm>.formActions,
#adminAddBuiltinChainForm>.formError{grid-column:1/-1}
#adminAddBuiltinChainForm textarea{min-height:42px;max-height:100px}
.adminUsers .settingsBlockHead{display:grid!important;grid-template-columns:minmax(220px,1fr) minmax(320px,.8fr);align-items:center!important}
.adminUsers .adminPickerSearch{width:100%!important;max-width:none!important;justify-self:end}
.donationAddressActions #copyDonation.copied,
.donationAddressActions #copyDonation.copied:disabled{opacity:1!important;color:var(--accent)!important;border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 8%,transparent)!important}

.notificationStack{
  position:fixed;right:22px;bottom:22px;z-index:90;width:min(370px,calc(100vw - 28px));
  display:grid;gap:10px;pointer-events:none
}
.balanceNotice{
  position:relative;pointer-events:auto;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:13px;padding:14px 42px 13px 15px;box-shadow:0 18px 44px rgba(0,0,0,.24);
  animation:balanceNoticeIn .22s ease-out;display:grid;gap:7px
}
.balanceNotice .noticeTitle{font-weight:800;font-size:13px}
.balanceNotice .noticeChanges{display:flex;flex-wrap:wrap;gap:6px 12px;font-variant-numeric:tabular-nums}
.balanceNotice .noticeChanges span{font-size:13px;font-weight:750}
.balanceNotice .noticeChanges .up{color:var(--accent)}
.balanceNotice .noticeChanges .down{color:var(--danger)}
.balanceNotice small{color:var(--muted);font-size:11px}
.noticeClose{position:absolute;right:9px;top:9px;width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:18px;cursor:pointer}
.noticeClose:hover{background:var(--panel2);color:var(--text)}
@keyframes balanceNoticeIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
[data-theme="light"] .balanceNotice{background:#fff;box-shadow:0 16px 38px rgba(20,35,50,.14)}

@media(max-width:1100px){
  .adminGrantForm{grid-template-columns:1fr 1fr!important}
  .adminGrantForm .btn.primary{grid-column:1/-1}
  #adminAddBuiltinChainForm{grid-template-columns:1fr 1fr!important}
}
@media(max-width:760px){
  .adminGrantForm,#adminAddBuiltinChainForm,.adminEditChooser{grid-template-columns:1fr!important}
  .adminEditChooser>.settingsBlockHead,.adminEditChooser>.adminGlobalChainPicker,.adminEditChooser>.formActions{grid-column:1}
  .adminUsers .settingsBlockHead{display:flex!important;flex-direction:column;align-items:stretch!important}
  .notificationStack{right:14px;bottom:74px;width:calc(100vw - 28px)}
}


/* V0.55 — Admin hierarchy/alignment + notification history */
.adminGrantPanel{padding:0!important}
.adminGrantPanel>.settingsBlockHead,
.adminTokenCatalog>details>.catalogSummary,
.adminUsers>.settingsBlockHead{
  padding:18px 20px 12px!important;
  min-height:68px;
  box-sizing:border-box;
}
.adminGrantPanel>.settingsBlockHead h3,
.adminTokenCatalog .catalogSummary h3,
.adminUsers>.settingsBlockHead h3{
  margin:0 0 4px!important;
  line-height:1.25;
}
.adminGrantForm{
  padding:0 20px 20px!important;
  margin:0!important;
  grid-template-columns:minmax(300px,1.65fr) minmax(160px,.62fr) minmax(175px,.7fr) minmax(240px,1.15fr) minmax(165px,.62fr)!important;
}
.adminTokenCatalog .metadataBody{padding:4px 20px 20px!important}
.adminGlobalToolbar{padding:0!important;margin:0!important}
.adminUsers>.settingsBlockHead{
  grid-template-columns:minmax(260px,1fr) minmax(360px,.82fr)!important;
  gap:20px!important;
}
.adminUsers .adminTable th:first-child,
.adminUsers .adminTable td:first-child{padding-left:20px!important}
.adminUsers .adminTable th:last-child,
.adminUsers .adminTable td:last-child{padding-right:20px!important}
.adminUsers .adminTable th,
.adminUsers .adminTable td{vertical-align:middle}
.adminStats{align-items:stretch}
.adminStats .panel{padding:16px 18px!important}
.adminStats .panel small{margin:0}
.adminStats .panel b{line-height:1.15}
#adminGlobalDetails>.catalogSummary{margin:0!important}
#adminGlobalDetails[open]>.catalogSummary{padding-bottom:12px!important}
.adminEditChooser{padding-top:16px!important}
.adminEditChooser>.settingsBlockHead{min-height:auto!important;padding:0!important}
.adminEditChooser>.formActions{align-self:end}
.adminEditSession{margin-top:0}
@media(max-width:1100px){
  .adminGrantForm{grid-template-columns:1fr 1fr!important}
  .adminGrantForm .btn.primary{grid-column:1/-1}
}
@media(max-width:760px){
  .adminGrantPanel>.settingsBlockHead,.adminTokenCatalog>details>.catalogSummary,.adminUsers>.settingsBlockHead{padding-left:14px!important;padding-right:14px!important}
  .adminGrantForm{padding:0 14px 14px!important}
  .adminTokenCatalog .metadataBody{padding-left:14px!important;padding-right:14px!important}
}

/* Notification center */
.notificationArea{
  position:fixed;right:22px;bottom:22px;z-index:90;width:min(390px,calc(100vw - 28px));
  display:grid;gap:10px;justify-items:stretch;pointer-events:none
}
.notificationStack{
  position:static!important;right:auto!important;bottom:auto!important;width:100%!important;
  display:grid;gap:10px;pointer-events:none
}
.balanceNotice{
  cursor:pointer;
  transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.balanceNotice:hover{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
  box-shadow:0 20px 48px rgba(0,0,0,.28);
}
.notificationHistoryToggle{
  pointer-events:auto;justify-self:end;position:relative;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:17px;cursor:pointer;
  box-shadow:0 12px 32px rgba(0,0,0,.22);display:grid;place-items:center
}
.notificationHistoryToggle:hover,.notificationHistoryToggle.active{border-color:var(--accent);color:var(--accent)}
.notificationHistoryToggle span{
  position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;
  background:var(--accent);color:#07130e;font-size:10px;font-weight:900;display:grid;place-items:center;
  box-sizing:border-box
}
.notificationHistoryPanel{
  pointer-events:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 22px 56px rgba(0,0,0,.30);overflow:hidden;animation:balanceNoticeIn .18s ease-out
}
.notificationHistoryHead{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;
  border-bottom:1px solid var(--line)
}
.notificationHistoryHead>div:first-child{display:grid;gap:2px}
.notificationHistoryHead small{color:var(--muted);font-size:11px}
.notificationHistoryHead .row{gap:5px}
.notificationHistoryHead .historyClose{position:static}
.notificationTextBtn{
  border:0;background:transparent;color:var(--muted);padding:6px 7px;border-radius:7px;cursor:pointer;font:inherit;font-size:11px
}
.notificationTextBtn:hover{background:var(--panel2);color:var(--text)}
.notificationTextBtn:disabled{opacity:.45;cursor:default}
.notificationHistoryList{max-height:min(430px,55vh);overflow:auto}
.notificationHistoryItem{padding:12px 14px;border-bottom:1px solid var(--line);display:grid;gap:6px}
.notificationHistoryItem:last-child{border-bottom:0}
.notificationHistoryItem .noticeTitle{font-size:12px;font-weight:800}
.notificationHistoryItem .noticeChanges{display:flex;flex-wrap:wrap;gap:5px 11px;font-variant-numeric:tabular-nums}
.notificationHistoryItem .noticeChanges span{font-size:12px;font-weight:750}
.notificationHistoryItem .noticeChanges .up{color:var(--accent)}
.notificationHistoryItem .noticeChanges .down{color:var(--danger)}
.notificationHistoryItem>small{color:var(--muted);font-size:10px}
[data-theme="light"] .notificationHistoryPanel,
[data-theme="light"] .notificationHistoryToggle{background:#fff;box-shadow:0 16px 38px rgba(20,35,50,.14)}
@media(max-width:760px){
  /* Không còn thanh tab ở đáy nữa nên chuông tụt sát mép dưới được. */
  .notificationArea{right:14px;bottom:calc(18px + env(safe-area-inset-bottom));width:calc(100vw - 28px)}
}

/* V0.56 — translucent notification center + final Admin alignment */
.adminGrantBtn{
  width:100%!important;margin:0!important;min-width:165px!important;height:42px!important;
  padding:10px 14px!important;align-self:end!important;text-align:center!important;
}
.adminGrantForm .adminGrantBtn{grid-column:auto}
.adminGrantPanel>.settingsBlockHead,
.adminTokenCatalog>details>.catalogSummary,
.adminUsers>.settingsBlockHead{padding-left:20px!important;padding-right:20px!important}
.adminGrantForm,.adminTokenCatalog .metadataBody{padding-left:20px!important;padding-right:20px!important}
.adminUsers .adminTable th:first-child,.adminUsers .adminTable td:first-child{padding-left:20px!important}
.adminUsers .adminTable th:last-child,.adminUsers .adminTable td:last-child{padding-right:20px!important}

.notificationArea{width:min(410px,calc(100vw - 28px))}
.balanceNotice,
.notificationHistoryPanel,
.notificationHistoryToggle{
  border:0!important;
  background:rgba(13,20,30,.78)!important;
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  backdrop-filter:blur(18px) saturate(130%);
  box-shadow:0 18px 44px rgba(0,0,0,.20)!important;
}
.balanceNotice{border-left:0!important;padding:13px 42px 13px 13px!important}
.balanceNotice:hover{box-shadow:0 20px 48px rgba(0,0,0,.26)!important;background:rgba(18,27,39,.86)!important}
.notificationEntity{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start}
.noticeLogo{
  width:30px;height:30px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:rgba(255,255,255,.06);font-size:8px;font-weight:900;color:var(--muted)
}
.noticeLogo img{width:100%;height:100%;object-fit:cover}
.noticeTitle{font-weight:800;line-height:1.25}
.noticeChanges{margin-top:5px}
.notificationHistoryPanel{overflow:hidden}
.notificationHistoryHead{border-bottom:0!important;padding:14px 15px 10px!important;background:rgba(255,255,255,.015)}
.notificationHistoryList{
  max-height:min(520px,64vh);overflow-y:auto;overflow-x:hidden;
  scrollbar-width:none;-ms-overflow-style:none;padding:3px 0 8px
}
.notificationHistoryList::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.notificationHistoryItem{border:0!important;padding:11px 15px!important}
.notificationHistoryItem:hover{background:rgba(255,255,255,.035)}
.notificationHistoryItem .notificationEntity{grid-template-columns:32px minmax(0,1fr)}
.notificationHistoryToggle{box-shadow:0 12px 30px rgba(0,0,0,.18)!important}
.notificationHistoryToggle:hover,.notificationHistoryToggle.active{background:rgba(24,35,48,.88)!important}
.notificationHistoryToggle span{box-shadow:0 0 0 2px rgba(9,15,22,.75)}
[data-theme="light"] .balanceNotice,
[data-theme="light"] .notificationHistoryPanel,
[data-theme="light"] .notificationHistoryToggle{
  background:rgba(245,248,250,.82)!important;
  box-shadow:0 16px 38px rgba(20,35,50,.12)!important;
}
[data-theme="light"] .balanceNotice:hover{background:rgba(250,252,253,.92)!important}
[data-theme="light"] .notificationHistoryHead{background:rgba(0,0,0,.015)}
[data-theme="light"] .notificationHistoryItem:hover{background:rgba(0,0,0,.025)}
@media(max-width:1100px){.adminGrantForm .adminGrantBtn{grid-column:1/-1!important}}
@media(max-width:760px){
  .adminGrantPanel>.settingsBlockHead,.adminTokenCatalog>details>.catalogSummary,.adminUsers>.settingsBlockHead{padding-left:14px!important;padding-right:14px!important}
  .adminGrantForm,.adminTokenCatalog .metadataBody{padding-left:14px!important;padding-right:14px!important}
}

/* V0.57 — feedback, footer icons, donation copy/logo polish */
.domain .footerLine{display:flex!important;align-items:center;gap:7px;min-height:18px}
.domain .footerLine i{width:14px;min-width:14px;text-align:center;font-style:normal;color:var(--muted)}
.domain .footerLine span{display:inline-block}
.domain a.footerLine{color:var(--muted)}
.domain .supportProjectBtn.footerLine{justify-content:flex-start!important;color:var(--muted)!important;font-size:12px!important}
.domain .supportProjectBtn.footerLine:hover,.domain a.footerLine:hover{color:var(--accent)!important}
.domain .supportProjectBtn.footerLine:hover i,.domain a.footerLine:hover i{color:var(--accent)!important}
.feedbackModal{width:min(620px,calc(100vw - 28px))!important}
.feedbackForm textarea{width:100%;box-sizing:border-box;min-height:160px;background:var(--input-bg);color:var(--input-text);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;resize:vertical;outline:none}
.feedbackForm textarea:focus{border-color:var(--accent)}
.feedbackHint{display:flex;gap:8px;align-items:flex-start;color:var(--muted);padding:2px 1px 4px}
.feedbackHint small{line-height:1.45}
.feedbackSuccess{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:18px;border-radius:14px;background:var(--panel2)}
.feedbackSuccess .btn{grid-column:1/-1}
.adminFeedbackPanel>.settingsBlockHead,.adminClaimsPanel>.settingsBlockHead{padding:18px 20px 12px!important}
.adminFeedbackBtn{width:auto!important;min-width:150px!important;margin:0!important;text-align:center!important}
.adminFeedbackBody{padding:0 20px 18px}
.feedbackAdminList{display:grid;border-top:1px solid var(--line)}
.feedbackAdminItem{padding:14px 0;border-bottom:1px solid var(--line)}
.feedbackAdminItem:last-child{border-bottom:0}
.feedbackAdminMeta{display:flex;align-items:center;gap:9px}
.feedbackAdminIcon{width:30px;height:30px;border-radius:9px;background:var(--panel2);display:grid;place-items:center;color:var(--accent)}
.feedbackAdminMeta>div{display:grid;gap:2px}
.feedbackAdminMeta small{color:var(--muted);font-size:11px}
.feedbackAdminItem p{margin:9px 0 0 39px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;color:var(--text)}
.donationAddressActions #copyDonation.copied{transition:opacity .15s ease,background .15s ease,border-color .15s ease}
.donationClaimItem .feedbackAdminMeta{position:relative}
.claimStatus{margin-left:auto;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.claimStatus.claimOk{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.claimStatus.claimWarn{background:color-mix(in srgb,#f5a623 18%,transparent);color:#f5a623}
.donationClaimItem p a{color:var(--accent);text-decoration:none}
.donationClaimItem p a:hover{text-decoration:underline}
.donationClaimItem .row{margin:9px 0 0 39px}
@media(max-width:760px){.adminFeedbackBody{padding-left:14px;padding-right:14px}.feedbackAdminItem p{margin-left:0}.adminFeedbackPanel>.settingsBlockHead,.adminClaimsPanel>.settingsBlockHead{padding-left:14px!important;padding-right:14px!important}.donationClaimItem .row{margin-left:0}}

/* V0.58 — Admin feedback spacing, hedge source picker, gentle notification fading */
.adminFeedbackPanel,.adminClaimsPanel{margin-bottom:16px!important}
.adminFeedbackBtn,.adminGrantBtn{width:200px!important;min-width:200px!important;max-width:200px!important;justify-self:end!important;text-align:center!important}
.adminFeedbackPanel>.settingsBlockHead,.adminClaimsPanel>.settingsBlockHead{gap:18px}

.hedgeLocationPicker{grid-column:1/-2;position:relative;display:grid;gap:6px;min-width:0}
.hedgeLocationPicker>.fieldLabel{font-size:12px;color:var(--muted)}
.hedgeLocationTrigger{width:100%;min-height:42px;background:var(--input-bg)!important;color:var(--input-text)!important;border:1px solid var(--line)!important;border-radius:10px!important;padding:9px 12px!important}
.hedgeLocationDrop{position:relative!important;inset:auto!important;width:100%!important;box-sizing:border-box;margin-top:2px!important;max-height:320px;overflow:auto;z-index:3;background:var(--panel2)!important;border:1px solid var(--line)!important;border-radius:10px!important;padding:8px!important}
.hedgeLocationDrop .pickerSearch{margin:0 0 7px!important}
.hedgeLocationActions{display:flex;justify-content:flex-end;gap:5px;padding:0 2px 6px}
.hedgeLocationOptions{display:grid;gap:3px}
.hedgeLocationOptions label{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer;color:var(--text)}
.hedgeLocationOptions label:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.hedgeLocationOptions input{width:auto!important;min-height:auto!important;margin:0!important;accent-color:var(--accent)}
.hedgeLocationOptions label>span:last-child{display:grid;gap:2px;min-width:0}
.hedgeLocationOptions label b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hedgeLocationOptions label small{font-size:10px!important;margin:0!important;color:var(--muted)!important}
.hedgeLocationIcon{width:26px;height:26px;display:grid;place-items:center;flex:0 0 26px}
.hedgeLocationIcon .cexIcon,.hedgeLocationIcon .evmLogo,.hedgeLocationIcon .chainIcon{width:26px!important;height:26px!important;margin:0!important}
.hedgeLocationHelp{font-size:10px!important;line-height:1.35!important;margin:0!important}
.hedgeInlineFields>.hedgeInlineActions{grid-column:-2/-1}
@media(max-width:1180px){.hedgeLocationPicker,.hedgeInlineFields>.hedgeInlineActions{grid-column:1/-1}.hedgeInlineActions{justify-content:flex-start!important}}

.balanceNotice{transition:opacity 2s ease,transform 2s ease,background .15s ease,box-shadow .15s ease!important}
.balanceNotice.isFading{opacity:0!important;transform:translateY(8px) scale(.985);pointer-events:none}
.notificationHistoryPanel{transition:opacity 2s ease,transform 2s ease!important}
.notificationHistoryPanel.isFading{opacity:0!important;transform:translateY(8px) scale(.99);pointer-events:none}


/* V0.59 — Hedge location picker polish + light notification badge */
.hedgeLocationActionRow{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}
.hedgeLocationActionRow .hedgeLocationPicker{
  grid-column:auto!important;
  min-width:0;
}
.hedgeLocationActionRow>.hedgeInlineActions{
  grid-column:auto!important;
  padding-top:21px!important;
  align-self:start!important;
}
.hedgeLocationActionRow>.hedgeInlineActions .btn{
  height:42px!important;
  min-height:42px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.hedgeLocationOptions{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:8px!important;
  row-gap:4px!important;
}
.hedgeLocationOptions label{
  min-width:0;
}
.hedgeLocationIcon{
  width:28px!important;
  height:28px!important;
  flex:0 0 28px!important;
}
.hedgeLocationIcon .cexIcon,
.hedgeLocationIcon .evmLogo,
.hedgeLocationIcon .chainIcon{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  overflow:hidden!important;
}
.hedgeLocationIcon .evmLogo img,
.hedgeLocationIcon .chainIcon img,
.hedgeLocationIcon .cexIcon img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.hedgeLocationDrop{
  scrollbar-width:thin;
  scrollbar-color:rgba(130,142,158,.72) transparent;
}
.hedgeLocationDrop::-webkit-scrollbar{width:8px;height:8px}
.hedgeLocationDrop::-webkit-scrollbar-track{background:transparent!important}
.hedgeLocationDrop::-webkit-scrollbar-thumb{
  background:rgba(130,142,158,.72)!important;
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box!important;
}
.hedgeLocationDrop::-webkit-scrollbar-thumb:hover{background:rgba(155,166,180,.9)!important;background-clip:padding-box!important}
#loadFuturesHedges.hedgeAddBtn{
  min-height:42px!important;
  padding:9px 16px!important;
  background:transparent!important;
  border-color:var(--accent)!important;
  color:var(--accent)!important;
  font-weight:600!important;
}
#loadFuturesHedges.hedgeAddBtn:hover{
  background:color-mix(in srgb,var(--accent) 7%,transparent)!important;
}
[data-theme="light"] .notificationHistoryToggle span{
  background:#18a57a!important;
  color:#fff!important;
  box-shadow:none!important;
  border:2px solid rgba(255,255,255,.96)!important;
  font-weight:800!important;
}
@media(max-width:900px){
  .hedgeLocationActionRow{grid-template-columns:1fr}
  .hedgeLocationActionRow>.hedgeInlineActions{
    padding-top:0!important;
    justify-content:flex-start!important;
  }
}
@media(max-width:720px){
  .hedgeLocationOptions{grid-template-columns:1fr!important}
}

/* Sync pill health states. A sync that failed, or that came back with notices (e.g. a chain whose
   RPC is down and is now showing its last known balance), must not look identical to a clean one —
   otherwise stale numbers read as live. Colour only; layout is untouched. */
.syncStatus.warn .syncNormal{color:#f5a623}
.syncStatus.bad .syncNormal{color:var(--danger)}
.syncStatus.warn:hover .syncNormal,.syncStatus.bad:hover .syncNormal{display:inline-block}
.syncStatus.warn:hover .syncForce,.syncStatus.bad:hover .syncForce{display:none}

/* Panel "Dữ liệu & tài khoản" trong Settings: tải dữ liệu về, đăng xuất thiết bị khác, xoá
   tài khoản. Nút xoá dùng màu cảnh báo vì thao tác đó là vĩnh viễn. */
.accountDataPanel{margin-bottom:16px}
.accountDataActions{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 4px}
.accountDataNote{padding:8px 20px 18px;font-size:12px;line-height:1.5}
.dangerBtn{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}
.dangerBtn:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:var(--danger)}
.promptInput{width:100%;box-sizing:border-box;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font:inherit}
.promptInput:focus{outline:none;border-color:var(--accent)}
@media(max-width:760px){.accountDataActions,.accountDataNote{padding-left:14px;padding-right:14px}.accountDataActions .btn{width:100%}}

/* Terms of Use + Privacy Policy. Ba bề mặt dùng chung một bộ style: dòng chấp thuận ở màn hình
   đăng nhập, modal trong app, và hai trang riêng /terms.html + /privacy.html. Trang riêng cố ý
   mượn đúng ngôn ngữ thị giác của app — brand, panel, kicker, màu accent.

   MÀU: mọi màu ở đây đi qua token, và token được định nghĩa lại cho theme sáng ngay bên dưới.
   Trước đây khối này hardcode màu tối (#fff, #c7d3e5, #0a111a…) nên ở theme sáng thì chữ hover
   trắng trên nền trắng — mất hẳn. Thêm màu mới thì thêm token, đừng viết thẳng mã màu. */
:root{
 --legal-ink:#c7d3e5;          /* chữ thân bài */
 --legal-ink-strong:#dbe4f2;   /* chữ mở đầu, gạch đầu dòng */
 --legal-head:#fff;            /* tiêu đề mục */
 --legal-link:var(--accent);   /* chữ link Terms/Privacy */
 --legal-hover:#fff;           /* chữ khi rê chuột */
 --legal-surface:#0a111a;      /* nền khối "At a glance" */
 --legal-key-bg:#0e1b16;       /* nền mục quan trọng */
 --legal-key-line:#33513f;
 --legal-key-ink:#c4d6ca;
 --legal-topbar:rgba(11,16,24,.86);
}
:root[data-theme="light"]{
 --legal-ink:#3f4b5c;
 --legal-ink-strong:#222d3d;
 --legal-head:#111827;
 --legal-link:#12805f;         /* đậm hơn --accent: accent chỉ đạt 3.97:1, chưa đủ cho chữ 12px */
 --legal-hover:#0b5740;        /* KHÔNG để #fff: nền sáng thì chữ hover sẽ biến mất */
 --legal-surface:#f6f9fc;
 --legal-key-bg:#f2faf7;       /* cùng tông với banner .security ở theme sáng */
 --legal-key-line:#cfe8de;
 --legal-key-ink:#3a5a4f;
 --legal-topbar:rgba(255,255,255,.9);
}
.legalConsent{margin:16px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}
.legalLink{border:0;background:none;padding:0;font:inherit;color:var(--legal-link);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.legalLink:hover{color:var(--legal-hover)}

/* --- nội dung văn bản, dùng chung modal + trang riêng --- */
.legalDoc{font-size:13.5px;line-height:1.7;color:var(--legal-ink)}
.legalIntro{margin:0 0 18px;color:var(--legal-ink-strong);font-size:14.5px;line-height:1.65}
.legalSummary{border:1px solid var(--line);background:var(--legal-surface);border-radius:14px;padding:16px 18px;margin:0 0 26px}
.legalSummary>b{display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.legalSummary ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.legalSummary li{position:relative;padding-left:20px;color:var(--legal-ink-strong)}
.legalSummary li:before{content:"";position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.legalSection{margin-bottom:26px;scroll-margin-top:96px}
.legalSection:last-child{margin-bottom:0}
.legalSection h3{margin:0 0 10px;font-size:15px;color:var(--legal-head);letter-spacing:-.2px}
.legalSection p{margin:0 0 10px}
.legalSection p:last-child{margin-bottom:0}
.legalSection.legalKey{border:1px solid var(--legal-key-line);background:var(--legal-key-bg);border-radius:14px;padding:18px 18px 16px}
.legalSection.legalKey h3{color:var(--accent)}
.legalSection.legalKey p{color:var(--legal-key-ink)}

/* --- modal trong app --- */
.legalModal{width:min(780px,100%);display:flex;flex-direction:column;max-height:min(86vh,920px)}
.legalModalHead{align-items:center;gap:12px}
.legalModalHead h2{margin:0}
.legalScroll{overflow:auto;margin:16px -6px 0;padding:0 6px;flex:1;min-height:0}
.legalModalFoot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;margin-top:16px;border-top:1px solid var(--line);flex-wrap:wrap}
.legalModalFoot a{color:var(--muted);font-size:12px}
.legalModalFoot a:hover{color:var(--legal-hover)}
.legalLinksRow{padding-top:0}

/* Ô cam kết read-only ở form thêm tài khoản sàn.
   `.form input` đặt padding 11px/12px + viền + nền cho MỌI input, kể cả checkbox — trình duyệt
   áp padding đó lên ô tick, làm ô phình ra và đẩy chữ ra xa, nhìn như bị lệch. Nên phải reset
   hẳn về một ô 16px vuông. Đặt ở .inlineCheckbox để mọi ô tick trong form đều thẳng hàng. */
.inlineCheckbox input[type="checkbox"],.readOnlyAck input[type="checkbox"]{
 -webkit-appearance:checkbox;appearance:checkbox;
 width:16px!important;height:16px!important;min-height:0!important;
 padding:0!important;border:0!important;background:none!important;border-radius:0!important;
 flex:0 0 auto;accent-color:var(--accent);cursor:pointer}
.readOnlyAck{font-size:12px;line-height:1.55;color:var(--muted);display:flex;gap:9px;align-items:flex-start;margin:0!important}
/* Nhãn nhiều dòng: canh ô tick theo DÒNG ĐẦU, không phải theo giữa cả khối. 16px ô tick so với
   line-box ~18.6px (12px × 1.55) nên lệch 1px là vừa. */
.readOnlyAck input[type="checkbox"]{margin:1px 0 0!important}
.readOnlyAck b{color:var(--accent)}

/* --- trang riêng /terms.html + /privacy.html --- */
.legalPage{padding:0}
.legalTopbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;border-bottom:1px solid var(--line);background:var(--legal-topbar);backdrop-filter:blur(10px)}
.legalBrand{text-decoration:none;color:inherit}
.legalBackBtn{text-decoration:none;font-size:13px;padding:8px 14px;white-space:nowrap}
.legalShell{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;max-width:1120px;margin:0 auto;padding:30px 28px 90px;align-items:start}
.legalTocInner{position:sticky;top:96px;display:grid;gap:10px}
.legalTocInner .kicker{padding-left:12px}
.legalToc nav{display:grid;gap:2px;max-height:calc(100vh - 230px);overflow:auto}
.legalToc nav a{color:var(--muted);text-decoration:none;font-size:12.5px;line-height:1.35;padding:8px 12px;border-radius:9px;border-left:2px solid transparent}
.legalToc nav a:hover{background:var(--panel2);color:var(--legal-head)}
.legalToc nav a.on{color:var(--accent);border-left-color:var(--accent);background:var(--panel2)}
.legalTocSwitch{display:grid;gap:2px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}
.legalTocSwitch a{color:var(--muted);text-decoration:none;font-size:12.5px;padding:8px 12px;border-radius:9px}
.legalTocSwitch a:hover{background:var(--panel2);color:var(--legal-head)}
.legalMain{display:grid;gap:14px;min-width:0}
.legalHero{padding:26px 28px}
.legalHero h1{font-size:30px;margin:8px 0 10px;letter-spacing:-.6px;color:var(--legal-head)}
.legalHeroNote{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.legalHeroNote span{display:block;margin-top:4px;font-size:12px}
.legalBody{padding:28px}
.legalPageFoot{color:var(--muted);font-size:12px;padding:4px 4px 0}
.legalPageFoot a{color:var(--muted);text-decoration:none}
.legalPageFoot a:hover{color:var(--legal-hover)}
@media(max-width:900px){
 .legalShell{grid-template-columns:1fr;gap:16px;padding:20px 16px 60px}
 .legalToc{order:2}
 .legalTocInner{position:static}
 .legalToc nav{max-height:none;grid-template-columns:1fr 1fr}
 .legalTopbar{padding:14px 16px}
 .legalHero{padding:22px 18px}
 .legalHero h1{font-size:24px}
 .legalBody{padding:20px 18px}
 .legalModal{max-height:92vh}
}
@media(max-width:560px){.legalToc nav{grid-template-columns:1fr}.brandProject{font-size:14px}}

/* ── Sửa lỗi hiển thị trên điện thoại (đo bằng Chromium ở 375/390/412px) ────────────────
   Địa chỉ ví là một chuỗi liền không có khoảng trắng (0x… 40 ký tự, hoặc base58 của Solana).
   .simpleItem là flex, mà flex item mặc định min-width:auto — nghĩa là nó KHÔNG co nhỏ hơn nội
   dung. Chuỗi địa chỉ vì thế đẩy cả dòng rộng ra ~472px, vượt màn hình, và hai nút sửa/xoá bị
   đẩy hẳn ra ngoài mép phải: trên điện thoại không bấm được nữa. Đây là lỗi chức năng, không
   chỉ là xấu. min-width:0 cho phép co lại, overflow-wrap:anywhere cho phép ngắt giữa chuỗi. */
.simpleItem>.entityTitle{min-width:0;flex:1 1 auto}
.entityTitle>span{min-width:0}
.entityTitle small{overflow-wrap:anywhere}
.itemActions{flex:0 0 auto}

@media(max-width:700px){
 /* Vùng chạm tối thiểu: ngón tay cần ~40px, không phải 22px như con trỏ chuột. */
 .eyeBtn{width:36px;height:36px}
 .syncStatus{height:36px!important}
 .actionIcon{width:38px;height:38px}
 /* Địa chỉ dài: xuống dòng thay vì đẩy ngang. */
 .entityTitle small{word-break:break-all;line-height:1.45}
 /* Hai link Terms/Privacy ở cuối Settings đứng riêng một dòng, không nằm trong câu, nên
    chúng cần vùng chạm chứ không phải kích thước của link trong đoạn văn. */
 .legalLinksRow{display:flex;gap:4px;align-items:center;padding-bottom:6px}
 .legalLinksRow .legalLink{min-height:36px;display:inline-flex;align-items:center;padding:0 6px}
}
.walletHint{margin-top:16px;padding:12px 14px;border:1px solid var(--legal-key-line);background:var(--legal-key-bg);border-radius:12px;font-size:12px;line-height:1.55;color:var(--legal-key-ink)}
.walletHint b{color:var(--accent)}

/* ── Điều hướng trên điện thoại: nút Menu trong hàng tiêu đề + ngăn kéo ─────────────────
   Không còn thanh tab ở đáy màn hình, cũng không còn thanh riêng ở trên. Nút Menu nằm ngay
   trong hàng tiêu đề, sát mép phải, nên KHÔNG tốn thêm một dòng nào của màn hình.
   Trước đây đáy màn hình là dải 9 tab cuộn ngang: nhìn không biết có bao nhiêu mục, phải
   vuốt mới thấy hết, và "Others Fund" bị xuống hai dòng. */
.titleLine{display:flex;align-items:center;gap:12px}
.titleMenuBtn{display:none;margin-left:auto;flex:0 0 auto;align-items:center;gap:7px;
 min-height:38px;padding:0 12px 0 8px;
 border:1px solid var(--line);border-radius:11px;background:var(--panel2);color:var(--text,#fff);
 font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.titleMenuBtn .titleMenuIcon{width:24px;height:24px;flex:0 0 24px}
.titleMenuBtn.open{border-color:var(--accent);color:var(--accent)}
:root[data-theme="light"] .titleMenuBtn{color:#172033}
:root[data-theme="light"] .titleMenuBtn.open{color:#0d7a53}
/* Bật nút lên ở cỡ điện thoại. Phải đặt SAU khai báo display:none ở trên — cùng độ ưu tiên
   thì quy tắc đứng sau mới thắng; để nó ở media query đầu file là nút không bao giờ hiện. */
@media(max-width:900px){.titleMenuBtn{display:flex}}

/* ── Một hàng duy nhất chứa: sync · tên account · đổi portfolio · sáng/tối · Menu ────────
   Sáu thứ trên màn 375px chỉ còn 347px dùng được, nên mỗi món phải co lại và KHÔNG được
   xuống dòng. Nút Log out chuyển vào trong ngăn kéo — để lại thì hàng này tràn mất. */
@media(max-width:900px){
 .desktopOnly{display:none!important}
 /* Mặc định ở ≤700px tên account bị ẩn đi; giờ phải hiện lại. */
 .topActions .loginAccount{display:flex!important;padding:0;min-width:0}
 .topActions{gap:7px;column-gap:7px}
 /* Thứ tự trên điện thoại đặt bằng CSS chứ không đổi thứ tự trong HTML — đổi HTML thì
    hàng trên bản máy tính cũng bị xáo theo, mà chỗ đó không có gì cần sửa. */
 .topActions .syncStatus{order:1}
 .topActions .loginAccount{order:2}
 .topActions .portfolioSwitch{order:3}
 .topActions #themeBtn{order:4}
 .topActions .titleMenuBtn{order:5}
 /* nowrap là BẮT BUỘC: để mặc định thì địa chỉ ví bị bẻ đôi, khối account cao lên 3 dòng và
    kéo cả hàng từ 36px thành 41px. */
 .topActions .loginAccount b,.topActions .loginAccount span{white-space:nowrap}
 .topActions .loginAccount b{font-size:10px;line-height:1.25}
 .topActions .loginAccount span{font-size:11px;line-height:1.25}
 .topActions .controlH{height:36px!important;min-height:36px!important}
 /* phải có !important — có quy tắc ở trên khoá cứng 40px!important cho .themeBare. */
 .topActions .themeBare{width:32px!important;min-width:32px!important;font-size:17px}
 .topActions .portfolioSwitchTrigger{font-size:16px}
 .syncStatus{width:auto!important;min-width:0!important;padding:0 6px!important;
  grid-template-columns:7px auto!important;font-size:10px}
 .titleMenuBtn{min-height:36px;padding:0 10px 0 6px;font-size:13px;gap:5px}
 .titleMenuBtn .titleMenuIcon{width:20px;height:20px;flex:0 0 20px}
}
/* Hết chỗ thật sự (màn rất hẹp) thì bỏ chữ "Synced", giữ lại chấm màu và đồng hồ đếm —
   vẫn đủ để biết đang đồng bộ hay đã xong. */
@media(max-width:360px){
 .topActions .syncNormal{font-size:9px}
 .titleMenuBtn span{display:none}
 .titleMenuBtn{padding:0 7px}
}
.navDrawerLogout{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 11px 11px;
 color:var(--danger)!important;padding-top:16px!important}

/* Ngăn kéo đổ xuống từ trên. Lớp phủ nhận cú chạm để đóng lại. */
.navDrawerBack{position:fixed;inset:0;z-index:20;background:rgba(2,6,12,.6);backdrop-filter:blur(4px);
 display:flex;align-items:flex-start}
:root[data-theme="light"] .navDrawerBack{background:rgba(235,241,246,.55)}
.navDrawer{width:100%;background:var(--panel);border-bottom:1px solid var(--line);
 border-radius:0 0 18px 18px;
 padding:calc(10px + env(safe-area-inset-top)) 12px 14px;
 display:grid;gap:2px;max-height:92vh;overflow:auto}
.navDrawer button{display:block;width:100%;text-align:left;border:0;background:transparent;
 color:var(--muted);font:inherit;font-size:16px;padding:14px 16px;border-radius:11px;cursor:pointer}
.navDrawer button.active{background:var(--panel2);color:var(--accent);font-weight:600}
/* Ẩn chuông đi khi ngăn kéo mở, tránh đè lên mục cuối. */
.navDrawerBack~.notificationArea{display:none}
/* Trạng thái chờ ví trong lúc đăng nhập qua WalletConnect trên điện thoại. Nút "Open <ví>"
   là BẮT BUỘC chứ không phải trang trí: iOS chặn điều hướng không nằm trong cử chỉ người
   dùng, nên bước ký không thể tự nhảy sang app — phải để người dùng tự bấm. */
.wcWait{display:block;margin-bottom:10px;color:var(--muted);font-size:13px;line-height:1.5}
.wcOpenBtn{display:block;text-align:center;text-decoration:none;padding:13px 16px;font-size:15px}


/* ── Bảng trên màn hình dọc ──────────────────────────────────────────────────────────────
   Trước đây cột Price bị ép `col.priceCol{width:0}`. Thẻ <col> chỉ gợi ý bề rộng, nó KHÔNG
   ẩn ô: <th>/<td> vẫn được vẽ, nên chữ "Price ↕" tràn sang nằm trong cột Value, dãy giá trị
   mồ côi trôi giữa hai cột, và tệ nhất là vùng chạm của nút sắp xếp rộng đúng 0px — bấm vào
   chữ "Price" thì trúng cột Value và bảng sắp xếp sai thứ. Ẩn ô thì phải ẩn bằng display:none.
   (Trong assetTable thứ tự cột là: 1 Asset · 2 Amount · 3 Price · 4 Value.) */
@media(max-width:700px){
 .assetTable thead th:nth-child(3),
 .assetTable tbody td:nth-child(3){display:none}
 /* BẪY: display:none xoá hẳn ô khỏi hàng, nên hàng chỉ còn 3 ô và chúng bị gán lại lần lượt
    cho col 1-2-3. Tức là cột Value bỗng nhận bề rộng của <col class="priceCol">. Vì vậy ở đây
    vô hiệu hoá colgroup và đặt bề rộng thẳng trên ô tiêu đề — nth-child đếm theo DOM nên
    :nth-child(4) vẫn là Value dù ô thứ 3 đang ẩn.
    (Đây cũng là lý do bản cũ dùng width:0 thay vì display:none — nhưng width:0 thì ô vẫn được
    vẽ, chữ tràn sang cột bên và nút sắp xếp rộng 0px.) */
 .assetTable col{width:auto}
 /* Số tiền là thứ dài nhất ("$41,235.77" cần ~70px ở 13px) nên cột Value phải rộng ngang cột
    Asset. */
 .assetTable thead th:nth-child(1){width:33%}
 .assetTable thead th:nth-child(2){width:29%}
 .assetTable thead th:nth-child(4){width:38%}
 /* Còn 3 cột thì vừa màn hình, không cần ép rộng 700px rồi bắt người dùng vuốt ngang. */
 .tablewrap .assetTable{min-width:0;width:100%}
 /* Đệm ngang 8px mỗi bên ăn mất 16px trên tổng ~250px ở máy hẹp — đủ để cắt mất số tiền. */
 .assetTable th,.assetTable td{padding-left:5px;padding-right:5px}
 .assetTable td.num{font-size:13px;font-variant-numeric:tabular-nums}
 .assetTable th.num{font-size:10px}
}
/* Máy rất hẹp (Galaxy Fold gập, 320px): còn ~250px cho ba cột. Chữ số nhỏ thêm một nấc và
   đệm hẹp lại, nếu không thì "$41,235.77" bị cắt mất mấy chữ số cuối — mà đó lại đúng là con
   số người ta mở app ra để xem. */
@media(max-width:360px){
 .assetTable th,.assetTable td{padding-left:3px;padding-right:3px}
 .assetTable td.num{font-size:12px}
 .assetTable thead th:nth-child(1){width:30%}
 .assetTable thead th:nth-child(2){width:28%}
 .assetTable thead th:nth-child(4){width:42%}
}

/* Các bảng còn lại (Positions 10 cột, Open Orders 8 cột, Hedge Monitor 10-11 cột) thì không
   cách nào nhét vừa màn dọc, nên vẫn cuộn ngang. Hai việc làm cho nó dùng được:
   1. Ghim cột đầu (tên tài sản / sàn) — cuộn sang phải vẫn biết đang xem dòng nào. Không có
      nó thì sang tới cột thứ 5 là mất dấu hoàn toàn.
   2. Vệt mờ ở mép phải để thấy là còn nội dung bên kia; trước đó nhìn như bảng đã hết. */
:root{--table-sticky-bg:#111925}
:root[data-theme="light"]{--table-sticky-bg:#fff}
@media(max-width:900px){
 .tablewrap{position:relative;
  background:linear-gradient(to right,transparent calc(100% - 26px),color-mix(in srgb,var(--table-sticky-bg) 88%,transparent));
  background-attachment:local,scroll}
 .tablewrap table:not(.assetTable) th:first-child,
 .tablewrap table:not(.assetTable) td:first-child{
  position:sticky;left:0;z-index:2;background:var(--table-sticky-bg);
  box-shadow:1px 0 0 var(--line)}
 /* Ô dính phải mờ đục hẳn, nếu không chữ các cột phía sau chạy xuyên qua khi cuộn. */
 .tablewrap table:not(.assetTable) thead th:first-child{z-index:3}
}
