:root{--bg: #fbf8f5;--panel: #ffffff;--panel-sunk: #f6f1ec;--line: #efe9e3;--line-strong: #e8e0d8;--ink: #1b1a19;--ink-soft: #4a453f;--muted: #6f6a64;--dim: #8a837b;--faint: #a9a29a;--accent: #e2603c;--accent-ink: #c24e2c;--accent-bg: #fdefe9;--accent-line: #f3d9cb;--ok: #3f6e63;--ok-ink: #2c5a4f;--ok-bg: #e7f1ed;--ok-line: #cfe3dc;--warn: #c2410c;--danger: #b3261e;--seam: #2f2b27;--cut: #e2603c;--internal: #2f2b27;--fold: #6d4aa8;--notch: #3f6e63;--grain: #3f6e63;--help: #c4bcb3;--pointmark: #c24e2c;--grid: #f0ebe4;--sans: Manrope, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px}:root[data-density=pro]{--tap: 38px;--tap-sm: 34px;--fs: 13px;--fs-sm: 12px;--fs-xs: 11px;--gap: 14px;--pad: 18px;--r: var(--r-md)}:root[data-density=easy]{--tap: 56px;--tap-sm: 48px;--fs: 15px;--fs-sm: 13.5px;--fs-xs: 12.5px;--gap: 18px;--pad: 24px;--r: var(--r-lg)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--fs) / 1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent-ink)}h1,h2,h3{margin:0;letter-spacing:-.02em}h1{font-size:calc(var(--fs) * 2.1);font-weight:800}h2{font-size:calc(var(--fs) * 1.35);font-weight:700}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{height:100%;display:flex;flex-direction:column}.app>*{min-height:0}.app main,.app aside{min-height:0}.app main{overflow:auto}.topbar{display:flex;align-items:center;gap:14px;padding:0 20px;height:calc(var(--tap) + 24px);flex-shrink:0;background:var(--panel);border-bottom:1px solid var(--line)}.topbar{flex-wrap:wrap;height:auto;min-height:calc(var(--tap) + 24px);padding-top:8px;padding-bottom:8px;row-gap:8px}.topbar .seg{flex-wrap:wrap}.card-form{display:flex;flex-direction:column;gap:6px}.card-group{border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}.card-group>summary{cursor:pointer;padding:8px 12px;font-size:var(--fs-sm);font-weight:700;list-style:none;display:flex;align-items:center;gap:8px}.card-group>summary:before{content:"";width:6px;height:6px;border-right:1.5px solid var(--dim);border-bottom:1.5px solid var(--dim);transform:rotate(-45deg);transition:transform .15s}.card-group[open]>summary:before{transform:rotate(45deg)}.card-rows{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:6px 10px;align-items:center;padding:0 12px 10px}.card-rows label{font-size:var(--fs-xs);color:var(--muted);line-height:1.3}.card-rows select,.card-rows input{width:100%;min-height:30px;padding:4px 8px;font:inherit;font-size:var(--fs-xs);border:1px solid var(--line-strong);border-radius:8px;background:var(--panel);color:var(--ink)}.card-rows input.num{font-family:var(--mono)}.card-rows .miss{border-color:var(--accent);background:var(--accent-bg)}.card-rows .card-note,.card-rows .card-why{grid-column:1 / -1;margin:0;font-size:var(--fs-xs);line-height:1.4}.card-rows .card-note{color:var(--dim)}.card-rows .card-why{color:var(--warn)}.starts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.starts .start{display:flex;flex-direction:column;gap:8px;padding:14px 16px}.starts .start p{margin:0;font-size:var(--fs-xs);color:var(--muted);line-height:1.45;flex-grow:1}.starts .start textarea{width:100%;font-size:var(--fs-xs);resize:vertical}.drop{display:grid;place-items:center;gap:6px;min-height:96px;padding:10px;border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--bg);color:var(--dim);font-size:var(--fs-xs);text-align:center;cursor:pointer}.drop.over{border-color:var(--accent);background:var(--accent-bg)}.drop img{max-width:100%;max-height:180px;border-radius:6px}.busybar{position:fixed;left:0;right:0;top:0;z-index:1000;pointer-events:none;opacity:0;transition:opacity .15s}.busybar--on{opacity:1}.busybar__track{height:3px;background:var(--accent-bg);overflow:hidden}.busybar__fill{height:100%;width:40%;background:var(--accent);border-radius:2px;animation:busybar-slide 1.1s ease-in-out infinite}.busybar__text{position:absolute;top:8px;right:14px;padding:4px 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:11.5px;box-shadow:0 2px 8px #00000026}@keyframes busybar-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.busybar__fill{animation:none;width:100%}}.steps-pro a{display:inline-flex;align-items:center;gap:6px}.steps-pro a i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:700;background:var(--line-strong);color:var(--muted)}.steps-pro a[aria-current=true] i{background:var(--accent);color:#fff}.stephint{padding:6px 20px;font-size:var(--fs-xs);color:var(--dim);background:var(--panel-sunk);border-bottom:1px solid var(--line);flex-shrink:0}.stephint a{color:var(--accent-ink)}.empty-step{margin:auto;max-width:460px;text-align:center;padding:40px 20px;color:var(--muted)}.empty-step h2{font-size:calc(var(--fs) + 3px);color:var(--ink);margin-bottom:8px}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;row-gap:8px;padding:8px 20px;flex-shrink:0;background:var(--panel);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.logo i{width:34px;height:34px;border-radius:11px;background:var(--accent);display:grid;place-items:center;color:#fff;font-weight:800;font-style:normal}.logo b{font-size:calc(var(--fs) + 1px);font-weight:800;letter-spacing:-.01em;white-space:nowrap}.grow{flex-grow:1}.seg{display:flex;gap:3px;padding:3px;background:#f3ede7;border-radius:var(--r)}.seg>*{display:inline-flex;align-items:center;min-height:var(--tap-sm);padding:0 13px;font:inherit;font-size:var(--fs-sm);color:var(--muted);background:transparent;border:0;border-radius:calc(var(--r) - 3px);cursor:pointer;text-decoration:none}.seg>[aria-current=true]{background:var(--panel);color:var(--ink);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;font:inherit;font-size:var(--fs);font-weight:600;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r);cursor:pointer;text-decoration:none}.btn:hover{border-color:var(--dim)}.btn--primary{color:#fff;background:var(--accent);border-color:transparent;font-weight:700}.btn--primary:hover{background:var(--accent-ink)}.btn[disabled]{color:var(--faint);background:#f3ede7;border-color:var(--line);cursor:default}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--pad)}.field label{display:block;font-size:var(--fs-sm);color:var(--muted)}.field input,.field select,.field textarea{width:100%;margin-top:6px;min-height:var(--tap-sm);padding:9px 12px;font:inherit;font-size:var(--fs);color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent-line);border-color:var(--accent)}.field input.num{font-family:var(--mono)}.chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;font-size:var(--fs-xs);color:var(--muted);background:var(--panel-sunk);border-radius:999px}.chip--ok{color:var(--ok-ink);background:var(--ok-bg);border:1px solid var(--ok-line)}.chip--warn{color:var(--warn);background:var(--accent-bg);border:1px solid var(--accent-line)}.label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data th{text-align:left;font-weight:600;font-size:10.5px;color:var(--faint);padding:0 8px 9px 0}table.data td{padding:8px 8px 8px 0;border-top:1px solid #f2ece6}table.data td.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}table.data td.ok{color:var(--ok)}table.data td.off{color:var(--warn);font-weight:600}table.data td .formula{font-family:var(--mono);font-size:9.5px;color:#b0a89f}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);display:grid;place-items:center;overflow:auto;padding:16px}.sheet svg{display:block;width:100%;height:100%}.sheet.dragging svg{cursor:grabbing!important}.zoombar{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:4px}.zoombar button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);font:inherit;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 1px 2px #0000000d}.zoombar button:hover{border-color:var(--accent);color:var(--accent-ink)}@media print{.topbar,aside,.statusbar,.btn{display:none!important}.sheet{border:0;padding:0}.sheet svg{width:auto;height:auto}}.statusbar{display:flex;align-items:center;gap:18px;padding:8px 16px;font-family:var(--mono);font-size:11px;color:var(--dim)}.steps{display:flex;align-items:center;gap:10px}.steps a,.steps span.step{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted);text-decoration:none}.steps i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:700;background:#f3ede7;color:var(--faint)}.steps .done i,.steps .now i{background:var(--accent);color:#fff}.steps .now{color:var(--ink);font-weight:700}.steps hr{width:44px;height:2px;border:0;background:var(--line);border-radius:2px}.steps .done+hr{background:var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:var(--fs-xs);color:var(--muted)}.legend i{display:inline-block;width:18px;border-top:2px solid;margin-right:6px;vertical-align:middle;font-style:normal}@media(max-width:900px){html,body,#app{height:auto}.app{height:auto;min-height:100%}.app>div[style*=grid],.app[style*=grid]{grid-template-columns:1fr!important}.topbar{height:auto;flex-wrap:wrap;padding:10px 14px;gap:10px}.topbar .steps{order:3;width:100%;justify-content:flex-start!important;overflow-x:auto}.app main,.app aside{overflow:visible;padding:16px!important}.app aside{border-left:0!important;border-right:0!important;border-top:1px solid var(--line)}.sheet{min-height:60vh}h1{font-size:calc(var(--fs) * 1.7)}.app main div[style*="repeat("]{grid-template-columns:1fr!important}.app .card{padding:14px 16px}.app input[type=number]{width:92px!important}.app main div[style*="display: flex"]{flex-wrap:wrap}}
