:root{--ink: #11201c;--ink-soft: #3a4f48;--paper: #f4f1e8;--paper-2: #ebe6d6;--card: #fbfaf4;--line: #d8d2bf;--line-soft: #e6e1d0;--forest: #1f4b3f;--forest-2: #2d6450;--moss: #5b7a4f;--gold: #b8893a;--gold-soft: #d9b876;--clay: #b5603e;--rust: #9c4521;--sky: #3d6b82;--plum: #6a4a6e;--shadow: 0 1px 2px rgba(17,32,28,.06), 0 8px 24px rgba(17,32,28,.07);--shadow-lg: 0 4px 12px rgba(17,32,28,.1), 0 24px 48px rgba(17,32,28,.12);--r: 14px;--r-sm: 9px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper)}#root{font-family:Archivo,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 85% -10%,rgba(184,137,58,.1),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(31,75,63,.1),transparent 55%),var(--paper);min-height:100vh;-webkit-font-smoothing:antialiased}.wrap{max-width:1360px;margin:0 auto;padding:0 28px 80px}.mast{position:relative;padding:38px 0 26px;border-bottom:1.5px solid var(--ink);margin-bottom:4px}.mast .kicker{font:600 11px/1 JetBrains Mono,monospace;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}.mast h1{font:600 clamp(30px,4.6vw,54px)/.98 "Fraunces",serif;letter-spacing:-.02em;color:var(--ink);max-width:16ch}.mast h1 em{font-style:italic;color:var(--forest)}.mast .sub{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px;font:500 12.5px/1.4 Archivo;color:var(--ink-soft)}.mast .sub b{color:var(--ink);font-weight:700}.mast .seal{position:absolute;top:34px;right:0;text-align:right;font:500 11px/1.5 JetBrains Mono,monospace;color:var(--ink-soft);border-left:2px solid var(--gold);padding-left:14px}.mast .seal b{display:block;font-family:Fraunces,serif;font-size:15px;color:var(--ink);font-weight:600}@media (max-width: 720px){.mast .seal{position:static;text-align:left;border-left:0;border-top:2px solid var(--gold);padding:12px 0 0;margin-top:18px}}nav.tabs{position:sticky;top:0;z-index:40;display:flex;gap:2px;flex-wrap:wrap;padding:12px 0;margin-bottom:26px;background:linear-gradient(var(--paper) 72%,rgba(244,241,232,0));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}nav.tabs button{font:600 12px/1 Archivo;letter-spacing:.01em;color:var(--ink-soft);background:transparent;border:1.5px solid transparent;border-radius:999px;padding:9px 15px;cursor:pointer;transition:all .18s ease;display:inline-flex;align-items:center;gap:7px}nav.tabs button .ix{font:600 10px/1 JetBrains Mono,monospace;color:var(--gold)}nav.tabs button:hover{background:var(--paper-2);color:var(--ink)}nav.tabs button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}nav.tabs button.on .ix{color:var(--gold-soft)}.sec-head{margin-bottom:22px}.sec-head .eyebrow{font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}.sec-head h2{font:600 clamp(24px,3vw,34px)/1.02 "Fraunces",serif;letter-spacing:-.015em;color:var(--ink)}.sec-head p{margin-top:9px;max-width:76ch;color:var(--ink-soft);font-size:14px;line-height:1.55}.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (max-width: 980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 620px){.g2,.g3,.g4{grid-template-columns:1fr}}.kpi{padding:18px 18px 16px;position:relative;overflow:hidden}.kpi .lab{font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.kpi .val{font:600 34px/1 Fraunces,serif;color:var(--ink);margin:12px 0 4px;letter-spacing:-.02em}.kpi .note{font-size:11.5px;color:var(--ink-soft)}.kpi .accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--forest)}.kpi.gold .accent{background:var(--gold)}.kpi.clay .accent{background:var(--clay)}.kpi.sky .accent{background:var(--sky)}.bar{height:8px;background:var(--paper-2);border-radius:99px;overflow:hidden;margin-top:10px}.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--forest),var(--moss));transition:width .5s ease}.tbl-wrap{overflow-x:auto;border-radius:var(--r)}table{width:100%;border-collapse:collapse;background:var(--card);font-size:13px}thead th{text-align:left;font:600 10.5px/1.3 JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:13px 14px;border-bottom:1.5px solid var(--ink);background:var(--paper-2);white-space:nowrap;position:sticky;top:0}tbody td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.45}tbody tr:hover{background:#b8893a0d}tbody tr:last-child td{border-bottom:none}td .strong{font-weight:600;color:var(--ink)}td .muted{color:var(--ink-soft);font-size:12px}.pill{display:inline-flex;align-items:center;gap:5px;font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.04em;padding:5px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.p-done{background:#e3efe6;color:#1f4b3f;border-color:#bcd9c4}.p-prog{background:#fbf0d9;color:#8a6516;border-color:#ecd49a}.p-todo{background:#ece8da;color:#5b5640;border-color:#d8d2bf}.p-block,.p-hi{background:#f6ddd2;color:#9c4521;border-color:#e6bda9}.p-med{background:#fbf0d9;color:#8a6516;border-color:#ecd49a}.p-lo{background:#e3efe6;color:#1f4b3f;border-color:#bcd9c4}.p-crit{background:#9c4521;color:#fbeee6;border-color:#9c4521}.dot{width:7px;height:7px;border-radius:99px;display:inline-block;background:currentColor}.statussel{cursor:pointer;-webkit-user-select:none;user-select:none}.statussel:hover{filter:brightness(.97)}.statussel.disabled{cursor:not-allowed;opacity:.8}.phase{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:18px;border-bottom:1px solid var(--line-soft)}.phase:last-child{border-bottom:none}.phase .num{font:600 22px/1 Fraunces,serif;color:var(--paper);background:var(--forest);width:48px;height:48px;border-radius:12px;display:grid;place-items:center;box-shadow:var(--shadow)}.phase .num.alt{background:var(--gold)}.phase .num.alt2{background:var(--clay)}.phase .num.alt3{background:var(--sky)}.phase h4{font:600 16px/1.2 Fraunces,serif;color:var(--ink);margin-bottom:3px}.phase .when{font:600 11px/1 JetBrains Mono,monospace;color:var(--gold);letter-spacing:.06em}.phase ul{list-style:none;margin-top:10px;display:flex;flex-direction:column;gap:6px}.phase li{font-size:13px;color:var(--ink-soft);padding-left:16px;position:relative;line-height:1.4}.phase li:before{content:"›";position:absolute;left:0;color:var(--gold);font-weight:700}.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}.flow .step{background:var(--paper-2);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;min-width:120px;font-size:12px;line-height:1.3;position:relative;flex:1}.flow .step .t{font:600 10px/1 JetBrains Mono,monospace;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;display:block;margin-bottom:5px}.flow .step.manual{border-style:dashed;border-color:var(--clay);background:#f9e9e1}.flow .arrow{display:grid;place-items:center;padding:0 6px;color:var(--gold);font-weight:700;font-size:18px}.flow.future .step{background:#e6efe9;border-color:#bcd9c4}.flow.future .step.auto{background:#dfecda;border-color:var(--moss)}.panel{padding:18px 20px}.panel h3{font:600 17px/1.2 Fraunces,serif;margin-bottom:4px;color:var(--ink)}.panel .lead{color:var(--ink-soft);font-size:13px;margin-bottom:14px;line-height:1.5}.matrix-best{background:#e3efe6!important}.matrix-best td:first-child .strong:after{content:" ★";color:var(--gold)}.ck{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line-soft)}.ck:last-child{border-bottom:none}.ck input{width:18px;height:18px;margin-top:1px;accent-color:var(--forest);cursor:pointer;flex-shrink:0}.ck label{font-size:13.5px;line-height:1.45;cursor:pointer}.ck.done label{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--gold)}.tag{font:600 10px/1 JetBrains Mono,monospace;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-soft);margin-bottom:14px;align-items:center}.legend .pill{font-size:10px;padding:4px 8px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.toolbar .right{display:flex;gap:8px;align-items:center}.btn{font:600 11.5px/1 Archivo;padding:8px 13px;border-radius:8px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;transition:.15s}.btn:hover{background:var(--paper-2)}.btn.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.savestate{font:600 10.5px/1 JetBrains Mono,monospace;color:var(--moss);display:flex;align-items:center;gap:6px}.savestate.err{color:var(--rust)}.footer{margin-top:50px;padding-top:22px;border-top:1.5px solid var(--line);font-size:12px;color:var(--ink-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.miniheat{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.heatcell{padding:13px;border-radius:10px;border:1.5px solid var(--line);background:var(--card)}.heatcell .hl{font:600 10px/1 JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.heatcell .hv{font:600 15px/1.1 Fraunces,serif;margin-top:6px;color:var(--ink)}.heatcell .hb{height:6px;border-radius:99px;margin-top:8px;background:var(--paper-2);overflow:hidden}.heatcell .hb>i{display:block;height:100%;border-radius:99px}details.acc{border:1.5px solid var(--line);border-radius:var(--r-sm);margin-bottom:10px;background:var(--card);overflow:hidden}details.acc summary{cursor:pointer;padding:14px 16px;font:600 14px/1.2 Archivo;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}details.acc summary::-webkit-details-marker{display:none}details.acc summary:hover{background:var(--paper-2)}details.acc summary .chev{transition:.2s;color:var(--gold)}details.acc[open] summary .chev{transform:rotate(90deg)}details.acc .body{padding:0 16px 16px;border-top:1px solid var(--line-soft)}.note-edit{width:100%;min-height:70px;border:1.5px solid var(--line);border-radius:8px;padding:10px;font:400 13px/1.5 Archivo;color:var(--ink);background:var(--paper);resize:vertical}.note-edit:focus{outline:none;border-color:var(--gold)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:440px;padding:36px 32px}.login-card .kicker{font:600 11px/1 JetBrains Mono,monospace;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}.login-card h1{font:600 28px/1.05 Fraunces,serif;letter-spacing:-.02em;margin-bottom:6px}.login-card p.lead{color:var(--ink-soft);font-size:13px;margin-bottom:22px;line-height:1.5}.login-card label{display:block;font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 6px}.login-card input{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;font:500 14px Archivo;background:var(--paper);color:var(--ink)}.login-card input:focus{outline:none;border-color:var(--gold)}.login-card .btn.dark{width:100%;margin-top:18px;padding:12px;font-size:13px}.login-card .err{color:var(--rust);font-size:12.5px;margin-top:10px}.login-card .ok{color:var(--moss);font-size:12.5px;margin-top:10px}.login-card .foot{margin-top:22px;font-size:11px;color:var(--ink-soft);border-top:1px solid var(--line-soft);padding-top:14px}.userchip{display:flex;align-items:center;gap:10px;font:500 12px Archivo;color:var(--ink-soft)}.userchip .who{color:var(--ink);font-weight:600}.userchip .role{font:600 9.5px/1 JetBrains Mono,monospace;letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;border-radius:99px;background:var(--paper-2);color:var(--ink-soft)}.userchip .role.admin{background:var(--ink);color:var(--paper)}.userchip .role.editor{background:#e3efe6;color:var(--forest)}.userchip .role.viewer{background:#fbf0d9;color:#8a6516}.loading{min-height:100vh;display:grid;place-items:center;color:var(--ink-soft);font:500 13px JetBrains Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.loading .dot{animation:blink 1.2s infinite;background:var(--gold)}@keyframes blink{50%{opacity:.3}}
