: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:700;letter-spacing:-.01em}h2{font-size:calc(var(--fs) * 1.35);font-weight:600}.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}.topbar .btn--quiet{min-height:36px;padding:0 12px}.topbar .btn--icon{width:36px;min-height:36px}.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:600;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%}}.save-notice{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:var(--ink);color:#fff;font-size:var(--fs-sm);box-shadow:0 4px 16px #0003}.save-notice[hidden]{display:none}.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:700;letter-spacing:-.01em;white-space:nowrap}.logo--hero{gap:14px}.logo--hero i{width:48px;height:48px;border-radius:14px;font-size:22px}.logo--hero b{font-size:28px;letter-spacing:-.03em}.grow{flex-grow:1}.auth{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,440px);height:100%}.auth__hero{position:relative;min-height:0;overflow:hidden;background:#ebe4dc;display:flex;flex-direction:column;justify-content:space-between;padding:36px 40px 40px}.auth__photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:52% 12%;display:block}.auth__veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#fbf8f5eb,#fbf8f547 28%,#fbf8f51f 55%,#fbf8f5c7),linear-gradient(90deg,rgba(251,248,245,.55) 0%,transparent 45%);pointer-events:none}.auth__brand{position:relative;z-index:1;margin:0;font-size:inherit;font-weight:inherit;letter-spacing:inherit}.auth__tagline{position:relative;z-index:1;margin:auto 0 0;max-width:22ch;color:var(--ink);font-size:clamp(22px,2.6vw,30px);font-weight:600;letter-spacing:-.02em;line-height:1.25}.auth__panel{display:grid;place-items:center;padding:36px 32px;background:var(--panel);border-left:1px solid var(--line)}.auth__form{width:min(360px,100%)}.auth__form h2{font-size:26px;font-weight:700;letter-spacing:-.02em}.auth__lead{margin:8px 0 0;color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.auth__submit{width:100%;margin-top:22px;justify-content:center}.auth__error{margin:12px 0 0;min-height:1.4em;font-size:var(--fs-sm);color:var(--warn)}.auth__note{margin:18px 0 0;font-size:12.5px;color:var(--dim);line-height:1.55}.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:600;box-shadow:0 1px 2px #281e180f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 15px;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;text-decoration:none;transition:border-color .12s,background .12s,color .12s,box-shadow .12s}.btn:hover{border-color:var(--line-strong);color:var(--ink)}.btn--primary{color:#fff;background:var(--accent);border-color:transparent;font-weight:600;font-size:var(--fs);min-height:calc(var(--tap) + 2px);padding:0 18px}.btn--primary:hover{background:var(--accent-ink);color:#fff}.btn[disabled],.btn[disabled]:hover{color:var(--faint);background:#f3ede7;border-color:var(--line);cursor:default}.btn--quiet{min-height:var(--tap-sm);padding:0 12px;font-size:var(--fs-xs);font-weight:500;color:var(--muted);background:transparent;border-color:transparent}.btn--quiet:hover{color:var(--ink);background:var(--panel-sunk);border-color:transparent}.btn--icon{width:var(--tap-sm);min-height:var(--tap-sm);padding:0;font-size:14px;font-weight:600;color:var(--muted);background:transparent;border-color:transparent}.btn--icon:hover{color:var(--ink);background:var(--panel-sunk)}.btn--soft{min-height:34px;padding:0 12px;font-size:var(--fs-xs);font-weight:500;color:var(--muted);background:var(--panel-sunk);border-color:transparent;border-radius:999px}.btn--soft:hover{color:var(--ink);background:#ebe4dc}.btn--soft.is-on{color:var(--accent-ink);background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-line);font-weight:600}.btn--mini{min-height:28px;padding:0 10px;font-size:11px;font-weight:500;color:var(--muted);background:transparent;border-color:transparent}.btn--mini:hover{color:var(--ink);background:var(--panel-sunk);border-color:transparent}.btn-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.list-card{padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);transition:border-color .12s,background .12s}.list-card.is-on{border-color:var(--accent-line);background:var(--accent-bg)}.list-card__hit{all:unset;cursor:pointer;display:block;width:100%;font:inherit;color:inherit}.list-card__title{font-weight:600;font-size:var(--fs-sm);line-height:1.3;color:var(--ink)}.list-card__meta{font-size:11px;color:var(--dim);margin-top:4px;line-height:1.35}.list-card__note{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:8px;line-height:1.4;max-height:3.2em;overflow:hidden}.list-card__note--full{max-height:none;white-space:pre-wrap}.pro-aside-head,.pro-section-head{display:flex;align-items:center;gap:10px}.pro-section-head h2{margin:0;font-size:calc(var(--fs) + 2px)}.pro-start-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pro-bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.cab-nav{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}.cab-nav a{padding:10px 12px;border-radius:var(--r);text-decoration:none;color:var(--ink-soft);transition:background .12s,color .12s}.cab-nav a:hover{background:var(--panel-sunk);color:var(--ink)}.cab-nav a.is-on{color:var(--accent-ink);background:var(--accent-bg);font-weight:600}.cab-user{display:flex;align-items:center;gap:11px;padding:12px;background:var(--panel-sunk);border-radius:var(--r)}.cab-user__avatar{width:38px;height:38px;border-radius:50%;background:#e8dfd6;display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--muted);flex-shrink:0}.steps-pro a{gap:5px;padding:0 8px;min-height:32px;font-size:11.5px;color:var(--muted)}.steps-pro a[aria-current=true]{color:var(--ink)}.steps-pro a i{width:17px;height:17px;font-size:10px;background:transparent;color:var(--dim);box-shadow:inset 0 0 0 1px var(--line-strong)}.steps-pro a[aria-current=true] i{background:var(--accent);color:#fff;box-shadow:none}.pick{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:11px 13px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);transition:border-color .12s,box-shadow .12s}.pick:hover{border-color:var(--line-strong)}.pick.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pick__title{font-weight:600;font-size:var(--fs-sm);line-height:1.25}.pick__meta{font-size:var(--fs-xs);color:var(--dim);line-height:1.3}.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:0;border-radius:999px;line-height:1.3}.chip--ok{color:var(--ok-ink);background:var(--ok-bg)}.chip--warn{color:var(--warn);background:var(--accent-bg)}.label{font-size:10.5px;font-weight:600;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:600}.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}.auth{grid-template-columns:1fr!important;min-height:100dvh}.auth__hero{min-height:46vh;padding:24px 22px 28px}.auth__panel{border-left:0;border-top:1px solid var(--line);padding:28px 22px 36px;place-items:start center}.logo--hero b{font-size:24px}.auth__tagline{font-size:22px;max-width:none}.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}.topbar .steps-pro{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;margin-left:0!important}.topbar .steps-pro a span.step-title{display:none}.stephint{padding:8px 14px}.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 main div[style*="minmax(120px"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}.app .card{padding:14px 16px}.app input[type=number]{width:92px!important}.app main div[style*="display: flex"]{flex-wrap:wrap}}.model-thumb{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 20%,#fffdf9 0%,transparent 55%),linear-gradient(165deg,#faf6f1,#f0e8df);overflow:hidden}.model-thumb--photo{display:block;background:transparent}.model-thumb__img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}.card.model-preview{padding:0;overflow:hidden;aspect-ratio:3 / 4;width:min(100%,calc(min(56vh,520px)*.75));height:auto;flex:0 0 auto;align-self:center;margin-inline:auto;background:transparent;border:0;box-shadow:none;border-radius:var(--r-xl)}.card.model-preview .model-thumb{width:100%;height:100%;min-height:0;background:transparent}.card.model-preview .model-thumb__img{object-fit:cover;object-position:center 40%}.model-thumb__svg{width:88%;height:88%;max-width:100%;max-height:100%;display:block}.model-thumb--pattern .model-thumb__svg{width:92%;height:92%;filter:drop-shadow(0 1px 0 rgba(47,43,39,.04))}.model-card{display:flex;flex-direction:column;align-items:stretch;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0;margin:0;overflow:hidden;text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--panel);font:inherit;color:inherit;line-height:0;transition:border-color .15s,box-shadow .15s}.model-card__title,.model-card .meta,.model-card .tags{line-height:1.35}.model-card:hover{border-color:var(--line-strong)}.model-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.model-card__art{aspect-ratio:3 / 4;height:auto;border-bottom:0}.model-card__title{padding:11px 13px 12px;font-weight:600;font-size:var(--fs-sm);line-height:1.35;color:var(--ink)}.model-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:0}.model-card__body .model-card__title{padding:0;margin:0}.model-card__meta{margin:8px 0 0;font-size:var(--fs-sm);color:var(--dim);line-height:1.35}.model-card__tags{margin:12px 0 0;display:flex;gap:6px;flex-wrap:wrap}.toast-host{position:fixed;right:16px;bottom:16px;z-index:1100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{max-width:320px;padding:10px 14px;border-radius:var(--r);font-size:var(--fs-sm);background:var(--ink);color:#fff;box-shadow:0 4px 16px #0000002e;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}.toast--on{opacity:1;transform:none}.toast--warn{background:var(--warn)}.toast--ok{background:var(--ok-ink)}.handle{fill:var(--panel);stroke:var(--accent);stroke-width:1.6;cursor:grab;pointer-events:all}.handle--active{fill:var(--accent);stroke:var(--accent-ink);cursor:grabbing}.handle--internal{stroke:var(--ok)}.cut-preview{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-dasharray:6 4;pointer-events:none}.stage-wait{padding:12px 14px;border-radius:var(--r);border:1px solid var(--accent-line);background:var(--accent-bg);color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.55}.stage-wait b{color:var(--ink)}.stage-wait ul{margin:8px 0 0;padding-left:18px}dialog.feedback{border:0;padding:0;background:transparent}dialog.feedback::backdrop{background:#281e1873}dialog.feedback textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink)}b,strong{font-weight:600}
