@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.dimension-overlay{position:absolute;inset:0;pointer-events:none;z-index:50}.dimension-label{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:4px;background:#000000d9;padding:3px 8px;border-radius:4px;font-family:var(--font-mono);font-size:11px;white-space:nowrap;border:1px solid;box-shadow:0 2px 8px #0006}.dimension-length{border-color:var(--accent-primary);color:var(--accent-primary)}.dimension-radius{border-color:var(--accent-sketch);color:var(--accent-sketch)}.dimension-angle{border-color:var(--success);color:var(--success)}.dim-icon{font-size:12px;opacity:.8}.dim-value{font-weight:600}.point-handles-overlay{position:absolute;inset:0;pointer-events:none;z-index:60}.point-handle{position:absolute;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--accent-primary);cursor:pointer;pointer-events:auto;transition:all .15s ease;box-shadow:0 0 4px #00000080}.point-handle:hover,.point-handle.hovered{width:14px;height:14px;background:var(--accent-primary);border-color:#fff;box-shadow:0 0 8px var(--accent-primary-glow)}.point-handle.selected{background:var(--accent-sketch);border-color:var(--accent-sketch)}.point-handle.selected:hover{background:#fff;border-color:var(--accent-sketch)}.point-handle.point-selected{width:14px;height:14px;background:#0f8;border-color:#fff;box-shadow:0 0 12px #0f8c;z-index:1}.point-handle.entity-selected{background:var(--accent-sketch);border-color:var(--accent-sketch)}.point-handle.origin-point{width:12px;height:12px;background:#f66;border:2px solid #ffaaaa;box-shadow:0 0 8px #f669}.point-handle.origin-point:hover,.point-handle.origin-point.hovered{width:16px;height:16px;background:#f44;border-color:#fff;box-shadow:0 0 12px #ff4444e6}.point-handle.origin-point.point-selected{width:16px;height:16px;background:#0f8;border-color:#fff;box-shadow:0 0 14px #00ff88e6}.point-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;background:#000000e6;color:var(--accent-primary);font-family:var(--font-mono);font-size:10px;padding:3px 6px;border-radius:4px;white-space:nowrap;pointer-events:none;border:1px solid var(--accent-primary)}.snap-indicator-overlay{position:absolute;inset:0;pointer-events:none;z-index:70}.snap-indicator{position:absolute;transform:translate(-50%,-50%);width:20px;height:20px}.snap-indicator--endpoint .snap-ring{position:absolute;inset:0;border:2px solid var(--success);border-radius:50%;animation:snap-pulse .8s ease-in-out infinite}.snap-indicator--endpoint .snap-crosshair-h,.snap-indicator--endpoint .snap-crosshair-v{position:absolute;background:var(--success)}.snap-indicator--endpoint .snap-crosshair-h{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.snap-indicator--endpoint .snap-crosshair-v{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.snap-indicator--midpoint .snap-triangle{position:absolute;inset:2px;clip-path:polygon(50% 0%,0% 100%,100% 100%);background:#f59e0b;animation:snap-pulse .8s ease-in-out infinite}.snap-indicator--center .snap-ring--center{position:absolute;inset:0;border:2px solid #d946ef;border-radius:50%;animation:snap-pulse .8s ease-in-out infinite}.snap-indicator--center .snap-crosshair--center{position:absolute;background:#d946ef}.snap-indicator--center .snap-crosshair-h{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.snap-indicator--center .snap-crosshair-v{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.snap-indicator--quadrant .snap-diamond{position:absolute;inset:2px;background:#22d3ee;transform:rotate(45deg);animation:snap-pulse .8s ease-in-out infinite}.snap-indicator--perpendicular .snap-perpendicular{position:absolute;inset:4px;border:2px solid #60a5fa;border-radius:0;animation:snap-pulse .8s ease-in-out infinite}.snap-ring{position:absolute;inset:0;border:2px solid var(--success);border-radius:50%;animation:snap-pulse .8s ease-in-out infinite}.snap-crosshair-h,.snap-crosshair-v{position:absolute;background:var(--success)}.snap-crosshair-h{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.snap-crosshair-v{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}@keyframes snap-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.dimension-dialog{position:fixed;z-index:10000;background:linear-gradient(135deg,#1e1e2dfa,#141423fa);border:1px solid rgba(96,165,250,.4);border-radius:8px;box-shadow:0 8px 32px #00000080,0 0 20px #60a5fa26;backdrop-filter:blur(10px);padding:8px;min-width:160px;animation:dimension-dialog-appear .15s ease-out}@keyframes dimension-dialog-appear{0%{opacity:0;transform:scale(.9) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.dimension-dialog-header{display:flex;align-items:center;gap:6px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.dimension-type-icon{font-size:14px}.dimension-type-label{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.dimension-dialog-content{display:flex;gap:6px;align-items:center}.dimension-input{flex:1;background:#0000004d;border:1px solid rgba(96,165,250,.3);border-radius:4px;padding:8px 10px;color:#fff;font-size:14px;font-weight:500;min-width:80px;outline:none;transition:border-color .2s,box-shadow .2s}.dimension-input:focus{border-color:#60a5fab3;box-shadow:0 0 8px #60a5fa4d}.dimension-input::-webkit-inner-spin-button,.dimension-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dimension-dialog-buttons{display:flex;gap:4px}.dimension-btn{width:28px;height:28px;border-radius:4px;border:none;cursor:pointer;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .15s}.dimension-btn-apply{background:#4ade8033;color:#4ade80;border:1px solid rgba(74,222,128,.3)}.dimension-btn-apply:hover{background:#4ade804d;border-color:#4ade8080;transform:scale(1.05)}.dimension-btn-cancel{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.dimension-btn-cancel:hover{background:#ef44444d;border-color:#ef444480;transform:scale(1.05)}.inline-dimension-input-container{position:absolute;z-index:10000;pointer-events:auto;transform:translate(-50%,-50%);animation:inline-input-appear .1s ease-out}@keyframes inline-input-appear{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.inline-dimension-input{background:#141423f2;border:2px solid #3b82f6;border-radius:4px;padding:4px 8px;color:#fff;font-size:14px;font-weight:600;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;width:70px;text-align:center;outline:none;box-shadow:0 2px 10px #00000080,0 0 15px #3b82f64d}.inline-dimension-input:focus{border-color:#60a5fa;box-shadow:0 2px 12px #0009,0 0 20px #60a5fa66}.inline-dimension-input::-webkit-inner-spin-button,.inline-dimension-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.inline-dimension-input::placeholder{color:#fff6}.sketch-view-rotation{position:absolute;top:16px;right:16px;z-index:120;display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--text-primary);pointer-events:auto;width:170px}.sketch-view-rotation.minimized{padding:6px 8px;width:auto}.svr-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.svr-title{font-size:var(--font-size-xs);color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase}.svr-actions{display:flex;gap:6px}.svr-action,.svr-toggle{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-sm);padding:4px 6px;font-size:var(--font-size-xs);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.svr-action:hover,.svr-toggle:hover{border-color:var(--border-strong);background:var(--bg-hover)}.svr-visual{display:flex;align-items:center;justify-content:center}.svr-ring{stroke:var(--accent-sketch);opacity:.35}.svr-handle{fill:var(--accent-sketch);transform-box:fill-box;transform-origin:center;transition:transform var(--transition-fast)}.svr-handle.active{transform:scale(1.1)}.svr-center{fill:#ffffff80}.svr-input-row{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;font-size:var(--font-size-xs)}.svr-label{color:var(--text-secondary)}.svr-input{width:70px;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-sm);padding:4px 6px;font-size:var(--font-size-xs)}.svr-input:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 2px var(--accent-sketch-dim)}.svr-unit{color:var(--text-muted);font-size:var(--font-size-xs)}.section-plane-panel{position:absolute;top:80px;right:16px;background:#1e1e28f2;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:0;min-width:200px;box-shadow:0 4px 20px #0006;z-index:100;backdrop-filter:blur(10px)}.section-plane-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1)}.section-plane-title{font-size:13px;font-weight:600;color:#fff}.section-plane-close{background:none;border:none;color:#fff9;font-size:18px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s ease}.section-plane-close:hover{background:#ffffff1a;color:#fff}.section-plane-content{padding:12px;display:flex;flex-direction:column;gap:12px}.section-plane-axis{display:flex;flex-direction:column;gap:6px}.section-plane-axis label,.section-plane-position label{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.axis-buttons{display:flex;gap:4px}.axis-btn{flex:1;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#ffffffb3;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.axis-btn:hover{background:#ffffff1a;color:#fff}.axis-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.section-plane-position{display:flex;flex-direction:column;gap:6px}.position-slider{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:3px;outline:none;cursor:pointer}.position-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:transform .15s ease}.position-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.position-slider::-moz-range-thumb{width:16px;height:16px;background:#3b82f6;border:none;border-radius:50%;cursor:pointer}.viewport{flex:1;width:100%;height:100%;min-height:400px;background:var(--bg-void);cursor:grab;outline:none;position:relative;box-shadow:inset 0 0 100px #0000004d}.viewport:active{cursor:grabbing}.viewport-edge-mode{cursor:crosshair;box-shadow:inset 0 0 100px #0000004d,inset 0 0 30px var(--accent-edge-dim)}.viewport-edge-mode:after{content:"";position:absolute;inset:0;border:2px solid var(--accent-edge);border-radius:0;opacity:.5;pointer-events:none;animation:glow-green 2s ease-in-out infinite}@keyframes glow-green{0%,to{box-shadow:inset 0 0 20px var(--accent-edge-dim);border-color:var(--accent-edge)}50%{box-shadow:inset 0 0 40px #10b98133;border-color:#10b981b3}}.viewport-sketch-mode{cursor:crosshair;box-shadow:inset 0 0 100px #0000004d,inset 0 0 40px var(--accent-sketch-dim)}.viewport-sketch-mode:after{content:"";position:absolute;inset:0;border:2px solid var(--accent-sketch);border-radius:0;opacity:.6;pointer-events:none;animation:glow-purple 2s ease-in-out infinite}@keyframes glow-purple{0%,to{box-shadow:inset 0 0 20px var(--accent-sketch-dim);border-color:var(--accent-sketch)}50%{box-shadow:inset 0 0 50px #a855f733;border-color:#a855f7cc}}.selection-box{position:absolute;border:1px dashed var(--accent-primary);background:#00d9ff1a;pointer-events:none;z-index:100}.confirm-modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;z-index:10000;animation:fadeIn .15s ease-out}.confirm-modal{background:linear-gradient(135deg,#1e1e2e,#252535);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px;max-height:calc(100vh - 32px);overflow-y:auto;max-width:400px;width:90%;text-align:center;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-modal-icon{width:56px;height:56px;margin:0 auto 16px;color:#ff6b6b;background:#ff6b6b26;border-radius:50%;display:flex;align-items:center;justify-content:center}.confirm-modal-icon svg{width:28px;height:28px}.confirm-modal-title{margin:0 0 8px;font-size:20px;font-weight:600;color:#fff}.confirm-modal-message{margin:0 0 24px;font-size:14px;color:#fff9;line-height:1.5}.confirm-modal-actions{display:flex;gap:12px;justify-content:center}.confirm-modal-btn{padding:12px 24px;font-size:14px;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.confirm-modal-btn.cancel{background:#ffffff1a;color:#fffc}.confirm-modal-btn.cancel:hover{background:#ffffff26;color:#fff}.confirm-modal-btn.confirm{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.confirm-modal-btn.confirm:hover{background:linear-gradient(135deg,#f55,#dd4a4a);transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b66}.confirm-modal-btn.primary{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff}.confirm-modal-btn.primary:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb66}.workplane-selector-backdrop{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.workplane-selector{background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--accent-sketch);box-shadow:var(--shadow-xl),0 0 60px var(--accent-sketch-dim);width:380px;max-width:90vw;overflow:hidden;animation:fadeInUp .3s ease-out}.ws-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-default);background:var(--bg-elevated)}.ws-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.ws-close{width:28px;height:28px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;font-size:14px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.ws-close:hover{background:var(--error-dim);border-color:var(--error);color:var(--error)}.ws-content{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-xl)}.ws-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ws-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ws-name-input{padding:var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);transition:all var(--transition-fast)}.ws-name-input:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 3px var(--accent-sketch-dim)}.ws-name-input::placeholder{color:var(--text-disabled)}.ws-planes{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ws-plane-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.ws-plane-btn:hover{background:var(--bg-hover);border-color:var(--border-strong);transform:translate(4px)}.ws-plane-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);font-size:var(--font-size-md);color:var(--bg-primary);flex-shrink:0}.ws-plane-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.ws-plane-name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-primary)}.ws-plane-desc{font-size:var(--font-size-sm);color:var(--text-muted)}.ws-hint{padding:var(--spacing-md);background:var(--warning-dim);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--warning);text-align:center}.revolve-panel-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.revolve-panel{background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:320px;max-width:400px;border:1px solid var(--border)}.rp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.rp-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.rp-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.rp-close:hover{color:var(--text)}.rp-content{padding:16px 20px}.rp-section{margin-bottom:16px}.rp-section:last-child{margin-bottom:0}.rp-label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.rp-sketch-info{display:flex;justify-content:space-between;align-items:center}.rp-sketch-name{font-weight:500;color:var(--text)}.rp-status{font-size:12px;padding:4px 8px;border-radius:4px}.rp-status.closed{background:#4caf5026;color:#4caf50}.rp-status.open{background:#f4433626;color:#f44336}.rp-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box}.rp-input:focus{outline:none;border-color:var(--accent)}.rp-axis-btns{display:flex;gap:8px}.rp-axis-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.rp-axis-btn:hover{background:var(--surface);color:var(--text)}.rp-axis-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.rp-angle-presets{display:flex;gap:6px;margin-top:8px}.rp-angle-presets button{flex:1;padding:6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text-muted);font-size:11px;cursor:pointer;transition:all .15s ease}.rp-angle-presets button:hover{background:var(--surface);color:var(--text);border-color:var(--accent)}.rp-op-btns{display:flex;gap:8px}.rp-op-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.rp-op-btn:hover{background:var(--surface);color:var(--text)}.rp-op-btn.add.active{background:#4caf5026;border-color:#4caf50;color:#4caf50}.rp-op-btn.cut.active{background:#f4433626;border-color:#f44336;color:#f44336}.rp-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box;cursor:pointer}.rp-select:focus{outline:none;border-color:var(--accent)}.rp-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.rp-actions{display:flex;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.rp-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.rp-btn.cancel{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.rp-btn.cancel:hover{background:var(--surface);color:var(--text)}.rp-btn.confirm{background:var(--accent);color:#fff}.rp-btn.confirm:hover:not(:disabled){filter:brightness(1.1)}.rp-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.rp-warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffc107;padding:10px 12px;border-radius:6px;font-size:13px}.rp-hint{font-size:11px;color:var(--text-disabled);margin-top:6px;font-style:italic}.shell-panel-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.shell-panel{background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:320px;max-width:400px;border:1px solid var(--border)}.sp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.sp-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.sp-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.sp-close:hover{color:var(--text)}.sp-content{padding:16px 20px}.sp-section{margin-bottom:16px}.sp-label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.sp-input,.sp-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box}.sp-input:focus,.sp-select:focus{outline:none;border-color:var(--accent)}.sp-select{cursor:pointer}.sp-info{background:#6495ed1a;border:1px solid rgba(100,149,237,.3);border-radius:6px;padding:12px;margin-bottom:16px}.sp-info p{margin:0 0 8px;font-size:13px;color:var(--text-muted)}.sp-info p:last-child{margin-bottom:0}.sp-info .sp-note{font-style:italic;color:#6495edcc}.sp-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.sp-actions{display:flex;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.sp-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.sp-btn.cancel{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.sp-btn.cancel:hover{background:var(--surface);color:var(--text)}.sp-btn.confirm{background:var(--accent);color:#fff}.sp-btn.confirm:hover:not(:disabled){filter:brightness(1.1)}.sp-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.sweep-panel-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.sweep-panel{background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:340px;max-width:420px;border:1px solid var(--border)}.swp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.swp-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.swp-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.swp-close:hover{color:var(--text)}.swp-content{padding:16px 20px}.swp-section{margin-bottom:16px}.swp-label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.swp-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box;cursor:pointer}.swp-select:focus{outline:none;border-color:var(--accent)}.swp-warning{display:block;color:#ff9800;font-size:12px;margin-top:4px}.swp-op-btns{display:flex;gap:8px}.swp-op-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.swp-op-btn:hover{background:var(--surface);color:var(--text)}.swp-op-btn.add.active{background:#4caf5026;border-color:#4caf50;color:#4caf50}.swp-op-btn.cut.active{background:#f4433626;border-color:#f44336;color:#f44336}.swp-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.swp-actions{display:flex;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.swp-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.swp-btn.cancel{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.swp-btn.cancel:hover{background:var(--surface);color:var(--text)}.swp-btn.confirm{background:var(--accent);color:#fff}.swp-btn.confirm:hover:not(:disabled){filter:brightness(1.1)}.swp-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.loft-panel-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.loft-panel{background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:360px;max-width:450px;border:1px solid var(--border)}.lp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.lp-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.lp-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.lp-close:hover{color:var(--text)}.lp-content{padding:16px 20px}.lp-section{margin-bottom:16px}.lp-label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.lp-sketch-list{border:1px solid var(--border);border-radius:6px;background:var(--bg);max-height:180px;overflow-y:auto;margin-bottom:8px}.lp-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.lp-sketch-item{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border)}.lp-sketch-item:last-child{border-bottom:none}.lp-sketch-num{width:24px;height:24px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;margin-right:10px}.lp-sketch-name{flex:1;color:var(--text);font-size:14px}.lp-sketch-actions{display:flex;gap:4px}.lp-sketch-actions button{width:24px;height:24px;border:none;background:var(--surface);color:var(--text-muted);border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.lp-sketch-actions button:hover:not(:disabled){background:var(--border);color:var(--text)}.lp-sketch-actions button:disabled{opacity:.3;cursor:not-allowed}.lp-add-select{width:100%;padding:8px 12px;border:1px dashed var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer}.lp-add-select:hover{border-color:var(--accent);color:var(--accent)}.lp-options{display:flex;flex-direction:column;gap:8px}.lp-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text);font-size:14px}.lp-checkbox input{width:16px;height:16px;cursor:pointer}.lp-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box;cursor:pointer}.lp-select:focus{outline:none;border-color:var(--accent)}.lp-op-btns{display:flex;gap:8px}.lp-op-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.lp-op-btn:hover{background:var(--surface);color:var(--text)}.lp-op-btn.add.active{background:#4caf5026;border-color:#4caf50;color:#4caf50}.lp-op-btn.cut.active{background:#f4433626;border-color:#f44336;color:#f44336}.lp-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.lp-actions{display:flex;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.lp-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.lp-btn.cancel{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.lp-btn.cancel:hover{background:var(--surface);color:var(--text)}.lp-btn.confirm{background:var(--accent);color:#fff}.lp-btn.confirm:hover:not(:disabled){filter:brightness(1.1)}.lp-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.draft-panel-backdrop{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.draft-panel{background:var(--surface);border-radius:12px;box-shadow:0 8px 32px #0000004d;min-width:320px;max-width:400px;border:1px solid var(--border)}.dp-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.dp-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.dp-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px;line-height:1}.dp-close:hover{color:var(--text)}.dp-content{padding:16px 20px}.dp-section{margin-bottom:16px}.dp-label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.dp-input,.dp-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;box-sizing:border-box}.dp-input:focus,.dp-select:focus{outline:none;border-color:var(--accent)}.dp-select{cursor:pointer}.dp-angle-presets{display:flex;gap:6px;margin-top:8px}.dp-angle-presets button{flex:1;padding:6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text-muted);font-size:11px;cursor:pointer;transition:all .15s ease}.dp-angle-presets button:hover{background:var(--surface);color:var(--text);border-color:var(--accent)}.dp-dir-btns{display:flex;gap:8px}.dp-dir-btn{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s ease}.dp-dir-btn:hover{background:var(--surface);color:var(--text)}.dp-dir-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.dp-info{background:#6495ed1a;border:1px solid rgba(100,149,237,.3);border-radius:6px;padding:12px;margin-bottom:16px}.dp-info p{margin:0 0 8px;font-size:13px;color:var(--text-muted)}.dp-info p:last-child{margin-bottom:0}.dp-info .dp-note{font-style:italic;color:#6495edcc}.dp-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#f44336;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.dp-actions{display:flex;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.dp-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.dp-btn.cancel{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.dp-btn.cancel:hover{background:var(--surface);color:var(--text)}.dp-btn.confirm{background:var(--accent);color:#fff}.dp-btn.confirm:hover:not(:disabled){filter:brightness(1.1)}.dp-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.animate-spin{animation:spin 1s linear infinite}.toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:linear-gradient(180deg,#1a1f28,#151a22);border-bottom:1px solid rgba(255,255,255,.06);min-height:44px;max-height:44px;position:relative;z-index:50;overflow-x:auto;overflow-y:hidden;flex-shrink:0}.toolbar-section{display:flex;align-items:center;gap:2px;padding:2px var(--spacing-xs);background:transparent;border:none}.toolbar-label{font-size:7px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-disabled);padding:0 2px;white-space:nowrap}.toolbar-section>div{display:flex;align-items:center;gap:var(--spacing-xs)}.toolbar-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;padding:4px 8px;min-width:auto;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:9px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);position:relative}.toolbar-btn svg{width:16px;height:16px}.toolbar-btn span{font-size:10px;white-space:nowrap}.toolbar-btn:hover:not(:disabled){background:#ffffff14;border-color:#ffffff1a;color:var(--text-primary)}.toolbar-btn:active:not(:disabled){transform:scale(.96)}.toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar-btn-primary{background:transparent;border-color:var(--border-subtle);color:var(--text-secondary)}.toolbar-btn-primary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.toolbar-divider{width:1px;height:48px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.1),transparent);margin:0 var(--spacing-xs)}.toolbar-status{margin-left:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--accent-primary);padding:var(--spacing-xs) var(--spacing-md);background:var(--accent-primary-dim);border:1px solid rgba(0,217,255,.2);border-radius:var(--radius-full)}.toolbar-export-status{font-size:9px;font-weight:var(--font-weight-medium);color:var(--text-muted);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);padding:2px 8px;white-space:nowrap}.toolbar-export-cta{margin-left:6px;padding:2px 8px;background:#3b82f62e;border:1px solid rgba(59,130,246,.45);border-radius:var(--radius-full);color:#dbeafe;font-size:9px;font-weight:600;cursor:pointer;transition:all .2s ease}.toolbar-export-cta:hover{background:#3b82f64d;border-color:#3b82f6b3}.toolbar-btn-active{background:#10b98126!important;border-color:var(--accent-edge)!important;color:var(--accent-edge)!important}.toolbar-btn-active:hover:not(:disabled){background:#10b98140!important}.toolbar-input{padding:var(--spacing-xs) var(--spacing-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);width:50px;text-align:center;transition:all var(--transition-fast)}.toolbar-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-dim)}.toolbar-btn-sketch{background:var(--accent-sketch-dim);border-color:#8b5cf64d;color:var(--accent-sketch)}.toolbar-btn-sketch:hover:not(:disabled){background:#8b5cf633;border-color:var(--accent-sketch);color:var(--accent-sketch);box-shadow:0 0 8px #8b5cf64d}.toolbar-btn-feature{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.toolbar-btn-feature:hover:not(:disabled){background:#f59e0b33;border-color:#f59e0b;color:#fbbf24;box-shadow:0 0 8px #f59e0b4d}.sketch-active-badge{font-size:9px;font-weight:var(--font-weight-medium);color:var(--accent-sketch);background:#a855f726;padding:2px var(--spacing-sm);border-radius:var(--radius-full);border:1px solid rgba(168,85,247,.3)}.toolbar-btn-boolean{background:var(--accent-boolean-dim);border-color:#ec48994d;color:var(--accent-boolean)}.toolbar-btn-boolean:hover:not(:disabled){background:#ec489933;border-color:var(--accent-boolean);color:var(--accent-boolean);box-shadow:0 0 8px #ec48994d}.toolbar-btn-primitive{background:var(--accent-primitive-dim);border-color:#f59e0b4d;color:var(--accent-primitive)}.toolbar-btn-primitive:hover:not(:disabled){background:#f59e0b33;border-color:var(--accent-primitive);color:var(--accent-primitive);box-shadow:0 0 8px #f59e0b4d}.toolbar-btn-loading{pointer-events:none}.toolbar-btn-measure{background:#00d9ff1a;border-color:#00d9ff4d;color:#00d9ff}.toolbar-btn-measure:hover:not(:disabled){background:#00d9ff33;border-color:#00d9ff;color:#00d9ff;box-shadow:0 0 8px #00d9ff4d}.context-menu{position:fixed;z-index:1000;background:#1e1e23fa;border:1px solid rgba(79,195,247,.3);border-radius:8px;padding:4px 0;min-width:150px;box-shadow:0 4px 20px #00000080;backdrop-filter:blur(10px)}.context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:#e0e0e0;font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease}.context-menu-item:hover{background:#4fc3f733}.context-menu-item.delete:hover{background:#f4433633;color:#ef5350}.object-list{display:flex;flex-direction:column;width:187px;min-width:155px;background:linear-gradient(180deg,#1a1f28,#13171e);border-right:1px solid rgba(255,255,255,.06);overflow:hidden}.object-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.06)}.object-count{background:#00d9ff1a;color:var(--accent-primary);padding:2px 6px;border-radius:var(--radius-full);font-size:9px;font-weight:var(--font-weight-semibold)}.object-list-items{flex:1;overflow-y:auto;padding:var(--spacing-xs)}.object-list-empty{padding:var(--spacing-xl) var(--spacing-md);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}.hint{font-size:var(--font-size-xs);color:var(--text-disabled);margin-top:var(--spacing-sm)}.object-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px var(--spacing-sm);margin-bottom:1px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);position:relative;margin-left:8px}.tree-node-group{display:block}.tree-toggle{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-muted);font-size:10px;border-radius:var(--radius-sm);cursor:pointer;padding:0;flex-shrink:0}.tree-toggle:hover{background:#ffffff14;color:var(--text-primary)}.tree-toggle.spacer{border:none;background:transparent;cursor:default;visibility:hidden}.child-item{margin-left:24px}.object-item:before{content:"";position:absolute;left:-8px;top:50%;width:8px;height:1px;background:#ffffff26}.object-item:after{content:"";position:absolute;left:-8px;top:0;bottom:0;width:1px;background:#ffffff1a}.object-item:first-child:after{top:50%}.object-item:last-child:after{bottom:50%}.object-item:only-child:after{display:none}.object-item:hover{background:#ffffff0d}.object-item.selected{background:#00d9ff1a;border-color:#00d9ff33}.object-item.selected .object-name{color:var(--accent-primary)}.object-icon{font-size:12px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:var(--radius-sm);flex-shrink:0}.object-name{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.object-rename-input{flex:1;min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);padding:2px 6px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.15);background:#00000059}.object-rename-input:focus{outline:none;border-color:#00d9ff80;box-shadow:0 0 0 1px #00d9ff40}.object-delete{opacity:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.object-item:hover .object-delete{opacity:1}.object-delete:hover{color:var(--error);background:#ef44441a}.object-list-footer{padding:var(--spacing-xs) var(--spacing-md);border-top:1px solid rgba(255,255,255,.06);text-align:center;font-size:9px;color:var(--text-disabled)}.object-list-items::-webkit-scrollbar{width:4px}.object-list-items::-webkit-scrollbar-track{background:transparent}.object-list-items::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-full)}.object-list-items::-webkit-scrollbar-thumb:hover{background:#ffffff40}.object-list.collapsed{width:32px;min-width:32px;max-width:32px;padding-top:var(--spacing-md)}.header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.collapse-toggle{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.collapse-toggle:hover{color:var(--accent-primary);background:#ffffff0d}.object-item.hidden-object{opacity:.4}.object-item.hidden-object .object-name{font-style:italic;color:var(--text-disabled)}.object-list-section-header{font-size:9px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-disabled);padding:var(--spacing-sm) var(--spacing-sm);margin-top:var(--spacing-xs);border-bottom:1px solid rgba(255,255,255,.05)}.object-list-section-header:first-child{margin-top:0}.sketch-item{border-left:2px solid rgba(139,92,246,.3);margin-left:0}.sketch-item.child-item{margin-left:24px}.sketch-item:before,.sketch-item:after{display:none}.sketch-item:hover{border-left-color:#8b5cf699;background:#8b5cf614}.sketch-item.active-sketch{background:#8b5cf626;border-left-color:var(--accent-sketch)}.sketch-item.active-sketch .object-name{color:var(--accent-sketch)}.sketch-role{font-size:8px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-disabled);background:#ffffff0f;padding:1px 5px;border-radius:var(--radius-sm);flex-shrink:0}.sketch-entity-count{font-size:9px;color:var(--text-disabled);background:#ffffff0d;padding:1px 5px;border-radius:var(--radius-full)}.editing-badge{font-size:8px;font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--accent-sketch);background:#8b5cf633;padding:2px 6px;border-radius:var(--radius-sm);animation:pulse 2s infinite}.transform-panel{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden}.transform-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-elevated);border-bottom:1px solid var(--border-default);box-shadow:inset 0 1px #ffffff08;cursor:pointer;user-select:none}.transform-header:hover{background:#ffffff08}.panel-collapse-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.panel-collapse-btn:hover{color:var(--text-primary);background:#ffffff1a}.transform-object-name{font-weight:var(--font-weight-medium);text-transform:none;color:var(--accent-primary);font-size:var(--font-size-sm);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--accent-primary-dim);padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.transform-empty{padding:var(--spacing-xl) var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:var(--font-size-md);line-height:1.6}.transform-section{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-subtle)}.transform-section:last-child{border-bottom:none}.transform-section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.3px;display:flex;align-items:center;gap:var(--spacing-sm)}.transform-inputs{display:flex;flex-direction:column;gap:var(--spacing-sm)}.transform-input-group{display:flex;align-items:center;gap:var(--spacing-sm)}.transform-input-label{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border-radius:var(--radius-sm);flex-shrink:0}.transform-input-group:nth-child(1) .transform-input-label{color:#ff6b6b;background:#ff6b6b26}.transform-input-group:nth-child(2) .transform-input-label{color:#51cf66;background:#51cf6626}.transform-input-group:nth-child(3) .transform-input-label{color:#4dabf7;background:#4dabf726}.transform-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);font-family:var(--font-mono);outline:none;transition:all var(--transition-fast);min-width:0}.transform-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim);background:var(--bg-elevated)}.transform-input:hover:not(:focus){border-color:var(--border-strong)}.transform-input::-webkit-outer-spin-button,.transform-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.transform-input[type=number]{-moz-appearance:textfield}.parametric-input{font-family:var(--font-mono)}.parametric-input.is-variable{border-color:var(--accent-primary);background:var(--accent-primary-dim);color:var(--accent-primary)}.parametric-resolved{font-size:var(--font-size-xs);color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;margin-left:var(--spacing-xs);padding:2px var(--spacing-xs);background:var(--bg-surface);border-radius:var(--radius-sm)}.param-hint{font-size:var(--font-size-xs);color:var(--text-disabled);font-weight:var(--font-weight-normal);text-transform:none;margin-left:var(--spacing-sm);font-style:italic}.transform-input-group .transform-input[type=text]{min-width:80px}.parameter-panel{background:var(--bg-secondary);border-top:1px solid var(--border-default);display:flex;flex-direction:column;min-height:150px;max-height:300px;overflow:hidden}.parameter-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-elevated);border-bottom:1px solid var(--border-default);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);box-shadow:inset 0 1px #ffffff08;cursor:pointer;user-select:none}.parameter-header:hover{background:#ffffff08}.parameter-add-btn{width:24px;height:24px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);color:var(--bg-primary);font-size:16px;font-weight:var(--font-weight-bold);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);box-shadow:0 2px 6px var(--accent-primary-dim)}.parameter-add-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 4px 12px var(--accent-primary-glow)}.parameter-add-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.parameter-empty{padding:var(--spacing-lg);color:var(--text-muted);font-size:var(--font-size-sm);text-align:center}.parameter-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.parameter-item{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);transition:all var(--transition-fast)}.parameter-item:hover{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary-dim)}.parameter-item.has-error{border-color:var(--error);box-shadow:0 0 0 1px var(--error-dim)}.parameter-item-new{border-color:var(--accent-primary);background:var(--accent-primary-dim);animation:fadeInUp .2s ease-out}.parameter-item-row{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.parameter-name{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--accent-primary);min-width:60px}.parameter-name-input{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--accent-primary);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:2px var(--spacing-sm);width:80px}.parameter-name-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-dim)}.parameter-name-input.has-error{border-color:var(--error)}.parameter-equals{color:var(--text-disabled);font-family:var(--font-mono);font-size:var(--font-size-sm)}.parameter-expression{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);flex:1;min-width:60px;transition:background var(--transition-fast)}.parameter-expression:hover{background:var(--bg-hover)}.parameter-expression-input{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:2px var(--spacing-sm);flex:1;min-width:60px}.parameter-expression-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 2px var(--accent-primary-dim)}.parameter-value{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-muted);margin-left:auto;background:var(--bg-elevated);padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.parameter-error{font-size:var(--font-size-xs);color:var(--error);margin-top:var(--spacing-xs);padding-left:var(--spacing-xs)}.parameter-deps{font-size:var(--font-size-xs);color:var(--text-disabled);margin-top:var(--spacing-xs);padding-left:var(--spacing-xs);font-style:italic}.parameter-item-actions{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-xs);justify-content:flex-end}.parameter-btn{width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.parameter-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.parameter-btn-confirm{background:var(--success);color:#fff}.parameter-btn-confirm:hover{background:#0ea271;transform:scale(1.1)}.parameter-btn-confirm:disabled{opacity:.5;cursor:not-allowed;transform:none}.parameter-btn-cancel{background:var(--error);color:#fff}.parameter-btn-cancel:hover{background:#dc2626;transform:scale(1.1)}.parameter-btn-danger:hover{background:var(--error);color:#fff}.pattern-panel{display:flex;flex-direction:column;background:var(--bg-secondary);border-top:1px solid var(--border-default);overflow-y:auto}.pattern-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-elevated);border-bottom:1px solid var(--border-default);box-shadow:inset 0 1px #ffffff08;cursor:pointer;user-select:none}.pattern-header:hover{background:#ffffff08}.pattern-object-name{font-weight:var(--font-weight-medium);text-transform:none;color:var(--accent-primary);font-size:var(--font-size-sm);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--accent-primary-dim);padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.pattern-empty{padding:var(--spacing-xl) var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:var(--font-size-md);line-height:1.6}.pattern-content{display:flex;flex-direction:column}.pattern-section{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-subtle)}.pattern-section:last-child{border-bottom:none}.pattern-section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.3px;display:block}.pattern-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);cursor:pointer;outline:none;transition:all var(--transition-fast)}.pattern-select:hover{border-color:var(--border-strong)}.pattern-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim)}.pattern-inputs{display:flex;flex-direction:column;gap:var(--spacing-sm)}.pattern-input-group{display:flex;align-items:center;gap:var(--spacing-sm)}.pattern-input-label{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--text-muted);background:var(--bg-surface);border-radius:var(--radius-sm);flex-shrink:0}.pattern-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);font-family:var(--font-mono);outline:none;transition:all var(--transition-fast)}.pattern-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim);background:var(--bg-elevated)}.pattern-input:hover:not(:focus){border-color:var(--border-strong)}.pattern-input::-webkit-outer-spin-button,.pattern-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pattern-input[type=number]{-moz-appearance:textfield}.pattern-apply-btn{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);border:none;border-radius:var(--radius-md);color:var(--bg-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 8px var(--accent-primary-dim)}.pattern-apply-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-primary-glow)}.pattern-apply-btn:active:not(:disabled){transform:translateY(0)}.pattern-apply-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-void);z-index:1000;animation:fadeIn .3s ease-out}.loading-overlay:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 40%,rgba(0,217,255,.08) 0%,transparent 60%),radial-gradient(ellipse 80% 60% at 30% 70%,rgba(168,85,247,.05) 0%,transparent 50%);animation:pulse 4s ease-in-out infinite}.loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);padding:var(--spacing-2xl);position:relative;z-index:1;animation:fadeInUp .5s ease-out .2s backwards}.loading-spinner{position:relative;width:100px;height:100px}.spinner-ring{position:absolute;inset:0;border:2px solid transparent;border-radius:50%}.spinner-ring:nth-child(1){border-top-color:var(--accent-primary);border-right-color:#00d9ff4d;animation:spinSlow 2s linear infinite;filter:drop-shadow(0 0 8px var(--accent-primary-glow))}.spinner-ring:nth-child(2){inset:12px;border-left-color:var(--accent-sketch);border-bottom-color:#a855f74d;animation:spinFast 1.5s linear infinite reverse;filter:drop-shadow(0 0 6px var(--accent-sketch-dim))}.spinner-ring:nth-child(3){inset:24px;border-top-color:var(--success);border-right-color:#10b9814d;animation:spinSlow 2.5s linear infinite;filter:drop-shadow(0 0 4px var(--success-dim))}.loading-spinner:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background:var(--accent-primary);border-radius:50%;animation:glow 2s ease-in-out infinite;box-shadow:0 0 20px var(--accent-primary-glow)}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinFast{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:-.5px;text-align:center;background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent-primary) 50%,var(--text-primary) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s ease-in-out infinite}.loading-subtitle{font-size:var(--font-size-md);color:var(--text-muted);font-family:var(--font-mono);text-align:center;animation:pulse 2s ease-in-out infinite}.loading-error-icon{font-size:56px;filter:drop-shadow(0 0 20px var(--error-dim))}.loading-error{font-size:var(--font-size-md);color:var(--error);text-align:center;max-width:320px;line-height:1.6;background:var(--error-dim);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid rgba(239,68,68,.3)}.loading-retry{margin-top:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);border:none;border-radius:var(--radius-lg);color:var(--bg-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast);box-shadow:0 4px 16px var(--accent-primary-dim)}.loading-retry:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-primary-glow)}.loading-retry:active{transform:translateY(0)}.loading-overlay.fade-out{animation:fadeOut .4s ease-out forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0;visibility:hidden}}.extrude-panel-backdrop{position:fixed;inset:0;background:transparent;pointer-events:none;display:flex;align-items:flex-start;justify-content:flex-end;padding:80px 20px 20px;z-index:9999;animation:fadeIn .2s ease-out}.extrude-panel{background:#0f1219f2;border-radius:var(--radius-xl);border:1px solid var(--accent-sketch);box-shadow:var(--shadow-xl),0 0 60px var(--accent-sketch-dim);width:340px;max-width:90vw;overflow:hidden;animation:fadeInUp .3s ease-out;pointer-events:auto}.ep-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-default);background:var(--bg-elevated)}.ep-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.ep-close{width:28px;height:28px;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;font-size:14px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.ep-close:hover{background:var(--error-dim);border-color:var(--error);color:var(--error)}.ep-content{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.ep-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ep-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ep-sketch-info{display:flex;align-items:center;justify-content:space-between}.ep-sketch-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.ep-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full)}.ep-status.closed{background:var(--success-dim);color:var(--success);border:1px solid rgba(16,185,129,.3)}.ep-status.open{background:var(--error-dim);color:var(--error);border:1px solid rgba(239,68,68,.3)}.ep-input{padding:var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);font-family:var(--font-mono);transition:all var(--transition-fast)}.ep-input:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 3px var(--accent-sketch-dim)}.ep-direction-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.ep-dir-btn{padding:var(--spacing-sm) var(--spacing-xs);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.ep-dir-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.ep-dir-btn.active{background:var(--accent-sketch-dim);border-color:var(--accent-sketch);color:var(--accent-sketch)}.ep-op-btns{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.ep-op-btn{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.ep-op-btn.add{background:var(--success-dim);border:1px solid rgba(16,185,129,.3);color:var(--success)}.ep-op-btn.add:hover{background:#10b98140}.ep-op-btn.add.active{background:#10b9814d;border-color:var(--success);box-shadow:0 0 12px var(--success-dim)}.ep-op-btn.cut{background:var(--error-dim);border:1px solid rgba(239,68,68,.3);color:var(--error)}.ep-op-btn.cut:hover{background:#ef444440}.ep-op-btn.cut.active{background:#ef44444d;border-color:var(--error);box-shadow:0 0 12px var(--error-dim)}.ep-select{padding:var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-md);cursor:pointer;transition:all var(--transition-fast)}.ep-select:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 3px var(--accent-sketch-dim)}.ep-error{padding:var(--spacing-md);background:var(--error-dim);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--error);font-size:var(--font-size-md)}.ep-actions{display:flex;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-default)}.ep-btn{flex:1;padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.ep-btn.cancel{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary)}.ep-btn.cancel:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.ep-btn.confirm{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);border:none;color:var(--bg-primary);box-shadow:0 2px 8px var(--accent-primary-dim)}.ep-btn.confirm:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px var(--accent-primary-glow)}.ep-btn.confirm:disabled{opacity:.4;cursor:not-allowed;transform:none}.ep-body-list{max-height:150px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm)}.ep-body-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.ep-body-item:hover{background:var(--bg-hover)}.ep-body-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-sketch);cursor:pointer}.ep-body-name{font-size:var(--font-size-md);color:var(--text-primary)}.ep-no-bodies{padding:var(--spacing-md);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.sketch-toolbar{position:absolute;top:16px;left:16px;width:200px;max-height:calc(100vh - 120px);overflow-y:auto;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-xl);border:1px solid var(--accent-sketch);box-shadow:var(--shadow-xl),0 0 30px var(--accent-sketch-dim),inset 0 1px #ffffff0d;padding:var(--spacing-md);z-index:100;display:flex;flex-direction:column;gap:var(--spacing-md);animation:fadeInUp .2s ease-out}.sketch-toolbar-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-default)}.sketch-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--text-primary)}.workplane-badge{background:var(--accent-sketch-dim);color:var(--accent-sketch);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid rgba(168,85,247,.3)}.sketch-toolbar-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.section-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:var(--font-weight-medium)}.tool-group{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.sketch-tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-xs);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.sketch-tool-btn:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary);transform:translateY(-1px)}.sketch-tool-btn.active{background:var(--accent-sketch-dim);border-color:var(--accent-sketch);color:var(--accent-sketch);box-shadow:0 0 12px var(--accent-sketch-dim)}.tool-icon{font-size:18px;line-height:1}.tool-label{font-size:var(--font-size-xs);margin-top:2px;font-weight:var(--font-weight-medium)}.drawing-status{background:var(--success-dim);color:var(--success);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:center;font-weight:var(--font-weight-medium);border:1px solid rgba(16,185,129,.3);animation:pulse 2s ease-in-out infinite}.checkbox-option{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs) 0}.checkbox-option:hover{color:var(--text-primary)}.checkbox-option input{accent-color:var(--accent-sketch);width:14px;height:14px}.grid-size-input{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.grid-size-input input{width:60px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.grid-size-input input:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 2px var(--accent-sketch-dim)}.coord-input-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.coord-inputs{display:flex;align-items:center;gap:var(--spacing-xs)}.coord-field{flex:1;padding:var(--spacing-sm);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.coord-field:focus{outline:none;border-color:var(--accent-sketch);box-shadow:0 0 0 2px var(--accent-sketch-dim)}.coord-separator{color:var(--text-disabled);font-weight:var(--font-weight-bold)}.coord-submit{padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-sketch-dim);border:1px solid rgba(168,85,247,.3);border-radius:var(--radius-sm);color:var(--accent-sketch);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.coord-submit:hover{background:#a855f740;border-color:var(--accent-sketch)}.coord-disabled{font-size:var(--font-size-xs);color:var(--text-disabled);font-style:italic;text-align:center}.action-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.view-btn{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary)}.view-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.delete-btn{background:var(--error-dim);border:1px solid rgba(239,68,68,.3);color:var(--error)}.delete-btn:hover:not(:disabled){background:#ef444440;border-color:var(--error)}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.exit-btn{background:var(--success-dim);border:1px solid rgba(16,185,129,.3);color:var(--success)}.exit-btn:hover{background:#10b98140;border-color:var(--success)}.extrude-btn{background:linear-gradient(135deg,var(--accent-sketch-dim) 0%,rgba(168,85,247,.1) 100%);border:1px solid rgba(168,85,247,.4);color:#c084fc}.extrude-btn:hover:not(:disabled){background:linear-gradient(135deg,#a855f74d,#a855f733);border-color:var(--accent-sketch);box-shadow:0 0 16px var(--accent-sketch-dim)}.extrude-btn:disabled{opacity:.4;cursor:not-allowed}.sketch-stats{text-align:center;font-size:var(--font-size-xs);color:var(--text-disabled);padding-top:var(--spacing-sm);border-top:1px solid var(--border-subtle);font-family:var(--font-mono)}.sketch-panel{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-default);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.sketch-panel-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-default)}.panel-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.status-badge{font-size:var(--font-size-xs);font-family:var(--font-mono);padding:2px 8px;border-radius:var(--radius-md)}.status-green{background:var(--success-dim);color:var(--success)}.status-blue{background:var(--accent-primary-dim);color:var(--accent-primary)}.status-red{background:var(--error-dim);color:var(--error)}.sketch-panel-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.section-header{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.no-selection{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic}.entity-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.entity-type{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--accent-sketch)}.entity-prop{display:flex;justify-content:space-between;font-size:var(--font-size-xs)}.prop-label{color:var(--text-muted)}.prop-value{font-family:var(--font-mono);color:var(--text-secondary)}.constraint-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs)}.constraint-btn-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);min-height:50px}.constraint-btn-large:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-primary)}.constraint-btn-large:active:not(:disabled){transform:scale(.96)}.constraint-btn-large:disabled{opacity:.4;cursor:not-allowed}.constraint-btn-large .btn-icon{font-size:var(--font-size-lg);line-height:1;color:var(--text-primary)}.constraint-btn-large .btn-label{font-size:9px;font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-top:2px}.dimension-input-row{display:flex;gap:var(--spacing-xs)}.dimension-input{flex:1;font-family:var(--font-mono);font-size:var(--font-size-md);padding:var(--spacing-sm);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary)}.dimension-input:focus{border-color:var(--accent-primary);outline:none}.dimension-buttons{display:flex;gap:var(--spacing-xs)}.dimension-btn{flex:1;padding:var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary)}.dimension-btn:hover:not(:disabled){background:var(--accent-primary-dim);border-color:var(--accent-primary);color:var(--accent-primary)}.dimension-btn:disabled{opacity:.4;cursor:not-allowed}.constraint-list{display:flex;flex-direction:column;gap:2px;max-height:120px;overflow-y:auto}.no-constraints{font-size:var(--font-size-xs);color:var(--text-muted);font-style:italic}.constraint-item{font-size:var(--font-size-xs);padding:2px 6px;background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);text-transform:capitalize}.more-constraints{font-size:var(--font-size-xs);color:var(--text-muted);font-style:italic;padding:2px 6px}.signin-modal-overlay{position:fixed;inset:0;background:#03060e99;display:flex;align-items:center;justify-content:center;z-index:2000}.signin-modal{width:min(360px,90vw);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-lg);text-align:center}.signin-modal-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin-bottom:8px}.signin-modal-message{font-size:var(--font-size-sm);color:var(--text-muted);margin:0 0 12px}.signin-modal-input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);margin-bottom:10px}.signin-modal-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00d9ff26}.signin-modal-error{margin-top:8px;font-size:var(--font-size-xs);color:#fca5a5}.signin-modal-toggle{display:flex;justify-content:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:4px}.signin-modal-forgot{display:flex;justify-content:flex-end;margin-top:4px}.signin-modal-link{background:none;border:none;color:#93c5fd;cursor:pointer;font-size:var(--font-size-xs);padding:0}.signin-modal-link:hover{color:#bfdbfe}.signin-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.signin-modal-btn{padding:6px 12px;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.signin-modal-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-subtle)}.signin-modal-btn.primary{background:#2563eb;border-color:#2563eb66;color:#fff}.signin-modal-btn.primary:hover:not(:disabled){background:#1d4ed8}.signin-modal-btn:disabled{opacity:.6;cursor:not-allowed}.signin-modal-wide{width:min(480px,90vw)}.signin-terms-container{max-height:280px;overflow-y:auto;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:16px;margin:12px 0;text-align:left}.signin-terms-container::-webkit-scrollbar{width:8px}.signin-terms-container::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.signin-terms-container::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px}.signin-terms-container::-webkit-scrollbar-thumb:hover{background:var(--border-subtle)}.signin-terms-content h1{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:0 0 12px}.signin-terms-content h2{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:16px 0 8px}.signin-terms-content p{font-size:var(--font-size-xs);color:var(--text-muted);margin:4px 0;line-height:1.5}.signin-terms-content li{font-size:var(--font-size-xs);color:var(--text-muted);margin:2px 0 2px 16px;line-height:1.5}.signin-terms-content hr{border:none;border-top:1px solid var(--border-default);margin:16px 0}.signin-scroll-hint{font-size:var(--font-size-xs);color:#fbbf24;text-align:center;margin:0;animation:bounce-hint 1s ease-in-out infinite}@keyframes bounce-hint{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.signin-terms-checkbox{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--text-secondary);margin:12px 0;cursor:pointer;user-select:none}.signin-terms-checkbox.disabled{opacity:.5;cursor:not-allowed}.signin-terms-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb;cursor:inherit}.signin-terms-checkbox span{flex:1}.chat-panel-toggle{position:fixed;right:20px;bottom:20px;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;border-radius:var(--radius-xl);cursor:pointer;font-weight:var(--font-weight-semibold);box-shadow:0 4px 20px #3b82f666,0 0 40px #3b82f626;transition:all var(--transition-normal);z-index:100}.chat-panel-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 30px #3b82f680,0 0 60px #3b82f640}.chat-panel{position:fixed;right:20px;bottom:20px;width:266px;height:500px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.chat-panel-title{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:#3b82f6}.chat-panel-actions{display:flex;gap:var(--spacing-xs)}.chat-panel-btn{background:transparent;border:none;color:var(--text-muted);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.chat-panel-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.chat-panel-credits{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-default);color:var(--text-muted);font-size:var(--font-size-xs)}.chat-panel-upgrade-btn{padding:4px 10px;background:#2563eb;border:1px solid rgba(37,99,235,.4);border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast)}.chat-panel-upgrade-btn:hover:not(:disabled){background:#1d4ed8}.chat-panel-upgrade-btn:disabled{opacity:.5;cursor:not-allowed}.chat-panel-messages{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.chat-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted);gap:var(--spacing-md)}.chat-panel-empty p{margin:0;font-size:var(--font-size-base)}.chat-panel-examples{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%;margin-top:var(--spacing-md)}.chat-panel-examples button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-sm);text-align:left;transition:all var(--transition-fast)}.chat-panel-examples button:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-primary)}.chat-message{max-width:85%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.5}.chat-message-user{align-self:flex-end;background:var(--accent-primary);color:var(--text-inverse);border-bottom-right-radius:var(--radius-xs)}.chat-message-assistant{align-self:flex-start;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-bottom-left-radius:var(--radius-xs)}.chat-message-loading{align-self:flex-start;display:flex;align-items:center;gap:var(--spacing-sm);background:var(--bg-surface);color:var(--text-muted);border:1px solid var(--border-subtle)}.chat-message-content{white-space:pre-wrap;word-wrap:break-word}.chat-message-ops{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-subtle)}.chat-op-badge{display:inline-flex;padding:2px 8px;background:#3b82f626;color:#3b82f6;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-family:var(--font-mono)}.chat-message-error{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:#ff6b9d1a;color:var(--accent-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.chat-panel-input{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-surface);border-top:1px solid var(--border-default)}.chat-panel-input input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast)}.chat-panel-input input:focus{outline:none;border-color:var(--accent-primary)}.chat-panel-input input::placeholder{color:var(--text-muted)}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#3b82f6;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all var(--transition-fast)}.chat-send-btn:hover:not(:disabled){background:#2563eb;transform:scale(1.05)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.bug-report-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:bugReportFadeIn .15s ease-out}@keyframes bugReportFadeIn{0%{opacity:0}to{opacity:1}}.bug-report-modal{background:linear-gradient(135deg,#1e1e2e,#252535);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px;max-width:480px;width:90%;box-shadow:0 20px 60px #00000080;animation:bugReportSlideUp .2s ease-out}@keyframes bugReportSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.bug-report-icon{width:56px;height:56px;margin:0 auto 16px;color:#ef4444;background:#ef444426;border-radius:50%;display:flex;align-items:center;justify-content:center}.bug-report-icon.success{color:#10b981;background:#10b98126}.bug-report-icon svg{width:28px;height:28px}.bug-report-title{margin:0 0 8px;font-size:20px;font-weight:600;color:#fff;text-align:center}.bug-report-message{margin:0 0 24px;font-size:14px;color:#fff9;line-height:1.5;text-align:center}.bug-report-form{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.bug-report-field{display:flex;flex-direction:column;gap:6px}.bug-report-field label{font-size:12px;font-weight:500;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.bug-report-field input,.bug-report-field textarea{width:100%;padding:12px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;transition:all .2s;resize:vertical}.bug-report-field input:focus,.bug-report-field textarea:focus{outline:none;border-color:#f59e0b;background:#ffffff14;box-shadow:0 0 0 3px #f59e0b26}.bug-report-field input::placeholder,.bug-report-field textarea::placeholder{color:#ffffff4d}.bug-report-actions{display:flex;gap:12px;justify-content:flex-end}.bug-report-btn{padding:12px 24px;font-size:14px;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.bug-report-btn.cancel{background:#ffffff1a;color:#fffc}.bug-report-btn.cancel:hover{background:#ffffff26;color:#fff}.bug-report-btn.submit{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.bug-report-btn.submit:hover:not(:disabled){background:linear-gradient(135deg,#fbbf24,#f59e0b);transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.bug-report-btn.submit:disabled{opacity:.5;cursor:not-allowed}.bug-report-error{margin-top:12px;padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:13px;text-align:center}.app-header{display:flex;align-items:center;justify-content:space-between;height:29px;padding:0 var(--spacing-md);flex-shrink:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);position:relative;z-index:1000;transition:transform .3s cubic-bezier(.4,0,.2,1)}.app-header.collapsed{transform:translateY(-100%)}.header-collapse-handle{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:60px;height:12px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-top:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1001;transition:all .2s ease}.header-collapse-handle:hover{background:var(--bg-elevated);border-color:var(--accent-primary-dim);height:14px;bottom:-14px}.handle-bar{width:24px;height:2px;background:var(--text-muted);border-radius:2px;transition:background .2s ease}.header-collapse-handle:hover .handle-bar{background:var(--accent-primary);box-shadow:0 0 6px var(--accent-primary-glow)}.app-header-left{display:flex;align-items:center;gap:var(--spacing-lg)}.app-logo{display:flex;align-items:center;gap:var(--spacing-sm)}.app-logo-icon{width:18px;height:18px;color:var(--accent-primary);filter:drop-shadow(0 0 4px var(--accent-primary-glow))}.app-logo-icon svg{width:100%;height:100%}.app-logo-text{font-size:var(--font-size-md);font-weight:700;color:var(--text-primary);letter-spacing:-.2px;text-transform:uppercase;font-size:11px;letter-spacing:1px;text-decoration:none}.app-logo-text:hover{text-decoration:none}.app-user-name{max-width:140px;font-size:10px;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-version-badge{font-size:9px;font-weight:600;color:var(--accent-primary);background:var(--accent-primary-dim);padding:1px 4px;border-radius:2px;border:1px solid var(--accent-primary-dim)}.app-header-tabs{display:flex;align-items:center;gap:2px;position:absolute;left:50%;transform:translate(-50%)}.app-header-tab{position:relative;padding:4px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:11px;font-weight:500;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.app-header-tab:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.app-header-tab.active{color:var(--accent-primary);background:var(--accent-primary-dim);border-color:var(--accent-primary-dim);box-shadow:0 0 10px #06b6d41a}.app-header-tab.disabled{color:var(--text-disabled);cursor:not-allowed;opacity:.5}.coming-soon-dot{position:absolute;top:4px;right:4px;width:4px;height:4px;background:var(--border-default);border-radius:50%}.app-header-right{display:flex;align-items:center;gap:var(--spacing-md)}.header-controls{display:flex;align-items:center;gap:2px}.header-pro-btn{padding:3px 8px;background:var(--accent-primary-dim);color:var(--accent-primary);font-size:10px;font-weight:700;text-transform:uppercase;border-radius:var(--radius-sm);border:2px solid rgba(248,113,113,.35);box-shadow:0 0 0 1px #38bdf840 inset;cursor:pointer;transition:all .2s ease}.header-pro-btn:hover{background:#06b6d433;border-color:#06b6d480}.header-icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.header-icon-btn:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-subtle)}.header-icon-btn svg{width:14px;height:14px}.header-badge{padding:2px 8px;background:var(--bg-surface);color:var(--text-secondary);font-size:10px;font-weight:600;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.header-signout-btn{padding:2px 8px;background:#ef44441f;color:#fca5a5;font-size:10px;font-weight:600;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid rgba(239,68,68,.3);cursor:pointer;transition:all .2s ease}.header-signout-btn:hover{color:#fee2e2;background:#ef444433;border-color:#ef444480}.header-icon-btn.bug-report-btn{color:#ef4444}.header-icon-btn.bug-report-btn:hover{color:#f87171;background:#ef44441a;border-color:#ef44444d}.header-icon-btn.clear-all-btn:hover{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.floating-action-bar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);z-index:80}.fab-actions{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:#171c24f2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff0d inset}.fab-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--spacing-md);min-width:64px;background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.fab-btn:hover:not(:disabled){color:var(--text-primary);background:#ffffff14;border-color:#ffffff1a}.fab-btn:active:not(:disabled){transform:scale(.96)}.fab-btn.active{color:var(--accent-sketch);background:var(--accent-sketch-dim);border-color:#a855f74d}.fab-btn:disabled,.fab-btn-disabled{opacity:.4;cursor:not-allowed}.fab-btn-genie{color:#3b82f6;background:#3b82f626;border-color:#3b82f64d}.fab-btn-genie:hover:not(:disabled){color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#3b82f6;box-shadow:0 0 24px #3b82f680}.fab-divider{width:1px;height:40px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.15),transparent);margin:0 var(--spacing-xs)}.fab-command-input{width:280px;position:relative}.fab-ai-remaining{display:inline-flex;align-items:center;gap:8px;font-size:10px;color:var(--text-muted);background:#171c24d9;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);padding:4px 10px;margin-top:6px}.fab-signin-btn{padding:2px 8px;background:#3b82f633;border:1px solid rgba(239,68,68,.8);border-radius:var(--radius-full);color:#dbeafe;font-size:10px;cursor:pointer;transition:all var(--transition-fast)}.fab-signin-btn:hover{background:#3b82f659;border-color:#3b82f6b3}.fab-command-input input{width:100%;padding:var(--spacing-sm) 40px var(--spacing-sm) var(--spacing-lg);background:#171c24e6;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--font-size-sm);text-align:center;transition:all var(--transition-fast)}.fab-command-input input::placeholder{color:var(--text-muted)}.fab-command-input input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00d9ff26;background:#171c24}.fab-command-input.focused input{text-align:left}.fab-command-input.focused input::placeholder{opacity:.5}.fab-command-input.processing{position:relative}.fab-command-input.processing input{padding-left:36px;color:var(--text-muted);border-color:#3b82f6;box-shadow:0 0 8px #3b82f666;animation:pulseGlow 1.5s ease-in-out infinite}.fab-command-input.listening input{border-color:#ef4444;box-shadow:0 0 8px #ef444466;animation:pulseListening 1.5s ease-in-out infinite}@keyframes pulseListening{0%,to{box-shadow:0 0 8px #ef44444d}50%{box-shadow:0 0 16px #ef444499}}@keyframes pulseGlow{0%,to{box-shadow:0 0 8px #3b82f64d}50%{box-shadow:0 0 16px #3b82f699}}.fab-spinner{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#3b82f6;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.stt-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.stt-btn:hover:not(:disabled){color:var(--text-primary);background:#ffffff14}.stt-btn.active{color:#ef4444!important;background:#ef44441a!important;animation:micPulse 2s ease-in-out infinite}@keyframes micPulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.1)}}.fab-sub-menu{position:absolute;bottom:calc(100% + 12px);left:20px;display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#171c24e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);box-shadow:0 12px 48px #00000080;animation:subMenuPop .3s cubic-bezier(.34,1.56,.64,1);transform-origin:bottom left;z-index:100}@keyframes subMenuPop{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.sub-menu-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--spacing-sm) var(--spacing-md);min-width:80px;background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:10px;font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.sub-menu-item:hover:not(:disabled){color:var(--text-primary);background:#ffffff14;border-color:#ffffff1a}.sub-menu-item.active{color:var(--accent-sketch);background:var(--accent-sketch-dim);border-color:#8b5cf64d}.sub-menu-item:disabled{opacity:.3;cursor:not-allowed}.fab-command-input.success input{border-color:#3b82f6;box-shadow:0 0 12px #3b82f680;animation:successPulse .6s ease-out}@keyframes successPulse{0%{box-shadow:0 0 20px #3b82f6cc}to{box-shadow:0 0 #3b82f600}}.fab-error-toast{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:12px;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef4444f2;backdrop-filter:blur(8px);border:1px solid rgba(255,100,100,.3);border-radius:var(--radius-lg);color:#fff;font-size:13px;font-weight:500;box-shadow:0 4px 24px #ef444466;animation:toastSlideIn .3s ease-out;cursor:pointer;white-space:nowrap}.fab-error-toast .toast-close{background:transparent;border:none;color:#ffffffb3;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.fab-error-toast .toast-close:hover{color:#fff}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.status-bar{display:flex;align-items:center;justify-content:space-between;height:18px;padding:0 var(--spacing-sm);background:linear-gradient(180deg,#1a1f28,#13171e);border-top:1px solid rgba(255,255,255,.06);font-size:10px;color:var(--text-muted);flex-shrink:0}.status-bar-left,.status-bar-center,.status-bar-right{display:flex;align-items:center;gap:var(--spacing-md)}.status-bar-left{flex:1}.status-bar-center{flex:0 0 auto}.status-bar-right{flex:1;justify-content:flex-end}.status-item{color:var(--text-secondary)}.status-coords{display:flex;align-items:center;gap:var(--spacing-lg);font-family:var(--font-mono)}.coord{color:var(--text-muted)}.coord-value{color:var(--text-secondary);min-width:60px;display:inline-block}.status-badge{padding:2px var(--spacing-sm);background:#ffffff0d;border-radius:var(--radius-sm);color:var(--text-muted)}.status-units{padding:2px var(--spacing-sm);background:#00d9ff1a;border-radius:var(--radius-sm);color:var(--accent-primary);font-weight:var(--font-weight-semibold)}.task-pane{display:flex;flex-direction:column;background:var(--bg-secondary);border-left:1px solid var(--border-default);transition:width var(--transition-normal)}.task-pane.collapsed{width:40px;min-width:40px}.task-pane.expanded{width:182px;min-width:182px}.task-pane-tabs-vertical{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-sm)}.task-pane-tab-vertical{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--spacing-sm);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);writing-mode:vertical-lr;text-orientation:mixed}.task-pane-tab-vertical:hover{color:var(--text-primary);background:#ffffff0d}.task-pane-tab-vertical.active{color:var(--accent-primary);background:#00d9ff1a}.tab-label-vertical{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-xs)}.task-pane-toggle{margin-top:auto;margin-bottom:var(--spacing-md);align-self:center;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.task-pane-toggle:hover{color:var(--text-primary);border-color:var(--accent-primary)}.task-pane-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-elevated);border-bottom:1px solid var(--border-default)}.task-pane-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary)}.task-pane-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.task-pane-close:hover{color:var(--text-primary);background:var(--bg-surface)}.task-pane-tabs-horizontal{display:flex;gap:2px;padding:var(--spacing-xs);background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.task-pane-tab{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.task-pane-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.task-pane-tab.active{color:var(--accent-primary);background:#00d9ff1a}.task-pane-content{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.task-pane-placeholder{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md);color:var(--text-muted)}.placeholder-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:var(--radius-lg);color:var(--text-disabled)}.placeholder-icon svg{width:24px;height:24px}.task-pane-placeholder h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0}.task-pane-placeholder p{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.placeholder-hint{font-size:var(--font-size-xs);color:var(--text-disabled);margin-top:var(--spacing-sm)}.plane-rotation-widget{display:flex;flex-direction:column;gap:8px;padding:10px;background:#1e1e23f2;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.plane-rotation-widget.compact{padding:6px;gap:4px}.prw-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.prw-reset-btn{margin-left:auto;padding:3px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffff80;cursor:pointer;transition:all .15s ease}.prw-reset-btn:hover{background:#ffffff1a;color:#fff;border-color:#fff6}.prw-visual{display:flex;justify-content:center;padding:8px 0}.prw-visual svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.prw-ring{transition:stroke .2s ease}.prw-ring:hover{stroke-opacity:.6}.prw-handle{cursor:grab;transition:all .15s ease;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.prw-handle:hover{r:10;filter:drop-shadow(0 0 8px currentColor)}.prw-handle.active{cursor:grabbing;r:12}.prw-inputs{display:flex;flex-direction:column;gap:4px}.prw-input-row{display:flex;align-items:center;gap:6px}.prw-label{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border-radius:3px;color:#fff}.prw-label-x{background:#ff6464}.prw-label-y{background:#64ff64;color:#1a1a1a}.prw-label-z{background:#64c8ff}.prw-input{width:50px;min-width:50px;max-width:50px;padding:4px 6px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-size:12px;font-family:SF Mono,Monaco,monospace;text-align:right;transition:border-color .15s ease}.prw-input:focus{outline:none;border-color:#3b82f6}.prw-input:hover{border-color:#ffffff4d}.prw-input::-webkit-inner-spin-button,.prw-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.prw-input{appearance:textfield;-moz-appearance:textfield}.prw-unit{font-size:11px;color:#fff6;width:12px}.plane-rotation-widget.compact .prw-header{font-size:10px}.plane-rotation-widget.compact .prw-input{padding:3px 5px;font-size:11px}.plane-rotation-widget.compact .prw-label{width:14px;height:14px;font-size:9px}.plane-navigator{position:fixed;top:75px;right:calc(var(--task-pane-width, 182px) + var(--right-panels-width, 260px) + 8px);z-index:9999;display:flex;flex-direction:column;gap:6px;background:#0f1219f2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;padding:10px;box-shadow:-4px 4px 16px #0006,0 0 0 1px #ffffff0d inset;min-width:240px;width:240px;transition:right .2s ease-out}.pn-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-xs);border-bottom:1px solid rgba(255,255,255,.08)}.pn-title{display:flex;align-items:center;gap:6px;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.pn-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.pn-close:hover{background:#ffffff1a;color:var(--text-primary)}.pn-current-plane{display:flex;align-items:center;gap:var(--spacing-md)}.pn-base-selector{position:relative}.pn-base-btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);background:#ffffff14;border:2px solid var(--plane-color, #64c8ff);border-radius:var(--radius-md);color:var(--plane-color, #64c8ff);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast);min-width:48px}.pn-base-btn:hover{background:#ffffff26}.pn-base-dropdown{position:absolute;top:100%;left:0;margin-top:4px;display:flex;flex-direction:column;gap:2px;background:var(--bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:4px;z-index:10}.pn-base-dropdown button{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.pn-base-dropdown button.xy{background:#64c8ff26;color:#64c8ff}.pn-base-dropdown button.xz{background:#64ff6426;color:#64ff64}.pn-base-dropdown button.yz{background:#ff646426;color:#ff6464}.pn-base-dropdown button:hover{filter:brightness(1.2)}.pn-offset{display:flex;align-items:center;gap:var(--spacing-sm);flex:1}.pn-offset-label{color:var(--text-muted);font-size:var(--font-size-sm)}.pn-offset-input{width:80px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-md);text-align:center}.pn-offset-input:focus{outline:none;border-color:var(--accent-primary)}.pn-nav{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 0}.pn-nav-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 10px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-sm);color:#60a5fa;font-size:10px;cursor:pointer;transition:all var(--transition-fast)}.pn-nav-btn:hover{background:#3b82f64d;border-color:#3b82f680}.pn-nav-btn:active{transform:scale(.95)}.pn-offset-display{padding:4px 8px;background:#ffffff0d;border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);min-width:80px;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-align:center}.pn-step-section{display:flex;align-items:center;gap:var(--spacing-sm);padding-top:var(--spacing-xs);border-top:1px solid rgba(255,255,255,.08)}.pn-step-label{color:var(--text-muted);font-size:var(--font-size-sm)}.pn-step-presets{display:flex;gap:4px;flex:1}.pn-step-btn{padding:var(--spacing-xs) var(--spacing-sm);background:#ffffff0d;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);min-width:32px}.pn-step-btn:hover{background:#ffffff1a;color:var(--text-primary)}.pn-step-btn.active{background:#3b82f633;border-color:#3b82f666;color:#60a5fa}.pn-step-custom{width:50px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);text-align:center}.pn-step-custom:focus{outline:none;border-color:var(--accent-primary)}.pn-actions{padding-top:4px}.pn-sketch-btn{width:100%;padding:6px 10px;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:var(--radius-sm);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.pn-sketch-btn:hover{filter:brightness(1.1);box-shadow:0 4px 12px #3b82f64d}.pn-sketch-btn:active{transform:scale(.98)}.pn-hint{text-align:center;color:var(--text-muted);font-size:var(--font-size-xs);padding-top:var(--spacing-xs)}.evaluate-panel{position:absolute;top:80px;right:280px;background:#1a1f28f2;backdrop-filter:blur(10px);border:1px solid rgba(0,217,255,.3);border-radius:6px;padding:20px 8px 8px;min-width:160px;max-width:180px;z-index:100;box-shadow:0 4px 16px #0006;cursor:default;user-select:none}.evaluate-panel.dragging{cursor:grabbing;opacity:.9}.evaluate-panel-drag-handle{position:absolute;top:0;left:0;right:0;height:18px;display:flex;align-items:center;justify-content:center;cursor:grab;color:#ffffff4d;border-radius:6px 6px 0 0;transition:all .2s}.evaluate-panel-drag-handle:hover{background:#ffffff0d;color:#00d9ff99}.evaluate-panel-header{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:#00d9ff;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1)}.evaluate-panel-header svg{width:12px;height:12px}.evaluate-result{margin-bottom:8px}.evaluate-distance{background:#00d9ff1a;border:1px solid rgba(0,217,255,.3);border-radius:4px;padding:4px 6px;text-align:center}.distance-value{font-size:13px;font-weight:600;color:#00d9ff;font-family:var(--font-mono, "JetBrains Mono", monospace)}.evaluate-hint{color:var(--text-secondary, #a0a0a0);font-size:9px;text-align:center;padding:4px;background:#ffffff08;border-radius:3px}.evaluate-circle-result{background:#ff00ff1a;border:1px solid rgba(255,0,255,.3);border-radius:4px;padding:6px}.circle-type{display:flex;align-items:center;gap:4px;font-size:10px;color:#f0f;margin-bottom:4px}.circle-values{display:flex;flex-direction:column;gap:2px}.circle-value{display:flex;align-items:center;gap:4px;font-size:10px;font-family:var(--font-mono, "JetBrains Mono", monospace)}.circle-value .label{color:#ff00ffb3;min-width:24px}.circle-value .value{color:#f0f;font-weight:600}.evaluate-setting-row.circle-mode label{color:#f0f}.evaluate-settings{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.evaluate-setting-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.evaluate-setting-row label{font-size:9px;color:var(--text-secondary, #a0a0a0)}.evaluate-select{padding:2px 4px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:var(--text-primary, #fff);font-size:9px;cursor:pointer;min-width:45px}.evaluate-select:focus{outline:none;border-color:#00d9ff}.evaluate-checkbox{width:12px;height:12px;cursor:pointer;accent-color:#00d9ff}.evaluate-components{display:flex;gap:4px;margin-bottom:6px;padding:4px;background:#ffffff05;border-radius:3px}.component-item{flex:1;font-size:8px;font-family:var(--font-mono, "JetBrains Mono", monospace);padding:2px 3px;border-radius:2px;text-align:center}.component-item.dx{background:#ff646426;color:#ff6b6b}.component-item.dy{background:#64ff6426;color:#6bff6b}.component-item.dz{background:#6464ff26;color:#6b6bff}.precision-control{display:flex;flex-direction:column;gap:3px}.precision-slider{flex:1;-webkit-appearance:none;appearance:none;height:3px;background:#ffffff1a;border-radius:2px;cursor:pointer}.precision-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;background:#00d9ff;border-radius:50%;cursor:pointer;transition:transform .2s}.precision-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.precision-value{font-size:9px;color:var(--text-secondary, #a0a0a0);text-align:left}.evaluate-points{border-top:1px solid rgba(255,255,255,.1);padding-top:6px}.points-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.points-header span{font-size:8px;color:var(--text-secondary, #a0a0a0)}.clear-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:3px;color:#ef4444;cursor:pointer;transition:all .2s}.clear-btn svg{width:10px;height:10px}.clear-btn:hover{background:#ef444433;border-color:#ef4444}.points-list{display:flex;flex-direction:column;gap:2px}.point-item{font-size:8px;font-family:var(--font-mono, "JetBrains Mono", monospace);color:var(--text-secondary, #a0a0a0);padding:2px 4px;background:#ffffff08;border-radius:2px}.auth-callback{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,rgba(59,130,246,.15),transparent 60%),linear-gradient(180deg,#111827,#0b0f14);color:#fff}.auth-callback-card{padding:32px 40px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#111827d9;box-shadow:0 20px 60px #00000073;text-align:center;min-width:280px}.auth-callback-title{font-size:20px;font-weight:600;margin-bottom:10px}.auth-callback-status{font-size:13px;color:#ffffffb3}.password-reset{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,rgba(29,78,216,.18),transparent 55%),#0b1220;color:var(--text-primary)}.password-reset-card{width:min(360px,90vw);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:24px;text-align:center;box-shadow:var(--shadow-lg)}.password-reset-title{font-size:var(--font-size-md);font-weight:600;margin-bottom:8px}.password-reset-message{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:16px}.password-reset-form{display:flex;flex-direction:column;gap:10px}.password-reset-input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm)}.password-reset-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00d9ff26}.password-reset-error{font-size:var(--font-size-xs);color:#fca5a5}.password-reset-btn{margin-top:6px;padding:8px 12px;background:#2563eb;border:1px solid rgba(37,99,235,.4);border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease}.password-reset-btn:hover{background:#1d4ed8}:root{--bg-void: #09090b;--bg-primary: #0c0e12;--bg-secondary: #14161b;--bg-elevated: #1a1d23;--bg-surface: #22252c;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(59, 130, 246, .08);--border-subtle: rgba(255, 255, 255, .05);--border-default: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .12);--border-glow: rgba(59, 130, 246, .25);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-disabled: #475569;--accent-primary: #3b82f6;--accent-primary-dim: rgba(59, 130, 246, .15);--accent-primary-glow: rgba(59, 130, 246, .3);--accent-secondary: #60a5fa;--accent-primitive: #f59e0b;--accent-primitive-dim: rgba(245, 158, 11, .1);--accent-boolean: #ec4899;--accent-boolean-dim: rgba(236, 72, 153, .1);--accent-sketch: #8b5cf6;--accent-sketch-dim: rgba(139, 92, 246, .1);--accent-edge: #10b981;--accent-edge-dim: rgba(16, 185, 129, .1);--success: #10b981;--success-dim: rgba(16, 185, 129, .1);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .1);--error: #ef4444;--error-dim: rgba(239, 68, 68, .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", Consolas, monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-md: 13px;--font-size-lg: 15px;--font-size-xl: 18px;--font-size-2xl: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px var(--accent-primary-glow);--shadow-inner: inset 0 1px 2px rgba(0, 0, 0, .3);--transition-fast: .1s ease-out;--transition-normal: .15s ease-out;--transition-slow: .3s ease-out;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--glass-bg: rgba(15, 15, 26, .8);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(12px)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);background:var(--bg-void);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.app{display:flex;flex-direction:column;height:100%;width:100%;background:#0d1117;color:var(--text-primary)}.app-top-section{display:flex;flex-direction:column;flex-shrink:0;position:relative;transition:max-height .3s ease,opacity .2s ease;max-height:200px;overflow:hidden}.app-top-section.collapsed{max-height:16px}.app-top-section.collapsed .app-header,.app-top-section.collapsed .toolbar{opacity:0;pointer-events:none;visibility:hidden}.top-section-toggle{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:6px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;transition:all .15s ease;border-radius:0 0 3px 3px}.app-top-section:not(.collapsed) .top-section-toggle{opacity:.2}.app-top-section:not(.collapsed) .top-section-toggle:hover{opacity:1;height:12px;background:#000000b3}.top-section-toggle:hover{background:var(--bg-elevated)}.toggle-label{display:none}.toggle-bar{width:24px;height:2px;background:var(--text-muted);border-radius:1px}.top-section-toggle:hover .toggle-bar{background:var(--accent-primary)}.app-main{display:flex;flex:1;overflow:hidden}.viewport-container{flex:1;position:relative;overflow:hidden;background:linear-gradient(180deg,#0a0e14,#0d1117);border:1px solid rgba(255,255,255,.04);border-radius:2px;margin:2px}.app-right-panels{display:flex;flex-direction:column;width:260px;min-width:220px;max-width:300px;background:linear-gradient(180deg,#1a1f28,#13171e);border-left:1px solid rgba(255,255,255,.06);overflow-y:auto;overflow-x:hidden;position:relative;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.app-right-panels.collapsed{width:32px;min-width:32px;max-width:32px;overflow:hidden}.right-panel-toggle{position:absolute;top:8px;left:8px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;z-index:10;transition:all var(--transition-fast)}.right-panel-toggle:hover{background:#ffffff26;color:var(--text-primary);border-color:#fff3}.app-right-panels.collapsed .right-panel-toggle{left:6px}.app-right-panels>*{border-left:none;flex-shrink:0}::selection{background:var(--accent-primary);color:var(--bg-primary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::-webkit-scrollbar-corner{background:transparent}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit;transition:all var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.4}input{font-family:inherit;color:inherit;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);transition:all var(--transition-fast)}input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim)}input:hover:not(:focus):not(:disabled){border-color:var(--border-strong)}input[type=number]{font-family:var(--font-mono)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}select{font-family:inherit;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);cursor:pointer;transition:all var(--transition-fast)}select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-dim)}select:hover:not(:focus):not(:disabled){border-color:var(--border-strong)}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.glow-accent{box-shadow:var(--shadow-glow)}.label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.mono{font-family:var(--font-mono)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--accent-primary-glow)}50%{box-shadow:0 0 20px var(--accent-primary-glow),0 0 40px var(--accent-primary-dim)}}
