.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);z-index:100;transition:width var(--transition-slow)}.sidebar.collapsed{width:72px}.sidebar-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-subtle)}.sidebar-logo{width:40px;height:40px;flex-shrink:0;padding:6px;background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-default)}.sidebar-logo svg{width:100%;height:100%}.sidebar-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden}.sidebar-toggle{margin-left:auto;padding:var(--spacing-xs);background:transparent;border:none;cursor:pointer;opacity:.5;transition:opacity var(--transition-fast)}.sidebar-toggle:hover{opacity:1}.sidebar-toggle svg{color:var(--text-secondary)}.sidebar.collapsed .sidebar-toggle{margin-left:0}.sidebar-nav{flex:1;padding:var(--spacing-sm) var(--spacing-md);display:flex;flex-direction:column;gap:0;overflow-y:auto}.sidebar-group{margin-bottom:var(--spacing-sm)}.sidebar-group:last-child{margin-bottom:0}.sidebar-group-title{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:var(--spacing-md) var(--spacing-md) var(--spacing-xs);margin-top:var(--spacing-xs)}.sidebar-group:first-child .sidebar-group-title{margin-top:0}.sidebar-group-divider{height:1px;background:var(--border-subtle);margin:var(--spacing-sm) var(--spacing-md)}.sidebar-link{display:block;text-decoration:none;border-radius:var(--radius-md);transition:background var(--transition-fast)}.sidebar-link:hover{background:var(--surface-2)}.sidebar-link.active{background:var(--accent-blue-muted)}.sidebar-link-content{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.sidebar-link-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.sidebar-link-icon{color:var(--text-tertiary);transition:color var(--transition-fast)}.sidebar-link:hover .sidebar-link-icon,.sidebar-link.active .sidebar-link-icon{color:var(--text-primary)}.sidebar-link-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;transition:color var(--transition-fast)}.sidebar-link:hover .sidebar-link-label,.sidebar-link.active .sidebar-link-label{color:var(--text-primary)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--spacing-md)}.sidebar-user{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--surface-1);border-radius:var(--radius-md)}.sidebar-user-avatar{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;color:#fff;overflow:hidden}.sidebar-user-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-user-info{display:flex;flex-direction:column;overflow:hidden}.sidebar-user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:capitalize}.sidebar-logout{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-sm);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.sidebar-logout:hover{background:var(--accent-red-muted);border-color:var(--accent-red);color:var(--accent-red)}.sidebar-logout svg{color:var(--text-tertiary);transition:color var(--transition-fast)}.sidebar-logout:hover svg{color:var(--accent-red)}.sidebar.collapsed .sidebar-logout{padding:var(--spacing-sm)}@media(max-width:768px){.sidebar{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;border-radius:10px;transition:all .15s ease;cursor:pointer;border:1px solid transparent;white-space:nowrap;line-height:1;vertical-align:middle}.btn-md{height:40px;padding:0 16px;font-size:14px}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);box-shadow:0 2px 8px #00000026}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary);border-color:var(--border-subtle)}.btn-danger{background:var(--accent-red);color:#fff;border:none}.btn-full{width:100%}.btn-text{display:inline-flex;align-items:center;line-height:1}.btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.btn-icon svg{width:18px;height:18px;display:block}.btn-icon-left{margin-right:0}.btn-icon-right{margin-left:0}.btn-primary .btn-icon svg,.btn-danger .btn-icon svg{color:#fff}.btn-secondary .btn-icon svg{color:var(--text-primary)}.btn-ghost .btn-icon svg{color:var(--text-secondary)}.btn-loader{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite}.btn-secondary .btn-loader,.btn-ghost .btn-loader{border-color:var(--border-default);border-top-color:var(--text-primary)}@keyframes btn-spin{to{transform:rotate(360deg)}}.notification-center-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}.notification-center{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--bg-primary);border-left:1px solid var(--border-color);z-index:1000;display:flex;flex-direction:column;box-shadow:-4px 0 20px #0003}.notification-center-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-color);background:var(--bg-elevated)}.notification-center-header h2{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.unread-badge{background:var(--primary);color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:20px;min-width:20px;text-align:center}.close-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:8px;transition:all .2s}.close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-filters{display:flex;gap:8px;padding:12px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.filter-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--primary);color:var(--primary)}.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.filter-count{background:#fff3;padding:2px 6px;border-radius:10px;font-size:11px}.filter-btn.active .filter-count{background:#ffffff4d}.notification-list{flex:1;overflow-y:auto;padding:12px}.notification-loading,.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);text-align:center}.notification-loading svg,.notification-empty svg{margin-bottom:12px;opacity:.5}.notification-loading svg{animation:spin 1s linear infinite}.notification-empty p{margin:0;font-size:14px}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--bg-elevated);border-radius:12px;margin-bottom:8px;cursor:pointer;transition:all .2s;border-left:3px solid transparent}.notification-item:hover{background:var(--bg-tertiary)}.notification-item:last-child{margin-bottom:0}.notification-item.read{opacity:.7}.notification-item.read:hover{opacity:1}.notification-item.info{border-left-color:var(--primary)}.notification-item.success{border-left-color:var(--success)}.notification-item.warning{border-left-color:var(--warning)}.notification-item.danger{border-left-color:var(--danger)}.notification-icon{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center}.notification-icon.info{background:var(--primary-alpha);color:var(--primary)}.notification-icon.success{background:rgba(var(--success-rgb),.15);color:var(--success)}.notification-icon.warning{background:rgba(var(--warning-rgb),.15);color:var(--warning)}.notification-icon.danger{background:rgba(var(--danger-rgb),.15);color:var(--danger)}.notification-message{margin:0 0 4px;font-size:14px;color:var(--text-primary);line-height:1.4}.notification-item.read .notification-message{color:var(--text-secondary)}.notification-time{font-size:12px;color:var(--text-muted)}.notification-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.notification-item:hover .notification-actions{opacity:1}.action-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:6px;transition:all .2s}.action-btn:hover{background:var(--bg-secondary)}.action-btn.read-btn:hover{color:var(--success)}.action-btn.delete-btn:hover{color:var(--danger)}@media(max-width:480px){.notification-center{width:100vw;border-left:none}.notification-center-header{padding:16px}.notification-filters{padding:10px 16px}.notification-list{padding:10px}.notification-item{padding:12px}.notification-actions{opacity:1}}.notification-bell{position:relative}.bell-button{width:40px;height:40px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all .15s}.bell-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-bell .bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center}.connection-dot{position:absolute;bottom:2px;right:2px;width:6px;height:6px;border-radius:50%;border:1px solid var(--bg-secondary)}.connection-dot.connected{background:#22c55e}.connection-dot.disconnected{background:#6b7280}.live-badge{margin-left:8px;padding:2px 6px;background:#22c55e26;color:#22c55e;font-size:10px;font-weight:600;text-transform:uppercase;border-radius:4px;letter-spacing:.5px}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0003;overflow:hidden;z-index:1000}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.dropdown-header h4{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.mark-all-btn{background:none;border:none;color:var(--accent-color);font-size:13px;cursor:pointer}.mark-all-btn:hover{text-decoration:underline}.notifications-list{max-height:360px;overflow-y:auto}.loading{display:flex;align-items:center;justify-content:center;padding:40px}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.no-notifications{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-tertiary)}.no-notifications p{margin:12px 0 0;font-size:14px}.notification-item{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s;position:relative}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--bg-hover)}.notification-item.unread{background:#3b82f60d}.notification-icon{width:32px;height:32px;border-radius:8px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.notification-item.unread .notification-icon{background:#3b82f633;color:var(--accent-color)}.notification-content{flex:1;min-width:0}.notification-title{margin:0 0 4px;font-size:14px;font-weight:500;color:var(--text-primary)}.notification-message{margin:0 0 4px;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-time{font-size:12px;color:var(--text-tertiary)}.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-color);flex-shrink:0;margin-top:6px}.dropdown-footer{padding:12px 16px;text-align:center;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.dropdown-footer a,.dropdown-footer button{color:var(--accent-color);text-decoration:none;font-size:13px;font-weight:500;background:none;border:none;cursor:pointer}.dropdown-footer a:hover,.dropdown-footer button:hover{text-decoration:underline}@media(max-width:768px){.bell-button{width:36px;height:36px;border-radius:8px}.notification-bell .bell-badge{top:-2px;right:-2px;min-width:16px;height:16px;font-size:9px}.notification-dropdown{position:fixed;top:60px;left:12px;right:12px;width:auto;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);border-radius:14px}.dropdown-header{padding:14px}.dropdown-header h4{font-size:15px}.notifications-list{max-height:300px}.notification-item{padding:12px 14px;gap:10px}.notification-icon{width:28px;height:28px;border-radius:6px}.notification-title{font-size:13px}.notification-message{font-size:12px}.notification-time{font-size:11px}.dropdown-footer{padding:10px 14px}}@media(max-width:480px){.bell-button{width:32px;height:32px}.notification-dropdown{top:56px;left:8px;right:8px;border-radius:12px}}.notification-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #00000040;max-width:400px;min-width:300px;z-index:10000;cursor:pointer}.toast-icon{width:36px;height:36px;border-radius:8px;background:#3b82f626;color:var(--accent-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-content{flex:1;min-width:0}.toast-title{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--text-primary)}.toast-message{margin:0;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.toast-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;margin:-4px -4px -4px 0;border-radius:6px;transition:all .15s}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media(max-width:480px){.notification-toast{top:auto;bottom:20px;left:16px;right:16px;transform:none;min-width:auto;max-width:none}}.notification-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:10000}.notification-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:480px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 16px 48px #0000004d;z-index:10001;overflow:hidden}.notification-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 20px 0}.notification-modal-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.notification-modal-icon.info{background:#3b82f626;color:#3b82f6}.notification-modal-icon.success{background:#22c55e26;color:#22c55e}.notification-modal-icon.warning{background:#f59e0b26;color:#f59e0b}.notification-modal-icon.danger{background:#ef444426;color:#ef4444}.notification-modal-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:8px;border-radius:8px;transition:all .15s}.notification-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-modal-body{padding:16px 20px 20px}.notification-modal-title{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--text-primary);line-height:1.4}.notification-modal-message{margin:0 0 16px;font-size:15px;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;word-break:break-word}.notification-modal-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.notification-modal-time{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-tertiary)}.notification-modal-tag{padding:4px 10px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:500;border-radius:6px}.notification-modal-footer{padding:16px 20px;background:var(--bg-tertiary);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.notification-modal-btn{padding:10px 20px;background:var(--accent-color);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.notification-modal-btn:hover{opacity:.9}@media(max-width:480px){.notification-modal{width:calc(100% - 32px);max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto}.notification-modal-header{padding:16px 16px 0}.notification-modal-icon{width:40px;height:40px}.notification-modal-body{padding:12px 16px 16px}.notification-modal-title{font-size:16px}.notification-modal-message{font-size:14px}.notification-modal-footer{padding:12px 16px}}.header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);height:var(--header-height);padding:0 var(--spacing-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:50}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.header-mobile-menu{display:none;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.header-mobile-menu:hover{background:var(--surface-2)}.header-mobile-menu{color:var(--text-secondary)}.header-title{font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:var(--spacing-md)}.header-search{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-search:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}.header-search svg{color:var(--text-tertiary)}.header-search-input{width:200px;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--text-sm)}.header-search-input::placeholder{color:var(--text-tertiary)}.header-search-shortcut{padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.header-icon-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.header-icon-btn:hover{background:var(--bg-hover);border-color:var(--border-default)}.header-icon-btn svg{color:var(--text-secondary)}.header-user{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);padding-left:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.header-user:hover{background:var(--bg-hover);border-color:var(--border-default)}.header-user-info{display:flex;flex-direction:column;align-items:flex-end}.header-user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.header-user-org{font-size:var(--text-xs);color:var(--text-tertiary)}.header-user-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);border-radius:50%;font-size:var(--text-xs);font-weight:600;color:#fff;overflow:hidden}.header-user-avatar img{width:100%;height:100%;object-fit:cover}@media(max-width:768px){.header{padding:0 var(--spacing-md);gap:var(--spacing-sm)}.header-mobile-menu{display:flex}.header-title{font-size:var(--text-lg)}.header-search,.header-user-info,.header-icon-btn{display:none}.notification-bell{display:flex!important}.header-user{padding:var(--spacing-xs);border-radius:50%}.header-user-avatar{width:36px;height:36px}}@media(max-width:480px){.header{padding:0 12px;height:56px}.header-mobile-menu{width:40px;height:40px}.header-title{font-size:var(--text-base)}.header-user-avatar{width:32px;height:32px}}.mobile-nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:999}.mobile-nav-drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;background:var(--bg-secondary);border-right:1px solid var(--border-default);z-index:1000;display:flex;flex-direction:column;overflow:hidden}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-subtle)}.mobile-nav-brand{display:flex;align-items:center;gap:var(--spacing-sm)}.mobile-nav-logo{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-blue) 0%,var(--accent-purple) 100%);border-radius:var(--radius-md);font-weight:700;font-size:var(--text-lg);color:#fff}.mobile-nav-brand span{font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.mobile-nav-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.mobile-nav-close:hover{background:var(--surface-2)}.mobile-nav-close{color:var(--text-secondary)}.mobile-nav-user{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.mobile-nav-avatar{width:48px;height:48px;border-radius:50%;background:var(--accent-blue-muted);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.mobile-nav-avatar img{width:100%;height:100%;object-fit:cover}.mobile-nav-avatar span{font-weight:600;font-size:var(--text-base);color:var(--accent-blue)}.mobile-nav-user-info{display:flex;flex-direction:column;min-width:0}.mobile-nav-user-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-nav-user-email{font-size:var(--text-sm);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-nav-links{flex:1;padding:var(--spacing-sm) var(--spacing-md);overflow-y:auto}.mobile-nav-group{margin-bottom:var(--spacing-sm)}.mobile-nav-group:last-child{margin-bottom:0}.mobile-nav-group-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:var(--spacing-md) var(--spacing-md) var(--spacing-xs);margin-top:var(--spacing-xs)}.mobile-nav-group:first-child .mobile-nav-group-title{margin-top:0}.mobile-nav-link{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;font-size:var(--text-base);transition:all var(--transition-fast);min-height:48px}.mobile-nav-link:hover{background:var(--surface-1);color:var(--text-primary)}.mobile-nav-link.active{background:var(--accent-blue-muted);color:var(--accent-blue)}.mobile-nav-link svg{color:var(--text-tertiary)}.mobile-nav-link:hover svg{color:var(--text-primary)}.mobile-nav-link.active svg{color:var(--accent-blue)}.mobile-nav-footer{padding:var(--spacing-md);border-top:1px solid var(--border-subtle)}.mobile-nav-logout{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);border:none;border-radius:var(--radius-md);background:transparent;color:var(--accent-red);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-fast);min-height:48px}.mobile-nav-logout:hover{background:var(--accent-red-muted)}.mobile-nav-logout svg{color:var(--accent-red)}.layout{display:flex;min-height:100vh;min-height:100dvh;background:var(--bg-primary)}.layout-main{flex:1;display:flex;flex-direction:column;margin-left:var(--sidebar-width);transition:margin-left var(--transition-slow);min-width:0;max-width:100%}.layout.sidebar-collapsed .layout-main{margin-left:72px}.layout-content{flex:1;padding:var(--spacing-xl);overflow-y:auto;overflow-x:hidden;min-height:0}@media(max-width:768px){.layout{flex-direction:column}.layout-main{margin-left:0;width:100%;min-height:calc(100vh - var(--header-height));min-height:calc(100dvh - var(--header-height))}.layout-content{padding:0;overflow-x:hidden}}@media(max-width:480px){.layout-content{padding:0}}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:var(--bg-primary);z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.loading-logo{width:80px;height:80px;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-default)}.loading-logo svg{width:100%;height:100%}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--accent-blue);border-radius:50%}.loading-text{color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.05em}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.input-container{position:relative;display:flex;align-items:center}.input-field{width:100%;height:44px;padding:0 var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition:all var(--transition-fast)}.input-field:hover{border-color:var(--border-strong)}.input-field:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-muted)}.input-field.has-left-icon{padding-left:44px}.input-field.has-right-icon{padding-right:44px}.input-container.input-error .input-field{border-color:var(--accent-red)}.input-container.input-error .input-field:focus{box-shadow:0 0 0 3px var(--accent-red-muted)}.input-icon{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;pointer-events:none}.input-icon-left{left:0}.input-icon-right{right:0}.input-icon img{width:20px;height:20px;opacity:.5}.input-password-toggle{position:absolute;right:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs);color:var(--text-tertiary);background:transparent;border:none;cursor:pointer;transition:color var(--transition-fast)}.input-password-toggle:hover{color:var(--text-primary)}.input-helper{font-size:var(--text-sm);color:var(--text-tertiary)}.input-helper-error{color:var(--accent-red)}.card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-base)}.card-default{background:var(--bg-secondary)}.card-glass{background:var(--surface-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.card-elevated{background:var(--bg-elevated);box-shadow:var(--shadow-lg)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-default);box-shadow:var(--shadow-lg)}.card-padding-none{padding:0}.card-padding-sm{padding:var(--spacing-sm)}.card-padding-md{padding:var(--spacing-md)}.card-padding-lg{padding:var(--spacing-lg)}.service-card{position:relative;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);cursor:pointer;overflow:hidden;transition:border-color var(--transition-base)}.service-card-glow{position:absolute;top:-50%;left:-50%;width:200%;height:200%;opacity:0;filter:blur(60px);transition:opacity var(--transition-slow);pointer-events:none}.service-card:hover .service-card-glow{opacity:.08}.service-card-content{position:relative;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);z-index:1}.service-card-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);border:1px solid;transition:transform var(--transition-base)}.service-card:hover .service-card-icon{transform:scale(1.1)}.service-card-icon svg{color:#fff}.service-card-info{flex:1}.service-card-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.service-card-description{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.service-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.service-card-status{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.status-dot{width:6px;height:6px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.service-card-arrow{opacity:.5;transition:opacity var(--transition-fast)}.service-card:hover .service-card-arrow{opacity:1}.service-card-arrow svg{color:var(--text-secondary)}.service-card-border{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity var(--transition-base)}.service-card:hover .service-card-border{opacity:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;overflow-y:auto}.modal{position:relative;width:100%;max-height:calc(100vh - var(--spacing-xl) * 2);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden}.modal-sm{max-width:400px}.modal-md{max-width:500px}.modal-lg{max-width:700px}.modal-xl{max-width:900px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.modal-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.modal-close:hover{background:var(--surface-2)}.modal-close svg{color:var(--text-secondary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-subtle);flex-shrink:0}@media(max-width:768px){.modal-overlay{padding:0;align-items:flex-end}.modal{max-height:90vh;border-radius:20px 20px 0 0;margin-bottom:0}.modal-sm,.modal-md,.modal-lg,.modal-xl{max-width:100%}.modal-header{padding:16px}.modal-title{font-size:16px}.modal-body{padding:16px}.modal-footer{padding:16px;flex-direction:column-reverse;gap:8px}.modal-footer .btn,.modal-footer button{width:100%}}@media(max-width:480px){.modal{max-height:92vh;border-radius:16px 16px 0 0}.modal-header{padding:14px}.modal-title{font-size:15px}.modal-body,.modal-footer{padding:14px}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1100}.confirm-dialog{width:100%;max-width:400px;padding:var(--spacing-xl);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);text-align:center}.confirm-icon{width:56px;height:56px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;border-radius:50%}.confirm-icon svg{color:#fff}.confirm-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.confirm-message{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--spacing-xl)}.confirm-actions{display:flex;gap:var(--spacing-sm)}.confirm-actions>button{flex:1}@media(max-width:480px){.confirm-dialog{padding:var(--spacing-lg)}.confirm-actions{flex-direction:column-reverse}}.select-wrapper{position:relative;display:flex;flex-direction:column;gap:var(--spacing-xs)}.select-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);height:44px;padding:0 var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.select-trigger:hover:not(.disabled){border-color:var(--border-strong)}.select-trigger.open{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-muted)}.select-trigger.error{border-color:var(--accent-red)}.select-trigger.disabled{opacity:.5;cursor:not-allowed}.select-value{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-value.placeholder{color:var(--text-tertiary)}.select-value svg{color:var(--text-secondary)}.select-arrow{display:flex;align-items:center;transform:rotate(90deg);transition:transform var(--transition-fast);color:var(--text-tertiary)}.select-arrow.open{transform:rotate(-90deg)}.select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:var(--spacing-xs);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.select-search{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary)}.select-search input{flex:1;background:transparent;border:none;outline:none;font-size:var(--text-sm);color:var(--text-primary)}.select-search input::placeholder{color:var(--text-tertiary)}.select-options{max-height:200px;overflow-y:auto}.select-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.select-option:hover{background:var(--surface-2);color:var(--text-primary)}.select-option.selected{background:var(--accent-blue-muted);color:var(--accent-blue)}.select-option svg{color:var(--text-tertiary)}.select-option:hover svg,.select-option.selected svg{color:inherit}.select-checkbox{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:2px solid var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--bg-tertiary)}.select-checkbox.checked{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.select-color{width:12px;height:12px;border-radius:50%;margin-left:auto}.select-empty{padding:var(--spacing-md);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.select-error{font-size:var(--text-sm);color:var(--accent-red)}.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;border-radius:20px;white-space:nowrap;flex-shrink:0;line-height:1;vertical-align:middle}.badge-sm{padding:3px 8px;font-size:11px;min-height:20px}.badge-md{padding:5px 12px;font-size:12px;min-height:24px}.badge-default{background:#80808040;color:#9ca3af}.badge-primary{background:#3b82f640;color:#60a5fa}.badge-success{background:#22c55e40;color:#4ade80}.badge-warning{background:#f59e0b40;color:#fbbf24}.badge-danger{background:#ef444440;color:#f87171}.badge-info{background:#8b5cf640;color:#a78bfa}[data-theme=light] .badge-default{background:#80808026;color:#6b7280}[data-theme=light] .badge-primary{background:#3b82f626;color:#2563eb}[data-theme=light] .badge-success{background:#22c55e26;color:#16a34a}[data-theme=light] .badge-warning{background:#f59e0b26;color:#d97706}[data-theme=light] .badge-danger{background:#ef444426;color:#dc2626}[data-theme=light] .badge-info{background:#8b5cf626;color:#7c3aed}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:badge-pulse 2s ease-in-out infinite;flex-shrink:0}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.5}}.table-container{overflow-x:auto;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--spacing-md);text-align:left}.table th{font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:var(--bg-tertiary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.table td{font-size:var(--text-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-1)}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:var(--surface-2)}.table .skeleton{background:linear-gradient(90deg,var(--surface-1) 25%,var(--surface-2) 50%,var(--surface-1) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.table-empty{padding:var(--spacing-3xl);text-align:center;color:var(--text-tertiary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.table-mobile{display:none}.table-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.table-card.clickable{cursor:pointer}.table-card.clickable:hover{border-color:var(--border-default)}.table-card:last-child{margin-bottom:0}@media(max-width:768px){.table-desktop{display:none}.table-mobile{display:block}.hide-mobile{display:none}}.permission-picker{width:100%}.permission-picker-trigger{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s}.permission-picker-trigger:hover{border-color:var(--color-primary)}.permission-picker-value{flex:1}.permission-picker-value .placeholder{color:var(--color-text-tertiary)}.permission-picker-value .selected-count{color:var(--color-text-primary);font-weight:500}.permission-picker-modal{display:flex;flex-direction:column;height:70vh;max-height:600px}.pp-header{display:flex;gap:1rem;align-items:center;flex-shrink:0;padding-bottom:1rem}.pp-search{flex:1;display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px}.pp-search input{flex:1;background:transparent;border:none;color:var(--color-text-primary);font-size:.9rem;outline:none}.pp-search input::placeholder{color:var(--color-text-tertiary)}.pp-search-clear{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px}.pp-search-clear:hover{color:var(--color-text-primary);background:var(--color-surface)}.pp-actions{display:flex;gap:.5rem;flex-shrink:0}.pp-summary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;color:var(--color-primary);font-size:.875rem;flex-shrink:0;margin-bottom:1rem}.pp-categories{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding-right:.5rem;min-height:0}.pp-categories::-webkit-scrollbar{width:6px}.pp-categories::-webkit-scrollbar-track{background:var(--color-surface);border-radius:3px}.pp-categories::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.pp-categories::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.pp-category{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;flex-shrink:0}.pp-category-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;cursor:pointer;transition:background .2s;gap:.75rem}.pp-category-header:hover{background:var(--color-surface)}.pp-category-left{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.pp-category-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:6px;color:#fff;flex-shrink:0}.pp-category-icon .icon{width:16px;height:16px}.pp-category-name{font-weight:600;font-size:.9rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-category-count{font-size:.8rem;color:var(--color-text-secondary);padding:.2rem .5rem;background:var(--color-surface);border-radius:4px;flex-shrink:0;font-weight:500}.pp-category-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s;flex-shrink:0}.pp-category-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.pp-category-toggle.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pp-category-toggle.partial{background:#3b82f633;border-color:var(--color-primary);color:var(--color-primary)}.pp-permissions{display:flex;flex-direction:column;border-top:1px solid var(--color-border);background:var(--color-surface)}.pp-permission{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem .75rem 3rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--color-border)}.pp-permission:last-child{border-bottom:none}.pp-permission:hover{background:var(--color-surface-elevated)}.pp-permission.selected{background:#3b82f614}.pp-permission input{display:none}.pp-checkbox{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-elevated);border:2px solid var(--color-border);border-radius:4px;transition:all .15s}.pp-permission:hover .pp-checkbox{border-color:var(--color-primary)}.pp-permission.selected .pp-checkbox{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pp-permission-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.pp-permission-name{font-weight:500;font-size:.875rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-permission-code{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary)}.pp-permission-desc{font-size:.8rem;color:var(--color-text-secondary);line-height:1.3;display:none}.pp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--color-text-tertiary);gap:.5rem}.pp-import-wrapper{position:relative}.pp-import-menu{position:absolute;top:100%;right:0;margin-top:.5rem;min-width:220px;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 40px #0000004d;z-index:100;overflow:hidden}.pp-import-title{padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border)}.pp-import-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .15s}.pp-import-item:hover{background:var(--color-surface)}.pp-import-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pp-import-name{flex:1;font-size:.875rem;color:var(--color-text-primary)}.pp-import-count{font-size:.75rem;color:var(--color-text-tertiary)}.pp-footer{display:flex;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--color-border);margin-top:1rem;flex-shrink:0}@media(max-width:640px){.pp-header{flex-direction:column;align-items:stretch}.pp-actions{justify-content:flex-end}.pp-permission{padding-left:1rem}}.two-factor-step{width:100%;text-align:center}.two-factor-back{display:flex;align-items:center;gap:var(--spacing-xs);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;margin-bottom:var(--spacing-lg);transition:color var(--transition-fast)}.two-factor-back:hover{color:var(--text-primary)}.two-factor-back svg{transform:rotate(180deg);color:var(--text-tertiary)}.two-factor-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;background:var(--accent-blue-muted);border-radius:50%}.two-factor-icon svg{color:var(--accent-blue)}.two-factor-title{font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.two-factor-subtitle{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-xl);line-height:1.5}.two-factor-code-inputs{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.two-factor-input{width:48px;height:56px;text-align:center;font-size:var(--text-2xl);font-weight:600;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-tertiary);border:2px solid var(--border-default);border-radius:var(--radius-md);outline:none;transition:all var(--transition-fast)}.two-factor-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-muted)}.two-factor-input.error{border-color:var(--accent-red);animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.two-factor-input:disabled{opacity:.5}.two-factor-error{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--accent-red-muted);border:1px solid var(--accent-red);border-radius:var(--radius-md);color:var(--accent-red);font-size:var(--text-sm)}.two-factor-resend{margin-top:var(--spacing-lg);font-size:var(--text-sm);color:var(--text-tertiary)}.two-factor-resend-btn{background:transparent;border:none;color:var(--accent-blue);cursor:pointer;font-size:var(--text-sm);transition:color var(--transition-fast)}.two-factor-resend-btn:hover{color:var(--accent-blue-light);text-decoration:underline}.two-factor-resend-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:480px){.two-factor-input{width:40px;height:48px;font-size:var(--text-xl)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);position:relative;overflow:hidden}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.login-bg-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 20%,rgba(59,130,246,.15) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(16,185,129,.1) 0%,transparent 50%)}.login-bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px}.login-bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}.login-bg-orb-1{width:400px;height:400px;background:var(--accent-blue);top:10%;left:10%}.login-bg-orb-2{width:300px;height:300px;background:var(--accent-green);bottom:20%;right:15%}.login-card{position:relative;z-index:1;width:100%;max-width:400px;padding:var(--spacing-2xl);background:var(--surface-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-default);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl)}.login-logo{width:64px;height:64px;margin:0 auto var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl)}.login-logo svg{width:100%;height:100%}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.login-subtitle{color:var(--text-tertiary);font-size:var(--text-sm)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-error{padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-red-muted);border:1px solid var(--accent-red);border-radius:var(--radius-md);color:var(--accent-red);font-size:var(--text-sm);text-align:center}.login-footer{margin-top:var(--spacing-xl);text-align:center;font-size:var(--text-xs);color:var(--text-muted)}.dashboard-page{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-lg)}.dashboard-welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,#6366f1 100%);border-radius:var(--radius-xl);color:#fff}@media(max-width:768px){.dashboard-welcome{flex-direction:column}}.dashboard-welcome-content{flex:1}.dashboard-greeting{font-size:var(--text-2xl);font-weight:600;margin:0 0 var(--spacing-sm) 0}.dashboard-welcome-text{margin:0;opacity:.9;font-size:var(--text-base)}.dashboard-date{display:flex;align-items:center;gap:var(--spacing-sm);background:#ffffff26;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--text-sm);white-space:nowrap}.dashboard-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.dashboard-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-subtle)}.dashboard-section-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0}.dashboard-section-title .icon{color:var(--text-tertiary)}.dashboard-quick-links{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:640px){.dashboard-quick-links{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.dashboard-quick-links{grid-template-columns:repeat(3,1fr)}}.dashboard-quick-link{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-decoration:none;transition:all var(--transition-fast)}.dashboard-quick-link:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.dashboard-quick-link-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);flex-shrink:0}.dashboard-quick-link-content{flex:1;min-width:0}.dashboard-quick-link-label{display:block;font-weight:600;color:var(--text-primary);margin-bottom:2px}.dashboard-quick-link-desc{display:block;font-size:var(--text-sm);color:var(--text-tertiary)}.dashboard-quick-link-arrow{color:var(--text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.dashboard-quick-link:hover .dashboard-quick-link-arrow{transform:translate(4px);color:var(--color-primary)}.dashboard-info-row{display:grid;gap:var(--spacing-lg);grid-template-columns:1fr}@media(min-width:768px){.dashboard-info-row{grid-template-columns:repeat(2,1fr)}}.dashboard-info-card{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.dashboard-info-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);flex-shrink:0}.dashboard-info-content h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.dashboard-info-content p{font-size:var(--text-sm);color:var(--text-tertiary);margin:0;line-height:1.5}.form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);resize:vertical;min-height:80px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--accent-blue-muted)}.form-textarea::placeholder{color:var(--text-tertiary)}.form-section{padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--spacing-md)}.form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin:0}.form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary)}.form-checkbox input{width:18px;height:18px;accent-color:var(--accent-blue);cursor:pointer}.form-error{padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-red-muted);border:1px solid var(--accent-red);border-radius:var(--radius-md);color:var(--accent-red);font-size:var(--text-sm)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle);margin-top:var(--spacing-sm)}.color-picker{display:flex;align-items:center;gap:var(--spacing-sm);height:44px;padding:0 var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md)}.color-picker input[type=color]{width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);cursor:pointer;background:transparent}.color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-picker input[type=color]::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.color-picker span{font-size:var(--text-sm);color:var(--text-secondary);font-family:var(--font-mono)}.secret-display{padding:var(--spacing-md);background:var(--accent-yellow-muted);border:1px solid var(--accent-yellow);border-radius:var(--radius-md)}.secret-display h4{font-size:var(--text-sm);font-weight:600;color:var(--accent-yellow);margin-bottom:var(--spacing-sm)}.secret-display code{display:block;padding:var(--spacing-sm);background:var(--bg-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);word-break:break-all}.secret-display p{margin-top:var(--spacing-sm);font-size:var(--text-xs);color:var(--text-secondary)}@media(max-width:768px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.role-chips{flex-direction:column}.role-chip{text-align:center}}.role-mapping-loading{padding:var(--spacing-xl);text-align:center;color:var(--text-tertiary)}.role-mapping-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.role-mapping-section{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.role-mapping-section h4{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.role-mapping-hint{font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.role-mapping-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.role-mapping-header h4{margin-bottom:0}.role-mapping-endpoint{display:flex;gap:var(--spacing-md)}.role-mapping-endpoint>div:first-child{flex:1}.service-roles-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.service-role-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:var(--accent-blue-muted);color:var(--accent-blue);border-radius:var(--radius-full);font-size:var(--text-sm)}.service-role-badge code{font-family:var(--font-mono);font-size:var(--text-xs);opacity:.7}.role-mapping-empty{color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic;text-align:center;padding:var(--spacing-lg);background:var(--bg-tertiary);border-radius:var(--radius-md)}.role-mapping-table{display:flex;flex-direction:column;gap:var(--spacing-sm)}.role-mapping-row{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--spacing-md);align-items:center;padding:var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-md)}.role-mapping-row.header{background:transparent;font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:0 var(--spacing-sm)}.platform-role{font-weight:500;color:var(--text-primary)}.mapping-arrow{color:var(--text-tertiary)}.service-role-select{min-width:200px}.role-mapping-message{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm)}.role-mapping-message.success{background:var(--accent-green-muted);color:var(--accent-green);border:1px solid var(--accent-green)}.role-mapping-message.error{background:var(--accent-red-muted);color:var(--accent-red);border:1px solid var(--accent-red)}.role-mapping-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}@media(max-width:768px){.role-mapping-endpoint{flex-direction:column}.role-mapping-row{grid-template-columns:1fr;gap:var(--spacing-sm);text-align:center}.role-mapping-row.header{display:none}.mapping-arrow{transform:rotate(90deg)}.service-role-select{min-width:100%}}.services-page{max-width:var(--max-width);margin:0 auto}.services-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.services-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.services-subtitle{color:var(--text-tertiary)}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg)}.service-card{display:flex;flex-direction:column;gap:var(--spacing-md);transition:all var(--transition-base)}.service-card:hover{border-color:var(--border-default)}.service-card-header{display:flex;align-items:center;justify-content:space-between}.service-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid;border-radius:var(--radius-lg)}.service-icon svg{color:#fff}.service-status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.service-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.service-description{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.5;flex:1}.service-meta{display:flex;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.service-category{padding:var(--spacing-xs) var(--spacing-sm);background:var(--surface-2);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary)}.service-url{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-access{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.service-access-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);background:var(--accent-purple-muted);color:var(--accent-purple)}.service-access-all{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.service-actions{display:flex;gap:var(--spacing-md);padding-top:var(--spacing-md);margin-top:auto;border-top:1px solid var(--border-subtle)}.service-actions>button{flex:1;justify-content:center}.service-actions>button:first-child{flex:2}.service-card-skeleton{height:280px;display:flex;flex-direction:column;gap:var(--spacing-md)}.services-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-3xl)!important;text-align:center}.services-empty svg{opacity:.3;color:var(--text-tertiary)}.services-empty h3{font-size:var(--text-lg);color:var(--text-primary)}.services-empty p{color:var(--text-tertiary)}@media(max-width:768px){.services-header{flex-direction:column}.services-grid{grid-template-columns:1fr}}.users-page{max-width:var(--max-width);margin:0 auto}.users-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.users-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.users-subtitle{color:var(--text-tertiary)}.users-filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.users-search{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex:1;max-width:400px}.users-search svg{color:var(--text-tertiary)}.users-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--text-sm)}.users-search input::placeholder{color:var(--text-tertiary)}.users-table-card{overflow:hidden}.users-table-wrapper{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-subtle)}.users-table th{font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:var(--bg-tertiary)}.users-table tr:hover{background:var(--surface-1)}.user-cell{display:flex;align-items:center;gap:var(--spacing-md)}.user-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;color:#fff;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-info{display:flex;flex-direction:column}.user-name{font-weight:500;color:var(--text-primary)}.user-email{font-size:var(--text-sm);color:var(--text-tertiary)}.user-role{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.user-org{color:var(--text-secondary);font-size:var(--text-sm)}.user-status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.user-status.active{color:var(--accent-green);background:var(--accent-green-muted)}.user-status.inactive{color:var(--accent-red);background:var(--accent-red-muted)}.user-actions{display:flex;gap:var(--spacing-sm)}.user-actions button{min-width:36px}.users-empty{text-align:center;padding:var(--spacing-3xl)!important;color:var(--text-tertiary)}.users-mobile{display:none}.user-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.user-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-md)}.user-card-meta{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.user-card-actions{display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.user-card-actions>button:first-child{flex:1}.users-search-clear{display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:var(--spacing-xs)}.users-search-clear svg{color:var(--text-tertiary)}@media(max-width:768px){.users-header{flex-direction:column;align-items:stretch}.users-filters{flex-direction:column}.users-search{max-width:none}.users-table-card{display:none}.users-mobile{display:block}.hide-mobile{display:none}}.password-change-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.password-error{color:var(--accent-red);font-size:var(--text-sm);padding:var(--spacing-sm);background:var(--accent-red-muted);border-radius:var(--radius-sm)}.password-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.orgs-page{max-width:var(--max-width);margin:0 auto}.orgs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.orgs-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.orgs-subtitle{color:var(--text-tertiary)}.orgs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-lg)}.org-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.org-card-header{display:flex;align-items:center;justify-content:space-between}.org-logo{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-blue-muted);border-radius:var(--radius-lg);overflow:hidden}.org-logo img{width:100%;height:100%;object-fit:cover}.org-logo svg{color:var(--text-secondary)}.org-status{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.org-status.active{color:var(--accent-green);background:var(--accent-green-muted)}.org-status.inactive{color:var(--accent-red);background:var(--accent-red-muted)}.org-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.org-description{font-size:var(--text-sm);color:var(--text-tertiary);line-height:1.5}.org-stats{display:flex;gap:var(--spacing-lg);padding:var(--spacing-md);background:var(--surface-1);border-radius:var(--radius-md)}.org-stat{display:flex;flex-direction:column;align-items:center}.org-stat-value{font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.org-stat-label{font-size:var(--text-xs);color:var(--text-tertiary)}.org-contact{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--text-secondary)}.org-actions{display:flex;gap:var(--spacing-md);padding-top:var(--spacing-md);margin-top:auto;border-top:1px solid var(--border-subtle)}.org-actions>button{flex:1;justify-content:center}.org-actions>button:first-child{flex:2}.orgs-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-3xl)!important;text-align:center}.orgs-empty svg{opacity:.3;color:var(--text-tertiary)}.orgs-empty h3{font-size:var(--text-lg);color:var(--text-primary)}.orgs-empty p{color:var(--text-tertiary)}.org-card-skeleton{display:flex;flex-direction:column;gap:var(--spacing-md);height:300px}@media(max-width:768px){.orgs-header{flex-direction:column}.orgs-grid{grid-template-columns:1fr}}.settings-page{max-width:var(--max-width);margin:0 auto}.settings-header{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.settings-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.settings-subtitle{color:var(--text-tertiary)}.settings-layout{display:flex;gap:var(--spacing-xl)}.settings-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);height:fit-content}.settings-tab{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left}.settings-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px #3b82f64d}.settings-tab svg{color:inherit;transition:color var(--transition-fast)}.settings-tab:hover svg,.settings-tab.active svg{color:inherit}.settings-content{flex:1;min-width:0}.settings-section-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.settings-section-desc{color:var(--text-tertiary);font-size:var(--text-sm);margin-bottom:var(--spacing-lg)}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-md);max-width:500px}.settings-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.email-field-group{display:flex;gap:var(--spacing-sm);align-items:flex-end}.email-field-group>div:first-child{flex:1}.settings-card{margin-bottom:var(--spacing-lg)}.settings-card:last-child{margin-bottom:0}.two-factor-settings{display:flex;flex-direction:column;gap:var(--spacing-md)}.preference-label{display:flex;align-items:center;gap:var(--spacing-sm)}.preference-label svg{color:var(--text-secondary)}.settings-message{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm)}.settings-message.success{background:var(--accent-green-muted);color:var(--accent-green);border:1px solid var(--accent-green)}.settings-message.error{background:var(--accent-red-muted);color:var(--accent-red);border:1px solid var(--accent-red)}.settings-preferences{display:flex;flex-direction:column;gap:var(--spacing-md)}.preference-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--surface-1);border-radius:var(--radius-md)}.preference-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.preference-label{font-weight:500;color:var(--text-primary)}.preference-desc{font-size:var(--text-sm);color:var(--text-tertiary)}.preference-select{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer}.toggle{position:relative;display:inline-block;width:48px;height:24px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-full);transition:all var(--transition-fast)}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--text-tertiary);border-radius:50%;transition:all var(--transition-fast)}.toggle input:checked+.toggle-slider{background-color:var(--accent-blue);border-color:var(--accent-blue)}.toggle input:checked+.toggle-slider:before{background-color:#fff;transform:translate(24px)}@media(max-width:768px){.settings-page{padding:var(--spacing-md)}.settings-header{padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.settings-title{font-size:var(--text-xl)}.settings-layout{flex-direction:column;gap:var(--spacing-md)}.settings-sidebar{width:100%;height:auto;flex-direction:row;overflow-x:auto;gap:var(--spacing-xs);padding:var(--spacing-xs);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;scrollbar-width:none}.settings-sidebar::-webkit-scrollbar{display:none}.settings-tab{flex:1;flex-shrink:0;padding:var(--spacing-sm) var(--spacing-md);white-space:nowrap;justify-content:center;border-radius:var(--radius-md)}.settings-tab span{display:none}.settings-content{min-width:0;flex:1}.settings-section-title{font-size:var(--text-base)}.settings-form{max-width:100%}.settings-form-row{grid-template-columns:1fr}.email-field-group{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.email-field-group>div:first-child{flex:none}.preference-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md)}.preference-select{width:100%}.toggle{align-self:flex-start}.form-actions{flex-direction:column;gap:var(--spacing-sm)}.form-actions button{width:100%}}.telegram-section{margin-top:var(--spacing-lg)}.telegram-status{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.telegram-status.linked{color:var(--success)}.telegram-status.linked svg{color:var(--success)}.telegram-status span{flex:1;font-weight:500}.telegram-settings{display:flex;flex-direction:column;gap:var(--spacing-xs)}.telegram-settings .preference-item.sub-item{padding-left:var(--spacing-xl);border-left:2px solid var(--border-color);margin-left:var(--spacing-md)}.telegram-link-section{text-align:center;padding:var(--spacing-xl)}.telegram-description{color:var(--text-secondary);margin-bottom:var(--spacing-lg);max-width:400px;margin-left:auto;margin-right:auto}.telegram-link-section button{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.telegram-link-modal{display:flex;flex-direction:column;gap:var(--spacing-md)}.telegram-instructions{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.telegram-bot-link{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:#08c;color:#fff;border-radius:var(--radius-md);text-decoration:none;font-weight:500;transition:background .2s}.telegram-bot-link:hover{background:#0077b5}.telegram-code-box{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);font-family:monospace}.telegram-code-box code{flex:1;font-size:var(--text-base);color:var(--primary)}.telegram-expires{color:var(--text-tertiary);font-size:var(--text-sm);text-align:center}.settings-section-title{display:flex;align-items:center;gap:var(--spacing-sm)}.settings-section-title svg{color:var(--primary)}.categories-page{padding:var(--spacing-lg)}.categories-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.categories-title{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.categories-subtitle{color:var(--text-tertiary);font-size:var(--text-sm)}.categories-message{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm)}.categories-message.success{background:var(--accent-green-muted);border:1px solid var(--accent-green);color:var(--accent-green)}.categories-message.error{background:var(--accent-red-muted);border:1px solid var(--accent-red);color:var(--accent-red)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.category-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.category-card.skeleton{height:180px;background:var(--bg-secondary);border-radius:var(--radius-lg);animation:pulse 2s infinite}.category-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.category-info{flex:1}.category-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.category-code{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.category-desc{margin-top:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.category-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.category-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm)}.category-badge.system{background:var(--accent-purple-muted);color:var(--accent-purple)}.category-order{font-size:var(--text-xs);color:var(--text-tertiary)}.category-actions{display:flex;gap:var(--spacing-md);margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.category-actions button{flex:1;justify-content:center}.category-access{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.category-access-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);background:var(--accent-purple-muted);color:var(--accent-purple)}.category-access-all{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.role-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.role-chip{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.role-chip:hover{border-color:var(--accent-blue);color:var(--text-primary)}.role-chip.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin:var(--spacing-xs) 0}.icon-selector{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.icon-option{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:2px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.icon-option:hover{border-color:var(--border-hover)}.icon-option.active{border-color:var(--accent-blue);background:var(--accent-blue-muted)}.icon-option svg{color:var(--text-secondary)}.icon-option.active svg{color:var(--accent-blue)}@media(max-width:768px){.categories-header{flex-direction:column}.categories-grid{grid-template-columns:1fr}}.roles-page{padding:var(--spacing-lg)}.roles-header{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.roles-title{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.roles-subtitle{color:var(--text-tertiary);font-size:var(--text-sm)}.roles-message{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm)}.roles-message.success{background:var(--accent-green-muted);border:1px solid var(--accent-green);color:var(--accent-green)}.roles-message.error{background:var(--accent-red-muted);border:1px solid var(--accent-red);color:var(--accent-red)}.roles-tabs{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);padding:var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.roles-tab{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-lg);transition:all var(--transition-fast)}.roles-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.roles-tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 8px #3b82f64d}.roles-tabs-actions{margin-left:auto}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.role-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.role-card.skeleton{height:200px;background:var(--bg-secondary);border-radius:var(--radius-lg);animation:pulse 2s infinite}.role-header{display:flex;align-items:flex-start;gap:var(--spacing-md)}.role-color{width:8px;height:48px;border-radius:var(--radius-sm);flex-shrink:0}.role-info{flex:1}.role-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.role-code{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.role-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm)}.role-badge.system{background:var(--accent-purple-muted);color:var(--accent-purple)}.role-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.role-meta{display:flex;gap:var(--spacing-md);font-size:var(--text-xs);color:var(--text-tertiary)}.role-permissions{margin-top:auto}.role-perms-label{font-size:var(--text-xs);color:var(--text-tertiary)}.role-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.role-actions button{flex:1;justify-content:center}.permissions-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.permission-group{display:flex;flex-direction:column;gap:var(--spacing-md)}.permission-category{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);text-transform:capitalize}.permission-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.permission-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.permission-info{display:flex;flex-direction:column;gap:2px}.permission-name{font-size:var(--text-sm);color:var(--text-primary)}.permission-code{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary)}.permission-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.permission-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm)}.permission-badge.system{background:var(--accent-purple-muted);color:var(--accent-purple)}@media(max-width:768px){.roles-tabs{flex-wrap:wrap}.roles-tabs-actions{width:100%;margin-top:var(--spacing-md)}.roles-grid{grid-template-columns:1fr}.permission-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.permission-actions{width:100%;justify-content:flex-end}}.sync-page{padding:var(--spacing-lg)}.sync-header{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.sync-title{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.sync-subtitle{color:var(--text-tertiary);font-size:var(--text-sm)}.sync-message{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm)}.sync-message.success{background:var(--accent-green-muted);border:1px solid var(--accent-green);color:var(--accent-green)}.sync-message.error{background:var(--accent-red-muted);border:1px solid var(--accent-red);color:var(--accent-red)}.sync-section{margin-bottom:var(--spacing-2xl)}.sync-section-title{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-lg)}.sync-services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.sync-service-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.sync-service-card.skeleton{height:140px;background:var(--bg-secondary);border-radius:var(--radius-lg);animation:pulse 2s infinite}.sync-service-header{display:flex;align-items:center;gap:var(--spacing-md)}.sync-service-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sync-service-info{flex:1}.sync-service-name{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.sync-service-code{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-tertiary)}.sync-service-badge{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:4px;margin-left:auto}.sync-service-badge.configured{background:var(--accent-green-muted);color:var(--accent-green)}.sync-service-hint{font-size:var(--text-xs);color:var(--text-tertiary);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);border-left:2px solid var(--accent-yellow)}.sync-service-actions{display:flex;gap:var(--spacing-md);margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}.sync-service-actions button{flex:1;justify-content:center}.sync-history{display:flex;flex-direction:column;gap:var(--spacing-md)}.sync-history-item{display:flex;flex-direction:column;gap:var(--spacing-sm)}.sync-history-header{display:flex;justify-content:space-between;align-items:center}.sync-history-service{font-weight:600;color:var(--text-primary)}.sync-history-status{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm)}.sync-history-status.completed{background:var(--accent-green-muted);color:var(--accent-green)}.sync-history-status.failed{background:var(--accent-red-muted);color:var(--accent-red)}.sync-history-status.running{background:var(--accent-blue-muted);color:var(--accent-blue)}.sync-history-status.pending{background:var(--accent-yellow-muted);color:var(--accent-yellow)}.sync-history-meta{display:flex;gap:var(--spacing-md);font-size:var(--text-xs);color:var(--text-tertiary)}.sync-history-result{display:flex;gap:var(--spacing-md);font-size:var(--text-sm)}.result-item{padding:2px 8px;border-radius:var(--radius-sm)}.result-item.success{background:var(--accent-green-muted);color:var(--accent-green)}.result-item.update{background:var(--accent-blue-muted);color:var(--accent-blue)}.result-item.error{background:var(--accent-red-muted);color:var(--accent-red)}.sync-empty{color:var(--text-tertiary);text-align:center}.form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin:var(--spacing-md) 0;padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle)}@media(max-width:768px){.sync-services-grid{grid-template-columns:1fr}}.workflow-templates-page{padding:1rem}@media(min-width:768px){.workflow-templates-page{padding:2rem}}.wt-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px}@media(min-width:768px){.wt-header{flex-direction:row;align-items:center;justify-content:space-between}}.wt-title{font-size:1.75rem;font-weight:700;color:var(--color-text-primary);margin:0}.wt-subtitle{color:var(--color-text-secondary);margin:.25rem 0 0;font-size:.9rem}.wt-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.9rem}.wt-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}@media(min-width:640px){.wt-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.wt-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1280px){.wt-grid{grid-template-columns:repeat(4,1fr)}}.wt-card{display:flex;flex-direction:column;height:100%;transition:transform .2s,box-shadow .2s}.wt-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.wt-card.skeleton{height:280px;background:var(--color-surface);border-radius:12px;animation:pulse 2s infinite}.wt-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.wt-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wt-card-badges{display:flex;gap:.5rem}.wt-badge{font-size:.7rem;padding:.25rem .5rem;border-radius:4px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.wt-badge.system{background:#3b82f626;color:#3b82f6}.wt-badge.inactive{background:#ef444426;color:#ef4444}.wt-card-name{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.wt-card-code{font-size:.8rem;font-family:var(--font-mono);color:var(--color-text-tertiary);margin:0 0 .5rem}.wt-card-description{font-size:.85rem;color:var(--color-text-secondary);margin:0 0 1rem;line-height:1.5;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wt-card-stats{display:flex;gap:1rem;margin-bottom:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.wt-stat{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--color-text-tertiary)}.wt-card-actions{display:flex;gap:.75rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--color-border)}.wt-card-actions button{flex:1;justify-content:center}.wt-card-actions button:first-child{flex:2}.wt-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--color-text-tertiary)}.wt-empty h3{margin:1rem 0 .5rem;color:var(--color-text-primary)}.wt-empty p{margin:0 0 1.5rem}.wt-create-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.form-textarea{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;color:var(--color-text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px;transition:border-color .2s}.form-textarea:focus{outline:none;border-color:var(--color-primary)}.form-textarea::placeholder{color:var(--color-text-tertiary)}.wt-form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.wt-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.wtb-page{min-height:100vh;background:var(--color-background)}.wtb-loading,.wtb-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;color:var(--color-text-tertiary)}.wtb-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}.wtb-error h2{color:var(--color-text-primary)}.wtb-error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 2rem;font-size:.9rem}.wtb-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}@media(min-width:768px){.wtb-header{padding:1rem 2rem}}.wtb-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.wtb-back:hover{background:var(--color-surface-elevated);color:var(--color-text-primary)}.wtb-header-info{flex:1;min-width:0}.wtb-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wtb-code{font-size:.8rem;font-family:var(--font-mono);color:var(--color-text-tertiary)}.wtb-header-actions{display:flex;align-items:center;gap:1rem}.wtb-unsaved{font-size:.8rem;color:var(--color-warning);display:none}@media(min-width:768px){.wtb-unsaved{display:block}}.wtb-tabs{display:flex;gap:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 1.5rem;overflow-x:auto}@media(min-width:768px){.wtb-tabs{padding:0 2rem}}.wtb-tab{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.wtb-tab:hover{color:var(--color-text-primary)}.wtb-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.wtb-tab-badge{background:var(--color-primary);color:#fff;font-size:.7rem;padding:.15rem .5rem;border-radius:10px}.wtb-content{padding:1.5rem;max-width:1200px;margin:0 auto}@media(min-width:768px){.wtb-content{padding:2rem}}.wtb-section-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.wtb-section-desc{font-size:.85rem;color:var(--color-text-tertiary);margin:0 0 1.5rem}.wtb-settings{display:flex;flex-direction:column;gap:1.5rem}.wtb-settings-card{max-width:700px}.wtb-form-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1rem}@media(min-width:640px){.wtb-form-grid{grid-template-columns:repeat(2,1fr)}}.wtb-form-group{margin-bottom:1rem}.wtb-form-row{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.wtb-label{display:block;font-size:.85rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:.5rem}.wtb-textarea{width:100%;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;color:var(--color-text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px;transition:border-color .2s}.wtb-textarea:focus{outline:none;border-color:var(--color-primary)}.wtb-textarea::placeholder{color:var(--color-text-tertiary)}.wtb-help-text{display:block;margin-top:.5rem;font-size:.8rem;color:var(--color-text-tertiary)}.wtb-assignee-rules{margin-top:.5rem}.wtb-assignee-rules .wtb-help-text{margin-bottom:.75rem}.wtb-rule-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem;background:var(--color-surface-elevated, rgba(255,255,255,.03));border:1px solid var(--color-border);border-radius:8px;margin-bottom:.5rem}.wtb-rule-row .wtb-rule-badge{font-size:.75rem;padding:.25rem .5rem;background:var(--color-primary);color:#fff;border-radius:4px;font-weight:500}.wtb-rule-row .wtb-rule-remove{margin-left:auto;padding:.35rem;background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:6px;transition:all .2s}.wtb-rule-row .wtb-rule-remove:hover{background:#ef444426;color:#ef4444}.wtb-rule-row select,.wtb-rule-row input{min-width:120px;flex:1;max-width:180px}.wtb-rule-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.wtb-color-field{display:flex;flex-direction:column}.wtb-color-input{display:flex;align-items:center;gap:.75rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.5rem 1rem;height:42px}.wtb-color-input input[type=color]{width:24px;height:24px;border:none;border-radius:4px;cursor:pointer;padding:0}.wtb-color-input span{font-size:.9rem;color:var(--color-text-primary);font-family:var(--font-mono)}.wtb-checkbox-group{display:flex;flex-direction:column;gap:.75rem}.wtb-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9rem;color:var(--color-text-primary)}.wtb-checkbox input{display:none}.wtb-checkbox-mark{width:20px;height:20px;border:2px solid var(--color-text-tertiary);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;background:var(--color-surface-elevated)}.wtb-checkbox:hover .wtb-checkbox-mark{border-color:var(--color-primary)}.wtb-checkbox input:checked+.wtb-checkbox-mark{background:var(--color-primary);border-color:var(--color-primary)}.wtb-checkbox input:checked+.wtb-checkbox-mark:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}.wtb-chips{display:flex;flex-wrap:wrap;gap:.5rem}.wtb-chip{padding:.5rem 1rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:20px;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.wtb-chip:hover{border-color:var(--color-primary)}.wtb-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.wtb-fields-header,.wtb-steps-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}@media(min-width:640px){.wtb-fields-header,.wtb-steps-header{flex-direction:row;align-items:flex-start;justify-content:space-between}}.wtb-fields-list{display:flex;flex-direction:column;gap:0;list-style:none;padding:0;margin:0;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.wtb-field-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);cursor:grab;transition:all .2s}.wtb-field-item:last-child{border-bottom:none}.wtb-field-item:hover{background:var(--bg-tertiary)}.wtb-field-item:active{cursor:grabbing;background:var(--bg-elevated);box-shadow:0 4px 16px #00000040;z-index:10}.wtb-field-drag{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;background:var(--bg-tertiary);border-radius:6px;transition:all .2s}.wtb-field-item:hover .wtb-field-drag{color:var(--text-secondary);background:var(--bg-hover)}.wtb-field-info{flex:1;min-width:0}.wtb-field-name{font-weight:600;color:var(--text-primary);display:block;font-size:.95rem}.wtb-required{color:#ef4444;margin-left:.25rem}.wtb-field-code{font-size:.75rem;font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-tertiary);padding:.15rem .5rem;border-radius:4px;margin-top:.25rem;display:inline-block}.wtb-field-type{font-size:.8rem;padding:.35rem .85rem;background:var(--accent-blue-muted);border-radius:6px;color:var(--accent-blue);font-weight:500;display:none}@media(min-width:640px){.wtb-field-type{display:block}}.wtb-field-actions{display:flex;gap:.5rem}.wtb-field-actions button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.wtb-field-actions button:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-primary)}.wtb-field-actions button:last-child:hover{background:var(--accent-red-muted);border-color:var(--accent-red);color:var(--accent-red)}.wtb-steps-list{display:flex;flex-direction:column;gap:0;list-style:none;padding:0;margin:0;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.wtb-step-item{display:flex;align-items:stretch;gap:0;cursor:grab;padding:0;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);transition:all .2s}.wtb-step-item:last-child{border-bottom:none}.wtb-step-item:hover{background:var(--bg-tertiary)}.wtb-step-item:active{cursor:grabbing;background:var(--bg-elevated);box-shadow:0 4px 16px #00000040;z-index:10}.wtb-step-order{width:52px;min-height:100%;background:var(--bg-tertiary);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0;border-right:1px solid var(--border-subtle)}.wtb-step-connector,.wtb-step-line{display:none}.wtb-step-content{flex:1;background:transparent;border:none;border-radius:0;padding:1rem 1.25rem;transition:all .2s}.wtb-step-item:hover .wtb-step-content{border-color:transparent;box-shadow:none}.wtb-step-item:active .wtb-step-content{box-shadow:0 4px 16px #0003}.wtb-step-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.wtb-step-name{font-weight:600;color:var(--color-text-primary)}.wtb-step-actions{display:flex;gap:.25rem}.wtb-step-actions button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s}.wtb-step-actions button:hover{background:var(--color-surface-elevated);color:var(--color-text-primary)}.wtb-step-actions button:last-child:hover{color:#ef4444}.wtb-step-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.wtb-step-assignee,.wtb-step-deadline{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-tertiary)}.wtb-step-assignee .icon,.wtb-step-deadline .icon{opacity:.6}.wtb-step-flags{display:flex;flex-wrap:wrap;gap:.5rem}.wtb-flag{font-size:.65rem;padding:.2rem .5rem;background:transparent;border:1px solid var(--border-default);color:var(--text-tertiary);border-radius:4px;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.wtb-flag-attachment{display:inline-flex;align-items:center;gap:.25rem;background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6;text-transform:none}.wtb-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--color-text-tertiary);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:12px}.wtb-empty h4{margin:1rem 0 .5rem;color:var(--color-text-primary)}.wtb-empty p{margin:0}.wtb-attachment-section{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.wtb-subsection-title{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.wtb-modal-form{display:flex;flex-direction:column;gap:1rem}.wtb-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.workflow-tasks-page{padding:1rem;max-width:1200px;margin:0 auto}@media(min-width:768px){.workflow-tasks-page{padding:2rem}}.wtp-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px}@media(min-width:768px){.wtp-header{flex-direction:row;align-items:center;justify-content:space-between;padding:1.5rem 2rem}}.wtp-title{font-size:1.75rem;font-weight:700;color:var(--color-text-primary);margin:0}.wtp-subtitle{color:var(--color-text-secondary);margin:.25rem 0 0;font-size:.9rem}.wtp-section-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.wtp-filters{display:flex;gap:.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:6px}.wtp-filter{padding:.6rem 1.25rem;background:transparent;border:none;border-radius:8px;font-size:.85rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.wtp-filter:hover{color:var(--color-text-primary);background:var(--color-surface-elevated)}.wtp-filter.active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #0ea5e94d}.wtp-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:1.5rem}@media(min-width:768px){.wtp-section{padding:2rem}}.wtp-list{display:flex;flex-direction:column;gap:0;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.wtp-task{transition:background .2s;border-radius:0!important;border:none!important;border-bottom:1px solid var(--color-border)!important}.wtp-task:last-child{border-bottom:none!important}.wtp-task:hover{background:var(--color-surface-elevated)}.wtp-task.skeleton{height:200px;background:var(--color-surface);border-radius:0;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.wtp-task-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.wtp-task-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wtp-task-info{flex:1;min-width:0}.wtp-task-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wtp-task-number{font-size:.8rem;font-family:var(--font-mono);color:var(--color-text-tertiary)}.wtp-task-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.wtp-task-meta-item{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--color-text-secondary)}.wtp-task-meta-item.overdue{color:#ef4444}.wtp-task-actions{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:1rem;margin-top:.5rem;border-top:1px solid var(--color-border)}.wtp-task-actions button{min-width:100px}.wtp-reject-btn{color:#ef4444!important;border-color:#ef44444d!important}.wtp-reject-btn:hover{background:#ef44441a!important;border-color:#ef4444!important}.wtp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--color-text-tertiary);background:var(--color-surface);border-radius:12px}.wtp-empty h3{margin:1rem 0 .5rem;color:var(--color-text-primary)}.wtp-empty p{margin:0}.wtp-action-modal{display:flex;flex-direction:column;gap:1rem}.wtp-action-desc{color:var(--color-text-secondary);font-size:.9rem;margin:0;line-height:1.5}.wtp-action-form{display:flex;flex-direction:column;gap:.5rem}.wtp-action-label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.wtp-action-label .required{color:#ef4444}.wtp-action-textarea{width:100%;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;color:var(--color-text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:100px;transition:border-color .2s}.wtp-action-textarea:focus{outline:none;border-color:var(--color-primary)}.wtp-action-textarea::placeholder{color:var(--color-text-tertiary)}.wtp-action-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.wtp-action-buttons{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.wtp-danger-btn{background:#ef4444!important;border-color:#ef4444!important}.wtp-danger-btn:hover{background:#dc2626!important;border-color:#dc2626!important}.wtp-file-upload{border:2px dashed var(--color-border);border-radius:12px;padding:1.5rem;text-align:center;transition:all .2s;cursor:pointer}.wtp-file-upload:hover{border-color:var(--color-primary);background:#3b82f60d}.wtp-file-input{display:none}.wtp-file-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:var(--color-text-secondary)}.wtp-file-label span{font-size:.9rem}.wtp-file-types,.wtp-file-size{font-size:.75rem!important;color:var(--color-text-tertiary)!important}.wtp-file-selected{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px}.wtp-file-selected .icon{color:var(--color-primary)}.wtp-file-name{flex:1;font-size:.9rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wtp-file-size-info{font-size:.8rem;color:var(--color-text-tertiary)}.wtp-file-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s}.wtp-file-remove:hover{background:#ef44441a;color:#ef4444}.wtp-action-label .icon{vertical-align:middle;margin-right:.25rem}.workflow-processes-page{padding:1rem}@media(min-width:768px){.workflow-processes-page{padding:2rem}}.wpp-header{margin-bottom:2rem}.wpp-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.wpp-subtitle{color:var(--text-secondary);margin:.25rem 0 0;font-size:.9rem}.wpp-section-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.wpp-section-subtitle{font-size:.85rem;color:var(--text-tertiary);margin:.25rem 0 0}.wpp-section-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem;padding:1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px}@media(min-width:640px){.wpp-section-header{flex-direction:row;align-items:center;justify-content:space-between}.wpp-section-header .select-wrapper{width:200px}}.wpp-templates-section{margin-bottom:2.5rem;padding:1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px}.wpp-templates-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media(min-width:640px){.wpp-templates-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.wpp-templates-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1280px){.wpp-templates-grid{grid-template-columns:repeat(6,1fr)}}.wpp-template-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;transition:all .2s;text-align:center}.wpp-template-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.wpp-template-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.wpp-template-card:hover .wpp-template-icon{transform:scale(1.1)}.wpp-template-name{font-size:.85rem;font-weight:500;color:var(--text-primary);line-height:1.3}.wpp-no-templates{grid-column:1 / -1;color:var(--text-tertiary);font-size:.9rem;text-align:center;padding:2rem}.wpp-processes-section{padding:1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px}.wpp-processes-list{display:flex;flex-direction:column;gap:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.wpp-process{cursor:pointer;transition:all .2s;border-bottom:1px solid var(--border-color);border-radius:0!important;border-left:none!important;border-right:none!important;border-top:none!important}.wpp-process:last-child{border-bottom:none}.wpp-process:hover{background:var(--bg-elevated)}.wpp-process.skeleton{height:120px;background:var(--bg-secondary);border-radius:0;animation:pulse 2s infinite}.wpp-process-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.wpp-process-header>.badge{flex-shrink:0;align-self:flex-start;margin-left:auto}.wpp-process-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wpp-process-info{flex:1;min-width:0}.wpp-process-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wpp-process-meta{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.wpp-process-number{font-size:.8rem;font-family:var(--font-mono);color:var(--text-tertiary)}.wpp-process-template{font-size:.8rem;color:var(--text-secondary)}.wpp-process-footer{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.wpp-process-footer-item{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.wpp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--text-tertiary);background:var(--bg-secondary);border-radius:12px}.wpp-empty h3{margin:1rem 0 .5rem;color:var(--text-primary)}.wpp-empty p{margin:0}.wpp-start-form{display:flex;flex-direction:column;gap:1rem}.wpp-fields{display:flex;flex-direction:column;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.wpp-fields-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.wpp-form-group{display:flex;flex-direction:column;gap:.5rem}.wpp-label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.wpp-textarea{width:100%;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px;transition:border-color .2s}.wpp-textarea:focus{outline:none;border-color:var(--primary)}.wpp-textarea::placeholder{color:var(--text-tertiary)}.wpp-help{font-size:.8rem;color:var(--text-tertiary)}.wpp-checkbox-group{margin:.25rem 0}.wpp-checkbox{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9rem;color:var(--text-primary)}.wpp-checkbox input{display:none}.wpp-checkbox-mark{width:20px;height:20px;border:2px solid var(--text-tertiary);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;background:var(--bg-elevated)}.wpp-checkbox:hover .wpp-checkbox-mark{border-color:var(--primary)}.wpp-checkbox input:checked+.wpp-checkbox-mark{background:var(--primary);border-color:var(--primary)}.wpp-checkbox input:checked+.wpp-checkbox-mark:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}.wpp-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.wpp-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}@media(max-width:768px){.workflow-processes-page{padding:1rem}.wpp-header{margin-bottom:1.5rem}.wpp-title{font-size:1.5rem}.wpp-templates-section,.wpp-processes-section{padding:1rem;margin-bottom:1.5rem}.wpp-section-header{padding:1rem;flex-direction:column;align-items:stretch}.wpp-section-header .select-wrapper{width:100%}.wpp-templates-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.wpp-template-card{padding:.75rem}.wpp-template-icon{width:44px;height:44px}.wpp-template-name{font-size:.8rem}.wpp-processes-list{border-radius:12px}.wpp-process-header{flex-direction:column;gap:.5rem;align-items:flex-start}.wpp-process-icon{width:36px;height:36px}.wpp-process-footer{flex-direction:column;gap:.5rem}.wpp-process-footer-item{font-size:.75rem}.wpp-fields{padding-top:.75rem}.wpp-form-actions{flex-direction:column}.wpp-form-actions button{width:100%}}@media(max-width:480px){.wpp-templates-grid{grid-template-columns:1fr 1fr;gap:.5rem}.wpp-template-icon{width:40px;height:40px}.wpp-template-name{font-size:.75rem}}.wpd-page{min-height:100vh}.wpd-loading,.wpd-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;color:var(--color-text-tertiary)}.wpd-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}.wpd-error h2{color:var(--color-text-primary)}.wpd-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap}@media(min-width:768px){.wpd-header{padding:1.5rem 2rem;flex-wrap:nowrap}}.wpd-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;flex-shrink:0}.wpd-back:hover{background:var(--color-surface-elevated);color:var(--color-text-primary)}.wpd-header-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wpd-header-info{flex:1;min-width:0}.wpd-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wpd-header-meta{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.wpd-number{font-size:.8rem;font-family:var(--font-mono);color:var(--color-text-tertiary)}.wpd-template{font-size:.8rem;color:var(--color-text-secondary)}.wpd-content{display:grid;gap:1.5rem;padding:1.5rem;grid-template-columns:1fr}@media(min-width:1024px){.wpd-content{grid-template-columns:1fr 380px;padding:2rem}}.wpd-main,.wpd-sidebar{display:flex;flex-direction:column;gap:1rem}.wpd-card-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.wpd-subtitle{font-size:.9rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .75rem}.wpd-actions-card{background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);border-color:#3b82f64d}.wpd-actions-desc{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 1rem}.wpd-actions-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.wpd-reject-btn{color:#ef4444!important}.wpd-reject-btn:hover{background:#ef44441a!important}.wpd-cancel-card{background:#ef44440d;border-color:#ef444433}.wpd-cancel-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.wpd-cancel-content span{font-size:.9rem;color:var(--color-text-secondary)}.wpd-data-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media(min-width:640px){.wpd-data-grid{grid-template-columns:repeat(4,1fr)}}.wpd-data-item label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);margin-bottom:.25rem}.wpd-data-item span{font-size:.9rem;color:var(--color-text-primary)}.wpd-divider{height:1px;background:var(--color-border);margin:1.5rem 0}.wpd-form-data{display:grid;gap:1rem}.wpd-field label{display:block;font-size:.8rem;color:var(--color-text-tertiary);margin-bottom:.25rem}.wpd-field span{font-size:.9rem;color:var(--color-text-primary)}.wpd-reject-reason{display:flex;gap:.75rem;padding:1rem;background:#ef44441a;border-radius:8px;color:#ef4444}.wpd-reject-reason strong{display:block;margin-bottom:.25rem}.wpd-reject-reason p{margin:0;font-size:.9rem}.wpd-history{display:flex;flex-direction:column;gap:0}.wpd-history-item{display:flex;gap:.75rem;position:relative;padding-bottom:1rem}.wpd-history-item:not(:last-child):before{content:"";position:absolute;left:11px;top:24px;bottom:0;width:2px;background:var(--color-border)}.wpd-history-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.wpd-history-content{flex:1;min-width:0}.wpd-history-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem}.wpd-history-action{font-size:.85rem;font-weight:500;color:var(--color-text-primary)}.wpd-history-date{font-size:.75rem;color:var(--color-text-tertiary);flex-shrink:0}.wpd-history-user{font-size:.8rem;color:var(--color-text-secondary)}.wpd-history-comment{font-size:.85rem;color:var(--color-text-secondary);background:var(--color-surface-elevated);padding:.5rem .75rem;border-radius:6px;margin:.5rem 0 0}.wpd-assignees{display:flex;flex-direction:column;gap:.75rem}.wpd-assignee{display:flex;align-items:center;gap:.75rem}.wpd-assignee-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.wpd-assignee span{font-size:.9rem;color:var(--color-text-primary)}.wpd-action-modal{display:flex;flex-direction:column;gap:1rem}.wpd-action-desc{color:var(--color-text-secondary);font-size:.9rem;margin:0;line-height:1.5}.wpd-action-form{display:flex;flex-direction:column;gap:.5rem}.wpd-action-label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.wpd-action-label .required{color:#ef4444}.wpd-action-textarea{width:100%;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;color:var(--color-text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:100px;transition:border-color .2s}.wpd-action-textarea:focus{outline:none;border-color:var(--color-primary)}.wpd-action-textarea::placeholder{color:var(--color-text-tertiary)}.wpd-action-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.wpd-action-buttons{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.wpd-danger-btn{background:#ef4444!important;border-color:#ef4444!important}.wpd-danger-btn:hover{background:#dc2626!important;border-color:#dc2626!important}@media(max-width:768px){.wpd-header{padding:1rem;gap:.75rem}.wpd-back{width:36px;height:36px}.wpd-header-icon{width:40px;height:40px;border-radius:10px}.wpd-title{font-size:1.1rem;white-space:normal;overflow:visible}.wpd-header-meta{flex-wrap:wrap;gap:.5rem}.wpd-content{padding:1rem;gap:1rem}.wpd-actions-buttons{flex-direction:column}.wpd-actions-buttons button{width:100%}.wpd-cancel-content{flex-direction:column;align-items:flex-start}.wpd-cancel-content button{width:100%}.wpd-data-grid{grid-template-columns:1fr 1fr;gap:.75rem}.wpd-history-header{flex-direction:column;gap:.25rem}.wpd-action-buttons{flex-direction:column}.wpd-action-buttons button{width:100%}}.wpd-file-upload{border:2px dashed var(--color-border);border-radius:12px;padding:1.5rem;text-align:center;transition:all .2s;cursor:pointer}.wpd-file-upload:hover{border-color:var(--color-primary);background:#3b82f60d}.wpd-file-input{display:none}.wpd-file-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:var(--color-text-secondary)}.wpd-file-label span{font-size:.9rem}.wpd-file-types,.wpd-file-size{font-size:.75rem!important;color:var(--color-text-tertiary)!important}.wpd-file-selected{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:8px}.wpd-file-selected .icon{color:var(--color-primary)}.wpd-file-name{flex:1;font-size:.9rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpd-file-size-info{font-size:.8rem;color:var(--color-text-tertiary)}.wpd-file-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;color:var(--color-text-tertiary);cursor:pointer;transition:all .2s}.wpd-file-remove:hover{background:#ef44441a;color:#ef4444}.wpd-action-label .icon{vertical-align:middle;margin-right:.25rem}.wpd-history-attachment{display:inline-flex;align-items:center;gap:.35rem;margin-top:.5rem;padding:.35rem .65rem;background:#3b82f61a;border:none;border-radius:6px;font-size:.75rem;font-family:inherit;color:#3b82f6;text-decoration:none;cursor:pointer;transition:all .2s}.wpd-history-attachment:hover{background:#3b82f633}.wpd-history-attachment .icon{flex-shrink:0}.wpd-history-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.task-form{display:flex;flex-direction:column;gap:16px}.form-section{padding:20px;background:var(--bg-secondary, #1a1a22);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:12px}.form-section-title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary, #f5f5f7);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.form-row{display:flex;gap:16px;margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:8px;flex:1;margin-bottom:20px}.form-group.flex-1{flex:1}.form-group label{font-size:13px;font-weight:600;color:var(--text-secondary, #9ca3af);text-transform:uppercase;letter-spacing:.3px}.form-group input,.form-group select,.form-group textarea{padding:12px 14px;background:var(--bg-tertiary, #22222c);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:10px;color:var(--text-primary, #f5f5f7);font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.form-group input:disabled,.form-group select:disabled{opacity:.6;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:100px}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}.form-divider{height:1px;background:var(--border-color, rgba(255, 255, 255, .1));margin:24px 0}.checklist-editor{background:var(--bg-tertiary, #22222c);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:10px;overflow:hidden}.checklist-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.checklist-item:last-of-type{border-bottom:none}.checklist-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary, #3b82f6)}.checklist-item span{flex:1;font-size:14px;color:var(--text-primary, #f5f5f7)}.checklist-item span.completed{text-decoration:line-through;color:var(--text-tertiary, #6e6e7a)}.checklist-item .remove-btn{width:28px;height:28px;border-radius:6px;background:transparent;border:none;color:var(--text-tertiary, #6e6e7a);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s}.checklist-item:hover .remove-btn{opacity:1}.checklist-item .remove-btn:hover{background:#ef444433;color:#ef4444}.add-checklist-item{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1));background:var(--bg-secondary, #1a1a22)}.add-checklist-item input{flex:1;padding:10px 12px;background:var(--bg-tertiary, #22222c);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #f5f5f7);font-size:13px}.add-checklist-item input:focus{outline:none;border-color:var(--primary, #3b82f6)}.add-checklist-item button{width:36px;height:36px;border-radius:8px;background:var(--primary, #3b82f6);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s}.add-checklist-item button:hover{opacity:.9}.multi-select-container{position:relative}.multi-select-header{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 14px;background:var(--bg-tertiary, #22222c);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:10px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.multi-select-header:hover{border-color:var(--primary, #3b82f6)}.multi-select-header .placeholder{color:var(--text-tertiary, #6e6e7a);font-size:14px}.selected-users{display:flex;flex-wrap:wrap;gap:6px;flex:1}.selected-user-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#3b82f633;color:#3b82f6;border-radius:6px;font-size:12px;font-weight:500}.selected-user-tag button{background:none;border:none;padding:0;cursor:pointer;color:inherit;display:flex;align-items:center;opacity:.7;transition:opacity .2s}.selected-user-tag button:hover{opacity:1}.multi-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-elevated, #262632);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:10px;box-shadow:0 8px 24px #0000004d;max-height:200px;overflow-y:auto;z-index:100}.multi-select-dropdown .dropdown-item{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;transition:background .15s;font-size:14px;color:var(--text-primary, #f5f5f7);border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .05))}.multi-select-dropdown .dropdown-item:last-child{border-bottom:none}.multi-select-dropdown .dropdown-item:hover{background:var(--bg-tertiary, #22222c)}.multi-select-dropdown .dropdown-item.selected{background:#3b82f626;color:#3b82f6}.multi-select-dropdown .dropdown-empty{padding:20px;text-align:center;color:var(--text-tertiary, #6e6e7a);font-size:13px}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:24px;margin-top:8px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1))}@media(max-width:768px){.task-form{gap:12px}.form-section{padding:16px;border-radius:10px}.form-section-title{font-size:13px;margin-bottom:16px;padding-bottom:10px}.form-row{flex-direction:column;gap:0;margin-bottom:16px}.form-row .form-group{margin-bottom:16px}.form-row .form-group:last-child{margin-bottom:0}.form-group{margin-bottom:16px}.form-group label{font-size:12px}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;font-size:14px}.form-group textarea{min-height:80px}.form-divider{margin:16px 0}.checklist-editor{border-radius:8px}.checklist-item{padding:10px 12px;gap:10px}.checklist-item span{font-size:13px}.checklist-item .remove-btn{opacity:1;width:24px;height:24px}.add-checklist-item{padding:8px 10px;flex-direction:column}.add-checklist-item input{width:100%}.add-checklist-item button{width:100%;height:40px}.multi-select-header{min-height:44px;padding:8px 12px}.selected-users{gap:4px}.selected-user-tag{padding:4px 8px;font-size:11px}.multi-select-dropdown{max-height:180px}.multi-select-dropdown .dropdown-item{padding:10px 12px;font-size:13px}.form-actions{flex-direction:column-reverse;padding-top:16px;margin-top:4px}.form-actions .btn,.form-actions button{width:100%}}@media(max-width:480px){.form-section{padding:14px}.form-section-title{font-size:12px;margin-bottom:14px}.form-group label{font-size:11px}.form-group input,.form-group select,.form-group textarea{padding:10px;font-size:13px}}.task-detail-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1100;display:flex;justify-content:flex-end}.task-detail-modal .task-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1}.task-detail-modal .task-panel{position:relative;z-index:2;width:600px;max-width:100%;height:100%;background:var(--bg-secondary);overflow-y:auto;box-shadow:-8px 0 32px #0000004d}.task-detail-modal .task-panel.loading{display:flex;align-items:center;justify-content:center}.task-detail-modal .task-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10}.task-meta-header{display:flex;align-items:center;gap:10px}.task-code{font-size:14px;color:var(--text-tertiary);font-weight:600}.header-actions{display:flex;align-items:center;gap:8px}.timer-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.timer-btn:hover{background:var(--bg-hover);border-color:var(--accent-color)}.timer-btn.active{background:#ef444426;border-color:#ef4444;color:#ef4444}.timer-btn.active:hover{background:#ef444440}.timer-display{font-family:monospace;font-size:14px;font-weight:600}.close-btn{width:40px;height:40px;border-radius:10px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.task-detail-modal .task-body{padding:24px}.task-title{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 16px;line-height:1.3}.task-description{background:var(--bg-tertiary);border-radius:10px;padding:16px;margin-bottom:24px}.task-description p{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.6;white-space:pre-wrap}.task-tabs{display:flex;gap:4px;background:var(--bg-tertiary);padding:4px;border-radius:10px;margin-bottom:24px}.task-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.task-tabs button:hover{color:var(--text-primary)}.task-tabs button.active{background:var(--accent-color);color:#fff}.detail-section{margin-bottom:24px}.detail-section h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;display:flex;align-items:center;gap:8px}.checklist-count{font-size:12px;color:var(--text-tertiary);font-weight:400}.status-buttons{display:flex;gap:8px;flex-wrap:wrap}.status-btn{padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.status-btn:hover{border-color:var(--accent-color)}.status-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.detail-item{background:var(--bg-tertiary);border-radius:10px;padding:14px}.detail-item label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:6px}.detail-value{font-size:14px;color:var(--text-primary);font-weight:500}.detail-value.project{display:flex;align-items:center;gap:8px}.project-color{width:12px;height:12px;border-radius:3px}.detail-value.overdue{color:#ef4444}.detail-value .empty{color:var(--text-tertiary);font-weight:400}.user-badge{display:flex;align-items:center;gap:10px}.avatar{width:28px;height:28px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);overflow:hidden}.checklist{background:var(--bg-tertiary);border-radius:10px;overflow:hidden}.checklist-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s}.checklist-item:last-child{border-bottom:none}.checklist-item:hover{background:var(--bg-hover)}.checklist-item.completed span{text-decoration:line-through;color:var(--text-tertiary)}.checklist-item .checkbox{width:20px;height:20px;border-radius:4px;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:#fff;transition:all .15s}.checklist-item.completed .checkbox{background:var(--accent-color);border-color:var(--accent-color)}.checklist-item span{font-size:14px;color:var(--text-primary)}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{padding:6px 12px;background:var(--bg-tertiary);border-radius:16px;font-size:13px;color:var(--text-secondary)}.progress-bar-large{height:10px;background:var(--bg-tertiary);border-radius:5px;overflow:hidden;margin-bottom:8px}.progress-bar-large .progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-color),#8b5cf6);border-radius:5px;transition:width .3s ease}.progress-label{font-size:14px;font-weight:600;color:var(--accent-color)}.comments-tab{display:flex;flex-direction:column;gap:16px}.comments-list{max-height:400px;overflow-y:auto}.no-comments,.no-entries{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-tertiary);text-align:center}.no-comments p,.no-entries p{margin:12px 0 0}.comment{display:flex;gap:12px;padding:12px;border-radius:10px;margin-bottom:12px}.comment:hover{background:var(--bg-tertiary)}.comment.system{opacity:.7}.comment-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.comment-avatar img{width:100%;height:100%;object-fit:cover}.comment-content{flex:1}.comment-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.author-name{font-size:14px;font-weight:600;color:var(--text-primary)}.comment-date{font-size:12px;color:var(--text-tertiary)}.comment-text{font-size:14px;color:var(--text-secondary);line-height:1.5}.comment-input{display:flex;flex-direction:column;gap:12px}.comment-input textarea{padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;resize:none}.comment-input textarea:focus{outline:none;border-color:var(--accent-color)}.time-summary{display:flex;gap:16px;margin-bottom:24px}.time-stat{flex:1;background:var(--bg-tertiary);border-radius:12px;padding:20px;text-align:center}.time-stat .value{display:block;font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.time-stat .label{font-size:13px;color:var(--text-secondary)}.time-stat.spent .value{color:var(--accent-color)}.time-entries{display:flex;flex-direction:column;gap:12px}.time-entry{background:var(--bg-tertiary);border-radius:10px;padding:14px}.entry-user{display:flex;align-items:center;gap:10px;margin-bottom:8px}.entry-user span{font-size:14px;font-weight:500;color:var(--text-primary)}.entry-details{display:flex;justify-content:space-between;align-items:center}.entry-details .hours{font-size:16px;font-weight:600;color:var(--accent-color)}.entry-details .date{font-size:13px;color:var(--text-tertiary)}.entry-description{margin:8px 0 0;font-size:13px;color:var(--text-secondary)}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center}.error-state svg{color:var(--accent-red, #ef4444);margin-bottom:16px}.error-state h3{margin:0 0 8px;font-size:18px;color:var(--text-primary)}.error-state p{margin:0 0 24px;font-size:14px;color:var(--text-secondary)}.error-state .btn{padding:10px 24px;background:var(--accent-color);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.error-state .btn:hover{opacity:.9}.delete-btn{width:40px;height:40px;border-radius:10px;background:transparent;border:1px solid transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.delete-btn:hover{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.delete-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1200}.delete-confirm-dialog{background:var(--bg-secondary);border-radius:16px;padding:32px;max-width:400px;text-align:center;border:1px solid var(--border-color);box-shadow:0 20px 40px #0000004d}.delete-confirm-dialog svg{color:#ef4444;margin-bottom:16px}.delete-confirm-dialog h3{margin:0 0 12px;font-size:20px;color:var(--text-primary)}.delete-confirm-dialog p{margin:0 0 24px;font-size:14px;color:var(--text-secondary);line-height:1.5}.delete-confirm-actions{display:flex;gap:12px}.delete-confirm-actions button{flex:1;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.cancel-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary)}.cancel-btn:hover{background:var(--bg-hover)}.confirm-delete-btn{background:#ef4444;border:none;color:#fff}.confirm-delete-btn:hover{background:#dc2626}.confirm-delete-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.task-detail-modal{justify-content:center}.task-detail-modal .task-panel{width:100%;border-radius:0}.task-detail-modal .task-header{padding:16px;flex-wrap:wrap;gap:12px}.task-meta-header{flex-wrap:wrap;gap:8px;order:2;width:100%}.task-code{font-size:13px}.status-badge{font-size:11px;padding:3px 8px}.priority-badge{font-size:10px;padding:2px 6px}.header-actions{order:1;width:100%;justify-content:space-between}.timer-btn{padding:6px 12px;font-size:13px}.timer-btn span:first-child{display:none}.timer-display{font-size:13px}.close-btn,.delete-btn{width:36px;height:36px}.task-detail-modal .task-body{padding:16px}.task-title{font-size:18px;margin-bottom:12px}.task-description{padding:12px;margin-bottom:16px;border-radius:8px}.task-description p{font-size:13px}.task-tabs{margin-bottom:16px;padding:3px;border-radius:8px}.task-tabs button{padding:8px 12px;font-size:12px;gap:6px;border-radius:6px}.task-tabs button svg{display:none}.task-detail-modal .detail-grid{grid-template-columns:1fr;gap:12px;margin-bottom:16px}.detail-item{padding:12px;border-radius:8px}.detail-item label{font-size:11px;margin-bottom:4px}.detail-value{font-size:13px}.avatar{width:24px;height:24px;font-size:10px}.task-detail-modal .status-buttons{flex-direction:column;gap:6px}.task-detail-modal .status-btn{width:100%;text-align:center;padding:10px 14px}.detail-section{margin-bottom:16px}.detail-section h4{font-size:13px;margin-bottom:10px}.checklist{border-radius:8px}.checklist-item{padding:10px 12px;gap:10px}.checklist-item span{font-size:13px}.checklist-item .checkbox{width:18px;height:18px}.tags{gap:6px}.tag{padding:5px 10px;font-size:12px;border-radius:12px}.progress-bar-large{height:8px;margin-bottom:6px}.progress-label{font-size:13px}.comments-list{max-height:300px}.no-comments,.no-entries{padding:30px}.comment{padding:10px;gap:10px}.comment-avatar{width:32px;height:32px;font-size:11px}.author-name{font-size:13px}.comment-date{font-size:11px}.comment-text{font-size:13px}.comment-input textarea{padding:10px;font-size:13px}.time-summary{flex-direction:column;gap:12px;margin-bottom:16px}.time-stat{padding:16px;border-radius:10px}.time-stat .value{font-size:24px}.time-stat .label{font-size:12px}.time-entries{gap:10px}.time-entry{padding:12px;border-radius:8px}.entry-user span{font-size:13px}.entry-details .hours{font-size:14px}.entry-details .date,.entry-description{font-size:12px}.delete-confirm-dialog{margin:16px;padding:24px;border-radius:14px}.delete-confirm-dialog h3{font-size:18px}.delete-confirm-dialog p{font-size:13px;margin-bottom:20px}.delete-confirm-actions{flex-direction:column-reverse;gap:10px}.delete-confirm-actions button{padding:12px 16px}}@media(max-width:480px){.task-detail-modal .task-header,.task-detail-modal .task-body{padding:14px}.task-title{font-size:16px}.task-tabs button{padding:6px 10px;font-size:11px}.status-btn{font-size:12px;padding:8px 12px}}.tasks-page{padding:24px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;overflow-x:hidden}.tasks-controls{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.type-tabs{display:flex;gap:8px;background:var(--bg-secondary);padding:4px;border-radius:12px;width:fit-content;max-width:100%;overflow-x:auto}.tab{display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--accent-color);color:#fff}.filters{display:flex;gap:12px;flex-wrap:wrap}.filters select{padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;min-width:160px;cursor:pointer}.filters select:focus{outline:none;border-color:var(--accent-color)}.tasks-groups{display:flex;flex-direction:column;gap:24px}.task-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;overflow:hidden}.task-group.overdue .group-header{background:#ef44441a;color:#ef4444}.task-group.today .group-header{background:#3b82f61a;color:#3b82f6}.task-group.completed .group-header{background:#22c55e1a;color:#22c55e}.group-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.group-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;color:var(--text-primary)}.group-count{background:var(--bg-secondary);padding:2px 8px;border-radius:10px;font-size:12px;color:var(--text-secondary)}.group-tasks{padding:8px}.task-card{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 16px 20px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;margin-bottom:8px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.task-card:last-child{margin-bottom:0}.task-card:hover{border-color:var(--accent-color);background:var(--bg-hover)}.task-card.completed{opacity:.7}.task-card.completed .task-title{text-decoration:line-through;color:var(--text-tertiary)}.task-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px}.task-card.priority-low:before{background:#22c55e}.task-card.priority-medium:before{background:#3b82f6}.task-card.priority-high:before{background:#f97316}.task-card.priority-critical:before{background:#ef4444}.task-checkbox{padding-top:2px}.task-checkbox input{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-color)}.task-content{flex:1;min-width:0}.task-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.task-code{font-size:12px;color:var(--text-tertiary);font-weight:500}.priority-badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:500;text-transform:uppercase}.task-title{font-size:15px;font-weight:500;color:var(--text-primary);margin:0 0 8px;line-height:1.4}.task-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-tag{font-size:12px;padding:3px 8px;border-radius:6px;font-weight:500}.checklist-count,.subtasks-count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.tasks-page .task-assignee{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.tasks-page .task-assignee img{width:100%;height:100%;object-fit:cover}@media(max-width:768px){.tasks-page{padding:16px 16px 80px}.page-header{flex-direction:column;gap:12px}.header-content h1{font-size:24px}.page-header .btn{width:100%;justify-content:center}.tasks-controls{gap:12px}.type-tabs{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding:4px}.type-tabs::-webkit-scrollbar{display:none}.tab{padding:8px 12px;font-size:13px;white-space:nowrap;flex-shrink:0}.tab svg{display:none}.filters{flex-direction:column;gap:8px}.filters select{width:100%;min-width:unset;padding:12px 14px}.tasks-groups{gap:16px}.task-group{border-radius:12px}.group-header{padding:12px 16px}.group-title{font-size:13px}.group-tasks{padding:4px}.task-card{padding:12px 12px 12px 16px;border-radius:10px;flex-direction:row;flex-wrap:wrap;gap:8px}.task-checkbox{order:0}.task-content{order:1;flex:1;min-width:calc(100% - 80px)}.tasks-page .task-assignee{order:2;width:28px;height:28px;font-size:10px}.task-header{flex-wrap:wrap;gap:6px}.task-code{font-size:11px}.priority-badge{font-size:9px;padding:2px 5px}.task-title{font-size:14px;margin-bottom:6px}.task-meta{gap:6px}.project-tag{font-size:11px;padding:2px 6px}.due-date,.checklist-count,.subtasks-count{font-size:11px}.loading-state,.empty-state{padding:60px 20px}.empty-state h3{font-size:18px}}@media(max-width:480px){.tasks-page{padding:12px}.header-content h1{font-size:20px}.tab{padding:6px 10px;font-size:12px}.task-card{padding:10px 10px 10px 14px}.task-content{min-width:calc(100% - 70px)}.task-title{font-size:13px}.task-meta{flex-wrap:wrap}}.projects-page{padding:24px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.header-content h1{font-size:28px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.page-subtitle{color:var(--text-secondary);font-size:14px;margin:0}.projects-controls{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.search-form{flex:1;min-width:250px}.search-input-wrapper{display:flex;align-items:center;gap:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:12px 16px}.search-input-wrapper input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:14px;outline:none}.search-input-wrapper input::placeholder{color:var(--text-tertiary)}.status-filters{display:flex;gap:8px;background:var(--bg-secondary);padding:4px;border-radius:12px}.filter-btn{padding:8px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.filter-btn:hover{color:var(--text-primary)}.filter-btn.active{background:var(--accent-color);color:#fff}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:20px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--project-color)}.project-card:hover{border-color:var(--project-color);transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.project-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.project-card:hover .project-actions{opacity:1}.action-btn{width:32px;height:32px;border-radius:8px;background:var(--bg-tertiary);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.action-btn.delete:hover{background:#ef444433;color:#ef4444}.project-info{margin-bottom:16px}.project-name{font-size:18px;font-weight:600;color:var(--text-primary);margin:4px 0 8px}.project-description{font-size:13px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.project-stats{margin-bottom:16px}.progress-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:var(--accent-color);border-radius:3px;transition:width .3s ease}.stats-row{display:flex;justify-content:space-between;align-items:center}.stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.progress-text{font-weight:600;color:var(--accent-color)}.project-meta{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--border-color)}.team-avatars{display:flex}.team-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--bg-secondary);margin-left:-8px;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);overflow:hidden}.team-avatar:first-child{margin-left:0}.team-avatar img{width:100%;height:100%;object-fit:cover}.team-avatar.more{background:var(--accent-color);color:#fff;font-size:10px}.status-badge{font-size:12px;padding:4px 10px;border-radius:12px;font-weight:500}.status-badge.active{background:#22c55e33;color:#22c55e}.status-badge.completed{background:#3b82f633;color:#3b82f6}.status-badge.archived{background:#9ca3af33;color:#9ca3af}.project-form{display:flex;flex-direction:column;gap:20px}.form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:12px 16px;border-radius:8px;font-size:14px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--text-primary)}.form-group input,.form-group textarea,.form-group select{padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-color)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.input-with-action{display:flex;gap:8px}.input-with-action input{flex:1}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:36px;height:36px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:all .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#fff;box-shadow:0 0 0 2px var(--accent-color)}.icon-picker{display:flex;gap:8px;flex-wrap:wrap}.icon-option{width:44px;height:44px;border-radius:10px;background:var(--bg-tertiary);border:2px solid transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-option:hover{background:var(--bg-hover);color:var(--text-primary)}.icon-option.selected{border-color:var(--accent-color);background:#3b82f61a;color:var(--accent-color)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-secondary)}.empty-state h3{font-size:20px;color:var(--text-primary);margin:16px 0 8px}.empty-state p{margin:0 0 24px}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.projects-page{padding:16px 16px 80px}.page-header{flex-direction:column;gap:12px}.header-content h1{font-size:24px}.page-header .btn{width:100%;justify-content:center}.projects-controls{flex-direction:column;gap:12px}.search-form{min-width:unset;width:100%}.search-input-wrapper{padding:10px 14px}.status-filters{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%}.status-filters::-webkit-scrollbar{display:none}.filter-btn{padding:8px 14px;font-size:13px;white-space:nowrap;flex-shrink:0}.projects-grid{grid-template-columns:1fr;gap:16px}.project-card{padding:16px;border-radius:14px}.project-actions{opacity:1}.project-icon{width:40px;height:40px;border-radius:10px}.project-icon svg{width:20px;height:20px}.project-name{font-size:16px}.project-description{font-size:12px}.project-meta{padding-top:12px}.team-avatar{width:28px;height:28px;font-size:10px}.status-badge{font-size:11px;padding:3px 8px}.project-form{gap:16px}.form-group label{font-size:13px}.form-group input,.form-group textarea,.form-group select{padding:10px 14px;font-size:14px}.input-with-action{flex-direction:column}.input-with-action .btn{width:100%}.color-picker{justify-content:center}.color-option{width:40px;height:40px}.icon-picker{justify-content:center}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}.loading-state,.empty-state{padding:60px 20px}.empty-state h3{font-size:18px}}@media(max-width:480px){.projects-page{padding:12px}.header-content h1{font-size:20px}.filter-btn{padding:6px 12px;font-size:12px}.project-card{padding:14px}.project-header,.project-info{margin-bottom:12px}}.list-view{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;flex:1;display:flex;flex-direction:column}.tasks-table{width:100%;border-collapse:collapse}.tasks-table th{text-align:left;padding:12px 16px;background:var(--bg-tertiary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);white-space:nowrap}.tasks-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.tasks-table th.sortable:hover{color:var(--text-primary)}.sort-icon{display:inline-flex;align-items:center;margin-left:4px;color:var(--text-tertiary)}.tasks-table td{padding:14px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle}.task-row{cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.task-row:hover{background:var(--bg-hover)}.task-row.completed{opacity:.6}.task-row.completed .task-title{text-decoration:line-through}.task-row.overdue{background:#ef44440d}.col-checkbox{width:40px}.col-checkbox input{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-color)}.col-title{min-width:300px}.task-title-cell{display:flex;align-items:center;gap:10px}.task-code{font-size:12px;color:var(--text-tertiary);font-weight:500;flex-shrink:0}.task-title{font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtask-count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary);flex-shrink:0}.col-status{width:120px}.status-badge{font-size:12px;padding:4px 10px;border-radius:12px;font-weight:500;white-space:nowrap}.status-badge.new{background:#9ca3af33;color:#9ca3af}.status-badge.review{background:#8b5cf633;color:#8b5cf6}.col-priority{width:100px}.priority-badge{font-size:11px;padding:3px 8px;border-radius:6px;font-weight:600;text-transform:uppercase}.priority-badge.low{background:#22c55e33;color:#22c55e}.priority-badge.medium{background:#3b82f633;color:#3b82f6}.priority-badge.high{background:#f9731633;color:#f97316}.priority-badge.critical{background:#ef444433;color:#ef4444}.col-assignee{width:180px}.list-view .assignee-cell{display:flex;align-items:center;gap:8px}.list-view .assignee-cell .avatar{width:28px;height:28px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.list-view .assignee-cell .avatar img{width:100%;height:100%;object-fit:cover}.list-view .assignee-cell .name{font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-view .no-assignee{font-size:13px;color:var(--text-tertiary)}.col-due-date{width:140px}.due-date{font-size:13px;color:var(--text-secondary)}.due-date.overdue{color:#ef4444;font-weight:500}.no-date{color:var(--text-tertiary)}.col-progress{width:120px}.progress-cell{display:flex;align-items:center;gap:8px}.progress-cell .progress-bar{flex:1;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-cell .progress-fill{height:100%;background:var(--accent-color);border-radius:3px;transition:width .3s ease}.progress-text{font-size:12px;color:var(--text-tertiary);min-width:32px;text-align:right}.list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-secondary)}.list-empty h3{font-size:18px;color:var(--text-primary);margin:16px 0 8px}.list-empty p{margin:0 0 24px}@media(max-width:1024px){.list-view{overflow-x:auto;-webkit-overflow-scrolling:touch}.tasks-table{min-width:800px}}@media(max-width:768px){.list-view{border-radius:10px}.tasks-table{min-width:650px}.tasks-table th{padding:10px 12px;font-size:11px;letter-spacing:.3px}.tasks-table td{padding:10px 12px}.col-checkbox{width:32px}.col-checkbox input{width:16px;height:16px}.col-title{min-width:200px}.task-title-cell{gap:8px}.task-code{font-size:11px}.task-title{font-size:13px}.subtask-count{font-size:11px}.col-status{width:100px}.status-badge{font-size:11px;padding:3px 8px}.col-priority{width:80px}.priority-badge{font-size:10px;padding:2px 6px}.col-assignee{width:140px}.list-view .assignee-cell .avatar{width:24px;height:24px;font-size:10px}.list-view .assignee-cell .name,.list-view .no-assignee{font-size:12px}.col-due-date{width:110px}.due-date{font-size:12px}.col-progress{width:100px}.progress-cell .progress-bar{height:5px}.progress-text{font-size:11px;min-width:28px}.list-empty{padding:60px 16px}.list-empty h3{font-size:16px}.list-empty p{font-size:13px}}@media(max-width:480px){.list-view{border-radius:8px}.tasks-table{min-width:580px}.tasks-table th{padding:8px 10px;font-size:10px}.tasks-table td{padding:8px 10px}.col-title{min-width:180px}.task-title{font-size:12px}}.kanban-board{display:flex;gap:20px;flex:1;min-height:400px;overflow-x:auto;padding-bottom:16px}.kanban-column{flex:0 0 300px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;max-height:calc(100vh - 320px);transition:border-color .2s}.kanban-column.drag-active{border-color:var(--accent-color);border-style:dashed}.column-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:12px 12px 0 0}.column-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--column-color)}.task-count{background:var(--bg-secondary);color:var(--text-secondary);padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500}.add-task-btn{width:28px;height:28px;border-radius:6px;background:var(--bg-secondary);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.add-task-btn:hover{background:var(--accent-color);color:#fff}.column-content{flex:1;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.kanban-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:14px;cursor:grab;transition:all .2s;position:relative;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.kanban-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--priority-color);border-radius:4px 0 0 4px}.kanban-card:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.kanban-card:active{cursor:grabbing}.kanban-card.overdue{background:#ef44440d;border-color:#ef44444d}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.priority-dot{width:8px;height:8px;border-radius:50%;background:var(--priority-color)}.kanban-card .task-title{font-size:14px;font-weight:500;color:var(--text-primary);margin:0 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.checklist-progress{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);margin-bottom:10px}.card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.due-date{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary);white-space:nowrap}.due-date.overdue{color:#ef4444}.kanban-board .assignee{width:26px;height:26px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.kanban-board .assignee img{width:100%;height:100%;object-fit:cover}.empty-column{display:flex;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-column p{font-size:13px;color:var(--text-tertiary);margin:0}@media(max-width:768px){.kanban-board{flex-direction:column;gap:16px;min-height:auto;padding-bottom:24px}.kanban-column{flex:none;max-height:none;border-radius:10px}.column-header{padding:12px 14px;border-radius:10px 10px 0 0}.column-title{font-size:13px;gap:6px}.task-count{font-size:11px;padding:2px 6px}.add-task-btn{width:26px;height:26px}.column-content{padding:10px;max-height:350px;gap:8px}.kanban-card{padding:12px;border-radius:8px}.card-header{margin-bottom:6px}.task-code{font-size:10px}.kanban-card .task-title{font-size:13px;margin-bottom:8px}.checklist-progress{font-size:11px;gap:4px;margin-bottom:8px}.due-date{font-size:11px}.kanban-board .assignee{width:24px;height:24px;font-size:9px}.empty-column{padding:30px 16px}.empty-column p{font-size:12px}}@media(max-width:480px){.kanban-board{gap:12px}.kanban-column{border-radius:8px}.column-header{padding:10px 12px;border-radius:8px 8px 0 0}.column-title{font-size:12px}.column-content{padding:8px;max-height:300px;gap:6px}.kanban-card{padding:10px}.kanban-card .task-title{font-size:12px}}.calendar-view{position:relative;flex:1;display:flex;flex-direction:column}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-nav{display:flex;align-items:center;gap:16px}.calendar-nav h2{font-size:20px;font-weight:600;color:var(--text-primary);min-width:180px;text-align:center}.nav-btn{width:36px;height:36px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.calendar-grid{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.weekday{padding:12px;text-align:center;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{min-height:100px;padding:8px;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:var(--bg-hover)}.calendar-day.other-month{background:var(--bg-tertiary)}.calendar-day.other-month .day-number{color:var(--text-tertiary)}.calendar-day.today{background:#3b82f61a}.calendar-day.today .day-number{background:var(--accent-color);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.calendar-day.selected{background:#3b82f626}.calendar-day.past{opacity:.7}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.day-number{font-size:14px;font-weight:500;color:var(--text-primary)}.task-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-color)}.day-tasks{display:flex;flex-direction:column;gap:4px}.day-task{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;transition:opacity .15s}.day-task:hover{opacity:.8}.task-priority{width:4px;height:14px;border-radius:2px;flex-shrink:0}.day-task .task-title{font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-tasks{font-size:11px;color:var(--text-secondary);padding:2px 6px;text-align:center}.selected-date-panel{position:fixed;right:24px;top:50%;transform:translateY(-50%);width:320px;max-height:70vh;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0003;overflow:hidden;z-index:100}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.panel-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0;text-transform:capitalize}.panel-header button{width:32px;height:32px;border-radius:6px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.panel-header button:hover{background:var(--bg-hover);color:var(--text-primary)}.panel-tasks{padding:16px;max-height:calc(70vh - 70px);overflow-y:auto}.no-tasks{text-align:center;color:var(--text-tertiary);font-size:14px;padding:20px 0}.panel-task{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .15s}.panel-task:hover{border-color:var(--accent-color)}.priority-indicator{width:4px;height:100%;min-height:32px;border-radius:2px;flex-shrink:0}.task-info{flex:1;min-width:0}.task-code{display:block;font-size:11px;color:var(--text-tertiary);margin-bottom:2px}.task-name{font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.calendar-view .task-assignee{width:28px;height:28px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.calendar-view .task-assignee img{width:100%;height:100%;object-fit:cover}.add-task{width:100%;margin-top:8px}@media(max-width:768px){.calendar-day{min-height:60px;padding:4px}.day-tasks{display:none}.selected-date-panel{position:fixed;right:16px;left:16px;bottom:16px;top:auto;transform:none;width:auto;max-height:50vh}}.gantt-chart{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;flex:1;min-height:400px}.gantt-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);gap:16px;flex-wrap:wrap}.gantt-legend{display:flex;gap:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:3px}.scale-buttons{display:flex;gap:4px;background:var(--bg-secondary);padding:4px;border-radius:8px}.scale-buttons button{padding:6px 14px;background:transparent;border:none;border-radius:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.scale-buttons button:hover{color:var(--text-primary)}.scale-buttons button.active{background:var(--accent-color);color:#fff}.gantt-container{display:flex;overflow-x:auto;overflow-y:auto;flex:1;min-height:0}.gantt-sidebar{flex-shrink:0;min-width:500px;max-width:600px;border-right:2px solid var(--border-color);background:var(--bg-secondary);position:sticky;left:0;z-index:20;display:flex;flex-direction:column}.sidebar-header{display:flex;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);height:68px;position:sticky;top:0;z-index:25}.header-col{padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;display:flex;align-items:flex-end;border-right:1px solid var(--border-color)}.header-task{flex:2;min-width:180px}.header-assignee{flex:1;min-width:120px}.header-dates{flex:1;min-width:100px}.header-status{flex:1;min-width:100px;border-right:none}.sidebar-tasks{display:flex;flex-direction:column;flex:1}.sidebar-task{display:flex;align-items:center;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s}.sidebar-task:hover,.sidebar-task.hovered{background:var(--bg-hover)}.task-col{padding:8px 12px;display:flex;align-items:center;border-right:1px solid var(--border-color);height:100%}.task-info{flex:2;min-width:180px;gap:10px}.priority-bar{width:4px;height:32px;border-radius:2px;flex-shrink:0}.task-details{display:flex;flex-direction:column;gap:2px;overflow:hidden}.task-code{font-size:11px;color:var(--text-tertiary);font-weight:500}.task-title{font-size:13px;color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-chart .task-assignee{flex:1;min-width:120px}.gantt-chart .assignee-info{display:flex;align-items:center;gap:8px}.gantt-chart .assignee-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.gantt-chart .assignee-placeholder{width:24px;height:24px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-secondary);flex-shrink:0}.gantt-chart .assignee-name{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-chart .no-assignee{color:var(--text-tertiary);font-size:12px}.task-dates{flex:1;min-width:100px;font-size:12px;color:var(--text-secondary)}.task-dates .overdue{color:#ef4444;font-weight:500}.no-date{color:var(--text-tertiary);font-style:italic}.task-status{flex:1;min-width:100px;border-right:none}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500}.status-badge.new{background:#6b728033;color:#9ca3af}.status-badge.in_progress{background:#3b82f633;color:#3b82f6}.status-badge.review{background:#a855f733;color:#a855f7}.status-badge.completed{background:#22c55e33;color:#22c55e}.status-badge.deferred{background:#eab30833;color:#eab308}.status-badge.cancelled{background:#ef444433;color:#ef4444}.gantt-timeline{flex:1;min-width:0;display:flex;flex-direction:column}.gantt-timeline-header{position:sticky;top:0;z-index:15;background:var(--bg-tertiary)}.timeline-months{display:flex;position:relative;background:var(--bg-tertiary);height:28px;border-bottom:1px solid var(--border-color);width:100%}.month-cell{position:absolute;height:28px;display:flex;align-items:center;padding:0 12px;font-size:12px;font-weight:600;color:var(--text-primary);text-transform:capitalize;border-right:1px solid var(--border-color);overflow:hidden;white-space:nowrap}.timeline-header{display:flex;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);height:40px;width:100%}.timeline-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--text-tertiary);border-right:1px solid var(--border-color);flex-shrink:0;box-sizing:border-box}.timeline-cell .day-number{font-weight:500}.timeline-cell .day-name{font-size:9px;text-transform:uppercase;opacity:.8}.timeline-cell.weekend{background:#0000001a}.timeline-cell.today{background:#3b82f633;color:var(--accent-color)}.timeline-cell.today .day-number{font-weight:700}.timeline-body{position:relative;flex:1}.timeline-grid{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;display:flex}.grid-column{position:absolute;top:0;bottom:0;border-right:1px solid var(--border-color);opacity:.5}.grid-column.weekend{background:#0000000d}.grid-column.today{background:#3b82f626;border-left:2px solid var(--accent-color);border-right:2px solid var(--accent-color)}.timeline-row-bg{position:absolute;left:0;right:0;border-bottom:1px solid var(--border-color);transition:background .15s}.timeline-row-bg.hovered{background:rgba(var(--accent-color-rgb, 59, 130, 246),.05)}.timeline-tasks{position:relative;z-index:5}.timeline-row{position:absolute;left:0;right:0;display:flex;align-items:center;padding:8px 0}.gantt-bar{position:absolute;height:36px;border-radius:6px;cursor:pointer;overflow:visible;display:flex;align-items:center;background:color-mix(in srgb,var(--bar-color) 25%,transparent);border:2px solid var(--bar-color);box-shadow:0 2px 4px #0000001a;transform-origin:left center}.gantt-bar:hover,.gantt-bar.hovered{z-index:20;box-shadow:0 4px 12px #0003}.gantt-bar.completed{opacity:.7}.gantt-bar.overdue{border-style:dashed;animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{border-color:var(--bar-color)}50%{border-color:#ef4444}}.gantt-bar .progress-fill{position:absolute;left:0;top:0;bottom:0;background:var(--bar-color);opacity:.4;border-radius:4px 0 0 4px;transition:width .3s}.bar-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 10px;gap:8px}.bar-title{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.bar-progress{font-size:10px;font-weight:600;color:var(--bar-color);background:var(--bg-secondary);padding:2px 6px;border-radius:4px;flex-shrink:0}.gantt-tooltip{position:fixed;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:12px;min-width:220px;max-width:300px;box-shadow:0 8px 24px #0000004d;z-index:9999;pointer-events:none}.gantt-tooltip.visible{opacity:1;visibility:visible}.tooltip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.tooltip-code{font-size:11px;color:var(--text-tertiary);font-weight:500}.tooltip-priority{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600;text-transform:uppercase}.tooltip-priority.priority-low{background:#22c55e33;color:#22c55e}.tooltip-priority.priority-medium{background:#3b82f633;color:#3b82f6}.tooltip-priority.priority-high{background:#f9731633;color:#f97316}.tooltip-priority.priority-critical{background:#ef444433;color:#ef4444}.tooltip-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:10px;line-height:1.3}.tooltip-info{display:flex;flex-direction:column;gap:6px}.tooltip-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.tooltip-row svg{color:var(--text-tertiary);flex-shrink:0}.gantt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-secondary)}.gantt-empty h3{font-size:18px;color:var(--text-primary);margin:16px 0 8px}.gantt-empty p{margin:0}@media(max-width:1024px){.gantt-sidebar{min-width:300px;max-width:350px}.gantt-chart .header-assignee,.gantt-chart .task-assignee,.gantt-chart .header-status,.gantt-chart .task-status{display:none}.header-task,.task-info{flex:2}.header-dates,.task-dates{flex:1}}@media(max-width:768px){.gantt-controls{flex-direction:column;align-items:stretch}.gantt-legend,.scale-buttons{justify-content:center}.gantt-container{min-height:300px}.gantt-sidebar{min-width:200px;max-width:250px}.header-dates,.task-dates{display:none}.sidebar-header{height:40px}.task-title{font-size:12px}.task-code{font-size:10px}.gantt-bar{height:28px}.timeline-header{height:32px}.timeline-months{height:24px}.month-cell{height:24px;font-size:11px}.gantt-tooltip{min-width:180px;padding:10px}}@media(max-width:480px){.gantt-sidebar{min-width:140px;max-width:160px}.task-info{padding:6px 8px}.priority-bar{width:3px;height:24px}.task-title{font-size:11px}.gantt-bar{height:24px}.bar-content{padding:0 6px}.bar-title{font-size:10px}.bar-progress{font-size:9px;padding:1px 4px}}.project-team{padding:8px 0}.team-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.team-header h4{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.add-user-form{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-tertiary);border-radius:10px;margin-bottom:20px}.add-user-form select{padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px}.add-user-form select:focus{outline:none;border-color:var(--accent-color)}.add-user-actions{display:flex;gap:8px;justify-content:flex-end}.team-list{display:flex;flex-direction:column;gap:12px}.team-member{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--bg-tertiary);border-radius:10px;gap:12px}.team-member.owner{background:#3b82f61a;border:1px solid rgba(59,130,246,.2)}.member-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-secondary);overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.member-details{display:flex;flex-direction:column;min-width:0}.member-details .name{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-details .email{font-size:12px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{padding:6px 12px;background:var(--bg-secondary);border-radius:16px;font-size:12px;font-weight:500;color:var(--text-secondary)}.role-badge.owner{background:#3b82f633;color:#3b82f6}.member-actions{display:flex;align-items:center;gap:8px}.member-actions select{padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px}.remove-btn{width:32px;height:32px;border-radius:6px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.remove-btn:hover{background:#ef444433;color:#ef4444}.remove-btn:disabled{opacity:.5;cursor:not-allowed}.no-members{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-tertiary);text-align:center}.no-members p{margin:12px 0 0;font-size:14px}.project-detail-page{padding:0;height:100%;min-height:100vh;display:flex;flex-direction:column}.project-detail-page.loading,.project-detail-page.not-found,.project-detail-page.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary);text-align:center}.project-detail-page.error-state svg{color:var(--accent-red, #ef4444);margin-bottom:16px}.project-detail-page.error-state h2{margin:0 0 8px;color:var(--text-primary)}.project-detail-page.error-state p{margin:0 0 24px;max-width:400px}.error-actions{display:flex;gap:12px}.project-detail-page.loading .spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.project-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);gap:16px;flex-wrap:wrap}.header-left{display:flex;align-items:center;gap:16px}.back-btn{width:40px;height:40px;border-radius:10px;background:var(--bg-tertiary);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.project-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.project-info{display:flex;flex-direction:column;gap:2px}.project-code{font-size:12px;color:var(--text-tertiary);font-weight:600;letter-spacing:.5px}.project-info h1{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.header-right{display:flex;gap:12px}.stats-bar{display:flex;gap:24px;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.stat-item.completed .stat-value{color:#22c55e}.stat-item.in-progress .stat-value{color:#3b82f6}.stat-item.overdue .stat-value{color:#ef4444}.stat-label{font-size:12px;color:var(--text-secondary)}.stat-progress{flex:1;min-width:200px;max-width:300px;display:flex;flex-direction:column;gap:8px;justify-content:center}.progress-info{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.progress-info span:last-child{font-weight:600;color:var(--accent-color)}.progress-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-color),#8b5cf6);border-radius:4px;transition:width .3s ease}.view-controls{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);gap:16px;flex-wrap:wrap}.view-tabs{display:flex;gap:4px;background:var(--bg-secondary);padding:4px;border-radius:12px}.view-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.view-tab:hover{color:var(--text-primary)}.view-tab.active{background:var(--accent-color);color:#fff}.view-filters{display:flex;gap:12px;flex-wrap:wrap}.view-filters select{padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:13px;min-width:140px;cursor:pointer}.view-filters select:focus{outline:none;border-color:var(--accent-color)}.view-content{flex:1;padding:24px;overflow:auto;display:flex;flex-direction:column;min-height:0}@media(max-width:768px){.project-detail-page{padding-bottom:80px}.project-header{padding:14px 16px;gap:12px}.header-left{width:100%;gap:12px}.back-btn{width:36px;height:36px;border-radius:8px}.project-icon{width:40px;height:40px;border-radius:10px}.project-icon svg{width:20px;height:20px}.project-code{font-size:11px}.project-info h1{font-size:18px}.header-right{width:100%;gap:8px}.header-right .btn{flex:1;justify-content:center}.stats-bar{padding:12px 16px;gap:12px;display:grid;grid-template-columns:repeat(2,1fr)}.stat-item{min-width:unset}.stat-value{font-size:20px}.stat-label{font-size:11px}.stat-progress{grid-column:span 2;min-width:unset;max-width:none}.progress-info{font-size:12px}.progress-bar{height:6px}.view-controls{padding:12px 16px;flex-direction:column;align-items:stretch;gap:12px}.view-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;justify-content:flex-start;padding:3px;border-radius:10px}.view-tabs::-webkit-scrollbar{display:none}.view-tab{padding:8px 14px;font-size:13px;white-space:nowrap;flex-shrink:0}.view-tab span{display:none}.view-filters{flex-direction:column;gap:8px}.view-filters select{width:100%;min-width:unset;padding:10px 12px}.view-content{padding:16px 16px 24px;display:flex;flex-direction:column;min-height:0}.project-detail-page.loading,.project-detail-page.not-found,.project-detail-page.error-state{padding:60px 20px}.error-actions{flex-direction:column;width:100%;max-width:280px}}@media(max-width:480px){.project-header{padding:12px 14px}.back-btn{width:32px;height:32px}.project-icon{width:36px;height:36px;border-radius:8px}.project-info h1{font-size:16px}.stats-bar{padding:10px 14px}.stat-value{font-size:18px}.view-controls{padding:10px 14px}.view-tab{padding:6px 12px;font-size:12px}.view-content{padding:14px;display:flex;flex-direction:column;min-height:0}}.task-templates-page{padding:24px;max-width:1400px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:32px}.header-content h1{margin:0 0 8px;font-size:28px;font-weight:700;color:var(--text-primary)}.header-subtitle{margin:0;font-size:14px;color:var(--text-secondary)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--text-muted)}.loading-state .spinner,.empty-state svg{margin-bottom:20px;opacity:.5}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state h2{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--text-secondary)}.empty-state p{margin:0 0 24px;font-size:14px}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.template-card{background:var(--bg-elevated);border-radius:16px;padding:20px;border:1px solid var(--border-color);transition:all .2s;display:flex;flex-direction:column}.template-card:hover{border-color:var(--primary);box-shadow:0 4px 20px #0000001a}.template-header{display:flex;gap:16px;margin-bottom:16px}.template-icon{width:48px;height:48px;background:var(--primary-alpha);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.template-info{flex:1;min-width:0}.template-info h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary)}.template-description{margin:0;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.template-details{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.detail-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.detail-item.global{color:var(--primary)}.priority-badge{font-size:12px;font-weight:500;padding:2px 8px;border-radius:4px}.priority-badge.priority-low{background:rgba(var(--success-rgb),.15);color:var(--success)}.priority-badge.priority-medium{background:rgba(var(--warning-rgb),.15);color:var(--warning)}.priority-badge.priority-high{background:#ff980026;color:#ff9800}.priority-badge.priority-critical{background:rgba(var(--danger-rgb),.15);color:var(--danger)}.template-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.template-tags .tag{font-size:11px;padding:3px 8px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary)}.template-tags .tag.more{background:var(--primary-alpha);color:var(--primary)}.template-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid var(--border-color)}.usage-count{font-size:12px;color:var(--text-muted)}.template-actions{display:flex;gap:4px}.template-actions .action-btn{width:32px;height:32px;border-radius:8px;background:var(--bg-tertiary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.template-actions .action-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.template-actions .action-btn.danger:hover{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.template-form{display:flex;flex-direction:column;gap:24px}.form-section{padding:20px;margin-bottom:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px}.form-section:last-of-type{margin-bottom:0}.form-section h4{margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--border-color);font-size:15px;font-weight:600;color:var(--text-primary)}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:10px;font-size:13px;text-transform:uppercase;letter-spacing:.3px;font-weight:500;color:var(--text-secondary)}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary)}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px}.form-row:last-child{margin-bottom:0}.form-row .form-group{margin-bottom:0}.checkbox-group label{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:0}.checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.checkbox-group span{font-size:14px;color:var(--text-primary)}.checklist-editor,.tags-editor{background:var(--bg-secondary);border-radius:12px;padding:16px}.checklist-input,.tags-input{display:flex;gap:8px;margin-bottom:12px}.checklist-input input,.tags-input input{flex:1;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px}.checklist-input input:focus,.tags-input input:focus{outline:none;border-color:var(--primary)}.checklist-items{display:flex;flex-direction:column;gap:8px}.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-primary);border-radius:8px;font-size:14px;color:var(--text-primary)}.checklist-item span{flex:1}.checklist-item .remove-btn,.tags-list .tag .remove-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);border-radius:4px;transition:all .2s}.checklist-item .remove-btn:hover{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.tags-list{display:flex;flex-wrap:wrap;gap:8px}.tags-list .tag{display:flex;align-items:center;gap:6px;font-size:13px;padding:6px 10px;background:var(--primary-alpha);color:var(--primary);border-radius:6px}.tags-list .tag .remove-btn{padding:2px}.tags-list .tag .remove-btn:hover{color:var(--text-primary)}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border-color)}@media(max-width:768px){.task-templates-page{padding:16px 16px 80px}.page-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:24px}.header-content h1{font-size:24px}.page-header .btn{width:100%;justify-content:center}.templates-grid{grid-template-columns:1fr;gap:16px}.template-card{padding:16px;border-radius:14px}.template-header{gap:12px;margin-bottom:12px}.template-icon{width:40px;height:40px;border-radius:10px}.template-icon svg{width:20px;height:20px}.template-info h3{font-size:15px}.template-description{font-size:12px}.template-details{gap:8px;margin-bottom:12px}.detail-item{font-size:12px}.template-tags{margin-bottom:12px}.template-footer{padding-top:12px}.template-actions .action-btn{width:36px;height:36px}.template-form{gap:16px}.form-section{padding:16px;margin-bottom:12px;border-radius:10px}.form-section h4{font-size:14px;margin-bottom:16px;padding-bottom:10px}.form-group{margin-bottom:16px}.form-group label{font-size:12px;margin-bottom:8px}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select{padding:10px 12px;font-size:14px}.form-row{grid-template-columns:1fr;gap:16px;margin-bottom:16px}.checkbox-group label{gap:8px}.checkbox-group span{font-size:13px}.checklist-editor,.tags-editor{padding:12px}.checklist-input,.tags-input{flex-direction:column;gap:8px;margin-bottom:10px}.checklist-input input,.tags-input input{width:100%}.checklist-item{padding:8px 10px;font-size:13px}.tags-list .tag{font-size:12px;padding:5px 8px}.form-actions{flex-direction:column-reverse;padding-top:12px}.form-actions .btn{width:100%}.loading-state,.empty-state{padding:60px 20px}.empty-state h2{font-size:18px}}@media(max-width:480px){.task-templates-page{padding:12px}.header-content h1{font-size:20px}.template-card{padding:14px}.template-header{gap:10px}.template-icon{width:36px;height:36px}.form-section{padding:14px}}.kpi-card{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-md);transition:all var(--transition-fast);position:relative}.kpi-card:hover{border-color:var(--border-default);background:var(--bg-secondary)}.kpi-card.clickable{cursor:pointer}.kpi-card.clickable:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #00000026}.kpi-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.kpi-card-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.kpi-card-trend{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.kpi-card-trend.positive{background:#10b98126;color:#10b981}.kpi-card-trend.negative{background:#ef444426;color:#ef4444}.kpi-card-content{display:flex;flex-direction:column;gap:2px}.kpi-card-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);line-height:1.2}.kpi-card-title{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.kpi-card-subtitle{font-size:var(--text-xs);color:var(--text-tertiary)}.chart-container{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-md);transition:all var(--transition-fast)}.chart-container:hover{border-color:var(--border-default)}.chart-container.chart-wide{grid-column:span 2}@media(max-width:1024px){.chart-container.chart-wide{grid-column:span 1}}.chart-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-subtle)}.chart-content{width:100%;min-height:250px}.chart-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-tertiary);font-size:var(--text-sm);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px dashed var(--border-subtle)}.recharts-wrapper,.recharts-surface{background:transparent!important}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border-subtle)!important;stroke-opacity:.6}.recharts-legend-item-text{color:var(--text-secondary)!important;font-size:var(--text-sm)!important}.recharts-default-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-md)!important;box-shadow:0 4px 12px #0000004d!important}.recharts-tooltip-wrapper{z-index:1000}.recharts-tooltip-label{color:var(--text-primary)!important;font-weight:600!important;margin-bottom:var(--spacing-xs)!important}.recharts-tooltip-item,.recharts-tooltip-item-name{color:var(--text-secondary)!important}.recharts-tooltip-item-value{color:var(--text-primary)!important;font-weight:600!important}.recharts-cartesian-axis-tick-value{fill:var(--text-tertiary)!important;font-size:var(--text-xs)!important}.recharts-yAxis .recharts-label{fill:var(--text-tertiary)!important}.recharts-bar-rectangle{filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.recharts-pie-sector{stroke:var(--bg-tertiary)!important;stroke-width:2px}.recharts-pie-label-text{fill:var(--text-primary)!important;font-size:var(--text-xs)!important}.analytics-page{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-lg)}.analytics-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);flex-wrap:wrap}@media(max-width:1024px){.analytics-header{flex-direction:column;align-items:stretch}}.analytics-header-left{flex:1}.analytics-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.analytics-subtitle{color:var(--text-tertiary);margin:0}.analytics-header-right{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.analytics-period{display:flex;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.analytics-period-btn{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.analytics-period-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.analytics-period-btn.active{background:var(--color-primary);color:#fff}.analytics-user-selector{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-secondary)}.analytics-user-selector select{background:transparent;border:none;color:var(--text-primary);font-size:var(--text-sm);font-weight:500;cursor:pointer;outline:none;min-width:150px;padding:var(--spacing-xs) 0}.analytics-user-selector select option{background:var(--bg-secondary);color:var(--text-primary)}.analytics-user-selector .icon{color:var(--text-tertiary);flex-shrink:0}.analytics-export-btns{display:flex;gap:var(--spacing-sm)}.analytics-export-btns button{display:flex;align-items:center;gap:var(--spacing-xs)}.analytics-settings-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.analytics-settings-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.analytics-settings-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);overflow:hidden}.analytics-settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.analytics-settings-header h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0}.analytics-reset-btn{padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.analytics-reset-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.analytics-settings-grid{display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr)}@media(min-width:768px){.analytics-settings-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1200px){.analytics-settings-grid{grid-template-columns:repeat(6,1fr)}}.analytics-widget-toggle{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-md);transition:background var(--transition-fast)}.analytics-widget-toggle:hover{background:var(--bg-tertiary)}.analytics-widget-toggle input{display:none}.analytics-widget-toggle .checkmark{width:18px;height:18px;border:2px solid var(--border-default);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.analytics-widget-toggle:hover .checkmark{border-color:var(--color-primary)}.analytics-widget-toggle input:checked+.checkmark{background:var(--color-primary);border-color:var(--color-primary)}.analytics-widget-toggle input:checked+.checkmark:after{content:"";width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}.analytics-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.analytics-section{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--spacing-lg)}.analytics-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-subtle)}.analytics-section-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0}.analytics-section-title .icon{color:var(--text-tertiary)}.analytics-kpi-grid{display:grid;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}@media(min-width:768px){.analytics-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.analytics-kpi-grid{grid-template-columns:repeat(6,1fr)}}.analytics-charts-grid{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:1024px){.analytics-charts-grid{grid-template-columns:repeat(2,1fr)}}.analytics-table-section{margin-top:var(--spacing-md)}.analytics-table-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.analytics-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.analytics-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.analytics-table th,.analytics-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-subtle)}.analytics-table th{background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);white-space:nowrap}.analytics-table td{color:var(--text-primary)}.analytics-table tr:last-child td{border-bottom:none}.analytics-table tbody tr:hover td{background:var(--bg-tertiary)}.doc-number{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);margin-right:var(--spacing-sm);color:var(--text-tertiary)}.overdue-days,.waiting-days{font-weight:600;color:var(--color-error)}.analytics-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md);color:var(--text-tertiary)}.analytics-spinner{width:40px;height:40px;border:3px solid var(--border-subtle);border-top-color:var(--color-primary);border-radius:50%;animation:analytics-spin 1s linear infinite}@keyframes analytics-spin{to{transform:rotate(360deg)}}.analytics-error{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);color:var(--color-error)}.analytics-no-access{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.analytics-no-access .icon{color:var(--text-tertiary);margin-bottom:var(--spacing-lg);opacity:.5}.analytics-no-access h2{font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.analytics-no-access p{margin:var(--spacing-xs) 0;font-size:var(--text-base)}:root,[data-theme=dark]{--bg-primary: #121218;--bg-secondary: #1a1a22;--bg-tertiary: #22222c;--bg-elevated: #262632;--bg-hover: #2e2e3a;--bg-active: #363644;--surface-1: rgba(255, 255, 255, .04);--surface-2: rgba(255, 255, 255, .06);--surface-3: rgba(255, 255, 255, .09);--surface-glass: rgba(26, 26, 34, .85);--border-subtle: rgba(255, 255, 255, .08);--border-default: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .18);--border-focus: #3b82f6;--border-color: rgba(255, 255, 255, .12);--text-primary: #f5f5f7;--text-secondary: #a8a8b3;--text-tertiary: #6e6e7a;--text-muted: #4a4a54;--text-inverse: #121218;--color-scheme: dark;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-blue-muted: rgba(59, 130, 246, .18);--accent-green: #10b981;--accent-green-hover: #059669;--accent-green-muted: rgba(16, 185, 129, .18);--accent-red: #ef4444;--accent-red-hover: #dc2626;--accent-red-muted: rgba(239, 68, 68, .18);--accent-yellow: #f59e0b;--accent-yellow-hover: #d97706;--accent-yellow-muted: rgba(245, 158, 11, .18);--accent-purple: #8b5cf6;--accent-purple-hover: #7c3aed;--accent-purple-muted: rgba(139, 92, 246, .18);--accent-color: #3b82f6;--primary: #3b82f6;--primary-alpha: rgba(59, 130, 246, .18);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--success-rgb: 16, 185, 129;--warning-rgb: 245, 158, 11;--danger-rgb: 239, 68, 68;--gradient-brand: linear-gradient(135deg, #3b82f6 0%, #10b981 100%);--gradient-surface: linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,0) 100%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .35), 0 2px 4px -2px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(59, 130, 246, .25);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 260px;--header-height: 64px;--max-width: 1280px}[data-theme=light]{--bg-primary: #f5f5f4;--bg-secondary: #fafaf9;--bg-tertiary: #eeeeec;--bg-elevated: #ffffff;--bg-hover: #e7e7e5;--bg-active: #dcdcda;--surface-1: rgba(0, 0, 0, .015);--surface-2: rgba(0, 0, 0, .03);--surface-3: rgba(0, 0, 0, .05);--surface-glass: rgba(250, 250, 249, .95);--border-subtle: rgba(0, 0, 0, .05);--border-default: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .12);--border-focus: #3b82f6;--border-color: rgba(0, 0, 0, .08);--text-primary: #1c1917;--text-secondary: #57534e;--text-tertiary: #78716c;--text-muted: #a8a29e;--text-inverse: #fafaf9;--color-scheme: light;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--accent-blue-muted: rgba(37, 99, 235, .1);--accent-green: #059669;--accent-green-hover: #047857;--accent-green-muted: rgba(5, 150, 105, .1);--accent-red: #dc2626;--accent-red-hover: #b91c1c;--accent-red-muted: rgba(220, 38, 38, .1);--accent-yellow: #d97706;--accent-yellow-hover: #b45309;--accent-yellow-muted: rgba(217, 119, 6, .1);--accent-purple: #7c3aed;--accent-purple-hover: #6d28d9;--accent-purple-muted: rgba(124, 58, 237, .1);--accent-color: #2563eb;--primary: #2563eb;--primary-alpha: rgba(37, 99, 235, .1);--success: #059669;--warning: #d97706;--danger: #dc2626;--success-rgb: 5, 150, 105;--warning-rgb: 217, 119, 6;--danger-rgb: 220, 38, 38;--gradient-brand: linear-gradient(135deg, #2563eb 0%, #059669 100%);--gradient-surface: linear-gradient(180deg, rgba(0,0,0,.015) 0%, rgba(0,0,0,0) 100%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .06), 0 2px 4px -2px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .05);--shadow-glow: 0 0 20px rgba(37, 99, 235, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;width:100%}html{color-scheme:var(--color-scheme, dark)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}a{color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-blue-hover)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text-primary);background-color:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-blue-muted)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}::selection{background-color:var(--accent-blue-muted);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;font-size:14px;border-radius:10px;transition:all .2s ease;cursor:pointer;border:1px solid transparent;white-space:nowrap;height:40px;padding:0 16px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;padding:0 24px;font-size:15px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#10b981);color:#fff;border:none;box-shadow:0 4px 6px -1px #0003,0 0 20px #3b82f633}.btn-primary:hover:not(:disabled){box-shadow:0 10px 15px -3px #00000040,0 0 30px #3b82f64d;transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.btn-danger{background:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background:var(--accent-red-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:fadeIn var(--transition-base) ease-out}.animate-slideUp{animation:slideUp var(--transition-slow) ease-out}.animate-slideDown{animation:slideDown var(--transition-slow) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-base) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}@media(max-width:768px),(hover:none){.surface-glass{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}[style*=transform]{transform:none!important}*{transition-duration:.05s!important}.card,.btn,.modal{box-shadow:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
