/* sandbox.css — the 3D stage */
.stage3{position:relative;width:100%;aspect-ratio:16/9;background:#05060a;border:1px solid var(--rule);border-top:0;overflow:hidden;touch-action:pan-y;cursor:grab}
.stage3:active{cursor:grabbing}
.stage3 canvas{display:block;width:100%!important;height:100%!important}
.overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tag3{position:absolute;left:0;top:0;background:var(--bar);border:1px solid var(--rule-2);color:var(--ink);font:600 13px/1 var(--mono);padding:6px 9px;white-space:nowrap;opacity:0;transition:opacity .25s;will-change:transform}
.tag3.on{opacity:1}
.tag3.up{color:#6fe8a8;border-color:#6fe8a866}.tag3.dn{color:#f04c88;border-color:#f04c8866}
.name3{position:absolute;left:0;top:0;color:var(--ink-2);font:500 11px/1 var(--mono);padding:2px 5px;background:rgba(7,8,11,.55);white-space:nowrap;will-change:transform}
.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink);font:500 16px var(--mono);background:#05060a;z-index:3;transition:opacity .4s}
.loading.off{opacity:0;pointer-events:none}
.hud{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;align-items:center;font-size:12px;z-index:2}
.hud button{width:30px;height:30px;border:1px solid var(--rule-2);background:var(--bar);color:var(--ink);font:600 16px var(--mono)}
.hud button:hover{border-color:var(--ink)}
.hud .dim{margin-left:6px;background:rgba(7,8,11,.6);padding:4px 8px}
@media (max-width:900px){
  .stage3{aspect-ratio:4/3}
  .name3{font-size:10px}
  .hud .dim{display:none}
}

.setlink{border:1px solid var(--rule-2);color:var(--ink-3);padding:1px 8px;font-size:12px}
.setlink:hover{color:var(--ink);border-color:var(--ink)}
.setlink.on{background:var(--edge);border-color:var(--edge);color:#fff}

/* ── v0.6 dashboard ── */
.kpis{grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--rule);border-bottom:0}
.kpis .big{font-size:clamp(18px,1.7vw,24px)}
.kpis .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hint{position:absolute;left:10px;bottom:10px;font-size:11px;color:var(--ink-3);background:rgba(7,8,11,.6);padding:4px 8px;pointer-events:none}
.name3.sel{color:#07080b;background:var(--leg)}
.dash{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);border-top:0}
.dash--a{grid-template-columns:minmax(0,58fr) minmax(0,42fr)}
.dash--b{grid-template-columns:minmax(0,36fr) minmax(0,28fr) minmax(0,36fr)}
.dash .pane{min-height:0}
.board,.flow{font-size:12.5px}
.lb,.tf{display:grid;gap:10px;padding:6px 12px;border-bottom:1px solid var(--rule);white-space:nowrap;align-items:center}
.lb>*,.tf>*{overflow:hidden;text-overflow:ellipsis;min-width:0}
.lb{grid-template-columns:2.5ch minmax(0,1.4fr) minmax(0,1fr) 5ch 7ch 10ch 5ch 5ch minmax(0,1.3fr);cursor:pointer}
.lb:hover{background:#10141c}
.lb.on{background:#141a2a;box-shadow:inset 2px 0 0 var(--leg)}
.lb--hd,.tf--hd{background:var(--hd);color:var(--ink);font-weight:600;cursor:default}
.lb--hd [data-k]{cursor:pointer}
.lb--hd .sort{color:var(--leg)}
.lb--hd .sort::after{content:' ↓'}
.lb .who,.tf .who{color:var(--leg)}
.lb .who i{font-style:normal;color:var(--ink-3);font-size:11px}
.tf{grid-template-columns:minmax(11ch,1.6fr) 5ch 7ch 9ch 8ch 7ch 5ch}
.lb--team{background:#0d1118;color:var(--ink);font-weight:600;cursor:default}
.lb--team:hover{background:#0d1118}
.up{color:#6fe8a8}.dn{color:#f04c88}
.detail .addr{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.detail .addr span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 220px}
.detail .addr button,.logf button,.hud #unfocus{border:1px solid var(--rule-2);background:var(--bar);color:var(--ink-2);font:500 12px var(--mono);padding:2px 8px}
.detail .addr button:hover,.logf button:hover{color:var(--ink);border-color:var(--ink)}
.detail .addr a{color:var(--ink-2)}.detail .addr a:hover{color:var(--ink)}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--rule)}
.dgrid .rules{padding:10px 12px;font-size:12px}
.dgrid .rules--w{grid-template-columns:12ch minmax(0,1fr)}
.dtrades{list-style:none;font-size:12px;max-height:200px;overflow:auto}
.dtrades li{display:grid;grid-template-columns:5ch 5ch minmax(0,1fr) 7ch 8ch 5ch;gap:8px;padding:4px 12px;border-bottom:1px solid var(--rule);white-space:nowrap}
.dtrades li>*{overflow:hidden;text-overflow:ellipsis}
.dtrades a{color:var(--ink-3)}.dtrades a:hover{color:var(--ink)}
.act{display:block;width:100%;height:230px}
.logf{display:flex;gap:6px;padding:6px 12px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.logf button.on{background:var(--edge);border-color:var(--edge);color:#fff}
.dash .log--floor{max-height:260px}
.log--floor li[hidden]{display:none}
.note-pane{border:1px solid var(--rule);border-top:0}
.hud #unfocus{width:30px;height:30px;font-size:15px}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dash--b{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dash--b .pane:last-child{grid-column:1/-1}}
@media (max-width:900px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dash--a,.dash--b{grid-template-columns:minmax(0,1fr)}
  .lb{grid-template-columns:2ch minmax(0,1.3fr) 4ch 8ch 4ch minmax(0,1fr);gap:6px;padding:6px 10px}
  .lb>:nth-child(3),.lb>:nth-child(5),.lb>:nth-child(8){display:none}
  .tf{grid-template-columns:minmax(0,1fr) 4ch 8ch 7ch 5ch;gap:6px}
  .tf>:nth-child(3),.tf>:nth-child(5){display:none}
  .dgrid{grid-template-columns:minmax(0,1fr)}
  .hint{display:none}
}

/* ── fee desk narrative ── */
.feedesk{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,.65fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-bottom:0}
.feedesk>*{background:var(--pane);padding:18px 20px;min-width:0}
.feedesk .lab{color:var(--ink-3);font-size:12px;margin-bottom:8px}
.feedesk h1{color:var(--ink);font-size:clamp(20px,2.2vw,30px);font-weight:600;line-height:1.15;letter-spacing:-.02em;margin:0 0 10px}
.feedesk p{color:var(--ink-2);font-size:12.5px;max-width:62ch}
.feedesk__how{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--ink-2)}
.feedesk__how li{counter-increment:s;padding-left:3ch;position:relative}
.feedesk__how li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;color:var(--leg)}
.feedesk__how b{color:var(--ink);font-weight:600}
.feedesk__state{display:flex;flex-direction:column;justify-content:center;gap:4px;background:#0a0e16}
.feedesk__state .big{color:var(--ink);font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1.05}
.feedesk__state .big small{font-size:.4em;color:var(--ink-2);margin-left:.4em;font-weight:500;letter-spacing:0}
.feedesk__state .sub{font-size:12px;color:var(--ink-2)}
@media (max-width:1100px){.feedesk{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.feedesk__q{grid-column:1/-1}}
@media (max-width:900px){.feedesk{grid-template-columns:minmax(0,1fr)}.feedesk>*{padding:14px}}

/* ── CA inside the 3D stage ── */
.cahud{position:absolute;left:10px;top:10px;z-index:2;display:flex;align-items:center;gap:8px;max-width:calc(100% - 20px);padding:6px 10px;background:rgba(7,8,11,.78);border:1px solid var(--rule-2);font-size:12px;color:var(--ink-2)}
.cahud b{color:var(--leg);font-weight:700}
.cahud__ca{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cahud button{border:1px solid var(--leg);background:none;color:var(--leg);font:600 11px var(--mono);padding:1px 8px;flex:0 0 auto}
.cahud button:hover{background:var(--leg);color:#07080b}
.cahud__mc{color:var(--ink-3);flex:0 0 auto}
@media (max-width:900px){.cahud{font-size:11px;gap:6px;padding:5px 8px}.cahud__mc{display:none}}
