@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* =========================================================
   VELARIS TRADING OS — PRIVATE DESK EDITION
   Token system
   ========================================================= */
:root{
  --obsidian:#0a0d11;
  --panel:#12171f;
  --panel2:#161d27;
  --sunken:#0a0f15;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.15);
  --text:#eef1f6;
  --muted:#8d97a6;
  --muted-dim:#5f6a79;
  --gold:#cea968;
  --gold-bright:#e8c98c;
  --gold-ink:#241a0c;
  --gold-wash:rgba(206,169,104,.12);
  --green:#33b881;
  --green-bright:#4ecf98;
  --red:#e2606b;
  --amber:#dba24a;
  --blue:#7095d4;
  --shadow:0 24px 60px rgba(0,0,0,.42);
  --shadow-soft:0 14px 34px rgba(0,0,0,.28);
  --radius:12px;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
body{
  margin:0;color:var(--text);font:13px var(--sans);-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 620px at 14% -8%,rgba(206,169,104,.07),transparent 60%),
    radial-gradient(800px 560px at 96% 0%,rgba(112,149,212,.06),transparent 58%),
    var(--obsidian);
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 70%);
}
a{color:inherit}
::selection{background:var(--gold-wash);color:var(--text)}
:focus-visible{outline:2px solid rgba(206,169,104,.55);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Header ---------- */
.top{height:74px;border-bottom:1px solid var(--line);background:rgba(9,12,16,.82);backdrop-filter:blur(16px);display:flex;justify-content:space-between;align-items:center;padding:0 32px;position:sticky;top:0;z-index:5}
.premium-top{box-shadow:0 10px 30px rgba(0,0,0,.22)}
.brand-lockup{display:flex;align-items:center;gap:13px}
.logo-mini,.auth-logo-mark{display:grid;place-items:center;font-weight:700;font-family:var(--serif);color:var(--gold-ink);background:linear-gradient(150deg,var(--gold-bright),var(--gold));box-shadow:0 8px 22px rgba(206,169,104,.28)}
.logo-mini{width:36px;height:36px;border-radius:10px;font-size:17px}
.brand{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:2.6px;color:var(--text)}
.brand span{color:var(--gold);font-weight:600}
.sub,.tiny{font-size:10px;letter-spacing:1.6px;color:var(--muted-dim);margin-top:5px;text-transform:uppercase}
.topright{display:flex;gap:20px;align-items:center;color:#c6cedb}
.top-actions{display:flex;gap:10px;align-items:center}
.status{background:none;border:0;color:#c6cedb;cursor:pointer;font-family:var(--sans);display:flex;align-items:center}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:8px;background:var(--red);box-shadow:0 0 0 3px rgba(226,96,107,.14)}
.dot.connected{background:var(--green);box-shadow:0 0 0 3px rgba(51,184,129,.16)}
#marketClock{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.5px}

/* ---------- Buttons ---------- */
.primary,.secondary,.danger,.ghost{border:0;border-radius:8px;padding:10px 16px;font-weight:700;font-family:var(--sans);font-size:11.5px;letter-spacing:.4px;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease}
.primary{background:linear-gradient(160deg,var(--gold-bright),var(--gold));color:var(--gold-ink)}
.primary:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 12px 26px rgba(206,169,104,.22)}
.primary:disabled{filter:grayscale(.5) brightness(.7);cursor:not-allowed;transform:none;box-shadow:none}
.secondary{background:#212a35;color:#e7ecf3;border:1px solid var(--line)}
.secondary:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.danger{background:rgba(226,96,107,.12);color:#ff9aa2;border:1px solid rgba(226,96,107,.35)}
.danger:hover{background:rgba(226,96,107,.18);transform:translateY(-1px)}
.ghost{background:rgba(255,255,255,.03);color:#a6b0bf;border:1px solid var(--line)}
.ghost:hover{border-color:var(--line-strong);color:#fff;transform:translateY(-1px)}
.premium-ghost{transition:.18s}
.premium-ghost:hover{border-color:rgba(206,169,104,.4);color:#fff}
.live-enabled{background:rgba(51,184,129,.18)!important;color:#dff8ea!important;border-color:rgba(51,184,129,.5)!important;cursor:default!important}

/* ---------- Layout / hero ---------- */
.wrap{max-width:1520px;margin:auto;padding:30px 32px}
.hero,.client-welcome{display:flex;justify-content:space-between;align-items:stretch;gap:20px;margin-bottom:20px;padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(150deg,rgba(20,26,34,.92),rgba(10,14,19,.94));box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.hero:before,.client-welcome:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--gold),transparent)}
.hero h1,.client-welcome h1{font-family:var(--serif);font-weight:500;font-size:30px;letter-spacing:-.2px;margin:0 0 9px;color:#f6f2ea}
.hero p,.client-welcome p{color:var(--muted);max-width:760px;margin:0;line-height:1.65;font-size:12.5px}
.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:6px;text-transform:uppercase}
.modebox,.mode-card{min-width:180px;background:linear-gradient(155deg,var(--panel2),var(--sunken));border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.modebox strong,.mode-card strong{display:block;font-family:var(--mono);font-size:22px;margin:6px 0;letter-spacing:.5px}
.badge{display:inline-flex;padding:5px 10px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.4px;background:#232c37;color:#dfe5ee}
.paper{background:rgba(219,162,74,.16);color:var(--amber)}

/* ---------- Panels ---------- */
.panel{background:linear-gradient(180deg,var(--panel),var(--sunken));border:1px solid var(--line);border-radius:var(--radius);margin:16px 0;overflow:hidden;box-shadow:var(--shadow-soft)}
.premium-panel{background:linear-gradient(165deg,rgba(17,22,29,.97),rgba(9,12,17,.97))}
.paneltitle{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:12px;letter-spacing:.6px;background:linear-gradient(180deg,rgba(206,169,104,.035),transparent)}
.paneltitle small{color:var(--muted-dim);margin-left:9px;font-weight:500;letter-spacing:.2px;text-transform:none}
.premium-title small{display:block;margin:5px 0 0!important;font-size:10.5px;color:var(--muted-dim)}
.paneltitle em{font-style:normal;background:var(--gold-wash);color:var(--gold-bright);padding:3px 9px;border-radius:99px;margin-left:9px;font-family:var(--mono);font-size:10px}

/* ---------- Broker connect / token ---------- */
.token-panel{padding-bottom:14px}
.tokenrow{display:flex;gap:10px;padding:15px 18px 9px}
.tokenrow input{flex:1}
.hint,.hint2{color:var(--muted-dim);padding:0 18px 12px;font-size:11px;line-height:1.5}
.hint2{padding:0}

/* ---------- Inputs ---------- */
.tokenrow input,.setting input,.filters input,select,.client-admin-grid input,.client-admin-grid select{
  background:var(--sunken);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:10px 12px;outline:none;font-family:var(--sans);font-size:12px;transition:border-color .16s,box-shadow .16s;
}
input:focus,select:focus{border-color:rgba(206,169,104,.55)!important;box-shadow:0 0 0 3px rgba(206,169,104,.09)}
.setting{background:var(--sunken);border:1px solid var(--line);padding:11px;border-radius:9px;transition:border-color .16s}
.setting:focus-within{border-color:rgba(206,169,104,.35)}
.setting label,.controlgroup label{font-size:9px;color:var(--muted-dim);letter-spacing:1.2px;text-transform:uppercase;display:block;margin-bottom:6px}
.setting input{width:100%;margin-top:0;padding:8px}

/* ---------- Metrics / stats ---------- */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.metrics>div{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:19px}
.metrics b{display:block;font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:.2px}
.metrics span{font-size:9.5px;color:var(--muted-dim);letter-spacing:1.2px;text-transform:uppercase}
.green b{color:var(--green-bright)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:13px 0}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin:16px 0}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:19px}
.stat strong{display:block;font-family:var(--mono);font-size:21px;font-weight:600}
.stat span{font-size:9.5px;color:var(--muted-dim);letter-spacing:1.2px;text-transform:uppercase}

/* ---------- Controls / toggles ---------- */
.controls{padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.controlgroup{display:flex;flex-direction:column;gap:5px}
.switchline{display:flex;align-items:center;gap:9px;color:#b6c0cd;font-size:11.5px}
.switchline input{display:none}
.switch{width:34px;height:19px;background:#2b3440;border-radius:20px;position:relative;transition:background .18s}
.switch:after{content:'';position:absolute;width:15px;height:15px;background:#9ba6b6;border-radius:50%;top:2px;left:2px;transition:.18s}
.switchline input:checked+.switch{background:linear-gradient(150deg,var(--gold-bright),var(--gold))}
.switchline input:checked+.switch:after{left:17px;background:#fff}
.progress{display:flex;align-items:center;gap:9px;flex:1;min-width:160px}
.progress>div{height:6px;background:#232c37;border-radius:10px;overflow:hidden;flex:1}
.progress #progressFill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-bright))}
.progress span{font-size:10px;color:var(--muted-dim);font-family:var(--mono)}

/* ---------- Bot panel ---------- */
.bot{border-color:rgba(51,184,129,.28)}
.bot .paneltitle{background:linear-gradient(180deg,rgba(51,184,129,.06),transparent)}
.robot{font-size:16px;margin-right:7px}
.botcontrols{display:flex;align-items:center;gap:16px}
.botgrid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;padding:14px}
.live-state{margin-top:9px;font-size:11.5px;font-weight:700;letter-spacing:.3px;color:#ffb4b4}
.live-state.live-on{color:var(--green-bright)}
.active{margin:0 14px 14px;padding:16px;background:rgba(51,184,129,.06);border:1px solid rgba(51,184,129,.24);border-radius:11px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.active h3{margin:4px 0 0;font-family:var(--mono);font-size:15px}
.tradeStat span{display:block;color:var(--muted-dim);font-size:9px;letter-spacing:.8px;text-transform:uppercase}
.tradeStat b{font-size:14px;font-family:var(--mono)}
.target b{color:var(--green-bright)}
.sl b{color:var(--red)}
.pnl{margin-left:auto;font-weight:700;font-size:17px;font-family:var(--mono)}

/* ---------- Filters ---------- */
.filters{display:flex;gap:8px}
.filters input{width:140px;padding:8px}
.filters select{padding:8px}

/* ---------- Tables ---------- */
.tablewrap{overflow:auto;scrollbar-color:#334253 transparent}
table{width:100%;border-collapse:collapse;min-width:900px}
th,td{padding:12px 13px;border-bottom:1px solid rgba(255,255,255,.055);text-align:left;white-space:nowrap}
th{font-size:9px;color:var(--muted-dim);letter-spacing:1.2px;text-transform:uppercase;background:var(--sunken);font-family:var(--sans);font-weight:700}
td{font-size:11.5px;font-family:var(--mono);color:#dbe1ea}
tbody tr{transition:background .14s}
tbody tr:hover{background:rgba(255,255,255,.02)}
.empty{text-align:center;color:var(--muted-dim);padding:32px;font-family:var(--sans)}
.profit{color:var(--green-bright)}
.loss{color:var(--red)}

/* Signal scanner table extras (used only by app.js, previously unstyled) */
.symbol-cell{font-family:var(--mono);font-weight:600;color:#f2f5fa;letter-spacing:.3px}
.sector-badge{font-family:var(--sans);font-size:9.5px;letter-spacing:.4px;padding:3px 9px;border-radius:99px;background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--line)}
.badge-strong-buy,.badge-buy{display:inline-block;font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.4px;padding:4px 10px;border-radius:99px}
.badge-strong-buy{background:rgba(51,184,129,.14);color:var(--green-bright);border:1px solid rgba(51,184,129,.3)}
.badge-buy{background:rgba(112,149,212,.14);color:#a9c0ee;border:1px solid rgba(112,149,212,.32)}
.cpr-badge{display:inline-block;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.5px;padding:4px 9px;border-radius:99px;text-transform:uppercase}
.cpr-badge.cpr-extreme-narrow{background:rgba(206,169,104,.16);color:var(--gold-bright);border:1px solid rgba(206,169,104,.35)}
.cpr-badge.cpr-narrow{background:rgba(51,184,129,.12);color:var(--green-bright);border:1px solid rgba(51,184,129,.28)}
.cpr-badge.cpr-average{background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--line)}
.cpr-badge.cpr-wide{background:rgba(226,96,107,.1);color:#f0a3aa;border:1px solid rgba(226,96,107,.26)}
.volume-up{color:var(--green-bright);font-weight:600}
.signal-row td{border-bottom-color:rgba(255,255,255,.05)}

/* Empty state (signal table + generic) */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:38px 10px;font-family:var(--sans);white-space:normal}
.empty-icon{font-size:26px;opacity:.55}
.empty-title{font-size:13px;font-weight:700;color:#c7cfdb}
.empty-desc{font-size:11px;color:var(--muted-dim)}

/* ---------- Safety / reconciliation panel ---------- */
.safety-panel{border-color:rgba(219,162,74,.3)}
.safety-panel .paneltitle{background:linear-gradient(180deg,rgba(219,162,74,.07),transparent)}
.safety-grid{display:grid;grid-template-columns:1fr 1.3fr 2.2fr;gap:11px;padding:14px}
.safety-card{background:var(--sunken);border:1px solid var(--line);border-radius:9px;padding:13px}
.safety-card strong{display:block;font-family:var(--mono);font-size:18px;margin:5px 0}
.safety-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.broker-positions{border-top:1px solid var(--line);overflow:auto}
.broker-positions table{min-width:1000px}
@media(max-width:1100px){.safety-grid{grid-template-columns:1fr 1fr}.safety-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.safety-grid{grid-template-columns:1fr}.safety-actions{grid-column:auto}}

/* ---------- Client / copy-trading admin ---------- */
.client-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:16px}
.client-admin-grid .wide{grid-column:span 2}
.client-admin-grid .setting{min-width:0;min-height:80px}
.client-admin-grid button{margin-top:9px;width:100%}
.client-details{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}
.client-details>div{padding:13px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:10px}
.client-details b,.client-details span{display:block}
.client-details b{font-size:9.5px;color:var(--muted-dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px}
.client-details span{font-family:var(--mono);font-size:11px}
.control-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px}
.control-grid .wide{grid-column:span 2}
.control-grid .actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.notice{margin:0 16px 16px}
.notice.warning{border:1px solid rgba(219,162,74,.32);background:rgba(219,162,74,.06);padding:13px 14px;border-radius:10px;font-size:11.5px;color:#e9cd97}
.notice.info{border:1px solid rgba(112,149,212,.28);background:rgba(112,149,212,.055);padding:13px 14px;border-radius:10px;font-size:11.5px;color:#b6c8ee}

/* ---------- Log / toasts ---------- */
.log{height:190px;overflow:auto;padding:11px 15px;font-family:var(--mono);font-size:11px;background:var(--sunken)}
.log-entry{padding:4px 0;color:#96a1b1;border-bottom:1px solid rgba(255,255,255,.03)}
.log-info{color:#96a1b1}
.log-success{color:var(--green-bright)}
.log-error{color:var(--red)}
.log-warn{color:var(--amber)}
.toasts{position:fixed;right:22px;bottom:22px;z-index:10;display:flex;flex-direction:column;gap:9px}
.toast{padding:13px 18px;border-radius:10px;background:var(--panel2);border:1px solid var(--line-strong);box-shadow:var(--shadow);font-size:12px;color:#eef1f6;max-width:340px}
.toast-success{border-left:3px solid var(--green)}
.toast-error{border-left:3px solid var(--red)}
.toast-signal{border-left:3px solid var(--gold)}

/* ---------- Authentication ---------- */
.auth-shell,.premium-auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.premium-auth{background:var(--obsidian);position:relative;overflow:hidden}
.auth-bg-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.28;pointer-events:none}
.orb-a{width:440px;height:440px;left:-190px;top:-120px;background:rgba(206,169,104,.2)}
.orb-b{width:520px;height:520px;right:-230px;bottom:-210px;background:rgba(112,149,212,.14)}
.auth-card,.premium-auth-card{width:min(480px,94vw);background:linear-gradient(165deg,rgba(19,24,32,.97),rgba(8,11,16,.98));border:1px solid var(--line-strong);border-radius:20px;padding:36px;box-shadow:0 40px 110px rgba(0,0,0,.55);position:relative;z-index:2}
.auth-logo-mark{width:48px;height:48px;border-radius:13px;margin-bottom:22px;font-size:21px}
.auth-brand{font-size:20px}
.auth-kicker{font-size:10px;letter-spacing:.22em;color:var(--gold);font-weight:700;margin-top:12px;text-transform:uppercase}
.premium-auth-card h1{font-family:var(--serif);font-weight:500;font-size:30px;letter-spacing:-.4px;margin:18px 0 9px;color:#f6f2ea}
.auth-lead{color:var(--muted);line-height:1.7;margin:0 0 22px;font-size:12.5px}
.premium-form label{font-size:9.5px;letter-spacing:.16em;color:#8a97a8;margin:18px 0 7px;display:block;text-transform:uppercase}
.input-wrap{display:flex;align-items:center;gap:10px;background:var(--sunken);border:1px solid var(--line);border-radius:9px;padding:0 13px;transition:border-color .16s,box-shadow .16s}
.input-wrap:focus-within{border-color:rgba(206,169,104,.55);box-shadow:0 0 0 4px rgba(206,169,104,.08)}
.input-wrap span{font-size:12px;color:var(--gold)}
.input-wrap input{border:0!important;box-shadow:none!important;background:transparent!important;padding:13px 0!important}
.premium-submit{width:100%;margin-top:22px;display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-radius:9px}
.premium-submit b{font-size:16px}
.auth-trust{display:flex;gap:15px;flex-wrap:wrap;margin-top:22px;color:var(--muted-dim);font-size:10.5px}
.auth-footer,.auth-switch-card{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.auth-footer{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#8a97a8}
.auth-footer a{color:#c9b283;text-decoration:none}
.auth-footer a:hover{color:var(--gold-bright)}
.auth-switch-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:20px}
.auth-switch-card b,.auth-switch-card span{display:block}
.auth-switch-card b{font-size:11px}
.auth-switch-card span{font-size:10px;color:var(--muted-dim);margin-top:3px}
.error{color:#ff8f8f;margin-top:12px;font-size:11.5px}

/* ---------- Client portal ---------- */
.client-top{position:sticky}
.client-live-pill,.section-live{display:flex;align-items:center;gap:8px;color:#9aa8b9;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.client-live-pill i,.section-live i{width:7px;height:7px;border-radius:50%;background:var(--green-bright);box-shadow:0 0 12px rgba(51,184,129,.6)}
.client-welcome{margin-bottom:18px;align-items:center}
.client-welcome h1{margin:7px 0}
.welcome-actions{display:flex;align-items:center}
.client-kpis{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:13px;margin:18px 0}
.client-kpi{min-height:128px;padding:19px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(165deg,var(--panel2),var(--sunken));box-shadow:var(--shadow-soft);display:flex;flex-direction:column;justify-content:space-between}
.client-kpi span{font-size:9px;letter-spacing:.14em;color:var(--muted-dim);text-transform:uppercase}
.client-kpi strong{font-family:var(--mono);font-size:25px;letter-spacing:-.3px;font-weight:600}
.client-kpi small{font-size:10px;color:var(--muted-dim)}
.client-kpi.featured{background:linear-gradient(150deg,rgba(206,169,104,.13),rgba(11,15,20,.96));border-color:rgba(206,169,104,.24)}
.client-grid-main{display:grid;grid-template-columns:1.35fr .9fr;gap:15px}
.status-chip{padding:6px 10px;border-radius:999px;font-size:9px;letter-spacing:.1em;background:rgba(255,255,255,.05);color:#9aa9ba;text-transform:uppercase}
.status-chip.on{background:rgba(51,184,129,.12);color:var(--green-bright);border:1px solid rgba(51,184,129,.24)}
.status-chip.off{background:rgba(226,96,107,.09);color:#f0a3aa}
.performance-body{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:25px}
.performance-number span{font-size:9px;color:var(--muted-dim);letter-spacing:.14em;text-transform:uppercase}
.performance-number b{display:block;font-family:var(--mono);font-weight:600;font-size:34px;margin:11px 0}
.performance-number em{font-size:10px;color:var(--muted-dim);font-style:normal}
.performance-bars{padding-top:6px}
.bar-row{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);margin:8px 0}
.bar-row b{color:#e7edf4;font-family:var(--mono)}
.bar{height:8px;background:#1f2733;border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-bright));border-radius:99px}
.mini-line{display:flex;gap:5px;margin-top:14px}
.mini-line i{height:3px;flex:1;border-radius:4px;background:#26313d}
.performance-footer{display:flex;justify-content:space-between;gap:12px;padding:13px 19px;border-top:1px solid var(--line);font-size:9.5px;color:var(--muted-dim)}
.premium-details{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:19px}
.premium-details>div{padding:13px;border-radius:10px;background:rgba(255,255,255,.02);border:1px solid var(--line)}
.premium-details b,.premium-details span{display:block}
.premium-details b{font-size:8.5px;letter-spacing:.13em;color:var(--muted-dim);margin-bottom:5px;text-transform:uppercase}
.premium-details span{font-size:10.5px;font-family:var(--mono)}
.active-trade-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;padding:15px 19px 0}
.active-trade-card{border:1px solid rgba(51,184,129,.18);background:rgba(51,184,129,.035);border-radius:12px;padding:13px}
.trade-card-top{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono)}
.trade-card-top>span{font-weight:700}
.trade-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0 8px}
.trade-card-grid span{font-size:8px;color:var(--muted-dim);text-transform:uppercase}
.trade-card-grid b{display:block;color:#cbd5df;font-size:10px;margin-top:3px;font-family:var(--mono)}
.active-trade-card small{font-size:8px;color:var(--muted-dim)}
.table-status{font-size:8px;font-weight:700;letter-spacing:.08em;padding:4px 8px;border-radius:999px;font-family:var(--sans);text-transform:uppercase}
.table-status.open{background:rgba(51,184,129,.1);color:var(--green-bright)}
.client-security-strip{display:flex;align-items:center;gap:14px;margin:18px 0 30px;padding:16px 19px;border:1px solid rgba(206,169,104,.2);border-radius:14px;background:linear-gradient(90deg,rgba(206,169,104,.055),rgba(255,255,255,.015))}
.security-icon{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:rgba(206,169,104,.16);color:var(--gold-bright);font-weight:700}
.client-security-strip b,.client-security-strip span{display:block}
.client-security-strip b{font-size:11px}
.client-security-strip span{font-size:9.5px;color:var(--muted-dim);margin-top:3px}
.security-meta{margin-left:auto;text-align:right;font-size:9px;letter-spacing:.14em;color:var(--muted-dim);font-family:var(--sans)}
.security-meta small{font-size:7px}
.inline-link{text-decoration:none;display:inline-block}

/* ---------- Responsive ---------- */
@media(max-width:1100px){.client-kpis{grid-template-columns:repeat(3,1fr)}.client-grid-main{grid-template-columns:1fr}.active-trade-cards{grid-template-columns:repeat(2,1fr)}.grid5{grid-template-columns:repeat(2,1fr)}.control-grid{grid-template-columns:repeat(2,1fr)}.client-details{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.wrap{padding:16px}.top{padding:0 16px}.hero,.client-welcome{flex-direction:column}.metrics,.grid4{grid-template-columns:repeat(2,1fr)}.botgrid{grid-template-columns:repeat(2,1fr)}.active{flex-wrap:wrap}.pnl{margin-left:0}.filters{display:none}.client-admin-grid,.client-details{grid-template-columns:1fr 1fr}.client-admin-grid .wide{grid-column:span 2}}
@media(max-width:850px){.top{padding:0 15px}.topright .client-live-pill,.topright #marketClock{display:none}.topright .premium-ghost{display:none}.wrap{padding:18px 14px}.hero,.client-welcome{padding:19px;align-items:flex-start}.client-kpis{grid-template-columns:repeat(2,1fr)}.performance-body{grid-template-columns:1fr}.performance-footer{flex-direction:column}.premium-details{grid-template-columns:1fr 1fr}.active-trade-cards{grid-template-columns:1fr}.client-security-strip{align-items:flex-start}.security-meta{display:none}}
@media(max-width:650px){.grid5,.control-grid,.client-details{grid-template-columns:1fr}.control-grid .wide{grid-column:auto}.top-actions{display:none}}
@media(max-width:600px){.metrics,.grid4,.client-kpis,.premium-details,.client-admin-grid,.client-details{grid-template-columns:1fr}.client-admin-grid .wide{grid-column:span 1}.auth-card,.premium-auth-card{padding:28px 22px}.auth-switch-card{align-items:flex-start;flex-direction:column}.client-welcome h1,.hero h1{font-size:24px}.performance-number b{font-size:28px}.client-kpi strong{font-size:21px}}

/* V4.1 MODE control isolation */
.setting .mode-title{display:block;margin-bottom:8px;}
.setting .mode-switch{display:flex;align-items:center;gap:9px;margin:0 0 8px;padding:0;white-space:nowrap;}
.setting .mode-switch .mode-switch-text{display:inline-block;margin:0;color:var(--text);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.setting .mode-switch input{width:auto;margin:0;}

/* V4.5 persistent daily trade journal */
.daily-history-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.daily-history-controls select{min-width:130px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:var(--sunken);color:var(--text);font:600 10px var(--sans);}
.daily-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;padding:15px 19px;border-bottom:1px solid var(--line)}
.daily-kpis>div{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.018)}
.daily-kpis span{display:block;font-size:8px;letter-spacing:.13em;color:var(--muted-dim);text-transform:uppercase}
.daily-kpis b{display:block;margin-top:5px;font-family:var(--mono);font-size:15px}
.daily-mode{display:inline-block;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:800;letter-spacing:.08em}
.daily-mode.paper{color:#e7c45d;background:rgba(231,196,93,.1)}
.daily-mode.live{color:var(--green-bright);background:rgba(51,184,129,.1)}
@media(max-width:900px){.daily-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.daily-kpis{grid-template-columns:repeat(2,1fr)}.daily-history-controls{width:100%}.daily-history-controls select{flex:1}.daily-history-controls button{width:100%}}

/* =========================================================
   VELARIS MARKET INTELLIGENCE CENTER
   ========================================================= */
.market-intelligence{margin-top:18px;overflow:hidden}
.mi-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 22px 14px}
.eyebrow{font:600 10px var(--mono);letter-spacing:.16em;color:var(--gold)}
.mi-head h2{margin:4px 0 4px;font:600 25px var(--serif);letter-spacing:.01em}
.mi-head p{margin:0;color:var(--muted);font-size:12px}
.mi-status{display:flex;align-items:center;gap:8px;white-space:nowrap;font:600 11px var(--mono);color:var(--muted)}
.mi-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px rgba(219,162,74,.7)}
.mi-dot.live{background:var(--green-bright);box-shadow:0 0 12px rgba(78,207,152,.8)}
.mi-updated{color:var(--muted-dim);font-weight:400}
.mi-ticker{height:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:rgba(0,0,0,.2);position:relative}
.mi-ticker:before,.mi-ticker:after{content:"";position:absolute;z-index:2;top:0;width:80px;height:100%;pointer-events:none}
.mi-ticker:before{left:0;background:linear-gradient(90deg,var(--panel),transparent)}
.mi-ticker:after{right:0;background:linear-gradient(270deg,var(--panel),transparent)}
.mi-ticker-track{display:flex;align-items:center;gap:9px;width:max-content;height:100%;padding:0 18px;animation:mi-scroll 45s linear infinite}
.mi-ticker:hover .mi-ticker-track{animation-play-state:paused}
.mi-tick{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:7px;white-space:nowrap}
.mi-tick b{font:700 11px var(--mono);color:var(--text)}
.mi-tick .px{font:600 11px var(--mono);color:var(--muted)}
.mi-tick .chg{font:700 10px var(--mono)}
.mi-tick.up .chg{color:var(--green-bright)} .mi-tick.down .chg{color:var(--red)}
.mi-loading{color:var(--muted);font:11px var(--mono)}
@keyframes mi-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.mi-indices{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:14px 22px 0}
.mi-index{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025)}
.mi-index .n{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.mi-index .v{font:600 13px var(--mono)}.mi-index .c{font:700 10px var(--mono);margin-left:7px}
.mi-index.up .c{color:var(--green-bright)} .mi-index.down .c{color:var(--red)}
.mi-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 22px}
.mi-kpis>div{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--sunken)}
.mi-kpis b{display:block;font:600 16px var(--mono);margin-bottom:4px}.mi-kpis span{font:600 9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.mi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 22px 22px}
.mi-card{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.018);overflow:hidden}
.mi-card-title{display:flex;justify-content:space-between;padding:13px 14px;border-bottom:1px solid var(--line);font:700 10px var(--mono);letter-spacing:.08em}
.mi-card-title em{font-style:normal;font-weight:400;color:var(--muted-dim);font-size:9px}
.mi-list{padding:4px 10px 8px}
.mi-row{display:grid;grid-template-columns:24px 1fr auto auto;gap:8px;align-items:center;padding:8px 5px;border-bottom:1px solid rgba(255,255,255,.045)}
.mi-row:last-child{border-bottom:0}.mi-rank{color:var(--muted-dim);font:600 9px var(--mono)}.mi-symbol{font:700 10px var(--mono)}.mi-ltp{font:600 10px var(--mono);color:var(--muted)}.mi-value{font:700 10px var(--mono)}.mi-value.up{color:var(--green-bright)}.mi-value.down{color:var(--red)}
.mi-empty{padding:18px 5px;color:var(--muted);font:10px var(--mono)}
@media(max-width:900px){.mi-indices,.mi-kpis{grid-template-columns:repeat(3,1fr)}.mi-grid{grid-template-columns:1fr}}
@media(max-width:600px){.mi-head{display:block}.mi-status{margin-top:10px}.mi-indices,.mi-kpis{grid-template-columns:repeat(2,1fr)}.mi-grid{padding-left:12px;padding-right:12px}.mi-head{padding-left:12px;padding-right:12px}.mi-indices,.mi-kpis{padding-left:12px;padding-right:12px}.mi-row{grid-template-columns:20px 1fr auto}.mi-row .mi-ltp{display:none}}

/* =========================================================
   VELARIS MARKET WATCH V4.7 — broker-style layout
   ========================================================= */
.market-intelligence{margin-top:18px;overflow:hidden;background:linear-gradient(180deg,#111720,#090d13)}
.mi-topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 16px;border-bottom:1px solid var(--line)}
.mi-topbar h2{margin:3px 0 4px;font:600 24px var(--serif);letter-spacing:.01em}.mi-topbar p{margin:0;color:var(--muted);font-size:11.5px}
.mi-connection{display:flex;align-items:center;gap:8px;font:600 10px var(--mono);color:var(--muted);white-space:nowrap}.mi-connection #miUpdated{font-weight:400;color:var(--muted-dim)}
.mi-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--amber);box-shadow:0 0 10px rgba(219,162,74,.65)}.mi-dot.live{background:var(--green-bright);box-shadow:0 0 12px rgba(78,207,152,.8)}
.mi-ticker-wrap{display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:#080c11}.mi-ticker-label{display:grid;place-items:center;width:58px;flex:0 0 58px;color:var(--gold-bright);font:700 9px var(--mono);letter-spacing:.12em;border-right:1px solid var(--line);background:rgba(206,169,104,.05)}
.mi-ticker{height:68px;overflow:hidden;position:relative;flex:1}.mi-ticker:before,.mi-ticker:after{content:"";position:absolute;z-index:3;top:0;width:70px;height:100%;pointer-events:none}.mi-ticker:before{left:0;background:linear-gradient(90deg,#080c11,transparent)}.mi-ticker:after{right:0;background:linear-gradient(270deg,#080c11,transparent)}
.mi-ticker-track{display:flex;align-items:center;gap:8px;width:max-content;height:100%;padding:0 16px;animation:mi-scroll-v47 65s linear infinite}.mi-ticker:hover .mi-ticker-track{animation-play-state:paused}
.mi-tick{min-width:176px;height:48px;padding:7px 11px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;column-gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:rgba(255,255,255,.025);white-space:nowrap}.mi-tick b{font:700 11px var(--mono);color:#f0f3f7}.mi-tick strong{font:600 11px var(--mono);color:#dfe5ee;text-align:right}.mi-tick span{font:700 10px var(--mono);grid-column:2;text-align:right}.mi-tick.up span{color:var(--green-bright)}.mi-tick.down span{color:var(--red)}
@keyframes mi-scroll-v47{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.mi-loading{display:grid;place-items:center;height:100%;padding:0 20px;color:var(--muted);font:11px var(--mono)}
.mi-index-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 22px 0}.mi-index{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.02)}.mi-index span{font:600 9px var(--mono);color:var(--muted);grid-column:1/3}.mi-index b{font:600 12px var(--mono);margin-top:4px}.mi-index em{font:700 10px var(--mono);font-style:normal;align-self:end;justify-self:end}.mi-index.up em{color:var(--green-bright)}.mi-index.down em{color:var(--red)}.mi-index-placeholder{grid-column:1/-1;padding:12px;color:var(--muted-dim);font:10px var(--mono)}
.mi-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:12px 22px 16px}.mi-summary-card{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#0c1117}.mi-summary-card span{display:block;font:600 8px var(--mono);letter-spacing:.09em;color:var(--muted-dim)}.mi-summary-card b{display:block;margin-top:6px;font:600 16px var(--mono);color:#eef1f6}
.mi-section-head{display:flex;justify-content:space-between;align-items:end;padding:13px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.012)}.mi-section-head strong{display:block;font:700 10px var(--mono);letter-spacing:.1em;color:#dfe5ee}.mi-section-head span{display:block;margin-top:3px;font-size:10px;color:var(--muted-dim)}.mi-section-head .mi-live-note{font:600 8px var(--mono);letter-spacing:.1em;color:var(--green-bright)}.secondary-head{margin-top:10px}
.mi-grid{display:grid;gap:10px;padding:10px 22px}.mi-grid-primary,.mi-grid-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}.mi-card{border:1px solid var(--line);border-radius:9px;background:#0c1117;overflow:hidden;min-width:0}.mi-card-title{height:42px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;border-bottom:1px solid var(--line);font:700 9px var(--mono);letter-spacing:.08em}.mi-card-title em{font:500 8px var(--mono);font-style:normal;color:var(--muted-dim);letter-spacing:.04em}.mi-icon{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:6px;border-radius:5px;font-style:normal;font-size:10px}.mi-icon.up{color:var(--green-bright);background:rgba(78,207,152,.1)}.mi-icon.down{color:var(--red);background:rgba(226,96,107,.1)}.mi-icon.blue{color:#8eb1f0;background:rgba(112,149,212,.1)}.mi-icon.gold{color:var(--gold-bright);background:var(--gold-wash)}
.mi-list{padding:2px 9px 6px}.mi-row{min-height:45px;display:grid;grid-template-columns:24px minmax(80px,1fr) 82px 66px;gap:7px;align-items:center;padding:5px 3px;border-bottom:1px solid rgba(255,255,255,.045)}.mi-row:last-child{border-bottom:0}.mi-rank{font:600 8px var(--mono);color:var(--muted-dim)}.mi-stock{min-width:0}.mi-stock b{display:block;font:700 10px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi-stock small{display:block;margin-top:2px;font-size:8px;color:var(--muted-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi-price{text-align:right}.mi-price b{display:block;font:600 10px var(--mono)}.mi-price small{display:block;margin-top:2px;font:500 8px var(--mono);color:var(--muted-dim)}.mi-metric{text-align:right;font:700 10px var(--mono)}.mi-metric.up{color:var(--green-bright)}.mi-metric.down{color:var(--red)}.mi-metric.blue{color:#8eb1f0}.mi-metric.gold{color:var(--gold-bright)}.mi-empty{padding:40px 10px;text-align:center;color:var(--muted-dim);font:10px var(--mono)}
.mi-footer{display:flex;justify-content:space-between;gap:15px;padding:10px 22px;border-top:1px solid var(--line);color:var(--muted-dim);font:9px var(--mono)}.mi-footer b{color:#cbd3df}.mi-footer .mi-dot{margin-right:6px;width:6px;height:6px}
@media(max-width:1050px){.mi-index-strip{grid-template-columns:repeat(3,1fr)}.mi-summary{grid-template-columns:repeat(3,1fr)}.mi-grid-primary,.mi-grid-secondary{grid-template-columns:1fr 1fr}.mi-grid-secondary .mi-card:last-child{grid-column:1/-1}}
@media(max-width:700px){.mi-topbar{display:block}.mi-connection{margin-top:10px}.mi-index-strip,.mi-summary,.mi-grid-primary,.mi-grid-secondary{grid-template-columns:1fr}.mi-grid{padding-left:12px;padding-right:12px}.mi-section-head,.mi-footer{padding-left:12px;padding-right:12px}.mi-row{grid-template-columns:20px minmax(70px,1fr) 70px 58px}.mi-tick{min-width:155px}.mi-ticker-label{width:48px;flex-basis:48px}}
