/* Corporate Nation — operator console. True responsive: real layouts for
   phone, tablet and desktop (max-width measure, multi-column grid on wide
   screens). Light/dark via [data-theme] with a persistent corner toggle. */
:root{
  --bg:#f7f5f1; --card:#ffffff; --ink:#1d2733; --muted:#5c6a77; --line:#ddd6c9;
  --accent:#1f5fa8; --accent-ink:#ffffff; --danger:#b3352b; --ok:#1e7a34;
  --tile-low:#e8e2d6; --tile-mid:#bcd3ee; --tile-high:#79a8dd;
}
[data-theme="dark"]{
  --bg:#14181d; --card:#1e242c; --ink:#e8edf2; --muted:#9fb0c0; --line:#39434f;
  --accent:#5b97d6; --accent-ink:#0d141c; --danger:#e06a5f; --ok:#5cc477;
  --tile-low:#2c333d; --tile-mid:#33587f; --tile-high:#4d7fb8;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}
.topbar{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:baseline;padding:.8rem 1.25rem;border-bottom:1px solid var(--line);background:var(--card)}
.brand{font-weight:700;font-size:1.15rem}
.brandsub{font-weight:400;color:var(--muted);font-size:.85rem}
.mainnav a{margin-right:1rem;color:var(--accent);text-decoration:none}
.account{margin-left:auto;font-size:.8rem;color:var(--muted)}
main{max-width:1100px;margin:0 auto;padding:1.25rem}
h1{font-size:1.6rem;margin:.2rem 0 1rem}
h2{font-size:1.15rem;margin:.2rem 0 .6rem}
h3{font-size:1rem;margin:1rem 0 .4rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem;margin-bottom:1.1rem}
.card.narrow{max-width:560px;margin:2rem auto}
.grid{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media (min-width:800px){ .grid{grid-template-columns:repeat(3,1fr)} .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem} }
label{display:block;margin:.55rem 0;font-size:.92rem}
input,select,textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit}
input[type=radio]{width:auto}
label.radio{display:inline-block;margin-right:1rem}
fieldset{border:1px solid var(--line);border-radius:8px;margin:.8rem 0}
.btn{display:inline-block;padding:.5rem .95rem;border-radius:7px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font:inherit;font-size:.92rem}
.btn.primary{background:var(--accent);color:var(--accent-ink)}
.btn.danger{border-color:var(--danger);color:var(--danger)}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
form.inline{display:inline}
.rowline{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px dashed var(--line);padding:.35rem 0;margin:0}
.fineprint{font-size:.8rem;color:var(--muted)}
.alert{color:var(--danger);font-weight:600}
.ok{color:var(--ok);font-weight:600}
.current-step{border-left:5px solid var(--accent)}
.gate{border:1px solid var(--danger);border-radius:8px;padding:.6rem .9rem;margin:.7rem 0}
.statustext{font-size:1rem}
.statepill{font-size:.82rem;border:1px solid var(--line);border-radius:999px;padding:.1rem .6rem;white-space:nowrap}
.touch{border-bottom:1px dashed var(--line);padding:.45rem 0;margin:0}
.draftbody{white-space:pre-wrap;font:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.8rem}
.help-toggle{position:fixed;left:1rem;bottom:1rem;z-index:50;padding:.55rem .9rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18);font:inherit;font-size:.88rem;text-decoration:none}
.feedback-toggle{position:fixed;left:1rem;bottom:4.3rem;z-index:50;padding:.55rem .9rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18);font:inherit;font-size:.88rem;text-decoration:none}
.passion{font-weight:700;margin-top:1.2rem}
.tilemap{border-collapse:separate;border-spacing:4px;margin:0 auto}
.tilemap td{width:64px;height:52px;text-align:center;border-radius:8px;vertical-align:middle}
.tilemap td.empty{background:transparent}
.tile{display:flex;flex-direction:column;justify-content:center}
td.tile{display:table-cell}
.tile-state{display:block;font-weight:700;font-size:.85rem}
.tile-pct{display:block;font-size:.8rem;color:var(--muted)}
.r-low{background:var(--tile-low)} .r-mid{background:var(--tile-mid)} .r-high{background:var(--tile-high)}
.foot{max-width:1100px;margin:0 auto;padding:1rem 1.25rem 4.5rem}
.foot a{color:var(--muted);font-size:.85rem}
.about .medallion{width:88px;height:88px;object-fit:contain;display:block;margin:0 auto .5rem}
.about .grace{border-top:1px solid var(--line);margin-top:1rem;padding-top:.8rem}
@media (max-width:640px){ .tilemap td{width:44px;height:40px} .account{margin-left:0} }
/* --- Stream E: runner as a flow --- */
.progress-wrap{background:var(--tile-low);border-radius:999px;height:14px;overflow:hidden;margin:.5rem 0}
.progress-bar{background:var(--accent);height:100%;border-radius:999px;transition:width .3s}
.flow{display:flex;flex-direction:column;gap:.45rem}
.flow-node{border:1px solid var(--line);border-radius:8px;padding:.55rem .8rem;background:var(--card)}
.flow-node.done{color:var(--muted);padding:.35rem .8rem}
.flow-check{color:var(--ok);font-weight:700}
.flow-seq{color:var(--muted);font-size:.85rem;margin-right:.25rem}
.flow-node.current{border-left:5px solid var(--accent);padding:1rem 1.1rem}
.flow-node.upcoming{color:var(--muted);padding:.35rem .8rem;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.flow-short{font-size:1.02rem}
.flow-wait{background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:.5rem .8rem}
.fork{font-weight:700;color:var(--danger)}
.flow-branch{border:1px dashed var(--line);border-left:4px solid var(--muted);border-radius:8px;padding:.5rem .8rem;margin:.5rem 0 .5rem 1.5rem}
.flow-details{margin-top:.8rem;border-top:1px dashed var(--line);padding-top:.6rem}
.flow-details summary{cursor:pointer;font-weight:600;color:var(--accent)}
.official-url{word-break:break-all}
.needs-copy{margin-top:.9rem}
.needs-copy .rowline{align-items:center}
.mail-snap{margin-top:.9rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.6rem .9rem}
.tracking-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:end;margin-top:.9rem}
.tracking-form label{flex:1 1 180px;margin:0}
.copybtn{display:inline-block;padding:.18rem .6rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--accent);cursor:pointer;font:inherit;font-size:.78rem;white-space:nowrap}
.copybtn.copied{border-color:var(--ok);color:var(--ok)}
.actions.assist{border-top:1px dashed var(--line);padding-top:.7rem}
.journeytable{width:100%;border-collapse:collapse}
.journeytable th,.journeytable td{border-bottom:1px solid var(--line);padding:.45rem .5rem;text-align:left;vertical-align:top;font-size:.92rem}
/* --- Provenance stamps --- */
.info-wrap{position:relative;display:inline-block;vertical-align:middle}
.info-i{width:1.15rem;height:1.15rem;border-radius:50%;border:1.5px solid var(--muted);background:transparent;color:var(--muted);font-size:.72rem;font-weight:700;line-height:1;cursor:pointer;padding:0;font-style:italic;font-family:Georgia,serif}
.info-i.stale{border-color:#b97d10;color:#8a5d00;background:#fdf3d7}
[data-theme="dark"] .info-i.stale{border-color:#d9a62e;color:#f0cf7a;background:#3a2f10}
.info-panel{position:absolute;z-index:40;left:0;top:1.4rem;width:280px;max-width:78vw;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;font-size:.8rem;color:var(--ink);box-shadow:0 4px 16px rgba(0,0,0,.18);text-align:left;white-space:normal;word-break:break-word}
.info-panel a{color:var(--accent)}
.info-stale{color:#8a5d00;font-weight:600}
/* Quiet stamp line (Rob, 2026-10-29): one small muted line under the
   fact it stamps; the aged treatment past the freshness threshold is
   the info stamp's own amber. */
.stamp-line{margin:.15rem 0 0}
.stamp-line.stale{color:#8a5d00;font-weight:600}
[data-theme="dark"] .stamp-line.stale{color:#f0cf7a}
/* --- Stream H: binder register --- */
.binder-banner{border:1px solid var(--danger);border-radius:8px;padding:.55rem .85rem;font-weight:600}
.binder-keeper{display:flex;flex-wrap:wrap;gap:.6rem;align-items:end;margin:.7rem 0}
.binder-keeper label{flex:1 1 320px;margin:0}
.binder-row{border:1px solid var(--line);border-radius:8px;padding:.55rem .85rem;margin:.5rem 0}
.binder-row .actions{align-items:center}
.binder-row input[type=file]{width:auto;max-width:100%}
.binder-row input[name=storage_location]{width:auto;max-width:100%}
.printonly{display:none}
@media print{
  .theme-toggle,.help-toggle,.feedback-toggle,.mainnav,.account,.foot{display:none}
  .printonly{display:inline}
  body{background:#fff;color:#000}
  .card{border:none;padding:0}
}

/* Two-views build: the pipeline board + stage headings on the road.
   Phone: columns stack. Wide: the five stages side by side, the board
   scrolling sideways inside the measure rather than squeezing. */
.board{display:flex;flex-direction:column;gap:1.1rem}
.stage-col{margin-bottom:0}
.box{border:1px solid var(--line);border-radius:8px;padding:.7rem .85rem;margin-bottom:.8rem;background:var(--bg)}
.box.focused{outline:2px solid var(--accent);outline-offset:2px}
.box-client{margin:.1rem 0 .3rem}
.box .actions{flex-direction:column;align-items:stretch}
.box .actions .btn{width:100%;text-align:center}
.box .actions form{margin:0}
.box .actions input[name="decision"],.box .actions input[name="reason"]{margin-bottom:.4rem}
.flow-stage h3{margin:1rem 0 .35rem;color:var(--muted);text-transform:none}
@media (min-width:1200px){
  .board{flex-direction:row;align-items:flex-start;overflow-x:auto;padding-bottom:.5rem}
  .stage-col{flex:1 0 215px}
}
