:root{--forte-yellow:#ffe863;--forte-black:#121111;--forte-white:#fff;--forte-pepper:#f2eee7;--forte-cream:#fffdf4;--forte-moduklix-blue:#5c7099;--color-brand-primary:var(--forte-yellow);--color-brand-secondary:var(--forte-black);--color-accent-moduklix:var(--forte-moduklix-blue);--color-text-on-moduklix:var(--forte-white);--color-surface-page:var(--forte-pepper);--color-surface-raised:var(--forte-white);--color-surface-sunken:var(--forte-cream);--color-surface-inverse:var(--forte-black);--color-surface-accent:var(--forte-yellow);--color-surface-chrome:var(--forte-cream);--color-surface-viewport:var(--forte-white);--color-text-primary:var(--forte-black);--color-text-secondary:#5a5654;--color-text-inverse:var(--forte-white);--color-text-on-accent:var(--forte-black);--color-border-subtle:#dcd6cc;--color-border-strong:#8e8477;--color-success:#3f6b47;--color-warning:#8a4a20;--color-error:#a12626;--color-info:#35617a;--color-surface-danger:var(--color-error);--color-text-on-danger:var(--forte-white);--color-focus:var(--forte-yellow);--color-focus-ring:var(--forte-black);--radius-15:15px;--radius-30:30px;--radius-45:45px;--radius-60:60px;--radius-pill:9999px;--radius-control:var(--radius-15);--radius-card:var(--radius-30);--radius-frame:var(--radius-45);--space-base:4px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--font-family-base:"Helvetica Neue LT Pro", "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;--font-weight-base:300;--font-weight-strong:400;--font-size-xs:.8125rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--line-height-base:1.5;--line-height-tight:1.2;--tracking-tight:0;--shadow-sm:0 1px 2px #1211110f;--shadow-md:0 4px 16px #1211111a;--touch-min:44px;--duration-fast:.12s;--duration-base:.2s}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s}}.app{background:var(--color-surface-page);min-height:100%}.app--configurator{height:var(--app-height,100dvh);background:var(--color-surface-chrome);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.topbar,.sidebar{--color-surface-sunken:var(--color-surface-page)}.app--message{gap:var(--space-4);padding:var(--space-8);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.app--message h1,.app--message p{margin:0}.ui-icon{flex:none;width:1.35rem;height:1.35rem;display:block}.topbar{z-index:20;gap:var(--space-4);min-height:5.125rem;padding:var(--space-2) var(--space-6);background:var(--color-surface-chrome);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(17rem,.78fr) minmax(35rem,1.55fr) auto;align-items:center;display:grid;position:relative}.topbar__brand{gap:var(--space-3);align-items:center;min-width:0;display:flex}.topbar__brand>div{min-width:0}.topbar__logo{width:6.5rem;height:3rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px dashed var(--color-border-strong);flex:none;place-items:center;display:grid}.topbar__logo:not(.topbar__logo--image){border-radius:var(--radius-control)}.topbar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-strong);line-height:var(--line-height-tight);text-overflow:ellipsis;letter-spacing:var(--tracking-tight);white-space:nowrap;margin:0;overflow:hidden}.topbar__subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar__steps{scrollbar-width:none;min-width:0;overflow-x:auto}.topbar__steps::-webkit-scrollbar{display:none}.stepper__list{justify-content:center;align-items:center;min-width:max-content;margin:0;padding:0;list-style:none;display:flex}.stepper__item{align-items:center;display:flex}.stepper__item:not(:last-child):after{width:clamp(var(--space-2), 1.2vw, var(--space-6));height:1px;margin-inline:var(--space-2);content:"";background:var(--color-border-subtle)}.stepper__step{gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-1);font:inherit;font-size:var(--font-size-xs);color:var(--color-text-primary);white-space:nowrap;cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;display:inline-flex;position:relative}.stepper__step:after{right:var(--space-1);bottom:calc(var(--space-2) * -1);left:var(--space-1);content:"";background:0 0;height:2px;position:absolute}@media (hover:hover){.stepper__step:hover:not(:disabled){background:var(--color-surface-sunken)}}.stepper__step--active{font-weight:var(--font-weight-strong)}.stepper__step--active:after{background:var(--color-brand-secondary)}.stepper__step--upcoming{color:var(--color-text-secondary);cursor:not-allowed}.stepper__index{width:2rem;height:2rem;font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;background:var(--color-surface-page);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);justify-content:center;align-items:center;display:inline-flex}.stepper__step--active .stepper__index{color:var(--color-text-on-accent);background:var(--color-surface-accent);border-color:var(--color-brand-secondary)}.stepper__badge{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar__actions{gap:var(--space-2);align-items:stretch;display:flex}.price{gap:var(--space-3);min-width:12rem;min-height:var(--touch-min);padding:var(--space-2) var(--space-4);color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-brand-secondary);border-radius:var(--radius-pill);align-items:center;margin:0;display:flex}.price>span{display:grid}.price__value{font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;line-height:var(--line-height-tight)}.price__label{font-size:var(--font-size-xs)}.topbar-action{gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:nowrap;cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;align-items:center;display:inline-flex}@media (hover:hover){.topbar-action:hover{background:var(--color-surface-page)}}.salon-sign-out{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.salon-sign-out__account{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.layout{grid-template-columns:minmax(0,1fr) clamp(22rem,28vw,25rem);min-height:0;display:grid;overflow:hidden}.viewport{min-width:0;min-height:0;margin:var(--space-3);isolation:isolate;background:var(--color-surface-viewport);border:1px solid var(--color-border-subtle);border-radius:var(--radius-frame);position:relative;overflow:hidden}.viewport__canvas{z-index:1;position:absolute;inset:0}.viewport__canvas canvas{display:block}.viewport__loading{color:var(--color-text-secondary);background:var(--color-surface-viewport);place-items:center;margin:0;display:grid;position:absolute;inset:0}.viewport__loading--failed{align-content:center;gap:var(--space-3);padding:var(--space-4);text-align:center}.viewport__loading--failed p{margin:0}.viewport__hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.viewport-back{top:var(--space-6);left:var(--space-6);z-index:5;gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);color:var(--color-text-primary);cursor:pointer;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);align-items:center;display:inline-flex;position:absolute}.viewport-settings{top:var(--space-6);z-index:7;gap:var(--space-2);flex-wrap:wrap;align-items:flex-start;display:flex;position:absolute;left:18rem}.viewport-wall-settings>summary{gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);cursor:pointer;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);align-items:center;list-style:none;display:flex}.viewport-wall-settings>summary:focus-visible{box-shadow:var(--shadow-sm), 0 0 0 5px var(--color-focus-ring)}.viewport-wall-settings>summary::-webkit-details-marker{display:none}.viewport-wall-settings__panel{width:16rem;margin-top:var(--space-2);padding:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);box-shadow:var(--shadow-md)}.viewport-wall-settings__panel .field+.field,.viewport-wall-settings__panel .field+.button{margin-top:var(--space-1)}.viewport-notice{bottom:7.5rem;left:var(--space-6);z-index:5;gap:var(--space-3);max-width:23rem;min-height:var(--touch-min);padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);box-shadow:var(--shadow-sm);align-items:center;display:flex;position:absolute}.viewport-notice>.ui-icon{color:var(--color-brand-secondary)}.viewport-notice__close{width:var(--touch-min);min-width:var(--touch-min);height:var(--touch-min);margin:calc(var(--space-2) * -1);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:0;flex:none;place-items:center;margin-left:auto;padding:0;display:grid}.viewport-notice strong{color:var(--color-text-primary);display:block}.scene-toolbar-dock{right:0;bottom:var(--space-4);z-index:6;gap:var(--space-2);width:fit-content;max-width:calc(100% - var(--space-6));align-items:center;margin-inline:auto;display:flex;position:absolute;left:0}.scene-toolbar{min-width:0;padding:var(--space-1) var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);align-items:stretch;display:flex;overflow-x:auto}.scene-toolbar[hidden]{display:none}.scene-toolbar-toggle{gap:var(--space-2);min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-2);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);white-space:nowrap;color:var(--color-text-primary);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.scene-toolbar-toggle:hover{background:var(--color-surface-sunken)}}.scene-tool{gap:var(--space-1);min-width:3.75rem;min-height:var(--touch-min);padding:var(--space-1);font:inherit;font-size:var(--font-size-xs);color:var(--color-text-primary);cursor:pointer;border:0;border-right:1px solid var(--color-border-subtle);background:0 0;flex:none;place-items:center;display:grid}.scene-tool:last-child{border-right:0}@media (hover:hover){.scene-tool:hover{background:var(--color-surface-sunken)}}.scene-tool__icon{border-radius:var(--radius-pill);place-items:center;width:1.75rem;height:1.75rem;display:grid}.scene-tool__icon--active{color:var(--color-text-on-accent);background:var(--color-surface-accent);box-shadow:inset 0 0 0 1px var(--color-brand-secondary)}.sidebar{min-width:0;font-size:var(--font-size-sm);background:var(--color-surface-chrome);flex-direction:column;min-height:0;display:flex;container-type:inline-size}.sidebar__scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.sidebar__footer{z-index:2;padding:var(--space-3) var(--space-4);background:var(--color-surface-chrome);border-top:1px solid var(--color-border-subtle);margin-top:auto;position:relative}.flow-actions{gap:var(--space-3);justify-content:flex-end;display:flex}.flow-actions__next{min-width:8rem}.sidebar__footer .status{margin-top:var(--space-2);justify-content:flex-end}.runtime-meta{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel,.summary-panel{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.panel--catalog{padding:var(--space-4)}.panel__intro{gap:var(--space-3);margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.panel__intro--catalog{flex-direction:column;align-items:stretch}.panel__intro--catalog>div{flex:1;min-width:0}.panel__intro--catalog .search-field{flex:none;width:100%}.panel__intro--catalog .panel__heading{font-size:var(--font-size-lg)}.panel__intro p:last-child{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.panel__eyebrow{margin:0 0 var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);color:var(--color-text-secondary)}.panel__heading{font-size:var(--font-size-lg);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);margin:0}.panel__empty{margin:var(--space-4) 0 0;padding:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-surface-sunken);border-radius:var(--radius-control)}.panel__hint{margin:var(--space-4) 0 0;padding:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-surface-sunken);border-radius:var(--radius-control)}.search-field{gap:var(--space-2);min-height:var(--touch-min);padding-inline:var(--space-3);color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);align-items:center;display:flex}.search-field input{width:100%;min-width:0;min-height:calc(var(--touch-min) - 2px);font:inherit;color:var(--color-text-primary);background:0 0;border:0;outline:0;padding:0}.filter-chips{gap:var(--space-1);margin-block:var(--space-3);flex-wrap:wrap;display:flex}.filter-chip{min-height:var(--touch-min);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--font-size-xs);color:var(--color-text-primary);white-space:nowrap;cursor:pointer;background:var(--color-surface-page);border-radius:var(--radius-pill);border:1px solid #0000;flex:none}.filter-chip--active{font-weight:var(--font-weight-strong);color:var(--color-text-on-accent);background:var(--color-surface-accent);border-color:var(--color-brand-secondary)}.filter-chip:disabled{color:var(--color-text-secondary);cursor:not-allowed}.product-list,.configuration-list{margin:0;padding:0;list-style:none}.product-list{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-card{background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);flex-direction:column;height:100%;min-height:14rem;display:flex;position:relative;overflow:hidden}.product-card__add{z-index:1;width:100%;height:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.product-card__add-badge{top:var(--space-2);right:var(--space-2);z-index:1;width:var(--touch-min);height:var(--touch-min);font-size:var(--font-size-lg);font-weight:var(--font-weight-strong);color:var(--color-text-on-accent);background:var(--color-surface-accent);border-radius:var(--radius-pill);place-items:center;display:grid;position:absolute}.product-card__add:disabled{cursor:not-allowed}.product-card__add:disabled .product-card__add-badge{color:var(--color-text-secondary);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle)}@media (hover:hover){.product-card:has(.product-card__add:hover:not(:disabled)){border-color:var(--color-border-strong)}}.product-card:has(.product-card__add:focus-visible){border-color:var(--color-border-strong)}.product-card:has(.product-card__add:focus-visible){outline:2px solid var(--color-focus-ring);outline-offset:2px}.product-card__hint{z-index:2;position:relative}.product-card__visual{background:var(--color-surface-raised);border-radius:var(--radius-control);place-items:center;height:8rem;margin:0;display:grid}.catalog-preview{filter:drop-shadow(0 10px 8px #1211111f);display:flex;position:relative}.catalog-preview--cabinet{width:3.5rem;height:8rem;padding:var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border-strong);transform:perspective(12rem)rotateY(-8deg)}.catalog-preview--narrow{width:2.75rem}.catalog-preview--wide{width:4.5rem}.catalog-preview--cabinet{flex-direction:column}.catalog-preview__row{flex:1;display:flex}.catalog-preview__row:not(:last-child){flex:0 0 22%}.catalog-preview__door{background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);flex:1;position:relative}.catalog-preview__door:after{top:50%;right:var(--space-1);content:"";background:var(--color-border-strong);border-radius:var(--radius-pill);width:2px;height:1rem;position:absolute}.catalog-preview--shelves{gap:var(--space-3);width:5.5rem;display:grid;transform:perspective(12rem)rotateX(12deg)rotate(-2deg)}.catalog-preview--shelves span{width:100%;height:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);box-shadow:0 var(--space-1) 0 var(--color-border-subtle)}.catalog-preview--rail{border-top:5px solid var(--color-border-strong);width:5.5rem;height:5rem}.catalog-preview--rail:before,.catalog-preview--rail:after{top:calc(var(--space-1) * -1);content:"";background:var(--color-text-primary);border-radius:var(--radius-pill);width:6px;height:6px;position:absolute}.catalog-preview--rail:before{left:0}.catalog-preview--rail:after{right:0}.product-card__body{width:100%;padding:var(--space-2);flex-direction:column;flex:1;display:flex}.product-card__name{font-weight:var(--font-weight-strong);overflow-wrap:anywhere;font-size:var(--font-size-sm);line-height:var(--line-height-tight);margin:0;display:block}.product-card__size,.product-card__dimension>span{white-space:nowrap}.product-card__dimension{min-height:2.2rem;margin:var(--space-2) 0 0;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);display:block}.product-card__price{padding-top:var(--space-3);font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;margin:auto 0 0;display:block}.product-card__hint{padding:0 var(--space-3) var(--space-3);font-size:var(--font-size-xs);color:var(--color-warning);margin:0}.configuration-drawer{margin:0 var(--space-6) var(--space-6);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control)}.configuration-drawer>summary{gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-3) var(--space-4);font-weight:var(--font-weight-strong);cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.configuration-drawer>summary::-webkit-details-marker{display:none}.configuration-drawer>summary strong{width:2rem;height:2rem;font-size:var(--font-size-sm);color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-brand-secondary);border-radius:var(--radius-pill);place-items:center;display:grid}.configuration-drawer>.panel{padding:0 var(--space-4) var(--space-4);border:0}.configuration-drawer>.panel>.panel__heading{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.configuration-list{gap:var(--space-2);margin-top:var(--space-4);display:grid}.configuration-list__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.configuration-list__select{gap:var(--space-1) var(--space-2);width:100%;min-height:var(--touch-min);padding:var(--space-3);font:inherit;text-align:left;color:var(--color-text-primary);cursor:pointer;background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"index sku price""index detail detail";display:grid}.configuration-list__select--selected{background:var(--color-surface-raised);border-color:var(--color-brand-secondary);box-shadow:inset 0 0 0 1px var(--color-brand-secondary)}.configuration-list__select--selected:focus-visible{box-shadow:inset 0 0 0 1px var(--color-brand-secondary), 0 0 0 5px var(--color-focus-ring)}.configuration-list__index{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;grid-area:index}.configuration-list__price{font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;grid-area:price}.configuration-list__detail{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);grid-area:detail}.configuration-list__equipment,.configuration-list__decor{display:block}.summary-panel>.panel{border:0;padding:0}.summary-total{margin-top:var(--space-6);padding:var(--space-4);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);justify-content:space-between;align-items:center;display:flex}.summary-total strong{font-size:var(--font-size-xl);font-variant-numeric:tabular-nums}.summary-components{margin-top:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control)}.summary-components__head{gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-strong);justify-content:space-between;align-items:center;margin:0;display:flex}.summary-components__head strong{min-width:2rem;height:2rem;padding:0 var(--space-2);font-size:var(--font-size-sm);background:var(--color-surface-page);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);place-items:center;display:grid}.summary-components__table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.summary-components__table th,.summary-components__table td{padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top;border-top:1px solid var(--color-border-subtle)}.summary-components__table thead th{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.summary-components__table tfoot th,.summary-components__table tfoot td{font-weight:var(--font-weight-strong)}.summary-components__table .summary-components__number{text-align:right;white-space:nowrap}.summary-components__note{padding:var(--space-2) var(--space-4) var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.component-table__kind{font-size:var(--font-size-xs);color:var(--color-text-secondary);display:block}.decor-panel__mode{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);align-items:center;display:flex}.decor-panel__mode>span{width:var(--touch-min);height:var(--touch-min);font-weight:var(--font-weight-strong);color:var(--color-text-on-accent);background:var(--color-surface-accent);border-radius:var(--radius-pill);flex:none;place-items:center;display:grid}.decor-panel__mode p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;display:grid}.decor-panel__mode strong{color:var(--color-text-primary)}.decor-panel__choices{min-inline-size:0;margin:var(--space-3) 0 0;border:0;padding:0}.decor-panel__choices legend{margin-bottom:var(--space-3);font-weight:var(--font-weight-strong)}.decor-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.decor-card{gap:var(--space-1);min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-2);font:inherit;color:var(--color-text-primary);text-align:left;cursor:pointer;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);grid-template-rows:3.5rem 1fr auto;display:grid}.decor-card__sample{background-color:var(--decor-swatch-color);background-image:var(--decor-swatch-image,none);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background-position:50%;background-size:cover;height:3.5rem;display:block;position:relative}.decor-card__sample>span,.mirror-card__check{top:var(--space-2);right:var(--space-2);width:1.5rem;height:1.5rem;color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-brand-secondary);border-radius:var(--radius-pill);place-items:center;display:grid;position:absolute}.swatch-check{width:1.25rem;height:1.25rem;color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-brand-secondary);border-radius:var(--radius-pill);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.swatch-check .ui-icon{width:.875rem;height:.875rem}.decor-card strong,.decor-card small{font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.decor-card__sample .ui-icon,.mirror-card__check .ui-icon{width:1rem;height:1rem}.decor-card strong{margin-top:var(--space-1);font-weight:var(--font-weight-strong);white-space:normal;overflow-wrap:anywhere;line-height:var(--line-height-tight)}.decor-card small{font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.mirror-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mirror-card{gap:var(--space-2);min-height:calc(var(--touch-min) * 2);padding:var(--space-2);font:inherit;color:var(--color-text-primary);cursor:pointer;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);display:grid;position:relative}.mirror-card__preview{gap:var(--space-1);width:52px;height:68px;padding:var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border-strong);border-radius:var(--radius-15);grid-template-columns:repeat(2,1fr);margin-inline:auto;display:grid}.mirror-card__preview:before,.mirror-card__preview:after{content:"";border:1px solid var(--color-border-subtle);border-radius:var(--radius-15)}.mirror-card__preview--1:before,.mirror-card__preview--2:before,.mirror-card__preview--2:after{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.equipment-card{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control)}.equipment-card__icon{width:var(--touch-min);height:var(--touch-min);font-size:var(--font-size-lg);font-weight:var(--font-weight-strong);color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-brand-secondary);border-radius:var(--radius-pill);place-items:center;display:grid}.equipment-card__title{font-size:var(--font-size-lg);margin:0}.equipment-stepper__price,.equipment-stepper__hint,.equipment-stepper__subtotal{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.equipment-stepper__controls{gap:var(--space-3);margin-top:var(--space-3);align-items:center;display:flex}.button--stepper{width:var(--touch-min);min-width:var(--touch-min);font-size:var(--font-size-lg);padding:0}.equipment-stepper__count{text-align:center;font-variant-numeric:tabular-nums;min-width:5rem}.equipment-stepper__hint,.equipment-stepper__subtotal{margin:var(--space-2) 0 0}.readout{right:var(--space-6);bottom:7.5rem;left:var(--space-6);z-index:5;gap:var(--space-2);grid-template-columns:repeat(6,minmax(0,1fr));margin:0;display:grid;position:absolute}.readout--compact{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.readout__item{min-width:0;padding:var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);box-shadow:var(--shadow-sm)}.readout__item dt{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.readout__item dd{margin:var(--space-2) 0 0;font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=80rem){.readout__item{padding:var(--space-2);align-content:space-between;display:grid}.readout__item dt{line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow:visible}.readout__item dd{margin-top:var(--space-1);font-size:var(--font-size-sm);text-overflow:clip;overflow:visible}}.field{gap:var(--space-2);display:grid}.field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-strong)}.field__input{width:100%;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);font:inherit;font-variant-numeric:tabular-nums;color:var(--color-text-primary);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-control)}.field__hint,.field__error{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;margin:0}.field__hint{color:var(--color-text-secondary)}.field__error{color:var(--color-error)}.button{gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-4);font:inherit;font-weight:var(--font-weight-strong);line-height:var(--line-height-tight);cursor:pointer;border-radius:var(--radius-pill);transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.button--primary{color:var(--color-text-on-accent);background:var(--color-surface-accent);border-color:var(--color-brand-secondary)}@media (hover:hover){.button--primary:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-surface-raised)}.button--ghost:hover:not(:disabled){background:var(--color-surface-sunken)}}.button--ghost{color:var(--color-text-primary);border-color:var(--color-border-strong);background:0 0}.button:disabled{color:var(--color-text-secondary);cursor:not-allowed;background:var(--color-surface-page);border-color:var(--color-border-subtle)}.button--compact{min-width:var(--touch-min);padding-inline:var(--space-3);font-size:var(--font-size-xs)}.code-form{gap:var(--space-2);min-width:0;display:grid}.code-form__row{gap:var(--space-3);min-width:0;display:grid}.code-form--inline{position:relative}.code-form--inline .code-form__row{gap:var(--space-2);grid-template-columns:minmax(9rem,13rem) auto;align-items:center}.code-form__input{text-transform:uppercase;letter-spacing:.04em}.code-form__input::placeholder{text-transform:none;letter-spacing:normal;color:var(--color-text-secondary)}.code-form__submit{white-space:nowrap}.code-form__submit[aria-disabled=true]{color:var(--color-text-secondary);cursor:progress;background:var(--color-surface-page);border-color:var(--color-border-subtle)}.code-form__hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.code-form__error{gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-error);background:var(--color-surface-raised);border:1px solid var(--color-error);border-radius:var(--radius-control);align-items:flex-start;margin:0;display:flex}.code-form__error .ui-icon{width:1.1rem;height:1.1rem;margin-top:.1rem}.code-form--inline .code-form__error{top:calc(100% + var(--space-2));z-index:40;width:max(100%,20rem);box-shadow:var(--shadow-md);position:absolute;right:0}.project-panel{gap:var(--space-4);display:grid}.project-panel .panel__heading,.project-panel__current,.project-panel__notice{margin:0}.project-panel__current{padding:var(--space-4);font-variant-numeric:tabular-nums;background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control)}.project-panel__current strong{font-size:var(--font-size-lg);letter-spacing:.04em}.project-panel__open{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.project-panel__notice{padding:var(--space-3);border-radius:var(--radius-control)}.project-panel__notice--error{color:var(--color-error);border:1px solid var(--color-error)}.project-panel__notice--success{color:var(--color-success);border:1px solid var(--color-success)}.render-panel{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle);display:grid}.render-panel__heading{font-size:var(--font-size-lg);letter-spacing:var(--tracking-tight);margin:0}.render-panel__views{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.render-panel__views .render-panel__figure:last-child{grid-column:1/-1}.render-panel__placeholder{min-height:12rem;padding:var(--space-4);color:var(--color-text-secondary);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-frame);text-align:center;place-items:center;display:grid}@media (width<=700px){.render-panel__views,.render-panel__arrangement{grid-template-columns:minmax(0,1fr)}}.render-panel__figure{gap:var(--space-2);margin:0;display:grid}.render-panel__zoom{width:100%;font:inherit;color:inherit;cursor:zoom-in;border-radius:var(--radius-frame);background:0 0;border:0;padding:0;display:block}.render-panel__image{background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-frame);width:100%;display:block}.render-panel__caption{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.render-panel__status{padding:var(--space-3);font-size:var(--font-size-sm);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);margin:0}.render-panel__status--error{color:var(--color-error);border-color:var(--color-error);background:0 0}.summary-actions{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.render-panel__arrangement{gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.render-panel__progress{color:var(--color-text-primary);gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);align-items:center;display:flex}.render-panel__progress small{color:var(--color-text-secondary);display:block}.render-panel__progress-details{flex:1;min-width:0}.render-panel__meter{width:100%;margin:var(--space-2) 0;accent-color:var(--color-text-primary);display:block}.render-panel__spinner{border:3px solid var(--color-border-subtle);border-top-color:var(--color-text-primary);border-radius:var(--radius-pill);flex:none;width:1.5rem;height:1.5rem;animation:.9s linear infinite render-spin}@keyframes render-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.render-panel__spinner{animation:none}}.render-lightbox__backdrop{z-index:1200;padding:var(--space-4);background:color-mix(in srgb, var(--color-surface-inverse) 70%, transparent);place-items:center;display:grid;position:fixed;inset:0}.render-lightbox{gap:var(--space-3);max-width:94vw;max-height:100%;padding:var(--space-4);color:var(--color-text-primary);background:var(--color-surface-raised);border-radius:var(--radius-card);box-shadow:var(--shadow-md);display:grid;overflow:auto}.render-lightbox__bar{gap:var(--space-3);align-items:center;display:flex}.render-lightbox__title{min-width:0;font-size:var(--font-size-lg);letter-spacing:var(--tracking-tight);flex:1;margin:0}.render-lightbox__count{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}.render-lightbox__image{object-fit:contain;background:var(--color-surface-sunken);border-radius:var(--radius-frame);justify-self:center;max-width:90vw;min-height:0;max-height:min(85vh,100vh - 12rem);display:block}.render-lightbox__nav{gap:var(--space-3);justify-content:space-between;display:flex}.summary-panel>.render-panel{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.summary-project-code{margin:0 0 var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.summary-project-code strong{font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.summary-save-failure{gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);background:var(--color-surface-raised);border:1px solid var(--color-error);border-radius:var(--radius-control);justify-items:start;display:grid}.summary-save-failure p{gap:var(--space-2);align-items:baseline;margin:0;display:flex}.summary-save-failure strong{color:var(--color-error)}.summary-save-failure__mark{width:1.25rem;height:1.25rem;font-weight:var(--font-weight-strong);color:var(--color-text-on-danger);background:var(--color-surface-danger);border-radius:var(--radius-pill);flex:none;place-items:center;display:inline-grid}.room-finishes{gap:var(--space-4);display:grid}.room-finishes__group{border:0;margin:0;padding:0}.room-finishes__group>legend{gap:var(--space-2);width:100%;margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);justify-content:space-between;padding:0;display:flex}.room-finishes__group>legend>span{color:var(--color-text-secondary);font-weight:400}.room-finishes__swatches{grid-template-columns:repeat(6, var(--touch-min));gap:var(--space-2);display:grid}.room-finishes__subhead{margin:var(--space-3) 0 var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.room-swatch{width:var(--touch-min);height:var(--touch-min);cursor:pointer;background-color:var(--decor-swatch-color);background-image:var(--decor-swatch-image,none);border:1px solid var(--color-border-strong);border-radius:var(--radius-15);background-position:50%;background-size:300%;padding:0;position:relative}.room-swatch--floor{background-blend-mode:multiply}.room-swatch--selected{border:2px solid var(--color-text-primary)}.viewport-room-settings .viewport-wall-settings__panel{width:auto}.operator-files{margin-top:var(--space-6);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);background:var(--color-surface-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-15)}.operator-files>summary{gap:var(--space-2);min-height:var(--touch-min);font-weight:var(--font-weight-strong);color:var(--color-text-secondary);cursor:pointer;align-items:center;display:flex}.operator-files__unlock{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.operator-files__content h4{margin:var(--space-4) 0 var(--space-2);font-size:var(--font-size-sm)}.operator-files__who{gap:var(--space-2);margin:var(--space-2) 0 0;align-items:center;display:flex}.operator-files__logout,.operator-files__link{font:inherit;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.operator-files__logout{margin-left:auto}.operator-files__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.operator-files__list li{gap:var(--space-1) var(--space-3);flex-wrap:wrap;align-items:baseline;min-height:1.75rem;display:flex}.operator-files__list a{color:var(--color-text-primary)}.operator-files__list small,.operator-files__hint{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.operator-files__hint{margin:0}.operator-files__notice{margin:var(--space-3) 0 0;color:var(--color-error)}.banner{top:var(--space-6);right:var(--space-6);z-index:8;max-width:26rem;padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);background:var(--color-surface-raised);border-radius:var(--radius-control);box-shadow:var(--shadow-sm);margin:0;position:absolute}.banner--warning{color:var(--color-warning);border:1px solid var(--color-warning)}.banner--warning:before{margin-right:var(--space-2);content:"i";font-weight:var(--font-weight-strong)}.status{gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-items:center;margin:0;display:flex}.status__state{font-weight:var(--font-weight-strong)}.status__state--online{color:var(--color-success)}.status__state--offline{color:var(--color-error)}.footer{padding:var(--space-3) var(--space-6);background:var(--color-surface-raised);border-top:1px solid var(--color-border-subtle)}.scene-label{padding:var(--space-1) var(--space-2);font-family:var(--font-family-base);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-primary);white-space:nowrap;-webkit-user-select:none;user-select:none;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=106rem){.topbar{grid-template-columns:minmax(0,1fr) auto}.topbar__steps{padding-bottom:var(--space-2);grid-area:2/1/auto/-1}.stepper__step{gap:var(--space-1);padding-inline:0}.stepper__index{width:1.75rem;height:1.75rem}.stepper__item:not(:last-child):after{margin-inline:var(--space-1)}}@media (width<=84rem){.topbar{padding-inline:var(--space-4)}.topbar-action{width:var(--touch-min);padding:0;font-size:0;overflow:hidden}.topbar-action .ui-icon{width:1.35rem;height:1.35rem}.scene-tool{min-width:var(--touch-min)}.scene-tool span:last-child{font-size:.7rem}}@media (width<=60rem){.app--configurator{height:auto;min-height:var(--app-height,100dvh);overflow:visible}.topbar{grid-template-columns:1fr auto}.topbar__steps{padding-bottom:var(--space-2);grid-area:2/1/auto/-1}.stepper__list{justify-content:flex-start}.layout{grid-template-rows:minmax(30rem,58vh) auto;grid-template-columns:minmax(0,1fr);overflow:visible}.viewport{margin-bottom:0}.sidebar__scroll{overflow:visible}.sidebar__footer{position:sticky;bottom:0}}@media (width<=44rem){.topbar{gap:var(--space-2);min-height:0;padding:var(--space-2) var(--space-3)}.topbar__logo{width:2.5rem;height:2.5rem}.topbar__subtitle,.price__label{display:none}.topbar__brand>div,.topbar__brand>.moduklix-logo,.stepper__label{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stepper__step{min-width:var(--touch-min);justify-content:center}.price{min-width:0;padding-inline:var(--space-3)}.price>.ui-icon{display:none}.layout{grid-template-rows:minmax(24rem,52vh) auto}.viewport{margin:var(--space-2) var(--space-2) 0}.viewport-back,.viewport-wall-settings>summary{width:var(--touch-min);min-width:var(--touch-min);justify-content:center;padding:0}.viewport-back{top:var(--space-3);left:var(--space-3)}.viewport-wall-settings>summary{position:relative}.viewport-chip__label{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.viewport-settings{top:var(--space-3);left:calc(var(--space-3) + var(--touch-min) + var(--space-2));flex-wrap:nowrap}.viewport-notice{display:none}.scene-toolbar-dock{bottom:var(--space-3)}.scene-toolbar{border-radius:var(--radius-control)}.scene-tool{min-width:var(--touch-min)}.scene-tool span:last-child{display:none}.panel,.summary-panel{padding:var(--space-4)}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project-panel__open{grid-template-columns:minmax(0,1fr)}.readout{display:none}}.topbar__logo--image{width:auto;max-width:11rem;height:2rem;margin-right:var(--space-2);object-fit:contain;object-position:left center;background:0 0;border:0;padding:0}@media (width<=60rem){.topbar__logo--image{max-width:7.5rem;height:1.5rem}}.moduklix-logo{flex:none;width:auto;height:2rem;display:block}.moduklix-logo.moduklix-logo--text{height:auto;font-size:var(--font-size-sm)}@media (width<=60rem){.moduklix-logo{height:1.5rem}}.catalog-thumb{object-fit:contain;max-width:100%;max-height:100%;display:block}.catalog-thumb--mirrored{transform:scaleX(-1)}.product-card__visual .catalog-thumb{height:7.5rem;padding:var(--space-2)}.line-switch{margin:0 0 var(--space-4);border:0;padding:0}.line-switch legend{margin-bottom:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong)}.line-switch__hint{margin:var(--space-3) 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mirror-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.mirror-card__thumb{height:5rem;margin-inline:auto}.mirror-card small{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mirror-card__preview--hinge-left:before,.mirror-card__preview--hinge-right:after{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.equipment-swatches{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.equipment-swatch{width:var(--touch-min);height:var(--touch-min);cursor:pointer;background:var(--decor-swatch-color);border:1px solid var(--color-border-strong);border-radius:var(--radius-15);padding:0;position:relative}.equipment-swatch--selected{border:2px solid var(--color-text-primary)}.filter-chips--tight{margin-block:0}.equipment-list{gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.equipment-panel .equipment-card{gap:var(--space-2);padding:var(--space-3);background:var(--color-surface-raised);grid-template-columns:3.5rem minmax(0,1fr) auto;grid-template-areas:"visual body controls""visual subtotal subtotal""visual limit limit""visual swatches swatches""placement placement placement";align-items:center;margin:0;display:grid}.equipment-card__visual{background:var(--color-surface-sunken);border-radius:var(--radius-control);grid-area:visual;place-items:center;width:3.5rem;height:3.5rem;display:grid}.equipment-card__thumb{width:100%;height:100%;padding:var(--space-1)}.equipment-card__body{grid-area:body;min-width:0}.equipment-card__kind{font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);color:var(--color-text-secondary);margin:0}.equipment-panel .equipment-card__title{font-size:var(--font-size-sm);line-height:var(--line-height-tight)}.equipment-panel .equipment-stepper__price{margin:var(--space-1) 0 0}.equipment-panel .equipment-stepper__controls{gap:var(--space-1);grid-area:controls;margin-top:0}.equipment-panel .equipment-stepper__count{min-width:2rem}.equipment-panel .equipment-stepper__hint{grid-area:limit;margin:0}.equipment-panel .equipment-stepper__subtotal{grid-area:subtotal;margin:0}.equipment-panel .equipment-swatches{grid-area:swatches;margin-top:0}@media (width<=44rem){.equipment-panel .equipment-card{grid-template-columns:4.5rem minmax(0,1fr);grid-template-areas:"visual body""controls controls""subtotal subtotal""limit limit""swatches swatches""placement placement"}}.rail-placement{min-width:0;margin:var(--space-2) 0 0;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);background:var(--color-surface-sunken);grid-area:placement}.rail-placement legend{padding-inline:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong)}.rail-placement__hint,.rail-height__range{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0}.unit-decor-list{gap:var(--space-3);border:0;grid-area:swatches;margin:0;padding:0;display:grid}.unit-decor-list legend{margin-bottom:var(--space-2);font-weight:var(--font-weight-strong)}.unit-decor-list__row{gap:var(--space-1);display:grid}.unit-decor-list__row .equipment-swatches{margin-top:0}.unit-placement__pieces{margin-top:var(--space-3)}.unit-grid{gap:var(--space-1);margin-top:var(--space-3);padding:var(--space-2);border:2px solid var(--color-text-primary);border-radius:var(--radius-15);background:var(--color-surface-raised);display:grid}.unit-grid__row{grid-template-columns:1.5rem repeat(var(--unit-grid-columns,1), minmax(0, 1fr));gap:var(--space-1);align-items:stretch;display:grid}.unit-grid__bay{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;place-items:center;display:grid}.unit-grid__cell{min-height:var(--touch-min);border:1px solid var(--color-border-strong);border-radius:var(--radius-15);background:var(--color-surface-sunken);color:var(--color-text-primary);font:inherit;font-weight:var(--font-weight-strong);font-variant-numeric:tabular-nums;cursor:pointer;padding:0}.unit-grid__cell:disabled{cursor:default;border-color:var(--color-border-subtle);color:var(--color-text-secondary)}.unit-grid__cell--taken:disabled{background:var(--color-surface-page)}.unit-grid__cell--blocked:disabled{background:var(--color-surface-page);border-style:dashed}.unit-grid__reason{padding:0 var(--space-1);font-size:var(--font-size-xs);font-weight:400;line-height:1.2;display:block}.unit-grid__cell--active,.unit-grid__cell--active:disabled{border:2px solid var(--color-text-primary);color:var(--color-text-primary);background:var(--color-surface-raised)}.unit-grid__cell--upper,.unit-grid__cell--upper:disabled{margin-bottom:calc(-1 * var(--space-1));border-radius:var(--radius-control) var(--radius-control) 0 0;border-bottom-width:0}.unit-grid__cell--lower,.unit-grid__cell--lower:disabled{border-radius:0 0 var(--radius-control) var(--radius-control);border-top-width:0}.rail-height{margin-top:var(--space-3)}.rail-height+.rail-height{padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.rail-height__heading,.rail-height__heading label,.rail-height__value,.rail-height__range{align-items:center;gap:var(--space-2);display:flex}.rail-height__heading,.rail-height__range{justify-content:space-between}.rail-height__heading label{font-size:var(--font-size-sm);font-weight:var(--font-weight-strong)}.rail-height__index{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-raised);width:1.75rem;height:1.75rem;font-size:var(--font-size-xs);place-items:center;display:grid}.rail-height__value{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.rail-height__value input{width:5.5rem;min-height:var(--touch-min);padding:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface-raised);color:var(--color-text-primary);font:inherit}.rail-height__value input[aria-invalid=true]{border-color:var(--color-error)}.rail-height__slider{width:100%;min-height:var(--touch-min);accent-color:var(--color-brand-secondary);cursor:pointer;margin:0;display:block}.rail-height__range{font-variant-numeric:tabular-nums}.rail-height__error{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);color:var(--color-error)}.decor-panel .panel__intro{margin-bottom:var(--space-6)}.decor-panel .panel__eyebrow{margin-bottom:var(--space-2)}.decor-panel .panel__heading{font-size:var(--font-size-xl)}.decor-modes{gap:var(--space-2);margin-block:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.decor-mode,.decor-surface{gap:var(--space-2);min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);transition:background-color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out;justify-content:center;align-items:center;display:flex}.decor-mode--active,.decor-surface--active{font-weight:var(--font-weight-strong)}.decor-surfaces{gap:var(--space-1);margin-bottom:var(--space-4);padding:var(--space-1);background:var(--color-surface-page);border-radius:var(--radius-30);flex-wrap:wrap;display:flex}.decor-surface{padding-inline:var(--space-2);font-size:var(--font-size-xs);flex:auto}.decor-panel__choices legend{font-size:var(--font-size-sm)}@container (width>=21rem) and (width<=23rem){.decor-card{padding:var(--space-1)}}@container (width<=21rem){.decor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (hover:hover){.decor-mode:hover,.decor-surface:hover,.decor-card:hover,.mirror-card:hover{color:var(--color-text-primary);background:var(--color-surface-sunken);border-color:var(--color-border-strong)}}.decor-mode--active,.decor-mode--active:hover,.decor-surface--active,.decor-surface--active:hover{color:var(--color-text-on-accent);background:var(--color-surface-accent);border-color:var(--color-brand-secondary);box-shadow:inset 0 0 0 1px var(--color-brand-secondary)}.decor-card--selected,.decor-card--selected:hover,.mirror-card--selected,.mirror-card--selected:hover{color:var(--color-text-primary);background:var(--color-surface-raised);border-color:var(--color-brand-secondary);box-shadow:inset 0 0 0 1px var(--color-brand-secondary)}.decor-mode--active:focus-visible,.decor-surface--active:focus-visible,.decor-card--selected:focus-visible,.mirror-card--selected:focus-visible{box-shadow:inset 0 0 0 1px var(--color-brand-secondary), 0 0 0 5px var(--color-focus-ring)}@media (width<=44rem){.decor-panel .decor-grid{margin-inline:calc(-1 * var(--space-2));padding:var(--space-2);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--space-2);grid-template-columns:none;grid-auto-columns:7.5rem;grid-auto-flow:column;overflow-x:auto}.decor-panel .decor-card{scroll-snap-align:start}}.rail-handle{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-2) var(--space-3);border:2px solid var(--color-text-primary);border-radius:var(--radius-control);background:var(--color-surface-raised);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-xs);white-space:nowrap;cursor:pointer;display:flex}.rail-handle--active{color:var(--color-text-on-accent);background:var(--color-surface-accent);border-color:var(--color-brand-secondary)}.scene-selection{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.scene-selection--module{transform:translateY(calc(-100% - var(--space-3)))}.scene-selection__card{align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-3);white-space:nowrap;background:var(--color-surface-raised);border-radius:var(--radius-pill);max-width:26rem;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;margin:0;display:flex}.scene-selection__card span{font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);color:var(--color-text-secondary);flex:none}.scene-selection__card strong{font-size:var(--font-size-sm);color:var(--color-text-primary);text-overflow:ellipsis;overflow:hidden}.scene-selection__pick{clip-path:inset(50%);width:1px;height:1px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.scene-selection__pick:focus-visible{width:var(--touch-min);height:var(--touch-min);clip-path:none;background:var(--color-surface-raised);border:2px solid var(--color-text-primary);border-radius:var(--radius-pill);justify-content:center;align-items:center;margin:0;display:flex;position:static;overflow:visible}.rail-handle{touch-action:none;cursor:ns-resize;-webkit-user-select:none;user-select:none}.rail-handle>span:first-child{font-size:var(--font-size-lg)}.rail-dimension{gap:var(--space-1);transform:translate(var(--rail-label-shift,0px), -50%);flex-direction:column;display:flex}.rail-dimension small{font-size:var(--font-size-xs)}.scene-piece-remove{justify-content:center;align-items:center;gap:var(--space-1);min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-1) var(--space-3);border:2px solid var(--color-text-primary);border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;display:inline-flex}.scene-piece-remove>span:first-child{font-size:var(--font-size-lg);line-height:1}.rail-handle-group{transform:translateX(var(--rail-handle-shift,0px));position:relative}.rail-handle-group__remove{transform:translate(calc(var(--rail-remove-dx,88px) - 50%), -50%);position:absolute;top:50%;left:50%}.scene-module-remove{transform:translateX(calc(50% + 2.25rem + var(--space-2)))}.summary-document{display:none}@page{size:A4 portrait;margin:12mm}@page drawing{size:A4 landscape;margin:10mm}@media print{html,body{background:var(--color-surface-raised);height:auto}body>:not(.summary-document){display:none!important}.summary-document{width:100%;font-family:var(--font-family-base);font-size:9.5pt;line-height:var(--line-height-tight);color:var(--color-text-primary);background:var(--color-surface-raised);-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:0;display:block}.summary-document__sheet--landscape{page:drawing;break-before:page}.summary-document__sheet--components{break-before:page}.summary-document__table tfoot th,.summary-document__table tfoot td{font-weight:var(--font-weight-strong);border-top:2px solid var(--color-text-primary);border-bottom:0}.summary-document .component-table__kind{margin-top:.5mm;font-size:8pt}.summary-document__header{gap:var(--space-6);border-bottom:2px solid var(--color-text-primary);align-items:center;padding-bottom:4mm;display:flex}.summary-document__logo{width:auto;height:11mm}.summary-document__title{letter-spacing:var(--tracking-tight);margin:0;font-size:18pt}.summary-document__meta{color:var(--color-text-secondary);margin:1mm 0 0;font-size:9pt}.summary-document__band{background:var(--color-surface-page);border-radius:var(--radius-card);grid-template-columns:1fr 1fr;align-items:center;gap:6mm;margin-top:5mm;padding:4mm 6mm;display:grid}.summary-document__total{font-size:11pt;font-weight:var(--font-weight-strong);border-top:2px solid var(--color-text-primary);break-before:avoid;break-inside:avoid;justify-content:flex-end;align-items:center;gap:5mm;margin:4mm 0 0;padding-top:3mm;display:flex}.summary-document__parts-note{break-before:avoid;margin:1.5mm 0 0}.summary-document__table .parts-table__group{break-after:avoid}.summary-document__table .parts-table__module td{border-top:1px solid var(--color-border-strong)}.summary-document__table .parts-table__module{break-after:avoid}.summary-document__total strong{color:var(--color-text-on-accent);background:var(--color-surface-accent);border-radius:var(--radius-pill);padding:2mm 6mm;font-size:15pt}.summary-document__hint{align-items:flex-start;gap:3mm;font-size:8.5pt;display:flex}.summary-document__hint svg{flex:none;width:7mm;height:7mm}.summary-document__hint p{margin:0}.summary-document__hint strong{font-size:9.5pt;display:block}.summary-document__pictures{grid-template-columns:1fr 1fr;gap:5mm;margin-top:5mm;display:grid}.summary-document__picture{margin:0}.summary-document__picture-image,.summary-document__picture-missing{aspect-ratio:4/3;object-fit:contain;background:var(--color-surface-sunken);border-radius:var(--radius-frame);width:100%;display:block}.summary-document__picture-missing{color:var(--color-text-secondary);border:1px dashed var(--color-border-strong);place-items:center;display:grid}.summary-document__picture-caption{color:var(--color-text-secondary);text-align:center;margin-top:1.5mm;font-size:8.5pt}.summary-document__subtitle{margin:0 0 1.5mm;font-size:10pt}.summary-document__table{border-collapse:collapse;width:100%;margin-top:5mm;font-size:9pt}.summary-document__table th,.summary-document__table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border-subtle);padding:2mm}.summary-document__table thead th{font-weight:var(--font-weight-strong);background:var(--color-surface-page);border-bottom:0}.summary-document__table thead th:first-child{border-radius:var(--radius-15) 0 0 var(--radius-15)}.summary-document__table thead th:last-child{border-radius:0 var(--radius-15) var(--radius-15) 0}.summary-document__table .summary-document__number{text-align:right;white-space:nowrap}.summary-document__table tr{break-inside:avoid}.summary-document__note{color:var(--color-text-secondary);margin-top:.5mm;font-size:8pt;display:block}.summary-document__footer{color:var(--color-text-secondary);margin-top:5mm;font-size:7.5pt}.summary-document__drawings{grid-template-columns:minmax(0,1fr) 72mm;gap:6mm;margin-top:4mm;display:grid}.summary-document__main{flex-direction:column;gap:2mm;display:flex}.summary-document__side{flex-direction:column;gap:4mm;font-size:8.5pt;display:flex}.summary-document__side ul{margin:0;padding:0;list-style:none}.summary-document__side li+li{margin-top:1mm}.drawing{break-inside:avoid;margin:0}.drawing__svg{display:block;overflow:visible}.drawing__svg text{font-family:var(--font-family-base);fill:var(--color-text-primary);font-variant-numeric:tabular-nums}.drawing__dimension line{stroke:var(--color-text-primary)}.drawing__dimension--gap line{stroke:var(--color-text-secondary);stroke-dasharray:2 2}.drawing__dimension--gap text{fill:var(--color-text-secondary)}.drawing__wall{stroke:var(--color-text-primary)}.drawing__shape{fill:none;stroke:var(--color-text-primary);stroke-linecap:butt}rect.drawing__shape--grid,.drawing__shape--unit,.drawing__shape--drawerUnit{fill:var(--color-border-subtle)}.drawing__shape--grid,.drawing__shape--shelf,.drawing__shape--rail{stroke:var(--color-text-secondary)}.drawing__note{fill:var(--color-text-primary)}.summary-document__legend ol{columns:3;column-gap:5mm;margin:0 0 2mm;padding:0;list-style:none}.summary-document__legend li{break-inside:avoid;gap:2mm;margin-bottom:1.5mm;display:flex}.summary-document__legend-number{width:4.5mm;height:4.5mm;color:var(--color-text-on-accent);background:var(--color-surface-accent);border:1px solid var(--color-text-primary);border-radius:var(--radius-pill);flex:none;place-items:center;font-size:7.5pt;display:grid}.drawing__label circle{fill:var(--color-surface-accent);stroke:var(--color-text-primary)}.drawing__caption{font-size:8.5pt;font-weight:var(--font-weight-strong);margin-top:1mm}.drawing__placeholder{min-height:40mm;color:var(--color-text-secondary);border:1px dashed var(--color-border-strong);border-radius:var(--radius-15);place-items:center;display:grid}.summary-document__title-block{border-collapse:collapse;table-layout:fixed;break-inside:avoid;flex:none;width:120mm;margin-left:auto;font-size:8pt}.summary-document__title-block td{text-align:left;vertical-align:top;border:1px solid var(--color-border-strong);height:8mm;padding:.8mm 2mm}.summary-document__title-block td:first-child{width:48mm}.summary-document__title-label{font-size:6.5pt;font-weight:var(--font-weight-strong);color:var(--color-text-secondary);display:block}}@container (width<=25rem){.equipment-panel .equipment-card{grid-template-columns:3.5rem minmax(0,1fr);grid-template-areas:"visual body""controls controls""subtotal subtotal""limit limit""swatches swatches""placement placement"}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-surface-page);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,h5,h6,b,strong,th,optgroup{font-weight:var(--font-weight-strong)}button,input,select,textarea{font-family:inherit;font-weight:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;box-shadow:0 0 0 5px var(--color-focus-ring)}
