*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0a0908;--surface:#111009;--surface2:#161410;--surface3:#1d1b16;
  --border:rgba(255,255,255,0.07);--border-gold:rgba(201,169,110,0.25);
  --text:#f0ede8;--text-soft:#8a8479;--text-faint:#4a4640;
  --gold:#c9a96e;--gold-hover:#dbbf86;--gold-faint:rgba(201,169,110,0.08);--gold-faint2:rgba(201,169,110,0.14);
  --green:#4e9b6a;--green-bg:rgba(78,155,106,0.12);
  --amber:#c9903a;--amber-bg:rgba(201,144,58,0.12);
  --red:#c94a4a;--red-bg:rgba(201,74,74,0.12);
  --font-body:'DM Sans',system-ui,sans-serif;
  --font-mono:'DM Mono','Courier New',monospace;
  --sidebar-w:220px;--topbar-h:52px;
  --r-sm:4px;--r-md:6px;--r-lg:10px;
  --ease:160ms cubic-bezier(0.16,1,0.3,1);
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;--s10:2.5rem;
  --xs:clamp(0.7rem,0.65rem + 0.2vw,0.75rem);
  --sm:clamp(0.8rem,0.75rem + 0.2vw,0.875rem);
  --base:clamp(0.875rem,0.8rem + 0.25vw,1rem);
  --lg:clamp(1rem,0.9rem + 0.4vw,1.125rem);
  --xl:clamp(1.125rem,1rem + 0.5vw,1.375rem);
}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-family:var(--font-body);font-size:var(--sm);color:var(--text);background:var(--bg);display:flex;min-height:100dvh;overflow-x:hidden}
img,svg{display:block;max-width:100%}
button{cursor:pointer;font:inherit;color:inherit;border:none;background:none}
input,select{font:inherit;color:inherit}
a{text-decoration:none;color:inherit}
::selection{background:rgba(201,169,110,0.2);color:var(--text)}
:focus-visible{outline:1px solid var(--gold);outline-offset:2px;border-radius:var(--r-sm)}

/* ---- LAYOUT ---- */
.sidebar{width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);height:100dvh;position:sticky;top:0;overflow-y:auto;overflow-x:hidden;transition:width var(--ease);z-index:100}
.main-wrap{flex:1;display:flex;flex-direction:column;min-width:0}
.content{flex:1;padding:var(--s6);overflow-y:auto;background:var(--bg)}

/* ---- SIDEBAR ---- */
.sidebar-logo{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);flex-shrink:0;min-height:var(--topbar-h)}
.sidebar-logo-img{width:24px;height:24px;object-fit:contain;flex-shrink:0}
.sidebar-logo-text{font-family:'DM Sans',sans-serif;font-style:italic;font-weight:600;font-size:1.05rem;color:var(--gold);white-space:nowrap;letter-spacing:0.04em}
.sidebar-nav{flex:1;padding:var(--s3) 0;overflow-y:auto}
.nav-group{margin-bottom:var(--s4)}
.nav-group-label{display:block;font-size:0.6rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);padding:var(--s3) var(--s5) var(--s1)}
.nav-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s5);font-size:var(--sm);color:var(--text-soft);border-left:2px solid transparent;transition:color var(--ease),background var(--ease),border-color var(--ease);white-space:nowrap}
.nav-item:hover{color:var(--text);background:var(--gold-faint)}
.nav-item.active{color:var(--gold);border-left-color:var(--gold);background:var(--gold-faint2)}
.nav-icon{width:15px;height:15px;flex-shrink:0;stroke-width:1.75}
.nav-badge{margin-left:auto;font-size:0.6rem;background:var(--green-bg);color:var(--green);padding:1px 6px;border-radius:20px;font-weight:600}
.nav-lock-icon{width:11px;height:11px;margin-left:auto;color:var(--text-faint);flex-shrink:0}
.sidebar-footer{padding:var(--s4) var(--s5);border-top:1px solid var(--border);flex-shrink:0}
.sidebar-user{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.user-avatar,.topbar-avatar{width:28px;height:28px;border-radius:50%;background:var(--gold-faint2);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;font-size:0.6rem;font-weight:600;color:var(--gold);flex-shrink:0}
.user-info{flex:1;min-width:0}
.user-name{display:block;font-size:var(--xs);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{display:block;font-size:0.6rem;color:var(--text-faint)}
.sidebar-sla{display:flex;align-items:center;gap:var(--s2);font-size:0.6rem;color:var(--text-faint);margin-top:var(--s2)}
.sla-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s ease-in-out infinite;flex-shrink:0}
.sidebar-login-btn{display:flex;align-items:center;gap:var(--s2);width:100%;background:var(--gold);color:#fff;font-weight:600;font-size:var(--xs);padding:var(--s2) var(--s4);border-radius:var(--r-md);transition:background var(--ease);margin-bottom:var(--s2)}
.sidebar-login-btn:hover{background:var(--gold-hover)}
.sidebar-login-btn svg{width:13px;height:13px}
.sidebar-logout-btn{display:flex;align-items:center;gap:var(--s2);width:100%;color:var(--text-soft);font-size:var(--xs);padding:var(--s2) var(--s3);border-radius:var(--r-md);border:1px solid var(--border);transition:all var(--ease);margin-top:var(--s2)}
.sidebar-logout-btn:hover{border-color:var(--red);color:var(--red)}
.sidebar-logout-btn svg{width:13px;height:13px}
.sidebar-beta-note{text-align:center;font-size:0.6rem;color:var(--text-faint);letter-spacing:0.06em;text-transform:uppercase}

/* ---- NAV LOCK ---- */
.nav-item-wrap{position:relative;display:block}
.nav-locked{opacity:0.35;cursor:not-allowed;pointer-events:none}
body.logged-in .nav-locked{opacity:1;cursor:pointer;pointer-events:auto}
body.logged-in .nav-locked:hover{background:var(--gold-faint)}
body.logged-in .nav-lock-icon{display:none}
.nav-locked-tip{display:none;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--surface3);color:var(--text);font-size:0.6rem;white-space:nowrap;padding:3px 10px;border-radius:var(--r-sm);border:1px solid var(--border-gold);pointer-events:none;z-index:400}
body:not(.logged-in) .nav-item-wrap:hover .nav-locked-tip{display:block}

/* ---- TOPBAR ---- */
.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:var(--s4);padding:0 var(--s5);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:90;flex-shrink:0}
.topbar-left{display:flex;align-items:center;gap:var(--s3);flex-shrink:0}
.topbar-center{flex:1;max-width:420px;margin:0 auto}
.topbar-right{display:flex;align-items:center;gap:var(--s3);flex-shrink:0;margin-left:auto}
.sidebar-toggle{color:var(--text-soft);padding:var(--s2);border-radius:var(--r-sm)}
.sidebar-toggle:hover{color:var(--text)}
.sidebar-toggle svg{width:18px;height:18px}
.breadcrumb{display:flex;align-items:center;gap:var(--s2);font-size:var(--xs)}
.breadcrumb-root{color:var(--text-faint)}
.breadcrumb-sep{width:12px;height:12px;color:var(--text-faint)}
.breadcrumb-active{color:var(--text);font-weight:500}
.search-bar{display:flex;align-items:center;gap:var(--s2);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s2) var(--s3);transition:border-color var(--ease)}
.search-bar.inline{min-width:200px}
.search-bar:focus-within{border-color:var(--border-gold)}
.search-icon{width:13px;height:13px;color:var(--text-faint);flex-shrink:0}
.search-bar input{background:none;border:none;outline:none;font-size:var(--xs);color:var(--text);width:100%}
.search-bar input::placeholder{color:var(--text-faint)}
.topbar-icon-btn{position:relative;color:var(--text-soft);padding:var(--s2);border-radius:var(--r-sm)}
.topbar-icon-btn:hover{color:var(--text)}
.topbar-icon-btn svg{width:16px;height:16px}
.notif-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--amber);border:1.5px solid var(--surface)}
.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);border:1px solid var(--border);color:var(--text-soft);background:var(--surface2);transition:all var(--ease);flex-shrink:0;cursor:pointer}
.theme-toggle:hover{border-color:var(--border-gold);color:var(--gold);background:var(--gold-faint)}
.theme-toggle svg{width:15px;height:15px}

/* ---- PAGES ---- */
.page{display:none;animation:fadeUp .2s ease both}
.page.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6);flex-wrap:wrap}
.page-title{font-size:var(--xl);font-weight:600;line-height:1.2;color:var(--text)}
.page-sub{font-size:var(--xs);color:var(--text-soft);margin-top:var(--s1);display:flex;align-items:center;gap:var(--s2)}
.page-actions{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s ease-in-out infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.stub-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4);min-height:320px;color:var(--text-soft);font-size:var(--sm)}

/* ---- BUTTONS ---- */
.btn-primary-sm{display:inline-flex;align-items:center;gap:var(--s2);background:var(--gold);color:#fff;font-size:var(--xs);font-weight:600;padding:var(--s2) var(--s4);border-radius:var(--r-md);transition:background var(--ease);white-space:nowrap}
.btn-primary-sm:hover{background:var(--gold-hover)}
.btn-primary-sm svg{width:13px;height:13px}
.btn-secondary{display:inline-flex;align-items:center;gap:var(--s2);background:var(--surface2);border:1px solid var(--border);color:var(--text-soft);font-size:var(--xs);padding:var(--s2) var(--s3);border-radius:var(--r-md);transition:all var(--ease);white-space:nowrap}
.btn-secondary:hover{border-color:var(--border-gold);color:var(--text)}
.btn-secondary svg{width:13px;height:13px}
.btn-ghost{display:inline-flex;align-items:center;gap:var(--s2);color:var(--text-soft);font-size:var(--xs);padding:var(--s2) var(--s3);border-radius:var(--r-md);border:1px solid transparent;transition:all var(--ease);white-space:nowrap}
.btn-ghost:hover{border-color:var(--border);color:var(--text)}
.btn-ghost svg{width:13px;height:13px}

/* ---- DROPDOWN ---- */
.dropdown-wrap{position:relative}
.dropdown-trigger svg:last-child{width:12px;height:12px;transition:transform var(--ease)}
.dropdown-wrap.open .dropdown-trigger svg:last-child{transform:rotate(180deg)}
.dropdown-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:200;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-md);min-width:160px;box-shadow:0 8px 24px rgba(0,0,0,.4);overflow:hidden}
.dropdown-wrap.open .dropdown-menu{display:block}
.dropdown-item{padding:var(--s2) var(--s4);font-size:var(--xs);color:var(--text-soft);cursor:pointer;transition:background var(--ease),color var(--ease)}
.dropdown-item:hover{background:var(--gold-faint);color:var(--text)}
.dropdown-item.active{color:var(--gold);background:var(--gold-faint)}

/* ---- TICKER TAPE ---- */
.ticker-wrap{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s2) 0;margin-bottom:var(--s4);white-space:nowrap}
.ticker-track{display:inline-flex;animation:ticker 80s linear infinite}
.ticker-track:hover{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:var(--s2);padding:0 var(--s5);border-right:1px solid var(--border);font-size:var(--xs)}
.ticker-item img{width:14px;height:14px;border-radius:50%}
.ticker-symbol{font-weight:600;color:var(--text)}
.ticker-price{color:var(--text-soft);font-variant-numeric:tabular-nums}
.ticker-change.up{color:var(--green)}
.ticker-change.down{color:var(--red)}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ---- KPI GRIDS ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s3);margin-bottom:var(--s5)}
.markets-kpi-grid{grid-template-columns:repeat(5,1fr)}
.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4);transition:border-color var(--ease),box-shadow var(--ease)}
.kpi-card:hover{border-color:var(--border-gold);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.kpi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2)}
.kpi-label{font-size:var(--xs);color:var(--text-soft)}
.kpi-icon{width:14px;height:14px;flex-shrink:0}
.kpi-icon.positive{color:var(--green)}
.kpi-icon.neutral{color:var(--text-faint)}
.kpi-value{font-size:var(--xl);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1;margin-bottom:var(--s2)}
.kpi-delta{display:flex;align-items:center;gap:var(--s1);font-size:var(--xs)}
.kpi-delta svg{width:11px;height:11px}
.kpi-delta.positive{color:var(--green)}
.kpi-delta.neutral{color:var(--text-faint)}
.kpi-delta.negative{color:var(--red)}
.sparkline{width:100%;height:24px;margin-top:var(--s3);opacity:.7}
.compliance-bar{height:4px;background:var(--surface3);border-radius:2px;margin-top:var(--s3);overflow:hidden}
.compliance-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:2px;transition:width 1.2s cubic-bezier(0.16,1,0.3,1)}

/* ---- CHARTS ---- */
.chart-row{display:flex;gap:var(--s4);margin-bottom:var(--s5)}
.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s5);overflow:hidden}
.chart-card.wide{flex:1;min-width:0}
.chart-card.narrow{width:280px;flex-shrink:0}
.chart-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}
.chart-title{font-size:var(--sm);font-weight:600;color:var(--text)}
.chart-sub{font-size:var(--xs);color:var(--text-soft);margin-top:2px}
.chart-wrap{position:relative;min-height:180px}
.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:160px}
.chart-tabs{display:flex;gap:2px;background:var(--surface3);border-radius:var(--r-md);padding:2px;flex-shrink:0}
.chart-tab{padding:3px 10px;font-size:var(--xs);color:var(--text-soft);border-radius:var(--r-sm);transition:all var(--ease);white-space:nowrap}
.chart-tab.active{background:var(--surface2);color:var(--gold)}
.donut-legend{display:flex;flex-direction:column;gap:var(--s2);margin-top:var(--s3);padding:0 var(--s2)}
.legend-item{display:flex;align-items:center;gap:var(--s2);font-size:var(--xs)}
.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.legend-left{display:flex;align-items:center;gap:var(--s2);flex:1;color:var(--text-soft)}
.legend-val{color:var(--text);font-variant-numeric:tabular-nums}

/* ---- GAINERS / LOSERS ---- */
.gainer-item{display:flex;align-items:center;justify-content:space-between;padding:var(--s2) 0;border-bottom:1px solid var(--border);transition:all var(--ease);cursor:pointer}
.gainer-item:last-child{border-bottom:none}
.gainer-item:hover{background:var(--gold-faint);padding-left:var(--s2);padding-right:var(--s2);margin:0 calc(-1*var(--s2));border-radius:var(--r-sm)}
.gainer-left{display:flex;align-items:center;gap:var(--s2)}
.gainer-icon{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:var(--surface3)}
.gainer-symbol{font-size:var(--xs);font-weight:600;color:var(--text)}
.gainer-name{font-size:0.6rem;color:var(--text-faint);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- TABLES ---- */
.bottom-row{display:flex;gap:var(--s4)}
.table-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;min-width:0}
.table-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);flex-wrap:wrap}
.table-controls{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.data-table{width:100%;border-collapse:collapse;font-size:var(--xs)}
.data-table th{padding:var(--s2) var(--s4);text-align:left;font-size:0.6rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint);background:var(--surface2);border-bottom:1px solid var(--border);white-space:nowrap}
.data-table td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-soft);white-space:nowrap}
.data-table tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:var(--gold-faint)}
.sort-col{cursor:pointer;user-select:none;transition:color var(--ease)}
.sort-col:hover{color:var(--text-soft)}
.sort-arrow{font-size:0.55rem;opacity:.6}
.sparkline-cell{width:80px}
.table-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--s3) var(--s5);border-top:1px solid var(--border);gap:var(--s4);flex-wrap:wrap}
.table-count{font-size:var(--xs);color:var(--text-faint)}
.markets-last-update{font-size:var(--xs);color:var(--text-faint);white-space:nowrap}

/* ---- BADGES ---- */
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:0.6rem;font-weight:600;letter-spacing:0.04em}
.badge.green{background:var(--green-bg);color:var(--green)}
.badge.amber{background:var(--amber-bg);color:var(--amber)}
.badge.red{background:var(--red-bg);color:var(--red)}
.badge.neutral{background:var(--surface3);color:var(--text-faint)}

/* ---- CHAIN PILL ---- */
.chain-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:0.6rem;font-weight:600;background:var(--surface3);color:var(--text-faint);border:1px solid var(--border);cursor:pointer;transition:all var(--ease)}
.chain-pill.active{background:var(--gold-faint2);color:var(--gold);border-color:var(--border-gold)}

/* ---- SIDE PANEL ---- */
.side-panel{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--s4)}
.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4)}
.compliance-items,.chain-items{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s3)}
.comp-item,.chain-item{display:flex;align-items:center;justify-content:space-between}
.comp-left,.chain-info{display:flex;align-items:center;gap:var(--s2);font-size:var(--xs);color:var(--text-soft)}
.comp-dot,.chain-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.comp-dot.green,.chain-dot.green{background:var(--green)}
.comp-dot.amber,.chain-dot.amber{background:var(--amber)}
.comp-dot.red{background:var(--red)}
.chain-name{font-size:var(--xs);color:var(--text-soft)}
.chain-stats{display:flex;align-items:center;gap:var(--s3)}
.chain-val{font-size:var(--xs);color:var(--text);font-variant-numeric:tabular-nums}
.chain-pct{font-size:0.6rem;color:var(--text-faint)}
.quick-actions{display:flex;flex-direction:column;gap:var(--s2);margin-top:var(--s3)}
.qa-btn{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-md);border:1px solid var(--border);font-size:var(--xs);color:var(--text-soft);transition:all var(--ease)}
.qa-btn:hover{border-color:var(--border-gold);color:var(--gold);background:var(--gold-faint)}
.qa-btn svg{width:13px;height:13px;flex-shrink:0}

/* ---- PAGINATION ---- */
.pagination{display:flex;gap:var(--s1)}
.page-btn{min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--xs);border-radius:var(--r-sm);border:1px solid var(--border);color:var(--text-soft);transition:all var(--ease)}
.page-btn:hover{border-color:var(--border-gold);color:var(--gold)}
.page-btn.active{background:var(--gold);color:#0a0908;border-color:var(--gold)}

/* ---- ASSET FILTERS ---- */
.asset-filters{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap}
.filter-group{display:flex;gap:var(--s2);flex-wrap:wrap}

/* ---- TOAST ---- */
.toast-container{position:fixed;bottom:var(--s6);right:var(--s6);z-index:500;display:flex;flex-direction:column;gap:var(--s2);pointer-events:none}
.toast{background:var(--surface2);border:1px solid var(--border-gold);border-radius:var(--r-md);padding:var(--s3) var(--s5);font-size:var(--xs);color:var(--text);box-shadow:0 4px 20px rgba(0,0,0,.4);animation:toastIn .3s cubic-bezier(0.16,1,0.3,1) both;pointer-events:auto}
.toast.out{animation:toastOut .25s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(20px)}}

/* ---- NOTIFICATIONS ---- */
.notif-panel{position:fixed;top:var(--topbar-h);right:0;width:320px;background:var(--surface);border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 0 0 var(--r-lg);z-index:300;transform:translateY(-8px);opacity:0;pointer-events:none;transition:all var(--ease);max-height:calc(100dvh - var(--topbar-h));overflow-y:auto}
.notif-panel.open{transform:none;opacity:1;pointer-events:auto}
.notif-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);font-size:var(--sm);font-weight:600}
.notif-panel-header button svg{width:14px;height:14px}
.notif-list{display:flex;flex-direction:column}
.notif-item{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s5);border-bottom:1px solid var(--border);transition:background var(--ease)}
.notif-item:hover{background:var(--gold-faint)}
.notif-item.unread{background:rgba(201,169,110,0.04)}
.notif-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-top:4px}
.notif-dot.read{background:var(--surface3)}
.notif-title{font-size:var(--xs);color:var(--text);margin-bottom:2px}
.notif-time{font-size:0.6rem;color:var(--text-faint)}
.overlay{display:none;position:fixed;inset:0;z-index:250}
.overlay.show{display:block}

/* ---- TOOLTIP ---- */
.tooltip-wrap{position:relative}
.tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface3);color:var(--text);font-size:0.6rem;white-space:nowrap;padding:3px 8px;border-radius:var(--r-sm);border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity var(--ease);z-index:400}
.tooltip-wrap:hover .tooltip{opacity:1}

/* ---- SPINNER ---- */
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- AUTH MODAL ---- */
.auth-overlay{position:fixed;inset:0;z-index:1000;background:rgba(5,4,3,0.85);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--s4);transition:opacity .3s ease}
.auth-overlay.hidden{opacity:0;pointer-events:none}
.auth-modal{background:var(--surface);border:1px solid var(--border-gold);border-radius:12px;width:100%;max-width:420px;padding:var(--s8);box-shadow:0 24px 64px rgba(0,0,0,.7);animation:modalIn .3s cubic-bezier(0.16,1,0.3,1) both;max-height:92dvh;overflow-y:auto}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(0.97)}to{opacity:1;transform:none}}
.auth-logo{display:flex;align-items:center;gap:var(--s3);justify-content:center;margin-bottom:var(--s6)}
.auth-logo-text{font-family:'Jost','Futura','Century Gothic',sans-serif;font-weight:300;font-size:1.4rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold)}
.auth-notice{display:flex;align-items:flex-start;gap:var(--s3);background:rgba(201,144,58,0.08);border:1px solid rgba(201,144,58,0.25);border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:var(--xs);color:var(--text-soft);margin-bottom:var(--s5);line-height:1.6}
.auth-notice strong{color:var(--amber)}
.auth-notice-icon{width:14px;height:14px;color:var(--amber);flex-shrink:0;margin-top:1px}
.auth-tabs{display:flex;gap:2px;background:var(--surface3);border-radius:var(--r-md);padding:3px;margin-bottom:var(--s5)}
.auth-tab{flex:1;padding:var(--s2) var(--s3);font-size:var(--xs);font-weight:500;color:var(--text-soft);border-radius:var(--r-sm);transition:all var(--ease)}
.auth-tab.active{background:var(--surface2);color:var(--gold);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.auth-form{display:flex;flex-direction:column;gap:var(--s4)}
.auth-field{display:flex;flex-direction:column;gap:var(--s1)}
.auth-label{font-size:var(--xs);color:var(--text-soft);font-weight:500}
.auth-input-wrap{position:relative;display:flex;align-items:center}
.auth-input-icon{position:absolute;left:var(--s3);width:14px;height:14px;color:var(--text-faint);pointer-events:none}
.auth-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s3) var(--s3) var(--s3) calc(var(--s3) + 14px + var(--s2));font-size:var(--sm);color:var(--text);transition:border-color var(--ease);outline:none}
.auth-input:focus{border-color:var(--border-gold)}
.auth-input::placeholder{color:var(--text-faint)}
.auth-select{appearance:none;cursor:pointer}
.auth-pw-toggle{position:absolute;right:var(--s3);color:var(--text-faint);padding:var(--s1);border-radius:var(--r-sm);transition:color var(--ease)}
.auth-pw-toggle:hover{color:var(--gold)}
.auth-pw-toggle svg{width:14px;height:14px}
.auth-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.auth-check-label{display:flex;align-items:center;gap:var(--s2);font-size:var(--xs);color:var(--text-soft);cursor:pointer}
.auth-check-label input{accent-color:var(--gold)}
.auth-link{font-size:var(--xs);color:var(--gold);transition:color var(--ease);white-space:nowrap}
.auth-link:hover{color:var(--gold-hover)}
.auth-error{font-size:var(--xs);color:var(--red);min-height:16px;display:none;background:var(--red-bg);padding:var(--s2) var(--s3);border-radius:var(--r-sm);border:1px solid rgba(201,74,74,.2)}
.auth-error.show{display:block}
.auth-submit{display:flex;align-items:center;justify-content:center;gap:var(--s2);background:var(--gold);color:#0a0908;font-weight:600;font-size:var(--sm);padding:var(--s3);border-radius:var(--r-md);transition:background var(--ease);margin-top:var(--s2)}
.auth-submit:hover{background:var(--gold-hover)}
.btn-spinner{width:16px;height:16px;border:2px solid rgba(10,9,8,.3);border-top-color:#0a0908;border-radius:50%;animation:spin .7s linear infinite}
.auth-invite-note{display:flex;align-items:flex-start;gap:var(--s2);background:var(--gold-faint);border:1px solid var(--border-gold);border-radius:var(--r-md);padding:var(--s3);font-size:var(--xs);color:var(--text-soft);line-height:1.6}
.auth-footer{display:flex;align-items:center;justify-content:center;gap:var(--s2);margin-top:var(--s5);font-size:0.65rem;color:var(--text-faint)}
.auth-footer a{color:var(--text-faint);transition:color var(--ease)}
.auth-footer a:hover{color:var(--gold)}

/* ---- NEWS FEED ---- */
.news-item-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s5);border-left:2px solid transparent;text-decoration:none;transition:background var(--ease),border-color var(--ease);border-bottom:1px solid var(--border)}
.news-item-row:last-child{border-bottom:none}
.news-item-row:hover{background:var(--gold-faint);border-left-color:var(--gold)}
.news-item-inner{flex:1;min-width:0}
.news-item-title{font-size:var(--sm);font-weight:500;color:var(--text);line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-item-meta{display:flex;align-items:center;gap:var(--s2);margin-top:3px;font-size:var(--xs);color:var(--text-faint)}
.news-source{color:var(--gold);font-weight:500;font-size:0.6rem;text-transform:uppercase;letter-spacing:0.06em}
.news-meta-dot{opacity:.4}
.news-ext-icon{width:13px;height:13px;color:var(--text-faint);flex-shrink:0;opacity:0;transition:opacity var(--ease)}
.news-item-row:hover .news-ext-icon{opacity:1}
.news-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s10);color:var(--text-faint);font-size:var(--sm)}

/* ---- SIDEBAR COLLAPSED ---- */
.sidebar.collapsed{width:60px}
.sidebar.collapsed .sidebar-logo-text,
.sidebar.collapsed .nav-item>span,
.sidebar.collapsed .nav-group-label,
.sidebar.collapsed .sidebar-beta-note,
.sidebar.collapsed .sidebar-sla,
.sidebar.collapsed .user-info,
.sidebar.collapsed .sidebar-login-btn span,
.sidebar.collapsed .sidebar-logout-btn span,
.sidebar.collapsed .nav-badge,
.sidebar.collapsed .nav-lock-icon,
.sidebar.collapsed .nav-locked-tip{display:none !important}
.sidebar.collapsed .sidebar-logo,
.sidebar.collapsed .nav-item{justify-content:center;padding:var(--s3) 0}
.sidebar.collapsed .nav-icon{margin:0}
.sidebar.collapsed .sidebar-login-btn,
.sidebar.collapsed .sidebar-logout-btn{justify-content:center;padding:var(--s3) 0}
.sidebar.collapsed .user-avatar{margin:0 auto}

/* ---- MOBILE BACKDROP ---- */
.mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(5,4,3,.7);backdrop-filter:blur(4px);z-index:199}
.mobile-backdrop.show{display:block}

/* ---- LIGHT MODE ---- */
[data-theme="light"]{
  --bg:#f5f3ef;--surface:#fff;--surface2:#f0ede8;--surface3:#e8e4dd;
  --border:rgba(0,0,0,0.08);--border-gold:rgba(160,120,60,0.3);
  --text:#1a1814;--text-soft:#6b6560;--text-faint:#aaa69f;
  --gold:#a0783c;--gold-hover:#8a6530;--gold-faint:rgba(160,120,60,0.08);--gold-faint2:rgba(160,120,60,0.14);
  --green:#2d7a4f;--green-bg:rgba(45,122,79,0.1);
  --amber:#a06820;--amber-bg:rgba(160,104,32,0.1);
  --red:#a03030;--red-bg:rgba(160,48,48,0.1);
}
[data-theme="light"] .sidebar{box-shadow:2px 0 12px rgba(0,0,0,.06)}
[data-theme="light"] .topbar{box-shadow:0 1px 8px rgba(0,0,0,.06)}
[data-theme="light"] .kpi-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08)}
[data-theme="light"] .auth-modal{box-shadow:0 24px 64px rgba(0,0,0,.15)}
[data-theme="light"] .auth-overlay{background:rgba(200,195,185,.7)}
[data-theme="light"] .mobile-backdrop{background:rgba(180,175,165,.6)}
[data-theme="light"] .ticker-wrap{background:var(--surface2)}
[data-theme="light"] .data-table tbody tr:hover td{background:rgba(160,120,60,0.05)}

/* ---- TABLET 768–1023 ---- */
@media(max-width:1023px){
  .sidebar{width:60px;overflow:hidden}
  .sidebar-logo-text,.nav-item>span:not(.nav-badge),.nav-badge,.nav-lock-icon,
  .nav-group-label,.user-info,.sidebar-beta-note,.sidebar-sla,
  .sidebar-login-btn span,.sidebar-logout-btn span{display:none !important}
  .sidebar-logo,.nav-item{justify-content:center;padding:var(--s3) 0}
  .nav-icon{margin:0 auto}
  .sidebar-login-btn,.sidebar-logout-btn{justify-content:center;padding:var(--s3) 0;width:100%}
  .user-avatar{margin:0 auto}
  .kpi-grid,.markets-kpi-grid{grid-template-columns:repeat(3,1fr)}
}

/* ---- MOBILE <768 ---- */
@media(max-width:767px){
  .sidebar{position:fixed;left:-280px;width:260px;height:100dvh;z-index:200;transition:left .3s cubic-bezier(0.16,1,0.3,1);overflow-y:auto;overflow-x:hidden}
  .sidebar.mobile-open{left:0}
  .sidebar.mobile-open .sidebar-logo-text,
  .sidebar.mobile-open .nav-item>span,
  .sidebar.mobile-open .nav-group-label,
  .sidebar.mobile-open .sidebar-beta-note,
  .sidebar.mobile-open .sidebar-sla,
  .sidebar.mobile-open .sidebar-login-btn span,
  .sidebar.mobile-open .sidebar-logout-btn span{display:inline !important}
  .sidebar.mobile-open .user-info{display:flex !important}
  .sidebar.mobile-open .nav-badge{display:inline !important}
  .sidebar.mobile-open .nav-item{justify-content:flex-start;padding:var(--s3) var(--s4)}
  .sidebar.mobile-open .nav-icon{margin:0}
  .sidebar.mobile-open .sidebar-logo{justify-content:flex-start}
  .sidebar.mobile-open .sidebar-login-btn,
  .sidebar.mobile-open .sidebar-logout-btn{justify-content:flex-start;padding:var(--s2) var(--s4)}
  .sidebar.mobile-open .user-avatar{margin:0}
  body:not(.logged-in) .sidebar.mobile-open .nav-locked .nav-lock-icon{display:inline !important}
  .main-wrap{margin-left:0 !important}
  .topbar{padding:0 var(--s3);gap:var(--s2)}
  .topbar-center,.breadcrumb-root,.breadcrumb-sep{display:none}
  .topbar-right{gap:var(--s2)}
  .kpi-grid,.markets-kpi-grid{grid-template-columns:repeat(2,1fr) !important}
  .chart-row{flex-direction:column}
  .chart-card.wide,.chart-card.narrow{width:100% !important;min-width:unset !important}
  .bottom-row{flex-direction:column}
  .side-panel{width:100%}
  .data-table{min-width:700px}
  .page-header{flex-direction:column;align-items:flex-start;gap:var(--s3)}
  .page-actions{flex-wrap:wrap;width:100%}
  .content{padding:var(--s4)}
  .auth-modal{padding:var(--s5);margin:var(--s4)}
  .news-item-title{white-space:normal}
  .news-item-row{padding:var(--s3) var(--s4)}
  .ticker-wrap{display:none}
}

@media(max-width:380px){
  .kpi-grid,.markets-kpi-grid{grid-template-columns:1fr !important}
  .topbar-right{gap:var(--s1)}
  .topbar-icon-btn{display:none}
}
/* ---- GLOBAL SEARCH RESULTS ---- */
.global-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface2);border:1px solid var(--border-gold);border-radius:var(--r-lg);z-index:300;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.sr-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;transition:background var(--ease);border-bottom:1px solid var(--border)}
.sr-item:last-child{border-bottom:none}
.sr-item:hover,.sr-item:focus{background:var(--gold-faint);outline:none}
.sr-type{font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--gold);background:var(--gold-faint2);padding:2px 6px;border-radius:20px;white-space:nowrap;flex-shrink:0}
.sr-info{display:flex;flex-direction:column;min-width:0}
.sr-label{font-size:var(--xs);color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-label mark{background:rgba(201,169,110,0.3);color:var(--gold);border-radius:2px;padding:0 1px}
.sr-sub{font-size:0.6rem;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-empty{padding:var(--s4) var(--s5);font-size:var(--xs);color:var(--text-faint);text-align:center}

/* ---- AUDIT LOG ---- */
.audit-severity-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}
.audit-severity-dot.success{background:var(--green)}
.audit-severity-dot.info{background:var(--gold)}
.audit-severity-dot.warning{background:var(--amber)}
.audit-severity-dot.danger{background:var(--red)}

/* ---- CHAIN MONITOR ---- */
.chain-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4)}
.chain-monitor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s5);transition:border-color var(--ease)}
.chain-monitor-card:hover{border-color:var(--border-gold)}
.chain-monitor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s4)}
.chain-status-orb{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.chain-status-orb.green{background:var(--green);box-shadow:0 0 6px var(--green)}
.chain-status-orb.amber{background:var(--amber);box-shadow:0 0 6px var(--amber)}
.chain-monitor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.chain-stat-item{display:flex;flex-direction:column;gap:2px}
.chain-stat-label{font-size:0.6rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em}
.chain-stat-val{font-size:var(--xs);color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}
.text-amber{color:var(--amber) !important}

/* ---- REPORTS ---- */
.reports-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4)}
.report-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s5);transition:border-color var(--ease),box-shadow var(--ease)}
.report-card:hover{border-color:var(--border-gold);box-shadow:0 4px 20px rgba(0,0,0,.3)}
.report-icon-wrap{width:36px;height:36px;border-radius:var(--r-md);background:var(--gold-faint2);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold)}
.report-icon-wrap svg{width:16px;height:16px}

/* ---- SETTINGS ---- */
.settings-grid{display:flex;flex-direction:column;gap:var(--s6)}
.settings-section{}
.settings-section-title{font-size:var(--xs);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-faint);margin-bottom:var(--s3)}
.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border)}
.settings-row:last-child{border-bottom:none}
.settings-label-wrap{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.settings-label{font-size:var(--xs);color:var(--text);font-weight:500}
.settings-hint{font-size:0.6rem;color:var(--text-faint)}
.settings-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s2) var(--s3);font-size:var(--xs);color:var(--text);outline:none;min-width:200px;transition:border-color var(--ease)}
.settings-input:focus{border-color:var(--border-gold)}
.settings-toggle{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0;cursor:pointer}
.settings-toggle input{opacity:0;width:0;height:0;position:absolute}
.settings-toggle-track{position:absolute;inset:0;background:var(--surface3);border:1px solid var(--border);border-radius:20px;transition:all var(--ease)}
.settings-toggle input:checked + .settings-toggle-track{background:var(--gold);border-color:var(--gold)}
.settings-toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform var(--ease);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.settings-toggle input:checked + .settings-toggle-track .settings-toggle-thumb{transform:translateX(16px)}

/* ---- NOTIFICATIONS MARK READ ---- */
.notif-mark-read{font-size:var(--xs);color:var(--gold);cursor:pointer;transition:color var(--ease)}
.notif-mark-read:hover{color:var(--gold-hover)}

/* ---- RESPONSIVE NEW PAGES ---- */
@media(max-width:1023px){
  .chain-cards-grid{grid-template-columns:1fr 1fr}
  .reports-grid{grid-template-columns:1fr}
}
@media(max-width:767px){
  .chain-cards-grid{grid-template-columns:1fr}
  .reports-grid{grid-template-columns:1fr}
  .settings-row{flex-direction:column;align-items:flex-start;gap:var(--s3)}
  .settings-input{min-width:100%;width:100%}
}


.news-thumb-wrap{width:32px;height:32px;border-radius:var(--r-md);background:var(--surface3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.news-source-logo{width:18px;height:18px;object-fit:contain}



@media screen and (max-width: 768px) {
  .sidebar-logo-text {
    margin-left: 18px;
  }
}
