:root{
  --bg:#0a0d12; --surface:rgba(255,255,255,.035); --surface-2:rgba(255,255,255,.055);
  --border:rgba(255,255,255,.085); --gold:#e3b34e; --gold-dim:rgba(227,179,78,.14);
  --blue:#5b8def; --green:#3ecf8e; --red:#e5484d; --hi:#edeff3; --lo:#8b93a7; --dim:#565f73;
  --term-bg:#070809; --term-line:#1c2128; --term-accent:#6fd3c7;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--hi);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
body{background-image:radial-gradient(ellipse 900px 500px at 15% -10%, rgba(227,179,78,.07), transparent 60%),radial-gradient(ellipse 700px 500px at 100% 10%, rgba(91,141,239,.06), transparent 60%);}
a{color:inherit;text-decoration:none;}
.mono{font-family:'IBM Plex Mono',monospace;}
.serif{font-family:'Fraunces',serif;}
.up{color:var(--green);} .down{color:var(--red);}
button{font-family:inherit;}
::-webkit-scrollbar{width:8px;height:8px;} ::-webkit-scrollbar-thumb{background:#242833;border-radius:4px;}

.glass{background:var(--surface);border:1px solid var(--border);border-radius:16px;backdrop-filter:blur(20px);}
.shell{max-width:1240px;margin:0 auto;padding:24px 32px 60px;}
nav{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--border);}
.brand{display:flex;align-items:center;gap:10px;}
.brand-mark{width:26px;height:26px;border-radius:6px;background:linear-gradient(135deg,var(--gold),#a97a1f);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:700;font-size:14px;color:#0a0d12;}
.brand-name{font-family:'Fraunces',serif;font-weight:600;font-size:17px;}
.brand-name span{color:var(--gold);}
.nav-links{display:flex;gap:26px;font-size:13.5px;color:var(--lo);}
.nav-links a:hover{color:var(--hi);}
.nav-right{display:flex;align-items:center;gap:12px;}
.wallet-pill{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:6px 14px 6px 8px;font-size:13px;}
.wallet-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);}
.pill-btn{font-size:12.5px;padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--hi);cursor:pointer;}
.pill-btn:hover{border-color:var(--dim);}
.pill-btn.gold{background:linear-gradient(135deg,var(--gold),#a97a1f);color:#0a0d12;font-weight:600;border:none;}

.market-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px;}
.market-head h1{font-family:'Fraunces',serif;font-size:28px;margin:0 0 4px;}
.market-head p{color:var(--lo);font-size:13px;margin:0;}
.filter-row{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.filter-chip{font-size:12px;padding:6px 13px;border-radius:20px;border:1px solid var(--border);color:var(--lo);cursor:pointer;background:none;}
.filter-chip.active{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);}
.market-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.mkt-card{padding:18px;transition:transform .15s ease, border-color .15s ease;display:block;}
.mkt-card:hover{transform:translateY(-3px);border-color:var(--dim);}
.mkt-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.mkt-avatar{width:42px;height:42px;border-radius:10px;background:linear-gradient(160deg,#232733,#12151b);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:600;font-size:16px;}
.mkt-name{font-weight:600;font-size:14px;margin-top:8px;color:var(--hi);}
.mkt-ticker{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--gold);}
.mkt-cat{font-size:11px;color:var(--dim);margin-top:2px;}
.mkt-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:14px;}
.mkt-price{font-family:'IBM Plex Mono',monospace;font-size:17px;}
.mkt-chg{font-family:'IBM Plex Mono',monospace;font-size:12px;}
.spark{width:70px;height:28px;}

.breadcrumb{font-size:12px;color:var(--dim);margin-bottom:18px;}
.breadcrumb .cur{color:var(--lo);}
.hero-grid{display:grid;grid-template-columns:340px 1fr;gap:22px;margin-bottom:22px;}
.profile-card{padding:22px;display:flex;flex-direction:column;gap:16px;}
.profile-photo{width:100%;aspect-ratio:1/1;border-radius:12px;background:radial-gradient(circle at 30% 20%, rgba(227,179,78,.35), transparent 55%),linear-gradient(160deg,#232733,#12151b);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.profile-photo .initials{font-family:'Fraunces',serif;font-size:56px;font-weight:600;color:rgba(255,255,255,.85);}
.verified-badge{position:absolute;bottom:10px;right:10px;background:rgba(10,13,18,.75);border:1px solid var(--gold);color:var(--gold);font-size:10.5px;padding:3px 8px;border-radius:20px;font-family:'IBM Plex Mono',monospace;}
.name-row{display:flex;align-items:baseline;justify-content:space-between;}
.p-name{font-family:'Fraunces',serif;font-size:22px;font-weight:600;}
.p-ticker{font-family:'IBM Plex Mono',monospace;color:var(--gold);font-size:13px;}
.p-role{color:var(--lo);font-size:13px;margin-top:-8px;}
.p-bio{font-size:13px;line-height:1.55;color:#c2c7d1;}
.tags{display:flex;flex-wrap:wrap;gap:6px;}
.tag{font-size:11px;padding:4px 9px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);color:var(--lo);}
.stat-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.stat-mini{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.stat-mini .label{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;}
.stat-mini .val{font-family:'IBM Plex Mono',monospace;font-size:15px;margin-top:2px;}
.price-panel{padding:24px 26px;display:flex;flex-direction:column;gap:18px;}
.price-top{display:flex;align-items:flex-start;justify-content:space-between;}
.cap-label{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;}
.cap-value{font-family:'Fraunces',serif;font-size:40px;font-weight:600;}
.cap-change{font-family:'IBM Plex Mono',monospace;font-size:14px;margin-top:6px;}
.chip-buy,.chip-sell{font-weight:600;font-size:13.5px;padding:11px 22px;border-radius:9px;border:none;cursor:pointer;}
.chip-buy{background:linear-gradient(135deg,var(--green),#2ba873);color:#08150f;}
.chip-sell{background:rgba(229,72,77,.14);color:var(--red);border:1px solid rgba(229,72,77,.4);}
.action-row{display:flex;gap:10px;}
#chartCanvas{width:100%;height:210px;display:block;cursor:crosshair;}
.chart-wrap{position:relative;}
.chart-tooltip{position:absolute;pointer-events:none;background:rgba(13,16,23,.95);border:1px solid var(--border);border-radius:8px;padding:8px 11px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;display:none;}
.curve-note{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--dim);border-top:1px solid var(--border);padding-top:14px;}
.curve-note .dot{width:6px;height:6px;border-radius:50%;background:var(--blue);}
.cols3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;}
.panel{padding:20px;}
.panel-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.panel-h h3{font-family:'Fraunces',serif;font-size:15px;font-weight:600;margin:0;}
.panel-h .sub{font-size:11px;color:var(--dim);font-family:'IBM Plex Mono',monospace;}
.ob-row{display:grid;grid-template-columns:1fr 1fr 1fr;font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:3px 0;position:relative;}
.ob-row .depth{position:absolute;top:0;bottom:0;opacity:.14;right:0;}
.ob-row>span{position:relative;z-index:1;}
.ob-ask .depth{background:var(--red);} .ob-bid .depth{background:var(--green);}
.ob-price-ask{color:var(--red);} .ob-price-bid{color:var(--green);}
.ob-mid{text-align:center;padding:8px 0;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--lo);border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);margin:6px 0;}
.ob-head{display:grid;grid-template-columns:1fr 1fr 1fr;font-size:10.5px;color:var(--dim);text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:4px;}
.inv-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.inv-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#3a4152,#20242e);border:1px solid var(--border);flex-shrink:0;}
.inv-name{font-size:12.5px;font-weight:500;}
.inv-pct{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--lo);}
.inv-bar{width:100%;height:3px;background:rgba(255,255,255,.06);border-radius:3px;margin-top:5px;overflow:hidden;}
.inv-bar-fill{height:100%;background:var(--gold);}
.act-row{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.act-dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex-shrink:0;}
.act-dot.g{background:var(--green);} .act-dot.r{background:var(--red);} .act-dot.b{background:var(--blue);}
.act-text{font-size:12.5px;line-height:1.4;} .act-time{font-size:10.5px;color:var(--dim);margin-top:2px;}
.footer-bar{margin-top:22px;display:flex;justify-content:space-between;padding:16px 22px;font-size:12px;color:var(--dim);flex-wrap:wrap;gap:8px;}
.footer-bar .fs-item{font-family:'IBM Plex Mono',monospace;color:var(--lo);}
.footer-bar b{color:var(--hi);}

.dash-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:20px;}
.kpi-card{padding:18px 20px;}
.kpi-label{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.kpi-val{font-family:'IBM Plex Mono',monospace;font-size:24px;}
.kpi-sub{font-size:11.5px;margin-top:6px;}
table{width:100%;border-collapse:collapse;font-size:12.5px;}
th{text-align:left;font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;padding-bottom:9px;border-bottom:1px solid var(--border);font-weight:500;}
td{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.pos-ticker{font-family:'IBM Plex Mono',monospace;color:var(--gold);}
.badge{font-size:10.5px;padding:3px 9px;border-radius:20px;font-family:'IBM Plex Mono',monospace;}
.badge.ok{background:rgba(62,207,142,.12);color:var(--green);}
.badge.pending{background:rgba(227,179,78,.12);color:var(--gold);}
.badge.bad{background:rgba(229,72,77,.12);color:var(--red);}
.ref-box{padding:20px;}
.ref-link{display:flex;gap:8px;margin:10px 0;}
.ref-link input{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--hi);font-family:'IBM Plex Mono',monospace;font-size:12px;}
.dash-2col{display:grid;grid-template-columns:2fr 1fr;gap:20px;}
.auth-box{max-width:380px;margin:60px auto;padding:30px;}
.auth-box h1{font-family:'Fraunces',serif;font-size:24px;margin:0 0 6px;}
.auth-box p{color:var(--lo);font-size:13px;margin:0 0 20px;}
.form-group{margin-bottom:16px;}
.form-group label{display:block;font-size:11.5px;color:var(--dim);margin-bottom:6px;}
.form-group input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--hi);font-size:13.5px;}
.form-error{background:rgba(229,72,77,.12);border:1px solid rgba(229,72,77,.3);color:var(--red);padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:16px;}
.form-success{background:rgba(62,207,142,.12);border:1px solid rgba(62,207,142,.3);color:var(--green);padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:16px;}
.btn-full{width:100%;padding:12px;border-radius:9px;border:none;background:linear-gradient(135deg,var(--gold),#a97a1f);color:#0a0d12;font-weight:600;font-size:14px;cursor:pointer;}
.auth-switch{text-align:center;font-size:12.5px;color:var(--dim);margin-top:16px;}
.auth-switch a{color:var(--gold);}

/* ---------- admin (terminal) ---------- */
.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:var(--term-bg);}
.admin-sidebar{border-right:1px solid var(--term-line);padding:20px 0;}
.admin-logo{padding:0 20px 20px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--term-accent);border-bottom:1px solid var(--term-line);margin-bottom:10px;}
.admin-nav a{display:block;padding:10px 20px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--lo);border-left:2px solid transparent;}
.admin-nav a:hover{color:var(--hi);background:rgba(255,255,255,.02);}
.admin-nav a.active{color:var(--term-accent);border-left-color:var(--term-accent);background:rgba(111,211,199,.05);}
.admin-nav .sep{padding:14px 20px 6px;font-size:10px;color:#3a4048;text-transform:uppercase;letter-spacing:.08em;}
.admin-main{padding:26px 32px;}
.admin-h1{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--hi);margin:0 0 4px;}
.admin-sub{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--dim);margin-bottom:22px;}
.term-panel{background:rgba(255,255,255,.02);border:1px solid var(--term-line);border-radius:8px;padding:18px;margin-bottom:20px;}
.term-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
.term-kpi .val{font-family:'IBM Plex Mono',monospace;font-size:22px;color:var(--hi);}
.term-kpi .label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--dim);text-transform:uppercase;margin-bottom:6px;}
.term-table th{color:#4a5260;font-family:'IBM Plex Mono',monospace;}
.term-table td{font-family:'IBM Plex Mono',monospace;font-size:12px;border-bottom:1px solid var(--term-line);}
.term-actions form{display:inline;}
.term-actions button{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:5px 10px;border-radius:5px;border:1px solid var(--term-line);background:none;color:var(--lo);cursor:pointer;margin-right:5px;}
.term-actions button.approve{color:var(--green);border-color:rgba(62,207,142,.3);}
.term-actions button.reject{color:var(--red);border-color:rgba(229,72,77,.3);}
.term-actions button:hover{background:rgba(255,255,255,.04);}
.back-to-app{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--dim);}
.back-to-app:hover{color:var(--term-accent);}
.settings-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--term-line);}
.settings-row:last-child{border-bottom:none;}
.settings-label{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--hi);}
.settings-desc{font-size:11px;color:var(--dim);margin-top:2px;}
.settings-input{background:rgba(255,255,255,.03);border:1px solid var(--term-line);border-radius:6px;padding:7px 11px;color:var(--hi);font-family:'IBM Plex Mono',monospace;font-size:12.5px;width:110px;}
.log-line{font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:6px 0;border-bottom:1px solid var(--term-line);color:var(--lo);}
.log-line b{color:var(--hi);}
.log-line .tag{color:var(--term-accent);}
.search-input{background:rgba(255,255,255,.03);border:1px solid var(--term-line);border-radius:6px;padding:8px 12px;color:var(--hi);font-family:'IBM Plex Mono',monospace;font-size:12.5px;width:260px;margin-bottom:16px;}

@media (max-width:900px){
  .hero-grid,.cols3,.market-grid,.dash-grid,.dash-2col,.term-grid4{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .admin-shell{grid-template-columns:1fr;}
}
