/* Rheo Agent Command — shared surface. Brand v1.1 tokens.
   Every page under /assets links this; page-specific rules stay inline in that page. */
:root{
    --bg:#0B2147; --bg-deep:#050E1D; --panel:#091B3A;
    --line:#1E4080; --line-soft:rgba(143,220,248,.13);
    --text:#F4EDDF; --text-2:#C6BCA3; --text-3:#8293b3;
    --gold-text:#D4AF5E; --gold-line:#C4A25A;
    --crest:#3FAEDE; --ok:#3FA57A; --warn:#D4AF5E; --crit:#D96A6A;
    --serif:"Zodiak",Georgia,serif;
    --sans:"Switzer","Helvetica Neue",Arial,sans-serif;
    --mono:ui-monospace,"SF Mono",Menlo,monospace;
    --ease:cubic-bezier(.2,.6,.2,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{background:var(--bg-deep);color:var(--text);font-family:var(--sans);
    font-size:15px;-webkit-font-smoothing:antialiased}
  body{padding-bottom:96px}
  ::selection{background:var(--gold-line);color:var(--bg-deep)}
  a{color:var(--crest);text-decoration:none}
  .wrap{max-width:1320px;margin:0 auto;padding:0 32px}
  .eyebrow{font-size:.66rem;text-transform:uppercase;letter-spacing:.38em;
    color:var(--gold-text);font-weight:500}
  .mono{font-family:var(--mono);font-size:.74rem;font-variant-numeric:tabular-nums}

  /* header */
  header{border-bottom:1px solid var(--line);background:var(--bg)}
  .bar{display:flex;align-items:center;gap:22px;padding:22px 32px;max-width:1320px;margin:0 auto}
  .brand{display:flex;align-items:center;gap:14px}
  .brand img{width:30px;height:auto;display:block}
  .brand .name{font-family:var(--serif);font-size:1.05rem;letter-spacing:.02em;color:var(--text)}
  .brand .sub{font-size:.6rem;text-transform:uppercase;letter-spacing:.34em;
    color:var(--text-3);margin-top:4px}
  .spacer{flex:1}
  nav{display:flex;gap:0;border:1px solid var(--line)}
  nav a{padding:9px 15px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--text-2);border-right:1px solid var(--line);transition:.16s var(--ease)}
  nav a:last-child{border-right:none}
  nav a:hover{background:var(--panel);color:var(--text)}
  .stamp{font-size:.7rem;color:var(--text-3);text-align:right;line-height:1.6;
    font-variant-numeric:tabular-nums}
  .stamp b{color:var(--text-2);font-weight:500}

  /* hero line */
  .hero{padding:44px 0 8px}
  .hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4vw,2.6rem);
    letter-spacing:-.01em;line-height:1.15}
  .hero p{color:var(--text-2);font-size:.92rem;line-height:1.7;max-width:64ch;margin-top:14px}
  .kicker{font-family:var(--serif);font-style:italic;color:var(--text-3);
    font-size:.9rem;margin-top:10px}

  section{margin-top:56px}
  .sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:20px;
    border-bottom:1px solid var(--line-soft);padding-bottom:12px}
  .sec-head h2{font-family:var(--serif);font-weight:400;font-size:1.35rem;letter-spacing:.01em}
  .sec-head .hint{font-size:.76rem;color:var(--text-3);letter-spacing:.02em}

  /* needs you */
  .needs{border:1px solid var(--line);background:var(--panel)}
  .need{display:flex;gap:16px;align-items:flex-start;padding:15px 20px;
    border-bottom:1px solid var(--line-soft)}
  .need:last-child{border-bottom:none}
  .need .who{width:88px;flex-shrink:0;font-size:.72rem;text-transform:uppercase;
    letter-spacing:.16em;color:var(--text-3);padding-top:2px}
  .need .txt{font-size:.86rem;line-height:1.6;color:var(--text-2)}
  .need .dot{width:7px;height:7px;flex-shrink:0;margin-top:6px}
  .dot.crit{background:var(--crit)} .dot.warn{background:var(--warn)}
  .dot.ok{background:var(--ok)} .dot.unknown{background:var(--text-3)}
  .need.crit .txt{color:var(--text)}
  .all-clear{padding:26px 20px;text-align:center;color:var(--text-3);font-size:.85rem}

  /* agent grid */
  .agents{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .card{border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}
  .card .top{padding:22px 24px 18px;border-bottom:1px solid var(--line-soft)}
  .card .titleline{display:flex;align-items:baseline;gap:12px}
  .card h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:.01em}
  .card .role{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--text-3)}
  .card .status{margin-left:auto;display:flex;align-items:center;gap:7px;
    font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-3)}
  .card .owns{margin-top:12px;font-size:.9rem;color:var(--text-2);line-height:1.6}

  .metrics{display:grid;grid-template-columns:repeat(4,1fr);
    border-bottom:1px solid var(--line-soft)}
  .metric{padding:18px 14px 16px;border-right:1px solid var(--line-soft)}
  .metric:last-child{border-right:none}
  .metric .m-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;
    color:var(--text-3);line-height:1.4;min-height:2.4em}
  .metric .m-val{font-family:var(--serif);font-size:1.9rem;line-height:1;margin-top:10px;
    font-variant-numeric:tabular-nums}
  .metric .m-val.over{color:var(--crit)}
  .metric .m-val.attention{color:var(--gold-text)}
  .metric .m-of{font-size:.78rem;color:var(--text-3);font-family:var(--sans)}
  .metric .m-note{font-size:.66rem;color:var(--text-3);margin-top:8px;line-height:1.5}

  .card .body{padding:22px 24px;flex:1}
  .block+.block{margin-top:22px}
  .block .eyebrow{display:block;margin-bottom:11px}
  ul.resp{list-style:none}
  ul.resp li{font-size:.84rem;color:var(--text-2);line-height:1.6;padding-left:16px;
    position:relative;margin-bottom:7px}
  ul.resp li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;
    background:var(--gold-line)}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .split .col ul{list-style:none}
  .split .col li{font-size:.79rem;color:var(--text-2);line-height:1.55;margin-bottom:6px;
    padding-left:14px;position:relative}
  .split .col.alone li:before{content:"";position:absolute;left:0;top:.58em;
    width:5px;height:5px;background:var(--ok)}
  .split .col.asks li:before{content:"";position:absolute;left:0;top:.58em;
    width:5px;height:5px;background:var(--gold-line)}

  .card .foot{padding:14px 24px;border-top:1px solid var(--line-soft);display:flex;
    align-items:center;gap:14px;font-size:.72rem;color:var(--text-3);
    font-variant-numeric:tabular-nums}
  .card .foot a{border:1px solid var(--gold-line);color:var(--text);padding:7px 13px;
    font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;margin-left:auto;
    transition:.16s var(--ease)}
  .card .foot a:hover{background:var(--bg)}
  .card .foot .nopage{margin-left:auto;font-size:.68rem;letter-spacing:.06em;color:var(--text-3)}

  /* sub-agents */
  /* scoped: an unscoped .sub also matched the brand block in the header */
  .subs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:1px;background:var(--line-soft);border:1px solid var(--line)}
  .subs .sub{background:var(--panel);padding:18px 20px}
  .subs .sname{font-family:var(--mono);font-size:.76rem;color:var(--crest)}
  .subs .sparent{font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;
    color:var(--text-3);margin-top:7px}
  .subs .sdoes{font-size:.8rem;color:var(--text-2);line-height:1.6;margin-top:11px}

  footer{margin-top:64px;padding-top:22px;border-top:1px solid var(--line-soft);
    font-size:.75rem;color:var(--text-3);line-height:1.8}
  footer code{font-family:var(--mono);font-size:.72rem;color:var(--text-2)}

  /* gate */
  #gate{position:fixed;inset:0;z-index:50;background:var(--bg-deep);
    display:flex;align-items:center;justify-content:center}
  #gate .box{width:340px;max-width:88vw;text-align:center}
  #gate img{width:44px;margin:0 auto 26px;display:block}
  #gate h1{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:10px 0 6px}
  #gate p{font-size:.76rem;color:var(--text-3);letter-spacing:.03em;margin-bottom:26px}
  #gate input{width:100%;font-family:var(--sans);font-size:.86rem;color:var(--text);
    background:var(--panel);border:1px solid var(--line);padding:13px 16px;outline:none;
    text-align:center;letter-spacing:.1em}
  #gate input:focus{border-color:var(--gold-line)}
  #gate button{width:100%;margin-top:12px;font-size:.72rem;letter-spacing:.16em;
    text-transform:uppercase;color:var(--text);background:transparent;
    border:1px solid var(--gold-line);padding:13px;cursor:pointer;transition:.16s var(--ease)}
  #gate button:hover{background:var(--bg)}
  #gate .err{font-size:.75rem;color:var(--crit);margin-top:14px;min-height:16px}

  #app{display:none}
  .rise{opacity:0;transform:translateY(14px);animation:rise .5s var(--ease) forwards}
  @keyframes rise{to{opacity:1;transform:none}}
  @media (prefers-reduced-motion:reduce){
    .rise{animation:none;opacity:1;transform:none}
    *{transition:none !important}
  }
  @media (max-width:1080px){
    .agents{grid-template-columns:1fr}
    .bar{flex-wrap:wrap}
  }
  @media (max-width:640px){
    .wrap{padding:0 18px}
    nav{width:100%;flex-wrap:wrap}
    nav a{flex:1 1 auto;text-align:center;border-bottom:1px solid var(--line)}
    .stamp{text-align:left}
    .metrics{grid-template-columns:repeat(2,1fr)}
    .metric{border-bottom:1px solid var(--line-soft)}
    .split{grid-template-columns:1fr}
    .need .who{width:auto}
  }

/* ---------- detail pages (knox, iris) ---------- */
nav a.here{color:var(--gold-text);background:var(--bg-deep)}

.masthead{display:flex;align-items:flex-end;gap:32px;padding:44px 0 20px;
  border-bottom:1px solid var(--line-soft)}
.masthead h1{font-family:var(--serif);font-weight:400;
  font-size:clamp(2rem,4.4vw,2.9rem);line-height:1.1;margin-top:8px}
.masthead p{color:var(--text-2);font-size:.92rem;line-height:1.7;margin-top:12px;max-width:62ch}
.mh-side{margin-left:auto;text-align:right;flex-shrink:0}
.mh-side .status{display:flex;align-items:center;justify-content:flex-end;gap:8px;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3)}
.mh-age{font-size:.72rem;color:var(--text-3);margin-top:8px;font-variant-numeric:tabular-nums}

.split.authority{padding:22px 0 4px;gap:40px;max-width:820px}

/* stat strip */
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border:1px solid var(--line);background:var(--panel);margin-top:28px}
.strip .metric{border-right:1px solid var(--line-soft);border-bottom:none}
.strip .metric:last-child{border-right:none}

/* generic rows */
.rows{border:1px solid var(--line);background:var(--panel)}
.row{padding:16px 20px;border-bottom:1px solid var(--line-soft)}
.row:last-child{border-bottom:none}
.row .r-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.row .r-title{font-size:.92rem;color:var(--text)}
.row .r-meta{font-family:var(--mono);font-size:.7rem;color:var(--text-3)}
.row .r-body{font-size:.84rem;color:var(--text-2);line-height:1.65;margin-top:8px;max-width:96ch}
.row .r-note{font-family:var(--serif);font-style:italic;font-size:.84rem;
  color:var(--text-3);line-height:1.6;margin-top:8px}
.chip{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;padding:4px 9px;
  border:1px solid var(--line);color:var(--text-3);white-space:nowrap}
.chip.critical{border-color:var(--crit);color:var(--crit)}
.chip.high{border-color:var(--crit);color:var(--crit)}
.chip.medium{border-color:var(--gold-line);color:var(--gold-text)}
.chip.resolved{border-color:var(--ok);color:var(--ok)}
.chip.open{border-color:var(--crit);color:var(--crit)}
.chip.live{border-color:var(--ok);color:var(--ok)}

/* table. Seven columns cannot fit a phone, so every grid sits in its own
   horizontal scroller and the page body never scrolls sideways. */
.scroll-x{overflow-x:auto;border:1px solid var(--line)}
.scroll-x table.grid{border:none;min-width:640px}
.scroll-x::-webkit-scrollbar{height:6px}
.scroll-x::-webkit-scrollbar-thumb{background:var(--line)}
table.grid{width:100%;border-collapse:collapse;border:1px solid var(--line);background:var(--panel)}
table.grid th{font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);
  text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);font-weight:500}
table.grid td{padding:13px 16px;font-size:.84rem;color:var(--text-2);
  border-bottom:1px solid var(--line-soft);vertical-align:top}
table.grid tr:last-child td{border-bottom:none}
table.grid td.num{font-variant-numeric:tabular-nums;text-align:right}
table.grid td.key{color:var(--text)}
table.grid .awaiting{color:var(--text-3);font-style:italic;font-family:var(--serif)}

/* deployment cards */
.estate{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px}
.dep{border:1px solid var(--line);background:var(--panel);padding:22px 24px}
.dep h3{font-family:var(--serif);font-weight:400;font-size:1.4rem}
.dep .d-client{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;
  color:var(--text-3);margin-bottom:8px}
.dep dl{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;margin-top:18px}
.dep dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-3);
  padding-top:2px}
.dep dd{font-size:.82rem;color:var(--text-2);line-height:1.5}
.dep .flagged{color:var(--gold-text)}

/* gates */
.gates{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1px;background:var(--line-soft);border:1px solid var(--line)}
.gate{background:var(--panel);padding:18px 20px}
.gate .g-name{font-size:.68rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gold-text)}
.gate .g-rule{font-size:.86rem;color:var(--text);line-height:1.55;margin-top:10px}
.gate .g-why{font-family:var(--serif);font-style:italic;font-size:.8rem;color:var(--text-3);
  line-height:1.6;margin-top:10px}

/* decisions */
.decision{border:1px solid var(--line);background:var(--panel);padding:20px 24px;margin-bottom:1px}
.decision.due{border-left:2px solid var(--warn)}
.decision .d-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.decision h3{font-family:var(--serif);font-weight:400;font-size:1.15rem;color:var(--text)}
.decision .d-date{color:var(--text-3)}
.decision .d-review{margin-left:auto;font-size:.66rem;text-transform:uppercase;
  letter-spacing:.14em;color:var(--text-3)}
.decision.due .d-review{color:var(--warn)}
.decision p{font-size:.85rem;color:var(--text-2);line-height:1.7;margin-bottom:9px}
.decision p.kill{color:var(--text-3)}
.decision .d-label{display:inline-block;min-width:78px;font-size:.62rem;text-transform:uppercase;
  letter-spacing:.14em;color:var(--gold-text)}

/* mix bars */
.mix{display:grid;gap:14px}
.mix-row{display:flex;align-items:center;gap:16px}
.mix-row .m-lane{width:110px;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--text-2)}
.mix-row .m-track{flex:1;height:26px;background:var(--bg-deep);border:1px solid var(--line-soft);
  position:relative}
.mix-row .m-fill{display:block;height:100%;background:#16406e;transition:width .5s var(--ease)}
.mix-row .m-fill.met{background:#2E74AC}   /* Ocean: a met floor should read at a glance */
.mix-row .m-target{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--gold-line)}
.mix-row .m-count{width:96px;font-size:.76rem;color:var(--text-3);
  font-variant-numeric:tabular-nums;text-align:right}

/* the refusal state: shown where standings would be */
.refusal{border:1px solid var(--line);background:var(--panel);padding:34px 30px;text-align:center}
.refusal .r-big{font-family:var(--serif);font-size:2.4rem;color:var(--gold-text);line-height:1}
.refusal .r-txt{font-size:.88rem;color:var(--text-2);line-height:1.7;margin-top:14px;
  max-width:64ch;margin-left:auto;margin-right:auto}

.rules{columns:2;column-gap:32px}
.rules li{break-inside:avoid;list-style:none;font-size:.84rem;color:var(--text-2);
  line-height:1.6;padding-left:16px;position:relative;margin-bottom:12px}
.rules li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;
  background:var(--gold-line)}
.rules .locked{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--text-3);margin-top:5px}

@media (max-width:820px){
  .masthead{flex-direction:column;align-items:flex-start;gap:18px}
  .mh-side{margin-left:0;text-align:left}
  .mh-side .status{justify-content:flex-start}
  .rules{columns:1}
  .split.authority{gap:20px}
}
