/* Terminal chrome, shared by the live terminal and the deploy console.
   Every colour comes from the ap.css tokens; this file only does layout. */
/* Terminal view. Page-specific chrome only; every colour comes from the ap.css tokens. */
html,body{height:100%}
body{overflow:hidden}
.term{
  position:fixed;inset:0;display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  font-family:var(--mono);font-size:13px;line-height:1.5;color:var(--ink);background:var(--paper);
  padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)
}

/* ---- top bar ---- */
.tbar{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}
.tbar .b{padding:9px 14px;border-right:1px solid var(--line);white-space:nowrap;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.tbar .b b{font-weight:400;color:var(--ink);text-transform:none;letter-spacing:.02em}
.tbar .home{color:var(--ink);text-transform:none;letter-spacing:.1em;font-weight:500;display:flex;align-items:center;gap:8px}
.tbar .home svg{width:15px;height:15px}
.tbar .home .mark{width:17px;height:17px}
.tbar .grow{flex:1;border-right:0}
.tbar .mode{color:var(--paper);background:var(--accent);border-right:0}
.tbar .mode.live{background:var(--pos)}
.tbar a.b:hover{color:var(--ink)}
@media (max-width:760px){.tbar .b{padding:8px 11px}.tbar .hide-s{display:none}}

/* ---- body: stream + rail ---- */
/* below 1000px the rail sits under the stream; the stream keeps the larger share of the screen */
.tbody{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1.9fr) minmax(0,1fr);min-height:0}
@media (min-width:1000px){.tbody{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr)}}
.stream{overflow-y:auto;overflow-x:hidden;padding:12px 14px 20px;scrollbar-width:thin}
.stream .ln{display:grid;grid-template-columns:62px 82px 96px 84px minmax(0,1fr);gap:10px;padding:2px 0;align-items:baseline;border-bottom:1px solid transparent}
/* phones: one line per event — stamp, verb, proof and amount on the first row, the sentence under it */
@media (max-width:760px){
  .stream .ln{display:block;padding:7px 0;border-bottom:1px solid var(--line)}
  .stream .t,.stream .v{margin-right:8px}
  .stream .amt{float:right}
  .stream .msg{display:block;margin-top:3px;clear:both}
  .stream .exp{padding-left:0}
}
.stream .ln:hover{background:var(--card)}
.stream .ln.sel{background:var(--card-2)}
.stream .t{color:var(--ink-3);font-size:11.5px}
.stream .v{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}
.stream .amt{text-align:right;font-variant-numeric:tabular-nums}
.stream .msg{overflow-wrap:anywhere}
.stream .msg a{border-bottom:1px solid var(--line)}
.stream .sys{color:var(--ink-3)}
.stream .sys b{color:var(--ink);font-weight:400}
.stream .err{color:var(--neg)}
.stream .out{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-2);padding:2px 0 8px 62px;font-size:12.5px}
@media (max-width:760px){.stream .out{padding-left:0}}
.stream .exp{grid-column:1/-1;padding:6px 0 10px 62px;color:var(--ink-2);font-size:12px;display:grid;gap:3px}
@media (max-width:760px){.stream .exp{padding-left:0}}
.stream .exp span{color:var(--ink-3)}

/* verbs */
.v-DISCOVER{color:var(--accent-2)}
.v-BUY{color:var(--accent)}
.v-WORK{color:var(--ink)}
.v-SELL{color:var(--sky-4)}
.v-EARN{color:var(--pos)}
.v-REINVEST{color:var(--ink-2)}
.v-POLICY{color:var(--neg)}

/* proof pills */
.pf{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:3px;border:1px solid var(--line-strong);white-space:nowrap}
.pf.onchain{background:var(--pos);border-color:var(--pos);color:#04070C}
.pf.sim{border-color:var(--accent);color:var(--accent)}
.pf.auto{border-color:var(--line);color:var(--ink-3)}
.pf.int{border-color:var(--neg);color:var(--neg);margin-left:6px}

/* ---- rail ---- */
.rail{border-top:1px solid var(--line);overflow-y:auto;background:var(--card);min-height:0}
@media (min-width:1000px){.rail{border-top:0;border-left:1px solid var(--line)}}
.rail section{border-bottom:1px solid var(--line);padding:12px 14px}
.rail h2{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:400;margin-bottom:8px}
.rail .kvr{display:flex;justify-content:space-between;gap:10px;padding:2px 0;font-size:12.5px;color:var(--ink-2)}
.rail .kvr b{font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.rail .kvr b.pos{color:var(--pos)}
.rail .kvr b.neg{color:var(--neg)}
.rail .meter{height:4px;background:var(--card-2);border-radius:2px;overflow:hidden;margin:6px 0 2px}
.rail .meter i{display:block;height:100%;background:var(--accent)}
.rail .meter i.hot{background:var(--neg)}
.rail .note{font-size:11px;color:var(--ink-3);line-height:1.5;margin-top:6px}
.rail .buy{display:block;margin-top:8px;text-align:center;border:1px solid var(--line-strong);border-radius:4px;padding:8px;font-size:12px;color:var(--ink)}
.rail .buy:hover{background:var(--ink);color:var(--paper)}

/* ---- status + command line ---- */
.tfoot{border-top:1px solid var(--line);background:var(--card)}
.filters{display:flex;gap:0;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.filters button{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;color:var(--ink-3);border-right:1px solid var(--line);min-height:32px}
.filters button.on{color:var(--paper);background:var(--ink)}
.filters .stat{margin-left:auto;padding:7px 12px;color:var(--ink-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border-right:0;white-space:nowrap}
.cmd{display:flex;align-items:center;gap:8px;padding:9px 14px}
.cmd .ps{color:var(--accent)}
.cmd input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-family:var(--mono);font-size:13px;caret-color:var(--accent)}
.cmd input::placeholder{color:var(--ink-3)}
.cmd .hint{color:var(--ink-3);font-size:11px;white-space:nowrap}
@media (max-width:760px){.cmd .hint{display:none}}

/* ---- deploy console additions ---- */
.q{color:var(--ink-3)}
.q b{color:var(--ink);font-weight:400}
.ans{color:var(--accent)}
.ok{color:var(--pos)}
.steps{display:flex;gap:0;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.steps button{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;color:var(--ink-3);border-right:1px solid var(--line);min-height:32px;white-space:nowrap}
.steps button.done{color:var(--pos)}
.steps button.on{color:var(--paper);background:var(--ink)}
.steps .stat{margin-left:auto;padding:7px 12px;color:var(--ink-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border-right:0}
.rail .todo{display:grid;gap:5px;font-size:12px;color:var(--ink-2)}
.rail .todo div{display:flex;gap:8px;align-items:baseline}
.rail .todo i{font-style:normal;color:var(--ink-3);min-width:14px}
.rail .tag2{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:0 5px;border-radius:3px;margin-left:auto;white-space:nowrap}
.rail .spec b.empty{color:var(--ink-3)}
