:root{--white:#fff;--paper:#faf8f6;--sand:#f0ebe7;--media:#f6f3f0;--line:#e6e1dc;--line-strong:#cbc5be;--ink:#333;--text:#474747;--muted:#7a7672;--faint:#aaa59f;--charcoal:#595959;--sage:#708764;--sage-deep:#5a6f50;--sage-soft:#edf0e9;--warn:#8d5a1c;--danger:#a8322a;--danger-soft:#f8ebe9;--shadow-s:0 1px 2px #332d260f;--shadow-m:0 1px 2px #332d260d, 0 6px 20px #332d2612;--shadow-l:0 2px 6px #332d260f, 0 18px 48px #332d261f;--z-controls:5;--z-popover:20;--z-toast:25;--z-summary:50;--z-drag:60;--font:"Public Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--panel-w:clamp(390px, 31vw, 470px);--caps:.08em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--white);color:var(--text);font:300 14px/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--sage-deep);outline-offset:2px}h1,h2,h3{font-weight:inherit;text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}strong{font-weight:500}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body.is-dragging,body.is-dragging *,body.is-grabbing,body.is-grabbing *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.app{grid-template-columns:minmax(0, 1fr) var(--panel-w);gap:12px;height:100%;padding:12px;display:grid}.stage{border:1px solid var(--line);background:var(--paper);min-width:0;min-height:0;position:relative;overflow:hidden}.panel{border:1px solid var(--line);background:var(--white);grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.panel-scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-height:0;padding:36px 32px 40px;overflow-y:auto}.panel-foot{border-top:1px solid var(--line);background:var(--white);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 16px 32px;display:flex}@media (width<=860px){.app{grid-template-columns:minmax(0,1fr);gap:8px;height:auto;min-height:100%;padding:8px}.stage{height:58svh;min-height:360px}.panel{grid-template-rows:auto auto;overflow:visible}.panel-scroll{padding:28px 16px;overflow:visible}.panel-foot{padding:12px 12px 12px 16px;position:sticky;bottom:0;box-shadow:0 -8px 24px #332d2614}}.btn{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;height:42px;padding:0 24px;font-size:13px;font-weight:400;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn.is-primary{background:var(--charcoal);color:#fff}.btn.is-primary:hover{background:var(--ink)}.btn.is-secondary{border-color:var(--ink);background:var(--white);color:var(--ink)}.btn.is-secondary:hover{background:var(--sand)}.btn.is-ghost{color:var(--ink);background:0 0;padding:0 14px 0 8px}.btn.is-ghost:hover{background:var(--paper)}.btn.is-block{width:100%;height:48px}.icon-btn{width:36px;height:36px;color:var(--text);background:0 0;border:0;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--paper);color:var(--ink)}.brandbar{z-index:var(--z-controls);border:1px solid var(--line);background:var(--white);height:50px;box-shadow:var(--shadow-m);align-items:center;gap:2px;padding:0 6px 0 11px;display:flex;position:absolute;top:14px;left:14px}.brand{color:var(--charcoal);align-items:center;gap:12px;display:flex}.brand-name{color:var(--ink);letter-spacing:.22em;text-transform:uppercase;padding-right:10px;font-size:12.5px;font-weight:500}.bar-sep{background:var(--line);width:1px;height:22px;margin:0 6px}.bar-btn{height:36px;color:var(--ink);letter-spacing:var(--caps);text-transform:uppercase;background:0 0;border:0;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:400;display:inline-flex}.bar-btn:hover{background:var(--paper)}.bar-btn.is-icon{justify-content:center;width:36px;padding:0}.menu-wrap{position:relative}.popover{z-index:var(--z-popover);border:1px solid var(--line);background:var(--white);min-width:260px;box-shadow:var(--shadow-l);margin:0;padding:6px 0;list-style:none;position:absolute;top:46px;left:-6px}.popover button{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;flex-direction:column;padding:11px 18px;font-weight:400;display:flex}.popover button span{color:var(--muted);font-size:12.5px;font-weight:300}.popover button:hover{background:var(--paper)}.dock{z-index:var(--z-controls);border:1px solid var(--line);background:var(--white);max-width:calc(100% - 24px);box-shadow:var(--shadow-l);align-items:center;gap:2px;padding:5px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.dock-btn{width:40px;height:40px;color:var(--text);background:0 0;border:0;flex:none;place-items:center;transition:background-color .15s,color .15s;display:grid;position:relative}.dock-btn:hover:not(:disabled){background:var(--paper);color:var(--ink)}.dock-btn[aria-pressed=true]{background:var(--sand);color:var(--ink)}.dock-btn:disabled{color:#d2cdc7}.dock-btn.is-danger:hover{background:var(--danger-soft);color:var(--danger)}.dock-btn[data-tip]:after{content:attr(data-tip);background:var(--ink);color:#fff;letter-spacing:.04em;white-space:nowrap;pointer-events:none;opacity:0;padding:5px 9px;font-size:11px;font-weight:400;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 11px);left:50%;transform:translate(-50%,4px)}.dock-btn:hover:not(:disabled):after,.dock-btn:focus-visible:after{opacity:1;transform:translate(-50%)}.dock-sep{background:var(--line);flex:none;width:1px;height:24px;margin:0 6px}.dock-text{height:40px;color:var(--ink);letter-spacing:var(--caps);text-transform:uppercase;white-space:nowrap;background:0 0;border:0;align-items:center;gap:9px;padding:0 16px 0 12px;font-size:12px;font-weight:400;display:inline-flex}.dock-text:hover{background:var(--paper)}.toast{z-index:var(--z-toast);background:var(--sage);color:#fff;width:max-content;max-width:min(540px,100% - 32px);box-shadow:var(--shadow-m);pointer-events:none;opacity:0;align-items:center;gap:12px;padding:11px 20px 11px 16px;font-size:13.5px;font-weight:400;transition:opacity .18s,transform .18s;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%,6px)}.toast.is-on{opacity:1;transform:translate(-50%)}.toast-dot{background:#fff;flex:none;width:6px;height:6px}@media (width<=560px){.brandbar{height:46px;top:10px;left:10px}.bar-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.brand-name{letter-spacing:.16em}.dock{padding:3px;bottom:10px}.dock-btn{width:38px}.dock-sep{margin:0 3px}.dock-text{padding:0 10px 0 8px}.toast{bottom:68px}}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.labels .dim{position:absolute;top:0;left:0}.dim{border:1px solid var(--line-strong);background:var(--white);color:var(--ink);font:500 11px/1 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;padding:4px 7px;display:block}.dim.is-live{border-color:var(--sage-deep);background:var(--sage-deep);color:#fff}.drag-chip{z-index:var(--z-drag);border:1px solid var(--line);background:var(--white);max-width:330px;color:var(--ink);box-shadow:var(--shadow-l);pointer-events:none;align-items:center;gap:12px;padding:8px 16px 8px 8px;display:flex;position:fixed;transform:translate(16px,16px)}.drag-thumb{background:var(--media);flex:none;width:44px;height:44px;display:grid}.drag-chip strong{letter-spacing:var(--caps);text-transform:uppercase;font-size:12px;font-weight:500;display:block}.drag-hint{color:var(--muted);font-size:12.5px;display:block}.drag-chip.is-no .drag-hint{color:var(--danger)}.view{flex-direction:column;gap:30px;display:flex}.head-row{justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin:-8px -10px -2px 0;display:flex}.display{color:var(--ink);letter-spacing:.01em;text-transform:uppercase;font-size:28px;font-weight:400;line-height:1.1}.display.is-small{font-size:21px}.display.is-large{font-size:clamp(34px,4vw,50px);font-weight:300}.eyebrow{color:var(--muted);letter-spacing:var(--caps);text-transform:uppercase;font-size:11px;font-weight:500}.label{color:var(--muted);letter-spacing:var(--caps);text-transform:uppercase;align-items:baseline;gap:10px;font-size:11px;font-weight:500;display:flex}.label-value{color:var(--ink);letter-spacing:0;text-transform:none;font-size:13px;font-weight:400}.hint{color:var(--muted);font-size:13px}kbd{border:1px solid var(--line-strong);background:var(--white);color:var(--ink);font:500 10.5px/1.6 var(--font);letter-spacing:.04em;text-transform:uppercase;padding:1px 6px}.swatches{border:0;margin:0;padding:0}.swatches legend{padding:0}.swatch-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.swatch{cursor:pointer}.swatch input{opacity:0;pointer-events:none;position:absolute}.swatch-dot{width:34px;height:34px;transition:box-shadow .15s;display:block;box-shadow:inset 0 0 0 1px #00000024}.swatch-dot.is-wood{background-image:repeating-linear-gradient(100deg,#00000012 0 2px,#0000 2px 5px)!important}.swatch input:checked+.swatch-dot{box-shadow:inset 0 0 0 1px #00000024, 0 0 0 3px var(--white), 0 0 0 4px var(--ink)}.swatch input:focus-visible+.swatch-dot{outline:2px solid var(--sage-deep);outline-offset:6px}.thumb{width:82%;height:82%;margin:auto}.price{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:0;font-weight:500;line-height:1;display:inline-flex}.price.is-s{font-size:15px}.price.is-m{font-size:22px;font-weight:400}.price.is-l{letter-spacing:-.01em;font-size:46px;font-weight:300}.price-unit{color:var(--muted);letter-spacing:0;white-space:pre;font-size:.6em;font-weight:400}.kv{flex-direction:column;margin:0;display:flex}.kv>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;display:flex}.kv>div:first-child{border-top:1px solid var(--line)}.receipt .kv>div:first-child{border-top:0;padding-top:0}.kv dt{color:var(--muted);font-size:13px}.kv dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-weight:400}.seg-field{border:0;margin:0;padding:0}.seg-field legend{margin-bottom:12px;padding:0}.seg{border:1px solid var(--ink);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.seg-btn{background:var(--white);height:40px;color:var(--ink);letter-spacing:.04em;font-variant-numeric:tabular-nums;border:0;font-size:12.5px;font-weight:400;transition:background-color .15s,color .15s}.seg-btn+.seg-btn{border-left:1px solid var(--ink)}.seg-btn[aria-pressed=true]{background:var(--charcoal);color:#fff}.seg-btn:not([aria-pressed=true]):not(:disabled):hover{background:var(--sand)}.seg-btn:disabled{color:var(--faint);text-decoration:line-through}.steppers{gap:18px;display:grid}.stepper{gap:8px;display:grid}.stepper-label{color:var(--muted);letter-spacing:var(--caps);text-transform:uppercase;font-size:11px;font-weight:500}.stepper-box{border:1px solid var(--line-strong);background:var(--white);align-items:center;height:44px;transition:border-color .15s;display:flex}.stepper-box:focus-within{border-color:var(--ink)}.stepper-btn{width:44px;height:100%;color:var(--text);background:0 0;border:0;place-items:center;display:grid}.stepper-btn:hover{background:var(--paper);color:var(--ink)}.stepper-box input{min-width:0;height:100%;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;flex:1;font-size:14px;font-weight:400}.stepper-box input:focus-visible{outline:none}.stepper-unit{color:var(--muted);padding:0 8px 0 5px;font-size:13px}.option-group{border-top:1px solid var(--line);flex-direction:column;gap:14px;padding-top:24px;display:flex}.kv+.option-group{border-top:0;padding-top:0}.tiles{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tile{text-align:left;background:0 0;border:0;flex-direction:column;gap:8px;width:100%;padding:0;display:flex}.tile-media{aspect-ratio:1;background:var(--media);width:100%;color:var(--faint);box-shadow:inset 0 0 0 1px var(--line);place-items:center;transition:box-shadow .15s;display:grid;position:relative}.tile:hover .tile-media{box-shadow:inset 0 0 0 1px var(--line-strong)}.tile[aria-pressed=true] .tile-media{box-shadow:inset 0 0 0 2px var(--ink)}.tile-check{background:var(--ink);color:#fff;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:0;right:0}.tile-name{color:var(--text);font-size:12.5px;line-height:1.35}.tile[aria-pressed=true] .tile-name{color:var(--ink);font-weight:400}.dialog{border:1px solid var(--line);background:var(--white);width:min(460px,100vw - 32px);max-height:min(680px,100dvh - 32px);color:var(--text);box-shadow:var(--shadow-l);margin:auto;padding:0}.dialog[open]{flex-direction:column;animation:.18s ease-out dialog-in;display:flex}.dialog::backdrop{background:#33333352}.dialog-body{flex-direction:column;gap:16px;padding:22px 28px 28px;display:flex;overflow-y:auto}.dialog-text{color:var(--text)}.dialog-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:10px;padding:18px 28px 24px;display:grid}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=480px){.dialog-actions{grid-template-columns:1fr}}.summary{z-index:var(--z-summary);background:var(--white);color:var(--text);padding:16px clamp(16px,4vw,60px) 80px;position:fixed;inset:0;overflow-y:auto}.summary-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto 32px;padding-bottom:16px;display:flex}.summary-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;gap:56px;max-width:1280px;margin:0 auto;display:grid}.summary-main .display.is-large{margin:8px 0 28px}.summary-main h1:focus{outline:none}.summary-image{background:var(--paper);margin:0;overflow:hidden}.summary-image img{width:100%;height:auto;display:block}.summary-image figcaption{text-align:center;padding:48px}.summary-list-head{align-items:baseline;gap:14px;margin:48px 0 4px;display:flex}.badge{background:var(--sand);color:var(--ink);letter-spacing:var(--caps);text-transform:uppercase;padding:2px 8px;font-size:11px;font-weight:500}.bom-group{margin-top:24px}.bom{border-top:1px solid var(--line);margin:8px 0 0;padding:0;list-style:none}.bom-row{border-bottom:1px solid var(--line);grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:16px;padding:10px 0;display:grid}.bom-thumb{background:var(--media);width:56px;height:56px;display:grid}.bom-name{color:var(--ink);flex-direction:column;font-weight:400;display:flex}.bom-meta{color:var(--muted);font-size:12.5px}.bom-sum{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:400}.receipt{background:var(--sand);flex-direction:column;gap:12px;margin-top:40px;padding:28px;display:flex;position:sticky;top:24px}.receipt .kv>div{border-color:#3333331f}.receipt-total{flex-direction:column;gap:8px;padding:12px 0 4px;display:flex}.fine{color:var(--muted);margin-bottom:10px;font-size:12px}@media (width<=860px){.summary-grid{grid-template-columns:minmax(0,1fr);gap:8px}.receipt{position:static}}@media print{.app,.summary-top,.receipt .btn{display:none!important}.summary{padding:0;position:static}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.dock-text.is-done{background:var(--charcoal);color:#fff;margin-left:2px}.dock-text.is-done:hover{background:var(--ink)}.swatch-dot.is-tiles{background-image:linear-gradient(#0000001f 1px,#0000 1px),linear-gradient(90deg,#0000001f 1px,#0000 1px)!important;background-size:11px 11px!important}.swatch-dot.is-concrete{background-image:radial-gradient(#00000014 1px,#0000 1.5px)!important;background-size:5px 5px!important}.menu{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.menu-row{border:0;border-bottom:1px solid var(--line);width:100%;height:72px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:16px;padding:0 4px 0 0;display:grid}.menu-label{letter-spacing:var(--caps);text-transform:uppercase;font-size:14px;font-weight:400}.menu-row:hover{background:var(--paper)}.menu-row:hover .menu-label{text-underline-offset:4px;text-decoration:underline}.back-head{align-items:center;gap:8px;min-height:40px;margin-left:-10px;display:flex}.back-head:not(:has(>.icon-btn:first-child)){margin-left:0}.back-head .display{min-width:0}.push-right{margin-left:auto;margin-right:-10px}.summary-line{align-items:baseline;gap:14px;margin-top:-14px;display:flex}.muted{color:var(--muted)}.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;margin:0;padding:0;list-style:none;display:grid}.pcard{width:100%;color:var(--text);text-align:left;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:3px;padding:0;display:flex}.pcard-media{aspect-ratio:1;background:var(--media);width:100%;margin-bottom:8px;transition:box-shadow .15s;display:grid;position:relative}.pcard:hover .pcard-media{box-shadow:inset 0 0 0 1px var(--line-strong)}.pcard:active .pcard-media{box-shadow:inset 0 0 0 2px var(--ink)}.pcard-check{background:var(--sage-deep);color:#fff;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:0;right:0}.pcard-name{color:var(--ink);letter-spacing:.04em;text-transform:uppercase;font-size:13px;font-weight:400}.pcard-meta{color:var(--muted);margin-bottom:4px;font-size:12.5px}.island-card{border:1px solid var(--line);background:var(--sand);width:100%;color:var(--text);text-align:left;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;padding:12px 16px 12px 12px;transition:border-color .15s;display:grid}.island-card:hover{border-color:var(--ink)}.island-art{width:96px;height:auto}.island-text{flex-direction:column;gap:3px;display:flex}.marquee{z-index:var(--z-controls);border:1px solid var(--sage-deep);pointer-events:none;background:#5a6f501a;position:absolute}.group-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.group-row{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:8px 4px 8px 0;display:grid}.group-row:hover{background:var(--paper)}.group-thumb{background:var(--media);width:40px;height:40px;display:grid}.group-name{font-weight:400}.group-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}
