/* AXIS Dashboard -- same tokens as the PM Journal so the framed journal looks like part of the page. */
:root{
  --bg:#f4f6f8;--panel:#fff;--ink:#151c24;--muted:#6b7785;--rule:#dbe1e7;--grid:#e9edf1;
  --sell:#c2452d;--buy:#1f8a70;--actual:#2f6fb0;--amber:#b7791f;--chip:#eef1f4;
  --disp:"Barlow Condensed","Arial Narrow",sans-serif;--body:"Source Sans 3","Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#11161c;--panel:#18202a;--ink:#e2e8ee;--muted:#8d99a6;
  --rule:#2a3542;--grid:#222c37;--sell:#e0674f;--buy:#3cb592;--actual:#6ea2dc;--amber:#d9a53c;--chip:#212b36}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#11161c;--panel:#18202a;--ink:#e2e8ee;--muted:#8d99a6;
  --rule:#2a3542;--grid:#222c37;--sell:#e0674f;--buy:#3cb592;--actual:#6ea2dc;--amber:#d9a53c;--chip:#212b36}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--body);display:grid;grid-template-columns:190px 1fr;min-height:100vh}
.side{background:var(--panel);border-right:1px solid var(--rule);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand{display:grid;gap:6px;padding:2px 0 14px;border-bottom:1px solid var(--rule)}
.brand .bm{display:flex;align-items:center;gap:.42em;font:700 19px/1 var(--body);letter-spacing:.2em;color:var(--ink);white-space:nowrap}
.brand .tri{width:.78em;height:.7em;fill:var(--buy);flex:none}
.brand .bs{font:600 11px/1 var(--body);letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
nav{display:grid;gap:2px}
nav a{color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:5px;font-weight:600;display:flex;align-items:center;justify-content:space-between}
nav a.on,nav a:hover{background:var(--chip);color:var(--ink)}
nav .dot{width:8px;height:8px;border-radius:50%;background:transparent}
.dot.lv0{background:var(--buy)}.dot.lv1{background:var(--amber)}.dot.lv2{background:var(--sell)}
.theme{margin-top:auto;display:flex;background:var(--bg);border:1px solid var(--rule);border-radius:6px;overflow:hidden}
.theme button{flex:1;border:0;background:none;color:var(--muted);font:600 12px var(--body);padding:6px 4px;cursor:pointer}
.theme button.on{background:var(--ink);color:var(--panel)}
.live{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center}
.live .ldot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.live.ok .ldot{background:var(--buy)}.live.bad .ldot{background:var(--sell)}
main{padding:18px 22px 40px;display:grid;gap:16px;align-content:start;min-width:0}
.page{display:none;gap:16px}.page.on{display:grid}
.panel{background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:14px 16px;min-width:0}
h3{font:600 17px/1.1 var(--disp);letter-spacing:.03em;margin:0 0 10px;text-transform:uppercase;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}
.muted{color:var(--muted)}.small{font-size:12.5px;text-transform:none;letter-spacing:0}
.pos{color:var(--buy)}.neg{color:var(--sell)}
button:focus-visible,a:focus-visible{outline:2px solid var(--actual);outline-offset:1px}

/* home tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.tile{background:var(--panel);border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:6px;padding:12px 14px;cursor:pointer;text-align:left;color:inherit;font:inherit}
.tile:hover{background:var(--chip)}
.tile.lv0{border-left-color:var(--buy)}.tile.lv1{border-left-color:var(--amber)}.tile.lv2{border-left-color:var(--sell)}
.tile .k{font:600 12px/1 var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.tile .v{font:600 15px/1.35 var(--body);margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* playbook / sizing text, coloured like the Sierra panel */
.pb{font:12.5px/1.55 var(--mono);white-space:pre-wrap;word-break:break-word}
.pb.big{font-size:14px}
.pb div{padding:1px 0}
.t-G{color:var(--buy)}.t-R{color:var(--sell)}.t-A{color:var(--amber)}.t-D{color:var(--muted)}.t-H{font-weight:600}

/* journal frame */
#journal.on{display:flex;flex-direction:column;gap:8px;margin:-18px -22px -40px;height:100vh}
.framebar{padding:8px 14px 0;font-size:13px;display:flex;gap:10px;align-items:center}
.framebar:empty{display:none}
iframe{flex:1;border:0;width:100%;background:var(--bg)}

/* terminal */
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 6px}
button.primary{background:var(--ink);color:var(--panel);border:0;border-radius:5px;padding:8px 14px;font:600 14px var(--body);cursor:pointer}
button.stop{background:var(--sell);color:#fff;border:0;border-radius:5px;padding:8px 22px;font:700 15px var(--disp);letter-spacing:.12em;cursor:pointer}
button.stop.arm{outline:3px solid var(--sell);outline-offset:2px}
button.stop:disabled{opacity:.45;cursor:default}
.termhead{font:600 20px/1.3 var(--disp);letter-spacing:.03em}
.kv{width:100%;border-collapse:collapse;font-size:14px}
.kv td{padding:5px 4px;border-bottom:1px solid var(--grid);vertical-align:top}
.kv td:first-child{color:var(--muted);width:44%}
.kv td.n{font-family:var(--mono)}

/* tables */
.tablewrap{overflow-x:auto;padding:0}.tablewrap h3{padding:14px 16px 0}
.tt{width:100%;border-collapse:collapse;font-size:13.5px}
.tt th{background:var(--panel);font:600 11px var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 8px;border-bottom:1px solid var(--rule)}
.tt td{padding:7px 8px;border-bottom:1px solid var(--grid)}
.tt td.n,.tt th.n{text-align:right;font-family:var(--mono);white-space:nowrap}
.tt tr.red td{background:color-mix(in srgb,var(--sell) 7%,transparent)}
.tt tr.amber td{background:color-mix(in srgb,var(--amber) 7%,transparent)}
.tt tr.past td{color:var(--muted)}
.tt td.why{color:var(--muted);font-size:12.5px;max-width:520px}
.lv{display:inline-block;min-width:54px;text-align:center;font:600 10.5px var(--disp);letter-spacing:.08em;padding:3px 6px;border-radius:3px}
.lv.lv0{color:var(--buy);background:color-mix(in srgb,var(--buy) 12%,transparent)}
.lv.lv1{color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent)}
.lv.lv2{color:#fff;background:var(--sell)}
.imp{font:600 11px var(--disp);letter-spacing:.08em;padding:2px 6px;border-radius:3px;background:var(--chip);color:var(--muted)}
.imp.H{background:var(--sell);color:#fff}.imp.M{color:var(--amber)}
.deskhead{font-size:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#deskWeekly li.red{color:var(--sell)} #deskWeekly li.amber{color:var(--amber)}
.ladder td.role{font:600 12px var(--disp);letter-spacing:.08em;width:56px}
.ladder tr.pivot td{font-weight:600;background:var(--chip)}

/* COT */
.cot td{vertical-align:middle}
.cotnote{padding:0 16px;margin:8px 0}
svg.spark{width:240px;height:40px;display:block}
svg.spark .ln{fill:none;stroke:var(--actual);stroke-width:2;stroke-linejoin:round}
svg.spark .zero{stroke:var(--rule);stroke-width:1;stroke-dasharray:3 3}
svg.spark .pt{fill:var(--actual);stroke:var(--panel);stroke-width:2}
svg.spark .cross{stroke:var(--muted);stroke-width:1}
/* macro */
.src{font:600 10px var(--disp);letter-spacing:.08em;text-transform:uppercase;padding:2px 5px;border-radius:3px;background:var(--chip);color:var(--muted);vertical-align:middle}
.tiles.mx .tile{cursor:default}.tiles.mx .tile:hover{background:var(--panel)}
.tiles.mx .v{font:600 22px/1.2 var(--mono);-webkit-line-clamp:1}
.tiles.mx .s{font-size:12.5px;color:var(--muted);margin-top:4px}
.tiles.mx .tile.lv1{border-left-color:var(--amber)}
svg.lc{width:100%;height:auto;display:block;margin:6px 0}
svg.lc text{font:10.5px var(--mono);fill:var(--muted)}
svg.lc .grid{stroke:var(--grid);stroke-width:1}
svg.lc .ref{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4}
svg.lc .ln{fill:none;stroke-width:2;stroke-linejoin:round}
svg.lc .ln.s1,.sw.s1{stroke:var(--actual);background:var(--actual)}
svg.lc .ln.s2,.sw.s2{stroke:var(--amber);background:var(--amber)}
svg.lc .cross{stroke:var(--muted);stroke-width:1}
.legend{display:flex;gap:14px;font-size:12.5px;color:var(--muted)}
.legend .sw{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
/* options */
.optbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--panel);border:1px solid var(--rule);border-radius:6px;overflow:hidden;flex-wrap:wrap}
.seg button{border:0;background:none;color:var(--muted);font:600 13px var(--body);padding:6px 11px;cursor:pointer}
.seg button.on{background:var(--ink);color:var(--panel)}
.seg.small button{font-size:12px;padding:5px 9px}
svg.prof{width:100%;height:auto;display:block;margin-top:10px}
svg.prof text{font:10px var(--mono);fill:var(--muted)}
svg.prof .axis{stroke:var(--rule)}
svg.prof .bpos{fill:var(--buy)}svg.prof .bneg{fill:var(--sell)}
svg.prof .spot{stroke:var(--ink);stroke-width:1.5}
svg.prof .flip{stroke:var(--amber);stroke-width:1.5;stroke-dasharray:5 3}
svg.prof .em{stroke:var(--actual);stroke-width:1;stroke-dasharray:3 3}
svg.prof .lab{fill:var(--ink);font-weight:600;paint-order:stroke;stroke:var(--panel);stroke-width:3px}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.twocol h4{font:600 12px var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:8px 0 2px}
@media (max-width:1100px){.twocol{grid-template-columns:1fr}}
.tt tr.sel td{background:var(--chip)}
#opExp tr[data-b]{cursor:pointer}
.tip{position:fixed;z-index:9;pointer-events:none;background:var(--ink);color:var(--panel);font:12px/1.35 var(--mono);padding:5px 8px;border-radius:4px}
.tip[hidden]{display:none}

@media (max-width:760px){body{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}
  nav{display:flex;flex-wrap:wrap}.theme{margin:0}.grid2{grid-template-columns:1fr}main{padding:14px 16px 40px}
  #journal.on{margin:-14px -16px -40px}}
