/* ── Tamarind Studio · design system ─────────────────────────────────────────
   Professional, calm, high-density. A neutral slate base with a single restrained
   amber accent (the Tamarind brand, used sparingly) — the aesthetic of a serious
   coding tool (Codex / Linear / Vercel), not a flashy dashboard. One stylesheet,
   CSS variables, no build. The v1 "warm cockpit" look is preserved in .ux-backup-v1. */

:root{
  /* surfaces (cool neutral near-black → slate) */
  --bg:#0b0c0e; --bg-1:#101216; --bg-2:#14171c; --panel:#12151acc; --panel-solid:#12151a;
  --raise:#181c22; --raise-2:#1f242c; --line:#242a33; --line-2:#333b47;
  /* ink */
  --ink:#e8eaed; --ink-2:#b6bcc6; --muted:#828b99; --dim:#5b636f; --faint:#3a4049;
  /* brand + status — accent used sparingly, cooler status hues */
  --amber:#e0a44a; --amber-2:#b9812e; --tamarind:#d98a3d; --honey:#eec27a;
  --green:#4ec98b; --green-2:#1c5039; --red:#e26d5c; --red-2:#4d211c; --amber-warn:#e0b24a;
  --blue:#5aa0e6; --violet:#a790e6; --grey:#7b8492;
  /* type */
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  /* motion + depth — subtler, flatter, professional */
  --shadow:0 8px 30px #0009, 0 1px 0 #ffffff08 inset;
  --shadow-sm:0 2px 10px #0006, 0 1px 0 #ffffff05 inset;
  --r:10px; --r-sm:7px; --ease:cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:
    radial-gradient(1200px 700px at 88% -12%, #16181d 0%, transparent 58%),
    radial-gradient(820px 560px at -8% 112%, #101317 0%, transparent 56%),
    var(--bg);
  color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased;
  font-size:13.5px; line-height:1.5; overflow:hidden;
  letter-spacing:0.1px;
}
::selection{background:var(--amber-2);color:#0b0c0e}
button{font-family:inherit}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#242a33;border-radius:8px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#333b47;background-clip:content-box}

/* ── app frame ── */
#app{display:grid;grid-template-rows:auto 1fr auto;height:100vh}

/* ── command palette ── */
.palette{width:min(580px,92vw);background:var(--panel-solid);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.palette #pal-input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:500 15px/1.2 var(--sans);padding:16px 18px;outline:0}
.pal-results{max-height:min(52vh,440px);overflow-y:auto;padding:6px}
.pal-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:0;border-radius:9px;padding:11px 12px;cursor:pointer;color:var(--ink)}
.pal-item.active,.pal-item:hover{background:var(--raise-2)}
.pal-ic{width:20px;text-align:center;color:var(--amber);font:700 13px/1 var(--mono)}
.pal-title{font:600 13.5px/1 var(--sans)}
.pal-hint{margin-left:auto;font:600 10.5px/1 var(--mono);color:var(--dim)}
.pal-empty{padding:22px;text-align:center;color:var(--dim);font:500 13px/1 var(--sans)}

/* ── bottom status bar ── */
.statusbar{display:flex;align-items:center;gap:16px;padding:7px 16px;border-top:1px solid var(--line);background:#0e1013;
  font:600 11px/1 var(--mono);color:var(--muted);flex:none;overflow:hidden}
.statusbar .sb{display:flex;align-items:center;gap:6px;white-space:nowrap}
.statusbar .sb b{color:var(--ink-2);font-weight:700}
.statusbar .sb .k{color:var(--dim)}
.statusbar .spacer{flex:1}
.statusbar .save{color:var(--green)}
.statusbar .sbdot{width:7px;height:7px;border-radius:50%;background:var(--amber)}
@media(max-width:760px){.statusbar .opt{display:none}}
.topbar{display:flex;align-items:center;gap:14px;padding:11px 18px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#12151add,#101216cc);backdrop-filter:blur(10px);z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.2px;font-size:16px}
.leaf{width:22px;height:22px;flex:none}
.brand .leaf{width:22px;height:22px;filter:drop-shadow(0 1px 3px #00000066)}
/* gateway (login / connect) hero mark — a small, professional badge, never a hero blob */
.modal .hd .leaf{width:34px;height:34px;vertical-align:-8px;margin-right:2px}
.modal .hd>div>.leaf{width:44px;height:44px;margin:2px 0 4px}
.brand .sub{font:600 9.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:5px 8px;margin-left:2px}
.topbar .spacer{flex:1}

.workspace{display:grid;grid-template-columns:264px 1fr 396px;min-height:0;height:100%}
@media(max-width:1200px){.workspace{grid-template-columns:220px 1fr}.rail{display:none}}
.sidebar{border-right:1px solid var(--line);min-height:0;overflow-y:auto;background:#0e1013aa}
.main{min-height:0;overflow-y:auto;display:flex;flex-direction:column}
.rail{border-left:1px solid var(--line);min-height:0;overflow-y:auto;background:#0e1013aa}

/* ── generic bits ── */
.section-h{font:600 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  padding:14px 16px 8px;display:flex;align-items:center;gap:8px}
.section-h .n{color:var(--dim)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}
.pad{padding:16px}
.chip{display:inline-flex;align-items:center;gap:6px;font:600 10.5px/1 var(--mono);color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:6px 10px;white-space:nowrap}
.chip b{color:var(--ink);font-weight:700}
.btn{display:inline-flex;align-items:center;gap:7px;font:600 12px/1 var(--sans);color:var(--ink);
  background:var(--raise);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 13px;cursor:pointer;
  transition:.14s var(--ease)}
.btn:hover{border-color:var(--amber-2);background:var(--raise-2)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(180deg,var(--amber),var(--amber-2));color:#0b0c0e;border-color:#00000000;font-weight:700}
.btn.primary:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon{width:16px;height:16px;flex:none}
.kbd{font:600 10px/1 var(--mono);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;
  padding:3px 5px;color:var(--muted);background:#00000030}

/* connection status dot */
.status{display:flex;align-items:center;gap:8px;font:600 11.5px/1 var(--mono);color:var(--muted)}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--dim)}
.status.live .dot{background:var(--green);box-shadow:0 0 0 0 #4ec98b88;animation:beat 2s infinite}
.status.demo .dot{background:var(--amber)}
.status.error .dot{background:var(--red)}
@keyframes beat{0%{box-shadow:0 0 0 0 #4ec98b88}70%{box-shadow:0 0 0 8px #4ec98b00}100%{box-shadow:0 0 0 0 #4ec98b00}}

/* ── account chip (topbar) ── */
.acct-chip{display:flex;align-items:center;gap:8px;cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:5px 10px 5px 6px;transition:.14s var(--ease)}
.acct-chip:hover{border-color:var(--amber-2);background:var(--raise)}
.acct-plan{font:700 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#0e1013;border:1px solid var(--line);border-radius:999px;padding:4px 7px}
.acct-plan.paid{color:#0b0c0e;background:linear-gradient(180deg,var(--amber),var(--amber-2));border-color:transparent}
.acct-email{font:600 12px/1 var(--sans);color:var(--ink-2)}

/* ── model picker ── */
.model-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#0e1013;border:1px solid var(--line);border-radius:11px;padding:13px 14px;cursor:pointer;margin-bottom:8px}
.model-row:hover{border-color:var(--line-2)}
.model-row.on{border-color:var(--amber-2);background:linear-gradient(180deg,#1f242c,#12151a)}
.model-row .mn{font:700 13.5px/1 var(--sans);color:var(--ink)}
.model-row .mnote{font:500 11px/1 var(--mono);color:var(--muted)}
.model-row .mcur{margin-left:auto;font:700 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}

/* ── MCP panel ── */
.mcp-srv{background:#0e1013;border:1px solid var(--line);border-radius:12px;padding:14px 15px;margin-bottom:10px}
.mcp-srv-h{display:flex;align-items:center;gap:9px;font:600 13px/1 var(--sans)}
.mcp-dot{width:8px;height:8px;border-radius:50%;background:var(--dim)}
.mcp-dot.on{background:var(--green)}
.mcp-status{font:600 10px/1 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.mcp-count{margin-left:auto;font:600 10.5px/1 var(--mono);color:var(--dim)}
.mcp-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.mcp-tool{font:600 11px/1 var(--mono);color:var(--blue);background:#0f1720;border:1px solid #1d2c39;border-radius:7px;padding:5px 8px}

/* ── plan cards (account panel) ── */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:640px){.plan-grid{grid-template-columns:1fr}}
.plan-card{position:relative;background:#0e1013;border:1px solid var(--line);border-radius:14px;padding:18px 16px;display:flex;flex-direction:column;gap:12px}
.plan-card.featured{border-color:var(--amber-2);box-shadow:0 0 0 1px var(--amber-2) inset}
.plan-card.current{border-color:var(--green-2)}
.plan-badge{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font:700 8.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#0b0c0e;background:linear-gradient(180deg,var(--amber),var(--amber-2));padding:5px 9px;border-radius:999px}
.plan-name{font:700 13px/1 var(--sans);color:var(--ink);letter-spacing:.02em}
.plan-price{font:800 26px/1 var(--sans);color:var(--ink)}
.plan-price span{font:600 12px/1 var(--mono);color:var(--muted);margin-left:3px}
.plan-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}
.plan-feats li{font:500 12px/1.3 var(--sans);color:var(--ink-2);padding-left:18px;position:relative}
.plan-feats li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}

/* ── session list ── */
.slist{display:flex;flex-direction:column;gap:3px;padding:2px 8px 16px}
.sitem{text-align:left;width:100%;background:transparent;border:1px solid transparent;border-radius:10px;
  padding:10px 12px;cursor:pointer;transition:.12s var(--ease);display:flex;flex-direction:column;gap:5px}
.sitem:hover{background:#ffffff06;border-color:var(--line)}
.sitem.active{background:linear-gradient(180deg,#1f242c,#181c22);border-color:var(--amber-2)}
.sitem .t{font:600 13px/1.25 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sitem .m{display:flex;gap:8px;align-items:center;font:600 10px/1 var(--mono);color:var(--dim)}
.sitem .m .out{padding:3px 6px;border-radius:6px;border:1px solid}

/* ── file tree (sidebar) ── */
.ft{display:flex;flex-direction:column;padding:2px 8px 14px}
.ft-row{display:flex;align-items:center;gap:7px;width:100%;text-align:left;background:transparent;border:0;border-radius:7px;padding:5px 8px;cursor:pointer;color:var(--ink-2);font:500 12px/1.3 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft-row:hover{background:#ffffff06}
.ft-row.dir{color:var(--muted);font-weight:600}
.ft-ic{width:12px;text-align:center;color:var(--dim);flex:none}
.ft-empty{padding:10px 16px;color:var(--dim);font:500 12px/1.4 var(--sans)}
.disclosure{display:flex;align-items:center;gap:6px;width:100%;background:transparent;border:0;cursor:pointer}
.disclosure .caret{color:var(--dim);transition:.12s}

/* ── @-mention popup (composer) ── */
.mentions{position:absolute;bottom:100%;left:0;right:0;margin-bottom:10px;background:var(--panel-solid);border:1px solid var(--line-2);
  border-radius:12px;box-shadow:var(--shadow);overflow:hidden;max-height:250px;overflow-y:auto;z-index:30}
.mrow{display:flex;align-items:baseline;gap:9px;width:100%;text-align:left;background:transparent;border:0;padding:9px 13px;cursor:pointer}
.mrow.active,.mrow:hover{background:var(--raise-2)}
.mbase{font:600 13px/1 var(--sans);color:var(--ink)}
.mdir{font:500 11px/1 var(--mono);color:var(--dim);overflow:hidden;text-overflow:ellipsis}

/* ── timeline (the run) ── */
.main-h{padding:16px 22px 10px;display:flex;align-items:center;gap:12px;position:sticky;top:0;
  background:linear-gradient(180deg,#101216,#101216cc 70%,transparent);backdrop-filter:blur(6px);z-index:5}
.main-h .title{font:700 17px/1.2 var(--sans)}
.main-h .subtitle{font:500 12px/1 var(--mono);color:var(--muted);margin-top:5px}
.timeline{padding:6px 22px 24px;display:flex;flex-direction:column;gap:12px}
.evt{display:grid;grid-template-columns:34px 1fr;gap:12px;position:relative}
.evt::before{content:"";position:absolute;left:16px;top:34px;bottom:-12px;width:2px;background:var(--line)}
.evt:last-child::before{display:none}
.evt .gutter{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);
  background:var(--raise);z-index:1;color:var(--muted)}
.evt .gutter.user{background:linear-gradient(180deg,#1f242c,#181c22);border-color:var(--amber-2);color:var(--amber)}
.evt .gutter.assistant{color:var(--honey)}
.evt .gutter.tool{color:var(--blue)}
.evt .gutter.edit{color:var(--green)}
.evt .gutter.gate{color:var(--amber);border-color:var(--amber-2)}
.evt .gutter.guard{color:var(--violet)}
.evt .body{min-width:0;padding-bottom:2px}
.evt .head{display:flex;align-items:baseline;gap:9px;margin-bottom:5px}
.evt .who{font:700 12.5px/1 var(--sans)}
.evt .when{font:500 10.5px/1 var(--mono);color:var(--dim);margin-left:auto}
.evt .text{font:400 13.5px/1.55 var(--sans);color:var(--ink-2);white-space:pre-wrap;word-break:break-word}
.evt .tool-call{font:600 12px/1.3 var(--mono);color:var(--blue);background:#0f1720;border:1px solid #1d2c39;
  border-radius:8px;padding:8px 11px;display:inline-flex;gap:8px;align-items:center;max-width:100%}
.evt .tool-call .args{color:var(--muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guard-note{font:600 12px/1.4 var(--mono);color:var(--violet);background:#1b1226;border:1px solid #2f2140;
  border-radius:8px;padding:9px 12px}
.gate-note{font:600 12.5px/1.4 var(--sans);color:var(--amber);background:#211809;border:1px solid var(--amber-2);
  border-radius:8px;padding:10px 13px;display:flex;align-items:center;gap:9px}

/* diff */
.diff{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0b0c0e;margin-top:2px}
.diff .fname{font:600 11.5px/1 var(--mono);color:var(--ink-2);padding:9px 12px;background:#14171c;
  border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:center}
.diff .fname .add{color:var(--green)}.diff .fname .del{color:var(--red)}
.diff pre{margin:0;padding:8px 0;overflow-x:auto;font:500 12px/1.6 var(--mono)}
.diff .dl{padding:0 12px;white-space:pre}
.diff .dl.add{background:#0f2119;color:#9fe6c4}
.diff .dl.del{background:#251314;color:#f0a89b}
.diff .dl.ctx{color:var(--dim)}
.diff .dl .sign{display:inline-block;width:14px;color:inherit;opacity:.7}

/* integrated terminal drawer */
.terminal-drawer{border-top:1px solid var(--line);background:#0a0b0d;max-height:38vh;display:flex;flex-direction:column;flex:none}
.term-h{display:flex;align-items:center;gap:10px;padding:7px 16px;border-bottom:1px solid var(--line);font:700 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.term-busy{color:var(--amber)}
.term-x{margin-left:auto;background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:13px}
.term-x:hover{color:var(--ink)}
.term-body{flex:1;overflow-y:auto;padding:10px 16px;font:500 12.5px/1.65 var(--mono)}
.tl{white-space:pre-wrap;word-break:break-word;color:var(--ink-2)}
.tl.in{color:var(--ink)} .tl.err{color:var(--red)}
.tprompt{color:var(--green);font-weight:700}
.term-in{display:flex;align-items:center;gap:8px;padding:9px 16px;border-top:1px solid var(--line)}
.term-in input{flex:1;background:transparent;border:0;outline:0;color:var(--ink);font:500 12.5px/1 var(--mono)}

/* composer */
.composer{position:sticky;bottom:0;margin-top:auto;padding:14px 22px 18px;
  background:linear-gradient(0deg,#101216,#101216ee 60%,transparent);backdrop-filter:blur(6px)}
.composer .box{display:flex;gap:10px;align-items:flex-end;background:var(--panel-solid);border:1px solid var(--line-2);
  border-radius:14px;padding:10px 10px 10px 14px;box-shadow:var(--shadow-sm);transition:.14s var(--ease)}
.composer .box:focus-within{border-color:var(--amber-2)}
.composer textarea{flex:1;background:transparent;border:0;outline:0;resize:none;color:var(--ink);font:400 14px/1.5 var(--sans);
  max-height:180px;min-height:24px}
.composer .hint{font:500 10.5px/1 var(--mono);color:var(--dim);margin-top:8px;display:flex;gap:14px}

/* ── rail: proof canvas ── (component styles live in proof.js render, generic here) */
.rail-inner{display:flex;flex-direction:column;gap:14px;padding:14px}
.mini-h{font:600 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 11px;
  display:flex;align-items:center;gap:8px}
.mini-h .n{color:var(--dim)}

/* seal */
.seal-box{text-align:center}
.seal-wrap{position:relative;width:190px;height:190px;margin:2px auto 2px}
.verdict{font:800 19px/1 var(--sans);letter-spacing:.02em}
.verdict small{display:block;font:600 10px/1.4 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);margin-top:7px}
.pill{display:inline-block;margin-top:11px;font:700 10.5px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  padding:7px 12px;border-radius:999px;border:1px solid}

/* constellation */
.constellation svg{width:100%;height:230px;overflow:visible}

/* gate stage chain */
.stage{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px dashed #242a33}
.stage:last-child{border-bottom:0}
.stage .ic{width:20px;height:20px;flex:none;border-radius:6px;display:grid;place-items:center;font:800 11px/1 var(--mono);border:1px solid}
.stage .nm{font:600 12.5px/1.2 var(--sans)}
.stage .cmd{font:500 10px/1.3 var(--mono);color:var(--dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage .ms{margin-left:auto;font:600 10px/1 var(--mono);color:var(--muted);flex:none}
.st-ok{--c:var(--green)}.st-fail{--c:var(--red)}.st-pend{--c:var(--amber)}.st-skip{--c:var(--grey)}
.stage .ic{color:var(--c);border-color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}

/* vitals */
.gauge{position:relative;width:96px;height:96px}
.gauge .lbl{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.gauge .lbl b{font:800 19px/1 var(--sans)}
.gauge .lbl span{display:block;font:600 8px/1 var(--mono);letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.vrows{display:flex;flex-direction:column;gap:8px;flex:1}
.vrow{display:flex;justify-content:space-between;align-items:baseline;font:600 12px/1 var(--sans);
  border-bottom:1px dashed #242a33;padding-bottom:7px}
.vrow:last-child{border-bottom:0;padding-bottom:0}
.vrow .k{color:var(--muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em}
.vrow .v{color:var(--ink);font-weight:700}
.lawmeter{display:flex;gap:5px;margin-top:2px}
.lawmeter span{flex:1;height:6px;border-radius:4px;background:#242a33;border:1px solid #333b47}
.lawmeter.normal span:nth-child(1){background:var(--green);border-color:var(--green)}
.lawmeter.alternate span:nth-child(-n+2){background:var(--amber);border-color:var(--amber)}
.lawmeter.direct span{background:var(--red);border-color:var(--red)}

/* mutation lattice */
.lattice{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}
.mut{aspect-ratio:1;border-radius:3px;background:#242a33;border:1px solid #333b47}
.mut.killed{background:color-mix(in srgb,var(--green) 32%,#0d0a07);border-color:var(--green-2)}
.mut.survived{background:color-mix(in srgb,var(--red) 36%,#0d0a07);border-color:var(--red);box-shadow:0 0 7px #e26d5c44}
.rate{font:800 22px/1 var(--sans);margin-top:10px}
.rate small{font:600 10px/1 var(--mono);color:var(--muted);margin-left:7px}

/* receipt */
.receipt{background:linear-gradient(180deg,#efe4d3,#e6d7c0);color:#242a33;border-radius:11px;padding:14px 16px;
  font-family:var(--mono);position:relative;box-shadow:var(--shadow-sm)}
.receipt::before,.receipt::after{content:"";position:absolute;left:0;right:0;height:10px;
  background:radial-gradient(circle at 5px -2px,transparent 5px,#efe4d3 5px);background-size:10px 10px}
.receipt::before{top:-5px;transform:rotate(180deg)}.receipt::after{bottom:-5px}
.receipt h4{margin:0 0 9px;font:800 12px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;text-align:center;
  border-bottom:2px dashed #242a3355;padding-bottom:9px}
.receipt .ln{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:2.5px 0}
.receipt .ln .k{color:#6b5334}.receipt .ln .v{font-weight:700;text-align:right;word-break:break-all}
.receipt .stamp{margin-top:10px;text-align:center;font:800 11px/1 var(--mono);letter-spacing:.18em;padding:7px;border:2px solid;border-radius:7px}

/* ── connect modal ── */
.overlay{position:fixed;inset:0;background:#0a0b0dcc;backdrop-filter:blur(8px);display:grid;place-items:center;z-index:100}
.modal{width:min(480px,92vw);background:var(--panel-solid);border:1px solid var(--line-2);border-radius:18px;
  box-shadow:var(--shadow);overflow:hidden}
.modal .hd{padding:20px 22px 6px}
.modal .hd h2{margin:0;font:800 19px/1.2 var(--sans)}
.modal .hd p{margin:8px 0 0;color:var(--muted);font-size:13px}
.modal .bd{padding:16px 22px 22px;display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font:600 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input{background:#0e1013;border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;color:var(--ink);
  font:500 13px/1 var(--mono);outline:0}
.field input:focus{border-color:var(--amber-2)}
.modal .row{display:flex;gap:10px}
.seg{display:flex;background:#0e1013;border:1px solid var(--line-2);border-radius:10px;padding:3px;gap:3px}
.seg button{flex:1;background:transparent;border:0;border-radius:7px;padding:9px;color:var(--muted);font:700 12px/1 var(--sans);cursor:pointer}
.seg button.on{background:var(--raise-2);color:var(--ink)}
.err{color:var(--red);font:600 12px/1.4 var(--mono);min-height:16px}

/* ── fleet / mission control ── */
.viewseg{display:flex;background:#0e1013;border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px}
.viewseg button{background:transparent;border:0;border-radius:6px;padding:7px 12px;color:var(--muted);
  font:700 11.5px/1 var(--sans);cursor:pointer;display:flex;align-items:center;gap:6px}
.viewseg button.on{background:var(--raise-2);color:var(--ink)}
.fleet{padding:20px 22px 40px}
.fleet-h{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}
.fleet-title{font:800 20px/1 var(--sans)}
.fleet-sub{font:500 12px/1 var(--mono);color:var(--muted);margin-top:6px}
.fleet-legend{margin-left:auto;display:flex;gap:14px;font:600 11px/1 var(--mono);color:var(--muted);align-items:center}
.fleet-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.fcard{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:15px;
  cursor:pointer;transition:.14s var(--ease);display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-sm)}
.fcard:hover{border-color:var(--amber-2);transform:translateY(-2px)}
.fcard.active{border-color:var(--amber);background:linear-gradient(180deg,#1f242c,#12151a)}
.fcard-top{display:flex;gap:12px;align-items:center}
.fseal{flex:none;width:56px;height:56px}
.fcard-id{min-width:0}
.fcard-id .ft{font:700 13.5px/1.3 var(--sans);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fcard-id .fm{font:600 10px/1.3 var(--mono);color:var(--dim);margin-top:5px;display:flex;align-items:center;gap:4px}
.run-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);animation:beat 1.4s infinite}
.fpill{align-self:flex-start;font:700 10px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;padding:6px 10px;border-radius:999px;border:1px solid}
.fstats{display:flex;gap:8px}
.fstat{flex:1;display:flex;flex-direction:column;gap:4px;background:#0e1013;border:1px solid var(--line);border-radius:8px;padding:8px 9px}
.fstat .fk{font:600 8.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.fstat .fv{font:800 14px/1 var(--sans);color:var(--ink)}
.fctx{height:5px;background:#242a33;border-radius:4px;overflow:hidden}
.fctx-bar{height:100%;border-radius:4px;transition:width .5s var(--ease)}
.fctx-lbl{font:600 9.5px/1 var(--mono);color:var(--dim);margin-top:-6px}

/* ── inspect pane (side-by-side) ── */
.evt .body.inspectable{cursor:pointer;border-radius:10px;margin:-6px -8px;padding:6px 8px;transition:.12s var(--ease)}
.evt .body.inspectable:hover{background:#ffffff06}
.inspect-hint{font:600 10px/1 var(--mono);color:var(--dim);opacity:0;transition:.12s;margin-left:8px}
.evt .body.inspectable:hover .inspect-hint{opacity:1;color:var(--amber)}
.inspector-scrim{position:fixed;inset:0;background:#0a0b0daa;backdrop-filter:blur(2px);z-index:90}
.inspector{position:fixed;top:0;right:0;bottom:0;width:min(760px,80vw);z-index:91;background:var(--panel-solid);
  border-left:1px solid var(--line-2);box-shadow:-20px 0 60px #000a;display:flex;flex-direction:column}
.fade-slide{animation:slidein .22s var(--ease)}
@keyframes slidein{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
.inspector-h{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.inspector-h .ih-file{font:700 14px/1.2 var(--mono);color:var(--ink)}
.inspector-h .ih-meta{font:600 11px/1 var(--mono);color:var(--muted);margin-top:6px}
.inspector-h .ih-meta .add{color:var(--green)}.inspector-h .ih-meta .del{color:var(--red)}
.inspector-h .btn{margin-left:auto}
.inspector-cols{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:8px 18px;background:#14171c;
  border-bottom:1px solid var(--line);font:700 9.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.inspector-cols span:last-child{color:var(--green)}
.inspector-body{flex:1;overflow:auto;padding:14px 18px}
.dfile{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}
.dfile-h{font:600 11.5px/1 var(--mono);color:var(--ink-2);padding:9px 12px;background:#14171c;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.dfile.rejected{opacity:.55}
.dfile.rejected .dsplit{filter:grayscale(.6)}
.hunk-dec{margin-left:auto;display:flex;gap:5px}
.hbtn{background:transparent;border:1px solid var(--line);border-radius:7px;padding:5px 9px;color:var(--muted);font:700 10px/1 var(--mono);cursor:pointer;letter-spacing:.04em}
.hbtn:hover{border-color:var(--line-2)}
.hbtn.on-accept{color:var(--green);border-color:var(--green-2);background:color-mix(in srgb,var(--green) 12%,transparent)}
.hbtn.on-reject{color:var(--red);border-color:var(--red);background:color-mix(in srgb,var(--red) 14%,transparent)}
.inspector-foot{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);background:#14171c}
.foot-sum{font:600 12px/1 var(--mono);color:var(--muted)}
.dsplit{font:500 12px/1.65 var(--mono)}
.drow{display:grid;grid-template-columns:1fr 1fr}
.dside{display:flex;gap:8px;padding:0 8px;white-space:pre;overflow:hidden;border-right:1px solid #242a33}
.dside .gl{display:inline-block;width:30px;text-align:right;color:var(--faint);flex:none;user-select:none}
.dside .dtx{overflow:hidden;text-overflow:ellipsis}
.dside.ctx{color:var(--ink-2)}
.dside.add{background:#0f2119;color:#9fe6c4}
.dside.del{background:#251314;color:#f0a89b}
.dside.pad{background:#0b0c0e30}

.empty{display:grid;place-items:center;height:100%;text-align:center;color:var(--dim);padding:40px}
.empty .big{font:800 22px/1.3 var(--sans);color:var(--muted);margin-bottom:10px}
.hidden{display:none!important}
.fade-in{animation:fade .3s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ── API keys panel (account) ───────────────────────────────────────── */
.acct-keys { margin: 14px 0; }
.keys-hd { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.keys-title { font-weight:600; color:var(--ink); font-size:15px; }
.keys-sub { color:var(--muted, #9aa); font-size:12px; margin-top:2px; max-width:520px; }
.keys-sub code { background:rgba(255,255,255,.06); padding:1px 5px; border-radius:4px; }
.key-reveal { border:1px solid var(--amber); border-radius:10px; padding:10px 12px; margin:10px 0; background:rgba(224,163,90,.08); }
.key-reveal-hd { color:var(--amber); font-size:12px; font-weight:600; margin-bottom:6px; }
.key-reveal-row { display:flex; gap:8px; align-items:center; }
.key-value { flex:1; font-family:ui-monospace,monospace; font-size:12px; word-break:break-all; background:rgba(0,0,0,.25); padding:8px 10px; border-radius:6px; color:var(--ink); }
.key-list { display:flex; flex-direction:column; gap:6px; }
.key-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid rgba(255,255,255,.08); border-radius:8px; }
.key-meta { display:flex; flex-direction:column; gap:2px; min-width:0; }
.key-meta code { font-family:ui-monospace,monospace; font-size:12px; color:var(--ink); }
.key-label { font-size:11px; color:var(--amber); }
.key-dates { font-size:11px; color:var(--muted, #8a8); }
.key-empty { color:var(--muted, #8a8); font-size:12px; padding:8px 0; }
