/* Terra Vita Evidence Console — shared institutional surface */
:root{
  --paper:#efebe2; --panel:#f7f4ec; --panel-2:#fbf9f3;
  --ink:#14120c; --ink-soft:#5a5648; --ink-faint:#8c8676;
  --rule:#d4cdba; --rule-soft:#e2dccb;
  --verified:#33583c; --conditional:#8a611b; --contested:#7e2f24;
  --reconstructed:#3a4a63; --stamp:#6a6454;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.serif{font-family:"Newsreader",Georgia,serif}
.label{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.num{font-variant-numeric:tabular-nums}
a{color:inherit}
button{font-family:inherit;cursor:pointer}

/* ---------- COVER (landing only) ---------- */
#cover{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;
  justify-content:center;max-width:820px;margin:0 auto;padding:48px 28px}
#cover .kicker{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:auto}
#cover .core{margin:auto 0;padding:40px 0}
#cover h1{font-family:"Newsreader",serif;font-weight:500;font-size:clamp(36px,6.2vw,60px);
  line-height:1.04;letter-spacing:-.01em;margin-bottom:20px}
#cover .lead{font-family:"Newsreader",serif;font-size:clamp(21px,3.4vw,30px);line-height:1.18;
  color:var(--ink);max-width:18ch;margin-bottom:36px}
#cover .pipeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;border:1px solid var(--rule);margin-bottom:32px}
#cover .stage{padding:18px 18px}
#cover .stage .sname{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
#cover .stage .sgloss{font-size:12px;color:var(--ink-soft);margin-top:8px;line-height:1.45}
#cover .parrow{display:flex;align-items:center;justify-content:center;color:var(--ink-faint);padding:0 4px;font-size:13px}
#cover .criteria{margin-bottom:38px}
#cover .clabel{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:11px}
#cover .cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
#cover .cgrid span{border:1px solid var(--rule);padding:11px 8px;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);text-align:center}
.enter{appearance:none;background:var(--ink);color:var(--paper);border:none;text-decoration:none;
  padding:15px 26px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:14px}
.enter:hover{background:#000}
#cover .closer{font-family:"Newsreader",serif;font-style:italic;font-size:15px;color:var(--ink-faint);margin-top:20px}
#cover .foot{margin-top:auto;border-top:1px solid var(--ink);padding-top:10px;
  display:flex;flex-wrap:wrap;gap:8px 22px}
#cover .foot span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp)}
@media(max-width:640px){
  #cover .pipeline{grid-template-columns:1fr}
  #cover .parrow{transform:rotate(90deg);padding:6px 0}
  #cover .cgrid{grid-template-columns:1fr 1fr}
}

/* ---------- CONSOLE CHROME ---------- */
.masthead{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--ink);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
  padding:12px clamp(16px,3vw,34px)}
.masthead .brand{display:flex;align-items:baseline;gap:12px}
.masthead .title{font-family:"Newsreader",serif;font-size:19px;font-weight:600;letter-spacing:-.01em}
.masthead .title a{text-decoration:none}
.masthead .live{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft)}
.dot{width:7px;height:7px;background:var(--verified);border-radius:50%}
.masthead .stamp{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--rule);padding:4px 9px;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--stamp)}

.nav{position:sticky;top:46px;z-index:4;background:var(--paper);border-bottom:1px solid var(--ink);
  display:flex;flex-wrap:wrap;max-width:1320px;margin:0 auto;padding:0 clamp(8px,2vw,26px)}
.nav a{flex:1;min-width:150px;text-decoration:none;padding:12px 14px;border-right:1px solid var(--rule);
  display:flex;gap:10px;align-items:baseline}
.nav a:last-child{border-right:none}
.nav a .n{font-size:10px;color:var(--ink-faint)}
.nav a .t{font-size:12px;letter-spacing:.04em}
.nav a.active{background:var(--ink);color:var(--paper)}
.nav a.active .n{color:#c9c3b0}
.nav a:not(.active):hover{background:var(--panel-2)}

main{position:relative;z-index:2;max-width:1320px;margin:0 auto;padding:clamp(18px,3vw,34px)}
.pagehead{margin-bottom:30px;max-width:760px}
.pagehead .pnum{font-size:11px;color:var(--ink-faint);letter-spacing:.12em}
.pagehead h2{font-family:"Newsreader",serif;font-size:clamp(26px,4vw,38px);font-weight:600;
  letter-spacing:-.01em;margin:6px 0 12px}
.pagehead p{font-size:12.5px;color:var(--ink-soft);line-height:1.7}

.panel{background:var(--panel);border:1px solid var(--rule);position:relative;padding:0}
.panel::before,.panel::after{content:"";position:absolute;width:9px;height:9px}
.panel::before{top:-1px;left:-1px;border-top:2px solid var(--ink);border-left:2px solid var(--ink)}
.panel::after{bottom:-1px;right:-1px;border-bottom:2px solid var(--ink);border-right:2px solid var(--ink)}
.pbody{padding:clamp(22px,2.6vw,34px)}

.hint{font-size:10.5px;color:var(--ink-faint);letter-spacing:.04em;margin-top:14px}
.crosslinks{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.crosslinks a{text-decoration:none;border:1px solid var(--rule);padding:4px 9px;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.crosslinks a:hover{border-color:var(--ink);color:var(--ink)}

/* status badges */
.badge{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;border:1px solid;white-space:nowrap}
.st-verified{color:var(--verified);border-color:var(--verified)}
.st-conditional{color:var(--conditional);border-color:var(--conditional)}
.st-contested{color:var(--contested);border-color:var(--contested)}
.st-reconstructed{color:var(--reconstructed);border-color:var(--reconstructed)}
.mode{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}

/* PANEL 1 — evidence chain (full page) */
.ev{border-bottom:1px solid var(--rule);border-left:3px solid transparent;cursor:pointer}
.ev:last-child{border-bottom:none}
.ev.row-verified{border-left-color:var(--verified)}
.ev.row-conditional{border-left-color:var(--conditional)}
.ev.row-reconstructed{border-left-color:var(--reconstructed)}
.ev.row-contested{border-left-color:var(--contested)}
.ev .head{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;padding:28px 6px 28px 20px}
.ev.open{background:var(--panel-2)}
.ev .id{font-size:10.5px;color:var(--ink-faint);letter-spacing:.06em}
.ev .name{font-family:"Newsreader",serif;font-size:21px;line-height:1.16;margin:6px 0 20px;font-weight:600;letter-spacing:-.01em}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px 44px}
.field .k{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.field .v{font-size:12px;line-height:1.6;margin-top:5px;color:var(--ink-soft)}
.field .v .badge,.field .v .ev-score{color:var(--ink)}
.field .v.score{font-family:"Newsreader",serif;font-size:20px}
.ev-score{font-size:17px;color:var(--ink);margin-top:7px;font-variant-numeric:tabular-nums;font-family:"Newsreader",serif}
.ev-score .ev-of{font-size:11px;color:var(--ink-faint);font-family:"IBM Plex Mono",monospace}
.layers{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.layers span{font-size:9.5px;border:1px solid var(--rule);padding:3px 8px;color:var(--ink-soft);letter-spacing:.04em}
.lineage{display:none;border-top:1px dashed var(--rule);margin-top:18px;padding-top:18px}
.ev.open .lineage{display:block}
.lineage .lhead{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}
.step{display:grid;grid-template-columns:18px 1fr;gap:12px;padding-bottom:14px}
.step .seq{font-size:10px;color:var(--ink-faint);padding-top:2px;position:relative}
.step:not(:last-child) .seq::after{content:"";position:absolute;left:8px;top:16px;bottom:-9px;width:1px;background:var(--rule)}
.step .stxt{font-size:12.5px;line-height:1.4}
.step .stxt b{font-weight:600}
.step .sgov{font-size:10px;color:var(--ink-soft);margin-top:2px}
.expand{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
  border:1px solid var(--rule);padding:3px 8px;white-space:nowrap;align-self:start}

/* item selector (spine + integrity pages) */
.selhdr{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:9px}
.selector{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:24px}
.selector button{background:var(--panel-2);border:1px solid var(--rule);padding:10px 13px;min-width:132px;
  font-size:11px;color:var(--ink-soft);display:flex;flex-direction:column;gap:3px;text-align:left}
.selector button .sid{letter-spacing:.04em}
.selector button .sst{font-size:8.5px;letter-spacing:.12em;text-transform:uppercase}
.selector button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.selector button.active .sst{color:#c9c3b0}
.selitem{font-size:12px;color:var(--ink-soft);margin-bottom:16px;line-height:1.5}
.selitem b{color:var(--ink);font-weight:600}

/* PANEL 2 — spine */
.flow{font-size:10px;color:var(--ink-faint);text-align:center;letter-spacing:.2em;margin:4px 0 16px}
.spine{display:flex}
.node{flex:1;text-align:center;border:1px solid var(--rule);border-right:none;padding:24px 8px;
  cursor:pointer;background:var(--panel-2)}
.node:last-child{border-right:1px solid var(--rule)}
.node .nlabel{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
.node .nstate{font-size:8.5px;margin-top:10px;letter-spacing:.1em;text-transform:uppercase}
.node.passed{background:var(--ink);border-color:var(--ink)}
.node.passed .nlabel{color:var(--paper)} .node.passed .nstate{color:#b9d3bf}
.node.cond{border-color:var(--conditional);background:#f3ead7} .node.cond .nstate{color:var(--conditional)}
.node.block{border-color:var(--contested);background:#f1e0dc} .node.block .nstate{color:var(--contested)}
.node.sel{outline:2px solid var(--ink);outline-offset:-1px;z-index:2}
.ruleout{border-top:1px solid var(--rule);margin-top:22px;padding-top:18px}
.ruleout .rk{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.ruleout .rid{font-size:15px;font-weight:600;margin:8px 0 14px;letter-spacing:.01em}
.ruleout .rid.rid-passed{color:var(--verified)}
.ruleout .rid.rid-cond{color:var(--conditional)}
.ruleout .rid.rid-block{color:var(--contested)}
.ruleout dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:12px}
.ruleout dt{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:9.5px;padding-top:2px}
.ruleout dd{line-height:1.5}

/* PANEL 3 — integrity */
.scorewrap{display:flex;align-items:flex-end;gap:16px;margin-bottom:6px}
body[data-page="integrity"] .score{font-family:"Newsreader",serif;font-size:72px;line-height:.9;font-weight:500;font-variant-numeric:tabular-nums}
body[data-page="integrity"] .score .of{font-size:20px;color:var(--ink-faint)}
.scoremeta{font-size:12px;color:var(--ink-soft);padding-bottom:8px;line-height:1.5}
.track{height:7px;background:var(--rule-soft);border:1px solid var(--rule);margin:10px 0 20px;position:relative}
.track .fill{height:100%;background:var(--ink)}
.bk{border-top:1px solid var(--rule);padding:12px 0;cursor:pointer}
.bk .bhead{display:flex;justify-content:space-between;gap:12px;align-items:center}
.bk .btype{font-size:13px}
.bk .btag{font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid;padding:2px 6px;white-space:nowrap}
.bt-open{color:var(--contested);border-color:var(--contested)}
.bt-held{color:var(--conditional);border-color:var(--conditional)}
.bt-fixed{color:var(--verified);border-color:var(--verified)}
.bk .bdetail{display:none;font-size:12px;color:var(--ink-soft);line-height:1.6;padding:10px 0 2px}
.bk.open .bdetail{display:block}
.bk .bdetail .corr{color:var(--ink);margin-top:8px}
.bk .bdetail .corr b{font-weight:600}
.noissue{font-size:12px;color:var(--ink-soft);padding:12px 0;border-top:1px solid var(--rule)}

/* PANEL 4 — readiness */
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);margin-bottom:20px}
.cell{background:var(--panel-2);padding:16px}
.cell .k{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.cell .v{font-family:"Newsreader",serif;font-size:30px;font-weight:500;margin-top:6px;font-variant-numeric:tabular-nums}
.cell .sub{font-size:10.5px;color:var(--ink-faint);margin-top:4px}
.compare{border:1px solid var(--rule);display:none;margin-top:4px}
.compare.on{display:block}
.compare .ch{display:grid;grid-template-columns:1.5fr 1fr 1fr;background:var(--ink);color:var(--paper)}
.compare .ch>div{padding:9px 12px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase}
.compare .cr{display:grid;grid-template-columns:1.5fr 1fr 1fr;border-top:1px solid var(--rule)}
.compare .cr>div{padding:9px 12px;font-size:12px}
.compare .cr .before{color:var(--contested)} .compare .cr .after{color:var(--verified)}
.toggle{appearance:none;background:none;border:1px solid var(--ink);color:var(--ink);
  padding:11px 16px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-top:14px}
.toggle:hover{background:var(--ink);color:var(--paper)}

.foot-rule{border-top:1px solid var(--rule);max-width:1320px;margin:30px auto 0;
  padding:14px clamp(16px,3vw,34px) 40px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.foot-rule span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stamp)}

#tip{position:fixed;z-index:50;max-width:280px;background:var(--ink);color:var(--paper);
  padding:10px 12px;font-size:10.5px;line-height:1.5;display:none;border:1px solid #000;pointer-events:none}
#tip .tk{color:#c9c3b0;letter-spacing:.1em;text-transform:uppercase;font-size:9px}
#tip b{font-weight:600}
