.projects-page{min-height:100vh;background:var(--bg-primary);padding:var(--space-8)}.projects-container{max-width:1200px;margin:0 auto}.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}.projects-header h1{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.project-card{background:var(--bg-secondary);border:1px solid var(--color-slate-600);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);transition:border-color .15s ease,box-shadow .15s ease}.project-card:hover{border-color:var(--color-slate-500);box-shadow:var(--shadow-md)}.project-card-header{display:flex;flex-direction:column;gap:var(--space-1)}.project-card-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-meta{display:flex;flex-direction:column;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm)}.project-card-meta span{display:flex;align-items:center;gap:var(--space-2)}.project-card-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-slate-700)}.project-card-actions .btn-open{flex:1}.project-card-actions .btn-delete{flex-shrink:0;padding:var(--space-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.project-card-actions .btn-delete:hover{color:var(--color-red-500);background:var(--bg-tertiary);border-color:var(--color-red-500)}.projects-empty{text-align:center;padding:var(--space-16) var(--space-8);color:var(--text-secondary)}.projects-empty-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.5}.projects-empty h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-2)}.projects-empty p{margin:0 0 var(--space-6);font-size:var(--text-base)}.projects-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16);gap:var(--space-4);color:var(--text-secondary)}.projects-loading-spinner{width:40px;height:40px;border:3px solid var(--color-slate-600);border-top-color:var(--color-blue-500);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.projects-error{text-align:center;padding:var(--space-8);background:var(--bg-secondary);border:1px solid var(--color-red-500);border-radius:var(--radius-lg);color:var(--text-primary)}.projects-error h2{color:var(--color-red-500);margin:0 0 var(--space-2)}.projects-error p{margin:0 0 var(--space-4);color:var(--text-secondary)}.new-project-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-field label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.form-field input[type=text]{padding:var(--space-3) var(--space-4);background:var(--bg-primary);border:1px solid var(--color-slate-600);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition:border-color .15s ease}.form-field input[type=text]:focus{outline:none;border-color:var(--color-blue-500)}.form-field input[type=text]::-moz-placeholder{color:var(--text-tertiary)}.form-field input[type=text]::placeholder{color:var(--text-tertiary)}.file-dropzone{border:2px dashed var(--color-slate-600);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;cursor:pointer;transition:all .15s ease;background:var(--bg-primary)}.file-dropzone:hover,.file-dropzone.dragging{border-color:var(--color-blue-500);background:var(--bg-tertiary)}.file-dropzone-icon{font-size:2.5rem;margin-bottom:var(--space-3);opacity:.6}.file-dropzone p{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.file-dropzone .browse-link{color:var(--color-blue-500);cursor:pointer}.file-dropzone .browse-link:hover{text-decoration:underline}.file-selected{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:1px solid var(--color-slate-600);border-radius:var(--radius-md)}.file-selected-icon{font-size:1.5rem}.file-selected-info{flex:1;min-width:0}.file-selected-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-selected-size{font-size:var(--text-xs);color:var(--text-secondary)}.file-selected .btn-remove{padding:var(--space-1);background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.file-selected .btn-remove:hover{color:var(--text-primary);background:var(--bg-secondary)}.upload-progress{margin-top:var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);overflow:hidden;position:relative;height:24px}.upload-progress-bar{height:100%;background:var(--color-blue-500);transition:width .2s ease}.upload-progress span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--text-primary)}.form-error{padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--color-red-500) 10%,transparent);border:1px solid var(--color-red-500);border-radius:var(--radius-md);color:var(--color-red-500);font-size:var(--text-sm)}.project-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--bg-primary)}.project-header .btn-back{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);transition:all .15s ease}.project-header .btn-back:hover{color:var(--text-primary);background:var(--bg-tertiary);border-color:var(--color-slate-600)}.project-header .project-name{flex:1;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.project-header .dirty-indicator{color:var(--color-amber-500);font-size:var(--text-lg)}.project-header .btn-save{display:flex;align-items:center;gap:var(--space-2)}.project-header .btn-save.saving{opacity:.7;pointer-events:none}/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.max-h-\[90vh\]{max-height:90vh}.flex-1{flex:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.overflow-y-auto{overflow-y:auto}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.text-center{text-align:center}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:root{--font-scale:1;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-green-500:#22c55e;--color-amber-500:#f59e0b;--color-red-500:#ef4444;--color-cyan-500:#00e5ff;--bg-primary:var(--color-slate-900);--bg-secondary:var(--color-slate-800);--bg-tertiary:var(--color-slate-700);--bg-glass:#ffffff0d;--bg-glass-strong:#ffffff1a;--text-primary:var(--color-slate-100);--text-secondary:var(--color-slate-300);--text-tertiary:var(--color-slate-400);--text-accent:var(--color-blue-600);--text-xs-raw:.75rem;--text-sm-raw:.875rem;--text-base-raw:1rem;--text-lg-raw:1.125rem;--text-xl-raw:1.25rem;--text-2xl-raw:1.5rem;--text-xs:calc(var(--text-xs-raw)*var(--font-scale-effective,var(--font-scale)));--text-sm:calc(var(--text-sm-raw)*var(--font-scale-effective,var(--font-scale)));--text-base:calc(var(--text-base-raw)*var(--font-scale-effective,var(--font-scale)));--text-lg:calc(var(--text-lg-raw)*var(--font-scale-effective,var(--font-scale)));--text-xl:calc(var(--text-xl-raw)*var(--font-scale-effective,var(--font-scale)));--text-2xl:calc(var(--text-2xl-raw)*var(--font-scale-effective,var(--font-scale)));--font-normal:400;--font-medium:500;--font-semibold:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--size-button-sm:2.5rem;--size-button-md:3rem;--size-icon-xs:.625rem;--size-icon-sm:.75rem;--size-icon-md:1.75rem;--size-panel-width:33.75rem;--size-panel-width-md:32.5rem;--size-input-width-sm:3.125rem;--size-input-width-md:4.375rem;--size-input-width-lg:6.25rem;--size-input-width-xl:7.5rem;--radius-sm:.25rem;--radius:.5rem;--radius-lg:.75rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--transition-fast:.15s ease-out;--transition-normal:.2s ease-out;--transition-slow:.3s ease-out;--z-dropdown:1000;--z-modal:1050;--z-popover:1100;--z-tooltip:1200}html.theme-light{--bg-primary:#f7fafc;--bg-secondary:#fff;--bg-tertiary:#f3f4f6;--bg-glass:#00000008;--bg-glass-strong:#0000000f;--text-primary:#1f2937;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-accent:var(--color-blue-600);--border-color:#e5e7eb;--pill-bg:#ffffffeb;--pill-text:#1f2937;--pill-border:#00000014;--pill-hover-bg:#fffffffa;--workspace-bg:#e5e7eb;--panel-bg:#fff;--panel-text:#1f2937;--panel-border:#e5e7eb}html.theme-dark{--bg-primary:var(--color-slate-900);--bg-secondary:var(--color-slate-800);--bg-tertiary:var(--color-slate-700);--bg-glass:#ffffff0d;--bg-glass-strong:#ffffff1a;--text-primary:var(--color-slate-100);--text-secondary:var(--color-slate-300);--text-tertiary:var(--color-slate-400);--text-accent:var(--color-blue-500);--border-color:var(--color-slate-700);--pill-bg:#0f172ae0;--pill-text:var(--color-slate-100);--pill-border:#ffffff2e;--pill-hover-bg:#1e293beb;--workspace-bg:#2b2b2b;--panel-bg:#2b2b2b;--panel-text:#f1f5f9;--panel-border:#3a3a3a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-base);font-weight:var(--font-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;height:100vh;line-height:1.6;display:flex;overflow:hidden}#root{flex-direction:column;flex:1;min-height:0;display:flex}.panel-base{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-4);border:1px solid #ffffff1a}.panel-glass{background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius);box-shadow:var(--shadow-xl);border:1px solid #ffffff26}.btn-base{padding:var(--space-2)var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-normal);border:none;outline:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background-color:var(--color-blue-500);color:#fff}.btn-primary:hover{background-color:var(--color-blue-600);transform:translateY(-1px)}.btn-primary:active{background-color:var(--color-blue-700);transform:translateY(0)}.btn-secondary{color:var(--text-secondary);border:1px solid var(--color-slate-600);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-glass);color:var(--text-primary);border-color:var(--color-slate-500)}.btn-ghost{background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--color-slate-600);box-shadow:var(--shadow-sm)}.btn-ghost:hover{background-color:var(--bg-glass-strong);color:var(--text-primary);border-color:var(--color-slate-500);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-icon{padding:var(--space-2);border-radius:var(--radius-sm);width:2rem;height:2rem}.btn-active{background-color:var(--color-blue-500);color:#fff;border:2px solid var(--color-blue-400);box-shadow:0 0 0 3px #3b82f64d,var(--shadow-lg);font-weight:var(--font-semibold);transform:translateY(-2px)}.btn-active:hover{background-color:var(--color-blue-600);border-color:var(--color-blue-300);box-shadow:0 0 0 4px #3b82f666,var(--shadow-xl)}.btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--text-accent)}.space-y-1>*+*{margin-top:var(--space-1)}.space-y-2>*+*{margin-top:var(--space-2)}.space-y-3>*+*{margin-top:var(--space-3)}.space-y-4>*+*{margin-top:var(--space-4)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.toolbar-container{justify-content:center;align-items:center;gap:var(--space-3);z-index:var(--z-dropdown);padding:0 12px;display:flex;position:fixed;top:12px;left:0;right:0}.toolbar-left{position:absolute;top:0;left:12px}.toolbar-left .toolbar-panel{justify-content:center;width:56px}.toolbar-left .hamburger-button{width:48px;height:48px}.toolbar-left .hamburger-button svg{width:22px;height:22px}.toolbar-container .toolbar-right{position:absolute;top:0;right:12px}.toolbar-panel{background:var(--pill-bg);border:1px solid var(--pill-border);box-shadow:var(--shadow-lg);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex}.toolbar-center,.toolbar-right{gap:var(--space-2);padding:4px 8px}.toolbar-divider{background:var(--pill-border);width:1px;height:28px;margin:0 var(--space-2)}.tool-button-group{align-items:center;gap:2px;display:flex}.tool-button{cursor:pointer;width:40px;height:40px;color:var(--pill-text);transition:all var(--transition-fast);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.tool-button:hover{background:var(--bg-glass-strong)}.tool-button.active{background:var(--color-blue-500);color:#fff}.tool-button.disabled{opacity:.4;cursor:not-allowed}.tool-button.disabled:hover{background:0 0}.tool-button.out-of-context{opacity:.4;cursor:not-allowed}.tool-button.out-of-context:hover{background:0 0}.scene-controls-panel{background:var(--pill-bg);border:1px solid var(--pill-border);box-shadow:var(--shadow-lg);z-index:1000;border-radius:12px;gap:2px;padding:4px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.scene-controls-btn{cursor:pointer;width:40px;height:40px;color:var(--pill-text);transition:all var(--transition-fast);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.scene-controls-btn:hover{background:var(--bg-glass-strong)}.scene-controls-btn.active{background:var(--color-blue-500);color:#fff}.scene-controls-icon{justify-content:center;align-items:center;display:flex}.scene-controls-shortcut{font-size:9px;font-weight:var(--font-semibold);color:var(--text-tertiary);line-height:1;position:absolute;bottom:2px;right:2px}.scene-controls-btn.active .scene-controls-shortcut{color:#ffffffb3}.scene-controls-message{background:var(--pill-bg);border:1px solid var(--pill-border);box-shadow:var(--shadow-lg);z-index:1000;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:8px 16px;display:flex;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.scene-controls-message-item{flex-direction:column;align-items:center;gap:2px;display:flex}.scene-controls-message-primary{font-size:var(--text-sm);color:var(--pill-text);font-weight:var(--font-medium)}.scene-controls-message-secondary{font-size:var(--text-xs);color:var(--text-tertiary)}.help-button:hover{background:var(--bg-glass-strong)}.tool-icon{justify-content:center;align-items:center;display:flex;position:relative}.tool-color-indicator{border:1px solid #0003;border-radius:2px;width:8px;height:8px;position:absolute;top:-2px;left:-2px}.tool-shortcut{font-size:9px;font-weight:var(--font-semibold);color:var(--text-tertiary);line-height:1;position:absolute;bottom:2px;right:2px}.tool-button.active .tool-shortcut{color:#ffffffb3}.view-toggle-group{align-items:center;gap:2px;display:flex}.view-toggle-btn{padding:var(--space-2)var(--space-3);color:var(--pill-text);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;background:0 0;border:none;border-radius:8px}.view-toggle-btn:hover{background:var(--bg-glass-strong)}.view-toggle-btn.active{background:var(--color-blue-500);color:#fff}.qto-button{padding:var(--space-2)var(--space-3);background:var(--color-blue-500);color:#fff;cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:all var(--transition-fast);border:none;border-radius:8px}.qto-button:hover{background:var(--color-blue-600)}.hamburger-menu{position:relative}.hamburger-button{cursor:pointer;width:40px;height:40px;color:var(--pill-text);transition:all var(--transition-fast);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.hamburger-button:hover{background:var(--bg-glass-strong)}.hamburger-dropdown{background:var(--pill-bg);border:1px solid var(--pill-border);min-width:220px;box-shadow:var(--shadow-xl);z-index:var(--z-popover);border-radius:12px;padding:8px;position:absolute;top:calc(100% + 8px);left:0}.hamburger-item{align-items:center;gap:var(--space-3);width:100%;color:var(--pill-text);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;border-radius:8px;padding:10px 12px;display:flex}.hamburger-item:hover{background:var(--bg-glass-strong)}.hamburger-item.active{background:var(--color-blue-500);color:#fff}.hamburger-item:disabled{opacity:.5;cursor:not-allowed}.hamburger-project-name{border-bottom:1px solid var(--pill-border);flex-direction:column;gap:2px;margin-bottom:8px;padding:10px 12px;display:flex}.hamburger-project-name .project-label{font-size:var(--text-xs);color:var(--text-tertiary)}.hamburger-project-name .project-value{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--pill-text);align-items:center;gap:var(--space-2);display:flex}.hamburger-project-name .dirty-indicator{color:var(--color-amber-500);font-weight:var(--font-semibold)}.hamburger-divider{background:var(--pill-border);height:1px;margin:8px 0}.hamburger-submenu-container{position:relative}.hamburger-submenu-trigger{justify-content:flex-start}.hamburger-submenu-trigger .chevron{margin-left:auto}.hamburger-submenu{border-left:1px solid var(--pill-border);margin-top:4px;margin-left:12px;padding-left:12px}.toolbar-message{background:var(--pill-bg);border:1px solid var(--pill-border);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;display:flex;position:fixed;top:72px;left:50%;transform:translate(-50%)}.toolbar-message-type-row{justify-content:center;align-items:center;margin-bottom:2px;display:flex}.toolbar-message-type{background:var(--bg-glass-strong);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--pill-text);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.toolbar-message-type-color{border:1px solid #0003;border-radius:3px;flex-shrink:0;width:12px;height:12px}.toolbar-message-type-icon{font-size:14px;line-height:1}.toolbar-message-primary{font-size:var(--text-sm);color:var(--pill-text);font-weight:var(--font-medium)}.toolbar-message-secondary{font-size:var(--text-xs);color:var(--text-tertiary)}.user-menu{position:relative}.user-menu-button{color:var(--pill-text);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:background var(--transition-fast);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex}.user-menu-button:hover{background:var(--bg-glass-strong)}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.user-menu-chevron{opacity:.6}.user-menu-dropdown{background:var(--pill-bg);border:1px solid var(--pill-border);min-width:200px;box-shadow:var(--shadow-xl);z-index:var(--z-popover);border-radius:12px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.user-menu-email{font-size:var(--text-xs);color:var(--text-tertiary);border-bottom:1px solid var(--pill-border);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;padding:8px 12px;overflow:hidden}.user-menu-item{width:100%;color:var(--pill-text);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.user-menu-item:hover{background:var(--bg-glass-strong)}.toolbar-section{gap:var(--space-1);align-items:center;display:flex}.coordinates-section{justify-content:center;min-width:200px}.coordinates-display{padding:var(--space-1)var(--space-2);border-radius:var(--radius-sm);align-items:center;gap:var(--space-1);font-family:Monaco,Menlo,Consolas,monospace;font-size:var(--text-xs);background:#0000004d;border:1px solid #fff3;display:flex}.coordinates-value{color:var(--text-accent);font-weight:var(--font-medium)}.grid-interval-controls{gap:var(--space-2);margin-left:var(--space-2);display:flex}.grid-interval-input{align-items:center;gap:var(--space-1);display:flex}.grid-interval-input label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-medium);white-space:nowrap}.grid-interval-input input{width:50px;padding:var(--space-1);font-size:var(--text-xs);background:var(--bg-glass);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;border:1px solid #fff3}.grid-interval-input input:focus{border-color:var(--color-blue-500);background:var(--bg-glass-strong);outline:none}.main-container{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-secondary);width:280px;color:var(--text-primary);padding:var(--space-4);border-right:1px solid var(--color-slate-700);overflow-y:auto}.workspace{background:var(--workspace-bg);flex:1;padding:200px;display:block;position:relative;overflow:hidden}.canvas-group-wrapper{display:inline-block;position:relative}#pdf-container{position:relative}#pdf-container canvas{box-shadow:var(--shadow-xl);display:block}#canvas-container{pointer-events:none;position:absolute;top:0;left:0}#canvas-container.drawing-mode{pointer-events:all}.form-group{margin-bottom:var(--space-4)}label{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);display:block}input,select{width:100%;padding:var(--space-3);border:1px solid var(--color-slate-600);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}input:focus,select:focus{border-color:var(--color-blue-500);outline:none;box-shadow:0 0 0 3px #3b82f61a}.file-input{display:none}.section-title{font-weight:var(--font-semibold);font-size:var(--text-sm);margin:var(--space-4)0 var(--space-2)0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-slate-600);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.masonry-item{padding:var(--space-2)0;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast);justify-content:space-between;display:flex}.masonry-item:hover{background-color:var(--bg-glass)}.takeoff-results{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--color-slate-600)}.result-item{margin-bottom:var(--space-2);font-size:var(--text-sm);justify-content:space-between;display:flex}.status-message{background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);padding:var(--space-3)var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--text-sm);border:1px solid #ffffff1a;display:none;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--focus-ring: 0 0 0 3px rgba(59, 130, 246, .5)}[data-ui-root]{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}[data-ui-root] input,[data-ui-root] textarea,[data-ui-root] select,[data-ui-root] [contenteditable=true],[data-ui-root] .selectable{-moz-user-select:text;user-select:text;-webkit-user-select:text}.noselect{-moz-user-select:none!important;user-select:none!important;-webkit-user-select:none!important;-ms-user-select:none!important}.selectable{-moz-user-select:text!important;user-select:text!important;-webkit-user-select:text!important}[data-ui-root] img{-webkit-user-drag:none;user-drag:none}[data-ui-root] .overlay{overscroll-behavior:contain}[data-ui-root] button,[data-ui-root] .toolbar,[data-ui-root] .sidebar,[data-ui-root] .menu,[data-ui-root] .controls,[data-ui-root] .panel{-moz-user-select:none;user-select:none;-webkit-user-select:none}[role=dialog]{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}[role=dialog] input,[role=dialog] textarea,[role=dialog] select,[role=dialog] [contenteditable=true],[role=dialog] .selectable{-moz-user-select:text;user-select:text;-webkit-user-select:text}
