:root{--bg:#0b0d10;--fg:#e8e6df;--red:#c0392b;--cy:#a8e6ff;--line:#2a2f36}
*{box-sizing:border-box}
body{margin:0;background:var(--bg) radial-gradient(circle at 50% 0,#151a20,transparent 60%);color:var(--fg);font-family:'IBM Plex Mono',monospace;font-size:13px;min-height:100vh;display:flex;flex-direction:column}
header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:8px 14px;background:#000;border-bottom:1px solid var(--line)}
.logo{display:flex;gap:10px;align-items:center}.emb{font-size:28px;color:var(--fg)}
h1{font-family:'Stardos Stencil',serif;margin:0;font-size:22px;letter-spacing:3px}
h2{font-family:'Stardos Stencil',serif;font-size:14px;letter-spacing:2px;margin:12px 0 6px;color:#999;border-bottom:1px solid var(--line)}
small,.sub{color:#888;font-size:11px}
.live{color:var(--red);font-weight:700}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);animation:bl 1s infinite}
@keyframes bl{50%{opacity:0}}
#auth-status{font-size:11px}#auth-status a{color:var(--cy)}
main{flex:1;display:grid;grid-template-columns:220px 1fr 280px;gap:8px;padding:8px;min-height:0}
.panel{border:1px solid var(--line);padding:8px 10px;overflow:auto;max-height:calc(100vh - 140px);position:relative;background:#0e1115}
.panel::after{content:'CLASSIFIED';position:absolute;bottom:20px;right:-10px;transform:rotate(-20deg);font-family:'Stardos Stencil';font-size:34px;color:rgba(192,57,43,.07);pointer-events:none}
.spec{border:1px solid var(--line);padding:6px;margin-bottom:6px;cursor:pointer;transition:.15s}
.spec:hover,.spec.sel{border-color:var(--cy);background:#121a20}
.spec b{display:block}.tag{font-size:10px;padding:0 4px;border:1px solid}
.tag.ORGANIC{color:#e67e22}.tag.INORGANIC{color:#aaa}.tag.GRANITE{color:#7fdc8a}
.spec i{display:block;color:#888;font-size:11px}
.btn{font-family:inherit;background:#161b21;color:var(--fg);border:1px solid #444;padding:6px 8px;cursor:pointer;width:100%;margin:3px 0;font-size:12px}
.btn:hover{border-color:var(--fg)}.btn.red{border-color:var(--red);color:#ff8a7a}.btn.cyan{border-color:var(--cy);color:var(--cy)}.btn.on{background:#2a3540}
.row{display:flex;gap:6px}
input[type=range]{width:100%;accent-color:var(--red)}
.hint{color:#666;font-size:11px}
#stage{position:relative;border:1px solid var(--line);min-height:300px;overflow:hidden}
canvas{display:block;width:100%;height:100%;touch-action:none}
#scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px)}
#banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);color:var(--cy);font-weight:700;text-align:center;pointer-events:none}
#log{font-size:11px;max-height:220px;overflow:auto}
#log div{border-bottom:1px dotted #222;padding:2px 0;animation:tw .4s}
@keyframes tw{from{opacity:0;transform:translateX(-6px)}}
#stats{line-height:1.6}#stats b{color:var(--red)}
#memoOut{font-size:11px;white-space:pre-wrap;color:#cfc;margin:4px 0}
#board{font-size:11px}
.redact{background:#000;color:#000;padding:0 2px;cursor:help}.redact:hover{color:var(--red)}
details{margin:0 8px;border:1px solid var(--line)}summary{padding:6px;cursor:pointer;font-family:'Stardos Stencil';letter-spacing:2px}
.docbody{padding:8px 14px;color:#bbb;max-width:800px}
footer{text-align:center;color:#666;font-size:11px;padding:8px}footer a{color:var(--cy)}
.shake{animation:sh .3s}@keyframes sh{25%{transform:translate(4px,-3px)}50%{transform:translate(-4px,2px)}75%{transform:translate(2px,3px)}}
@media(max-width:860px){main{grid-template-columns:1fr}#stage{order:-1;height:55vh}.panel{max-height:none}#specs{display:grid;grid-template-columns:1fr 1fr;gap:4px}}