/* =====================================================================================
   REDESIGN: calm institutional terminal (4 workspaces, heartbeat, desk, drawers).
   Loaded after style.css, so these rules refine the base styles.
   ===================================================================================== */
:root{
  --bg:#0b0f17;--panel:#111827;--panel2:#162032;--line:#1f2937;--line2:#2a3a52;--tx:#e6edf5;--mut:#8a99ad;
  --acc:#4f8cff;--acc2:#3b6fd9;--paper:#f5a524;--mono:"JetBrains Mono",ui-monospace,Consolas,monospace
}
html,body{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif}
.num,.kpi .v,.timer,.pnl,td.r,.g-pill b,.lv .v,.sig-money b{font-family:var(--mono);font-variant-numeric:tabular-nums}
body.is-live .topbar{border-bottom:2px solid var(--r)}
body.is-live .heartbeat{box-shadow:inset 0 2px 0 rgba(240,82,82,.35)}

/* ---------- top flight deck ---------- */
.topbar{gap:14px;padding:8px 18px;background:rgba(11,15,23,.94);min-height:52px}
.ws-nav{display:flex;gap:4px}
.ws-nav button{background:none;border:1px solid transparent;color:var(--mut);padding:8px 14px;border-radius:10px;cursor:pointer;font:inherit;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:8px}
.ws-nav button:hover{color:var(--tx);background:var(--panel)}
.ws-nav button.active{color:var(--tx);background:var(--panel2);border-color:var(--line2)}
.ws-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#1c2738;font-size:11px;color:var(--mut)}
.ws-nav button.active .ws-n{background:var(--acc);color:#fff}
.mode-pill{border-radius:999px;padding:7px 14px;font-weight:700;letter-spacing:.05em;cursor:pointer;font-size:12px;border:1px solid;font-family:inherit}
.mode-pill.paper{background:rgba(245,165,36,.1);border-color:rgba(245,165,36,.45);color:var(--paper)}
.mode-pill.live{background:rgba(240,82,82,.14);border-color:var(--r);color:#ffd0d0;animation:pulse 2s infinite}
@media(max-width:1250px){.brand-name{display:none}.ws-nav button{padding:8px 10px}}
@media(max-width:900px){.ws-nav{order:9;width:100%;overflow-x:auto}.ws-nav button{flex:1}}

/* ---------- heartbeat strip ---------- */
.heartbeat{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 18px;background:#0d131e;border-bottom:1px solid var(--line)}
.hb-scan{font-size:13px;display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.hb-scan.ok{color:#cfe9da}.hb-scan.warn{color:#ffe0a3}.hb-scan.bad{color:#ffb4b4}.hb-scan.idle{color:var(--mut)}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--g);animation:beat 1.6s infinite;flex:none}
@keyframes beat{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.hb-guard{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.g-pill{display:inline-flex;gap:6px;align-items:baseline;padding:3px 10px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:12px}
.g-pill .k{color:var(--mut)}.g-pill b{font-weight:600;font-size:12px}
.g-pill.warn{border-color:rgba(245,165,36,.5)}.g-pill.bad{border-color:rgba(240,82,82,.6)}
.heartbeat .chip[role=button]{cursor:pointer}
.heartbeat .chip[role=button]:hover{border-color:var(--line2)}

/* ---------- sub-navigation ---------- */
.subnav{display:flex;gap:4px;padding:10px 18px 0;max-width:1500px;margin:0 auto;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.subnav button{background:none;border:0;color:var(--mut);padding:8px 12px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}
.subnav button:hover{color:var(--tx)}
.subnav button.active{color:var(--tx);border-bottom-color:var(--acc)}

/* ---------- hierarchy ---------- */
.btn.go{background:#16a34a;border-color:#16a34a;color:#fff}
.btn.go:hover{background:#15803d}
.btn.go.big{font-size:15px;padding:12px 18px;box-shadow:0 6px 18px rgba(22,163,74,.22)}
.btn.warn{font-weight:600}
.q{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#1f2b3d;color:var(--mut);font-size:10.5px;font-weight:700;cursor:help;vertical-align:middle;font-family:inherit}

/* ---------- desk ---------- */
.desk-bar{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-bottom:16px}
.desk-bar .kpis{flex:1;margin:0}
.kpis.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpis.compact .kpi{padding:10px 12px}
.kpis.compact .kpi .v{font-size:18px}
.kpi .v small{font-size:12px;color:var(--mut);font-weight:500}
.kpi.halt{border-color:rgba(240,82,82,.5)}
.desk-tools{display:flex;flex-direction:column;gap:8px;justify-content:center}
.desk-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px}
@media(max-width:1000px){.desk-grid{grid-template-columns:1fr}.desk-tools{flex-direction:row}}
.empty-ico{font-size:22px;opacity:.5;margin-bottom:4px}
.empty b{color:var(--tx)}

/* ---------- signal + position cards ---------- */
.sig{background:linear-gradient(180deg,#152033,#121b2b);border-color:var(--line2);padding:14px 16px 16px;position:relative;overflow:hidden}
.sig-top .side{font-size:11.5px;letter-spacing:.03em}
.origin{font-size:11.5px;padding:2px 8px;border-radius:6px;background:#1c2738;color:#b8c7da}
.origin.lab{background:rgba(79,140,255,.14);color:#a9c8ff}
.origin.ai{background:rgba(168,85,247,.14);color:#d8b4fe}
.ladder{margin:14px 0 10px}
.ladder-bar{position:relative;height:10px;border-radius:9px;background:#0b1220}
.ladder-bar .zone{position:absolute;top:0;bottom:0}
.ladder-bar .zone.loss{background:linear-gradient(90deg,rgba(240,82,82,.55),rgba(240,82,82,.12));border-radius:9px 0 0 9px}
.ladder-bar .zone.gain{background:linear-gradient(90deg,rgba(34,197,94,.12),rgba(34,197,94,.55));border-radius:0 9px 9px 0}
.ladder-bar .tk{position:absolute;top:-4px;width:3px;height:18px;border-radius:2px;transform:translateX(-1px)}
.ladder-bar .tk-entry{background:#cbd5e1}
.ladder-bar .tk-now{width:14px;height:14px;top:-2px;border-radius:50%;transform:translateX(-7px);border:2px solid #0b1220}
.ladder-bar .tk-now.up{background:var(--g)}
.ladder-bar .tk-now.dn{background:var(--r)}
.ladder-l{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-top:7px;font-family:var(--mono)}
.sig-money{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
@media(max-width:700px){.sig-money{grid-template-columns:repeat(2,1fr)}}
.sig-money div{background:#0c1424;border-radius:8px;padding:7px 9px}
.sig-money span{display:block;font-size:11px;color:var(--mut)}
.sig-money b{font-size:14px}
details.why{margin-top:10px;font-size:13px}
details.why summary{cursor:pointer;color:#b8c7da;list-style:none}
details.why summary::-webkit-details-marker{display:none}
details.why summary:before{content:"\25B8  ";color:var(--mut)}
details.why[open] summary:before{content:"\25BE  "}
.stop-src{margin-top:8px;padding:7px 10px;border-radius:8px;background:#0c1424;color:#cfd8e3;font-size:12.5px}
.ttl{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.04)}
.ttl span{display:block;height:100%;background:var(--acc);transition:width 1.5s linear}
.posc{background:linear-gradient(180deg,#152033,#121b2b);border-color:var(--line2);padding:14px 16px}
.pos-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--mut)}
.posc .sig-actions .btn{flex:1}

/* ---------- readiness stepper ---------- */
.ready{border:1px solid #2a4569;background:linear-gradient(135deg,#122239,#111827);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.ready-head{display:flex;gap:10px;align-items:baseline;margin-bottom:10px}
.ready-head .link{margin-left:auto}
.rsteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:1000px){.rsteps{grid-template-columns:1fr}}
.rstep{display:flex;gap:10px;background:rgba(0,0,0,.22);border:1px solid var(--line);border-radius:12px;padding:12px}
.rstep.ok{border-color:rgba(34,197,94,.35)}
.rnum{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line2);font-weight:700;flex:none}
.rstep.ok .rnum{background:var(--g);border-color:var(--g);color:#05230f}
.rbody{min-width:0;display:flex;flex-direction:column;gap:6px}
.rbody .badge{display:inline-block;margin:2px 2px 0 0}
.rbody>.btn,.rbody>.link{align-self:flex-start}
.rd-otp{margin-top:0}
.rd-otp input{width:110px;padding:6px 9px}
.ready-pill{display:inline-flex;gap:8px;align-items:center;margin-bottom:14px;padding:7px 14px;border-radius:999px;background:var(--gbg);border:1px solid rgba(34,197,94,.35);color:#bff0cf;cursor:pointer;font:inherit;font-size:13px}

/* ---------- blockers ---------- */
.blockers{border:1px solid rgba(245,165,36,.45);background:rgba(245,165,36,.07);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.bl-head{font-weight:700;color:#ffd58a;margin-bottom:6px}
.bl{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:7px 0;border-top:1px solid rgba(245,165,36,.15);font-size:13px}
.bl-head+.bl{border-top:0}
.bl.bad{color:#ffc4c4}

/* ---------- presets + settings ---------- */
.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.preset{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel2);display:flex;flex-direction:column}
.preset p{flex:1;margin:8px 0}
.preset .btn{align-self:flex-start}
.preset.rec{border-color:rgba(79,140,255,.45)}
.preset.active{border-color:rgba(34,197,94,.55);box-shadow:inset 0 0 0 1px rgba(34,197,94,.25)}
.settings-ess,.settings-adv{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
details.advanced{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#0f1522}
details.advanced>summary{cursor:pointer;font-weight:600;padding:2px 0}
details.advanced[open]>summary{margin-bottom:12px}

/* ---------- journal ---------- */
.journal{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:1000px){.journal{grid-template-columns:1fr}}
.journal-detail{position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto}
.journal-detail .entry{margin:0}
table.jt tr[data-tid]{cursor:pointer}
table.jt tr[data-tid]:hover td{background:rgba(79,140,255,.05)}
table.jt tr.sel td{background:rgba(79,140,255,.1)}
td.r,th.r{text-align:right}

/* ---------- drawers ---------- */
.topbar{z-index:45}
#userBtn{max-width:170px;overflow:hidden;text-overflow:ellipsis}
.drawer{position:fixed;top:var(--topbar,53px);bottom:0;z-index:40;border-radius:14px 0 0 0;width:min(460px,96vw);background:#0f1624;border:1px solid var(--line2);box-shadow:var(--shadow);
  display:flex;flex-direction:column;padding:12px 14px;transition:transform .22s ease;gap:8px}
.drawer.right{right:0;transform:translateX(105%);border-right:0}
.drawer.left{left:0;transform:translateX(-105%);border-left:0;width:min(380px,96vw);overflow:auto;border-radius:0 14px 0 0}
.drawer.open{transform:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.drawer-head h3{margin:0}
.drawer-head .row{margin-top:0}
.drawer-head select{width:auto;padding:5px 8px;font-size:12.5px}
.drawer .chat-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.drawer .chat-list{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;max-height:none;flex:none}
.drawer .chat-item{flex:none;max-width:180px;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:12px;cursor:pointer}
.drawer .chat-item.active{border-color:var(--acc)}
.drawer .chat-item .ttl{position:static;height:auto;background:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drawer .chat-item .del{background:none;border:0;color:var(--mut);cursor:pointer;padding:0 2px}
.drawer .chat-msgs{flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:10px;background:#0b111c;max-height:none}
.drawer .chat-suggest{display:flex;flex-wrap:wrap;gap:6px}
.drawer .chat-suggest button{background:var(--panel2);border:1px solid var(--line);color:#c4d0dd;border-radius:999px;padding:5px 10px;font:inherit;font-size:12px;cursor:pointer}
.drawer .chat-input{display:flex;gap:8px}
.drawer .chat-input textarea{flex:1;background:#0c1219;color:var(--tx);border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;resize:none}
.drawer .sig{padding:12px}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:35}
@media(min-width:1100px){body:has(#copilot.open) main{margin-right:470px}}
.wl{border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:10px;padding:8px 10px;margin:8px 0;background:var(--panel2)}
.wl.up{border-left-color:var(--g)}
.wl.dn{border-left-color:var(--r)}
.wl .row{gap:8px}
.wl-score{margin-left:auto;font-weight:700}

.panel-head h2{font-size:14.5px}

/* ---------- armed orders ---------- */
.warn-txt{color:#ffd58a}
.arm-card{border-color:rgba(79,140,255,.45)}
.arm-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0 8px}
@media(max-width:700px){.arm-levels{grid-template-columns:repeat(2,1fr)}}
.arm-levels div{background:#0c1424;border-radius:8px;padding:7px 9px}
.arm-levels span{display:block;font-size:11px;color:var(--mut)}
.arm-levels b{font-size:13.5px}
.drawer .arm-levels{grid-template-columns:repeat(2,minmax(0,1fr))}
.arm-actions{flex-wrap:wrap;align-items:center}
.arm-actions .btn.go{flex:1}
.arm-actions input{width:64px;padding:6px 8px;margin:0 0 0 6px}
.arm-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.armed{border:1px solid rgba(79,140,255,.35);background:rgba(79,140,255,.06);border-radius:12px;padding:10px 12px;margin-bottom:12px}
.armed-head{margin-bottom:4px}
.armed-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid rgba(79,140,255,.12)}
.armed-head+.armed-row{border-top:0}
.armed-row .btn{margin-left:auto}

/* ---------- journal: real P&L after charges + importing old trades ---------- */
.row-gap{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pnl-panel .panel-head h2 .sm-text{font-weight:400;margin-left:6px}
.pnl-kpis{margin:4px 0 10px}
.pnl-notes{display:flex;flex-direction:column;gap:6px;font-size:13px}
.pnl-notes .tbl.fy{margin-top:6px;max-width:760px}
.import-box{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.import-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.import-opt{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.import-opt h4{margin:0 0 8px}
.import-opt ol{margin:0 0 10px;padding-left:18px;line-height:1.6}
.file-drop{display:flex;align-items:center;justify-content:center;min-height:64px;border:1.5px dashed var(--line2);border-radius:10px;
  cursor:pointer;color:var(--mut);text-align:center;padding:10px}
.file-drop:hover,.file-drop.over{border-color:var(--acc);color:var(--tx);background:rgba(79,140,255,.06)}
.file-drop input{display:none}
#importResult .note{margin-top:12px;color:var(--tx)}
#importResult .note.err{color:var(--r)}
#importResult ul{margin:6px 0;padding-left:18px}

/* ---------- scalp matrix ---------- */
.mx-cat{margin:8px 0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#0f1522}
.mx-cat summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.mx-cat table{margin-top:8px}
.tbl.mx td{vertical-align:top}
.mx-pick{all:unset;display:block;cursor:pointer;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);min-width:200px;line-height:1.45}
.mx-pick:hover,.mx-pick.sel{border-color:var(--acc)}
.mx-pick.sel{background:rgba(79,140,255,.10)}
.custom-bt{align-items:flex-end}
.custom-bt label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
.custom-bt select,.custom-bt input{min-width:120px}

/* ---------- trade ticket ---------- */
.ticket{z-index:45}
.ticket-card{max-width:900px;max-height:92vh;display:flex;flex-direction:column}
#ticketBody{overflow:auto;min-height:0}
.tk-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;margin-bottom:8px;border:1px solid var(--line)}
.tk-head.up{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.35)}
.tk-head.dn{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.35)}
.tk-side{font-weight:800;letter-spacing:.04em}
.tk-head.up .tk-side{color:var(--g)}.tk-head.dn .tk-side{color:var(--r)}
.tk-name{font-size:18px}
.tk-status{font-size:13px;margin:4px 0 10px;color:#c4d0dd}
.tk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.tk-box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel2)}
.tk-box.bad{border-color:var(--r)}
.tk-box h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.tk-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;font-size:13px}
.tk-row.muted{color:var(--mut)}
.tk-in{width:110px;margin:0 !important;padding:4px 6px;text-align:right}
.tk-why{margin:10px 0 4px;padding-left:18px;font-size:13px}
.tk-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:12px}
#ticketBody .note{margin-top:8px}
.tk-btn{all:unset;cursor:pointer;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid}
.tk-btn.ok{color:var(--g);border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.1)}
.tk-btn.bad{color:var(--r);border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.1)}
.tk-btn:hover{filter:brightness(1.3)}
.mx-row{cursor:pointer}
.mx-sub>td{background:#0d1420;padding:10px 12px}
.mx-detail tr.dim td{opacity:.6}
.tk-row>b,.tk-row>span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}
.tk-row>span:first-child{flex:none;max-width:55%}

/* ---------- strategy diagnostics ---------- */
.diag{border:1px solid var(--line2);border-radius:12px;padding:10px 12px;margin:8px 0 12px;background:#0f1522}
.dg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:8px 0}
.dg{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel2)}
.dg.bad{border-color:rgba(239,68,68,.45)}
.dg .v{font-weight:700;font-size:16px;margin:2px 0}
.dg .s{font-size:12px;color:var(--mut)}
.dg-tips{margin:6px 0 8px;padding-left:18px;font-size:13px}
.zh-plan{margin:4px 0 8px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#0f1522}
.zh-plan summary{cursor:pointer}
.zh-plan ol{margin:8px 0 2px;padding-left:20px;line-height:1.55}
