/* Page scaffold (fermi/flow centred column) + the premortem workshop surface. */
.wrap{max-width:var(--w-board);margin:0 auto;padding-inline:16px;display:flex;flex-direction:column;gap:20px}
/* per-view width discipline: the wizard flow stays a reading-width document even
   though the frame is wide; board + register (which shares #wizardview) use the space */
#workspace[data-view="wizard"] #wizardview{max-width:var(--w-focus);margin-inline:auto}
main{display:flex;flex-direction:column;gap:20px}
.card{background:var(--card);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow);padding:22px}
.card h2,.phase h2{font-family:"Helvetica Neue",Helvetica,"Segoe UI",Roboto,sans-serif;font-size:18px;margin:0 0 4px}
.phint{color:var(--muted);font-size:13.5px;margin:8px 0 16px;max-width:70ch}
.phint b{color:var(--ink);font-weight:600}
.method{color:var(--muted);font-size:12.5px}

/* phase rail — text labels + current/done state (never colour-alone).
   Swiss 6c: the house uppercase-micro chrome voice (.btn/.chip/.segmented), and
   the active step is INK, not the data hue — it sits beside the shared
   .segmented view toggle, which inverts to ink the same way. "Done" keeps its
   ✓ glyph so the three states never rest on colour alone. */
.phaserail{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.phaserail button{font:inherit;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  padding:7px 11px;border:1px solid var(--border);border-radius:0;background:none;cursor:pointer;
  min-height:34px;display:inline-flex;align-items:center;gap:5px}
.phaserail li.done button{color:var(--ink);border-color:var(--ink)}
.phaserail li.done button::before{content:"✓";letter-spacing:0}
.phaserail li.current button{border-color:var(--ink);color:var(--bg);background:var(--ink)}
.phaserail button:disabled{cursor:default;opacity:.6}

/* toolbar: view toggle (Wizard / Board / Register) + always-visible undo */
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.toolbar .viewtoggle{margin-right:auto}
/* the shared .segmented control owns Wizard / Board / Register (Swiss 6c) */

/* FAB board — Facts / Assumptions / Beliefs, three columns onto the same doc */
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.board-sheet{padding:2px 0 0}
.bcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.bcolh{font-family:"Helvetica Neue",Helvetica,"Segoe UI",Roboto,sans-serif;font-size:15px;margin:0}
.bcolhint{color:var(--muted);font-size:12px;margin:0;min-height:2.6em}
.bcards{display:flex;flex-direction:column;gap:8px}
.bcard{background:var(--bg);border:1px solid var(--border);border-radius:0;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.bcard.fact{border-style:dashed}                          /* facts are settled — quieter mark */
.bchead{display:flex;align-items:flex-start;gap:8px}
.bctext{flex:1;overflow-wrap:anywhere;font-size:14px}
.bcdel{flex:0 0 auto;width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;border-radius:0}
.bconf,.promoteform .scin{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.bconf label,.promoteform label{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.bconf input[type=number],.promoteform input[type=number]{width:3.6rem}
.bcpromote{align-self:flex-start;font-size:12.5px;padding:6px 10px}
.badd{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--card);border:1px dashed var(--border);border-radius:0;padding:9px 11px}
.promoteform{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:8px}
.pfhint{font-size:12px;color:var(--muted);margin:0}
.pfbtns{display:flex;gap:8px;flex-wrap:wrap}
/* the board's verdict is the shared 6b block (assets/page.css owns its type);
   it closes the board, so it keeps the top margin and drops the bottom one */
.board + .verdict-block{margin-bottom:0}

/* generic inputs */
.fl{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}
.fl input{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--ink);
  background:var(--bg);border:1px solid var(--border);border-radius:0;padding:10px 12px;text-transform:none;letter-spacing:0}
.inlinelabel{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase}
.inlinelabel input{display:inline-block;width:auto;margin:0;font-size:16px}
[data-add="entry"]{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);
  border:1px solid var(--border);border-radius:0;padding:10px 12px;margin-bottom:12px}
input[type=number]{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--border);
  border-radius:0;padding:7px 8px;width:4.5rem;text-align:center}
select{font:inherit;font-size:16px;min-height:44px;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:0;padding:6px 8px}

/* COLLECT */
.clist,.cllist{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.centry{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}
.ctext{flex:1;min-width:140px;overflow-wrap:anywhere}
.lexicon{display:flex;gap:6px}
.lexbtn{font:inherit;font-size:11.5px;min-height:34px;padding:4px 10px;border:1px dashed var(--border);border-radius:0;background:var(--card);color:var(--muted);cursor:pointer}
.lexbtn.on{border-style:solid;border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.cdel,.acdel{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted);font-size:18px;cursor:pointer}

/* CLUSTER */
.clrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}

/* SCORE */
.scrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--border)}
.scin{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.scin label{font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.essential{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;color:var(--ink)}
.essential input{width:18px;height:18px;accent-color:var(--accent-ink)}

/* ACTIONS */
.acrow{padding:12px 0;border-bottom:1px solid var(--border)}
.acrisk{font-weight:600;margin:0 0 8px}
.acitem{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.acitem input{flex:1;min-width:120px;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:0;padding:8px 10px}
.acitem input[data-action="owner"]{flex:0 0 8rem}

/* VOTE */
.vrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.vtext{flex:1;overflow-wrap:anywhere}
.vrow.topvote .vtext{color:var(--accent-ink);font-weight:600}
.vstep{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--ink);font-size:20px;cursor:pointer}
.vcount{font-family:ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:700;min-width:1.5em;text-align:center}

/* REGISTER — the kept artefact: a light header zone, then a data table that
   sizes to its content and centres (leftover width is margin, not sparse columns) */
.reghead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:2px 0 12px}
.regplane{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}
.regsubject{font-family:"Helvetica Neue",Helvetica,"Segoe UI",Roboto,sans-serif;font-size:16px;color:var(--ink)}
.registerwrap{overflow-x:auto;margin-top:4px}
/* columns stay tight (scannable): the metric columns minimise to content and
   group tight-right, RISK caps at a reading measure. The table sizes to content
   and shares its LEFT edge with the header zone + portfolio verdict so the three
   read as one artefact; residual right space is benign panel background, not the
   sparse inter-column gaps the old width:100% produced */
.register{width:auto;min-width:560px;border-collapse:collapse;font-size:13.5px}
.register td:nth-child(n+3),.register th:nth-child(n+3){width:1px;white-space:nowrap}
.register .rexp{min-width:184px}
.register th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 16px;border-bottom:1px solid var(--border)}
.register td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:top}
.register td:first-child,.register th:first-child{padding-left:2px}
.rnum{font-family:ui-monospace,Menlo,monospace;color:var(--muted)}
.rtext{max-width:58ch;overflow-wrap:anywhere}
.rp{font-variant-numeric:tabular-nums;white-space:nowrap}
.rexp b{font-variant-numeric:tabular-nums}
.band{display:block;position:relative;height:5px;background:var(--track);border-radius:0;margin:4px 0 2px}
.bandfill{position:absolute;top:0;height:5px;background:var(--accent);border-radius:0}
.bandtext{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.rrow.ageing{opacity:.82}
.rrow.stale{opacity:.55}
.rstale{white-space:nowrap;color:var(--muted);font-size:12px}
/* status tag — the house square: tinted fill AND a coloured label AND a 1px
   border, uppercase micro. Never colour alone. Swiss 6c moved "mitigating" off
   --accent onto the semantic --st-doing (identical hex in both themes, so no
   new colour) and gave every state a border. */
.statuspill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:2px 8px;border-radius:0;
  border:1px solid color-mix(in srgb,var(--muted) 45%,transparent);
  background:color-mix(in srgb,var(--muted) 15%,transparent);color:var(--ink)}
.statuspill.mitigating{border-color:color-mix(in srgb,var(--st-doing) 45%,transparent);
  background:color-mix(in srgb,var(--st-doing) 15%,transparent);color:var(--st-doing-ink)}
.statuspill.closed{border-color:color-mix(in srgb,var(--st-done) 45%,transparent);
  background:color-mix(in srgb,var(--st-done) 15%,transparent);color:var(--st-done-ink)}
.tagchip{display:inline-block;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:0;margin-left:6px;text-transform:uppercase;letter-spacing:.03em}
.tagchip.tiger{background:color-mix(in srgb,var(--err) 15%,transparent);color:var(--st-blocked-ink)}
.tagchip.paper-tiger{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted)}
.tagchip.elephant{background:color-mix(in srgb,var(--st-risk) 15%,transparent);color:var(--st-risk-ink)}
.clusterchip{font-size:10.5px;color:var(--muted);margin-left:6px}
.actcount{font-size:10.5px;color:var(--muted);margin-left:6px}
.unscored{color:var(--muted);font-style:italic}
.registernote{max-width:68ch;margin:0 0 12px;color:var(--muted);font-size:13.5px}
.register-conclusion{max-width:70ch;margin:0 0 12px;padding:10px 0;border-block:1px solid var(--border);font-size:15px;font-weight:600;color:var(--ink)}
.register-conclusion span{display:block;margin-bottom:4px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.promotion-seam{margin:0 0 12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12.5px;color:var(--muted)}
.commitpill,.supportpill{display:inline-block;margin-left:6px;padding:2px 7px;border:1px solid var(--accent-ink);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 13%,transparent)}
.supportpill{border-style:dashed;border-color:var(--muted);color:var(--muted);background:transparent}
.portfolio{font-size:15px;margin:18px 0 0;max-width:70ch;padding-top:14px;border-top:1px solid var(--border)}
.portfolio b{font-size:1.15em;font-variant-numeric:tabular-nums}
.stalenag{font-size:13px;color:var(--st-risk-ink);margin:8px 0 0}

/* countdown + nav + home */
.countdown{font-family:ui-monospace,Menlo,monospace;font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;margin:8px 0}
.navbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.navbar .primary{margin-left:auto}
.gatewhy{color:var(--st-risk-ink);font-size:13px}
#savedlist{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.savedrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.savedrow .stitle{flex:1;font:inherit;font-weight:600;text-align:left;color:var(--ink);cursor:pointer;
  overflow-wrap:anywhere;border:0;background:none;padding:8px 0;min-height:44px}
.savedrow .smeta{color:var(--muted);font-size:12.5px}
.savedrow .sdel{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:0;background:var(--card);color:var(--muted);cursor:pointer}
.savedempty{color:var(--muted);font-size:14px}
.deleteundo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;
  padding:10px 12px;border:1px solid var(--border);background:var(--bg);font-size:13.5px}
.deleteundo[hidden]{display:none}
.importstrip{display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);background:var(--card)}
.importstrip[hidden]{display:none}
.importstrip p{margin:0;font-size:13.5px;color:var(--muted)}
.importstrip strong{color:var(--ink)}
.importactions{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.sr-status{position:fixed;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0}

footer a{color:var(--muted)} footer a:hover{color:var(--accent-ink)}

/* board columns step down 3→2→1 (never pan): 2-up in the mid band so cols
   don't cram in the wider frame, 1-up on phones */
@media (max-width:960px){
  .board{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .board{grid-template-columns:1fr;gap:20px}
  .bcolhint{min-height:0}
}
@media (max-width:560px){
  .scrow,.acitem{gap:8px}
  .register{min-width:520px}
  /* toolbar stays one row: segments fill the width, Undo shrinks to its glyph */
  .toolbar .viewtoggle{flex:1 0 100%;display:flex;margin-right:0;order:-1}
  .viewtoggle .vtseg{flex:1;padding:6px 8px;justify-content:center}
  .ulabel{display:none}
  #undo{min-width:44px;display:inline-flex;align-items:center;justify-content:center}
  /* action row stacks: the mitigation gets its own full-width row, owner + × below */
  .acitem input[data-action="text"]{flex-basis:100%}
  .acitem input[data-action="owner"]{flex:1 1 auto}
}
@media (pointer:coarse){
  .btn,.lexbtn{min-height:44px;display:inline-flex;align-items:center}
  .phaserail button{min-height:44px}
  .bcdel{width:44px;height:44px;font-size:20px}
  input[type=number]{min-height:44px}
  .badd{min-height:44px}
}

/* Phone edge system — "16px prose / 10px surface" (Camp A, assets/workspace.css):
   the reading gutter lives on the base .wrap (unconditional — prose sat flush
   through the 640→max-width tablet band too); ≤640 cards full-bleed as native
   sheets (side borders + radius dropped, top/bottom hairlines kept). */
@media (max-width:640px){
  .card{margin-inline:-16px;border-inline:none;border-radius:0;padding-inline:12px}
  .importstrip{align-items:stretch;flex-direction:column;margin-inline:-16px;padding-inline:16px}
  .importactions .btn{flex:1;justify-content:center}
}
