:root{
  --navy:#0b2e4f; --navy-2:#123e63; --ink:#16242e; --muted:#5b6b78; --line:#e3e9ee;
  --bg:#f4f7f9; --card:#ffffff; --accent:#0f6fc4; --sov:#1565c0; --pub:#2e7d4f;
  --warn:#b54708; --ok:#2e7d4f; --radius:14px; --shadow:0 1px 3px rgba(16,36,48,.08),0 6px 18px rgba(16,36,48,.06);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
.view[hidden],[hidden]{display:none!important}
h2{margin:.1rem 0 .3rem;font-size:1.25rem}
h3{margin:.1rem 0 .4rem;font-size:1.05rem}
h4{margin:.2rem 0}
.sub{color:var(--muted);font-size:.92rem;line-height:1.45;margin:.2rem 0 .6rem}
.msg{color:var(--muted);font-size:.9rem;min-height:1.1em}
.msg.small,.small{font-size:.82rem}
code{background:#eef3f7;padding:.05em .35em;border-radius:5px;font-size:.85em}

/* login */
#view-login{min-height:100%;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#0b2e4f,#16456e)}
.card.login{width:min(380px,100%);text-align:center}
.brandmark{font-weight:800;font-size:1.8rem;color:var(--navy);letter-spacing:-.5px}
#login-form{display:flex;flex-direction:column;gap:.55rem;margin-top:1rem}
input,textarea,select,button{font:inherit}
input,textarea,select,.search{padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%}
textarea{resize:vertical}
button{cursor:pointer;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--accent);color:#fff;font-weight:600}
button.ghost{background:#fff;color:var(--accent);border:1px solid var(--line)}
button.small{padding:.45rem .8rem;font-size:.85rem}
button:disabled{opacity:.6}
.footnote{color:var(--muted);font-size:.78rem;margin-top:1rem}

/* app shell */
#view-app{min-height:100%;display:grid;grid-template-columns:1fr}
.rail{display:none}
.stage{padding:0 0 84px;max-width:920px;margin:0 auto;width:100%}
.topbar{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem}
.topbar strong{font-size:1.05rem}
.who{font-size:.82rem;opacity:.85;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.screen{padding:1rem;display:flex;flex-direction:column;gap:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}

/* home */
.hero{background:linear-gradient(140deg,#123e63,#0b2e4f);color:#fff;border:0}
.hero .sub{color:#cfe0ee}
.quickgrid{display:grid;gap:.8rem;grid-template-columns:1fr}
.quick{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line)}
.quick b{font-size:1rem}
.quick small{color:var(--muted)}
.qico,.ico{font-size:1.1rem}
.qico{color:var(--accent)}
.brief-stub .pill,.pill{display:inline-block;background:#eef3f7;color:var(--muted);border-radius:20px;padding:.1rem .55rem;font-size:.75rem;margin-left:.3rem}

/* ask */
#ask-form{display:flex;flex-direction:column;gap:.55rem}
.answer{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.8rem}
#answer-text{white-space:pre-wrap;line-height:1.5}
.answer-foot{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}
.chip{background:#eef3f7;color:#33505f;border-radius:20px;padding:.18rem .6rem;font-size:.76rem;text-decoration:none}
.chip.pub{background:#e7f4ec;color:var(--pub)}
.chip.sov{background:#e7f0fb;color:var(--sov)}
.badge{display:inline-block;border-radius:20px;padding:.12rem .55rem;font-size:.72rem;font-weight:600}
.badge.sovereign,.badge.sov{background:#e7f0fb;color:var(--sov)}
.badge.pub{background:#e7f4ec;color:var(--pub)}
.badge.dept{background:#eef3f7;color:#33505f}
.badge.full{background:#fff1e6;color:var(--warn)}
.badge.int{background:#f3eefa;color:#6b3fa0}
.badge.state{background:#eaf6ef;color:var(--ok)}

/* evidence */
.search{margin-top:.4rem}
.evlist{display:flex;flex-direction:column;gap:.7rem}
.evcard h4{margin:.3rem 0}
.evcard p{margin:.2rem 0;color:#33454f;font-size:.92rem}
.evhead{display:flex;gap:.35rem;flex-wrap:wrap}

/* benchmarks */
.tiles{display:grid;gap:.7rem;grid-template-columns:repeat(2,1fr)}
.tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.1rem;position:relative;box-shadow:var(--shadow)}
.tile small{color:var(--muted);font-size:.76rem}
.tile .dot{position:absolute;top:.7rem;right:.7rem;width:10px;height:10px;border-radius:50%}
.tile.up .dot{background:var(--ok)} .tile.down .dot{background:#c0392b}
.compare-controls{display:flex;gap:.5rem;flex-wrap:wrap}
.compare-controls select{flex:1;min-width:120px}
.cmp-result{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.7rem}
.cmp-result .narr{line-height:1.5;margin:.2rem 0 .5rem}
.origin-key{display:flex;gap:.5rem;margin-top:.4rem}
.ledger-body{display:flex;flex-direction:column;gap:.45rem}
.lrow{font-size:.92rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}

/* profile */
.profile dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem .9rem;margin:.4rem 0 1rem}
.profile dt{color:var(--muted);font-size:.85rem}
.profile dd{margin:0;font-weight:600}

/* bottom tab bar (mobile) */
.tabbar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;z-index:6;padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;background:none;color:var(--muted);border-radius:0;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem 0;font-weight:500}
.tab small{font-size:.68rem}
.tab.active{color:var(--accent)}

/* desktop */
@media(min-width:760px){
  #view-app{grid-template-columns:230px 1fr}
  .rail{display:flex;flex-direction:column;gap:.2rem;background:var(--navy);color:#fff;padding:1rem .7rem;position:sticky;top:0;height:100vh}
  .rail-brand{font-weight:800;font-size:1.3rem;padding:.4rem .6rem 1rem}
  .navlink{background:none;color:#cfe0ee;display:flex;align-items:center;gap:.7rem;justify-content:flex-start;border-radius:10px;padding:.6rem .7rem;font-weight:600}
  .navlink.active{background:rgba(255,255,255,.12);color:#fff}
  .rail-foot{margin-top:auto;padding:.6rem}
  .deptbadge{font-size:.78rem;color:#9fc0db}
  .tabbar{display:none}
  .stage{padding-bottom:1rem;max-width:none}
  .quickgrid{grid-template-columns:repeat(3,1fr)}
  .tiles{grid-template-columns:repeat(4,1fr)}
  .screen{padding:1.4rem;max-width:1000px;margin:0 auto;width:100%}
}
