/* Layout: one reading column. Sticky progress bar, status strip, decision cards by group, then the record of what is already decided. Signal-radio palette: graphite, field olive, amber. */
:root{
  --bg:#edf0f2; --panel:#ffffff; --ink:#1a222c; --mute:#566170; --line:#1a222c; --hair:#cfd6dd;
  --amber:#f2a31b; --amber-ink:#1a222c; --olive:#4d5a2c; --olive-bg:#e4ead2; --rec-bg:#dbe9f2; --rec-ink:#144a6b; --warn-bg:#fdf0d2;
  --f:system-ui,-apple-system,'Segoe UI',sans-serif; --m:ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#12171e; --panel:#1b222c; --ink:#e8ecf1; --mute:#a2aebb; --line:#6f7e92; --hair:#2d3744;
  --amber:#f2a31b; --amber-ink:#1a222c; --olive:#b5c77a; --olive-bg:#26301a; --rec-bg:#1b3345; --rec-ink:#9fd0ee; --warn-bg:#3a3118; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#12171e; --panel:#1b222c; --ink:#e8ecf1; --mute:#a2aebb; --line:#6f7e92; --hair:#2d3744;
  --amber:#f2a31b; --amber-ink:#1a222c; --olive:#b5c77a; --olive-bg:#26301a; --rec-bg:#1b3345; --rec-ink:#9fd0ee; --warn-bg:#3a3118; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f);font-weight:400;line-height:1.55;margin:0;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 64px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:30}
.wrap{max-width:860px;margin:0 auto}
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:2px solid var(--line);padding:10px 0 8px;margin-bottom:18px}
.bar .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bar b{font-weight:700}
.meter{flex:1;min-width:120px;height:10px;border:2px solid var(--line);border-radius:3px;overflow:hidden;background:var(--panel)}
.meter i{display:block;height:100%;width:0;background:var(--amber);transition:width .25s}
.jump{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.jump a{font-size:12.5px;font-weight:600;color:var(--ink);text-decoration:none;border:1.5px solid var(--line);border-radius:3px;padding:2px 10px;background:var(--panel)}
.jump a:hover,.jump a:focus-visible{background:var(--amber);color:var(--amber-ink);outline:none}
h1{font-size:30px;font-weight:700;margin:6px 0 2px;text-wrap:balance;letter-spacing:-.01em}
h2{font-size:21px;font-weight:700;margin:34px 0 4px;text-wrap:balance}
h2 small{font-size:13px;font-weight:500;color:var(--mute);margin-left:6px}
.sub{color:var(--mute);margin:0 0 14px;max-width:68ch}
.status{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:14px 0 8px}
.st{border:2px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--panel);min-width:0}
.st .k{font-family:var(--m);font-size:11.5px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.st .v{font-weight:700;margin:2px 0}
.st .d{font-size:13px;color:var(--mute)}
.card{border:2px solid var(--line);border-radius:8px;background:var(--panel);padding:14px 16px;margin:12px 0;scroll-margin-top:96px}
.card.done{border-color:var(--olive)}
.card header{display:flex;gap:10px;align-items:flex-start}
.num{flex:none;min-width:42px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:4px;font-family:var(--m);font-weight:600;background:var(--amber);color:var(--amber-ink);font-size:12.5px;padding:0 4px}
.card.done .num{background:var(--olive-bg);color:var(--olive);border-color:var(--olive)}
.card h3{margin:0;font-size:17px;font-weight:700;line-height:1.3;text-wrap:balance}
.ask{margin:8px 0 10px}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{font:inherit;text-align:left;display:flex;gap:10px;align-items:flex-start;width:100%;border:2px solid var(--hair);border-radius:6px;background:var(--bg);color:var(--ink);padding:8px 10px;cursor:pointer}
.opt:hover{border-color:var(--line)}
.opt:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.opt .dot{flex:none;width:18px;height:18px;border:2px solid var(--line);border-radius:50%;margin-top:3px;background:var(--panel)}
.opt[aria-checked="true"]{border-color:var(--line);background:var(--amber);color:var(--amber-ink)}
.opt[aria-checked="true"] .dot{background:var(--amber-ink);box-shadow:inset 0 0 0 3px var(--amber)}
.opt .t{min-width:0}
.opt .t b{font-weight:600}
.opt .t span.d{display:block;font-size:13px;opacity:.85;margin-top:2px}
.star{display:inline-block;font-family:var(--m);font-weight:600;font-size:11px;border:1.5px solid var(--rec-ink);border-radius:3px;padding:0 6px;margin-left:8px;background:var(--rec-bg);color:var(--rec-ink);vertical-align:1px}
details{margin-top:10px;border-top:1px solid var(--hair);padding-top:8px}
summary{cursor:pointer;font-weight:600;font-size:14px;list-style:none;display:flex;gap:6px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::before{content:"+";display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border:1.5px solid var(--line);border-radius:4px;font-weight:700;font-family:var(--m)}
details[open] summary::before{content:"-"}
summary:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.det{font-size:14px;margin-top:8px}
.det p{margin:6px 0;max-width:70ch}
.det ul{margin:6px 0;padding-left:20px}
.det li{margin:3px 0}
.det table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.det th,.det td{border:1px solid var(--hair);padding:5px 7px;text-align:left;vertical-align:top}
.det th{background:var(--bg);font-weight:600}
.tag{font-family:var(--m);font-size:11px;font-weight:600;border:1px solid var(--line);border-radius:3px;padding:0 5px;white-space:nowrap}
.tscroll{overflow-x:auto}
.note{display:block;margin-top:10px;font-size:13px;font-weight:600;color:var(--mute)}
.note textarea{display:block;width:100%;margin-top:4px;min-height:44px;resize:vertical;font:inherit;font-size:14px;color:var(--ink);background:var(--bg);border:2px solid var(--hair);border-radius:6px;padding:6px 10px}
.note textarea:focus{outline:3px solid var(--amber);outline-offset:1px;border-color:var(--line)}
.saved{font-size:12px;font-weight:600;color:var(--olive);min-height:16px;margin-top:2px;font-family:var(--m)}
.record table{width:100%;border-collapse:collapse;font-size:13.5px}
.record th,.record td{border-bottom:1px solid var(--hair);padding:7px 8px;text-align:left;vertical-align:top}
.record th{font-family:var(--m);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute)}
.record td:first-child{font-weight:600}
.btn{font:inherit;font-weight:600;font-size:14px;border:2px solid var(--line);background:var(--amber);color:var(--amber-ink);border-radius:4px;padding:6px 16px;cursor:pointer}
.btn:focus-visible{outline:3px solid var(--rec-ink);outline-offset:2px}
.btn.ghost{background:var(--panel);color:var(--ink)}
.warn{background:var(--warn-bg);border:2px solid var(--line);border-radius:6px;padding:8px 12px;font-size:13.5px;margin:8px 0}
textarea.export{width:100%;min-height:160px;font-family:var(--m);font-size:12.5px;margin-top:8px;background:var(--panel);color:var(--ink);border:2px solid var(--line);border-radius:6px;padding:8px}
footer{margin-top:30px;color:var(--mute);font-size:13px}
code{font-family:var(--m);font-size:.9em}
.needs{border-color:var(--amber);background:var(--panel)}
.needs h3{margin:0 0 6px;font-size:17px}
.needs ol{margin:0;padding-left:22px}
.needs li{margin:6px 0}
.needs a{color:var(--ink);font-weight:600;text-underline-offset:3px}
.needs a:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.needs .why{display:block;font-size:13px;color:var(--mute);font-weight:400}
details.how{margin:10px 0 0;border-top:none;padding-top:0}
details.how ul{margin:8px 0 0;padding-left:20px;font-size:14px}
details.how li{margin:4px 0}
.mdbox{border:1px solid var(--hair);border-radius:6px;background:var(--bg);padding:6px 14px 10px;margin-top:6px}
.mdbox h4.mdh{margin:14px 0 4px;font-size:15px;font-weight:700}
.mdbox p{margin:6px 0}
.mdbox ul,.mdbox ol{margin:6px 0;padding-left:22px}
.mdbox li{margin:4px 0}
.mdbox blockquote.mdq{margin:8px 0;padding:2px 14px;border-left:4px solid var(--amber);background:var(--panel)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:10px 0}
.mgrid label{display:block;font-size:13px;font-weight:600;color:var(--mute);min-width:0}
.mgrid input{display:block;width:100%;margin-top:3px;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:2px solid var(--hair);border-radius:6px;padding:5px 8px}
.mgrid input:focus{outline:3px solid var(--amber);outline-offset:1px;border-color:var(--line)}
.mtable{width:100%;border-collapse:collapse;font-size:13.5px;margin:6px 0}
.mtable th,.mtable td{border-bottom:1px solid var(--hair);padding:6px 8px;text-align:right;white-space:nowrap}
.mtable th:first-child,.mtable td:first-child{text-align:left;white-space:normal}
.mtable th{font-family:var(--m);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute)}
.mtable td.hl{font-weight:700}
.mtable td.ok{color:var(--olive);font-weight:700}
@media (max-width:520px){h1{font-size:25px}.card{padding:12px}}
@media (prefers-reduced-motion:reduce){.meter i{transition:none}}
.bar .row .theme{margin-left:auto}
.projects{list-style:none;padding:0}
.projects li{margin:10px 0}
.projects a{display:block;border:2px solid var(--line);border-radius:8px;background:var(--panel);padding:12px 16px;color:var(--ink);font-weight:600;text-decoration:none}
.projects a:hover,.projects a:focus-visible{background:var(--amber);color:var(--amber-ink);outline:none}


.runs h3{margin:0 0 6px;font-size:17px}.runs small{font-weight:400;opacity:.75}
.runs table{width:100%;border-collapse:collapse;font-size:14px}.runs th,.runs td{padding:4px 8px;text-align:left;border-bottom:1px solid rgba(128,128,128,.3)}
.runs .st{font-weight:600}.runs .st.running{color:#1a7f37}.runs .st.failed,.runs .st.killed{color:#c0392b}.runs .st.partial,.runs .st.incomplete{color:#b36b00}

.donerow{margin:12px 0 0}
.donerow #done-msg{margin-left:8px;font-size:14px;color:var(--mute)}
.donerow .btn:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
