:root{--p-bg-dark:#0f172a;--p-bg-surface:#1e293b;--p-bg-surface-elevated:#334155;--p-border:#334155;--p-border-light:#475569;--p-text-main:#f8fafc;--p-text-muted:#94a3b8;--p-accent:#ff4d26;--p-accent-hover:#e03e18;--p-accent-glow:#ff4d2640;--p-pipe-supply:#ef4444;--p-pipe-return:#3b82f6;--p-floor-heating:#f59e0b;--p-success:#22c55e;--p-canvas-bg:#0b1120;--p-grid-major:#ffffff14;--p-grid-minor:#ffffff08;--p-radius:10px;--p-radius-sm:6px;--p-shadow:0 10px 25px -5px #0006, 0 8px 10px -6px #0000004d}body.light-theme{--p-bg-dark:#f1f5f9;--p-bg-surface:#fff;--p-bg-surface-elevated:#e2e8f0;--p-border:#cbd5e1;--p-border-light:#e2e8f0;--p-text-main:#0f172a;--p-text-muted:#64748b;--p-canvas-bg:#f8fafc;--p-grid-major:#00000014;--p-grid-minor:#00000008;--p-shadow:0 10px 25px -5px #00000014, 0 8px 10px -6px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body.planner-body{background-color:var(--p-bg-dark);color:var(--p-text-main);-webkit-user-select:none;user-select:none;flex-direction:column;width:100vw;height:100vh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden}.planner-header{background:var(--p-bg-dark);border-bottom:1px solid var(--p-border);z-index:40;flex-shrink:0;align-items:center;height:42px;padding:0;display:flex}.ribbon-top-bar{background:var(--p-bg-dark);justify-content:space-between;align-items:center;width:100%;height:42px;padding:0 14px;display:flex}.planner-brand{align-items:center;gap:8px;display:flex}.ribbon-quick-actions{align-items:center;gap:6px;display:flex}.planner-center-col{background-color:var(--p-canvas-bg);flex-direction:column;flex:1;min-width:0;height:100%;display:flex;position:relative;overflow:hidden}.paint-ribbon-bar{background:var(--p-bg-surface);border-bottom:1px solid var(--p-border);z-index:25;flex-shrink:0;align-items:stretch;gap:14px;height:115px;min-height:115px;max-height:115px;padding:8px 16px;display:flex;overflow:auto hidden}.paint-ribbon-bar::-webkit-scrollbar{height:4px}.paint-ribbon-bar::-webkit-scrollbar-thumb{background:var(--p-border);border-radius:4px}.ribbon-group{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;height:100%;padding:0 4px;display:flex}.ribbon-group-content{flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.ribbon-group-title{color:var(--p-text-muted);text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;margin-top:2px;font-size:10.5px;font-weight:700}.ribbon-divider{background:var(--p-border);flex-shrink:0;width:1px;margin:6px 4px}.paint-ribbon-bar .ribbon-btn{width:66px!important;height:72px!important;min-height:unset!important;max-height:unset!important;border:1px solid var(--p-border)!important;background:var(--p-bg-surface-elevated)!important;color:var(--p-text-main)!important;cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important;box-sizing:border-box!important;border-radius:8px!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:5px!important;padding:6px 4px!important;transition:all .15s!important;display:flex!important}.paint-ribbon-bar .ribbon-btn svg{width:24px;height:24px;stroke:var(--p-text-main);transition:stroke .15s,transform .15s}.paint-ribbon-bar .ribbon-btn:hover{background:var(--p-border-light)!important;border-color:var(--p-accent)!important}.paint-ribbon-bar .ribbon-btn:hover svg{stroke:var(--p-accent);transform:scale(1.08)}.paint-ribbon-bar .ribbon-btn.is-active{background:var(--p-accent-glow)!important;border-color:var(--p-accent)!important;color:var(--p-accent)!important;box-shadow:0 0 0 1.5px var(--p-accent)!important}.paint-ribbon-bar .ribbon-btn.is-active svg{stroke:var(--p-accent)}.paint-ribbon-bar .ribbon-btn-lbl{white-space:nowrap;font-size:11px;font-weight:700}.paint-ribbon-bar .ribbon-icon-btn{width:38px!important;min-width:38px!important;height:38px!important;min-height:unset!important;border:1px solid var(--p-border)!important;background:var(--p-bg-surface-elevated)!important;max-height:38px!important;color:var(--p-text-main)!important;cursor:pointer!important;box-sizing:border-box!important;border-radius:7px!important;flex-direction:row!important;justify-content:center!important;align-items:center!important;padding:0!important;font-size:19px!important;line-height:1!important;transition:all .12s!important;display:flex!important}.paint-ribbon-bar .ribbon-icon-btn svg{stroke:var(--p-text-main);fill:none;pointer-events:none;transition:all .12s;width:19px!important;height:19px!important}.paint-ribbon-bar .ribbon-icon-btn:hover svg{stroke:var(--p-accent)}.paint-ribbon-bar .ribbon-icon-btn.is-active{transform:scale(1.08);background:var(--p-accent)!important;border-color:var(--p-accent)!important;box-shadow:0 0 10px var(--p-accent-glow)!important}.paint-ribbon-bar .ribbon-icon-btn.is-active svg{stroke:#fff!important}.ribbon-tools-grid{grid-template-rows:repeat(2,38px);grid-template-columns:repeat(3,38px);justify-content:center;align-items:center;gap:5px;display:grid}.ribbon-shapes-grid{grid-template-rows:repeat(2,38px);grid-template-columns:repeat(4,38px);justify-content:center;align-items:center;gap:5px;display:grid}.ribbon-brushes-wrap{align-items:center;gap:8px;height:72px;display:flex}.ribbon-brushes-col{gap:5px;display:flex}.ribbon-size-selector{flex-direction:column;justify-content:center;gap:3px;display:flex}.ribbon-size-lbl{color:var(--p-text-muted);font-size:10px;font-weight:700}.ribbon-select{border:1px solid var(--p-border);background:var(--p-bg-surface-elevated);color:var(--p-text-main);cursor:pointer;border-radius:6px;outline:none;padding:5px 8px;font-size:11.5px;font-weight:700}.ribbon-colors-wrap{align-items:center;gap:12px;height:72px;display:flex}.color-slots-col{flex-direction:column;gap:5px;display:flex}.color-slot{border:1px solid var(--p-border);background:var(--p-bg-surface-elevated);cursor:pointer;box-sizing:border-box;border-radius:6px;align-items:center;gap:6px;height:33px;padding:4px 8px;transition:all .12s;display:flex}.color-slot:hover{border-color:var(--p-border-light)}.color-slot.is-active{border-color:var(--p-accent);background:var(--p-accent-glow);box-shadow:0 0 0 1.5px var(--p-accent)}.color-slot-preview{border:1px solid #0000004d;border-radius:4px;flex-shrink:0;width:22px;height:22px}.color-slot-label{color:var(--p-text-main);white-space:nowrap;font-size:10.5px;font-weight:700}.color-swatches-grid{grid-template-rows:repeat(2,22px);grid-template-columns:repeat(10,22px);align-items:center;gap:4px;display:grid}.color-swatch{cursor:pointer;border:1px solid #ffffff40;border-radius:4px;width:22px;height:22px;padding:0;transition:transform .12s,border-color .12s}.color-swatch:hover{z-index:5;transform:scale(1.3)}.color-swatch.is-selected{outline:2px solid var(--p-accent);outline-offset:1.5px}.custom-color-picker-wrap{align-items:center;height:100%;display:flex}.paint-ribbon-bar .custom-color-btn{width:60px!important;height:72px!important;min-height:unset!important;max-height:unset!important;border:1px solid var(--p-border)!important;background:var(--p-bg-surface-elevated)!important;cursor:pointer!important;border-radius:8px!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important;padding:6px 4px!important;transition:all .15s!important;display:flex!important}.paint-ribbon-bar .custom-color-btn:hover{border-color:var(--p-accent)!important;background:var(--p-border-light)!important}.p-btn{border-radius:var(--p-radius-sm);border:1px solid var(--p-border);background:var(--p-bg-surface-elevated);color:var(--p-text-main);cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.p-btn:hover{border-color:var(--p-border-light);background:var(--p-border-light)}.p-btn.p-btn-primary{background:var(--p-accent);color:#fff;border-color:var(--p-accent)}.p-btn.p-btn-primary:hover{background:var(--p-accent-hover);border-color:var(--p-accent-hover)}.p-btn.p-btn-success{color:#fff;background:#16a34a;border-color:#16a34a}.p-btn.p-btn-success:hover{background:#15803d}.p-btn.p-btn-sm{padding:5px 8px;font-size:12px}.planner-main{flex:1;display:flex;position:relative;overflow:hidden}.planner-toolbox{background:var(--p-bg-surface);border-right:1px solid var(--p-border);z-index:30;scroll-behavior:smooth;flex-direction:column;width:350px;display:flex;overflow-y:auto}.planner-toolbox::-webkit-scrollbar{width:5px}.planner-toolbox::-webkit-scrollbar-thumb{background:var(--p-border);border-radius:4px}.planner-toolbox::-webkit-scrollbar-thumb:hover{background:var(--p-border-light)}.toolbox-section{border-bottom:1px solid var(--p-border);padding:12px 14px}.toolbox-heading{text-transform:uppercase;color:var(--p-text-muted);letter-spacing:.5px;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:11px;font-weight:800;display:flex}.tool-group{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.planner-toolbox .tool-btn{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);min-height:60px;color:var(--p-text-main);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 4px 7px;font-size:11px;font-weight:600;line-height:1.2;transition:all .18s;display:flex}.planner-toolbox .tool-btn svg{width:22px;height:22px;stroke:var(--p-text-muted);fill:none;flex-shrink:0;transition:stroke .18s,transform .18s}.planner-toolbox .tool-btn:hover{border-color:var(--p-accent);color:var(--p-accent);background:var(--p-accent-glow)}.planner-toolbox .tool-btn:hover svg{stroke:var(--p-accent);transform:scale(1.08)}.planner-toolbox .tool-btn.is-active{background:var(--p-accent-glow);border-color:var(--p-accent);color:var(--p-accent);box-shadow:0 0 0 1.5px var(--p-accent);font-weight:700}.planner-toolbox .tool-btn.is-active svg{stroke:var(--p-accent)}.setting-row{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.setting-label{color:var(--p-text-muted);justify-content:space-between;font-size:12px;font-weight:600;display:flex}.setting-input,.setting-select{background:var(--p-bg-dark);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);color:var(--p-text-main);outline:none;width:100%;padding:7px 10px;font-size:13px}.setting-input:focus,.setting-select:focus{border-color:var(--p-accent)}.planner-viewport{background-color:var(--p-canvas-bg);cursor:crosshair;flex:1;transition:box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.planner-viewport.is-dragover{box-shadow:inset 0 0 0 3px var(--p-accent)}#planner-canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.canvas-empty-state{-webkit-backdrop-filter:blur(12px);text-align:center;z-index:15;pointer-events:none;background:#1e293be0;border:1.5px dashed #ff4d2666;border-radius:16px;flex-direction:column;align-items:center;width:90%;max-width:440px;padding:32px 36px;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 40px -15px #00000080}.canvas-empty-state button,.canvas-empty-state .btn-primary,.canvas-empty-state .btn-secondary,.canvas-empty-state a{pointer-events:auto}body.light-theme .canvas-empty-state{background:#ffffffeb;border-color:#ff4d2680;box-shadow:0 20px 40px -15px #0000001f}.canvas-empty-state.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-46%)scale(.96);display:none!important}.empty-state-icon{color:var(--p-accent);margin-bottom:12px;animation:2.5s ease-in-out infinite pulseIcon}@keyframes pulseIcon{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.empty-state-title{color:var(--p-text-main);margin-bottom:16px;font-size:17px;font-weight:800}.empty-state-shortcuts{flex-direction:column;gap:10px;width:100%;margin-bottom:16px;display:flex}.shortcut-pill{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);color:var(--p-text-muted);justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}kbd{background:var(--p-bg-dark);border:1px solid var(--p-border-light);box-shadow:0 2px 0 var(--p-border);color:var(--p-accent);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:11.5px;font-weight:800;display:inline-block}.canvas-floating-controls{z-index:20;background:var(--p-bg-surface);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);box-shadow:var(--p-shadow);flex-direction:column;gap:6px;padding:4px;display:flex;position:absolute;top:14px;right:14px}.canvas-icon-btn{width:32px;height:32px;color:var(--p-text-main);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.canvas-icon-btn:hover{background:var(--p-bg-surface-elevated);color:var(--p-accent)}.canvas-icon-btn.is-active{background:var(--p-accent-glow);color:var(--p-accent)}.canvas-banner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--p-accent);color:#fff;z-index:25;pointer-events:auto;background:#0f172ae0;border-radius:20px;align-items:center;gap:10px;padding:8px 16px;font-size:13px;font-weight:600;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 15px #0000004d}.planner-sidebar-right{background:var(--p-bg-surface);border-left:1px solid var(--p-border);z-index:30;flex-direction:column;width:360px;display:flex;overflow-y:auto}.right-sidebar-nav{background:var(--p-bg-dark);border-bottom:1px solid var(--p-border);z-index:25;display:flex;position:sticky;top:0}.right-nav-btn{color:var(--p-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:5px;padding:10px 8px;font-size:11.5px;font-weight:700;transition:all .15s;display:flex}.right-nav-btn:hover{color:var(--p-text-main);background:var(--p-bg-surface-elevated)}.right-nav-btn.is-active{color:var(--p-accent);border-bottom-color:var(--p-accent);background:var(--p-bg-surface)}.right-tab-pane{flex-direction:column;flex:1;display:none}.right-tab-pane.is-active{display:flex}.building-summary-grid{border-bottom:1px solid var(--p-border);background:var(--p-bg-surface);grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 14px;display:grid}.ceiling-height-control-card{background:var(--p-bg-surface-elevated);border-bottom:1px solid var(--p-border);padding:14px}.ceiling-header-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ceiling-title{color:var(--p-text-main);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:800}.ceiling-val-badge{color:#fff;background:var(--p-accent);border-radius:6px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:900}.ceiling-slider-wrap{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.ceiling-range-input{background:var(--p-border);cursor:pointer;width:100%;height:6px;accent-color:var(--p-accent);border-radius:3px;outline:none}.ceiling-range-marks{color:var(--p-text-muted);justify-content:space-between;font-size:9.5px;font-weight:600;display:flex}.ceiling-presets-row{gap:5px;display:flex;overflow-x:auto}.preset-pill{color:var(--p-text-muted);background:var(--p-bg-surface);border:1px solid var(--p-border);cursor:pointer;white-space:nowrap;border-radius:12px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700;transition:all .15s}.preset-pill:hover{color:var(--p-accent);border-color:var(--p-accent)}.preset-pill.is-active{color:#fff;background:var(--p-accent);border-color:var(--p-accent)}.rooms-actions-bar{border-bottom:1px solid var(--p-border);gap:8px;padding:10px 14px;display:flex}.rooms-actions-bar .p-btn{flex:1;justify-content:center;font-size:11.5px}.explication-header{text-transform:uppercase;color:var(--p-text-muted);letter-spacing:.5px;justify-content:space-between;align-items:center;padding:10px 14px 6px;font-size:11px;font-weight:800;display:flex}.rooms-explication-list{flex-direction:column;gap:8px;padding:8px 14px 18px;display:flex;overflow-y:auto}.room-explication-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);flex-direction:column;gap:8px;padding:10px 12px;transition:all .15s;display:flex}.room-explication-card:hover{border-color:var(--p-border-light)}.room-explication-card.is-selected{background:#f59e0b14;border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b}.room-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.room-name-wrap{flex:1;align-items:center;gap:6px;display:flex}.room-name-input{color:var(--p-text-main);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;padding:2px 6px;font-family:inherit;font-size:12.5px;font-weight:700}.room-name-input:hover{border-color:var(--p-border);background:var(--p-bg-surface)}.room-name-input:focus{border-color:var(--p-accent);background:var(--p-bg-surface);box-shadow:0 0 0 2px var(--p-accent-glow)}.room-card-actions{align-items:center;gap:4px;display:flex}.room-icon-btn{color:var(--p-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px;transition:color .15s}.room-icon-btn:hover{color:#ef4444;background:#ef44441a}.room-card-stats{background:var(--p-bg-surface);border:1px solid var(--p-border);border-radius:6px;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 8px;display:grid}.room-stat-item{flex-direction:column;display:flex}.room-stat-lbl{color:var(--p-text-muted);font-size:9.5px;font-weight:600}.room-stat-val{color:var(--p-text-main);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:800}.room-stat-val.highlight{color:var(--p-accent)}.room-height-input-mini{border:1px solid var(--p-border);width:48px;color:var(--p-text-main);text-align:center;background:0 0;border-radius:3px;outline:none;padding:1px 3px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.room-height-input-mini:focus{border-color:var(--p-accent)}.spec-header{border-bottom:1px solid var(--p-border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.spec-title{text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:800}.spec-metrics-grid{border-bottom:1px solid var(--p-border);grid-template-columns:repeat(2,1fr);gap:8px;padding:14px;display:grid}.metric-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);padding:10px}.metric-card-label{color:var(--p-text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.metric-card-val{color:var(--p-accent);font-size:16px;font-weight:800}.spec-items-list{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow-y:auto}.spec-item-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.spec-item-info{flex:1}.spec-item-name{color:var(--p-text-main);margin-bottom:2px;font-size:12.5px;font-weight:700}.spec-item-sub{color:var(--p-text-muted);font-size:11px}.spec-item-price{color:var(--p-text-main);white-space:nowrap;font-size:13px;font-weight:800}.spec-footer{border-top:1px solid var(--p-border);background:var(--p-bg-surface);flex-direction:column;gap:10px;padding:16px;display:flex}.spec-total-row{justify-content:space-between;align-items:baseline;display:flex}.spec-total-label{color:var(--p-text-muted);font-size:13px;font-weight:700}.spec-total-val{color:var(--p-accent);font-size:20px;font-weight:900}.planner-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000bf;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.planner-modal-overlay.is-open{display:flex}.planner-modal{background:var(--p-bg-surface);border:1px solid var(--p-border);border-radius:var(--p-radius);width:90%;max-width:480px;box-shadow:var(--p-shadow);padding:24px}.planner-modal-title{margin-bottom:12px;font-size:18px;font-weight:800}.planner-modal-desc{color:var(--p-text-muted);margin-bottom:20px;font-size:13.5px;line-height:1.5}.planner-modal-actions{justify-content:flex-end;gap:10px;display:flex}.floating-item-toolbar{background:var(--p-bg-surface);border:1px solid var(--p-border-light);z-index:35;pointer-events:auto;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:30px;align-items:center;gap:6px;padding:5px 8px;display:none;position:absolute;transform:translate(-50%,-100%)translateY(-14px);box-shadow:0 10px 28px #0006}.floating-item-toolbar.is-visible{display:flex}.floating-item-toolbar .item-tool-btn{background:var(--p-bg-surface-elevated);color:var(--p-text-main);border:1px solid var(--p-border);cursor:pointer;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;transition:all .15s;display:inline-flex}.floating-item-toolbar .item-tool-btn:hover{background:var(--p-border-light);border-color:var(--p-text-muted)}.floating-item-toolbar .item-tool-btn.btn-delete{color:#ef4444}.floating-item-toolbar .item-tool-btn.btn-delete:hover{background:#ef444426;border-color:#ef4444}.floating-item-toolbar .item-stepper{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:20px;align-items:center;gap:2px;padding:2px 4px;display:inline-flex}.floating-item-toolbar .item-step-btn{width:22px;height:22px;color:var(--p-text-main);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:all .15s;display:flex}.floating-item-toolbar .item-step-btn:hover{background:var(--p-border-light)}.floating-item-toolbar .item-step-val{color:var(--p-text-main);text-align:center;min-width:52px;padding:0 4px;font-size:11.5px;font-weight:700}.hotkey-cheatsheet{flex-direction:column;gap:7px;font-size:12px;display:flex}.hotkey-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.hotkey-label{color:var(--p-text-muted);font-size:11.5px}.hotkey-keys{align-items:center;gap:3px;display:inline-flex}.hotkey-kbd{color:var(--p-text-main);background:var(--p-bg-surface-elevated);border:1px solid var(--p-border-light);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:10.5px;font-weight:700;line-height:1;display:inline-block;box-shadow:0 1px 2px #0003}@media (width<=1024px){.planner-toolbox{width:230px}.planner-sidebar-right{width:300px}}.cad-logo-badge{color:#fff;letter-spacing:.5px;background:#ff4d26;border-radius:4px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:900}.cad-title-wrap{flex-direction:column;display:flex}.cad-app-name{font-size:14px;font-weight:800;line-height:1.2}.cad-app-sub{color:var(--p-text-muted);font-size:10.5px;font-weight:500}.cad-project-info{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:6px;align-items:center;gap:8px;padding:4px 10px;display:flex}.cad-project-tag{color:var(--p-text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.cad-project-name{color:var(--p-text-main);background:0 0;border:none;outline:none;width:260px;font-family:inherit;font-size:12.5px;font-weight:600}.cad-project-name:focus{background:var(--p-bg-surface);border-radius:4px;padding:2px 4px}.cad-scale-badge{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d;border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700}.cad-divider-v{background:var(--p-border);width:1px;height:20px;margin:0 2px}.cad-layer-list{flex-direction:column;gap:4px;display:flex}.cad-layer-item{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);cursor:pointer;border-radius:5px;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;font-weight:500;transition:all .15s;display:flex}.cad-layer-item:hover{border-color:var(--p-border-light)}.cad-layer-item.is-active{border-color:var(--p-accent);background:#ff4d261a}.layer-toggle-vis,.layer-toggle-lock{cursor:pointer;opacity:.8;background:0 0;border:none;border-radius:3px;padding:1px 3px;font-size:11px}.layer-toggle-vis:hover,.layer-toggle-lock:hover{opacity:1;background:var(--p-border-light)}.layer-color-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cad-dynamic-input-hud{border:1px solid var(--p-accent);z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172aeb;border-radius:24px;align-items:center;gap:8px;padding:6px 14px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080,0 0 15px #ff4d264d}.hud-label{color:var(--p-text-muted);font-size:12px;font-weight:700}.hud-field{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border-light);color:#22c55e;text-align:center;border-radius:12px;outline:none;width:90px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.hud-field:focus{border-color:#22c55e;box-shadow:0 0 0 2px #22c55e40}.hud-unit{color:var(--p-text-muted);font-size:11px;font-weight:600}.cad-status-bar{background:var(--p-bg-surface);border-top:1px solid var(--p-border);z-index:25;height:26px;color:var(--p-text-muted);align-items:center;gap:16px;padding:0 12px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.cad-status-item{align-items:center;gap:4px;display:flex}.status-key{color:var(--p-text-muted);font-weight:700}.status-val{color:var(--p-text-main);font-weight:600}.spec-filter-chips{border-bottom:1px solid var(--p-border);background:var(--p-bg-surface);gap:4px;padding:8px 14px;display:flex;overflow-x:auto}.spec-chip{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);color:var(--p-text-muted);cursor:pointer;white-space:nowrap;border-radius:12px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .15s}.spec-chip:hover{color:var(--p-text-main);border-color:var(--p-border-light)}.spec-chip.is-active{background:var(--p-accent-glow);border-color:var(--p-accent);color:var(--p-accent);font-weight:700}.thermal-balance-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);margin:10px 14px 4px;padding:10px 12px}.thermal-title-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.thermal-title{color:var(--p-text-main);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.thermal-badge{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.thermal-badge.is-deficit{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b4d}.thermal-grid{grid-template-columns:1fr 1fr;gap:6px;font-size:11px;display:grid}.thermal-metric{background:var(--p-bg-surface);border:1px solid var(--p-border);border-radius:4px;padding:6px 8px}.thermal-metric-label{color:var(--p-text-muted);font-size:10px}.thermal-metric-val{color:var(--p-text-main);margin-top:2px;font-weight:700}.thermal-btn-quick{background:var(--p-accent-glow);width:100%;color:var(--p-accent);border:1px solid var(--p-accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:5px 8px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.thermal-btn-quick:hover{background:var(--p-accent);color:#fff}.catalog-picker-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;transition:all .15s;display:flex}.catalog-picker-card:hover{border-color:var(--p-accent);background:var(--p-accent-glow)}.catalog-picker-card.is-selected{border-color:var(--p-accent);box-shadow:0 0 0 1px var(--p-accent)}.catalog-picker-img{object-fit:contain;background:#fff;border-radius:4px;flex-shrink:0;width:50px;height:50px;padding:2px}.catalog-picker-info{flex:1;min-width:0}.catalog-picker-name{color:var(--p-text-main);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.catalog-picker-sub{color:var(--p-text-muted);margin-top:2px;font-size:11px}.catalog-picker-price{color:var(--p-accent);text-align:right;flex-shrink:0;font-size:13px;font-weight:800}.paint-layers-panel{background:var(--p-bg-surface);border-left:1px solid var(--p-border);z-index:20;flex-direction:column;flex-shrink:0;width:260px;transition:all .2s;display:flex;overflow-y:auto}.paint-layers-panel:not(.is-open){display:none}.paint-layers-header{background:var(--p-bg-surface-elevated);border-bottom:1px solid var(--p-border);z-index:10;justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.paint-layers-title{color:var(--p-text-main);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:11.5px;font-weight:800;display:flex}.paint-layers-add-btn{border:1px solid var(--p-border);background:var(--p-bg-surface);width:24px;height:24px;color:var(--p-text-main);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;transition:all .15s;display:flex}.paint-layers-add-btn:hover{background:var(--p-accent);color:#fff;border-color:var(--p-accent)}.paint-layers-list{flex-direction:column;gap:6px;padding:8px;display:flex}.paint-layer-card{background:var(--p-bg-surface-elevated);border:1px solid var(--p-border);border-radius:var(--p-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;padding:8px 10px;transition:all .15s;display:flex}.paint-layer-card:hover{border-color:var(--p-border-hover);background:var(--p-bg-surface-hover)}.paint-layer-card.is-active{border-color:var(--p-accent);background:var(--p-accent-glow);box-shadow:0 0 0 1px var(--p-accent)}.paint-layer-card.is-hidden{opacity:.45;filter:grayscale(.85)}.paint-layer-card-top{align-items:center;gap:8px;display:flex}.paint-layer-expand-btn{width:18px;height:18px;color:var(--p-text-muted);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;transition:transform .15s,color .15s;display:flex}.paint-layer-card.is-expanded .paint-layer-expand-btn{color:var(--p-accent);transform:rotate(90deg)}.paint-layer-thumb{background:#ffffff14;border:1px solid #ffffff1f;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:flex}.paint-layer-info{flex-direction:column;flex:1;min-width:0;display:flex}.paint-layer-name{color:var(--p-text-main);word-break:break-word;font-size:12px;font-weight:700;line-height:1.3}.paint-layer-count{color:var(--p-text-muted);margin-top:1px;font-size:10.5px;font-weight:600}.paint-layer-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.paint-layer-btn{width:22px;height:22px;color:var(--p-text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:11px;transition:all .12s;display:flex}.paint-layer-btn:hover{color:var(--p-text-main);background:#ffffff1f}.paint-layer-btn.is-muted{opacity:.4}.paint-layer-items-tree{border-top:1px dashed #ffffff1a;border-left:2px solid #3b82f666;flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;padding-left:8px;display:none}.paint-layer-card.is-expanded .paint-layer-items-tree{display:flex}.paint-layer-item-row{color:var(--p-text-main);cursor:pointer;background:#00000026;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:5px 8px;font-size:11px;transition:all .12s;display:flex}.paint-layer-item-row:hover{background:var(--p-bg-surface-hover);border-color:var(--p-border)}.paint-layer-item-row.is-selected{color:#60a5fa;background:#3b82f633;border-color:#3b82f6;font-weight:700}.paint-layer-item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.paint-layer-item-del-btn{opacity:0;color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;transition:opacity .15s;display:flex}.paint-layer-item-row:hover .paint-layer-item-del-btn{opacity:.8}.paint-layer-item-del-btn:hover{background:#ef444426;opacity:1!important}.paint-layer-empty-notice{color:var(--p-text-muted);padding:4px 6px;font-size:10.5px;font-style:italic}
