@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@100;300;400;500;600;700&display=swap";:root{--font-body:"Proxima Nova", "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:"Proxima Nova", "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;--ink:#1a1a1a;--ink-muted:#6e6e6e;--ink-faint:#a3a3a3;--surface:#faf9f7;--surface-raised:#fff;--surface-sunken:#f0eeeb;--border:#e4e0db;--border-strong:#d1ccc4;--accent:#8b5e3c;--accent-rgb:139, 94, 60;--accent-hover:#6f4a2e;--accent-light:#8b5e3c14;--accent-glow:#8b5e3c26;--success:#3a7d5c;--success-bg:#edf7f0;--error:#b83e3e;--error-bg:#fdf0f0;--panel-width:calc(100vw / 3);--radius-sm:3px;--radius:6px;--radius-lg:10px;--accent-pressed:var(--accent-hover);--accent-tint:var(--accent-light);--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 2px 12px #0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--surface);height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;font-weight:400;line-height:1.5;overflow:hidden}button,input{font:inherit}#app{zoom:1.05;height:100dvh;position:relative;overflow:hidden;opacity:1!important}.panel{z-index:100;width:var(--panel-width);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:95.2381dvh;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:2px 0 12px #00000014}.panel.collapsed{transform:translate(-100%)}.panel-resize-handle{display:none}.panel-toggle-btn{z-index:99;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);width:40px;height:40px;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s,transform .2s,background .18s;display:flex;position:absolute;top:16px;left:16px;box-shadow:0 4px 12px #00000026}.panel-toggle-btn:hover{background:var(--surface-sunken);border-color:var(--border-strong);transform:scale(1.05)}.panel-toggle-btn.visible{opacity:1;pointer-events:auto}.panel-hide-btn{border-radius:var(--radius);width:28px;height:28px;color:var(--header-btn-color,var(--ink-faint));cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.panel-hide-btn:hover{background:var(--header-btn-bg-hover,var(--surface-sunken));color:var(--header-btn-color,var(--ink))}.panel-header{background:var(--panel-header-bg,var(--surface-raised));flex-shrink:0;align-items:center;padding:16px 24px;display:flex;position:relative}.panel-brand{flex-shrink:0;align-items:center;display:flex}.panel-brand-img{max-height:32px;margin-right:10px}.panel-logo{font-family:var(--font-display);letter-spacing:-.01em;color:var(--panel-header-text,var(--ink));cursor:pointer;font-size:28px;font-weight:500;transition:color .2s}.panel-logo:hover,.panel-logo .brand-amp{color:var(--accent)}.panel-body{flex-direction:column;flex:1;padding:0;display:flex;position:relative;overflow:hidden}.panel-body>:not(.slot-columns){flex-shrink:0}.message-area{top:0;left:var(--panel-width);z-index:110;width:min(360px, calc(100vw - var(--panel-width) - 32px));pointer-events:none;padding:0 16px;position:absolute}#panel.collapsed~.message-area{left:0}.message-area .message{pointer-events:auto}.message{border-radius:var(--radius);margin-top:12px;padding:10px 14px;font-size:13px;font-weight:500;animation:.25s ease-out msg-in;position:relative;overflow:hidden}@keyframes msg-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.message-success{background:var(--success-bg);color:var(--success)}.message-error{background:var(--error-bg);color:var(--error)}.search-row{border-bottom:1px solid var(--border);background:var(--surface-raised);align-items:center;gap:10px;padding:12px 24px;display:flex}.search-input-wrapper{flex:1;align-items:center;display:flex;position:relative}.search-icon{color:var(--ink-faint);pointer-events:none;position:absolute;left:12px}.search-input{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;color:var(--ink);font-family:var(--font-body);padding:9px 36px;font-size:13px;font-weight:500;transition:border-color .18s,box-shadow .18s}.search-input:hover{border-color:var(--border-strong)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.search-input::placeholder{color:var(--ink-faint);font-weight:400}.search-clear{width:24px;height:24px;color:var(--ink-faint);cursor:pointer;opacity:0;visibility:hidden;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .18s;display:flex;position:absolute;right:8px}.search-clear.visible{opacity:1;visibility:visible}.search-clear:hover{background:var(--surface-sunken);color:var(--ink-muted)}.panel-section{border-bottom:1px solid var(--border);padding:20px 24px}.panel-section:last-child{border-bottom:none}.seat-row{flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.seat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600}.seat-controls{background:var(--surface-sunken);border-radius:var(--radius);align-items:center;gap:2px;padding:2px;display:flex;position:relative}.seat-btn{width:32px;height:32px;color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:16px;font-weight:500;transition:all .15s;display:flex}.seat-btn:hover:not(:disabled){background:var(--surface-raised);color:var(--accent);box-shadow:0 1px 3px #0000000f}.seat-btn:disabled{opacity:.3;cursor:default}.seat-value{text-align:center;width:36px;color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.seat-warning{cursor:help;z-index:10;justify-content:center;align-items:center;display:none;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.seat-warning.visible{display:inline-flex}.seat-warning-icon{background:var(--accent-light);width:18px;height:18px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.seat-warning.visible:hover .seat-warning-icon{background:var(--accent);color:#fff;transform:scale(1.05)}.seat-warning-icon svg{flex-shrink:0}.seat-warning-text{color:var(--accent);flex-basis:100%;margin-top:6px;font-size:11px;font-weight:500;line-height:1.3;display:none}.seat-warning-text.visible{display:block}.global-tooltip{background:var(--ink);color:#fff;text-align:center;white-space:nowrap;border-radius:var(--radius);opacity:0;visibility:hidden;pointer-events:none;z-index:100;margin:0;padding:8px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:opacity .15s,visibility .15s;position:fixed;box-shadow:0 4px 12px #00000026}.global-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--ink);margin-left:-5px;position:absolute;top:100%;left:50%}.global-tooltip.visible{opacity:1;visibility:visible}.tab-bar{border-bottom:1px solid var(--border);background:var(--surface-raised);gap:0;padding:0 24px;display:flex}.tab-btn{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:13px 0;font-size:12px;font-weight:600;transition:color .2s,border-color .2s}.tab-btn:hover{color:var(--ink-muted)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-panel{min-height:100%;display:none;background:var(--surface)!important}.tab-panel.active{display:block;background:var(--surface)!important}.scene-settings{border-bottom:1px solid var(--border);background:var(--surface-raised)}.scene-settings-toggle{width:100%;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:12px 24px;font-size:13px;font-weight:500;transition:all .18s;display:flex}.scene-settings-toggle:hover{color:var(--ink);background:var(--surface-sunken)}.scene-settings.open .scene-settings-toggle{color:var(--accent)}.scene-settings-icon{border-radius:var(--radius);background:var(--surface-sunken);color:currentColor;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.scene-settings-label{text-align:left;flex:1}.scene-settings-arrow{align-items:center;transition:transform .2s;display:flex}.scene-settings.open .scene-settings-arrow{transform:rotate(180deg)}.scene-settings-content{border-top:1px solid var(--border);background:var(--surface);padding:16px 24px 20px;display:none}.scene-settings.open .scene-settings-content{display:block}.scene-settings-section{margin-bottom:16px}.scene-settings-section:last-child{margin-bottom:0}.scene-settings-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;font-size:10px;font-weight:600;display:block}.scene-presets-inline{gap:8px;display:flex}.scene-preset-chip{border:2px solid var(--border);background:var(--surface-raised);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:all .18s;display:flex}.scene-preset-chip:hover{border-color:var(--accent);transform:scale(1.05)}.scene-preset-chip.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.scene-preset-dot{border-radius:50%;width:24px;height:24px}.scene-skybox-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.scene-skybox-chip{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;transition:all .18s;display:flex}.scene-skybox-chip:hover{border-color:var(--accent);transform:translateY(-1px)}.scene-skybox-chip.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.scene-skybox-preview{border:1px solid var(--border);border-radius:4px;width:40px;height:28px}.scene-skybox-label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.02em;font-size:11px;font-weight:500}.scene-skybox-chip.active .scene-skybox-label{color:var(--accent)}.scene-quick-control{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.scene-quick-control:last-child{margin-bottom:0}.scene-quick-label{color:var(--ink-muted);min-width:60px;font-size:12px;font-weight:500}.scene-quick-range{appearance:none;background:var(--surface-sunken);cursor:pointer;border-radius:3px;outline:none;flex:1;height:5px}.scene-quick-range::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 2px 4px #00000026}.scene-quick-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.scene-quick-toggle{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink-muted);cursor:pointer;min-width:50px;padding:5px 14px;font-size:12px;font-weight:600;transition:all .18s}.scene-quick-toggle[data-active=true]{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.scene-advanced-btn{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--ink-muted);cursor:pointer;background:0 0;margin-top:12px;padding:8px 16px;font-size:12px;font-weight:500;transition:all .18s}.scene-advanced-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.scene-modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;background:#0006;display:none;position:fixed;inset:0}.scene-modal-backdrop.open{display:block}.scene-modal{background:var(--surface-raised);border-radius:var(--radius-lg);z-index:201;width:320px;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0003}.scene-modal.open{display:block}.scene-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.scene-modal-title{font-family:var(--font-display);color:var(--ink);font-size:18px;font-weight:500}.scene-modal-close{border-radius:var(--radius);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;font-size:20px;transition:all .15s}.scene-modal-close:hover{background:var(--surface-sunken);color:var(--ink)}.scene-modal-body{padding:16px 20px}.scene-control-group{margin-bottom:16px}.scene-control-group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;font-size:10px;font-weight:600;display:block}.scene-color-row{gap:16px;display:flex}.scene-color-field{flex-direction:column;align-items:center;gap:6px;display:flex}.scene-color-label{color:var(--ink-muted);font-size:11px;font-weight:500}.scene-color-picker{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;width:48px;height:48px;padding:0;overflow:hidden}.scene-color-picker::-webkit-color-swatch-wrapper{padding:0}.scene-color-picker::-webkit-color-swatch{border:none;border-radius:50%}.scene-modal-range,.scene-settings-range{appearance:none;background:var(--surface-sunken);cursor:pointer;border-radius:3px;outline:none;width:100%;height:5px}.scene-modal-range::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 4px #00000026}.scene-settings-range::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 4px #00000026}.scene-range-labels{color:var(--ink-faint);justify-content:space-between;margin-top:6px;font-size:10px;display:flex}.scene-modal-actions{gap:10px;margin-top:20px;display:flex}.scene-modal-btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;flex:1;padding:10px 16px;font-size:13px;font-weight:600;transition:all .18s}.scene-modal-btn-primary{background:var(--accent);color:#fff}.scene-modal-btn-primary:hover{background:var(--accent-hover)}.scene-modal-btn-secondary{border-color:var(--border);color:var(--ink-muted);background:0 0}.scene-modal-btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.filter-tags-row{border-bottom:1px solid var(--border);background:var(--surface-raised);align-items:center;gap:8px;padding:8px 24px;display:flex}.filter-toggle-btn{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:40px;height:40px;color:var(--ink-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0;transition:all .18s;display:inline-flex;position:relative}.filter-toggle-btn:hover{border-color:var(--border-strong);color:var(--ink);background:var(--surface-sunken)}.filter-toggle-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.filter-toggle-btn.has-filters{border-color:var(--accent);color:var(--accent)}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch-track{background:var(--border);cursor:pointer;border-radius:10px;transition:background .2s;position:absolute;inset:0}.toggle-switch-track:after{content:"";background:var(--surface-raised);border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.toggle-switch input:checked+.toggle-switch-track{background:var(--accent)}.toggle-switch input:checked+.toggle-switch-track:after{transform:translate(16px)}.toggle-switch-row{justify-content:space-between;align-items:center;display:flex}.filter-badge{background:var(--accent);color:#fff;text-align:center;border-radius:100px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;line-height:18px;display:none;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 4px #00000026}.active-filter-tags{flex-wrap:wrap;gap:6px;display:flex;overflow:hidden}.filter-tag{background:var(--accent-light);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:100px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;transition:background .15s;display:inline-flex}.filter-tag:hover{background:var(--accent-glow)}.filter-tag-x{opacity:.6;font-size:13px;line-height:1}.filter-tag:hover .filter-tag-x{opacity:1}.filter-popup-backdrop{z-index:99;display:none;position:fixed;inset:0}.filter-popup-backdrop.open{display:block}.filter-popup{z-index:100;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);animation:.18s filterPopupIn;display:none;position:absolute;left:16px;right:16px;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}.filter-popup.open{display:block}@keyframes filterPopupIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.filter-popup-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px 10px;display:flex}.filter-popup-title{color:var(--ink);font-size:13px;font-weight:600}.filter-popup-clear{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px;font-weight:500;transition:background .15s}.filter-popup-clear:hover{background:var(--accent-light)}.filter-popup-section{padding:14px 18px}.filter-popup-section+.filter-popup-section{border-top:1px solid var(--border)}.filter-popup-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:8px;font-size:10px;font-weight:600;display:block}.filter-select{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e6e6e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px;padding:8px 32px 8px 12px;font-size:13px;font-weight:500;transition:border-color .18s,box-shadow .18s}.filter-select:hover{border-color:var(--border-strong)}.filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.filter-select option{padding:8px 12px}.category{padding:16px 24px 8px}.category+.category{padding-top:8px}.category-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;padding-left:2px;font-size:10px;font-weight:600}.asset-list{flex-direction:column;gap:6px;display:flex}.asset-card{border-radius:var(--radius);background:var(--surface-raised);cursor:pointer;border:2px solid #0000;align-items:center;gap:12px;padding:12px 14px;transition:all .2s;display:flex;position:relative}.asset-card:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 2px 12px #0000000f}.asset-card.selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 1px var(--accent), 0 4px 16px var(--accent-glow)}.asset-card.selected:hover{border-color:var(--accent-hover);box-shadow:0 0 0 1px var(--accent-hover), 0 4px 20px var(--accent-glow)}.asset-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.asset-radio{border:2px solid var(--border-strong);background:var(--surface-raised);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:all .18s;display:flex}.asset-card:hover .asset-radio{border-color:var(--accent)}.asset-card.selected .asset-radio{border-color:var(--accent);background:var(--accent)}.asset-radio-dot{opacity:0;background:#fff;border-radius:50%;width:8px;height:8px;transition:all .18s;transform:scale(0)}.asset-card.selected .asset-radio-dot{opacity:1;transform:scale(1)}.asset-info{flex:1;min-width:0}.asset-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.asset-card.selected .asset-name{color:var(--accent)}.asset-meta{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;font-weight:500;overflow:hidden}.asset-card.selected .asset-meta{color:var(--accent);opacity:.8}.asset-check{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:4px;display:flex}.pagination-bar{border-top:1px solid var(--border);background:var(--surface-raised);z-index:2;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;bottom:0}.pagination-info{color:var(--ink-faint);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.pagination-controls{align-items:center;gap:2px;display:flex}.pagination-btn{border:1px solid var(--border);border-radius:var(--radius);width:32px;height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .18s;display:flex}.pagination-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.pagination-btn:active:not(:disabled){transform:scale(.93)}.pagination-btn:disabled{opacity:.25;cursor:default}.pagination-page{text-align:center;min-width:52px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:12px;font-weight:600}.combo-picker{background:var(--surface-raised);padding:16px 24px 12px}.combo-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;padding:12px 32px 12px 16px;font-size:20px;font-weight:500;transition:border-color .18s,box-shadow .18s}.combo-select:hover{border-color:var(--border-strong)}.combo-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light);outline:none}.viewport{top:0;bottom:0;right:0;left:var(--panel-width);background:#fff;transition:left .3s cubic-bezier(.4,0,.2,1);position:absolute;overflow:hidden}.viewport-mount{position:absolute;inset:0}.viewport-placeholder{pointer-events:none;color:var(--ink-faint);text-align:center;z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;transition:opacity .2s;display:flex;position:absolute;inset:0}.viewport-placeholder-icon{width:96px;height:96px;color:var(--ink-faint);background:#00000008;border-radius:50%;justify-content:center;align-items:center;display:flex}.viewport-placeholder-text{color:var(--ink-muted);max-width:280px;font-size:15px;font-weight:500;line-height:1.4}.viewport.has-ensemble .viewport-placeholder{display:none}.viewport-placeholder-planner-hint{-webkit-backdrop-filter:blur(10px)saturate(1.3);color:var(--ink);white-space:nowrap;background:#ffffffb8;border:1px solid #ffffffa6;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;line-height:1;display:none;position:absolute;box-shadow:0 4px 18px #00000024}.viewport-placeholder-planner-hint svg{color:var(--ink-muted);flex-shrink:0}.viewport-placeholder-planner-hint--panel{top:50%;left:20px;transform:translateY(-50%)}.viewport-placeholder-planner-hint--floor{bottom:110px;left:50%;transform:translate(-50%)}#viewport.is-planner-mode .viewport-placeholder-icon,#viewport.is-planner-mode .viewport-placeholder-text{display:none}#viewport.is-planner-mode .viewport-placeholder-planner-hint{animation:.32s cubic-bezier(.16,1,.3,1) both planner-floor-hint-in;display:inline-flex}#viewport.is-planner-mode .viewport-placeholder-planner-hint--floor{animation-delay:.12s}@keyframes planner-floor-hint-in{0%{opacity:0}to{opacity:1}}.config-overlay{z-index:50;background:var(--surface-raised);border-radius:var(--radius-lg);border:1px solid var(--border);width:300px;transition:opacity .2s,transform .2s;position:absolute;top:16px;right:16px;overflow:hidden;box-shadow:0 4px 24px #00000026,0 1px 4px #00000014}.config-overlay.hidden{opacity:0;pointer-events:none;transform:translateY(-8px)}.config-overlay-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.config-overlay-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:600}.config-overlay-close{width:24px;height:24px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.config-overlay-close:hover{background:var(--surface-sunken);color:var(--ink)}.config-overlay-body{-webkit-overflow-scrolling:touch;max-height:60vh;overflow-y:auto}.dev-scene-settings{border-top:1px solid var(--border);background:var(--surface-sunken)}.dev-scene-settings[hidden]{display:none!important}.dev-scene-settings-header{letter-spacing:.08em;text-transform:uppercase;color:var(--accent,#6b4eff);padding:10px 14px 6px;font-size:10px;font-weight:700}.dev-scene-settings-scroll{-webkit-overflow-scrolling:touch;max-height:42vh;padding:0 14px 14px;overflow-y:auto}.dev-scene-section+.dev-scene-section{border-top:1px dashed var(--border);margin-top:12px;padding-top:12px}.dev-scene-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 8px;font-size:10px;font-weight:600}.dev-scene-field{grid-template-columns:minmax(0,1fr) minmax(96px,42%);align-items:center;gap:8px;margin-bottom:8px;font-size:11px;display:grid}.dev-scene-label{color:var(--ink-muted);line-height:1.3}.dev-scene-control{width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:4px;padding:4px 6px;font-size:11px}.dev-scene-color{cursor:pointer;height:28px;padding:0}.dev-scene-check{justify-self:start;width:auto}.dev-scene-range{padding:0}.dev-scene-range-val{color:var(--ink-faint);text-align:right;grid-column:2;font-size:10px}.dev-scene-actions{gap:8px;margin-bottom:10px;display:flex}.dev-scene-btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:4px;flex:1;padding:6px 8px;font-size:11px}.dev-scene-btn:hover{background:var(--surface-raised)}.config-overlay .combo-picker{border-bottom:1px solid var(--border);background:0 0;padding:12px 14px 10px}.config-overlay .combo-select{padding:7px 28px 7px 10px;font-size:12px}.scene-units-segmented{border:1.5px solid var(--border);border-radius:var(--radius);gap:0;display:flex;overflow:hidden}.scene-units-btn{border:none;border-right:1px solid var(--border);background:var(--surface-raised);color:var(--ink-muted);cursor:pointer;flex:1;padding:5px 0;font-size:11px;font-weight:600;transition:all .18s}.scene-units-btn:last-child{border-right:none}.scene-units-btn:hover{background:var(--surface-sunken)}.scene-units-btn.active{background:var(--accent);color:#fff}.scene-seats-stepper{align-items:center;gap:4px;display:flex}.seat-step{cursor:pointer;appearance:none;background:0 0;border:none;flex:none;margin:0;padding:0;font-family:inherit}.seat-step:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.seat-step-line{background:var(--border);flex:auto;min-width:6px;height:1px}.seat-step-btn{white-space:nowrap;color:var(--ink-muted);border:1px solid var(--border);background:0 0;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:600;line-height:1.4;transition:color .15s,background-color .15s,border-color .15s,transform .12s}.seat-step-btn:hover{color:var(--accent);border-color:var(--accent)}.seat-step-btn:active{transform:scale(.96)}.seat-step-btn.selected{color:#fff;background:var(--accent);border-color:var(--accent)}.seat-step-dot{box-sizing:border-box;border:1.5px solid var(--border);background:0 0;border-radius:50%;width:8px;height:8px;padding:0;transition:background-color .15s,border-color .15s,transform .15s}.seat-step-dot:hover{border-color:var(--ink-muted)}.seat-step-dot.selected{background:var(--accent);border-color:var(--accent);transform:scale(1.15)}.config-overlay .scene-units-section{border-top:1px solid var(--border);padding:10px 14px;display:none}.config-overlay.is-planner-mode .scene-units-section{display:block}.config-overlay .planner-controls{display:none}.config-overlay.is-planner-mode .planner-controls{display:block}.config-overlay .scene-seats-toggle-section{border-bottom:1px solid var(--border);padding:10px 14px}.config-overlay .scene-animate-toggle-section{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.config-overlay .scene-camera-mode-section{justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.config-overlay [hidden]{display:none!important}.config-overlay .scene-settings-select:disabled{opacity:.5;cursor:not-allowed}.config-overlay .scene-settings-select{border:1px solid var(--border);background:var(--surface,#fff);min-width:0;color:var(--ink,#333);cursor:pointer;border-radius:6px;flex:0 auto;padding:4px 8px;font-size:12px}.toggle-switch{flex-shrink:0;width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--border);border-radius:20px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--accent,#4a90d9)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.config-overlay .scene-settings{border-bottom:1px solid var(--border)}.config-overlay .scene-settings-toggle{padding:8px 14px}.config-overlay .scene-settings-content{padding:0 14px 10px}.config-overlay .panel-section{border-bottom:1px solid var(--border);padding:10px 14px}.config-overlay .seat-btn{width:28px;height:28px;font-size:14px}.config-overlay .seat-value{width:28px;font-size:14px}.config-overlay .seat-label{font-size:11px}.config-overlay-toggle{z-index:49;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);width:40px;height:40px;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .2s,transform .2s,background .18s;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 4px 12px #00000026}.config-overlay-toggle:hover{background:var(--surface-sunken);border-color:var(--border-strong);transform:scale(1.05)}.config-overlay-toggle.visible{opacity:1;pointer-events:auto}.engine-loading{background:var(--surface-sunken);z-index:999;justify-content:center;align-items:center;transition:opacity .6s,visibility .6s;display:flex;position:absolute;inset:0}.engine-loading.hidden{opacity:0;visibility:hidden;pointer-events:none}.engine-loading-inner{flex-direction:column;align-items:center;gap:16px;width:min(280px,60%);display:flex}.engine-loading-spinner{border:1px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:44px;height:44px;animation:1s cubic-bezier(.4,0,.2,1) infinite spin}.engine-loading-text{color:var(--ink);font-family:var(--font-display);font-size:16px;font-weight:500}.engine-loading-bar-track{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.engine-loading-bar-fill{background:var(--accent);border-radius:2px;width:0%;height:100%;transition:width .3s}.engine-loading-detail{color:var(--ink-muted);font-family:var(--font-body);min-height:1em;font-size:13px}.viewport-frame{z-index:1;border:none;width:100%;height:100%;display:block;position:relative}.processing-toast{background:var(--surface-raised);border:1px solid var(--border);z-index:100;opacity:0;visibility:hidden;pointer-events:auto;border-radius:100px;align-items:center;gap:12px;padding:10px 16px;transition:opacity .4s,visibility .4s,transform .4s cubic-bezier(.4,0,.2,1),padding .6s cubic-bezier(.4,0,.2,1),gap .6s cubic-bezier(.4,0,.2,1),border-radius .6s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:16px;left:50%;transform:translateY(-100%)scale(.95);box-shadow:0 8px 24px #0000004d,0 2px 8px #00000026}.processing-toast.visible{opacity:1;visibility:visible;border-radius:24px;gap:14px;padding:14px 24px;transform:translateY(0)scale(1.12)}.processing-toast.visible.compact{border-radius:100px;gap:12px;padding:10px 16px;transform:translateY(0)scale(1)}.processing-toast-spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:1s cubic-bezier(.4,0,.2,1) infinite spin}.processing-toast-body{flex-direction:column;gap:1px;min-width:0;display:flex}.processing-toast-title{color:var(--ink);white-space:nowrap;font-size:13px;font-weight:600}.processing-toast-time{color:var(--ink-faint);white-space:nowrap;font-size:11px;font-weight:500}.processing-toast{overflow:hidden}.processing-toast-bar{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;background:#00000014;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.processing-toast-bar[hidden]{display:none}.processing-toast-fill{background:var(--accent);width:0%;height:100%;transition:width .12s linear}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{text-align:center;color:var(--ink-muted);border-radius:var(--radius);flex-direction:column;align-items:center;gap:16px;padding:40px 24px 24px;display:flex;background:var(--surface)!important}.loading-spinner{width:32px;height:32px;position:relative}.loading-spinner:before{content:"";border:2.5px solid var(--border);border-radius:50%;position:absolute;inset:0}.loading-spinner:after{content:"";border:2.5px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:.9s cubic-bezier(.4,0,.2,1) infinite spin;position:absolute;inset:0}.loading-label{color:var(--ink-muted);letter-spacing:.02em;font-size:14px;font-weight:600}.loading-sub{color:var(--ink-faint);margin-top:-8px;font-size:12px;font-weight:500}.skeleton-list{background:var(--surface);flex-direction:column;gap:6px;padding:16px 24px;display:flex}.skeleton-card{border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:flex;position:relative;overflow:hidden}.skeleton-card:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#ffffff80) 50%, transparent 100%);pointer-events:none;animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}.skeleton-radio{background:var(--surface-sunken);border-radius:50%;flex-shrink:0;width:20px;height:20px}.skeleton-thumb{border-radius:var(--radius);background:var(--surface-sunken);flex-shrink:0;width:48px;height:48px}.skeleton-lines{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.skeleton-line{background:var(--surface-sunken);border-radius:4px;height:12px}.skeleton-line--title{width:70%}.skeleton-line--meta{width:45%}.skeleton-card:nth-child(2) .skeleton-line--title{width:55%}.skeleton-card:nth-child(2) .skeleton-line--meta{width:35%}.skeleton-card:nth-child(3) .skeleton-line--title{width:80%}.skeleton-card:nth-child(3) .skeleton-line--meta{width:50%}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:.9}}.empty-state{text-align:center;color:var(--ink-faint);flex-direction:column;align-items:center;gap:12px;padding:48px 24px;font-size:13px;display:flex}.empty-state-icon{color:var(--border-strong);margin-bottom:4px}.empty-state-title{color:var(--ink-muted);font-size:15px;font-weight:600}.empty-state-text{color:var(--ink-faint);max-width:240px;font-size:13px;line-height:1.5}.retry-btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink-muted);letter-spacing:.03em;cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .18s;display:inline-flex}.retry-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.retry-btn:active{transform:scale(.97)}.error-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.error-state-text{color:var(--error);font-size:13px;font-weight:500}.tab-panel>.category{animation:.25s ease-out panel-fade}@keyframes panel-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.panel-header{position:relative}.asset-thumb{object-fit:contain;background:var(--surface-sunken);border-radius:4px;flex-shrink:0;width:36px;height:36px}.asset-type-badge{background:var(--surface-sunken);color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.btn-spinner{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:4px;animation:.7s linear infinite spin;display:inline-block}.create-btn.creating{background:var(--accent);opacity:.7}.create-btn.btn-success{background:var(--success);transition:background .3s}.message-info{color:#2563eb;background:#3b82f614}.message-progress{opacity:.25;background:currentColor;height:2px;animation:5s linear forwards msg-progress;position:absolute;bottom:0;left:0}@keyframes msg-progress{0%{width:100%}to{width:0%}}.message-exit{animation:.25s ease-in forwards msg-out}@keyframes msg-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.panel-body.db-loading .combo-picker,.panel-body.db-loading .tab-bar,.panel-body.db-loading .filter-row,.panel-body.db-loading [data-option-section]{opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none}.db-loading-banner{background:var(--surface-raised);border-bottom:1px solid var(--border);color:var(--ink-muted);letter-spacing:.02em;align-items:center;gap:12px;padding:12px 24px;font-size:13px;font-weight:600;display:none}.panel-body.db-loading .db-loading-banner{display:flex}.db-loading-banner-spinner{flex-shrink:0;width:16px;height:16px;position:relative}.db-loading-banner-spinner:before{content:"";border:2px solid var(--border);border-radius:50%;position:absolute;inset:0}.db-loading-banner-spinner:after{content:"";border:2px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:.9s cubic-bezier(.4,0,.2,1) infinite spin;position:absolute;inset:0}.asset-card.selected{box-shadow:0 0 0 1px var(--accent-light), 0 2px 8px var(--accent-glow)}.tab-btn:focus-visible,.combo-select:focus-visible,.seat-btn:focus-visible,.create-btn:focus-visible,.retry-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.panel.is-planner-mode .selected-header,.panel.is-planner-mode .selected-thumbnails{display:none}.selected-header{background:0 0;border-bottom:none;padding:10px 16px 8px}.selected-header-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:600}.selected-header-actions{align-items:center;gap:10px;display:flex}.save-ensemble-btn.hidden{display:none}.selected-header.is-empty .selected-header-label{opacity:.55}.selected-thumbnails{flex-direction:row;justify-content:stretch;align-self:stretch;align-items:flex-start;gap:0;width:100%;padding:0 0 16px;display:flex}.selected-thumb{cursor:pointer;flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;padding:0 8px;transition:transform .15s;display:flex;position:relative}.selected-thumb:hover{transform:translateY(-1px)}.selected-thumb-image{aspect-ratio:1;background:var(--surface-sunken,#f3f3f3);border:1px solid #d9d9d9;border-radius:8px;justify-content:center;align-items:center;width:min(200px,100%);transition:border-color .15s,border-width .15s;display:flex;overflow:hidden}.selected-thumb.is-primary .selected-thumb-image{border-width:2px;border-color:#2d5a7b}.selected-thumb-image img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:100%;display:block}.selected-thumb-placeholder{width:100%;height:100%;color:var(--ink-faint);justify-content:center;align-items:center;display:flex}.selected-thumb-meta{flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0;display:flex}.selected-thumb-row{justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.selected-thumb-name{color:#7a7a7a;text-align:center;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.selected-thumb.is-primary .selected-thumb-name{color:var(--ink,#333)}.selected-thumb-caret-btn{color:#7a7a7a;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:background .15s,color .15s;display:inline-flex}.selected-thumb-caret-btn:hover{color:var(--ink,#333);background:#0000000a}.selected-thumb-caret-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.selected-thumb-caret{display:block}.slot-options-popover{z-index:1000;background:var(--surface-raised,#fff);border:1px solid var(--border-strong);border-radius:12px;flex-direction:column;width:min(360px,100vw - 16px);max-height:min(440px,100vh - 24px);display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 36px #00000029,0 4px 10px #0000000f}.slot-options-popover[hidden]{display:none}.slot-options-popover:before{content:"";top:-6px;left:var(--slot-options-popover-arrow-x,50%);background:var(--surface-raised,#fff);border-left:1px solid var(--border-strong);border-top:1px solid var(--border-strong);width:12px;height:12px;position:absolute;transform:translate(-50%)rotate(45deg)}.slot-options-popover-head{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 8px;display:flex}.slot-options-popover-title{flex-direction:column;min-width:0;display:flex}.slot-options-popover-name{color:var(--ink,#333);text-transform:capitalize;font-size:14px;font-weight:600}.slot-options-popover-count{color:var(--ink-faint,#9b9b9b);margin-top:2px;font-size:12px}.slot-options-popover-close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.slot-options-popover-close:hover{color:var(--ink);background:#0000000d}.slot-options-popover-grid{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;display:grid;overflow-y:auto}.slot-options-popover-empty{text-align:center;color:var(--ink-faint);padding:18px 14px 22px;font-size:13px}.slot-options-popover-tile{border:1px solid var(--border,#d9d9d9);background:var(--surface,#fff);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px;transition:border-color .12s,background .12s,transform .12s;display:flex}.slot-options-popover-tile:hover{border-color:#2d5a7b;transform:translateY(-1px)}.slot-options-popover-tile.active{background:#2d5a7b0f;border-color:#2d5a7b;box-shadow:0 0 0 2px #2d5a7b26}.slot-options-popover-thumb{aspect-ratio:1;background:var(--surface-sunken,#f3f3f3);border-radius:6px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.slot-options-popover-thumb img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:100%}.slot-options-popover-tile-label{color:var(--ink-muted,#7a7a7a);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:11px;font-weight:500;line-height:1.2;overflow:hidden}.slot-options-popover-tile.active .slot-options-popover-tile-label{color:#2d5a7b;font-weight:600}.slot-options-popover-foot{border-top:1px solid var(--border);padding:8px}.slot-options-popover-browse-all{border:1px solid var(--border-strong);width:100%;color:var(--ink,#333);cursor:pointer;background:0 0;border-radius:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .12s}.slot-options-popover-browse-all:hover{background:#0000000a}.selected-separator{justify-content:center;align-self:center;align-items:center;padding:0 2px;display:flex}.selected-separator-text{font-family:var(--font-display);color:var(--accent);opacity:.5;font-size:22px;font-weight:500;line-height:1}[data-tenant=roomandboard] .selected-separator-text,[data-tenant=roomandboard] .brand-amp{font-family:var(--font-display);font-size:26px;font-weight:400}.wizard-steps{background:var(--surface);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:0;padding:16px 24px;display:flex}.wizard-step{cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:0 16px;transition:opacity .2s;display:flex;position:relative}.wizard-step:not(:last-child):after{content:"";background:var(--border);width:24px;height:2px;position:absolute;top:12px;right:-20px}.wizard-step.completed:not(:last-child):after{background:var(--accent)}.wizard-step-number{background:var(--surface-sunken);border:2px solid var(--border);width:28px;height:28px;color:var(--ink-faint);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:all .2s;display:flex}.wizard-step.active .wizard-step-number{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-light)}.wizard-step.completed .wizard-step-number{background:var(--accent);border-color:var(--accent);color:#fff}.wizard-step-label{color:var(--ink-faint);white-space:nowrap;font-size:11px;font-weight:600;transition:color .2s}.wizard-step.active .wizard-step-label{color:var(--accent)}.wizard-step.completed .wizard-step-label{color:var(--ink-muted)}.wizard-content{background:var(--surface);padding:0 0 24px}.wizard-content.transitioning{opacity:.5;pointer-events:none;transition:opacity .2s}.step-header,.asset-grid{animation:.35s ease-out step-content-in}@keyframes step-content-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.asset-grid.animate>*{animation:.4s ease-out backwards grid-item-in}.asset-grid>:first-child{animation-delay:0s}.asset-grid>:nth-child(2){animation-delay:50ms}.asset-grid>:nth-child(3){animation-delay:.1s}.asset-grid>:nth-child(4){animation-delay:.15s}.asset-grid>:nth-child(5){animation-delay:.2s}.asset-grid>:nth-child(6){animation-delay:.25s}@keyframes grid-item-in{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.step-header{background:var(--surface);padding:20px 24px 16px}.step-title{margin-bottom:8px}.step-number{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.step-heading{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:500}.step-selection{background:var(--accent-light);border:1px solid var(--accent-glow);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 14px;display:flex}.step-selection.empty{background:var(--surface-sunken);border-color:var(--border)}.step-selection-label{color:var(--ink-muted);font-size:12px;font-weight:600}.step-selection-value{color:var(--accent);font-size:13px;font-weight:600}.step-selection.empty .step-selection-label{color:var(--ink-faint);font-style:italic}.asset-grid-loading{text-align:center;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:12px;min-height:200px;padding:64px 24px;display:none}.asset-grid-loading.visible{display:flex}.asset-grid-loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.asset-grid-loading-text{color:var(--ink-muted);font-size:14px;font-weight:500}.asset-grid.skeleton-mode{pointer-events:none}.skeleton-card-large{background:var(--surface-raised);border-radius:var(--radius-lg);border:2px solid #0000;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a}.skeleton-card-large:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#ffffff80) 50%, transparent 100%);pointer-events:none;z-index:1;animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}.skeleton-card-image{aspect-ratio:4/3;background:var(--surface-sunken);width:100%}@keyframes shimmer-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-card-content{flex-direction:column;gap:8px;padding:14px;display:flex}.skeleton-card-title{background:var(--surface-sunken);border-radius:4px;width:80%;height:16px}.skeleton-card-meta{background:var(--surface-sunken);border-radius:4px;width:60%;height:12px}.skeleton-card-footer{justify-content:space-between;margin-top:8px;display:flex}.skeleton-card-price{background:var(--surface-sunken);border-radius:4px;width:40px;height:14px}.skeleton-card-rating{background:var(--surface-sunken);border-radius:4px;width:30px;height:14px}.asset-grid{grid-template-columns:repeat(2,1fr);gap:16px;padding:0 24px;display:grid}@media (width<=480px){.asset-grid{grid-template-columns:1fr}}.asset-card-large{background:var(--surface-raised);border-radius:var(--radius-lg);cursor:pointer;border:2px solid #0000;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a}.asset-card-large:hover{border-color:var(--border-strong);transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.asset-card-large.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 8px 24px var(--accent-glow)}.card-image-wrapper{background:var(--surface-sunken);width:100%;position:relative;overflow:hidden}.card-image-wrapper.loading:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#fff6) 50%, transparent 100%);animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}.card-image{object-fit:contain;opacity:0;width:100%;height:100%;transition:transform .4s,opacity .35s}.card-image.loaded{opacity:1;mix-blend-mode:multiply}.asset-card-large:hover .card-image{transform:scale(1.05)}.card-image-placeholder{color:var(--ink-faint);background:var(--surface-sunken);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card-selected-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;animation:.3s badge-pop;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #0003}@keyframes badge-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.card-details-btn{width:32px;height:32px;color:var(--ink-muted);cursor:pointer;opacity:0;z-index:2;background:#fffffff2;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;bottom:12px;right:12px;transform:translateY(8px);box-shadow:0 2px 8px #00000026}.asset-card-large:hover .card-details-btn{opacity:1;transform:translateY(0)}.card-details-btn:hover{color:var(--accent);background:#fff;transform:scale(1.1)}.card-content{padding:14px}.card-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:14px;font-weight:600;overflow:hidden}.asset-card-large.selected .card-title{color:var(--accent)}.card-meta{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin:0 0 10px;font-size:12px;overflow:hidden}.card-footer{justify-content:space-between;align-items:center;display:flex}.card-price{color:var(--ink);font-size:15px;font-weight:700}.card-rating{color:var(--ink-muted);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.card-rating svg{color:#f59e0b}.detail-modal{z-index:200;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.detail-modal.open{opacity:1;visibility:visible}.detail-modal-backdrop{background:#000000b3;position:absolute;inset:0}.detail-modal-content{background:var(--surface-raised);border-radius:var(--radius-lg);flex-shrink:0;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);width:90vw;max-width:900px;height:55vh;transition:transform .3s;display:grid;position:relative;overflow:hidden;transform:scale(.95);box-shadow:0 24px 64px #0000004d}.detail-modal.open .detail-modal-content{transform:scale(1)}.detail-modal-close{width:40px;height:40px;color:var(--ink);cursor:pointer;z-index:10;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 2px 8px #0000001a}.detail-modal-close:hover{background:#fff;transform:scale(1.1)}.detail-modal-body{display:contents}@media (width<=640px){.detail-modal-content{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:1fr;height:90vh;max-height:90vh}}.detail-image-section{background:var(--surface-sunken);justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;position:relative;overflow:hidden}.detail-image-wrapper{border-radius:var(--radius);justify-content:center;align-items:center;max-width:100%;max-height:100%;display:flex;overflow:hidden}.detail-image{object-fit:contain;mix-blend-mode:multiply;max-width:100%;max-height:calc(55vh - 48px);display:block}.detail-image-placeholder{width:100%;height:100%;color:var(--ink-faint);justify-content:center;align-items:center;display:flex}.detail-info-section{flex-direction:column;height:100%;min-height:0;padding:32px;display:flex;overflow:hidden}.detail-content-scroll{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;max-height:200px;margin:8px 0 4px;padding-right:4px;overflow:hidden auto}.detail-description{color:var(--ink-muted);-webkit-user-select:text;user-select:text;font-size:14px;line-height:1.6}.detail-content-scroll::-webkit-scrollbar{width:6px}.detail-content-scroll::-webkit-scrollbar-track{background:0 0}.detail-content-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.detail-header{margin-bottom:16px}.detail-meta{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:12px;font-weight:600}.detail-title{font-family:var(--font-display);color:var(--ink);margin:0 0 8px;font-size:20px;font-weight:500;line-height:1.3}.detail-price{color:var(--ink);font-size:24px;font-weight:700}.detail-specs{flex:1;min-height:0;max-height:40vh;margin-bottom:24px;overflow-y:auto}.detail-specs-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 16px;font-size:12px;font-weight:600}.detail-specs-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.detail-spec{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px;display:flex}.detail-spec-label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.detail-spec-value{color:var(--ink);font-size:13px;font-weight:600}.detail-actions{flex-direction:column;gap:6px;margin-top:auto;display:flex}.detail-btn{border-radius:var(--radius);letter-spacing:.03em;cursor:pointer;border:none;width:100%;padding:14px 24px;font-size:14px;font-weight:600;transition:all .2s}.detail-btn-primary{background:var(--accent);color:#fff}.detail-btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 16px var(--accent-glow)}.detail-btn-secondary{color:var(--ink-muted);border:1px solid var(--border);background:0 0}.detail-btn-secondary:hover{border-color:var(--border-strong);color:var(--ink);background:var(--surface-sunken)}.detail-btn-link{color:var(--accent);border:1px solid var(--accent);background:0 0;justify-content:center;align-items:center;gap:8px;font-weight:500;text-decoration:none;display:inline-flex}.detail-btn-link:hover{background:var(--accent-light);color:var(--accent-hover)}.clear-btn{color:var(--ink-muted);cursor:pointer;white-space:nowrap;opacity:.8;background:0 0;border:none;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s}.clear-btn:hover:not(:disabled){color:var(--ink);opacity:1;text-decoration:underline}.clear-btn:active:not(:disabled){transform:scale(.985)}.clear-btn:disabled{opacity:.35;cursor:default;text-decoration:none}.skeleton-grid{grid-template-columns:repeat(2,1fr);gap:16px;padding:0 24px;display:grid}.skeleton-card-large{background:var(--surface-raised);border-radius:var(--radius-lg);overflow:hidden}.skeleton-image{aspect-ratio:4/3;background:var(--surface-sunken);animation:1.4s ease-in-out infinite shimmer}.skeleton-content{padding:14px}.pagination-container{padding:16px 24px 0}.tab-bar{display:none}@media (width<=480px){.selected-thumbnails{gap:0;padding:0 0 12px}.selected-thumb{padding:0 6px}.selected-header{padding:12px 12px 8px}.wizard-step{padding:0 8px}.wizard-step-label{font-size:10px}.step-heading{font-size:18px}.detail-info-section{padding:20px}.detail-title{font-size:18px}.detail-specs-grid{grid-template-columns:1fr}}@keyframes wizard-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wizard-content{animation:.3s wizard-fade-in}.asset-card-large:focus-visible,.detail-btn:focus-visible,.wizard-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.selected-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.error-popup{z-index:300;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.error-popup.open{opacity:1;visibility:visible}.error-popup-backdrop{background:#0009;position:absolute;inset:0}.error-popup-content{background:var(--surface-raised);border-radius:var(--radius-lg);text-align:center;border-top:3px solid var(--error);width:90%;max-width:360px;padding:28px 24px 24px;transition:transform .25s;position:relative;transform:scale(.95);box-shadow:0 16px 48px #00000040}.error-popup.open .error-popup-content{transform:scale(1)}.error-popup-icon{background:var(--error-bg);width:48px;height:48px;color:var(--error);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.error-popup-title{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:20px;font-weight:500}.error-popup-message{color:var(--ink-muted);margin-bottom:20px;font-size:14px;line-height:1.6}.error-popup-btn{border-radius:var(--radius);background:var(--error);color:#fff;cursor:pointer;border:none;width:100%;padding:12px 20px;font-size:14px;font-weight:500;transition:background .2s}.error-popup-btn:hover{background:#a03535}.panel-header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.fav-toggle{border:1.5px solid var(--header-btn-border,var(--border));border-radius:var(--radius);width:32px;height:32px;color:var(--header-btn-color,var(--ink-muted));cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:all .18s;display:inline-flex;position:relative}.planner-save-pill{border:1.5px solid var(--header-btn-border,var(--border));height:32px;color:var(--header-btn-color,var(--ink-muted));cursor:pointer;background:0 0;border-radius:16px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .18s;display:none}#panel.is-planner-mode .planner-save-pill{display:inline-flex}.planner-save-pill:hover,.fav-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--header-btn-bg-hover,var(--accent-light))}.fav-toggle.has-favorites{border-color:var(--accent);color:var(--accent)}.fav-toggle.has-favorites svg{fill:currentColor}.fav-badge{background:var(--accent);color:#fff;text-align:center;border-radius:100px;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-5px;box-shadow:0 1px 3px #0003}.card-fav-btn{width:32px;height:32px;color:var(--ink-muted);cursor:pointer;opacity:0;z-index:2;background:#fffffff2;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:12px;left:12px;transform:translateY(-8px);box-shadow:0 2px 8px #00000026}.asset-card-large:hover .card-fav-btn{opacity:1;transform:translateY(0)}.card-fav-btn.active{opacity:1;color:var(--accent);transform:translateY(0)}.card-fav-btn:hover{color:var(--accent);background:#fff;transform:scale(1.1)}.detail-fav-btn{width:44px;height:44px;color:var(--ink-muted);cursor:pointer;z-index:2;background:#fffffff2;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .18s;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 2px 8px #00000026}.detail-fav-btn:hover{color:var(--accent);background:#fff;transform:scale(1.1)}.detail-fav-btn.active{color:var(--accent);background:var(--accent-light)}.detail-select-overlay{white-space:nowrap;z-index:2;width:auto;min-width:140px;padding:12px 24px;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.detail-variant{color:var(--ink-muted);margin-top:4px;font-size:.85rem;display:block}.variant-picker{font-family:var(--font-body);background:#fbf5e9;border:1px solid #b26d1f2e;border-radius:14px;margin:12px 0 16px;padding:14px 18px 16px}.variant-picker-label{font:500 10px var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:#0000007a;margin-bottom:12px}.variant-picker-swatches{overscroll-behavior:contain;flex-wrap:wrap;gap:16px;max-height:224px;padding-right:4px;display:flex;overflow-y:auto}.variant-swatch{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;width:auto;padding:0;transition:opacity .15s;display:flex}.variant-swatch:disabled{cursor:progress;opacity:.5}.variant-swatch-thumb{background:#eee;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;transition:box-shadow .15s;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.variant-swatch:hover:not(.active):not(:disabled) .variant-swatch-thumb{box-shadow:inset 0 0 0 1px #00000014,0 0 0 2px #b26d1f59}.variant-swatch.active .variant-swatch-thumb{box-shadow:0 0 0 1.5px #fbf5e9,0 0 0 3px #b26d1f}.variant-swatch-thumb img{object-fit:cover;width:100%;height:100%;display:block}.variant-swatch-label{color:#0000007a;text-align:center;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;max-width:60px;font-size:11px;font-weight:500;line-height:1.1;display:-webkit-box;overflow:hidden}.variant-swatch.active .variant-swatch-label{color:#b26d1f;font-weight:600}.selected-header-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.save-ensemble-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-muted);cursor:pointer;white-space:nowrap;text-transform:none;letter-spacing:0;background:0 0;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .18s;display:inline-flex}.save-ensemble-btn svg{width:12px;height:12px}.save-ensemble-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.save-ensemble-btn:disabled{color:var(--accent);border-color:var(--accent);background:var(--accent-light);cursor:default;opacity:.8}.favorites-panel{flex-direction:column;min-height:100%;display:flex}.fav-header{border-bottom:1px solid var(--border);background:var(--surface-raised);align-items:center;gap:12px;padding:16px 24px;display:flex}.fav-back-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-muted);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:500;transition:all .18s;display:inline-flex}.fav-back-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.fav-header-title{font-family:var(--font-display);color:var(--ink);font-size:18px;font-weight:500}.fav-tabs{border-bottom:1px solid var(--border);background:var(--surface-raised);display:flex}.fav-tab{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:12px 0;font-size:12px;font-weight:600;transition:color .18s,border-color .18s}.fav-tab:hover{color:var(--ink-muted)}.fav-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.fav-content{flex:1;padding:0;overflow-y:auto}.fav-empty{text-align:center;color:var(--ink-faint);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.fav-empty p{color:var(--ink-muted);font-size:14px;font-weight:500}.fav-empty span{font-size:12px}.fav-asset-list{flex-direction:column;display:flex}.fav-asset-row{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 24px;transition:background .15s;display:flex}.fav-asset-row:hover{background:var(--surface-sunken)}.fav-asset-row.unavailable{opacity:.5;cursor:default}.fav-asset-thumb{border-radius:var(--radius);background:var(--surface-sunken);flex-shrink:0;width:48px;height:48px;overflow:hidden}.fav-asset-thumb img{object-fit:contain;width:100%;height:100%}.fav-asset-info{flex:1;min-width:0}.fav-asset-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.fav-asset-meta{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.fav-unavailable-label{color:var(--error);font-weight:500}.fav-asset-remove{width:28px;height:28px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.fav-asset-remove:hover{background:var(--error-bg);color:var(--error)}.fav-ensemble-list{flex-direction:column;gap:12px;padding:16px 24px;display:flex}.fav-ensemble-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);padding:16px;transition:box-shadow .18s}.fav-ensemble-card:hover{box-shadow:0 2px 12px #0000000f}.fav-ensemble-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.fav-ensemble-type{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:600}.fav-ensemble-date{color:var(--ink-faint);font-size:10px}.fav-ensemble-thumbs{gap:8px;margin-bottom:10px;display:flex}.fav-ensemble-slot-thumb{border-radius:var(--radius);background:var(--surface-sunken);width:56px;height:56px;overflow:hidden}.fav-ensemble-slot-thumb img{object-fit:contain;width:100%;height:100%}.fav-ensemble-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:13px;font-weight:600;overflow:hidden}.fav-ensemble-opts{color:var(--ink-muted);margin-bottom:12px;font-size:11px}.fav-ensemble-actions{gap:8px;display:flex}.fav-ensemble-btn{border-radius:var(--radius);cursor:pointer;text-align:center;flex:1;padding:8px 12px;font-size:12px;font-weight:600;transition:all .18s}.fav-ensemble-load{background:var(--accent);color:#fff;border:none}.fav-ensemble-load:hover{background:var(--accent-hover)}.fav-ensemble-remove{color:var(--ink-muted);border:1px solid var(--border);background:0 0}.fav-ensemble-remove:hover{border-color:var(--error);color:var(--error);background:var(--error-bg)}@media (prefers-reduced-motion:reduce){.card-fav-btn,.card-details-btn{transition:none;animation:none}}.slot-columns{border-top:1px solid var(--border);flex-direction:row;flex:1 1 0;min-width:0;min-height:0;display:flex}.slot-column{border-right:1px solid var(--border);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex;container-type:inline-size}.slot-column:last-child{border-right:none}.slot-columns.planner-mode{flex-direction:column}.slot-columns.planner-mode .planner-category-column{border-right:none;flex:auto}.slot-column-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.slot-column-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:700}.slot-column-expand{border-radius:var(--radius);width:28px;height:28px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.slot-column-expand:hover{background:var(--surface-sunken);color:var(--accent)}.slot-column-search{flex-shrink:0;padding:0 10px 8px}#panel.is-planner-mode .slot-column-search{padding-top:12px}.slot-search-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;color:var(--ink);outline:none;padding:6px 10px;font-size:12px;transition:border-color .15s}.slot-search-input::placeholder{color:var(--ink-faint)}.slot-search-input:focus{border-color:var(--accent)}.slot-column-recommend{flex-shrink:0;gap:6px;padding:0 10px 8px;display:none}.slot-recommend-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);min-width:0;color:var(--ink);outline:none;flex:1;padding:6px 10px;font-size:12px;transition:border-color .15s}.slot-recommend-input::placeholder{color:var(--ink-faint)}.slot-recommend-input:focus{border-color:var(--accent)}.slot-recommend-go{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:30px;color:var(--ink-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.slot-recommend-go:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-sunken)}.slot-column-rec-header{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 6px;display:flex}.slot-column-rec-title{letter-spacing:.04em;text-transform:uppercase;min-width:0;color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.slot-column-rec-clear{border-radius:var(--radius);width:22px;height:22px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.slot-column-rec-clear:hover{background:var(--surface-sunken);color:var(--accent)}.slot-column-rec-status{grid-column:1/-1}.slot-goes-well-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;padding:2px 4px 8px;font-size:13px;font-weight:700;overflow:hidden}.slot-goes-well-loading{grid-column:1/-1;justify-content:center;padding:8px 0 10px;display:flex}.slot-goes-well-card.group-card{grid-column:1/-1}.group-list-mode .slot-goes-well-title,.group-list-mode .slot-goes-well-loading{flex-shrink:0}.slot-column-filters{flex-shrink:0;gap:6px;padding:0 10px 8px;display:flex}.slot-filter-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);min-width:0;color:var(--ink);cursor:pointer;appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;outline:none;flex:1;padding:4px 20px 4px 6px;font-size:11px;transition:border-color .15s}.slot-filter-select:focus{border-color:var(--accent)}.slot-column-grid{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:transparent transparent;flex:1;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));align-content:start;gap:4px;padding:6px 6px 24px;display:grid;position:relative;overflow:hidden auto}.slot-column-grid.is-scrolling{scrollbar-color:var(--border-strong) transparent}.scroll-sentinel{grid-column:1/-1;height:1px}.slot-column-grid .compact-card-name{-webkit-line-clamp:3;line-clamp:3;min-height:39px;font-size:10px}.slot-column-grid::-webkit-scrollbar{width:4px}.slot-column-grid::-webkit-scrollbar-track{background:0 0}.slot-column-grid::-webkit-scrollbar-thumb{background:0 0;border-radius:100px;transition:background-color .25s}.slot-column-grid.is-scrolling::-webkit-scrollbar-thumb{background:var(--border-strong)}@media (prefers-reduced-motion:reduce){.slot-column-grid::-webkit-scrollbar-thumb{transition:none}}.slot-column-loading{color:var(--ink-faint);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:500;display:flex;position:absolute;inset:0}.slot-column-loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.slot-column-empty{text-align:center;color:var(--ink-faint);padding:24px 12px;font-size:13px}.compact-card{border-radius:var(--radius);cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;padding:4px;transition:background .15s,border-color .15s;display:flex}.compact-card:hover{background:var(--surface-sunken)}.compact-card.selected{border-color:var(--accent);background:var(--accent-light)}.compact-card-thumb{aspect-ratio:1;border-radius:var(--radius);background:var(--surface-sunken);width:100%;position:relative;overflow:hidden}.compact-card-thumb.loading:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#fff6) 50%, transparent 100%);animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}.compact-card-thumb img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .35s}.compact-card-thumb img.loaded{opacity:1;mix-blend-mode:multiply}.compact-card-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #0003}.compact-card-drill-badge{color:#fff;pointer-events:none;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:4px;right:4px}.compact-card.is-variant-base.selected .compact-card-drill-badge{background:var(--accent)}.card-drill-badge{color:#fff;pointer-events:none;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;bottom:8px;left:8px}.asset-card-large.is-variant-base.selected .card-drill-badge{background:var(--accent)}.compact-card-name{color:var(--ink-muted);text-align:center;-webkit-line-clamp:2;line-clamp:2;word-break:keep-all;overflow-wrap:normal;text-overflow:ellipsis;-webkit-hyphens:none;hyphens:none;-webkit-box-orient:vertical;width:100%;min-width:0;min-height:28.6px;margin-top:4px;font-size:11px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.compact-card.selected .compact-card-name{color:var(--accent)}.compact-card-count{color:var(--ink-faint,var(--ink-muted));text-align:center;width:100%;margin-top:2px;font-size:10px;font-weight:500;line-height:1.2}.compact-action-btn{width:22px;height:22px;color:var(--ink-muted);cursor:pointer;opacity:0;z-index:2;background:#ffffffeb;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex;position:absolute;box-shadow:0 1px 4px #00000026}.compact-card:hover .compact-action-btn{opacity:1}.compact-action-btn:hover{color:var(--accent);background:#fff;transform:scale(1.15)}.compact-fav-btn{top:3px;left:3px}.compact-fav-btn.active{opacity:1;color:var(--accent)}.compact-details-btn{bottom:3px;right:3px}.slot-column-grid.group-list-mode{flex-direction:column;grid-template-columns:none;gap:4px;padding-bottom:64px;display:flex}.group-card{border-radius:var(--radius);cursor:pointer;box-sizing:border-box;border:2px solid #0000;flex-shrink:0;grid-column:1/-1;align-items:center;gap:16px;min-width:0;padding:18px 20px;transition:background .15s,border-color .15s;display:flex;overflow:hidden}.group-card:hover{background:var(--surface-sunken)}.group-card.selected{border-color:var(--accent);background:var(--accent-light)}.group-card.selected:hover{border-color:var(--accent-hover);background:var(--accent-light)}.group-card.selected .group-card-name,.group-card.selected .group-card-chevron{color:var(--accent)}.group-card-badge{background:var(--accent);color:#fff;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #0003}.group-card-thumb{aspect-ratio:1;border-radius:var(--radius);background:var(--surface-sunken);flex-shrink:0;width:72px;position:relative;overflow:hidden}.group-card-thumb.loading:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#fff6) 50%, transparent 100%);animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}@container (width<=140px){.group-card{text-align:center;flex-direction:column;align-items:stretch;gap:10px;padding:14px}.group-card-thumb{aspect-ratio:4/3;align-self:center;width:100%}.group-card-chevron{align-self:flex-end}}.group-card-thumb img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .35s;display:block}.group-card-thumb img.loaded{opacity:1;mix-blend-mode:multiply}.group-card-body{flex:1;min-width:0}.group-card-name{color:var(--ink);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:16px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.group-card-count{font:400 12px var(--font-config-panel,inherit);color:#9b9b9b}.group-card-chevron{color:var(--ink-faint);flex-shrink:0;align-items:center;transition:color .15s,transform .15s;display:flex}.group-card:hover .group-card-chevron{color:var(--accent);transform:translate(2px)}.group-card.active .group-card-chevron{transform:rotate(90deg)}.group-card.active:hover .group-card-chevron{color:var(--accent);transform:rotate(90deg)}.breadcrumb-back{border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface-raised);height:26px;color:var(--accent);cursor:pointer;letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:0 8px 0 6px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.breadcrumb-back-label{line-height:1}.breadcrumb-back:hover{border-color:var(--accent);color:#fff;background:var(--accent)}.breadcrumb-current{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.breadcrumb-sep{color:var(--ink-faint);-webkit-user-select:none;user-select:none}.breadcrumb-link{color:var(--accent);cursor:pointer;font-size:11px;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.browse-breadcrumb{flex-shrink:0;align-items:center;gap:8px;padding:0 24px 12px;display:flex}.browse-breadcrumb .breadcrumb-back{width:28px;height:28px}.browse-breadcrumb .breadcrumb-current{max-width:350px;font-size:14px}.browse-group-card.active,.group-card.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.browse-l2-items{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.slot-l2-items{border-bottom:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;margin-bottom:4px;padding:6px 0 10px;display:grid}.browse-group-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px;padding:0 24px;display:grid}.browse-group-card{border-radius:var(--radius);cursor:pointer;align-items:center;gap:14px;padding:14px 16px;transition:background .15s;display:flex;overflow:hidden}.browse-group-card:hover{background:var(--surface-sunken)}.browse-l2-group-list{padding:0 24px}.browse-group-card-thumb{aspect-ratio:1;border-radius:var(--radius);background:var(--surface-sunken);flex-shrink:0;width:56px;position:relative;overflow:hidden}.browse-group-card-thumb.loading:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--surface-raised,#fff6) 50%, transparent 100%);animation:1.5s ease-in-out infinite shimmer-slide;position:absolute;inset:0}.browse-group-card-thumb img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .35s;display:block}.browse-group-card-thumb img.loaded{opacity:1;mix-blend-mode:multiply}.browse-group-card-body{flex:1;min-width:0}.browse-group-card-name{color:var(--ink);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.browse-group-card-count{color:var(--ink-faint);font-size:12px;line-height:1.3}.browse-group-card-chevron{color:var(--ink-faint);flex-shrink:0;align-items:center;transition:color .15s,transform .15s;display:flex}.browse-group-card:hover .browse-group-card-chevron{color:var(--accent);transform:translate(2px)}.browse-group-card.active .browse-group-card-chevron{transform:rotate(90deg)}.browse-group-card.active:hover .browse-group-card-chevron{color:var(--accent);transform:rotate(90deg)}.browse-modal{z-index:150;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.browse-modal.open{opacity:1;visibility:visible}.browse-modal-backdrop{background:#0009;position:absolute;inset:0}.browse-modal-content{background:var(--surface);border-radius:var(--radius-lg);flex-direction:column;width:90%;max-width:900px;height:85vh;transition:transform .3s;display:flex;position:relative;overflow:hidden;transform:scale(.95);box-shadow:0 24px 64px #0000004d}.browse-modal.open .browse-modal-content{transform:scale(1)}.browse-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.browse-modal-title{font-family:var(--font-display);color:var(--ink);font-size:22px;font-weight:500}.browse-modal-close{background:var(--surface-sunken);width:36px;height:36px;color:var(--ink-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.browse-modal-close:hover{background:var(--border);color:var(--ink)}.browse-modal-search{flex-shrink:0;padding:16px 24px 8px}.browse-modal-filters{flex-shrink:0;gap:8px;padding:0 24px 12px;display:flex}.browse-filter-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;padding:6px 28px 6px 10px;font-size:13px;transition:border-color .15s}.browse-filter-select:focus{border-color:var(--accent)}.browse-modal-body{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;padding:0 0 24px;overflow-y:auto}.browse-modal-body .asset-grid{padding:0 24px}.browse-modal-body .asset-grid:not(.browse-group-grid):not(.param-groups){gap:12px}.browse-modal-body .card-image-wrapper{height:120px;aspect-ratio:auto!important}.browse-modal-body .card-content{padding:8px 12px}.browse-modal-body .card-title{margin-bottom:2px;font-size:13px}.browse-modal-body .card-meta{margin-bottom:6px;font-size:11px}.browse-modal-body .card-price{font-size:14px}.browse-modal-body .pagination-container{padding:16px 24px 0}@media (width<=480px){.slot-columns{flex-direction:column}.slot-column{border-right:none;border-bottom:1px solid var(--border);max-height:50%}.slot-column:last-child{border-bottom:none}.browse-modal-content{width:95%;height:90vh}}@media (width<=768px){.panel{z-index:100;max-width:none;height:100dvh;box-shadow:none;border-right:none;transition:transform .35s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;right:0;width:100%!important}.panel.collapsed{transform:translateY(100%)}.viewport{z-index:1;position:fixed;inset:0;left:0!important}.panel-resize-handle{display:none}.panel-toggle-btn{display:none!important}.mobile-view-toggle{z-index:200;background:var(--accent);color:#fff;font-family:var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:100px;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #8b5e3c59,0 2px 8px #00000026}.mobile-view-toggle:active{transform:translate(-50%)scale(.95)}.mobile-view-toggle svg{flex-shrink:0}.mobile-view-toggle.viewing-3d{background:var(--surface-raised);color:var(--ink);border:1px solid var(--border);box-shadow:0 4px 20px #00000026,0 2px 8px #00000014}.panel-header{padding:12px 16px;padding-top:max(12px, env(safe-area-inset-top))}.panel-logo{font-size:24px}.panel-brand-img{max-height:28px}.combo-picker{padding:12px 16px 10px}.combo-select{padding:10px 32px 10px 14px;font-size:17px}.selected-header{padding:12px 12px 10px}.selected-header-row{margin-bottom:12px}.selected-thumbnails{gap:0}.selected-separator-text{font-size:18px}.slot-columns{flex-direction:column}.slot-column{border-right:none;border-bottom:1px solid var(--border);flex:1;min-height:0}.slot-column:last-child{border-bottom:none}.slot-column-header{padding:8px 12px 4px}.slot-column-grid{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:3px;padding:4px 4px 16px}.slot-column-expand{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:auto;height:36px;color:var(--ink);gap:6px;padding:0 12px;font-size:12px;font-weight:600}.slot-column-expand:after{content:"Browse all";letter-spacing:.02em}.fav-toggle{width:36px;height:36px}.panel-hide-btn{display:none}.config-overlay{-webkit-overflow-scrolling:touch;width:auto;max-height:calc(100dvh - 80px);top:8px;left:8px;right:8px;overflow-y:auto}.config-overlay-toggle{top:8px;right:8px}.config-overlay .combo-picker{padding:10px 12px 8px}.config-overlay .panel-section{padding:8px 12px}.browse-modal-content{border-radius:0;width:100%;max-width:100%;height:100dvh}.browse-modal-header{padding:16px 16px 0;padding-top:max(16px, env(safe-area-inset-top))}.browse-modal-search{padding:12px 16px 6px}.browse-modal-filters{flex-wrap:wrap;padding:0 16px 10px}.browse-modal-body .asset-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 12px}.browse-modal-body .pagination-container{padding:12px 16px 0}.browse-group-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;padding:0 12px}.detail-modal-content{border-radius:0}.detail-modal-body{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:1fr}.detail-image-section{min-height:0;padding:16px}.detail-info-section{min-height:0;padding:20px 16px}.detail-title{font-size:22px}.detail-specs-grid{grid-template-columns:1fr}.error-popup-content{width:92%}.processing-toast{top:8px}.processing-toast.visible{padding:10px 18px;transform:translateY(0)scale(1)}.compact-action-btn{opacity:1}.card-fav-btn,.card-details-btn{opacity:1;transform:translateY(0)}.filter-popup{left:8px;right:8px}.scene-modal{width:calc(100% - 32px)}.message-area{top:calc(max(12px, env(safe-area-inset-top)) + 52px);width:auto;padding:0 16px;left:0;right:0}.browse-breadcrumb{padding:0 16px 10px}.panel-body{-webkit-overflow-scrolling:touch;padding-bottom:72px;overflow-y:auto}}@media (width<=380px){.selected-thumb-label{font-size:9px}.selected-separator-text{font-size:14px}.combo-select{font-size:15px}.panel-header{padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top))}.browse-modal-body .asset-grid{grid-template-columns:1fr}.slot-column-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}}@media (width>=769px){.mobile-view-toggle{display:none}}[data-tenant=tov] .wizard-btn,[data-tenant=tov] .create-btn,[data-tenant=tov] .clear-btn,[data-tenant=tov] .combo-select,[data-tenant=tov] .filter-chip,[data-tenant=tov] .scene-skybox-label,[data-tenant=tov] .scene-settings-label,[data-tenant=tov] .config-overlay-title,[data-tenant=tov] .selected-header-label,[data-tenant=tov] .panel-logo{text-transform:none;letter-spacing:0}[data-tenant=tov] .panel-logo,[data-tenant=tov] .scene-modal-title,[data-tenant=tov] .browse-modal-title,[data-tenant=tov] .error-popup-title,[data-tenant=tov] .selected-header-label{font-weight:700}[data-tenant=tov] .wizard-btn-primary:active,[data-tenant=tov] .create-btn:active{background:var(--accent-pressed)}[data-tenant=tov] .detail-modal-content,[data-tenant=tov] .browse-modal-content,[data-tenant=tov] .scene-modal,[data-tenant=tov] .error-popup-content{box-shadow:var(--shadow-md)}[data-tenant=tov] .config-overlay,[data-tenant=tov] .processing-toast{box-shadow:var(--shadow-sm)}[data-tenant=tov] .config-overlay,[data-tenant=tov] .loading-text,[data-tenant=tov] .empty-title{letter-spacing:.05em}[data-tenant=tov] .engine-loading-text{letter-spacing:.15em;text-transform:uppercase}[data-tenant=article] .wizard-btn,[data-tenant=article] .create-btn,[data-tenant=article] .clear-btn,[data-tenant=article] .combo-select{text-transform:none;letter-spacing:normal;border-radius:9999px}[data-tenant=article] .combo-select{background-position:right 16px center;padding-left:20px;padding-right:36px}[data-tenant=article] .panel-toggle-btn,[data-tenant=article] .config-overlay-toggle{border-radius:9999px}.version-badge{z-index:50;color:#ffffffbf;font-family:var(--font-body);letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0000008c;border-radius:4px;padding:2px 7px;font-size:10px;line-height:1.6;position:fixed;bottom:8px;right:10px}.viewport-action-btn.hidden{display:none}.viewport-action-btn{z-index:49;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);height:40px;color:var(--ink);cursor:pointer;font:inherit;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;transition:background .18s,transform .18s,border-color .18s;display:inline-flex;position:absolute;top:16px;right:64px;box-shadow:0 4px 12px #00000026}.viewport-action-btn:hover{background:var(--surface-sunken);border-color:var(--border-strong);transform:scale(1.03)}.viewport-action-btn:disabled,.viewport-action-btn[data-disabled="1"]{opacity:.45;cursor:not-allowed;pointer-events:none;transform:none}.viewport-action-label{letter-spacing:.02em}.planner-overlay{pointer-events:none;z-index:45;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.selection-indicator,.conflict-indicator{fill:none;stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.selection-indicator{stroke:#fff;filter:drop-shadow(0 0 2px #0009);animation:.22s cubic-bezier(.34,1.4,.5,1) both planner-halo-in,2.6s ease-in-out .22s infinite planner-halo-breathe}.conflict-indicator{stroke:#ef4444;animation:.7s ease-in-out infinite planner-conflict-pulse}.distance-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.distance-line{stroke:#fff;stroke-width:1.5px;stroke-linecap:round;vector-effect:non-scaling-stroke}.distance-dim.is-wall .distance-line{stroke-dasharray:2 5}.distance-dot{fill:#fff}.distance-pill{background:var(--surface-raised);border:1px solid var(--border);color:var(--ink);font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;box-shadow:var(--shadow-md);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.35;animation:.14s cubic-bezier(.34,1.4,.5,1) both distance-pill-in;position:absolute;transform:translate(-50%,-50%)}.distance-dim{filter:drop-shadow(0 1px 2px #00000073);animation:.14s ease-out both distance-in}@keyframes distance-in{0%{opacity:0}to{opacity:1}}@keyframes distance-pill-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.scene-dim-hud{bottom:calc(16px + env(safe-area-inset-bottom,0px));left:calc(var(--panel-width) + 16px);z-index:46;background:var(--surface-raised);border:1px solid var(--border);width:200px;box-shadow:var(--shadow-md);pointer-events:auto;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;display:flex;position:fixed}#panel.collapsed~#viewport .scene-dim-hud{left:16px}.scene-dim-hud[hidden]{display:none}.scene-dim-header{font-family:var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:600}.scene-dim-readout{color:var(--ink);white-space:nowrap;font-family:system-ui,sans-serif;font-size:16px;font-weight:600;line-height:1.3}.scene-dim-readout .group{letter-spacing:-.04em}.scene-dim-readout .gap{margin-right:.35em}.scene-dim-sep{color:var(--ink-faint);margin:0 .4em}.scene-dim-rulers{cursor:pointer;align-items:center;gap:8px;margin-top:2px;display:inline-flex}.scene-dim-rulers-label{font-family:var(--font-body);color:var(--ink-muted);white-space:nowrap;font-size:12px;font-weight:600}.scene-dim-rulers.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.scene-dim-readout.is-empty{color:var(--ink-faint)}.scene-dim-readout.is-empty .scene-dim-sep,.scene-dim-readout.is-empty .scene-dim-d{display:none}.dimension-ruler-pill{border:1px solid var(--border);color:var(--ink);font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;box-shadow:var(--shadow-md);background:#fff;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.3;position:absolute;transform:translate(-50%,-50%)}#viewport.is-planner-mode .scene-dim-hud,#viewport.is-planner-mode .dimension-overlay{display:none}@media (width<=768px){.scene-dim-hud{left:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px))}}@keyframes planner-halo-in{0%{opacity:0}to{opacity:1}}@keyframes planner-halo-breathe{0%,to{stroke-width:2px;filter:drop-shadow(0 0 1px #0000008c)}50%{stroke-width:2.5px;filter:drop-shadow(0 0 4px #000000a6)}}@keyframes planner-conflict-pulse{0%,to{opacity:.9;stroke-width:2px;filter:drop-shadow(0 0 1px #ef444466)}50%{opacity:1;stroke-width:2.5px;filter:drop-shadow(0 0 5px #ef444480)}}.planner-toolbar{z-index:50;border:1px solid var(--border);background:var(--surface-raised);border-radius:18px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:6px;display:none;position:absolute;bottom:calc(5% + 24px);left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000021,0 2px 8px #00000014}#viewport.is-planner-mode .planner-toolbar{animation:.32s cubic-bezier(.16,1,.3,1) both planner-toolbar-in;display:inline-flex}@keyframes planner-toolbar-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.planner-view-item{border-radius:var(--radius);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:9px 12px;font-size:13px;font-weight:500;transition:background .18s;display:block}.planner-view-item:hover{background:var(--surface-sunken)}.planner-view-item.is-active{background:var(--accent);color:var(--surface-raised)}.planner-view-item.is-active:hover{background:var(--accent-hover)}.planner-view-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.planner-placeholder-menu{--menu-bg:#282a30f5;z-index:52;border-radius:var(--radius-lg);background:var(--menu-bg);color:#fff;border:none;width:min(240px,100% - 16px);padding:8px;position:absolute;box-shadow:0 10px 32px #00000059}.planner-placeholder-menu-caret{top:-5px;left:var(--caret-x,20px);background:var(--menu-bg);border-radius:2px;width:10px;height:10px;position:absolute;transform:translate(-50%)rotate(45deg)}.planner-placeholder-menu.caret-bottom .planner-placeholder-menu-caret{top:auto;bottom:-5px}.planner-placeholder-menu-title{color:#ffffff8c;text-transform:uppercase;letter-spacing:0;padding:4px 6px 8px;font-size:12px;font-weight:600}.planner-placeholder-menu-grid{flex-direction:column;gap:2px;max-height:312px;display:flex;overflow-y:auto}.planner-placeholder-category{border-radius:var(--radius);color:#fff;min-width:0;min-height:42px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:600;transition:background .18s,transform .12s;display:flex}.planner-placeholder-category:hover{background:#96beff38}.planner-placeholder-category-icon{color:#ffffffbf;flex-shrink:0}.planner-placeholder-category:active{transform:scale(.98)}.planner-placeholder-category:focus-visible{outline-offset:-2px;outline:2px solid #96beffe6}.planner-placeholder-category-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.planner-placeholder-category-count{color:#ffffffb3;text-align:center;font-variant-numeric:tabular-nums;background:#ffffff1f;border-radius:999px;flex:none;min-width:22px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:600}.selection-popup{z-index:52;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);transform-origin:50%;will-change:opacity, transform;gap:4px;padding:5px;animation:.14s cubic-bezier(.34,1.4,.5,1) both selection-popup-in;display:flex;position:absolute;box-shadow:0 8px 28px #0003}.selection-popup.is-hiding{pointer-events:none;animation:.12s ease-in both selection-popup-out}@keyframes selection-popup-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes selection-popup-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}.selection-popup-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:36px;height:36px;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:border-color .18s,background .18s,color .18s;display:flex}.selection-popup-btn:hover{border-color:var(--border-strong);background:var(--surface-sunken)}.selection-popup-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.selection-popup-btn.is-danger:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}.planner-rotate-readout{text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.planner-rotate-slider{width:100%;accent-color:var(--accent);cursor:pointer;margin:4px 0 0}.planner-rotate-slider:disabled{cursor:not-allowed}.planner-rotate-slider:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.planner-rotate-scale{color:var(--ink-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex}.planner-layout-save-row{border-bottom:1px solid var(--border);gap:6px;margin-bottom:4px;padding-bottom:6px;display:flex}.planner-layout-name-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);min-width:0;color:var(--ink);font:inherit;flex:auto;padding:8px 10px;font-size:13px}.planner-layout-name-input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.planner-layout-save-btn{background:var(--accent);width:auto;color:var(--surface-raised);flex:none;font-weight:600}.planner-layout-save-btn:hover{background:var(--accent-hover)}.planner-layout-save-btn:disabled{opacity:.45;cursor:not-allowed}.planner-layout-list{flex-direction:column;gap:2px;display:flex}.planner-layout-row{align-items:center;gap:2px;display:flex}.planner-layout-load{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.planner-layout-icon-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;transition:background .18s,color .18s;display:inline-flex}.planner-layout-icon-btn:hover{background:var(--surface-sunken);color:var(--ink)}.planner-layout-delete:hover{color:var(--danger,#c0392b)}.planner-layout-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.planner-layouts-empty{color:var(--ink-muted);text-align:center;padding:10px 12px;font-size:12px}.planner-view-toggle{gap:2px;display:inline-flex}.planner-view-toggle-btn{min-width:96px;height:40px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 18px;font-size:13px;font-weight:600;transition:background .18s,color .18s,transform .12s;display:inline-flex}.planner-view-toggle-btn svg{flex-shrink:0}.planner-view-toggle-btn:hover{background:var(--surface-sunken);color:var(--ink)}.planner-view-toggle-btn:active{transform:scale(.96)}.planner-view-toggle-btn.is-active{background:var(--accent);color:var(--surface-raised)}.planner-view-toggle-btn.is-active:hover{background:var(--accent-hover);color:var(--surface-raised)}.planner-view-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.planner-controls-selection{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 14px;display:flex}.planner-controls-selection-thumb{object-fit:cover;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex:none;width:36px;height:36px}.planner-controls-selection-name{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.planner-controls-section{border-bottom:1px solid var(--border);padding:10px 14px}.planner-controls-section:last-child{border-bottom:none}.planner-controls-section .scene-settings-section-label{margin-bottom:8px;display:block}.planner-controls-actions{gap:6px;display:flex}.planner-control-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);min-height:52px;color:var(--ink);cursor:pointer;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:4px;padding:8px 6px;transition:background .18s,color .18s,border-color .18s,transform .12s;display:inline-flex}.planner-control-btn-wide{flex-direction:row;flex:none;gap:8px;width:100%;min-height:0;margin-top:8px;padding:10px 12px}.planner-control-btn-label{white-space:nowrap;color:var(--ink-muted);font-size:11px;font-weight:600;line-height:1;transition:color .18s}.planner-control-btn:hover{background:var(--surface-sunken)}.planner-control-btn:hover .planner-control-btn-label,.planner-control-btn.is-active .planner-control-btn-label{color:inherit}.planner-control-btn:active:not(:disabled){transform:scale(.96)}.planner-control-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.planner-control-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.planner-control-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--surface-raised)}.planner-control-btn.is-active:hover{background:var(--accent-hover)}.planner-control-btn-danger:hover{background:var(--error-bg);border-color:var(--error);color:var(--error)}.planner-roomsize-segmented{border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:8px;display:flex;overflow:hidden}.planner-roomsize-btn{border:none;border-right:1px solid var(--border);background:var(--surface-raised);color:var(--ink-muted);cursor:pointer;flex:1;padding:6px 0;font-size:11px;font-weight:600;transition:all .18s}.planner-roomsize-btn:last-child{border-right:none}.planner-roomsize-btn:hover{background:var(--surface-sunken)}.planner-roomsize-btn.is-active{background:var(--accent);color:var(--surface-raised)}.planner-rotate-row{margin-bottom:10px}.planner-rotate-row.is-disabled{opacity:.45}.planner-rotate-row .planner-rotate-readout{margin-bottom:2px}.planner-layouts-inline{flex-direction:column;gap:4px;display:flex}@media (width<=768px){.planner-toolbar{bottom:calc(5% + 88px + env(safe-area-inset-bottom))}}@media (width<=380px){.planner-toolbar{gap:0;padding:5px}}@media (prefers-reduced-motion:reduce){.planner-view-item{transition:none}.selection-indicator,.conflict-indicator,.distance-dim,.distance-pill,.dimension-ruler,.dimension-ruler-pill,.selection-popup,#viewport.is-planner-mode .planner-toolbar{animation:none}}.ar-modal{z-index:250;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.ar-modal.open{opacity:1;visibility:visible}.ar-modal-backdrop{background:#000000b3;position:absolute;inset:0}.ar-modal-content{background:var(--surface-raised);border-radius:var(--radius-lg);width:min(380px,92vw);max-height:min(560px,90vh);transition:transform .25s;position:relative;overflow:hidden;transform:scale(.96);box-shadow:0 24px 64px #0000004d}.ar-modal.open .ar-modal-content{transform:scale(1)}.ar-modal-close{width:36px;height:36px;color:var(--ink);cursor:pointer;z-index:10;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 2px 8px #0000001f}.ar-modal-close:hover{background:#fff}@keyframes ar-modal-spin{to{transform:rotate(360deg)}}.ar-modal-side{flex-direction:column;gap:12px;padding:28px 24px;display:flex}.ar-modal-title{color:var(--ink);margin:0;font-size:20px;font-weight:700}.ar-modal-desc{color:var(--ink-muted,#555);margin:0;font-size:13px;line-height:1.5}.ar-modal-qr{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;justify-content:center;align-self:center;align-items:center;width:max-content;padding:12px;display:flex}.ar-modal-qr canvas{width:220px;height:220px;image-rendering:pixelated;display:block}.ar-modal-actions{align-items:center;min-height:36px;display:flex}.ar-modal-copy,.ar-launch-button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--ink);color:var(--surface-raised);font:inherit;cursor:pointer;font-size:13px;font-weight:700}.ar-modal-copy{height:36px;padding:0 14px}.ar-modal-copy:disabled{opacity:.45;cursor:not-allowed}.ar-modal-status{color:var(--ink-muted,#555);min-height:18px;margin-top:4px;font-size:12px}.ar-modal-status[data-kind=error]{color:var(--danger,#b91c1c)}@media (width<=720px){.ar-modal-content{width:min(360px,92vw)}.ar-modal-side{gap:10px;padding:18px 20px}.ar-modal-qr canvas{width:180px;height:180px}}.ar-landing{background:var(--surface-base,#0a0a0a);color:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.ar-landing-stage{flex:1;justify-content:center;align-items:center;display:flex;position:relative}.ar-landing-stage model-viewer{width:100%;height:100%}.ar-launch-button{left:50%;bottom:max(24px, env(safe-area-inset-bottom));min-width:132px;height:44px;padding:0 18px;position:absolute;transform:translate(-50%);box-shadow:0 12px 28px #00000047}.ar-landing-overlay{text-align:center;color:#ffffffd9;background:#0a0a0a99;justify-content:center;align-items:center;padding:24px;font-size:14px;display:flex;position:absolute;inset:0}.ar-landing-overlay[data-hidden="1"]{display:none}.ar-landing-overlay-spinner{border:3px solid #ffffff2e;border-top-color:#fff;border-radius:50%;width:32px;height:32px;margin-bottom:12px;animation:.9s linear infinite ar-modal-spin}*,:before,:after{border-radius:var(--radius-sm)!important}.engine-loading-spinner,.processing-toast-spinner,.btn-spinner,.asset-grid-loading-spinner,.slot-column-loading-spinner,.ar-landing-overlay-spinner,.loading-spinner:before,.loading-spinner:after,.db-loading-banner-spinner:before,.db-loading-banner-spinner:after,.asset-radio,.asset-radio-dot,.asset-check,.skeleton-radio,.toggle-switch-track:after,.toggle-slider:before,.scene-color-picker,.scene-preset-chip,.scene-preset-dot,.fav-badge,.filter-badge,.compact-card-badge,.group-card-badge,.card-selected-badge,.compact-card-drill-badge,.card-drill-badge,.seat-warning-icon,.search-clear,.cfg-check,.cfg-applying-spinner{border-radius:50%!important}.scene-color-picker::-webkit-color-swatch{border-radius:50%!important}.scene-quick-range::-webkit-slider-thumb{border-radius:50%!important}.scene-settings-range::-webkit-slider-thumb{border-radius:50%!important}.toggle-switch-track,.toggle-slider{border-radius:999px!important}.planner-category-column.planner-top-level .slot-column-header{display:none}.planner-category-column .slot-column-label.planner-browse-title{letter-spacing:normal;text-transform:none;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:21px;font-weight:400;overflow:hidden}.planner-category-column .slot-column-grid.planner-sections-mode{flex-direction:column;gap:0;padding:0 0 24px;display:flex}.planner-section{padding:14px 12px 18px}.planner-section+.planner-section{border-top:1px solid var(--border)}.planner-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.planner-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;min-width:0;padding:0;font-family:inherit;font-size:12px;font-weight:700;overflow:hidden}.planner-section-title:hover{color:var(--accent)}.planner-section-expand{letter-spacing:normal;text-transform:none;color:var(--ink-muted);cursor:pointer;text-underline-offset:2px;white-space:nowrap;background:0 0;border:none;flex-shrink:0;padding:0;font-family:inherit;font-size:12px;font-weight:500;text-decoration:underline;transition:color .15s}.planner-section-expand:hover{color:var(--accent)}.planner-section-rail{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;gap:12px;padding-bottom:6px;display:flex;overflow:auto hidden}.planner-section-rail::-webkit-scrollbar{height:4px}.planner-section-rail::-webkit-scrollbar-track{background:0 0}.planner-section-rail::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}.planner-section-rail .compact-card{flex:0 0 148px;width:148px}.planner-sections-heading{color:var(--ink);padding:16px 12px 4px;font-size:18px;font-weight:600}.planner-cluster-column{flex-direction:column;height:100%;min-height:0;display:flex}.planner-cluster-header{flex-shrink:0}.planner-roombuilder-back .breadcrumb-back-label{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.planner-cluster-home{flex:auto;min-height:0;padding:12px 12px 24px;overflow:hidden}.planner-cluster-home-fit{transform-origin:top;width:100%}.planner-cluster-home--multi{scrollbar-gutter:stable;overflow-y:auto}.planner-cluster-band+.planner-cluster-band{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.planner-band-footer{justify-content:flex-end;margin-top:10px;display:flex}.planner-band-add-main{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;text-decoration:underline}.planner-band-add-main:hover{color:var(--accent-hover)}.planner-slot-row{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.planner-slot-row--main{justify-content:center}.planner-slot-row--sides{flex-wrap:nowrap;justify-content:center;margin-top:16px}.planner-slot{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;padding:0;font-family:inherit;display:flex}.planner-slot--main{cursor:default;flex:180px;max-width:240px}.planner-slot--side{flex:0 128px}.planner-slot-select{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;width:100%;padding:0;font-family:inherit;display:flex}.planner-slot-box{aspect-ratio:1;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);justify-content:center;align-items:center;width:100%;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.planner-slot--main .planner-slot-box{aspect-ratio:4/3}.planner-slot-box img{object-fit:contain;width:100%;height:100%}.planner-slot.is-selected .planner-slot-box{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.planner-slot-name{color:var(--ink);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.planner-slot-name--role{color:var(--ink-muted)}.planner-slot-configure{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-family:inherit;font-size:13px;text-decoration:underline}.planner-slot-configure:hover{color:var(--accent-hover)}.planner-slot--empty .planner-slot-box{background:var(--surface-sunken)}.planner-slot--empty:hover .planner-slot-box{border-color:var(--accent)}.planner-slot-empty-hint{color:var(--ink-muted);text-align:center;padding:0 6px;font-size:11px;font-style:italic;line-height:1.35}.planner-slot--empty:hover .planner-slot-empty-hint{color:var(--accent)}.planner-anchor-dots{z-index:28;pointer-events:none;position:absolute;inset:0}.planner-anchor-dot{background:#ffffffb3;border:2.5px solid #1d3a6b;border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000040}.planner-anchor-dot:after{content:"";background:#1d3a6b;border-radius:50%;position:absolute;inset:4px}.planner-placement-toast{z-index:30;border-radius:var(--radius-lg);color:#fff;pointer-events:auto;background:#1c1e22eb;align-items:center;gap:10px;max-width:320px;padding:10px 12px;font-size:13px;font-weight:500;line-height:1.35;animation:.18s ease-out planner-toast-in;display:flex;position:absolute;box-shadow:0 6px 20px #00000040}.planner-placement-toast.is-docked{bottom:84px;left:50%;transform:translate(-50%)}.planner-placement-toast-close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.planner-placement-toast-close:hover{color:#fff;background:#ffffff1f}@keyframes planner-toast-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.planner-placement-toast.is-docked{animation:none}.planner-active-marker{z-index:51;color:#fff;pointer-events:none;background:#1e2a44;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;animation:.14s ease-out planner-active-marker-in;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #1e2a4440,0 4px 12px #0000004d}.planner-active-marker-tooltip{z-index:51;border-radius:var(--radius-sm);color:#fff;white-space:nowrap;pointer-events:none;background:#1c1e22f0;padding:4px 8px;font-size:12px;font-weight:600;position:absolute;transform:translate(-50%,calc(-100% - 26px))}@keyframes planner-active-marker-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.planner-active-marker{animation:none}}.planner-pinned-home{border-bottom:1px solid var(--border);background:var(--surface-raised);flex-direction:column;flex:none;display:flex}.planner-pinned-home-slots{padding:10px 12px}.planner-pinned-home-slots .planner-slot{pointer-events:none}.planner-pinned-home .planner-slot-row--main{justify-content:flex-start}.planner-pinned-home .planner-slot--main{flex:0 120px;max-width:120px}.planner-pinned-home .planner-slot--side{flex:0 72px}.planner-pinned-home .planner-slot-row--sides{justify-content:flex-start;margin-top:8px}.planner-pinned-home .planner-slot-name{font-size:11px}.planner-pinned-home .planner-slot-empty-hint{font-size:9px}.planner-pinned-home .planner-slot-configure{display:none}.planner-pinned-home .planner-recommend-band{border-top:1px solid var(--border);flex:none}.planner-pinned-home .planner-recommend-columns{max-height:190px}.planner-recommend-band{border-top:1px solid var(--border);background:var(--surface-sunken);flex-direction:column;flex:0 0 38%;min-height:0;display:flex}.planner-recommend-band.is-collapsed{flex:none;min-height:max-content}.planner-recommend-header{border:none;border-bottom:1px solid var(--border);background:var(--accent-light);cursor:pointer;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:12px;font-family:inherit;display:flex}.planner-recommend-title{text-align:left;min-width:0;color:var(--ink);overflow-wrap:anywhere;flex:auto;font-size:14px;font-weight:600;line-height:1.3}.planner-recommend-caret{color:var(--ink-muted);flex-shrink:0;transition:transform .22s cubic-bezier(.4,0,.2,1)}.planner-recommend-band.is-collapsed .planner-recommend-caret{transform:rotate(180deg)}.planner-recommend-band.is-collapsed .planner-recommend-header{border-bottom:none;padding-top:16px;padding-bottom:16px}.planner-recommend-band.is-collapsed .planner-recommend-columns{display:none}.planner-recommend-columns{flex:auto;gap:8px;min-height:0;padding:12px 12px 16px;display:flex}.planner-recommend-empty,.planner-recommend-col-empty{color:var(--ink-muted);padding:4px 0;font-size:12px}.planner-recommend-empty{flex:100%;padding:0 0 12px}.planner-recommend-col{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.planner-recommend-col+.planner-recommend-col{border-left:1px solid var(--border);padding-left:8px}.planner-recommend-col-head{flex-shrink:0;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.planner-recommend-col-title{letter-spacing:.04em;text-transform:uppercase;min-width:0;color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;font-weight:700;overflow:hidden}.planner-recommend-viewall{color:var(--accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-family:inherit;font-size:11px;font-weight:700}.planner-recommend-viewall:hover{color:var(--accent-hover)}.planner-recommend-col-list{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;flex:auto;gap:4px;min-height:0;display:flex;overflow-y:auto}.planner-recommend-band.is-animating .planner-recommend-col-list{overflow-y:hidden}.planner-recommend-row{border-radius:var(--radius);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:4px;font-family:inherit;transition:background .15s;display:flex}.planner-recommend-row:hover{background:var(--surface)}.planner-recommend-row:active .planner-recommend-row-name{color:var(--ink);font-weight:700}.planner-recommend-row.is-added .planner-recommend-thumb{border-color:var(--accent);background:var(--accent-light)}.planner-recommend-row.is-added .planner-recommend-row-name{color:var(--ink)}.planner-recommend-added-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;display:flex;position:absolute;top:2px;right:2px}.planner-recommend-row.is-loading{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface) 25%, var(--border) 50%, var(--surface) 75%);cursor:default;pointer-events:none;background-size:200% 100%;height:52px;animation:1.2s ease-in-out infinite planner-recommend-shimmer}@keyframes planner-recommend-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.planner-recommend-thumb{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative;overflow:hidden}.planner-recommend-thumb img{object-fit:contain;width:100%;height:100%}.planner-recommend-row-name{min-width:0;color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:auto;font-size:12px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.planner-recommend-row-caret{color:var(--ink-faint);flex-shrink:0}.planner-category-column .slot-column-grid.planner-browse-grid{grid-template-columns:repeat(2,1fr);gap:16px;padding:8px 12px 24px}.slot-column-grid.param-groups,#browseGrid.param-groups{padding:2px 0 28px;display:block}.param-group+.param-group{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.param-group-heading{justify-content:space-between;align-items:flex-end;gap:12px;padding:12px 12px 10px;display:flex}.param-group-copy{min-width:0}.param-group-title{color:var(--ink);font-size:13px;font-weight:650;line-height:1.25}.param-group-summary{color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;font-weight:500;line-height:1.35;overflow:hidden}.param-group-count{color:var(--ink-faint);white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:500;line-height:1.2}.param-group-list{grid-template-columns:repeat(2,1fr);gap:16px;padding:0 12px;display:grid}.slot-column-grid.param-groups .param-group-list{flex-direction:column;gap:10px;display:flex}.slot-column-grid.param-groups .compact-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);box-sizing:border-box;grid-template-rows:auto auto;grid-template-columns:clamp(88px,30%,132px) minmax(0,1fr);align-items:center;gap:3px 14px;min-height:0;padding:10px 12px;display:grid}.slot-column-grid.param-groups .compact-card:hover{border-color:var(--border-strong);background:var(--surface)}.slot-column-grid.param-groups .compact-card .compact-card-thumb{aspect-ratio:112/82;border-radius:var(--radius);grid-row:1/span 2;width:100%;height:auto;padding:6px}.slot-column-grid.param-groups .compact-card-titlerow{align-self:end;margin-top:0}.slot-column-grid.param-groups .compact-card .compact-card-name{-webkit-line-clamp:2;line-clamp:2;text-align:left;min-height:0;margin-top:0;font-size:14px;line-height:1.25}.slot-column-grid.param-groups .compact-card .compact-card-count{text-align:left;align-self:start;margin-top:0}@container (width<=239px){.slot-column-grid.param-groups .compact-card{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);gap:6px 0}.slot-column-grid.param-groups .compact-card .compact-card-thumb{grid-row:auto;width:100%}.slot-column-grid.param-groups .compact-card-titlerow{align-self:auto}}.planner-category-column .slot-column-grid.param-groups,.planner-category-column .slot-column-grid.param-groups.planner-browse-grid{padding:6px 0 32px}.planner-category-column .param-group-heading{padding:12px 24px 10px}.planner-category-column .param-group-list{padding:0 24px}.planner-category-column .compact-card{border:none;border-radius:0;align-items:stretch;padding:0}.planner-category-column .compact-card:hover{background:0 0}.planner-category-column .compact-card .compact-card-thumb{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);padding:10px;transition:border-color .15s}.planner-category-column .compact-card:hover .compact-card-thumb{border-color:var(--border-strong)}.planner-category-column .compact-card.selected .compact-card-thumb{border-color:var(--accent)}.planner-category-column .slot-column-grid .compact-card-name{color:var(--ink);text-align:left;-webkit-line-clamp:1;line-clamp:1;min-height:0;margin-top:8px;font-size:13px;font-weight:600}.planner-category-column .compact-card-titlerow .compact-card-name{margin-top:0}.planner-category-column .compact-card-titlerow{justify-content:space-between;align-items:center;gap:4px;width:100%;margin-top:8px;display:flex}.compact-card-inline-chevron{color:var(--ink-muted);flex-shrink:0;align-items:center;display:inline-flex}.planner-category-column .compact-card-count{text-align:left;margin-top:2px;font-size:12px}.planner-category-column .compact-details-btn,.planner-category-column .compact-card-drill-badge{display:none}
