.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out;background:#fff;border-left:4px solid}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6}.toast-icon{flex-shrink:0}.toast-icon svg{width:20px;height:20px}.toast-message{flex:1;font-size:14px;color:#333;line-height:1.4}.toast-close{flex-shrink:0;background:none;border:none;padding:4px;cursor:pointer;color:#999;border-radius:4px;transition:background-color .2s,color .2s}.toast-close:hover{background-color:#0000000d;color:#666}.toast-close svg{width:16px;height:16px}@media (max-width: 480px){.toast-container{top:10px;right:10px;left:10px;max-width:none}}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--color-primary);color:#fff;font-weight:600;-webkit-user-select:none;user-select:none}.avatar-small{width:28px;height:28px;font-size:.75rem}.avatar-medium{width:36px;height:36px;font-size:.875rem}.avatar-large{width:48px;height:48px;font-size:1rem}.notification-bell-container{position:relative}.notification-bell{position:relative;background:none;border:none;cursor:pointer;padding:.5rem;font-size:1.25rem}.bell-icon{display:block}.badge{position:absolute;top:0;right:0;background:var(--color-error);color:#fff;font-size:.625rem;padding:.125rem .375rem;border-radius:999px;min-width:1.25rem;text-align:center}.notification-dropdown{position:absolute;top:100%;right:0;width:360px;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;margin-top:.5rem}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.dropdown-header h4{margin:0}.mark-all-btn{background:none;border:none;color:var(--color-primary);font-size:.75rem;cursor:pointer}.notification-list{max-height:400px;overflow-y:auto}.notification-item{display:flex;gap:.75rem;padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .2s}.notification-item:hover{background:var(--color-surface)}.notification-item.unread{background:#3b82f60d}.notification-icon{font-size:1.25rem;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-weight:500;font-size:.875rem;margin-bottom:.25rem}.notification-message{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-time{font-size:.625rem;color:var(--color-text-secondary);margin-top:.25rem}.dropdown-footer{padding:.5rem;text-align:center;border-top:1px solid var(--color-border)}.dropdown-footer button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.875rem}.empty-state{padding:2rem;text-align:center;color:var(--color-text-secondary)}.scope-bar{display:flex;align-items:center;gap:4px;padding:0 20px;height:36px;background:var(--color-surface, #f8faec);border-bottom:1px solid var(--color-border, #e2e8f0);font-size:13px;position:fixed;top:var(--navbar-height);left:0;right:0;z-index:99}.scope-dropdown{position:relative}.scope-btn{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--bg-primary, #fff);color:var(--text-primary, #1a1a2e);cursor:pointer;font-size:13px;transition:all .15s ease;max-width:200px}.scope-btn:hover{border-color:var(--primary-color, #6366f1);background:var(--bg-hover, #f1f5f9)}.scope-btn.selected{border-color:var(--primary-color, #6366f1);background:var(--primary-color-light, #eef2ff);color:var(--primary-color, #6366f1);font-weight:500}.scope-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.scope-separator{color:var(--text-muted, #94a3b8);font-size:12px;margin:0 2px}.scope-hint{color:var(--text-muted, #94a3b8);font-size:12px;font-style:italic;margin-left:8px}.scope-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;max-width:300px;max-height:280px;overflow-y:auto;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:0 4px 12px #0000001f;z-index:1000;padding:4px}.scope-dropdown-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-primary, #1a1a2e);cursor:pointer;border-radius:4px;font-size:13px;text-align:left;transition:background .1s ease}.scope-dropdown-item:hover{background:var(--bg-hover, #f1f5f9)}.scope-dropdown-item.active{background:var(--primary-color-light, #eef2ff);color:var(--primary-color, #6366f1);font-weight:500}.scope-project-code{font-weight:600;margin-right:8px;color:var(--primary-color, #6366f1);font-size:11px;text-transform:uppercase;min-width:36px}.scope-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-dropdown-loading,.scope-dropdown-empty{padding:12px;text-align:center;color:var(--text-muted, #94a3b8);font-size:13px}.navbar{position:fixed;top:0;left:0;right:0;height:var(--navbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100}.navbar-left{display:flex;align-items:center;gap:var(--spacing-sm)}.menu-toggle{display:none;padding:var(--spacing-xs);background:none;border:none;cursor:pointer;color:var(--color-text-primary);border-radius:4px}.menu-toggle:hover{background-color:var(--color-border)}.logo{display:flex;align-items:center;gap:var(--spacing-xs)}.logo-text{font-size:1.25rem;font-weight:700;color:var(--color-text-primary)}.navbar-center{position:relative}.project-dropdown{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;color:var(--color-text-primary)}.project-dropdown:hover{border-color:var(--color-primary)}.project-dropdown .project-name{font-weight:500}.project-dropdown .project-code{color:var(--color-text-secondary);font-size:.875rem}.dropdown-menu{position:absolute;top:100%;margin-top:var(--spacing-xs);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;overflow:hidden}.project-menu{right:0;left:0;max-height:300px;overflow-y:auto}.dropdown-item{display:flex;align-items:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;text-align:left;cursor:pointer;color:var(--color-text-primary)}.dropdown-item:hover{background-color:var(--color-surface)}.dropdown-item.active{background-color:var(--color-primary);color:#fff}.dropdown-item.active .project-code{color:#fffc}.dropdown-item.disabled{color:var(--color-text-secondary);cursor:default}.navbar-right{display:flex;align-items:center;gap:var(--spacing-sm);position:relative}.theme-toggle{padding:var(--spacing-xs);background:none;border:none;cursor:pointer;color:var(--color-text-primary);border-radius:50%}.theme-toggle:hover{background-color:var(--color-border)}.user-menu-trigger{padding:0;background:none;border:none;cursor:pointer}.user-menu{right:0;padding:var(--spacing-sm);min-width:240px}.user-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;color:var(--color-text-primary)}.user-email{font-size:.875rem;color:var(--color-text-secondary)}.user-organization{font-size:.75rem;color:var(--color-text-secondary);margin-top:2px}.role-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:4px}.role-badge--admin{background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary)}.role-badge--auditor{background-color:#10b9811a;color:#10b981}.role-badge--builder-admin{background-color:#3b82f61a;color:#3b82f6}.role-badge--pm{background-color:#8b5cf61a;color:#8b5cf6}.role-badge--engineer{background-color:#f59e0b1a;color:#f59e0b}.role-badge--contractor{background-color:#ef44441a;color:#ef4444}.organization-info{display:flex;align-items:center;padding:.5rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:6px}.organization-name{font-weight:500;color:var(--color-text-primary)}.menu-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-xs) 0}@media (max-width: 768px){.menu-toggle{display:flex}.logo-text,.project-dropdown .project-code{display:none}.navbar-center{flex:1;display:flex;justify-content:center}}.sidebar{position:fixed;top:var(--header-height, calc(var(--navbar-height) + var(--scopebar-height)));left:0;bottom:var(--footer-height);width:var(--sidebar-width);background-color:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:width .3s ease;z-index:90;overflow:hidden;overflow-x:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--spacing-sm);background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary)}.sidebar-toggle:hover{background-color:var(--color-border);color:var(--color-text-primary)}.sidebar-nav{flex:1;padding:var(--spacing-sm);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-secondary)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs);border-radius:6px;color:var(--color-text-secondary);text-decoration:none;transition:all .2s ease;overflow:hidden}.sidebar-item:hover{background-color:var(--color-border);color:var(--color-text-primary)}.sidebar-item.active{background-color:var(--color-primary);color:#fff}.sidebar-icon{display:flex;align-items:center;justify-content:center;min-width:20px}.sidebar-label{font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.coming-soon-badge{margin-left:auto;padding:2px 6px;font-size:.625rem;font-weight:600;text-transform:uppercase;background-color:var(--color-accent);color:#fff;border-radius:4px}.sidebar.collapsed .sidebar-label,.sidebar.collapsed .coming-soon-badge{display:none}.sidebar.collapsed .sidebar-item{justify-content:center;padding:var(--spacing-sm)}.sidebar-overlay{display:none}.sidebar-group{margin-bottom:8px}.sidebar-group-label{padding:4px 12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-notice{margin:8px;padding:10px 12px;background:var(--color-warning-light, #fff3cd);color:var(--color-warning, #856404);border-radius:6px;font-size:.8rem;font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .sidebar-notice{display:none}.sidebar-item--disabled{opacity:.4;pointer-events:none}@media (max-width: 768px){.sidebar{transform:translate(-100%);width:var(--sidebar-width)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:var(--sidebar-width)}.sidebar-toggle{display:none}.sidebar-overlay{display:block;position:fixed;top:var(--navbar-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:80}}.footer{position:fixed;bottom:0;left:0;right:0;height:var(--footer-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border);font-size:.875rem;color:var(--color-text-secondary);z-index:50}.copyright{font-weight:500}.version{font-size:.75rem}@media (max-width: 768px){.footer{display:none}}.app-layout{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-background)}.app-body{display:flex;flex:1;padding-top:var(--header-height, calc(var(--navbar-height) + var(--scopebar-height)))}.content-area{flex:1;padding:var(--spacing-md);margin-left:var(--sidebar-width);transition:margin-left .3s ease;min-height:calc(100vh - var(--header-height, calc(var(--navbar-height) + var(--scopebar-height))) - var(--footer-height))}.content-area.sidebar-collapsed{margin-left:var(--sidebar-collapsed)}@media (max-width: 768px){.content-area{margin-left:0;padding:var(--spacing-sm)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);padding:var(--spacing-md)}.login-container{width:100%;max-width:400px;background-color:var(--color-surface);border-radius:12px;padding:var(--spacing-lg);box-shadow:0 4px 20px #0000001a}.login-header{text-align:center;margin-bottom:var(--spacing-lg)}.login-logo{margin-bottom:var(--spacing-md)}.login-header h1{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.login-header p{color:var(--color-text-secondary)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-error{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-error);color:#fff;border-radius:6px;font-size:.875rem}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.form-group input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:6px;font-size:1rem;color:var(--color-text-primary);background-color:var(--color-background)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input::placeholder{color:var(--color-text-secondary)}.login-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.login-button:hover:not(:disabled){background-color:var(--color-primary-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.register-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background, #f5f5f5);padding:20px}.register-container{background:var(--color-surface, #fff);border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:40px;width:100%;max-width:480px}.register-header{text-align:center;margin-bottom:32px}.register-logo{margin-bottom:16px}.register-header h1{font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0 0 8px}.register-header p{color:var(--color-text-secondary, #6b7280);margin:0}.register-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary, #374151)}.form-group input{padding:12px 16px;border:1px solid var(--color-border, #d1d5db);border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled{background:var(--color-background, #f9fafb);cursor:not-allowed}.form-group input::placeholder{color:var(--color-text-secondary, #9ca3af)}.form-error{font-size:12px;color:#ef4444}.role-display{padding:16px;background:var(--color-background, #f9fafb);border-radius:8px}.role-badge{display:inline-block;padding:6px 12px;background:var(--color-primary, #3b82f6);color:#fff;border-radius:4px;font-size:14px;font-weight:500}.role-note{display:block;font-size:12px;color:var(--color-text-secondary, #6b7280);margin-top:8px}.register-button{width:100%;padding:14px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s;margin-top:8px}.register-button:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.register-button:disabled{opacity:.6;cursor:not-allowed}.register-footer{text-align:center;margin-top:24px;font-size:14px;color:var(--color-text-secondary, #6b7280)}.register-footer a{color:var(--color-primary, #3b82f6);text-decoration:none;font-weight:500}.register-footer a:hover{text-decoration:underline}.register-global-error{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;margin-bottom:20px}.register-error,.register-success{text-align:center;padding:40px 20px}.error-icon,.success-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 20px}.register-error h2,.register-success h2{font-size:20px;font-weight:600;margin:0 0 12px;color:var(--color-text-primary, #1f2937)}.register-error p,.register-success p{color:var(--color-text-secondary, #6b7280);margin:0 0 24px}.verify-email-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background, #f5f5f5);padding:20px}.verify-container{background:var(--color-surface, #fff);border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:40px;width:100%;max-width:420px;text-align:center}.verify-content{display:flex;flex-direction:column;align-items:center;gap:16px}.verify-content h2{font-size:20px;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0}.verify-content p{color:var(--color-text-secondary, #6b7280);margin:0;line-height:1.5}.loading-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:var(--color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.success-icon,.error-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}.success-icon{background:#f0fdf4;color:#16a34a}.error-icon{background:#fef2f2;color:#dc2626}.btn-primary{padding:12px 24px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;margin-top:8px}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.resend-section{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:16px}.resend-section input{padding:12px 16px;border:1px solid var(--color-border, #d1d5db);border-radius:8px;font-size:14px;text-align:center}.resend-section input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.resend-section .btn-primary{width:100%;margin-top:0}.dashboard-page{padding:var(--spacing-md)}.dashboard-header{margin-bottom:var(--spacing-lg)}.dashboard-header h1{font-size:1.875rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.dashboard-header p{color:var(--color-text-secondary)}.dashboard-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md)}.dashboard-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:var(--spacing-md)}.dashboard-card h3{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.info-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.info-row .label{color:var(--color-text-secondary);font-size:.875rem}.info-row .value{color:var(--color-text-primary);font-weight:500;font-size:.875rem}.permissions-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.no-permissions{color:var(--color-text-secondary);font-size:.875rem}.permission-badge{padding:2px 8px;background-color:var(--color-primary);color:#fff;border-radius:4px;font-size:.75rem;font-weight:500}.activity-table{background:var(--color-surface);border-radius:8px;overflow:hidden}.activity-table table{width:100%;border-collapse:collapse}.activity-table th{padding:1rem;text-align:left;background:var(--color-background);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.activity-table th:hover{background:var(--color-border)}.activity-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:500}.progress-cell{display:flex;align-items:center;gap:.5rem}.progress-bar{width:60px;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s}.pagination{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-top:1px solid var(--color-border);flex-wrap:wrap;gap:1rem}.pagination-info{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.pagination-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.pagination-controls select{padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background)}.pagination-controls button{padding:.5rem .75rem;border:1px solid var(--color-border);background:var(--color-background);border-radius:4px;cursor:pointer;transition:background var(--transition-fast)}.pagination-controls button:hover:not(:disabled){background:var(--color-surface)}.pagination-controls button:disabled{opacity:.5;cursor:not-allowed}.pagination-controls span{padding:0 .5rem;color:var(--color-text-secondary)}.empty-state{text-align:center;padding:2rem;color:var(--color-text-secondary)}.loading-spinner{padding:2rem;text-align:center;color:var(--color-text-secondary)}.activity-filters{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-surface);border-radius:8px 8px 0 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:1rem}.filter-left{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.search-input{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;min-width:250px;font-size:var(--font-size-sm)}.search-input:focus{outline:none;border-color:var(--color-primary)}.status-select{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);font-size:var(--font-size-sm)}.status-select:focus{outline:none;border-color:var(--color-primary)}.filter-select{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);font-size:var(--font-size-sm);min-width:120px}.filter-select:focus{outline:none;border-color:var(--color-primary)}.clear-btn{padding:.5rem 1rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm)}.clear-btn:hover{color:var(--color-text-primary)}.upload-btn{padding:.5rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-size:var(--font-size-sm);transition:background var(--transition-fast)}.upload-btn:hover{background:var(--color-primary-hover)}.excel-upload{padding:1rem;background:var(--color-surface);border-radius:8px}.excel-upload-disabled{padding:2rem;text-align:center;color:var(--color-text-secondary);background:var(--color-surface);border-radius:8px}.excel-upload-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:500;transition:background var(--transition-fast)}.btn-primary{background:var(--color-primary);color:#fff;border:none}.btn-secondary{background:var(--color-background);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface)}.file-input{display:none}.file-input-label{padding:.5rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;cursor:pointer;display:inline-block}.upload-error{margin-top:1rem;padding:.75rem;background:color-mix(in srgb,var(--color-error) 10%,var(--color-background));border:1px solid var(--color-error);border-radius:var(--border-radius);color:var(--color-error)}.upload-duplicate-warning{margin-top:1rem;padding:1rem;background:color-mix(in srgb,var(--color-warning) 10%,var(--color-background));border:1px solid var(--color-warning);border-radius:var(--border-radius)}.upload-duplicate-warning h4{margin:0 0 .5rem;color:var(--color-warning);display:flex;align-items:center;gap:.5rem}.upload-duplicate-warning p{margin:0;color:var(--color-text-primary)}.upload-duplicate-warning ul{margin:.5rem 0 0 1.5rem;padding:0;color:var(--color-text-secondary)}.upload-result{margin-top:1rem;padding:1rem;background:color-mix(in srgb,var(--color-success) 8%,var(--color-background));border:1px solid var(--color-success);border-radius:var(--border-radius)}.upload-result h4{margin:0 0 .5rem;color:var(--color-success)}.upload-result p{margin:.25rem 0;color:var(--color-text-primary)}.upload-errors{margin-top:.5rem;padding:.5rem;background:color-mix(in srgb,var(--color-error) 8%,var(--color-background));border-radius:var(--border-radius)}.upload-errors h5{margin:0 0 .5rem;color:var(--color-error)}.upload-errors ul{margin:.5rem 0 0 1.5rem;padding:0;color:var(--color-text-secondary)}.upload-duplicate-warning{margin-top:1rem;padding:1rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:4px}.upload-duplicate-warning h4{margin:0 0 .5rem;color:#92400e;display:flex;align-items:center;gap:.5rem}.upload-duplicate-warning p{margin:0;color:#b45309}.upload-duplicate-warning ul{margin:.5rem 0 0 1.5rem;padding:0;color:#92400e}.upload-duplicate-warning li{margin:.25rem 0;line-height:1.4}.upload-success{margin-top:1rem;padding:1rem;background:color-mix(in srgb,var(--color-success) 8%,var(--color-background));border:1px solid var(--color-success);border-radius:var(--border-radius)}.upload-success h4{margin:0 0 .5rem;color:var(--color-success)}.upload-success p{margin:.25rem 0;color:var(--color-text-primary)}.upload-actions-row{display:flex;gap:.5rem;margin-top:.5rem}.btn-refresh{padding:.5rem 1rem;background:var(--color-success);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:500}.btn-refresh:hover{background:color-mix(in srgb,var(--color-success) 85%,black)}.upload-result-container{margin-top:1rem;padding:1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 1px 3px #0000001a}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.result-summary{display:flex;gap:1rem;font-weight:500}.success-count{color:var(--color-success)}.skipped-count{color:var(--color-error)}.result-actions{display:flex;gap:.5rem;align-items:center}.error-list{background:color-mix(in srgb,var(--color-error) 8%,var(--color-background));border:1px solid var(--color-error);border-radius:var(--border-radius);padding:.75rem;margin-top:.5rem}.error-list ul{list-style:none;margin:0;padding:0}.error-list li{padding:6px 0;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.error-list li:last-child{border-bottom:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-background);border-radius:var(--border-radius-xl);width:90%;max-width:600px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease;border:1px solid var(--color-border)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#fff}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast)}.modal-close:hover{background:#ffffff4d}.modal-body{padding:1.5rem;overflow-y:auto;max-height:calc(80vh - 130px)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;background:var(--color-surface);border-top:1px solid var(--color-border)}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.summary-card{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:var(--border-radius-lg);background:var(--color-surface);border:2px solid}.summary-card.success{border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 10%,var(--color-background))}.summary-card.warning{border-color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 10%,var(--color-background))}.summary-card.info{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-background))}.summary-icon{font-size:1.75rem;font-weight:700}.summary-card.success .summary-icon{color:var(--color-success)}.summary-card.warning .summary-icon{color:var(--color-warning)}.summary-card.info .summary-icon{color:var(--color-primary)}.summary-text{display:flex;flex-direction:column}.summary-count{font-size:1.5rem;font-weight:700;line-height:1;color:var(--color-text-primary)}.summary-label{font-size:.75rem;color:var(--color-text-secondary);margin-top:2px}.error-section{background:color-mix(in srgb,var(--color-error) 8%,var(--color-background));border:1px solid var(--color-error);border-radius:var(--border-radius-lg);padding:1rem}.error-section h4{margin:0 0 .75rem;color:var(--color-error);display:flex;align-items:center;gap:.5rem;font-size:1rem}.error-icon{font-size:1.25rem}.error-table-container{max-height:200px;overflow-y:auto;border-radius:var(--border-radius);border:1px solid var(--color-error);background:var(--color-background)}.error-table{width:100%;border-collapse:collapse;font-size:.875rem}.error-table th{background:color-mix(in srgb,var(--color-error) 15%,var(--color-surface));color:var(--color-error);padding:.6rem .75rem;text-align:left;font-weight:600;position:sticky;top:0}.error-table td{padding:.6rem .75rem;border-bottom:1px solid var(--color-border);background:var(--color-background);color:var(--color-text-primary)}.error-table tbody tr:last-child td{border-bottom:none}.error-table .row-number{font-weight:700;color:var(--color-error);background:color-mix(in srgb,var(--color-error) 8%,var(--color-background));width:60px}.error-table .error-message{color:var(--color-text-primary);background:var(--color-background);line-height:1.5;word-wrap:break-word}.error-hint{margin:.75rem 0 0;color:var(--color-error);font-size:.875rem;font-style:italic}.success-message{display:flex;align-items:center;gap:.75rem;padding:1rem;background:color-mix(in srgb,var(--color-success) 12%,var(--color-background));border:1px solid var(--color-success);border-radius:var(--border-radius-lg);color:var(--color-success);font-weight:500}.success-icon{font-size:1.5rem}.warning-message{display:flex;align-items:center;gap:.75rem;padding:1rem;background:color-mix(in srgb,var(--color-warning) 12%,var(--color-background));border:1px solid var(--color-warning);border-radius:var(--border-radius-lg);color:var(--color-warning);font-weight:500}.warning-icon{font-size:1.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--color-background);border-radius:var(--border-radius-lg);width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:var(--font-size-lg);font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary);padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background var(--transition-fast)}.modal-close:hover{background:var(--color-surface);color:var(--color-text-primary)}.modal-body{padding:1.5rem;overflow-y:auto}.activities-page{padding:0}.page-header{padding:1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.page-header h1{margin:0;font-size:var(--font-size-2xl)}.project-info{margin:.5rem 0 0;color:var(--color-text-secondary)}.no-project-selected{padding:2rem;text-align:center;color:var(--color-text-secondary)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{background:var(--color-background);border-radius:8px;padding:1.25rem;border-top:3px solid var(--color-primary);box-shadow:0 1px 3px #0000001a;transition:transform .2s,box-shadow .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.card-value{font-size:2rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.25rem}.card-label{font-size:.875rem;color:var(--color-text-secondary)}.progress-chart{background:var(--color-surface);border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.progress-chart h3{margin:0 0 1rem;color:var(--color-text-primary);font-size:1.125rem}.custom-tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:10px 14px;box-shadow:0 2px 8px #00000026}.custom-tooltip p{margin:4px 0;color:var(--color-text-primary);font-size:.875rem}.custom-tooltip button{margin-top:8px;padding:6px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8125rem;pointer-events:auto}.custom-tooltip button:hover{background:var(--color-primary-hover)}.wbs-list-table-container{background:var(--color-surface);border-radius:8px;overflow-x:auto}.wbs-list-table{width:100%;border-collapse:collapse;font-size:.875rem}.wbs-list-table th,.wbs-list-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.wbs-list-table th{background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.wbs-list-table tbody tr:hover{background:var(--color-background)}.progress-cell{display:flex;align-items:center;gap:10px}.progress-bar{width:100px;height:10px;background:#cbd5e1;border-radius:5px;overflow:hidden;flex-shrink:0}[data-theme=dark] .progress-bar{background:#475569}.progress-fill{height:100%;background:var(--color-primary);border-radius:5px;transition:width .3s ease}.progress-text{font-size:.8125rem;font-weight:600;color:var(--color-text-primary);min-width:40px;text-align:center}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.view-btn{padding:.375rem .75rem;background:transparent;border:1px solid var(--color-border);border-radius:4px;cursor:pointer;font-size:.75rem;color:var(--color-text-secondary);transition:all .2s}.view-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.consolidated-view-page{padding:1.5rem}.consolidated-view-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.consolidated-view-page h1{margin:0;color:var(--color-text-primary);font-size:1.5rem}.consolidated-view-page .upload-btn{padding:.5rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500}.consolidated-view-page .upload-btn:hover{background:var(--color-primary-hover)}.no-project,.loading{display:flex;justify-content:center;align-items:center;height:200px;color:var(--color-text-secondary);font-size:1rem}.activities-section{margin-top:2rem;background:var(--color-surface);border-radius:8px;padding:1rem}.activities-section h3{margin:0 0 1rem;color:var(--color-text-primary);font-size:1.125rem}.activity-filters{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.activity-filters .search-input{flex:1;min-width:200px;padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;background:var(--color-background);color:var(--color-text-primary)}.activity-filters .search-input:focus{outline:none;border-color:var(--color-primary)}.activity-filters select{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;min-width:130px;background:var(--color-background);color:var(--color-text-primary)}.activity-filters select:focus{outline:none;border-color:var(--color-primary)}.activity-filters button{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.875rem}.activity-filters button:hover{background:var(--color-background);color:var(--color-text-primary)}.activity-table-container{max-height:400px;overflow-y:auto;border:1px solid var(--color-border);border-radius:6px}.activity-table{width:100%;border-collapse:collapse;font-size:.875rem}.activity-table th{background:var(--color-surface);color:var(--color-text-secondary);padding:.75rem 1rem;text-align:left;font-weight:600;position:sticky;top:0;border-bottom:2px solid var(--color-border)}.activity-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.activity-table tbody tr:hover{background:var(--color-surface)}.wbs-detail-header{padding:1.5rem;background:var(--color-surface, #fff);border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem}.wbs-info{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.wbs-info h2{margin:0;font-size:1.5rem;color:var(--color-text-primary, #1a1a1a)}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:500;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary, #1976d2)}.progress-summary{display:flex;gap:2rem;margin-bottom:1rem}.progress-item{flex:1}.progress-item label{display:block;font-size:.875rem;color:var(--color-text-secondary, #666);margin-bottom:.25rem}.progress-bar-container{height:8px;background:var(--color-border, #e0e0e0);border-radius:4px;overflow:hidden;margin-bottom:.25rem}.progress-bar{height:100%;background:var(--color-primary, #1976d2);border-radius:4px;transition:width .3s ease}.progress-bar.cost{background:var(--color-success, #4caf50)}.stats{display:flex;gap:1.5rem;font-size:.875rem;color:var(--color-text-secondary, #666)}.stats span{padding:.25rem .5rem;background:var(--color-background, #f5f5f5);border-radius:4px}.wbs-activity-table{background:var(--color-surface, #fff);border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem}.wbs-activity-table .filters{display:flex;gap:1rem;margin-bottom:1rem}.wbs-activity-table .filters input{flex:1;padding:.5rem 1rem;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;font-size:.875rem}.wbs-activity-table .filters select{padding:.5rem 1rem;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;font-size:.875rem;min-width:120px;background:var(--color-background);color:var(--color-text-primary)}.wbs-activity-table .filters button{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.875rem}.wbs-activity-table .filters button:hover{background:var(--color-background);color:var(--color-text-primary)}.wbs-activity-table table{width:100%;border-collapse:collapse}.wbs-activity-table th,.wbs-activity-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border, #e0e0e0)}.wbs-activity-table th{font-weight:600;color:var(--color-text-secondary, #666);font-size:.875rem;background:var(--color-background, #f9f9f9)}.wbs-activity-table tbody tr{cursor:pointer;transition:background-color .2s}.wbs-activity-table tbody tr:hover{background:var(--color-background, #f5f5f5)}.status-pending{color:#f59e0b;font-weight:500}.status-inprogress-ontime{color:#22c55e;font-weight:500}.status-inprogress-overdue{color:#ef4444;font-weight:500}.status-completed-ontime{color:#22c55e;font-weight:500}.status-completed-overdue{color:#ef4444;font-weight:500}.timeline-view{background:var(--color-surface, #fff);border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem}.zoom-controls{display:flex;gap:.5rem;margin-bottom:1rem}.zoom-controls button{padding:.5rem 1rem;border:1px solid var(--color-border, #e0e0e0);background:var(--color-surface, #fff);border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s}.zoom-controls button.active{background:var(--color-primary, #1976d2);color:#fff;border-color:var(--color-primary, #1976d2)}.timeline-container{overflow-x:auto}.timeline-header{display:flex;border-bottom:1px solid var(--color-border, #e0e0e0);padding-bottom:.5rem;margin-bottom:.5rem}.timeline-date{min-width:80px;font-size:.75rem;color:var(--color-text-secondary, #666);text-align:center}.timeline-body{min-height:200px}.timeline-row{display:flex;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border, #f0f0f0)}.row-label{width:200px;font-size:.875rem;font-weight:500;padding-right:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-bars{flex:1;position:relative;height:24px}.activity-bar{position:absolute;height:20px;background:var(--color-primary, #1976d2);border-radius:4px;cursor:pointer;overflow:hidden;transition:transform .2s}.activity-bar:hover{transform:scaleY(1.1)}.activity-bar.delayed{background:var(--color-error, #f44336)}.progress-fill{height:100%;background:#ffffff4d;border-radius:4px}.loading{padding:2rem;text-align:center;color:var(--color-text-secondary, #666)}.progress-update-form{padding:1.5rem;position:relative}.progress-update-form h3{margin-top:0;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input[type=date],.form-group select{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px}.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;resize:vertical}.form-group input[type=range]{width:100%}.range-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-secondary);margin-top:.25rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.cancel-btn,.submit-btn{padding:.5rem 1.5rem;border-radius:4px;cursor:pointer}.cancel-btn{background:var(--color-surface);border:1px solid var(--color-border)}.submit-btn{background:var(--color-primary);color:#fff;border:none}.cancel-btn:hover:not(:disabled),.submit-btn:hover:not(:disabled){opacity:.9}.cancel-btn:disabled,.submit-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:.75rem;background:#fef2f2;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error);margin-bottom:1rem}.confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.confirm-dialog{background:var(--color-background);padding:1.5rem;border-radius:8px;box-shadow:0 4px 20px #0003}.confirm-dialog p{margin:0 0 1rem;font-weight:500}.confirm-actions{display:flex;gap:1rem;justify-content:flex-end}.confirm-actions button{padding:.5rem 1rem;border-radius:4px;cursor:pointer}.confirm-actions button:first-child{background:var(--color-surface);border:1px solid var(--color-border)}.confirm-actions button:last-child{background:var(--color-primary);color:#fff;border:none}.modal-content{background:var(--color-surface, #fff);border-radius:8px;width:90%;max-width:600px;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border, #e0e0e0)}.modal-header h3{margin:0;font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary, #666);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-btn:hover{background:var(--color-background, #f5f5f5)}.tabs{display:flex;border-bottom:1px solid var(--color-border, #e0e0e0)}.tabs button{flex:1;padding:.75rem;border:none;background:none;cursor:pointer;font-size:.875rem;color:var(--color-text-secondary, #666);border-bottom:2px solid transparent;transition:all .2s}.tabs button.active{color:var(--color-primary, #1976d2);border-bottom-color:var(--color-primary, #1976d2)}.details-content{padding:1.5rem}.detail-section{margin-bottom:1.5rem}.detail-section h4{margin:0 0 .75rem;font-size:1rem;color:var(--color-text-primary, #1a1a1a)}.detail-section p{margin:.25rem 0;font-size:.875rem;color:var(--color-text-secondary, #666)}.detail-section strong{color:var(--color-text-primary, #1a1a1a)}.update-btn{width:100%;padding:.75rem;background:var(--color-primary, #1976d2);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.update-btn:hover{background:var(--color-primary-dark, #1565c0)}.history-content{padding:1rem;max-height:400px;overflow-y:auto}.history-entry{padding:1rem;border:1px solid var(--color-border, #e0e0e0);border-radius:4px;margin-bottom:.75rem}.history-header{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-secondary, #666);margin-bottom:.5rem}.history-change{font-size:.875rem;color:var(--color-text-primary, #1a1a1a)}.history-notes{margin-top:.5rem;padding:.5rem;background:var(--color-background, #f9f9f9);border-radius:4px;font-size:.875rem;color:var(--color-text-secondary, #666)}.no-history{text-align:center;padding:2rem;color:var(--color-text-secondary, #666)}.wbs-detail-page{padding:1.5rem}.back-btn{padding:.5rem 1rem;border:none;background:none;color:var(--color-primary, #1976d2);cursor:pointer;font-size:.875rem;margin-bottom:1rem;transition:color .2s}.back-btn:hover{color:var(--color-primary-dark, #1565c0)}.wbs-detail-page .tabs{display:flex;gap:.5rem;margin-bottom:1rem}.wbs-detail-page .tabs button{padding:.75rem 1.5rem;border:1px solid var(--color-border, #e0e0e0);background:var(--color-surface, #fff);border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.wbs-detail-page .tabs button.active{background:var(--color-primary, #1976d2);color:#fff;border-color:var(--color-primary, #1976d2)}.wbs-detail-page .loading{text-align:center;padding:3rem;color:var(--color-text-secondary, #666)}.wbs-detail-page .error{text-align:center;padding:3rem;color:var(--color-error, #f44336)}.work-order-table{overflow-x:auto;background-color:var(--color-background);border-radius:var(--border-radius-lg);border:1px solid var(--color-border)}.work-order-table table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.work-order-table th{background-color:var(--color-surface);padding:.875rem 1rem;text-align:left;font-weight:600;color:var(--color-text-primary);border-bottom:2px solid var(--color-border);white-space:nowrap}.work-order-table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.work-order-table tr:hover{background-color:var(--color-surface)}.work-order-table tr:last-child td{border-bottom:none}.title-cell{display:flex;align-items:center;gap:.5rem}.title-text{font-weight:500}.document-link{background:none;border:none;cursor:pointer;color:var(--color-primary);padding:.25rem;display:flex;align-items:center;border-radius:var(--border-radius);transition:background-color var(--transition-fast)}.document-link:hover{background-color:var(--color-surface)}.status-select{padding:.375rem .75rem;border:none;border-radius:20px;color:#fff;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;min-width:100px;text-align:center}.status-select:focus{outline:2px solid var(--color-primary);outline-offset:2px}.status-select:disabled{cursor:default;opacity:.8}.center{text-align:center}.right{text-align:right;font-family:Roboto Mono,monospace}.actions-cell{white-space:nowrap}.action-btn{background:none;border:none;cursor:pointer;padding:.375rem;border-radius:var(--border-radius);color:var(--color-text-secondary);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.action-btn:hover{background-color:var(--color-surface)}.action-btn.view:hover{color:var(--color-primary)}.action-btn.edit:hover{color:var(--color-accent)}.action-btn.delete:hover,.action-btn.delete.confirm{color:var(--color-error);background-color:#ef44441a}.action-btn.delete.confirm{animation:pulse .5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.empty-state{padding:3rem;text-align:center;color:var(--color-text-secondary);background-color:var(--color-surface);border-radius:var(--border-radius-lg);border:1px solid var(--color-border)}.loading-spinner{padding:3rem;text-align:center;color:var(--color-text-secondary)}@media (max-width: 1024px){.work-order-table{font-size:var(--font-size-sm)}.work-order-table th,.work-order-table td{padding:.75rem .5rem}}@media (max-width: 768px){.work-order-table{border-radius:0;border-left:none;border-right:none}}.work-order-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr;gap:1rem}.form-row.two-col{grid-template-columns:1fr 1fr}.form-row.three-col{grid-template-columns:1fr 1fr 1fr}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group select{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background-color:var(--color-background);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.file-upload-area{display:flex;flex-direction:column;gap:.5rem}.file-upload-area input[type=file]{font-size:var(--font-size-sm);padding:.5rem;border:1px dashed var(--color-border);border-radius:var(--border-radius);background-color:var(--color-background)}.file-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.selected-document{display:flex;align-items:center;gap:1rem;padding:.75rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius)}.document-name{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-remove-doc{padding:.375rem .75rem;background-color:transparent;color:var(--color-error, #EF4444);border:1px solid var(--color-error, #EF4444);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.btn-remove-doc:hover{background-color:var(--color-error, #EF4444);color:#fff}.current-document{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:.5rem;background-color:var(--color-surface);border-radius:var(--border-radius)}.activity-selector{flex:1;min-height:200px}.activity-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.activity-search{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);width:200px}.activity-filters{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);margin-bottom:.5rem}.activity-filters .search-input{flex:1;min-width:200px;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background-color:var(--color-background);color:var(--color-text-primary)}.activity-filters select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background-color:var(--color-background);color:var(--color-text-primary);min-width:120px}.btn-clear-filters{padding:.5rem .75rem;background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.btn-clear-filters:hover{background-color:var(--color-primary);color:#fff}.activity-table-container{border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden;max-height:350px;overflow-y:auto;background-color:var(--color-surface)}.activity-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.activity-table th,.activity-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.activity-table th{background-color:var(--color-background);font-weight:600;color:var(--color-text-primary);position:sticky;top:0;z-index:1}.activity-table tbody tr{cursor:pointer;transition:background-color var(--transition-fast)}.activity-table tbody tr:hover{background-color:var(--color-border)}.activity-table tbody tr.selected{background-color:rgba(var(--color-primary-rgb, 59, 130, 246),.1)}.activity-table tbody tr:last-child td{border-bottom:none}.checkbox-col{width:40px;text-align:center}.checkbox-col input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.no-data{text-align:center;padding:2rem!important;color:var(--color-text-secondary)}.activity-loading{padding:2rem;text-align:center;color:var(--color-text-secondary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius)}.no-activities{padding:2rem;text-align:center;color:var(--color-text-secondary)}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-border)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.form-row.two-col,.form-row.three-col{grid-template-columns:1fr}.activity-header{flex-direction:column;align-items:flex-start}.activity-search{width:100%}.activity-filters{flex-direction:column}.activity-filters .search-input,.activity-filters select{width:100%;min-width:unset}.activity-table-container{overflow-x:auto}.activity-table{min-width:800px}}.document-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:2rem}.document-viewer-modal{background:var(--color-background);border-radius:var(--border-radius-lg);width:100%;max-width:1000px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.document-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.document-viewer-header h3{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.document-viewer-actions{display:flex;gap:.5rem}.document-viewer-actions .action-btn{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--border-radius);color:var(--color-text-secondary);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.document-viewer-actions .action-btn:hover{background:var(--color-border);color:var(--color-text-primary)}.document-viewer-actions .action-btn.close:hover{background:#ef44441a;color:var(--color-error)}.document-viewer-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:var(--color-surface);min-height:400px}.document-loading,.document-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-secondary);padding:2rem}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.document-error svg{color:var(--color-error)}.document-image{max-width:100%;max-height:calc(90vh - 80px);object-fit:contain}.document-pdf{width:100%;height:calc(90vh - 80px);border:none;background:#fff}.btn-primary{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;background-color:var(--color-primary);color:#fff;transition:background-color var(--transition-fast)}@media (max-width: 768px){.document-viewer-overlay{padding:0}.document-viewer-modal{max-height:100vh;border-radius:0}.document-pdf{height:calc(100vh - 60px)}}.work-orders-page{display:flex;flex-direction:column;height:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.btn-secondary:hover{background-color:var(--color-border)}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;font-size:inherit;padding:0}.btn-link:hover{color:var(--color-primary-hover)}.filters-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--color-background);border-bottom:1px solid var(--color-border)}.filter-group{display:flex;align-items:center;gap:.75rem}.work-orders-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.no-project-selected{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);padding:2rem;text-align:center}.work-order-details{display:flex;flex-direction:column;gap:.75rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.detail-value{font-size:var(--font-size-sm);color:var(--color-text-primary)}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:var(--font-size-sm);font-weight:500;color:#fff}.status-badge.status-draft{background-color:#64748b}.status-badge.status-active{background-color:#3b82f6}.status-badge.status-completed{background-color:#10b981}.status-badge.status-cancelled{background-color:#ef4444}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.5rem;background:var(--color-surface);border-top:1px solid var(--color-border)}.pagination-btn{padding:.5rem 1rem;background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:0 1rem}@media (max-width: 768px){.page-header{flex-direction:column;gap:1rem}.btn-primary{width:100%;justify-content:center}.filters-bar{flex-direction:column;gap:1rem;align-items:stretch}.detail-row{flex-direction:column;align-items:flex-start;gap:.5rem}}.contractor-dashboard{display:flex;flex-direction:column;height:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);gap:1rem;flex-wrap:wrap}.header-left h1{margin:0;font-size:var(--font-size-2xl);color:var(--color-text-primary)}.project-info{margin:.5rem 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.summary-cards{display:flex;gap:1rem}.summary-card{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.5rem;border-radius:var(--border-radius);background:var(--color-background);border:1px solid var(--color-border);min-width:80px}.summary-count{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text-primary)}.summary-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.summary-card.pending .summary-count{color:var(--color-status-pending)}.summary-card.in-progress .summary-count{color:var(--color-status-in-progress)}.summary-card.completed .summary-count{color:var(--color-status-completed)}.filters-bar{display:flex;gap:1rem;padding:1rem 1.5rem;background-color:var(--color-background);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.filter-group select{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background-color:var(--color-background);color:var(--color-text-primary)}.btn-clear-filters{padding:.5rem 1rem;background:none;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.btn-clear-filters:hover{background:var(--color-surface);color:var(--color-text-primary)}.loading-spinner,.empty-state{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--color-text-secondary)}.activities-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1rem;padding:1.5rem;overflow-y:auto}.activity-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden;transition:box-shadow var(--transition-fast)}.activity-card:hover{box-shadow:0 4px 12px #0000001a}.activity-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.status-indicator{width:10px;height:10px;border-radius:50%}.activity-status{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.work-order-badge{margin-left:auto;padding:.25rem .5rem;font-size:.75rem;background:var(--color-primary);color:#fff;border-radius:4px}.activity-body{padding:1rem}.activity-name{margin:0 0 .25rem;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.activity-sub{margin:0 0 .75rem;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.activity-details{display:flex;flex-direction:column;gap:.5rem}.detail-item{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.detail-icon{display:flex;color:var(--color-text-secondary)}.activity-progress{padding:0 1rem 1rem}.progress-header{display:flex;justify-content:space-between;font-size:var(--font-size-sm);margin-bottom:.5rem}.progress-header span:first-child{color:var(--color-text-secondary)}.progress-header span:last-child{font-weight:600;color:var(--color-text-primary)}.progress-bar{height:8px;background:var(--color-surface);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width var(--transition-base)}.activity-actions{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--color-border);background:var(--color-surface)}.btn-update,.btn-history{flex:1;padding:.5rem .75rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast)}.btn-update{background:var(--color-primary);color:#fff}.btn-update:hover:not(:disabled){background:var(--color-primary-hover)}.btn-update:disabled{opacity:.5;cursor:not-allowed}.btn-history{background:var(--color-background);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-history:hover{background:var(--color-border)}.no-project-selected{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}.progress-form{display:flex;flex-direction:column;gap:1rem}.form-value{margin:0;padding:.5rem;background:var(--color-surface);border-radius:var(--border-radius);font-size:var(--font-size-sm)}.form-group input,.form-group select{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary)}.disabled-field{background:var(--color-surface)!important;color:var(--color-text-secondary)!important;cursor:not-allowed;opacity:.8}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.history-modal{max-height:60vh;overflow-y:auto}.history-activity-info{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.history-timeline{position:relative;padding-left:1.5rem}.history-timeline:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--color-border)}.history-entry{position:relative;padding-bottom:1.5rem}.history-entry:last-child{padding-bottom:0}.history-dot{position:absolute;left:-1.5rem;top:4px;width:12px;height:12px;background:var(--color-primary);border-radius:50%;border:2px solid var(--color-background)}.history-content{background:var(--color-surface);padding:.75rem;border-radius:var(--border-radius)}.history-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.history-user{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-primary)}.history-date{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.history-change{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm);flex-wrap:wrap}.field-name{font-weight:500;color:var(--color-text-secondary)}.old-value{color:var(--color-error);text-decoration:line-through}.arrow{color:var(--color-text-secondary)}.new-value{color:var(--color-success);font-weight:500}.history-notes{margin:.5rem 0 0;padding:.5rem;background:var(--color-background);border-radius:var(--border-radius);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}@media (max-width: 768px){.page-header{flex-direction:column}.summary-cards{width:100%;justify-content:space-between}.activities-grid{grid-template-columns:1fr;padding:1rem}.filters-bar{flex-direction:column;align-items:stretch}.filter-group{width:100%}.filter-group select{flex:1}}.notification-settings-page{padding:2rem;max-width:800px;margin:0 auto}.notification-settings-page h1{margin-bottom:2rem}.settings-table{width:100%;border-collapse:collapse;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.settings-table th,.settings-table td{padding:1rem;text-align:left;border-bottom:1px solid var(--color-border)}.settings-table th{background:var(--color-surface);font-weight:600}.settings-table tr:last-child td{border-bottom:none}.settings-table input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.settings-table input[type=checkbox]:disabled{cursor:not-allowed;opacity:.7}.actions{margin-top:1.5rem}.actions button{background:var(--color-primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:background var(--transition-fast)}.actions button:hover:not(:disabled){background:var(--color-primary-hover)}.actions button:disabled{opacity:.6;cursor:not-allowed}.loading{padding:2rem;text-align:center;color:var(--color-text-secondary)}.coming-soon-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:2rem}.coming-soon-content{text-align:center;max-width:500px;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.coming-soon-icon{color:var(--color-primary, #1976d2);margin-bottom:1.5rem}.coming-soon-content h1{font-size:2.5rem;font-weight:700;color:var(--color-text, #333);margin:0 0 .5rem}.coming-soon-content h2{font-size:1.25rem;font-weight:500;color:var(--color-text-secondary, #666);margin:0 0 1.5rem}.coming-soon-message{font-size:1.1rem;color:var(--color-text-secondary, #666);line-height:1.6;margin-bottom:2rem}.coming-soon-features{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.feature-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-background, #f5f5f5);border-radius:20px;font-size:.875rem;color:var(--color-text-secondary, #666)}.feature-badge .badge-icon{font-size:1rem}.subscribe-btn{padding:.75rem 2rem;font-size:1rem;font-weight:600;color:#fff;background:var(--color-primary, #1976d2);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .2s}.subscribe-btn:hover{background:var(--color-primary-dark, #1565c0);transform:translateY(-2px)}.subscribe-btn:active{transform:translateY(0)}.pmo-layout{display:flex;flex-direction:column;height:100%}.pmo-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:0;padding:0 1rem;background-color:var(--color-surface)}.pmo-tab{padding:.875rem 1.5rem;border:none;background:transparent;color:var(--color-text-secondary);font-weight:500;font-size:var(--font-size-sm);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}.pmo-tab:hover{color:var(--color-text-primary);background-color:#00000008}[data-theme=dark] .pmo-tab:hover{background-color:#ffffff0d}.pmo-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.pmo-content{flex:1;overflow:auto;background-color:var(--color-background)}@media (max-width: 768px){.pmo-tabs{padding:0 .5rem}.pmo-tab{padding:.75rem 1rem;font-size:var(--font-size-sm)}}.user-management-layout{display:flex;flex-direction:column;height:100%}.user-management-tabs{display:flex;gap:.25rem;padding:.75rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.user-management-tab{padding:.5rem 1rem;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-fast)}.user-management-tab:hover{color:var(--color-text-primary);background:var(--color-border)}.user-management-tab.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb, 59, 130, 246),.1)}.user-management-content{flex:1;overflow:auto;padding:1.5rem}@media (max-width: 768px){.user-management-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.user-management-tab{white-space:nowrap}}.users-page{display:flex;flex-direction:column;height:100%}.users-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.users-page .page-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.users-page .subtitle{margin:.25rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.users-page .loading,.users-page .empty-state{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--color-text-secondary)}.users-page .table-container{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow:hidden}.users-page .data-table{width:100%;border-collapse:collapse}.users-page .data-table th,.users-page .data-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.users-page .data-table th{background:var(--color-background);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.users-page .data-table tbody tr:last-child td{border-bottom:none}.users-page .data-table tbody tr:hover{background:var(--color-background)}.users-page .name-cell{font-weight:500;color:var(--color-text-primary)}.users-page .action-buttons{display:flex;gap:.5rem}.users-page .btn-icon{padding:.375rem .75rem;background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.users-page .btn-icon:hover{background:var(--color-background)}.users-page .btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.users-page .btn-icon.btn-danger:hover{background:#dc2626;color:#fff}.users-page .btn-icon.btn-success{color:#10b981;border-color:#10b981}.users-page .btn-icon.btn-success:hover{background:#10b981;color:#fff}.users-page .status-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500}.users-page .status-badge.status-active{background:#10b9811a;color:#10b981}.users-page .status-badge.status-inactive{background:#64748b1a;color:#64748b}.users-page .status-badge.status-suspended{background:#ef44441a;color:#ef4444}.users-page .status-badge.status-pending{background:#64748b1a;color:#64748b}.users-page .form{display:flex;flex-direction:column;gap:1rem}.users-page .form-group{display:flex;flex-direction:column;gap:.5rem}.users-page .form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.users-page .form-group input,.users-page .form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.users-page .form-group input:focus,.users-page .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.users-page .form-group input:disabled{background:var(--color-surface);cursor:not-allowed}.users-page .form-group textarea{resize:vertical}.users-page .form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.users-page .roles-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.users-page .role-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast)}.users-page .role-checkbox:hover{background:var(--color-border)}.users-page .role-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.users-page .role-checkbox span{font-size:var(--font-size-sm);color:var(--color-text-primary)}.users-page .no-roles{text-align:center;color:var(--color-text-secondary);padding:1rem}.users-page .roles-loading{text-align:center;color:var(--color-text-secondary);padding:2rem}.users-page .btn-primary,.users-page .btn-secondary,.users-page .btn-danger{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.users-page .btn-primary{background:var(--color-primary);color:#fff}.users-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.users-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.users-page .btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.users-page .btn-secondary:hover{background:var(--color-border)}.users-page .btn-danger{background:var(--color-error, #EF4444);color:#fff}.users-page .btn-danger:hover{opacity:.9}.users-page .status-select{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;background:var(--color-surface);color:var(--color-text-primary);min-width:100px}.users-page .status-select:focus{outline:none;border-color:var(--color-primary)}.users-page .status-select.status-active{background:#10b9811a;color:#10b981;border-color:#10b9814d}.users-page .status-select.status-inactive{background:#64748b1a;color:#64748b;border-color:#64748b4d}.users-page .status-select.status-suspended{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.users-page .status-select.status-pending{background:#f59e0b1a;color:#f59e0b;border-color:#f59e0b4d}.permission-matrix{display:flex;flex-direction:column;gap:1rem;max-height:80vh}.permission-matrix-empty{text-align:center;padding:2rem;color:var(--color-text-secondary)}.permission-matrix-table-wrapper{overflow-x:auto;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--border-radius);max-height:calc(80vh - 80px)}.permission-matrix-table{width:100%;border-collapse:collapse;min-width:max-content}.permission-matrix-header{padding:.75rem 1rem;text-align:center;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-background);border:1px solid var(--color-border);position:sticky;top:0;z-index:10;white-space:nowrap}.permission-matrix-header:first-child{text-align:left;position:sticky;left:0;z-index:20;background:var(--color-background)}.permission-matrix-resource{padding:.75rem 1rem;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);position:sticky;left:0;z-index:5;white-space:nowrap}.permission-matrix-cell{padding:.75rem 1rem;text-align:center;border:1px solid var(--color-border);background:var(--color-background)}.permission-matrix-cell:hover{background:var(--color-surface)}.permission-checkbox{width:24px;height:24px;border-radius:var(--border-radius);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--color-border);background:var(--color-background)}.permission-checkbox:hover{background:var(--color-border)}.permission-checkbox.checked{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.permission-check-icon{width:14px;height:14px}.permission-matrix-actions{display:flex;justify-content:flex-end;padding-top:.5rem}.roles-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.roles-page .page-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.roles-page .subtitle{margin:.25rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.roles-page .loading,.roles-page .empty-state{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--color-text-secondary)}.roles-page .table-container{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow:hidden}.roles-page .data-table{width:100%;border-collapse:collapse}.roles-page .data-table th,.roles-page .data-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.roles-page .data-table th{background:var(--color-background);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.roles-page .data-table tbody tr:last-child td{border-bottom:none}.roles-page .data-table tbody tr:hover{background:var(--color-background)}.roles-page .name-cell{font-weight:500;color:var(--color-text-primary)}.roles-page .action-buttons{display:flex;gap:.5rem}.roles-page .btn-icon{padding:.375rem .75rem;background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.roles-page .btn-icon:hover{background:var(--color-background)}.roles-page .btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.roles-page .btn-icon.btn-danger:hover{background:#dc2626;color:#fff}.roles-page .form{display:flex;flex-direction:column;gap:1rem}.roles-page .form-group{display:flex;flex-direction:column;gap:.5rem}.roles-page .form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.roles-page .form-group input,.roles-page .form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.roles-page .form-group input:focus,.roles-page .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.roles-page .form-group textarea{resize:vertical}.roles-page .form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.roles-page .btn-primary,.roles-page .btn-secondary,.roles-page .btn-danger{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.roles-page .btn-primary{background:var(--color-primary);color:#fff}.roles-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.roles-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.roles-page .btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.roles-page .btn-secondary:hover{background:var(--color-border)}.roles-page .btn-danger{background:var(--color-error, #EF4444);color:#fff}.roles-page .btn-danger:hover{opacity:.9}.roles-page .no-permission{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.resources-page{display:flex;flex-direction:column;height:100%}.resources-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.resources-page .page-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.resources-page .subtitle{margin:.25rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.resources-page .loading,.resources-page .empty-state{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--color-text-secondary)}.resources-page .table-container{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow:hidden}.resources-page .data-table{width:100%;border-collapse:collapse}.resources-page .data-table th,.resources-page .data-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.resources-page .data-table th{background:var(--color-background);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.resources-page .data-table tbody tr:last-child td{border-bottom:none}.resources-page .data-table tbody tr:hover{background:var(--color-background)}.resources-page .name-cell{font-weight:500;color:var(--color-text-primary)}.resources-page .action-buttons{display:flex;gap:.5rem}.resources-page .btn-icon{padding:.375rem .75rem;background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.resources-page .btn-icon:hover{background:var(--color-background)}.resources-page .btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.resources-page .btn-icon.btn-danger:hover{background:#dc2626;color:#fff}.resources-page .form{display:flex;flex-direction:column;gap:1rem}.resources-page .form-group{display:flex;flex-direction:column;gap:.5rem}.resources-page .form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.resources-page .form-group input,.resources-page .form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.resources-page .form-group input:focus,.resources-page .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.resources-page .form-group textarea{resize:vertical}.resources-page .form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.resources-page .btn-primary,.resources-page .btn-secondary,.resources-page .btn-danger{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.resources-page .btn-primary{background:var(--color-primary);color:#fff}.resources-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.resources-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.resources-page .btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.resources-page .btn-secondary:hover{background:var(--color-border)}.resources-page .btn-danger{background:var(--color-error, #EF4444);color:#fff}.resources-page .btn-danger:hover{opacity:.9}.actions-page{display:flex;flex-direction:column;height:100%}.actions-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.actions-page .page-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.actions-page .subtitle{margin:.25rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.actions-page .loading,.actions-page .empty-state{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--color-text-secondary)}.actions-page .table-container{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow:hidden}.actions-page .data-table{width:100%;border-collapse:collapse}.actions-page .data-table th,.actions-page .data-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.actions-page .data-table th{background:var(--color-background);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.actions-page .data-table tbody tr:last-child td{border-bottom:none}.actions-page .data-table tbody tr:hover{background:var(--color-background)}.actions-page .name-cell{font-weight:500;color:var(--color-text-primary)}.actions-page .action-buttons{display:flex;gap:.5rem}.actions-page .btn-icon{padding:.375rem .75rem;background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.actions-page .btn-icon:hover{background:var(--color-background)}.actions-page .btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.actions-page .btn-icon.btn-danger:hover{background:#dc2626;color:#fff}.actions-page .form{display:flex;flex-direction:column;gap:1rem}.actions-page .form-group{display:flex;flex-direction:column;gap:.5rem}.actions-page .form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.actions-page .form-group input,.actions-page .form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.actions-page .form-group input:focus,.actions-page .form-group textarea:focus{outline:none;border-color:var(--color-primary)}.actions-page .form-group textarea{resize:vertical}.actions-page .form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.actions-page .btn-primary,.actions-page .btn-secondary,.actions-page .btn-danger{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.actions-page .btn-primary{background:var(--color-primary);color:#fff}.actions-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.actions-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.actions-page .btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.actions-page .btn-secondary:hover{background:var(--color-border)}.actions-page .btn-danger{background:var(--color-error, #EF4444);color:#fff}.actions-page .btn-danger:hover{opacity:.9}.roles-page{display:flex;flex-direction:column;height:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.subtitle{margin:.25rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.loading,.empty-state{display:flex;justify-content:center;align-items:center;padding:3rem;color:var(--color-text-secondary)}.table-container{background:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow:hidden}.data-table th,.data-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{background:var(--color-background);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface)}.name-cell{font-weight:500;color:var(--color-text-primary)}.action-buttons{display:flex;gap:.5rem}.btn-icon{padding:.375rem .75rem;background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.btn-icon:hover{background:var(--color-border)}.btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.btn-icon.btn-danger:hover{background:var(--color-error, #EF4444);color:#fff}.form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.form-group input,.form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary)}.form-group textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.btn-primary,.btn-secondary,.btn-danger{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-danger{background:var(--color-error, #EF4444);color:#fff}.btn-danger:hover{opacity:.9}.spinner-container{display:flex;align-items:center;justify-content:center}.spinner{display:inline-block;position:relative}.spinner__circle{width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:var(--color-primary, #3b82f6);animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-small{width:20px;height:20px}.spinner-small .spinner__circle{border-width:2px}.spinner-medium{width:36px;height:36px}.spinner-medium .spinner__circle{border-width:3px}.spinner-large{width:48px;height:48px}.spinner-large .spinner__circle{border-width:4px}.spinner-pulse .spinner__circle{animation:spinner-pulse 1.2s ease-in-out infinite}@keyframes spinner-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}.developer-management-page{padding:24px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0}.page-header .btn-primary{padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.page-header .btn-primary:hover{background:var(--color-primary-hover, #2563eb)}.loading{text-align:center;padding:40px;color:var(--color-text-secondary, #6b7280)}.empty-state{text-align:center;padding:40px;background:var(--color-surface, #fff);border-radius:8px;border:1px solid var(--color-border, #e5e7eb)}.empty-state p{color:var(--color-text-secondary, #6b7280);margin:0}.table-container{background:var(--color-surface, #fff);border-radius:8px;border:1px solid var(--color-border, #e5e7eb);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.data-table th{background:var(--color-background, #f9fafb);font-weight:600;font-size:14px;color:var(--color-text-secondary, #6b7280)}.data-table td{font-size:14px;color:var(--color-text-primary, #1f2937)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background:var(--color-background, #f9fafb)}.name-cell{font-weight:500}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee2e2;color:#991b1b}.status-suspended{background:#fef3c7;color:#92400e}.action-buttons{display:flex;gap:8px}.btn-icon{padding:6px 12px;background:var(--color-background, #f3f4f6);color:var(--color-text-primary, #1f2937);border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--color-border, #e5e7eb)}.btn-icon.btn-danger{color:#dc2626;border-color:#fecaca;background:#fef2f2}.btn-icon.btn-danger:hover{background:#fee2e2}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--color-surface, #fff);border-radius:12px;padding:24px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{font-size:18px;font-weight:600;margin:0}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--color-text-secondary, #6b7280);padding:0;line-height:1}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary, #374151);margin-bottom:6px}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:8px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary, #3b82f6)}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.form-actions button{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.form-actions .cancel-btn{background:#fff;border:1px solid var(--color-border, #d1d5db);color:var(--color-text-primary, #374151)}.form-actions .cancel-btn:hover{background:var(--color-background, #f9fafb)}.form-actions .submit-btn{background:var(--color-primary, #3b82f6);border:none;color:#fff}.form-actions .submit-btn:hover{background:var(--color-primary-hover, #2563eb)}.form-actions .submit-btn:disabled{opacity:.6;cursor:not-allowed}.invite-link{display:flex;align-items:center;gap:8px;margin-top:8px}.invite-link input{flex:1;padding:8px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;font-family:monospace}.invite-link .copy-btn{padding:8px 16px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.invite-link .copy-btn:hover{background:var(--color-primary-hover, #2563eb)}.invite-link .copy-btn.copied{background:#10b981}.invite-management{padding:24px}.invites-table-container{background:var(--color-surface, #fff);border-radius:12px;border:1px solid var(--color-border, #e5e7eb);overflow:hidden}.invites-table th,.invites-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.invites-table th{background:var(--color-background, #f9fafb);font-weight:600;font-size:13px;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.5px}.invites-table tr:last-child td{border-bottom:none}.invites-table tr:hover{background:var(--color-background, #f9fafb)}.link-input{flex:1;padding:8px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;font-family:monospace;background:var(--color-background, #f9fafb);color:var(--color-text-secondary, #6b7280);min-width:200px}.btn-copy{padding:6px 12px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s}.btn-copy:hover{background:var(--color-primary-hover, #2563eb)}.btn-revoke{padding:6px 12px;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-revoke:hover{background:#fee2e2}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn-secondary{padding:10px 20px;background:#fff;border:1px solid var(--color-border, #d1d5db);border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text-primary, #374151);cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--color-background, #f9fafb)}.developer-users{padding:24px}.developer-users .page-header{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:24px}.developer-users .page-header h1{font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937);margin:0}.developer-users .page-header .subtitle{font-size:14px;color:var(--color-text-secondary, #6b7280);margin:0}.users-table-container{background:var(--color-surface, #fff);border-radius:12px;border:1px solid var(--color-border, #e5e7eb);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.users-table th{background:var(--color-background, #f9fafb);font-weight:600;font-size:13px;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.5px}.users-table td{font-size:14px;color:var(--color-text-primary, #1f2937)}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover{background:var(--color-background, #f9fafb)}.users-table select{padding:6px 10px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.verified-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;background:#fef3c7;color:#92400e}.verified-badge.verified{background:#d1fae5;color:#065f46}.btn-deactivate{padding:6px 12px;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-deactivate:hover{background:#fee2e2}.btn-activate{padding:6px 12px;background:#d1fae5;color:#065f46;border:1px solid #a7f3d0;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-activate:hover{background:#a7f3d0}.developer-management{padding:24px;max-width:1200px;margin:0 auto}.developer-management .loading-container{display:flex;justify-content:center;align-items:center;min-height:400px}.developer-management .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.developer-management .header-content h1{margin:0 0 4px;font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937)}.developer-management .subtitle{margin:0;font-size:14px;color:var(--color-text-secondary, #6b7280)}.developer-management .filters{margin-bottom:20px;width:100%;max-width:400px}.developer-management .filters .search-input{width:100%;display:flex;align-items:center;gap:10px;position:relative}.developer-management .filters .search-input__field{width:100%;padding:10px 40px 10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:8px;font-size:14px;background:var(--color-surface, #fff);color:var(--color-text-primary, #1f2937);transition:border-color .2s,box-shadow .2s}.developer-management .filters .search-input__field:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.developer-management .filters .search-input__field::placeholder{color:var(--color-text-secondary, #9ca3af)}.developers-table-container{background:var(--color-surface, #fff);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.developers-table{width:100%;border-collapse:collapse}.developers-table th{text-align:left;padding:14px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary, #6b7280);background:var(--color-background, #f9fafb);border-bottom:1px solid var(--color-border, #e5e7eb)}.developers-table td{padding:14px 16px;font-size:14px;color:var(--color-text-primary, #1f2937);border-bottom:1px solid var(--color-border, #e5e7eb)}.developers-table tbody tr:last-child td{border-bottom:none}.developers-table tbody tr:hover{background:var(--color-background, #f9fafb)}.developer-management .name-cell .name-content{display:flex;align-items:center;gap:12px}.developer-management .developer-name{font-weight:500}.developer-management .status-badge.status-active{background:#d1fae5;color:#065f46}.developer-management .status-badge.status-inactive{background:#fee2e2;color:#991b1b}.developer-management .status-badge.status-pending{background:#fef3c7;color:#92400e}.developer-management .action-buttons{display:flex;gap:8px}.developer-management .btn-icon{padding:6px 10px;background:transparent;color:var(--color-text-primary, #1f2937);border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.developer-management .btn-icon:hover{background:var(--color-background, #f9fafb)}.developer-management .btn-icon.btn-danger{color:#dc2626;border-color:#dc2626}.developer-management .btn-icon.btn-danger:hover{background:#dc2626;color:#fff}.developer-management .btn-edit{background:transparent;color:var(--color-primary, #3b82f6);border:1px solid var(--color-primary, #3b82f6)}.developer-management .btn-edit:hover{background:var(--color-primary, #3b82f6);color:#fff}.developer-management .btn-delete{background:transparent;color:#dc2626;border:1px solid #dc2626}.developer-management .btn-delete:hover{background:#dc2626;color:#fff}.developer-management .empty-state{text-align:center;color:var(--color-text-secondary, #6b7280);padding:60px 20px;background:var(--color-surface, #fff);border-radius:8px;border:1px dashed var(--color-border, #e5e7eb)}.developer-form{display:flex;flex-direction:column;gap:16px}.developer-form .form-group{display:flex;flex-direction:column;gap:6px}.developer-form .form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary, #374151)}.developer-form .form-group input,.developer-form .form-group select,.developer-form .form-group textarea{padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;color:var(--color-text-primary, #1f2937);background:var(--color-surface, #fff);transition:border-color .2s,box-shadow .2s}.developer-form .form-group input:focus,.developer-form .form-group select:focus,.developer-form .form-group textarea:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.developer-form .form-group textarea{resize:vertical;min-height:60px}.developer-form .form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid var(--color-border, #e5e7eb)}.developer-form .btn-cancel{background:transparent;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #d1d5db)}.developer-form .btn-cancel:hover{background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937)}.developer-form .btn-submit{background:var(--color-primary, #3b82f6);color:#fff;border:none}.developer-form .btn-submit:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.developer-form .btn-submit:disabled{opacity:.6;cursor:not-allowed}.developer-management .btn-view{background:transparent;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #d1d5db)}.developer-management .btn-view:hover{background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937)}.developer-details{display:flex;flex-direction:column;gap:24px}.developer-details .details-header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border, #e5e7eb)}.developer-details .details-title{display:flex;flex-direction:column;gap:8px}.developer-details .details-title h3{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary, #1f2937)}.developer-details .details-section{display:flex;flex-direction:column;gap:12px}.developer-details .details-section h4{margin:0;font-size:14px;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.5px}.developer-details .details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.developer-details .detail-item{display:flex;flex-direction:column;gap:4px}.developer-details .detail-item label{font-size:12px;font-weight:500;color:var(--color-text-secondary, #6b7280)}.developer-details .detail-item span{font-size:14px;color:var(--color-text-primary, #1f2937)}.developer-details .description-text{margin:0;font-size:14px;color:var(--color-text-primary, #1f2937);line-height:1.5;padding:12px;background:var(--color-background, #f9fafb);border-radius:6px}.developer-details .details-actions{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--color-border, #e5e7eb)}.invite-management{max-width:1000px}.invite-management .loading-container{display:flex;justify-content:center;align-items:center;min-height:300px}.invite-management .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px;flex-wrap:wrap}.invite-management .page-header .header-content h1{margin:0 0 4px;font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937)}.invite-management .page-header .subtitle{margin:0;font-size:14px;color:var(--color-text-secondary, #6b7280)}.invite-management .page-header .btn-primary{padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.invite-management .page-header .btn-primary:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.invite-management .page-header .btn-primary:disabled{opacity:.5;cursor:not-allowed}.scope-selector{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;background:var(--color-surface, #fff);border-radius:8px;border:1px solid var(--color-border, #e5e7eb)}.scope-label{font-size:14px;font-weight:500;color:var(--color-text-secondary, #6b7280)}.scope-buttons{display:flex;gap:8px}.scope-btn{padding:8px 16px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;font-weight:500;background:#fff;color:var(--color-text-primary, #1f2937);cursor:pointer;transition:all .2s}.scope-btn:hover:not(:disabled){background:var(--color-background, #f9fafb);border-color:var(--color-primary, #3b82f6)}.scope-btn.active{background:var(--color-primary, #3b82f6);color:#fff;border-color:var(--color-primary, #3b82f6)}.scope-btn:disabled{opacity:.5;cursor:not-allowed}.scope-info{margin:0;font-size:13px;color:var(--color-text-secondary, #6b7280)}.invites-table-container{background:var(--color-surface, #fff);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.invites-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--color-background, #f9fafb);border-bottom:1px solid var(--color-border, #e5e7eb)}.invites-count{font-size:14px;font-weight:500;color:var(--color-text-primary, #1f2937)}.invites-scope{font-size:13px;color:var(--color-text-secondary, #6b7280)}.invites-table{width:100%;border-collapse:collapse}.invites-table th,.invites-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border, #e5e7eb)}.invites-table th{background:var(--color-background, #f9fafb);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary, #6b7280)}.invites-table td{font-size:14px;color:var(--color-text-primary, #1f2937)}.invites-table tbody tr:last-child td{border-bottom:none}.invites-table tbody tr:hover{background:var(--color-background, #f9fafb)}.invite-management .empty-state{text-align:center;padding:60px 20px;background:var(--color-surface, #fff);border-radius:8px;border:1px dashed var(--color-border, #e5e7eb)}.invite-management .empty-state svg{color:var(--color-text-secondary, #6b7280);margin-bottom:16px}.invite-management .empty-state h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--color-text-primary, #1f2937)}.invite-management .empty-state p{font-size:14px;color:var(--color-text-secondary, #6b7280);max-width:400px;margin:0 auto 20px}.link-cell{display:flex;align-items:center;gap:8px}.link-input{flex:1;padding:6px 10px;border:1px solid var(--color-border, #d1d5db);border-radius:4px;font-size:12px;font-family:monospace;background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937);min-width:180px;max-width:280px}.btn-copy{padding:6px 12px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-copy:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.btn-copy.copied{background:#10b981}.btn-copy:disabled{opacity:.5;cursor:not-allowed}.btn-revoke{padding:6px 12px;background:transparent;color:#dc2626;border:1px solid #dc2626;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-revoke:hover{background:#dc2626;color:#fff}.text-danger{color:#dc2626}.expired-label{font-size:11px;font-style:italic;margin-left:4px}.invite-form{display:flex;flex-direction:column;gap:16px}.invite-form .form-group{display:flex;flex-direction:column;gap:6px}.invite-form .form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary, #374151)}.invite-form .form-group input,.invite-form .form-group select{padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;color:var(--color-text-primary, #1f2937);background:var(--color-surface, #fff);transition:border-color .2s}.invite-form .form-group input:focus,.invite-form .form-group select:focus{outline:none;border-color:var(--color-primary, #3b82f6)}.form-hint{font-size:12px;color:var(--color-text-secondary, #6b7280)}.invite-preview{padding:16px;background:var(--color-background, #f9fafb);border-radius:8px;border:1px solid var(--color-border, #e5e7eb)}.invite-preview h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text-primary, #1f2937)}.preview-item{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--color-border, #e5e7eb)}.preview-item:last-child{border-bottom:none}.preview-label{font-size:13px;color:var(--color-text-secondary, #6b7280)}.preview-value{font-size:13px;font-weight:500;color:var(--color-text-primary, #1f2937)}.invite-form .form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid var(--color-border, #e5e7eb)}.invite-form .btn-cancel{padding:10px 20px;background:transparent;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.invite-form .btn-cancel:hover{background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937)}.invite-form .btn-submit{padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.invite-form .btn-submit:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.invite-form .btn-submit:disabled{opacity:.6;cursor:not-allowed}.role-badge{display:inline-block;padding:4px 8px;background:var(--color-primary, #3b82f6);color:#fff;border-radius:4px;font-size:12px;font-weight:500}.invite-management .status-badge.status-active{background:#d1fae5;color:#065f46}.invite-management .status-badge.status-inactive,.invite-management .status-badge.status-expired{background:#fee2e2;color:#991b1b}.invite-management .status-badge.status-pending{background:#fef3c7;color:#92400e}.developer-management .btn-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #d1d5db);border-radius:8px;cursor:pointer;color:var(--color-text-secondary, #6b7280);transition:all .2s}.developer-management .btn-back:hover{background:var(--color-background, #f9fafb);border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.developer-management .header-content{display:flex;align-items:center;gap:16px}.developer-management .header-info{display:flex;flex-direction:column;gap:4px}.developer-management .header-title-row{display:flex;align-items:center;gap:12px}.developer-management .header-title-row h1{margin:0;font-size:24px;font-weight:600;color:var(--color-text-primary, #1f2937)}.developer-management .btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.developer-management .btn-secondary:hover{background:var(--color-primary-hover, #2563eb)}.developer-management .tabs{display:flex;gap:4px;padding:4px;background:var(--color-background, #f9fafb);border-radius:8px;margin-bottom:20px}.developer-management .tab{padding:10px 20px;background:transparent;border:none;border-radius:6px;font-size:14px;font-weight:500;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .2s}.developer-management .tab:hover{color:var(--color-text-primary, #1f2937)}.developer-management .tab.active{background:var(--color-surface, #fff);color:var(--color-primary, #3b82f6);box-shadow:0 1px 3px #0000001a}.developer-management .tab-content{background:var(--color-surface, #fff);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.developer-management .tab-panel{padding:20px}.developer-management .list-table-container{overflow-x:auto}.developer-management .list-table{width:100%;border-collapse:collapse}.developer-management .list-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary, #6b7280);background:var(--color-background, #f9fafb);border-bottom:1px solid var(--color-border, #e5e7eb)}.developer-management .list-table td{padding:14px 16px;font-size:14px;color:var(--color-text-primary, #1f2937);border-bottom:1px solid var(--color-border, #e5e7eb)}.developer-management .list-table tbody tr:last-child td{border-bottom:none}.developer-management .list-table tbody tr:hover{background:var(--color-background, #f9fafb)}.project-form{display:flex;flex-direction:column;gap:16px}.project-form .form-group{display:flex;flex-direction:column;gap:6px}.project-form .form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary, #374151)}.project-form .form-group input{padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;color:var(--color-text-primary, #1f2937);background:var(--color-surface, #fff);transition:border-color .2s,box-shadow .2s}.project-form .form-group input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.developer-management .panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.developer-management .panel-header .search-input{flex:1;max-width:400px}.developer-management .btn-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.developer-management .btn-primary:hover{background:var(--color-primary-hover, #2563eb)}.developer-management .btn-primary svg{width:16px;height:16px}.developer-management .user-cell{display:flex;align-items:center;gap:12px}.developer-management .project-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.developer-management .project-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-primary, #3b82f6);color:#fff;border-radius:4px;font-size:12px;font-weight:500}.developer-management .chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:#fff3;border:none;border-radius:50%;cursor:pointer;color:#fff;transition:background .2s}.developer-management .chip-remove:hover{background:#ffffff4d}.developer-management .add-project-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;color:var(--color-primary, #3b82f6);border:1px dashed var(--color-primary, #3b82f6);border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.developer-management .add-project-btn:hover{background:var(--color-primary, #3b82f6);color:#fff}.developer-management .project-code{padding:2px 6px;background:var(--color-background, #f3f4f6);border-radius:4px;font-size:12px;font-family:monospace;color:var(--color-text-secondary, #6b7280)}.developer-management .form{display:flex;flex-direction:column;gap:16px}.developer-management .form .form-group{display:flex;flex-direction:column;gap:6px}.developer-management .form .form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary, #374151)}.developer-management .form .form-group input,.developer-management .form .form-group select{padding:10px 12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;color:var(--color-text-primary, #1f2937);background:var(--color-surface, #fff);transition:border-color .2s,box-shadow .2s}.developer-management .form .form-group input:focus,.developer-management .form .form-group select:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.developer-management .form-info{display:flex;align-items:center;gap:8px;padding:12px;background:var(--color-background, #f9fafb);border-radius:6px;font-size:13px;color:var(--color-text-secondary, #6b7280)}.developer-management .form-info svg{flex-shrink:0;color:var(--color-primary, #3b82f6)}.developer-management .assignment-modal{display:flex;flex-direction:column;gap:24px}.developer-management .assignment-modal h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text-primary, #1f2937)}.developer-management .current-assignments{padding-bottom:16px;border-bottom:1px solid var(--color-border, #e5e7eb)}.developer-management .no-assignments{margin:0;padding:16px;text-align:center;background:var(--color-background, #f9fafb);border-radius:6px;font-size:13px;color:var(--color-text-secondary, #6b7280)}.developer-management .project-list{display:flex;flex-direction:column;gap:8px}.developer-management .assignment-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--color-background, #f9fafb);border-radius:6px;transition:background .2s}.developer-management .assignment-item:hover{background:var(--color-border, #e5e7eb)}.developer-management .assignment-info{display:flex;flex-direction:column;gap:2px}.developer-management .assignment-info .project-name{font-size:14px;font-weight:500;color:var(--color-text-primary, #1f2937)}.developer-management .assignment-info .project-code-small{font-size:11px;font-family:monospace;color:var(--color-text-secondary, #6b7280)}.developer-management .assignment-item .btn-icon{padding:6px;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary, #6b7280);transition:color .2s}.developer-management .assignment-item .btn-icon:hover{color:var(--color-text-primary, #1f2937)}.developer-management .assignment-item .btn-icon.btn-danger:hover{color:#dc2626}.developer-management .tab svg{width:16px;height:16px;margin-right:6px}.developer-management .invite-success{display:flex;flex-direction:column;gap:20px;text-align:center}.developer-management .invite-success-icon{display:flex;justify-content:center;margin-bottom:8px}.developer-management .invite-success h3{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary, #1f2937)}.developer-management .invite-success p{margin:0;font-size:14px;color:var(--color-text-secondary, #6b7280)}.developer-management .invite-link-container{display:flex;gap:8px;margin-top:8px}.developer-management .invite-link-input{flex:1;padding:12px;border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;font-family:monospace;background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937)}.developer-management .invite-details{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-background, #f9fafb);border-radius:8px;text-align:left}.developer-management .invite-detail-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border, #e5e7eb)}.developer-management .invite-detail-item:last-child{border-bottom:none}.developer-management .detail-label{font-size:13px;font-weight:500;color:var(--color-text-secondary, #6b7280)}.developer-management .detail-value{font-size:13px;color:var(--color-text-primary, #1f2937)}.developer-management .share-options{display:flex;align-items:center;gap:12px;padding:16px;background:var(--color-background, #f9fafb);border-radius:8px;justify-content:center}.developer-management .share-label{font-size:13px;font-weight:500;color:var(--color-text-secondary, #6b7280)}.developer-management .share-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:13px;font-weight:500;color:var(--color-text-primary, #1f2937);text-decoration:none;cursor:pointer;transition:all .2s}.developer-management .share-btn:hover{background:var(--color-background, #f9fafb);border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.developer-management .share-btn.email:hover{background:var(--color-primary, #3b82f6);color:#fff;border-color:var(--color-primary, #3b82f6)}.developer-management .form .btn-copy{padding:10px 16px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.developer-management .form .btn-copy:hover{background:var(--color-primary-hover, #2563eb)}.developer-management .form .btn-copy.copied{background:#10b981}.developer-management .invite-details .status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.developer-management .invite-details .status-badge.status-active{background:#d1fae5;color:#065f46}.developer-management .invite-details .status-badge.status-inactive{background:#fee2e2;color:#991b1b}.developer-management .invite-details .status-badge.status-expired{background:#fef3c7;color:#92400e}.developer-management .form .form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border, #e5e7eb)}.developer-management .form .btn-cancel{padding:10px 20px;background:transparent;color:var(--color-text-secondary, #6b7280);border:1px solid var(--color-border, #d1d5db);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.developer-management .form .btn-cancel:hover{background:var(--color-background, #f9fafb);color:var(--color-text-primary, #1f2937)}.developer-management .form .btn-submit{padding:10px 20px;background:var(--color-primary, #3b82f6);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.developer-management .form .btn-submit:hover:not(:disabled){background:var(--color-primary-hover, #2563eb)}.developer-management .form .btn-submit:disabled{opacity:.6;cursor:not-allowed}.search-input{display:flex;align-items:center;gap:10px;width:100%;position:relative}.search-input__icon{color:var(--color-text-secondary, #6b7280);flex-shrink:0}.search-input__field{width:100%;padding:10px 40px 10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;font-size:.875rem;background-color:var(--color-bg-secondary, #f9fafb);color:var(--color-text, #111827);transition:border-color .2s,box-shadow .2s}.search-input__field:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a;background-color:#fff}.search-input__field::placeholder{color:var(--color-text-secondary, #9ca3af)}.search-input__clear{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;background-color:transparent;color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:background-color .2s,color .2s}.search-input__clear:hover{background-color:var(--color-bg-hover, #f3f4f6);color:var(--color-text, #111827)}.search-input__clear:focus{outline:none;box-shadow:0 0 0 2px #3b82f680}:root{--color-primary: #1E40AF;--color-primary-hover: #1E3A8A;--color-secondary: #475569;--color-accent: #F59E0B;--color-success: #10B981;--color-warning: #F97316;--color-error: #EF4444;--color-background: #FFFFFF;--color-surface: #F8FAFC;--color-border: #E2E8F0;--color-text-primary: #1E293B;--color-text-secondary: #64748B;--color-status-pending: #94A3B8;--color-status-in-progress: #3B82F6;--color-status-completed: #10B981;--color-status-delayed: #EF4444;--color-chart-planned: #93C5FD;--color-chart-actual: #1E40AF;--color-chart-delay: #FCA5A5;--color-chart-complete: #6EE7B7;--navbar-height: 4rem;--scopebar-height: 2.25rem;--header-height: calc(var(--navbar-height) + var(--scopebar-height));--footer-height: 3rem;--sidebar-width: 18rem;--sidebar-collapsed: 4rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--border-radius: 6px;--border-radius-lg: 8px;--border-radius-xl: 12px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--color-primary: #3B82F6;--color-primary-hover: #60A5FA;--color-secondary: #94A3B8;--color-accent: #FBBF24;--color-success: #34D399;--color-warning: #FB923C;--color-error: #F87171;--color-background: #0F172A;--color-surface: #1E293B;--color-border: #334155;--color-text-primary: #F8FAFC;--color-text-secondary: #94A3B8;--color-status-pending: #64748B;--color-status-in-progress: #60A5FA;--color-status-completed: #34D399;--color-status-delayed: #F87171;--color-chart-planned: #60A5FA;--color-chart-actual: #3B82F6;--color-chart-delay: #F87171;--color-chart-complete: #34D399}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-secondary)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-background)}html,body{overflow-x:hidden}
