/* Terminal layout */
body.terminal{background:radial-gradient(1200px 700px at 70% -10%,rgba(43,77,255,.07),transparent 60%),var(--bg)}
.term{position:relative;z-index:4;display:grid;grid-template-columns:1.05fr 1.35fr 1fr;grid-template-rows:auto 1fr;gap:18px;padding:96px var(--pad) 28px;min-height:100vh;height:100vh}
.statusbar{grid-column:1/-1;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.sb-item{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);background:rgba(12,13,15,.6)}
.sb-spacer{flex:1}
.svc{display:inline-flex;align-items:center;gap:5px;margin-right:10px;text-transform:lowercase}
.svc i{width:6px;height:6px;border-radius:50%;background:var(--ink-3)}
.svc.up i{background:var(--up)}
.svc.down i{background:var(--down)}
.sb-btn{font-family:var(--mono);font-size:11px;padding:9px 14px;border:1px solid rgba(255,255,255,.22);color:var(--ink);transition:background .3s,color .3s}
.sb-btn:hover{background:rgba(255,255,255,.08)}
.sb-btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.sb-btn.primary:hover{background:#fff}
.tabs{display:none}

.col{display:flex;flex-direction:column;gap:18px;min-height:0}
.panel{border:1px solid var(--line);background:rgba(14,15,18,.72);backdrop-filter:blur(8px);padding:18px 18px 16px;min-height:0;display:flex;flex-direction:column}
.panel.grow{flex:1}
.panel header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel h2{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1}
.hint{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.empty{font-family:var(--mono);font-size:11px;color:var(--ink-3);padding:10px 0}
.locked p{font-size:12px;color:var(--ink-2);line-height:1.7}

textarea,input{width:100%;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);color:var(--ink);font:13px/1.55 var(--sans);padding:12px 13px;resize:vertical;outline:none;transition:border-color .3s}
input{font-family:var(--mono);font-size:12px}
textarea:focus,input:focus{border-color:rgba(43,77,255,.7)}
.row{display:flex;gap:10px;margin-top:10px;align-items:center}
form.row{margin-top:0}
.btn-s{font-family:var(--mono);font-size:11px;padding:10px 14px;border:1px solid rgba(255,255,255,.22);white-space:nowrap;transition:background .3s,color .3s,opacity .3s}
.btn-s:hover{background:rgba(255,255,255,.08)}
.btn-s.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn-s[disabled]{opacity:.45;pointer-events:none}

.policy{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.policy .sum{font-family:var(--serif);font-size:17px;line-height:1.4;margin-bottom:12px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.kv div{background:#0f1013;padding:9px 10px}
.kv dt{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.kv dd{font-family:var(--mono);font-size:13px;margin-top:4px}
.notes{margin-top:10px;font-size:11px;color:var(--ink-2);line-height:1.7;padding-left:14px}
.state{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:4px 7px;border:1px solid}
.state.on{color:var(--up);border-color:rgba(127,217,168,.4)}
.state.off{color:var(--warn);border-color:rgba(255,207,110,.4)}

.audit{margin-top:14px}
.verdict{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.badge{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;border:1px solid}
.badge.pass{color:var(--up);border-color:rgba(127,217,168,.5);background:rgba(127,217,168,.08)}
.badge.caution{color:var(--warn);border-color:rgba(255,207,110,.5);background:rgba(255,207,110,.08)}
.badge.fail{color:var(--down);border-color:rgba(255,138,122,.5);background:rgba(255,138,122,.08)}
.audit .sym{font-family:var(--serif);font-size:20px}
.audit p{font-size:12px;color:var(--ink-2);line-height:1.7}
.audit ul{margin:10px 0 0 16px;font-size:11.5px;color:var(--ink-2);line-height:1.75}
.audit .facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:12px}
.audit .facts div{background:#0f1013;padding:8px 10px;font-family:var(--mono);font-size:11px}
.audit .facts span{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
.spinner{display:inline-block;width:12px;height:12px;border:1.5px solid var(--ink-3);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}

.ttape-head,.trow{display:grid;grid-template-columns:44px 1.2fr 44px 1fr 72px;gap:10px;font-family:var(--mono);font-size:11.5px;padding:8px 0;border-bottom:1px solid var(--line);align-items:center}
.ttape-head{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.ttape{overflow:auto;flex:1;min-height:120px}
.trow{cursor:pointer;transition:background .3s}
.trow:hover{background:rgba(255,255,255,.035)}
.trow .t{color:var(--ink-3)}
.trow .w{color:var(--ink-2)}
.trow .s{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase}
.trow.buy .s{color:var(--up)}
.trow.sell .s{color:var(--down)}
.trow.fresh{animation:fresh 2.4s var(--ease)}
.signals{max-height:220px;overflow:auto}
.sig{padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
.sig .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px}
.sig .top b{font-weight:500;color:var(--ink)}
.sig .top span{color:var(--up)}
.sig p{font-size:11.5px;color:var(--ink-2);margin-top:5px;line-height:1.6}

.plans{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow:auto}
.plan{border:1px solid var(--line);padding:12px;background:#0f1013}
.plan .top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:var(--mono);font-size:12px}
.plan .top b{font-weight:500}
.plan .st{font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:3px 6px;border:1px solid var(--line);color:var(--ink-2)}
.plan.ready{border-color:rgba(43,77,255,.65);box-shadow:0 0 0 1px rgba(43,77,255,.25) inset}
.plan.ready .st{color:#fff;background:var(--accent);border-color:var(--accent)}
.plan.executed .st{color:var(--up);border-color:rgba(127,217,168,.4)}
.plan.blocked .st,.plan.failed .st{color:var(--down);border-color:rgba(255,138,122,.4)}
.plan p{font-size:11.5px;color:var(--ink-2);margin-top:7px;line-height:1.6}
.plan ol{margin:8px 0 0 16px;font-family:var(--mono);font-size:11px;color:var(--ink-2);line-height:1.8}
.plan .row{margin-top:10px}
.plan a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

.log{font-family:var(--mono);font-size:11px;line-height:1.65;overflow:auto;flex:1;min-height:120px}
.log div{padding:4px 0;border-bottom:1px dashed rgba(255,255,255,.05);color:var(--ink-2)}
.log .a{display:inline-block;min-width:76px;color:var(--ink-3)}
.log .signal{color:var(--ink)}
.log .plan{color:#c9d4ff}
.log .warn{color:var(--warn)}
.log .report{color:var(--up)}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:60;font-family:var(--mono);font-size:12px;background:#15171b;border:1px solid rgba(255,255,255,.16);padding:12px 16px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease);max-width:min(560px,90vw)}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-width:1100px){
  .term{grid-template-columns:1fr 1fr;height:auto}
  .col.wide{grid-column:1/-1;order:3}
}
@media (max-width:760px){
  .term{display:flex;flex-direction:column;padding:84px 14px 20px;height:auto}
  .tabs{display:flex;gap:0;border:1px solid var(--line);position:sticky;top:72px;z-index:6;background:var(--bg)}
  .tabs button{flex:1;padding:12px 0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
  .tabs button.on{background:var(--ink);color:var(--bg)}
  .col{display:none}
  .col.show{display:flex}
  .statusbar{flex-wrap:wrap}
  #sb-services{display:none}
  .kv{grid-template-columns:repeat(2,1fr)}
}

/* X sentiment inside an audit */
.xs{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.xs-h{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;margin-bottom:6px}
.xs-l{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:9.5px}
.xs-t{padding:3px 8px;border:1px solid var(--line);text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--ink-2)}
.xs-t.bullish{color:var(--up);border-color:rgba(127,217,168,.45)}
.xs-t.bearish{color:var(--down);border-color:rgba(255,138,122,.45)}
.xs-t.neutral{color:var(--warn);border-color:rgba(255,207,110,.45)}
.xs-n{color:var(--ink-3)}
.xs .xs-w{color:var(--warn)}
.xs .xs-s a{font-family:var(--mono);font-size:10.5px;color:#d9a95f;margin-right:10px}
.xs .xs-f{font-size:10.5px;color:var(--ink-3)}
