.home-screen{display:flex;flex-direction:column;min-height:100%;padding:24px 20px;background:linear-gradient(180deg,#f0f9ff 0%,var(--bg) 100%)}.home-header{text-align:center;margin-bottom:32px}.logo{display:flex;flex-direction:column;align-items:center;gap:12px}.logo-icon{font-size:48px}.logo h1{font-size:24px;font-weight:700;line-height:1.3;color:var(--primary)}.home-content{flex:1;display:flex;flex-direction:column;align-items:center;gap:24px}.home-description{text-align:center;font-size:15px;color:var(--text-muted);line-height:1.6}.upload-buttons{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px}.upload-btn{width:100%;padding:16px 24px;font-size:16px}.hidden-input{position:absolute;opacity:0;pointer-events:none}.privacy-note{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#1e40af14;border-radius:12px;font-size:13px;color:var(--primary)}.home-footer{text-align:center;padding-top:24px;font-size:12px;color:var(--text-muted)}.home-footer .disclaimer{margin-top:4px;font-size:11px}.viewer-3d-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.viewer-3d-modal{background:#1e1e2e;border-radius:16px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(255,255,255,.1);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.viewer-3d-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.viewer-3d-title{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;font-size:16px}.viewer-3d-title svg{color:#60a5fa}.viewer-3d-close{background:#ffffff1a;border:none;border-radius:8px;padding:8px;cursor:pointer;color:#94a3b8;transition:all .2s}.viewer-3d-close:hover{background:#ffffff26;color:#fff}.viewer-3d-canvas-container{position:relative;width:100%;height:350px;background:linear-gradient(180deg,#1a1a2e,#16162a)}.viewer-3d-hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:16px;padding:8px 16px;background:#0009;border-radius:20px;font-size:12px;color:#94a3b8}.viewer-3d-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.viewer-3d-info{display:flex;gap:20px}.info-item{display:flex;flex-direction:column;gap:2px}.info-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:14px;font-weight:600;color:#e2e8f0}.viewer-3d-controls{display:flex;align-items:center}.auto-rotate-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#94a3b8}.auto-rotate-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#60a5fa;cursor:pointer}.viewer-3d-loader{display:flex;flex-direction:column;align-items:center;gap:12px;color:#94a3b8;font-size:14px}.loader-spinner{width:32px;height:32px;border:3px solid rgba(96,165,250,.2);border-top-color:#60a5fa;border-radius:50%;animation:spin 1s linear infinite}.viewer-3d-no-model{display:flex;flex-direction:column;align-items:center;gap:8px;color:#64748b;text-align:center}.viewer-3d-no-model svg{opacity:.5}.viewer-3d-no-model span{font-size:14px}.no-model-product{font-size:12px;color:#475569}@media (max-width: 640px){.viewer-3d-modal{width:95%;max-height:85vh}.viewer-3d-canvas-container{height:280px}.viewer-3d-info{gap:12px}.viewer-3d-footer{flex-direction:column;align-items:stretch}.viewer-3d-controls{justify-content:center}.viewer-3d-hint{font-size:11px;gap:12px;padding:6px 12px}}.product-selector{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1)}.render-mode-toggle{margin-bottom:.75rem}.render-mode-label{display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.5rem}.render-mode-buttons{display:flex;gap:.5rem}.render-mode-btn{flex:1;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;background:#ffffff0d;color:#94a3b8;font-size:.8rem;cursor:pointer;transition:all .2s}.render-mode-btn:hover{background:#ffffff1a;color:#e2e8f0}.render-mode-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff}.product-selection{margin-top:.75rem}.product-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.product-label{font-size:.75rem;color:#94a3b8}.toggle-all-btn{background:none;border:1px solid rgba(255,255,255,.2);border-radius:.3rem;padding:.2rem .5rem;font-size:.65rem;color:#64748b;cursor:pointer;transition:all .2s}.toggle-all-btn:hover{background:#ffffff1a;color:#94a3b8}.series-switch{margin-bottom:.75rem;padding:.5rem .625rem;background:#60a5fa14;border:1px solid rgba(96,165,250,.25);border-radius:.5rem}.series-switch-label{display:block;font-size:.7rem;font-weight:600;color:#60a5fa;margin-bottom:.375rem}.series-buttons{display:flex;gap:.4rem}.series-btn{flex:1;padding:.4rem .5rem;border:1px solid rgba(255,255,255,.15);border-radius:.4rem;background:#ffffff0d;color:#94a3b8;font-size:.7rem;cursor:pointer;transition:all .2s}.series-btn:hover{background:#ffffff1a;border-color:#ffffff40;color:#e2e8f0}.series-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff;font-weight:600}.zone-recommendations{margin-bottom:.75rem;padding:.5rem .625rem;background:#22c55e14;border:1px solid rgba(34,197,94,.25);border-radius:.5rem}.zone-rec-label{display:block;font-size:.7rem;font-weight:600;color:#22c55e;margin-bottom:.375rem}.product-groups{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding-right:.25rem}.product-groups::-webkit-scrollbar{width:4px}.product-groups::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.product-category{margin-bottom:.75rem}.category-label{display:inline-block;font-size:.65rem;color:#64748b;background:#ffffff0d;padding:.15rem .5rem;border-radius:.25rem;margin-bottom:.4rem}.product-chips{display:flex;flex-wrap:wrap;gap:.4rem}.product-chip-wrapper{position:relative;display:inline-flex}.product-chip-wrapper.selected .product-chip{border-radius:.5rem 0 0 .5rem}.product-chip{display:flex;flex-direction:column;align-items:center;padding:.4rem .6rem;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;background:#ffffff0d;color:#cbd5e1;font-size:.7rem;cursor:pointer;transition:all .2s;min-width:60px}.product-chip:hover{background:#ffffff1a;border-color:#ffffff40}.product-chip.selected{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:#22c55e;color:#fff}.product-chip-3d-btn{display:flex;align-items:center;justify-content:center;padding:0 .5rem;border:1px solid #22c55e;border-left:none;border-radius:0 .5rem .5rem 0;background:#22c55e33;color:#22c55e;cursor:pointer;transition:all .2s}.product-chip-3d-btn:hover{background:#22c55e66;color:#fff}.product-chip-id{font-weight:600;font-size:.75rem}.product-chip-length{font-size:.65rem;opacity:.8}.current-product-info{margin-top:.75rem;padding:.75rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:.5rem}.product-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}.product-name{font-size:.85rem;font-weight:600;color:#22c55e}.view-3d-btn{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid #60a5fa;border-radius:.4rem;background:#60a5fa26;color:#60a5fa;font-size:.7rem;font-weight:500;cursor:pointer;transition:all .2s}.view-3d-btn:hover{background:#60a5fa4d;color:#fff;border-color:#3b82f6}.view-3d-btn svg{flex-shrink:0}.product-details{display:flex;gap:.75rem;font-size:.75rem;color:#94a3b8;margin-bottom:.3rem;align-items:center;flex-wrap:wrap}.product-type-badge{background:#60a5fa33;color:#60a5fa;padding:.1rem .4rem;border-radius:.25rem;font-size:.65rem}.product-usage{font-size:.7rem;color:#64748b;font-style:italic}@media (max-width: 768px){.product-selector{margin-top:.5rem;padding-top:.5rem}.render-mode-btn{padding:.4rem .5rem;font-size:.75rem}.product-chip{min-width:55px;padding:.35rem .5rem}.product-chip-id{font-size:.7rem}.product-chip-length{font-size:.6rem}}.auto-place-container{position:relative}.auto-place-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #8b5cf64d;width:100%;justify-content:center}.auto-place-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #8b5cf666}.auto-place-btn:active:not(:disabled){transform:translateY(0)}.auto-place-btn:disabled{opacity:.6;cursor:not-allowed}.auto-place-btn.loading{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.auto-place-btn .spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.style-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.style-picker-modal{background:#1e1e2e;border-radius:20px;padding:24px;max-width:360px;width:100%;box-shadow:0 20px 40px #0006}.style-picker-modal h3{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:18px;color:#fff}.style-picker-modal h3 svg{color:#8b5cf6}.style-picker-desc{color:#888;font-size:13px;margin:0 0 20px;line-height:1.5}.style-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.style-option{display:flex;align-items:center;gap:14px;padding:14px;background:#2a2a3e;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s ease}.style-option:hover{background:#32324a;border-color:#8b5cf6}.style-icon{width:44px;height:44px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.style-info{display:flex;flex-direction:column;gap:2px;text-align:left}.style-info strong{color:#fff;font-size:15px}.style-info span{color:#888;font-size:12px}.style-cancel{width:100%;padding:12px;background:transparent;border:1px solid #3a3a4a;border-radius:10px;color:#888;font-size:14px;cursor:pointer;transition:all .2s ease}.style-cancel:hover{background:#2a2a3e;color:#fff}.auto-place-error{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px;margin-top:10px}.auto-place-error svg{flex-shrink:0}.auto-place-error button{margin-left:auto;background:none;border:none;color:#f87171;font-size:18px;cursor:pointer;padding:0 4px}.auto-place-result{margin-top:12px;padding:14px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:10px}.result-header{display:flex;align-items:center;gap:8px;color:#4ade80;font-size:14px;font-weight:600;margin-bottom:8px}.result-analysis{color:#888;font-size:12px;line-height:1.6;margin:0 0 12px}.result-dismiss{width:100%;padding:8px;background:#22c55e33;border:none;border-radius:6px;color:#4ade80;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s ease}.result-dismiss:hover{background:#22c55e4d}.zone-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.zone-picker-modal{background:#1e1e2e;border-radius:20px;padding:0;max-width:420px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0006;overflow:hidden}.zone-picker-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px;border-bottom:1px solid #2a2a3e}.zone-picker-header h3{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;color:#fff}.zone-picker-header h3 svg{color:#10b981}.zone-close-btn{background:none;border:none;color:#666;font-size:20px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s}.zone-close-btn:hover{background:#2a2a3e;color:#fff}.zone-picker-desc{padding:12px 20px 16px;margin:0;color:#888;font-size:13px;line-height:1.5;background:#252535}.zone-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.zone-card{background:#2a2a3e;border-radius:14px;padding:16px;border:2px solid transparent;transition:all .2s ease}.zone-card:hover{border-color:#10b981;background:#32324a}.zone-card.installed{border-color:#10b981;background:#10b9811a}.zone-card-header{display:flex;gap:14px;margin-bottom:12px}.zone-icon{width:48px;height:48px;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.zone-card.installed .zone-icon{background:linear-gradient(135deg,#059669,#047857)}.zone-info{flex:1;min-width:0}.zone-info h4{margin:0 0 4px;color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.zone-priority{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#10b981;color:#fff;border-radius:6px;font-size:12px;font-weight:700}.zone-description{margin:0;color:#888;font-size:12px;line-height:1.4}.zone-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid #3a3a4a}.zone-product{display:flex;flex-direction:column;gap:2px}.product-name{color:#aaa;font-size:12px}.product-size{color:#666;font-size:11px}.zone-install-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.zone-install-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.zone-install-btn:disabled{cursor:not-allowed}.zone-install-btn.installed{background:#047857;box-shadow:none}.zone-picker-actions{display:flex;flex-direction:column;gap:12px;padding:16px 20px;border-top:1px solid #2a2a3e;background:#1e1e2e}.zone-install-all-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.zone-install-all-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.zone-install-all-btn:disabled{background:#047857;cursor:default}.zone-auto-install-btn{background:linear-gradient(135deg,#f59e0b,#d97706);padding:18px 20px;font-size:16px;border-radius:14px;box-shadow:0 4px 16px #f59e0b4d}.zone-auto-install-btn:hover:not(:disabled){box-shadow:0 6px 24px #f59e0b80;transform:translateY(-2px)}.zone-auto-install-btn strong{font-weight:700}.zone-auto-install-btn .spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.zone-secondary-actions{display:flex;gap:10px}.zone-manual-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;background:#2a2a3e;border:1px solid #3a3a4a;border-radius:10px;color:#aaa;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.zone-manual-btn:hover:not(:disabled){background:#32324a;color:#fff;border-color:#4a4a5a}.zone-manual-btn:disabled{opacity:.5;cursor:not-allowed}.zone-done-btn{flex:1;padding:12px 20px;background:#2a2a3e;border:1px solid #3a3a4a;border-radius:10px;color:#888;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.zone-done-btn:hover{background:#32324a;color:#fff}@media (max-width: 768px){.auto-place-btn{padding:14px 16px;font-size:15px}.style-picker-modal{max-width:none;margin:0 10px;padding:20px}.style-option{padding:12px}.style-icon{width:40px;height:40px}.zone-picker-modal{max-width:none;max-height:90vh;margin:0;border-radius:20px 20px 0 0;position:fixed;bottom:0;left:0;right:0}.zone-picker-overlay{align-items:flex-end;padding:0}.zone-card{padding:14px}.zone-icon{width:44px;height:44px}}.schematic-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.schematic-modal{background:#1a1a2e;border-radius:20px;max-width:1100px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080}.schematic-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #2a2a3e;background:#1e1e2e;flex-shrink:0}.schematic-header h2{display:flex;align-items:center;gap:12px;margin:0;font-size:20px;color:#fff}.schematic-header h2 svg{color:#3b82f6}.close-btn{background:none;border:none;color:#666;font-size:28px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:all .2s}.close-btn:hover{background:#2a2a3e;color:#fff}.schematic-content{flex:1;overflow-y:auto;padding:24px}.schematic-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.schematic-loading .spinner{width:48px;height:48px;border:3px solid #2a2a3e;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.schematic-loading p{color:#888;margin:8px 0}.schematic-loading p.sub{font-size:13px;color:#666}.schematic-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.schematic-error p{color:#ef4444;margin:16px 0}.schematic-error button{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px}.walls-scroll-container{overflow-x:auto;margin-bottom:24px;padding-bottom:12px}.walls-scroll-container::-webkit-scrollbar{height:8px}.walls-scroll-container::-webkit-scrollbar-track{background:#2a2a3e;border-radius:4px}.walls-scroll-container::-webkit-scrollbar-thumb{background:#4a4a5e;border-radius:4px}.walls-container{display:flex;gap:20px;min-width:min-content}.wall-elevation{background:#252535;border-radius:12px;padding:16px;min-width:280px;max-width:400px;flex-shrink:0}.wall-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.wall-name{font-size:15px;font-weight:600;color:#fff}.wall-position{font-size:12px;color:#888}.wall-svg-container{position:relative;width:100%;background:#1e1e2e;border-radius:8px;overflow:hidden}.wall-svg{display:block;width:100%;height:auto;max-height:300px}.fixture-icon{display:flex;align-items:center;justify-content:center}.handle-recommendation{cursor:pointer;transition:opacity .2s}.handle-recommendation:hover{opacity:.85}.handle-recommendation.selected rect{filter:drop-shadow(0 0 8px rgba(16,185,129,.6))}.handle-detail{background:#252535;border:2px solid #3b82f6;border-radius:12px;padding:20px;margin-bottom:24px}.handle-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.handle-detail h4{margin:0;color:#fff;font-size:16px}.view-3d-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.view-3d-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.handle-detail p{margin:0 0 16px;color:#888;font-size:13px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.detail-grid>div{display:flex;flex-direction:column;gap:4px}.detail-grid .label{font-size:11px;color:#666}.detail-grid .value{font-size:14px;color:#fff}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#aaa;font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#10b981}.handles-list{background:#252535;border-radius:12px;padding:16px}.handles-list h4{margin:0 0 12px;color:#fff;font-size:14px}.handle-item{display:flex;align-items:center;gap:12px;padding:12px;background:#1a1a2e;border-radius:8px;margin-bottom:8px;transition:background .2s}.handle-item:hover{background:#2a2a3e}.handle-item:last-child{margin-bottom:0}.handle-item input[type=checkbox]{width:18px;height:18px;accent-color:#10b981;flex-shrink:0}.handle-item .priority{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#f59e0b;color:#fff;border-radius:6px;font-size:12px;font-weight:700;flex-shrink:0}.handle-item .handle-info{flex:1;cursor:pointer;display:flex;flex-direction:column;gap:2px}.handle-item .name{color:#fff;font-size:14px}.handle-item .product{color:#888;font-size:12px}.view-3d-mini-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s;flex-shrink:0}.view-3d-mini-btn:hover{transform:scale(1.1);box-shadow:0 4px 12px #6366f166}.view-3d-mini-btn svg{width:18px;height:18px}.schematic-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid #2a2a3e;background:#1e1e2e;flex-shrink:0}.cancel-btn{flex:1;padding:14px;background:#2a2a3e;border:1px solid #3a3a4a;border-radius:10px;color:#888;font-size:14px;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#32324a;color:#fff}.apply-btn{flex:2;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.apply-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.apply-btn:disabled{opacity:.6;cursor:not-allowed}.schematic-modal-wide{max-width:1200px}.schematic-modal-full{max-width:1400px;height:95vh;max-height:95vh}.schematic-content-full{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.wall-tabs{display:flex;gap:8px;padding:4px;background:#252535;border-radius:12px;flex-shrink:0}.wall-tab{display:flex;align-items:center;gap:8px;padding:12px 20px;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.wall-tab:hover{background:#2a2a3e}.wall-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb)}.wall-tab .tab-name{font-size:14px;font-weight:600;color:#888}.wall-tab.active .tab-name{color:#fff}.wall-tab .tab-count{font-size:11px;padding:2px 8px;background:#ffffff1a;border-radius:10px;color:#666}.wall-tab.active .tab-count{background:#fff3;color:#fff}.main-drawing-container{flex:1;min-height:0;background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.full-guide-svg{width:100%;height:100%;max-height:100%}.handles-panel{background:#252535;border-radius:12px;flex-shrink:0;max-height:180px;display:flex;flex-direction:column}.handles-panel-header{padding:12px 16px;border-bottom:1px solid #3a3a4a;flex-shrink:0}.handles-panel-header h4{margin:0;font-size:14px;color:#fff;display:flex;align-items:center;gap:10px}.count-badge{font-size:12px;font-weight:500;color:#10b981;background:#10b98126;padding:4px 10px;border-radius:12px}.handles-panel-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-wrap:wrap;gap:10px}.handle-panel-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#1a1a2e;border:2px solid transparent;border-radius:10px;transition:all .15s;flex:1;min-width:280px;max-width:400px}.handle-panel-item:hover{background:#2a2a3e}.handle-panel-item.selected{border-color:#00b894;background:#00b89414}.handle-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1}.handle-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:#00b894;flex-shrink:0}.handle-main-info{display:flex;flex-direction:column;gap:2px}.handle-name{font-size:13px;font-weight:600;color:#fff}.handle-desc{font-size:11px;color:#888}.handle-specs-row{display:flex;gap:6px;flex-shrink:0}.spec-badge{font-size:10px;padding:4px 8px;border-radius:6px;font-weight:500}.spec-badge.blue{background:#0984e326;color:#74b9ff}.spec-badge.red{background:#d6303126;color:#ff7675}.spec-badge.gray{background:#ffffff1a;color:#b2bec3}.view-3d-btn-small{padding:6px 10px;background:linear-gradient(135deg,#6c5ce7,#a29bfe);border:none;border-radius:6px;color:#fff;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.view-3d-btn-small:hover{transform:scale(1.05);box-shadow:0 4px 12px #6c5ce766}.no-handles{width:100%;text-align:center;padding:20px;color:#666;font-size:13px}.view-mode-switcher{display:flex;gap:4px;padding:4px;background:#2a2a3e;border-radius:10px}.mode-btn{padding:8px 16px;background:transparent;border:none;border-radius:6px;color:#888;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.mode-btn:hover{background:#3a3a4e;color:#ccc}.mode-btn.active{background:#3b82f6;color:#fff}.blueprint-container{flex:1;min-height:0;background:#f0f4f8;border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.blueprint-svg{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:8px;background:#f8fafc;box-shadow:0 4px 20px #0000001a}.handle-overlay{transition:opacity .2s}.handle-overlay:hover{opacity:.9}.dimension-line-overlay{pointer-events:none}.height-scale line,.height-scale text{pointer-events:none}.calibration-container{display:flex;flex-direction:column;gap:20px;height:100%}.calibration-steps{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;background:#252535;border-radius:12px}.cal-step{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#1a1a2e;border-radius:8px;transition:all .2s}.cal-step.active{background:linear-gradient(135deg,#3b82f6,#2563eb)}.cal-step.done{background:#10b981}.cal-step .step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#fff3;border-radius:50%;font-size:12px;font-weight:700;color:#888}.cal-step.active .step-num,.cal-step.done .step-num{color:#fff}.cal-step .step-label{font-size:13px;color:#888;font-weight:500}.cal-step.active .step-label,.cal-step.done .step-label{color:#fff}.step-connector{width:40px;height:2px;background:#3a3a4a}.calibration-image-container{flex:1;display:flex;gap:20px;min-height:0}.calibration-svg{flex:1;max-width:70%;height:auto;background:#1a1a2e;border-radius:12px;border:2px solid #3a3a4a}.calibration-svg:hover{border-color:#3b82f6}.calibration-guide{flex:1;max-width:30%;background:#252535;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:16px}.calibration-guide h4{margin:0;font-size:18px;color:#fff}.calibration-guide p{margin:0;font-size:14px;color:#aaa;line-height:1.6}.calibration-guide p strong{color:#3b82f6}.calibration-guide p.hint{font-size:12px;color:#666;font-style:italic}.height-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.height-btn{padding:10px 16px;background:#1a1a2e;border:2px solid #3a3a4a;border-radius:8px;color:#aaa;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.height-btn:hover{border-color:#3b82f6;color:#fff}.height-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.custom-height{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #3a3a4a}.custom-height label{font-size:13px;color:#888}.custom-height input{width:100px;padding:8px 12px;background:#1a1a2e;border:2px solid #3a3a4a;border-radius:6px;color:#fff;font-size:14px;text-align:center}.custom-height input:focus{outline:none;border-color:#3b82f6}.custom-height span{font-size:13px;color:#888}.reference-options{display:flex;flex-direction:column;gap:10px;margin-top:12px}.ref-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#1a1a2e;border:2px solid #3a3a4a;border-radius:10px;color:#aaa;font-size:14px;cursor:pointer;transition:all .2s;text-align:left}.ref-btn:hover{border-color:#3b82f6;background:#252535;color:#fff}.ref-btn.active{border-color:#10b981;background:#10b9811a;color:#10b981}.calibration-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 0 0;border-top:1px solid #3a3a4a}.skip-btn{padding:12px 24px;background:transparent;border:2px solid #3a3a4a;border-radius:8px;color:#888;font-size:14px;cursor:pointer;transition:all .2s}.skip-btn:hover{border-color:#666;color:#fff}.next-btn{padding:12px 28px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.next-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.next-btn:disabled{opacity:.5;cursor:not-allowed}.complete-btn{padding:12px 28px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.complete-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.recalibrate-btn{padding:8px 16px;background:#2a2a3e;border:1px solid #3a3a4a;border-radius:8px;color:#888;font-size:13px;cursor:pointer;transition:all .2s}.recalibrate-btn:hover{background:#3a3a4e;color:#fff}.calibration-info{font-size:12px;color:#666;margin-left:16px;padding-left:16px;border-left:1px solid #3a3a4a}.schematic-body{flex:1;display:flex;flex-direction:column;min-height:0;padding:16px;overflow:hidden}.header-controls{display:flex;align-items:center;gap:12px}.schematic-main{flex:1;display:flex;gap:16px;min-height:0}.blueprint-area{flex:1;min-width:0;background:#f5f7fa;border-radius:12px;padding:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}.blueprint-area .blueprint-svg{width:100%;height:100%;max-width:100%;max-height:100%}.handles-side-panel{width:280px;flex-shrink:0;background:#252535;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.handles-side-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#1e1e2e;border-bottom:1px solid #3a3a4a}.handles-side-panel .panel-header h4{margin:0;font-size:14px;color:#fff}.handles-side-panel .panel-header .badge{font-size:12px;background:#10b981;color:#fff;padding:3px 10px;border-radius:12px;font-weight:600}.series-switch-bar{display:flex;gap:4px;padding:8px 10px;background:#1a1a2e;border-bottom:1px solid #3a3a4a}.series-switch-btn{flex:1;padding:6px 8px;border:none;border-radius:6px;background:transparent;color:#888;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.series-switch-btn:hover{background:#2a2a3e;color:#ccc}.series-switch-btn.active{background:#6366f1;color:#fff;font-weight:600}.handles-list-compact{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.handle-item-compact{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#1a1a2e;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s}.handle-item-compact:hover{background:#2a2a3e}.handle-item-compact.selected{border-color:#10b981;background:#10b9811a}.handle-item-compact .color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.handle-item-compact .handle-info-compact{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.handle-item-compact .name{font-size:12px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.handle-item-compact .specs{font-size:10px;color:#888}.handle-item-compact input[type=checkbox]{width:16px;height:16px;accent-color:#10b981;flex-shrink:0}.handle-item-compact .btn-3d{padding:4px 8px;background:#6366f1;border:none;border-radius:4px;color:#fff;font-size:10px;font-weight:600;cursor:pointer;flex-shrink:0}.handle-item-compact .btn-3d:hover{background:#4f46e5}.handles-side-panel .panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#1e1e2e;border-top:1px solid #3a3a4a}.panel-footer .cal-info{font-size:11px;color:#888}.apply-btn-compact{padding:10px 16px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.apply-btn-compact:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.apply-btn-compact:disabled{opacity:.5;cursor:not-allowed}.calibration-summary{background:#1a1a2e;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:10px}.summary-item{display:flex;justify-content:space-between;align-items:center}.summary-item .label{font-size:13px;color:#888}.summary-item .value{font-size:14px;color:#fff;font-weight:600}.current-value{margin-top:12px;padding:12px;background:#1a1a2e;border-radius:8px;font-size:14px;color:#aaa}.current-value strong{color:#3b82f6;font-size:16px}.handle-marker{cursor:pointer}.handle-marker:hover rect{filter:brightness(1.1)}.schematic-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid #2a2a3e;background:#1e1e2e;flex-shrink:0}.footer-info{display:flex;align-items:center;gap:12px}.total-selected{font-size:14px;color:#fff;font-weight:500}.footer-actions{display:flex;gap:12px}.footer-actions .cancel-btn{flex:none;padding:12px 24px}.footer-actions .apply-btn{flex:none;padding:12px 28px}.guide-notice{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#1e3a5f,#2a4a6f);border:1px solid #3b82f6;border-radius:10px;padding:12px 16px;margin-bottom:20px}.guide-notice svg{color:#60a5fa;flex-shrink:0}.guide-notice span{color:#94a3b8;font-size:13px}.guide-notice strong{color:#fff}.guide-notice-blue{background:linear-gradient(135deg,#1e40af,#1d4ed8);border-color:#3b82f6}.guide-notice-text{display:flex;flex-direction:column;gap:2px}.guide-notice-text strong{font-size:14px;color:#fff}.guide-notice-text span{font-size:12px;color:#93c5fd}.wall-card-guide{background:#fafafa;border-color:#ddd}.wall-card-guide:hover{border-color:#2563eb;box-shadow:0 8px 20px #2563eb26}.wall-card-guide .wall-card-header{background:#fff;border-bottom-color:#e5e5e5}.wall-card-guide .wall-card-header .wall-name{color:#333}.wall-card-guide .wall-card-footer{background:#fff;border-top-color:#e5e5e5}.zoom-modal-guide{max-width:900px;background:#fff}.zoom-modal-guide .zoom-modal-header{background:#f8fafc;border-bottom-color:#e2e8f0}.zoom-modal-guide .zoom-modal-header h3{color:#1e293b}.zoom-modal-guide .zoom-modal-content{background:#fff}.zoom-modal-guide .zoom-handles-list{background:#f8fafc;border-top-color:#e2e8f0}.zoom-modal-guide .zoom-handle-item{background:#fff;border:1px solid #e2e8f0}.zoom-modal-guide .zoom-handle-item:hover{background:#f1f5f9}.zoom-modal-guide .zoom-handle-item .name{color:#1e293b}.zoom-modal-guide .zoom-handle-item .desc{color:#64748b}.zoom-handles-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #e2e8f0;font-size:14px;font-weight:600;color:#334155}.selected-badge{font-size:12px;font-weight:500;color:#16a34a;background:#dcfce7;padding:4px 10px;border-radius:12px}.specs-col{display:flex;flex-direction:column;gap:2px;text-align:right}.spec-item{font-size:12px;color:#64748b}.guide-drawing-svg{width:100%;max-width:700px;height:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fafafa}.handle-drawing{transition:opacity .15s}.handle-drawing:hover{opacity:.8}.handles-list-guide{background:#f8fafc;border:1px solid #e2e8f0}.handles-list-guide h4{display:flex;align-items:center;gap:8px;color:#1e293b}.handles-list-guide h4 svg{color:#3b82f6}.handle-item-guide{background:#fff;border:1px solid #e2e8f0;border-radius:10px}.handle-item-guide:hover{background:#f1f5f9;border-color:#cbd5e1}.handle-item-guide.selected{border-color:#22c55e;background:#f0fdf4}.handle-item-guide .handle-info{flex:1}.handle-item-guide .name{color:#1e293b;font-weight:500}.handle-item-guide .desc{font-size:12px;color:#64748b}.handle-specs{display:flex;gap:12px;flex-wrap:wrap}.handle-specs .spec{font-size:12px;color:#475569;background:#f1f5f9;padding:4px 8px;border-radius:4px}.wall-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.wall-card{background:#252535;border:2px solid #3a3a4a;border-radius:12px;cursor:pointer;transition:all .2s;overflow:hidden}.wall-card:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 20px #3b82f633}.wall-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#1e1e2e;border-bottom:1px solid #3a3a4a}.wall-card-header .wall-name{font-size:14px;font-weight:600;color:#fff}.wall-card-header .handle-count{font-size:11px;color:#3b82f6;background:#3b82f626;padding:3px 8px;border-radius:10px}.wall-card-svg{display:block;width:100%;height:auto;aspect-ratio:4/3}.wall-card-footer{padding:10px 14px;background:#1e1e2e;border-top:1px solid #3a3a4a;text-align:center}.wall-card-footer .expand-hint{font-size:12px;color:#666}.wall-card:hover .expand-hint{color:#3b82f6}.zoom-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.zoom-modal{background:#1a1a2e;border-radius:16px;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 80px #0009;border:1px solid #3a3a4a}.zoom-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#1e1e2e;border-bottom:1px solid #3a3a4a}.zoom-modal-header h3{margin:0;font-size:18px;color:#fff}.zoom-close-btn{background:none;border:none;color:#666;font-size:28px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s}.zoom-close-btn:hover{background:#2a2a3e;color:#fff}.zoom-modal-content{flex:1;overflow:auto;padding:20px;display:flex;justify-content:center}.zoom-wall-svg{width:100%;max-width:600px;height:auto;border-radius:8px;box-shadow:0 4px 20px #0000004d}.zoom-handle{cursor:pointer;transition:opacity .15s}.zoom-handle:hover{opacity:.85}.zoom-handles-list{display:flex;flex-direction:column;gap:8px;padding:16px 20px;background:#1e1e2e;border-top:1px solid #3a3a4a;max-height:200px;overflow-y:auto}.zoom-handle-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#252535;border-radius:8px;cursor:pointer;transition:all .15s;border:2px solid transparent}.zoom-handle-item:hover{background:#2a2a3e}.zoom-handle-item.selected{border-color:#27ae60;background:#27ae601a}.zoom-handle-item input[type=checkbox]{width:18px;height:18px;accent-color:#27ae60;flex-shrink:0}.zoom-handle-item .priority{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#f39c12;color:#fff;border-radius:6px;font-size:12px;font-weight:700;flex-shrink:0}.zoom-handle-item .info{flex:1;display:flex;flex-direction:column;gap:2px}.zoom-handle-item .name{font-size:14px;color:#fff}.zoom-handle-item .desc{font-size:11px;color:#888}.zoom-handle-item .specs{font-size:12px;color:#3b82f6;font-weight:500;white-space:nowrap}.handles-list h4{display:flex;align-items:center;justify-content:space-between}.selected-count{font-size:12px;font-weight:500;color:#10b981;background:#10b98126;padding:4px 10px;border-radius:12px}.handle-item.selected{border:2px solid #27ae60;background:#27ae600d}.handle-item .specs{font-size:12px;color:#888}@media (max-width: 768px){.schematic-overlay{padding:0;align-items:flex-end}.schematic-modal{max-height:95vh;border-radius:20px 20px 0 0}.schematic-content{padding:16px}.walls-container{flex-direction:column;gap:16px}.wall-elevation{min-width:unset;max-width:unset;width:100%}.wall-svg{max-height:250px}.detail-grid{grid-template-columns:1fr}.handle-detail-header{flex-direction:column;align-items:flex-start;gap:12px}.wall-cards-grid{grid-template-columns:1fr}.zoom-modal{max-height:95vh;border-radius:16px 16px 0 0}.zoom-modal-content{padding:12px}.zoom-handles-list{max-height:150px}}.control-panel{display:flex;flex-direction:column;gap:12px;padding:12px;background:#fffffff2;max-height:50vh;overflow-y:auto;border-top-left-radius:20px;border-top-right-radius:20px}@media (min-width: 769px){.control-panel{width:320px;max-height:100%;border-radius:0;border-left:1px solid var(--border)}}.panel-section{background:var(--surface);border-radius:12px;padding:12px}.panel-section h3{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.auto-place-section{background:linear-gradient(135deg,#8b5cf61a,#6366f11a);border:1px solid rgba(139,92,246,.2)}.auto-place-section h3{display:flex;align-items:center;gap:8px;color:#8b5cf6}.auto-place-section h3 svg{width:18px;height:18px}.accordion-section{padding:0}.accordion-header{display:flex;align-items:center;justify-content:space-between;padding:12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s;border-radius:12px}.accordion-header:hover{background:#00000008}.accordion-header h3{margin-bottom:0;display:flex;align-items:center;gap:8px}.accordion-arrow{transition:transform .25s ease;color:var(--text-muted);flex-shrink:0}.accordion-header.open .accordion-arrow{transform:rotate(90deg)}.accordion-body{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 12px}.accordion-body.open{max-height:1200px;padding:0 12px 12px}.accordion-sub-section{padding-top:12px;border-top:1px solid var(--border)}.accordion-sub-section:first-child{padding-top:0;border-top:none}.accordion-sub-section h4{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.3px}.handle-tabs{display:flex;gap:4px;margin:12px 0;background:#0000000d;padding:3px;border-radius:10px}.handle-tab{flex:1;padding:8px 4px;border:none;border-radius:8px;background:transparent;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;text-align:center}.handle-tab:hover{color:var(--text);background:#ffffff80}.handle-tab.active{background:var(--primary);color:#fff;box-shadow:0 1px 4px #00000026}.handle-tab-content{min-height:60px}.tab-pane{animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tab-hint{font-size:12px;color:var(--text-muted);text-align:center;padding:20px 12px;line-height:1.5}.sliders{display:flex;flex-direction:column;gap:12px}.toggles{display:flex;flex-direction:column;gap:8px;margin-top:12px}.calibration-info{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:var(--primary);font-weight:500}.section-hint{font-size:12px;color:var(--text-muted);margin-bottom:12px;line-height:1.4}.ref-line-group{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.ref-line-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.ref-line-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.ref-line-hint{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;background:#00000008}.ref-line-hint .hint-icon{font-size:12px}.ref-line-hint-active{background:#fbbf2426;color:#b45309;font-weight:500}.handle-presets,.orientation-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.snap-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.tilt-controls{margin-top:0}.selected-handle{border:2px solid var(--success)}.btn-sm{padding:6px 12px;font-size:13px;min-height:36px}.perspective-btn{margin-top:12px;width:100%;background:linear-gradient(135deg,#3b82f6,#1e40af);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-weight:500;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.perspective-btn:hover{background:linear-gradient(135deg,#2563eb,#1e3a8a);transform:translateY(-1px);box-shadow:0 4px 12px #1e40af4d}.perspective-btn:active{transform:translateY(0)}.selected-handle .perspective-btn{margin-top:8px}@media (max-width: 768px){.control-panel{padding:16px;gap:16px;max-height:none}.panel-section{padding:16px}.accordion-section{padding:0}.accordion-header{padding:16px}.accordion-body.open{padding:0 16px 16px}.panel-section h3{font-size:14px;margin-bottom:16px}.accordion-header h3{margin-bottom:0}.chip{min-height:44px;padding:10px 16px;font-size:14px}.handle-presets,.orientation-presets{gap:10px}.slider{height:8px}.slider::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px}.slider::-moz-range-thumb{width:28px;height:28px}.slider-group{padding:8px 0}.slider-label{font-size:14px;margin-bottom:10px}.toggle{min-height:48px;padding:12px 16px}.toggle-switch{width:52px;height:28px}.toggle-switch:after{width:24px;height:24px}.toggle.active .toggle-switch:after{transform:translate(24px)}.toggle-label{font-size:15px}.btn{min-height:48px;font-size:15px}.btn-sm{min-height:44px;font-size:14px;padding:10px 16px}.snap-buttons{gap:10px}.snap-buttons .chip{min-width:52px;justify-content:center}.section-hint{font-size:13px;padding:10px 12px;background:#0000000a;border-radius:8px}.ref-line-hint{font-size:12px;padding:10px 12px}.calibration-info{flex-direction:column;align-items:stretch;gap:12px}.calibration-info span{text-align:center;font-size:15px}.calibration-info .btn{width:100%}.handle-tabs{margin:16px 0}.handle-tab{padding:10px 6px;font-size:14px}}.wall-guidelines-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.btn-guideline{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-guideline:hover:not(:disabled){transform:scale(1.02);box-shadow:0 2px 8px #22c55e4d}.btn-guideline:disabled,.btn-guideline.active{background:#6b7280;cursor:not-allowed}.guideline-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.guideline-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#00000008;border-radius:6px;font-size:13px}.guideline-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.guideline-name{flex:1;font-weight:500}.guideline-angle{color:var(--text-muted);font-size:12px}.btn-remove-guideline{background:none;border:none;color:#ef4444;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.btn-remove-guideline:hover{color:#dc2626}.btn-clear-guidelines{color:var(--text-muted);font-size:12px;padding:4px 0;text-decoration:underline}.schematic-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;margin-top:10px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.schematic-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.schematic-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--surface);border-radius:20px;padding:24px;max-width:400px;width:100%;box-shadow:0 20px 40px #0000004d;max-height:90vh;overflow-y:auto}.calibration-modal{max-width:420px}.modal h2{font-size:20px;margin-bottom:16px;text-align:center}.modal-description{font-size:14px;color:var(--text-muted);margin-bottom:16px;line-height:1.5;text-align:center}.quick-estimate-section{background:linear-gradient(135deg,#3b82f61a,#9333ea1a);border-radius:16px;padding:16px;margin-bottom:16px;text-align:center}.quick-estimate-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.btn-quick-estimate{width:100%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;padding:14px 20px;border-radius:12px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s}.btn-quick-estimate:active{transform:scale(.98)}.quick-estimate-hint{font-size:12px;color:var(--text-muted);margin-top:10px}.divider{display:flex;align-items:center;gap:12px;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.divider span{font-size:12px;color:var(--text-muted);white-space:nowrap}.ref-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.ref-type-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;border:2px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:all .2s;min-height:64px}.ref-type-btn:active{transform:scale(.98)}.ref-type-btn.active{border-color:var(--primary);background:#1e40af14}.ref-type-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}.ref-type-size{font-size:10px;color:var(--text-muted)}.ref-type-btn.active .ref-type-label{color:var(--primary)}.ref-type-selector{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.custom-input{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.custom-input label{font-size:14px;color:var(--text-muted)}.custom-input input{padding:14px;border:2px solid var(--border);border-radius:12px;font-size:18px;text-align:center;font-weight:600}.custom-input input:focus{border-color:var(--primary);outline:none}.ref-info{font-size:13px;color:var(--primary);background:#1e40af14;padding:10px 14px;border-radius:8px;margin-bottom:16px}.rect-info{font-size:14px;color:var(--success);background:#16a34a14;padding:12px 16px;border-radius:12px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:500}.drag-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;background:#fbbf241a;border:2px dashed #fbbf24;border-radius:12px;margin-bottom:16px;color:#b45309;text-align:center}.drag-hint span{font-size:13px;font-weight:500}.modal-actions{display:flex;gap:12px;justify-content:stretch}.modal-actions .btn{flex:1;min-height:48px}@media (max-width: 768px){.modal{padding:20px;margin:12px;max-height:85vh}.ref-type-grid{grid-template-columns:repeat(2,1fr);gap:10px}.ref-type-btn{padding:14px 10px;min-height:72px}.ref-type-label{font-size:14px}.ref-type-size{font-size:11px}.btn-quick-estimate{padding:16px 20px;font-size:16px}.modal-actions .btn{min-height:52px;font-size:16px}}.blueprint-screen{display:flex;flex-direction:column;height:100%;background:var(--blueprint-bg)}.blueprint-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.blueprint-header h1{flex:1;font-size:16px;font-weight:600;color:#fff}.header-actions{display:flex;gap:8px}.blueprint-header .btn-icon{background:#ffffff1a;border:none;color:#fff}.blueprint-header .btn-icon:hover{background:#fff3}.blueprint-header .btn-primary{padding:8px 16px;font-size:14px;min-height:40px}.blueprint-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.canvas-container{flex:1;overflow:hidden;cursor:grab;touch-action:none;position:relative}.canvas-container:active{cursor:grabbing}.canvas-container canvas{display:block}.calibration-hint{display:none}.calibration-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;pointer-events:none;z-index:5}.calibration-banner{position:absolute;top:0;left:0;right:0;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:15;box-shadow:0 4px 12px #0000004d}.calibration-banner-content{flex:1;display:flex;flex-direction:column;gap:4px}.calibration-banner-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.calibration-banner-title svg{flex-shrink:0}.calibration-banner-desc{font-size:12px;opacity:.9}.calibration-banner .btn-cancel{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;white-space:nowrap}.calibration-banner .btn-cancel:active{background:#ffffff4d}.calibration-banner .btn-cancel:disabled{opacity:.5;cursor:not-allowed}.smart-calibration-banner{background:linear-gradient(135deg,#3b82f6,#1d4ed8);animation:smartCalibPulse 2s ease-in-out infinite}.smart-calibration-banner.loading{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes smartCalibPulse{0%,to{box-shadow:0 4px 12px #3b82f64d}50%{box-shadow:0 4px 20px #3b82f680}}.zone-install-banner{background:linear-gradient(135deg,#10b981,#059669);animation:zoneInstallPulse 2s ease-in-out infinite}.perspective-rectify-banner{background:linear-gradient(135deg,#f97316,#ea580c)}.rectify-actions{display:flex;gap:8px}@keyframes zoneInstallPulse{0%,to{box-shadow:0 4px 12px #10b9814d}50%{box-shadow:0 4px 20px #10b98180}}.calibration-size-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#22c55ef2;color:#fff;padding:10px 20px;border-radius:24px;font-size:14px;font-weight:600;z-index:15;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.calibration-guide-corners{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;pointer-events:none;z-index:6;animation:cornerPulse 1.5s ease-in-out infinite}@keyframes cornerPulse{0%,to{opacity:.8;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}.guide-corner{position:absolute;width:24px;height:24px;border-color:#22c55e;border-style:solid;border-width:0}.guide-corner.top-left{top:0;left:0;border-top-width:3px;border-left-width:3px}.guide-corner.top-right{top:0;right:0;border-top-width:3px;border-right-width:3px}.guide-corner.bottom-left{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px}.guide-corner.bottom-right{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px}.calibration-mode .canvas-container{cursor:crosshair}@media (max-width: 768px){.blueprint-main{flex-direction:column}.blueprint-header h1{font-size:14px}.blueprint-header .btn-primary{padding:6px 12px;font-size:13px;min-height:36px}.rectify-actions{width:100%;justify-content:flex-end}.rectify-actions .btn-cancel{padding:7px 10px;font-size:12px}}@media (min-width: 769px){.blueprint-main{flex-direction:row}.canvas-container{flex:1}}.zoom-indicator{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;pointer-events:none;z-index:5}.mobile-fab-container{position:absolute;right:12px;bottom:80px;display:flex;flex-direction:column;gap:10px;z-index:20}.fab{width:48px;height:48px;border-radius:50%;border:none;background:#fff;box-shadow:0 4px 12px #00000040;display:flex;align-items:center;justify-content:center;color:#374151;transition:all .2s;-webkit-tap-highlight-color:transparent}.fab:active{transform:scale(.95);background:#f3f4f6}.fab svg{width:22px;height:22px}.mobile-bottom-sheet{position:absolute;bottom:0;left:0;right:0;background:#fff;border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -4px 20px #00000026;z-index:30;transition:max-height .3s ease,transform .3s ease;overflow:hidden}.mobile-bottom-sheet.collapsed{max-height:56px}.mobile-bottom-sheet.expanded{max-height:70vh;overflow-y:auto}.bottom-sheet-handle{display:flex;flex-direction:column;align-items:center;padding:12px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.handle-bar{width:40px;height:4px;background:#d1d5db;border-radius:2px;margin-bottom:8px}.handle-label{font-size:13px;font-weight:600;color:#6b7280}.mobile-bottom-sheet.expanded .handle-label{color:#3b82f6}.mobile-bottom-sheet.collapsed .handle-label{display:flex;align-items:center;gap:8px}.mobile-bottom-sheet .control-panel{max-height:calc(70vh - 56px);overflow-y:auto;border-radius:0;padding-bottom:env(safe-area-inset-bottom,20px)}.canvas-container.is-dragging{cursor:grabbing!important}.fab:active{transform:scale(.9);box-shadow:0 2px 8px #0003}.bottom-sheet-handle:active{background:#0000000d}.mobile-bottom-sheet.expanded .handle-bar{background:#3b82f6}.drag-indicator{position:absolute;bottom:80px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;z-index:10;pointer-events:none;opacity:0;transition:opacity .2s}.drag-indicator.visible{opacity:1}.mobile-quick-actions{display:flex;flex-direction:column;gap:10px;padding:0 16px 12px}.mobile-auto-place{width:100%}.mobile-secondary-actions{display:flex;gap:8px}.quick-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:#f3f4f6;border:none;border-radius:10px;font-size:11px;font-weight:500;color:#374151;-webkit-tap-highlight-color:transparent}.quick-action-btn:active{background:#e5e7eb}.quick-action-btn svg{width:16px;height:16px}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.bottom-sheet-hint{animation:pulse 2s ease-in-out infinite}.export-screen{display:flex;flex-direction:column;height:100%;background:var(--bg)}.export-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.export-header h1{font-size:18px;font-weight:600}.export-content{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.export-preview{position:relative;background:var(--blueprint-bg);border-radius:16px;overflow:hidden;aspect-ratio:4/3;max-height:250px}.export-preview img{width:100%;height:100%;object-fit:contain;filter:saturate(.3) brightness(.7)}.preview-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(transparent,#000000b3);display:flex;gap:16px;color:#fff;font-size:13px}.export-options{display:flex;flex-direction:column;gap:12px}.export-btn{display:flex;align-items:center;gap:16px;padding:16px;background:var(--surface);border-radius:16px;border:1px solid var(--border);text-align:left;transition:all .2s}.export-btn:hover{border-color:var(--primary);box-shadow:0 4px 12px #1e40af1a}.export-btn:active{transform:scale(.98)}.export-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:12px;color:var(--primary)}.export-info{flex:1;display:flex;flex-direction:column;gap:4px}.export-info strong{font-size:16px;color:var(--text)}.export-info span{font-size:13px;color:var(--text-muted)}.export-disclaimer{display:flex;gap:12px;padding:16px;background:#f59e0b1a;border-radius:12px;border:1px solid rgba(245,158,11,.3)}.export-disclaimer svg{flex-shrink:0;color:var(--warning)}.export-disclaimer p{font-size:12px;color:var(--text-muted);line-height:1.5}.ai-render-section{background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border-radius:16px;padding:20px;border:1px solid rgba(139,92,246,.2)}.ai-render-section h3{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:#7c3aed;margin-bottom:8px}.ai-render-section>p{font-size:13px;color:var(--text-muted);margin-bottom:16px}.render-error{display:flex;align-items:center;gap:8px;padding:12px;background:#dc26261a;border-radius:8px;color:var(--danger);font-size:13px;margin-bottom:12px}.render-actions{display:flex;gap:12px}.render-actions .btn{flex:1}.btn-ai-render{width:100%;background:linear-gradient(135deg,#8b5cf6,#3b82f6);color:#fff;border:none;padding:14px 20px;border-radius:12px;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s}.btn-ai-render:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #8b5cf64d}.btn-ai-render:active:not(:disabled){transform:translateY(0)}.btn-ai-render:disabled{opacity:.6;cursor:not-allowed}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.render-badge{background:linear-gradient(135deg,#8b5cf6,#3b82f6);padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.export-preview img[alt="AI Rendered"]{filter:none}.section-divider{display:flex;align-items:center;gap:16px;margin:8px 0}.section-divider:before,.section-divider:after{content:"";flex:1;height:1px;background:var(--border)}.section-divider span{font-size:12px;color:var(--text-muted);white-space:nowrap}@media (max-width: 768px){.export-content{padding:16px;gap:16px}.ai-render-section{padding:16px}.btn-ai-render{padding:16px 20px;font-size:16px}.render-actions{flex-direction:column}}.chat-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:400px;background:var(--surface);display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000026;z-index:200;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.chat-header h2{font-size:18px;font-weight:600}.chat-disclaimer{padding:10px 16px;background:#f59e0b1a;font-size:11px;color:var(--warning);line-height:1.4}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-welcome{text-align:center;padding:20px}.chat-welcome p{font-size:14px;color:var(--text-muted);margin-bottom:16px}.chat-welcome .chat-hint{font-size:12px;color:var(--primary);background:#3b82f61a;padding:8px 12px;border-radius:8px;margin-bottom:16px}.quick-questions{display:flex;flex-direction:column;gap:8px}.quick-questions button{padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:20px;font-size:13px;color:var(--text);text-align:left;transition:all .2s}.quick-questions button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.chat-message{display:flex;max-width:85%}.chat-message.user{align-self:flex-end}.chat-message.assistant{align-self:flex-start}.message-content{padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.5;white-space:pre-wrap}.chat-message.user .message-content{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-message.assistant .message-content{background:var(--bg);color:var(--text);border-bottom-left-radius:4px}.message-content.loading{display:flex;gap:4px;padding:16px 20px}.message-content.loading span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.message-content.loading span:nth-child(1){animation-delay:-.32s}.message-content.loading span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-input-container{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}.chat-input-container textarea{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:24px;resize:none;font-size:15px;max-height:120px;line-height:1.4}.chat-input-container textarea:focus{outline:none;border-color:var(--primary)}.send-btn{padding:12px;border-radius:50%}.send-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.chat-drawer{max-width:100%}}.app{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden;position:relative}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:12px;font-weight:500;font-size:15px;min-height:48px;min-width:48px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-icon{padding:10px;border-radius:50%;background:var(--surface);border:1px solid var(--border)}.btn-icon:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.panel{background:var(--surface);border-radius:16px;padding:16px;box-shadow:0 2px 8px #00000014}.slider-group{display:flex;flex-direction:column;gap:4px}.slider-label{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted)}.slider{width:100%;height:6px;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);cursor:pointer}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.toggle-switch{width:48px;height:28px;background:var(--border);border-radius:14px;position:relative;transition:background .2s}.toggle-switch:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle.active .toggle-switch{background:var(--primary)}.toggle.active .toggle-switch:after{transform:translate(20px)}.toggle-label{font-size:14px}.chip{display:inline-flex;align-items:center;padding:8px 14px;border-radius:20px;font-size:13px;background:var(--bg);border:1px solid var(--border);cursor:pointer;transition:all .2s}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.chip:hover:not(.active){background:var(--border)}@media (max-width: 768px){.slider{height:8px}.slider::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px}.slider::-moz-range-thumb{width:28px;height:28px;border:none;background:var(--primary)}.toggle{min-height:48px;padding:8px 4px}.toggle-switch{width:52px;height:30px;border-radius:15px}.toggle-switch:after{width:24px;height:24px;top:3px}.toggle.active .toggle-switch:after{transform:translate(22px)}.chip{min-height:44px;padding:10px 16px;font-size:14px}.btn,button{min-height:44px;min-width:44px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #1e40af;--primary-light: #3b82f6;--secondary: #64748b;--success: #16a34a;--warning: #f59e0b;--danger: #dc2626;--bg: #f8fafc;--surface: #ffffff;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--blueprint-bg: #1a365d;--blueprint-line: #60a5fa}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;touch-action:manipulation}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,select{font-family:inherit;font-size:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--border)}::-webkit-scrollbar-thumb{background:var(--secondary);border-radius:3px}@supports (padding: max(0px)){.safe-area-top{padding-top:max(12px,env(safe-area-inset-top))}.safe-area-bottom{padding-bottom:max(12px,env(safe-area-inset-bottom))}}
