:root{--ink:#16303d;--ink-muted:#5d717d;--ink-faint:#8596a0;--surface:#fff;--page:#eef2f4;--line:#d5dee3;--line-soft:#e6ecef;--field:#fff;--field-line:#b9c7cf;--brand:#173a44;--brand-accent:#b8ee75;--accent:#1f6b5c;--accent-soft:#e3f1ec;--focus:#2f8f7a;--danger:#b3261e;--warn-bg:#fff4d9;--warn-line:#e3bf62;--code-bg:#f4f7f8;--radius:8px;--control-h:42px;color:var(--ink);background:var(--page);font-family:Segoe UI,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:var(--page);margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--brand);color:#fff;flex:none;align-items:center;gap:16px;height:44px;padding:0 20px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:linear-gradient(var(--brand-accent), var(--brand-accent)) 4px 4px / 14px 5px no-repeat, linear-gradient(var(--brand-accent), var(--brand-accent)) 4px 13px / 14px 5px no-repeat, #24505c;border-radius:5px;width:22px;height:22px}.app-header h1{letter-spacing:.2px;margin:0;font-size:17px;font-weight:700}.screen-title{color:#d4e3e7;border-left:1px solid #3b5f69;margin:0;padding-left:16px;font-size:16px}.app-header .engine-version{color:#a9c1c8;margin:0 0 0 auto;font-size:13px}.page-nav{align-self:stretch;gap:2px;display:flex}.page-nav a{color:#c4d6db;border-bottom:3px solid #0000;align-items:center;padding:0 12px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.page-nav a:hover{color:#fff}.page-nav a[aria-current=page]{color:#fff;border-bottom-color:var(--brand-accent)}.config-page{flex-direction:column;flex:1;min-height:0;display:flex}.screen-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.recipe-bar{align-items:center;gap:8px;display:flex}.language-switch{border:1px solid #4d7380;border-radius:6px;margin-left:auto;display:flex;overflow:hidden}.recipe-bar+.language-switch,.engine-version+.language-switch{margin-left:0}.language-switch button{height:28px;font:inherit;color:#d4e3e7;cursor:pointer;background:0 0;border:0;padding:0 9px;font-size:13px;font-weight:700}.language-switch button+button{border-left:1px solid #4d7380}.language-switch button[aria-pressed=true]{color:var(--brand);background:#d4e3e7}.language-switch button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:-2px}.save-state{color:#d4e3e7;white-space:nowrap;align-items:center;gap:7px;margin:0 6px 0 0;font-size:14px;display:flex}.save-state:before{content:"";background:#f0c454;border-radius:50%;width:9px;height:9px}.save-state.is-saved:before{background:var(--brand-accent)}.header-button{height:30px;font:inherit;color:#fff;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #4d7380;border-radius:6px;padding:0 12px;font-size:14px;font-weight:600}.header-button:hover{background:#24505c}.header-button.primary{color:var(--brand);background:var(--brand-accent);border-color:var(--brand-accent)}.header-button:disabled{color:#7f9ca4;cursor:default;background:0 0;border-color:#345a65}.save-notice{z-index:10;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius);align-items:flex-start;gap:10px;max-width:460px;padding:10px 12px;font-size:14px;display:flex;position:fixed;top:52px;right:16px;box-shadow:0 8px 24px #0000002e}.save-notice p{margin:0}.save-notice button{width:26px;height:26px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;font-size:18px;line-height:1}.secondary-button,.danger-button{height:36px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--field-line);white-space:nowrap;cursor:pointer;border-radius:6px;padding:0 14px;font-size:14px;font-weight:600}.danger-button{color:var(--danger);border-color:#e2b4b0}.secondary-button:disabled{color:var(--ink-faint);background:var(--page);border-color:var(--line);cursor:default}@media (width<=600px){.app-header{flex-wrap:wrap;row-gap:2px;height:auto;padding:6px 12px}}.patterns-page{flex:1;min-height:0;padding:14px 16px 16px;overflow:auto}.patterns{max-width:1400px;margin:0 auto}.patterns .panel-title h2{font-size:20px}.patterns-basis{color:var(--ink-muted);margin:0 0 12px;font-size:14px}.patterns-basis.is-standard{color:var(--ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;padding:8px 10px}.pattern-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.pattern-card{width:100%;height:100%;font:inherit;color:var(--ink);text-align:left;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#fff;flex-direction:column;gap:8px;padding:10px;display:flex}.pattern-card:hover{border-color:var(--accent)}.pattern-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.pattern-card.is-chosen{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pattern-card-head{color:var(--ink-muted);align-items:baseline;gap:8px;font-size:13px;display:flex}.pattern-card-head strong{color:var(--ink);font-size:22px}.pattern-card-stacks{margin-left:auto}.pattern-card-drawing{aspect-ratio:1;display:block}.pattern-card-drawing svg{width:100%;height:100%;display:block}.pattern-card-error{height:100%;color:var(--danger);text-align:center;place-items:center;font-size:13px;display:grid}.pattern-card-marks{flex-wrap:wrap;gap:6px;min-height:22px;display:flex}.pattern-mark{background:var(--code-bg);color:var(--ink-muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.pattern-mark.is-chosen{color:#fff;background:var(--accent)}.pattern-mark.is-no-fit,.pattern-mark.is-tube{color:#fff;background:var(--danger)}.pattern-mark.is-unvalidated{color:var(--ink);background:var(--warn-bg);box-shadow:inset 0 0 0 1px var(--warn-line)}.recipes-page{flex:1;min-height:0;padding:14px 16px 16px;overflow:auto}.recipes{max-width:1200px;margin:0 auto}.recipes .panel-title h2{font-size:20px}.recipe-filters{grid-template-columns:minmax(220px,2fr) repeat(4,minmax(120px,1fr)) auto;align-items:end;gap:12px;display:grid}.recipe-filters input[type=search]{width:100%;height:var(--control-h);font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:6px;padding:0 10px;font-size:17px}.recipe-filters .secondary-button{height:var(--control-h)}.recipes-status{color:var(--ink-muted);min-height:1.2em;margin:12px 0 6px;font-size:13px}.recipes-empty{text-align:center;color:var(--ink-muted);margin:24px 0}.recipe-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recipe-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.recipe-row.is-open{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.recipe-main{align-items:center;gap:16px;padding:10px 14px;display:flex}.recipe-info{flex:1;min-width:0}.recipe-info h3{font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;margin:0;font-size:18px;display:flex}.recipe-customer{color:var(--ink-muted);font-size:15px;font-weight:600}.recipe-badge{color:var(--accent);background:var(--accent-soft);vertical-align:middle;border-radius:20px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600}.recipe-info p{margin:3px 0 0;font-size:14px}.recipe-meta{color:var(--ink-muted);flex-wrap:wrap;gap:4px 14px;display:flex;font-size:13px!important}.recipe-flag{color:#7a5a00}.recipe-actions{gap:8px;display:flex}.revision-list{border-top:1px solid var(--line-soft);background:var(--code-bg);border-radius:0 0 var(--radius) var(--radius);margin:0;padding:6px 14px 10px;list-style:none}.revision-list li{align-items:center;gap:14px;padding:4px 0;font-size:14px;display:flex}.revision-list li+li{border-top:1px solid var(--line-soft)}.revision-list em{color:var(--accent);font-style:normal;font-weight:600}.revision-detail{color:var(--ink-muted);margin-right:auto}.revision-list .secondary-button{height:30px;font-size:13px}.revision-dialog h2{align-items:center;display:flex}.revision-body{flex:1;gap:14px;min-height:0;display:flex}.revision-inputs{flex:none;width:340px;margin:0;font-size:14px;overflow:auto}.revision-inputs div{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.revision-inputs dt{color:var(--ink-muted)}.revision-inputs dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.revision-output{flex:1;gap:14px;min-width:0;display:flex}.revision-output .qr-frame{width:min(320px,45%)}.engine-notice{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;flex-basis:100%;align-items:center;gap:12px;margin-top:8px;padding:8px 10px;font-size:14px;display:flex}.engine-notice p{flex:1;margin:0}.workspace{flex:1;grid-template-columns:minmax(300px,310px) minmax(420px,450px) minmax(360px,1fr);gap:14px;padding:14px 16px 16px;display:grid}.recipe-form{display:contents}.results{flex-direction:column;gap:14px;min-width:0;display:flex}@media (width>=1280px) and (height>=560px){.app{height:100vh}.workspace,.results{min-height:0}}@media (width<=1279px){.workspace{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px 16px 16px}.panel-title{align-items:center;gap:10px;margin-bottom:10px;display:flex}.panel-number{color:var(--ink-muted);background:var(--page);font-variant-numeric:tabular-nums;border-radius:5px;padding:4px 6px;font-size:12px;font-weight:700}.panel-title h2{margin:0;font-size:18px;font-weight:700}.panel-tag{color:var(--ink-muted);border:1px solid var(--line);border-radius:20px;margin-left:auto;padding:2px 10px;font-size:13px}.field-row{align-items:end;gap:12px;display:grid}.field-row+.field-row{margin-top:8px}.field-row.table-row{align-items:center;row-gap:2px}.field-row.table-row+.field-row.table-row{margin-top:6px}.row-label,.column-heading{font-size:14px;font-weight:600}.field-row.table-heading{margin-bottom:-2px}.row-label{white-space:nowrap}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.field{border:0;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;display:flex}.field>label,.field>legend{color:var(--ink);padding:0;font-size:14px;font-weight:600;line-height:1.25}.field>legend{margin-bottom:4px}.field input[type=text],.field select{width:100%;height:var(--control-h);font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:6px;padding:0 10px;font-size:17px}.field select{cursor:pointer;padding:0 2px 0 8px;font-size:16px}.with-unit{position:relative}.with-unit input[type=text]{font-variant-numeric:tabular-nums;padding-right:58px}.with-unit.no-unit input[type=text]{padding-right:10px}.unit{color:var(--ink-muted);background:var(--code-bg);border-left:1px solid var(--line-soft);pointer-events:none;border-radius:0 5px 5px 0;align-items:center;padding:0 10px;font-size:14px;display:flex;position:absolute;top:1px;bottom:1px;right:1px}.field [aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.field-error{color:var(--danger);font-size:13px}input:focus-visible,select:focus-visible,.robot-text-scroll:focus-visible,.segmented input:focus-visible+span,.pattern-grid input:focus-visible~.pattern-number{outline:3px solid var(--focus);outline-offset:1px}.switch{height:var(--control-h);position:relative}.switch input{appearance:none;border:1px solid var(--field-line);background:var(--field);cursor:pointer;border-radius:6px;width:100%;height:100%;margin:0}.switch input:after{content:"";background:radial-gradient(circle at 13px 13px,#fff 9px,#0000 10px),#b3c1c8;border-radius:13px;width:44px;height:26px;transition:background-position .12s;position:absolute;top:8px;right:10px}.switch input:checked{border-color:var(--accent);background:var(--accent-soft)}.switch input:checked:after{background:radial-gradient(circle at 31px 13px, #fff 9px, transparent 10px), var(--accent)}.switch-state{pointer-events:none;align-items:center;font-size:17px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;left:12px}.segmented{border:1px solid var(--field-line);border-radius:6px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.segmented label,.pattern-grid label{cursor:pointer;position:relative}.segmented input,.pattern-grid input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute}.segmented span{height:calc(var(--control-h) - 2px);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:flex}.segmented label+label span{border-left:1px solid var(--line)}.segmented input:checked+span{background:var(--accent);color:#fff}.pattern-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.pattern-grid label{border:1px solid var(--field-line);background:var(--field);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;height:42px;display:flex}.pattern-number{border-radius:4px;font-size:17px;font-weight:700;line-height:1.1}.pattern-sheet{color:var(--ink-muted);font-size:11px}.pattern-grid label:has(input:checked){background:var(--accent);border-color:var(--accent);color:#fff}.pattern-grid label:has(input:checked) .pattern-sheet{color:#d6ece5}.pattern-unvalidated{background:var(--warn-line);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 1px #fff}.pattern-grid .pattern-unvalidated{position:absolute;top:4px;right:4px}.pattern-legend{color:var(--ink-muted);align-items:center;gap:6px;margin:6px 0 0;font-size:12px;display:flex}.field-note,.qr-level-note{color:var(--ink-muted);margin:4px 0 0;font-size:12px}.qr-level-note{border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--ink);border-radius:6px;padding:6px 8px}.preview{flex-direction:column;flex:auto;min-height:0;display:flex}.placeholder{text-align:center;color:var(--ink-muted);background-color:var(--code-bg);border:1px dashed var(--line);border-radius:var(--radius);background-image:radial-gradient(#d3dde2 .8px,#0000 .8px);background-size:16px 16px;flex:1;place-items:center;padding:16px;font-size:14px;display:grid}.output{border-top:4px solid var(--brand);flex-wrap:wrap;flex:none;align-items:center;column-gap:14px;padding-top:10px;padding-bottom:10px;display:flex}.output .panel-title{margin-bottom:0}.output-bar{flex:1;justify-content:flex-end;min-width:0;display:flex}.output .warnings{flex-basis:100%}.output-status{color:var(--ink-muted);flex-basis:100%;margin:6px 0 0;font-size:14px}.output-open,.output-close,.play-button,.step-button{height:36px;font:inherit;color:#fff;background:var(--accent);white-space:nowrap;cursor:pointer;border:0;border-radius:6px;padding:0 14px;font-size:14px;font-weight:600}.output-open:disabled,.step-button:disabled{background:var(--line);color:var(--ink-faint);cursor:default}.output-close{color:var(--ink);background:var(--page);border:1px solid var(--line)}.output-dialog{width:min(1000px,100vw - 48px);height:min(720px,100vh - 48px);color:var(--ink);border:0;border-radius:10px;padding:16px;box-shadow:0 20px 60px #0000004d}.output-dialog[open]{flex-direction:column;gap:12px;display:flex}.output-dialog::backdrop{background:#16303d8c}.output-dialog-header{justify-content:space-between;align-items:center;display:flex}.output-dialog-actions{gap:8px;display:flex}.output-dialog-header h2{margin:0;font-size:18px}.output-body{flex:1;gap:14px;min-height:0;display:flex}.robot-text-frame{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);flex:1;min-width:0;min-height:260px;display:flex}.robot-text-scroll{flex:1;align-items:flex-start;display:flex;overflow:auto}.robot-text-scroll pre{margin:0;padding:8px 12px;font-family:Consolas,Cascadia Mono,Courier New,monospace;font-size:16px;line-height:1.45}.line-numbers{text-align:right;color:var(--ink-faint);background:var(--line-soft);border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;flex:none;min-height:100%;position:sticky;left:0}.robot-text{color:var(--ink);flex:1}.robot-text-empty{text-align:center;max-width:30ch;color:var(--ink-muted);margin:auto;padding:16px}.robot-text-bar{color:var(--ink-muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 12px;font-size:13px;font-weight:600;display:flex}.copy-button,.qr-fullscreen-open{height:30px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--field-line);cursor:pointer;border-radius:6px;padding:0 12px;font-size:13px;font-weight:600}.copy-button:disabled,.qr-fullscreen-open:disabled{color:var(--ink-faint);background:var(--page);border-color:var(--line);cursor:default}.qr-frame{flex-direction:column;flex:none;align-self:flex-start;gap:10px;width:min(440px,45%);display:flex}.qr-code{aspect-ratio:1;display:block;position:relative}.qr-code svg{width:100%;height:100%;display:block}.qr-frame .qr-code{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.generated-card{flex-basis:100%;margin-top:10px}.generated-summary{align-items:center;gap:12px;display:flex}.generated-engine{color:var(--ink-faint);font-size:12px;display:block}.generated-summary p{color:var(--ink-muted);margin:0;font-size:14px}.qr-thumb{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;flex:none;width:72px;padding:0;overflow:hidden}.output-regenerate{height:36px;font:inherit;color:#fff;background:var(--danger);cursor:pointer;border:0;border-radius:6px;margin-left:auto;margin-right:8px;padding:0 14px;font-size:14px;font-weight:600}.output-regenerate:disabled{background:var(--line);color:var(--ink-faint);cursor:default}.stale-banner{color:#fff;background:var(--danger);border-radius:6px;flex-wrap:wrap;flex-basis:100%;gap:2px 10px;margin-bottom:8px;padding:8px 12px;font-size:14px;display:flex}.stale-stamp{display:none}.is-stale .qr-code svg,.is-stale .robot-text-scroll{filter:grayscale();opacity:.3}.is-stale .qr-code:after{content:"";background:repeating-linear-gradient(-45deg,#b3261e38 0 8px,#0000 8px 16px);position:absolute;inset:0}.is-stale .stale-stamp{z-index:1;letter-spacing:.08em;text-transform:uppercase;color:var(--danger);pointer-events:none;place-items:center;font-size:clamp(9px,9cqi,64px);font-weight:800;display:grid;position:absolute;inset:0;transform:rotate(-30deg)}.is-stale .qr-code{container-type:inline-size}.is-stale .robot-text-frame,.is-stale .qr-frame .qr-code{border:2px dashed var(--danger)}.output-body{flex-wrap:wrap;align-content:flex-start}.output-body .robot-text-frame{flex-direction:column;height:100%}.output-body.is-stale .robot-text-frame{height:calc(100% - 56px)}.qr-fullscreen{background:#fff;border:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0}.qr-fullscreen-body{box-sizing:border-box;flex-direction:column;align-items:center;gap:12px;height:100%;padding:16px;display:flex}.qr-fullscreen-header{justify-content:space-between;align-self:stretch;align-items:center;display:flex}.qr-fullscreen-header h2{margin:0;font-size:18px}.qr-fullscreen-body .stale-banner{flex-basis:auto;align-self:stretch}.qr-fullscreen-body .qr-code{flex:1;max-width:100%;height:100%;min-height:0}.warnings{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;flex:none;max-height:84px;margin-top:10px;padding:8px 12px;font-size:14px;overflow:auto}.warnings h3{margin:0 0 4px;font-size:14px}.warnings ul{margin:0;padding-left:18px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.preview-body{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.preview-stage{flex:1;place-items:center;min-height:260px;display:grid;container-type:size}.preview-drawing{--ratio:1;width:min(100cqw, 100cqh * var(--ratio));aspect-ratio:var(--ratio);background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius)}@media (width<=1279px),(height<=559px){.preview-stage{min-height:0;container-type:normal}.preview-drawing{width:100%}}.preview-box{fill:#ffffffb8;stroke:var(--ink);stroke-width:8px}.preview-tube{fill:#b98a55;stroke:#6e4b25;stroke-width:5px}.preview-tube-hole{fill:#5a3d1e;stroke:#6e4b25;stroke-width:3px}.pallet-shadow{fill:#a88866}.pallet-bearer{fill:#c09a6e}.pallet-board{fill:#ecd6b0;stroke:#cfae80;stroke-width:2px}.pallet-grain{stroke:#dcc096;stroke-width:3px}.pallet-nail{fill:#a39a91}.preview-stack{stroke-width:4px}.preview-stack.placed{fill:color-mix(in srgb, var(--hue) 35%, #fffc);stroke:var(--hue)}.preview-stack.current{fill:color-mix(in srgb, var(--hue) 65%, #ffffffd9);stroke:var(--hue)}.preview-stack.pending{fill:none;stroke:color-mix(in srgb, var(--hue) 70%, transparent);stroke-dasharray:12 10}.preview-stack.outside:not(.pending){stroke:var(--danger);stroke-width:6px;stroke-dasharray:16 10}.preview-stack-focus{fill:none;stroke:var(--brand);stroke-width:10px}.preview-label rect{fill:var(--surface);stroke:var(--accent);stroke-width:3px}.preview-label.current rect{fill:var(--brand);stroke:var(--brand)}.preview-label text{fill:var(--ink);text-anchor:middle;dominant-baseline:central;font-weight:700}.preview-label.current text{fill:#fff}.preview-axis line{stroke:var(--ink-muted);stroke-width:4px}.preview-axis text{fill:var(--ink-muted)}.preview-axis .preview-axis-name{fill:var(--ink);font-weight:700}.preview-arrowhead{fill:var(--ink-muted)}.preview-steps{align-items:center;gap:8px;display:flex}.preview-steps input[type=range]{min-width:0;height:36px;accent-color:var(--accent);flex:1}.step-button{width:36px;padding:0;font-size:22px;line-height:1}.play-button{min-width:96px}.step-count{text-align:right;font-variant-numeric:tabular-nums;min-width:64px;font-size:14px;font-weight:600}.preview-current{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:15px;display:flex}.preview-legend{flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-size:14px;font-weight:600;list-style:none;display:flex}.preview-legend li{align-items:center;gap:6px;display:flex}.preview-legend .swatch{border-radius:3px;width:14px;height:14px}.legend-count{color:var(--ink-muted);font-weight:400}.preview-facts{flex-wrap:wrap;gap:4px 20px;margin:0;font-size:13px;display:flex}.preview-facts div{gap:6px;display:flex}.preview-facts dt{color:var(--ink-muted)}.preview-facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.backup-banner,.update-banner{background:var(--warn-bg);border-bottom:1px solid var(--warn-line);flex:none;align-items:center;gap:14px;padding:8px 16px;font-size:14px;display:flex}.update-banner{background:var(--code-bg);border-bottom-color:var(--line)}.backup-banner p,.update-banner p{flex:1;margin:0}.backup-banner .secondary-button,.update-banner .secondary-button{height:32px}.backup-panel{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:10px 12px}.backup-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.backup-row h3{margin:0;font-size:15px}.backup-last{color:var(--ink-muted);flex:1;margin:0;font-size:14px}.backup-row .secondary-button{height:32px}.backup-folder{color:var(--ink-muted);flex:280px;margin:0;font-size:14px}.backup-row+.backup-row,.backup-row+.backup-folder{margin-top:8px}.sizes-panel{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:10px 12px}.sizes-panel h3{margin:0 0 4px;font-size:15px}.sizes-note{color:var(--ink-muted);margin:0 0 8px;font-size:13px}.sizes-list{margin:0 0 10px;padding:0;list-style:none}.sizes-list li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:4px 0;font-size:14px;display:flex}.sizes-list li span:nth-child(2){flex:1}.sizes-kind{min-width:70px;font-weight:600}.sizes-list .secondary-button{height:28px}.sizes-form{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.sizes-form label{flex-direction:column;gap:3px;font-size:13px;font-weight:600;display:flex}.sizes-form input,.sizes-form select{height:34px;font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:6px;padding:0 8px;font-size:15px}.sizes-form input[inputmode=decimal]{width:140px}.sizes-form .secondary-button{height:34px}.backup-message{margin:8px 0 0;font-size:14px}.backup-message.is-error{color:var(--danger);font-weight:600}.compare-intro{color:var(--ink-muted);margin:0;font-size:14px}.compare-input{gap:10px;display:flex}.compare-input textarea{height:96px;color:var(--ink);background:var(--field);border:1px solid var(--field-line);resize:none;border-radius:6px;flex:1;padding:8px 10px;font:13px/1.4 ui-monospace,Cascadia Mono,Consolas,monospace}.compare-actions{flex-direction:column;gap:8px;display:flex}.compare-file{align-items:center;display:inline-flex}.compare-file input{opacity:0;width:1px;height:1px;position:absolute}.compare-file:focus-within{outline:2px solid var(--focus);outline-offset:2px}.compare-verdict{border-radius:6px;margin:0;padding:10px 12px;font-weight:700}.compare-verdict.is-match{color:var(--accent);background:var(--accent-soft);border:1px solid #a9d3c5}.compare-verdict.is-mismatch{color:var(--danger);background:#fdecea;border:1px solid #e2b4b0}.compare-table-scroll{border:1px solid var(--line);border-radius:6px;flex:1;min-height:0;overflow:auto}.compare-table{border-collapse:collapse;width:100%;font:13px/1.5 ui-monospace,Cascadia Mono,Consolas,monospace}.compare-table th,.compare-table td{text-align:left;white-space:pre;border-bottom:1px solid var(--line-soft);padding:2px 10px}.compare-table thead th{color:var(--ink-muted);background:var(--code-bg);font-family:inherit;position:sticky;top:0}.compare-table tbody th{width:4em;color:var(--ink-faint);font-weight:400}.compare-table tr.is-different td,.compare-table tr.is-different th{color:var(--danger);background:#fdecea;font-weight:700}.compare-table em{font-style:italic;font-weight:400}.recipe-bar+.layout-switch,.layout-switch+.language-switch{margin-left:0}@media (width>=1280px){.workspace.layout-tabs{grid-template-columns:minmax(440px,480px) minmax(0,1fr)}.workspace.layout-cards{grid-template-columns:minmax(330px,370px) minmax(0,1fr)}}.tabs-form,.cards-form{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.tabs-form{gap:0}.input-tabs{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:14px;padding:4px;display:grid}.input-tabs button{min-height:44px;font:inherit;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:14px;font-weight:700;line-height:1.2;display:flex;position:relative}.input-tabs button:hover{color:var(--ink);background:var(--surface)}.input-tabs button[aria-selected=true]{color:#fff;background:var(--accent)}.input-tabs button.has-problem{box-shadow:inset 0 0 0 2px var(--danger)}.input-tabs button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.input-tab-number{border:1px solid;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;display:inline-grid}.changed-dot{background:var(--warn-line);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:7px}.tab-panel{min-height:0}.settings-card{gap:4px;display:grid}.settings-card.has-problem{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.settings-card-title{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 2px;font-size:16px;display:flex}.changed-count,.problem-count{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.changed-count{color:#7a4d00;background:var(--warn-bg);border:1px solid var(--warn-line)}.problem-count{color:var(--danger);background:#fdecea;border:1px solid #f1b4ae}.settings-card-line{color:var(--ink-muted);margin:0;font-size:14px;line-height:1.45}.settings-card-edit{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:end;padding:4px 2px;font-size:14px;font-weight:700}.settings-card-edit:hover{text-decoration:underline}.editor-dialog{width:min(600px,100vw - 48px);max-height:calc(100vh - 48px);color:var(--ink);border:0;border-radius:10px;padding:0;box-shadow:0 20px 60px #0000004d}.editor-dialog::backdrop{background:#16303d8c}.editor-dialog-header{color:#fff;background:var(--brand);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.editor-dialog-header h2{margin:0;font-size:18px}.editor-dialog-body{padding:16px}.confirm-dialog .editor-dialog-header{color:var(--ink);background:var(--warn-bg);border-bottom:1px solid var(--warn-line)}.confirm-dialog p{margin:0 0 8px}.confirm-dialog ul{margin:0 0 16px;padding-left:20px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.warnings-line{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius);flex-basis:100%;margin-top:8px;padding:8px 12px;font-size:14px}.warnings-line summary{cursor:pointer;font-weight:600}.warnings-line ul{margin:6px 0 0;padding-left:20px}
