:root{
  --ink:#0B0E14; --ink-2:#0F131B; --ink-3:#141924;
  --line:#222836; --line-soft:#1a1f2b;
  --parch:#EFE9DC; --parch-dim:#C9C3B6; --muted:#8A91A0;
  --bronze:#C2A06A; --bronze-dim:#8d7550; --ok:#7FA88A; --danger:#c96a5c;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--ink);color:var(--parch);font-family:var(--sans);
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}
button{font-family:inherit}
a{color:var(--bronze);text-decoration:none}
*{scrollbar-width:thin;scrollbar-color:#272e3c transparent}
*::-webkit-scrollbar{width:9px}*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#272e3c;border-radius:6px;border:2px solid transparent;background-clip:content-box}

/* ---------- puerta ---------- */
body.gate{display:grid;place-items:center;background:radial-gradient(1200px 700px at 50% -10%,#151b27,#0B0E14 60%)}
.gate-card{width:min(420px,92vw);background:var(--ink-2);border:1px solid var(--line);border-radius:4px;padding:34px 32px}
.gate-card h1{font-family:var(--serif);font-weight:500;font-size:24px;margin:26px 0 6px}
.gate-card .sub{color:var(--muted);font-size:13.5px;margin:0 0 22px}
.gate-card form{display:flex;flex-direction:column;gap:10px}
.gate-card input{padding:12px 14px;background:var(--ink-3);border:1px solid var(--line);border-radius:3px;color:var(--parch);font-size:14px}
.gate-card input:focus{outline:none;border-color:var(--bronze-dim)}
.gate-card button{padding:12px;background:var(--bronze);color:#12151c;border:0;border-radius:3px;font-weight:600;cursor:pointer}
.gate-card .err{display:none;color:var(--danger);font-size:12.5px;margin:10px 0 0}
.gate-card .foot{color:var(--muted);font-size:11.5px;margin:22px 0 0;border-top:1px solid var(--line-soft);padding-top:14px}

/* ---------- topbar ---------- */
.topbar{flex:0 0 64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;
  border-bottom:1px solid var(--line);background:var(--ink-2)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.mark{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--bronze-dim);
  color:var(--bronze);font-family:var(--serif);font-size:18px;border-radius:2px;
  background:linear-gradient(160deg,#181d28,#0e1219)}
.brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.brand-text strong{font-family:var(--serif);font-size:18px;font-weight:500;letter-spacing:.02em}
.brand-text span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-right{display:flex;align-items:center;gap:16px}
.corpus-chip{font-size:12px;color:var(--parch-dim);border:1px solid var(--line);border-radius:99px;
  padding:5px 12px;background:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.link-quiet{font-size:12px;color:var(--muted)}
.link-quiet:hover{color:var(--bronze)}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:274px minmax(0,1fr) 372px;grid-template-rows:minmax(0,1fr);
  flex:1;min-height:0;overflow:hidden}

.rail{border-right:1px solid var(--line);background:var(--ink-2);padding:18px 14px;
  display:flex;flex-direction:column;gap:5px;overflow-y:auto}
.rail-label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:4px 0 8px;padding:0 4px}
.qtype{text-align:left;background:transparent;border:1px solid transparent;border-radius:3px;padding:10px 12px;
  color:var(--parch-dim);cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:.14s}
.qtype:hover{background:var(--ink-3);border-color:var(--line)}
.qtype:hover .qt-title{color:var(--bronze)}
.qt-title{font-size:13px;font-weight:600}
.qt-ex{font-size:11.5px;color:var(--muted);line-height:1.35}
.rail-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-soft)}
.coverage{font-size:12px;color:var(--parch-dim);margin:0 0 6px;font-variant-numeric:tabular-nums}
.coverage-note{font-size:11px;color:var(--muted);margin:0;line-height:1.4}

/* ---------- stage ---------- */
.stage{display:flex;flex-direction:column;min-height:0;min-width:0}
.stage-head{padding:22px 30px 12px;border-bottom:1px solid var(--line-soft)}
.stage-head h1{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 4px}
.stage-head p{margin:0;color:var(--muted);font-size:13px}
.thread{flex:1;overflow-y:auto;padding:22px 30px 8px;display:flex;flex-direction:column;gap:20px}
.empty{color:var(--muted);padding-top:8px}
.lede{font-size:14px;margin:0 0 16px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--ink-3);border:1px solid var(--line);color:var(--parch-dim);border-radius:99px;
  padding:7px 13px;font-size:12.5px;cursor:pointer}
.chip:hover{border-color:var(--bronze-dim);color:var(--parch)}

.msg-user{align-self:flex-end;max-width:78%;background:var(--ink-3);border:1px solid var(--line);
  border-radius:4px 4px 2px 4px;padding:11px 15px;font-size:14px}
.msg-ai{max-width:100%;font-size:14.5px;line-height:1.68}
.msg-ai p{margin:0 0 10px}
.msg-ai strong{color:var(--parch)}
.msg-ai ul{margin:0 0 10px;padding-left:20px}
.msg-ai li{margin:3px 0}
.msg-ai .cite{display:inline-block;min-width:17px;text-align:center;font-size:11px;color:var(--bronze);
  border:1px solid rgba(194,160,106,.4);border-radius:2px;padding:0 3px;margin:0 1px;vertical-align:1px;cursor:pointer}
.msg-ai .limits{margin-top:10px;padding-top:8px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--muted)}
.planline{font-size:11.5px;color:var(--muted);letter-spacing:.02em;margin-bottom:8px}
.planline b{color:var(--bronze);font-weight:600}
.statbox{border:1px solid var(--line);border-radius:3px;background:var(--ink-2);padding:10px 14px;margin:0 0 12px;font-size:12.5px}
.statbox table{border-collapse:collapse;width:100%}
.statbox td{padding:2px 0;color:var(--parch-dim)}
.statbox td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--parch)}
.typing{color:var(--muted);font-size:13px}
.composer{display:flex;gap:10px;padding:14px 30px 6px;border-top:1px solid var(--line-soft);background:var(--ink)}
.composer textarea{flex:1;resize:none;background:var(--ink-2);border:1px solid var(--line);border-radius:3px;
  color:var(--parch);padding:12px 14px;font-family:inherit;font-size:14px;max-height:160px;line-height:1.5}
.composer textarea:focus{outline:none;border-color:var(--bronze-dim)}
.composer button{width:44px;border:1px solid var(--bronze-dim);background:var(--bronze);color:#12151c;
  border-radius:3px;cursor:pointer;display:grid;place-items:center}
.composer button:disabled{opacity:.45;cursor:default}
.disclaimer{margin:0;padding:0 30px 14px;font-size:11px;color:var(--muted)}

/* ---------- panel ---------- */
.panel{border-left:1px solid var(--line);background:var(--ink-2);display:flex;flex-direction:column;min-height:0}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 12px;border-bottom:1px solid var(--line-soft)}
.panel-head h2{font-family:var(--serif);font-size:15px;font-weight:500;margin:0;color:var(--parch)}
.panel-count{font-size:11.5px;color:var(--muted)}
.panel-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.panel-empty{color:var(--muted);font-size:12.5px;line-height:1.5;margin:0}
.src{border:1px solid var(--line);border-radius:3px;padding:10px 12px;background:var(--ink-3);cursor:pointer}
.src:hover{border-color:var(--bronze-dim)}
.src-top{display:flex;gap:8px;align-items:baseline}
.src-n{font-size:11px;color:var(--bronze);border:1px solid rgba(194,160,106,.4);border-radius:2px;padding:0 4px}
.src-cite{font-size:12.5px;line-height:1.4;color:var(--parch)}
.src-meta{margin-top:5px;font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px}
.src-meta b{color:var(--parch-dim);font-weight:500}
.src-detail{margin-top:9px;border-top:1px solid var(--line-soft);padding-top:8px;font-size:11.5px;color:var(--parch-dim);display:none}
.src.open .src-detail{display:block}
.src-detail a{display:inline-block;margin-top:6px}

@media (max-width:1180px){
  .shell{grid-template-columns:232px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
  .panel{display:none}
}
@media (max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .rail{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px;gap:8px}
  .rail-label,.rail-foot{display:none}
  .qtype{flex:0 0 auto;border:1px solid var(--line);background:var(--ink-3);padding:8px 11px}
  .qt-ex{display:none}
  .stage-head{padding:14px 18px 10px}
  .stage-head h1{font-size:19px}
  .thread{padding:16px 18px 6px}
  .composer{padding:10px 18px 6px}
  .disclaimer{padding:0 18px 12px}
}
