:root{--hc-bg:#fff;--hc-warm:#f7f4ee;--hc-dark:#1b1712;--hc-dark2:#17140d;--hc-body:#5c5346;--hc-muted:#7a6f5c;--hc-accent:#e8602c;--hc-accent-d:#c94b1e;--hc-accent-text:color-mix(in srgb, var(--hc-accent) 74%, #000);--hc-border:#e2d8c7;--hc-white:#fff;--hc-focus-ring:#e8602c3d;--hc-shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--hc-shadow-md:0 4px 8px #00000014, 0 2px 4px #0000000a;--hc-shadow-lg:0 12px 28px #0000001f, 0 4px 8px #0000000d;--hc-gold-gradient:linear-gradient(165deg, color-mix(in srgb, var(--hc-accent) 55%, #fff) 0%, color-mix(in srgb, var(--hc-accent) 88%, #fff) 55%, var(--hc-accent) 100%);--hc-gold-shadow:0 1px 0 #ffffff47 inset, 0 8px 20px #c94b1e47;--hc-scene-gradient:linear-gradient(145deg, var(--hc-warm) 0%, #ede6da 45%, #e2d8c7 100%);--font-serif:"Playfair Display", Georgia, "Times New Roman", serif;--font-sans:"DM Sans", "Segoe UI", system-ui, sans-serif;font-family:var(--font-sans);color:var(--hc-body);background:var(--hc-bg);-webkit-font-smoothing:antialiased;line-height:1.55}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}::selection{background:var(--hc-warm);color:var(--hc-dark)}.app{background:var(--hc-bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app--desktop-only{overflow:auto}.desktop-only{flex:1;justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.desktop-only__atmosphere{background:radial-gradient(90% 60% at 15% 10%,#b8892e38,#0000 55%),radial-gradient(70% 50% at 90% 85%,#1b171259,#0000 50%),linear-gradient(165deg,#1b1712 0%,#17140d 42%,#1a3d2e 100%);animation:14s ease-in-out infinite alternate desktop-only-drift;position:absolute;inset:0}.desktop-only__content{z-index:1;text-align:center;max-width:26rem;padding:2rem 1.5rem;position:relative}.desktop-only__brand{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--hc-white);margin:0 0 1.25rem;font-size:clamp(1.85rem,7vw,2.45rem);font-weight:600;line-height:1.1;animation:.7s ease-out both desktop-only-rise}.desktop-only__title{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--hc-accent);margin:0 0 .75rem;font-size:clamp(1.05rem,3.8vw,1.25rem);font-weight:600;animation:.7s ease-out 80ms both desktop-only-rise}.desktop-only__copy{color:color-mix(in srgb, var(--hc-white) 82%, var(--hc-warm));margin:0 0 1.75rem;font-size:.98rem;line-height:1.6;animation:.7s ease-out .16s both desktop-only-rise}.desktop-only__hint{color:var(--hc-muted);border:1px solid var(--hc-border);background:color-mix(in srgb, var(--hc-white) 78%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;justify-content:center;align-items:center;gap:.65rem;padding:.65rem 1rem;font-size:.78rem;font-weight:500;animation:.7s ease-out .24s both desktop-only-rise;display:inline-flex}.desktop-only__hint-icon{color:var(--hc-accent);flex-shrink:0;display:inline-flex}@keyframes desktop-only-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes desktop-only-drift{0%{transform:scale(1)}to{transform:scale(1.04)}}.app-header{background:var(--hc-bg);border-bottom:1px solid var(--hc-border);flex-shrink:0;padding:1rem 1.5rem}.app-header__brand{align-items:center;gap:.85rem;display:flex}.app-header__mark{background:var(--hc-dark);width:2.5rem;height:2.5rem;color:var(--hc-white);font-family:var(--font-sans);letter-spacing:.02em;border-radius:.65rem;flex-shrink:0;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex}.app-header__text h1{font-family:var(--font-serif);color:var(--hc-dark);letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:600;line-height:1.15}.app-header__text p{color:var(--hc-muted);margin:.2rem 0 0;font-size:.82rem}.app-layout{flex:1;grid-template-columns:minmax(340px,400px) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--hc-border);background:var(--hc-bg);flex-direction:column;min-width:0;min-height:0;padding:0;display:flex;overflow:hidden}.sidebar__scroll{scrollbar-width:thin;scrollbar-color:var(--hc-border) transparent;flex-direction:column;flex:1;gap:.85rem;min-height:0;padding:1rem 1.1rem;display:flex;overflow:hidden auto}.sidebar__scroll::-webkit-scrollbar{width:6px}.sidebar__scroll::-webkit-scrollbar-thumb{background:var(--hc-border);border-radius:3px}.checkout-bar{border-top:1px solid var(--hc-border);background:linear-gradient(180deg, color-mix(in srgb, var(--hc-warm) 55%, var(--hc-white)) 0%, var(--hc-white) 100%);flex-direction:column;flex-shrink:0;gap:.55rem;padding:.9rem 1.1rem 1.05rem;display:flex;box-shadow:0 -8px 24px #1b17120f}.checkout-bar__summary{flex-direction:column;gap:.12rem;min-width:0;display:flex}.checkout-bar__label{letter-spacing:.04em;text-transform:uppercase;color:var(--hc-muted);font-size:.68rem;font-weight:600}.checkout-bar__count{font-family:var(--font-serif);color:var(--hc-dark);font-size:1.05rem;font-weight:600;line-height:1.2}.checkout-bar__skus{color:var(--hc-muted);word-break:break-word;font-size:.72rem;line-height:1.35}.checkout-bar__button{appearance:none;width:100%;font-family:var(--font-sans);letter-spacing:.01em;color:var(--hc-white);cursor:pointer;background:#1b1712;border:none;border-radius:999px;padding:.85rem 1rem;font-size:.92rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;box-shadow:inset 0 1px #ffffff24,0 8px 20px #1b171247}.checkout-bar__button:hover:not(:disabled){background:#17140d;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff29,0 10px 24px #1b171257}.checkout-bar__button:active:not(:disabled){filter:brightness(.98);transform:translateY(0)}.checkout-bar__button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;background:color-mix(in srgb, var(--hc-muted) 35%, var(--hc-border));color:var(--hc-body)}.checkout-bar__button:focus-visible{outline:none;box-shadow:0 0 0 3px #1b171247,0 8px 20px #1b171247}.checkout-bar__message{color:var(--hc-accent-d);margin:0;font-size:.74rem;line-height:1.4}.checkout-bar__message--error{color:#9b2c2c}.feature-tags{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.feature-tags li{background:var(--hc-white);border:1px solid var(--hc-border);color:var(--hc-body);box-shadow:var(--hc-shadow-sm);border-radius:999px;align-items:center;gap:.35rem;padding:.38rem .7rem;font-size:.68rem;font-weight:500;display:inline-flex}.feature-tags li:before{content:"✓";color:var(--hc-accent);font-size:.62rem;font-weight:700}.main{background:var(--hc-bg);flex-direction:column;gap:.65rem;min-width:0;min-height:0;padding:0 1.25rem 1.25rem;display:flex;overflow:hidden}.scene-stage{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.scene-stage .scene-wrap{flex:1}.design-toolbar{z-index:6;pointer-events:none;align-items:center;gap:.45rem;display:flex;position:absolute;top:.85rem;right:.85rem}.design-toolbar>*{pointer-events:auto}.design-toolbar__current{border:1px solid var(--hc-border);max-width:11rem;box-shadow:var(--hc-shadow-sm);color:var(--hc-dark);white-space:nowrap;text-overflow:ellipsis;background:#fffffff0;border-radius:999px;align-items:center;gap:.4rem;padding:.38rem .7rem;font-size:.72rem;font-weight:600;display:inline-flex;overflow:hidden}.design-toolbar__dot{background:#d97706;border-radius:50%;flex-shrink:0;width:.45rem;height:.45rem}.design-toolbar__btn{appearance:none;border:1px solid var(--hc-border);color:var(--hc-dark);font-family:var(--font-sans);cursor:pointer;box-shadow:var(--hc-shadow-sm);background:#fffffff5;border-radius:999px;padding:.48rem .9rem;font-size:.78rem;font-weight:600;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.design-toolbar__btn:hover:not(:disabled){background:var(--hc-white);border-color:var(--hc-accent);transform:translateY(-1px)}.design-toolbar__btn--primary{color:var(--hc-white);background:#1b1712;border-color:#1b1712;box-shadow:inset 0 1px #ffffff24,0 8px 18px #1b17123d}.design-toolbar__btn--primary:hover:not(:disabled){color:var(--hc-white);background:#17140d;border-color:#17140d}.design-toolbar__btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.design-toolbar__btn:focus-visible{box-shadow:0 0 0 3px var(--hc-focus-ring);outline:none}.design-split{border-radius:999px;align-items:stretch;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff24,0 8px 18px #1b171247}.design-split__save,.design-split__chevron{appearance:none;color:var(--hc-white);font-family:var(--font-sans);cursor:pointer;background:#1b1712;border:1px solid #1b1712;font-weight:600;transition:background .15s,filter .15s,border-color .15s}.design-split__save{border-right:0;border-radius:999px 0 0 999px;align-items:center;gap:.4rem;padding:.48rem .75rem .48rem .85rem;font-size:.78rem;display:inline-flex}.design-split__icon{flex-shrink:0;display:block}.design-split__chevron{border-left:1px solid color-mix(in srgb, var(--hc-white) 22%, #1b1712);border-radius:0 999px 999px 0;justify-content:center;align-items:center;width:2rem;padding:0;display:inline-flex}.design-split__chevron.is-open svg{transform:rotate(180deg)}.design-split__chevron svg{transition:transform .15s;display:block}.design-split__save:hover:not(:disabled),.design-split__chevron:hover:not(:disabled){color:var(--hc-white);background:#17140d;border-color:#17140d}.design-split__save:disabled,.design-split__chevron:disabled{cursor:not-allowed}.design-split__save:focus-visible,.design-split__chevron:focus-visible{z-index:1;box-shadow:0 0 0 3px var(--hc-focus-ring);outline:none}.design-split--solo .design-split__save{border-right:1px solid #1b1712;border-radius:999px}.design-split__menu{z-index:8;background:var(--hc-white);border:1px solid var(--hc-border);min-width:11.5rem;box-shadow:var(--hc-shadow-md);border-radius:12px;flex-direction:column;gap:.12rem;padding:.3rem;animation:.16s ease-out design-toast-in;display:flex;position:absolute;top:calc(100% + .4rem);right:0}.design-split__menu button{appearance:none;width:100%;color:var(--hc-dark);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.5rem .7rem;font-size:.8rem;font-weight:600}.design-split__menu button:hover:not(:disabled){background:var(--hc-warm);color:var(--hc-accent-d)}.design-split__menu button:disabled{cursor:not-allowed}.design-toast{z-index:7;color:#fff8f5;max-width:min(22rem,100% - 1.7rem);box-shadow:var(--hc-shadow-md);background:#1b1712f0;border-radius:10px;margin:0;padding:.55rem .8rem;font-size:.78rem;font-weight:600;animation:.22s ease-out design-toast-in;position:absolute;top:3.55rem;right:.85rem}.design-toast--error{color:#fff7f7;background:#991b1bf0}@keyframes design-toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.design-drawer-root{z-index:20;position:fixed;inset:0;overflow:hidden}.design-drawer__backdrop{cursor:pointer;background:#1b171247;border:0;padding:0;position:absolute;inset:0}.design-drawer{z-index:1;background:var(--hc-white);border-left:1px solid var(--hc-border);flex-direction:column;width:min(24.5rem,100%);animation:.24s ease-out design-drawer-in;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-12px 0 32px #1b17121f}.design-drawer .design-modal__header{flex-shrink:0}.design-drawer .design-modal__body{flex:1}@keyframes design-drawer-in{0%{transform:translate(100%)}to{transform:none}}.design-modal-root{z-index:40;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.design-modal__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#1b17126b;border:0;padding:0;position:absolute;inset:0}.design-modal{z-index:1;background:var(--hc-white);border:1px solid var(--hc-border);width:min(40rem,100%);max-height:min(36rem,100dvh - 2.5rem);box-shadow:var(--hc-shadow-lg);border-radius:16px;flex-direction:column;animation:.22s ease-out design-modal-in;display:flex;position:relative;overflow:hidden}.design-modal--compact{gap:.55rem;width:min(24rem,100%);max-height:none;padding:1.15rem 1.2rem 1.1rem}.design-modal--compact .design-modal__title{margin:0}.design-modal--compact input{border:1px solid var(--hc-border);background:var(--hc-bg);width:100%;color:var(--hc-body);border-radius:10px;padding:.55rem .7rem;font-family:inherit;font-size:.88rem}.design-modal--compact input:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);background:var(--hc-white);outline:none}.design-modal--dev-login{width:min(28rem,100%)}.design-modal__token-form{flex-direction:column;gap:.35rem;margin-top:.35rem;display:flex}.design-modal__steps a{color:var(--hc-accent-d)}.design-modal__steps code{font-size:.74rem}.design-modal--dev-login textarea{resize:vertical;border:1px solid var(--hc-border);background:var(--hc-bg);width:100%;min-height:5.5rem;color:var(--hc-body);border-radius:10px;padding:.55rem .7rem;font-family:ui-monospace,Consolas,monospace;font-size:.78rem;line-height:1.4}.design-modal--dev-login textarea:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);background:var(--hc-white);outline:none}.design-modal__footer{justify-content:flex-end;gap:.45rem;margin-top:.35rem;display:flex}@keyframes design-modal-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.design-modal__header{border-bottom:1px solid var(--hc-border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1.05rem 1.15rem .85rem;display:flex}.design-modal__title{font-family:var(--font-serif);color:var(--hc-dark);margin:0;font-size:1.35rem;font-weight:600;line-height:1.15}.design-modal__subtitle{color:var(--hc-muted);margin:.25rem 0 0;font-size:.78rem}.design-modal__close{border:1px solid var(--hc-border);background:var(--hc-white);width:2rem;height:2rem;color:var(--hc-muted);cursor:pointer;border-radius:8px;font-size:1.2rem;line-height:1}.design-modal__close:hover{color:var(--hc-dark);background:var(--hc-warm)}.design-modal__save-as{border-bottom:1px solid var(--hc-border);background:color-mix(in srgb, var(--hc-warm) 55%, var(--hc-white));padding:.85rem 1.15rem}.design-modal__save-as-label{letter-spacing:.03em;text-transform:uppercase;color:var(--hc-muted);margin-bottom:.35rem;font-size:.7rem;font-weight:600;display:block}.design-modal__save-as-row{gap:.45rem;display:flex}.design-modal__save-as-row input,.design-modal__rename input{border:1px solid var(--hc-border);background:var(--hc-white);min-width:0;color:var(--hc-body);border-radius:10px;flex:1;padding:.48rem .65rem;font-family:inherit;font-size:.84rem}.design-modal__save-as-row input:focus,.design-modal__rename input:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);outline:none}.design-modal__body{min-height:0;padding:.7rem 1.15rem 1.1rem;overflow:auto}.design-modal__status,.design-modal__empty{color:var(--hc-muted);margin:.35rem 0 .7rem;font-size:.82rem}.design-modal__status--error{color:#9b2c2c}.design-modal__list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.design-modal__item{border:1px solid var(--hc-border);background:var(--hc-bg);border-radius:12px;flex-direction:column;gap:.55rem;padding:.75rem .8rem;display:flex}.design-modal__item--current{border-color:color-mix(in srgb, var(--hc-accent) 45%, var(--hc-border));background:color-mix(in srgb, var(--hc-accent) 8%, var(--hc-white))}.design-modal__item-name{color:var(--hc-dark);align-items:center;gap:.4rem;margin:0;font-size:.92rem;font-weight:600;display:flex}.design-modal__item-meta{color:var(--hc-muted);margin:.15rem 0 0;font-size:.72rem}.design-modal__badge{background:var(--hc-dark);color:var(--hc-white);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.08rem .4rem;font-size:.62rem;font-weight:700;display:inline-flex}.design-modal__actions,.design-modal__confirm,.design-modal__rename{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.design-modal__actions .btn,.design-modal__confirm .btn,.design-modal__rename .btn,.design-modal__save-as-row .btn{padding:.32rem .65rem;font-size:.74rem}.design-modal__confirm{color:#9b2c2c;font-size:.78rem}.main-toolbar{flex-shrink:0;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.85rem 0 0;display:flex}.main-toolbar__title{font-family:var(--font-serif);color:var(--hc-dark);font-size:1.05rem;font-weight:600}.main-toolbar__hint{color:var(--hc-muted);font-size:.72rem}.cabinet-transform{border:1px solid var(--hc-border);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:var(--hc-shadow-md);background:#fffffff5;border-radius:10px;margin:0;padding:.45rem .6rem}.cabinet-transform__row{flex-wrap:nowrap;align-items:center;gap:.35rem;display:flex;overflow-x:auto}.cabinet-transform__row .btn{padding:.32rem .6rem;font-size:.74rem}.cabinet-transform__actions{align-items:center;gap:.35rem;margin-left:auto;display:inline-flex}.cabinet-transform__angle{text-align:center;min-width:3.2rem;color:var(--hc-dark);font-size:.8rem;font-weight:700}.cabinet-transform__hint{color:var(--hc-muted);margin:.3rem 0 0;font-size:.64rem}.cabinet-transform__overlap{border-top:1px solid #fde68a;flex-flow:wrap;align-items:center;gap:.4rem;margin-top:.4rem;padding-top:.4rem;display:flex}.cabinet-transform__overlap-text{color:#92400e;flex:8rem;margin:0;font-size:.68rem;line-height:1.35}.cabinet-transform__overlap .btn{align-self:flex-start;padding:.32rem .6rem;font-size:.72rem}.cabinet-transform__overlap .btn:disabled{opacity:.55}.panel{background:var(--hc-white);border:1px solid var(--hc-border);min-width:0;max-width:100%;box-shadow:var(--hc-shadow-sm);border-radius:12px;padding:1rem 1.05rem}.panel-header-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.panel-header-row h2{margin:0}.unit-select{font-size:.78rem;font-family:var(--font-sans);color:var(--hc-dark);background:var(--hc-white);border:1px solid var(--hc-border);cursor:pointer;border-radius:8px;padding:.3rem .55rem;transition:border-color .15s,box-shadow .15s}.unit-select:hover{border-color:color-mix(in srgb, var(--hc-muted) 50%, var(--hc-border))}.unit-select:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);outline:none}.panel h2{font-family:var(--font-serif);color:var(--hc-dark);font-size:1.05rem;font-weight:600}.room-setup{flex-direction:column;flex-shrink:0;gap:.85rem;padding-top:.75rem;display:flex}.setup-tabs{background:var(--hc-warm);border:1px solid var(--hc-border);border-radius:10px;flex-shrink:0;grid-template-columns:1fr 1fr;gap:.25rem;margin:0 -.15rem;padding:.2rem;display:grid}.setup-tabs__tab{appearance:none;color:var(--hc-muted);font-family:var(--font-sans);letter-spacing:.01em;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.55rem .65rem;font-size:.78rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.setup-tabs__tab:hover{color:var(--hc-body)}.setup-tabs__tab--active{background:var(--hc-white);color:var(--hc-dark);box-shadow:var(--hc-shadow-sm)}.setup-tabs__tab:focus-visible{outline:2px solid var(--hc-accent);outline-offset:1px}.setup-tabs__panels{grid-template-columns:minmax(0,1fr);min-width:0;min-height:11.5rem;display:grid}.setup-tabs__panel{grid-area:1/1;min-width:0;display:none}.setup-tabs__panel--active{visibility:visible;pointer-events:auto;z-index:1;display:block;position:relative}.hint{color:var(--hc-muted);margin:0 0 .75rem;font-size:.78rem;line-height:1.5}.field-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:.65rem;display:grid}.field-row label{color:var(--hc-muted);flex-direction:column;gap:.3rem;min-width:0;font-size:.7rem;font-weight:500;display:flex}.field-row input{border:1px solid var(--hc-border);background:var(--hc-bg);width:100%;min-width:0;color:var(--hc-body);border-radius:8px;padding:.45rem .5rem;font-family:inherit;font-size:.82rem;transition:border-color .15s,box-shadow .15s}.field-row input:hover{border-color:color-mix(in srgb, var(--hc-muted) 50%, var(--hc-border))}.field-row input:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);background:var(--hc-white);outline:none}.btn{color:var(--hc-white);cursor:pointer;background:#1b1712;border:1px solid #1b1712;border-radius:999px;padding:.55rem 1rem;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s,color .15s}a.btn{box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover{color:var(--hc-white);background:#17140d;border-color:#17140d}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #1b171247}.btn.primary{color:var(--hc-white);background:#1b1712;border-color:#1b1712;box-shadow:inset 0 1px #ffffff24,0 8px 18px #1b17123d}.btn.primary:hover{color:var(--hc-white);background:#17140d;border-color:#17140d}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn.danger{color:#b91c1c;background:#fff;border-color:#fecaca}.btn.danger:hover{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.btn.full{width:100%;margin-top:.2rem}.btn-row{flex-wrap:wrap;gap:.4rem;display:flex}.btn-row .btn{flex:auto;min-width:0}.file-label{cursor:pointer;max-width:100%;color:var(--hc-body);background:#e8e8e6;border:1px solid #d4d4d4;border-radius:999px;margin-top:.4rem;padding:.45rem .7rem;font-size:.8rem;transition:background .15s,border-color .15s,color .15s;display:inline-block}.file-label:hover{color:var(--hc-body);background:#dcdcdc;border-color:#c8c8c6}.file-label--disabled,.file-label--disabled:hover{opacity:.55;cursor:not-allowed;pointer-events:none;background:var(--hc-bg);border-color:var(--hc-border);color:var(--hc-muted)}.upload-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.upload-actions .file-label{margin-top:0}.room-image-preview{flex-direction:column;gap:.45rem;margin-top:.4rem;display:flex}.room-image-preview img{object-fit:contain;border:1px solid var(--hc-border);background:var(--hc-warm);border-radius:10px;width:100%;max-height:180px;display:block}.room-image-preview__meta{margin:0}.preview-cabinets{margin-top:.85rem}.preview-prompt{color:var(--hc-dark);gap:.3rem;margin:.75rem 0 .55rem;font-size:.78rem;font-weight:600;display:grid}.preview-prompt textarea{resize:vertical;border:1px solid var(--hc-border);width:100%;min-height:3.2rem;font-family:var(--font-sans);color:var(--hc-body);background:var(--hc-white);border-radius:8px;padding:.45rem .55rem;font-size:.8rem;font-weight:400}.preview-prompt textarea:hover{border-color:color-mix(in srgb, var(--hc-muted) 50%, var(--hc-border))}.preview-prompt textarea:focus{border-color:var(--hc-accent);box-shadow:0 0 0 3px var(--hc-focus-ring);outline:none}.preview-prompt textarea:disabled{opacity:.55}.cabinet-file-list{flex-direction:column;gap:.35rem;margin:.55rem 0 0;padding:0;list-style:none;display:flex}.cabinet-file-chip{border:1px solid var(--hc-border);background:var(--hc-white);border-radius:8px;grid-template-columns:2.2rem minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.3rem .4rem;font-size:.75rem;display:grid}.cabinet-file-chip img{object-fit:cover;background:var(--hc-warm);border-radius:6px;width:2.2rem;height:2.2rem}.cabinet-file-chip span{text-overflow:ellipsis;white-space:nowrap;color:var(--hc-body);overflow:hidden}.cabinet-file-chip__remove{appearance:none;color:var(--hc-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.15rem .35rem;font-size:1.1rem;line-height:1}.cabinet-file-chip__remove:hover{color:#991b1b;background:#fef2f2}.cabinet-file-chip__remove:disabled{opacity:.45;cursor:not-allowed}.preview-result{margin-top:.75rem}.room-analysis-status{margin:0;font-style:italic}.room-analysis-response{margin-top:.15rem}.room-analysis-response__title{color:var(--hc-dark);margin:0 0 .35rem;font-size:.8rem;font-weight:600}.room-analysis-response pre{background:var(--hc-warm);max-height:160px;color:var(--hc-body);border:1px solid var(--hc-border);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:.35rem 0 0;padding:.5rem;font-size:.65rem;overflow:auto}.room-analysis-ok{color:#166534;background:#ecfdf3;border:1px solid #bbf7d0}.room-analysis-warn{color:#854d0e;background:#fffbeb;border:1px solid #fde047}.room-analysis-summary{grid-template-columns:1fr 1fr;gap:.35rem .75rem;margin:0;font-size:.75rem;display:grid}.room-analysis-summary div{display:contents}.room-analysis-summary dt{color:var(--hc-muted);margin:0;font-weight:500}.room-analysis-summary dd{color:var(--hc-dark);margin:0;font-weight:600}.panel--calibration{border-top:1px dashed var(--hc-border);margin-top:.75rem;padding-top:.75rem}.calibration-preview{border:1px solid var(--hc-border);border-radius:10px;margin:.65rem 0;position:relative;overflow:hidden}.calibration-preview img{width:100%;height:auto;display:block}.calibration-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.calibration-line--horizon{stroke:#f59e0b;stroke-width:.004px;stroke-dasharray:.02 .01}.calibration-floor{fill:color-mix(in srgb, var(--hc-accent) 22%, transparent);stroke:var(--hc-accent);stroke-width:.004px}.panel--calibration label{gap:.25rem;margin-bottom:.55rem;font-size:.78rem;display:grid}.panel--calibration .range-value{color:var(--hc-muted);font-size:.72rem}.calibration-actions{flex-wrap:wrap;gap:.5rem;margin-top:.35rem;display:flex}.room-analysis-details summary{cursor:pointer;color:var(--hc-accent);margin-top:.35rem;font-size:.75rem}.panel-divider{border:none;border-top:1px solid var(--hc-border);margin:1rem 0 .85rem}.panel-subtitle{font-family:var(--font-serif);color:var(--hc-dark);margin:0 0 .35rem;font-size:1rem;font-weight:600}.placement-hint{background:var(--hc-bg);border:1px solid var(--hc-border);color:var(--hc-body);border-radius:8px;margin-top:.4rem;padding:.45rem .6rem;font-size:.75rem}.banner{border-radius:8px;margin-bottom:.4rem;padding:.4rem .55rem;font-size:.75rem}.banner.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;justify-content:space-between;align-items:flex-start;gap:.4rem;display:flex}.error{color:#b91c1c;font-size:.8rem}.link{color:var(--hc-accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:.75rem;text-decoration:underline}.link:hover{color:var(--hc-accent-d)}.layout-json pre{background:var(--hc-warm);max-height:100px;color:var(--hc-body);border:1px solid var(--hc-border);border-radius:8px;padding:.5rem;font-size:.65rem;overflow:auto}.toolbar-cabinets{flex-shrink:0}.placement-hint--top{margin:0 0 .4rem}.toolbar-cabinets .palette-label{color:var(--hc-muted);margin:0 0 .35rem;font-size:.72rem}.cabinet-palette-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;width:100%;margin:0;padding:0;list-style:none;display:grid}.cabinet-palette-list>li{min-width:0}.palette-item{border:1px solid var(--hc-border);background:var(--hc-white);cursor:grab;text-align:center;width:100%;min-width:0;box-shadow:var(--hc-shadow-sm);border-radius:10px;flex-direction:column;align-items:stretch;gap:.2rem;padding:.35rem;font-size:.7rem;transition:border-color .15s,box-shadow .15s;display:flex}.palette-item:hover{border-color:color-mix(in srgb, var(--hc-accent) 40%, var(--hc-border))}.palette-item:active{cursor:grabbing}.palette-item.active{border-color:var(--hc-accent);box-shadow:0 0 0 2px var(--hc-focus-ring)}.palette-thumb{flex-direction:column;align-items:center;gap:.15rem;width:100%;min-width:0;display:flex}.palette-thumb-svg{background:linear-gradient(#d7dce4 0%,#c7ced9 55%,#bec6d1 100%);border-radius:7px;width:100%;height:64px;display:block;box-shadow:inset 0 1px #ffffff73}.palette-thumb-label{text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--hc-body);font-size:.68rem;font-weight:600;display:block;overflow:hidden}.palette-thumb-size{color:var(--hc-muted);font-size:.62rem}.palette-preview,.cabinet-preview{background:linear-gradient(180deg, var(--hc-warm) 0%, var(--hc-bg) 100%);border-radius:6px;width:100%;min-width:0;max-width:100%;height:56px;overflow:hidden}.palette-preview canvas,.cabinet-preview canvas{display:block;width:100%!important;height:100%!important}.layout-panel,.product-catalog{flex-shrink:0}.product-catalog__banner{margin-bottom:.5rem}.category-filters-stack{flex-direction:column;gap:.45rem;width:100%;margin-bottom:.65rem;display:flex}.category-filters{flex-wrap:wrap;gap:.4rem;width:100%;display:flex}.category-filters--children{border-left:2px solid var(--hc-border);margin-top:.35rem;margin-left:.55rem;padding-left:.45rem}.product-catalog__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.15rem;display:flex}.product-catalog__header h2{margin:0}.cabinet-filters-icon-btn{border:1px solid var(--hc-border);background:var(--hc-white);width:34px;height:34px;color:var(--hc-dark);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex;position:relative}.cabinet-filters-icon-btn:hover{background:var(--hc-warm);border-color:var(--hc-dark)}.cabinet-filters-icon-btn--active{border-color:var(--hc-accent);color:var(--hc-accent)}.cabinet-filters-icon-btn__badge{background:var(--hc-accent);color:#fff;text-align:center;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:17px;position:absolute;top:-5px;right:-5px}.cabinet-filters-active-summary{background:var(--hc-warm);color:var(--hc-dark);border-radius:10px;align-items:center;gap:.35rem;margin:0 0 .55rem;padding:.4rem .65rem;font-size:.72rem;font-weight:600;line-height:1.3;display:flex}.cabinet-filters-active-summary__icon{opacity:.5;flex-shrink:0}.cabinet-filters-active-summary__count{color:var(--hc-muted);white-space:nowrap;margin-left:auto;font-size:.65rem;font-weight:500}.cabinet-filters-drawer-groups{flex-direction:column;gap:.85rem;display:flex}.cabinet-filters-drawer-group-toggle{border:none;border-bottom:1px solid var(--hc-border);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:.4rem;width:100%;padding:.55rem 0;display:flex}.cabinet-filters-drawer-group-toggle:hover{background:var(--hc-warm);border-radius:8px;padding-left:.4rem;padding-right:.4rem}.cabinet-filters-drawer-group-toggle--static{cursor:default;pointer-events:none}.cabinet-filters-drawer-group-toggle--static:hover{background:0 0;padding-left:0;padding-right:0}.cabinet-filters-drawer-group-title{letter-spacing:.03em;text-transform:uppercase;color:var(--hc-muted);flex:1;margin:0;font-size:.72rem;font-weight:700}.cabinet-filters-drawer-group-badge{background:var(--hc-dark);min-width:0;color:var(--hc-white);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex-shrink:1;max-width:10rem;padding:.15rem .5rem;font-size:.62rem;font-weight:600;overflow:hidden}.cabinet-filters-drawer-chevron{color:var(--hc-muted);flex-shrink:0;transition:transform .18s}.cabinet-filters-drawer-chevron--open{transform:rotate(180deg)}.cabinet-filters-drawer-options{flex-direction:column;gap:.3rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.cabinet-filters-drawer-option{border:1px solid var(--hc-border);background:var(--hc-bg);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:.55rem;padding:.45rem .6rem;transition:border-color .12s,background .12s;display:flex}.cabinet-filters-drawer-option:hover{border-color:color-mix(in srgb, var(--hc-dark) 30%, var(--hc-border));background:var(--hc-warm)}.cabinet-filters-drawer-option input[type=checkbox],.cabinet-filters-drawer-option input[type=radio]{appearance:none;border:1.5px solid var(--hc-border);background:var(--hc-white);cursor:pointer;border-radius:5px;flex-shrink:0;place-items:center;width:16px;height:16px;transition:border-color .12s;display:inline-grid}.cabinet-filters-drawer-option input[type=radio]{border-radius:999px}.cabinet-filters-drawer-option input[type=checkbox]:after,.cabinet-filters-drawer-option input[type=radio]:after{content:"";background:var(--hc-dark);border-radius:3px;width:8px;height:8px;transition:transform .12s;transform:scale(0)}.cabinet-filters-drawer-option input[type=radio]:after{border-radius:999px}.cabinet-filters-drawer-option--active{border-color:var(--hc-dark);background:color-mix(in srgb, var(--hc-dark) 8%, var(--hc-white))}.cabinet-filters-drawer-option--active input[type=checkbox],.cabinet-filters-drawer-option--active input[type=radio]{border-color:var(--hc-dark)}.cabinet-filters-drawer-option input[type=checkbox]:checked:after,.cabinet-filters-drawer-option input[type=radio]:checked:after{transform:scale(1)}.cabinet-filters-drawer-option__label{color:var(--hc-body);flex:1;font-size:.82rem;font-weight:600}.cabinet-filters-drawer-option__count{background:var(--hc-warm);min-width:22px;height:20px;color:var(--hc-muted);text-align:center;border-radius:6px;flex-shrink:0;padding:0 5px;font-size:.65rem;font-weight:700;line-height:20px}.cabinet-filters-drawer-option--active .cabinet-filters-drawer-option__count{background:var(--hc-dark);color:var(--hc-white)}.cabinet-filters-drawer-title-icon{vertical-align:-.15em;opacity:.65;margin-right:.35rem;display:inline-block}.cabinet-filters-drawer-footer{border-top:1px solid var(--hc-border);flex-shrink:0;justify-content:flex-end;gap:.55rem;padding:.85rem 1.15rem 1.05rem;display:flex}.cabinet-filters-drawer-footer .btn{min-width:6.5rem}.category-pill{font-size:.75rem;font-family:var(--font-sans);color:var(--hc-dark);background:var(--hc-white);border:1px solid var(--hc-border);cursor:pointer;white-space:nowrap;border-radius:20px;padding:.3rem .75rem;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.category-pill--child{background:var(--hc-white);color:#5a5a5a;padding:.24rem .65rem;font-size:.72rem}.category-pill--soft-active{color:#1b1712;box-shadow:none;background:#e4e3e3;border-color:#1b1712}.category-pill--soft-active:hover{background:#d1d1d0;border-color:#17140d}.category-pill:hover{background:var(--hc-warm);border-color:#1b1712}.category-pill--active{color:var(--hc-white);box-shadow:var(--hc-shadow-sm);background:#1b1712;border-color:#1b1712}.category-pill--active:hover{background:#17140d;border-color:#17140d}.product-catalog__list{margin-top:.35rem}.product-card{text-align:center;border:none;font-family:inherit}.product-card--disabled{opacity:.55;cursor:not-allowed}.product-card__image{object-fit:contain;background:linear-gradient(#d7dce4 0%,#c7ced9 55%,#bec6d1 100%);border-radius:7px;width:100%;height:64px;box-shadow:inset 0 1px #ffffff73}.product-card__meta{color:var(--hc-muted);flex-wrap:wrap;justify-content:center;gap:.25rem .4rem;font-size:.6rem;display:flex}.product-card__id{color:var(--hc-body);font-weight:600}.product-card__sku{font-family:ui-monospace,monospace}.product-card__source{border:1px solid var(--hc-border);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.1rem .35rem;font-weight:600}.product-card__source--demo{background:var(--hc-warm)}.product-card__source--woocommerce{background:color-mix(in srgb, var(--hc-accent) 12%, var(--hc-white));color:var(--hc-accent-d);border-color:color-mix(in srgb, var(--hc-accent) 25%, var(--hc-border))}.product-badge{border-radius:999px;margin-top:.15rem;padding:.12rem .4rem;font-size:.58rem;font-weight:600;display:inline-block}.product-badge--warn{color:#854d0e;background:#fef9c3;border:1px solid #fde047}.scene-wrap{background:var(--hc-scene-gradient);border:1px solid var(--hc-border);width:100%;min-height:0;box-shadow:var(--hc-shadow-lg);border-radius:16px;flex:1;position:relative;overflow:hidden}.scene-wrap--drop{outline:3px dashed var(--hc-accent);outline-offset:-3px}.scene-wrap--dragging,.scene-wrap--dragging canvas{cursor:grabbing}.scene-wrap canvas{display:block;width:100%!important;height:100%!important}.scene-wrap--photo{background:var(--hc-dark2);flex-direction:column;display:flex}.scene-wrap--upload{background:var(--hc-warm);justify-content:stretch;align-items:stretch;display:flex}.scene-upload-placeholder{border:2px dashed color-mix(in srgb, var(--hc-muted) 45%, var(--hc-border));color:var(--hc-muted);letter-spacing:.01em;text-align:center;border-radius:16px;flex:1;justify-content:center;align-items:center;margin:1.25rem;font-size:1.15rem;font-weight:500;display:flex}.scene-wrap--photo>.scene-photo-stage{flex:auto;width:100%;height:auto;min-height:0;position:relative;inset:auto}.scene-wrap--photo canvas{z-index:1;position:absolute;inset:0;width:100%!important;height:100%!important}.scene-wrap--analyzing .scene-toolbar{opacity:.45;pointer-events:none}.scene-loading-overlay{z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1b17127a;place-items:center;display:grid;position:absolute;inset:0}.scene-loading-overlay__card{border:1px solid var(--hc-border);box-shadow:var(--hc-shadow-lg);color:var(--hc-body);background:#fffffff5;border-radius:14px;flex-direction:column;align-items:center;gap:.75rem;padding:1.1rem 1.35rem;font-size:.85rem;font-weight:500;display:flex}.scene-loading-spinner{border:3px solid var(--hc-border);border-top-color:var(--hc-accent);border-radius:50%;width:2rem;height:2rem;animation:.8s linear infinite scene-spin}@keyframes scene-spin{to{transform:rotate(360deg)}}.scene-photo-stage{z-index:0;pointer-events:auto;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.scene-photo-frame{transform-origin:50%;pointer-events:auto;position:relative;overflow:hidden}.scene-photo-backdrop{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.scene-floor-overlay{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.scene-floor-overlay__shape{fill:color-mix(in srgb, var(--hc-accent) 28%, transparent);stroke:var(--hc-accent-d);stroke-width:.004px}.scene-wrap--analyzing .scene-floor-overlay__shape{fill:color-mix(in srgb, var(--hc-accent) 12%, transparent);stroke:color-mix(in srgb, var(--hc-accent-d) 45%, transparent)}.scene-wrap--loading{color:var(--hc-muted);place-items:center;font-size:.95rem;display:grid}.scene-hint{z-index:3;color:var(--hc-body);border:1px solid var(--hc-border);box-shadow:var(--hc-shadow-md);pointer-events:none;text-align:center;background:#fffffff0;border-radius:10px;max-width:min(28rem,100% - 2rem);margin:0;padding:.45rem .75rem;font-size:.72rem;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.scene-toolbar{z-index:3;pointer-events:none;justify-content:flex-start;align-items:flex-end;gap:.5rem;display:flex;position:absolute;bottom:.75rem;left:.75rem;right:.75rem}.scene-wrap--photo .scene-toolbar{border-top:1px solid var(--hc-border);background:#fffffff7;flex:none;justify-content:space-between;align-items:center;margin:0;padding:.65rem .75rem .75rem;position:relative;bottom:auto;left:auto;right:auto}.scene-toolbar .cabinet-transform{pointer-events:auto;flex:auto;max-width:100%}.scene-wrap--photo .scene-toolbar .cabinet-transform{max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;padding:0}.scene-zoom{pointer-events:auto;border:1px solid var(--hc-border);box-shadow:var(--hc-shadow-sm);background:#fff;border-radius:10px;flex-direction:row;flex-shrink:0;align-items:center;gap:.3rem;padding:.25rem;display:inline-flex}.scene-zoom__btn{width:2rem;height:2rem;color:var(--hc-white);cursor:pointer;background:#1b1712;border:1px solid #1b1712;border-radius:8px;font-size:1.1rem;font-weight:700;line-height:1}.scene-zoom__btn:hover:not(:disabled){background:#17140d;border-color:#17140d}.scene-zoom__btn:disabled{opacity:.4;cursor:not-allowed}.scene-zoom__value{text-align:center;min-width:2.6rem;color:var(--hc-muted);font-size:.68rem;font-weight:600}.scene-confirm{z-index:3;color:#fff8f5;box-shadow:var(--hc-shadow-sm);pointer-events:none;z-index:4;background:#1b1712e6;border-radius:9px;margin:0;padding:.4rem .65rem;font-size:.72rem;font-weight:600;position:absolute;top:3.55rem;right:.9rem}.scene-overlap-warn{color:#fffbeb;box-shadow:var(--hc-shadow-sm);pointer-events:none;z-index:4;background:#92400eeb;border-radius:9px;max-width:min(22rem,100% - 16rem);margin:0;padding:.4rem .65rem;font-size:.72rem;font-weight:600;position:absolute;top:.9rem;left:.9rem}@media (width<=899px){html,body,#root{overflow:auto}}
