@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f3f1ec;--panel: #ffffff;--panel-2: #f8f7f4;--line: #e4e0d8;--line-2: #d6d1c6;--ink: #1d232b;--ink-2: #5b636e;--ink-3: #8b929b;--accent: #1f5f5b;--accent-2: #2b7a74;--accent-soft: #e3efed;--err: #c9352b;--err-soft: #fbe9e7;--warn: #b7700a;--warn-soft: #fdf1dc;--ok: #2e7d4f;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(29, 35, 43, .06), 0 4px 16px rgba(29, 35, 43, .05);--font: "Manrope Variable", "Segoe UI", system-ui, sans-serif;--mono: ui-monospace, "Cascadia Mono", Consolas, monospace;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}h2,h3{margin:0}.muted{color:var(--ink-3)}.mono{font-family:var(--mono);font-size:12px}.hint{margin:0;color:var(--ink-3);font-size:12px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:24px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);min-height:64px}.brand{display:flex;align-items:center;gap:10px}.brand strong{display:block;font-size:16px;letter-spacing:-.01em}.brand span{color:var(--ink-3);font-size:12px}.logo{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff}.logo svg{width:22px;height:22px}.order-field{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:13px}.order-field input{width:140px;padding:7px 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel-2);font-family:var(--mono);font-size:13px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}.counter-chip{padding-left:14px;border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.counter-chip span{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.counter-chip strong{font-size:18px;font-variant-numeric:tabular-nums}.btn-primary{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;padding:8px 14px;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-2)}.btn-primary:disabled{background:var(--line-2);color:var(--ink-3);cursor:not-allowed}.btn-primary svg{width:18px;height:18px}.btn-lg{padding:11px 18px;font-size:15px}.btn-ghost{border:1px solid var(--line-2);background:var(--panel);border-radius:var(--radius-sm);padding:6px 12px}.btn-ghost:hover{background:var(--panel-2)}.btn-link{border:0;background:none;color:var(--accent);padding:0;font-size:12px;font-weight:600}.layout{flex:1;min-height:0;display:grid;grid-template-columns:372px minmax(0,1fr) 330px}.sidebar,.rightbar{overflow-y:auto;overscroll-behavior:contain;min-height:0}.sidebar{background:var(--panel);border-right:1px solid var(--line)}.rightbar{padding:16px;display:flex;flex-direction:column;gap:14px}.main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:16px 16px 12px;gap:12px}.section{padding:18px 20px;border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.section-head h2{font-size:14px;font-weight:700;letter-spacing:-.005em}.section-n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.section-aside{margin-left:auto}.section-body{display:flex;flex-direction:column;gap:12px}.pattern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pattern-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:left;transition:border-color .15s,box-shadow .15s}.pattern-card:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.pattern-card.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.thumb{width:100%;height:150px;border-radius:6px;background:var(--panel-2)}.pattern-meta{display:flex;align-items:center;justify-content:space-between;gap:6px}.pattern-meta strong{font-size:13px}.pattern-desc{font-size:11px;color:var(--ink-3)}.badge{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2)}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:32px;height:32px;border-radius:50%;border:2px solid rgba(0,0,0,.08);box-shadow:inset 0 0 0 2px #ffffff40;transition:transform .12s}.swatch:hover{transform:scale(1.08)}.swatch.is-active{outline:2px solid var(--accent);outline-offset:2px}.color-name{margin-top:8px;font-weight:600;font-size:13px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-label{font-size:12px;color:var(--ink-2);font-weight:500}.field-label:empty{display:none}.field-box{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel);transition:border-color .15s,box-shadow .15s}.field-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:7px 0 7px 10px;font-variant-numeric:tabular-nums}.field-unit{padding:0 10px 0 4px;color:var(--ink-3);font-size:12px}.field-lg .field-box input{font-size:20px;font-weight:700;padding:8px 0 8px 12px}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.subhead{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--ink-2);margin-top:4px}.subhead .switch-label{font-weight:500;font-size:12px}.slider-field{display:flex;flex-direction:column;gap:2px}.slider-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.slider-head .field{width:104px;flex-shrink:0}.slider-head .field-box input{padding:4px 0 4px 8px;text-align:right}.slider-label{font-size:13px;color:var(--ink-2)}.slider-label.is-changed{color:var(--accent);font-weight:600}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:18px;background:transparent;margin:0}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--pct),var(--line) var(--pct))}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--pct),var(--line) var(--pct))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 3px #00000026}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent)}.seg-wrap{display:flex;flex-direction:column;gap:5px}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--line)}.segmented button{flex:1 1 auto;border:0;background:transparent;border-radius:6px;padding:6px 10px;color:var(--ink-2);font-weight:500;white-space:nowrap}.seg-sm button{padding:5px 8px;font-size:12px}.segmented button:hover{color:var(--ink)}.segmented button.is-active{background:var(--panel);color:var(--ink);font-weight:650;box-shadow:0 1px 2px #0000001a}.switch{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{position:relative;flex-shrink:0;width:32px;height:18px;border-radius:9px;background:var(--line-2);transition:background .15s;margin-top:1px}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(14px)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 3px var(--accent-soft)}.switch-label small{display:block;color:var(--ink-3);font-size:11px}.params{display:flex;flex-direction:column;gap:14px}.param-group{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.param-group legend{padding:0;margin-bottom:8px;font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em}.export-opts{display:flex;flex-direction:column;gap:12px}.variants-bar{display:flex;flex-wrap:wrap;gap:8px 22px}.variants{min-width:0;max-width:100%;flex:1 1 320px}.variants h3{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}.variant-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.variant{position:relative;display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:138px;padding:8px 10px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:left;transition:border-color .15s,box-shadow .15s}.variant:hover{border-color:var(--line-2)}.variant.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.variant.is-na{background:repeating-linear-gradient(135deg,var(--panel),var(--panel) 6px,var(--panel-2) 6px,var(--panel-2) 12px)}.variant.is-na .variant-label,.variant.is-na .variant-sizes{color:var(--ink-3)}.variant-mini{width:118px;height:40px;margin-bottom:4px}.mini-ok{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1}.mini-bad{fill:var(--err-soft);stroke:var(--err);stroke-width:1}.variant-label{font-weight:650;font-size:13px}.variant-sizes{font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}.variant-raw{font-size:11px;color:var(--accent);font-weight:600}.kpi-v small{font-size:12px;color:var(--ink-3);font-weight:600}.variant .tag{position:absolute;top:6px;right:6px}.stage{flex:1;min-height:0;display:flex;transition:opacity .15s}.stage.is-stale{opacity:.7}.preview{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.chips{display:flex;gap:6px}.chip{border:1px solid var(--line-2);background:var(--panel);border-radius:999px;padding:4px 12px;font-size:12px;color:var(--ink-2)}.chip.is-on{background:var(--accent-soft);border-color:transparent;color:var(--accent);font-weight:600}.preview-svg{flex:1;min-height:0;width:100%;cursor:grab;touch-action:none;background:radial-gradient(circle at 1px 1px,#e7e3da 1px,transparent 0) 0 0 / 18px 18px,#faf9f6;-webkit-user-select:none;user-select:none}.preview-svg:active{cursor:grabbing}.sheet-g{cursor:pointer}.dim-line{stroke:var(--ink-3);stroke-width:1}.dims text{font-family:var(--font);font-variant-numeric:tabular-nums}.preview-note{margin:0;padding:6px 12px;font-size:11px;color:var(--ink-3);border-top:1px solid var(--line)}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.card h3{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;margin-bottom:10px}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.kpis>div{display:flex;flex-direction:column;padding:8px;border-radius:var(--radius-sm);background:var(--panel-2)}.kpi-v{font-size:17px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi-l{font-size:11px;color:var(--ink-3)}.facts{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:0 0 8px;font-size:12.5px}.facts dt{color:var(--ink-2)}.facts dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.counts{margin-left:auto;display:flex;gap:4px}.tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:650;white-space:nowrap}.tag-err{background:var(--err-soft);color:var(--err)}.tag-warn{background:var(--warn-soft);color:var(--warn)}.issues ul,.sheet-issues,.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.issue{display:flex;gap:8px;width:100%;border:1px solid transparent;background:none;border-radius:var(--radius-sm);padding:6px 8px;text-align:left;font-size:12.5px}.issue:hover:not(:disabled){background:var(--panel-2)}.issue:disabled{cursor:default}.issue.is-active{border-color:var(--line-2);background:var(--panel-2)}.dot{flex-shrink:0;display:inline-block;width:8px;height:8px;border-radius:50%;margin-top:6px}.sev-error .dot{background:var(--err)}.sev-warning .dot{background:#e8950c}.sev-info .dot{background:var(--ink-3)}.sev-info .issue-text{color:var(--ink-2)}.tag-info{background:var(--panel-2);color:var(--ink-2)}.ok-line{margin:0;color:var(--ok);font-weight:600;font-size:13px}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.sheet-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.sheet-card:hover{border-color:var(--accent)}.sheet-thumb{width:100%;height:92px}.sheet-no{font-weight:700;font-size:12px}.sheet-size{font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.sheet-card .tag{position:absolute;top:3px;right:3px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181e73;display:grid;place-items:center;padding:24px;z-index:10;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}}.modal{width:min(1100px,100%);height:min(860px,100%);display:flex;flex-direction:column;background:var(--panel);border-radius:16px;box-shadow:0 20px 60px #00000040;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:17px}.modal-actions{display:flex;gap:8px}.modal-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 280px}.modal-svg{width:100%;height:100%;background:#f1efe9}.modal-side{padding:16px;border-left:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column;gap:10px}.modal-side h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}.legend li{display:grid;grid-template-columns:14px auto 1fr;align-items:center;gap:8px;font-size:12px}.legend .muted{text-align:right}.sw{width:14px;height:4px;border-radius:2px}.sheet-issues li{display:flex;gap:8px;font-size:12.5px}@media (max-width: 1280px){.layout{grid-template-columns:340px minmax(0,1fr)}.side-cards{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg)}.variant{min-width:122px;padding:6px 8px}.variant-mini{height:26px;margin-bottom:2px}}@media (max-width: 820px){.topbar{flex-wrap:wrap;gap:10px 16px;padding:10px 16px}.topbar-right{width:100%;justify-content:space-between}.layout{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.sidebar,.rightbar{overflow:visible;flex:none}.sidebar{border-right:0}.section{padding:16px}.main{flex:none;padding:12px 16px;height:72vh}.rightbar{padding:0 16px 16px;display:flex}.modal-body{grid-template-columns:1fr;grid-template-rows:1fr auto}.modal-side{border-left:0;border-top:1px solid var(--line);max-height:40%}.modal-back{padding:8px}}
