@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  --void:#07070f;--deep:#0c0c1a;--surface:#101020;--raised:#15152a;
  --card:#191930;--border:#1f1f3a;--border-hi:#2a2a50;
  --ink:#eae8f5;--ink-dim:#8480a8;--ink-ghost:#33305a;
  --signal:#6c47ff;--signal-lite:rgba(108,71,255,0.14);--signal-glow:rgba(108,71,255,0.30);
  --fire:#ff4f2b;--fire-lite:rgba(255,79,43,0.12);
  --gold:#f5c330;--gold-lite:rgba(245,195,48,0.12);
  --teal:#00cfa8;--teal-lite:rgba(0,207,168,0.12);
  --rose:#ff3d6e;--rose-lite:rgba(255,61,110,0.12);
  --r:3px;--r2:6px;--r3:10px;--nav-h:62px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:15px;}
body{background:var(--void);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button,input,select,textarea{font-family:'Inter',sans-serif;}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:var(--void);}
::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--signal);}

/* ── BG GRID ── */
.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:52px 52px;opacity:.22;}

/* ── NAVBAR ── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:900;height:var(--nav-h);
  background:rgba(7,7,15,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 28px;gap:24px;}
.nav-logo{font-family:'DM Serif Display',serif;font-size:20px;
  background:linear-gradient(130deg,#fff,var(--signal));-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;}
.nav-links{display:flex;gap:2px;flex:1;}
.nav-link{padding:6px 12px;font-size:13px;font-weight:500;color:var(--ink-dim);
  border-radius:var(--r);transition:all .16s;}
.nav-link:hover,.nav-link.active{color:var(--ink);background:var(--raised);}
.nav-actions{margin-left:auto;display:flex;gap:10px;align-items:center;}
.nav-user{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;
  background:var(--raised);border:1px solid var(--border);border-radius:99px;
  cursor:pointer;font-size:13px;color:var(--ink-dim);transition:border-color .2s;}
.nav-user:hover{border-color:var(--border-hi);color:var(--ink);}
.nav-avatar{width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,var(--signal),var(--teal));
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;}
.credit-pill{display:flex;align-items:center;gap:5px;padding:4px 12px;
  background:var(--gold-lite);border:1px solid var(--gold);border-radius:99px;
  font-size:12px;color:var(--gold);font-family:'JetBrains Mono',monospace;font-weight:600;}

/* ── SIDEBAR ── */
.app-shell{display:flex;min-height:100vh;padding-top:var(--nav-h);}
.sidebar{width:220px;flex-shrink:0;background:var(--deep);border-right:1px solid var(--border);
  position:fixed;top:var(--nav-h);bottom:0;overflow-y:auto;padding:20px 0;display:flex;flex-direction:column;}
.sb-label{padding:0 16px 6px;font-family:'JetBrains Mono',monospace;font-size:9px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-ghost);}
.sb-link{display:flex;align-items:center;gap:10px;padding:8px 16px;font-size:13px;
  font-weight:500;color:var(--ink-dim);border-left:2px solid transparent;transition:all .16s;}
.sb-link:hover{color:var(--ink);background:var(--raised);}
.sb-link.active{color:var(--ink);background:var(--signal-lite);border-left-color:var(--signal);}
.sb-icon{font-size:14px;width:18px;text-align:center;}
.sb-bottom{margin-top:auto;padding:16px 0;border-top:1px solid var(--border);}
.app-content{margin-left:220px;flex:1;padding:36px 36px 80px;}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 22px;font-size:13px;font-weight:600;letter-spacing:.02em;
  border:none;border-radius:var(--r);transition:all .18s;white-space:nowrap;cursor:pointer;}
.btn-primary{background:var(--signal);color:#fff;}
.btn-primary:hover{background:#7c5aff;box-shadow:0 6px 24px var(--signal-glow);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--ink-dim);border:1px solid var(--border-hi);}
.btn-ghost:hover{border-color:var(--signal);color:var(--ink);}
.btn-fire{background:var(--fire);color:#fff;}
.btn-fire:hover{background:#ff6a4a;transform:translateY(-1px);}
.btn-teal{background:var(--teal);color:#000;font-weight:700;}
.btn-teal:hover{filter:brightness(1.1);transform:translateY(-1px);}
.btn-gold{background:var(--gold);color:#000;font-weight:700;}
.btn-gold:hover{filter:brightness(1.1);}
.btn-sm{padding:6px 14px;font-size:12px;}
.btn-lg{padding:14px 32px;font-size:15px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.45;pointer-events:none;}

/* ── CARDS ── */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:24px;}
.card-sm{padding:16px 20px;}
.card-lg{padding:36px;}

/* ── FORMS ── */
.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.form-label{font-size:11px;font-weight:700;color:var(--ink-dim);letter-spacing:.08em;text-transform:uppercase;}
.form-control{background:var(--raised);border:1px solid var(--border-hi);border-radius:var(--r);
  color:var(--ink);font-size:14px;padding:10px 13px;width:100%;outline:none;
  transition:border-color .18s,box-shadow .18s;}
.form-control:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-lite);}
.form-control::placeholder{color:var(--ink-ghost);}
textarea.form-control{resize:vertical;min-height:90px;line-height:1.6;}
select.form-control option{background:var(--raised);}
.form-hint{font-size:12px;color:var(--ink-dim);}
.form-error{font-size:12px;color:var(--rose);}

/* Pill checkboxes/radios */
.pill-group{display:flex;flex-wrap:wrap;gap:7px;}
.pill-opt{display:flex;align-items:center;gap:6px;padding:6px 13px;border:1px solid var(--border-hi);
  border-radius:var(--r);cursor:pointer;font-size:13px;color:var(--ink-dim);transition:all .16s;}
.pill-opt:hover{border-color:var(--signal);color:var(--ink);}
.pill-opt input{display:none;}
.pill-opt.checked,.pill-opt:has(input:checked){border-color:var(--signal);background:var(--signal-lite);color:var(--ink);}

/* ── TABLES ── */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{padding:10px 14px;text-align:left;font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--border);
  background:var(--raised);white-space:nowrap;}
td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--ink-dim);vertical-align:middle;}
tr:hover td{background:rgba(108,71,255,.04);}
tr:last-child td{border-bottom:none;}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:2px;
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:'JetBrains Mono',monospace;}
.badge-signal{background:var(--signal-lite);color:var(--signal);border:1px solid var(--signal);}
.badge-fire{background:var(--fire-lite);color:var(--fire);border:1px solid var(--fire);}
.badge-gold{background:var(--gold-lite);color:var(--gold);border:1px solid var(--gold);}
.badge-teal{background:var(--teal-lite);color:var(--teal);border:1px solid var(--teal);}
.badge-rose{background:var(--rose-lite);color:var(--rose);border:1px solid var(--rose);}

/* ── ALERTS ── */
.alert{padding:12px 16px;border-radius:var(--r);font-size:13px;margin-bottom:16px;display:flex;align-items:flex-start;gap:10px;}
.alert-success{background:var(--teal-lite);border:1px solid var(--teal);color:var(--teal);}
.alert-error{background:var(--rose-lite);border:1px solid var(--rose);color:var(--rose);}
.alert-warn{background:var(--gold-lite);border:1px solid var(--gold);color:var(--gold);}
.alert-info{background:var(--signal-lite);border:1px solid var(--signal);color:var(--signal);}

/* ── PAGE HEADER ── */
.page-header{margin-bottom:28px;}
.page-header h1{font-family:'DM Serif Display',serif;font-size:30px;margin-bottom:4px;letter-spacing:-.01em;}
.page-header p{font-size:14px;color:var(--ink-dim);}
.page-header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:28px;}

/* ── STAT CARDS ── */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:18px;}
.stat-label{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;}
.stat-value{font-family:'DM Serif Display',serif;font-size:38px;line-height:1;margin-bottom:4px;}
.stat-sub{font-size:12px;color:var(--ink-dim);}

/* ── SCORE GRID ── */
.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;}
.score-card{background:var(--raised);border:1px solid var(--border);border-radius:var(--r2);padding:16px;text-align:center;}
.score-num{font-family:'DM Serif Display',serif;font-size:40px;line-height:1;margin-bottom:5px;}
.score-label{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);}

/* ── REPORT CARDS ── */
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.rcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:20px;
  cursor:pointer;position:relative;overflow:hidden;transition:border-color .2s,transform .2s;}
.rcard::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.rcard:hover{border-color:var(--border-hi);transform:translateY(-2px);}
.rcard.gap::after{background:var(--signal);}
.rcard.missing::after{background:var(--gold);}
.rcard.blunder::after{background:var(--fire);}
.rcard.leakage::after{background:var(--rose);}
.rcard.opps::after{background:var(--teal);}
.rcard.velocity::after{background:#a78bfa;}
.rcard.leverage::after{background:#34d399;}
.rcard.conviction::after{background:#fb923c;}
.rcard-icon{font-size:24px;margin-bottom:9px;}
.rcard-num{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;color:var(--ink-dim);margin-bottom:4px;}
.rcard-title{font-family:'DM Serif Display',serif;font-size:18px;margin-bottom:6px;}
.rcard-preview{font-size:13px;color:var(--ink-dim);line-height:1.5;}
.rcard-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:28px;margin-bottom:16px;display:none;}
.rcard-detail.open{display:block;}
.rcard-detail h4{font-family:'DM Serif Display',serif;font-size:18px;color:var(--ink);margin:18px 0 8px;}
.rcard-detail p{font-size:14px;color:var(--ink-dim);line-height:1.8;margin-bottom:12px;}
.rcard-detail ul{list-style:none;padding:0;margin-bottom:12px;}
.rcard-detail ul li{font-size:14px;color:var(--ink-dim);padding:6px 0 6px 20px;position:relative;border-bottom:1px solid var(--border);}
.rcard-detail ul li::before{content:'→';position:absolute;left:0;color:var(--signal);}
.rcard-detail strong{color:var(--ink);}

/* ── STRATEGY SECTIONS ── */
.strat-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;margin-bottom:12px;}
.strat-head{display:flex;align-items:center;gap:12px;padding:18px 22px;cursor:pointer;border-bottom:1px solid transparent;transition:background .16s;}
.strat-head:hover{background:var(--raised);}
.strat-wrap.open .strat-head{border-bottom-color:var(--border);}
.strat-icon{width:38px;height:38px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.strat-lbl{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:2px;}
.strat-name{font-family:'DM Serif Display',serif;font-size:17px;}
.strat-chev{margin-left:auto;color:var(--ink-dim);transition:transform .2s;font-size:12px;}
.strat-wrap.open .strat-chev{transform:rotate(180deg);}
.strat-body{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;}
.strat-wrap.open .strat-body{max-height:4000px;padding:22px;}
.strat-content h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);margin:16px 0 6px;}
.strat-content p{font-size:14px;color:var(--ink-dim);line-height:1.8;margin-bottom:12px;}
.strat-content ul{list-style:none;padding:0;margin-bottom:12px;}
.strat-content ul li{font-size:14px;color:var(--ink-dim);padding:6px 0 6px 18px;position:relative;border-bottom:1px solid var(--border);}
.strat-content ul li::before{content:'▸';position:absolute;left:0;color:var(--signal);font-size:11px;}
.strat-content strong{color:var(--ink);}

/* ── PROGRESS ── */
.progress-wrap{background:var(--raised);height:4px;border-radius:2px;overflow:hidden;margin-bottom:28px;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--signal),var(--teal));border-radius:2px;transition:width .4s ease;}

/* ── PAGINATION ── */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:24px;}
.page-btn{padding:6px 12px;border:1px solid var(--border-hi);border-radius:var(--r);font-size:13px;color:var(--ink-dim);transition:all .16s;}
.page-btn:hover,.page-btn.active{border-color:var(--signal);color:var(--signal);background:var(--signal-lite);}

/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(7,7,15,.85);backdrop-filter:blur(6px);z-index:2000;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--r3);padding:32px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;}
.modal-title{font-family:'DM Serif Display',serif;font-size:22px;margin-bottom:20px;}
.modal-close{position:absolute;top:16px;right:16px;background:var(--raised);border:1px solid var(--border);border-radius:var(--r);padding:4px 10px;font-size:13px;color:var(--ink-dim);cursor:pointer;}

/* ── LOADING ── */
.loading-overlay{display:none;position:fixed;inset:0;background:rgba(7,7,15,.94);backdrop-filter:blur(10px);
  z-index:8000;flex-direction:column;align-items:center;justify-content:center;gap:18px;}
.loading-overlay.active{display:flex;}
.loading-title{font-family:'DM Serif Display',serif;font-size:24px;text-align:center;}
.loading-sub{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--signal);letter-spacing:.14em;text-align:center;}
.loading-track{width:260px;height:3px;background:var(--raised);border-radius:2px;overflow:hidden;}
.loading-track::after{content:'';display:block;height:100%;background:linear-gradient(90deg,var(--signal),var(--teal));animation:ind 1.4s ease infinite;transform-origin:left;}
@keyframes ind{0%{transform:scaleX(0) translateX(0);}50%{transform:scaleX(.6) translateX(60%);}100%{transform:scaleX(0) translateX(300%);}}

/* ── TOAST ── */
.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:9999;display:flex;flex-direction:column;gap:7px;pointer-events:none;}
.toast{background:var(--raised);border:1px solid var(--border-hi);border-radius:var(--r);padding:11px 16px;
  font-size:13px;font-family:'JetBrains Mono',monospace;transform:translateX(120%);transition:transform .3s cubic-bezier(.22,1,.36,1);}
.toast.show{transform:translateX(0);}
.toast.ok{border-color:var(--teal);color:var(--teal);}
.toast.err{border-color:var(--rose);color:var(--rose);}
.toast.warn{border-color:var(--gold);color:var(--gold);}

/* ── MISC ── */
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--signal);}
.divider{border:none;border-top:1px solid var(--border);margin:24px 0;}
.divider-text{display:flex;align-items:center;gap:10px;color:var(--ink-ghost);font-size:12px;margin:18px 0;}
.divider-text::before,.divider-text::after{content:'';flex:1;height:1px;background:var(--border);}
.text-signal{color:var(--signal);}.text-teal{color:var(--teal);}.text-fire{color:var(--fire);}
.text-gold{color:var(--gold);}.text-rose{color:var(--rose);}.text-dim{color:var(--ink-dim);}
.fw7{font-weight:700;}.font-mono{font-family:'JetBrains Mono',monospace;}.font-serif{font-family:'DM Serif Display',serif;}
.mt8{margin-top:8px;}.mt16{margin-top:16px;}.mt24{margin-top:24px;}.mt32{margin-top:32px;}.mt48{margin-top:48px;}
.mb8{margin-bottom:8px;}.mb16{margin-bottom:16px;}.mb24{margin-bottom:24px;}.mb32{margin-bottom:32px;}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.flex{display:flex;}.flex-c{display:flex;align-items:center;}.flex-b{display:flex;align-items:center;justify-content:space-between;}
.gap8{gap:8px;}.gap12{gap:12px;}.gap16{gap:16px;}.gap20{gap:20px;}
.container{max-width:1100px;margin:0 auto;padding:0 24px;}
.pt-nav{padding-top:calc(var(--nav-h) + 24px);}

/* ── ADMIN SPECIFIC ── */
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}

/* ── RESPONSIVE ── */
@media(max-width:900px){.sidebar{display:none;}.app-content{margin-left:0;padding:20px 16px;}.stat-grid,.admin-stat-grid{grid-template-columns:1fr 1fr;}.g3{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.g2,.g3,.report-grid,.score-grid{grid-template-columns:1fr;}.stat-grid,.admin-stat-grid{grid-template-columns:1fr 1fr;}}
@media print{.navbar,.sidebar,.btn,.loading-overlay{display:none!important;}.app-content{margin:0;padding:20px;}.strat-body{max-height:none!important;padding:20px!important;}}
