.three-canvas[data-v-88475735]{width:100%;height:100%;background:#1a1a1a}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-card: #3a3a3a;--bg-card-hover: #4a4a4a;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-muted: #808080;--accent: #4a9eff;--accent-hover: #6bb3ff;--accent-dark: #2d7cd6;--border: #505050;--success: #4caf50;--warning: #ff9800;--error: #f44336;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow: 0 4px 20px rgba(0, 0, 0, .3);--transition: all .3s ease}html{height:100%}body{min-height:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}#app{height:100vh;height:100dvh}#debugIndicator{position:fixed;top:5px;left:50%;transform:translate(-50%);background:#ff9800e6;color:#000;padding:4px 12px;border-radius:4px;font-size:11px;font-weight:700;z-index:1000;pointer-events:none}.app-container{height:100vh;height:100dvh;width:100%;display:flex;flex-direction:column;overflow:hidden}.app-header{padding:15px 30px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:15px;flex-shrink:0}.back-button{width:44px;height:44px;border:none;background-color:var(--bg-card);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0}.back-button:hover:not(:disabled){background-color:var(--accent)}.back-button:disabled{opacity:.3;cursor:not-allowed}.back-button svg{width:22px;height:22px}.header-title{flex:1;min-width:0}.header-title h1{font-size:1.4rem;font-weight:600;margin-bottom:2px}.header-title .step-indicator{font-size:.9rem;color:var(--text-muted)}.app-content{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column;min-height:0}.screen{flex:1;min-height:0;height:100%;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fullscreen-layout{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;overflow-y:auto}.screen-intro{text-align:center;margin-bottom:30px;max-width:600px}.screen-intro h2{font-size:1.8rem;font-weight:600;margin-bottom:8px}.screen-intro p{color:var(--text-secondary);font-size:1.1rem}.choice-grid-fullscreen{display:grid;gap:25px;width:100%;max-width:900px}.choice-grid-fullscreen.cols-2{grid-template-columns:repeat(2,1fr)}.choice-grid-fullscreen.cols-3{grid-template-columns:repeat(3,1fr)}.choice-card-large{background-color:var(--bg-card);border:2px solid transparent;border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition);overflow:hidden}.choice-card-large:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 40px #0006}.choice-card-large.selected{border-color:var(--accent);background:linear-gradient(135deg,#4a9eff26,#4a9eff0d);box-shadow:0 0 20px #4a9eff4d}.choice-card-large.selected .card-title{color:var(--accent)}.choice-card-large .card-image{width:100%;height:180px;background-color:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:4rem;border-bottom:1px solid var(--border)}.choice-card-large .card-body{padding:20px 25px 25px;text-align:center}.choice-card-large .card-title{font-size:1.3rem;font-weight:600;margin-bottom:8px}.choice-card-large .card-description{font-size:.95rem;color:var(--text-secondary);line-height:1.5}.split-layout{width:100%;height:100%;display:flex;min-height:0;overflow:hidden}.visualization-panel{flex:1;height:100%;min-width:300px;position:relative;overflow:hidden;background:#1a1a1a}.viewer3d-container{position:absolute;top:0;left:0;width:100%;height:100%}.viewer3d-container iframe{width:100%;height:100%;border:none}.config-panel-wrapper{position:relative;height:100%;width:520px;max-width:50%;flex-shrink:0}.config-panel{width:100%;height:100%;background-color:var(--bg-secondary);display:flex;flex-direction:column;box-shadow:-4px 0 20px #0000004d;min-height:0;overflow:hidden}.config-panel-header{padding:25px 30px;border-bottom:1px solid var(--border)}.config-panel-header h2{font-size:1.3rem;font-weight:600;margin-bottom:5px}.config-panel-header p{font-size:.9rem;color:var(--text-muted)}.config-panel-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:25px 30px;min-height:0}.config-panel-footer{padding:20px 30px;border-top:1px solid var(--border);background-color:var(--bg-primary);display:flex;gap:12px}.config-summary{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:18px;margin-bottom:25px}.config-summary-title{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.config-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.config-summary-row:last-child{border-bottom:none}.config-summary-row .label{color:var(--text-secondary);font-size:.9rem}.config-summary-row .value{color:var(--text-primary);font-weight:600;font-size:.95rem}.form-group{margin-bottom:24px}.form-group label{display:block;font-size:.95rem;font-weight:500;color:var(--text-secondary);margin-bottom:10px}.form-group .hint{font-size:.85rem;color:var(--text-muted);margin-top:6px}.form-group .hint.warning-hint{color:#e67e22;background:#e67e221a;padding:8px 12px;border-radius:6px;border-left:3px solid #e67e22}.attic-entry-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px;border:1px solid var(--border)}.attic-entry-section .form-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.attic-descent-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px;border:1px solid var(--border)}.attic-descent-section .form-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.attic-options-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px;border:1px solid var(--border)}.attic-options-section .form-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.attic-info-box{padding:12px 16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}.attic-info-title{font-weight:500;margin-bottom:8px;color:var(--text-primary)}.attic-info-label{color:var(--text-muted);font-size:.9rem}.attic-info-value{font-weight:600;color:var(--primary)}.attic-info-row{display:flex;justify-content:space-between;padding:4px 0}.attic-info-row span:first-child{color:var(--text-muted)}.input-small{max-width:120px}.input-with-unit{display:flex;align-items:center;gap:8px}.input-with-unit .form-input{flex:1}.input-with-unit .unit{font-size:.9rem;color:var(--text-muted);font-weight:500;min-width:30px}.checkbox-group{padding:10px 0}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.95rem;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.input-with-buttons{display:flex;align-items:center;gap:12px}.input-field{flex:1;height:52px;padding:0 16px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:1.2rem;font-weight:600;text-align:center;transition:border-color .2s}.input-field:focus{outline:none;border-color:var(--accent)}.input-btn{width:52px;height:52px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--accent);font-size:1.5rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.input-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.btn{padding:14px 28px;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:#fff;flex:1}.btn-primary:hover{background:linear-gradient(135deg,var(--accent-hover) 0%,var(--accent) 100%);transform:translateY(-2px);box-shadow:0 4px 15px #4a9eff4d}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover)}.progress-bar{width:100%;height:6px;background:var(--bg-primary);border-radius:3px;margin-bottom:20px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,var(--success) 100%);border-radius:3px;transition:width .3s ease}.input-with-unit{display:flex;align-items:center;gap:0}.input-with-unit .form-input{flex:1;height:48px;padding:0 16px;border:2px solid var(--border);border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:1.1rem;font-weight:500;transition:border-color .2s}.input-with-unit .form-input:focus{outline:none;border-color:var(--accent)}.input-with-unit .form-input.invalid{border-color:var(--error)}.input-with-unit .unit{height:48px;padding:0 16px;background:var(--bg-card);border:2px solid var(--border);border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);font-size:1rem;font-weight:500;display:flex;align-items:center}.form-warning{margin-bottom:8px;padding:8px 12px;background:#f443361a;border:1px solid var(--error);border-radius:6px;color:var(--error);font-size:13px;font-weight:500}.form-select{width:100%;height:48px;padding:0 16px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.95rem;cursor:pointer;transition:border-color .2s}.form-select:focus{outline:none;border-color:var(--accent)}.checkbox-wrapper{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:14px;border:2px solid var(--border);border-radius:var(--radius-md);transition:all .2s}.checkbox-wrapper:hover{border-color:var(--accent);background:#4a9eff0d}.checkbox-wrapper input[type=checkbox]{display:none}.checkbox-custom{width:24px;height:24px;min-width:24px;border:2px solid var(--border);border-radius:6px;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox-wrapper input[type=checkbox]:checked+.checkbox-custom{background:var(--accent);border-color:var(--accent)}.checkbox-custom svg{width:16px;height:16px;opacity:0;transition:opacity .2s}.checkbox-wrapper input[type=checkbox]:checked+.checkbox-custom svg{opacity:1}.checkbox-label{flex:1}.checkbox-label .label-title{display:block;font-weight:600;color:var(--text-primary);margin-bottom:4px}.checkbox-label .label-description{display:block;font-size:13px;color:var(--text-secondary)}.conditional-field{margin-top:15px;padding:15px;background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent)}.conditional-field label{display:block;font-size:.9rem;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.obstacle-type-selector{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.obstacle-type-card{background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);text-align:center}.obstacle-type-card:hover:not(.is-disabled){border-color:#4a9eff80;background:linear-gradient(135deg,#4a9eff1a,#4a9eff08);transform:translateY(-2px)}.obstacle-type-card.is-active{border-color:#4caf5099;background:linear-gradient(135deg,#4caf5026,#4caf500d)}.obstacle-type-card.is-disabled{opacity:.7;cursor:default}.obstacle-type-icon{width:48px;height:48px;margin:0 auto 12px;color:#ffffffb3}.obstacle-type-icon svg{width:100%;height:100%}.obstacle-type-card:hover:not(.is-disabled) .obstacle-type-icon{color:#4a9eff}.obstacle-type-card.is-active .obstacle-type-icon{color:#4caf50}.obstacle-type-label{font-weight:600;font-size:.95rem;color:#fff;margin-bottom:6px;display:flex;align-items:center;justify-content:center;gap:8px}.badge-added{font-size:.7rem;padding:2px 8px;background:#4caf50;border-radius:10px;font-weight:500}.obstacle-type-desc{font-size:.8rem;color:#ffffff80;line-height:1.4}.obstacle-type-photo{width:100%;height:70px;margin-bottom:10px;border-radius:8px;overflow:hidden;background:linear-gradient(180deg,#1f2937,#111827);display:flex;align-items:center;justify-content:center;padding:8px}.eave-svg{width:100%;height:100%;opacity:.9;transition:all .25s ease}.obstacle-type-card--eave:hover:not(.is-disabled) .eave-svg{opacity:1;transform:scale(1.05)}.obstacle-type-card--eave.is-active .obstacle-type-photo{background:linear-gradient(180deg,#1e3a2f,#14532d);border:1px solid rgba(76,175,80,.4)}.obstacle-type-card--eave.is-active .eave-svg{opacity:1}.window-svg{width:100%;height:100%;opacity:.9;transition:all .25s ease}.obstacle-type-card--window:hover .window-svg{opacity:1;transform:scale(1.05)}.eave-settings{background:linear-gradient(135deg,#4caf501a,#4caf5008);border:1px solid rgba(76,175,80,.3);border-radius:12px;padding:16px;margin-bottom:16px}.eave-settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.eave-title{font-weight:600;color:#81c784;font-size:.9rem}.btn-remove-eave{width:28px;height:28px;border:none;background:#f4433633;color:#f44336;border-radius:6px;cursor:pointer;font-size:18px;line-height:1;transition:all .2s}.btn-remove-eave:hover{background:#f4433666}.eave-inputs{display:flex;gap:12px}.eave-inputs .input-group-small{flex:1}.obstacles-list-header{font-size:.85rem;font-weight:600;color:#fff9;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.obstacles-list{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.obstacle-item{background:var(--bg-card);padding:12px;border-radius:var(--radius-md)}.obstacle-inputs{display:flex;align-items:flex-end;gap:10px}.input-group-small{flex:1}.input-group-small label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px}.form-input-small{width:100%;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:.9rem}.btn-remove-obstacle{width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:var(--error);color:#fff;font-size:1.2rem;cursor:pointer;transition:opacity .2s}.btn-remove-obstacle:hover{opacity:.8}.btn-add-obstacle{width:100%;padding:10px;border:2px dashed var(--accent);border-radius:var(--radius-md);background:transparent;color:var(--accent);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-add-obstacle:hover{background:#4a9eff1a}.collision-warning{display:flex;align-items:flex-start;gap:12px;margin-top:12px;padding:12px;background:#ff98001a;border:1px solid rgba(255,152,0,.3);border-radius:8px;color:#ff9800}.collision-warning-icon{flex-shrink:0;width:24px;height:24px}.collision-warning-icon svg{width:100%;height:100%}.collision-warning-text{flex:1}.collision-warning-text strong{display:block;margin-bottom:4px;font-size:.9rem}.collision-warning-text p{margin:0;font-size:.85rem;color:#ff9800d9;line-height:1.4}.model-toast{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:90%;padding:10px 16px;background:#ef4444f2;border-radius:8px;box-shadow:0 4px 12px #0003;color:#fff;font-size:.85rem;z-index:100}.model-toast-icon{flex-shrink:0;width:20px;height:20px}.model-toast-icon svg{width:100%;height:100%}.model-toast-content{flex:1;line-height:1.4}.model-toast-content strong{font-weight:600}.model-toast-close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fff3;border:none;border-radius:4px;color:#fff;font-size:18px;cursor:pointer;transition:background .2s}.model-toast-close:hover{background:#ffffff4d}.viewer3d-visibility{position:absolute;top:10px;right:10px;z-index:20;display:flex;flex-direction:column;gap:5px}.viewer3d-visibility-btn{padding:8px 12px;background:#323232cc;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-size:12px;transition:all .2s;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.viewer3d-visibility-btn.active{background:#4caf50e6;border-color:#6fcf7c}.viewer3d-visibility-btn:hover{background:#505050e6}#controls{position:fixed;top:80px;left:12px;z-index:100;display:flex;flex-direction:column;gap:6px;padding:10px;background:linear-gradient(165deg,#1e232de6,#12161cf2);border-radius:12px;border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 32px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#controls .btn{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:linear-gradient(145deg,#4caf50,#388e3c);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:8px;font-size:18px;font-weight:700;cursor:pointer;transition:all .25s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff1a;padding:0}#controls .btn:hover{background:linear-gradient(145deg,#66bb6a,#43a047);transform:translateY(-2px);box-shadow:0 6px 16px #00000080,inset 0 1px #ffffff26}#controls .btn:active{transform:translateY(0) scale(.96);box-shadow:0 2px 6px #0006,inset 0 1px 3px #0003}#controls .btn-tech{background:linear-gradient(145deg,#3d5a80,#293d52);font-size:20px;width:46px;height:46px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 12px #0006,inset 0 1px #ffffff1a;transition:all .25s ease}#controls .btn-tech:hover{background:linear-gradient(145deg,#4a6d96,#344c66);box-shadow:0 6px 16px #00000080,inset 0 1px #ffffff26;transform:translateY(-2px)}#controls .btn-tech:active{background:linear-gradient(145deg,#293d52,#1e2d3d);transform:translateY(0) scale(.96);box-shadow:0 2px 6px #0006,inset 0 1px 3px #0003}#controls .btn-active{background:linear-gradient(145deg,#4caf50,#388e3c)!important;border-color:#6fcf7c!important;box-shadow:0 0 12px #4caf5080,0 4px 12px #0006!important}#controls .btn-with-tooltip{position:relative}#controls .btn-tooltip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:linear-gradient(165deg,#1e232dfa,#12161cfc);color:#ffffffe6;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;box-shadow:0 4px 16px #00000080;border:1px solid rgba(255,255,255,.1);font-family:Segoe UI,Arial,sans-serif;z-index:200}#controls .btn-tooltip:before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#1e232dfa}#controls .btn-with-tooltip:hover .btn-tooltip{opacity:1;transform:translateY(-50%) translate(4px)}#measureToolbar{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:150;display:none;background:linear-gradient(165deg,#1e232df2,#12161cfa);padding:8px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:6px;align-items:center}#measureToolbar.active{display:flex}.measure-toolbar-label{color:#fff9;font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-right:6px;font-family:Segoe UI,Arial,sans-serif}#measureToolbar .measure-mode-btn{width:38px;height:38px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:linear-gradient(145deg,#2a2f3a,#1e222a);color:#ffffffb3;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;font-family:Segoe UI,Arial,sans-serif;padding:0}#measureToolbar .measure-mode-btn:hover{background:linear-gradient(145deg,#363c4a,#282d38);color:#fff;transform:translateY(-2px)}#measureToolbar .measure-mode-btn.active{background:linear-gradient(145deg,#4caf50,#388e3c);color:#fff;border-color:#fff3;box-shadow:0 4px 12px #4caf5066}#measureToolbar .measure-mode-btn .tooltip{position:absolute;bottom:-32px;left:50%;transform:translate(-50%);background:#000000e6;color:#fff;padding:5px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease}#measureToolbar .measure-mode-btn:hover .tooltip{opacity:1}.measure-toolbar-divider{width:1px;height:24px;background:#ffffff26;margin:0 6px}#measureToolbar .measure-close-btn{width:32px;height:32px;border:none;border-radius:6px;background:linear-gradient(145deg,#e53935,#c62828);color:#fff;font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;margin-left:4px;padding:0}#measureToolbar .measure-close-btn:hover{background:linear-gradient(145deg,#ef5350,#d32f2f);transform:scale(1.05)}#measureResultPopup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(165deg,#1e232dfa,#12161cfc);color:#6fcf7c;padding:24px 32px;border-radius:14px;border:1px solid rgba(255,255,255,.1);border-top:3px solid #4CAF50;box-shadow:0 20px 60px #000000b3;font-size:28px;font-weight:700;font-family:Consolas,Monaco,monospace;z-index:300;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#measureResultPopup .measure-result-close-btn{position:absolute;top:8px;right:8px;width:24px;height:24px;background:transparent;border:none;color:#ffffff80;font-size:18px;cursor:pointer;transition:color .2s;padding:0;display:flex;align-items:center;justify-content:center}#measureResultPopup .measure-result-close-btn:hover{color:#fff}#connectionPanel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(165deg,#1c2028fa,#12141afc);padding:28px 32px;border-radius:14px;border:1px solid rgba(255,255,255,.08);border-top:3px solid #4CAF50;box-shadow:0 20px 60px #000000b3,0 0 1px #ffffff1a;z-index:300;display:none;color:#fff;font-size:14px;min-width:320px;font-family:Segoe UI,Arial,sans-serif;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#connectionPanel.active{display:block}#connectionPanel h3{margin:0 0 22px;text-align:center;color:#6fcf7c;font-size:16px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.connection-row{margin:14px 0}.connection-row label{display:block;margin-bottom:10px;color:#fff9;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.connection-types{display:flex;gap:8px;justify-content:center}.connection-type-btn{padding:12px 22px;background:linear-gradient(145deg,#2a2f3a,#1e222a);color:#ffffffd9;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 8px #0000004d}.connection-type-btn:hover{background:linear-gradient(145deg,#363c4a,#282d38);transform:translateY(-1px);box-shadow:0 4px 12px #0006}.connection-type-btn.active{background:linear-gradient(145deg,#4caf50,#388e3c);border-color:#fff3;color:#fff;box-shadow:0 4px 12px #4caf5066}.wspornik-row{margin:16px 0}.wspornik-row label{display:block;margin-bottom:10px;color:#fff9;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.wspornik-slider{width:100%;height:6px;-webkit-appearance:none;background:linear-gradient(90deg,#2a2f3a,#363c4a);border-radius:3px;outline:none;border:1px solid rgba(255,255,255,.1)}.wspornik-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:linear-gradient(145deg,#4caf50,#388e3c);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #4caf5066;border:2px solid rgba(255,255,255,.2);transition:transform .15s ease}.wspornik-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.wspornik-value{text-align:center;font-size:20px;font-weight:700;margin-top:8px;color:#6fcf7c;font-family:Consolas,Monaco,monospace}.wspornik-types{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.wspornik-type-btn{padding:10px 16px;background:linear-gradient(145deg,#2a2f3a,#1e222a);color:#ffffffd9;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 6px #0000004d}.wspornik-type-btn:hover{background:linear-gradient(145deg,#363c4a,#282d38);transform:translateY(-1px)}.wspornik-type-btn.active{background:linear-gradient(145deg,#4caf50,#388e3c);border-color:#fff3;color:#fff;box-shadow:0 3px 10px #4caf5066}#connectionPanel .close-btn{width:100%;margin-top:22px;padding:12px;background:linear-gradient(145deg,#2a2f3a,#1e222a);color:#fffc;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease}#connectionPanel .close-btn:hover{background:linear-gradient(145deg,#363c4a,#282d38);color:#fff}.connection-actions{display:flex;gap:10px;margin-top:22px}.connection-actions .remove-btn{flex:1;padding:12px;background:linear-gradient(145deg,#e53935,#c62828);color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease}.connection-actions .remove-btn:hover{background:linear-gradient(145deg,#ef5350,#d32f2f)}.connection-actions .close-btn{flex:1;padding:12px;background:linear-gradient(145deg,#2a2f3a,#1e222a);color:#fffc;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease;margin-top:0;width:auto}.connection-actions .close-btn:hover{background:linear-gradient(145deg,#363c4a,#282d38);color:#fff}#safetyCageControls{position:fixed;bottom:10px;left:10px;z-index:100;display:flex;flex-wrap:wrap;gap:8px;font-family:Segoe UI,Arial,sans-serif}.cage-panel{background:linear-gradient(165deg,#1e232df2,#12161cfa);padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 24px #00000080,inset 0 1px #ffffff0d;display:flex;align-items:center;gap:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cage-panel-1{border-left:3px solid #4CAF50}.cage-label{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;opacity:.9}.cage-label-1{color:#6fcf7c}.cage-btn{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:18px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d;padding:0}.cage-btn-add{background:linear-gradient(145deg,#4caf50,#388e3c);color:#fff}.cage-btn-add:hover{background:linear-gradient(145deg,#66bb6a,#43a047);transform:scale(1.08)}.cage-btn-add:active{transform:scale(.95)}.cage-btn-remove{background:linear-gradient(145deg,#e53935,#c62828);color:#fff}.cage-btn-remove:hover{background:linear-gradient(145deg,#ef5350,#d32f2f);transform:scale(1.08)}.cage-btn-remove:active{transform:scale(.95)}.cage-count{color:#fff;font-size:14px;font-weight:700;min-width:45px;text-align:center;font-family:Consolas,Monaco,monospace;letter-spacing:1px}.cage-checkbox-label{font-size:10px;margin-left:6px;cursor:pointer;display:flex;align-items:center;gap:4px;opacity:.85;transition:opacity .2s}.cage-checkbox-label:hover{opacity:1}.cage-checkbox-label-1{color:#81c784}.cage-checkbox{width:14px;height:14px;cursor:pointer;accent-color:#4CAF50}#globalSettingsPanel{position:fixed;bottom:10px;left:10px;z-index:100;background:linear-gradient(165deg,#1e232df2,#12161cfa);padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);border-left:3px solid #2196F3;box-shadow:0 8px 24px #00000080,inset 0 1px #ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:Segoe UI,Arial,sans-serif;display:flex;align-items:center;gap:10px}#globalSettingsPanel.with-cage{bottom:70px}#globalSettingsPanel label{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#90caf9;opacity:.9;white-space:nowrap}.global-slider{width:120px;height:6px;border-radius:3px;background:#ffffff1a;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.global-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,#2196f3,#1976d2);cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .15s ease}.global-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.global-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,#2196f3,#1976d2);cursor:pointer;border:none;box-shadow:0 2px 6px #0000004d}.global-value{font-size:13px;font-weight:700;color:#fff;font-family:Consolas,Monaco,monospace;min-width:65px}.global-type{font-size:10px;font-weight:600;color:#90caf9;text-transform:uppercase;padding:3px 8px;background:#2196f333;border-radius:4px;letter-spacing:.5px}#techDrawingPanel{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:100;background:linear-gradient(165deg,#fffffffa,#f0f0f5fc);padding:12px 18px;border-radius:12px;border:1px solid rgba(0,0,0,.1);box-shadow:0 8px 32px #0000004d;display:flex;align-items:center;gap:15px;font-family:Segoe UI,Arial,sans-serif}#techDrawingPanel .tech-label{font-weight:600;font-size:14px;color:#333}#techDrawingPanel .tech-view{font-size:13px;color:#666}#techDrawingPanel .tech-switch-btn{padding:8px 15px;border:none;border-radius:6px;background:linear-gradient(145deg,#3d5a80,#293d52);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}#techDrawingPanel .tech-switch-btn:hover{background:linear-gradient(145deg,#4a6d96,#344c66)}#techDrawingPanel .tech-close-btn{width:28px;height:28px;border:none;border-radius:6px;background:linear-gradient(145deg,#e53935,#c62828);color:#fff;font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0}#techDrawingPanel .tech-close-btn:hover{background:linear-gradient(145deg,#ef5350,#d32f2f);transform:scale(1.05)}.watchdog-panel{position:absolute;bottom:12px;right:12px;z-index:100;background:linear-gradient(165deg,#1e1e28f2,#14141efa);padding:10px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0006;font-family:Consolas,Monaco,monospace;min-width:200px}.watchdog-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0}.watchdog-item:not(:last-child){border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:6px;margin-bottom:4px}.watchdog-label{font-size:11px;color:#ffffffb3;white-space:nowrap}.watchdog-value{font-size:14px;font-weight:700;color:#4ade80;text-shadow:0 0 8px rgba(74,222,128,.3)}.hint{font-size:.85rem;color:var(--text-muted);margin-top:6px}.summary-section{margin-bottom:24px}.summary-section-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.summary-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.summary-row:last-child{border-bottom:none}.summary-row .label{color:var(--text-secondary);font-size:.9rem}.summary-row .value{color:var(--text-primary);font-weight:500}.summary-row .value.highlight{color:var(--accent);font-weight:700;font-size:1.1rem}.summary-row.highlight-row{background:#4a9eff1a;margin:8px -16px;padding:12px 16px;border-radius:var(--radius-sm);border-bottom:none}.summary-row.highlight-row .value{color:var(--accent);font-weight:700}.promo-code-input{display:flex;gap:10px}.promo-code-input .form-input{flex:1;height:44px;padding:0 14px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.95rem;text-transform:uppercase}.promo-code-input .form-input:focus{outline:none;border-color:var(--accent)}.btn-accent{background:var(--accent);color:#fff;border:none;padding:0 20px;height:44px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s}.btn-accent:hover{background:var(--accent-hover)}.promo-message{margin-top:10px;padding:10px 14px;border-radius:var(--radius-md);font-size:.9rem;background:#f443361a;color:var(--error);border:1px solid var(--error)}.promo-message.success{background:#4caf501a;color:var(--success);border:1px solid var(--success)}.cage-options{margin-top:16px;display:flex;flex-direction:column;gap:12px}.checkbox-wrapper-styled{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:14px;cursor:pointer;padding:16px 18px;margin-bottom:0!important;background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;flex-wrap:nowrap}.checkbox-wrapper-styled:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#4a9eff1a,#4a9eff05);opacity:0;transition:opacity .25s ease}.checkbox-wrapper-styled:hover{border-color:#4a9eff66;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.checkbox-wrapper-styled:hover:before{opacity:1}.checkbox-wrapper-styled input[type=checkbox]{display:none}.checkbox-custom-styled{width:26px;height:26px;min-width:26px;flex-shrink:0;border:2px solid rgba(255,255,255,.25);border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .25s cubic-bezier(.4,0,.2,1);background:#ffffff0d;position:relative;z-index:1;margin-top:2px}.checkbox-custom-styled svg{width:14px;height:14px;opacity:0;transform:scale(.5);transition:all .2s cubic-bezier(.4,0,.2,1)}.checkbox-wrapper-styled:hover .checkbox-custom-styled{border-color:#4a9eff80}.checkbox-wrapper-styled input[type=checkbox]:checked+.checkbox-custom-styled{background:linear-gradient(135deg,#4a9eff,#2d7cd6);border-color:#4a9eff;box-shadow:0 2px 8px #4a9eff66}.checkbox-wrapper-styled input[type=checkbox]:checked+.checkbox-custom-styled svg{opacity:1;transform:scale(1)}.checkbox-label-styled{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;position:relative;z-index:1}.checkbox-label-styled .label-title{font-weight:600;font-size:1rem;color:#fff;letter-spacing:.01em}.checkbox-label-styled .label-description{font-size:.875rem;color:#fff9;line-height:1.5}.checkbox-wrapper-styled:has(input[type=checkbox]:checked){border-color:#4a9eff80;background:linear-gradient(135deg,#4a9eff1f,#4a9eff0a)}.checkbox-wrapper-styled:has(input[type=checkbox]:checked) .label-title{color:#6bb3ff}.checkbox-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:.95rem;color:var(--text-primary)}.checkbox-label input[type=checkbox]{display:none}.checkbox-label .checkmark{width:22px;height:22px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--accent);border-color:var(--accent)}.checkbox-label input[type=checkbox]:checked+.checkmark:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.obstacle-type{min-width:100px}.form-select-small{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:.85rem}.obstacle-preview{display:flex;align-items:center;gap:10px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.obstacle-badge{padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.obstacle-badge.type-window{background:#2196f333;color:#2196f3}.obstacle-badge.type-recess{background:#ff980033;color:#ff9800}.obstacle-badge.type-groove{background:#9c27b033;color:#9c27b0}.obstacle-badge.type-other{background:#9e9e9e33;color:#9e9e9e}.obstacle-range{font-size:.85rem;color:var(--text-secondary)}.components-list{max-height:300px;overflow-y:auto}.components-empty{text-align:center;color:var(--text-secondary);padding:20px;font-style:italic}.component-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.component-row:last-child{border-bottom:none}.component-name{flex:1;color:var(--text-primary);font-size:.9rem}.component-qty{min-width:60px;text-align:center;color:var(--accent);font-weight:600;font-size:.9rem}.component-price{min-width:80px;text-align:right;color:var(--text-secondary);font-size:.9rem}.pricing-card .discount-row,.pricing-card .discount-row .value{color:var(--success)}.pricing-card .total-row{background:#4a9eff26;margin:12px -16px -16px;padding:16px;border-radius:0 0 var(--radius-md) var(--radius-md);border-bottom:none}.pricing-card .total-row .label{font-weight:600;color:var(--text-primary)}.pricing-card .total-row .value{font-size:1.2rem}.loading-indicator{display:inline-block;margin-left:10px;font-size:.8rem;color:var(--accent);font-weight:400}.summary-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px;padding-top:20px;border-top:2px solid var(--border)}.btn-block{width:100%;justify-content:center}.btn-outline{background:transparent;border:2px solid var(--accent);color:var(--accent)}.btn-outline:hover{background:#4a9eff1a}.btn-success{background:#10b981;color:#fff;border:none}.btn-success:hover{background:#059669}.summary-full-layout{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:30px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.summary-panel{max-width:900px;width:100%;margin:0 auto}.add-ladder-section{margin:24px 0}.btn-outline-dashed{background:transparent;border:2px dashed var(--accent);color:var(--accent);padding:20px;font-size:1rem;font-weight:500;transition:all .2s}.btn-outline-dashed:hover{background:#4a9eff1a;border-color:var(--accent-hover)}.bracket-group{position:relative}.bracket-help-link{display:inline-block;margin-top:8px;color:var(--accent);font-size:.85rem;text-decoration:none;cursor:pointer}.bracket-help-link:hover{text-decoration:underline}.bracket-info-popup{position:absolute;top:100%;left:0;right:0;z-index:100;margin-top:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006;animation:popupFadeIn .2s ease}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bracket-info-content{position:relative;padding:20px}.bracket-info-content h4{color:var(--accent);font-size:1rem;margin-bottom:12px}.popup-close{position:absolute;top:10px;right:10px;width:28px;height:28px;background:transparent;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;line-height:1}.popup-close:hover{color:var(--text-primary)}.popup-intro{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.bracket-info-content ul{list-style:none;padding:0;margin:0 0 12px}.bracket-info-content li{padding:8px 0;border-bottom:1px solid var(--border);font-size:.9rem;color:var(--text-primary)}.bracket-info-content li:last-child{border-bottom:none}.popup-note{font-size:.8rem;color:var(--text-muted);margin-top:12px;padding:10px;background:#4a9eff1a;border-radius:var(--radius-sm)}.hint.warning{color:var(--warning);background:#ff98001a;padding:10px;border-radius:var(--radius-sm);margin-top:8px}.config-type-badge{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-primary);border-radius:var(--radius-md);margin-bottom:20px;border-left:3px solid var(--accent)}.config-type-badge .type-label{color:var(--text-secondary);font-size:.9rem}.config-type-badge .type-value{color:var(--accent);font-weight:600;font-size:1rem}.scheme-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.scheme-option{background:var(--bg-primary);border:2px solid var(--border);border-radius:var(--radius-md);padding:16px 12px;text-align:center;cursor:pointer;transition:all .2s ease}.scheme-option:hover{border-color:var(--accent);background:#4a9eff0d}.scheme-option.selected{border-color:var(--accent);background:#4a9eff26;box-shadow:0 0 12px #4a9eff33}.scheme-option .scheme-icon{font-size:1.8rem;margin-bottom:8px}.scheme-option .scheme-label{font-weight:600;font-size:.9rem;color:var(--text-primary);margin-bottom:4px}.scheme-option.selected .scheme-label{color:var(--accent)}.scheme-option .scheme-desc{font-size:.75rem;color:var(--text-muted);line-height:1.3}.cage-selector{display:flex;flex-direction:column;gap:10px}.cage-option{display:flex;align-items:center;gap:15px;background:var(--bg-primary);border:2px solid var(--border);border-radius:var(--radius-md);padding:16px;cursor:pointer;transition:all .2s ease}.cage-option:hover{border-color:var(--accent);background:#4a9eff0d}.cage-option.selected{border-color:var(--accent);background:#4a9eff26;box-shadow:0 0 12px #4a9eff33}.cage-option .cage-icon{font-size:1.5rem;min-width:40px;text-align:center}.cage-option .cage-content{flex:1}.cage-option .cage-label{font-weight:600;font-size:.95rem;color:var(--text-primary);margin-bottom:3px}.cage-option.selected .cage-label{color:var(--accent)}.cage-option .cage-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}@media(max-width:900px){.split-layout{flex-direction:column}.visualization-panel{height:40vh;min-height:250px}.config-panel-wrapper{width:100%;max-width:100%;flex:1}.choice-grid-fullscreen.cols-2,.choice-grid-fullscreen.cols-3{grid-template-columns:1fr}.viewer3d-controls{top:5px;right:5px}.viewer3d-visibility-btn{padding:6px 10px;font-size:11px}.scheme-selector{grid-template-columns:1fr}.scheme-option{display:flex;align-items:center;text-align:left;gap:12px;padding:14px}.scheme-option .scheme-icon{font-size:1.5rem;margin-bottom:0;min-width:40px;text-align:center}.scheme-option .scheme-label{margin-bottom:2px}}.obstacle-above-wall-warning{display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;margin-top:12px;animation:fadeIn .3s ease}.obstacle-warning-icon{flex-shrink:0;width:24px;height:24px;color:#d97706}.obstacle-warning-icon svg{width:100%;height:100%}.obstacle-warning-text{color:#92400e;font-weight:500;font-size:14px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.obstacle-type-card--wall-point:hover .wall-point-svg rect:nth-child(2){fill:#22c55e;fill-opacity:.6}.obstacle-badge.type-wall-point{background:#22c55e;color:#fff}
