:root{--bg: #f5f6f8;--surface: #ffffff;--subtle: #f0f2f5;--ink: #181b22;--muted: #687082;--faint: #9aa1af;--line: #e4e7ec;--accent: #2e4fd8;--accent-ink: #ffffff;--accent-soft: #eaeefc;--err: #c0362c;--err-soft: #fdeeec;--warn: #a15f06;--warn-soft: #fdf4e3;--ok: #1d7a4f;--ok-soft: #e6f5ed;--font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--shadow: 0 1px 2px rgba(24, 27, 34, .04), 0 4px 16px rgba(24, 27, 34, .05);color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f1116;--surface: #171a21;--subtle: #1e222b;--ink: #eceef2;--muted: #9ba2b0;--faint: #6c7383;--line: #2a2f3a;--accent: #8ea2ff;--accent-ink: #0f1116;--accent-soft: #232b4a;--err: #ff8f84;--err-soft: #3a1f1d;--warn: #f2bb66;--warn-soft: #362b18;--ok: #72d3a2;--ok-soft: #173326;--shadow: none;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;letter-spacing:-.01em}h1{font-size:30px;line-height:1.2;font-weight:700}h2{font-size:22px;line-height:1.25;font-weight:700}h3{font-size:15px;font-weight:700;margin-bottom:8px}p{margin:0 0 10px;max-width:72ch}.muted{color:var(--muted)}.small{font-size:13px}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}.top-inner{max-width:1360px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 24px}.brand{border:0;background:none;padding:0;cursor:pointer;display:flex;align-items:center;gap:10px;margin-right:auto;font-weight:700;font-size:16px}.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:14px}.link{border:0;background:none;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:600}.link:hover{color:var(--ink);background:var(--subtle)}.link[aria-current=page]{color:var(--ink)}.seg{display:inline-flex;background:var(--subtle);border-radius:10px;padding:3px}.seg button{border:0;background:transparent;padding:5px 12px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:600;font-size:13.5px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}main{max-width:1360px;margin:0 auto;padding:28px 24px 64px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--surface);padding:9px 16px;border-radius:10px;cursor:pointer;font-weight:600;white-space:nowrap}.btn:hover{border-color:var(--faint)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.07)}.btn.big{padding:12px 22px;font-size:15.5px}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.textbtn{border:0;background:none;padding:0;color:var(--accent);font-weight:600;cursor:pointer}.textbtn:hover{text-decoration:underline}.home{max-width:1040px;margin:24px auto 0}.home h1{font-size:36px;margin-bottom:8px}.home .lead{color:var(--muted);font-size:17px;margin-bottom:32px}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.choice{display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,transform .15s}.choice:hover{border-color:var(--accent);transform:translateY(-2px)}.choice .icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:6px}.choice strong{font-size:18px}.choice span{color:var(--muted);font-size:14.5px}.choice .go{margin-top:auto;padding-top:10px;color:var(--accent);font-weight:700;font-size:14px}.choice.featured{border-color:var(--accent)}.home-foot{margin-top:28px;color:var(--muted);font-size:14px}.upload{max-width:720px;margin:8px auto 0}.back{border:0;background:none;padding:0;color:var(--muted);cursor:pointer;font-weight:600;margin-bottom:18px}.back:hover{color:var(--ink)}.upload h1{margin-bottom:8px}.upload .lead{color:var(--muted);margin-bottom:24px}.drop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:44px 24px;border:1.5px dashed var(--line);border-radius:16px;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop strong{font-size:17px}.drop .btn{margin-top:12px}.upload-foot{margin-top:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:14px}.pagehead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.pagehead .back{margin-bottom:6px;display:block}.pagehead .titles{margin-right:auto}.filechip{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;font-size:14px;min-width:0}.filechip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.filechip select{border:0;background:none;font-weight:700;max-width:340px}.work{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.rail{position:sticky;top:76px}.rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.rail-summary{margin-bottom:8px}.node{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:0 12px;width:100%;border:0;background:transparent;text-align:left;padding:9px 12px;border-radius:12px;cursor:pointer}.node:hover{background:var(--subtle)}.node.active{background:var(--surface);box-shadow:var(--shadow),0 0 0 1px var(--line)}.dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--faint);background:var(--subtle)}.s-done .dot,.s-clean .dot{background:var(--ok-soft);color:var(--ok)}.s-input .dot,.s-warn .dot{background:var(--warn-soft);color:var(--warn)}.s-blocked .dot,.s-error .dot{background:var(--err-soft);color:var(--err)}.s-summary .dot{background:var(--accent-soft);color:var(--accent)}.node .t{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node .sub{grid-column:2;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node .metric{grid-row:1 / span 2;grid-column:3;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--muted);text-align:right}.metric .neg{color:var(--err);font-weight:700}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-head{padding:24px 28px 18px;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.panel-head .titles{flex:1;min-width:220px}.eyebrow{color:var(--muted);font-size:13px;font-weight:600;margin-bottom:2px}.panel-head .titles p{margin:4px 0 0;color:var(--muted)}.block{padding:18px 28px;border-top:1px solid var(--line)}.about summary{cursor:pointer;font-weight:600;color:var(--accent);list-style:none}.about summary::-webkit-details-marker{display:none}.about summary:before{content:"+ "}.about[open] summary:before{content:"− "}.about-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:14px}.about-body ul{margin:0;padding-left:18px}.about-body li{margin-bottom:4px}.quote{margin-top:10px;font-size:13px;color:var(--muted);border-left:2px solid var(--line);padding-left:10px}.headline{font-size:17px;font-weight:600;margin-bottom:6px}.notes{margin:0;padding-left:18px;color:var(--muted);font-size:14px}.actions{padding:16px 28px;border-top:1px solid var(--line);background:var(--subtle);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.actions .hint{color:var(--muted);font-size:14px;margin-right:auto}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}.pill.error{background:var(--err-soft);color:var(--err)}.pill.warning{background:var(--warn-soft);color:var(--warn)}.pill.info,.pill.idle{background:var(--subtle);color:var(--muted)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.sev{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;background:var(--faint)}.sev.error{background:var(--err)}.sev.warning{background:var(--warn)}.note{padding:12px 16px;border-radius:12px;background:var(--warn-soft);margin-bottom:14px}.note.error{background:var(--err-soft)}.note.ok{background:var(--ok-soft)}.verdict{padding:28px;display:flex;gap:18px;align-items:center}.verdict .big{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:26px;font-weight:700;flex:none}.verdict .big.ok{background:var(--ok-soft);color:var(--ok)}.verdict .big.error{background:var(--err-soft);color:var(--err)}.verdict .big.warning{background:var(--warn-soft);color:var(--warn)}.stagelist{list-style:none;margin:0;padding:0}.stagelist button{width:100%;display:flex;align-items:center;gap:12px;border:0;background:none;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}.stagelist li:last-child button{border-bottom:0}.stagelist button:hover .name{color:var(--accent)}.stagelist .n{width:24px;color:var(--faint);font-weight:700;font-variant-numeric:tabular-nums}.stagelist .name{flex:1;font-weight:600}.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:460px}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}th{position:sticky;top:0;background:var(--subtle);font-weight:600;color:var(--muted);font-size:12.5px;z-index:1;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--subtle)}tr.focus td{background:var(--accent-soft)}td.cell{font-family:var(--mono);font-size:12px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.hl{background:var(--err-soft);color:var(--err)}td.hl.w{background:var(--warn-soft);color:var(--warn)}td.num{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.strike{text-decoration:line-through;color:var(--muted)}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.chips button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);display:inline-flex;align-items:center}.chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.chips button[aria-pressed=true] .sev{box-shadow:0 0 0 2px var(--surface)}.chips .c{margin-left:6px;opacity:.75;font-variant-numeric:tabular-nums}.more{margin-top:14px}.more summary{cursor:pointer;font-weight:600;color:var(--accent);margin-bottom:10px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.field label,.field .lbl{font-weight:600;font-size:14px}.field .help{font-size:13px;color:var(--muted)}input[type=text],input[type=number],input[type=password],select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;max-width:100%}.field select,.field input[type=text],.field input[type=password]{width:100%}textarea{font-family:var(--mono);font-size:12.5px;min-height:120px;width:100%}.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.check input{margin-top:4px}.settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px}.guide{max-width:900px}.guide article{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;padding:24px 0;border-bottom:1px solid var(--line)}.guide .num{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700}.guide .cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:8px}.guide ul{padding-left:18px;margin:4px 0 0;font-size:14px}.progress{height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;background:var(--accent);transition:width .2s}@media (max-width: 980px){.choices,.about-body,.guide .cols,.work{grid-template-columns:minmax(0,1fr)}.rail{position:static;overflow-x:auto}.rail ol{flex-direction:row}.node{min-width:170px}.top-inner{flex-wrap:wrap;padding:10px 16px}main{padding:20px 16px 48px}.panel-head,.block,.actions{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
