*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#0f0f1a;color:#e0e0e0}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{background:#1a1a2e;padding:.75rem 1.5rem;border-bottom:1px solid #333;display:flex;align-items:baseline;gap:1rem}.app-header h1{font-size:1.5rem;font-weight:600;color:#4a90d9}.app-header p{font-size:.875rem;color:#888}.app-main{display:flex;flex:1;overflow:hidden}.sidebar{width:300px;background:#16213e;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.left-sidebar{border-right:1px solid #333}.right-sidebar{border-left:1px solid #333}.viewport{flex:1;position:relative}.viewport-main{width:100%;height:100%;position:relative}.viewport.with-design-panel{display:flex;flex-direction:column}.viewport.with-design-panel .viewport-main{flex:1;min-height:0}.viewport-container{width:100%;height:100%;position:relative}.panel{background:#1a1a2e;border-radius:8px;overflow:visible}.panel-title{background:#252545;padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:#4a90d9;border-bottom:1px solid #333}.panel-content{padding:1rem}.collapsible-section{background:#1a1a2e;border-radius:8px;overflow:hidden;margin-bottom:.5rem}.collapsible-section:last-child{margin-bottom:0}.collapsible-header{display:flex;align-items:center;width:100%;padding:.75rem 1rem;background:#252545;border:none;cursor:pointer;text-align:left;font-size:.875rem;font-weight:600;color:#4a90d9;transition:background-color .15s ease}.collapsible-header:hover{background:#2a2a55}.collapsible-indicator{font-size:.65rem;margin-right:.5rem;color:#666;width:.75rem}.collapsible-title{flex:1}.collapsible-content{padding:1rem;border-top:1px solid #333}.collapsible-section.collapsed .collapsible-header{border-radius:8px}.left-sidebar-content{display:flex;flex-direction:column;gap:.5rem}.left-sidebar-content .collapsible-content{padding:.75rem}.input-with-unit{display:flex;align-items:center;gap:.25rem}.input-with-unit input{flex:1;min-width:0}.input-with-unit .unit{font-size:.7rem;color:#666;width:1.5rem}.form-grid.compact{gap:.5rem}.form-grid.compact label span{font-size:.7rem}.section-info{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #333;font-size:.75rem}.section-info .info-label{color:#666}.section-info .info-value{color:#4a90d9;font-weight:500}.configure-btn{width:100%;margin-top:.75rem;padding:.5rem .75rem;background:#2a2a4a;border:1px solid #444;border-radius:4px;color:#ccc;font-size:.75rem;cursor:pointer;transition:all .15s ease}.configure-btn:hover{background:#3a3a5a;border-color:#4a90d9;color:#fff}.hint{font-size:.7rem;color:#666;margin-top:.5rem;line-height:1.4}.panel-toggle-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;background:#1e1e3280;border:1px solid rgba(68,68,68,.5);border-radius:6px;cursor:pointer;transition:all .15s ease;min-width:50px;opacity:.5}.panel-toggle-btn:hover{background:#282846f2;border-color:#4a90d9;transform:scale(1.05);opacity:1}.panel-toggle-btn.solid{border-color:#4a90d9}.panel-toggle-btn.solid .panel-toggle-icon{color:#4a90d9}.panel-toggle-btn.open{border-color:#666}.panel-toggle-btn.open .panel-toggle-icon{color:#888}.panel-toggle-icon{font-size:16px;line-height:1}.panel-toggle-label{font-size:9px;color:#999;text-transform:uppercase;letter-spacing:.5px}.panel-toggle-btn:hover .panel-toggle-label{color:#ccc}.form-grid{display:flex;flex-direction:column;gap:.75rem}.form-grid label{display:flex;flex-direction:column;gap:.25rem}.form-grid label span{font-size:.75rem;color:#888}.form-grid input{background:#252545;border:1px solid #333;border-radius:4px;padding:.5rem;color:#e0e0e0;font-size:.875rem}.form-grid input:focus{outline:none;border-color:#4a90d9}.face-grid{display:flex;flex-direction:column;gap:.5rem;align-items:center}.face-row{display:flex;gap:.5rem}.face-spacer{width:70px;height:50px}.face-button{width:70px;height:50px;border:2px solid #333;border-radius:6px;background:#252545;color:#e0e0e0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;font-size:.75rem;font-weight:500;transition:all .2s}.face-button:hover{border-color:#4a90d9}.face-button.solid{background:#3498db30;border-color:#3498db}.face-button.open{background:#e74c3c20;border-color:#e74c3c}.face-status{font-size:.625rem;opacity:.7}.subdivision-controls{display:flex;flex-direction:column;gap:1rem}.control-section{display:flex;flex-direction:column;gap:.5rem}.control-section h4{font-size:.75rem;color:#888;font-weight:500}.button-row{display:flex;gap:.5rem}.button-row button{flex:1;padding:.5rem;background:#252545;border:1px solid #333;border-radius:4px;color:#e0e0e0;cursor:pointer;font-size:.75rem;transition:all .2s}.button-row button:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.button-row button:disabled{opacity:.4;cursor:not-allowed}.axis-hint{font-size:.625rem;color:#e67e22;margin-top:.5rem;text-align:center}.distribute-row{display:flex;align-items:center;gap:.5rem}.distribute-row label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#888}.distribute-row input{width:60px;background:#252545;border:1px solid #333;border-radius:4px;padding:.35rem .5rem;color:#e0e0e0;font-size:.875rem}.subdivision-list{list-style:none;display:flex;flex-direction:column;gap:.25rem}.subdivision-list li{display:flex;justify-content:space-between;align-items:center;background:#252545;padding:.35rem .5rem;border-radius:4px;font-size:.75rem}.remove-btn{background:#e74c3c;border:none;color:#fff;width:20px;height:20px;border-radius:3px;cursor:pointer;font-size:.625rem}.reset-btn{width:100%;padding:.5rem;background:#e74c3c30;border:1px solid #e74c3c;border-radius:4px;color:#e74c3c;cursor:pointer;font-size:.75rem;margin-top:.5rem}.reset-btn:hover{background:#e74c3c;color:#fff}.purge-btn{width:100%;padding:.5rem;background:#e67e2230;border:1px solid #e67e22;border-radius:4px;color:#e67e22;cursor:pointer;font-size:.75rem;margin-top:.5rem}.purge-btn:hover{background:#e67e22;color:#fff}.create-assembly-form{display:flex;flex-direction:column;gap:.75rem;background:#252545;padding:.75rem;border-radius:6px}.create-assembly-form .form-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.create-assembly-form label{font-size:.75rem;color:#888}.create-assembly-form input[type=number]{width:70px;background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:.35rem .5rem;color:#e0e0e0;font-size:.75rem;text-align:right}.create-assembly-form select{background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:.35rem .5rem;color:#e0e0e0;font-size:.75rem;flex:1}.face-offsets-section{border-top:1px solid #333;padding-top:.75rem;margin-top:.25rem}.face-offsets-section .section-label{display:block;font-size:.75rem;color:#888;margin-bottom:.25rem}.face-offsets-section .offset-hint{font-size:.625rem;color:#666;margin-bottom:.5rem}.offset-row{display:flex;align-items:center;justify-content:space-between}.offset-input-group{display:flex;align-items:center;gap:.25rem}.offset-btn{width:24px;height:24px;background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;cursor:pointer;font-size:.875rem;display:flex;align-items:center;justify-content:center}.offset-btn:hover{background:#4a90d9;border-color:#4a90d9}.offset-input{width:50px;background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:.25rem .35rem;color:#e0e0e0;font-size:.75rem;text-align:center}.confirm-buttons{display:flex;gap:.5rem;margin-top:.5rem}.confirm-buttons button{flex:1;padding:.5rem;border-radius:4px;cursor:pointer;font-size:.75rem}.apply-btn{background:#2ecc71;border:1px solid #2ecc71;color:#fff}.apply-btn:hover{background:#27ae60}.cancel-btn{background:transparent;border:1px solid #666;color:#888}.cancel-btn:hover{background:#333;color:#e0e0e0}.hint{font-size:.75rem;color:#666;text-align:center;padding:1rem}.face-preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.face-preview-item{background:#252545;border-radius:6px;padding:.5rem;display:flex;flex-direction:column;align-items:center}.face-preview-item.open{opacity:.5}.face-preview-header{font-size:.625rem;font-weight:600;color:#4a90d9;margin-bottom:.25rem}.face-preview-svg{width:100%;height:80px;background:#1a1a2e;border-radius:4px}.face-preview-dimensions{font-size:.625rem;color:#666;margin-top:.25rem}.face-preview-empty{height:80px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#666}.export-controls{display:flex;flex-direction:column;gap:1rem}.kerf-input{display:flex;flex-direction:column;gap:.25rem}.kerf-input span{font-size:.75rem;color:#888}.kerf-input input{background:#252545;border:1px solid #333;border-radius:4px;padding:.5rem;color:#e0e0e0;font-size:.875rem}.export-settings{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:#1a1a2e;border-radius:6px;margin-bottom:.5rem}.export-setting-row{display:flex;gap:.75rem}.export-setting-row label{display:flex;flex-direction:column;gap:.25rem;flex:1}.export-setting-row label span{font-size:.75rem;color:#888}.export-setting-row select,.export-setting-row input[type=number]{background:#252545;border:1px solid #333;border-radius:4px;padding:.5rem;color:#e0e0e0;font-size:.875rem;width:100%}.export-setting-row select:focus,.export-setting-row input:focus{outline:none;border-color:#4a90d9}.custom-bed-size{padding-left:1rem;border-left:2px solid #333}.checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem!important}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#4a90d9}.checkbox-label span{font-size:.875rem!important;color:#e0e0e0!important}.export-section h4{font-size:.75rem;color:#888;margin-bottom:.5rem}.export-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.export-buttons button{padding:.5rem;background:#252545;border:1px solid #333;border-radius:4px;color:#e0e0e0;cursor:pointer;font-size:.75rem;transition:all .2s}.export-buttons button:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.export-buttons button:disabled{opacity:.4;cursor:not-allowed}.export-all-btn{width:100%;padding:.75rem;background:#27ae6030;border:1px solid #27ae60;border-radius:4px;color:#27ae60;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.export-all-btn:hover:not(:disabled){background:#27ae60;color:#fff}.export-all-btn:disabled{opacity:.4;cursor:not-allowed}.export-info{background:#252545;border-radius:6px;padding:.75rem;font-size:.75rem;color:#888}.export-info p{margin-bottom:.5rem}.export-info ul{margin-left:1rem}.export-info li{margin-bottom:.25rem}.face-preview-section{margin-bottom:1rem}.face-preview-section:last-child{margin-bottom:0}.face-preview-section h4{font-size:.75rem;color:#888;margin-bottom:.5rem;font-weight:500}.face-preview-item.subdivision{border:1px solid #f39c1240}.face-preview-item.subdivision .face-preview-header{color:#f39c12}.void-info{background:#252545;border-radius:4px;padding:.5rem;font-size:.75rem;color:#888}.void-info p{margin:0}.remove-subdivision-btn{width:100%;padding:.5rem;background:#e67e2230;border:1px solid #e67e22;border-radius:4px;color:#e67e22;cursor:pointer;font-size:.75rem;transition:all .2s}.remove-subdivision-btn:hover{background:#e67e22;color:#fff}.subdivision-list .more-indicator{color:#666;font-style:italic}.preview-config{display:flex;flex-direction:column;gap:.75rem}.count-control{display:flex;flex-direction:column;gap:.5rem}.count-control label{font-size:.75rem;color:#888}.count-buttons{display:flex;align-items:center;gap:.5rem}.count-buttons button{width:32px;height:32px;background:#252545;border:1px solid #333;border-radius:4px;color:#e0e0e0;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.count-buttons button:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.count-buttons button:disabled{opacity:.4;cursor:not-allowed}.count-buttons input{width:60px;text-align:center;background:#252545;border:1px solid #333;border-radius:4px;padding:.5rem;color:#e0e0e0;font-size:.875rem}.preview-info{font-size:.75rem;color:#2ecc71;text-align:center}.confirm-buttons{display:flex;gap:.5rem}.confirm-buttons button{flex:1;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.apply-btn{background:#27ae6030;border:1px solid #27ae60;color:#27ae60}.apply-btn:hover{background:#27ae60;color:#fff}.cancel-btn{background:#252545;border:1px solid #333;color:#e0e0e0}.cancel-btn:hover{background:#333;border-color:#444}.box-tree{font-size:.8rem}.tree-node-content:hover{background:#252545}.tree-node-content.selected{background:#4a90d930;border-left:2px solid #4a90d9}.tree-node-content.hovered{background:#6ab04c30;border-left:2px solid #6ab04c}.tree-node-content.selected.hovered{background:#4a90d930;border-left:2px solid #4a90d9}.tree-node-content.leaf{color:#e0e0e0}.tree-node-content.branch{color:#888}.tree-icon{font-size:.75rem;width:16px;text-align:center}.tree-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-dimensions{font-size:.65rem;color:#666;font-family:monospace}.viewport-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;background:linear-gradient(to bottom,#1a1a2ef2,#1a1a2ecc);border-bottom:1px solid #333;padding:.5rem 1rem;display:flex;gap:1rem}.toolbar-group{display:flex;align-items:center;gap:.5rem}.toolbar-label{font-size:.75rem;color:#888;margin-right:.25rem}.toolbar-btn{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;background:#252545;border:1px solid #333;border-radius:4px;color:#aaa;cursor:pointer;font-size:.75rem;transition:all .15s}.toolbar-btn:hover{background:#303060;border-color:#444;color:#e0e0e0}.toolbar-btn.active{background:#4a90d930;border-color:#4a90d9;color:#4a90d9}.toolbar-icon{font-size:.9rem}.toolbar-text{font-weight:500}.viewport{position:relative}.panel-properties{display:flex;flex-direction:column;gap:.75rem}.property-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;border-bottom:1px solid #333}.property-icon{font-size:1rem}.property-title{font-weight:600;color:#e0e0e0}.property-group{display:flex;flex-direction:column;gap:.4rem}.property-row{display:flex;justify-content:space-between;font-size:.8rem}.property-label{color:#888}.property-value{color:#e0e0e0;font-family:monospace}.toggle-row{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#e0e0e0;cursor:pointer}.toggle-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.subassembly-buttons{flex-wrap:wrap}.subassembly-info{display:flex;flex-direction:column;gap:.5rem}.subassembly-info h4{color:#9b59b6;margin:0}.select-subassembly-btn{background:#9b59b630;border:1px solid #9b59b6;color:#9b59b6;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.select-subassembly-btn:hover{background:#9b59b6;color:#fff}.remove-subassembly-btn{background:#e74c3c30;border:1px solid #e74c3c;color:#e74c3c;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.remove-subassembly-btn:hover{background:#e74c3c;color:#fff}.tree-node-content.subassembly{color:#9b59b6}.tree-node-content.subassembly.selected{background:#9b59b630;border-left:2px solid #9b59b6}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#1a1a2e;border:1px solid #333;border-radius:8px;min-width:400px;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #333;background:#16162a}.modal-header h2{margin:0;font-size:1.25rem;color:#e0e0e0}.modal-close{background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.modal-close:hover{color:#e0e0e0}.modal-body{padding:1.5rem;overflow-y:auto}.export-modal-content{display:flex;flex-direction:column;gap:1rem}.export-modal-content .export-section{margin-bottom:1rem}.export-modal-content .export-section h4{margin:0 0 .75rem;color:#888;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.export-modal-content .export-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.export-modal-content .export-buttons button{padding:.5rem 1rem;background:#252545;border:1px solid #333;border-radius:4px;color:#e0e0e0;cursor:pointer;font-size:.8rem;transition:all .2s}.export-modal-content .export-buttons button:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.export-modal-content .export-buttons button:disabled{opacity:.4;cursor:not-allowed}.export-all-section{padding-top:1rem;border-top:1px solid #333}.export-modal-content .export-all-btn{width:100%;padding:.75rem 1.5rem;background:#27ae60;border:none;border-radius:4px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.export-modal-content .export-all-btn:hover:not(:disabled){background:#2ecc71}.export-modal-content .export-all-btn:disabled{background:#333;cursor:not-allowed}.export-modal-content .export-info{background:#252545;border-radius:4px;padding:1rem;margin-top:1rem}.export-modal-content .export-info p{margin:0 0 .5rem;color:#888;font-size:.8rem}.export-modal-content .export-info ul{margin:0;padding-left:1.25rem;color:#aaa;font-size:.75rem}.export-modal-content .export-info li{margin-bottom:.25rem}.app-header{display:flex;justify-content:space-between;align-items:center}.header-content{display:flex;flex-direction:column}.header-menu{display:flex;gap:.5rem}.header-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#27ae60;border:none;border-radius:4px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.header-btn:hover{background:#2ecc71}.header-btn-icon{font-size:1rem}.assembly-properties{display:flex;flex-direction:column;gap:1rem}.property-section{display:flex;flex-direction:column;gap:.5rem}.property-section h4{font-size:.75rem;color:#888;font-weight:500;margin:0;text-transform:uppercase;letter-spacing:.5px}.property-section h5{font-size:.7rem;color:#666;font-weight:500;margin:.5rem 0 .25rem}.lid-config-section{margin-top:.5rem;padding:.5rem;background:#0003;border-radius:4px}.lid-config-section .form-grid{gap:.5rem}.face-grid.compact{transform:scale(.85);transform-origin:center}.face-button.small{width:40px;height:32px;font-size:.7rem}.face-spacer.small{width:40px;height:32px}.tree-node-content{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:4px;cursor:pointer;transition:background .15s}.tree-node-main{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.tree-controls{display:flex;gap:4px;margin-left:auto;opacity:0;transition:opacity .15s}.tree-node-content:hover .tree-controls{opacity:1}.tree-btn{width:20px;height:20px;border:1px solid #444;border-radius:3px;background:#252545;color:#888;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.tree-btn:hover{background:#4a90d9;border-color:#4a90d9;color:#fff}.tree-btn.active{background:#e67e22;border-color:#e67e22;color:#fff}.tree-btn.delete{font-size:1rem;font-weight:700}.tree-btn.delete:hover{background:#e74c3c;border-color:#e74c3c;color:#fff}.tree-node-content.hidden{opacity:.4}.tree-node-content.hidden .tree-controls{opacity:1}.tree-node-content.isolated{border:1px solid #e67e22;background:#e67e2220}.tree-node-content.panel,.tree-node-content.panel .tree-icon{color:#f39c12}.tree-node-content.panel.selected{background:#f39c1230;border-left:2px solid #f39c12}.tree-node-content.panel.open-face{opacity:.6}.tree-node-content.panel.open-face .tree-icon{color:#888}.tree-status{font-size:.7rem;color:#666;margin-left:.25rem}.tree-node-content.assembly{color:#3498db}.tree-node-content.assembly.selected{background:#3498db30;border-left:2px solid #3498db}.unisolate-btn{width:100%;padding:.5rem;margin-top:.5rem;background:#e67e2230;border:1px solid #e67e22;border-radius:4px;color:#e67e22;cursor:pointer;font-size:.75rem;transition:all .2s}.unisolate-btn:hover{background:#e67e22;color:#fff}.edge-preview-svg{width:100%;height:120px;background:#1a1a2e;border-radius:4px;margin:.5rem 0}.edge-preview-svg .edge-locked{stroke:#2ecc71}.edge-preview-svg .edge-unlocked{stroke:#e67e22}.edge-preview-svg .edge-selected{stroke:#3498db;stroke-width:8px!important}.edge-preview-svg .edge-clickable:hover{stroke-width:10px!important;filter:brightness(1.2)}.edge-preview-svg .extension-label{fill:#888;font-size:8px;font-family:monospace}.edge-legend{display:flex;gap:1rem;justify-content:center;font-size:.7rem;color:#888;margin-top:.5rem}.legend-item{display:flex;align-items:center;gap:.35rem}.legend-color{width:16px;height:4px;border-radius:2px}.legend-color.locked{background:#2ecc71}.legend-color.unlocked{background:#e67e22}.edge-controls{background:#252545;border-radius:6px;padding:.75rem;margin-top:.5rem}.edge-controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.edge-name{font-weight:600;color:#e0e0e0;font-size:.85rem}.edge-status-badge{font-size:.65rem;padding:.2rem .5rem;border-radius:3px;font-weight:600;text-transform:uppercase}.edge-status-badge.locked{background:#2ecc7130;color:#2ecc71}.edge-status-badge.unlocked{background:#e67e2230;color:#e67e22}.edge-controls-row{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.edge-btn{width:28px;height:28px;background:#1a1a2e;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.edge-btn:hover{background:#4a90d9;border-color:#4a90d9}.edge-input{width:60px;text-align:center;background:#1a1a2e;border:1px solid #444;border-radius:4px;padding:.4rem;color:#e0e0e0;font-size:.85rem;font-family:monospace}.edge-input:focus{outline:none;border-color:#4a90d9}.edge-unit{color:#666;font-size:.75rem}.edge-controls-hint{font-size:.7rem;color:#666;margin:0;font-style:italic}.position-controls{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.position-slider-row{width:100%}.position-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1a1a2e;border-radius:3px;outline:none}.position-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#4a90d9;border-radius:50%;cursor:pointer;transition:background .15s}.position-slider::-webkit-slider-thumb:hover{background:#5aa0e9}.position-slider::-moz-range-thumb{width:16px;height:16px;background:#4a90d9;border:none;border-radius:50%;cursor:pointer}.position-input-row{display:flex;align-items:center;gap:.5rem;justify-content:center}.position-btn{width:28px;height:28px;background:#1a1a2e;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.position-btn:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.position-btn:disabled{opacity:.4;cursor:not-allowed}.position-input{width:70px;text-align:center;background:#1a1a2e;border:1px solid #444;border-radius:4px;padding:.4rem;color:#e0e0e0;font-size:.85rem;font-family:monospace}.position-input:focus{outline:none;border-color:#4a90d9}.position-unit{color:#666;font-size:.75rem}.position-mode-toggle{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #333;display:flex;flex-direction:column;gap:.25rem}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8rem;color:#b0b0b0}.toggle-label input[type=checkbox]{width:14px;height:14px;accent-color:#4a90d9;cursor:pointer}.toggle-text{-webkit-user-select:none;user-select:none}.percentage-display{font-size:.75rem;color:#666;margin-left:1.5rem}.offset-controls{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.offset-input-row{display:flex;align-items:center;gap:.5rem;justify-content:center}.offset-btn{width:28px;height:28px;background:#1a1a2e;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.offset-btn:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.offset-btn:disabled{opacity:.4;cursor:not-allowed}.offset-input{width:70px;text-align:center;background:#1a1a2e;border:1px solid #444;border-radius:4px;padding:.4rem;color:#e0e0e0;font-size:.85rem;font-family:monospace}.offset-input:focus{outline:none;border-color:#4a90d9}.offset-unit{color:#666;font-size:.75rem}.offset-mode-row{margin-top:.25rem}.offset-mode-select{width:100%;background:#1a1a2e;border:1px solid #444;border-radius:4px;padding:.4rem .5rem;color:#e0e0e0;font-size:.8rem;cursor:pointer}.offset-mode-select:hover{border-color:#555}.offset-mode-select:focus{outline:none;border-color:#4a90d9}.offset-hint{font-size:.75rem;color:#666;margin:.25rem 0 0;text-align:center}.header-btn.secondary{background:#252545;border:1px solid #444}.header-btn.secondary:hover{background:#353565;border-color:#555}.header-btn.success{background:#2a5a3a;border-color:#4a8a5a}.project-browser{min-height:200px}.no-projects{text-align:center;padding:2rem;color:#888}.no-projects p{margin:.5rem 0}.no-projects .hint{font-size:.85rem;color:#666}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.project-card{background:#252545;border-radius:8px;overflow:hidden;border:1px solid #333;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#4a90d9;transform:translateY(-2px)}.project-thumbnail{width:100%;height:120px;background:#1a1a2e;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}.project-thumbnail img{width:100%;height:100%;object-fit:cover}.no-thumbnail{color:#666;font-size:.85rem}.project-info{padding:.75rem;border-bottom:1px solid #333}.project-name{font-weight:600;color:#e0e0e0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-name:hover{color:#4a90d9}.project-name-edit{display:flex;gap:.5rem;align-items:center}.project-name-edit input{flex:1;background:#1a1a2e;border:1px solid #4a90d9;border-radius:4px;padding:.35rem .5rem;color:#e0e0e0;font-size:.85rem}.edit-buttons{display:flex;gap:.25rem}.edit-buttons button{width:24px;height:24px;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center}.edit-buttons button:first-child{background:#27ae60;color:#fff}.edit-buttons button:last-child{background:#333;color:#888}.project-date{font-size:.75rem;color:#666;margin-top:.25rem}.project-actions{padding:.5rem .75rem;display:flex;gap:.5rem}.action-btn{flex:1;padding:.35rem .5rem;border:1px solid #444;border-radius:4px;background:#1a1a2e;color:#aaa;cursor:pointer;font-size:.7rem;transition:all .15s}.action-btn:hover{background:#333;color:#e0e0e0}.action-btn.load-btn:hover{background:#4a90d9;border-color:#4a90d9;color:#fff}.action-btn.delete-btn:hover{background:#e74c3c;border-color:#e74c3c;color:#fff}.delete-confirm{display:flex;align-items:center;gap:.5rem;width:100%}.delete-confirm span{font-size:.75rem;color:#e74c3c}.delete-confirm button{padding:.25rem .5rem;border-radius:4px;border:none;cursor:pointer;font-size:.7rem}.confirm-yes{background:#e74c3c;color:#fff}.confirm-no{background:#333;color:#888}.save-project-form{display:flex;flex-direction:column;gap:1rem}.save-project-form .form-group{display:flex;flex-direction:column;gap:.5rem}.save-project-form label{font-size:.85rem;color:#888}.save-project-form input{background:#252545;border:1px solid #444;border-radius:4px;padding:.75rem;color:#e0e0e0;font-size:1rem}.save-project-form input:focus{outline:none;border-color:#4a90d9}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.form-actions button{padding:.6rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .15s}.form-actions .cancel-btn{background:#252545;border:1px solid #444;color:#aaa}.form-actions .cancel-btn:hover{background:#333;color:#e0e0e0}.form-actions .save-btn{background:#27ae60;border:none;color:#fff}.form-actions .save-btn:hover:not(:disabled){background:#2ecc71}.form-actions .save-btn:disabled{background:#333;color:#666;cursor:not-allowed}.sketch-view-2d{display:flex;flex-direction:column;width:100%;height:100%;background:#0d0d1a;position:relative}.sketch-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#1a1a2e;border-bottom:1px solid #333;z-index:10}.sketch-toolbar-left{display:flex;align-items:center;gap:1rem}.sketch-panel-name{font-weight:600;color:#e0e0e0}.sketch-panel-dims{color:#888;font-size:.85rem;font-family:monospace}.sketch-toolbar-right{display:flex;gap:.5rem}.sketch-btn{padding:.4rem .8rem;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:.85rem;cursor:pointer;transition:all .15s}.sketch-btn:hover{background:#353565;border-color:#555}.sketch-btn-close{background:#4a3030;border-color:#664040}.sketch-btn-close:hover{background:#5a4040}.sketch-canvas{flex:1;width:100%;background:#0a0a15}.sketch-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#888;gap:1rem}.sketch-legend{position:absolute;bottom:1rem;left:1rem;background:#1a1a2ee6;padding:.5rem .75rem;border-radius:4px;border:1px solid #333;display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#aaa}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-color{width:12px;height:3px;border-radius:1px}.legend-line{width:16px;height:0}.panel-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #333}.edit-2d-btn{width:100%;padding:.6rem 1rem;background:#2a4a6a;border:1px solid #3a6a9a;border-radius:4px;color:#e0e0e0;font-size:.85rem;cursor:pointer;transition:all .15s}.edit-2d-btn:hover{background:#3a5a7a;border-color:#4a7aaa}.legend-info{font-size:.7rem;color:#777;margin-top:.25rem;padding-top:.25rem;border-top:1px solid #333}.editor-toolbar{position:absolute;top:48px;left:8px;z-index:99;display:flex;flex-direction:column;gap:8px;pointer-events:auto}.sketch-view-2d .editor-toolbar{flex-direction:row;top:56px}.editor-toolbar-section{background:#1a1a2ef2;border:1px solid #333;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.sketch-view-2d .editor-toolbar-section{flex-direction:row;align-items:center;gap:8px}.sketch-view-2d .editor-toolbar-label{writing-mode:horizontal-tb;padding-bottom:0;padding-right:4px;border-right:1px solid #444;margin-right:4px}.editor-toolbar-label{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.5px;padding-bottom:2px}.editor-toolbar-buttons{display:flex;gap:2px}.editor-tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 8px;min-width:44px;background:#252545;border:1px solid #444;border-radius:4px;color:#aaa;cursor:pointer;transition:all .15s ease}.editor-tool-btn:hover:not(:disabled){background:#353565;border-color:#555;color:#e0e0e0}.editor-tool-btn.active{background:#4a4a8a;border-color:#6a6aaa;color:#fff}.editor-tool-btn:disabled{opacity:.4;cursor:not-allowed}.editor-tool-icon{font-size:1rem;line-height:1}.editor-tool-label{font-size:.6rem;margin-top:2px;text-transform:uppercase;letter-spacing:.3px}.viewport-container .editor-toolbar{top:48px}.floating-palette{position:absolute;z-index:1000;background:#1e1e32f2;border:1px solid #444;border-radius:8px;box-shadow:0 4px 20px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;-webkit-user-select:none;user-select:none}.floating-palette.dragging{opacity:.9;cursor:grabbing}.floating-palette-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#282846cc;border-bottom:1px solid #444;cursor:grab}.floating-palette.dragging .floating-palette-header{cursor:grabbing}.floating-palette-title{font-size:.8rem;font-weight:600;color:#ccc;letter-spacing:.3px}.floating-palette-close{background:none;border:none;color:#888;font-size:1.2rem;line-height:1;padding:0 4px;cursor:pointer;transition:color .15s}.floating-palette-close:hover{color:#fff}.floating-palette-content{padding:12px;display:flex;flex-direction:column;gap:12px}.floating-palette input[type=number]{width:70px;padding:6px 8px;background:#1e1e2e;border:1px solid #3a3a4a;border-radius:4px;color:#4a9eff;font-size:.85rem;font-weight:500;text-align:left;-moz-appearance:textfield}.floating-palette input[type=number]::-webkit-outer-spin-button,.floating-palette input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.floating-palette input[type=number]:focus{outline:none;border-color:#4a9eff;background:#252538}.floating-palette .input-with-unit{gap:6px}.floating-palette .input-with-unit .unit{color:#666;font-size:.75rem;min-width:20px}.palette-label{display:block;font-size:.7rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.palette-slider-input{display:flex;flex-direction:column}.palette-slider-row{display:flex;align-items:center;gap:10px}.palette-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#333;border-radius:2px;outline:none}.palette-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:#6a6aaa;border-radius:50%;cursor:pointer;transition:background .15s}.palette-slider::-webkit-slider-thumb:hover{background:#8a8acc}.palette-slider::-moz-range-thumb{width:14px;height:14px;background:#6a6aaa;border-radius:50%;cursor:pointer;border:none}.palette-number-input{display:flex;align-items:center;gap:4px}.palette-input{width:50px;padding:4px 6px;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:.85rem;text-align:right}.palette-input:focus{outline:none;border-color:#6a6aaa}.palette-unit{font-size:.75rem;color:#666}.palette-toggle-group{display:flex;flex-direction:column}.palette-toggle-buttons{display:flex;gap:2px;background:#252545;padding:2px;border-radius:4px}.palette-toggle-btn{flex:1;padding:6px 12px;background:transparent;border:none;border-radius:3px;color:#888;font-size:.8rem;cursor:pointer;transition:all .15s}.palette-toggle-btn:hover{color:#ccc;background:#ffffff0d}.palette-toggle-btn.active{background:#4a4a8a;color:#fff}.palette-toggle-group.disabled .palette-toggle-btn{opacity:.5;cursor:not-allowed}.palette-toggle-group.disabled .palette-toggle-btn:hover{color:#888;background:transparent}.palette-toggle-group.disabled .palette-toggle-btn.active{background:#3a3a6a}.palette-toggle-btn.option-disabled{opacity:.4;cursor:not-allowed}.palette-toggle-btn.option-disabled:hover{color:#888;background:transparent}.palette-button-row{display:flex;gap:8px;margin-top:4px}.palette-btn{flex:1;padding:8px 12px;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s}.palette-btn:disabled{opacity:.5;cursor:not-allowed}.palette-btn-primary{background:#4a4a8a;color:#fff}.palette-btn-primary:hover:not(:disabled){background:#5a5a9a}.palette-btn-secondary{background:#353555;color:#ccc}.palette-btn-secondary:hover:not(:disabled){background:#454575}.palette-btn-danger{background:#8a4a4a;color:#fff}.palette-btn-danger:hover:not(:disabled){background:#9a5a5a}.palette-hint{font-size:11px;color:#888;margin-top:8px;padding-top:8px;border-top:1px solid #333;text-align:center}.palette-hint-small{font-size:10px;color:#666;margin-top:4px;text-align:center}.palette-section{margin-bottom:12px}.palette-section-title{font-size:.7rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.palette-form-grid{display:flex;flex-direction:column;gap:8px}.palette-form-grid label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.75rem;color:#aaa}.palette-form-grid label span:first-child{flex-shrink:0}.palette-form-row{display:flex;gap:8px;align-items:center}.palette-form-row label{display:flex;flex-direction:column;gap:4px;font-size:.7rem;color:#888;flex:1}.palette-form-row label span{text-align:center}.palette-axis-buttons{display:flex;gap:4px;margin-top:4px}.palette-axis-btn{flex:1;padding:6px 12px;border:1px solid #444;border-radius:4px;background:#2a2a2a;color:#ddd;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.palette-axis-btn:hover:not(:disabled){background:#3a3a3a;border-color:#666}.palette-axis-btn:disabled{opacity:.4;cursor:not-allowed}.palette-axis-btn.selected{background:#4a7c59;border-color:#5a9c69;color:#fff}.palette-axis-btn.selected:hover:not(:disabled){background:#5a8c69}.palette-info{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.palette-value{font-size:12px;color:#aaa}.palette-checkbox-group,.palette-checkboxes{display:flex;flex-direction:column;gap:4px}.palette-checkbox{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:4px;cursor:pointer;transition:background .15s}.palette-checkbox:hover:not(.disabled){background:#ffffff0d}.palette-checkbox.disabled{opacity:.5;cursor:not-allowed}.palette-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#4a90d9;cursor:pointer}.palette-checkbox.disabled input[type=checkbox]{cursor:not-allowed}.palette-checkbox-label{font-size:.85rem;color:#ccc}.palette-number-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.palette-number-row .palette-label{margin-bottom:0}.palette-number-row .palette-number-input{flex-shrink:0}.number-input-wrapper{display:inline-flex;align-items:center;gap:2px}.number-input-btn{width:24px;height:24px;padding:0;border:1px solid #3a3a4a;background:#252545;color:#aaa;cursor:pointer;font-size:14px;font-weight:500;line-height:1;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .15s}.number-input-btn:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9;color:#fff}.number-input-btn:active:not(:disabled){background:#3a80c9}.number-input-btn:disabled{opacity:.35;cursor:not-allowed}.number-input-btn.decrement{border-radius:3px 0 0 3px}.number-input-btn.increment{border-radius:0 3px 3px 0}.number-input-wrapper .number-input-field{width:50px;padding:4px 6px;background:#1e1e2e;border:1px solid #3a3a4a;border-left:none;border-right:none;border-radius:0;color:#4a9eff;font-size:.85rem;font-weight:500;text-align:center;-moz-appearance:textfield}.number-input-wrapper .number-input-field::-webkit-outer-spin-button,.number-input-wrapper .number-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input-wrapper .number-input-field:focus{outline:none;border-color:#4a9eff;background:#252538}.number-input-unit{margin-left:6px;color:#666;font-size:.75rem;min-width:20px}.sketch-sidebar{display:flex;flex-direction:column;gap:1rem}.sketch-sidebar h2{font-size:1.1rem;font-weight:600;color:#4a90d9;margin-bottom:.5rem}.sketch-sidebar h3{font-size:.75rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.sketch-sidebar-empty{color:#666;font-size:.9rem}.sketch-sidebar-section{background:#1a1a2e;border-radius:6px;padding:.75rem}.sketch-sidebar-info{display:flex;flex-direction:column;gap:.4rem}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.info-label{color:#888}.info-value{color:#e0e0e0;font-weight:500}.edge-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.5rem}.edge-status-item{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;background:#252545;border-radius:4px;font-size:.8rem}.edge-status-item .edge-name{text-transform:capitalize;color:#aaa;flex:1}.edge-status-indicator{width:8px;height:8px;border-radius:50%}.edge-status-item.locked .edge-status-indicator{background:#4a90d9}.edge-status-item.editable .edge-status-indicator{background:#e09040}.edge-extension{font-size:.7rem;color:#2ecc71;font-weight:500}.edge-status-summary{font-size:.75rem;color:#666;text-align:center}.sketch-legend-items{display:flex;flex-direction:column;gap:.4rem}.legend-row{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:#aaa}.legend-swatch{width:16px;height:4px;border-radius:2px;flex-shrink:0}.legend-swatch.locked{background:#4a90d9}.legend-swatch.editable{background:#e09040}.legend-swatch.boundary{background:transparent;border-top:2px dashed #6a6a8a;height:0}.legend-swatch.safe-zone{background:#2ecc71;opacity:.6}.legend-swatch.corner{width:10px;height:10px;border-radius:50%;background:#00d9ff}.sketch-overlay-bottom-right{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:100;pointer-events:auto}.sketch-overlay-section{background:#141423eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px;min-width:180px}.sketch-overlay-section h4{font-size:.7rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px}.sketch-overlay-section .edge-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}.sketch-overlay-section .edge-status-item{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#28283c99;border-radius:4px;font-size:.75rem}.sketch-overlay-section .edge-status-item .edge-name{text-transform:capitalize;color:#aaa;flex:1}.sketch-overlay-section .edge-status-indicator{width:6px;height:6px;border-radius:50%}.sketch-overlay-section .edge-extension{font-size:.65rem;color:#2ecc71;font-weight:500}.sketch-overlay-section .edge-status-summary{font-size:.65rem;color:#666;text-align:center;margin-top:4px}.sketch-overlay-section .sketch-legend-items{display:flex;flex-direction:column;gap:4px}.sketch-overlay-section .legend-row{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#999;padding:4px 6px;border-radius:4px;cursor:pointer;transition:background .15s,color .15s}.sketch-overlay-section .legend-row:hover,.sketch-overlay-section .legend-row.highlighted{background:#ffffff14;color:#fff}.sketch-overlay-section .legend-swatch{width:14px;height:3px;border-radius:2px;flex-shrink:0}.sketch-help-items{display:flex;flex-direction:column;gap:.3rem}.help-row{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:#aaa}.help-key{background:#252545;padding:.15rem .4rem;border-radius:3px;font-size:.7rem;color:#ccc;min-width:60px;text-align:center}.palette-assembly-list,.palette-void-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.palette-assembly-item,.palette-void-item{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .75rem;background:#1e1e2e;border:1px solid #3a3a4a;border-radius:4px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.palette-assembly-item:hover,.palette-void-item:hover{background:#2a2a3e;border-color:#4a9eff}.assembly-name,.void-id{font-size:.85rem;color:#e0e0e0;font-weight:500}.assembly-size,.void-size{font-size:.75rem;color:#888}.template-browser{min-height:200px}.template-browser-intro{color:#888;font-size:.9rem;margin-bottom:1.5rem;text-align:center}.template-browser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.template-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#252545;border:1px solid #333;border-radius:8px;cursor:pointer;text-align:left;transition:all .2s}.template-card:hover{border-color:#4a90d9;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.template-card-icon{font-size:2rem;text-align:center}.template-card-content{display:flex;flex-direction:column;gap:.35rem}.template-card-name{font-weight:600;color:#e0e0e0;font-size:1rem}.template-card-description{font-size:.8rem;color:#888;line-height:1.4}.template-card-category{font-size:.7rem;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.template-config-modal{background:#1a1a2e;border:1px solid #333;border-radius:8px;width:90vw;max-width:900px;height:80vh;max-height:600px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.template-config-content{display:flex;flex:1;overflow:hidden}.template-config-form{width:260px;min-width:260px;padding:1rem;border-right:1px solid #333;overflow-y:auto;display:flex;flex-direction:column}.template-config-section{margin-bottom:1.5rem}.template-config-section h3{font-size:.75rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px;margin:0 0 1rem}.template-dimensions-row{display:flex;gap:.5rem}.template-dimensions-row label{flex:1;display:flex;flex-direction:column;gap:.25rem}.template-dimensions-row label span{font-size:.75rem;color:#888;text-align:center}.template-dimensions-row input[type=number]{width:100%;padding:.4rem .25rem;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:.85rem;text-align:center}.template-dimensions-row input[type=number]:focus{outline:none;border-color:#4a90d9}.template-form-grid{display:flex;flex-direction:column;gap:.75rem}.template-form-grid label{display:flex;flex-direction:column;gap:.35rem}.template-form-grid label span{font-size:.85rem;color:#aaa}.template-form-grid input[type=number]{width:100%;padding:.5rem .75rem;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:.9rem}.template-form-grid input[type=number]:focus{outline:none;border-color:#4a90d9}.subdivision-input{display:flex;align-items:center;gap:.5rem}.subdivision-input input{flex:1;text-align:center;padding:.5rem;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:.9rem;-moz-appearance:textfield}.subdivision-input input::-webkit-outer-spin-button,.subdivision-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.subdivision-input input:focus{outline:none;border-color:#4a90d9}.subdivision-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#252545;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1.2rem;cursor:pointer;transition:all .15s}.subdivision-btn:hover:not(:disabled){background:#4a90d9;border-color:#4a90d9}.subdivision-btn:disabled{opacity:.4;cursor:not-allowed}.template-config-actions{display:flex;gap:.75rem;margin-top:auto;padding-top:1rem}.template-btn-primary,.template-btn-secondary{flex:1;padding:.75rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.template-btn-primary{background:#27ae60;border:none;color:#fff}.template-btn-primary:hover{background:#2ecc71}.template-btn-secondary{background:#252545;border:1px solid #444;color:#aaa}.template-btn-secondary:hover{background:#333;color:#e0e0e0}.template-preview-container{flex:1;background:#0a0a15;position:relative}.about-modal-content{max-width:500px;line-height:1.6;color:#e0e0e0}.about-section{margin-bottom:1.5rem}.about-section:last-child{margin-bottom:0}.about-section h3{color:#4a90d9;font-size:1rem;margin:0 0 .75rem;font-weight:600}.about-section p{margin:0;color:#ccc;font-size:.9rem}.about-section ul,.about-section ol{margin:0;padding-left:1.25rem;color:#ccc;font-size:.9rem}.about-section li{margin-bottom:.5rem}.about-section li:last-child{margin-bottom:0}.about-section li strong{color:#e0e0e0}.about-footer{padding-top:1rem;border-top:1px solid #333}.about-footer p{font-size:.8rem;color:#888;text-align:center}.ineligibility-tooltip{position:absolute;top:100px;right:20px;z-index:900;background:#ff646426;border:1px solid rgba(255,100,100,.4);border-radius:6px;padding:8px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;gap:8px;animation:ineligibility-tooltip-fade-in .15s ease-out;pointer-events:none}.ineligibility-tooltip-icon{color:#ff6464e6;font-size:14px}.ineligibility-tooltip-text{color:#ffc8c8f2;font-size:12px;font-weight:500;white-space:nowrap}@keyframes ineligibility-tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.design-error-overlay{position:absolute;top:100px;right:20px;z-index:900;background:#ff646426;border:1px solid rgba(255,100,100,.4);border-radius:6px;padding:8px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;gap:8px;max-width:400px;animation:ineligibility-tooltip-fade-in .15s ease-out}.design-error-overlay .ineligibility-tooltip-text{white-space:normal;line-height:1.4}.design-prompt-panel{height:120px;background:#1a1a2e;border-top:1px solid #333;display:flex;align-items:stretch;padding:.75rem 1rem;gap:.75rem}.design-prompt-input{flex:1;min-width:0}.design-prompt-input textarea{width:100%;height:100%;background:#0f0f1a;border:1px solid #444;border-radius:6px;color:#e0e0e0;font-family:inherit;font-size:.875rem;padding:.5rem .75rem;resize:none;outline:none}.design-prompt-input textarea:focus{border-color:#4a90d9}.design-prompt-input textarea:disabled{opacity:.6}.design-prompt-actions{display:flex;flex-direction:column;gap:.4rem;justify-content:center;min-width:110px}.design-prompt-error{font-size:.7rem;color:#e74c3c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}.design-btn{padding:.4rem .75rem;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s}.design-btn:disabled{opacity:.5;cursor:not-allowed}.design-btn.preview{background:#4a90d9;color:#fff}.design-btn.preview:hover:not(:disabled){background:#5ba0e9}.design-btn.done{background:#27ae60;color:#fff}.design-btn.done:hover{background:#2ecc71}.design-btn.cancel{background:#252545;color:#ccc;border:1px solid #444}.design-btn.cancel:hover{background:#353565}
