:root,[data-theme=light]{--ft-bg: #F5F3EE;--ft-surface: #FEFDFB;--ft-field: #F3F0EA;--ft-line: #E6E0D5;--ft-line2: #EEE9DF;--ft-fg: #221F1A;--ft-fg2: #6A6255;--ft-fg3: #9C9484;--ft-navy: #123E6E;--ft-navy-h: #0E3358;--ft-int: #1B57A0;--ft-tint: #EBEFF5;--ft-clay: #A15733;--ft-clay-t: #F3E6DC;--ft-ok: #3B7048;--ft-ok-t: #E8F0E7;--ft-warn: #8A5E0F;--ft-warn-t: #F5EBD6;--ft-dgr: #A5382A;--ft-dgr-t: #F6E7E2;--ft-r: 12px;--ft-rs: 9px;--ft-rx: 20px;--ft-sh: 0 8px 26px rgba(60,50,30,.1);--ft-sh-sm: 0 1px 2px rgba(60,50,30,.09);--ft-ring: 0 0 0 3px rgba(18,62,110,.18)}[data-theme=dark]{--ft-bg: #1B1916;--ft-surface: #24211D;--ft-field: #201D19;--ft-line: #39342D;--ft-line2: #302B25;--ft-fg: #F0EBE2;--ft-fg2: #B4AB9C;--ft-fg3: #847C6F;--ft-navy: #2C6BB0;--ft-navy-h: #3B7AC0;--ft-int: #7CB0E5;--ft-tint: #20303F;--ft-clay: #CB8156;--ft-clay-t: #3A2A20;--ft-ok: #66AB7B;--ft-ok-t: #20302A;--ft-warn: #C79A3E;--ft-warn-t: #33291A;--ft-dgr: #DC6E60;--ft-dgr-t: #382220;--ft-sh: 0 10px 30px rgba(0,0,0,.45);--ft-sh-sm: 0 1px 2px rgba(0,0,0,.35);--ft-ring: 0 0 0 3px rgba(124,176,229,.3);color-scheme:dark}:root{--ft-font-ui: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--ft-font-serif: "Newsreader", Georgia, serif;--ft-font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ft-bg);color:var(--ft-fg);font-family:var(--ft-font-ui);font-size:14px;line-height:1.45}.wrap{max-width:980px;margin:0 auto;padding:26px 24px 90px}.hdr{display:flex;align-items:center;gap:12px;padding:13px 0 20px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--ft-font-serif)}.brand b{font-weight:600}.brand i{font-style:italic;font-weight:500;color:var(--ft-fg2)}.hdr .spacer{flex:1}.seg{display:inline-flex;gap:2px;background:var(--ft-field);border:1px solid var(--ft-line);border-radius:var(--ft-rx);padding:2px}.seg button{border:0;background:transparent;color:var(--ft-fg2);font:600 12px/1 var(--ft-font-ui);padding:6px 11px;border-radius:16px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--ft-navy);color:#fff}.iconbtn{width:32px;height:32px;border-radius:8px;border:1px solid var(--ft-line);background:var(--ft-field);color:var(--ft-fg2);cursor:pointer}@keyframes ft-indet{0%{left:-40%}to{left:100%}}@keyframes ft-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}a{color:var(--ft-int);text-decoration:none;font-weight:600}a:hover{text-decoration:underline}.ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.ic svg{width:100%;height:100%;display:block}.grid{display:grid;grid-template-columns:236px 1fr;gap:22px;align-items:start}@media(max-width:720px){.grid{grid-template-columns:1fr}.nav{position:static!important}}.nav{position:sticky;top:20px;background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:var(--ft-r);box-shadow:var(--ft-sh-sm);padding:12px 10px}.nav-title{font:700 10px/1.2 var(--ft-font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ft-fg3);margin:6px 8px 12px}.nav-btn{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;cursor:pointer;padding:9px 10px;border-radius:var(--ft-rs);background:transparent;color:var(--ft-fg2);font:500 13.5px var(--ft-font-ui)}.nav-btn:hover{background:var(--ft-field)}.nav-btn.active{background:var(--ft-tint);color:var(--ft-navy);font-weight:600}.nav-btn.active:hover{background:var(--ft-tint)}.nav-code{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;border:1px solid var(--ft-line);font:700 9px var(--ft-font-mono);color:var(--ft-fg3);flex:0 0 auto}.nav-btn .label{flex:1;min-width:0}.main{min-width:0;animation:ft-fade .22s ease}.eyebrow{font:700 10.5px/1.2 var(--ft-font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ft-fg3);margin:0 0 8px}.h1{font:600 24px/1.2 var(--ft-font-serif);letter-spacing:-.01em;margin:0 0 5px}.lead{color:var(--ft-fg2);font-size:13px;margin:0 0 18px;max-width:64ch;text-wrap:pretty}.card{background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:var(--ft-r);box-shadow:var(--ft-sh-sm);padding:18px 20px;margin:0 0 18px}.card-flush{background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:var(--ft-r);box-shadow:var(--ft-sh-sm);overflow:hidden;margin:0 0 18px}.card-label{font:700 10.5px/1.2 var(--ft-font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ft-fg3);margin:0 0 6px}.card-desc{color:var(--ft-fg2);font-size:12.5px;margin:0 0 14px}.card-title{font:600 14px var(--ft-font-serif)}.card-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--ft-line2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--ft-rs);cursor:pointer;font-family:var(--ft-font-ui)}.btn-primary{background:var(--ft-navy);color:#fff;height:44px;padding:0 20px;font:700 14px var(--ft-font-ui)}.btn-primary:hover{background:var(--ft-navy-h)}.btn-primary:disabled{background:var(--ft-line);color:var(--ft-fg3);cursor:default}.btn-secondary{background:var(--ft-surface);color:var(--ft-fg);border:1px solid var(--ft-line);height:42px;padding:0 18px;font:600 13.5px var(--ft-font-ui)}.btn-secondary:hover{border-color:var(--ft-fg3)}.btn-sm{height:40px;padding:0 16px;font:600 13.5px var(--ft-font-ui)}.btn-danger{width:38px;height:38px;border-radius:var(--ft-rs);border:1px solid var(--ft-line);background:var(--ft-field);color:var(--ft-fg2);cursor:pointer;display:grid;place-items:center}.btn-danger:hover{border-color:var(--ft-dgr);color:var(--ft-dgr)}.btn:focus-visible,.field:focus-visible,.select:focus-visible{outline:0;border-color:var(--ft-navy);box-shadow:var(--ft-ring)}.field{width:100%;background:var(--ft-field);color:var(--ft-fg);border:1px solid var(--ft-line);border-radius:var(--ft-rs);padding:9px 11px;font:400 14px var(--ft-font-ui)}.field:focus{outline:0;border-color:var(--ft-navy);box-shadow:var(--ft-ring)}.field-mono{font-family:var(--ft-font-mono);font-weight:500}.select-wrap{position:relative}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;background:var(--ft-field);color:var(--ft-fg);border:1px solid var(--ft-line);border-radius:var(--ft-rs);height:42px;padding:0 34px 0 12px;font:400 14px var(--ft-font-ui);cursor:pointer}.select:focus{outline:0;border-color:var(--ft-navy);box-shadow:var(--ft-ring)}.select-chevron{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ft-fg2);pointer-events:none}.seg2{display:inline-flex;gap:2px;background:var(--ft-field);border:1px solid var(--ft-line);border-radius:var(--ft-rx);padding:3px}.seg2 button{border:0;background:transparent;color:var(--ft-fg2);font:600 12px/1 var(--ft-font-ui);padding:6px 11px;border-radius:16px;cursor:pointer}.seg2 button.on{background:var(--ft-navy);color:#fff}.toggle{width:44px;height:26px;border-radius:var(--ft-rx);border:1px solid var(--ft-line);background:var(--ft-field);position:relative;cursor:pointer;flex:0 0 auto;transition:background .15s,border-color .15s;padding:0}.toggle.on{border-color:var(--ft-navy);background:var(--ft-navy)}.toggle .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--ft-sh-sm);transition:left .15s}.toggle.on .knob{left:20px}.radio-ring{width:18px;height:18px;border-radius:50%;border:1px solid var(--ft-line);background:var(--ft-field);flex:0 0 auto;display:grid;place-items:center;margin-top:1px}.radio-ring.on{border-color:var(--ft-navy)}.radio-dot{width:8px;height:8px;border-radius:50%;background:var(--ft-navy);display:none}.radio-ring.on .radio-dot{display:block}.radio-opt{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:14px 0;border-top:1px solid var(--ft-line2)}.radio-opt .opt-label{font:600 14px var(--ft-font-ui);color:var(--ft-fg);display:block}.radio-opt .opt-desc{color:var(--ft-fg2);font-size:12.5px}.check-opt{display:inline-flex;align-items:center;gap:9px;font:400 13.5px var(--ft-font-ui);color:var(--ft-fg);cursor:pointer}.check-opt.locked{cursor:default}.check-box{width:18px;height:18px;border-radius:5px;border:1px solid var(--ft-line);background:var(--ft-field);display:grid;place-items:center;flex:0 0 auto;color:#fff}.check-box.on{border-color:var(--ft-navy);background:var(--ft-navy)}.pill-req{font:600 9px var(--ft-font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--ft-fg3);border:1px solid var(--ft-line);border-radius:var(--ft-rx);padding:2px 7px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--ft-rx);padding:4px 10px;font:700 10px var(--ft-font-ui);text-transform:uppercase;letter-spacing:.04em}.pill-dot{width:6px;height:6px;border-radius:50%}.pill-base{background:var(--ft-tint);color:var(--ft-int);font-weight:600;padding:4px 11px}.pill-ok{background:var(--ft-ok-t);color:var(--ft-ok)}.pill-ok .pill-dot{background:var(--ft-ok)}.pill-warn{background:var(--ft-warn-t);color:var(--ft-warn)}.pill-dgr{background:var(--ft-dgr-t);color:var(--ft-dgr)}.tag-clay{font:700 10px var(--ft-font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--ft-clay);background:var(--ft-clay-t);border-radius:var(--ft-rx);padding:4px 10px;flex:0 0 auto}.thead{border-bottom:1px solid var(--ft-line2);font:700 10px var(--ft-font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--ft-fg3)}.thead>span,.trow>*{min-width:0}.trow{border-bottom:1px solid var(--ft-line2);align-items:center}.code-mono{font:700 14px var(--ft-font-mono)}.name-sub{color:var(--ft-fg2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{background:var(--ft-surface);border:1px dashed var(--ft-line);border-radius:var(--ft-r);padding:38px 24px;text-align:center}.empty-title{font:600 16px var(--ft-font-serif);margin:0 0 6px}.empty-desc{color:var(--ft-fg2);font-size:13px;margin:0 auto 18px;max-width:46ch}.stepper{display:flex;align-items:center;gap:6px;margin:0 0 16px;flex-wrap:wrap}.step{font:700 10px var(--ft-font-ui);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--ft-rx);padding:5px 11px}.step-pending{color:var(--ft-fg3);background:transparent}.step-active{color:var(--ft-navy);background:var(--ft-tint)}.step-done{color:var(--ft-ok);background:var(--ft-ok-t)}.step-error{color:var(--ft-dgr);background:var(--ft-dgr-t)}.step-arrow{color:var(--ft-fg3)}.count-big{font:800 30px var(--ft-font-ui);color:var(--ft-fg)}.stat-num{font:800 24px var(--ft-font-ui);display:block}.progress{height:10px;border-radius:var(--ft-rx);background:var(--ft-field);overflow:hidden}.progress-bar{height:100%;border-radius:var(--ft-rx);background:var(--ft-navy);transition:width .12s linear}.indet{width:60px;height:4px;border-radius:var(--ft-rx);background:var(--ft-field);overflow:hidden;position:relative;display:inline-block}.indet>span{position:absolute;top:0;height:100%;width:40%;background:var(--ft-navy);border-radius:var(--ft-rx);animation:ft-indet 1.15s ease-in-out infinite}.note-warn{display:flex;align-items:flex-start;gap:8px;background:var(--ft-warn-t);color:var(--ft-warn);border-radius:var(--ft-rs);padding:10px 12px;font-size:12.5px;max-width:56ch}.jrow{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border-bottom:1px solid var(--ft-line2)}.jrow .jtext{min-width:0;flex:1;font-size:13.5px;color:var(--ft-fg);text-wrap:pretty}.jrow .jtime{font:500 12px var(--ft-font-mono);color:var(--ft-fg3);flex:0 0 auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14110a6b;display:grid;place-items:center;z-index:60;padding:20px}.modal{width:min(440px,100%);background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:var(--ft-r);box-shadow:var(--ft-sh);padding:24px 24px 20px;animation:ft-fade .18s ease}.modal h2{font:600 19px var(--ft-font-serif);margin:0}.save-pill{display:inline-flex;align-items:center;gap:6px;font:600 11.5px var(--ft-font-ui);color:var(--ft-fg3);min-height:20px;transition:opacity .2s}.save-pill.saving{color:var(--ft-fg2)}.save-pill.saved{color:var(--ft-ok)}.save-pill.error{color:var(--ft-dgr)}.state-banner{max-width:520px;margin:40px auto;padding:28px 26px;background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:var(--ft-r);box-shadow:var(--ft-sh-sm);text-align:center}.state-banner h2{font:600 20px var(--ft-font-serif);margin:0 0 10px}.state-banner p{color:var(--ft-fg2);font-size:13.5px;margin:0 0 6px}
