:root{--navy:#1f3a5f;--bg:#f5f7fa;--card:#fff;--line:#d8e0ea;--mute:#566677;--hot:#b3261e;--ok:#1e7a46;--ink:#1c2733;--soft:#e8eef6;--field:#fff;--warn:#fff4d6}
[data-theme=dark]{--navy:#8fb4e8;--bg:#10161d;--card:#18212b;--line:#2b3a4a;--mute:#9db0c4;--hot:#ff8a80;--ok:#7fd6a0;--ink:#e6edf4;--soft:#1f2c3a;--field:#111a23;--warn:#3a3213}
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Calibri,Arial,sans-serif;line-height:1.5}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:8px 12px;z-index:9}
.skip:focus{left:8px;top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #f0a500;outline-offset:2px}
header{background:#1f3a5f;color:#fff;padding:14px 22px 0}
[data-theme=dark] header{background:#0b1117;border-bottom:1px solid var(--line)}
header h1{margin:0;font-size:22px}
.sub{opacity:.85;font-size:13px;margin:2px 0 10px}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav a{color:#fff;text-decoration:none;padding:9px 14px;border-radius:8px 8px 0 0;font-size:14px;opacity:.9}
nav a.on,nav a:hover{background:var(--bg);color:var(--navy);opacity:1}
nav.sub2{background:var(--soft);margin:0 -22px;padding:6px 22px 0}
nav.sub2 a{color:var(--navy);padding:7px 12px;font-size:13px}
nav.sub2 a.on,nav.sub2 a:hover{background:var(--bg)}
main{max-width:980px;margin:0 auto;padding:20px 18px 70px}
h2{color:var(--navy);margin:8px 0 8px;font-size:22px}
h3{color:var(--navy);margin:0 0 8px;font-size:17px}
a{color:var(--navy)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0}
.card.slim{padding:8px 14px;margin:8px 0}
details.card summary{cursor:pointer}
.task{border-left:4px solid var(--navy);padding:6px 10px;margin:10px 0;background:var(--soft);border-radius:0 8px 8px 0}
.task.sm{border:0;background:none;padding:2px 0;margin:2px 0;font-size:14px}
.iff{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:13px}
.iff label{flex:1;min-width:220px;display:flex;gap:6px;align-items:center}
.row{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.row a{flex:1;min-width:220px;font-weight:600;text-decoration:none}
.row a.done{text-decoration:line-through;opacity:.6}
.pill{background:var(--soft);color:var(--navy);padding:2px 10px;border-radius:99px;font-size:12px}
.pill.hot{background:#fde7e5;color:#b3261e;font-weight:700}
.st-Done{background:#e3f4ea;color:#1e7a46}.st-Partial{background:#fff4d6;color:#7a5600}.st-Roadmap{background:#e8eef6;color:#1f3a5f}.st-Out{background:#eee;color:#555}
[data-theme=dark] .st-Done{background:#173a28}[data-theme=dark] .st-Partial{background:#3a3213;color:#f0d37a}[data-theme=dark] .st-Roadmap{background:#1f2c3a;color:#8fb4e8}[data-theme=dark] .st-Out{background:#26313c;color:#b8c4d0}
.meta,.small{color:var(--mute);font-size:13px}
.late{color:var(--hot);font-weight:600}
.warn{background:var(--warn);border-bottom:2px solid #e0a800;padding:10px 22px;font-size:14px}
.warn-inline{background:var(--warn);padding:8px 10px;border-radius:8px}
.note{background:var(--soft);padding:8px 22px;font-size:13px;border-bottom:1px solid var(--line)}
.grid7{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.day{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}
.stage{color:var(--navy);font-weight:600;margin:2px 0 4px}
textarea,input,select{width:100%;font:inherit;color:var(--ink);background:var(--field);padding:8px 10px;border:1px solid #98a8ba;border-radius:8px}
.form{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;align-items:end}
.form input,.form select{flex:1;min-width:150px}
.form label{flex:1;min-width:170px;font-size:13px;color:var(--mute)}
button,.btn{background:#1f3a5f;color:#fff;border:0;border-radius:8px;padding:9px 16px;cursor:pointer;font:inherit;text-decoration:none;display:inline-block;margin:4px 6px 0 0}
[data-theme=dark] button,[data-theme=dark] .btn{background:#3b6cb0}
button.alt,.btn.alt{background:var(--soft);color:var(--navy);border:1px solid var(--line)}
button:hover{opacity:.92}
.sec{margin:14px 0}
.prompts{margin:6px 0;padding-left:20px;color:var(--ink);font-size:14px}
.wc{font-size:12px;padding:2px 8px;border-radius:99px;margin-left:8px}
.wc.low{background:var(--warn);color:#7a5600}.wc.ok{background:#e3f4ea;color:#1e7a46}
.chk{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font-size:14px}
.chk input,.inl input{width:auto;margin-top:4px}
.inl{margin-left:12px;font-size:13px}
.rub{margin:6px 0}.ev{margin-left:26px;width:calc(100% - 26px);font-size:13px}
.ready{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:14px}
.ready.go{background:#e3f4ea;border:1px solid #9bd2b1;color:#14522f}.ready.stop{background:#fdecea;border:1px solid #efb1ac;color:#7a1c14}
.logbox{max-height:170px;overflow:auto}
.out{margin-top:12px;padding:10px 12px;background:var(--soft);border-radius:8px}
.timer{margin-top:10px}
#clock{font-size:20px;font-weight:700;color:var(--navy);margin-left:8px}
.bar{height:10px;background:var(--soft);border-radius:99px;overflow:hidden;margin:3px 0 10px}
.bar i{display:block;height:100%;background:var(--ok)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
.tbl th{background:var(--soft);color:var(--navy)}
.tbl select,.tbl input{padding:4px 6px}
.scroll{overflow:auto}
.mx td{text-align:center}.mx td:first-child{text-align:left}
.mx td.yes{background:#e3f4ea;color:#1e7a46}.mx td.part{background:#fff4d6;color:#7a5600}.mx td.no{background:var(--card);color:#8a97a5}
[data-theme=dark] .mx td.yes{background:#173a28;color:#7fd6a0}[data-theme=dark] .mx td.part{background:#3a3213;color:#f0d37a}
.stats{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 10px}.stats div{font-size:13px;color:var(--mute)}.stats b{display:block;font-size:26px;color:var(--navy)}
.flash .front{font-size:24px;font-weight:700;color:var(--navy);margin:10px 0}.flash .back{background:var(--soft);padding:10px 12px;border-radius:8px;margin:10px 0}
.flowbox{overflow:auto;padding:8px}#flow svg{max-width:none;height:auto;min-width:900px}
@media(max-width:640px){main{padding:14px 10px 60px}nav a{padding:8px 10px}.tbl{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{header,nav,button,.note,.warn{display:none}}
