:root,[data-theme=light]{--color-primary: #1a73e8;--color-primary-hover: #1557b0;--color-primary-light: #e8f0fe;--color-primary-dark: #0d47a1;--color-bg: #f8f9fa;--color-surface: #ffffff;--color-border: #e1e5e9;--color-border-focus: #1a73e8;--color-text: #1f2937;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-success: #10b981;--color-success-light: #d1fae5;--color-error: #ef4444;--color-error-light: #fee2e2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-sidebar: #1e293b;--color-sidebar-text: #e2e8f0;--color-sidebar-hover: #334155;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .06);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--color-primary: #5ba3ff;--color-primary-hover: #82b9ff;--color-primary-light: rgba(91, 163, 255, .15);--color-primary-dark: #3d8ef7;--color-bg: #1a1a2e;--color-surface: #1e1e32;--color-border: #3d3d5c;--color-border-focus: #5ba3ff;--color-text: #e8e8f0;--color-text-secondary: #a0a0b8;--color-text-muted: #6c6c88;--color-success: #34d399;--color-success-light: rgba(52, 211, 153, .15);--color-error: #f87171;--color-error-light: rgba(248, 113, 113, .15);--color-warning: #fbbf24;--color-warning-light: rgba(251, 191, 36, .15);--color-sidebar: #252540;--color-sidebar-text: #e8e8f0;--color-sidebar-hover: #3d3d5c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6), 0 8px 10px -6px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);line-height:1.6;min-height:100vh}#root{min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text)}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}p{color:var(--color-text-secondary);line-height:1.6}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-input{width:100%;padding:.625rem .875rem;font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:hover{border-color:#c5ccd3}.form-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-muted)}.form-input.error{border-color:var(--color-error)}.form-input.error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.form-error{font-size:.8125rem;color:var(--color-error);margin-top:2px}.form-select{width:100%;padding:.625rem 2.5rem .625rem .875rem;font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.625rem 1.25rem;font-size:.9375rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:var(--color-bg);color:var(--color-text);border:1.5px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:#eef0f2;border-color:#c5ccd3}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg);color:var(--color-text)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-full{width:100%}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);cursor:pointer}.alert{padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--space-sm)}.alert-error{background-color:var(--color-error-light);color:var(--color-error);border:1px solid #fecaca}.alert-success{background-color:var(--color-success-light);color:#065f46;border:1px solid #a7f3d0}.alert-warning{background-color:var(--color-warning-light);color:#92400e;border:1px solid #fde68a}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease;padding:var(--space-lg)}.blueprint-layout{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--color-bg)}.blueprint-sidebar{width:340px;height:100%;border-right:1px solid var(--color-border);background-color:var(--color-surface);display:flex;flex-direction:column;flex-shrink:0}.blueprint-sidebar-header{padding:var(--space-md);border-bottom:1px solid var(--color-border);background-color:var(--color-bg)}.blueprint-tree-container{flex:1;overflow-y:auto;padding:var(--space-md)}.blueprint-sidebar-footer{padding:var(--space-md);border-top:1px solid var(--color-border);background-color:var(--color-surface)}.blueprint-main-canvas{flex:1;height:100%;overflow-y:auto;padding:var(--space-xl)}.blueprint-content-card{max-width:890px;margin:0 auto;background-color:var(--color-surface);padding:var(--space-xl);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);min-h:80vh}.blueprint-canvas-header{display:flex;align-items:center;justify-content:border-between;border-bottom:1px solid var(--color-border);padding-bottom:var(--space-md);margin-bottom:var(--space-lg)}.tiptap-toolbar{display:flex;flex-wrap:wrap;gap:4px;background-color:var(--color-bg);border:1.5px solid var(--color-border);border-bottom:none;padding:var(--space-sm);border-radius:var(--radius-md) var(--radius-md) 0 0;align-items:center}.toolbar-btn{padding:4px 8px;font-size:.75rem;font-weight:500;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.toolbar-btn:hover{background-color:#eef0f2;color:var(--color-text)}.toolbar-btn.is-active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary-dark)}.tiptap-editor-frame .tiptap{min-height:350px;max-height:500px;overflow-y:auto;padding:var(--space-md);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);outline:none;font-size:.9375rem}.tiptap-editor-frame .tiptap:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.tiptap table,.prose table{border-collapse:collapse;table-layout:fixed;width:100%;margin:var(--space-md) 0}.tiptap td,.tiptap th,.prose td,.prose th{min-width:1em;border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);vertical-align:top;box-sizing:border-box;text-align:left}.tiptap th,.prose th{background-color:var(--color-bg);font-weight:600}.tree-node-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.tree-node-item:hover{background-color:var(--color-bg)}.tree-node-item.active{background-color:var(--color-primary-light);color:var(--color-primary-dark);font-weight:600}.modal-content{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base) ease}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.modal-header h2{margin:0}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);font-size:1.25rem;transition:background-color var(--transition-fast),color var(--transition-fast)}.modal-close:hover{background-color:var(--color-bg);color:var(--color-text)}.modal-body{display:flex;flex-direction:column;gap:var(--space-md)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.spinner-dark{border-color:#0000001a;border-top-color:var(--color-primary)}.page-container{min-height:100vh;display:flex;flex-direction:column}.content-area{flex:1;padding:var(--space-xl);max-width:1200px;margin:0 auto;width:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.content-area{padding:var(--space-md)}.modal-content{margin:var(--space-md);padding:var(--space-lg)}}.unit-toggle{display:flex;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.unit-toggle-btn{flex:1;padding:.5rem 1rem;font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.unit-toggle-btn:not(:last-child){border-right:1.5px solid var(--color-border)}.unit-toggle-btn.active{background-color:var(--color-primary);color:#fff}.unit-toggle-btn:hover:not(.active){background-color:var(--color-bg)}[dir=rtl] .form-select{background-position:left .75rem center;padding-left:2.5rem;padding-right:.875rem}[dir=rtl] .modal-footer{justify-content:flex-start}[dir=rtl] .settings-page-header-right{margin-left:0;margin-right:auto}[dir=rtl] .btn{flex-direction:row-reverse}.tiptap mark,.prose mark{background-color:var(--color-warning-light);color:inherit;padding:.125rem .25rem;border-radius:var(--radius-sm);-webkit-box-decoration-break:clone;box-decoration-break:clone}.tiptap mark[data-color],.prose mark[data-color]{background-color:attr(data-color)}.color-swatch-btn:hover{transform:scale(1.15);box-shadow:var(--shadow-sm)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.auth-page-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0d47a1,#1a73e8 40%,#4fc3f7);z-index:0}.auth-page-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,.1) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.08) 0%,transparent 50%)}.auth-page-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.5}.auth-container{position:relative;z-index:1;width:100%;max-width:440px;padding:var(--space-lg)}.auth-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-2xl);box-shadow:var(--shadow-xl),0 0 60px #0000001a;animation:slideUp .4s ease}.auth-header{text-align:center;margin-bottom:var(--space-xl)}.auth-logo{display:inline-flex;margin-bottom:var(--space-md)}.auth-header h1{font-size:1.5rem;margin-bottom:var(--space-xs)}.auth-header p{font-size:.9375rem;color:var(--color-text-secondary);margin:0}.auth-card form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-card .btn-lg{margin-top:var(--space-sm)}.auth-footer{text-align:center;margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.auth-footer p{font-size:.875rem;color:var(--color-text-secondary);margin:0}.password-strength{margin-top:var(--space-sm)}.password-strength-bar{height:4px;background-color:#e5e7eb;border-radius:2px;overflow:hidden;margin-bottom:var(--space-sm)}.password-strength-fill{height:100%;border-radius:2px;transition:width var(--transition-base),background-color var(--transition-base)}.strength-weak{background-color:var(--color-error)}.strength-fair{background-color:var(--color-warning)}.strength-good{background-color:#84cc16}.strength-strong{background-color:var(--color-success)}.password-rules{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.password-rules li{display:flex;align-items:center;gap:6px;font-size:.75rem;transition:color var(--transition-fast)}.password-rules .rule-pass{color:var(--color-success)}.password-rules .rule-fail{color:var(--color-text-muted)}@media(max-width:480px){.auth-card{padding:var(--space-xl)}.auth-container{padding:var(--space-md)}}.export-dropdown{position:relative;display:inline-block}.export-dropdown-trigger{font-size:11px;padding:3px 8px}.export-dropdown-menu{position:absolute;top:100%;left:0;z-index:200;margin-top:4px;min-width:180px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a;padding:4px;display:flex;flex-direction:column;gap:2px}.export-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;text-align:left;transition:background-color .15s ease}.export-dropdown-item:hover{background-color:var(--color-bg)}.export-dropdown-item-title{font-size:.8125rem;font-weight:500;color:var(--color-text)}.export-dropdown-item-desc{font-size:.6875rem;color:var(--color-text-muted)}.conflict-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease;padding:var(--space-lg)}.conflict-dialog{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);width:100%;max-width:440px;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base) ease}.conflict-dialog__title{margin:0 0 var(--space-sm) 0;font-size:1.125rem;color:var(--color-text)}.conflict-dialog__message{margin:0 0 var(--space-md) 0;color:var(--color-text-muted);line-height:1.5}.conflict-dialog__input-group{margin:0 0 var(--space-lg) 0}.conflict-dialog__label{display:block;margin-bottom:var(--space-xs);font-size:.875rem;font-weight:500;color:var(--color-text)}.conflict-dialog__input{width:100%;padding:var(--space-sm) var(--space-md);font-size:.875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--transition-fast) ease;box-sizing:border-box}.conflict-dialog__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-alpha)}.conflict-dialog__error{margin-top:var(--space-xs);font-size:.75rem;color:var(--color-danger)}.conflict-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}display: flex; justify-content: flex-end; gap: var(--space-sm); } .user-avatar-dropdown{position:relative;display:inline-block}.user-avatar-dropdown-trigger{width:36px;height:36px;border-radius:50%;overflow:hidden;border:none;padding:0;cursor:pointer;background:var(--color-primary, #4f46e5);display:flex;align-items:center;justify-content:center;transition:box-shadow .15s ease}.user-avatar-dropdown-trigger:hover{box-shadow:0 0 0 2px var(--color-primary-light, rgba(79, 70, 229, .3))}.user-avatar-dropdown-trigger:focus-visible{outline:2px solid var(--color-primary, #4f46e5);outline-offset:2px}.user-avatar-dropdown-img{width:36px;height:36px;object-fit:cover;display:block}.user-avatar-dropdown-initials{font-size:.8125rem;font-weight:600;color:#fff;text-transform:uppercase;line-height:1;-webkit-user-select:none;user-select:none}.user-avatar-dropdown-menu{position:absolute;top:100%;right:0;z-index:200;margin-top:6px;min-width:160px;background-color:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);box-shadow:0 4px 12px #0000001a;padding:4px;display:flex;flex-direction:column;gap:2px}.user-avatar-dropdown-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;border-radius:var(--radius-sm, 4px);background:none;cursor:pointer;text-align:left;font-size:.8125rem;font-weight:500;color:var(--color-text, #111827);transition:background-color .15s ease}.user-avatar-dropdown-item:hover{background-color:var(--color-bg, #f9fafb)}.user-avatar-dropdown-item--danger{color:var(--color-danger, #dc2626)}.user-avatar-dropdown-item--danger:hover{background-color:#dc26260d}.user-avatar-dropdown-section{display:flex;flex-direction:column;border-top:1px solid var(--color-border, #e5e7eb);margin-top:4px;padding-top:4px}.user-avatar-dropdown-section-label{padding:6px 12px 2px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #6b7280)}.user-avatar-dropdown-item--language{gap:6px}.user-avatar-dropdown-item--active{font-weight:600;color:var(--color-primary, #0d6efd)}.user-avatar-dropdown-language-check{display:inline-block;width:12px;text-align:center}.pending-invitations{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.5rem}.pending-invitations__header{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#1e40af;margin-bottom:.75rem}.pending-invitations__list{display:flex;flex-direction:column;gap:.5rem}.pending-invitations__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#fff;border-radius:8px;border:1px solid #e2e8f0}.pending-invitations__info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.pending-invitations__info strong{font-size:.875rem;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-invitations__meta{font-size:.75rem;color:#64748b}.pending-invitations__meta em{font-style:normal;font-weight:500;color:#475569}.pending-invitations__actions{display:flex;gap:.375rem;flex-shrink:0}.pending-invitations__btn{padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;border:none;transition:background-color .15s,opacity .15s}.pending-invitations__btn:disabled{opacity:.5;cursor:not-allowed}.pending-invitations__btn--accept{background:#1a73e8;color:#fff}.pending-invitations__btn--accept:hover:not(:disabled){background:#1557b0}.pending-invitations__btn--reject{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.pending-invitations__btn--reject:hover:not(:disabled){background:#e2e8f0;color:#475569}@media(max-width:640px){.pending-invitations__item{flex-direction:column;align-items:stretch;gap:.5rem}.pending-invitations__actions{justify-content:flex-end}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.app-header-left{display:flex;align-items:center;gap:.75rem}.app-logo{display:flex;align-items:center}.app-logo svg{width:32px;height:32px}.app-name{font-size:1.125rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.app-header-right{display:flex;align-items:center;gap:var(--space-md)}.user-info{display:flex;align-items:center;gap:var(--space-sm)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#1a73e8,#4fc3f7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600}.user-name{font-size:.875rem;font-weight:500;color:var(--color-text)}.projects-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-xl)}.projects-header h1{margin-bottom:4px}.projects-header p{margin:0;font-size:.9375rem}.projects-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:var(--space-md)}.projects-loading p{font-size:.9375rem;color:var(--color-text-muted)}.projects-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem;background-color:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg)}.projects-empty-icon{margin-bottom:var(--space-lg);opacity:.6}.projects-empty h3{margin-bottom:var(--space-xs);font-size:1.25rem}.projects-empty p{margin-bottom:var(--space-lg);max-width:320px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.project-card{display:flex;flex-direction:column;gap:var(--space-sm)}.project-card-header{display:flex;align-items:center;justify-content:space-between}.project-card-icon{width:36px;height:36px;border-radius:var(--radius-md);background-color:var(--color-primary-light);display:flex;align-items:center;justify-content:center}.project-card-date{font-size:.75rem;color:var(--color-text-muted)}.project-card-name{font-size:1.0625rem;font-weight:600;margin-top:var(--space-xs)}.project-card-desc{font-size:.875rem;color:var(--color-text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card-meta{display:flex;gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap}.project-card-badge{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary)}@media(max-width:768px){.app-header{padding:.75rem 1rem}.user-name{display:none}.projects-header{flex-direction:column;gap:var(--space-md)}.projects-header .btn{width:100%}.projects-grid{grid-template-columns:1fr}}.editor-context-menu{position:fixed;z-index:1000;min-width:140px;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e0e0e0);border-radius:6px;box-shadow:0 4px 12px #00000026;padding:4px 0;font-size:13px}.editor-context-menu__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--color-text, #212121);text-align:left}.editor-context-menu__item:hover{background:var(--color-hover, #f5f5f5)}.editor-context-menu__item:active{background:var(--color-active, #eeeeee)}.export-dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.export-dialog{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:var(--space-md);width:100%;max-width:520px;display:flex;flex-direction:column;gap:var(--space-md)}.export-dialog__hint{font-size:.6875rem;color:var(--color-text-secondary);margin:2px 0 0}.export-dialog__title{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0}.export-dialog__section{display:flex;flex-direction:column;gap:var(--space-xs)}.export-dialog__label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin:0}.export-dialog__format-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-sm)}.export-dialog__format-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.export-dialog__format-btn svg{width:20px;height:20px;flex-shrink:0}.export-dialog__format-btn:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.export-dialog__format-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.export-dialog__format-btn--active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.export-dialog__format-btn--active:hover{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.export-dialog__format-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.export-dialog__scale-options{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.export-dialog__scale-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.export-dialog__scale-btn:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.export-dialog__scale-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.export-dialog__scale-btn--active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.export-dialog__scale-btn--active:hover{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.export-dialog__scale-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.export-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.export-dialog__cancel-btn{padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.export-dialog__cancel-btn:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.export-dialog__cancel-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.export-dialog__cancel-btn:disabled{opacity:.5;cursor:not-allowed}.export-dialog__export-btn{padding:var(--space-xs) var(--space-md);border:none;border-radius:var(--radius-sm);background-color:var(--color-primary);color:#fff;font-size:.8125rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:var(--space-xs);transition:background-color var(--transition-fast),opacity var(--transition-fast)}.export-dialog__export-btn:hover{background-color:var(--color-primary-dark)}.export-dialog__export-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.export-dialog__export-btn:disabled{opacity:.5;cursor:not-allowed}.export-dialog__spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:export-dialog-spin .6s linear infinite}@keyframes export-dialog-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-dialog__error{display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-sm);background-color:var(--color-error-light, #fef2f2);border:1px solid var(--color-error, #ef4444);color:var(--color-error, #ef4444);font-size:.8125rem}.export-dialog__error-icon{flex-shrink:0;font-size:.875rem;line-height:1.4}.export-dialog__error-text{line-height:1.4}@media(max-width:1024px){.export-dialog{max-width:360px;padding:var(--space-sm)}.export-dialog__title{font-size:1rem}}@media(max-width:768px){.export-dialog__backdrop{align-items:flex-end}.export-dialog{max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:var(--space-md) var(--space-sm)}.export-dialog__format-options{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.export-dialog__scale-options{flex-wrap:wrap}.export-dialog__actions{flex-direction:column-reverse}.export-dialog__cancel-btn,.export-dialog__export-btn{width:100%;justify-content:center}}.editor-toolbar{display:flex;flex-direction:column;width:100px;background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:2px 0;gap:0px;align-items:center;overflow-y:auto;overflow-x:hidden;z-index:20}.editor-toolbar__section{display:grid;grid-template-columns:repeat(2,1fr);gap:0px;width:100%;padding:2px;justify-items:center}.editor-toolbar__section:not(:last-child){border-bottom:1px solid var(--color-border)}.editor-toolbar__section-label{grid-column:1 / -1;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);padding:4px 6px 0;margin:0;text-align:left;width:100%}.editor-toolbar__btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.editor-toolbar__btn:hover{background-color:var(--color-bg);color:var(--color-text)}.editor-toolbar__btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.editor-toolbar__btn--active{background-color:var(--color-primary-light);color:var(--color-primary)}.editor-toolbar__btn--active:hover{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.editor-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.editor-toolbar__btn:disabled:hover{background:transparent;color:var(--color-text-secondary)}.editor-toolbar__btn svg{width:20px;height:20px;flex-shrink:0}.editor-toolbar__btn[aria-label]:after{content:attr(aria-label);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);padding:2px;background-color:var(--color-sidebar);color:var(--color-sidebar-text);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:100}.editor-toolbar__btn:hover[aria-label]:after{opacity:1}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface);height:48px;min-height:48px;z-index:20}.editor-header__left{display:flex;align-items:center;gap:var(--space-sm)}.editor-header__back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.editor-header__back-btn:hover{background-color:var(--color-bg);color:var(--color-text)}.editor-header__title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-header__right{display:flex;align-items:center;gap:var(--space-md)}.editor-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.editor-layout__body{display:flex;flex:1;overflow:hidden}.editor-layout__canvas{flex:1;min-width:280px;position:relative;overflow:hidden}.editor-layout__chat-sidebar{width:360px;min-width:360px;max-width:360px;display:flex;flex-direction:column;border-left:1px solid var(--color-border);background:var(--color-surface);overflow:hidden}.editor-layout__chat-sidebar .online-users-panel{border-bottom:1px solid var(--color-border)}.editor-layout__chat-sidebar .chat-panel{flex:1;overflow:hidden}.editor-layout__online-users-section{border-bottom:1px solid var(--color-border)}.editor-layout__online-users-toggle{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:8px 12px;border:none;background:var(--color-bg);color:var(--color-text);font-size:.75rem;font-weight:600;cursor:pointer;text-align:left}.editor-layout__online-users-toggle:hover{background:var(--color-surface)}.editor-header__export-btn{padding:4px 12px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.editor-header__export-btn:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.editor-header__export-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mobile-toolbar{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background-color:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding:0 var(--space-xs);align-items:center;justify-content:space-around;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-toolbar__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:48px;min-height:48px;width:48px;height:48px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);padding:0;flex-shrink:0}.mobile-toolbar__btn:hover,.mobile-toolbar__btn:active{background-color:var(--color-bg);color:var(--color-text)}.mobile-toolbar__btn--active{background-color:var(--color-primary-light);color:var(--color-primary)}.mobile-toolbar__btn--active:hover,.mobile-toolbar__btn--active:active{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.mobile-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.mobile-toolbar__btn svg{width:22px;height:22px;flex-shrink:0}.mobile-toolbar__label{font-size:.6rem;margin-top:2px;white-space:nowrap}.editor-header__actions-mobile{display:none}.editor-header__actions-mobile-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:1.25rem;transition:background-color var(--transition-fast)}.editor-header__actions-mobile-toggle:hover{background-color:var(--color-bg)}.editor-header__actions-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-xs);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-xs);min-width:160px;z-index:200}.editor-header__actions-dropdown .editor-header__export-btn{width:100%;text-align:left;padding:8px 12px;font-size:.8125rem}@media(max-width:1024px){.editor-header{padding:.5rem .75rem;gap:var(--space-sm)}.editor-header__right{gap:var(--space-xs)}.editor-header__export-btn{padding:2px;font-size:.6875rem}.editor-header__title{max-width:140px;font-size:.8125rem}.editor-toolbar{width:140px;padding:var(--space-xs) 0}.editor-toolbar__btn{width:36px;height:36px}.editor-toolbar__btn svg{width:18px;height:18px}}@media(max-width:768px){.editor-header{height:44px;min-height:44px;padding:.25rem .5rem;gap:var(--space-xs)}.editor-header__title{max-width:100px;font-size:.75rem}.editor-header__right{display:none}.editor-header__actions-mobile{display:block;position:relative;margin-left:auto}.editor-toolbar{display:none}.mobile-toolbar{display:flex}.editor-layout__body{flex-direction:column}.editor-layout__canvas{flex:1;width:100%;padding-bottom:32px}.floor-panel{position:fixed;top:52px;left:var(--space-sm);z-index:40;max-width:100px;width:100px;max-height:36px;overflow:hidden;border-radius:18px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:var(--space-xs) var(--space-sm);transition:max-height .3s ease,border-radius .3s ease}.floor-panel:focus-within,.floor-panel:hover{max-height:300px;border-radius:var(--radius-md);padding:var(--space-sm)}.focus-mode-panel{width:100px}.property-panel{position:fixed;top:0;right:0;bottom:0;width:85vw;max-width:320px;z-index:100;transform:translate(100%);transition:transform .3s ease;box-shadow:var(--shadow-xl)}.property-panel--open{transform:translate(0)}.library-panel,.insert-file-panel,.branch-manager-panel{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:100%!important;max-height:100%!important;border-radius:0!important;z-index:300!important}}.editor-layout__properties-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:48px;border:1px solid var(--color-border);border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;position:relative;z-index:10;transition:background-color var(--transition-fast),color var(--transition-fast);align-self:center}.editor-layout__properties-toggle:hover{background-color:var(--color-bg);color:var(--color-text)}.editor-layout__properties-toggle--close{position:absolute;top:8px;left:-24px;border-radius:var(--radius-sm) 0 0 var(--radius-sm);z-index:25}.alignment-toolbar{display:flex;flex-direction:column;gap:var(--space-xs, 4px);padding:var(--space-xs, 4px) 0;width:100px}.alignment-toolbar__section{display:flex;flex-direction:column;gap:2px}.alignment-toolbar__section-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #666);padding:2px 8px;margin:0}.alignment-toolbar__row{display:flex;flex-wrap:wrap;gap:2px;padding:0 4px}.alignment-toolbar__btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm, 2px);background:transparent;color:var(--color-text-secondary, #666);cursor:pointer;transition:background-color var(--transition-fast, .15s),color var(--transition-fast, .15s)}.alignment-toolbar__btn:hover:not(:disabled){background-color:var(--color-bg, #f5f5f5);color:var(--color-text, #333)}.alignment-toolbar__btn:focus-visible{outline:2px solid var(--color-primary, #1976d2);outline-offset:1px}.alignment-toolbar__btn:disabled{opacity:.35;cursor:not-allowed}.alignment-toolbar__btn:disabled:hover{background:transparent;color:var(--color-text-secondary, #666)}.alignment-toolbar__btn svg{width:16px;height:16px;flex-shrink:0}.alignment-toolbar__axis-group{display:flex;flex-direction:column;gap:2px;padding:4px;border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-sm, 4px);margin:0 4px}.alignment-toolbar__axis-label{font-size:.625rem;font-weight:700;color:var(--color-text-secondary, #666);margin:0;padding:0 2px}.alignment-toolbar__axis-label--x{color:#e53935}.alignment-toolbar__axis-label--y{color:#43a047}.alignment-toolbar__axis-label--z{color:#1e88e5}.alignment-toolbar__divider{height:1px;background-color:var(--color-border, #e0e0e0);margin:4px 8px}.chat-toggle{position:relative;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:4px 12px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.chat-toggle:hover{background-color:var(--color-bg);border-color:var(--color-primary)}.chat-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.chat-toggle--active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.chat-toggle--active:hover{background-color:var(--color-primary-light);border-color:var(--color-primary-dark);color:var(--color-primary-dark)}.chat-toggle svg{width:16px;height:16px;flex-shrink:0}.chat-toggle__indicator{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background-color:var(--color-primary)}@media(max-width:1024px){.chat-toggle{padding:2px 8px;font-size:.6875rem}}.message-bubble{display:flex;flex-direction:column;gap:2px;padding:3px var(--space-sm, 8px);border-radius:var(--radius-sm, 4px);transition:background-color .15s ease}.message-bubble:hover{background-color:var(--color-bg, #f9fafb)}.message-bubble__header{display:flex;align-items:center;gap:var(--space-xs, 4px)}.message-bubble__avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--color-primary, #4f46e5);display:flex;align-items:center;justify-content:center}.message-bubble__avatar-img{width:24px;height:24px;object-fit:cover;display:block}.message-bubble__avatar-initials{font-size:.75rem;font-weight:600;color:#fff;text-transform:uppercase;line-height:1;-webkit-user-select:none;user-select:none}.message-bubble__sender-name{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text, #111827)}.message-bubble__timestamp{font-family:var(--font-sans);font-size:.6875rem;color:var(--color-text-muted, #6b7280)}.message-bubble__quote{margin:var(--space-xs, 4px) 0;padding:var(--space-xs, 4px) var(--space-sm, 8px);border-left:3px solid var(--color-primary, #4f46e5);background-color:var(--color-bg, #f9fafb);border-radius:0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0}.message-bubble__quote-sender{font-family:var(--font-sans);font-size:.6875rem;font-weight:600;color:var(--color-primary, #4f46e5);margin-bottom:2px}.message-bubble__quote-text{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted, #6b7280);word-break:break-word}.message-bubble__quote--deleted{font-style:italic;color:var(--color-text-muted, #6b7280);font-size:.75rem;font-family:var(--font-sans)}.message-bubble__content{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text, #111827);line-height:1.5;word-break:break-word;white-space:pre-wrap}.message-bubble__link{color:var(--color-primary, #4f46e5);text-decoration:underline;text-underline-offset:2px}.message-bubble__link:hover{text-decoration-color:var(--color-primary-hover, #4338ca)}.message-bubble__attachments{display:flex;flex-direction:column;gap:var(--space-xs, 4px);margin-top:var(--space-xs, 4px)}.message-bubble__image-thumbnail{max-width:300px;max-height:200px;object-fit:contain;border-radius:var(--radius-sm, 4px);cursor:pointer;border:1px solid var(--color-border, #e5e7eb)}.message-bubble__file-link{display:inline-flex;align-items:center;gap:var(--space-xs, 4px);padding:var(--space-xs, 4px) var(--space-sm, 8px);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background-color:var(--color-surface, #fff);color:var(--color-primary, #4f46e5);font-family:var(--font-sans);font-size:.75rem;text-decoration:none;transition:background-color .15s ease;max-width:fit-content}.message-bubble__file-link:hover{background-color:var(--color-bg, #f9fafb)}.message-bubble__file-size{color:var(--color-text-muted, #6b7280);font-size:.6875rem}.message-bubble__actions{display:flex;align-items:center;gap:var(--space-sm, 8px);margin-top:var(--space-xs, 4px)}.message-bubble__reply-btn{font-family:var(--font-sans);font-size:.6875rem;font-weight:500;color:var(--color-text-muted, #6b7280);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm, 4px);transition:color .15s ease,background-color .15s ease}.message-bubble__reply-btn:hover{color:var(--color-primary, #4f46e5);background-color:var(--color-bg, #f9fafb)}.message-bubble__reaction-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:.6875rem;font-weight:500;color:var(--color-text-muted, #6b7280);background:none;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);cursor:pointer;padding:2px 8px;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.message-bubble__reaction-btn:hover{border-color:var(--color-primary, #4f46e5);color:var(--color-primary, #4f46e5)}.message-bubble__reaction-btn--active{background-color:var(--color-primary-alpha, rgba(79, 70, 229, .08));border-color:var(--color-primary, #4f46e5);color:var(--color-primary, #4f46e5);font-weight:600}.emoji-picker{position:relative;display:inline-flex;align-items:center}.emoji-picker__trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:1.125rem;line-height:1;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text);transition:background-color .15s ease,border-color .15s ease}.emoji-picker__trigger:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.emoji-picker__trigger:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.emoji-picker__panel{position:absolute;bottom:calc(100% + 8px);left:0;z-index:1000;display:flex;flex-direction:column;width:220px;max-height:340px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001f;overflow:hidden}.emoji-picker__tabs{display:flex;align-items:center;gap:2px;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border);background-color:var(--color-bg);overflow-x:auto;flex-shrink:0}.emoji-picker__tab{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;font-size:1rem;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;opacity:.6;transition:opacity .15s ease,background-color .15s ease}.emoji-picker__tab:hover,.emoji-picker__tab--active{opacity:1;background-color:var(--color-primary-light)}.emoji-picker__tab:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.emoji-picker__category-label{padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.emoji-picker__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:var(--space-xs) var(--space-sm) var(--space-sm);overflow-y:auto;flex:1}.emoji-picker__emoji{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;font-size:1.25rem;line-height:1;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .1s ease,transform .1s ease}.emoji-picker__emoji:hover{background-color:var(--color-primary-light);transform:scale(1.15)}.emoji-picker__emoji:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}@media(max-width:768px){.emoji-picker__panel{width:280px;max-height:300px}.emoji-picker__grid{grid-template-columns:repeat(7,1fr)}}.message-input{display:flex;flex-direction:column;padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0;min-width:0;width:100%;box-sizing:border-box}.message-input__reply-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);background-color:var(--color-primary-light);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--color-text-secondary)}.message-input__reply-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-input__reply-cancel{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;font-size:.75rem;color:var(--color-text-muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:color .15s ease,background-color .15s ease}.message-input__reply-cancel:hover{color:var(--color-text);background-color:var(--color-border)}.message-input__file-list{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-xs)}.message-input__file-item{display:flex;align-items:center;gap:4px;padding:2px var(--space-xs);font-size:.75rem;color:var(--color-text-secondary);background-color:var(--color-primary-light);border-radius:var(--radius-sm)}.message-input__file-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.message-input__file-size{color:var(--color-text-muted)}.message-input__file-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;font-size:.625rem;color:var(--color-text-muted);background:none;border:none;border-radius:50%;cursor:pointer;transition:color .15s ease,background-color .15s ease}.message-input__file-remove:hover{color:var(--color-error, #ef4444);background-color:var(--color-border)}.message-input__input-row{display:flex;align-items:flex-end;gap:var(--space-xs);min-width:0}.message-input__textarea{flex:1;min-width:0;width:100%;min-height:36px;max-height:200px;padding:var(--space-xs) var(--space-sm);font-size:.875rem;font-family:var(--font-sans);line-height:1.5;color:var(--color-text);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:none;overflow-y:auto;transition:border-color .15s ease;box-sizing:border-box}.message-input__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.message-input__textarea:disabled{opacity:.6;cursor:not-allowed}.message-input__textarea[aria-invalid=true]{border-color:var(--color-error, #ef4444)}.message-input__attach-btn,.message-input__send-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;font-size:1rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:background-color .15s ease,color .15s ease,border-color .15s ease;flex-shrink:0}.message-input__attach-btn:hover:not(:disabled),.message-input__send-btn:hover:not(:disabled){background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.message-input__attach-btn:disabled,.message-input__send-btn:disabled{opacity:.5;cursor:not-allowed}.message-input__attach-btn:focus-visible,.message-input__send-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.message-input__send-btn{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.message-input__send-btn:hover:not(:disabled){background-color:var(--color-primary-dark, var(--color-primary));color:#fff}.message-input__char-count{font-size:.6875rem;color:var(--color-text-muted);text-align:right;padding-top:2px}.message-input__char-count--over{color:var(--color-error, #ef4444);font-weight:600}.message-input__error{font-size:.75rem;color:var(--color-error, #ef4444);padding-top:var(--space-xs);line-height:1.4}.message-input__file-input-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.chat-panel{display:flex;flex-direction:column;height:100%;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);overflow:hidden}.chat-panel__connection-banner{display:flex;align-items:center;justify-content:center;padding:var(--space-xs) var(--space-md);font-size:.8125rem;font-weight:500;color:#fff;background-color:var(--color-error, #ef4444);flex-shrink:0}.chat-panel__body{display:flex;flex:1;min-height:0;overflow:hidden}.chat-panel__sidebar{display:flex;flex-direction:column;width:100px;min-width:80px;background-color:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;flex-shrink:0}.chat-panel__sidebar-title{font-size:.75rem;font-weight:600;color:var(--color-text);padding:var(--space-sm) var(--space-xs) var(--space-xs);margin:0}.chat-panel__sidebar-loading,.chat-panel__sidebar-empty{font-size:.75rem;color:var(--color-text-muted);padding:var(--space-xs) var(--space-xs);margin:0}.chat-panel__channel-list{list-style:none;margin:0;padding:0}.chat-panel__channel-item{display:flex;align-items:center;gap:2px;width:100%;min-height:32px;padding:2px var(--space-xs);font-size:.75rem;font-family:var(--font-sans);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease,color .15s ease}.chat-panel__channel-item:hover{background-color:var(--color-primary-light);color:var(--color-text)}.chat-panel__channel-item--active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.chat-panel__channel-item:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.chat-panel__channel-icon{font-weight:700;font-size:.8rem;color:var(--color-text-muted);flex-shrink:0}.chat-panel__channel-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-panel__main{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.chat-panel__no-channel{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-muted);font-size:.9375rem}.chat-panel__messages{flex:1;overflow-y:auto;padding:var(--space-xs) var(--space-sm);display:flex;flex-direction:column;gap:2px}.chat-panel__loading-older{text-align:center;font-size:.75rem;color:var(--color-text-muted);padding:var(--space-xs) 0}.chat-panel__no-messages{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-muted);font-size:.875rem}.chat-panel__message{display:flex;flex-direction:column;gap:1px;padding:2px var(--space-xs);border-radius:var(--radius-sm);transition:background-color .15s ease}.chat-panel__message:hover{background-color:var(--color-primary-light)}.chat-panel__message-header{display:flex;align-items:baseline;gap:var(--space-sm)}.chat-panel__message-sender{font-size:.8125rem;font-weight:600;color:var(--color-text)}.chat-panel__message-time{font-size:.6875rem;color:var(--color-text-muted)}.chat-panel__message-content{font-size:.875rem;color:var(--color-text);line-height:1.5;word-break:break-word;white-space:pre-wrap}.chat-panel__input-placeholder{display:flex;align-items:center;justify-content:center;min-height:56px;padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-muted);font-size:.8125rem;flex-shrink:0}@media(max-width:768px){.chat-panel__sidebar{width:80px;min-width:70px}}.online-users-panel{display:flex;flex-direction:column;padding:var(--space-md) 0;font-family:var(--font-sans);color:var(--color-text)}.online-users-panel__title{display:flex;align-items:center;gap:var(--space-xs);font-size:.875rem;font-weight:600;color:var(--color-text);padding:0 var(--space-md);margin:0 0 var(--space-sm) 0}.online-users-panel__count{font-weight:400;font-size:.75rem;color:var(--color-text-muted)}.online-users-panel__empty{font-size:.8125rem;color:var(--color-text-muted);padding:var(--space-sm) var(--space-md);margin:0;text-align:center}.online-users-panel__list{list-style:none;margin:0;padding:0}.online-users-panel__item{position:relative}.online-users-panel__user-btn{display:flex;align-items:center;gap:var(--space-xs);width:100%;min-height:40px;padding:var(--space-xs) var(--space-md);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease,color .15s ease}.online-users-panel__user-btn:hover{background-color:var(--color-primary-light);color:var(--color-text)}.online-users-panel__user-btn--active{background-color:var(--color-primary-light);color:var(--color-primary)}.online-users-panel__user-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.online-users-panel__status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:#22c55e;flex-shrink:0}.online-users-panel__status-dot--offline{background-color:#9ca3af}.online-users-panel__user-btn--offline .online-users-panel__avatar,.online-users-panel__user-btn--offline .online-users-panel__name{opacity:.6}.online-users-panel__title--offline{margin-top:var(--spacing-sm, 8px);color:var(--color-text-muted, #6b7280)}.online-users-panel__popover-status{font-size:.75rem;color:var(--color-text-muted, #6b7280)}.online-users-panel__avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;background-color:var(--color-primary-light)}.online-users-panel__avatar-img{width:100%;height:100%;object-fit:cover}.online-users-panel__avatar-initials{font-size:.75rem;font-weight:600;color:var(--color-primary);text-transform:uppercase}.online-users-panel__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-users-panel__popover{position:absolute;top:0;left:100%;z-index:100;width:220px;margin-left:var(--space-xs);padding:var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001f}.online-users-panel__popover-close{position:absolute;top:var(--space-xs);right:var(--space-xs);display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:1rem;color:var(--color-text-muted);background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease}.online-users-panel__popover-close:hover{background-color:var(--color-primary-light);color:var(--color-text)}.online-users-panel__popover-loading{font-size:.8125rem;color:var(--color-text-muted);margin:0;text-align:center}.online-users-panel__popover-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.online-users-panel__popover-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;overflow:hidden;background-color:var(--color-primary-light)}.online-users-panel__popover-avatar-img{width:100%;height:100%;object-fit:cover}.online-users-panel__popover-avatar-initials{font-size:1rem;font-weight:600;color:var(--color-primary);text-transform:uppercase}.online-users-panel__popover-info{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.online-users-panel__popover-name{font-size:.875rem;font-weight:600;color:var(--color-text)}.online-users-panel__popover-job{font-size:.75rem;color:var(--color-text-secondary)}.online-users-panel__popover-company{font-size:.75rem;color:var(--color-text-muted)}.online-users-panel__message-btn{margin-top:var(--spacing-sm, 8px);width:100%;padding:6px 10px;border:none;border-radius:var(--radius-sm, 4px);background:var(--color-primary, #0d6efd);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer}.online-users-panel__message-btn:hover{background:var(--color-primary-hover, #0b5ed7)}@media(max-width:768px){.online-users-panel__popover{left:auto;right:0;top:100%;margin-left:0;margin-top:var(--space-xs)}}.share-dialog__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:share-dialog-fade-in .15s ease-out}@keyframes share-dialog-fade-in{0%{opacity:0}to{opacity:1}}.share-dialog{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0003;animation:share-dialog-slide-up .2s ease-out}@keyframes share-dialog-slide-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.share-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0}.share-dialog__header h2{font-size:1.125rem;font-weight:600;color:#1e293b;margin:0}.share-dialog__close{background:none;border:none;cursor:pointer;color:#64748b;padding:.25rem;border-radius:4px}.share-dialog__close:hover{color:#1e293b;background:#f1f5f9}.share-dialog__body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.share-dialog__field{display:flex;flex-direction:column;gap:.375rem}.share-dialog__field>label{font-size:.8125rem;font-weight:600;color:#374151}.share-dialog__input,.share-dialog__select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;outline:none;transition:border-color .2s,box-shadow .2s}.share-dialog__input:focus,.share-dialog__select:focus{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81a}.share-dialog__hint{font-size:.75rem;color:#64748b;margin:.125rem 0 0}.share-dialog__radio-group{display:flex;gap:.5rem}.share-dialog__radio{flex:1;display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:border-color .2s,background .2s;font-size:.8125rem;color:#475569}.share-dialog__radio input[type=radio]{display:none}.share-dialog__radio:hover{border-color:#94a3b8}.share-dialog__radio--active{border-color:#1a73e8;background:#eff6ff;color:#1a73e8}.share-dialog__advanced-toggle{display:flex;align-items:center;gap:.375rem;background:none;border:none;font-size:.8125rem;color:#64748b;cursor:pointer;padding:0}.share-dialog__advanced-toggle:hover{color:#1e293b}.share-dialog__advanced{display:flex;flex-direction:column;gap:1rem;padding:.75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.share-dialog__perm-grid{display:grid;grid-template-columns:1fr 1fr;gap:.375rem;margin-top:.25rem}.share-dialog__perm-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#475569;cursor:pointer}.share-dialog__perm-item input[type=checkbox]{width:14px;height:14px;accent-color:#1a73e8}.share-dialog__error{padding:.5rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.8125rem}.share-dialog__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #e2e8f0}.share-dialog__btn{padding:.5rem 1rem;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;border:none;transition:background-color .2s}.share-dialog__btn--primary{background:#1a73e8;color:#fff}.share-dialog__btn--primary:hover:not(:disabled){background:#1557b0}.share-dialog__btn--primary:disabled{opacity:.5;cursor:not-allowed}.share-dialog__btn--secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.share-dialog__btn--secondary:hover{background:#e2e8f0}.share-dialog__success-icon{text-align:center;margin-bottom:.75rem}.share-dialog__success-text{text-align:center;font-size:.875rem;color:#475569;margin:0 0 1rem}.share-dialog__link-box{display:flex;gap:.5rem;align-items:center}.share-dialog__link-input{flex:1;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem;font-family:monospace;color:#374151;background:#f9fafb;outline:none}.share-dialog__link-input:focus{border-color:#1a73e8}.share-dialog__copy-btn{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background:#1a73e8;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap}.share-dialog__copy-btn:hover{background:#1557b0}.share-dialog__meta{display:flex;gap:1rem;margin-top:.75rem;font-size:.75rem;color:#64748b}.share-dialog__existing{padding:1rem 1.5rem;border-top:1px solid #e2e8f0}.share-dialog__existing h3{font-size:.8125rem;font-weight:600;color:#475569;margin:0 0 .5rem}.share-dialog__existing-list{display:flex;flex-direction:column;gap:.375rem}.share-dialog__existing-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.share-dialog__existing-info{display:flex;flex-direction:column;gap:.125rem}.share-dialog__existing-label{font-size:.8125rem;font-weight:500;color:#374151}.share-dialog__existing-meta{font-size:.6875rem;color:#94a3b8}.share-dialog__revoke-btn{background:none;border:none;color:#94a3b8;cursor:pointer;padding:.25rem;border-radius:4px}.share-dialog__revoke-btn:hover{color:#ef4444;background:#fef2f2}.share-dialog__info{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;font-size:.75rem;color:#475569;line-height:1.4}.share-dialog__info svg{flex-shrink:0;margin-top:.0625rem}.branch-switcher{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:2px 0}.branch-switcher__loading{font-size:.75rem;color:var(--color-text-muted);padding:0 .5rem}.branch-switcher__chip{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:4px 10px;font-size:.75rem;font-weight:500;font-family:var(--font-sans);color:var(--color-text-secondary);background-color:var(--color-bg);border:1.5px solid var(--color-border);border-radius:16px;cursor:pointer;white-space:nowrap;transition:all .15s ease}.branch-switcher__chip:hover{background-color:var(--branch-color-bg);border-color:var(--branch-color);color:var(--color-text)}.branch-switcher__chip--active{background-color:var(--branch-color-bg);border-color:var(--branch-color);color:var(--color-text);font-weight:600;box-shadow:0 0 0 2px var(--branch-color-bg)}.branch-switcher__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.branch-switcher__name{max-width:120px;overflow:hidden;text-overflow:ellipsis}.branch-switcher__active-badge{font-size:.625rem;font-weight:700;color:var(--branch-color)}.spatial-tree{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-surface);color:var(--color-text);font-size:.875rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.spatial-tree-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;padding:var(--space-xs) var(--space-sm);flex-shrink:0}.spatial-tree-mode-selector{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);flex-shrink:0}.spatial-tree-mode-label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.spatial-tree-mode-dropdown{flex:1;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.spatial-tree-mode-dropdown:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.spatial-tree-root{list-style:none;margin:0;padding:0;flex:1;min-height:0;overflow-y:auto}.spatial-tree-children{list-style:none;margin:0;padding:0}.spatial-tree-node{display:flex;align-items:center;gap:var(--space-xs);min-height:44px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.spatial-tree-node:hover{background-color:var(--color-primary-light)}.spatial-tree-node--selected{background-color:var(--color-primary-light);outline:2px solid var(--color-primary);outline-offset:-2px}.spatial-tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-muted);font-size:.75rem;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);flex-shrink:0}.spatial-tree-toggle:hover{background-color:var(--color-primary-light);color:var(--color-primary)}.spatial-tree-toggle--leaf{visibility:hidden}.spatial-tree-icon{font-size:.875rem;flex-shrink:0;width:20px;text-align:center}.spatial-tree-name{flex:1;font-size:.8125rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spatial-tree-count{font-size:.6875rem;color:var(--color-text-muted);flex-shrink:0;margin-left:var(--space-xs)}[data-theme=dark] .spatial-tree-mode-dropdown{background-color:var(--color-bg)}.tree-filter-toolbar{display:flex;align-items:center;gap:4px;padding:4px 8px 4px 48px;background-color:var(--color-surface);border-top:1px solid var(--color-border)}.tree-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);padding:0;line-height:1}.tree-filter-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.tree-filter-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.tree-filter-btn--set{font-family:monospace}.tree-filter-btn--add{color:var(--color-success, #2e7d32)}.tree-filter-btn--remove{color:var(--color-error, #c62828)}.tree-filter-btn--color{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;border:2px solid var(--color-border)}.tree-filter-btn--color:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.tree-filter-color-wrapper{position:relative}.tree-filter-color-popover{position:absolute;top:100%;left:0;z-index:100;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;min-width:180px;margin-top:4px}.tree-filter-color-label{display:flex;align-items:center;gap:var(--space-xs);font-size:.75rem;color:var(--color-text-secondary);font-weight:500}.tree-filter-color-input{width:32px;height:28px;border:none;padding:0;cursor:pointer;background:transparent}.tree-filter-opacity-input{flex:1;height:4px;cursor:pointer;accent-color:var(--color-primary)}.tree-filter-opacity-value{font-size:.6875rem;color:var(--color-text-muted);min-width:32px;text-align:right}.tree-filter-color-apply{padding:4px 8px;font-size:.75rem;font-weight:500;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.tree-filter-color-apply:hover{opacity:.9}.spatial-tree-reset-filter{display:block;width:calc(100% - 2 * var(--space-sm));margin:0 var(--space-sm);padding:var(--space-xs) var(--space-sm);min-height:32px;font-size:.75rem;font-weight:500;color:var(--color-primary);background-color:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);text-align:center}.spatial-tree-reset-filter:hover{background-color:var(--color-primary);color:#fff}[data-theme=dark] .tree-filter-color-popover{background-color:var(--color-bg);box-shadow:0 4px 12px #0006}.property-panel{flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.875rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.property-panel--empty{align-items:center;justify-content:center;text-align:center}.property-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.property-panel-header{display:flex;flex-direction:column;gap:2px;padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border);flex-shrink:0}.property-panel-model{font-size:.75rem;color:var(--color-text-muted)}.property-panel-element{font-size:.9375rem;font-weight:600;color:var(--color-text);word-break:break-word}.property-panel-placeholder{font-size:1rem;font-weight:500;color:var(--color-text-secondary);margin:0}.property-panel-hint{font-size:.875rem;color:var(--color-text-muted);margin:0}.property-panel-loading{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text-muted);padding:var(--space-md) 0}.property-panel-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:property-panel-spin .6s linear infinite}@keyframes property-panel-spin{to{transform:rotate(360deg)}}.property-panel-error{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-md);font-size:.8125rem;color:var(--color-error)}.property-panel-error-icon{flex-shrink:0;font-size:1rem}.property-panel-error-message{flex:1;word-break:break-word}.property-panel-group{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.property-panel-group-title{font-size:.8125rem;font-weight:600;color:var(--color-text);margin:0;padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);border-bottom:1px solid var(--color-border)}.property-panel-table{width:100%;border-collapse:collapse;font-size:.8125rem}.property-panel-table tr:not(:last-child){border-bottom:1px solid var(--color-border)}.property-panel-key{padding:var(--space-xs) var(--space-sm);font-weight:500;color:var(--color-text-secondary);width:40%;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.property-panel-cell{padding:var(--space-xs) var(--space-sm);color:var(--color-text);word-break:break-word}.property-panel-value-container{display:flex;align-items:center;gap:var(--space-xs)}.property-panel-value{flex:1;word-break:break-word;color:var(--color-text)}.property-panel-value--editable{cursor:pointer;padding:2px var(--space-xs);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);min-height:44px;display:inline-flex;align-items:center}.property-panel-value--editable:hover{background-color:var(--color-primary-light)}.property-panel-value--saving{opacity:.6;font-style:italic}.property-panel-readonly{font-size:.75rem;opacity:.6;margin-left:var(--space-xs)}.property-panel-edit-container{display:flex;flex-direction:column;gap:2px}.property-panel-input{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border-focus);border-radius:var(--radius-sm);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.property-panel-input:focus{box-shadow:0 0 0 3px var(--color-primary-light)}.property-panel-input--error{border-color:var(--color-error)}.property-panel-input--error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.property-panel-validation-error{font-size:.75rem;color:var(--color-error)}.property-panel-api-error{font-size:.75rem;color:var(--color-error);display:block;margin-top:2px}[data-theme=dark] .property-panel-group-title{background-color:var(--color-sidebar)}[data-theme=dark] .property-panel-input{background-color:var(--color-bg)}.property-panel-textarea{width:100%;min-height:80px;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-family:var(--font-mono, monospace);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border-focus);border-radius:var(--radius-sm);outline:none;box-sizing:border-box;resize:vertical;line-height:1.4;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.property-panel-textarea:focus{box-shadow:0 0 0 3px var(--color-primary-light)}.property-panel-textarea-actions{display:flex;gap:var(--space-xs);margin-top:4px}.property-panel-btn-save,.property-panel-btn-cancel{font-size:.75rem;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;min-height:28px}.property-panel-btn-save{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.property-panel-btn-save:hover{opacity:.9}.property-panel-btn-cancel{background-color:transparent;color:var(--color-text-secondary)}.property-panel-btn-cancel:hover{background-color:var(--color-bg)}.property-panel-toggle-mode{position:absolute;top:2px;right:2px;font-size:.875rem;background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:2px 4px;border-radius:var(--radius-sm);line-height:1}.property-panel-toggle-mode:hover{color:var(--color-primary);background-color:var(--color-primary-light)}details.property-panel-group{display:block;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}details.property-panel-group>summary{font-size:.8125rem;font-weight:600;color:var(--color-text);margin:0;padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:var(--space-xs)}details.property-panel-group>summary:before{content:"▶";font-size:.625rem;transition:transform .15s ease}details.property-panel-group[open]>summary:before{transform:rotate(90deg)}details.property-panel-group>summary::-webkit-details-marker{display:none}.property-panel-count{font-weight:400;color:var(--color-text-muted);font-size:.75rem}.property-panel-edit-container{position:relative}.property-panel-row{display:flex;align-items:center;gap:var(--space-xs)}.property-panel-row .property-panel-value-container{flex:1;min-width:0}.property-panel-row-delete{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:.875rem;line-height:1;padding:2px 4px;border-radius:var(--radius-sm);color:var(--color-text-muted);opacity:.6;transition:opacity var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.property-panel-row-delete:hover:not(:disabled){opacity:1;color:var(--color-error);background-color:var(--color-error-light)}.property-panel-row-delete:disabled{cursor:default;opacity:.4}.property-panel-add-row{display:block;width:100%;text-align:left;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-family:var(--font-sans);color:var(--color-primary);background:none;border:none;border-top:1px dashed var(--color-border);cursor:pointer}.property-panel-add-row:hover{background-color:var(--color-primary-light)}.property-panel-add-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border-top:1px dashed var(--color-border)}.property-panel-add-input{width:100%;min-height:32px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;box-sizing:border-box}.property-panel-add-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.property-panel-add-actions{display:flex;gap:var(--space-xs)}.property-panel-add-group-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.property-panel-add-group-btn{flex:1 1 auto;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-family:var(--font-sans);color:var(--color-primary);background-color:transparent;border:1px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;min-height:36px}.property-panel-add-group-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.property-panel-add-group-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg)}.property-panel-add-group-title{font-size:.8125rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-xs)}[data-theme=dark] .property-panel-add-input{background-color:var(--color-bg)}.property-panel-pset-props{display:flex;flex-direction:column;gap:var(--space-xs);max-height:320px;overflow-y:auto;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface)}.property-panel-pset-prop{display:flex;flex-direction:column;gap:2px}.property-panel-pset-prop-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);cursor:help}.property-panel-pset-prop-type{font-weight:400;color:var(--color-text-muted)}[data-theme=dark] .property-panel-pset-props{background-color:var(--color-bg)}.filter-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);font-size:.875rem}.filter-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.filter-panel-count{min-height:1.5rem;font-size:.8125rem;display:flex;align-items:center}.filter-panel-count-loading{color:var(--color-text-muted);font-style:italic}.filter-panel-count-result{color:var(--color-primary);font-weight:500}.filter-panel-count-zero{color:var(--color-warning);font-weight:500}.filter-panel-count-error{color:var(--color-error);font-size:.75rem}.filter-panel-rule-count{font-size:.75rem;color:var(--color-text-muted)}.filter-panel-rule-count--exceeded{color:var(--color-error);font-weight:500}.filter-panel-rule-count-warning{margin-left:var(--space-sm);font-weight:600}.filter-group{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.filter-group--depth-2{margin-left:var(--space-md);border-color:var(--color-primary-light);background-color:var(--color-bg)}.filter-group--depth-3{margin-left:var(--space-md);border-color:var(--color-warning-light);background-color:var(--color-surface)}.filter-group-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.filter-group-remove{padding:.25rem .5rem;font-size:.75rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.filter-group-rules{display:flex;flex-direction:column;gap:var(--space-xs)}.filter-group-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.filter-add-rule-btn,.filter-add-group-btn{font-size:.8125rem;padding:.375rem .75rem;min-height:44px}.filter-add-rule-btn{color:var(--color-primary)}.filter-add-group-btn{color:var(--color-text-secondary)}.filter-add-rule-btn:disabled,.filter-add-group-btn:disabled{opacity:.4;cursor:not-allowed}.filter-operator-toggle{display:inline-flex;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.filter-operator-btn{padding:.25rem .75rem;font-size:.75rem;font-weight:600;border:none;background-color:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.filter-operator-btn:hover{background-color:var(--color-bg)}.filter-operator-btn--active{background-color:var(--color-primary);color:#fff}.filter-operator-btn--active:hover{background-color:var(--color-primary-hover)}.filter-rule{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.filter-rule-field{flex:2;min-width:120px;font-size:.8125rem;padding:.375rem .5rem;min-height:44px}.filter-rule-operator{flex:1.5;min-width:100px;font-size:.8125rem;padding:.375rem .5rem;min-height:44px}.filter-rule-value{flex:2;min-width:80px;font-size:.8125rem;padding:.375rem .5rem;min-height:44px}.filter-rule-remove{padding:.25rem .5rem;font-size:.875rem;color:var(--color-error);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.filter-rule-remove:disabled{opacity:.3;cursor:not-allowed}.filter-panel-actions{display:flex;gap:var(--space-sm)}.filter-panel-apply,.filter-panel-reset{flex:1;min-height:44px}.filter-panel-apply:disabled{opacity:.5;cursor:not-allowed}.filter-panel-save{display:flex;gap:var(--space-sm);align-items:center}.filter-panel-save-input{flex:1;font-size:.8125rem;padding:.375rem .5rem;min-height:44px}.filter-panel-save-btn{min-height:44px;white-space:nowrap}.filter-panel-save-btn:disabled{opacity:.5;cursor:not-allowed}.filter-panel-load{display:flex;align-items:center}.filter-panel-load-select{width:100%;font-size:.8125rem;padding:.375rem .5rem;min-height:44px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer}.tools-manager-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.tools-manager-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.tools-manager-panel-section{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.tools-manager-panel-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.tools-manager-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);width:100%}.tools-manager-panel-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.tools-manager-panel-btn:disabled{opacity:.5;cursor:not-allowed}.tools-manager-panel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.tools-manager-panel-btn--standard:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.tools-manager-panel-btn--random:hover:not(:disabled){border-color:var(--color-warning);color:var(--color-warning)}.tools-manager-panel-btn--white:hover:not(:disabled){border-color:var(--color-text-secondary);color:var(--color-text-secondary)}.tools-manager-panel-btn--export{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tools-manager-panel-btn--export:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.tools-manager-panel-empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}[data-theme=dark] .tools-manager-panel-section{background-color:var(--color-sidebar)}[data-theme=dark] .tools-manager-panel-btn{background-color:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.render-manager-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.render-manager-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.render-manager-panel-section{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.render-manager-panel-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.render-manager-panel-label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.render-manager-panel-select{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.875rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.render-manager-panel-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.render-manager-panel-select:disabled{opacity:.5;cursor:not-allowed}.render-manager-panel-property-select{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--color-border)}.render-manager-panel-legend{max-height:240px;overflow-y:auto}.render-manager-panel-legend-list{display:flex;flex-direction:column;gap:2px}.render-manager-panel-legend-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.8125rem}.render-manager-panel-legend-item:hover{background-color:var(--color-primary-light)}.render-manager-panel-legend-swatch{display:inline-block;width:14px;height:14px;min-width:14px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.render-manager-panel-legend-label{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.render-manager-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);width:100%}.render-manager-panel-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.render-manager-panel-btn:disabled{opacity:.5;cursor:not-allowed}.render-manager-panel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.render-manager-panel-btn--reset{border-color:var(--color-warning);color:var(--color-warning)}.render-manager-panel-btn--reset:hover:not(:disabled){background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.render-manager-panel-empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}[data-theme=dark] .render-manager-panel-section{background-color:var(--color-sidebar)}[data-theme=dark] .render-manager-panel-select{background-color:var(--color-bg)}.render-manager-panel-progress{display:flex;flex-direction:column;gap:var(--space-sm)}.render-manager-panel-progress-bar-container{width:100%;height:8px;background-color:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.render-manager-panel-progress-bar{height:100%;background-color:var(--color-primary);border-radius:var(--radius-sm);transition:width .3s ease}.render-manager-panel-progress-text{font-size:.8125rem;color:var(--color-text-secondary)}.render-manager-panel-btn--cancel{border-color:var(--color-error);color:var(--color-error)}.render-manager-panel-btn--cancel:hover:not(:disabled){background-color:var(--color-error-light, rgba(239, 68, 68, .1));border-color:var(--color-error);color:var(--color-error)}.render-manager-panel-error{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-error-light, rgba(239, 68, 68, .08));border:1px solid var(--color-error);border-radius:var(--radius-md)}.render-manager-panel-error-icon{font-size:1rem}.render-manager-panel-error-text{font-size:.8125rem;color:var(--color-error);word-break:break-word}.render-manager-panel-result{display:flex;flex-direction:column;gap:var(--space-sm)}.render-manager-panel-result-text{font-size:.8125rem;color:var(--color-success, #16a34a)}.photorealistic-render-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.photorealistic-render-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.photorealistic-render-panel-section{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.photorealistic-render-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);width:100%}.photorealistic-render-panel-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.photorealistic-render-panel-btn:disabled{opacity:.5;cursor:not-allowed}.photorealistic-render-panel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.photorealistic-render-panel-btn--cancel{border-color:var(--color-error);color:var(--color-error)}.photorealistic-render-panel-btn--cancel:hover:not(:disabled){background-color:var(--color-error-light, rgba(239, 68, 68, .1));border-color:var(--color-error);color:var(--color-error)}.photorealistic-render-panel-progress{display:flex;flex-direction:column;gap:var(--space-sm)}.photorealistic-render-panel-progress-bar-container{width:100%;height:8px;background-color:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.photorealistic-render-panel-progress-bar{height:100%;background-color:var(--color-primary);border-radius:var(--radius-sm);transition:width .3s ease}.photorealistic-render-panel-progress-text{font-size:.8125rem;color:var(--color-text-secondary)}.photorealistic-render-panel-error{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-error-light, rgba(239, 68, 68, .08));border:1px solid var(--color-error);border-radius:var(--radius-md)}.photorealistic-render-panel-error-icon{font-size:1rem}.photorealistic-render-panel-error-text{font-size:.8125rem;color:var(--color-error);word-break:break-word}.photorealistic-render-panel-result{display:flex;flex-direction:column;gap:var(--space-sm)}.photorealistic-render-panel-result-text{font-size:.8125rem;color:var(--color-success, #16a34a)}[data-theme=dark] .photorealistic-render-panel-section{background-color:var(--color-sidebar)}.photorealistic-render-panel-subtitle{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-xs) 0}.photorealistic-render-panel-empty{font-size:.8125rem;color:var(--color-text-secondary);margin:0}.photorealistic-render-panel-btn--small{min-height:32px;min-width:auto;width:auto;padding:var(--space-2xs, 4px) var(--space-sm);font-size:.75rem}.photorealistic-render-panel-btn--danger{border-color:var(--color-error);color:var(--color-error)}.photorealistic-render-panel-btn--danger:hover:not(:disabled){background-color:var(--color-error-light, rgba(239, 68, 68, .1));border-color:var(--color-error);color:var(--color-error)}.photorealistic-render-panel-view-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.photorealistic-render-panel-view-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.photorealistic-render-panel-view-name{font-size:.8125rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photorealistic-render-panel-gallery{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.photorealistic-render-panel-gallery-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.photorealistic-render-panel-thumb-link{display:block;line-height:0}.photorealistic-render-panel-thumb{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius-sm);background-color:var(--color-bg);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center}.photorealistic-render-panel-thumb--failed{border-color:var(--color-error)}.photorealistic-render-panel-thumb-status{font-size:.8125rem;color:var(--color-text-secondary)}.photorealistic-render-panel-gallery-meta{display:flex;flex-direction:column;gap:2px}.photorealistic-render-panel-gallery-dims{font-size:.8125rem;color:var(--color-text)}.photorealistic-render-panel-gallery-date{font-size:.75rem;color:var(--color-text-secondary)}.photorealistic-render-panel-gallery-error{font-size:.75rem;color:var(--color-error);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photorealistic-render-panel-gallery-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}[data-theme=dark] .photorealistic-render-panel-gallery-item{background-color:var(--color-sidebar)}.photorealistic-render-panel-quality{display:flex;flex-direction:column;gap:var(--space-xs)}.photorealistic-render-panel-quality-label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted, var(--color-text))}.photorealistic-render-panel-quality-select{min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.875rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.photorealistic-render-panel-quality-select:focus-visible{outline:2px solid var(--color-primary, var(--color-border));outline-offset:2px}.photorealistic-render-panel-quality-select:disabled{opacity:.6;cursor:not-allowed}.photorealistic-render-panel-glb{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.photorealistic-render-panel-glb-status{font-size:.8125rem;color:var(--color-text-muted, var(--color-text))}.photorealistic-render-panel-glb-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.photorealistic-render-panel-animation{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border, rgba(255, 255, 255, .1))}.photorealistic-render-panel-animation-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-xs)}.photorealistic-render-panel-animation-label{font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap}.photorealistic-render-panel-animation-select,.photorealistic-render-panel-animation-input{flex:1 1 auto;min-width:0;padding:var(--space-2xs, 4px) var(--space-xs);font-size:.8125rem;color:var(--color-text);background-color:var(--color-surface, rgba(255, 255, 255, .05));border:1px solid var(--color-border, rgba(255, 255, 255, .15));border-radius:var(--radius-sm, 4px)}.photorealistic-render-panel-animation-input{max-width:100px}.svg-style-panel{border-top:1px solid var(--color-border);padding-top:var(--space-sm)}.svg-style-panel-toggle{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-weight:600;color:var(--color-text);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.svg-style-panel-toggle:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.svg-style-panel-toggle-icon{font-size:.7rem;opacity:.6}.svg-style-panel-badge{margin-left:auto;padding:1px 6px;font-size:.6875rem;font-weight:600;background-color:var(--color-primary);color:#fff;border-radius:10px}.svg-style-panel-content{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm)}.svg-style-panel-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-bg-subtle, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:var(--radius-sm)}.svg-style-panel-form-row{display:flex;align-items:center;gap:var(--space-xs)}.svg-style-panel-label{flex-shrink:0;width:54px;font-size:.7rem;font-weight:500;color:var(--color-text-muted)}.svg-style-panel-class-select,.svg-style-panel-property-select,.svg-style-panel-value-select{flex:1;min-height:30px;padding:2px var(--space-xs);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.svg-style-panel-color-input{display:flex;flex:1;align-items:center;gap:var(--space-xs)}.svg-style-panel-color-picker{width:30px;min-width:30px;height:30px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.svg-style-panel-value-text,.svg-style-panel-value-number{flex:1;min-height:30px;padding:2px var(--space-xs);font-size:.75rem;font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.svg-style-panel-value-text:focus,.svg-style-panel-value-number:focus,.svg-style-panel-class-select:focus,.svg-style-panel-property-select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.svg-style-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.svg-style-panel-btn--add{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);margin-top:var(--space-xs)}.svg-style-panel-btn--add:hover:not(:disabled){opacity:.9}.svg-style-panel-btn--add:disabled{opacity:.4;cursor:not-allowed}.svg-style-panel-btn--clear{background:none;color:var(--color-text-muted);border-color:transparent;font-size:.6875rem;min-height:24px;padding:2px 6px}.svg-style-panel-btn--clear:hover{color:var(--color-danger, #e53e3e)}.svg-style-panel-rules{display:flex;flex-direction:column;gap:var(--space-xs)}.svg-style-panel-rules-header{display:flex;align-items:center;justify-content:space-between}.svg-style-panel-rules-title{font-size:.7rem;font-weight:600;color:var(--color-text-muted)}.svg-style-panel-rules-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.svg-style-panel-rule-item{display:flex;align-items:center;gap:var(--space-xs);padding:3px var(--space-xs);font-size:.7rem;font-family:var(--font-mono);background-color:var(--color-bg-subtle, rgba(0, 0, 0, .02));border-radius:var(--radius-sm)}.svg-style-panel-rule-class{color:var(--color-primary);font-weight:600;flex-shrink:0}.svg-style-panel-rule-prop{color:var(--color-text-muted);flex-shrink:0}.svg-style-panel-rule-value{display:flex;align-items:center;gap:3px;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svg-style-panel-rule-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid var(--color-border);flex-shrink:0}.svg-style-panel-rule-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:.6rem;color:var(--color-text-muted);background:none;border:none;border-radius:50%;cursor:pointer;margin-left:auto}.svg-style-panel-rule-remove:hover{background-color:var(--color-danger, #e53e3e);color:#fff}.section-manager-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.section-manager-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.section-manager-master-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px}.section-manager-master-label{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:600;color:var(--color-text);cursor:pointer}.section-manager-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-xs);font-size:.6875rem;font-weight:600;color:#fff;background-color:var(--color-primary);border-radius:10px}.section-manager-toggle{width:20px;height:20px;min-width:20px;min-height:20px;accent-color:var(--color-primary);cursor:pointer}.section-manager-toggle--master{width:24px;height:24px;min-width:24px;min-height:24px}.section-manager-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.section-manager-axes,.section-manager-custom{display:flex;flex-direction:column;gap:var(--space-sm)}.section-manager-axis-group{display:flex;flex-direction:column;gap:var(--space-xs)}.section-manager-plane-control{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md)}.section-manager-plane-control--custom{border-left-color:var(--color-warning)}.section-manager-plane-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px}.section-manager-plane-label{display:flex;align-items:center;gap:var(--space-xs);font-size:.8125rem;font-weight:500;color:var(--color-text);cursor:pointer;min-height:44px}.section-manager-plane-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.section-manager-plane-actions{display:flex;align-items:center;gap:var(--space-xs)}.section-manager-slider-row{display:flex;align-items:center;gap:var(--space-sm)}.section-manager-slider{flex:1;height:6px;min-height:44px;accent-color:var(--color-primary);cursor:pointer}.section-manager-slider:disabled{opacity:.4;cursor:not-allowed}.section-manager-slider-value{font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-muted);min-width:48px;text-align:right}.section-manager-preview-count{display:flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);font-size:.7rem;color:var(--color-text-muted);background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03));border-radius:var(--radius-sm);margin-top:2px}.section-manager-preview-count-item{font-family:var(--font-mono);white-space:nowrap}.section-manager-preview-count-separator{opacity:.5}.section-manager-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);width:100%}.section-manager-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.section-manager-btn:disabled{opacity:.5;cursor:not-allowed}.section-manager-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.section-manager-btn--add-custom{border-color:var(--color-warning);color:var(--color-warning)}.section-manager-btn--add-custom:hover:not(:disabled){background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning)}.section-manager-btn--reset{border-color:var(--color-error);color:var(--color-error)}.section-manager-btn--reset:hover:not(:disabled){background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.section-manager-btn-remove{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs);font-size:.875rem;background-color:transparent;color:var(--color-error);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.section-manager-btn-remove:hover{background-color:var(--color-error-light);border-color:var(--color-error)}.section-manager-btn-remove:focus-visible{outline:2px solid var(--color-error);outline-offset:2px}.section-manager-footer{padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.section-manager-panel-empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}[data-theme=dark] .section-manager-master-toggle,[data-theme=dark] .section-manager-plane-control{background-color:var(--color-sidebar)}[data-theme=dark] .section-manager-btn{background-color:var(--color-bg)}.section-manager-generation{display:flex;flex-direction:column;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.section-manager-standard-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px}.section-manager-select{min-height:36px;min-width:120px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-family:var(--font-sans);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer}.section-manager-select:disabled{opacity:.5;cursor:not-allowed}.section-manager-generation-buttons{display:flex;gap:var(--space-sm)}.section-manager-btn--generate{border-color:var(--color-primary);color:var(--color-primary);flex:1}.section-manager-btn--generate:hover:not(:disabled){background-color:var(--color-primary-light)}.section-manager-btn--detail{border-color:var(--color-info);color:var(--color-info);flex:1}.section-manager-btn--detail:hover:not(:disabled){background-color:var(--color-info-light)}.section-manager-result-summary{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.75rem;color:var(--color-text-muted)}.section-manager-result-label{font-weight:600;color:var(--color-text)}.section-manager-result-count{flex:1}.section-manager-result-time{font-family:var(--font-mono)}[data-theme=dark] .section-manager-select,[data-theme=dark] .section-manager-result-summary{background-color:var(--color-sidebar)}.section-manager-svg-container{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.section-cut-svg-wrapper{display:flex;flex-direction:column;gap:var(--space-sm)}.section-cut-svg{width:100%;height:auto;max-height:300px;background-color:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm)}[data-theme=dark] .section-cut-svg{background-color:#1a1a2e}[data-theme=dark] .section-cut-svg line{filter:invert(1)}.section-cut-svg-legend{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-sm);font-size:.6875rem;color:var(--color-text-muted)}.section-cut-svg-legend-title{font-weight:600;color:var(--color-text)}.section-cut-svg-legend-item{display:flex;align-items:center;gap:var(--space-xs)}.section-cut-svg-legend-line{display:inline-block;width:20px;min-height:1px;border-radius:1px}.section-cut-svg-legend-line--thick{background-color:#1a1a1a}.section-cut-svg-legend-line--medium{background-color:#4a4a4a}.section-cut-svg-legend-line--thin{background-color:#7a7a7a}[data-theme=dark] .section-cut-svg-legend-line--thick{background-color:#e0e0e0}[data-theme=dark] .section-cut-svg-legend-line--medium{background-color:#a0a0a0}[data-theme=dark] .section-cut-svg-legend-line--thin{background-color:#707070}[data-theme=dark] .section-manager-svg-container{background-color:var(--color-sidebar)}.section-manager-save-controls{display:flex;flex-direction:column;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.section-manager-save-row{display:flex;gap:var(--space-xs);align-items:stretch}.section-manager-save-input{flex:1;min-height:36px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.section-manager-save-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.section-manager-btn--save{white-space:nowrap;background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.section-manager-btn--save:hover:not(:disabled){opacity:.9}.section-manager-btn--save:disabled{opacity:.5;cursor:not-allowed}.section-manager-saved-files{display:flex;flex-direction:column;gap:var(--space-xs)}.section-manager-saved-files-title{font-size:.75rem;font-weight:600;color:var(--color-text-muted)}.section-manager-saved-files-list{list-style:none;margin:0;padding:0;max-height:120px;overflow-y:auto}.section-manager-saved-file-item{padding:2px var(--space-xs);font-size:.7rem;font-family:var(--font-mono);color:var(--color-text-muted);border-radius:var(--radius-sm)}.section-manager-saved-file-item:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.section-manager-saved-file-name{word-break:break-all}.section-manager-error-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-error-light, #fff5f5);border:1px solid var(--color-error, #e53e3e);border-radius:var(--radius-md);font-size:.8125rem;color:var(--color-error, #e53e3e);min-height:44px}.section-manager-error-icon{font-size:1rem;flex-shrink:0}.section-manager-error-message{flex:1;font-weight:500;line-height:1.3}.section-manager-error-dismiss{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:0;background-color:transparent;border:1px solid var(--color-error, #e53e3e);border-radius:var(--radius-sm);color:var(--color-error, #e53e3e);font-size:.75rem;cursor:pointer;transition:background-color var(--transition-fast);flex-shrink:0}.section-manager-error-dismiss:hover{background-color:var(--color-error, #e53e3e);color:#fff}.section-manager-error-dismiss:focus-visible{outline:2px solid var(--color-error, #e53e3e);outline-offset:2px}[data-theme=dark] .section-manager-error-banner{background-color:#e53e3e1a}.issue-manager-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.issue-manager-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-shrink:0}.issue-manager-panel__title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.issue-manager-panel__create-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.issue-manager-panel__create-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.issue-manager-panel__create-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.issue-manager-panel__form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background-color:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0}.issue-manager-panel__field{display:flex;flex-direction:column;gap:4px}.issue-manager-panel__label{font-size:.875rem;font-weight:500;color:var(--color-text)}.issue-manager-panel__input{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.issue-manager-panel__input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.issue-manager-panel__input--error{border-color:var(--color-error)}.issue-manager-panel__input--error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.issue-manager-panel__input::placeholder{color:var(--color-text-muted)}.issue-manager-panel__textarea{width:100%;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;resize:vertical;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.issue-manager-panel__textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.issue-manager-panel__textarea::placeholder{color:var(--color-text-muted)}.issue-manager-panel__error{font-size:.8125rem;color:var(--color-error);margin-top:2px}.issue-manager-panel__save-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--space-xs) var(--space-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;align-self:flex-end;transition:background-color var(--transition-fast)}.issue-manager-panel__save-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.issue-manager-panel__save-btn:disabled{opacity:.5;cursor:not-allowed}.issue-manager-panel__save-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.issue-manager-panel__list{display:flex;flex-direction:column;gap:var(--space-sm);flex:1;min-height:0}.issue-manager-panel__loading,.issue-manager-panel__empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}.issue-manager-panel__item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.issue-manager-panel__item:hover{border-color:var(--color-primary-light)}.issue-manager-panel__item-info{display:flex;flex-direction:column;gap:2px}.issue-manager-panel__item-title{font-size:.9375rem;font-weight:600;color:var(--color-text);word-break:break-word}.issue-manager-panel__item-date{font-size:.75rem;color:var(--color-text-muted)}.issue-manager-panel__item-desc{font-size:.8125rem;color:var(--color-text-secondary);word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.issue-manager-panel__item-actions{display:flex;align-items:center;gap:var(--space-xs);justify-content:flex-end;flex-wrap:wrap}.issue-manager-panel__restore-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);background-color:var(--color-bg);color:var(--color-primary);border:1.5px solid var(--color-primary);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);white-space:nowrap}.issue-manager-panel__restore-btn:hover:not(:disabled){background-color:var(--color-primary-light)}.issue-manager-panel__restore-btn:disabled{opacity:.6;cursor:not-allowed}.issue-manager-panel__restore-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.issue-manager-panel__delete-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);background-color:transparent;color:var(--color-error);border:1.5px solid var(--color-error);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.issue-manager-panel__delete-btn:hover:not(:disabled){background-color:var(--color-error-light)}.issue-manager-panel__delete-btn:disabled{opacity:.6;cursor:not-allowed}.issue-manager-panel__delete-btn:focus-visible{outline:2px solid var(--color-error);outline-offset:2px}[data-theme=dark] .issue-manager-panel__form{background-color:var(--color-sidebar)}.model-views-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.model-views-panel__title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.model-views-panel__save-form{display:flex;gap:var(--space-xs);align-items:stretch;flex-shrink:0}.model-views-panel__name-input{flex:1;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.model-views-panel__name-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.model-views-panel__name-input::placeholder{color:var(--color-text-muted)}.model-views-panel__save-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast)}.model-views-panel__save-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.model-views-panel__save-btn:disabled{opacity:.5;cursor:not-allowed}.model-views-panel__save-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.model-views-panel__loading,.model-views-panel__empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}.model-views-panel__list{display:flex;flex-direction:column;gap:var(--space-sm);list-style:none;margin:0;padding:0;flex:1;min-height:0}.model-views-panel__item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.model-views-panel__item:hover{border-color:var(--color-primary-light)}.model-views-panel__item--animating{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.model-views-panel__restore-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;width:100%;padding:var(--space-xs) var(--space-sm);background-color:transparent;color:var(--color-text);border:none;border-radius:var(--radius-sm);font-size:.9375rem;text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.model-views-panel__restore-btn:hover:not(:disabled){background-color:var(--color-primary-light)}.model-views-panel__restore-btn:disabled{opacity:.6;cursor:not-allowed}.model-views-panel__restore-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.model-views-panel__view-name{font-weight:500;color:var(--color-text);word-break:break-word}.model-views-panel__view-date{font-size:.75rem;color:var(--color-text-muted)}.model-views-panel__actions{display:flex;align-items:center;gap:var(--space-xs);justify-content:flex-end;flex-wrap:wrap;padding:0 var(--space-xs)}.model-views-panel__rename-btn,.model-views-panel__delete-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs);background-color:transparent;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.model-views-panel__rename-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary)}.model-views-panel__delete-btn:hover:not(:disabled){background-color:var(--color-error-light);border-color:var(--color-error)}.model-views-panel__rename-btn:focus-visible,.model-views-panel__delete-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.model-views-panel__confirm-text{font-size:.875rem;color:var(--color-text);font-weight:500}.model-views-panel__delete-confirm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-sm);background-color:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.model-views-panel__delete-confirm-btn:hover{background-color:var(--color-error-hover, var(--color-error));filter:brightness(.9)}.model-views-panel__delete-confirm-btn:focus-visible{outline:2px solid var(--color-error);outline-offset:2px}.model-views-panel__delete-cancel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-sm);background-color:transparent;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.model-views-panel__delete-cancel-btn:hover{background-color:var(--color-bg)}.model-views-panel__delete-cancel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.model-views-panel__rename-form{display:flex;gap:var(--space-xs);align-items:stretch;padding:var(--space-xs)}.model-views-panel__rename-input{flex:1;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border-focus);border-radius:var(--radius-md);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.model-views-panel__rename-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.model-views-panel__rename-confirm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast)}.model-views-panel__rename-confirm-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.model-views-panel__rename-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.model-views-panel__rename-confirm-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.model-views-panel__rename-cancel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs);background-color:transparent;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast)}.model-views-panel__rename-cancel-btn:hover{background-color:var(--color-bg)}.model-views-panel__rename-cancel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}[data-theme=dark] .model-views-panel__name-input,[data-theme=dark] .model-views-panel__rename-input{background-color:var(--color-sidebar)}.model-views-panel__auto-switch-btn{width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:500;color:var(--color-text);background-color:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s,border-color .15s;margin-bottom:var(--space-sm)}.model-views-panel__auto-switch-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary)}.model-views-panel__auto-switch-btn--active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.model-views-panel__auto-switch-btn--active:hover:not(:disabled){background-color:var(--color-primary-dark, var(--color-primary));opacity:.9}.model-views-panel__auto-switch-btn:disabled{opacity:.5;cursor:not-allowed}.model-views-panel__animation-controls{display:flex;flex-direction:column;gap:var(--space-sm)}.model-views-panel__duration-row{display:flex;align-items:center;gap:var(--space-sm)}.model-views-panel__duration-label{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap}.model-views-panel__duration-input{width:80px;min-height:32px;padding:4px 8px;font-size:.8125rem;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none}.model-views-panel__duration-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.model-views-panel__duration-input:disabled{opacity:.5;cursor:not-allowed}.model-views-panel__save-form{flex-wrap:wrap}.model-views-panel__animation-name-input{flex-basis:100%;margin-top:var(--space-xs)}.model-views-panel__filter-row{display:flex;align-items:center;gap:var(--space-sm)}.model-views-panel__filter-label{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap}.model-views-panel__filter-select{flex:1;min-height:36px;padding:4px 8px;font-size:.8125rem;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;cursor:pointer}.model-views-panel__filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.model-views-panel__filter-select:disabled{opacity:.5;cursor:not-allowed}.model-views-panel__view-animation-tag{display:inline-block;font-size:.6875rem;font-weight:500;padding:1px 6px;border-radius:var(--radius-sm);background-color:var(--color-primary-light);color:var(--color-primary);margin-left:var(--space-xs)}.model-views-panel__camera-edit-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs);background-color:transparent;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.model-views-panel__camera-edit-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary)}.model-views-panel__camera-edit-btn[aria-pressed=true]{background-color:var(--color-primary-light);border-color:var(--color-primary)}.model-views-panel__camera-edit-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.camera-view-helper{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-xs)}.camera-view-helper__preview{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:#000}.camera-view-helper__canvas{display:block;width:100%;height:auto;aspect-ratio:16 / 9;border-radius:var(--radius-sm)}.camera-view-helper__gizmo-controls{display:flex;align-items:center;gap:var(--space-xs)}.camera-view-helper__label{font-size:.75rem;color:var(--color-text-secondary);margin-right:auto}.camera-view-helper__mode-btn{min-height:32px;min-width:32px;padding:4px 10px;font-size:.75rem;font-weight:500;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.camera-view-helper__mode-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.camera-view-helper__mode-btn--active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.camera-view-helper__settings{display:flex;flex-direction:column;gap:var(--space-xs)}.camera-view-helper__setting-row{display:flex;align-items:center;gap:var(--space-xs)}.camera-view-helper__setting-label{font-size:.75rem;color:var(--color-text-secondary);min-width:32px}.camera-view-helper__setting-input{width:80px;min-height:28px;padding:2px 6px;font-size:.8125rem;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none}.camera-view-helper__setting-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.camera-view-helper__setting-unit{font-size:.6875rem;color:var(--color-text-muted)}.camera-view-helper__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.camera-view-helper__footer{display:flex;gap:var(--space-xs);justify-content:flex-end;padding-top:var(--space-xs);border-top:1px solid var(--color-border)}.camera-view-helper__btn{min-height:36px;padding:6px 12px;font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);border:none;cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.camera-view-helper__btn--primary{background-color:var(--color-primary);color:#fff}.camera-view-helper__btn--primary:hover{background-color:var(--color-primary-hover)}.camera-view-helper__btn--secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.camera-view-helper__btn--secondary:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.camera-view-helper__btn--cancel{background-color:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.camera-view-helper__btn--cancel:hover{background-color:var(--color-bg)}[data-theme=dark] .camera-view-helper{background-color:var(--color-sidebar)}[data-theme=dark] .camera-view-helper__setting-input,[data-theme=dark] .camera-view-helper__mode-btn{background-color:var(--color-surface)}[data-theme=dark] .model-views-panel__filter-select{background-color:var(--color-sidebar)}.dashboard-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.dashboard-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.dashboard-panel-empty,.dashboard-panel-loading{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}.dashboard-panel-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);flex-shrink:0}.dashboard-panel-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-xs);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:64px;transition:border-color var(--transition-fast),transform .2s ease}.dashboard-panel-card:hover{border-color:var(--color-primary-light);transform:scale(1.02)}.dashboard-panel-card-value{font-size:1.25rem;font-weight:700;color:var(--color-primary);line-height:1.2}.dashboard-panel-card-label{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-align:center;line-height:1.2}.dashboard-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.dashboard-panel-btn--show-all{background-color:var(--color-primary);color:#fff;align-self:flex-start}.dashboard-panel-btn--show-all:hover{background-color:var(--color-primary-hover)}.dashboard-panel-btn--show-all:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.dashboard-panel-section{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dashboard-panel-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.dashboard-panel-chart{position:relative;width:100%;max-height:280px}.dashboard-panel-chart canvas{cursor:pointer}[data-theme=dark] .dashboard-panel-card,[data-theme=dark] .dashboard-panel-section{background-color:var(--color-sidebar)}.ids-checker-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.ids-checker-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.ids-checker-panel-section{display:flex;flex-direction:column;gap:var(--space-sm)}.ids-checker-panel-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.ids-checker-panel-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);min-height:100px;padding:var(--space-lg);border:2px dashed var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.ids-checker-panel-dropzone:hover,.ids-checker-panel-dropzone:focus-visible{border-color:var(--color-primary);background-color:var(--color-primary-light)}.ids-checker-panel-dropzone-text{font-size:.875rem;color:var(--color-text-secondary);text-align:center;margin:0}.ids-checker-panel-dropzone-hint{font-size:.75rem;color:var(--color-text-muted)}.ids-checker-panel-file-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ids-checker-panel-file-name{font-size:.875rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ids-checker-panel-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.ids-checker-panel-btn:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.ids-checker-panel-btn:disabled{opacity:.5;cursor:not-allowed}.ids-checker-panel-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.ids-checker-panel-btn--run{width:100%;background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.ids-checker-panel-btn--run:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.ids-checker-panel-btn--remove{min-width:44px;padding:var(--space-xs);background-color:transparent;color:var(--color-error);border-color:var(--color-border)}.ids-checker-panel-btn--remove:hover:not(:disabled){background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.ids-checker-panel-select{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.875rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ids-checker-panel-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.ids-checker-panel-label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);margin:0}.ids-checker-panel-error{font-size:.8125rem;color:var(--color-error);margin:0;padding:var(--space-xs) var(--space-sm);background-color:var(--color-error-light);border-radius:var(--radius-sm)}.ids-checker-panel-info{padding:var(--space-sm) var(--space-md);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ids-checker-panel-info-title{font-size:.9375rem;font-weight:600;color:var(--color-text);margin:0}.ids-checker-panel-info-desc{font-size:.8125rem;color:var(--color-text-secondary);margin:0}.ids-checker-panel-info-stats{font-size:.75rem;color:var(--color-text-muted);margin:0}.ids-checker-panel-progress{position:relative;height:24px;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ids-checker-panel-progress-bar{height:100%;background-color:var(--color-primary);border-radius:var(--radius-md);transition:width var(--transition-base)}.ids-checker-panel-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--color-text)}.ids-checker-panel-filter{display:flex;flex-direction:column;gap:var(--space-xs)}.ids-checker-panel-persisted{display:flex;flex-direction:column;gap:var(--space-sm)}.ids-checker-panel-persisted-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.ids-checker-panel-persisted-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.ids-checker-panel-persisted-item:hover{background-color:var(--color-primary-light);border-color:var(--color-primary)}.ids-checker-panel-persisted-item--active{border-color:var(--color-primary);background-color:var(--color-primary-light)}.ids-checker-panel-spec-group{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ids-checker-panel-spec-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.ids-checker-panel-spec-name{font-size:.875rem;font-weight:600;color:var(--color-text)}.ids-checker-panel-spec-counts{display:flex;gap:var(--space-xs);font-size:.75rem}.ids-checker-panel-result-item{display:flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.8125rem;cursor:pointer;transition:background-color var(--transition-fast)}.ids-checker-panel-result-item:hover{background-color:var(--color-primary-light)}.ids-checker-panel-result-item--pass{color:var(--color-success)}.ids-checker-panel-result-item--fail{color:var(--color-error)}.ids-checker-panel-result-item--warning{color:var(--color-warning)}.ids-checker-panel-result-item--not-applicable{color:var(--color-text-muted)}.ids-checker-panel-empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}[data-theme=dark] .ids-checker-panel-dropzone,[data-theme=dark] .ids-checker-panel-file-info,[data-theme=dark] .ids-checker-panel-info{background-color:var(--color-sidebar)}[data-theme=dark] .ids-checker-panel-select,[data-theme=dark] .ids-checker-panel-btn{background-color:var(--color-bg)}.timeline-player{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--surface-secondary, #f9f9f9)}.timeline-player__title{margin:0;font-size:.85rem;font-weight:600;color:var(--text-primary, #333)}.timeline-player__transport{display:flex;gap:6px;align-items:center}.timeline-player__btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-color, #ccc);border-radius:4px;background:var(--surface, #fff);cursor:pointer;font-size:1rem;line-height:1;transition:background-color .15s}.timeline-player__btn:hover{background:var(--surface-secondary, #e8e8e8)}.timeline-player__btn--play{width:40px;background:var(--primary, #1976d2);color:#fff;border-color:var(--primary, #1976d2)}.timeline-player__btn--play:hover:not(:disabled){background:var(--primary-dark, #1565c0)}.timeline-player__btn--play:disabled{opacity:.5;cursor:not-allowed}.timeline-player__btn--pause{background:var(--surface, #fff)}.timeline-player__btn--pause:hover:not(:disabled){background:var(--surface-secondary, #e8e8e8)}.timeline-player__btn--pause:disabled{opacity:.5;cursor:not-allowed}.timeline-player__btn--stop{background:var(--surface, #fff)}.timeline-player__btn--stop:hover{background:var(--error-light, #ffebee);border-color:var(--error, #d32f2f)}.timeline-player__scrubber{display:flex;flex-direction:column;gap:4px}.timeline-player__slider{width:100%;height:6px;cursor:pointer;accent-color:var(--primary, #1976d2)}.timeline-player__position-info{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-secondary, #666)}.timeline-player__date{font-family:monospace}.timeline-player__percentage{font-weight:500}.timeline-player__speed{display:flex;align-items:center;gap:6px}.timeline-player__speed-label{font-size:.75rem;color:var(--text-secondary, #666);white-space:nowrap}.timeline-player__speed-slider{flex:1;height:4px;cursor:pointer;accent-color:var(--primary, #1976d2)}.timeline-player__speed-value{font-size:.75rem;font-weight:600;color:var(--text-primary, #333);min-width:32px;text-align:right}.timeline-player__seek-date{display:flex;align-items:center;gap:6px}.timeline-player__seek-label{font-size:.75rem;color:var(--text-secondary, #666);white-space:nowrap}.timeline-player__date-input{flex:1;padding:4px 6px;font-size:.75rem;border:1px solid var(--border-color, #ccc);border-radius:4px;background:var(--surface, #fff)}.timeline-player__status{display:flex;justify-content:space-between;align-items:center;font-size:.7rem}.timeline-player__elements-count{color:var(--text-secondary, #666)}.timeline-player__completed{color:var(--success, #2e7d32);font-weight:500}.schedule-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:var(--panel-bg, #fafafa);margin-bottom:12px}.schedule-toolbar__row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.schedule-toolbar__row--actions{border-top:1px dashed var(--border-color, #e5e7eb);padding-top:8px}.schedule-toolbar__label{font-size:12px;font-weight:600;color:var(--text-muted, #6b7280)}.schedule-toolbar__select,.schedule-toolbar__input{flex:1 1 auto;min-width:120px;padding:4px 6px;font-size:13px;border:1px solid var(--border-color, #d1d5db);border-radius:4px;background:#fff}.schedule-toolbar__group{display:flex;align-items:center;gap:4px}.schedule-toolbar__group-label{font-size:12px;color:var(--text-muted, #6b7280)}.schedule-toolbar__btn{padding:4px 10px;font-size:12px;border:1px solid var(--border-color, #d1d5db);border-radius:4px;background:#fff;cursor:pointer;color:var(--text-color, #111827)}.schedule-toolbar__btn:hover:not(:disabled){background:#f3f4f6}.schedule-toolbar__btn:disabled{opacity:.5;cursor:not-allowed}.schedule-toolbar__btn--primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.schedule-toolbar__btn--primary:hover:not(:disabled){background:#2563eb}.schedule-toolbar__btn--danger{color:#b91c1c}.schedule-toolbar__generate{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:8px;border:1px dashed var(--border-color, #e5e7eb);border-radius:4px}.schedule-toolbar__field{display:flex;flex-direction:column;gap:2px}.schedule-toolbar__field label{font-size:11px;color:var(--text-muted, #6b7280)}.schedule-toolbar__field input{padding:4px 6px;font-size:13px;border:1px solid var(--border-color, #d1d5db);border-radius:4px}.schedule-toolbar__checkbox{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-color, #111827)}.scheduling-panel{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto;height:100%}.scheduling-panel-title{margin:0;font-size:1rem;font-weight:600}.scheduling-panel-empty{color:var(--text-secondary, #666);font-size:.875rem}.scheduling-panel-loading{color:var(--text-secondary, #666);font-size:.875rem;font-style:italic}.scheduling-panel-error{color:var(--error, #d32f2f);font-size:.875rem}.scheduling-panel-form{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--surface-secondary, #f9f9f9)}.scheduling-panel-form-title{margin:0;font-size:.875rem;font-weight:600}.scheduling-panel-field{display:flex;flex-direction:column;gap:4px}.scheduling-panel-field label{font-size:.75rem;font-weight:500;color:var(--text-secondary, #666)}.scheduling-panel-field input,.scheduling-panel-field select{padding:6px 8px;font-size:.8rem;border:1px solid var(--border-color, #ccc);border-radius:4px;background:var(--surface, #fff)}.scheduling-panel-form-row{display:flex;gap:8px}.scheduling-panel-form-row .scheduling-panel-field{flex:1}.scheduling-panel-btn{padding:6px 12px;font-size:.8rem;border:none;border-radius:4px;cursor:pointer;font-weight:500}.scheduling-panel-btn--primary{background:var(--primary, #1976d2);color:#fff}.scheduling-panel-btn--primary:hover{background:var(--primary-dark, #1565c0)}.scheduling-panel-btn--primary:disabled{opacity:.5;cursor:not-allowed}.scheduling-panel-btn--secondary{background:var(--surface-secondary, #e0e0e0);color:var(--text-primary, #333)}.scheduling-panel-btn--secondary:hover{background:var(--border-color, #ccc)}.scheduling-panel-btn--danger{background:var(--error, #d32f2f);color:#fff;font-size:.7rem;padding:3px 6px}.scheduling-panel-btn--danger:hover{background:#b71c1c}.scheduling-panel-phases{display:flex;flex-direction:column;gap:8px}.scheduling-panel-phase-card{padding:8px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--surface, #fff)}.scheduling-panel-phase-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.scheduling-panel-phase-name{font-size:.85rem;font-weight:600;margin:0}.scheduling-panel-phase-order{font-size:.7rem;color:var(--text-secondary, #666);background:var(--surface-secondary, #f0f0f0);padding:2px 6px;border-radius:3px}.scheduling-panel-phase-dates{font-size:.75rem;color:var(--text-secondary, #666);margin-bottom:4px}.scheduling-panel-phase-deps{font-size:.7rem;color:var(--text-secondary, #888)}.scheduling-panel-phase-deps-label{font-weight:500}.scheduling-panel-dep-form{display:flex;gap:6px;align-items:flex-end;margin-top:6px;flex-wrap:wrap}.scheduling-panel-dep-form select{padding:4px 6px;font-size:.75rem;border:1px solid var(--border-color, #ccc);border-radius:4px}.scheduling-panel-conflicts{margin-top:8px}.scheduling-panel-conflicts-title{font-size:.85rem;font-weight:600;color:var(--error, #d32f2f);margin:0 0 6px}.scheduling-panel-conflict-item{padding:6px 8px;border:1px solid var(--error, #d32f2f);border-radius:4px;background:#fff5f5;font-size:.75rem;margin-bottom:4px}.scheduling-panel-conflict-type{font-weight:600;color:var(--error, #d32f2f);text-transform:uppercase;font-size:.65rem}.scheduling-panel-section{border-top:1px solid var(--border-color, #eee);padding-top:8px}.scheduling-panel-section-title{font-size:.85rem;font-weight:600;margin:0 0 8px}.scheduling-panel-actions{display:flex;gap:8px}.scheduling-panel-bulk{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;margin-bottom:10px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff}.scheduling-panel-bulk-count{font-size:12px;font-weight:600;color:#1d4ed8}.scheduling-panel-bulk select{flex:1 1 auto;min-width:120px;padding:4px 6px;font-size:13px;border:1px solid #d1d5db;border-radius:4px}.scheduling-panel-phase-wbs{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#6b7280}.scheduling-panel-badge{display:inline-block;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;border-radius:10px;vertical-align:middle}.scheduling-panel-badge--milestone{background:#fef3c7;color:#92400e}.scheduling-panel-badge--summary{background:#e5e7eb;color:#374151}.scheduling-panel-phase-elements{color:#6b7280;font-size:12px}.scheduling-panel-progress{position:relative;height:14px;margin-top:6px;background:#f3f4f6;border-radius:7px;overflow:hidden}.scheduling-panel-progress-fill{height:100%;background:#3b82f6;border-radius:7px 0 0 7px;transition:width .2s ease}.scheduling-panel-progress-label{position:absolute;top:0;left:6px;font-size:10px;line-height:14px;color:#1f2937}.qto-panel{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto;height:100%}.qto-panel-title{margin:0;font-size:1rem;font-weight:600}.qto-panel-empty{color:var(--text-secondary, #666);font-size:.875rem}.qto-panel-loading{color:var(--text-secondary, #666);font-size:.875rem;font-style:italic}.qto-panel-error{color:var(--error, #d32f2f);font-size:.875rem}.qto-panel-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qto-panel-card{display:flex;flex-direction:column;align-items:center;padding:8px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--surface, #fff)}.qto-panel-card-value{font-size:1.1rem;font-weight:700;color:var(--primary, #1976d2)}.qto-panel-card-label{font-size:.7rem;color:var(--text-secondary, #666);text-align:center}.qto-panel-section{border-top:1px solid var(--border-color, #eee);padding-top:8px}.qto-panel-section-title{font-size:.85rem;font-weight:600;margin:0 0 8px}.qto-panel-table{width:100%;border-collapse:collapse;font-size:.75rem}.qto-panel-table th{text-align:left;padding:4px 6px;border-bottom:2px solid var(--border-color, #ddd);font-weight:600;color:var(--text-secondary, #666)}.qto-panel-table td{padding:4px 6px;border-bottom:1px solid var(--border-color, #eee)}.qto-panel-table tr:hover td{background:var(--surface-secondary, #f5f5f5)}.qto-panel-incomplete{padding:8px;border:1px solid var(--warning, #ff9800);border-radius:6px;background:#fff8e1;font-size:.75rem}.qto-panel-incomplete-title{font-weight:600;color:var(--warning, #ff9800);margin-bottom:4px}.qto-panel-actions{display:flex;gap:8px;flex-wrap:wrap}.qto-panel-btn{padding:6px 12px;font-size:.8rem;border:none;border-radius:4px;cursor:pointer;font-weight:500}.qto-panel-btn--primary{background:var(--primary, #1976d2);color:#fff}.qto-panel-btn--primary:hover{background:var(--primary-dark, #1565c0)}.qto-panel-btn--primary:disabled{opacity:.5;cursor:not-allowed}.qto-panel-btn--secondary{background:var(--surface-secondary, #e0e0e0);color:var(--text-primary, #333)}.qto-panel-btn--secondary:hover{background:var(--border-color, #ccc)}.qto-panel-format-select{padding:4px 8px;font-size:.8rem;border:1px solid var(--border-color, #ccc);border-radius:4px;background:var(--surface, #fff)}.cost-panel{display:flex;flex-direction:column;gap:12px;padding:12px;overflow-y:auto;height:100%}.cost-panel-title{margin:0;font-size:1rem;font-weight:600}.cost-panel-empty{color:var(--text-secondary, #666);font-size:.875rem}.cost-panel-loading{color:var(--text-secondary, #666);font-size:.875rem;font-style:italic}.cost-panel-error{color:var(--error, #d32f2f);font-size:.875rem}.cost-panel-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cost-panel-card{display:flex;flex-direction:column;align-items:center;padding:8px;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--surface, #fff)}.cost-panel-card-value{font-size:1.1rem;font-weight:700;color:var(--primary, #1976d2)}.cost-panel-card-label{font-size:.7rem;color:var(--text-secondary, #666);text-align:center}.cost-panel-alert{padding:10px;border:1px solid var(--error, #d32f2f);border-radius:6px;background:#fff5f5;font-size:.8rem}.cost-panel-alert-title{font-weight:600;color:var(--error, #d32f2f);margin-bottom:4px;display:flex;align-items:center;gap:6px}.cost-panel-alert-detail{color:var(--text-primary, #333);margin-top:4px}.cost-panel-alert-contributors{margin-top:6px;font-size:.75rem}.cost-panel-alert-contributors-title{font-weight:500;color:var(--text-secondary, #666)}.cost-panel-section{border-top:1px solid var(--border-color, #eee);padding-top:8px}.cost-panel-section-title{font-size:.85rem;font-weight:600;margin:0 0 8px}.cost-panel-scenarios{display:flex;flex-direction:column;gap:6px}.cost-panel-scenario-card{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--surface, #fff);font-size:.8rem}.cost-panel-scenario-card--active{border-color:var(--primary, #1976d2);background:#e3f2fd}.cost-panel-scenario-name{font-weight:500}.cost-panel-scenario-cost{font-weight:700;color:var(--primary, #1976d2)}.cost-panel-comparison-table{width:100%;border-collapse:collapse;font-size:.75rem}.cost-panel-comparison-table th{text-align:left;padding:4px 6px;border-bottom:2px solid var(--border-color, #ddd);font-weight:600;color:var(--text-secondary, #666)}.cost-panel-comparison-table td{padding:4px 6px;border-bottom:1px solid var(--border-color, #eee)}.cost-panel-comparison-table tr:hover td{background:var(--surface-secondary, #f5f5f5)}.cost-panel-unpriced{padding:8px;border:1px solid var(--warning, #ff9800);border-radius:6px;background:#fff8e1;font-size:.75rem}.cost-panel-unpriced-title{font-weight:600;color:var(--warning, #ff9800);margin-bottom:4px}.cost-panel-actions{display:flex;gap:8px;flex-wrap:wrap}.cost-panel-btn{padding:6px 12px;font-size:.8rem;border:none;border-radius:4px;cursor:pointer;font-weight:500}.cost-panel-btn--primary{background:var(--primary, #1976d2);color:#fff}.cost-panel-btn--primary:hover{background:var(--primary-dark, #1565c0)}.cost-panel-btn--primary:disabled{opacity:.5;cursor:not-allowed}.cost-panel-btn--secondary{background:var(--surface-secondary, #e0e0e0);color:var(--text-primary, #333)}.cost-panel-btn--secondary:hover{background:var(--border-color, #ccc)}.cost-panel-breakdown{display:flex;flex-direction:column;gap:4px}.cost-panel-breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-radius:4px;background:var(--surface-secondary, #f9f9f9);font-size:.75rem}.cost-panel-breakdown-label{font-weight:500}.cost-panel-breakdown-value{font-weight:600;color:var(--primary, #1976d2)}.cost-panel-breakdown-pct{font-size:.65rem;color:var(--text-secondary, #888);margin-left:4px}.object-library-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.object-library-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.object-library-panel-upload{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.object-library-panel-upload-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.object-library-panel-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-lg);border:2px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .2s,background-color .2s;min-height:80px}.object-library-panel-upload-area:hover,.object-library-panel-upload-area--dragover{border-color:var(--color-primary);background-color:var(--color-primary-bg, rgba(59, 130, 246, .05))}.object-library-panel-upload-area-text{font-size:.8125rem;color:var(--color-text-muted);text-align:center}.object-library-panel-upload-btn{min-height:44px;min-width:44px;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-on-primary, #fff);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .15s}.object-library-panel-upload-btn:hover:not(:disabled){background-color:var(--color-primary-hover, #2563eb)}.object-library-panel-upload-btn:disabled{opacity:.5;cursor:not-allowed}.object-library-panel-search{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.object-library-panel-search-input{flex:1 1 calc(50% - var(--space-xs));min-width:100px;min-height:36px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text);font-size:.8125rem}.object-library-panel-search-input::placeholder{color:var(--color-text-muted)}.object-library-panel-filter-select{min-height:36px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text);font-size:.8125rem}.object-library-panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-sm)}.object-library-panel-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);cursor:pointer;transition:border-color .15s,box-shadow .15s;min-height:44px}.object-library-panel-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #0000001a}.object-library-panel-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-bg, rgba(59, 130, 246, .2))}.object-library-panel-card--parametric{border-left:3px solid var(--color-accent, #10b981)}.object-library-panel-card-thumb{width:80px;height:80px;object-fit:contain;border-radius:var(--radius-sm);background-color:var(--color-surface)}.object-library-panel-card-thumb--placeholder{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text-muted);font-size:1.5rem}.object-library-panel-card-name{font-size:.75rem;text-align:center;color:var(--color-text);margin-top:var(--space-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.object-library-panel-card-format{font-size:.625rem;color:var(--color-text-muted);text-transform:uppercase}.object-library-panel-detail{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.object-library-panel-detail-header{display:flex;justify-content:space-between;align-items:center}.object-library-panel-detail-name{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.object-library-panel-detail-close{min-height:32px;min-width:32px;padding:var(--space-xs);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;font-size:1rem}.object-library-panel-detail-meta{font-size:.75rem;color:var(--color-text-muted)}.object-library-panel-detail-tags{display:flex;flex-wrap:wrap;gap:4px}.object-library-panel-detail-tag{font-size:.6875rem;padding:2px 6px;border-radius:9999px;background-color:var(--color-primary-bg, rgba(59, 130, 246, .1));color:var(--color-primary)}.object-library-panel-loading,.object-library-panel-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-lg);font-size:.8125rem;color:var(--color-text-muted)}.object-library-panel-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);font-size:.75rem;color:var(--color-text-muted)}.object-library-panel-pagination-btn{min-height:32px;min-width:32px;padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:.75rem}.object-library-panel-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.sheet-composer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;flex-direction:column;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet-composer__bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e5e7eb)}.sheet-composer__title{font-weight:700;font-size:.9375rem}.sheet-composer__title small{font-weight:400;color:var(--color-text-muted, #6b7280);margin-left:.4rem}.sheet-composer__actions{display:flex;gap:.4rem}.sheet-composer__actions button{padding:.35rem .7rem;border:1px solid var(--color-border, #d1d5db);border-radius:6px;background:var(--color-surface, #fff);cursor:pointer;font-size:.8125rem;font-weight:600}.sheet-composer__actions button:hover{background:var(--color-primary-soft, #eef2ff)}.sheet-composer__close{color:#dc2626}.sheet-composer__body{flex:1;display:flex;overflow:hidden}.sheet-composer__tray{width:240px;flex-shrink:0;background:var(--color-surface, #fff);border-right:1px solid var(--color-border, #e5e7eb);padding:.75rem;overflow-y:auto}.sheet-composer__tray h4{margin:0 0 .5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #6b7280)}.sheet-composer__tray ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.sheet-composer__tray li button{width:100%;display:flex;align-items:center;gap:.4rem;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;background:var(--color-surface, #fff);padding:.3rem .4rem;cursor:pointer;font-size:.75rem;text-align:left}.sheet-composer__tray li button:hover{border-color:var(--color-primary, #4f46e5);background:var(--color-primary-soft, #eef2ff)}.sheet-composer__empty{font-size:.75rem;color:var(--color-text-muted, #6b7280)}.sheet-composer__kind{flex-shrink:0;font-size:.5625rem;font-weight:700;padding:.1rem .3rem;border-radius:3px;color:#fff}.sheet-composer__kind--plan{background:#2563eb}.sheet-composer__kind--elevation{background:#059669}.sheet-composer__kind--threeD{background:#d97706}.sheet-composer__remove{margin-top:.75rem;width:100%;padding:.4rem;border:1px solid #dc2626;border-radius:6px;background:#fff;color:#dc2626;cursor:pointer;font-size:.75rem;font-weight:600}.sheet-composer__canvas{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:2rem}.sheet-composer__paper{position:relative;background:#fff;box-shadow:0 10px 40px #00000059;flex-shrink:0}.sheet-composer__border{position:absolute;border:1px solid #0f172a;pointer-events:none}.sheet-composer__vp{position:absolute;overflow:hidden;background:#fff;border:1px solid transparent;cursor:move}.sheet-composer__vp--selected{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb;z-index:5}.sheet-composer__vp-content{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.sheet-composer__vp-content svg{width:100%;height:100%}.sheet-composer__vp-missing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#94a3b8}.sheet-composer__vp-label{position:absolute;left:0;right:0;bottom:-14px;text-align:center;font-size:9px;font-weight:700;color:#0f172a;white-space:nowrap;pointer-events:none}.sheet-composer__titleblock{position:absolute;border:1px solid #0f172a;display:flex;flex-direction:column;pointer-events:none;overflow:hidden}.sheet-composer__titleblock div{flex:1;border-top:1px solid #cbd5e1;padding:1px 4px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.sheet-composer__titleblock div:first-child{border-top:none}.sheet-composer__titleblock small{font-size:6px;color:#64748b;text-transform:uppercase}.sheet-composer__titleblock b{font-size:8px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawings-panel{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;font-size:.8125rem;color:var(--color-text, #1f2937);overflow-y:auto}.drawings-panel__title{margin:0;font-size:.9375rem;font-weight:700}.drawings-panel__hint,.drawings-panel__empty{margin:0;color:var(--color-text-muted, #6b7280);font-size:.75rem}.drawings-panel__section{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.6rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.drawings-panel__section-title{margin:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #6b7280)}.drawings-panel__section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.drawings-panel__link-btn{border:1px solid var(--color-primary, #4f46e5);background:var(--color-surface, #fff);color:var(--color-primary, #4f46e5);border-radius:5px;cursor:pointer;font-size:.6875rem;font-weight:600;padding:.15rem .45rem;white-space:nowrap}.drawings-panel__link-btn:hover:not(:disabled){background:var(--color-primary-soft, #eef2ff)}.drawings-panel__link-btn:disabled{opacity:.5;cursor:not-allowed}.drawings-panel__chips{display:flex;flex-wrap:wrap;gap:.3rem}.drawings-panel__chip{padding:.25rem .55rem;border:1px solid var(--color-border, #d1d5db);border-radius:999px;background:var(--color-surface, #fff);cursor:pointer;font-size:.75rem;transition:background .15s,border-color .15s}.drawings-panel__chip:hover:not(:disabled){background:var(--color-primary-soft, #eef2ff);border-color:var(--color-primary, #4f46e5)}.drawings-panel__btn{padding:.4rem .6rem;border:1px solid var(--color-primary, #4f46e5);border-radius:6px;background:var(--color-primary, #4f46e5);color:#fff;cursor:pointer;font-size:.75rem;font-weight:600}.drawings-panel__btn:hover:not(:disabled){filter:brightness(1.05)}.drawings-panel__chip:disabled,.drawings-panel__btn:disabled{opacity:.5;cursor:not-allowed}.drawings-panel__busy{margin:0;font-size:.75rem;color:var(--color-primary, #4f46e5);font-weight:600}.drawings-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.drawings-panel__item{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.25rem .35rem;border:1px solid transparent;border-radius:6px}.drawings-panel__item--active{border-color:var(--color-primary, #4f46e5);background:var(--color-primary-soft, #eef2ff)}.drawings-panel__item-name{flex:1;display:flex;align-items:center;gap:.4rem;border:none;background:none;cursor:pointer;text-align:left;font-size:.75rem;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawings-panel__kind{flex-shrink:0;font-size:.5625rem;font-weight:700;padding:.1rem .3rem;border-radius:3px;color:#fff}.drawings-panel__kind--plan{background:#2563eb}.drawings-panel__kind--elevation{background:#059669}.drawings-panel__kind--threeD{background:#d97706}.drawings-panel__kind--sheet{background:#7c3aed}.drawings-panel__item-actions{display:flex;gap:.15rem}.drawings-panel__item-actions button{border:1px solid var(--color-border, #d1d5db);background:var(--color-surface, #fff);border-radius:4px;cursor:pointer;font-size:.625rem;padding:.15rem .3rem;line-height:1}.drawings-panel__item-actions button:hover{background:var(--color-primary-soft, #eef2ff)}.drawings-panel__item-actions .drawings-panel__danger{color:#dc2626;border-color:#fca5a5}.drawings-panel__item-actions .drawings-panel__danger:hover{background:#fef2f2}.drawings-panel__confirm{font-size:.6875rem;color:#dc2626;font-weight:600;align-self:center}.drawings-panel__preview{border:1px solid var(--color-border, #e5e7eb);border-radius:6px;background:linear-gradient(45deg,#eef2f6 25%,transparent 25%) -8px 0 / 16px 16px,linear-gradient(-45deg,#eef2f6 25%,transparent 25%) -8px 0 / 16px 16px,linear-gradient(45deg,transparent 75%,#eef2f6 75%) / 16px 16px,linear-gradient(-45deg,transparent 75%,#eef2f6 75%) #f8fafc / 16px 16px;overflow:hidden;height:280px;display:flex;align-items:center;justify-content:center;padding:8px}.drawings-panel__preview svg{width:100%;height:100%;max-height:100%;background:#fff;box-shadow:0 1px 4px #0f172a1f;border-radius:2px}.drawings-panel__sheet-form{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.drawings-panel__sheet-form select{padding:.25rem;border:1px solid var(--color-border, #d1d5db);border-radius:4px;font-size:.75rem}.viewer-layout{display:flex;flex-direction:column;height:100vh;width:100%;background-color:var(--color-bg);color:var(--color-text);overflow:hidden}.viewer-layout-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;min-height:48px;z-index:10}.viewer-layout-body{display:flex;flex:1;min-height:0;overflow:hidden}.viewer-layout-sidebar{display:flex;flex-direction:column;background-color:var(--color-surface);border-color:var(--color-border);overflow-y:auto;overflow-x:hidden;flex-shrink:0}.viewer-layout-sidebar--left{width:280px;min-width:200px;border-right:1px solid var(--color-border)}.viewer-layout-sidebar--right{width:320px;min-width:240px;border-left:1px solid var(--color-border)}.viewer-layout-canvas{flex:1;min-width:0;position:relative;background-color:var(--color-bg)}.viewer-layout-three-container{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.viewer-layout-footer{border-top:1px solid var(--color-border);background-color:var(--color-surface);max-height:300px;overflow-y:auto;flex-shrink:0}.viewer-layout-filter-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);background-color:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.viewer-layout-filter-toggle:hover{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-text)}.viewer-layout-filter-toggle[aria-expanded=true]{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.viewer-layout-tabs{display:flex;flex-wrap:wrap;gap:2px;padding:var(--space-xs);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.viewer-layout-tab{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;font-family:var(--font-sans);color:var(--color-text-secondary);background-color:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.viewer-layout-tab:hover{background-color:var(--color-primary-light);color:var(--color-text)}.viewer-layout-tab--active{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.viewer-layout-tab:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.viewer-layout-tab-content{flex:1;min-height:0;overflow-y:auto}@media(min-width:1024px){.viewer-layout-body{display:flex;flex-direction:row}.viewer-layout-sidebar--left,.viewer-layout-sidebar--right{display:flex}.viewer-layout-canvas{min-width:400px}}@media(max-width:1023px){.viewer-layout-body{flex-direction:row;overflow-x:auto;min-width:100%}.viewer-layout-sidebar--left{width:240px;min-width:240px;flex-shrink:0}.viewer-layout-sidebar--right{width:280px;min-width:280px;flex-shrink:0}.viewer-layout-canvas{min-width:500px;flex-shrink:0}}.viewer-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:var(--font-sans);height:100%;overflow-y:auto}.viewer-panel-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0;flex-shrink:0}.viewer-panel-section{display:flex;flex-direction:column;gap:var(--space-sm)}.viewer-panel-section-title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0}.viewer-panel-empty{font-size:.875rem;color:var(--color-text-muted);text-align:center;padding:var(--space-lg) 0;margin:0}.viewer-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);font-size:.875rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);border:none;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.viewer-btn:disabled{opacity:.5;cursor:not-allowed}.viewer-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.viewer-btn--primary{background-color:var(--color-primary);color:#fff}.viewer-btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.viewer-btn--secondary{background-color:transparent;color:var(--color-text-secondary);border:1.5px solid var(--color-border)}.viewer-btn--secondary:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-text)}.viewer-btn--danger{background-color:transparent;color:var(--color-error);border:1.5px solid var(--color-error)}.viewer-btn--danger:hover:not(:disabled){background-color:var(--color-error-light)}.viewer-btn--ghost{background-color:transparent;color:var(--color-text-secondary)}.viewer-btn--ghost:hover:not(:disabled){background-color:var(--color-primary-light);color:var(--color-text)}.viewer-input{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.viewer-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.viewer-input::placeholder{color:var(--color-text-muted)}.viewer-input--error{border-color:var(--color-error)}.viewer-input--error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.viewer-select{width:100%;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.viewer-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.viewer-select:disabled{opacity:.5;cursor:not-allowed}.viewer-checkbox{width:20px;height:20px;min-width:20px;accent-color:var(--color-primary);cursor:pointer}.viewer-checkbox-label{display:inline-flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:var(--space-xs) 0;font-size:.875rem;color:var(--color-text);cursor:pointer}.viewer-slider{width:100%;height:6px;min-height:44px;accent-color:var(--color-primary);cursor:pointer}.viewer-slider:disabled{opacity:.5;cursor:not-allowed}.viewer-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.viewer-card:hover{border-color:var(--color-primary-light)}.viewer-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.viewer-modal-content{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.viewer-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.viewer-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.viewer-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.viewer-hint{font-size:.8125rem;color:var(--color-text-muted)}.viewer-error{font-size:.8125rem;color:var(--color-error)}.viewer-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-xs);font-size:.6875rem;font-weight:600;color:#fff;background-color:var(--color-primary);border-radius:10px}.viewer-layout,.viewer-layout *:not(canvas):not(video){transition:background-color var(--transition-slow),color var(--transition-base),border-color var(--transition-slow),box-shadow var(--transition-slow)}.viewer-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;flex:1}.viewer-toolbar-group{display:flex;align-items:center;gap:2px;position:relative}.viewer-toolbar-separator{display:inline-block;width:1px;height:24px;background-color:var(--color-border);margin:0 var(--space-xs);flex-shrink:0}.viewer-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;font-family:var(--font-sans);color:var(--color-text-secondary);background-color:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.viewer-toolbar-btn:hover:not(:disabled){background-color:var(--color-primary-light);color:var(--color-text);border-color:var(--color-border)}.viewer-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.viewer-toolbar-btn--active{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.viewer-toolbar-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.viewer-toolbar-dropdown{position:relative}.viewer-toolbar-menu{position:absolute;top:100%;left:0;z-index:100;display:flex;flex-direction:column;min-width:140px;margin-top:4px;padding:var(--space-xs) 0;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.viewer-toolbar-menu-item{display:flex;align-items:center;min-height:44px;padding:var(--space-xs) var(--space-md);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text);background:none;border:none;cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.viewer-toolbar-menu-item:hover{background-color:var(--color-primary-light)}.viewer-toolbar-menu-item:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.viewer-layout-sidebar--left{position:relative}.viewer-sidebar-header{display:flex;justify-content:flex-end;padding:2px var(--space-xs);flex-shrink:0}.viewer-sidebar-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:1rem;color:var(--color-text-muted);background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.viewer-sidebar-action-btn:hover{background-color:var(--color-primary-light);color:var(--color-text);border-color:var(--color-border)}.viewer-sidebar-resize-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:20;background:transparent;transition:background-color var(--transition-fast)}.viewer-sidebar-resize-handle:hover,.viewer-sidebar-resize-handle:active{background-color:var(--color-primary);opacity:.4}.viewer-detached-panel{position:fixed;z-index:900;display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;min-width:250px;min-height:300px}.viewer-detached-titlebar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);border-bottom:1px solid var(--color-border);cursor:grab;flex-shrink:0;-webkit-user-select:none;user-select:none}.viewer-detached-titlebar:active{cursor:grabbing}.viewer-detached-title{font-size:.8125rem;font-weight:600;color:var(--color-text)}.viewer-detached-panel .viewer-layout-tabs{flex-shrink:0}.viewer-detached-panel .viewer-layout-tab-content{flex:1;min-height:0;overflow-y:auto}.viewer-detached-resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;z-index:10;background:linear-gradient(135deg,transparent 50%,var(--color-border) 50%);border-radius:0 0 var(--radius-lg) 0;opacity:.6;transition:opacity var(--transition-fast)}.viewer-detached-resize-handle:hover{opacity:1}.ui-config-panel{padding:var(--space-md);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-y:auto;max-height:100%}.ui-config-panel__title{margin:0 0 var(--space-xs);font-size:1rem;font-weight:600;color:var(--color-text)}.ui-config-panel__description{margin:0 0 var(--space-md);font-size:.8125rem;color:var(--color-text-secondary)}.ui-config-panel__header{display:grid;grid-template-columns:1fr repeat(3,100px);gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md) var(--radius-md) 0 0;font-size:.75rem;font-weight:600;text-transform:capitalize;color:var(--color-text-secondary)}.ui-config-panel__header-component{display:flex;align-items:center}.ui-config-panel__header-role{display:flex;align-items:center;justify-content:center}.ui-config-panel__list{border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);max-height:480px;overflow-y:auto}.ui-config-panel__row{display:grid;grid-template-columns:1fr repeat(3,100px);gap:var(--space-sm);padding:var(--space-sm) var(--space-md);align-items:center;border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.ui-config-panel__row:last-child{border-bottom:none}.ui-config-panel__row:hover{background:var(--color-primary-light)}.ui-config-panel__component-label{font-size:.8125rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-config-panel__select{min-width:44px;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.ui-config-panel__select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-primary-light)}.ui-config-panel__select:hover{border-color:var(--color-primary)}.ui-config-panel__save-btn{display:block;width:100%;min-height:44px;margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:600;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.ui-config-panel__save-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.ui-config-panel__save-btn:active:not(:disabled){background-color:var(--color-primary-dark)}.ui-config-panel__save-btn:disabled{opacity:.5;cursor:not-allowed}.ui-config-panel__save-btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}[data-theme=dark] .ui-config-panel{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .ui-config-panel__title{color:var(--color-text)}[data-theme=dark] .ui-config-panel__description{color:var(--color-text-secondary)}[data-theme=dark] .ui-config-panel__header{background:var(--color-sidebar);border-color:var(--color-border);color:var(--color-text-secondary)}[data-theme=dark] .ui-config-panel__list{border-color:var(--color-border)}[data-theme=dark] .ui-config-panel__row{border-bottom-color:var(--color-border)}[data-theme=dark] .ui-config-panel__row:hover{background:var(--color-sidebar-hover)}[data-theme=dark] .ui-config-panel__component-label{color:var(--color-text)}[data-theme=dark] .ui-config-panel__select{background-color:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}[data-theme=dark] .ui-config-panel__select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-primary-light)}[data-theme=dark] .ui-config-panel__save-btn{color:#fff}@media(min-width:1024px){.ui-config-panel{min-width:460px}}@media(max-width:1023px){.ui-config-panel__header,.ui-config-panel__row{grid-template-columns:1fr repeat(3,80px);gap:var(--space-xs);padding:var(--space-sm)}.ui-config-panel__select{padding:var(--space-xs);font-size:.6875rem}}.ui-config-panel__overrides-section{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.ui-config-panel__overrides-title{margin:0 0 var(--space-xs);font-size:.9375rem;font-weight:600;color:var(--color-text)}.ui-config-panel__overrides-description{margin:0 0 var(--space-md);font-size:.8125rem;color:var(--color-text-secondary)}.ui-config-panel__overrides-list{margin-bottom:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ui-config-panel__override-item{display:grid;grid-template-columns:1fr 1fr 80px 36px;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);align-items:center;border-bottom:1px solid var(--color-border);font-size:.8125rem}.ui-config-panel__override-item:last-child{border-bottom:none}.ui-config-panel__override-user{font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-config-panel__override-component{color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-config-panel__override-visibility{font-size:.75rem;font-weight:500;text-transform:capitalize;text-align:center;padding:2px 6px;border-radius:var(--radius-sm)}.ui-config-panel__override-visibility--visible{background-color:var(--color-success-bg, #d4edda);color:var(--color-success-text, #155724)}.ui-config-panel__override-visibility--hidden{background-color:var(--color-warning-bg, #fef3cd);color:var(--color-warning-text, #856404)}.ui-config-panel__override-visibility--disabled{background-color:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24)}.ui-config-panel__override-remove{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.25rem;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.ui-config-panel__override-remove:hover{background-color:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24)}.ui-config-panel__override-form{display:grid;grid-template-columns:1fr 1fr 100px auto;gap:var(--space-sm);align-items:center}.ui-config-panel__override-add-btn{min-width:44px;min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;font-weight:600;color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.ui-config-panel__override-add-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.ui-config-panel__override-add-btn:disabled{opacity:.5;cursor:not-allowed}.ui-config-panel__overrides-empty{font-size:.8125rem;color:var(--color-text-secondary);font-style:italic}[data-theme=dark] .ui-config-panel__overrides-section{border-top-color:var(--color-border)}[data-theme=dark] .ui-config-panel__overrides-title{color:var(--color-text)}[data-theme=dark] .ui-config-panel__overrides-description{color:var(--color-text-secondary)}[data-theme=dark] .ui-config-panel__overrides-list{border-color:var(--color-border)}[data-theme=dark] .ui-config-panel__override-item{border-bottom-color:var(--color-border)}[data-theme=dark] .ui-config-panel__override-user{color:var(--color-text)}[data-theme=dark] .ui-config-panel__override-component{color:var(--color-text-secondary)}@media(max-width:1023px){.ui-config-panel__override-form{grid-template-columns:1fr 1fr;gap:var(--space-xs)}.ui-config-panel__override-item{grid-template-columns:1fr 1fr 60px 32px;gap:var(--space-xs);padding:var(--space-sm)}}.ui-config-panel__io-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border, #e2e8f0)}.ui-config-panel__io-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--color-text-secondary, #64748b);background:var(--color-surface, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;cursor:pointer;transition:background-color .15s,color .15s}.ui-config-panel__io-btn:hover{background:var(--color-surface-hover, #f1f5f9);color:var(--color-text, #1e293b)}.ui-config-panel__category{margin-bottom:.75rem}.ui-config-panel__category-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #64748b);padding:.5rem 0 .25rem;border-bottom:1px solid var(--color-border, #e2e8f0);margin-bottom:.25rem}.cost-breakdown-table{width:100%;max-width:1200px}.cost-breakdown-table__title{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0 0 .75rem}.cost-breakdown-table__summary{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1.25rem;padding:.75rem 1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px)}.cost-breakdown-table__total-label{font-size:.875rem;font-weight:500;color:var(--color-text-muted)}.cost-breakdown-table__total-value{font-size:1.25rem;font-weight:700;color:var(--color-text)}.cost-breakdown-table__groups{display:flex;flex-direction:column;gap:1rem}.cost-breakdown-table__group{border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);overflow:hidden}.cost-breakdown-table__group-header{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background-color:var(--color-bg, #f8f9fa);border-bottom:1px solid var(--color-border)}.cost-breakdown-table__group-code{font-size:.75rem;font-weight:600;color:var(--color-primary);padding:2px 6px;background-color:var(--color-primary-light, #e8f4ff);border-radius:var(--radius-sm, 4px);white-space:nowrap}.cost-breakdown-table__group-name{font-size:.8125rem;font-weight:600;color:var(--color-text);flex:1}.cost-breakdown-table__group-subtotal{font-size:.8125rem;font-weight:600;color:var(--color-text);white-space:nowrap}.cost-breakdown-table__table{width:100%;border-collapse:collapse;font-size:.8125rem}.cost-breakdown-table__table thead{background-color:var(--color-surface, #fff)}.cost-breakdown-table__table th{padding:.5rem .75rem;text-align:left;font-weight:500;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid var(--color-border)}.cost-breakdown-table__table td{padding:.5rem .75rem;color:var(--color-text);border-bottom:1px solid var(--color-border-light, #eee)}.cost-breakdown-table__table tbody tr:last-child td{border-bottom:none}.cost-breakdown-table__table tbody tr:hover{background-color:var(--color-bg, #f8f9fa)}.cost-breakdown-table__col-number{text-align:right}.cost-breakdown-table__loading,.cost-breakdown-table__empty{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--color-text-muted);font-size:.875rem}@media(max-width:768px){.cost-breakdown-table__table{font-size:.75rem}.cost-breakdown-table__table th,.cost-breakdown-table__table td{padding:.375rem .5rem}.cost-breakdown-table__group-header{flex-wrap:wrap}}.unpriced-elements-list{margin-top:1.5rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background-color:var(--color-surface)}.unpriced-elements-list__title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0 0 .25rem;display:flex;align-items:center;gap:.5rem}.unpriced-elements-list__count{font-weight:400;font-size:.75rem;color:var(--color-text-muted)}.unpriced-elements-list__description{font-size:.75rem;color:var(--color-text-muted);margin:0 0 .75rem}.unpriced-elements-list__summary{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.unpriced-elements-list__badge{display:inline-flex;align-items:center;gap:.25rem;padding:2px 8px;border-radius:var(--radius-sm, 4px);font-size:.6875rem;font-weight:500}.unpriced-elements-list__badge--no-pricing{background-color:var(--color-warning-light, #fff3cd);color:var(--color-warning-dark, #856404);border:1px solid var(--color-warning, #ffc107)}.unpriced-elements-list__badge--incomplete{background-color:var(--color-danger-light, #f8d7da);color:var(--color-danger-dark, #721c24);border:1px solid var(--color-danger, #dc3545)}.unpriced-elements-list__items{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto}.unpriced-elements-list__item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;border-radius:var(--radius-sm, 4px);transition:background-color .15s}.unpriced-elements-list__item:hover{background-color:var(--color-bg)}.unpriced-elements-list__item+.unpriced-elements-list__item{border-top:1px solid var(--color-border)}.unpriced-elements-list__item-icon{flex-shrink:0;font-size:.875rem;line-height:1.4}.unpriced-elements-list__item-content{display:flex;flex-direction:column;gap:.125rem;min-width:0}.unpriced-elements-list__item-name{font-size:.8125rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unpriced-elements-list__item-reason{font-size:.6875rem;color:var(--color-text-muted)}.scenario-comparison-panel{width:100%;max-width:1200px;margin-top:1.5rem}.scenario-comparison-panel__title{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0 0 .75rem}.scenario-comparison-panel__empty{color:var(--color-text-muted);font-size:.875rem;padding:1rem;text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md, 6px)}.scenario-comparison-panel__summary{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;margin-bottom:1rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px)}.scenario-comparison-panel__scenario-names{display:flex;align-items:center;gap:.5rem}.scenario-comparison-panel__scenario-label{font-size:.875rem;font-weight:600;color:var(--color-text)}.scenario-comparison-panel__vs{font-size:.75rem;color:var(--color-text-muted);font-style:italic}.scenario-comparison-panel__total-diff{display:flex;align-items:baseline;gap:.5rem}.scenario-comparison-panel__total-diff-label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted)}.scenario-comparison-panel__total-diff-value{font-size:1.125rem;font-weight:700;color:var(--color-text)}.scenario-comparison-panel__total-diff--increase .scenario-comparison-panel__total-diff-value{color:var(--color-danger, #dc3545)}.scenario-comparison-panel__total-diff--decrease .scenario-comparison-panel__total-diff-value{color:var(--color-success, #28a745)}.scenario-comparison-panel__table{width:100%;border-collapse:collapse;font-size:.8125rem;border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);overflow:hidden}.scenario-comparison-panel__table thead{background-color:var(--color-bg, #f8f9fa)}.scenario-comparison-panel__table th{padding:.5rem .75rem;text-align:left;font-weight:500;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid var(--color-border)}.scenario-comparison-panel__table td{padding:.5rem .75rem;color:var(--color-text);border-bottom:1px solid var(--color-border-light, #eee)}.scenario-comparison-panel__table tbody tr:last-child td{border-bottom:none}.scenario-comparison-panel__table tbody tr:hover{background-color:var(--color-bg, #f8f9fa)}.scenario-comparison-panel__col-number{text-align:right}.scenario-comparison-panel__code{font-size:.75rem;font-weight:600;color:var(--color-primary);padding:1px 4px;background-color:var(--color-primary-light, #e8f4ff);border-radius:var(--radius-sm, 4px)}.scenario-comparison-panel__diff--increase{color:var(--color-danger, #dc3545);font-weight:600}.scenario-comparison-panel__diff--decrease{color:var(--color-success, #28a745);font-weight:600}@media(max-width:768px){.scenario-comparison-panel__summary{flex-direction:column;align-items:flex-start;gap:.5rem}.scenario-comparison-panel__table{font-size:.75rem}.scenario-comparison-panel__table th,.scenario-comparison-panel__table td{padding:.375rem .5rem}}.budget-alert-banner{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;margin-bottom:1rem;background-color:var(--color-danger-light, #fff3f3);border:1px solid var(--color-danger, #dc3545);border-radius:var(--radius-md, 6px);max-width:1200px;width:100%}.budget-alert-banner__icon{flex-shrink:0;color:var(--color-danger, #dc3545);margin-top:1px}.budget-alert-banner__content{flex:1;min-width:0}.budget-alert-banner__title{display:block;font-size:.875rem;font-weight:700;color:var(--color-danger, #dc3545);margin-bottom:.25rem}.budget-alert-banner__message{font-size:.8125rem;color:var(--color-text);margin:0;line-height:1.4}@media(max-width:768px){.budget-alert-banner{padding:.75rem;gap:.5rem}.budget-alert-banner__title{font-size:.8125rem}.budget-alert-banner__message{font-size:.75rem}}.viewer-page__content{display:flex;flex:1;min-height:0;overflow:hidden}.viewer-page__main{flex:1;min-width:480px;min-height:0;overflow:hidden;display:flex;flex-direction:column}.viewer-page__main .viewer-layout{height:100%}.viewer-page__chat-sidebar{width:360px;min-width:360px;max-width:360px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--color-border);background-color:var(--color-surface);overflow-y:auto;overflow-x:hidden}.viewer-page__chat-sidebar .online-users-panel{flex-shrink:0;border-bottom:1px solid var(--color-border)}.viewer-page__chat-sidebar .chat-panel{flex:1;min-height:0;overflow:hidden}.settings-page{max-width:960px;margin:0 auto;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl);min-height:100vh}.settings-page-header{display:flex;align-items:center;justify-content:space-between}.settings-page-header h1{margin:0;font-size:1.25rem;font-weight:600}.settings-page-header-right{display:flex;align-items:center;margin-left:auto}.settings-page-content{flex:1;padding:1.5rem;overflow-y:auto}.settings-section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.settings-section__title{margin:0 0 .25rem;font-size:1.125rem;font-weight:600}.settings-section__description{margin:0 0 1.5rem;color:var(--text-secondary, #666);font-size:.875rem}.settings-error{padding:.75rem 1rem;margin-bottom:1rem;border-radius:6px;background:var(--color-error-bg, #fef2f2);color:var(--color-error, #dc2626);border:1px solid var(--color-error-border, #fecaca);font-size:.875rem}.settings-form{display:flex;flex-direction:column;gap:1rem}.settings-form .form-group{display:flex;flex-direction:column;gap:.375rem}.settings-form .form-label{font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a1a)}.settings-form .form-select,.settings-form .form-input{padding:.5rem .75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;font-size:.875rem;background:var(--surface-color, #fff);color:var(--text-primary, #1a1a1a);transition:border-color .15s}.settings-form .form-select:focus,.settings-form .form-input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 2px #2563eb26}.settings-form .form-select:disabled,.settings-form .form-input:disabled{opacity:.6;cursor:not-allowed}.settings-form__actions{margin-top:.5rem}.settings-save-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;background:var(--color-primary, #2563eb);color:#fff;cursor:pointer;transition:background .15s,opacity .15s}.settings-save-btn:hover:not(:disabled){background:var(--color-primary-hover, #1d4ed8)}.settings-save-btn:disabled{opacity:.6;cursor:not-allowed}.settings-save-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:settings-spin .6s linear infinite}.breadcrumb-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.breadcrumb-header__back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);flex-shrink:0}.breadcrumb-header__back-btn:hover{background-color:var(--color-bg);color:var(--color-text)}.breadcrumb-header__back-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.breadcrumb-header__nav{min-width:0}.breadcrumb-header__list{display:flex;align-items:center;gap:var(--space-xs);list-style:none;margin:0;padding:0;flex-wrap:wrap}.breadcrumb-header__item{font-size:.875rem;font-family:var(--font-sans);white-space:nowrap}.breadcrumb-header__item--current{color:var(--color-text);font-weight:600}.breadcrumb-header__separator{color:var(--color-text-muted);font-size:.75rem;-webkit-user-select:none;user-select:none}.breadcrumb-header__link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb-header__link:hover{color:var(--color-primary);text-decoration:underline}.breadcrumb-header__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.tab-navigator{display:flex;flex-direction:row;gap:var(--spacing-xs, 4px);border-bottom:1px solid var(--color-border);padding:0 var(--spacing-md, 16px)}.tab-navigator__tab{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);font-size:var(--font-size-sm, .875rem);font-weight:500;font-family:var(--font-sans);color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tab-navigator__tab:hover{color:var(--color-text)}.tab-navigator__tab:focus-visible{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:-2px;border-radius:var(--radius-sm, 4px)}.tab-navigator__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}@media(max-width:768px){.tab-navigator{flex-direction:column;border-bottom:none;border-right:1px solid var(--color-border);padding:var(--spacing-sm, 8px) 0;gap:var(--spacing-xxs, 2px)}.tab-navigator__tab{justify-content:flex-start;border-bottom:none;border-left:2px solid transparent;padding:var(--spacing-sm, 8px) var(--spacing-md, 16px)}.tab-navigator__tab--active{border-bottom-color:transparent;border-left-color:var(--color-primary)}}.general-panel{padding:var(--space-lg);max-width:640px}.general-panel__form{display:flex;flex-direction:column;gap:var(--space-md)}.general-panel__field{display:flex;flex-direction:column;gap:var(--space-xs)}.general-panel__label{font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text)}.general-panel__input,.general-panel__textarea,.general-panel__select{font-family:var(--font-sans);font-size:.875rem;padding:var(--space-sm) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.general-panel__input:focus,.general-panel__textarea:focus,.general-panel__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-alpha)}.general-panel__input--error,.general-panel__textarea--error,.general-panel__select--error{border-color:var(--color-error)}.general-panel__input--error:focus,.general-panel__textarea--error:focus,.general-panel__select--error:focus{border-color:var(--color-error);box-shadow:0 0 0 2px var(--color-error-alpha)}.general-panel__input[readonly],.general-panel__textarea[readonly],.general-panel__select[disabled]{background-color:var(--color-bg);color:var(--color-text-muted);cursor:default}.general-panel__textarea{resize:vertical;min-height:80px}.general-panel__error{font-family:var(--font-sans);font-size:.75rem;color:var(--color-error);margin:0}.general-panel__actions{display:flex;justify-content:flex-start;padding-top:var(--space-sm)}.general-panel__save-btn{font-family:var(--font-sans);font-size:.875rem;font-weight:600;padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-on-primary);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.general-panel__save-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.general-panel__save-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.general-panel__save-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease;padding:var(--space-lg)}.confirm-dialog{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base) ease}.confirm-dialog__title{margin:0 0 var(--space-sm) 0;font-size:1.125rem;color:var(--color-text)}.confirm-dialog__message{margin:0 0 var(--space-lg) 0;color:var(--color-text-muted);line-height:1.5}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.team-panel{display:flex;flex-direction:column;gap:var(--spacing-lg, 24px);padding:var(--spacing-md, 16px)}.team-panel--loading,.team-panel--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-xl, 32px)}.team-panel__loading{color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem)}.team-panel__error{color:var(--color-danger, #e53e3e);font-size:var(--font-size-sm, .875rem)}.team-panel__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem);font-style:italic}.team-panel__section{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.team-panel__section-title{font-size:var(--font-size-md, 1rem);font-weight:600;color:var(--color-text);margin:0;padding-bottom:var(--spacing-xs, 4px);border-bottom:1px solid var(--color-border)}.team-panel__members-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.team-panel__member-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 16px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);background:var(--color-surface, #f9fafb);border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border)}.team-panel__member-info{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px);min-width:0}.team-panel__member-name{font-size:var(--font-size-sm, .875rem);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-panel__member-email{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-panel__member-actions{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-shrink:0}.team-panel__member-role{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);background:var(--color-surface-alt, #edf2f7);border-radius:var(--radius-sm, 4px)}.team-panel__role-select{font-size:var(--font-size-sm, .875rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-bg, #fff);color:var(--color-text);cursor:pointer}.team-panel__role-select:focus-visible{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.team-panel__role-select:disabled{opacity:.6;cursor:not-allowed}.team-panel__invite-form{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.team-panel__invite-fields{display:flex;align-items:flex-end;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.team-panel__field{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px);flex:1;min-width:160px}.team-panel__label{font-size:var(--font-size-xs, .75rem);font-weight:500;color:var(--color-text-secondary)}.team-panel__input,.team-panel__select{font-size:var(--font-size-sm, .875rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-bg, #fff);color:var(--color-text)}.team-panel__input:focus-visible,.team-panel__select:focus-visible{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.team-panel__input:disabled,.team-panel__select:disabled{opacity:.6;cursor:not-allowed}.team-panel__invite-error{color:var(--color-danger, #e53e3e);font-size:var(--font-size-xs, .75rem);margin:0}.team-panel__invitations-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.team-panel__invitation-row{display:flex;align-items:center;gap:var(--spacing-md, 16px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);background:var(--color-surface, #f9fafb);border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border)}.team-panel__invitation-email{font-size:var(--font-size-sm, .875rem);color:var(--color-text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-panel__invitation-role{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary)}.team-panel__invitation-status{font-size:var(--font-size-xs, .75rem);padding:var(--spacing-xxs, 2px) var(--spacing-xs, 4px);border-radius:var(--radius-sm, 4px);font-weight:500;text-transform:capitalize}.team-panel__invitation-status--pending{background:var(--color-warning-bg, #fefcbf);color:var(--color-warning-text, #975a16)}.team-panel__invitation-status--accepted{background:var(--color-success-bg, #c6f6d5);color:var(--color-success-text, #276749)}.team-panel__invitation-status--expired{background:var(--color-danger-bg, #fed7d7);color:var(--color-danger-text, #9b2c2c)}.team-panel__invitation-status--revoked{background:var(--color-neutral-bg, #e2e8f0);color:var(--color-neutral-text, #4a5568)}@media(max-width:768px){.team-panel__member-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm, 8px)}.team-panel__member-actions{width:100%;justify-content:flex-end}.team-panel__invite-fields{flex-direction:column;align-items:stretch}.team-panel__invitation-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs, 4px)}}.roles-panel{display:flex;flex-direction:column;gap:var(--spacing-lg, 24px);padding:var(--spacing-md, 16px)}.roles-panel--loading,.roles-panel--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-xl, 32px)}.roles-panel__loading{color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem)}.roles-panel__error{color:var(--color-danger, #e53e3e);font-size:var(--font-size-sm, .875rem)}.roles-panel__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem);font-style:italic;text-align:center;padding:var(--spacing-xl, 32px) 0}.roles-panel__list-header,.roles-panel__form-header{display:flex;align-items:center;justify-content:space-between}.roles-panel__section-title{font-size:var(--font-size-md, 1rem);font-weight:600;color:var(--color-text);margin:0}.roles-panel__roles-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.roles-panel__role-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 16px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);background:var(--color-surface, #f9fafb);border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border)}.roles-panel__role-info{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px);min-width:0}.roles-panel__role-name{font-size:var(--font-size-sm, .875rem);font-weight:500;color:var(--color-text)}.roles-panel__role-description{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary)}.roles-panel__role-permissions-count{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);font-style:italic}.roles-panel__role-actions{display:flex;align-items:center;gap:var(--spacing-xs, 4px);flex-shrink:0}.roles-panel__form{display:flex;flex-direction:column;gap:var(--spacing-md, 16px)}.roles-panel__field{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px)}.roles-panel__label{font-size:var(--font-size-xs, .75rem);font-weight:500;color:var(--color-text-secondary)}.roles-panel__input,.roles-panel__select{font-size:var(--font-size-sm, .875rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-bg, #fff);color:var(--color-text)}.roles-panel__input:focus-visible,.roles-panel__select:focus-visible{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.roles-panel__input:disabled,.roles-panel__select:disabled{opacity:.6;cursor:not-allowed}.roles-panel__field-error{color:var(--color-danger, #e53e3e);font-size:var(--font-size-xs, .75rem);margin:0}.roles-panel__permissions{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.roles-panel__permissions-label{font-size:var(--font-size-sm, .875rem);font-weight:500;color:var(--color-text);margin:0}.roles-panel__permission-group{border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);margin:0}.roles-panel__permission-namespace{font-size:var(--font-size-sm, .875rem);font-weight:600;color:var(--color-text);text-transform:capitalize}.roles-panel__permission-checkboxes{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, 4px) var(--spacing-lg, 24px);margin-top:var(--spacing-xs, 4px)}.roles-panel__permission-checkbox{display:flex;align-items:center;gap:var(--spacing-xxs, 2px);cursor:pointer;font-size:var(--font-size-sm, .875rem);color:var(--color-text)}.roles-panel__permission-checkbox input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer}.roles-panel__permission-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.roles-panel__permission-name{-webkit-user-select:none;user-select:none}.roles-panel__fallback-select-container{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px);margin-bottom:var(--spacing-md, 16px)}@media(max-width:768px){.roles-panel__role-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm, 8px)}.roles-panel__role-actions{width:100%;justify-content:flex-end}.roles-panel__permission-checkboxes{flex-direction:column;gap:var(--spacing-xs, 4px)}}.ui-visibility-panel{padding:var(--spacing-md, 1rem)}.ui-visibility-panel__loading{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);padding:var(--spacing-lg, 2rem) 0;color:var(--text-secondary, #6b7280);font-size:var(--font-size-sm, .875rem)}.ui-visibility-panel__spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--border-color, #e5e7eb);border-top-color:var(--color-primary, #3b82f6);border-radius:50%;animation:ui-visibility-spin .6s linear infinite}@keyframes ui-visibility-spin{to{transform:rotate(360deg)}}.ui-visibility-panel__error{margin-bottom:var(--spacing-md, 1rem);padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background-color:var(--color-warning-bg, #fef3cd);border:1px solid var(--color-warning-border, #ffc107);border-radius:var(--border-radius, 4px);color:var(--color-warning-text, #856404);font-size:var(--font-size-sm, .875rem)}.ui-visibility-panel__disabled-wrapper{pointer-events:none;opacity:.6}.ui-visibility-panel__disabled-wrapper .ui-config-panel__select,.ui-visibility-panel__disabled-wrapper .ui-config-panel__save-btn{cursor:not-allowed}.ui-visibility-panel__readonly-notice{margin-top:var(--spacing-md, 1rem);padding:var(--spacing-sm, .5rem) var(--spacing-md, 1rem);background-color:var(--color-info-bg, #e8f4fd);border:1px solid var(--color-info-border, #bee5eb);border-radius:var(--border-radius, 4px);color:var(--color-info-text, #0c5460);font-size:var(--font-size-sm, .875rem)}.history-panel{position:relative;display:flex;flex-direction:column;gap:var(--spacing-md, 16px);padding:var(--spacing-md, 16px)}.history-panel__loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-xl, 32px);color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem)}.history-panel__spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.history-panel__error{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md, 16px);padding:var(--spacing-xl, 32px);text-align:center}.history-panel__error-message{margin:0;color:var(--color-error, #dc3545);font-size:var(--font-size-sm, .875rem)}.history-panel__filters{display:flex;flex-wrap:wrap;gap:var(--spacing-md, 16px);padding-bottom:var(--spacing-md, 16px);border-bottom:1px solid var(--color-border)}.history-panel__filter-group{border:none;margin:0;padding:0;min-width:0}.history-panel__filter-label{font-size:var(--font-size-xs, .75rem);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs, 4px)}.history-panel__checkbox-group{display:flex;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.history-panel__checkbox-label{display:inline-flex;align-items:center;gap:var(--spacing-xs, 4px);font-size:var(--font-size-sm, .875rem);color:var(--color-text);cursor:pointer}.history-panel__checkbox-label input[type=checkbox]{accent-color:var(--color-primary)}.history-panel__date-range{display:flex;gap:var(--spacing-sm, 8px);align-items:flex-end}.history-panel__date-label{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px);font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary)}.history-panel__date-input{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm, .875rem);font-family:var(--font-sans)}.history-panel__date-input:focus{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.history-panel__floor-select{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm, .875rem);font-family:var(--font-sans);min-width:120px}.history-panel__floor-select:focus{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.history-panel__sort{display:flex;gap:var(--spacing-md, 16px);align-items:center;flex-wrap:wrap}.history-panel__sort-label{display:flex;align-items:center;gap:var(--spacing-xs, 4px);font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary)}.history-panel__sort-select{padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm, .875rem);font-family:var(--font-sans)}.history-panel__sort-select:focus{outline:2px solid var(--color-focus-ring, var(--color-primary));outline-offset:1px}.history-panel__empty{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl, 32px);color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem)}.history-panel__empty p{margin:0}.history-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.history-panel__event{padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-surface);transition:background-color .15s ease}.history-panel__event:hover{background-color:var(--color-surface-hover, var(--color-surface))}.history-panel__event-header{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:wrap;margin-bottom:var(--spacing-xs, 4px)}.history-panel__event-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.history-panel__event-avatar--placeholder{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2, #e0e0e0);color:var(--color-text-muted, #666);font-size:var(--font-size-xs, .7rem);font-weight:600}.history-panel__event-actor{font-weight:600;font-size:var(--font-size-sm, .875rem);color:var(--color-text)}.history-panel__event-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, 4px);margin-top:var(--spacing-xs, 4px)}.history-panel__event-tag{font-size:var(--font-size-xs, .75rem);padding:1px var(--spacing-xs, 6px);border-radius:var(--radius-xs, 3px);background:var(--surface-2, rgba(0, 0, 0, .05));color:var(--color-text-secondary, #555)}.history-panel__event-tag--floor{background:var(--color-info-bg, rgba(13, 110, 253, .1));color:var(--color-info, #0d6efd)}.history-panel__event-action{font-size:var(--font-size-xs, .75rem);font-weight:500;padding:2px var(--spacing-xs, 4px);border-radius:var(--radius-xs, 2px);text-transform:uppercase;letter-spacing:.03em}.history-panel__event-action--add{background-color:var(--color-success-bg, rgba(40, 167, 69, .1));color:var(--color-success, #28a745)}.history-panel__event-action--delete{background-color:var(--color-error-bg, rgba(220, 53, 69, .1));color:var(--color-error, #dc3545)}.history-panel__event-action--modify{background-color:var(--color-warning-bg, rgba(255, 193, 7, .1));color:var(--color-warning, #ffc107)}.history-panel__event-time{margin-left:auto;font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted)}.history-panel__event-body{display:flex;gap:var(--spacing-sm, 8px);align-items:baseline;font-size:var(--font-size-sm, .875rem)}.history-panel__event-resource{color:var(--color-text-secondary);font-style:italic}.history-panel__event-summary{color:var(--color-text)}.history-panel__pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md, 16px);padding-top:var(--spacing-md, 16px);border-top:1px solid var(--color-border)}.history-panel__page-btn{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.history-panel__page-info{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary)}.history-panel__refetching{position:absolute;top:var(--spacing-sm, 8px);right:var(--spacing-sm, 8px);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);box-shadow:var(--shadow-sm)}@media(max-width:768px){.history-panel__filters{flex-direction:column}.history-panel__sort,.history-panel__event-header{flex-direction:column;align-items:flex-start}.history-panel__event-time{margin-left:0}}.history-panel__event--import{border-left:3px solid var(--color-info, #0d6efd)}.history-panel__event-action--import{background-color:var(--color-info-bg, rgba(13, 110, 253, .1));color:var(--color-info, #0d6efd)}.history-panel__event-actions{margin-top:var(--spacing-sm, 8px);padding-top:var(--spacing-sm, 8px);border-top:1px solid var(--color-border)}.history-panel__undo-import-btn{font-size:var(--font-size-xs, .75rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px)}.history-panel__undo-confirm{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.history-panel__undo-confirm-text{font-size:var(--font-size-sm, .875rem);color:var(--color-error, #dc3545);font-weight:500}.history-panel__undo-btn,.history-panel__undo-cancel-btn{font-size:var(--font-size-xs, .75rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px)}.btn-sm{font-size:var(--font-size-xs, .75rem);padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);line-height:1.4}.btn-warning{background-color:var(--color-warning, #ffc107);color:var(--color-warning-text, #000);border:1px solid var(--color-warning, #ffc107);border-radius:var(--radius-sm, 4px);cursor:pointer;font-weight:500}.btn-warning:hover{background-color:var(--color-warning-hover, #e0a800)}.btn-danger{background-color:var(--color-error, #dc3545);color:#fff;border:1px solid var(--color-error, #dc3545);border-radius:var(--radius-sm, 4px);cursor:pointer;font-weight:500}.btn-danger:hover{background-color:var(--color-error-hover, #c82333)}.btn-danger:disabled,.btn-warning:disabled{opacity:.6;cursor:not-allowed}.project-settings-page{max-width:960px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);min-height:100vh}.project-settings-page--loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-sm);color:var(--color-text-muted)}.project-settings-page__spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:settings-spin .8s linear infinite}.project-settings-page--error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-sm);text-align:center}.project-settings-page__error-message{color:var(--color-error, #d32f2f);font-size:var(--font-size-md)}.project-settings-page__panel{flex:1}@media(max-width:768px){.project-settings-page{padding:var(--space-md) var(--space-sm)}.project-settings-page__panel{width:100%;overflow-x:auto}}.settings-page{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-bg)}.settings-page__content{display:flex;flex-direction:row;flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--space-lg) var(--space-xl);gap:var(--space-lg)}.settings-page__nav{flex-shrink:0;width:200px}.settings-page__panel{flex:1;min-width:0;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.settings-page__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl);min-height:300px}.settings-page__spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:settings-spin .6s linear infinite}.settings-page__loading-text{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0}@keyframes settings-spin{to{transform:rotate(360deg)}}.settings-page__error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl);min-height:300px;text-align:center}.settings-page__error-icon{font-size:2rem;color:var(--color-error)}.settings-page__error-title{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0}.settings-page__error-message{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0;max-width:400px;line-height:1.5}.settings-page__error-action{margin-top:var(--space-sm)}@media(max-width:768px){.settings-page__content{flex-direction:column;padding:var(--space-md);gap:var(--space-md)}.settings-page__nav{width:100%}.settings-page__panel{width:100%;overflow-x:auto;border-radius:var(--radius-md)}.settings-page__loading,.settings-page__error{padding:var(--space-xl);min-height:200px}}.settings-page a:focus-visible,.settings-page button:focus-visible,.settings-page select:focus-visible,.settings-page input:focus-visible,.settings-page textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.settings-page input[type=text],.settings-page input[type=email],.settings-page input[type=date],.settings-page textarea,.settings-page select{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.settings-page input[type=text]:focus,.settings-page input[type=email]:focus,.settings-page input[type=date]:focus,.settings-page textarea:focus,.settings-page select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.settings-page input[disabled],.settings-page input[readonly],.settings-page textarea[disabled],.settings-page textarea[readonly],.settings-page select[disabled]{background-color:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed;opacity:.7}.settings-page__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);font-family:var(--font-sans);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.settings-page__btn:hover:not(:disabled){transform:translateY(-1px)}.settings-page__btn:active:not(:disabled){transform:translateY(0)}.settings-page__btn:disabled{opacity:.6;cursor:not-allowed}.settings-page__btn--primary{background-color:var(--color-primary);color:#fff}.settings-page__btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.settings-page__btn--secondary{background-color:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.settings-page__btn--secondary:hover:not(:disabled){background-color:var(--color-surface);border-color:var(--color-text-muted)}.settings-page__btn--danger{background-color:var(--color-error);color:#fff}.settings-page__btn--danger:hover:not(:disabled){background-color:#dc2626}.settings-page__btn--ghost{background-color:transparent;color:var(--color-text-secondary)}.settings-page__btn--ghost:hover:not(:disabled){background-color:var(--color-bg);color:var(--color-text)}.settings-page__btn--sm{padding:var(--space-xs) var(--space-sm);font-size:.8125rem}.invitation-accept{display:flex;align-items:center;justify-content:center;flex:1;padding:var(--space-xl)}.invitation-accept__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-2xl);max-width:480px;width:100%;text-align:center}.invitation-accept__loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) 0}.invitation-accept__success,.invitation-accept__error{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.invitation-accept__icon{margin-bottom:var(--space-sm)}.invitation-accept__title{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0}.invitation-accept__detail{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0;line-height:1.5;max-width:360px}@media(max-width:768px){.invitation-accept{padding:var(--space-md)}.invitation-accept__card{padding:var(--space-xl)}}.shared-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.shared-page--readonly{flex-direction:column;align-items:stretch}.shared-page__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0d47a1,#1a73e8 40%,#4fc3f7);z-index:0}.shared-page__bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,255,255,.1) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.08) 0%,transparent 50%)}.shared-page__container{position:relative;z-index:1;width:100%;max-width:420px;padding:1.5rem}.shared-page__card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 60px #00000026,0 1px 3px #00000014}.shared-page__header{text-align:center;margin-bottom:1.5rem}.shared-page__icon{display:flex;justify-content:center;margin-bottom:1rem}.shared-page__header h1{font-size:1.5rem;font-weight:700;color:#1e293b;margin:0 0 .25rem}.shared-page__project-name{font-size:1rem;font-weight:600;color:#1a73e8;margin:0 0 .5rem}.shared-page__subtitle{font-size:.875rem;color:#64748b;margin:0;line-height:1.4}.shared-page__tab-bar{display:flex;border-bottom:1px solid #e2e8f0;margin-bottom:1.5rem}.shared-page__tab{flex:1;padding:.75rem 1rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.875rem;font-weight:500;color:#64748b;cursor:pointer;transition:color .2s,border-color .2s}.shared-page__tab:hover{color:#1e293b}.shared-page__tab--active{color:#1a73e8;border-bottom-color:#1a73e8}.shared-page__form{display:flex;flex-direction:column;gap:1rem}.shared-page__field{display:flex;flex-direction:column;gap:.25rem}.shared-page__field label{font-size:.8125rem;font-weight:500;color:#374151}.shared-page__field input{padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .2s,box-shadow .2s;outline:none}.shared-page__field input:focus{border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81f}.shared-page__form-error{padding:.5rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.8125rem}.shared-page__btn{padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:background-color .2s,transform .1s}.shared-page__btn:active{transform:scale(.98)}.shared-page__btn--primary{background:#1a73e8;color:#fff}.shared-page__btn--primary:hover:not(:disabled){background:#1557b0}.shared-page__btn--primary:disabled{opacity:.6;cursor:not-allowed}.shared-page__btn--secondary{background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.shared-page__btn--secondary:hover{background:#e2e8f0}.shared-page__btn--small{padding:.375rem .75rem;font-size:.8125rem;background:#ffffffe6;color:#1a73e8;border:1px solid rgba(26,115,232,.3);border-radius:6px}.shared-page__btn--small:hover{background:#fff}.shared-page__loading{text-align:center;padding:2rem 0}.shared-page__loading p{color:#64748b;font-size:.875rem;margin-top:1rem}.shared-page__spinner{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#1a73e8;border-radius:50%;animation:shared-spin .8s linear infinite;margin:0 auto}@keyframes shared-spin{to{transform:rotate(360deg)}}.shared-page__error{text-align:center;padding:2rem 0}.shared-page__error h2{font-size:1.25rem;color:#1e293b;margin:1rem 0 .5rem}.shared-page__error p{color:#64748b;font-size:.875rem;margin:0 0 1.5rem}.shared-page__readonly-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#1e293b;color:#fff;z-index:10;flex-shrink:0}.shared-page__readonly-info{display:flex;align-items:center;gap:.5rem}.shared-page__readonly-label{font-size:.8125rem;font-weight:500;color:#94a3b8}.shared-page__readonly-project{font-size:.875rem;font-weight:600;color:#f1f5f9}.shared-page__readonly-content{flex:1;position:relative;overflow:hidden}.shared-page__embed{width:100%;height:100%;min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center;background:#0f172a}.shared-page__embed-placeholder{text-align:center;padding:2rem}.shared-page__embed-placeholder h3{color:#e2e8f0;font-size:1.25rem;margin:1rem 0 .25rem}.shared-page__embed-placeholder p{color:#94a3b8;font-size:.875rem;margin:.25rem 0}.shared-page__embed-hint{color:#64748b!important;font-size:.8125rem!important;margin-top:.75rem!important}.cost-estimation-page{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.cost-estimation-page__header{display:flex;align-items:center;justify-content:space-between;height:52px;min-height:52px;padding:0 1rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface)}.cost-estimation-page__header-left{display:flex;align-items:center;gap:var(--space-sm, .5rem)}.cost-estimation-page__back-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm, 4px);border:none;background:none;color:var(--color-text-muted);cursor:pointer;transition:background-color .15s,color .15s}.cost-estimation-page__back-btn:hover{background-color:var(--color-bg);color:var(--color-text)}.cost-estimation-page__title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.cost-estimation-page__nav{display:flex;align-items:center;gap:var(--space-xs, .25rem)}.cost-estimation-page__nav-link{padding:4px 12px;font-size:.75rem;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.cost-estimation-page__nav-link:hover{background-color:var(--color-bg);border-color:var(--color-primary);color:var(--color-text)}.cost-estimation-page__nav-link--active{background-color:var(--color-primary-light, #e8f4ff);border-color:var(--color-primary);color:var(--color-primary);cursor:default}.cost-estimation-page__content{flex:1;display:flex;flex-direction:column;overflow:auto;width:100%;padding:1rem}.cost-estimation-page__placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-muted);font-size:.875rem}@media(max-width:768px){.cost-estimation-page__header{height:44px;min-height:44px;padding:0 .75rem}.cost-estimation-page__title{max-width:140px;font-size:.8125rem}.cost-estimation-page__nav-link{padding:2px 8px;font-size:.6875rem}}.gantt-view{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:.8125rem;color:var(--color-text, #1a1a2e)}.gantt-view__loading,.gantt-view__error,.gantt-view__empty{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem;color:var(--color-text-muted, #6b7280);font-size:.875rem}.gantt-view__error{color:var(--color-danger, #e74c3c)}.gantt-view__retry-btn{margin-top:.5rem;padding:4px 12px;font-size:.75rem;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #d1d5db);background:var(--color-surface, #ffffff);color:var(--color-primary, #3b82f6);cursor:pointer;transition:background-color .15s}.gantt-view__retry-btn:hover{background-color:var(--color-bg, #f9fafb)}.gantt-view__header{display:flex;align-items:center;height:36px;min-height:36px;border-bottom:1px solid var(--color-border, #d1d5db);background-color:var(--color-surface, #ffffff);padding:0 .5rem}.gantt-view__label-col{width:200px;min-width:200px;padding:0 .5rem;font-weight:600;font-size:.75rem;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.02em}.gantt-view__timeline-col{flex:1;display:flex;justify-content:space-between;align-items:center;padding:0 .5rem;font-size:.6875rem;color:var(--color-text-muted, #6b7280)}.gantt-view__timeline-start,.gantt-view__timeline-end{font-family:monospace}.gantt-view__rows{flex:1;overflow-y:auto;overflow-x:hidden}.gantt-view__rows-inner{position:relative}.gantt-view__row{display:flex;align-items:center;height:40px;min-height:40px;border-bottom:1px solid var(--color-border-light, #e5e7eb);padding:0 .5rem}.gantt-view__row:hover{background-color:var(--color-bg, #f9fafb)}.gantt-view__row-label{width:200px;min-width:200px;padding:0 .5rem;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.gantt-view__row-name{font-size:.8125rem;font-weight:500;color:var(--color-text, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-view__row-dates{font-size:.6875rem;color:var(--color-text-muted, #6b7280);white-space:nowrap}.gantt-view__row-track{flex:1;position:relative;height:24px;border-radius:var(--radius-sm, 4px);background-color:var(--color-bg, #f3f4f6)}.gantt-view__bar{position:absolute;top:2px;height:20px;border-radius:var(--radius-sm, 4px);min-width:4px;transition:opacity .15s;cursor:pointer}.gantt-view__bar:hover{opacity:.85}@media(max-width:768px){.gantt-view__label-col,.gantt-view__row-label{width:140px;min-width:140px}.gantt-view__row{height:36px;min-height:36px}.gantt-view__row-name{font-size:.75rem}}.gantt-view__cycle-error{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:var(--color-danger-bg, #fef2f2);border:1px solid var(--color-danger-border, #fecaca);border-radius:var(--radius-sm, 4px);margin:.5rem;font-size:.8125rem;color:var(--color-danger, #dc2626)}.gantt-view__cycle-error-icon{flex-shrink:0;font-size:1rem}.gantt-view__cycle-error-text{line-height:1.4}.gantt-view__arrows-svg{position:absolute;top:0;left:200px;right:0;pointer-events:none;overflow:visible;width:calc(100% - 200px)}.gantt-view__arrow-line{stroke:var(--color-text-muted, #6b7280);stroke-width:1.5;fill:none;opacity:.7}@media(max-width:768px){.gantt-view__arrows-svg{left:140px;width:calc(100% - 140px)}}.phase-element-assignment{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--color-border);background-color:var(--color-surface);max-height:300px;overflow:hidden}.phase-element-assignment__title{font-size:.8125rem;font-weight:600;color:var(--color-text);margin:0}.phase-element-assignment__phase-select{display:flex;align-items:center;gap:.5rem;font-size:.75rem}.phase-element-assignment__phase-select label{color:var(--color-text-muted);white-space:nowrap}.phase-element-assignment__phase-select select{flex:1;padding:4px 8px;font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-bg, #fff);color:var(--color-text)}.phase-element-assignment__filter input{width:100%;padding:4px 8px;font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background-color:var(--color-bg, #fff);color:var(--color-text)}.phase-element-assignment__filter input::placeholder{color:var(--color-text-muted)}.phase-element-assignment__list{flex:1;overflow-y:auto;min-height:0}.phase-element-assignment__element-list{list-style:none;margin:0;padding:0}.phase-element-assignment__element-item{display:flex;align-items:center;gap:.5rem;padding:4px 8px;font-size:.75rem;cursor:pointer;border-radius:var(--radius-sm, 4px);transition:background-color .12s}.phase-element-assignment__element-item:hover{background-color:var(--color-bg, #f3f4f6)}.phase-element-assignment__element-item--selected{background-color:var(--color-primary-light, #e8f4ff)}.phase-element-assignment__element-item input[type=checkbox]{flex-shrink:0;width:14px;height:14px}.phase-element-assignment__element-name{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-element-assignment__element-type{flex-shrink:0;color:var(--color-text-muted);font-size:.6875rem;text-transform:capitalize}.phase-element-assignment__status{font-size:.75rem;color:var(--color-text-muted);margin:0;padding:4px 0}.phase-element-assignment__error{font-size:.75rem;color:var(--color-error, #dc3545);margin:0;padding:4px 0}.phase-element-assignment__actions{display:flex;align-items:center;gap:.5rem}.phase-element-assignment__assign-btn{padding:6px 12px;font-size:.75rem;font-weight:500;border:none;border-radius:var(--radius-sm, 4px);background-color:var(--color-primary, #4a90d9);color:#fff;cursor:pointer;transition:background-color .15s,opacity .15s}.phase-element-assignment__assign-btn:hover:not(:disabled){background-color:var(--color-primary-dark, #357abd)}.phase-element-assignment__assign-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.phase-element-assignment{max-height:200px;padding:.5rem .75rem}}.timeline-scene-viewer{position:relative;width:100%;height:100%;min-height:200px;background-color:var(--color-bg, #f8f9fa);border-radius:var(--radius-md, 6px);overflow:hidden}.timeline-scene-viewer canvas{display:block;width:100%!important;height:100%!important}.timeline-scene-viewer__label{position:absolute;top:8px;left:8px;padding:2px 8px;font-size:.6875rem;font-weight:500;color:var(--color-text-muted, #6b7280);background-color:#ffffffd9;border-radius:var(--radius-sm, 4px);pointer-events:none;z-index:1}.scheduling-page{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.scheduling-page__header{display:flex;align-items:center;justify-content:space-between;height:52px;min-height:52px;padding:0 1rem;border-bottom:1px solid var(--color-border);background-color:var(--color-surface)}.scheduling-page__header-left{display:flex;align-items:center;gap:var(--space-sm, .5rem)}.scheduling-page__back-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm, 4px);border:none;background:none;color:var(--color-text-muted);cursor:pointer;transition:background-color .15s,color .15s}.scheduling-page__back-btn:hover{background-color:var(--color-bg);color:var(--color-text)}.scheduling-page__title{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.scheduling-page__nav{display:flex;align-items:center;gap:var(--space-xs, .25rem)}.scheduling-page__nav-link{padding:4px 12px;font-size:.75rem;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.scheduling-page__nav-link:hover{background-color:var(--color-bg);border-color:var(--color-primary);color:var(--color-text)}.scheduling-page__nav-link--active{background-color:var(--color-primary-light, #e8f4ff);border-color:var(--color-primary);color:var(--color-primary);cursor:default}.scheduling-page__content{flex:1;display:flex;flex-direction:column;overflow:hidden;width:100%}.scheduling-page__gantt-placeholder,.scheduling-page__timeline-placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.875rem}.scheduling-page__gantt-placeholder{flex:1;border-bottom:1px solid var(--color-border)}.scheduling-page__gantt-container{flex:1;overflow:hidden;border-bottom:1px solid var(--color-border)}.scheduling-page__timeline-placeholder{height:80px;min-height:80px}.scheduling-page__timeline-container{padding:.75rem 1rem;border-top:1px solid var(--color-border);background-color:var(--color-surface)}.scheduling-page__scene-viewer-container{height:250px;min-height:200px;border-top:1px solid var(--color-border);background-color:var(--color-surface)}.scheduling-page__assignment-container{border-top:1px solid var(--color-border);overflow:hidden}@media(max-width:768px){.scheduling-page__header{height:44px;min-height:44px;padding:0 .75rem}.scheduling-page__title{max-width:140px;font-size:.8125rem}.scheduling-page__nav-link{padding:2px 8px;font-size:.6875rem}}.project-overview-header{margin-bottom:var(--space-xl)}.project-overview-header h1{margin-top:var(--space-sm);margin-bottom:4px}.project-overview-desc{margin:0;font-size:.9375rem;color:var(--color-text-secondary)}.project-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.project-nav-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.project-nav-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.project-nav-card-icon{width:44px;height:44px;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:#1a73e8;display:flex;align-items:center;justify-content:center}.project-nav-card-title{font-size:1.0625rem;font-weight:600;margin:0}.project-nav-card-desc{font-size:.875rem;color:var(--color-text-secondary);margin:0}@media(max-width:768px){.project-overview-grid{grid-template-columns:1fr}}.project-overview-drawings{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.project-overview-drawings-title{font-size:1.25rem;font-weight:600;margin:0 0 var(--space-lg) 0}.project-overview-drawing-group{margin-bottom:var(--space-lg)}.project-overview-drawing-group-title{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-sm) 0}.project-overview-drawing-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-sm)}.project-overview-drawing-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s,border-color .15s}.project-overview-drawing-item:hover{background-color:var(--color-primary-light, rgba(26, 115, 232, .06));border-color:var(--color-primary)}.project-overview-drawing-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.project-overview-drawing-icon{flex-shrink:0;color:var(--color-text-secondary)}.project-overview-drawing-name{font-size:.8125rem;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svsp{width:280px;flex-shrink:0;border-left:1px solid var(--color-border);background-color:var(--color-surface);padding:var(--space-sm);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.svsp-title{font-size:.875rem;font-weight:600;margin:0}.svsp-tabs{display:flex;gap:2px;background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03));border-radius:var(--radius-sm);padding:2px}.svsp-tab{flex:1;padding:var(--space-xs);font-size:.75rem;font-weight:500;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer}.svsp-tab--active{background-color:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #00000014}.svsp-section{display:flex;flex-direction:column;gap:var(--space-xs)}.svsp-form-row{display:flex;flex-direction:column;gap:2px}.svsp-label{font-size:.6875rem;font-weight:500;color:var(--color-text-muted)}.svsp-select,.svsp-text-input{min-height:28px;padding:2px var(--space-xs);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.svsp-select:focus,.svsp-text-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.svsp-color-input{display:flex;gap:var(--space-xs);align-items:center;min-width:0;flex:1}.svsp-color-picker{width:28px;min-width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.svsp-apply-btn{margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.svsp-apply-btn:hover:not(:disabled){opacity:.9}.svsp-apply-btn:disabled{opacity:.4;cursor:not-allowed}.svsp-rules{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.svsp-rules-title{font-size:.6875rem;font-weight:600;color:var(--color-text-muted)}.svsp-rules-list{list-style:none;margin:var(--space-xs) 0 0 0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto}.svsp-rule-item{display:flex;align-items:center;gap:4px;padding:2px 4px;font-size:.6875rem;font-family:var(--font-mono);background-color:var(--color-bg-subtle, rgba(0, 0, 0, .02));border-radius:var(--radius-sm)}.svsp-rule-class{color:var(--color-primary);font-weight:600}.svsp-rule-prop{color:var(--color-text-muted)}.svsp-rule-val{color:var(--color-text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svsp-rule-remove{flex-shrink:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:.6rem;border:none;background:none;color:var(--color-text-muted);border-radius:50%;cursor:pointer}.svsp-rule-remove:hover{background-color:var(--color-danger, #e53e3e);color:#fff}.svsp-hint{font-size:.75rem;color:var(--color-text-muted);font-style:italic;margin:var(--space-sm) 0}.svsp-selected-info{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);background-color:var(--color-primary-light, rgba(26, 115, 232, .06));border-radius:var(--radius-sm);font-size:.7rem}.svsp-selected-label{color:var(--color-text-muted)}.svsp-selected-id{font-family:var(--font-mono);font-weight:500;color:var(--color-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svsp-current-styles{gap:0}.svsp-class-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.svsp-class-item{border-bottom:1px solid var(--color-border)}.svsp-class-item:last-child{border-bottom:none}.svsp-class-header{display:flex;align-items:center;gap:4px;width:100%;padding:6px 4px;border:none;background:none;cursor:pointer;text-align:left;font-size:.75rem;color:var(--color-text);border-radius:var(--radius-sm)}.svsp-class-header:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.svsp-class-header--expanded{background-color:var(--color-primary-light, rgba(26, 115, 232, .05))}.svsp-class-toggle{font-size:.6rem;opacity:.5;width:12px;flex-shrink:0}.svsp-class-name{font-family:var(--font-mono);font-weight:600;color:var(--color-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svsp-class-count{font-size:.65rem;color:var(--color-text-muted);flex-shrink:0}.svsp-class-swatch{width:12px;height:12px;border-radius:2px;border:1px solid var(--color-border);flex-shrink:0}.svsp-class-styles{padding:4px 4px 8px 16px;display:flex;flex-direction:column;gap:3px}.svsp-inline-row{display:flex;align-items:center;gap:6px}.svsp-inline-prop{font-size:.65rem;font-family:var(--font-mono);color:var(--color-text-muted);width:80px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.svsp-inline-value{flex:1;min-width:0;display:flex;align-items:center}.svsp-text-input--compact,.svsp-select--compact{min-height:22px;padding:1px 4px;font-size:.6875rem}.svsp-refresh-btn{margin-top:var(--space-sm);padding:4px 8px;font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;align-self:flex-start}.svsp-refresh-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03));color:var(--color-text)}.svg-annot-panel{position:absolute;bottom:var(--space-md);left:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);max-width:300px;z-index:20}.svg-annot-status{padding:var(--space-xs) var(--space-sm);font-size:.75rem;color:#fff;background-color:#000000bf;border-radius:var(--radius-sm);white-space:nowrap}.svg-annot-edit-overlay{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background-color:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-sm);box-shadow:0 2px 8px #00000026}.svg-annot-edit-label{font-size:.7rem;color:var(--color-text-muted);white-space:nowrap}.svg-annot-edit-input{flex:1;min-height:26px;padding:2px var(--space-xs);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.svg-annot-edit-input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.svg-annot-edit-ok{padding:2px 8px;font-size:.7rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.svg-annot-list{padding:var(--space-xs) var(--space-sm);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 1px 4px #00000014}.svg-annot-list-title{font-size:.6875rem;font-weight:600;color:var(--color-text-muted)}.svg-annot-list-items{list-style:none;margin:var(--space-xs) 0 0 0;padding:0;max-height:150px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.svg-annot-list-item{display:flex;align-items:center;gap:4px;padding:2px 4px;font-size:.7rem;border-radius:var(--radius-sm)}.svg-annot-list-item:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.svg-annot-list-type{flex-shrink:0;font-size:.8rem}.svg-annot-list-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.svg-annot-list-edit,.svg-annot-list-delete{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;border:none;background:none;color:var(--color-text-muted);border-radius:50%;cursor:pointer}.svg-annot-list-edit:hover{background-color:var(--color-primary-light, rgba(26, 115, 232, .1));color:var(--color-primary)}.svg-annot-list-delete:hover{background-color:var(--color-danger, #e53e3e);color:#fff}.cad-viewer-page{display:flex;flex-direction:column;height:100vh;overflow:hidden;background-color:var(--color-bg)}.cad-viewer-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0;z-index:10}.cad-viewer-back-btn{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:.8125rem;color:var(--color-text-secondary);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.cad-viewer-back-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-viewer-title{font-size:1rem;font-weight:600;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cad-viewer-header-actions{display:flex;align-items:center;gap:var(--space-sm)}.cad-viewer-zoom-label{font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-muted);min-width:40px;text-align:right}.cad-viewer-toolbar{display:flex;align-items:center;gap:2px;padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0}.cad-viewer-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer;transition:background-color .1s,color .1s}.cad-viewer-tool-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .05));color:var(--color-text)}.cad-viewer-tool-btn--active{background-color:var(--color-primary-light, rgba(26, 115, 232, .1));color:var(--color-primary)}.cad-viewer-toolbar-separator{width:1px;height:20px;background-color:var(--color-border);margin:0 var(--space-xs)}.cad-viewer-content{display:flex;flex:1;overflow:hidden;position:relative}.cad-viewer-canvas{flex:1;position:relative;overflow:hidden;background-color:#f8f9fa}[data-theme=dark] .cad-viewer-canvas{background-color:#1a1a2e}.cad-viewer-svg-wrapper{position:absolute;top:0;left:0;will-change:transform}.cad-viewer-svg-wrapper svg{display:block;background:#fff;box-shadow:0 2px 8px #0000001a}[data-theme=dark] .cad-viewer-svg-wrapper svg{background:#1e1e2e}.cad-viewer-svg-wrapper .cad-viewer-selected{outline:2px solid #1a73e8;outline-offset:1px;filter:drop-shadow(0 0 3px rgba(26,115,232,.5))}.cad-viewer-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--color-text-muted)}.cad-viewer-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);color:var(--color-text-secondary)}.cad-viewer-error p{margin:0;font-size:.875rem}.cad-viewer-properties{width:260px;flex-shrink:0;border-left:1px solid var(--color-border);background-color:var(--color-surface);padding:var(--space-md);overflow-y:auto}.cad-viewer-properties-title{font-size:.8125rem;font-weight:600;margin:0 0 var(--space-sm) 0;color:var(--color-text)}.cad-viewer-properties-list{margin:0;display:grid;grid-template-columns:auto 1fr;gap:var(--space-xs) var(--space-sm);font-size:.75rem}.cad-viewer-properties-list dt{font-weight:500;color:var(--color-text-muted);white-space:nowrap}.cad-viewer-properties-list dd{margin:0;color:var(--color-text);word-break:break-all}.cad-viewer-prop-mono{font-family:var(--font-mono);font-size:.6875rem}.cad-viewer-deselect-btn{margin-top:var(--space-md);width:100%;padding:var(--space-xs) var(--space-sm);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer}.cad-viewer-deselect-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-viewer-save-btn{padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer}.cad-viewer-save-btn:hover:not(:disabled){opacity:.9}.cad-viewer-save-btn:disabled{opacity:.5;cursor:not-allowed}.cad-viewer-toolbar-row{display:flex;align-items:center;border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0}.cad-viewer-toolbar-row .cad-viewer-toolbar{border-bottom:none;flex:1}.cad-viewer-panel-toggles{display:flex;align-items:center;gap:2px;padding:0 var(--space-sm);border-left:1px solid var(--color-border)}.cad-viewer-canvas-area{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column}.cad-viewer-canvas-area .cad-viewer-canvas{flex:1}.cad-panel{width:260px;flex-shrink:0;border-left:1px solid var(--color-border);background-color:var(--color-surface);padding:var(--space-sm);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.cad-panel--layers{border-left:none;border-right:1px solid var(--color-border)}.cad-panel-header{display:flex;align-items:center;justify-content:space-between}.cad-panel-title{font-size:.8125rem;font-weight:600;margin:0}.cad-panel-empty{font-size:.75rem;color:var(--color-text-muted);font-style:italic;margin:var(--space-sm) 0}.cad-panel-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;color:var(--color-text-secondary);cursor:pointer}.cad-panel-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-panel-btn--sm{min-height:24px;padding:2px 6px;font-size:.6875rem}.cad-panel-btn--primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.cad-panel-btn--primary:hover{opacity:.9}.cad-panel-btn--danger{color:var(--color-danger, #e53e3e);border-color:var(--color-danger, #e53e3e)}.cad-panel-btn--danger:hover{background-color:var(--color-danger, #e53e3e);color:#fff}.cad-layers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.cad-layer-item{display:flex;align-items:center;gap:4px;padding:3px 4px;border-radius:var(--radius-sm);font-size:.75rem}.cad-layer-item:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-layer-vis-btn,.cad-layer-lock-btn{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}.cad-layer-vis-btn--hidden{opacity:.4}.cad-layer-lock-btn--locked{color:var(--color-danger, #e53e3e)}.cad-layer-color{width:18px;height:18px;padding:0;border:1px solid var(--color-border);border-radius:2px;cursor:pointer;flex-shrink:0}.cad-layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cad-layer-count{font-size:.65rem;color:var(--color-text-muted);flex-shrink:0}.cad-markups-filters{display:flex;gap:var(--space-xs)}.cad-markups-search,.cad-markups-type-filter{flex:1;min-height:26px;padding:2px var(--space-xs);font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.cad-markups-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto}.cad-markup-item{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:var(--radius-sm);font-size:.7rem;cursor:pointer}.cad-markup-item:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-markup-item--selected{background-color:var(--color-primary-light, rgba(26, 115, 232, .08));outline:1px solid var(--color-primary)}.cad-markup-item--hidden{opacity:.5}.cad-markup-icon{font-size:.85rem;flex-shrink:0;width:18px;text-align:center}.cad-markup-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cad-markup-author{font-size:.6rem;color:var(--color-text-muted);flex-shrink:0}.cad-markup-actions{display:flex;gap:2px;flex-shrink:0}.cad-markup-action-btn{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:.6rem;border:none;background:none;color:var(--color-text-muted);border-radius:50%;cursor:pointer}.cad-markup-action-btn:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .05))}.cad-markup-action-btn--delete:hover{background-color:var(--color-danger, #e53e3e);color:#fff}.cad-views-save-form{display:flex;gap:var(--space-xs)}.cad-views-name-input{flex:1;min-height:28px;padding:2px var(--space-xs);font-size:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.cad-views-current{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);font-size:.65rem;background-color:var(--color-bg-subtle, rgba(0, 0, 0, .02));border-radius:var(--radius-sm)}.cad-views-current-label{color:var(--color-text-muted);font-weight:500}.cad-views-current-value{font-family:var(--font-mono);color:var(--color-text)}.cad-views-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.cad-view-item{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.cad-view-info{display:flex;flex-direction:column;gap:1px;min-width:0}.cad-view-name{font-size:.75rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cad-view-meta{font-size:.6rem;color:var(--color-text-muted)}.cad-view-actions{display:flex;gap:4px;flex-shrink:0}.cad-style-toolbar{display:flex;align-items:center;gap:2px;padding:4px var(--space-sm);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0;flex-wrap:wrap;min-height:36px}.cad-style-group{display:flex;align-items:center;gap:3px}.cad-style-label{font-size:.6rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.cad-style-color-picker{width:24px;min-width:24px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.cad-style-select{min-height:24px;padding:1px 4px;font-size:.65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text);max-width:90px}.cad-style-select--sm{max-width:60px}.cad-style-number{width:44px;min-height:24px;padding:1px 4px;font-size:.65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.cad-style-range{width:50px;height:16px;cursor:pointer}.cad-style-fill-row{display:flex;align-items:center;gap:3px}.cad-style-checkbox-label{display:flex;align-items:center;gap:2px;font-size:.6rem;color:var(--color-text-muted);cursor:pointer}.cad-style-checkbox-label input[type=checkbox]{width:12px;height:12px;margin:0}.cad-style-separator{width:1px;height:20px;background-color:var(--color-border);margin:0 4px;flex-shrink:0}.cad-tool-palette{width:200px;flex-shrink:0;border-right:1px solid var(--color-border);background-color:var(--color-surface);overflow-y:auto;padding:var(--space-xs) 0}.cad-tool-palette-group{border-bottom:1px solid var(--color-border)}.cad-tool-palette-group:last-child{border-bottom:none}.cad-tool-palette-group-header{display:flex;align-items:center;gap:4px;width:100%;padding:6px var(--space-sm);border:none;background:none;cursor:pointer;font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-align:left}.cad-tool-palette-group-header:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-tool-palette-group-header--active{color:var(--color-primary)}.cad-tool-palette-group-toggle{font-size:.6rem;width:10px;opacity:.5}.cad-tool-palette-group-label{flex:1}.cad-tool-palette-items{padding:2px 0}.cad-tool-palette-item{display:flex;align-items:center;gap:6px;width:100%;padding:4px var(--space-sm) 4px calc(var(--space-sm) + 14px);border:none;background:none;cursor:pointer;font-size:.7rem;color:var(--color-text);text-align:left;border-radius:0}.cad-tool-palette-item:hover{background-color:var(--color-bg-subtle, rgba(0, 0, 0, .04))}.cad-tool-palette-item--active{background-color:var(--color-primary-light, rgba(26, 115, 232, .1));color:var(--color-primary);font-weight:500}.cad-tool-palette-icon{width:18px;text-align:center;font-size:.85rem;flex-shrink:0}.cad-tool-palette-label{flex:1}.cad-tool-palette-shortcut{font-size:.6rem;font-family:var(--font-mono);color:var(--color-text-muted);opacity:.7;flex-shrink:0}.cad-page-switcher{display:flex;align-items:center;gap:var(--space-xs);padding:3px var(--space-sm);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0;overflow-x:auto}.cad-page-switcher-label{font-size:.7rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.cad-page-switcher-select{min-height:24px;padding:2px 6px;font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.cad-page-switcher-count{font-size:.65rem;color:var(--color-text-muted);font-family:var(--font-mono)}.cad-page-switcher-tab{padding:4px 10px;font-size:.7rem;font-weight:500;border:none;border-bottom:2px solid transparent;background:none;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.cad-page-switcher-tab:hover{color:var(--color-text);background-color:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.cad-page-switcher-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.cad-panel--compare{width:280px}.cad-compare-input-group{display:flex;gap:var(--space-xs)}.cad-compare-url-input{flex:1;min-height:26px;padding:2px var(--space-xs);font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);color:var(--color-text)}.cad-compare-file-group{margin-top:var(--space-xs)}.cad-compare-file-label{display:flex;flex-direction:column;gap:3px;font-size:.7rem;color:var(--color-text-muted)}.cad-compare-file-input{font-size:.65rem}.cad-compare-error{font-size:.7rem;color:var(--color-danger, #e53e3e);margin:var(--space-xs) 0}.cad-compare-results{display:flex;flex-direction:column;gap:var(--space-sm)}.cad-compare-summary{display:flex;flex-direction:column;gap:4px}.cad-compare-stat{display:flex;align-items:center;gap:6px;font-size:.7rem}.cad-compare-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cad-compare-toggle{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--color-text-muted);cursor:pointer}.cad-compare-total{font-size:.65rem;color:var(--color-text-muted);margin:0}.cad-viewer-overlays-wrapper{position:absolute;top:0;left:0;pointer-events:none;will-change:transform}.cad-viewer-overlays-wrapper svg{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.cad-viewer-text-input-overlay{position:absolute;z-index:100;display:flex;align-items:center}.cad-viewer-text-input{min-width:150px;padding:4px 8px;font-size:.8rem;font-family:sans-serif;border:2px solid var(--color-primary);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);box-shadow:0 2px 8px #00000026;outline:none}.cad-viewer-text-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1a73e833}.cad-export-menu{position:relative;display:inline-flex}.cad-export-dropdown{position:absolute;top:100%;right:0;z-index:1000;min-width:220px;margin-top:4px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md, 6px);box-shadow:0 4px 16px #00000026;padding:4px 0}[data-theme=dark] .cad-export-dropdown{background:#2a2a3e;border-color:#444}.cad-export-dropdown-header{padding:8px 12px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary, #666)}.cad-export-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--color-text, #333);font-size:13px;text-align:left;cursor:pointer;transition:background-color .1s}.cad-export-dropdown-item:hover{background-color:var(--color-hover, #f0f0f0)}[data-theme=dark] .cad-export-dropdown-item:hover{background-color:#383850}.cad-export-item-icon{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:20px;font-size:10px;font-weight:700;border-radius:3px;background:var(--color-primary, #1a73e8);color:#fff}.cad-export-item-label{flex:1}.cad-export-dropdown-divider{height:1px;margin:4px 8px;background:var(--color-border, #e0e0e0)}[data-theme=dark] .cad-export-dropdown-divider{background:#444}.cad-export-dropdown-error{padding:6px 12px;font-size:12px;color:#e53935}.cad-export-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:cad-spin .6s linear infinite}@keyframes cad-spin{to{transform:rotate(360deg)}}.cad-stamp-selector{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e0e0e0)}[data-theme=dark] .cad-stamp-selector{background:#2a2a3e;border-color:#444}.cad-stamp-option{display:inline-flex;align-items:center;padding:3px 6px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer;transition:background-color .1s,border-color .1s}.cad-stamp-option:hover{background:var(--color-hover, #f0f0f0)}[data-theme=dark] .cad-stamp-option:hover{background:#383850}.cad-stamp-option--active{background:var(--color-hover, #e8f0fe);border-color:var(--color-primary, #1a73e8)}[data-theme=dark] .cad-stamp-option--active{background:#2d3a5e}.cad-stamp-option-badge{display:inline-block;padding:2px 6px;font-size:9px;font-weight:700;letter-spacing:.3px;border:1.5px solid currentColor;border-radius:3px;white-space:nowrap}.profile-page{max-width:960px;margin:0 auto;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl);min-height:100vh}.profile-page__header{display:flex;align-items:center;justify-content:space-between}.profile-page__header h1{font-size:1.75rem}.profile-page__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-sm);color:var(--color-text-muted)}.profile-page__spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:profile-spin .8s linear infinite}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-page__section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.profile-page__section-title{font-size:1.25rem;margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.profile-page__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.profile-page__grid .form-group--full{grid-column:1 / -1}.profile-page__editor-container{position:relative}.profile-page__rich-editor{min-height:160px;max-height:400px;overflow-y:auto;padding:.75rem;font-size:.9375rem;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);outline:none;line-height:1.6;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.profile-page__rich-editor:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.profile-page__rich-editor.error{border-color:var(--color-error)}.profile-page__editor-toolbar{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xs);padding:var(--space-xs);background-color:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);flex-wrap:wrap}.profile-page__editor-toolbar button{padding:.25rem .5rem;font-size:.8125rem;font-weight:600;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.profile-page__editor-toolbar button:hover{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.profile-page__char-count{font-size:.75rem;color:var(--color-text-muted);text-align:right;margin-top:var(--space-xs)}.profile-page__char-count--over{color:var(--color-error);font-weight:500}.profile-page__audio-section{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-page__audio-player{width:100%;border-radius:var(--radius-md)}.profile-page__file-input-wrapper{display:flex;align-items:center;gap:var(--space-sm)}.profile-page__file-input-wrapper input[type=file]{font-size:.875rem}.profile-page__file-input-wrapper{flex-direction:column;align-items:flex-start}.profile-page__file-hint,.profile-page__upload-status{font-size:.75rem;color:var(--text-muted, #888)}.profile-page__avatar-row{display:flex;align-items:center;gap:var(--space-md)}.profile-page__avatar-preview{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--border-color, #ddd)}.profile-page__avatar-placeholder{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-2, #e8e8e8);color:var(--text-muted, #666);font-size:1.5rem;font-weight:600;border:1px solid var(--border-color, #ddd)}.profile-page__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.profile-page__tag{display:inline-flex;align-items:center;gap:4px;padding:.25rem .5rem;font-size:.8125rem;background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm)}.profile-page__tag-remove{background:none;border:none;cursor:pointer;color:var(--color-primary);font-size:1rem;line-height:1;padding:0}.profile-page__tag-remove:hover{color:var(--color-error)}.profile-page__projects-list{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-page__project-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.profile-page__project-name{font-weight:500;color:var(--color-text)}.profile-page__project-role{font-size:.8125rem;color:var(--color-text-secondary);background-color:var(--color-surface);padding:.125rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.profile-page__pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:var(--space-md)}.profile-page__pagination button{padding:.375rem .75rem;font-size:.8125rem}.profile-page__pagination-info{font-size:.8125rem;color:var(--color-text-secondary)}.profile-page__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.profile-page__empty{text-align:center;color:var(--color-text-muted);padding:var(--space-lg);font-size:.875rem}@media(max-width:768px){.profile-page{padding:var(--space-md) var(--space-sm)}.profile-page__grid{grid-template-columns:1fr}.profile-page__header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.profile-page__project-item{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}.materials-management{display:flex;flex-direction:column;gap:1.5rem}.materials-management__header{display:flex;align-items:center;justify-content:space-between}.materials-management__title{margin:0;font-size:1.25rem;font-weight:600}.materials-management__loading{padding:2rem;text-align:center;color:var(--color-text-secondary, #6b7280)}.materials-management__error{padding:.75rem 1rem;background-color:var(--color-error-bg, #fef2f2);border:1px solid var(--color-error-border, #fecaca);border-radius:var(--radius-md, 6px);color:var(--color-error-text, #dc2626);font-size:.875rem}.materials-form{background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px);padding:1.5rem}.materials-form__title{margin:0 0 1rem;font-size:1rem;font-weight:600}.materials-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.materials-form__color-group{display:flex;align-items:center;gap:.5rem}.materials-form__color-value{font-size:.8rem;color:var(--color-text-secondary, #6b7280);font-family:monospace}.materials-form__actions{display:flex;gap:.75rem;margin-top:1.25rem}.materials-table-wrapper{overflow-x:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px)}.materials-table{width:100%;border-collapse:collapse;font-size:.875rem}.materials-table th,.materials-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.materials-table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #6b7280);background-color:var(--color-surface-alt, #f9fafb)}.materials-table tbody tr:hover{background-color:var(--color-surface-alt, #f9fafb)}.materials-table__row--editing{background-color:var(--color-primary-bg, #eff6ff)!important}.materials-table__name{font-weight:500}.materials-table__color-swatch{display:inline-block;width:24px;height:24px;border-radius:4px;border:1px solid var(--color-border, #e5e7eb);vertical-align:middle}.materials-table__actions{display:flex;gap:.5rem;white-space:nowrap}.materials-table__empty{text-align:center;padding:2rem!important;color:var(--color-text-secondary, #6b7280)}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group--full{grid-column:1 / -1}.form-label{font-size:.8125rem;font-weight:500;color:var(--color-text-primary, #374151)}.form-input{padding:.5rem .75rem;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, 6px);font-size:.875rem;background-color:var(--color-surface, #ffffff);color:var(--color-text-primary, #1f2937);transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--color-primary, #2563eb);box-shadow:0 0 0 2px var(--color-primary-ring, rgba(37, 99, 235, .15))}.form-input--color{width:48px;height:36px;padding:2px;cursor:pointer}.form-input--textarea{font-family:monospace;font-size:.8125rem;resize:vertical;min-height:120px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-md, 6px);border:1px solid transparent;cursor:pointer;transition:background-color .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary, #2563eb);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover, #1d4ed8)}.btn--secondary{background-color:transparent;border-color:var(--color-border, #d1d5db);color:var(--color-text-primary, #374151)}.btn--secondary:hover:not(:disabled){background-color:var(--color-surface-alt, #f3f4f6)}.btn--ghost{background-color:transparent;color:var(--color-primary, #2563eb);padding:.25rem .5rem}.btn--ghost:hover:not(:disabled){background-color:var(--color-primary-bg, #eff6ff)}.btn--danger{background-color:transparent;color:var(--color-error-text, #dc2626);padding:.25rem .5rem}.btn--danger:hover:not(:disabled){background-color:var(--color-error-bg, #fef2f2)}.btn--sm{font-size:.8125rem;padding:.25rem .5rem}.lo-explorer{display:flex;flex-direction:column;gap:1.25rem}.lo-explorer__loading{padding:2rem;text-align:center;color:var(--color-text-secondary, #6b7280)}.lo-explorer__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.lo-explorer__title{margin:0;font-size:1.25rem;font-weight:600}.lo-explorer__count{font-size:.875rem;font-weight:400;color:var(--color-text-secondary, #6b7280);margin-left:.5rem}.lo-explorer__header-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.lo-explorer__error{padding:.75rem 1rem;background-color:var(--color-error-bg, #fef2f2);border:1px solid var(--color-error-border, #fecaca);border-radius:var(--radius-md, 6px);color:var(--color-error-text, #dc2626);font-size:.875rem}.lo-explorer__success{padding:.75rem 1rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-md, 6px);color:#16a34a;font-size:.875rem}.lo-filters{background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px);padding:1rem}.lo-filters__row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.lo-filters__search{flex:2;min-width:200px}.lo-filters__select{flex:1;min-width:140px}.lo-filters__input{flex:1;min-width:120px}.lo-filters__actions{display:flex;gap:.5rem;margin-top:.75rem}.lo-bulk-actions{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background-color:var(--color-primary-bg, #eff6ff);border:1px solid var(--color-primary, #2563eb);border-radius:var(--radius-md, 6px);font-size:.875rem;color:var(--color-primary, #2563eb);font-weight:500}.lo-form{background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px);padding:1.5rem}.lo-form__title{margin:0 0 1rem;font-size:1rem;font-weight:600}.lo-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.lo-form__grid{grid-template-columns:1fr}}.lo-form__file-name{font-size:.8125rem;color:var(--color-text-secondary, #6b7280);margin-top:.25rem}.lo-form__file-actions{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border, #e5e7eb)}.lo-form__file-label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6b7280)}.lo-form__actions{display:flex;gap:.75rem;margin-top:1.25rem}.lo-export-dropdown{position:relative;display:inline-block}.lo-export-dropdown__menu{display:none;position:absolute;top:100%;right:0;margin-top:.25rem;min-width:160px;background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);box-shadow:0 4px 12px #0000001a;z-index:50;overflow:hidden}.lo-export-dropdown:hover .lo-export-dropdown__menu,.lo-export-dropdown:focus-within .lo-export-dropdown__menu{display:block}.lo-export-dropdown__menu button{display:block;width:100%;padding:.5rem .75rem;font-size:.8125rem;text-align:left;background:none;border:none;cursor:pointer;color:var(--color-text-primary, #1f2937);transition:background-color .1s}.lo-export-dropdown__menu button:hover:not(:disabled){background-color:var(--color-surface-alt, #f3f4f6)}.lo-export-dropdown__menu button:disabled{color:var(--color-text-secondary, #9ca3af);cursor:not-allowed}.lo-table-wrapper{overflow-x:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px)}.lo-table{width:100%;border-collapse:collapse;font-size:.8125rem}.lo-table th,.lo-table td{padding:.5rem .625rem;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb);vertical-align:middle}.lo-table th{font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #6b7280);background-color:var(--color-surface-alt, #f9fafb);white-space:nowrap}.lo-table__checkbox-col{width:36px;text-align:center!important}.lo-table tbody tr:hover{background-color:var(--color-surface-alt, #f9fafb)}.lo-table__row--selected{background-color:var(--color-primary-bg, #eff6ff)!important}.lo-table__row--editing{background-color:#fefce8!important}.lo-table__thumbnail{width:64px;height:64px;object-fit:contain;border-radius:4px;border:1px solid var(--color-border, #e5e7eb);background-color:#f9fafb}.lo-table__no-thumb{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #9ca3af);background-color:#f9fafb;border-radius:4px;border:1px solid var(--color-border, #e5e7eb);font-size:.75rem}.lo-table__name{font-weight:500;max-width:200px}.lo-table__name div:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lo-table__id{font-size:.6875rem;color:var(--color-text-secondary, #9ca3af);font-family:monospace}.lo-table__dimensions{font-family:monospace;font-size:.75rem;white-space:nowrap}.lo-table__tags{max-width:180px}.lo-table__actions{white-space:nowrap}.lo-table__empty{text-align:center;padding:2rem!important;color:var(--color-text-secondary, #6b7280)}.lo-tag{display:inline-block;padding:.125rem .375rem;margin:.125rem;font-size:.6875rem;background-color:var(--color-surface-alt, #f3f4f6);border-radius:3px;color:var(--color-text-primary, #374151)}.lo-tag--more{color:var(--color-text-secondary, #6b7280);font-style:italic}.lo-visibility{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.6875rem;font-weight:500;text-transform:capitalize}.lo-visibility--public{background-color:#dcfce7;color:#15803d}.lo-visibility--team{background-color:#dbeafe;color:#1d4ed8}.lo-visibility--private{background-color:#f3f4f6;color:#6b7280}.lo-pagination{display:flex;align-items:center;justify-content:center;gap:1rem}.lo-pagination__info{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.lo-preview{background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg, 8px);overflow:hidden}.lo-preview__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border, #e5e7eb);background-color:var(--color-surface-alt, #f9fafb)}.lo-preview__title{margin:0;font-size:.9375rem;font-weight:600}.lo-preview__content{display:grid;grid-template-columns:1fr 280px;min-height:360px}@media(max-width:768px){.lo-preview__content{grid-template-columns:1fr}}.lo-preview__viewer{position:relative;min-height:320px;background-color:#1a1a2e;border-right:1px solid var(--color-border, #e5e7eb)}.lo-preview__canvas-wrapper{width:100%;height:100%;min-height:320px}.lo-preview__placeholder{display:flex;align-items:center;justify-content:center;height:100%;min-height:320px;color:#9ca3af;font-size:.875rem}.lo-preview__details{padding:1rem;display:flex;flex-direction:column;gap:.625rem;overflow-y:auto;max-height:400px}.lo-preview__detail-row{display:flex;flex-direction:column;gap:.125rem}.lo-preview__label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #6b7280)}.lo-preview__thumbnail-section{display:flex;flex-direction:column;gap:.375rem;margin-top:.5rem}.lo-preview__thumbnail-large{width:100%;max-width:240px;height:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:4px;background-color:#f9fafb}.lo-sort-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .75rem;background-color:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px)}.lo-sort-bar__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #6b7280);margin-right:.25rem}.lo-sort-bar__btn{padding:.25rem .625rem;font-size:.75rem;font-weight:500;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #d1d5db);border-radius:4px;cursor:pointer;color:var(--color-text-primary, #374151);transition:background-color .1s,border-color .1s}.lo-sort-bar__btn:hover:not(:disabled){background-color:var(--color-surface-alt, #f3f4f6);border-color:var(--color-text-secondary, #9ca3af)}.lo-sort-bar__btn--active{background-color:var(--color-primary-bg, #eff6ff);border-color:var(--color-primary, #2563eb);color:var(--color-primary, #2563eb)}.lo-sort-bar__btn:disabled{opacity:.5;cursor:not-allowed}.lo-sort-bar__arrow{font-size:.625rem}.lo-sort-bar__loading{font-size:.75rem;color:var(--color-text-secondary, #9ca3af);font-style:italic;margin-left:.5rem}.lo-table__size{font-family:monospace;font-size:.75rem;white-space:nowrap;color:var(--color-text-secondary, #6b7280)}.lo-table__instances{font-family:monospace;font-size:.75rem;white-space:nowrap;text-align:center}.lo-form__svg-views{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border, #e5e7eb)}.lo-form__svg-views-title{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--color-text-primary, #374151)}.lo-form__svg-views-loading{font-size:.8125rem;color:var(--color-text-secondary, #6b7280);font-style:italic;margin:0}.lo-svg-views-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.lo-svg-view-card{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.625rem;background-color:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);transition:border-color .15s}.lo-svg-view-card:hover{border-color:var(--color-primary, #2563eb)}.lo-svg-view-card--missing{opacity:.5}.lo-svg-view-card--missing:hover{border-color:var(--color-border, #e5e7eb)}.lo-svg-view-card__label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #6b7280)}.lo-svg-view-card__img{width:100%;max-width:120px;height:90px;object-fit:contain;border-radius:3px;background-color:#fff;border:1px solid var(--color-border, #e5e7eb)}.lo-svg-view-card__placeholder{width:100%;max-width:120px;height:90px;display:flex;align-items:center;justify-content:center;font-size:.6875rem;color:var(--color-text-secondary, #9ca3af);background-color:#f3f4f6;border-radius:3px;border:1px dashed var(--color-border, #d1d5db)}.lo-svg-view-card__download{font-size:.6875rem;padding:.125rem .375rem}.global-settings-page{max-width:1100px;margin:0 auto;padding:var(--space-xl, 2rem);display:flex;flex-direction:column;gap:1.5rem;min-height:calc(100vh - 64px)}.global-settings-page__header{margin-bottom:.5rem}.global-settings-page__title{margin:0;font-size:1.5rem;font-weight:700}.global-settings-page__subtitle{margin:.25rem 0 0;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.global-settings-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border, #e5e7eb)}.global-settings-tabs__item{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:color .15s,border-color .15s}.global-settings-tabs__item:hover{color:var(--color-text-primary, #1f2937)}.global-settings-tabs__item--active{color:var(--color-primary, #2563eb);border-bottom-color:var(--color-primary, #2563eb)}.global-settings-content{flex:1}
