:root{--shelves-bg:#b9b4ad;--shelves-header:#54524f;--shelves-primary:#6b8575;--shelves-primary-hover:#5a7262;--shelves-canvas:#e6e1da;--shelves-border:#e6e1da;--shelves-text:#54524f;--shelves-text-light:#e6e1da;--shelves-text-muted:#7b7a75;--shelves-tertiary:#77736b;--shelves-shelf:#fee7cd;--shelves-warning:#c17878;--shelves-discount:#8aad9a;--font-display:"futura-pt", "Futura", "Trebuchet MS", Arial, sans-serif;--font-display-bold:"futura-pt-bold", "Futura", "Trebuchet MS", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-display);background:var(--shelves-bg);color:var(--shelves-text);overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{background:var(--shelves-bg);width:100%;height:100dvh;max-height:100dvh;font-family:var(--font-display);flex-direction:column;display:flex;overflow:hidden}.shell-header{background:var(--shelves-header);min-height:50px;color:var(--shelves-text-light);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 12px;font-size:.875rem;display:flex}.shell-header h1{font-size:1.25rem;font-family:var(--font-display-bold);white-space:nowrap;color:var(--shelves-text-light);margin:0}.header-material-menu{position:relative}.header-material-pill{color:#fff;background:#6f8979;border:2px solid #86b39b;border-radius:999px;align-items:center;gap:8px;min-width:190px;height:26px;padding:0 12px;font-size:11px;font-weight:600;display:flex}.header-material-swatch{border:1px solid #0000001a;border-radius:999px;flex-shrink:0;width:16px;height:16px}.header-material-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.header-material-chevron{margin-left:auto;font-size:10px}.header-material-dropdown{z-index:40;background:#fff;border:1px solid #00000026;border-radius:12px;min-width:220px;max-width:min(280px,100vw - 1.5rem);padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000001f}.header-material-option{color:#222;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:6px 12px;font-size:11px;display:flex}.header-material-option:hover{background:#f5f5f5}.header-material-check{flex-shrink:0;width:12px;font-size:12px}.header-promo{color:var(--shelves-text-light);margin:0;font-size:.75rem;display:none}.header-promo strong{color:var(--shelves-discount)}.header-right{white-space:nowrap;align-items:center;gap:8px;margin-left:auto;display:flex}.header-dims{align-items:center;gap:4px;display:flex}.header-dims-label,.header-dims-unit,.header-price-label{text-transform:uppercase;letter-spacing:.08em;color:var(--shelves-text-muted);font-size:10px}.header-dims strong,.header-price{color:#fff;font-size:1rem;font-weight:700}.header-price-block{align-items:baseline;gap:6px;display:flex}.header-price{font-size:1.25rem}@media (width>=1024px){.header-promo{display:block}}.shell-body{border-radius:10px;flex:1;min-height:0;margin:8px;display:flex;overflow:hidden;box-shadow:0 4px 24px #0000001f}.control-panel{background:var(--shelves-bg);border-right:1px solid #a8a39c;flex-direction:column;flex-shrink:0;gap:8px;width:290px;min-width:290px;margin-top:-1px;padding:0 8px 8px;display:flex;overflow-y:auto}.panel{border:1px solid var(--shelves-border);background:#fff;border-radius:6px;flex-shrink:0;overflow:hidden;box-shadow:0 1px 2px #0000000f}.panel-heading{border-bottom:1px solid var(--shelves-border);text-transform:uppercase;letter-spacing:.08em;color:var(--shelves-text);font-size:10px;font-weight:700;font-family:var(--font-display-bold);background:#f8f8f8;padding:6px 10px}.panel-body{padding:6px}.panel-actions{flex-direction:column;gap:6px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--shelves-text-muted);margin-bottom:4px;font-size:.625rem;font-weight:700}.stepper{grid-template-columns:36px 1fr 36px;align-items:center;gap:6px;display:grid}.stepper button{border:1px solid var(--shelves-border);height:36px;color:var(--shelves-text);background:#fff;border-radius:6px;font-size:1.1rem}.stepper div{flex-direction:column;align-items:center;gap:1px;display:flex}.stepper div strong{font-size:1rem}.stepper div span{color:var(--shelves-text-muted);font-size:.7rem}.stepper-highlight{background:var(--shelves-shelf);border-radius:10px;padding:8px 4px}.stepper-highlight button{background:#fff;border-color:#54524f33}.sidebar-height{margin-top:10px}.sidebar-height label{text-transform:uppercase;letter-spacing:.06em;color:var(--shelves-text-muted);margin-bottom:4px;font-size:.625rem;font-weight:700;display:block}.sidebar-height select{background:#fff;border:1px solid #54524f33;border-radius:10px;width:100%;height:32px;padding:0 8px;font-size:.8rem;font-weight:600}.notch-intro{color:var(--shelves-text);margin:0 0 10px;font-size:.8125rem;line-height:1.45}.notch-toggle{cursor:pointer;align-items:flex-start;gap:10px;margin:0;display:flex}.notch-toggle input{flex-shrink:0;width:18px;height:18px;margin:2px 0 0}.notch-toggle span{color:var(--shelves-text);font-size:.875rem;font-weight:600;line-height:1.4}.notch-measure-help{color:var(--shelves-text-muted);margin:12px 0 8px;font-size:.8125rem;line-height:1.45}.notch-dimensions{grid-template-columns:1fr 1fr;gap:8px;margin-top:0;display:grid}.notch-dimensions label{text-transform:none;letter-spacing:normal;color:var(--shelves-text);flex-direction:column;gap:4px;font-size:.8125rem;font-weight:600;display:flex}.notch-field-hint{color:var(--shelves-text-muted);font-size:.75rem;font-weight:400;line-height:1.35}.notch-dimensions input{border:1px solid var(--shelves-border);border-radius:8px;height:36px;padding:0 8px;font-size:.875rem}.panel-note{color:var(--shelves-text-muted);margin:8px 0 0;font-size:.7rem;line-height:1.4}.btn-internal{width:100%;min-height:28px;color:var(--shelves-text-muted);border:1px dashed var(--shelves-border);background:#f0eeea;font-size:.7rem}.field{flex-direction:column;gap:3px;margin-top:8px;display:flex}.field span{text-transform:uppercase;letter-spacing:.06em;color:var(--shelves-text-muted);font-size:.625rem;font-weight:700}.field input,.field select{border:1px solid var(--shelves-border);height:32px;color:var(--shelves-text);background:#fff;border-radius:4px;padding:0 8px;font-size:.8rem}.picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.picker-tile{background:var(--shelves-shelf);text-align:left;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:flex-start;min-height:84px;padding:10px 8px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.picker-tile:hover{border-color:#54524f26;transform:translateY(-1px);box-shadow:0 2px 6px #00000014}.picker-tile.is-active{border-color:var(--shelves-text);box-shadow:0 0 0 2px var(--shelves-text);background:#ffe8c8}.picker-tile-glyph{justify-content:flex-start;align-items:center;width:100%;min-height:26px;margin-bottom:4px;display:flex}.picker-tile-bar{background:#54524f59;border-radius:999px;height:6px}.picker-tile strong{color:var(--shelves-text);font-size:.75rem;font-weight:600}.picker-tile-dimension{color:var(--shelves-text-muted);margin-top:4px;font-size:10px;line-height:1}.picker-tile-hint{text-transform:uppercase;letter-spacing:.06em;color:#54524f99;margin-top:6px;font-size:9px}.picker-tile:hover .picker-tile-hint{color:var(--shelves-text)}.action-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.action-row button,.action-row-full button,.btn-action{text-align:center;cursor:pointer;border:none;border-radius:6px;width:100%;height:32px;padding:0 8px;font-size:12px;font-weight:600;line-height:32px}.action-row .btn-action{min-width:0}.action-row-full,.action-row-full .btn-action{width:100%}.btn-action-clear{border:1px solid var(--shelves-tertiary);box-shadow:inset 0 0 0 1px var(--shelves-tertiary);color:var(--shelves-tertiary);background:#fff}.btn-action-undo{background:var(--shelves-tertiary);color:#fff}.presets-wrap{min-width:0;position:relative}.presets-select{background:var(--shelves-primary);color:#fff;appearance:none;cursor:pointer;border:none;border-radius:6px;width:100%;height:32px;padding:0 24px 0 8px;font-size:12px;font-weight:600;line-height:32px}.presets-chevron{pointer-events:none;color:#fff;font-size:10px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.btn-export-pdf{background:var(--shelves-header);color:#fff}.btn-share{color:#fff;background:#6b8dae;width:100%}.btn-cart{color:#fff;background:#6f8979;border:none;border-radius:6px;width:100%;height:36px;font-size:12px;font-weight:600}.summary-list{gap:6px;margin:0;display:grid}.summary-list div{justify-content:space-between;gap:8px;display:flex}.summary-list dt{text-transform:uppercase;letter-spacing:.06em;color:var(--shelves-text-muted);font-size:.7rem}.summary-list dd{margin:0;font-size:.82rem;font-weight:600}.issue-list{color:var(--shelves-warning);margin:8px 0 0;padding-left:16px;font-size:.75rem}.canvas-panel{background:var(--shelves-canvas);flex:1;min-height:0;overflow:hidden}.canvas-shell{background:var(--shelves-canvas);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.canvas-stage{position:relative}.builder-canvas{touch-action:none;max-width:100%;display:block;position:absolute;inset:0}.canvas-overlay{pointer-events:none;position:absolute;inset:0}.upright-marker{background:var(--shelves-shelf);border:.5px solid var(--shelves-text);z-index:1;border-radius:1px;position:absolute}.shelf-bar{border:.5px solid var(--shelves-text);background:var(--shelves-shelf);z-index:2;border-radius:2px;position:absolute}.shelf-bar.is-selected{outline-offset:1px;outline:3px solid gold}.shelf-bar.is-ghost{opacity:.5;background:tan;border-style:dashed}.shelf-bar.is-invalid{opacity:.3;background:#f44}.dim-label{pointer-events:none;z-index:3;justify-content:center;align-items:center;display:flex;position:absolute}.dim-label span{color:var(--shelves-text-muted);white-space:nowrap;background:#e6e1dad9;border-radius:3px;padding:1px 4px;font-size:.58rem;font-weight:600}.dim-line{background:var(--shelves-text-muted);opacity:.35;width:1px;position:absolute}.canvas-hint{color:var(--shelves-text-light);background:#54524fe0;border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:600;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.mobile-dock{display:none}.mobile-sheet-backdrop{z-index:50;background:#0000004d;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-sheet{background:#fff;border-radius:16px 16px 0 0;width:100%;max-height:70vh;padding:12px 16px 24px;overflow-y:auto;box-shadow:0 -8px 24px #0000001f}.mobile-sheet-handle{background:#d1d5db;border-radius:999px;width:40px;height:5px;margin:0 auto 12px}.desktop-only{display:block}.mobile-config-bar{display:none}@media (width<=960px){.shell-header{flex-flow:wrap;align-items:center;gap:6px 8px;min-height:0;padding:6px 8px}.shell-header h1{flex:auto;min-width:6rem;font-size:.95rem}.header-material-menu{flex:0 auto;min-width:0}.header-material-pill{width:auto;min-width:0;max-width:9.5rem;height:24px;padding:0 8px;font-size:10px}.header-right{white-space:nowrap;border-top:none;flex-direction:row;flex:100%;justify-content:space-between;align-items:center;gap:8px;margin-left:0;padding-top:0}.header-dims-label,.header-dims-unit,.header-price-label{display:none}.header-dims strong,.header-price{font-size:.85rem}.header-price-block{gap:0}.mobile-config-bar{border:1px solid var(--shelves-border);background:#f0ebe4;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:0 4px;padding:6px 8px;display:flex}.mobile-config-group{align-items:center;gap:8px;min-width:0;display:flex}.mobile-config-label{text-transform:uppercase;letter-spacing:.06em;color:var(--shelves-text-muted);white-space:nowrap;font-size:.65rem;font-weight:700}.mobile-config-stepper{align-items:center;gap:6px;display:flex}.mobile-config-stepper button{border:1px solid var(--shelves-border);background:#fff;border-radius:8px;width:36px;height:36px;font-size:1.1rem;font-weight:700}.mobile-config-stepper strong{text-align:center;min-width:1.5rem;font-size:1rem}.mobile-config-select{border:1px solid var(--shelves-border);border-radius:8px;max-width:7.5rem;min-height:36px;padding:4px 8px;font-size:.85rem}.shell-body{border-radius:8px;margin:4px}.control-panel{display:none}.canvas-panel{border-radius:8px;padding-bottom:88px}.canvas-shell{position:relative}.canvas-hint{text-align:center;z-index:5;max-width:none;font-size:.68rem;line-height:1.35;inset:auto 8px 8px;transform:none}.mobile-dock{z-index:30;flex-wrap:nowrap;justify-content:center;align-items:end;gap:6px;display:flex;position:fixed;bottom:12px;left:4px;right:4px}.mobile-dock button{color:#fff;background:var(--shelves-tertiary);border:none;border-radius:50%;width:44px;height:44px;font-size:.625rem;font-weight:700;box-shadow:0 4px 12px #0003}.mobile-dock button:active{transform:scale(.95)}.mobile-dock .dock-add,.mobile-dock .dock-done{background:var(--shelves-primary);width:52px;height:52px;font-size:1rem}.mobile-dock .dock-add{font-size:1.5rem}.mobile-dock .dock-done{letter-spacing:.02em;font-size:.65rem}.mobile-dock .dock-clear{background:#9a6b4f;font-size:.58rem}.mobile-dock .dock-share{background:#6b8dae}}.toast-overlay{z-index:100;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.toast-popup{color:#fff;font-size:1rem;font-weight:700;font-family:var(--font-display-bold);letter-spacing:.04em;background:#54524feb;border-radius:12px;padding:14px 32px;animation:.25s ease-out toast-in;box-shadow:0 8px 32px #00000040}@keyframes toast-in{0%{opacity:0;transform:scale(.85)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}
