:root{--bg:#f3f6f8;--surface:#ffffff;--ink:#131a20;--ink-soft:#4a5763;--line:#d6dee4;--accent:#0f766e;--accent-soft:#e0efec;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"Cascadia Code",Consolas,monospace}@media (prefers-color-scheme:dark){:root{--bg:#0c1116;--surface:#121a21;--ink:#e7edf1;--ink-soft:#9fadb8;--line:#25313b;--accent:#4cb3a9;--accent-soft:#12292a}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit;text-decoration:none}.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.brand{font-weight:700;letter-spacing:-.02em;font-size:1.05rem;padding:4px 10px 16px}.brand small{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.sidebar nav{display:flex;flex-direction:column;gap:2px}.navlink{display:block;padding:8px 10px;border-radius:8px;font-size:.92rem;color:var(--ink-soft)}.navlink:hover{background:var(--accent-soft);color:var(--ink)}.navlink.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.spacer{flex:1 1}.topbar{justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);background:var(--surface)}.topbar,.userbox{display:flex;align-items:center}.userbox{gap:14px;font-size:.88rem}.rolechip{font-family:var(--mono);font-size:.68rem;font-weight:600;padding:.2em .6em;border-radius:6px;background:var(--accent-soft);color:var(--accent)}.btn{font:inherit;font-size:.85rem;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:6px 12px;border-radius:8px}.btn:hover{color:var(--accent)}.btn.primary,.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#fff}main{padding:32px 28px}h1{font-size:1.5rem;letter-spacing:-.02em;margin:0 0 .3em}.muted{color:var(--ink-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px;max-width:720px}.kv{display:grid;grid-template-columns:140px 1fr;grid-gap:6px 14px;gap:6px 14px;font-size:.9rem;margin-top:8px}.kv dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.kv dt,code{font-family:var(--mono)}code{font-size:.85em;background:var(--accent-soft);padding:.1em .4em;border-radius:4px}.login{min-height:100vh;display:grid;place-items:center}.login .card{text-align:center}.status-ok{color:#2f7d52;font-weight:600}.status-bad{color:#b23b3b;font-weight:600}.subtabs{display:flex;gap:4px;margin:0 0 20px;border-bottom:1px solid var(--line)}.subtab{padding:8px 14px;font-size:.9rem;color:var(--ink-soft);border-bottom:2px solid transparent;margin-bottom:-1px}.subtab:hover{color:var(--ink)}.subtab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}table.grid{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}table.grid th{text-align:left;font:600 .68rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:10px 12px;background:var(--bg)}table.grid td,table.grid th{border-bottom:1px solid var(--line)}table.grid td{padding:9px 12px;vertical-align:top}table.grid tr:last-child td{border-bottom:none}table.grid tr.clickable:hover td{background:var(--accent-soft);cursor:pointer}.mono{font-family:var(--mono);font-size:.82em}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.toolbar .grow{flex:1 1}input[type=file],select{font:inherit;font-size:.9rem;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.err{color:#b23b3b;font-size:.88rem}.pill{font:600 .68rem var(--mono);padding:.15em .5em;border-radius:6px;background:var(--accent-soft);color:var(--accent)}.legend{display:flex;gap:16px;font-size:.8rem;color:var(--ink-soft);margin:10px 2px 0}.legend .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}.tasklayout{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px}@media (min-width:1000px){.tasklayout{grid-template-columns:1fr 360px;align-items:start}}.taskpanel{position:-webkit-sticky;position:sticky;top:20px}.form{gap:12px;margin-bottom:16px}.field,.form{display:flex;flex-direction:column}.field{gap:5px}.field-inline{flex-direction:row;align-items:center;gap:8px}.field-label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.req{color:#b23b3b}.form input[type=date],.form input[type=number],.form input[type=text],.form select,.form textarea{font:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}.form textarea{resize:vertical}.steplist{display:flex;flex-direction:column;gap:6px}.step-item{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.step-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;cursor:pointer;background:none;border:none;color:var(--ink);padding:11px 14px}.step-row.active,.step-row:hover{background:var(--accent-soft)}.step-badge{font:600 .62rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);background:var(--bg);border:1px solid var(--line);padding:.2em .5em;border-radius:5px;white-space:nowrap}.step-name{flex:1 1;font-weight:500}.step-caret{color:var(--ink-soft)}.step-doc{padding:4px 16px 16px;border-top:1px solid var(--line)}.markdown{font-size:.92rem}.markdown h2{font-size:1.15rem;margin:.8em 0 .3em}.markdown h3{font-size:1rem;margin:1em 0 .3em}.markdown p{margin:.5em 0}.markdown ol,.markdown ul{margin:.5em 0;padding-left:1.4em}.markdown li{margin:.25em 0}.markdown code{font-family:var(--mono);font-size:.85em;background:var(--accent-soft);padding:.1em .4em;border-radius:4px}.markdown blockquote{margin:.6em 0;padding:.3em 1em;border-left:3px solid var(--accent);color:var(--ink-soft);background:var(--bg);border-radius:0 8px 8px 0}.markdown table{border-collapse:collapse;font-size:.88rem}.markdown td,.markdown th{border:1px solid var(--line);padding:6px 10px}.markdown a{color:var(--accent)}