/* "The Ladder" design (prototype 03, app/static/prototypes/03-ladder.html) applied to
   the real app. Loaded after style.css: it re-themes the existing classes and styles
   the new layout pieces ladder.js adds. Every area is a page (no pop-up pages);
   only small confirmations stay dialogs. Light theme is the default (app.js). */

/* ---------- tokens (prototype values; legacy names aliased below) ---------- */
:root{
  --bg:#0A1326; --bg2:#0F1B33; --bg3:#14233F; --bg4:#1A2B4C;
  --line:#22345A; --line2:#30466F;
  --ink:#E4EAF4; --ink2:#A2AFC7; --ink3:#6C7B97;
  --gold:#D8B260; --gold2:#A88536; --gold-bg:rgba(216,178,96,.15); --gold-ink:#1B1606;
  --steel:#A9BCD3; --steel2:#6E86A6; --steel-bg:rgba(169,188,211,.14);
  --up:#3DD08F; --up-bg:rgba(61,208,143,.13); --down:#F2636F; --down-bg:rgba(242,99,111,.13);
  --warn:#E9A93B; --warn-bg:rgba(233,169,59,.14);
  --c-up:#5BB49B; --c-down:#C96A7A;
  --focus:#8FC1FF; --danger:#E04A57;
  --shadow:0 18px 50px rgba(2,6,18,.55);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --mono:"Azeret Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --topbar-h:58px; --tabbar-h:0px; --rail-w:300px;
  color-scheme:dark;
}
body.light{
  --bg:#E7EBF0; --bg2:#F7F9FB; --bg3:#EEF2F6; --bg4:#E1E7EE;
  --line:#CBD4DF; --line2:#B3C0D0;
  --ink:#132038; --ink2:#46566F; --ink3:#77859B;
  --gold:#8E6B1C; --gold2:#B48C35; --gold-bg:rgba(180,140,53,.15); --gold-ink:#FFFDF6;
  --steel:#4A6485; --steel2:#7F97B5; --steel-bg:rgba(74,100,133,.12);
  --up:#11815A; --up-bg:rgba(17,129,90,.10); --down:#C23448; --down-bg:rgba(194,52,72,.09);
  --warn:#A86A06; --warn-bg:rgba(168,106,6,.12);
  --c-up:#2F8F74; --c-down:#B9536A;
  --focus:#2563D9; --danger:#C02A3A;
  --shadow:0 18px 50px rgba(40,55,80,.18);
  color-scheme:light;
}
/* the existing stylesheet + JS read these names; declared on body so they follow body.light */
body,body.light{
  --panel:var(--bg2); --panel2:var(--bg3); --panel3:var(--bg);
  --border:var(--line); --row-border:var(--line); --text:var(--ink); --muted:var(--ink2); --muted2:var(--ink3);
  --green:var(--up); --red:var(--down); --accent:var(--gold); --blue:var(--steel); --teal:var(--steel2);
  --topbar-bg:color-mix(in srgb,var(--bg) 88%,transparent);
  --active-bg:var(--gold-bg); --buy:var(--gold); --buy-bg:var(--gold-bg); --sell:var(--steel); --sell-bg:var(--steel-bg);
  --chart-grid:var(--line); --on-accent:var(--gold-ink);
}

/* ---------- base ---------- */
body{background:var(--bg);color:var(--ink);font:14.5px/1.5 var(--display);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(1200px 500px at 70% -10%,rgba(216,178,96,.07),transparent 60%),radial-gradient(900px 500px at 0% 110%,rgba(169,188,211,.06),transparent 60%)}
body.light::before{background:radial-gradient(1200px 500px at 70% -10%,rgba(180,140,53,.08),transparent 60%)}
button,input,select,textarea{font-family:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--display);margin:0;font-weight:640;letter-spacing:-.012em}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.muted{color:var(--ink2)} .faint{color:var(--ink3)}
.up,.pos{color:var(--up)} .down,.neg{color:var(--down)} .goldc{color:var(--gold)} .steelc{color:var(--steel)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.crumb{font-size:12.5px;color:var(--ink3);margin-bottom:4px}
.count{font-family:var(--mono);font-size:12px;color:var(--ink3);margin-left:6px;font-weight:400}

/* ---------- top bar ---------- */
/* the body grows with the page: at height:100% (style.css) it ended one screen down
   and took the sticky top bar and rail with it once you scrolled past that */
body{height:auto;min-height:100%}
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;height:var(--topbar-h);padding:0 20px;
  background:var(--topbar-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:9px;flex:none;color:var(--ink);text-decoration:none;overflow:visible;min-width:0}
.brand b{font-size:19px;font-weight:760;letter-spacing:-.03em}
.ticker{display:flex;align-items:baseline;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:20px;flex:none}
.ticker span{font-size:12px;color:var(--ink2)} .ticker b{font-family:var(--mono);font-size:13px;font-weight:600}
.lnav{display:flex;gap:2px;height:100%;align-items:stretch;margin-left:6px;min-width:0}
.lnav-tab{background:none;border:0;padding:0 13px;cursor:pointer;color:var(--ink2);font:520 14.5px/1 var(--display);position:relative;
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.lnav-tab:hover{color:var(--ink)}
.lnav-tab.sel{color:var(--ink)}
.lnav-tab.sel::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--gold),var(--steel))}
.lnav-ico{display:none}
.topbar .spacer{flex:1}
.top-actions{display:flex;align-items:center;gap:8px;flex:none}
.ibtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;min-width:34px;padding:0 10px;border-radius:8px;
  border:1px solid var(--line);background:var(--bg2);cursor:pointer;color:var(--ink);font:500 14px/1 var(--display)}
.ibtn:hover{border-color:var(--line2);background:var(--bg3)}
.userb{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 3px;border:1px solid var(--line);border-radius:20px;background:var(--bg2);height:auto;font-weight:500}
.userb .av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:linear-gradient(135deg,var(--gold),var(--steel));color:#0A1326}
.userb #userName{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.userb small,.userb .tag{color:var(--ink2);font-size:12px;background:none;padding:0;text-transform:none;letter-spacing:0}
.nav-proxy{display:none !important}
/* More menu (grouped like the prototype) */
.more-wrap{position:static}
.more-menu{position:fixed;z-index:55;top:56px;right:16px;width:300px;max-width:calc(100vw - 24px);background:var(--bg2);border:1px solid var(--line2);
  border-radius:12px;box-shadow:var(--shadow);padding:8px;display:block}
.more-menu .grp{padding:6px 4px 4px}
.more-menu .grp + .grp{border-top:1px solid var(--line)}
.more-menu .gl{font-size:12px;color:var(--ink3);padding:2px 8px 4px}
.menu-item{display:flex;width:100%;align-items:center;gap:10px;padding:7px 8px;border:0;background:none;border-radius:7px;cursor:pointer;
  text-align:left;color:var(--ink);font:500 14.5px/1.3 var(--display);text-decoration:none}
.menu-item:hover,.menu-item:focus-visible{background:var(--bg3)}
.menu-item .ic{width:20px;text-align:center;color:var(--ink2);flex:none}
.more-menu .ver{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--ink3);padding:8px 8px 2px;border-top:1px solid var(--line)}

/* ---------- layout: rail + main ---------- */
.layout{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);gap:0;min-height:calc(100vh - var(--topbar-h));max-width:1680px;margin:0 auto}
.sidebar{background:none;border-right:0;padding:20px 0 30px 24px;position:sticky;top:var(--topbar-h);align-self:start;
  max-height:calc(100vh - var(--topbar-h));overflow:auto;display:flex;flex-direction:column;gap:18px}
.content{padding:20px 24px 90px;min-width:0;overflow:visible}
/* one pair of lists per section (prototype rails) */
.sidebar[data-view="profiles"] #side-exec,.sidebar[data-view="profiles"] #side-live{display:none}
.sidebar[data-view="backtests"] #side-profiles,.sidebar[data-view="backtests"] #sharedProfilesPanel{display:none}
.sidebar .panel{background:none;border:0;border-radius:0;padding:0;margin:0}
.sidebar .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:2px 2px 8px;margin:0}
.sidebar .panel-head h2{font:640 15px/1.3 var(--display);letter-spacing:-.012em;text-transform:none;color:var(--ink);display:flex;align-items:baseline;gap:0;min-width:0}
.sidebar .pill{background:none;padding:0;font-family:var(--mono);font-size:12px;color:var(--ink3);margin-left:6px}
.head-right{display:flex;align-items:center;gap:8px}
.scope-label{font-size:12px;font-weight:500;color:var(--ink3);margin-left:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drag-handle{opacity:0;width:0;margin:0 !important;padding:0;overflow:hidden;display:inline-block;transition:opacity .15s;cursor:grab;color:var(--ink3);font-size:12px}
.webpart:hover > * > h2 .drag-handle,.webpart:hover > * > h3 .drag-handle,.webpart:hover > h3 .drag-handle,.webpart:hover > h4 .drag-handle{opacity:.7;width:auto;margin-right:6px}
.link-btn{background:none;border:0;color:var(--gold);cursor:pointer;font:500 12.5px var(--display);padding:0}
/* rows */
.sidebar .list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.sidebar .list li{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:9px 6px;border:0;
  border-bottom:1px solid var(--line);border-radius:0;background:none;cursor:pointer;flex-direction:initial}
.sidebar .list li:hover{background:var(--bg2);border-color:var(--line)}
.sidebar .list li.active{background:linear-gradient(90deg,var(--gold-bg),transparent 80%);box-shadow:inset 3px 0 0 var(--gold);border-color:var(--line)}
.sidebar .list li .row-g{grid-row:1 / span 2;align-self:center}
.sidebar .list li .row{display:contents}
.sidebar .list li .row-g{grid-column:1;grid-row:1 / span 2}
.sidebar .list .name{grid-column:2;grid-row:1;font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;display:block;font-size:14.5px}
.sidebar .list .name .pid{color:var(--ink3);font-weight:500;font-family:var(--mono);font-size:12px;margin-right:3px}
.sidebar .list .sub{grid-row:2;font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;grid-column:2}
.sidebar .list .net,.sidebar .list .rv{text-align:right;font-family:var(--mono);font-size:12.5px;white-space:nowrap;grid-column:3;grid-row:1}
.sidebar .list .rs{text-align:right;font-family:var(--mono);font-size:11.5px;color:var(--ink3);white-space:nowrap;grid-column:3;grid-row:2}
.sidebar .list .net.pos,.sidebar .list .rv.pos{color:var(--up)} .list .net.neg,.list .rv.neg{color:var(--down)}
.sidebar .list li .row{display:contents}
/* row actions sit behind a small ⋯ button so a click on the row only opens it */
.sidebar .kebab{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:6px;border:1px solid var(--line);
  background:var(--bg2);color:var(--ink2);cursor:pointer;font:600 14px/1 var(--display);opacity:0;z-index:2}
.sidebar .list li:hover .kebab,.sidebar .list li:focus-within .kebab,.sidebar .list li.acts-open .kebab{opacity:1}
@media (hover:none){.sidebar .kebab{opacity:1}}
.sidebar .list li .li-actions{position:absolute;right:30px;top:50%;transform:translateY(-50%);display:none;gap:4px;padding:3px;border-radius:7px;
  background:var(--bg2);border:1px solid var(--line2);box-shadow:var(--shadow);z-index:3}
.sidebar .list li.acts-open .li-actions{display:flex}
.sidebar .li-actions button{background:var(--bg3);border:1px solid var(--line);color:var(--ink2);border-radius:6px;height:26px;min-width:26px;padding:0 6px;cursor:pointer;font-size:12px}
.sidebar .li-actions button:hover{color:var(--ink);border-color:var(--line2)}
.sidebar .list li[style*="cursor:default"]{display:block;color:var(--ink3);font-size:13px;padding:12px 6px}
.lglyph{display:block;fill:none}
.lglyph .rl{stroke:var(--line2);stroke-width:1.4}
.lglyph .b{stroke:var(--gold);stroke-width:1.6} .lglyph .s{stroke:var(--steel);stroke-width:1.6}
.lglyph .an{stroke:var(--ink3);stroke-width:1;stroke-dasharray:1.5 1.5}
.lglyph.shared .b{opacity:.5} .lglyph.shared .s{opacity:.5}
.pager{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px;font-size:12.5px;color:var(--ink2);border:0;margin:0}
.pager-controls{display:flex;gap:8px;align-items:center;width:100%;justify-content:space-between}
.pager-controls .btn{height:28px;padding:0 9px;font-size:13px;background:none;border-color:transparent;color:var(--ink2)}
.pager-controls .btn:hover:not(:disabled){background:var(--bg3);color:var(--ink)}
.side-version{font-family:var(--mono);font-size:11px;color:var(--ink3);text-align:left;padding:4px 2px}

/* ---------- buttons, inputs, chips, tables ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border-radius:8px;border:1px solid var(--line2);
  background:var(--bg3);color:var(--ink);cursor:pointer;font:540 14px/1 var(--display);white-space:nowrap;transition:background .12s}
.btn:hover{background:var(--bg4);border-color:var(--line2)}
.btn-primary,.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:600}
.btn-primary:hover,.btn.primary:hover{filter:brightness(1.08);background:var(--gold)}
.btn.ghost{background:none;border-color:transparent;color:var(--ink2)}
.btn.ghost:hover{color:var(--ink);background:var(--bg3)}
.btn.sm{height:28px;padding:0 9px;font-size:13px;border-radius:6px}
.btn[disabled],.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-sq{min-width:34px;padding:0 9px}
.btn-live{color:var(--ink);border-color:var(--line2);font-weight:540}
.btn-live:hover{background:var(--bg4);color:var(--ink)}
.btn-stop{background:var(--bg3);border:1px solid var(--line2);color:var(--down);border-radius:6px;cursor:pointer}
.btn-stop:hover{background:var(--down-bg);color:var(--down)}
.btn-danger,.btn.danger{background:var(--danger);border:1px solid var(--danger);color:#fff;border-radius:8px;height:34px;padding:0 14px;font:600 14px/1 var(--display);cursor:pointer}
.btn-danger:hover,.btn.danger:hover{filter:brightness(1.08)}
.danger:not(.btn-danger):not(.btn):not(.btn-stop){color:var(--down)}
.btn.danger-text{background:none;border-color:transparent;color:var(--down)}
.icon-btn{background:none;border:0;color:var(--ink2);font-size:18px;cursor:pointer}
label{color:var(--ink2);font-size:12.5px}
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{height:34px;padding:0 10px;border-radius:7px;border:1px solid var(--line2);
  background:var(--bg);color:var(--ink);font:400 14px/1.2 var(--display);min-width:0}
textarea{height:auto;padding:8px 10px;line-height:1.45}
input[type=number]{font-family:var(--mono);text-align:right;font-size:13px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus)}
input[type=checkbox]:not(.sw-native){appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:10px;background:var(--line2);
  position:relative;cursor:pointer;flex:none;margin:0;vertical-align:middle;transition:background .15s}
input[type=checkbox]:not(.sw-native)::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--ink);transition:transform .15s}
input[type=checkbox]:not(.sw-native):checked{background:var(--gold)}
input[type=checkbox]:not(.sw-native):checked::after{transform:translateX(14px);background:var(--gold-ink)}
input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}
td input[type=checkbox],th input[type=checkbox],.cb-plain input[type=checkbox]{width:16px;height:16px;border-radius:4px;background:var(--bg);border:1px solid var(--line2)}
td input[type=checkbox]::after,th input[type=checkbox]::after,.cb-plain input[type=checkbox]::after{display:none}
td input[type=checkbox]:checked,th input[type=checkbox]:checked,.cb-plain input[type=checkbox]:checked{background:var(--gold);border-color:var(--gold);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E")}
input[type=range]{accent-color:var(--gold);width:100%}
.chip-b{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;border:1px solid var(--line2);color:var(--ink2);white-space:nowrap}
.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:4px;font:600 11px/1 var(--mono)}
.badge.B,.sidetag.B{background:var(--gold-bg);color:var(--gold)} .badge.S,.sidetag.S{background:var(--steel-bg);color:var(--steel)}
.sidetag{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;font:600 11px/1 var(--mono)}
.badge-grey{background:none;color:var(--ink2);border:1px solid var(--line2);border-radius:11px;font-family:var(--display);font-weight:500}
.badge-red{background:var(--down-bg);color:var(--down);border:1px solid color-mix(in srgb,var(--down) 50%,transparent);border-radius:11px;font-family:var(--display)}
.badge-amber{background:var(--warn-bg);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 50%,transparent);border-radius:11px;font-family:var(--display)}
.badge-green{background:var(--up-bg);color:var(--up);border:1px solid color-mix(in srgb,var(--up) 50%,transparent);border-radius:11px;font-family:var(--display)}
.tag{font-size:11px;color:var(--ink2);background:var(--bg3);padding:2px 6px;border-radius:5px}
.bebadge{font-family:var(--mono);font-size:10.5px;padding:1px 5px;border-radius:4px;color:var(--up);border:1px solid color-mix(in srgb,var(--up) 50%,transparent);margin-left:4px}
.lvl{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:4px}
.lvl.INFO{color:var(--ink2);background:var(--bg3)} .lvl.WARN{color:var(--warn);background:var(--warn-bg)} .lvl.ERROR{color:var(--down);background:var(--down-bg)}
.table-wrap{overflow-x:auto;max-width:100%}
table{border-collapse:collapse}
.trades,.t,.logs-table,#usersTable,.mon-table,.mt4-table,table.data{width:100%;border-collapse:collapse;font-size:13px}
.trades th,.t th,.modal-body table th,.content table th{font:560 12.5px/1.3 var(--display);color:var(--ink2);text-align:left;padding:7px 10px;
  border-bottom:1px solid var(--line2);white-space:nowrap;text-transform:none;letter-spacing:0;background:none}
.trades td,.t td,.modal-body table td,.content table td{padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px}
.trades td,.t td.num{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.trades td:nth-child(2),.trades td:nth-child(8){font-family:var(--display);font-size:13px}
.trades tbody tr:hover,.t tbody tr:hover,.modal-body table tbody tr:hover{background:var(--bg3)}
.trades td.pos{color:var(--up)} .trades td.neg{color:var(--down)}
.trades th.sortable{cursor:pointer}

/* ---------- result ---------- */
.welcome{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:40px;align-items:center;max-width:none;margin:0;text-align:left;
  padding:56px 48px;border:1px dashed var(--line2);border-radius:16px;background:var(--bg2)}
.welcome h2{font-size:34px;line-height:1.12;font-weight:680;max-width:18ch;letter-spacing:-.02em}
.welcome p{color:var(--ink2);margin:10px 0 20px;max-width:52ch;line-height:1.55}
.welcome .actions{display:flex;flex-wrap:wrap;gap:8px}
.result-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 24px;align-items:flex-end;margin-bottom:16px}
.result-head h2{font-size:26px;line-height:1.15;font-weight:680}
.result-head .muted,#resSub{color:var(--ink2);font-size:13.5px;margin-top:4px;max-width:90ch}
.result-actions{display:flex;flex-wrap:wrap;gap:8px}
#editProfileBtn{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:600}
.live-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 14px;margin-bottom:14px;border-radius:10px;
  border:1px solid color-mix(in srgb,var(--up) 45%,transparent);background:var(--up-bg)}
.live-badge.on{background:var(--up);color:var(--gold-ink);animation:none}
/* cycle strip */
.cycle-strip{display:flex;align-items:stretch;gap:4px;margin-bottom:12px}
.cyc-lbl{display:flex;align-items:center;padding-right:8px;font-size:13px;color:var(--ink2);white-space:nowrap}
.cyc-row{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}
.cyc{position:relative;flex:1 1 0;min-width:72px;border:1px solid var(--line);border-radius:6px;background:var(--bg2);padding:5px 8px 7px;cursor:pointer;
  text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:1px;box-shadow:none;color:var(--ink);font-family:var(--display)}
.cyc::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--up);opacity:.8}
.cyc.neg::before{background:var(--down)}
.cyc.open::before{background:repeating-linear-gradient(90deg,var(--gold) 0 6px,transparent 6px 10px);opacity:1}
.cyc.all::before{display:none}
.cyc b{font-weight:640;font-size:13px;white-space:nowrap}
.cyc span{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--display);color:var(--up)}
.cyc.neg span{color:var(--down)} .cyc.open span,.cyc.all span{color:var(--ink2)}
.cyc.sel{border-color:var(--gold);background:var(--gold-bg)}
.cyc:hover{border-color:var(--line2)}
.cyc.all{flex:none}
/* the stage */
#part-price{background:none;border:0;padding:0;margin:0 0 0}
#part-price > .chart-head{display:none}
.stagewrap{display:grid;grid-template-columns:minmax(0,1fr) 290px;border:1px solid var(--line);border-radius:14px;background:var(--bg2);overflow:hidden}
.stage-chart{position:relative;display:flex;min-width:0;border-right:1px solid var(--line)}
.stage-chart .chart{flex:1;min-width:0;height:620px;position:relative}
.stage-tools{position:absolute;top:8px;left:10px;display:flex;gap:6px;z-index:3}
.stage-tools .btn{background:color-mix(in srgb,var(--bg2) 85%,transparent)}
.stage-chart .chart-legend-overlay{top:44px !important}
.ladder-rail{position:relative;flex:none;width:300px;height:620px;border-left:1px solid var(--line);background:var(--bg2);overflow:hidden}
.rail-lines{position:absolute;inset:0;pointer-events:none}
.rail-spine{stroke:var(--line2);stroke-width:2}
.rail-anchor{stroke:var(--ink3);stroke-dasharray:1 3;stroke-width:1.4}
.rail-last{stroke:var(--ink);stroke-width:1.2}
.rail-leader{fill:none;stroke-width:1;opacity:.55}
.rail-leader.B{stroke:var(--gold)} .rail-leader.S{stroke:var(--steel)}
.rail-tick{fill:var(--bg2)} .rail-tick.B{stroke:var(--gold)} .rail-tick.S{stroke:var(--steel)}
.rail-tick.f.B{fill:var(--gold)} .rail-tick.f.S{fill:var(--steel)}
.rail-sl{stroke:var(--down);stroke-width:1.4;stroke-dasharray:2 2;opacity:.85} .rail-sl.be{stroke:var(--up)}
.rail-head{position:absolute;left:0;right:0;bottom:0;height:26px;display:grid;grid-template-columns:auto 1fr auto;gap:6px;padding:0 8px;align-items:center;
  border-top:1px solid var(--line);font:600 12px/1 var(--display);text-align:center;background:var(--bg2)}
.rail-head .b{color:var(--gold)} .rail-head .s{color:var(--steel)}
.rail-head .a{color:var(--ink3);font:500 10px/1 var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-last-lbl{position:absolute;left:50%;transform:translate(-50%,-50%);font:600 10.5px/1 var(--mono);padding:3px 6px;border-radius:3px;
  white-space:nowrap;pointer-events:none;z-index:2;background:var(--ink);color:var(--bg)}
.rung{position:absolute;display:flex;align-items:center;gap:6px;padding:0 7px;border-radius:3px;font:500 10.5px/1 var(--mono);cursor:pointer;
  overflow:hidden;white-space:nowrap;border:1.2px solid;background:var(--bg2);color:var(--ink2);z-index:1}
.rung b{font-weight:600}
.rung .u{color:var(--ink2)} .rung .p{margin-left:auto;color:var(--ink2)} .rung .pl{margin-left:auto}
.rung .pl.pos{color:var(--up)} .rung .pl.neg{color:var(--down)}
.rung .flag{font-style:normal;font-weight:700;color:var(--up)}
.rung.B{border-color:var(--gold)} .rung.S{border-color:var(--steel)}
.rung.B b{color:var(--gold)} .rung.S b{color:var(--steel)}
.rung.pending{border-style:dashed}
/* a past cycle's stop that never filled (Monitor: cycle picked in the strip) */
.rung.cancelled{opacity:.5;background:none}
.rung.cancelled .p{text-decoration:line-through}
.mon-live-btn{margin-left:4px;vertical-align:baseline}
.rung.filled.B{background:var(--gold-bg)} .rung.filled.S{background:var(--steel-bg)}
.rung.filled::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.rung.filled.B::before{background:var(--gold)} .rung.filled.S::before{background:var(--steel)}
.rung.be{box-shadow:none}
.rung.off{opacity:.6}
.rung:hover{filter:brightness(1.1)}
.rung.hot{outline:1.6px solid var(--focus);z-index:3}
.rung.sel{outline:1.6px solid var(--ink);outline-offset:1px;z-index:3}
.rail-empty{position:absolute;inset:30% 14px auto;text-align:center;color:var(--ink2);font-size:12.5px;line-height:1.5}
.stage-side{padding:16px;display:flex;flex-direction:column;gap:16px;min-width:0;background:none}
.stage-side h4,.stage-side h3{font-size:13.5px;font-weight:600;color:var(--ink2);margin:0 0 6px}
.cycle-gauge{background:none;padding:0;border-radius:0}
.gauge{width:100%;max-width:240px;display:block;margin:0}
.g-track{fill:none;stroke:var(--line);stroke-width:10;stroke-linecap:round}
.g-fill{fill:none;stroke-width:10;stroke-linecap:round} .g-fill.pos{stroke:var(--up)} .g-fill.neg{stroke:var(--down)}
.g-zero{stroke:var(--ink3);stroke-width:1.5}
.g-dot{stroke:var(--bg2);stroke-width:2} .g-dot.pos{fill:var(--up)} .g-dot.neg{fill:var(--down)}
.g-lbl{fill:var(--ink3);font:500 10.5px var(--mono)}
.g-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font:700 30px/1 var(--display);letter-spacing:-.03em;margin-top:-2px;font-variant-numeric:tabular-nums}
.g-big small{font:400 13px/1.3 var(--display);color:var(--ink2);letter-spacing:0}
.g-big.pos{color:var(--up)} .g-big.neg{color:var(--down)}
.g-break,.rung-detail dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:13px}
.g-break dt,.rung-detail dt{color:var(--ink2)}
.g-break dd,.rung-detail dd{margin:0;text-align:right;font:12.5px/1.4 var(--mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.g-break .pos,.rung-detail .pos{color:var(--up)} .g-break .neg,.rung-detail .neg{color:var(--down)}
.g-why{margin:6px 0 0;font-size:12px;color:var(--ink3);line-height:1.45}
.rung-detail{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg);font-size:13px;line-height:1.45;color:var(--ink2)}
.rd-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}
.rd-head b{font-size:18px;font-weight:700} .rd-head.B b{color:var(--gold)} .rd-head.S b{color:var(--steel)}
.rd-head .btn-sq{height:26px;min-width:26px;font-size:12px;padding:0 6px}
.action-legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:12px;color:var(--ink2)}
.action-legend span{display:flex;align-items:center;gap:6px;min-width:0}
.action-legend b{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:var(--bg3);border:1px solid var(--line2);font-size:10.5px;flex:none;padding:0 3px}
.rung-key{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:12px;color:var(--ink2)}
.rung-key span{display:flex;align-items:center;gap:6px}
.rk{display:inline-block;width:22px;height:10px;border-radius:2px;border:1px solid var(--gold);flex:none}
.rk.pend{border-style:dashed}
.rk.fill-b{background:var(--gold-bg);box-shadow:inset 3px 0 0 var(--gold)} .rk.fill-s{background:var(--steel-bg);border-color:var(--steel);box-shadow:inset 3px 0 0 var(--steel)}
.rk.be{border:0;border-top:1.4px dashed var(--up);height:0;border-radius:0}
.side-sub{font-size:13.5px;font-weight:600;color:var(--ink2);margin:0 0 8px}
/* lower: summary sheet + equity */
#resultView{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);column-gap:24px;grid-auto-flow:row dense}
#resultView > *{grid-column:1 / -1;min-width:0}
#resultView > #part-stats,#resultView > #part-equity{grid-column:auto;margin-top:26px}
#part-stats,#part-equity{background:none;border:0;padding:0;border-radius:0}
.chart-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.chart-head h3{font-size:18px;line-height:1.25;font-weight:640}
.stat-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border-top:1px solid var(--line);margin:0}
.stat-card{grid-column:span 2;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 12px 10px 0}
.stat-card:nth-child(1),.stat-card:nth-child(2){grid-column:span 3}
.stat-card .label{font-size:12.5px;color:var(--ink2);text-transform:none;letter-spacing:0}
.stat-card .value{margin-top:2px;font:620 17px/1.25 var(--mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat-card:nth-child(1) .value,.stat-card:nth-child(2) .value{font:720 34px/1.05 var(--display);letter-spacing:-.03em}
.stat-card .value div{font-family:var(--display) !important}
#equityChart{height:260px}
/* tabs */
#part-tables{background:none;border:0;padding:0;margin-top:28px;border-radius:0}
.tab-head{margin:0;border-bottom:1px solid var(--line);gap:4px;justify-content:flex-start}
.tab-head h3{display:none}
.res-tabs{display:flex;gap:4px;flex-wrap:wrap}
.res-tab{border:0;background:none;padding:9px 12px;cursor:pointer;color:var(--ink2);font:560 14.5px/1.2 var(--display);position:relative;border-radius:0}
.res-tab:hover{color:var(--ink)}
.res-tab.sel{color:var(--ink);background:none}
.res-tab.sel::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--gold)}
.res-tab .cnt{font:inherit;color:inherit;background:none;padding:0}
.res-tab .cnt::before{content:" ("} .res-tab .cnt::after{content:")"}
.res-panel{padding-top:14px}
.panel-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 10px;font-size:13px;color:var(--ink2)}
/* positions as a table */
.positions{display:block;max-height:none;overflow:visible}
.pos-table td,.pos-table th{white-space:nowrap}
.pos-table tr.grp td{background:var(--bg3);font-weight:600;border-bottom:1px solid var(--line2);font-family:var(--display);font-size:13px}
.pos-table tr.grp td.num{font-family:var(--mono)}
.pos-table td.num,.pos-table th.num{text-align:right}
.pos-table tr.linkable{cursor:pointer}
.pos-table tr.linkable:hover{background:var(--bg3)}
.pos-empty{color:var(--ink2);padding:18px 2px}
/* run log as a table */
.run-log{display:block;max-height:none;background:none;border:0;padding:0;font-family:var(--display)}
.run-log-head{display:flex;gap:0;padding:7px 10px;border-bottom:1px solid var(--line2);font:560 12.5px/1.3 var(--display);color:var(--ink2);background:none}
.log-line{display:flex;gap:12px;align-items:baseline;padding:7px 10px;border-bottom:1px solid var(--line);font-size:13px;background:none}
.log-line:hover{background:var(--bg3)}
.log-line .log-time{font-family:var(--mono);font-size:12px;color:var(--ink2);min-width:140px}
.log-line .log-lvl{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:4px;min-width:0;color:var(--ink2);background:var(--bg3)}
.log-line .log-lvl.WARN,.log-line.warn .log-lvl{color:var(--warn);background:var(--warn-bg)}
.log-line .log-lvl.ERROR,.log-line.error .log-lvl{color:var(--down);background:var(--down-bg)}

/* ---------- pages: every former pop-up area renders in the content area ---------- */
.modal.page-modal{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:var(--tabbar-h);padding:0;background:var(--bg);display:block;
  overflow-y:auto;z-index:30;align-items:initial;justify-content:initial}
.modal.page-modal.page-under{visibility:hidden}
.page-modal > .modal-card,.page-modal > .modal-card.wide,#mtMonitorModal.page-modal > .modal-card.wide,#analysisModal.page-modal .modal-card.wide,
.page-modal > .modal-card.manual-card{width:100%;max-width:1640px;height:auto;max-height:none;margin:0 auto;background:none;border:0;border-radius:0;
  display:block;padding:20px 24px 90px;box-shadow:none}
.page-modal .modal-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 24px;padding:0;margin:0 0 18px;
  border:0;background:none;position:static}
.page-modal .modal-head h2,.page-modal .modal-head h3{font-size:26px;line-height:1.15;font-weight:680;letter-spacing:-.012em}
.page-modal .page-title{display:flex;flex-direction:column;min-width:0;flex:1 1 320px}
.page-modal .page-desc{color:var(--ink2);font-size:14px;margin-top:4px;max-width:90ch}
.page-modal .page-close{display:none}
.page-modal .modal-body{padding:0;overflow:visible;max-height:none;height:auto}
.page-modal .modal-foot{border:0;padding:18px 0 0;justify-content:flex-start;background:none}
body.page-open{overflow:hidden}
/* remaining dialogs (share, password, version, settings, chart detail) */
.modal:not(.page-modal){z-index:60;background:rgba(10,19,38,.45);backdrop-filter:blur(2px)}
.modal.modal-top:not(.page-modal){z-index:65}
.modal:not(.page-modal) .modal-card{background:var(--bg2);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow)}
.modal:not(.page-modal) .modal-head{border-bottom:1px solid var(--line);padding:16px 20px}
.modal:not(.page-modal) .modal-head h2,.modal:not(.page-modal) .modal-head h3{font-size:18px;font-weight:640}
.modal:not(.page-modal) .modal-foot{border-top:1px solid var(--line)}
.panel,.grid-block,.chart-block{background:var(--bg2);border:1px solid var(--line);border-radius:12px}
.modal-note{background:var(--steel-bg);border:1px solid color-mix(in srgb,var(--steel) 40%,transparent);color:var(--ink);border-radius:10px}

/* ---------- toasts, login, chat ---------- */
.toast{background:var(--bg2);border:1px solid var(--line2);color:var(--ink);border-radius:10px;box-shadow:var(--shadow);font-size:14px}
.login-screen{background:var(--bg)}
.login-card{background:var(--bg2);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.login-brand h1{font-size:24px;font-weight:680}
.login-card .btn{height:38px}
.login-card input{width:100%}
.chat-fab{display:none !important}
.chat-panel{background:var(--bg2);border:1px solid var(--line2);box-shadow:var(--shadow);border-radius:14px}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  .stagewrap{grid-template-columns:minmax(0,1fr)}
  .stage-chart{border-right:0;border-bottom:1px solid var(--line)}
  .stage-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}
  .ladder-rail{width:270px}
}
@media (max-width:1100px){
  .ticker{display:none}
  .lnav-tab{padding:0 9px}
  #resultView > #part-stats,#resultView > #part-equity{grid-column:1 / -1}
}
@media (max-width:880px){
  :root{--tabbar-h:62px}
  body{padding-bottom:var(--tabbar-h)}
  .topbar{gap:10px;padding:0 12px}
  .userb #userName,.userb small,.userb .tag{display:none}
  .userb{padding:3px}
  .layout{display:flex;flex-direction:column}
  .sidebar{position:static;max-height:none;padding:14px 12px 0;order:0}
  .content{order:1;padding:16px 12px 40px}
  .lnav{position:fixed;left:0;right:0;bottom:0;height:var(--tabbar-h);z-index:45;background:var(--topbar-bg);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);justify-content:space-around;gap:0;margin:0;padding:0 4px env(safe-area-inset-bottom)}
  .lnav-tab{flex:1;flex-direction:column;justify-content:center;gap:3px;padding:0 2px;font-size:11.5px;min-width:0}
  .lnav-tab span:last-child{overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .lnav-ico{display:block}
  .lnav-tab.sel::after{top:0;bottom:auto;left:24%;right:24%;border-radius:0 0 3px 3px}
  .modal.page-modal{top:var(--topbar-h)}
  .page-modal > .modal-card,.page-modal > .modal-card.wide{padding:16px 12px 40px}
  .ladder-rail{width:150px}
  .stage-chart .chart,.ladder-rail{height:440px}
  .toast{bottom:calc(var(--tabbar-h) + 14px)}
  .welcome{grid-template-columns:1fr;padding:28px 20px}
  .welcome .illo{display:none}
  .welcome h2{font-size:26px}
  .stat-card .value{font-size:15px}
  .stat-card:nth-child(1) .value,.stat-card:nth-child(2) .value{font-size:26px}
}
@media (max-width:640px){
  #newProfileBtnTop{display:none}
  .ladder-rail{width:116px}
  .stage-chart .chart,.ladder-rail{height:400px}
  .result-head h2,.page-modal .modal-head h2{font-size:22px}
  .stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-card,.stat-card:nth-child(1),.stat-card:nth-child(2){grid-column:span 1}
  .action-legend,.rung-key{grid-template-columns:1fr}
  .cyc{min-width:64px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;transition:none !important;animation:none !important}}

/* ---------- section-dependent main area ---------- */
body[data-view="profiles"]:not(.editor-open) #resultView{display:none !important}
body[data-view="profiles"] #welcome{display:grid !important}
/* the profile editor page sits beside the rail and shows the profile lists in it */
@media (min-width:881px){
  #modal.page-modal{left:calc(max(0px, (100vw - 1680px) / 2) + var(--rail-w))}
  #modal.page-modal > .modal-card{padding-left:24px}
}
body.editor-open .sidebar #side-profiles,body.editor-open .sidebar #sharedProfilesPanel{display:block !important}
body.editor-open .sidebar #side-exec,body.editor-open .sidebar #side-live{display:none !important}
.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--up);margin-right:5px;vertical-align:middle;animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(61,208,143,.55)}70%{box-shadow:0 0 0 7px rgba(61,208,143,0)}100%{box-shadow:0 0 0 0 rgba(61,208,143,0)}}
.log-line .log-level{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:4px;color:var(--ink2);background:var(--bg3);min-width:44px;text-align:center}
.log-line .log-level.WARN{color:var(--warn);background:var(--warn-bg)} .log-line .log-level.ERROR{color:var(--down);background:var(--down-bg)}
.log-line .log-msg{flex:1;min-width:0;white-space:normal}
.panel-meta b{font-weight:600}

/* ---------- profile editor page ---------- */
#modal.page-modal .modal-head{align-items:flex-end;flex-wrap:wrap}
.ed-left{flex:1 1 380px;min-width:0;display:flex;flex-direction:column}
#modal .ed-crumb{font:400 12.5px/1.3 var(--display) !important;color:var(--ink3);letter-spacing:0 !important;margin:0 0 4px}
#modal .ed-name{font:680 26px/1.2 var(--display);letter-spacing:-.02em;background:none;border:0;border-bottom:1px dashed var(--line2);
  border-radius:0;padding:2px 0;height:auto;width:min(560px,100%);color:var(--ink);text-align:left}
#modal .ed-name:focus{border-bottom-color:var(--focus)}
.ed-inst{display:flex;flex-direction:row;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--ink2)}
.ed-inst select{width:auto;min-width:200px}
.ed-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ed-actions #saveBtn{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.modal-body.ed-grid{display:grid !important;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
.ed-main{min-width:0;display:flex;flex-direction:column}
.ro-banner{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:var(--steel-bg);
  border:1px solid color-mix(in srgb,var(--steel) 40%,transparent);flex-wrap:wrap;justify-content:space-between}
.ro-banner.hidden{display:none}
/* Claude analysis as the right-hand panel */
#prReport.ai{position:sticky;top:0;margin:0;border:1px solid var(--line);border-radius:14px;background:var(--bg2);padding:16px;
  --pr-bg:var(--bg2);--pr-bg2:var(--bg3);--pr-border:var(--line);--pr-text:var(--ink);--pr-muted:var(--ink2);--pr-accent:var(--gold)}
#prReport.ai .pr-head{flex-direction:column;align-items:stretch;gap:10px}
#prReport.ai .pr-head h3{font-size:18px;font-weight:640}
#prReport.ai .pr-head .hint{display:block;font-size:13px;color:var(--ink2);margin-top:4px}
#prReport.ai .pr-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
#prReport.ai .pr-actions #prRun{grid-column:1 / -1;grid-row:2;justify-content:center}
#prReport.ai select,#prReport.ai .btn{background:var(--bg);color:var(--ink);border-color:var(--line2)}
#prReport.ai .btn-primary{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
#prReport.ai .pr-bar{grid-template-columns:1fr;gap:8px;border-top:1px solid var(--line);padding-top:10px}
#prReport.ai .pr-tools{flex-wrap:wrap}
#prReport.ai .pr-body{background:var(--bg);color:var(--ink);border-color:var(--line);height:min(46vh,480px);font-size:13px}
#prReport.ai .pr-empty{color:var(--ink2)}
/* ladder geometry block */
#ladderPreview.geo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"c p" "i p";align-items:start;gap:22px;
  border:1px solid var(--line);border-radius:14px;background:var(--bg2);padding:18px;margin:0 0 18px}
.geo-ctrls{grid-area:c;display:flex;flex-direction:column;gap:14px}
.geo-ctrls h2{font-size:18px}
.geo-note{font-size:13px;margin-top:4px}
.geo-ctrl .lr{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px;color:var(--ink)}
.geo-ctrl .lr input{width:86px}
.geo-ctrl input[type=range]{margin-top:6px}
.geo-prev{grid-area:p;min-width:0}
.implied{grid-area:i;border-top:1px solid var(--line);padding-top:12px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;margin:0}
.kv dt{color:var(--ink2)} .kv dd{margin:0;text-align:right;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.kv dd.up{color:var(--up)}
.fullm{margin-top:10px;font-size:12.5px}
.fullm .fl{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 10px}
.fullm .num.gold{color:var(--gold)} .fullm .num.warn{color:var(--warn)} .fullm .num.down{color:var(--down)}
.meter{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:4px}
.meter i{display:block;height:100%;background:var(--gold)} .meter i.warn{background:var(--warn)} .meter i.down{background:var(--down)}
.svgt{font-family:var(--mono);font-size:10.5px;fill:var(--ink3)}
.pv-rb{stroke:var(--gold);stroke-width:3} .pv-rs{stroke:var(--steel);stroke-width:3} .pv-rr{stroke:var(--line2);stroke-width:2}
.pv-anc{stroke:var(--ink);stroke-width:1.2}
.pv-B{fill:var(--gold-bg);stroke:var(--gold);stroke-dasharray:3 2} .pv-S{fill:var(--steel-bg);stroke:var(--steel);stroke-dasharray:3 2}
.svgt.pv-tB{fill:var(--gold)} .svgt.pv-tS{fill:var(--steel)} .pv-be{fill:var(--up)}
.pv-bel{stroke:var(--up);stroke-width:1.4;stroke-dasharray:2 2}
/* the strategy form: folding groups of fields */
.config-form{gap:0}
.cfg-legend{font-size:12px;color:var(--ink3);margin:0 0 8px}
.cfg-group{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:0;margin:0}
.cfg-group.geo-src{display:none}
.cfg-group h4{display:flex;align-items:center;gap:10px;padding:13px 2px;margin:0;cursor:pointer;font:600 15px/1.3 var(--display);color:var(--ink);
  text-transform:none;letter-spacing:0}
.cfg-group h4::before{content:"";width:7px;height:7px;border-right:1.6px solid var(--ink3);border-bottom:1.6px solid var(--ink3);transform:rotate(-45deg);transition:transform .15s;flex:none}
.cfg-group.open h4::before{transform:rotate(45deg)}
.cfg-group h4 .cv{margin-left:auto;color:var(--ink3);font-size:12px;font-weight:400}
.cfg-group:not(.open) .cfg-grid{display:none}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 18px;padding:0 0 18px}
.cfg-grid > label{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t f" "i i" "w w";align-items:center;gap:4px 6px;
  font-size:12.5px;color:var(--ink2);margin:0}
.cfg-grid > label > input,.cfg-grid > label > select{grid-area:i;width:100%}
.cfg-grid > label.check > input{width:34px;justify-self:start}
.cfg-grid > label .field-foot{grid-area:f}
.cfg-grid > label .cfg-was{grid-area:w}
.cfg-changed{border-left:3px solid var(--gold);padding-left:8px}
.scope-tag{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:0;padding:0 4px;border-radius:3px;border:1px solid var(--line2);
  color:var(--ink3);line-height:15px;background:none}
.scope-tag.sim{color:var(--steel);border-color:color-mix(in srgb,var(--steel) 50%,transparent)}
.scope-tag.live{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}
.scope-tag.both{color:var(--ink3)}
.help{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--line2);font-size:10px;color:var(--ink2);
  margin:0;opacity:1;font-style:normal}
@media (max-width:1100px){ .modal-body.ed-grid{grid-template-columns:minmax(0,1fr)} #prReport.ai{position:static} }
@media (max-width:760px){
  #ladderPreview.geo{grid-template-columns:1fr;grid-template-areas:"c" "p" "i"}
  #modal .ed-name{font-size:22px}
}

#openMeta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;width:100%}
.panel-meta .muted{font-size:13px}
/* backdrop-filter would make the fixed bottom tab bar / menu position against the top bar */
@media (max-width:880px){ .topbar{backdrop-filter:none;background:var(--bg)} }

/* ---------- execution page ---------- */
.exec-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.exec-panel{padding:16px 18px 18px}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.panel-h h2{font-size:18px}
.exec-broker{flex-direction:row !important;align-items:center;gap:8px;margin:0 !important;font-size:13px !important;min-width:0 !important}
.exec-broker select{width:auto;min-width:180px}
.exec-sub{font-size:15px;margin:18px 0 8px}
.mt4-account{font-size:13px;color:var(--ink2);padding:2px 0 10px;border-bottom:1px solid var(--line)}
.mt4-quote{display:block;margin:12px 0 0;font-size:13.5px}
.mt4-quote b{font-family:var(--mono)}
.mt4-form{display:flex;flex-direction:column;gap:12px;background:none;border:0;padding:0;margin:0}
.seg-row{display:flex;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:8px;padding:2px;background:var(--bg);flex-wrap:wrap;gap:0}
.seg button{border:0;background:none;padding:5px 12px;border-radius:6px;cursor:pointer;color:var(--ink2);font:540 13.5px/1.2 var(--display)}
.seg button[aria-pressed="true"]{background:var(--bg4);color:var(--ink)}
.seg button.goldc[aria-pressed="true"]{color:var(--gold)} .seg button.steelc[aria-pressed="true"]{color:var(--steel)}
.seg button:disabled{opacity:.45;cursor:not-allowed}
.seg-src{display:none !important}
.ord-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 10px}
.ord-grid label{min-width:0}
.ord-grid label input{width:100%}
.dry-line{flex-direction:row !important;align-items:center;gap:8px !important;align-self:end;height:34px}
.mt4-form .actions{display:flex;gap:8px;flex-wrap:wrap}
.mt4-result:empty,.exec-status:empty{display:none}
.mt4-result,.exec-status{margin-top:10px;font-size:13px}
.exec-explain{font-size:12.5px;color:var(--ink3);line-height:1.5;margin:0 0 6px}
.exec-grid{display:flex;flex-direction:column;gap:0;margin:0}
.exec-step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;margin:0}
.stepn{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);display:grid;place-items:center;font:600 13px/1 var(--mono)}
.exec-step-title{font:640 15px/1.3 var(--display);color:var(--ink);text-transform:none;letter-spacing:0;margin:3px 0 8px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grid2 label select,.grid2 label input{width:100%}
.mode-rows{display:flex;flex-direction:column;gap:10px}
.mode-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px;font-size:13px;color:var(--ink2)}
.mode-row .seg{justify-self:start}
.exec-ladder-hint{display:block;font-size:12px;color:var(--warn)}
#execConfirmRow{margin-top:12px}
.exec-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}
.killbox{margin-top:16px;border:1px solid color-mix(in srgb,var(--down) 50%,transparent);background:var(--down-bg);border-radius:10px;padding:12px 14px}
.killbox b{font-weight:640}
.killbox p{margin:2px 0 10px;font-size:13px;color:var(--ink2)}
.exec-sessions{margin-top:24px}
.exec-sessions .panel-h .faint{font-size:13px}
.hint{color:var(--ink3);font-size:12px}
@media (max-width:1100px){ .exec-cols{grid-template-columns:minmax(0,1fr)} }
@media (max-width:640px){ .ord-grid,.grid2{grid-template-columns:repeat(2,minmax(0,1fr))} .mode-row{grid-template-columns:1fr} }
.mt4-form{align-items:stretch !important;justify-content:flex-start !important}
.mt4-form > *{width:100%}
.mt4-form .seg-row,.mt4-form .actions{width:auto}

/* plain checkboxes in tables / lists (row selection), not switches */
table input[type=checkbox]:not(.sw-native),.arc-pick:not(.sw-native),.cb-plain input[type=checkbox]:not(.sw-native){width:16px;height:16px;border-radius:4px;
  background:var(--bg);border:1px solid var(--line2);vertical-align:middle}
table input[type=checkbox]:not(.sw-native)::after,.arc-pick:not(.sw-native)::after,.cb-plain input[type=checkbox]:not(.sw-native)::after{display:none}
table input[type=checkbox]:not(.sw-native):checked,.arc-pick:not(.sw-native):checked,.cb-plain input[type=checkbox]:not(.sw-native):checked{
  background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--gold)}
/* logs page */
#logsTable td{font-family:var(--display);font-size:13px;white-space:normal}
#logsTable td:nth-child(2){font-family:var(--mono);font-size:12px;white-space:nowrap}
#logsTable tbody tr:nth-child(even){background:none}
#logsTable thead th{background:var(--bg2)}
.logs-wrap{max-height:none;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
/* monitor page header buttons + floating windows on demand */
#mtMonitorModal .modal-head .btn{width:auto;min-width:0;padding:0 12px}
#mon-d-rescue-open.on{border-color:var(--gold);color:var(--gold);background:var(--gold-bg)}
body:not(.ov-on) #mon-overlay{display:none !important}
#monOverlayToggle.on{border-color:var(--gold);color:var(--gold);background:var(--gold-bg)}

/* ---------- monitor page (prototype panels) ---------- */
.mon-filters{gap:10px;margin-bottom:16px}
.mon-filters label{font-size:12.5px;color:var(--ink2);gap:4px}
#mon-parts > .webpart,#mon-d-body > .webpart{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 18px}
#mon-d-grid > .webpart{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
#mon-parts > .webpart > h3,#mon-master > h3,#mon-d-body > .webpart > h4{font:640 18px/1.25 var(--display);letter-spacing:-.012em;margin:0 0 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#mon-d-grid > .webpart > h4{font:600 13.5px/1.3 var(--display);color:var(--ink2);margin:0 0 8px}
#mon-d-title{font:680 22px/1.2 var(--display);letter-spacing:-.012em;margin:0 0 8px}
.mon-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0}
.mon-card{background:none;border:0;border-right:1px solid var(--line);border-radius:0;padding:10px 14px 10px 2px}
.mon-card:last-child{border-right:0}
.mon-card .v{font:700 22px/1.15 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mon-card .k{font-size:12.5px;color:var(--ink2);margin-top:2px}
.mon-card .v.pos{color:var(--up)} .mon-card .v.neg{color:var(--down)}
#mon-part-sessions{padding:16px}
.mon-split{gap:20px;margin:0}
.mon-detail{border-left:1px solid var(--line);padding-left:20px}
.mon-sess-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;gap:8px}
.mon-sess-card:hover{border-color:var(--line2)}
.mon-sess-card.sel{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset;background:var(--bg)}
.mon-sess-card .mon-sess-cfg{border-top:1px solid var(--line)}
.mon-sess-card button{height:26px;min-width:26px;padding:0 7px;border-radius:6px;font-size:12px}
.mon-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:28px 0 0;flex-wrap:wrap}
.mon-tab{border:0;background:none;padding:9px 12px;cursor:pointer;color:var(--ink2);font:560 14.5px/1.2 var(--display);position:relative;margin:0}
.mon-tab:hover{color:var(--ink)}
.mon-tab.sel{color:var(--ink);border:0}
.mon-tab.sel::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--gold)}
.mon-tab-panel{padding:14px 0}
.segctl{border-radius:8px;background:var(--bg);border:1px solid var(--line2);padding:2px;gap:0}
.segctl-btn{border-radius:6px;padding:4px 11px;color:var(--ink2);font:540 13px/1.2 var(--display)}
.segctl-btn.sel{background:var(--bg4);color:var(--ink);font-weight:600}
.segctl-btn:hover:not(.sel){background:var(--bg3)}
.mon-heart{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;font-size:13px}
.mon-overlay{background:var(--bg2);border:1px solid var(--line2);border-radius:12px;box-shadow:var(--shadow);color:var(--ink)}
.mon-overlay .mo-head{background:var(--bg3);border-bottom:1px solid var(--line)}
@media (max-width:900px){ .mon-detail{border-left:0;padding-left:0} }
/* the top bar (and its More menu) stays above the chat drawer; dialogs above both */
.topbar{z-index:52}
.chat-panel{z-index:50;bottom:20px;max-height:calc(100vh - var(--topbar-h) - 40px)}
@media (max-width:880px){ .chat-panel{bottom:calc(var(--tabbar-h) + 10px)} }

/* ---------- Ask Claude: a page (threads rail | conversation) ---------- */
#chatTopBtn.on{border-color:var(--gold);color:var(--gold);background:var(--gold-bg)}
#chatPanel.page-modal{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:var(--tabbar-h);z-index:30;width:auto;max-width:none;height:auto;max-height:none;
  background:var(--bg);border:0;border-radius:0;box-shadow:none;display:grid;grid-template-columns:280px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
  gap:0 20px;padding:20px max(24px, calc((100vw - 1640px) / 2 + 24px)) 24px;overflow:hidden}
#chatPanel.page-modal.hidden{display:none !important}
#chatPanel.page-modal.page-under{visibility:hidden}
#chatPanel .page-hd{grid-column:1 / -1}
#chatPanel .chat-side{width:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg2);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:0}
#chatPanel .chat-side > .btn{width:100%}
#chatPanel .chat-new{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:600}
#chatPanel .chat-threads{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:0;min-height:0;overflow-y:auto;margin:0}
#chatPanel .chat-threads li{padding:9px 8px;border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:14px;color:var(--ink);background:none;cursor:pointer}
#chatPanel .chat-threads li:hover{background:var(--bg3)}
#chatPanel .chat-threads li.active{background:linear-gradient(90deg,var(--gold-bg),transparent 85%);box-shadow:inset 3px 0 0 var(--gold);border-color:var(--line)}
#chatPanel .thr-del{opacity:.45} #chatPanel .chat-threads li:hover .thr-del{opacity:.9}
#chatPanel .chat-gear{background:none;border-color:transparent;color:var(--ink2)}
#chatPanel .chat-main{border:1px solid var(--line);border-radius:12px;background:var(--bg2);min-height:0;overflow:hidden;display:flex;flex-direction:column}
#chatPanel .chat-head{padding:12px 16px;border-bottom:1px solid var(--line);background:none;gap:12px}
#chatPanel .chat-head #chatTitle{font:640 17px/1.3 var(--display);color:var(--ink)}
#chatPanel .chat-model{width:auto;max-width:240px}
#chatPanel .chat-log{background:var(--bg);padding:20px;gap:14px}
#chatPanel .msg{max-width:min(78ch,82%);font-size:14.5px;line-height:1.6;border-radius:12px;padding:11px 15px}
#chatPanel .msg.user{background:var(--gold-bg);color:var(--ink);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-bottom-right-radius:4px}
#chatPanel .msg.user code{background:var(--bg2);color:var(--ink);border:1px solid var(--line)}
#chatPanel .msg.user .msg-tools button{background:var(--bg2);color:var(--ink2);border:1px solid var(--line)}
#chatPanel .msg.bot{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:4px}
#chatPanel .msg.bot.err{background:var(--down-bg);border-color:color-mix(in srgb,var(--down) 50%,transparent);color:var(--down)}
#chatPanel .msg code,#chatPanel .msg pre{font-family:var(--mono);font-size:12.5px;background:var(--bg);border-color:var(--line)}
#chatPanel .msg-tools button{background:var(--bg2);color:var(--ink2);border:1px solid var(--line)}
/* per-message date/time line + ↻ Repost (question) / ↻ Retry (failed answer) */
#chatPanel .msg-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:6px;font:400 11.5px/1.3 var(--mono);color:var(--ink3,var(--ink2));opacity:.85;font-style:normal}
#chatPanel .msg.bot .msg-meta{justify-content:flex-start}
#chatPanel .msg-retry{height:auto;padding:2px 8px;font:500 11.5px/1.3 var(--display);border-radius:6px;background:var(--bg2);color:var(--ink2);border:1px solid var(--line);cursor:pointer}
#chatPanel .msg-retry:hover:not(:disabled){color:var(--ink);border-color:var(--line2)}
#chatPanel .msg-retry:disabled{opacity:.45;cursor:default}
#chatPanel .chat-form{background:var(--bg2);border-top:1px solid var(--line);padding:12px;gap:10px;align-items:stretch}
/* Send fills the box's height beside it (it sat on the bottom edge with a gap above) */
#chatPanel .chat-form button[type=submit]{height:auto;min-width:84px;align-self:stretch}
#chatPanel .chat-form textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line2);border-radius:8px;font:14px/1.45 var(--display);min-height:44px}
#chatPanel .chat-form textarea:focus{border-color:var(--focus)}
@media (max-width:880px){
  #chatPanel.page-modal{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);padding:14px 12px 12px;gap:12px}
  #chatPanel .chat-side{max-height:170px}
  #chatPanel .chat-threads{max-height:90px}
}

/* execution internals: account strip, quote boxes, orders + sessions tables */
#mt4TradeModal .acct-line{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#mt4TradeModal .acct-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:0;margin:10px 0 0;border-top:1px solid var(--line)}
#mt4TradeModal .acct-strip > div{padding:8px 10px 2px 0}
#mt4TradeModal .acct-strip dt{font-size:12.5px;color:var(--ink2)}
#mt4TradeModal .acct-strip dd{margin:2px 0 0;font:600 15px/1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}
#mt4TradeModal .mt4-account{border-bottom:0;padding-bottom:0}
.mt4-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font:600 11px/1 var(--display);border:1px solid}
.mt4-demo{background:var(--up-bg);color:var(--up);border-color:color-mix(in srgb,var(--up) 50%,transparent)}
.mt4-live{background:var(--down-bg);color:var(--down);border-color:color-mix(in srgb,var(--down) 50%,transparent)}
#mt4TradeModal .q-boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#mt4TradeModal .qb{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg);display:flex;flex-direction:column;gap:2px;min-width:0}
#mt4TradeModal .qb span{font-size:12.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#mt4TradeModal .qb b{font:640 22px/1.15 var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#mt4TradeModal .qb small{font-size:11.5px;color:var(--ink3)}
#mt4TradeModal .qb.bid{background:var(--steel-bg);border-color:color-mix(in srgb,var(--steel) 35%,transparent)} #mt4TradeModal .qb.bid b{color:var(--steel)}
#mt4TradeModal .qb.ask{background:var(--gold-bg);border-color:color-mix(in srgb,var(--gold) 35%,transparent)} #mt4TradeModal .qb.ask b{color:var(--gold)}
#mt4TradeModal .q-ranges{margin-top:6px}
#mt4TradeModal .mt4-result{font-family:var(--mono);font-size:12.5px;color:var(--ink2)}
.mt4-orders-tbl,.mtx-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:0}
.mt4-orders-tbl th,.mtx-tbl th{font:560 12.5px/1.3 var(--display);color:var(--ink2);text-align:left;padding:7px 10px;border-bottom:1px solid var(--line2);
  text-transform:none;letter-spacing:0;background:none;white-space:nowrap}
.mtx-tbl th::first-letter{text-transform:uppercase}
.mt4-orders-tbl td,.mtx-tbl td{padding:7px 10px;border-bottom:1px solid var(--line);font-size:13px}
.mt4-orders-tbl tbody tr:nth-child(even){background:none}
.mt4-orders-tbl tbody tr:hover,.mtx-tbl tbody tr:hover{background:var(--bg3)}
.mt4-orders-tbl .num,.mtx-tbl td:first-child{font-family:var(--mono);font-size:12.5px}
.mt4-orders-empty,#mtx-sessions em{color:var(--ink3);font-size:13px;font-style:normal}
#mtx-sessions{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:6px 10px;overflow-x:auto}
.mtx-row-live{background:var(--up-bg)}
.mtx-detail{font-size:13px;color:var(--ink2);display:flex;flex-direction:column;gap:6px;padding:6px 0}
@media (max-width:640px){ #mt4TradeModal .q-boxes{grid-template-columns:repeat(2,minmax(0,1fr))} #mt4TradeModal .qb b{font-size:18px} }

/* chart caption (bars · events) under the stage; the panel title stays hidden like the prototype */
#part-price > .chart-head{display:flex;justify-content:flex-end;margin:6px 2px 0;order:2}
#part-price > .chart-head h3{display:none}
#part-price{display:flex;flex-direction:column}
#part-price > .stagewrap{order:1}
#chartMeta{font-size:12px;color:var(--ink3)}
/* live banner content */
.live-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--ink2)}
.live-left b{color:var(--ink)}
.live-badge{font:700 11px/1 var(--display);padding:4px 9px;border-radius:10px;letter-spacing:.02em}
.live-badge.on{background:var(--up);color:#fff}
.live-badge.off{background:var(--bg3);color:var(--ink2)}
.live-badge.ended{background:var(--up-bg);color:var(--up)}
.live-actions{display:flex;gap:8px;margin-left:auto}
.feed-tag{font:700 10.5px/1 var(--display);padding:3px 7px;border-radius:9px}
.feed-tag.rt{background:var(--up-bg);color:var(--up)} .feed-tag.delayed{background:var(--warn-bg);color:var(--warn)}
#chatPanel .chat-log:empty::before{content:"Ask about a session, a profile, the engine or a data provider. Answers come from the admin assistant and are kept in this thread.";
  margin:auto;max-width:44ch;text-align:center;color:var(--ink3);font-size:14px;line-height:1.55}
#chatPanel .chat-threads:empty::after{content:"No conversations yet.";display:block;padding:10px 4px;color:var(--ink3);font-size:13px}
#mtx-sessions .mtx-tbl td{font-family:var(--display)} #mtx-sessions .mtx-tbl td:first-child,#mtx-sessions .mtx-tbl td:nth-child(6),#mtx-sessions .mtx-tbl td:nth-child(7){font-family:var(--mono);font-size:12.5px}
#mtx-sessions .mtx-tbl th,#mtx-sessions .mtx-tbl td{text-align:left}
#mtx-sessions .mtx-tbl td.mtx-actions{text-align:right}
.mtx-tbl{font-family:var(--display)}
.mtx-tbl th{text-align:inherit}
@media (max-width:880px){ #chatTopBtn .lbl{display:none} #chatTopBtn{padding:0 10px} .top-actions{gap:6px} }
.page-modal .modal-head .page-head-tool{margin:0;flex:0 1 auto}

/* "Full screen" (prototype): the whole stage box fills the window */
.stagewrap.full{position:fixed;inset:10px;z-index:75;box-shadow:var(--shadow);grid-template-rows:minmax(0,1fr)}
.stagewrap.full .stage-chart .chart,.stagewrap.full .ladder-rail{height:calc(100vh - 22px)}
.stagewrap.full .stage-side{overflow:auto;max-height:calc(100vh - 22px)}
body.stage-full{overflow:hidden}
#chartExpandBtn[aria-pressed="true"]{border-color:var(--gold);color:var(--gold);background:var(--gold-bg)}
@media (max-width:1280px){ .stagewrap.full{grid-template-columns:minmax(0,1fr)} .stagewrap.full .stage-side{display:none} .stagewrap.full .stage-chart{border:0} }

/* In-page dialog (uiConfirm / uiPrompt / uiAlert): above every page, the
   full-screen Monitor (76), chat settings (70) and the top bar (40) */
#dlgModal{z-index:95}
#dlgModal .dlg-msg{margin:0;white-space:pre-line;line-height:1.5;color:var(--ink);font-size:14px}
#dlgModal .dlg-field{display:block;margin-top:14px}
#dlgModal .dlg-field input{width:100%}

/* Claude analysis box: a long report label (model, user) must not push the
   dropdowns out of the column — they shrink and clip, the tooltip has the rest */
#prReport .pr-bar label{min-width:0;width:100%}
#prReport .pr-bar select,#prReport .pr-actions select{flex:1 1 auto;min-width:0;width:100%;max-width:100%;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#prReport .pr-status{white-space:normal;overflow-wrap:anywhere}
#prReport .pr-body{overflow-wrap:anywhere}
#prReport .pr-body table{display:block;max-width:100%;overflow-x:auto}

/* report markdown in the theme's ink (the old greens were unreadable in dark) */
:is(#prReport.ai,#prReadModal) .md{--pr-bg:var(--bg3);--pr-bg2:var(--line);--pr-border:var(--line);--pr-accent:var(--gold);--pr-muted:var(--ink2)}
:is(#prReport.ai,#prReadModal) .md :is(h1,h2,h3,strong){color:var(--ink)}
:is(#prReport.ai,#prReadModal) .md code{background:var(--bg3);border-color:var(--line);color:var(--ink)}
:is(#prReport.ai,#prReadModal) .md pre{background:var(--bg3);border-color:var(--line)}
:is(#prReport.ai,#prReadModal) .md th{background:var(--bg3)}

/* the report in a large reading window (Open) */
#prReadModal .pr-read-card{width:min(1180px,96vw);height:92vh;max-height:92vh}
#prReadModal .modal-head{gap:12px 16px;align-items:flex-start;flex-wrap:wrap}
#prReadModal .pr-read-titles{min-width:0;flex:1 1 300px}
#prReadModal .pr-read-meta{font:400 13px/1.45 var(--display);color:var(--ink2);margin-top:4px;overflow-wrap:anywhere}
#prReadModal .pr-read-tools{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}
#prReadModal #prReadPick{min-width:0;max-width:340px;height:34px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#prReadModal .pr-read-body{flex:1;min-height:0;overflow:auto;padding:28px clamp(16px,5vw,64px) 48px}
#prReadModal .pr-read-sheet{max-width:860px;margin:0 auto;color:var(--ink);overflow-wrap:anywhere}
#prReadModal .md{font-size:16px;line-height:1.7}
#prReadModal .md h1{font-size:25px;margin:22px 0 10px}
#prReadModal .md h2{font-size:21px;margin:28px 0 10px;padding-bottom:6px}
#prReadModal .md h3{font-size:17.5px;margin:20px 0 8px}
#prReadModal .md p{margin:10px 0}
#prReadModal .md li{margin:6px 0}
#prReadModal .md ul,#prReadModal .md ol{margin:8px 0 12px 26px}
#prReadModal .md code{font-size:14.5px}
#prReadModal .md pre{font-size:14px;padding:14px 16px}
#prReadModal .md table{display:block;max-width:100%;overflow-x:auto;font-size:15px;margin:14px 0}
#prReadModal .md th,#prReadModal .md td{padding:8px 12px}
#prReadModal .pr-read-sheet.thinking,#prReadModal .pr-read-sheet.err{padding-top:40px;text-align:center;color:var(--ink2)}
#prReadModal .pr-read-sheet.err{color:var(--down)}
@media (max-width:640px){
  #prReadModal{padding:0}
  #prReadModal .pr-read-card{width:100%;height:100%;max-height:none;border-radius:0}
  #prReadModal .pr-read-tools{width:100%}
  #prReadModal #prReadPick{flex:1;max-width:none}
  #prReadModal .pr-read-body{padding:18px 16px 40px}
  #prReadModal .md{font-size:15.5px}
}

/* a role with no pages (roles & permissions): only the message shows */
.no-pages-msg{padding:80px 24px;text-align:center;font-size:18px;color:var(--muted)}
body.no-pages .sidebar,body.no-pages .content>:not(#noPagesMsg){display:none !important}
body.no-pages .layout{grid-template-columns:minmax(0,1fr)}
