:root{--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.25rem;--text-3xl: 1.5rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-1: .1875rem;--space-2: .375rem;--space-3: .5rem;--space-4: .75rem;--space-5: 1rem;--space-6: 1.25rem;--space-8: 1.5rem;--space-10: 2rem;--space-12: 2.5rem;--space-16: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-slower: .5s ease;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(0, 198, 255, .3);--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-popover: 500;--z-tooltip: 600;--color-scheme: dark;--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--bg-elevated: #222230;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(255, 255, 255, .08);--surface-1: rgba(255, 255, 255, .02);--surface-2: rgba(255, 255, 255, .04);--surface-3: rgba(255, 255, 255, .06);--surface-glass: rgba(18, 18, 26, .8);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .7);--text-tertiary: rgba(255, 255, 255, .5);--text-disabled: rgba(255, 255, 255, .3);--text-inverse: #0a0a0f;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .15);--border-focus: rgba(0, 198, 255, .5);--accent-primary: #00c6ff;--accent-primary-hover: #33d4ff;--accent-primary-active: #00b3e6;--accent-secondary: #0072ff;--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .15);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .15);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .15);--color-info: #5da3f7;--color-info-bg: rgba(93, 163, 247, .25);--cat-wall: #3b82f6;--cat-slab: #10b981;--cat-door: #f59e0b;--cat-window: #8b5cf6;--cat-column: #ec4899;--cat-beam: #06b6d4;--cat-roof: #84cc16;--cat-stair: #f97316;--gradient-primary: linear-gradient(135deg, #00c6ff 0%, #0072ff 100%);--gradient-header: linear-gradient(90deg, #00c6ff 0%, #0072ff 50%, #7c3aed 100%);--gradient-surface: linear-gradient(180deg, rgba(255, 255, 255, .03) 0%, rgba(255, 255, 255, 0) 100%);--gradient-glow: radial-gradient(ellipse at 50% 0%, rgba(0, 198, 255, .15) 0%, transparent 70%);--header-height: 60px;--sidebar-width: 380px;--sidebar-collapsed-width: 60px;--detail-panel-width: 400px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;font-family:var(--font-family);font-weight:var(--font-normal);color:var(--text-primary);background-color:var(--bg-primary);color-scheme:dark;overflow:hidden}#root{width:100vw;height:100vh;display:flex;flex-direction:column}.app-container{display:grid;grid-template-columns:1fr;grid-template-rows:var(--header-height) 1fr;width:100%;height:100%;background:var(--bg-primary);position:relative;overflow:hidden}.app-container:before{content:"";position:absolute;top:0;left:0;right:0;height:400px;background:var(--gradient-glow);pointer-events:none;z-index:0}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh;background:var(--bg-primary);gap:var(--space-4)}.app-loading .loading-spinner{width:48px;height:48px;border:3px solid rgba(0,198,255,.2);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.app-loading p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.header{grid-column:1 / -1;height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);z-index:var(--z-sticky);position:relative;transition:background .3s ease}.header-left{display:flex;align-items:center;gap:var(--space-4)}.header-brand{display:flex;align-items:center;gap:var(--space-3)}.header-logo{width:32px;height:32px;background:var(--gradient-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-sm);color:var(--text-inverse)}.header h1{font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0;background:var(--gradient-header);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-model-name{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) var(--space-4);background:var(--surface-2);border-radius:var(--radius-full);border:1px solid var(--border-subtle)}.back-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.back-btn:hover{background:var(--surface-3);color:var(--text-primary);border-color:var(--accent-primary)}.settings-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast)}.settings-btn:hover{background:var(--surface-3);color:var(--text-primary);border-color:var(--accent-primary)}.admin-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,#f59e0b26,#eab3081a);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast)}.admin-btn:hover{background:linear-gradient(135deg,#f59e0b40,#eab30833);color:#f59e0b;border-color:#f59e0b80;box-shadow:0 0 10px #f59e0b33}.project-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#667eea26,#764ba226);border:1px solid rgba(102,126,234,.3);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.project-btn:hover{background:linear-gradient(135deg,#667eea40,#764ba240);border-color:#667eea80;box-shadow:0 0 10px #667eea33}.header-right{display:flex;align-items:center;gap:var(--space-3)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap}.chip-primary{background:var(--surface-glass);color:var(--text-primary);border:1px solid var(--border-default);padding:var(--space-2) var(--space-4)}.chip-warning{background:var(--color-warning-bg);color:var(--color-warning)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.header-center{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center}.visual-options-group{display:flex;align-items:center;gap:2px;background:var(--surface-2);border-radius:var(--radius-md);padding:2px;border:1px solid var(--border-subtle)}.camera-mode-group{margin-left:var(--space-3)}.dimension-mode-group{margin-right:var(--space-3)}.visual-option-btn{display:flex;align-items:center;justify-content:center;width:36px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);opacity:.5}.visual-option-btn:hover{background:var(--bg-hover);opacity:.8}.visual-option-btn.active{background:#00c6ff33;opacity:1;box-shadow:0 0 8px #00c6ff66}.visual-option-btn.switchable{display:flex;flex-direction:column;align-items:center;gap:0;width:42px;height:38px;padding:2px;opacity:1;background:#00c6ff33;border:1px dashed rgba(0,198,255,.4);box-shadow:0 0 8px #00c6ff4d}.visual-option-btn.switchable:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.visual-option-btn.switchable .switch-icon{font-size:var(--text-base);line-height:1;margin-top:6px}.visual-option-btn.switchable .switch-arrow{font-size:8px;color:var(--text-tertiary);opacity:.6;margin-top:4px}.walk-speed-indicator{display:flex;align-items:center;gap:var(--space-2);margin-left:var(--space-3);padding:var(--space-1) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-secondary)}.walk-speed-icon{font-size:var(--text-base)}.walk-speed-slider{width:80px;height:4px;-webkit-appearance:none;appearance:none;background:var(--surface-3);border-radius:var(--radius-full);cursor:pointer}.walk-speed-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;box-shadow:0 0 4px #00c6ff66}.walk-speed-slider::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--accent-primary);cursor:pointer;box-shadow:0 0 4px #00c6ff66}.walk-speed-slider::-moz-range-track{background:var(--surface-3);border-radius:var(--radius-full)}.walk-speed-value{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary);min-width:24px;text-align:right}.walk-speed-container{position:relative}.walk-speed-btn{width:32px;height:32px;border-radius:var(--radius-md);background:var(--surface-2);border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.speed-popup-backdrop{position:fixed;inset:0;z-index:999}.speed-popup{position:absolute;top:100%;right:0;margin-top:var(--space-2);padding:var(--space-3);background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.speed-popup-slider{width:120px;height:6px;-webkit-appearance:none;appearance:none;background:var(--surface-3);border-radius:var(--radius-full);cursor:pointer}.speed-popup-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer}.speed-popup-slider::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--accent-primary);cursor:pointer}.speed-popup-value{font-size:var(--text-sm);font-family:var(--font-mono);color:var(--text-primary)}.mobile-only{display:none}.btn-text{margin-left:var(--space-1)}.sidebar{position:fixed;left:0;top:var(--header-height);width:var(--sidebar-width);height:calc(100vh - var(--header-height));background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden;z-index:var(--z-dropdown);transition:transform var(--transition-slow);box-shadow:var(--shadow-xl)}.sidebar-header{display:flex;align-items:stretch;border-bottom:1px solid var(--border-subtle)}.sidebar-tabs{display:flex;flex:1;padding:var(--space-2);gap:var(--space-2)}.sidebar-close-btn{display:flex;align-items:center;justify-content:center;width:40px;border:none;border-left:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.sidebar-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.dock-btn{position:fixed;top:50%;transform:translateY(-50%);width:28px;height:56px;background:var(--bg-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s ease;z-index:100}.dock-btn:hover{background:var(--bg-secondary);width:32px}.sidebar-dock-btn{left:0;border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:none}.properties-toggle-btn{right:0;border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none}.sidebar-tab{flex:1;padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.sidebar-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-tab.active{background:var(--surface-3);color:var(--accent-primary)}.sidebar-content{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative}.panel-wrapper{flex:1;overflow-y:auto;padding:var(--space-4)}.panel-wrapper::-webkit-scrollbar{width:6px}.panel-wrapper::-webkit-scrollbar-track{background:transparent}.panel-wrapper::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}.panel-wrapper::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.panel-hidden{display:none!important}.panel-wrapper .fade-in,.panel-wrapper .slide-up{animation:none}.viewer-container{grid-column:1;grid-row:2;position:relative;overflow:hidden;background:#fff;touch-action:none}.viewer-container>div{position:absolute;inset:0;touch-action:none}.no-permission-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--surface-2) 100%)}.no-permission-content{text-align:center;padding:var(--space-8);max-width:400px}.no-permission-icon{font-size:64px;display:block;margin-bottom:var(--space-4);opacity:.6}.no-permission-content h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-4)}.no-permission-content p{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-2);line-height:1.5}.card{background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:var(--space-4);transition:all var(--transition-base)}.card:hover{background:var(--surface-3);border-color:var(--border-default)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.card-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.card-subtitle{font-size:var(--text-xs);color:var(--text-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-primary);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md),var(--shadow-glow)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-icon{padding:var(--space-2);min-width:36px;height:36px}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);background:var(--surface-3);color:var(--text-secondary);border:1px solid var(--border-subtle)}.chip-primary{background:#00c6ff26;color:var(--accent-primary);border-color:#00c6ff4d}.chip-success{background:var(--color-success-bg);color:var(--color-success);border-color:#10b9814d}.chip-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:#f59e0b4d}.chip-error{background:var(--color-error-bg);color:var(--color-error);border-color:#ef44444d}.input{width:100%;padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);transition:all var(--transition-fast)}.input::placeholder{color:var(--text-tertiary)}.input:hover{border-color:var(--border-strong)}.input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00c6ff26}.input-error,.input-error:hover,.input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef444426}.error-text{display:block;font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}select,.select,.unit-selector{background-color:var(--surface-3);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-sm)}select option,.select option,.unit-selector option{background-color:var(--surface-2);color:var(--text-primary);padding:var(--space-2) var(--space-3)}select option:hover,select option:checked,.select option:hover,.select option:checked,.unit-selector option:hover,.unit-selector option:checked{background-color:var(--surface-4);color:var(--text-primary)}@-moz-document url-prefix(){select option,.select option,.unit-selector option{background-color:#1a1a2e;color:#e0e0e0}}.styled-select-wrapper{position:relative;display:inline-block}.styled-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;min-width:140px;background:#252538;border:1px solid #3a3a5c;border-radius:8px;color:#e0e0e0;font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s ease}.styled-select-trigger:hover{background:#2d2d44;border-color:#4a4a6c}.styled-select-trigger.open{border-color:#6366f1;box-shadow:0 0 0 3px #6366f140;background:#2d2d44}.styled-select-sm{padding:6px 10px;min-width:120px;font-size:12px}.styled-select-value{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.styled-select-arrow{font-size:10px;color:#888;transition:transform .2s ease}.styled-select-arrow.open{transform:rotate(180deg);color:#6366f1}.styled-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:100%;max-height:200px;overflow-y:auto;background:#1e1e2e;border:1px solid #3a3a5c;border-radius:8px;box-shadow:0 4px 6px -1px #0006,0 10px 15px -3px #00000080,0 0 0 1px #ffffff0d;z-index:9999;animation:dropdown-fade-in .15s ease;padding:4px}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.styled-select-option{display:block;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;color:#e0e0e0;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .15s ease;margin:2px 0}.styled-select-option:hover{background:#6366f126;color:#fff}.styled-select-option.selected{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:500}.styled-select-option.selected:hover{background:linear-gradient(135deg,#7c7ff7,#9d6ff8)}.label{display:block;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-secondary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-subtle)}.data-table th{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-1);position:sticky;top:0;z-index:1}.data-table tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody tr.selected{background:var(--bg-active)}.data-table tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent-primary)}.tree-summary-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle);min-height:28px}.space-count-indicator{font-style:italic;opacity:.7}.tree-view{font-size:var(--text-sm)}.tree-item{display:flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);gap:var(--space-2);margin-bottom:1px;border-left:3px solid transparent}.tree-item:hover{background:var(--bg-hover)}.tree-item.selected{background:#3b82f633;border-left-color:#3b82f6cc}.tree-item.visibility-hidden{border-left:2px solid var(--color-error)}.tree-item.visibility-partial{border-left:2px solid var(--color-warning)}.tree-item.selected.visibility-hidden:not(.parent-selected-l1):not(.parent-selected-l2){background:#ef444447!important;border-left:3px solid var(--color-error)}.tree-item.selected.visibility-partial:not(.parent-selected-l1):not(.parent-selected-l2){background:#f59e0b47!important;border-left:3px solid var(--color-warning)}.tree-item.selected.parent-selected-l2.visibility-hidden{background:#ef44442e!important;border-left:2px solid var(--color-error)}.tree-item.selected.parent-selected-l2.visibility-partial{background:#f59e0b2e!important;border-left:2px solid var(--color-warning)}.tree-item.selected.parent-selected-l1.visibility-hidden{background:#ef44441a!important;border-left:2px solid var(--color-error)}.tree-item.selected.parent-selected-l1.visibility-partial{background:#f59e0b1a!important;border-left:2px solid var(--color-warning)}.tree-item.parent-selected-l2{background:#3b82f61f}.tree-item.parent-selected-l1{background:#3b82f60f}.tree-item-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.tree-item-expand{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);transition:transform var(--transition-fast)}.tree-item-expand.expanded{transform:rotate(90deg)}.tree-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.tree-children{padding-left:var(--space-6)}.detail-panel{position:fixed;top:var(--header-height);right:0;bottom:0;width:var(--detail-panel-width);background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-left:1px solid var(--border-subtle);z-index:var(--z-overlay);transform:translate(100%);transition:transform var(--transition-slow);display:flex;flex-direction:column}.detail-panel.open{transform:translate(0)}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.detail-panel-title{font-size:var(--text-lg);font-weight:var(--font-semibold)}.detail-panel-content{flex:1;overflow-y:auto;padding:var(--space-4)}.detail-section{margin-bottom:var(--space-6)}.detail-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.detail-row{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle)}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-secondary)}.detail-value{color:var(--text-primary);font-weight:var(--font-medium)}.filter-group{margin-bottom:var(--space-4)}.filter-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.active-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3);background:var(--surface-1);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-info-bg);border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--color-info)}.filter-chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#fff3;cursor:pointer;transition:background var(--transition-fast)}.filter-chip-remove:hover{background:#ffffff4d}.filter-scope-section{margin-bottom:var(--space-4);padding-left:var(--space-3);border-left:3px solid var(--border-subtle)}.filter-scope-section:last-child{margin-bottom:0}.filter-scope-section.scope-global{border-left-color:#8b5cf6}.filter-scope-section.scope-project{border-left-color:#3b82f6}.filter-scope-section.scope-user{border-left-color:#10b981}.filter-scope-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);padding-bottom:var(--space-2)}.filter-scope-icon{font-size:.9rem;opacity:.9}.filter-scope-label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);flex:1}.filter-scope-section.scope-global .filter-scope-label{color:#a78bfa}.filter-scope-section.scope-project .filter-scope-label{color:#60a5fa}.filter-scope-section.scope-user .filter-scope-label{color:#34d399}.filter-scope-count{font-size:var(--text-xs);background:var(--surface-3);padding:2px 8px;border-radius:var(--radius-full);color:var(--text-tertiary)}.filter-preset-list{display:flex;flex-direction:column;gap:var(--space-1)}.filter-preset-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.filter-preset-item:hover{background:var(--surface-3);border-color:var(--border-default)}.filter-scope-section.scope-global .filter-preset-item:hover{border-color:#8b5cf666}.filter-scope-section.scope-project .filter-preset-item:hover{border-color:#3b82f666}.filter-scope-section.scope-user .filter-preset-item:hover{border-color:#10b98166}.progress-bar{width:100%;height:4px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-primary);transition:width var(--transition-base)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:var(--space-2)}.skeleton-text:last-child{width:60%}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--space-2)}.status-dot.success{background:var(--color-success)}.status-dot.warning{background:var(--color-warning)}.status-dot.error{background:var(--color-error)}.status-dot.info{background:var(--color-info)}.status-dot.pulse{animation:status-pulse 2s infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);padding:var(--space-2) var(--space-3);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:var(--z-tooltip)}.tooltip:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(-8px)}.fade-in{animation:fadeIn var(--transition-base) ease-out}.slide-up{animation:slideUp var(--transition-slow) ease-out}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.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-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){:root{--sidebar-width: 100%;--header-height: 56px}.menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-lg)}.menu-toggle:hover{background:var(--bg-hover)}.app-container{grid-template-columns:1fr}.header{padding:0 var(--space-4)}.header h1{font-size:var(--text-lg)}.mobile-only{display:flex}.desktop-only{display:none}.header-center{position:static;transform:none;gap:var(--space-2)}.camera-mode-group{margin-left:0}.dimension-mode-group{margin-right:0}.visual-options-group{gap:2px}.visual-option-btn{width:28px;height:28px;font-size:12px}.header-right{gap:var(--space-2)}.header-model-name{display:none}.sidebar{position:fixed;left:0;top:var(--header-height);width:85%;max-width:360px;height:calc(100vh - var(--header-height));z-index:var(--z-overlay);transform:translate(-100%);box-shadow:var(--shadow-xl)}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:#0009;z-index:calc(var(--z-overlay) - 1);opacity:0;visibility:hidden;transition:all var(--transition-slow)}.sidebar-overlay.open{opacity:1;visibility:visible}.sidebar-dock-btn,.sidebar-close-btn{display:none}.viewer-container{grid-column:1}.detail-panel{width:100%}}@media(min-width:769px){.menu-toggle{display:none}.sidebar-overlay{display:none!important}}.viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--space-8);text-align:center;background:var(--bg-secondary)}.viewer-error-content{max-width:450px}.viewer-error .error-icon{font-size:4rem;margin-bottom:var(--space-6);opacity:.7}.viewer-error h2{font-size:var(--text-2xl);margin:0 0 var(--space-4);color:var(--text-primary)}.viewer-error p{color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.6}.viewer-error .retry-btn{margin-top:var(--space-4)}.template-editor{display:flex;flex-direction:column;background:var(--bg-secondary);border-left:1px solid var(--border-subtle);overflow:hidden;font-size:var(--text-sm);min-width:340px}.template-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,var(--surface-glass),var(--surface-2));border-bottom:1px solid var(--border-subtle)}.template-editor-header h3{font-size:var(--text-base);font-weight:var(--font-semibold);margin:0;color:var(--text-primary)}.template-editor-info{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--border-subtle)}.template-name{font-size:var(--text-xs);color:var(--text-secondary)}.template-dirty{font-size:var(--text-xs);color:var(--color-warning);font-weight:var(--font-medium)}.template-editor-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.template-editor-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--border-subtle)}.template-editor-section-header .label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em;margin:0}.template-editor-divisions{flex:0 0 auto;max-height:200px;overflow-y:auto;border-bottom:1px solid var(--border-subtle)}.division-list{display:flex;flex-direction:column}.division-list-item{display:flex;align-items:center;gap:4px;padding:3px 8px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-subtle)}.division-list-item:hover{background:var(--bg-hover)}.division-list-item.selected{background:var(--bg-active);border-left:2px solid var(--accent-primary)}.division-list-item.duplicate{border-left:2px solid var(--color-error)}.division-list-item.duplicate .division-list-code{color:var(--color-error);background:#ef444426}.division-list-item-main{flex:1;display:flex;align-items:center;gap:4px;min-width:0}.division-list-code{font-family:var(--font-mono);font-size:9px;color:var(--accent-primary);background:#00c6ff1a;padding:1px 4px;border-radius:2px;min-width:28px;text-align:center}.division-list-name{flex:1;font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.division-list-rules{font-size:9px;color:var(--text-tertiary)}.division-list-children{font-size:8px;color:var(--accent-secondary);background:#8250df26;padding:0 3px;border-radius:2px}.division-indent{font-size:9px;color:var(--text-tertiary);margin-right:2px}.division-form-header-actions{display:flex;gap:4px}.division-list-actions{display:flex;gap:2px}.division-list-empty{padding:12px;text-align:center;color:var(--text-tertiary);font-size:11px}.template-editor-form{flex:1;overflow-y:auto;padding:8px}.template-editor-no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:11px}.template-editor-no-selection .empty-icon{font-size:1.5rem;margin-bottom:8px}.division-form{display:flex;flex-direction:column;gap:8px}.division-form-header{display:flex;align-items:center;justify-content:space-between}.division-form-header h4{font-size:11px;font-weight:var(--font-semibold);margin:0;color:var(--text-primary)}.division-form-fields{display:flex;flex-direction:column;gap:6px}.division-form-row{display:flex;gap:6px}.division-form-field{display:flex;flex-direction:column;gap:2px}.division-form-rules{display:flex;flex-direction:column;gap:4px}.division-form-rules-header{display:flex;align-items:center;justify-content:space-between}.division-form-empty{padding:8px;text-align:center;color:var(--text-tertiary);background:var(--surface-2);border-radius:4px;font-size:10px}.rule-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:4px;overflow:hidden}.rule-card-new{border-color:var(--accent-primary);background:#00c6ff0d;overflow:visible}.rule-card-view{display:flex;align-items:center;gap:4px;padding:4px 6px}.rule-type-icon{font-size:10px}.rule-description{flex:1;font-size:10px;color:var(--text-primary)}.rule-actions{display:flex;gap:2px}.rule-form{padding:6px;display:flex;flex-direction:column;gap:6px}.rule-form-row{display:flex;gap:6px}.rule-form-field{display:flex;flex-direction:column;gap:2px;flex:1}.rule-form-actions{display:flex;justify-content:flex-end;gap:4px;padding-top:4px;border-top:1px solid var(--border-subtle)}.template-editor .label{font-size:9px;font-weight:var(--font-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.template-editor .input{padding:4px 6px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:3px;font-size:11px;color:var(--text-primary);transition:all var(--transition-fast)}.template-editor .input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 1px #00c6ff33}.template-editor .input::placeholder{color:var(--text-tertiary)}.template-editor .select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;padding-right:20px}.template-editor-footer{display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--surface-2);border-top:1px solid var(--border-subtle)}.template-editor-footer .btn{font-size:10px;padding:3px 8px}.btn-icon{padding:2px;min-width:auto}.btn-xs{padding:2px 4px;font-size:10px}.properties-panel{position:fixed;top:var(--header-height);right:0;bottom:0;width:var(--detail-panel-width);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border-subtle);z-index:var(--z-overlay);display:flex;flex-direction:column;box-shadow:-10px 0 30px #0000004d}.properties-panel-header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:var(--surface-2);gap:var(--space-3)}.properties-panel-title{flex:1;min-width:0}.properties-panel-title h3{margin:0;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.properties-panel-type{display:inline-block;margin-top:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--gradient-primary);color:var(--text-inverse);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-sm)}.properties-panel-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.unit-selector{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);background:var(--surface-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:border-color .2s ease,background .2s ease}.unit-selector:hover{border-color:var(--border-strong);background:var(--surface-4)}.unit-selector:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 2px #6366f133}.properties-panel-content{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.properties-panel-content::-webkit-scrollbar{width:6px}.properties-panel-content::-webkit-scrollbar-track{background:transparent}.properties-panel-content::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}.properties-card{padding:0}.properties-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.property-section{border-bottom:1px solid var(--border-subtle)}.property-section:last-child{border-bottom:none}.property-section-header{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:none;color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);text-align:left}.property-section-header:hover{background:var(--bg-hover)}.section-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.section-chevron.rotated{transform:rotate(90deg)}.section-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-count{padding:var(--space-1) var(--space-2);background:var(--surface-3);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);flex-shrink:0}.property-section-content{padding:0 var(--space-4) var(--space-3)}.property-row{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-2) 0;gap:var(--space-3);border-bottom:1px dashed var(--border-subtle)}.property-row:last-child{border-bottom:none}.property-name{flex:0 0 40%;font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-value{flex:1;font-size:var(--text-xs);color:var(--text-primary);font-weight:var(--font-medium);text-align:right;word-break:break-word}.property-value.quantity{font-family:var(--font-mono);color:var(--accent-primary)}.property-unit{color:var(--text-tertiary);font-weight:var(--font-normal)}.property-value.varies{color:var(--text-secondary);font-style:italic}.property-row.inconsistent{background:#ffc1071f;margin:0 calc(-1 * var(--space-2));padding-left:var(--space-2);padding-right:var(--space-2);border-radius:var(--radius-sm)}.property-value.inconsistent{color:var(--color-warning);font-style:italic}.property-status-hint{color:var(--text-tertiary);font-size:10px;font-style:italic}.material-chip{display:inline-block;padding:var(--space-1) var(--space-3);margin:var(--space-1) var(--space-1) var(--space-1) 0;background:var(--color-success-bg);color:var(--color-success);font-size:var(--text-xs);font-weight:var(--font-medium);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-full)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.slide-in-right{animation:slideInRight var(--transition-slow) ease-out}@media(max-width:768px){.properties-panel{width:100%;max-width:100vw}}.operator-toggle{display:inline-flex;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.operator-toggle-sm .operator-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.operator-toggle-xs .operator-btn{padding:2px var(--space-2);font-size:10px}.operator-btn{padding:var(--space-1) var(--space-3);border:none;background:transparent;color:var(--text-tertiary);font-family:inherit;font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast)}.operator-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.operator-btn.active{background:var(--gradient-primary);color:var(--text-inverse)}.rule-group{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-3);position:relative;overflow:visible}.rule-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.rule-group-title{display:flex;align-items:center;gap:var(--space-2)}.rule-group-name{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.rule-group-actions{display:flex;align-items:center;gap:var(--space-1)}.rule-group-empty{padding:var(--space-2);text-align:center;color:var(--text-tertiary)}.rule-group-separator{display:flex;align-items:center;justify-content:center;margin:var(--space-2) 0;position:relative}.rule-group-separator:before,.rule-group-separator:after{content:"";flex:1;height:1px;background:var(--border-default)}.operator-badge{padding:var(--space-1) var(--space-3);margin:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.1em}.operator-badge.and{background:#3b82f633;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.operator-badge.or{background:#a855f733;color:#a855f7;border:1px solid rgba(168,85,247,.3)}.rule-operator-inline{display:flex;align-items:center;justify-content:flex-start;padding:var(--space-1) 0;margin-left:var(--space-8)}.operator-badge-inline{padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em}.operator-badge-inline.and{background:#3b82f626;color:#3b82f6}.operator-badge-inline.or{background:#a855f726;color:#a855f7}.rule-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2);transition:all var(--transition-fast)}.rule-card:hover{border-color:var(--border-default)}.rule-card-new{border-style:dashed;border-color:var(--accent-primary);background:#00c6ff0d;overflow:visible}.rule-card-view{display:flex;align-items:center;gap:var(--space-2)}.rule-type-icon{font-size:var(--text-base)}.rule-description{flex:1;font-size:var(--text-sm);color:var(--text-primary)}.rule-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.rule-card:hover .rule-actions{opacity:1}.division-form-rules-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.rules-header-actions{display:flex;align-items:center;gap:var(--space-3)}.group-operator-label{display:flex;align-items:center;gap:var(--space-2)}.division-form-empty{padding:var(--space-4);text-align:center;color:var(--text-tertiary);background:var(--surface-1);border:1px dashed var(--border-default);border-radius:var(--radius-md)}.division-form-empty p{margin:0;font-size:var(--text-sm)}.btn-xs{padding:2px var(--space-2);font-size:11px;min-height:24px}.context-menu-backdrop{position:fixed;inset:0;z-index:var(--z-popover);background:transparent}.context-menu{position:fixed;z-index:calc(var(--z-popover) + 1);min-width:180px;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1);box-shadow:var(--shadow-lg);animation:context-menu-in .15s ease}@keyframes context-menu-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);font-family:inherit;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.context-menu-item:hover:not(:disabled){background:var(--bg-hover)}.context-menu-item:disabled{color:var(--text-disabled);cursor:not-allowed}.context-menu-icon{font-size:var(--text-base);width:20px;text-align:center}.context-menu-separator{height:1px;background:var(--border-subtle);margin:var(--space-1) var(--space-2)}.mobile-joystick-zone{position:fixed;width:200px;height:200px;z-index:var(--z-overlay);touch-action:none;pointer-events:auto}@media(hover:hover)and (pointer:fine){.mobile-joystick-zone{display:none!important}}.tree-view,.tree-item{user-select:none;-webkit-user-select:none}.tree-item-count{font-size:var(--text-xs);color:var(--text-secondary);padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface-secondary);margin-left:auto;margin-right:var(--space-1)}.tree-stats-chips{display:flex;gap:var(--space-2)}.tree-stat-chip{display:flex;flex-direction:column;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--surface-secondary);min-width:56px}.tree-stat-chip-primary{background:var(--primary);color:#fff}.tree-stat-value{font-size:var(--text-lg);font-weight:600;line-height:1.2}.tree-stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.3px;opacity:.8}.tree-summary-card{padding:var(--space-3)!important}.tree-summary-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tree-summary-total{display:flex;align-items:baseline;gap:var(--space-2)}.tree-summary-count{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.tree-summary-label{font-size:var(--text-sm);color:var(--text-secondary)}.tree-summary-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.boq-window-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.boq-window{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90vw;max-width:1200px;height:85vh;max-height:900px;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s ease}.boq-window.with-editor{max-width:1600px}.boq-window-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:var(--surface-2)}.boq-window-title{display:flex;align-items:center;gap:var(--space-3)}.boq-window-title h2{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.boq-window-icon{font-size:1.5rem}.boq-window-subtitle{font-size:var(--text-sm);color:var(--text-tertiary);padding:var(--space-1) var(--space-2);background:var(--surface-3);border-radius:var(--radius-sm)}.boq-window-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;transition:all var(--transition-fast)}.boq-window-close:hover{background:var(--bg-hover);color:var(--text-primary)}.boq-summary-card{margin:var(--space-3) var(--space-4);padding:var(--space-3)!important}.boq-window-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.boq-window-content{display:flex;flex:1;min-height:0;overflow:hidden}.boq-window-tree{width:320px;min-width:180px;max-width:400px;flex-shrink:1;border-right:1px solid var(--border-subtle);overflow-y:auto;padding:var(--space-3);background:var(--surface-1)}.boq-window-elements{flex:1;min-width:50%;overflow:hidden;display:flex;flex-direction:column}.boq-window-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);text-align:center}.boq-window-empty .empty-icon{font-size:3rem;margin-bottom:var(--space-3)}.division-code-badge{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--accent-primary);background:#00c6ff1a;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);margin-right:var(--space-2);font-family:var(--font-mono, monospace);white-space:nowrap}.tree-item.unclassified{margin-top:var(--space-2);border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.tree-item.unclassified .tree-item-count{background:var(--color-warning-bg);color:var(--color-warning)}.element-list{display:flex;flex-direction:column;height:100%}.element-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-2)}.element-list-header h3{font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.element-count{font-size:var(--text-sm);color:var(--text-tertiary)}.element-list-content{flex:1;overflow-y:auto}.element-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-tertiary)}.element-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface-2);font-weight:var(--font-medium);color:var(--text-secondary);position:sticky;top:0;z-index:1}.element-group-name{flex:1}.element-group-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.element-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition-fast)}.element-item:hover,.element-item.hovered{background:var(--bg-hover)}.element-item-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.element-item-main{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;overflow:hidden}.element-item-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;opacity:.5;transition:opacity var(--transition-fast)}.element-item:hover .element-item-actions{opacity:1}.element-name{font-weight:var(--font-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-id{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono, monospace);flex-shrink:0}.element-item-details{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.element-material,.element-level,.element-quantity{display:flex;align-items:center;gap:var(--space-1)}.boq-detail-panel{display:flex;flex-direction:column;height:100%;background:var(--surface-1)}.boq-detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-2)}.boq-detail-panel-breadcrumb{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden}.breadcrumb-separator{color:var(--text-tertiary);margin:0 var(--space-1)}.breadcrumb-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.breadcrumb-item:last-child{color:var(--text-primary);font-weight:var(--font-medium)}.boq-detail-panel-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap}.boq-detail-panel-content{flex:1;overflow-y:auto;padding:var(--space-4)}.boq-detail-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);gap:var(--space-3)}.boq-detail-panel-empty .empty-icon{font-size:2rem;opacity:.5}.group-summary{display:flex;flex-direction:column;gap:var(--space-4)}.group-summary-header{display:flex;align-items:center;justify-content:space-between}.group-summary-header h4{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.group-summary-total{font-size:var(--text-sm);color:var(--text-secondary)}.group-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.group-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;transition:all var(--transition-fast)}.group-card:hover{background:var(--surface-3);border-color:var(--border-default);transform:translateY(-2px);box-shadow:var(--shadow-md)}.group-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.group-card-name{font-weight:var(--font-medium);color:var(--text-primary);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.group-card-count{flex-shrink:0;font-size:var(--text-xs);color:var(--color-info);background:var(--color-info-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-medium)}.group-card-quantities{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.group-card-qty{font-size:var(--text-xs);color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-1)}.group-card-actions{display:flex;align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.group-card:hover .group-card-actions{opacity:1}.group-card-chevron{margin-left:auto;color:var(--text-tertiary);transition:transform var(--transition-fast)}.group-card:hover .group-card-chevron{transform:translate(3px);color:var(--color-info)}.group-summary-footer{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3);background:var(--surface-1);border-radius:var(--radius-md);margin-top:var(--space-2)}.group-summary-footer .total-label{font-weight:var(--font-semibold);color:var(--text-primary)}.group-summary-footer .total-count{color:var(--color-info);font-weight:var(--font-medium)}.group-summary-footer .total-qty{font-size:var(--text-sm);color:var(--text-secondary)}.instance-table-container{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary)}.instance-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.instance-table th{text-align:left;padding:var(--space-3) var(--space-3);background:var(--surface-2);color:var(--text-secondary);font-weight:var(--font-medium);border-bottom:1px solid var(--border-default);position:sticky;top:0;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.instance-table th:hover{background:var(--surface-3)}.instance-table .th-name{min-width:200px}.instance-table .th-level{min-width:100px}.instance-table .th-qty{min-width:100px;text-align:right}.instance-table .th-actions{width:80px;text-align:center}.sort-icon{margin-left:var(--space-1);font-size:var(--text-xs)}.sort-icon.inactive{opacity:.3}.sort-icon.active{color:var(--color-info)}.instance-table tbody tr{transition:background var(--transition-fast);cursor:pointer}.instance-table tbody tr:hover{background:var(--bg-hover)}.instance-table tbody tr.selected{background:var(--color-info-bg)}.instance-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.instance-table .td-name{font-weight:var(--font-medium);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instance-table .td-level{color:var(--text-secondary);font-size:var(--text-xs)}.instance-table .td-qty{text-align:right;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.instance-table .td-actions{text-align:center;white-space:nowrap}.instance-table .td-actions button{opacity:.5;transition:opacity var(--transition-fast)}.instance-table tbody tr:hover .td-actions button{opacity:1}.instance-table tfoot .totals-row{background:var(--surface-2);font-weight:var(--font-semibold)}.instance-table tfoot .totals-row td{padding:var(--space-3);border-top:2px solid var(--border-default);color:var(--text-primary)}.instance-table tfoot .totals-row .total{color:var(--color-info)}.instance-schedule{display:flex;flex-direction:column;height:100%;background:var(--surface-1);overflow:hidden}.schedule-header-info{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-2);flex-shrink:0}.schedule-title{font-weight:var(--font-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}.schedule-count{font-size:var(--text-xs);color:var(--text-tertiary);background:var(--surface-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);flex-shrink:0}.schedule-scroll-container{flex:1;overflow:auto;min-height:0}.schedule-table-inner{display:inline-block;min-width:100%}.schedule-header{display:flex;background:var(--surface-2);border-bottom:2px solid var(--border-default);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;position:sticky;top:0;z-index:2}.schedule-header .schedule-cell{font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--text-secondary)}.schedule-header .schedule-cell:last-child{border-right:none}.schedule-body{display:block}.schedule-rows-container{position:relative}.schedule-row{display:flex;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);align-items:center}.schedule-row:hover,.schedule-row.hovered{background:var(--bg-hover)}.schedule-row.selected{background:var(--color-primary-subtle)}.schedule-row.selected:hover{background:var(--color-primary-muted, rgba(59, 130, 246, .2))}.schedule-cell{padding:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--text-secondary);border-right:1px solid var(--border-subtle);flex-shrink:0;flex-grow:0;box-sizing:border-box}.schedule-cell:last-child{border-right:none}.schedule-cell.division{width:100px;font-family:var(--font-mono, monospace);color:var(--accent-primary)}.schedule-cell.subdiv{width:180px;font-family:var(--font-mono, monospace);color:var(--color-info)}.schedule-cell.desc{width:120px;min-width:80px}.schedule-cell.category,.schedule-cell.family,.schedule-cell.type{color:var(--text-primary)}.schedule-cell.category{width:70px}.schedule-cell.family{width:80px}.schedule-cell.type{width:160px}.schedule-cell.level{width:60px}.schedule-cell.source{width:80px;color:var(--text-tertiary)}.schedule-cell.element-id{width:55px;font-family:var(--font-mono, monospace);color:var(--text-tertiary);text-align:right}.schedule-cell.qty{width:100px;text-align:right;font-family:var(--font-mono, monospace)}.schedule-cell.actions{width:80px;display:flex;align-items:center;justify-content:center;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}.schedule-row:hover .schedule-cell.actions{opacity:1}.instance-schedule-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-tertiary);gap:var(--space-2)}.instance-schedule-empty .empty-icon{font-size:2rem;opacity:.5}.extraction-config-section{margin-top:var(--space-4);padding:var(--space-3);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.extraction-config-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.extraction-config-header .label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.extraction-config-header .toggle-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.param-list{display:flex;flex-direction:column;gap:var(--space-2)}.param-row{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.param-row:hover{border-color:var(--border-default)}.param-row.disabled{opacity:.5}.param-row.inherited{background:#3b82f614;border:1px dashed rgba(59,130,246,.4)}.param-row-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition-fast);min-height:36px}.param-row-header:hover{background:#ffffff08}.param-icon{font-size:1rem;width:20px;text-align:center}.param-label{flex:1;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.param-inherited-badge{font-size:10px;color:#60a5fa;margin-left:var(--space-1)}.param-toggle{display:flex;align-items:center;margin-left:auto;margin-right:var(--space-2)}.param-expand{font-size:10px;transition:transform var(--transition-fast);color:var(--text-tertiary);width:16px;text-align:center}.param-expand.expanded{transform:rotate(90deg)}.param-row-details{padding:var(--space-3);background:#0003;border-top:1px solid var(--border-subtle)}.toggle-switch,.toggle-switch-sm{position:relative;display:inline-block;width:32px;height:16px;flex-shrink:0}.toggle-switch-sm{width:28px;height:14px}.toggle-switch input,.toggle-switch-sm input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:#4b5563;border-radius:16px;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;border-radius:50%;transition:left .2s}.toggle-switch-sm .toggle-slider:before{width:10px;height:10px}.toggle-switch input:checked+.toggle-slider,.toggle-switch-sm input:checked+.toggle-slider{background:#3b82f6}.toggle-switch input:checked+.toggle-slider:before{left:18px}.toggle-switch-sm input:checked+.toggle-slider:before{left:16px}.toggle-switch.toggle-disabled .toggle-slider,.toggle-switch input:disabled+.toggle-slider,.toggle-switch-sm input:disabled+.toggle-slider{opacity:.4;cursor:not-allowed}.toggle-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.toggle-label input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:#3b82f6}.keyword-editor{display:flex;flex-direction:column;gap:var(--space-2)}.keyword-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.keyword-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:var(--surface-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary)}.keyword-tag-inherited{background:var(--accent-muted, rgba(59, 130, 246, .15));border:1px dashed var(--accent);color:var(--accent)}.keyword-tag-inherited-icon{font-size:10px;opacity:.7}.keyword-tag-remove{background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--text-tertiary);font-size:14px;line-height:1}.keyword-tag-remove:hover{color:var(--error)}.keyword-input-row{display:flex;gap:var(--space-1)}.keyword-input-row .input{flex:1}.custom-params-section{margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.custom-params-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.custom-params-header .text-sm{font-weight:var(--font-medium)}.custom-params-empty{text-align:center;padding:var(--space-4);color:var(--text-tertiary);font-size:var(--text-xs)}.custom-param-form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:#0003;border-radius:var(--radius-md);margin-bottom:var(--space-2)}.custom-param-form-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-1)}.custom-param-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-1);transition:border-color var(--transition-fast)}.custom-param-row:hover{border-color:var(--border-default)}.custom-param-row.disabled{opacity:.5}.custom-param-order-buttons{display:flex;flex-direction:column;gap:2px}.custom-param-name{font-size:var(--text-sm);font-weight:var(--font-medium);min-width:100px;color:var(--text-primary)}.custom-param-keywords{flex:1;font-size:var(--text-xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.custom-param-row.inherited{background:#3b82f614;border:1px dashed rgba(59,130,246,.4)}.inherited-badge,.param-inherited-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;color:var(--accent);background:var(--accent-muted, rgba(59, 130, 246, .15));border-radius:50%;margin-left:var(--space-1)}.cost-config-section{margin-top:var(--space-3);padding:var(--space-3);background:linear-gradient(135deg,#f59e0b14,#ea580c0d);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-md)}.cost-config-header{display:flex;justify-content:space-between;align-items:center}.cost-config-header .text-sm{color:#fbbf24;font-weight:var(--font-medium)}.cost-config-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);background:#0003;border-radius:var(--radius-md);margin-top:var(--space-2)}.cost-config-row{display:flex;align-items:center;gap:var(--space-3)}.cost-config-row .label{min-width:110px;margin:0;font-size:var(--text-xs);color:var(--text-secondary)}.cost-config-row .input,.cost-config-row select{flex:1;max-width:200px}.group-card-costs,.total-costs{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}.cost-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:linear-gradient(135deg,#10b98133,#34d39926);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);color:#34d399;white-space:nowrap}.cost-chip-lg{padding:4px 12px;font-size:var(--text-sm);background:linear-gradient(135deg,#10b98140,#34d39933);border:1px solid rgba(16,185,129,.4)}.group-summary-footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-sm);margin-top:var(--space-2)}.total-label{font-weight:var(--font-semibold);color:var(--text-secondary)}.total-count{color:var(--color-primary);font-weight:var(--font-medium);white-space:nowrap}.total-qty{color:var(--text-secondary);white-space:nowrap}.grand-totals{margin-top:var(--space-3);padding-top:var(--space-3);border-top:2px solid var(--border-subtle)}.grand-totals .group-summary-footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-sm)}.grand-totals .total-label{font-weight:var(--font-semibold);color:var(--text-primary);margin-right:var(--space-2)}.grand-totals .total-count,.grand-totals .total-qty{white-space:nowrap}.grand-totals .total-costs{margin-top:0}.error{color:var(--color-error)!important;font-size:var(--text-xs);font-style:italic}.custom-param-order-buttons{display:flex;flex-direction:column;gap:0}.custom-param-order-buttons button{padding:0;width:16px;height:14px;font-size:8px;line-height:1}.custom-param-order-buttons button:disabled{opacity:.3;cursor:not-allowed}.schedule-cell.custom-param{width:100px;color:var(--text-secondary)}.keyword-priority-hint{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic;margin-right:var(--space-2);opacity:.7}.keyword-tag-reorderable{display:inline-flex;align-items:center;gap:2px}.keyword-move-btn{background:none;border:none;padding:0 2px;cursor:pointer;color:var(--text-tertiary);font-size:8px;line-height:1;transition:color var(--transition-fast)}.keyword-move-btn:hover:not(:disabled){color:var(--accent)}.keyword-move-btn:disabled{opacity:.3;cursor:not-allowed}.confirm-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:320px;max-width:400px;animation:dialog-appear .15s ease-out}@keyframes dialog-appear{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog-header{padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.confirm-dialog-header h4{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.confirm-dialog-body{padding:var(--space-4)}.confirm-dialog-body p{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.confirm-dialog-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-2)}.dropdown-menu-wrapper{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;right:0;min-width:160px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);padding:var(--space-1);animation:dropdown-appear .15s ease-out}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.dropdown-menu-item:hover:not(.disabled){background:var(--bg-hover)}.dropdown-menu-item.disabled{opacity:.5;cursor:not-allowed}.dropdown-menu-icon{display:flex;align-items:center;color:var(--text-secondary)}.dropdown-menu-label{flex:1}.views-panel{display:flex;flex-direction:column;gap:var(--space-4)}.views-section{margin-bottom:var(--space-2)}.views-empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-tertiary);font-size:var(--text-sm)}.views-mode-toggle{padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.views-mode-toggle .toggle-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.views-mode-toggle .toggle-checkbox{width:16px;height:16px;accent-color:var(--accent-primary);cursor:pointer}.views-mode-toggle .toggle-text{-webkit-user-select:none;user-select:none}.floor-plan-list{display:flex;flex-direction:column;gap:var(--space-2)}.floor-plan-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:all var(--transition-fast)}.floor-plan-item:hover{background:var(--surface-2);border-color:var(--border-default)}.floor-plan-item.active{background:#00c6ff1a;border-color:var(--accent-primary)}.floor-plan-info{display:flex;align-items:center;justify-content:space-between}.floor-plan-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.floor-plan-elevation{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary);padding:var(--space-1) var(--space-2);background:var(--surface-2);border-radius:var(--radius-sm)}.floor-plan-controls{display:flex;align-items:center;gap:var(--space-3)}.offset-control{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.offset-control label{font-size:var(--text-xs);color:var(--text-tertiary)}.offset-slider{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--surface-3);border-radius:var(--radius-full);cursor:pointer}.offset-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;box-shadow:0 0 4px #00c6ff66}.offset-slider::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--accent-primary);cursor:pointer;box-shadow:0 0 4px #00c6ff66}.style-editor-section{padding:0}.style-editor-toggle{width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:none;color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:background var(--transition-fast)}.style-editor-toggle:hover{background:var(--bg-hover)}.style-editor-toggle .chevron{display:flex;transition:transform var(--transition-fast)}.style-editor-toggle .chevron.open{transform:rotate(90deg)}.style-editor-content{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-3)}.style-row{display:flex;flex-direction:column;gap:var(--space-1)}.style-row label{font-size:var(--text-xs);color:var(--text-secondary)}.style-select{padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer}.style-select:focus{outline:none;border-color:var(--accent-primary)}.color-input{width:100%;height:32px;padding:2px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer}.color-input::-webkit-color-swatch-wrapper{padding:2px}.color-input::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.reset-styles-btn{margin-top:var(--space-2);align-self:flex-start}.floor-plan-item-compact{background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:all var(--transition-fast);overflow:hidden}.floor-plan-item-compact:hover{background:var(--surface-2)}.floor-plan-item-compact.active{background:#00c6ff14;border-color:var(--accent-primary);box-shadow:0 0 0 1px #00c6ff4d}.floor-plan-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);gap:var(--space-2)}.floor-plan-info-compact{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.floor-plan-item-compact .floor-plan-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-plan-item-compact .floor-plan-elevation{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary);flex-shrink:0}.floor-plan-offset-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-top:1px solid var(--border-subtle)}.offset-label{font-size:var(--text-xs);color:var(--text-secondary);flex-shrink:0;min-width:60px}.offset-slider-compact{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--surface-3);border-radius:var(--radius-full);cursor:pointer}.offset-slider-compact::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent-primary);cursor:pointer}.offset-slider-compact::-moz-range-thumb{width:10px;height:10px;border:none;border-radius:50%;background:var(--accent-primary);cursor:pointer}.division-list-children{color:var(--color-primary);font-weight:var(--font-medium);font-size:.75rem;margin-left:var(--space-2);padding:2px 6px;background:#3b82f626;border-radius:var(--radius-sm)}.division-list-rules{color:var(--text-muted);font-size:.75rem;margin-left:var(--space-2)}.dimension-loading-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);z-index:var(--z-modal);animation:fadeIn .2s ease}.dimension-loading-spinner{width:40px;height:40px;border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;animation:dimension-spin .8s linear infinite}.dimension-loading-text{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--text-primary);text-align:center}@keyframes dimension-spin{to{transform:rotate(360deg)}}.discipline-group{margin-bottom:8px}.discipline-group-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(145deg,#667eea26,#667eea14);border:1px solid rgba(102,126,234,.25);border-radius:6px;margin-bottom:6px}.discipline-group-icon{font-size:14px}.discipline-group-name{flex:1;font-weight:500;font-size:13px;color:#fff}.discipline-group-count{font-size:11px;padding:2px 6px;background:#ffffff1a;border-radius:10px;color:#ffffffb3}.discipline-group-models{display:flex;flex-direction:column;gap:4px;padding-left:4px;border-left:2px solid rgba(102,126,234,.3);margin-left:8px}.discipline-group-actions{display:flex;gap:4px;margin-left:8px}.discipline-group-label{font-size:10px;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:20px}.auth-container{width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:32px;color:#fff}.auth-logo{font-size:48px;margin-bottom:16px}.auth-header h1{font-size:32px;font-weight:700;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{color:#fff9;margin:0;font-size:14px}.auth-form{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px}.auth-form h2{color:#fff;font-size:24px;font-weight:600;margin:0 0 24px;text-align:center}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;cursor:pointer;transition:opacity .2s}.auth-error:hover{opacity:.8}.form-group{margin-bottom:20px}.form-group label{display:block;color:#fffc;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:16px;transition:all .2s;box-sizing:border-box}.form-group input::placeholder{color:#ffffff4d}.form-group input:focus{outline:none;border-color:#667eea;background:#667eea1a}.form-hint{display:block;color:#fff6;font-size:12px;margin-top:6px}.auth-button{width:100%;padding:14px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.auth-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #667eea66}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin-top:24px;text-align:center;color:#ffffff80;font-size:14px}.auth-link{background:none;border:none;color:#667eea;font-size:14px;font-weight:500;cursor:pointer;margin-left:6px;transition:color .2s}.auth-link:hover{color:#8b9ef7;text-decoration:underline}.auth-subtitle{color:#fff9;font-size:14px;text-align:center;margin:-12px 0 20px}.otp-input{text-align:center;font-size:24px!important;font-weight:600;letter-spacing:8px;font-family:monospace}.otp-input::placeholder{letter-spacing:8px}.owners-dialog{max-width:500px;max-height:80vh;overflow:visible}.owners-dialog .dialog-body{overflow:visible}.owners-subtitle{color:#ffffffb3;margin:0 0 20px}.owners-section{margin-bottom:24px;overflow:visible}.owners-section h3{font-size:14px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.owners-list,.users-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.owner-item,.user-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px}.owner-info,.user-info{display:flex;flex-direction:column;gap:2px}.owner-name,.user-name{font-weight:500;color:#ffffffe6}.owner-email,.user-email{font-size:12px;color:#ffffff80}.remove-owner-btn{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.remove-owner-btn:hover:not(:disabled){background:#ef444433;border-color:#ef444480}.remove-owner-btn:disabled{opacity:.4;cursor:not-allowed}.add-owner-btn{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#22c55e;padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.add-owner-btn:hover:not(:disabled){background:#22c55e40;border-color:#22c55e99}.add-owner-btn:disabled{opacity:.5}.search-input-wrapper{position:relative}.search-input{width:100%;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:14px}.search-input:focus{outline:none;border-color:#6366f180}.search-input::placeholder{color:#fff6}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:#1a1a2e;border:1px solid rgba(255,255,255,.2);border-radius:8px;margin-top:4px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000004d}.suggestion-item{padding:12px 16px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(255,255,255,.1)}.suggestion-item:hover{background:#6366f126}.suggestion-name{font-weight:500;color:#ffffffe6}.suggestion-email{font-size:12px;color:#ffffff80}.search-hint{font-size:12px;color:#fff6;margin-top:8px}.no-users{text-align:center;color:#ffffff80;padding:20px}.loading-state{text-align:center;color:#fff9;padding:40px}.project-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s;position:relative}.project-card:hover{transform:translateY(-4px);border-color:#667eea80;box-shadow:0 8px 32px #0000004d}.project-thumbnail{height:160px;background:#0003;position:relative;overflow:hidden}.project-thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea33,#764ba233)}.thumbnail-placeholder span{font-size:48px;opacity:.5}.private-badge{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;font-size:16px;padding:4px 8px;border-radius:4px}.owner-badge{position:absolute;top:8px;left:8px;background:#10b981e6;color:#fff;font-size:14px;padding:4px 8px;border-radius:4px}.project-card.owned{border-left:3px solid #10b981}.project-content{padding:16px}.project-name{font-size:16px;font-weight:600;margin:0 0 8px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-description{font-size:13px;color:#fff9;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-meta{display:flex;align-items:center;gap:12px}.project-date{font-size:12px;color:#fff6}.project-dates{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:4px}.date-item{display:flex;justify-content:space-between;align-items:center;font-size:11px}.date-label{color:#fff6}.date-value{color:#fff9;font-family:monospace;font-size:10px}.project-menu{position:absolute;top:8px;left:8px;z-index:10}.menu-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#00000080;border-radius:4px;color:#fffc;font-size:16px;cursor:pointer;opacity:0;transition:opacity .2s}.project-card:hover .menu-icon{opacity:1}.menu-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:#2a2a3e;border:1px solid rgba(255,255,255,.1);border-radius:6px;min-width:150px;overflow:hidden;box-shadow:0 8px 24px #0006}.menu-item{display:block;width:100%;padding:10px 14px;border:none;background:none;color:#fffc;text-align:left;font-size:13px;cursor:pointer;transition:background .15s}.menu-item:hover{background:#ffffff1a}.menu-item.danger{color:#f87171}.menu-item.danger:hover{background:#f871711a}.user-search-wrapper{position:relative}.user-search-input{width:100%;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:14px}.user-search-input:focus{outline:none;border-color:#6366f180}.user-search-input::placeholder{color:#fff6}.user-search-dropdown{position:absolute;top:100%;left:0;right:0;background:#1a1a2e;border:1px solid rgba(255,255,255,.2);border-radius:8px;margin-top:4px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000004d}.user-search-item{padding:12px 16px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(255,255,255,.1)}.user-search-item:last-child{border-bottom:none}.user-search-item:hover{background:#6366f126}.user-search-name{font-weight:500;color:#ffffffe6}.user-search-email{font-size:12px;color:#ffffff80}.user-search-hint{font-size:12px;color:#fff6;margin-top:8px;margin-bottom:0}.dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.dialog{background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:100%;max-width:480px;overflow:hidden;box-shadow:0 24px 48px #0006}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.dialog-header h2{font-size:18px;font-weight:600;margin:0;color:#fff}.dialog-close{background:none;border:none;color:#ffffff80;font-size:24px;cursor:pointer;padding:0;line-height:1}.dialog-close:hover{color:#fff}.dialog-body{padding:24px}.dialog-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.dialog .form-group{margin-bottom:20px}.dialog .form-group label{display:block;color:#fffc;font-size:14px;font-weight:500;margin-bottom:8px}.dialog .form-group input[type=text],.dialog .form-group textarea{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;font-family:inherit;resize:none;box-sizing:border-box}.dialog .form-group input::placeholder,.dialog .form-group textarea::placeholder{color:#ffffff4d}.dialog .form-group input:focus,.dialog .form-group textarea:focus{outline:none;border-color:#667eea}.checkbox-group label{display:flex!important;align-items:center;gap:10px;cursor:pointer}.checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:#667eea}.checkbox-group small{display:block;color:#fff6;font-size:12px;margin-top:6px;margin-left:28px}.form-hint{color:#fff6;font-size:12px;margin:6px 0 0 28px}.checkbox-label{display:flex!important;align-items:center;gap:10px;cursor:pointer;margin-bottom:0!important}.checkbox-text{color:#ffffffe6}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;background:#0003;border-top:1px solid rgba(255,255,255,.1)}.btn-secondary{padding:10px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fffc;font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary:hover:not(:disabled){background:#ffffff26;color:#fff}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #667eea66}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.create-project-dialog{max-height:85vh;overflow-y:visible;overflow-x:visible}.create-project-dialog .dialog-body{overflow:visible}.owners-section .form-hint{margin-left:0;margin-bottom:12px}.owner-search{width:100%;margin-bottom:12px}.owners-select-list{max-height:150px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px}.owner-option{display:flex!important;align-items:center;gap:12px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .2s}.owner-option:hover{background:#ffffff0d}.owner-option input[type=checkbox]{width:16px;height:16px;accent-color:#667eea}.owner-details{display:flex;flex-direction:column;gap:2px}.owner-details .owner-name{font-size:14px;color:#ffffffe6}.owner-details .owner-email{font-size:12px;color:#ffffff80}.no-results{text-align:center;color:#fff6;padding:16px;margin:0}.selected-count{margin-top:10px;font-size:13px;color:#6366f1e6}.selected-owners-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.selected-owner-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:8px}.selected-owner-item .remove-owner-btn{background:none;border:none;color:#ffffff80;cursor:pointer;font-size:14px;padding:4px 8px}.selected-owner-item .remove-owner-btn:hover{color:#ef4444}.input-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .15s ease-out}.input-dialog{background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:100%;max-width:400px;overflow:hidden;animation:slideUp .2s ease-out;box-shadow:0 20px 60px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.input-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.input-dialog-header h2{font-size:16px;font-weight:600;margin:0;color:#fff}.input-dialog-close{background:none;border:none;color:#ffffff80;font-size:22px;cursor:pointer;line-height:1;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .15s}.input-dialog-close:hover{color:#fffc}.input-dialog-body{padding:20px}.input-dialog-message{margin:0 0 12px;color:#fff9;font-size:13px;line-height:1.5}.input-dialog-input{width:100%;padding:12px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}.input-dialog-input::placeholder{color:#ffffff59}.input-dialog-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.input-dialog-footer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.1);background:#0003}.input-dialog-cancel{flex:1;padding:10px 16px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fffc;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.input-dialog-cancel:hover{background:#ffffff1f}.input-dialog-submit{flex:1;padding:10px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.input-dialog-submit:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.animated-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.animated-collapse.open{grid-template-rows:1fr}.animated-collapse-inner{overflow:hidden}.toast-container{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:10px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0006;cursor:pointer;pointer-events:auto;animation:toast-in .3s ease-out;min-width:280px;max-width:400px}@keyframes toast-in{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.toast-icon{font-size:18px;font-weight:700;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-message{flex:1;font-size:14px;font-weight:500}.toast-success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#86efac}.toast-success .toast-icon{background:#22c55e4d;color:#22c55e}.toast-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.toast-error .toast-icon{background:#ef44444d;color:#ef4444}.toast-info{background:#667eea26;border:1px solid rgba(102,126,234,.3);color:#c7d2fe}.toast-info .toast-icon{background:#667eea4d;color:#667eea}.toast-warning{background:#fbbf2426;border:1px solid rgba(251,191,36,.3);color:#fde68a}.toast-warning .toast-icon{background:#fbbf244d;color:#fbbf24}.confirm-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:99998;animation:fade-in .15s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;max-width:400px;width:90%;box-shadow:0 20px 60px #00000080;animation:dialog-in .2s ease-out}@keyframes dialog-in{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog h3{color:#fff;font-size:18px;font-weight:600;margin:0 0 12px}.confirm-dialog p{color:#ffffffb3;font-size:14px;line-height:1.5;margin:0 0 24px}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-danger-btn{background:linear-gradient(135deg,#ef4444,#dc2626)!important}.confirm-danger-btn:hover:not(:disabled){box-shadow:0 4px 20px #ef444466!important}.policy-dialog-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.policy-dialog{background:#1e1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:100%;max-width:700px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 48px #00000080}.policy-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.policy-dialog-header h2{font-size:18px;font-weight:600;margin:0;color:#fff}.policy-dialog-close{background:none;border:none;color:#ffffff80;font-size:24px;cursor:pointer;padding:0;line-height:1}.policy-dialog-close:hover{color:#fff}.policy-dialog-body{padding:24px;overflow-y:auto;flex:1;max-height:calc(85vh - 180px)}.policy-dialog-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.policy-form-group{margin-bottom:16px}.policy-form-group label{display:block;color:#fffc;font-size:14px;font-weight:500;margin-bottom:8px}.policy-form-group input[type=text]{width:100%;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:14px;box-sizing:border-box}.policy-form-group input[type=text]:focus{outline:none;border-color:#667eea}.policy-form-group input::placeholder{color:#ffffff4d}.policy-permissions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}.permission-section{background:#ffffff08;border-radius:8px;padding:16px}.permission-section h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#ffffffe6}.permission-toggle{display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer}.permission-toggle input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;opacity:0;width:0;height:0;margin:0;padding:0}.permission-toggle input:before,.permission-toggle input[type=checkbox]:before,.permission-toggle .toggle-slider:before{display:none!important;content:none!important}.permission-toggle .toggle-slider{flex-shrink:0;display:inline-block;width:40px;height:22px;background:#ffffff26;border-radius:11px;position:relative;transition:background .2s ease}.permission-toggle .toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff9;border-radius:50%;transition:transform .2s ease,background .2s ease}.permission-toggle input:checked+.toggle-slider{background:#667eea}.permission-toggle input:checked+.toggle-slider:after{transform:translate(18px);background:#fff}.permission-toggle .toggle-label{font-size:14px;color:#ffffffd9;-webkit-user-select:none;user-select:none}.policy-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;background:#0003;border-top:1px solid rgba(255,255,255,.1)}@media(max-width:600px){.policy-permissions-grid{grid-template-columns:1fr}}.admin-panel-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-panel{display:flex;flex-direction:column;width:1100px;max-width:95vw;height:700px;max-height:90vh;background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:0 20px 60px #00000080}.admin-panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.admin-panel-header h2{margin:0;font-size:var(--text-xl);font-weight:600}.admin-panel-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:all .2s ease}.admin-panel-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.admin-tabs{display:flex;gap:var(--space-2);padding:0 var(--space-5) var(--space-4);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-4)}.admin-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.admin-tab:hover{background:var(--bg-secondary);color:var(--text-primary)}.admin-tab.active{background:var(--accent-primary);color:var(--text-on-accent)}.admin-content{flex:1;overflow-y:auto;padding:0 var(--space-5)}.admin-error{padding:var(--space-3);background:#d9262626;border-radius:var(--radius-md);color:var(--danger);margin-bottom:var(--space-4)}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-right:var(--space-4)}.admin-section-header h3{font-size:var(--text-lg);font-weight:600;margin:0}.user-counts{display:flex;gap:var(--space-2);margin-right:var(--space-2)}.count-badge{font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.count-badge.active{background:#10b98126;color:#10b981}.count-badge.temporary{background:#f59e0b26;color:#f59e0b}.count-badge.deactivated{background:#9ca3af26;color:#9ca3af}.invite-form{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);align-items:center}.invite-input{flex:1;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm)}.invite-input::placeholder{color:var(--text-tertiary)}.invite-input:focus{outline:none;border-color:var(--accent-primary)}.invite-policy-select{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);min-width:150px}.invite-policy-select:focus{outline:none;border-color:var(--accent-primary)}.users-table{background:var(--bg-secondary);border-radius:var(--radius-lg)}.table-header{display:grid;grid-template-columns:2fr 40px 2fr 1.5fr 1fr 70px 140px;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.table-row{display:grid;grid-template-columns:2fr 40px 2fr 1.5fr 1fr 70px 140px;gap:var(--space-4);padding:var(--space-3) var(--space-4);align-items:center;border-bottom:1px solid var(--border-subtle);transition:background .2s ease}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--bg-tertiary)}.table-row.temporary-user{background:#eab30814;border-left:3px solid rgba(234,179,8,.6)}.table-row.temporary-user:hover{background:#eab3081f}.temp-badge{margin-left:8px;padding:2px 6px;border-radius:var(--radius-sm);background:#eab30833;color:#eab308;font-size:var(--text-xs);font-weight:500}.col-name{display:flex;align-items:center;gap:var(--space-3)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-avatar span{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.col-email{font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-projects-badge{display:flex;justify-content:center;align-items:center;position:relative}.projects-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--accent-primary);color:var(--text-on-accent);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease}.projects-badge:hover{transform:scale(1.1);background:var(--accent-secondary)}.col-name{position:relative;overflow:visible}.col-name>span:first-of-type{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-popup{position:absolute;top:calc(100% + 4px);left:0;z-index:1000;min-width:280px;max-width:380px;padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 12px 32px #0006}.project-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.project-item:hover{background:var(--bg-secondary)}.project-item .project-name{font-weight:500;flex-shrink:0}.project-item.archived{opacity:.7}.project-item.archived .project-name{color:var(--text-muted)}.archived-tag{font-size:10px;padding:1px 5px;border-radius:var(--radius-sm);background:#6b728033;color:var(--text-muted);font-weight:500}.project-role-tag{font-size:10px;padding:1px 5px;border-radius:var(--radius-sm);background:#6366f11f;color:#a5b4fc;font-weight:500;margin-left:auto}.project-role-tag.owner{background:#eab3081f;color:#fcd34d}.project-role-tag.admin{background:#8b5cf61f;color:#c4b5fd}.project-role-tag.editor{background:#3b82f61f;color:#93c5fd}.col-added{font-size:var(--text-xs);color:var(--text-muted)}.policy-select{width:100%;padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-xs);cursor:pointer}.policy-select:focus{outline:none;border-color:var(--accent-primary)}.policy-select option{background:var(--bg-secondary);color:var(--text-primary)}.role-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.role-badge.admin{background:#ffbf0033;color:#ffbf00}.role-badge.user{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge{padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.status-badge.active{background:#22c35833;color:#22c358}.status-badge.inactive{background:#80808033;color:var(--text-muted)}.col-actions{display:flex;gap:var(--space-1);flex-wrap:wrap;justify-content:flex-end}.auto-delete-cell{display:flex;align-items:center}.auto-delete-display{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs)}.auto-delete-icon{font-size:var(--text-sm)}.auto-delete-input{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);cursor:pointer;transition:all var(--transition-fast);width:100px}.auto-delete-input:hover{border-color:var(--accent-primary);background:var(--surface-3)}.auto-delete-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #00c6ff33}.auto-delete-display.soon .auto-delete-input{background:#f59e0b26;border-color:#f59e0b80;color:#f59e0b}.policies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.policy-card{padding:var(--space-4)!important}.policy-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2)}.policy-header h4{margin:0;font-size:var(--text-base);font-weight:600}.policy-badges{display:flex;gap:var(--space-2);flex-wrap:wrap}.default-badge{padding:2px 6px;border-radius:var(--radius-sm);background:var(--accent-primary);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:500}.system-badge{padding:2px 6px;border-radius:var(--radius-sm);background:#80808033;color:var(--text-secondary);font-size:var(--text-xs);font-weight:500}.policy-description{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.policy-permissions{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.permission-group{display:flex;flex-direction:column;gap:var(--space-1)}.group-label{font-size:var(--text-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.permissions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.permission-badge{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--text-xs)}.permission-badge.enabled{background:#22c35826;color:#22c358}.permission-badge.disabled{background:#8080801a;color:var(--text-muted)}.policy-actions{display:flex;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.admin-settings{padding-bottom:var(--space-6)}.settings-cards{display:flex;flex-direction:column;gap:var(--space-4)}.settings-card{padding:var(--space-5)!important;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.settings-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.settings-icon{font-size:24px}.settings-card-header h4{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.settings-description{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6;margin-bottom:var(--space-4)}.settings-control{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.settings-control label{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.settings-select{padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;min-width:140px}.settings-select:focus{outline:none;border-color:var(--accent-primary)}.settings-select option{background:var(--bg-secondary);color:var(--text-primary)}.settings-input{flex:1;padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);min-width:300px}.settings-input:focus{outline:none;border-color:var(--accent-primary)}.settings-input::placeholder{color:var(--text-muted)}.settings-input-row{display:flex;flex:1;gap:var(--space-3);align-items:center}.settings-hint{font-size:var(--text-xs);color:var(--text-muted);margin:0}.settings-notice{color:var(--text-secondary);font-size:var(--text-sm)}.collapsible-section{margin-top:var(--space-4);padding-top:var(--space-3);position:relative}.temporary-section{border-top:1px solid rgba(234,179,8,.3)}.deactivated-section{border-top:1px solid var(--border-subtle)}.section-toggle{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;font-size:var(--text-sm);cursor:pointer;padding:var(--space-2);width:100%;text-align:left;border-radius:var(--radius-md);transition:all var(--transition-fast)}.temporary-toggle{color:#eab308}.temporary-toggle:hover{background:#eab30814}.collapsed-table{margin-top:var(--space-2);border-radius:var(--radius-md)}.temporary-section .collapsed-table{background:#eab3080d;border:1px solid rgba(234,179,8,.2)}.deactivated-section .collapsed-table{background:var(--bg-tertiary);border:1px solid var(--border-subtle)}.deactivated-user{opacity:.6}.temp-avatar{background:#eab3084d!important}.deactivated-avatar{background:var(--bg-secondary)!important}.role-badge.temp{background:#eab30826;color:#eab308}.role-badge.deactivated{background:#9ca3af26;color:var(--text-muted)}.policy-label.admin{font-size:var(--text-sm);font-weight:var(--font-medium);color:#f59e0b;display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%}.policy-label.muted{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.temp-actions{display:flex;gap:var(--space-1)}.deactivated-users-section{margin-top:var(--space-4);border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.deactivated-toggle{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;padding:var(--space-2);width:100%;text-align:left;border-radius:var(--radius-md);transition:all var(--transition-fast)}.deactivated-toggle:hover{background:#ffffff0d;color:var(--text-primary)}.temp-deactivated{background:#eab3080d;border-left:3px solid rgba(234,179,8,.4)}.temp-name{color:#eab308!important}.toggle-icon{font-size:10px;width:12px}.deactivated-list{margin-top:var(--space-2);border-radius:var(--radius-md);background:#ffffff05;border:1px solid var(--border-subtle);overflow:hidden}.deactivated-user-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle)}.deactivated-user-row:last-child{border-bottom:none}.deactivated-user-row .user-info{display:flex;flex-direction:column;gap:2px}.deactivated-name{color:var(--text-secondary);font-size:var(--text-sm)}.deactivated-email{color:var(--text-muted);font-size:var(--text-xs)}.deactivate-btn:hover{color:#ef4444!important;background:#ef44441a!important}.deactivated-user-row button:hover{color:#22c55e!important;background:#22c55e1a!important}.dashboard{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-brand{display:flex;align-items:center;gap:12px}.dashboard-logo{font-size:28px}.dashboard-brand h1{font-size:24px;font-weight:700;margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-user{display:flex;align-items:center;gap:16px}.user-name{color:#ffffffb3;font-size:14px}.logout-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#ffffff26;color:#fff}.dashboard-user .admin-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#f59e0b33,#eab30826);border:1px solid rgba(245,158,11,.4);border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s}.dashboard-user .admin-btn:hover{background:linear-gradient(135deg,#f59e0b4d,#eab30840);border-color:#f59e0b99;box-shadow:0 0 12px #f59e0b40;transform:translateY(-1px)}.dashboard-main{max-width:1400px;margin:0 auto;padding:32px}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.dashboard-toolbar h2{font-size:28px;font-weight:600;margin:0}.create-project-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.create-project-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #667eea66}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(102,126,234,.3);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.dashboard-loading p{color:#fff9}.dashboard-error{text-align:center;padding:80px 20px}.dashboard-error p{color:#fca5a5;margin-bottom:16px}.dashboard-error button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 20px;border-radius:6px;cursor:pointer}.dashboard-empty{text-align:center;padding:80px 20px}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.dashboard-empty h3{font-size:24px;margin:0 0 8px;color:#fffc}.dashboard-empty p{color:#ffffff80;margin:0 0 24px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.toolbar-actions{display:flex;align-items:center;gap:12px}.archived-toggle{background:#6366f11a;border:1px solid rgba(99,102,241,.3);color:#ffffffb3;padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.archived-toggle:hover,.archived-toggle.active{background:#6366f133;border-color:#6366f180;color:#fff}.back-to-active-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.back-to-active-btn:hover{background:#ffffff26;border-color:#ffffff4d;color:#fff}.sort-dropdown{display:flex;align-items:center;gap:8px}.sort-dropdown label{color:#ffffff80;font-size:13px}.sort-dropdown select{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;cursor:pointer;outline:none;transition:all .2s}.sort-dropdown select:hover{background:#ffffff26;border-color:#ffffff4d}.sort-dropdown select option{background:#1a1a2e;color:#fff}.archived-section{background:#0003;border-radius:12px;padding:24px}.archived-section h3{margin:0 0 20px;color:#fffc;font-size:18px}.no-archived{color:#ffffff80;text-align:center;padding:40px}.archived-list{display:flex;flex-direction:column;gap:12px}.archived-item{display:flex;align-items:center;justify-content:space-between;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px 20px}.archived-info{display:flex;flex-direction:column;gap:4px}.archived-name{font-weight:500;color:#ffffffe6}.archived-desc{font-size:13px;color:#ffffff80}.restore-btn{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#22c55e;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.restore-btn:hover{background:#22c55e40;border-color:#22c55e99}.discipline-settings-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.discipline-settings-modal{background:var(--bg-secondary, #1a1a2e);border:1px solid var(--border-color, #333);border-radius:12px;width:450px;max-width:90vw;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .2s ease;box-shadow:0 8px 32px #0006}.discipline-settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.discipline-settings-header h3{margin:0;font-size:16px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px}.discipline-settings-close{background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;border-radius:4px;transition:all .15s}.discipline-settings-close:hover{color:#fff;background:#ffffff1a}.discipline-settings-content{padding:20px;overflow-y:auto}.discipline-settings-section{margin-bottom:20px}.discipline-settings-section:last-child{margin-bottom:0}.discipline-settings-section>label{display:block;font-size:12px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.discipline-settings-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.discipline-settings-section-header label{font-size:12px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.discipline-settings-name-row{display:flex;gap:8px}.discipline-settings-input{flex:1;padding:10px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:14px;outline:none;transition:border-color .15s}.discipline-settings-input:focus{border-color:var(--primary)}.discipline-settings-save-btn,.discipline-settings-add-btn{padding:8px 16px;background:var(--primary);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.discipline-settings-save-btn:hover,.discipline-settings-add-btn:hover{background:var(--primary-hover)}.discipline-settings-add-btn{padding:4px 12px;font-size:12px}.discipline-settings-members{display:flex;flex-direction:column;gap:8px}.discipline-settings-empty{color:#fff6;font-size:13px;font-style:italic;padding:12px;background:#0003;border-radius:6px}.discipline-settings-member{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px}.discipline-settings-member-info{display:flex;flex-direction:column;gap:2px}.discipline-settings-member-name{font-size:14px;color:#fff}.discipline-settings-member-email{font-size:12px;color:#ffffff80}.discipline-settings-member-actions{display:flex;align-items:center;gap:4px}.discipline-settings-member-remove,.discipline-settings-member-promote,.discipline-settings-member-demote{background:none;border:none;color:#fff6;cursor:pointer;padding:6px;border-radius:4px;transition:all .15s;font-size:14px}.discipline-settings-member-remove:hover{color:#ef4444;background:#ef44441a}.discipline-settings-member-promote:hover{color:#10b981;background:#10b9811a}.discipline-settings-member-demote:hover{color:#f59e0b;background:#f59e0b1a}.role-hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:11px;color:#fff6}.discipline-settings-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:13px}.discipline-settings-readonly-notice{background:#eab30826;border:1px solid rgba(234,179,8,.3);color:#fbbf24;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:13px;text-align:center}.discipline-settings-invite-form{display:flex;gap:8px;margin-bottom:12px}.discipline-settings-invite-btn{padding:10px 16px;background:var(--accent-color, #4a6cf7);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;white-space:nowrap;transition:all .2s}.discipline-settings-invite-btn:hover:not(:disabled){background:var(--accent-hover, #3a5ce7)}.discipline-settings-invite-btn:disabled{opacity:.5;cursor:not-allowed}.discipline-settings-search-wrapper{position:relative;flex:1}.discipline-settings-search-input{width:100%;padding:10px 12px;background:var(--bg-tertiary, #16213e);border:1px solid var(--border-color, #333);border-radius:6px;color:var(--text-primary, #fff);font-size:13px}.discipline-settings-search-input::placeholder{color:#fff6}.discipline-settings-search-input:focus{outline:none;border-color:var(--accent-color, #4a6cf7)}.discipline-settings-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-tertiary, #16213e);border:1px solid var(--border-color, #444);border-radius:6px;margin-top:4px;max-height:180px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000004d}.discipline-settings-suggestion{padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border-color, #333)}.discipline-settings-suggestion:last-child{border-bottom:none}.discipline-settings-suggestion:hover{background:#4a6cf726}.discipline-settings-suggestion .suggestion-name{font-weight:500;color:var(--text-primary, #fff);font-size:13px}.discipline-settings-suggestion .suggestion-email{font-size:11px;color:#ffffff80}.discipline-settings-published{padding:10px 12px;background:#fbbf241a;border:1px solid rgba(251,191,36,.2);border-radius:6px;color:#fbbf24;font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.disciplines-tabs{display:flex;flex-direction:column;gap:8px}.disciplines-list{display:flex;flex-direction:column;gap:6px}.discipline-tab{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(145deg,#ffffff0f,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#ffffffbf;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.discipline-tab:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .2s ease}.discipline-tab:hover{background:linear-gradient(145deg,#ffffff1a,#ffffff0a);border-color:#ffffff26;color:#fff;transform:translate(2px)}.discipline-tab.active{background:linear-gradient(145deg,#667eea33,#667eea1a);border-color:#667eea66;color:#fff;box-shadow:0 2px 8px #667eea26}.discipline-tab.active:before{background:linear-gradient(180deg,#667eea,#764ba2)}.discipline-name{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discipline-name:before{content:"📋";font-size:14px}.discipline-delete{display:none;background:#ffffff1a;border:none;color:#ffffff80;font-size:14px;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1;transition:all .15s;margin-left:4px}.discipline-tab.active .discipline-delete{display:inline-flex}.discipline-delete:hover{background:#f8717133;color:#f87171}.discipline-settings-btn{display:none;align-items:center;justify-content:center;background:#ffffff1a;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;margin-left:4px;transition:all .15s}.discipline-tab.active .discipline-settings-btn{display:flex}.discipline-settings-btn:hover{background:#667eea4d;color:#fff}.discipline-activate-btn{display:inline-flex;align-items:center;background:#22c55e33;border:1px solid rgba(34,197,94,.4);color:#22c55e;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;margin-left:8px;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.5px}.discipline-activate-btn:hover{background:#22c55e4d;border-color:#22c55e99;box-shadow:0 0 8px #22c55e4d}.discipline-active-badge{display:inline-flex;align-items:center;background:#22c55e40;color:#22c55e;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;margin-left:8px;text-transform:uppercase;letter-spacing:.5px;border:none;cursor:pointer;transition:all .15s ease}.discipline-active-badge.deactivatable .badge-active{display:inline}.discipline-active-badge.deactivatable .badge-deactivate{display:none}.discipline-active-badge.deactivatable:hover{background:#f9731640;color:#f97316}.discipline-active-badge.deactivatable:hover .badge-active{display:none}.discipline-active-badge.deactivatable:hover .badge-deactivate{display:inline}.discipline-preview-badge{display:inline-flex;align-items:center;background:#eab30840;color:#eab308;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;margin-left:8px;text-transform:uppercase;letter-spacing:.5px;border:none;cursor:pointer;transition:all .15s ease}.discipline-preview-badge.deactivatable .badge-active{display:inline}.discipline-preview-badge.deactivatable .badge-deactivate{display:none}.discipline-preview-badge.deactivatable:hover{background:#ef444440;color:#ef4444}.discipline-preview-badge.deactivatable:hover .badge-active{display:none}.discipline-preview-badge.deactivatable:hover .badge-deactivate{display:inline}.discipline-tab.faded{opacity:.6}.discipline-tab.faded:hover{opacity:.85}.discipline-tab.preview-mode{background:linear-gradient(145deg,#eab30833,#eab3081a)!important;border-color:#eab30880!important;box-shadow:0 0 12px #eab30840;opacity:1!important}.discipline-tab.active:not(.preview-mode){background:linear-gradient(145deg,#22c55e33,#22c55e1a)!important;border-color:#22c55e80!important;box-shadow:0 0 12px #22c55e40}.discipline-published-badge{color:#fbbf24;font-size:8px;margin-left:4px}.discipline-tab.creating{padding:8px 12px;background:#667eea1a;border-color:#667eea4d}.discipline-tab.creating input{flex:1;width:100%;padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:13px}.discipline-tab.creating input::placeholder{color:#fff6}.discipline-tab.creating input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.discipline-create-confirm,.discipline-create-cancel{background:#ffffff1a;border:none;color:#fffc;font-size:14px;cursor:pointer;padding:6px 8px;border-radius:4px;margin-left:4px;transition:all .15s}.discipline-create-confirm:hover{background:#4ade8033;color:#4ade80}.discipline-create-cancel:hover{background:#f8717133;color:#f87171}.discipline-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 14px;background:transparent;border:2px dashed rgba(255,255,255,.15);border-radius:8px;color:#ffffff80;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.discipline-add-btn:hover{background:#667eea1a;border-color:#667eea66;color:#fff}.disciplines-tabs-empty{text-align:center;padding:20px;color:#fff6;font-size:13px}.versions-panel{display:flex;flex-direction:column;height:100%;background:#0003}.versions-panel.empty{display:flex;align-items:center;justify-content:center;color:#ffffff80}.versions-upload{padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.upload-btn{width:100%;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.upload-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #667eea66}.upload-progress{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .2s}.upload-error{margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#fca5a5;font-size:12px}.versions-list{flex:1;overflow-y:auto;padding:8px}.versions-empty{padding:24px 16px;text-align:center;color:#ffffff80;font-size:13px}.version-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .15s}.version-item:hover{background:#ffffff0f;border-color:#ffffff26}.version-item.active{background:#667eea1a;border-color:#667eea66}.version-info{flex:1;min-width:0}.version-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:8px}.version-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.version-number{font-weight:600;color:#fff;font-size:14px;flex-shrink:0}.version-date{font-size:11px;color:#ffffff80;flex-shrink:0}.version-details{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#fff9}.version-details-left{display:flex;align-items:center;gap:8px}.version-filename{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-size{color:#fff6}.version-author{font-size:11px;color:#fff6}.version-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.version-item:hover .version-actions{opacity:1}.version-action{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff1a;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;transition:all .15s}.version-action:hover{background:#667eea4d;color:#fff}.published-badge{color:#fbbf24;margin-left:6px;font-size:12px}.version-item.published{background:#fbbf2414;border-color:#fbbf2440}.version-item.published:hover{background:#fbbf241f;border-color:#fbbf2459}.version-action.publish-btn{color:#fff6}.version-action.publish-btn:hover{color:#fbbf24;background:#fbbf2433}.version-action.publish-btn.is-published{color:#fbbf24;opacity:1}.version-item.published .version-actions,.version-item:hover .version-actions{opacity:1}.version-notes{color:#fff9;font-style:italic;font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loaded-badge{background:#22c55e33;color:#4ade80;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;margin-left:8px;text-transform:uppercase;letter-spacing:.5px}.version-action.publish-indicator{color:#fbbf24;cursor:default;pointer-events:none}.version-item.loading{background:#667eea26;border-color:#667eea80;pointer-events:none;opacity:.8}.loading-badge{background:#667eea4d;color:#a5b4fc;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;margin-left:8px;text-transform:uppercase;letter-spacing:.5px;animation:pulse 1.5s ease-in-out infinite}.loading-badge.extracting{background:#f973164d;color:#fdba74}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}.template-selector{display:flex;align-items:center;gap:var(--space-2);position:relative}.template-selector-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);min-width:180px;transition:all .15s ease}.template-selector-trigger:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.template-selector-icon{font-size:var(--text-base)}.template-selector-name{flex:1;text-align:left;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-selector-dirty{color:var(--warning);font-weight:700}.template-selector-version{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-tertiary);padding:1px 4px;border-radius:var(--radius-sm)}.template-selector-arrow{color:var(--text-secondary);font-size:var(--text-xs)}.template-selector-actions{display:flex;gap:var(--space-1)}.template-selector-dropdown{position:absolute;top:100%;left:0;margin-top:var(--space-1);min-width:280px;max-height:400px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000}.template-section-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.template-section-icon{font-size:var(--text-sm)}.template-separator{height:1px;background:var(--border-default);margin:var(--space-1) 0}.template-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background .1s ease}.template-option:hover{background:var(--bg-secondary)}.template-option.selected{background:var(--primary-soft)}.template-option.new-template{font-style:italic}.template-option-icon{font-size:var(--text-base)}.template-option-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.template-option-name{color:var(--text-primary);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-option-description{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-option-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.template-option-version{font-size:var(--text-xs);color:var(--text-secondary);flex-shrink:0}.template-option-actions{display:flex;gap:var(--space-1)}.template-name-exists{font-size:var(--text-xs);color:var(--warning);padding:var(--space-1) 0}.template-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm)}.template-empty-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.template-dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.template-dialog{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:360px;max-width:480px}.template-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default)}.template-dialog-header h3{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.template-dialog-close{background:none;border:none;font-size:var(--text-xl);color:var(--text-secondary);cursor:pointer;padding:var(--space-1);line-height:1}.template-dialog-close:hover{color:var(--text-primary)}.template-dialog-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.template-dialog-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-default);background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.template-form-group{display:flex;flex-direction:column;gap:var(--space-1)}.template-form-group label{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.template-form-group input,.template-form-group textarea{padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--bg-primary);color:var(--text-primary)}.template-form-group input:focus,.template-form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.template-form-group textarea{resize:vertical;min-height:60px}.template-scope-options{display:flex;gap:var(--space-2)}.template-scope-option{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);transition:all .15s ease}.template-scope-option:hover{background:var(--bg-secondary)}.template-scope-option:has(input:checked){background:var(--primary-soft);border-color:var(--primary)}.template-scope-option input{display:none}.template-scope-icon{font-size:var(--text-base)}.version-history-dialog{max-width:520px;width:100%}.version-history-dialog .template-dialog-body{max-height:400px;overflow-y:auto;padding:var(--space-2)}.version-loading,.version-empty{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.version-list{display:flex;flex-direction:column;gap:var(--space-1)}.version-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-subtle)}.version-item.current{background:var(--primary-soft);border-color:var(--primary)}.version-info{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);flex:1}.version-number{font-weight:600;color:var(--text-primary);font-size:var(--text-sm);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.version-date{font-size:var(--text-xs);color:var(--text-secondary)}.version-author{font-size:var(--text-xs);color:var(--text-tertiary)}.version-note{font-size:var(--text-xs);color:var(--text-secondary);font-style:italic;background:var(--warning-soft);padding:1px 4px;border-radius:var(--radius-sm)}.version-current-label{font-size:var(--text-xs);color:var(--primary);font-weight:500;padding:var(--space-1) var(--space-2)}.version-actions{display:flex;gap:var(--space-1);flex-shrink:0}.version-item.previewing{background:var(--info-soft);border-color:var(--info)}.version-preview{margin-top:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}.version-preview-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle)}.version-preview-header h4{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.version-preview-content{padding:var(--space-2) var(--space-3);max-height:200px;overflow-y:auto}.preview-label{margin:0 0 var(--space-1) 0;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.preview-divisions{margin:0;padding-left:var(--space-4);font-size:var(--text-sm);color:var(--text-primary)}.preview-divisions li{padding:2px 0}.preview-more{color:var(--text-tertiary);font-style:italic}.preview-indicator{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--info-soft);color:var(--info);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;border:1px solid var(--info)}.members-panel-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:flex-end;z-index:1000}.members-panel{width:400px;max-width:90vw;height:100%;background:var(--bg-secondary, #1a1a2e);box-shadow:-4px 0 20px #0000004d;display:flex;flex-direction:column;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.members-panel-header{padding:20px;border-bottom:1px solid var(--border-color, #333);display:flex;justify-content:space-between;align-items:center}.members-panel-header h2{margin:0;font-size:1.25rem;color:var(--text-primary, #fff)}.members-panel-header .close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary, #888);cursor:pointer;padding:4px 8px}.members-panel-header .close-btn:hover{color:var(--text-primary, #fff)}.members-panel-body{flex:1;overflow-y:auto;padding:16px}.invite-form{display:flex;gap:8px;margin-bottom:16px}.invite-form input{flex:1;padding:10px 12px;border:1px solid var(--border-color, #333);border-radius:6px;background:var(--bg-tertiary, #16213e);color:var(--text-primary, #fff);font-size:.9rem}.invite-form button{padding:10px 16px;background:var(--accent-color, #4a6cf7);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.invite-form button:hover:not(:disabled){background:var(--accent-hover, #3a5ce7)}.invite-form button:disabled{opacity:.5;cursor:not-allowed}.invite-input-wrapper{flex:1;position:relative}.invite-input-wrapper input{width:100%;padding:10px 12px;border:1px solid var(--border-color, #333);border-radius:6px;background:var(--bg-tertiary, #16213e);color:var(--text-primary, #fff);font-size:.9rem}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-tertiary, #16213e);border:1px solid var(--border-color, #444);border-radius:6px;margin-top:4px;max-height:200px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000004d}.suggestion-item{padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border-color, #333)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background:#4a6cf726}.suggestion-name{font-weight:500;color:var(--text-primary, #fff)}.suggestion-email{font-size:.8rem;color:var(--text-secondary, #888)}.error-message{background:#ff525226;color:#ff5252;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:.85rem}.members-loading,.no-members{text-align:center;color:var(--text-secondary, #888);padding:40px}.members-list{display:flex;flex-direction:column;gap:12px}.member-item{background:var(--bg-tertiary, #16213e);border:1px solid var(--border-color, #333);border-radius:8px;padding:14px}.member-item.temporary{border-left:3px solid #ffc107}.member-info{margin-bottom:8px}.member-name{font-weight:500;color:var(--text-primary, #fff);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.member-email{font-size:.85rem;color:var(--text-secondary, #888);margin-top:2px}.member-policy{font-size:.75rem;color:var(--accent-color, #4a6cf7);margin-top:4px}.member-policy.temp{color:#ffc107}.temp-badge,.member-name .admin-badge,.member-name .owner-badge{font-size:.65rem;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:600}.temp-badge{background:#ffc10733;color:#ffc107}.member-name .owner-badge{position:static;background:#10b98133;color:#10b981}.member-name .admin-badge{position:static;background:#9c27b033;color:#ba68c8}.member-policy.admin{color:#ba68c8}.member-policy.owner{color:#10b981}.admin-notice{background:#9c27b01a;color:#ba68c8;padding:8px 12px;border-radius:4px;font-size:.8rem;margin-bottom:8px}.perm-toggle.locked{opacity:.7}.perm-toggle.locked input[type=checkbox]{cursor:not-allowed}.source-badge.locked{background:#9c27b026;color:#ba68c8}.edit-perms-btn{background:none;border:1px solid var(--border-color, #444);color:var(--text-secondary, #888);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.edit-perms-btn:hover{border-color:var(--accent-color, #4a6cf7);color:var(--text-primary, #fff)}.member-actions{display:flex;gap:8px;align-items:center;margin-top:8px}.remove-btn{background:none;border:1px solid rgba(255,82,82,.4);color:#ff5252;padding:6px 10px;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.remove-btn:hover{background:#ff525226;border-color:#ff5252}.permissions-editor{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color, #333);display:flex;flex-direction:column;gap:8px}.perm-toggle{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background .2s}.perm-toggle:hover{background:#ffffff0d}.perm-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-color, #4a6cf7)}.perm-label{flex:1;font-size:.85rem;color:var(--text-primary, #fff);display:flex;align-items:center;gap:8px}.source-badge{font-size:.6rem;padding:2px 5px;border-radius:3px;text-transform:uppercase;font-weight:600}.source-badge.policy{background:#4a6cf726;color:#6a8cf7}.source-badge.override{background:#4caf5026;color:#4caf50}.sync-btn{background:transparent;border:none;padding:0 4px;font-size:.75rem;cursor:pointer;opacity:.6;transition:opacity .2s ease;vertical-align:middle}.sync-btn:hover{opacity:1}.perm-toggle.from-policy .perm-label{color:var(--text-secondary, #888)}.members-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .2s}.members-btn:hover{background:#ffffff1a}.discipline-roles{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.discipline-role-tag{font-size:.7rem;padding:2px 6px;border-radius:4px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.discipline-role-tag.manager{background:#3b82f626;color:#3b82f6}.discipline-role-tag.editor{background:#10b98126;color:#10b981}.discipline-role-tag.viewer{background:#9ca3af26;color:#9ca3af}#root{max-width:none;margin:0;padding:0;text-align:left}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.missing-info-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.missing-info-dialog{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px;max-width:400px;width:100%;box-shadow:0 20px 60px #00000080}.missing-info-header{text-align:center;margin-bottom:24px}.missing-info-header h2{color:#fff;font-size:24px;font-weight:600;margin:0 0 8px}.missing-info-header p{color:#fff9;font-size:14px;margin:0}.missing-info-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px;text-align:center}.missing-info-fields{display:flex;gap:16px;margin-bottom:20px}.missing-info-fields .form-group{flex:1}.missing-info-fields .form-group label{display:block;color:#fffc;font-size:14px;font-weight:500;margin-bottom:8px}.missing-info-fields .form-group input{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:16px;box-sizing:border-box}.missing-info-fields .form-group input::placeholder{color:#ffffff4d}.missing-info-fields .form-group input:focus{outline:none;border-color:#667eea;background:#667eea1a}.missing-info-button{width:100%;padding:14px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.missing-info-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #667eea66}.missing-info-button:disabled{opacity:.6;cursor:not-allowed}
