:root{--bg-app: #f5f7fa;--bg-card: #ffffff;--bg-secondary: #f8f9fa;--bg-hover: #f1f3f5;--bg-input: #ffffff;--text-primary: #2c3e50;--text-secondary: #7f8c8d;--text-muted: #95a5a6;--text-inverse: #ffffff;--border-color: #e1e8ed;--border-light: #ecf0f1;--border-medium: #d1d5db;--header-bg: #1e1e2e;--header-text: rgba(255,255,255,.85);--subheader-bg: #ffffff;--subheader-border: #e5e7eb;--sidebar-bg: #ffffff;--sidebar-border: #e1e8ed;--table-head-bg: #f8f9fa;--table-row-hover:#f8f9fa;--table-border: #ecf0f1;--input-border: #ecf0f1;--input-focus: #667eea;--modal-bg: #ffffff;--modal-overlay: rgba(0,0,0,.5);--shadow-sm: 0 2px 8px rgba(0,0,0,.06);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 8px 32px rgba(0,0,0,.15);--scrollbar-thumb: #c1c1c1;--scrollbar-track: #f1f1f1;--toast-bg: #ffffff;--toast-color: #363636;--color-todo: #6b7280;--color-in-progress: #3b82f6;--color-review: #f59e0b;--color-done: #10b981;--color-overdue: #e74c3c;--color-brand: #667eea;--color-brand-dark: #764ba2;--status-todo: #6b7280;--status-inprogress: #3b82f6;--status-review: #f59e0b;--status-done: #10b981;--primary-color: #667eea;--bg-primary: #ffffff}[data-theme=dark]{--bg-app: #0f1117;--bg-card: #1a1d27;--bg-secondary: #232635;--bg-hover: #2a2d3e;--bg-input: #232635;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f1117;--border-color: #2d3148;--border-light: #252840;--border-medium: #3a3d5c;--header-bg: #13151f;--header-text: rgba(255,255,255,.9);--subheader-bg: #1a1d27;--subheader-border: #2d3148;--sidebar-bg: #1a1d27;--sidebar-border: #2d3148;--table-head-bg: #232635;--table-row-hover:#232635;--table-border: #2d3148;--input-border: #2d3148;--input-focus: #667eea;--modal-bg: #1a1d27;--modal-overlay: rgba(0,0,0,.7);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow-md: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--scrollbar-thumb: #3a3d5c;--scrollbar-track: #1a1d27;--toast-bg: #1a1d27;--toast-color: #e2e8f0;--status-todo: #9ca3af;--status-inprogress: #60a5fa;--status-review: #fbbf24;--status-done: #34d399;--primary-color: #667eea;--bg-primary: #1a1d27}*,*:before,*:after{box-sizing:border-box;transition:background-color .2s ease,border-color .2s ease,color .2s ease}body{background:var(--bg-app);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}input,select,textarea{background:var(--bg-input);color:var(--text-primary);border-color:var(--input-border)}input::placeholder,textarea::placeholder{color:var(--text-muted)}img,video,canvas,svg{transition:none}[data-theme=dark] .stat-card,[data-theme=dark] .stats-section,[data-theme=dark] .recent-tasks-section,[data-theme=dark] .project-card,[data-theme=dark] .project-info-section,[data-theme=dark] .tasks-section,[data-theme=dark] .members-section,[data-theme=dark] .profile-section,[data-theme=dark] .stats-card,[data-theme=dark] .syslog-filter-wrap,[data-theme=dark] .syslog-table-wrap,[data-theme=dark] .gantt-labels,[data-theme=dark] .gantt-month-row,[data-theme=dark] .gantt-day-row,[data-theme=dark] .gantt-grid,[data-theme=dark] .calendar-wrap{background:var(--bg-card);color:var(--text-primary)}[data-theme=dark] .dashboard,[data-theme=dark] .projects-page,[data-theme=dark] .project-detail,[data-theme=dark] .tasks-layout,[data-theme=dark] .stats-page,[data-theme=dark] .syslog-page,[data-theme=dark] .profile-page,[data-theme=dark] .user-management,[data-theme=dark] .gantt-page,[data-theme=dark] .calendar-page{background:var(--bg-app)}[data-theme=dark] .projects-sidebar{background:var(--sidebar-bg);border-right-color:var(--sidebar-border)}[data-theme=dark] .tasks-table thead,[data-theme=dark] .stats-table thead tr,[data-theme=dark] .user-stat-table thead tr,[data-theme=dark] .syslog-table thead tr{background:var(--table-head-bg)}[data-theme=dark] .tasks-table tbody tr:hover,[data-theme=dark] .stats-table tbody tr:hover,[data-theme=dark] .user-stat-table tr:hover td,[data-theme=dark] .syslog-table tr:hover td{background:var(--table-row-hover)}[data-theme=dark] .tasks-table th,[data-theme=dark] .tasks-table td,[data-theme=dark] .stats-table th,[data-theme=dark] .stats-table td,[data-theme=dark] .user-stat-table th,[data-theme=dark] .user-stat-table td,[data-theme=dark] .syslog-table th,[data-theme=dark] .syslog-table td{color:var(--text-primary);border-color:var(--table-border)}[data-theme=dark] .tasks-table-container,[data-theme=dark] .users-table-container,[data-theme=dark] .stats-table{background:var(--bg-card)}[data-theme=dark] .search-input,[data-theme=dark] .quick-filter-select,[data-theme=dark] .gantt-project-select,[data-theme=dark] .gantt-search,[data-theme=dark] .gantt-status-filter,[data-theme=dark] .gantt-range-select,[data-theme=dark] .syslog-filter-input,[data-theme=dark] .milestone-input,[data-theme=dark] .form-group input,[data-theme=dark] .form-group select,[data-theme=dark] .form-group textarea{background:var(--bg-input);border-color:var(--input-border);color:var(--text-primary)}[data-theme=dark] .tasks-filters,[data-theme=dark] .syslog-filter-wrap{background:var(--bg-card);box-shadow:var(--shadow-sm)}[data-theme=dark] .member-modal,[data-theme=dark] .confirm-modal,[data-theme=dark] .user-modal,[data-theme=dark] .task-detail-panel{background:var(--modal-bg)}[data-theme=dark] .modal-overlay,[data-theme=dark] .task-detail-overlay,[data-theme=dark] .app-drawer-overlay{background:var(--modal-overlay)}[data-theme=dark] .modal-header,[data-theme=dark] .section-header{border-color:var(--border-color)}[data-theme=dark] .modal-header h2,[data-theme=dark] .section-header h2{color:var(--text-primary)}[data-theme=dark] .btn-back,[data-theme=dark] .btn-cancel,[data-theme=dark] .btn-more,[data-theme=dark] .filter-btn,[data-theme=dark] .sort-btn,[data-theme=dark] .syslog-page-btn,[data-theme=dark] .syslog-reset-btn,[data-theme=dark] .syslog-quick-btn,[data-theme=dark] .gantt-back-btn,[data-theme=dark] .stats-back-btn,[data-theme=dark] .syslog-back-btn{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}[data-theme=dark] .btn-close{background:var(--bg-secondary);color:var(--text-secondary)}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] .stat-value,[data-theme=dark] .stat-label,[data-theme=dark] .project-card h3,[data-theme=dark] .member-name,[data-theme=dark] .task-title,[data-theme=dark] .info-value,[data-theme=dark] .toggle-title{color:var(--text-primary)}[data-theme=dark] .project-description,[data-theme=dark] .meta-text,[data-theme=dark] .member-username,[data-theme=dark] .task-assignee,[data-theme=dark] .task-due,[data-theme=dark] .info-label,[data-theme=dark] .stat-label,[data-theme=dark] .toggle-desc,[data-theme=dark] .text-muted{color:var(--text-secondary)}[data-theme=dark] .sidebar-header,[data-theme=dark] .project-info-section h2,[data-theme=dark] .section-header{border-color:var(--border-color)}[data-theme=dark] .project-card{box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}[data-theme=dark] .project-meta,[data-theme=dark] .recent-task-card,[data-theme=dark] .project-task-item,[data-theme=dark] .task-item,[data-theme=dark] .member-card,[data-theme=dark] .milestone-item,[data-theme=dark] .milestone-form{background:var(--bg-secondary)}[data-theme=dark] .recent-task-card:hover,[data-theme=dark] .project-task-item:hover,[data-theme=dark] .task-item:hover,[data-theme=dark] .member-card:hover{background:var(--bg-hover)}[data-theme=dark] .project-group{background:var(--bg-card);border:1px solid var(--border-color)}[data-theme=dark] .project-tasks-list{background:var(--bg-card)}[data-theme=dark] .empty-state,[data-theme=dark] .gantt-empty{background:var(--bg-card);color:var(--text-secondary)}[data-theme=dark] .loading-container{background:var(--bg-app)}[data-theme=dark] .loading-container p,[data-theme=dark] .donut-legend-item,[data-theme=dark] .vbar-legend-item,[data-theme=dark] .gantt-legend-item{color:var(--text-secondary)}[data-theme=dark] .syslog-sum-card{background:var(--bg-card)}[data-theme=dark] .syslog-sum-val,[data-theme=dark] .syslog-user-name,[data-theme=dark] .syslog-top-name{color:var(--text-primary)}[data-theme=dark] .gantt-header,[data-theme=dark] .gantt-legend{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .gantt-label-header{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=dark] .gantt-label-row{border-color:var(--border-color)}[data-theme=dark] .gantt-label-title{color:var(--text-primary)}[data-theme=dark] .gantt-day-cell{color:var(--text-secondary);border-color:var(--border-color)}[data-theme=dark] .gantt-row-line,[data-theme=dark] .gantt-week-line{background:var(--border-color)}[data-theme=dark] .gantt-no-date{color:var(--text-muted)}[data-theme=dark] .calendar-wrap .fc-toolbar-title{color:var(--text-primary)}[data-theme=dark] .calendar-wrap .fc-col-header-cell-cushion,[data-theme=dark] .calendar-wrap .fc-daygrid-day-number{color:var(--text-secondary)}[data-theme=dark] .calendar-wrap .fc-button{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .calendar-wrap .fc-daygrid-day{background:var(--bg-card)}[data-theme=dark] .calendar-wrap .fc-scrollgrid,[data-theme=dark] .calendar-wrap .fc-scrollgrid-section>td,[data-theme=dark] .calendar-wrap table{border-color:var(--border-color)!important}[data-theme=dark] .calendar-wrap .fc-daygrid-day.fc-day-today{background:#667eea1f!important}[data-theme=dark] .toggle-switch{background:var(--border-medium)}[data-theme=dark] .email-notification-wrap,[data-theme=dark] .password-info{color:var(--text-secondary)}[data-theme=dark] .stats-summary-card{background:var(--bg-card);border-color:var(--border-color);box-shadow:var(--shadow-sm)}[data-theme=dark] .summary-label{color:var(--text-secondary)}[data-theme=dark] .users-stats{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .users-table{background:var(--bg-card)}[data-theme=dark] .users-table thead{background:var(--bg-secondary)}[data-theme=dark] .users-table th,[data-theme=dark] .users-table td{border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .users-table tbody tr:hover{background:var(--bg-hover)}[data-theme=dark] .Toastify__toast{background:var(--toast-bg)!important;color:var(--toast-color)!important}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--scrollbar-track)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}[data-theme=dark] .search-modal,[data-theme=dark] .search-modal-content{background:var(--modal-bg);border-color:var(--border-color)}[data-theme=dark] .search-input-wrapper,[data-theme=dark] .search-modal input{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .search-result-item:hover{background:var(--bg-hover)}[data-theme=dark] .search-result-item{border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .notification-panel,[data-theme=dark] .notification-header{background:var(--bg-card);border-color:var(--border-color)}[data-theme=dark] .notification-item{border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .notification-item:hover{background:var(--bg-hover)}[data-theme=dark] .notification-item.unread{background:#667eea14}[data-theme=dark] .task-detail-header,[data-theme=dark] .task-detail-section,[data-theme=dark] .comment-item,[data-theme=dark] .subtask-item{border-color:var(--border-color)}[data-theme=dark] .task-detail-header,[data-theme=dark] .comment-input-area{background:var(--bg-card)}[data-theme=dark] .comment-item,[data-theme=dark] .subtask-item{background:var(--bg-secondary);color:var(--text-primary)}[data-theme=dark] .modal-overlay .modal-content,[data-theme=dark] .modal-overlay>div[class*=modal],[data-theme=dark] .task-modal{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .modal-overlay>div{background:var(--bg-card)!important}[data-theme=dark] .modal-overlay .modal-header{border-bottom-color:var(--border-color)!important;background:var(--bg-card)!important}[data-theme=dark] .modal-overlay .modal-header h2{color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .modal-header .btn-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .modal-overlay .modal-form{background:var(--bg-card)!important}[data-theme=dark] .modal-overlay .form-group label{color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .form-group input,[data-theme=dark] .modal-overlay .form-group textarea,[data-theme=dark] .modal-overlay .form-group select{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .form-group input:focus,[data-theme=dark] .modal-overlay .form-group textarea:focus,[data-theme=dark] .modal-overlay .form-group select:focus{border-color:#667eea!important}[data-theme=dark] .modal-overlay .form-group input::placeholder,[data-theme=dark] .modal-overlay .form-group textarea::placeholder{color:var(--text-muted)!important}[data-theme=dark] .modal-overlay select.disabled{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-color:var(--border-color)!important;opacity:.7!important}[data-theme=dark] .modal-overlay .assignees-selector{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .modal-overlay .assignee-item{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .modal-overlay .assignee-item:hover:not(.disabled){background:var(--bg-hover)!important}[data-theme=dark] .modal-overlay .assignee-item.selected{background:#667eea26!important}[data-theme=dark] .modal-overlay .assignee-item.selected .assignee-name,[data-theme=dark] .modal-overlay .assignee-item.selected .assignee-username{color:#a5b4fc!important}[data-theme=dark] .modal-overlay .assignee-checkbox{border-color:var(--border-medium)!important;background:var(--bg-input)!important}[data-theme=dark] .modal-overlay .assignee-name{color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .assignee-username{color:var(--text-muted)!important}[data-theme=dark] .modal-overlay .assignees-placeholder{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-muted)!important}[data-theme=dark] .modal-overlay .assignees-selector.disabled{background:var(--bg-secondary)!important;opacity:.5!important}[data-theme=dark] .modal-overlay .modal-actions{border-top-color:var(--border-color)!important;background:var(--bg-card)!important}[data-theme=dark] .modal-overlay .btn-cancel{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] .modal-overlay .btn-cancel:hover{background:var(--bg-hover)!important}[data-theme=dark] .modal-overlay .field-locked-note,[data-theme=dark] .modal-overlay .permission-note,[data-theme=dark] .modal-overlay .info-note,[data-theme=dark] .modal-overlay .owner-note{color:var(--text-muted)!important}[data-theme=dark] .modal-overlay .dep-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .modal-overlay .dep-item-title{color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .dep-search-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .dep-search-results{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .modal-overlay .dep-search-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .modal-overlay .dep-task-title{color:var(--text-primary)!important}[data-theme=dark] .advanced-filter-panel{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .filter-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .filter-header h2{color:var(--text-primary)!important}[data-theme=dark] .filter-header .btn-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .filter-body{background:var(--bg-card)!important}[data-theme=dark] .filter-group label{color:var(--text-primary)!important}[data-theme=dark] .filter-group select,[data-theme=dark] .filter-group input[type=date],[data-theme=dark] .date-range input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .date-range span{color:var(--text-muted)!important}[data-theme=dark] .filter-footer{border-top-color:var(--border-color)!important;background:var(--bg-card)!important}[data-theme=dark] .btn-reset,[data-theme=dark] .btn-cancel{background:var(--bg-secondary)!important;color:var(--text-primary)!important}[data-theme=dark] .saved-filters-section{border-top-color:var(--border-color)!important}[data-theme=dark] .saved-filters-section h3{color:var(--text-primary)!important}[data-theme=dark] .btn-load-filter{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .btn-delete-filter{border-color:var(--border-color)!important}[data-theme=dark] .save-filter-dialog{background:var(--bg-card)!important;border-color:#667eea!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .save-filter-dialog input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .search-modal{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .search-input-wrap{border-bottom-color:var(--border-color)!important}[data-theme=dark] .search-input{color:var(--text-primary)!important;background:transparent!important}[data-theme=dark] .search-input::placeholder{color:var(--text-muted)!important}[data-theme=dark] .search-esc{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .search-clear{color:var(--text-muted)!important}[data-theme=dark] .search-clear:hover{background:var(--bg-hover)!important}[data-theme=dark] .search-tabs{border-bottom-color:var(--border-color)!important}[data-theme=dark] .search-tab{color:var(--text-secondary)!important}[data-theme=dark] .search-tab:hover{color:var(--text-primary)!important}[data-theme=dark] .search-tab.active{color:#667eea!important}[data-theme=dark] .search-hint,[data-theme=dark] .search-shortcut-hints{color:var(--text-muted)!important}[data-theme=dark] .search-shortcut-hints kbd{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-muted)!important}[data-theme=dark] .search-no-result{color:var(--text-muted)!important}[data-theme=dark] .search-section+.search-section{border-top-color:var(--border-color)!important}[data-theme=dark] .search-section-header{color:var(--text-muted)!important}[data-theme=dark] .search-item:hover,[data-theme=dark] .search-item.focused{background:var(--bg-secondary)!important}[data-theme=dark] .search-item-title{color:var(--text-primary)!important}[data-theme=dark] .search-item-sub,[data-theme=dark] .search-snippet{color:var(--text-muted)!important}[data-theme=dark] .search-mark{background:#fde04740!important;color:#fde047!important}[data-theme=dark] .profile-page{background:var(--bg-primary)!important}[data-theme=dark] .header-left h1{color:var(--text-primary)!important}[data-theme=dark] .header-left p{color:var(--text-muted)!important}[data-theme=dark] .btn-back{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .profile-section{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .section-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .section-header h2{color:var(--text-primary)!important}[data-theme=dark] .info-item{background:var(--bg-secondary)!important}[data-theme=dark] .info-label{color:var(--text-muted)!important}[data-theme=dark] .info-value,[data-theme=dark] .profile-form .form-group label,[data-theme=dark] .password-form .form-group label{color:var(--text-primary)!important}[data-theme=dark] .profile-form .form-group input,[data-theme=dark] .password-form .form-group input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .profile-form .form-group input:disabled{background:var(--bg-secondary)!important;color:var(--text-muted)!important}[data-theme=dark] .password-info{background:#667eea1f!important;border-left-color:#667eea!important}[data-theme=dark] .password-info p{color:#a5b4fc!important}[data-theme=dark] .toggle-title{color:var(--text-primary)!important}[data-theme=dark] .toggle-desc{color:var(--text-muted)!important}[data-theme=dark] .toggle-status.off{background:var(--bg-secondary)!important;color:var(--text-muted)!important}[data-theme=dark] .email-notification-warn{background:#ef444426!important;color:#fca5a5!important}[data-theme=dark] .schedule-modal{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .schedule-modal-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .schedule-modal-header h3{color:var(--text-primary)!important}[data-theme=dark] .sm-field label{color:var(--text-secondary)!important}[data-theme=dark] .sm-field input[type=text],[data-theme=dark] .sm-field input[type=datetime-local],[data-theme=dark] .sm-field input[type=date],[data-theme=dark] .sm-field textarea,[data-theme=dark] .sm-field select{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .schedule-modal-footer{border-top-color:var(--border-color)!important}[data-theme=dark] .btn-cancel-schedule{border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .btn-cancel-schedule:hover{background:var(--bg-hover)!important}[data-theme=dark] .color-dot.selected{border-color:var(--text-primary)!important}[data-theme=dark] .dashboard{background:var(--bg-primary)!important}[data-theme=dark] .stat-card{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .stat-value{color:var(--text-primary)!important}[data-theme=dark] .stat-label{color:var(--text-muted)!important}[data-theme=dark] .stat-icon,[data-theme=dark] .progress-bar{background:var(--bg-secondary)!important}[data-theme=dark] .stats-section{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .stats-section .section-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .stats-table th{color:var(--text-muted)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .stats-table td{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .stats-table tbody tr:hover{background:var(--bg-hover)!important}[data-theme=dark] .project-name{color:var(--text-primary)!important}[data-theme=dark] .recent-tasks-section{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .recent-task-card{background:var(--bg-secondary)!important}[data-theme=dark] .recent-task-card:hover{background:var(--bg-hover)!important}[data-theme=dark] .task-title{color:var(--text-primary)!important}[data-theme=dark] .task-meta{color:var(--text-muted)!important}[data-theme=dark] .project-group{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .project-task-item{border-bottom-color:var(--border-color)!important}[data-theme=dark] .project-task-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .project-task-item .task-title{color:var(--text-primary)!important}[data-theme=dark] .project-task-item .task-due{color:var(--text-muted)!important}[data-theme=dark] .rate-bar{background:var(--bg-secondary)!important}[data-theme=dark] .btn-search-trigger{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .btn-search-trigger kbd{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-muted)!important}[data-theme=dark] .app-action-btn.secondary{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] .app-action-btn.secondary:hover{border-color:#667eea!important;color:#667eea!important;background:var(--bg-hover)!important}[data-theme=dark] .app-action-btn.danger{background:var(--bg-secondary)!important;border-color:#fca5a5!important}[data-theme=dark] .project-folder-panel{background:var(--bg-card)!important;box-shadow:-4px 0 24px #00000059!important}[data-theme=dark] .pf-header{background:var(--bg-card)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .pf-header-title{color:var(--text-primary)!important}[data-theme=dark] .pf-header-project{color:var(--text-muted)!important}[data-theme=dark] .pf-close-btn{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .pf-action-bar{border-bottom-color:var(--border-color)!important}[data-theme=dark] .pf-download-all-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .pf-download-all-btn:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .pf-expand-all-btn{border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .pf-expand-all-btn:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important;border-color:var(--border-medium)!important}[data-theme=dark] .pf-folder-row:hover{background:var(--bg-hover)!important}[data-theme=dark] .pf-folder-name{color:var(--text-primary)!important}[data-theme=dark] .pf-expand-btn{color:var(--text-muted)!important}[data-theme=dark] .pf-expand-btn:hover{background:var(--bg-hover)!important}[data-theme=dark] .pf-btn:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .pf-folder-content{border-left-color:var(--border-color)!important}[data-theme=dark] .pf-name-input{background:var(--bg-input)!important;border-color:#667eea!important;color:var(--text-primary)!important}[data-theme=dark] .pf-file-row:hover{background:var(--bg-secondary)!important}[data-theme=dark] .pf-file-name{color:var(--text-primary)!important}[data-theme=dark] .pf-file-meta{color:var(--text-muted)!important}[data-theme=dark] .category-row{background:#6366f114!important;border-top-color:#6366f133!important}[data-theme=dark] .category-row:hover{background:#6366f124!important}[data-theme=dark] .category-name{color:#a5b4fc!important}[data-theme=dark] .category-task-count{background:#6366f133!important;color:#a5b4fc!important}[data-theme=dark] .category-name-input{background:var(--bg-card)!important;color:var(--text-primary)!important;border-color:#667eea!important}[data-theme=dark] .category-empty-row td{background:var(--bg-secondary)!important;color:var(--text-muted)!important}[data-theme=dark] .add-category-row td{border-top-color:var(--border-color)!important}[data-theme=dark] .task-title-indented{border-left-color:#6366f14d!important}[data-theme=dark] .category-row-child{background:#8b5cf614!important;border-color:#a78bfa33!important}[data-theme=dark] .category-row-child:hover{background:#8b5cf626!important}[data-theme=dark] .category-child-indent{color:#a78bfa!important}[data-theme=dark] .category-child-row.cat-closing td{border-color:transparent!important}[data-theme=dark] .task-row[data-depth="2"]{background:#8b5cf60a!important}[data-theme=dark] .task-row[data-depth="2"] .task-title-indented{border-left-color:#7c3aed!important}[data-theme=dark] .task-row[data-depth="3"] .task-title-indented{border-left-color:#db2777!important}[data-theme=dark] .task-row[data-depth="4"] .task-title-indented{border-left-color:#ea580c!important}[data-theme=dark] .category-date-badge{background:#6366f126!important;color:#a5b4fc!important;border:1px solid rgba(99,102,241,.3)!important}[data-theme=dark] .login-container,[data-theme=dark] .login-box{background:var(--bg-card)}[data-theme=dark] .login-container{background:var(--bg-app)}[data-theme=dark] .syslog-page{background:var(--bg-app)!important}[data-theme=dark] .syslog-summary{background:transparent!important}[data-theme=dark] .syslog-sum-card{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .syslog-sum-val{color:var(--text-primary)!important}[data-theme=dark] .syslog-sum-label{color:var(--text-secondary)!important}[data-theme=dark] .syslog-top-name{color:var(--text-primary)!important}[data-theme=dark] .syslog-top-rank{color:var(--text-muted)!important}[data-theme=dark] .syslog-filter-wrap{background:var(--bg-card)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .syslog-filter-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .syslog-quick-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .syslog-quick-btn:hover{background:#667eea!important;color:#fff!important}[data-theme=dark] .syslog-range-sep{color:var(--text-muted)!important}[data-theme=dark] .syslog-reset-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .syslog-result-info{color:var(--text-secondary)!important}[data-theme=dark] .syslog-result-info strong{color:var(--text-primary)!important}[data-theme=dark] .syslog-table-wrap{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .syslog-table thead tr{background:var(--bg-secondary)!important}[data-theme=dark] .syslog-table th{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .syslog-table td{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important;background:var(--bg-card)!important}[data-theme=dark] .syslog-table tr:hover td{background:var(--bg-hover)!important}[data-theme=dark] .syslog-cell-time{color:var(--text-secondary)!important}[data-theme=dark] .syslog-user-name{color:var(--text-primary)!important}[data-theme=dark] .syslog-user-id{color:var(--text-muted)!important}[data-theme=dark] .syslog-cell-desc{color:var(--text-primary)!important}[data-theme=dark] .syslog-cell-val.old{color:#f87171!important}[data-theme=dark] .syslog-cell-val.new{color:#34d399!important}[data-theme=dark] .syslog-cell-project{color:var(--text-secondary)!important}[data-theme=dark] .syslog-pagination .syslog-page-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .syslog-page-btn:hover:not(:disabled){border-color:#667eea!important;color:#667eea!important}[data-theme=dark] .syslog-page-btn.active{background:#667eea!important;color:#fff!important;border-color:#667eea!important}[data-theme=dark] .user-management{background:var(--bg-app)!important}[data-theme=dark] .users-container{background:transparent!important}[data-theme=dark] .users-stats{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .users-stats .stat-label{color:var(--text-secondary)!important}[data-theme=dark] .users-stats .stat-value{color:var(--text-primary)!important}[data-theme=dark] .users-table-container{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important;border-radius:12px!important;overflow:hidden!important}[data-theme=dark] .users-table thead tr{background:var(--bg-secondary)!important}[data-theme=dark] .users-table th{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .users-table td{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .users-table tbody tr:hover td{background:var(--bg-hover)!important}[data-theme=dark] .users-table .username-cell{color:var(--text-primary)!important}[data-theme=dark] .users-table .text-muted{color:var(--text-muted)!important}[data-theme=dark] .user-modal{background:var(--modal-bg)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .user-modal .modal-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .user-modal .modal-header h2{color:var(--text-primary)!important}[data-theme=dark] .user-modal .btn-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .user-modal .form-group label{color:var(--text-primary)!important}[data-theme=dark] .user-modal .form-group input,[data-theme=dark] .user-modal .form-group select{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .user-modal .form-group input:focus,[data-theme=dark] .user-modal .form-group select:focus{border-color:var(--input-focus)!important}[data-theme=dark] .user-modal p{color:var(--text-secondary)!important}[data-theme=dark] .user-modal .btn-cancel{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .notification-panel{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .notification-controls{background:var(--bg-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .filter-label{color:var(--text-muted)!important}[data-theme=dark] .filter-tab{background:var(--bg-card)!important;color:var(--text-secondary)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .filter-tab:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .filter-tab.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-color:transparent!important}[data-theme=dark] .type-filter{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .type-filter:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .type-filter.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-color:transparent!important}[data-theme=dark] .notification-list{background:var(--bg-card)!important}[data-theme=dark] .notification-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .notification-item:hover{background:var(--bg-hover)!important;border-color:var(--border-medium)!important}[data-theme=dark] .notification-item.unread{background:#667eea1a!important;border-color:#667eea66!important}[data-theme=dark] .notification-title{color:var(--text-primary)!important}[data-theme=dark] .notification-message{color:var(--text-secondary)!important}[data-theme=dark] .notification-time,[data-theme=dark] .btn-delete-notification{color:var(--text-muted)!important}[data-theme=dark] .btn-delete-notification:hover{background:#e74c3c!important;color:#fff!important}[data-theme=dark] .notification-empty{background:var(--bg-card)!important}[data-theme=dark] .notification-empty p,[data-theme=dark] .notification-loading p{color:var(--text-muted)!important}[data-theme=dark] .history-panel{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .history-body{background:var(--bg-card)!important}[data-theme=dark] .history-line{background:var(--border-color)!important}[data-theme=dark] .history-user{color:var(--text-primary)!important}[data-theme=dark] .history-time{color:var(--text-muted)!important}[data-theme=dark] .history-description{color:var(--text-primary)!important}[data-theme=dark] .history-change{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .old-value{background:#ef444426!important;color:#f87171!important}[data-theme=dark] .arrow{color:var(--text-muted)!important}[data-theme=dark] .new-value{background:#34d39926!important;color:#34d399!important}[data-theme=dark] .history-footer{background:var(--bg-card)!important;border-top-color:var(--border-color)!important}[data-theme=dark] .btn-close-footer{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .btn-close-footer:hover{background:var(--bg-hover)!important}[data-theme=dark] .history-empty p,[data-theme=dark] .history-loading p{color:var(--text-muted)!important}[data-theme=dark] .project-info-section{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .project-info-section h2{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .project-info-section .info-item{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;padding:16px!important}[data-theme=dark] .project-info-section .info-label{color:var(--text-secondary)!important}[data-theme=dark] .project-info-section .info-value{color:var(--text-primary)!important}[data-theme=dark] .project-stats .stat-card{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .project-stats .stat-label{color:var(--text-secondary)!important}[data-theme=dark] .project-stats .stat-value{color:var(--text-primary)!important}[data-theme=dark] .project-stats .progress-bar{background:var(--border-color)!important}[data-theme=dark] .project-detail .btn-gantt{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .project-detail .btn-gantt:hover{border-color:#667eea!important;color:#a5b4fc!important}[data-theme=dark] .project-detail .tasks-section{background:var(--bg-card)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .project-detail .task-item{background:var(--bg-secondary)!important}[data-theme=dark] .project-detail .task-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .project-detail .task-title{color:var(--text-primary)!important}[data-theme=dark] .project-detail .task-assignee,[data-theme=dark] .project-detail .task-due{color:var(--text-secondary)!important}[data-theme=dark] .project-detail .filter-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .project-detail .filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-color:transparent!important}[data-theme=dark] .project-detail .members-section{background:var(--bg-card)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .project-detail .member-card{background:var(--bg-secondary)!important}[data-theme=dark] .project-detail .member-card:hover{background:var(--bg-hover)!important}[data-theme=dark] .project-detail .member-name{color:var(--text-primary)!important}[data-theme=dark] .project-detail .member-username{color:var(--text-muted)!important}[data-theme=dark] .file-drop-zone{background:var(--bg-secondary)!important;border-color:var(--border-medium)!important}[data-theme=dark] .file-drop-zone:hover:not(.disabled){border-color:#667eea!important;background:#667eea14!important}[data-theme=dark] .file-drop-zone.dragging{border-color:#667eea!important;background:#667eea1f!important}[data-theme=dark] .file-drop-zone.disabled{background:var(--bg-hover)!important;border-color:var(--border-color)!important}[data-theme=dark] .drop-zone-text{color:var(--text-primary)!important}[data-theme=dark] .drop-zone-hint{color:var(--text-muted)!important}[data-theme=dark] .calendar-wrap{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .calendar-wrap .fc-col-header{background:var(--bg-secondary)!important}[data-theme=dark] .calendar-wrap .fc-col-header-cell{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .calendar-wrap .fc-col-header-cell-cushion{color:var(--text-secondary)!important;font-weight:600!important}[data-theme=dark] .calendar-wrap .fc-daygrid-day{background:var(--bg-card)!important;border-color:var(--border-color)!important}[data-theme=dark] .calendar-wrap .fc-daygrid-day-number{color:var(--text-secondary)!important}[data-theme=dark] .calendar-wrap .fc-day-today .fc-daygrid-day-number{color:#667eea!important;font-weight:700!important}[data-theme=dark] .calendar-wrap table,[data-theme=dark] .calendar-wrap .fc-scrollgrid,[data-theme=dark] .calendar-wrap td,[data-theme=dark] .calendar-wrap th{border-color:var(--border-color)!important}[data-theme=dark] .calendar-wrap .fc-toolbar-title{color:var(--text-primary)!important}[data-theme=dark] .calendar-wrap .fc-daygrid-day-top{color:var(--text-secondary)!important}[data-theme=dark] .calendar-wrap .fc-list-day-cushion{background:var(--bg-secondary)!important;color:var(--text-primary)!important}[data-theme=dark] .calendar-wrap .fc-list-event{background:var(--bg-card)!important;color:var(--text-primary)!important}[data-theme=dark] .calendar-wrap .fc-list-event:hover td{background:var(--bg-hover)!important}[data-theme=dark] .calendar-wrap .fc-list-empty{background:var(--bg-card)!important;color:var(--text-muted)!important}[data-theme=dark] .projects-sidebar{background:var(--bg-card)!important;border-right-color:var(--border-color)!important}[data-theme=dark] .sidebar-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .sidebar-header h3,[data-theme=dark] .project-item{color:var(--text-primary)!important}[data-theme=dark] .project-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .project-name-sidebar{color:var(--text-primary)!important}[data-theme=dark] .project-task-count,[data-theme=dark] .btn-clear-filter{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .tasks-filters{background:var(--bg-card)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .search-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .search-input:focus{border-color:#667eea!important}[data-theme=dark] .quick-filter-select{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .btn-advanced-filter{background:var(--bg-secondary)!important;border-color:#667eea80!important;color:#a5b4fc!important}[data-theme=dark] .btn-advanced-filter:hover{background:#667eea33!important}[data-theme=dark] .filter-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .filter-btn:hover{border-color:#667eea!important;color:#a5b4fc!important}[data-theme=dark] .filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-color:transparent!important}[data-theme=dark] .filter-btn:disabled{opacity:.4!important}[data-theme=dark] .tasks-table-container{background:var(--bg-card)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .tasks-table thead{background:var(--bg-secondary)!important}[data-theme=dark] .tasks-table th{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .tasks-table td{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .tasks-table tbody tr:hover{background:var(--bg-hover)!important}[data-theme=dark] .task-title-cell{color:var(--text-primary)!important}[data-theme=dark] .project-name{color:var(--text-muted)!important}[data-theme=dark] .description-cell{color:var(--text-secondary)!important}[data-theme=dark] .assignee-tag{background:#667eea1f!important;border-color:#667eea59!important;color:#a5b4fc!important}[data-theme=dark] .no-assignee{color:var(--text-muted)!important}[data-theme=dark] .empty-state{background:var(--bg-card)!important;color:var(--text-primary)!important}[data-theme=dark] .empty-state h3,[data-theme=dark] .empty-state p{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel,[data-theme=dark] .task-detail-panel .panel-body,[data-theme=dark] .task-detail-panel .info-tab,[data-theme=dark] .task-detail-panel .files-tab,[data-theme=dark] .task-detail-panel .comments-tab,[data-theme=dark] .task-detail-panel .checklist-tab{background:var(--bg-card)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .panel-header{background:var(--bg-card)!important;border-bottom-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .task-number{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .task-title{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .btn-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .btn-close:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .status-select{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .panel-tabs{background:var(--bg-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .tab-btn{color:var(--text-secondary)!important;background:transparent!important}[data-theme=dark] .task-detail-panel .tab-btn:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .tab-btn.active{background:var(--bg-card)!important;color:#667eea!important;border-bottom-color:#667eea!important}[data-theme=dark] .task-detail-panel .info-item{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;padding:12px!important}[data-theme=dark] .task-detail-panel .info-label{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .info-value{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .info-value.due-date{color:#ef4444!important}[data-theme=dark] .task-detail-panel .description-section{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .task-detail-panel .description-content{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .assignee-tag-detail{background:#667eea26!important;border-color:#667eea66!important;color:#a5b4fc!important}[data-theme=dark] .task-detail-panel .btn-history{background:var(--bg-secondary)!important;border-color:#667eea80!important;color:#a5b4fc!important}[data-theme=dark] .task-detail-panel .btn-history:hover{background:#667eea!important;color:#fff!important;border-color:#667eea!important}[data-theme=dark] .task-detail-panel .tab-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .file-card{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .file-card:hover{background:var(--bg-hover)!important}[data-theme=dark] .task-detail-panel .file-name-large{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .file-meta-large,[data-theme=dark] .task-detail-panel .file-size{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .file-name{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .attached-file-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .comment-input-section{background:var(--bg-card)!important;border-top-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .comment-input{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .comment-input:focus{border-color:#667eea!important;background:var(--bg-input)!important}[data-theme=dark] .task-detail-panel .comment-card{background:transparent!important}[data-theme=dark] .task-detail-panel .comment-author{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .comment-date{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .other-comment .comment-content{background:var(--bg-secondary)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .my-comment .comment-content{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important}[data-theme=dark] .task-detail-panel .comment-actions button{color:var(--text-secondary)!important;background:transparent!important}[data-theme=dark] .task-detail-panel .comment-actions button:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .comment-file-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .comment-file-item .file-name{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .comment-file-item .file-size{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .comment-edit-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .reaction-bubble{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .reaction-bubble.reacted{background:#667eea33!important;border-color:#667eea!important}[data-theme=dark] .task-detail-panel .emoji-picker-popup,[data-theme=dark] .task-detail-panel .reaction-popup{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .task-detail-panel .reaction-badge{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .reaction-badge:hover,[data-theme=dark] .task-detail-panel .reaction-badge.reacted{background:#667eea33!important;border-color:#667eea!important}[data-theme=dark] .task-detail-panel .reply-card{background:var(--bg-secondary)!important;border-left-color:var(--border-medium)!important}[data-theme=dark] .task-detail-panel .reply-card.my-reply{background:#667eea1a!important;border-left-color:#667eea!important}[data-theme=dark] .task-detail-panel .reply-author,[data-theme=dark] .task-detail-panel .reply-author .author-name{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .reply-date{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .reply-content{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .btn-delete-reply{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .btn-delete-reply:hover{background:#e74c3c26!important;color:#e74c3c!important}[data-theme=dark] .task-detail-panel .reply-file-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .thread-replies{background:#0003!important;border-left-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .reply-input-row input,[data-theme=dark] .task-detail-panel .reply-input{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .checklist-progress{background:var(--bg-secondary)!important}[data-theme=dark] .task-detail-panel .checklist-progress-label{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .checklist-progress-bar{background:var(--border-color)!important}[data-theme=dark] .task-detail-panel .checklist-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .checklist-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .task-detail-panel .checklist-content{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .checklist-item.completed .checklist-content,[data-theme=dark] .task-detail-panel .checklist-empty{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .checklist-edit-input,[data-theme=dark] .task-detail-panel .checklist-add-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .checklist-edit-input:focus,[data-theme=dark] .task-detail-panel .checklist-add-input:focus{border-color:#667eea!important}[data-theme=dark] .task-detail-panel .checklist-cancel-btn{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .checklist-delete-btn{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .checklist-delete-btn:hover{background:#e74c3c26!important;color:#e74c3c!important}[data-theme=dark] .task-detail-panel .checklist-add-row,[data-theme=dark] .task-detail-panel .dependency-block{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .dep-item{background:var(--bg-card)!important;border-color:var(--border-color)!important}[data-theme=dark] .task-detail-panel .dep-item.readonly{background:var(--bg-secondary)!important}[data-theme=dark] .task-detail-panel .dep-item-title{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .dep-item-project,[data-theme=dark] .task-detail-panel .dep-empty{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .dep-search-input{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .dep-search-results{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .task-detail-panel .dep-search-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .task-detail-panel .dep-task-title{color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .dep-search-empty{color:var(--text-muted)!important}[data-theme=dark] .task-detail-panel .file-sort-bar{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important}[data-theme=dark] .task-detail-panel .sort-label{color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .sort-btn{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .task-detail-panel .sort-btn:hover{background:var(--bg-hover)!important;border-color:var(--border-medium)!important;color:var(--text-primary)!important}[data-theme=dark] .task-detail-panel .sort-btn.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;border-color:#667eea!important;color:#fff!important}[data-theme=dark] .mention-dropdown{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .mention-item{color:var(--text-primary)!important}[data-theme=dark] .mention-item:hover,[data-theme=dark] .mention-item.active{background:var(--bg-hover)!important}[data-theme=dark] .mention-username{color:var(--text-secondary)!important}[data-theme=dark] .bulk-upload-modal{background:var(--bg-card)!important;color:var(--text-primary)!important}[data-theme=dark] .bulk-modal-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .bulk-modal-title{color:var(--text-primary)!important}[data-theme=dark] .bulk-modal-project{color:var(--text-muted)!important}[data-theme=dark] .bulk-modal-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .bulk-steps{background:var(--bg-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .bulk-step{color:var(--text-muted)!important}[data-theme=dark] .bulk-step.active{color:#818cf8!important}[data-theme=dark] .bulk-step.done{color:#34d399!important}[data-theme=dark] .bulk-template-box{background:#6366f11f!important;border-color:#6366f14d!important}[data-theme=dark] .bulk-template-title{color:#a5b4fc!important}[data-theme=dark] .bulk-template-desc{color:#818cf8!important}[data-theme=dark] .bulk-upload-zone{border-color:#6366f159!important}[data-theme=dark] .bulk-upload-zone:hover{background:#6366f114!important;border-color:#818cf8!important}[data-theme=dark] .bulk-upload-hint{color:var(--text-secondary)!important}[data-theme=dark] .bulk-upload-ext{color:var(--text-muted)!important}[data-theme=dark] .bulk-summary-card.total{background:var(--bg-secondary)!important}[data-theme=dark] .bulk-summary-card.total .bulk-summary-num{color:var(--text-primary)!important}[data-theme=dark] .bulk-summary-card.success{background:#10b98126!important}[data-theme=dark] .bulk-summary-card.success .bulk-summary-num{color:#34d399!important}[data-theme=dark] .bulk-summary-card.error{background:#ef444426!important}[data-theme=dark] .bulk-summary-card.error .bulk-summary-num{color:#f87171!important}[data-theme=dark] .bulk-summary-card.ok{background:#10b98126!important}[data-theme=dark] .bulk-summary-label{color:var(--text-muted)!important}[data-theme=dark] .bulk-error-notice{background:#eab3081f!important;border-color:#eab3084d!important;color:#fde047!important}[data-theme=dark] .bulk-result-table-wrap{border-color:var(--border-color)!important}[data-theme=dark] .bulk-result-table th{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .bulk-result-table td{color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .bulk-row-error td{background:#ef444414!important}[data-theme=dark] .bulk-col-errors{color:#f87171!important}[data-theme=dark] .bulk-modal-footer{border-top-color:var(--border-color)!important}[data-theme=dark] .bulk-btn-cancel{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-theme=dark] .bulk-btn-cancel:hover{background:var(--bg-hover)!important}[data-theme=dark] .bulk-done-title{color:var(--text-primary)!important}[data-theme=dark] .bulk-done-desc{color:var(--text-muted)!important}[data-theme=dark] .bulk-tabs{background:var(--bg-secondary)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .bulk-tab{color:var(--text-muted)!important}[data-theme=dark] .bulk-tab:hover{background:#6366f114!important;color:#818cf8!important}[data-theme=dark] .bulk-tab.active{color:#818cf8!important;border-bottom-color:#818cf8!important;background:var(--bg-card)!important}[data-theme=dark] .bulk-info-box{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .bulk-info-title{color:var(--text-primary)!important}[data-theme=dark] .bulk-info-desc{color:var(--text-muted)!important}[data-theme=dark] .bulk-member-tag{background:#8b5cf633!important;color:#a78bfa!important}[data-theme=dark] .bulk-cat-item{color:var(--text-secondary)!important}[data-theme=dark] .bulk-info-empty{color:var(--text-muted)!important}[data-theme=dark] .category-picker-trigger{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .category-picker-trigger:hover{border-color:#667eea!important}[data-theme=dark] .category-trigger-text{color:var(--text-primary)!important}[data-theme=dark] .category-trigger-arrow{color:var(--text-muted)!important}[data-theme=dark] .category-tree-dropdown{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:0 8px 32px #00000080!important}[data-theme=dark] .cat-tree-item{color:var(--text-primary)!important}[data-theme=dark] .cat-tree-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .cat-tree-item.selected{background:#667eea33!important;color:#a5b4fc!important}[data-theme=dark] .cat-tree-item.cat-tree-none{color:var(--text-muted)!important}[data-theme=dark] .cat-tree-item.cat-tree-none.selected{color:#a5b4fc!important}[data-theme=dark] .cat-tree-name{color:inherit!important}[data-theme=dark] .cat-tree-check{color:#a5b4fc!important}[data-theme=dark] .cat-tree-divider{background:var(--border-color)!important}[data-theme=dark] .modal-overlay .category-picker-trigger{background:var(--bg-input)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .category-picker-trigger:hover{border-color:#667eea!important}[data-theme=dark] .modal-overlay .category-tree-dropdown{background:var(--bg-card)!important;border-color:var(--border-color)!important;box-shadow:0 8px 32px #00000080!important;z-index:99999!important}[data-theme=dark] .modal-overlay .cat-tree-item{color:var(--text-primary)!important}[data-theme=dark] .modal-overlay .cat-tree-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .modal-overlay .cat-tree-item.selected{background:#667eea33!important;color:#a5b4fc!important}[data-theme=dark] .modal-overlay .cat-tree-item.cat-tree-none{color:var(--text-muted)!important}[data-theme=dark] .modal-overlay .cat-tree-divider{background:var(--border-color)!important}.recharts-wrapper,.recharts-wrapper *,.recharts-surface{outline:none!important}[data-theme=dark] .chart-card{background:var(--bg-card)!important;box-shadow:var(--shadow-sm)!important}[data-theme=dark] .chart-card-header{border-bottom-color:var(--border-color)!important}[data-theme=dark] .chart-card-header h3{color:var(--text-primary)!important}[data-theme=dark] .chart-empty{color:var(--text-muted)!important}[data-theme=dark] .deadline-panel,[data-theme=dark] .config-panel{background:var(--bg-card)!important;box-shadow:-4px 0 24px #00000080!important}[data-theme=dark] .deadline-list{background:var(--bg-card)!important}[data-theme=dark] .deadline-item.overdue{background:#e74c3c1f!important}[data-theme=dark] .deadline-item.overdue:hover{background:#e74c3c33!important}[data-theme=dark] .deadline-item.soon{background:#f57c001a!important}[data-theme=dark] .deadline-item.soon:hover{background:#f57c002e!important}[data-theme=dark] .deadline-project{background:var(--bg-secondary)!important;color:var(--text-muted)!important}[data-theme=dark] .deadline-item-title{color:var(--text-primary)!important}[data-theme=dark] .deadline-assignee,[data-theme=dark] .deadline-date,[data-theme=dark] .panel-empty p{color:var(--text-muted)!important}[data-theme=dark] .config-panel-body{background:var(--bg-card)!important}[data-theme=dark] .config-desc{color:var(--text-muted)!important}[data-theme=dark] .widget-config-item{background:var(--bg-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .widget-config-item:hover{background:var(--bg-hover)!important}[data-theme=dark] .widget-drag-handle{color:var(--text-muted)!important}[data-theme=dark] .widget-config-label{color:var(--text-primary)!important}[data-theme=dark] .config-reset-btn{background:var(--bg-secondary)!important;border-color:var(--border-medium)!important;color:var(--text-secondary)!important}[data-theme=dark] .config-reset-btn:hover{background:var(--bg-hover)!important;color:var(--text-primary)!important}[data-theme=dark] .pinned-row{background:#f39c1214!important}[data-theme=dark] .pinned-row:hover{background:#f39c1224!important}[data-theme=dark] .hidden-row{opacity:.5!important}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-box{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:50px;width:100%;max-width:450px;animation:slideUp .5s ease}.login-header{text-align:center;margin-bottom:40px}.login-header h1{margin:0;font-size:42px;color:#4a154b;font-weight:800}.login-header p{margin:10px 0 0;font-size:18px;color:#7f8c8d}.login-form{margin-bottom:30px}.form-group input{width:100%;padding:14px 18px;border:2px solid #ecf0f1;border-radius:10px;font-size:15px;transition:all .3s ease;font-family:inherit}.error-message{padding:14px 18px;background:#fee;border:2px solid #fcc;border-radius:10px;color:#c33;font-size:14px;margin-bottom:20px;display:flex;align-items:center;gap:8px}.btn-login{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.btn-login:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-info{padding-top:30px;border-top:2px solid #ecf0f1}.login-info h3{margin:0 0 15px;font-size:16px;color:#2c3e50;text-align:center}.test-accounts{display:flex;flex-direction:column;gap:10px}.account{padding:12px;background:#f8f9fa;border-radius:8px;font-size:13px;color:#555}.account strong{color:#2c3e50;margin-right:8px}.login-footer{text-align:center;margin-top:20px}.forgot-password-link{font-size:14px;color:#667eea;text-decoration:none;transition:color .2s ease}.forgot-password-link:hover{color:#764ba2;text-decoration:underline}.login-2fa-hint{margin:8px 0 0;font-size:12.5px;color:#7f8c8d;line-height:1.5}.login-2fa-actions{display:flex;justify-content:space-between;margin-top:18px}.login-link-btn{background:none;border:none;padding:4px 2px;font-size:14px;color:#667eea;cursor:pointer;transition:color .2s ease;font-family:inherit}.login-link-btn:hover:not(:disabled){color:#764ba2;text-decoration:underline}.login-link-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.login-box{padding:30px 25px}.login-header h1{font-size:36px}.login-header p{font-size:16px}}.notification-overlay{position:fixed;inset:0;background:#00000080;z-index:999;animation:fadeIn .3s ease}.notification-panel{position:fixed;top:0;right:0;width:420px;height:100vh;background:#fff;box-shadow:-4px 0 20px #00000026;z-index:1000;display:flex;flex-direction:column;animation:slideInRight .3s ease}.notification-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid #ecf0f1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.notification-header h2{margin:0;font-size:20px;font-weight:700}.notification-header .btn-close{width:32px;height:32px;border:none;background:#fff3;color:#fff;border-radius:8px;font-size:18px;cursor:pointer;transition:all .3s ease}.notification-header .btn-close:hover{background:#ffffff4d}.notification-controls{display:flex;flex-direction:column;gap:16px;padding:16px 24px;border-bottom:1px solid #ecf0f1;background:#f8f9fa}.filter-section{display:flex;flex-direction:column;gap:8px}.filter-header{display:flex;justify-content:space-between;align-items:center}.filter-label{font-size:12px;font-weight:700;color:#7f8c8d;text-transform:uppercase}.filter-tabs{display:flex;gap:8px}.filter-tab{padding:8px 16px;border:none;background:#fff;color:#7f8c8d;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.filter-tab:hover{background:#ecf0f1}.filter-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.type-filters{display:flex;gap:6px;flex-wrap:wrap}.type-filter{padding:6px 12px;border:2px solid #ecf0f1;background:#fff;color:#7f8c8d;border-radius:16px;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.type-filter:hover{border-color:#bdc3c7;background:#f8f9fa}.type-filter.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.btn-mark-all{padding:8px 16px;border:none;background:#3498db;color:#fff;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-mark-all:hover{background:#2980b9}.notification-list{flex:1;overflow-y:auto;padding:8px}.notification-item{display:flex;align-items:flex-start;gap:12px;padding:16px;margin-bottom:8px;background:#fff;border-radius:12px;border:1px solid #ecf0f1;cursor:pointer;transition:all .3s ease;position:relative}.notification-item:hover{background:#f8f9fa;border-color:#bdc3c7;transform:translate(-4px)}.notification-item.unread{background:linear-gradient(135deg,#667eea0d,#764ba20d);border-color:#667eea}.notification-icon{font-size:28px;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-size:15px;font-weight:700;color:#2c3e50;margin-bottom:4px}.notification-message{font-size:13px;color:#7f8c8d;margin-bottom:6px;line-height:1.4}.notification-time{font-size:12px;color:#95a5a6}.unread-badge{position:absolute;top:16px;right:40px;width:8px;height:8px;background:#e74c3c;border-radius:50%}.btn-delete-notification{position:absolute;top:12px;right:12px;width:24px;height:24px;border:none;background:transparent;color:#bdc3c7;border-radius:6px;font-size:16px;cursor:pointer;transition:all .3s ease;opacity:0}.notification-item:hover .btn-delete-notification{opacity:1}.btn-delete-notification:hover{background:#e74c3c;color:#fff}.notification-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#95a5a6}.loading-spinner{width:40px;height:40px;border:4px solid #ecf0f1;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.notification-loading p{margin-top:16px;font-size:14px}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#95a5a6}.notification-empty .empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.notification-empty p{font-size:15px;color:#7f8c8d}@media(max-width:768px){.notification-panel{width:100%}}.search-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;animation:search-fade-in .15s ease}@keyframes search-fade-in{0%{opacity:0}to{opacity:1}}.search-modal{width:640px;max-width:calc(100vw - 32px);background:var(--bg-card, #ffffff);border-radius:16px;box-shadow:0 24px 64px #00000040;overflow:hidden;animation:search-slide-in .15s ease;display:flex;flex-direction:column;max-height:calc(100vh - 120px)}@keyframes search-slide-in{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.search-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0}.search-icon-prefix{font-size:18px;flex-shrink:0}.search-input{flex:1;border:none;outline:none;font-size:16px;background:transparent;color:var(--text-primary, #111827)}.search-input::placeholder{color:#9ca3af}.search-spinner{width:18px;height:18px;border:2px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:search-spin .6s linear infinite;flex-shrink:0}@keyframes search-spin{to{transform:rotate(360deg)}}.search-clear{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:14px;padding:2px 6px;border-radius:4px;flex-shrink:0}.search-clear:hover{background:#f3f4f6;color:#374151}.search-esc{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;font-size:11px;padding:2px 7px;color:#6b7280;cursor:pointer;flex-shrink:0;font-family:inherit}.search-tabs{display:flex;gap:0;padding:0 16px;border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0;overflow-x:auto}.search-tab{padding:10px 14px;background:none;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;white-space:nowrap;transition:all .15s;margin-bottom:-1px}.search-tab:hover{color:#374151}.search-tab.active{color:#667eea;border-bottom-color:#667eea;font-weight:700}.search-results{overflow-y:auto;flex:1}.search-results::-webkit-scrollbar{width:6px}.search-results::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:3px}.search-hint{padding:36px 20px;text-align:center;color:#9ca3af}.search-hint p{margin:0 0 16px;font-size:14px}.search-shortcut-hints{display:flex;justify-content:center;gap:16px;font-size:12px;color:#9ca3af}.search-shortcut-hints kbd{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;padding:1px 5px;font-size:11px;font-family:inherit}.search-no-result{padding:40px 20px;text-align:center;color:#9ca3af}.search-no-icon{font-size:32px;display:block;margin-bottom:8px}.search-no-result p{margin:0;font-size:14px}.search-section{padding:8px 0}.search-section+.search-section{border-top:1px solid var(--border-color, #f3f4f6)}.search-section-header{padding:6px 16px;font-size:11px;font-weight:700;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.search-item{padding:10px 16px;cursor:pointer;transition:background .1s;border-radius:0}.search-item:hover,.search-item.focused{background:var(--bg-secondary, #f9fafb)}.search-item-main{display:flex;align-items:center;gap:7px;margin-bottom:4px}.search-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.search-comment-icon{font-size:13px;flex-shrink:0}.search-item-title{font-size:14px;font-weight:600;color:var(--text-primary, #111827);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-comment-content{white-space:normal;font-weight:400;font-size:13px;line-height:1.4}.search-item-badge{padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}.search-priority{font-size:11px;color:#f59e0b;flex-shrink:0}.search-item-sub{display:flex;align-items:center;gap:10px;font-size:11px;color:#6b7280;padding-left:15px;flex-wrap:wrap}.search-project-tag{color:#667eea;font-weight:500}.search-snippet{color:#6b7280;font-style:italic}.search-mark{background:#fef08a;color:#92400e;border-radius:2px;padding:0 1px;font-style:normal}.app-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-primary, #f5f7fa)}.app-header{display:flex;align-items:center;height:60px;background:var(--header-bg);padding:0 16px;position:sticky;top:0;z-index:200;box-shadow:0 2px 8px #00000040;flex-shrink:0;gap:0}.app-logo{display:flex;align-items:center;gap:6px;cursor:pointer;padding:0 12px 0 0;margin-right:8px;border-right:1px solid rgba(255,255,255,.15);flex-shrink:0}.app-logo-icon{font-size:22px}.app-logo-text{font-size:17px;font-weight:800;color:#fff;letter-spacing:.03em}.app-nav{display:flex;align-items:center;gap:2px;flex:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav-btn{display:flex;align-items:center;gap:5px;padding:7px 13px;background:none;border:none;border-radius:6px;color:#fff;font-size:15px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}.app-nav-btn:hover{background:#ffffff1a;color:#fff}.app-nav-btn.active{background:#667eea66;color:#fff;font-weight:700}.app-header-right{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:8px;padding-left:8px;border-left:1px solid rgba(255,255,255,.15)}.app-icon-btn{position:relative;display:flex;align-items:center;gap:4px;padding:6px 11px;background:none;border:none;border-radius:6px;color:#fff;font-size:15px;cursor:pointer;white-space:nowrap;transition:all .15s}.app-icon-btn:hover{background:#ffffff1f;color:#fff}.app-noti-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;border-radius:8px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none}.app-logout-btn{padding:5px 12px;background:#ef444433;border:1px solid rgba(239,68,68,.5);border-radius:6px;color:#fca5a5;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}.app-logout-btn:hover{background:#ef444459;color:#fff}.app-header-mobile{display:none;align-items:center;gap:4px;margin-left:auto}.app-hamburger{width:36px;height:36px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px;border-radius:6px;transition:background .15s}.app-hamburger:hover{background:#ffffff1a}.app-hamburger span{display:block;width:20px;height:2px;background:#ffffffd9;border-radius:2px;transition:all .25s;transform-origin:center}.app-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.app-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.app-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.app-drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:300;animation:fadeIn .2s ease}.app-drawer{position:absolute;top:0;right:0;width:260px;height:100%;background:#1e1e2e;display:flex;flex-direction:column;padding:16px 0;overflow-y:auto;animation:slideIn .2s ease}.app-drawer-user{display:flex;align-items:center;gap:10px;padding:12px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px;font-size:22px}.app-drawer-name{font-size:15px;font-weight:700;color:#fff}.app-drawer-role{font-size:12px;color:#ffffff80}.app-drawer-btn{display:flex;align-items:center;gap:12px;padding:13px 20px;background:none;border:none;color:#ffffffbf;font-size:15px;font-weight:500;cursor:pointer;text-align:left;transition:all .15s;width:100%}.app-drawer-btn:hover{background:#ffffff14;color:#fff}.app-drawer-btn.active{background:#667eea59;color:#fff;font-weight:700}.app-drawer-btn.danger{color:#fca5a5}.app-drawer-btn.danger:hover{background:#ef444433}.app-drawer-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.app-drawer-divider{height:1px;background:#ffffff1a;margin:8px 0}.app-subheader{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--subheader-bg);border-bottom:1px solid var(--subheader-border);flex-shrink:0;flex-wrap:wrap;gap:10px;position:sticky;top:60px;z-index:199}.app-page-title{margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.app-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-main{flex:1;overflow:auto;background:var(--bg-app)}.app-theme-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:8px;font-size:16px;cursor:pointer;transition:all .15s;flex-shrink:0;padding:0}.app-theme-btn:hover{background:#fff3}.app-action-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent;white-space:nowrap}.app-action-btn.primary{background:#667eea;color:#fff;border-color:#667eea}.app-action-btn.primary:hover{background:#5568d3}.app-action-btn.secondary{background:#fff;color:#374151;border-color:#d1d5db}.app-action-btn.secondary:hover{border-color:#667eea;color:#667eea}.app-action-btn.danger{background:#fff;color:#ef4444;border-color:#fca5a5}.app-action-btn.danger:hover{background:#fee2e2}@media(max-width:900px){.app-nav-btn span:last-child{display:none}.app-icon-btn span:last-child{display:none}.app-nav-btn{padding:7px 10px}}@media(max-width:768px){.app-nav,.app-header-right{display:none}.app-header-mobile{display:flex}.app-logo-text{font-size:15px}.app-subheader{padding:10px 14px}.app-page-title{font-size:16px}.app-action-btn{padding:7px 12px;font-size:12px}}@media(max-width:480px){.app-header{padding:0 10px;height:54px}.app-logo-text{display:none}.app-subheader{flex-direction:column;align-items:flex-start;padding:10px 14px;gap:8px;top:54px}.app-page-actions{width:100%;overflow-x:auto;flex-wrap:nowrap}}input[aria-invalid=true],select[aria-invalid=true]{border-color:#ef4444!important;outline-color:#ef4444}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid #ecf0f1}.btn-close{width:36px;height:36px;border:none;background:#ecf0f1;border-radius:8px;font-size:20px;color:#7f8c8d;cursor:pointer;transition:all .3s ease;flex-shrink:0}.modal-form{padding:24px;display:flex;flex-direction:column}.form-group{margin-bottom:24px;display:flex;flex-direction:column}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:2px solid #ecf0f1;border-radius:10px;font-size:15px;font-family:inherit;transition:all .3s ease;box-sizing:border-box}.form-group input[type=checkbox],.form-group input[type=radio]{width:auto;padding:0;border:none;border-radius:0;margin:0 6px 0 0;vertical-align:middle;accent-color:#3b82f6;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.form-row .form-group{margin-bottom:0}.assignees-selector{max-height:300px;overflow-y:auto;border:2px solid #ecf0f1;border-radius:10px;padding:8px;background:#f8f9fa}.assignee-item{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:6px;background:#fff;border-radius:8px;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.assignee-item:last-child{margin-bottom:0}.assignee-item:hover{border-color:#667eea;transform:translate(4px)}.assignee-item.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent}.assignee-item.selected .assignee-name,.assignee-item.selected .assignee-username{color:#fff}.assignee-checkbox{width:24px;height:24px;border:2px solid #ecf0f1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;background:#fff;transition:all .3s ease;flex-shrink:0}.assignee-item.selected .assignee-checkbox{background:#ffffff4d;border-color:#fff}.assignee-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.assignee-name{font-size:14px;font-weight:600;color:#2c3e50}.assignee-username{font-size:12px;color:#7f8c8d}.permission-note{color:#e74c3c;font-size:12px;font-weight:500;margin-left:4px}.info-note{color:#3498db;font-size:12px;font-weight:500;margin-left:4px}.assignees-placeholder{padding:40px 20px;text-align:center;background:#f8f9fa;border:2px dashed #ecf0f1;border-radius:12px;color:#7f8c8d}.assignees-placeholder p{margin:0;font-size:14px}.permission-note,.info-note{font-size:12px;font-weight:500;margin-left:6px}.permission-note{color:#e74c3c}.info-note{color:#7f8c8d}.owner-note{font-size:12px;font-weight:600;margin-left:6px;color:#667eea;background:#667eea1a;padding:2px 8px;border-radius:10px}.assignees-selector.disabled{opacity:.6;pointer-events:none}.assignee-item.disabled{opacity:.5}.assignee-item.disabled:hover{border-color:transparent;transform:none}.dep-modal-wrap{display:flex;flex-direction:column;gap:0}.dep-search-wrap{position:relative}.dep-search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #0000001f;z-index:200;max-height:200px;overflow-y:auto;margin:0;padding:4px 0;list-style:none}.dep-item{display:flex;align-items:center;justify-content:space-between;background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:7px 12px}.dep-item-title{font-size:13px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.dep-item-project{font-size:11px;color:#9ca3af}.btn-dep-remove{width:22px;height:22px;border:none;background:transparent;color:#bdc3c7;border-radius:4px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.category-picker-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;font-size:14px;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;color:#1f2937;text-align:left;transition:border-color .15s,box-shadow .15s;gap:6px}.category-picker-trigger:hover{border-color:#667eea}.category-picker-trigger:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.category-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.category-trigger-arrow{font-size:10px;color:#6b7280;flex-shrink:0}.category-tree-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;width:max-content;max-width:410px;z-index:9999;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:260px;overflow-y:auto;padding:4px 0}.cat-tree-item{display:flex;align-items:center;gap:6px;padding:7px 12px;cursor:pointer;font-size:13px;color:#1f2937;transition:background .1s;-webkit-user-select:none;user-select:none}.cat-tree-item:hover{background:#f3f4f6}.cat-tree-item.selected{background:#667eea14;color:#667eea;font-weight:600}.cat-tree-item.cat-tree-none{color:#9ca3af;font-style:italic}.cat-tree-item.cat-tree-none.selected{color:#667eea;font-style:normal;font-weight:600}.cat-tree-check{flex-shrink:0;color:#667eea;font-weight:700;font-size:13px}.cat-tree-divider{height:1px;background:#e5e7eb;margin:3px 8px}.recurrence-fields{margin-top:6px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.dashboard{background:#f5f7fa;padding:24px 40px 40px;display:flex;flex-direction:column;gap:24px}.dashboard .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;gap:16px;transition:all .3s ease;position:relative;overflow:hidden}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{box-shadow:0 6px 24px #e74c3c2e}.stat-alert-dot{position:absolute;top:14px;right:14px;width:10px;height:10px;background:#e74c3c;border-radius:50%;animation:pulse-dot 1.8s ease-in-out infinite}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.stat-hint{font-size:11px;color:#e74c3c;margin-top:4px;font-weight:600}.stat-icon{font-size:40px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f8f9fa;flex-shrink:0}.stat-content{flex:1;min-width:0}.stat-value{font-size:32px;font-weight:700;color:#2c3e50;margin-bottom:4px}.stat-card.total .stat-icon{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card.todo .stat-icon{background:linear-gradient(135deg,#95a5a6,#7f8c8d)}.stat-card.progress .stat-icon{background:linear-gradient(135deg,#f39c12,#e67e22)}.stat-card.review .stat-icon{background:linear-gradient(135deg,#3498db,#2980b9)}.stat-card.done .stat-icon{background:linear-gradient(135deg,#2ecc71,#27ae60)}.stat-card.overdue .stat-icon{background:linear-gradient(135deg,#e74c3c,#c0392b)}.stat-card.due-soon .stat-icon{background:linear-gradient(135deg,#ff9800,#f57c00)}.stat-progress{margin-top:12px;display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:8px;background:#ecf0f1;border-radius:4px;overflow:hidden}.progress-text{font-size:12px;font-weight:700;color:#2ecc71}.dday-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;white-space:nowrap}.dday-badge.dday-over{background:#fdecea;color:#e74c3c}.dday-badge.dday-today{background:#e74c3c;color:#fff}.dday-badge.dday-soon{background:#fff3e0;color:#f57c00}.dday-badge.dday-normal{background:#e8f5e9;color:#2e7d32}.chart-section{display:grid;grid-template-columns:280px 1fr;grid-template-rows:auto auto;gap:20px}.chart-card{background:#fff;border-radius:16px;padding:20px 24px 16px;box-shadow:0 2px 8px #00000014}.chart-card--wide{grid-column:2;grid-row:1}.chart-card--full{grid-column:1 / -1;grid-row:2}.chart-card-header{margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #ecf0f1}.chart-card-header h3{margin:0;font-size:16px;color:#2c3e50;font-weight:700}.chart-empty{display:flex;align-items:center;justify-content:center;height:200px;color:#bdc3c7;font-size:14px}.chart-tooltip{background:#fff;border:1px solid #e8eaf0;border-radius:10px;padding:10px 14px;box-shadow:0 4px 12px #0000001a;font-size:13px;color:#2c3e50}.chart-tooltip-label{font-weight:700;margin-bottom:6px;color:#667eea}.stats-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stats-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.btn-view-all{padding:8px 16px;background:transparent;color:#667eea;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-view-all:hover{background:#f0f4ff}.btn-quick-add{padding:7px 14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-quick-add:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-empty-add{margin-top:12px;padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease}.btn-empty-add:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.stats-table{overflow-x:auto}.stats-table table{width:100%;border-collapse:collapse}.stats-table th{text-align:left;padding:12px;font-size:13px;font-weight:600;color:#7f8c8d;border-bottom:2px solid #ecf0f1}.stats-table td{padding:14px 12px;border-bottom:1px solid #ecf0f1;font-size:14px;color:#2c3e50;vertical-align:middle}.stats-table tbody tr:hover{background:#f8f9fa}.project-name,.assignee-name{font-weight:600;color:#2c3e50}.project-name.clickable{color:#667eea;cursor:pointer;transition:all .2s}.project-name.clickable:hover{color:#764ba2;text-decoration:underline}.user-icon{margin-right:6px}.project-pin-cell,.project-action-cell{width:36px;text-align:center;padding:8px 4px!important}.pin-btn,.hide-btn,.show-btn{background:none;border:none;cursor:pointer;font-size:15px;padding:4px;border-radius:6px;opacity:.35;transition:opacity .2s,transform .2s}.pin-btn:hover,.hide-btn:hover,.show-btn:hover{opacity:1;transform:scale(1.2)}.pin-btn.pinned{opacity:1}.pinned-row{background:#fffde7!important}.pinned-row:hover{background:#fff9c4!important}.pinned-badge{display:inline-block;padding:1px 6px;margin-right:6px;background:#f39c12;color:#fff;border-radius:6px;font-size:11px;font-weight:700}.hidden-row{opacity:.6}.hidden-badge{display:inline-block;padding:1px 6px;margin-right:6px;background:#bdc3c7;color:#fff;border-radius:6px;font-size:11px;font-weight:700}.completion-rate{display:flex;align-items:center;gap:8px}.rate-bar{flex:1;height:6px;max-width:80px;background:#ecf0f1;border-radius:3px;overflow:hidden}.rate-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .5s ease}.completion-rate span{font-size:13px;font-weight:600;color:#667eea}.overdue-badge{display:inline-block;padding:4px 10px;background:#fee;color:#e74c3c;border-radius:12px;font-size:12px;font-weight:700}.no-overdue{color:#bdc3c7}.recent-tasks-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014}.my-tasks-by-project{display:flex;flex-direction:column;gap:24px}.project-group{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.project-group-header{display:flex;align-items:center;gap:8px;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:16px;cursor:pointer;transition:all .3s ease}.project-group-header:hover{background:linear-gradient(135deg,#7688eb,#8359ad)}.project-collapse-icon{font-size:12px;width:16px;display:inline-flex;align-items:center;justify-content:center}.project-group-icon{font-size:18px}.project-group-name{flex:1}.project-task-count{opacity:.9;font-size:14px}.project-tasks-list{display:flex;flex-direction:column}.project-task-item{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid #ecf0f1;transition:all .3s ease;cursor:pointer}.project-task-item:last-child{border-bottom:none}.project-task-item:hover{background:#f8f9fa;transform:translate(4px)}.project-task-item .task-status-indicator{width:4px;height:40px;border-radius:2px;flex-shrink:0}.project-task-item .task-info{display:flex;align-items:center;gap:20px;flex:1}.project-task-item .task-status-badge{padding:6px 14px;border-radius:20px;color:#fff;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.project-task-item .task-title{font-size:15px;font-weight:600;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:300px;max-width:600px}.project-task-item .task-meta{display:flex;align-items:center;gap:8px;margin-left:20px}.project-task-item .task-due{font-size:13px;color:#7f8c8d;white-space:nowrap}.panel-backdrop{position:fixed;inset:0;background:#0000004d;z-index:999;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.panel-close-btn{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.panel-close-btn:hover{background:#ffffff59}.deadline-panel{position:fixed;top:0;right:0;width:420px;height:100vh;background:#fff;box-shadow:-4px 0 24px #00000026;z-index:1000;display:flex;flex-direction:column;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.deadline-panel.open{transform:translate(0)}.deadline-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;flex-shrink:0}.deadline-panel-header h3{margin:0;font-size:18px;font-weight:700}.deadline-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.deadline-item{border-radius:12px;padding:14px 16px;cursor:pointer;transition:all .2s ease;border-left:4px solid transparent}.deadline-item.overdue{background:#fff5f5;border-left-color:#e74c3c}.deadline-item.overdue:hover{background:#ffe8e8}.deadline-item.soon{background:#fff8f0;border-left-color:#f57c00}.deadline-item.soon:hover{background:#fff0dc}.deadline-item-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.deadline-project{font-size:12px;color:#7f8c8d;font-weight:600;background:#f0f0f0;padding:2px 8px;border-radius:8px}.deadline-item-title{font-size:14px;font-weight:700;color:#2c3e50;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.deadline-item-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.deadline-status-badge{padding:3px 10px;border-radius:10px;color:#fff;font-size:11px;font-weight:600}.deadline-assignee,.deadline-date{font-size:12px;color:#7f8c8d}.panel-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.panel-empty span{font-size:48px}.panel-empty p{font-size:15px;color:#7f8c8d}.config-panel{position:fixed;top:0;right:0;width:340px;height:100vh;background:#fff;box-shadow:-4px 0 24px #00000026;z-index:1000;display:flex;flex-direction:column;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.config-panel.open{transform:translate(0)}.config-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.config-panel-header h3{margin:0;font-size:18px;font-weight:700}.config-panel-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:8px}.config-desc{font-size:13px;color:#7f8c8d;margin-bottom:12px;line-height:1.5}.widget-config-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f8f9fa;border-radius:10px;border:1px solid #e8eaf0;transition:background .15s}.widget-config-item:hover{background:#f0f4ff}.widget-drag-handle{font-size:18px;color:#bdc3c7;cursor:grab;padding:0 2px;-webkit-user-select:none;user-select:none;letter-spacing:-1px}.widget-drag-handle:active{cursor:grabbing}.widget-config-label{flex:1;font-size:14px;font-weight:600;color:#2c3e50}.widget-toggle-btn{padding:5px 14px;border-radius:20px;border:none;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s}.widget-toggle-btn.on{background:#e8f5e9;color:#2e7d32}.widget-toggle-btn.on:hover{background:#c8e6c9}.widget-toggle-btn.off{background:#fbe9e7;color:#bf360c}.widget-toggle-btn.off:hover{background:#ffccbc}.config-reset-btn{margin-top:16px;padding:12px;width:100%;background:#f5f5f5;border:1px dashed #ccc;border-radius:10px;color:#7f8c8d;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.config-reset-btn:hover{background:#eee;color:#555}.empty-state-small{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}.empty-state-small .empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-state-small p{font-size:14px;color:#7f8c8d}@media(max-width:1200px){.stats-row,.chart-section{grid-template-columns:1fr}.chart-card--wide{grid-column:1;grid-row:2}.chart-card--full{grid-column:1;grid-row:3}}@media(max-width:768px){.dashboard{padding:16px;gap:16px}.dashboard .stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:16px;gap:12px}.stat-icon{width:48px;height:48px;font-size:28px}.stat-value{font-size:24px}.stats-section,.chart-card{padding:16px}.section-header h2{font-size:16px}.recent-tasks-section{padding:16px}.project-task-item .task-title{min-width:160px;max-width:240px}.project-task-item .task-meta{display:none}.deadline-panel,.config-panel{width:100vw}}@media(max-width:480px){.dashboard{padding:10px}.dashboard .stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:12px}.stat-value{font-size:20px}.stat-label{font-size:11px}.project-group-header{font-size:14px;padding:12px 14px}.project-task-item{padding:10px 14px;gap:10px}.stats-table th,.stats-table td{padding:8px;font-size:12px}}.field-error{display:block;margin-top:4px;font-size:12px;color:#ef4444}input[aria-invalid=true],select[aria-invalid=true]{border-color:#ef4444!important}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;border-bottom:2px solid #ecf0f1}.modal-form{padding:24px}.form-group{margin-bottom:20px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:2px solid #ecf0f1;border-radius:10px;font-size:15px;font-family:inherit;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.form-group textarea{resize:vertical;min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-actions{display:flex;gap:12px;padding-top:24px;border-top:2px solid #ecf0f1}.btn-cancel,.btn-submit{flex:1;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-cancel{background:#ecf0f1;color:#2c3e50}.btn-cancel:hover{background:#d5d8dc}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea66}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}@media(max-width:768px){.modal-content{width:95%;max-height:95vh}.form-row{grid-template-columns:1fr}.modal-header,.modal-form{padding:20px}}.projects-page{padding:24px;max-width:1600px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e0e0e0}.header-left h1{font-size:28px;font-weight:700;color:#2c3e50;margin:0 0 8px}.header-left p{color:#7f8c8d;margin:0;font-size:14px}.btn-back{padding:10px 20px;background-color:#ecf0f1;color:#2c3e50;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-back:hover{background-color:#bdc3c7}.btn-create{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.empty-state{text-align:center;padding:80px 20px}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:24px;color:#2c3e50;margin:0 0 8px}.empty-state p{color:#7f8c8d;margin:0 0 24px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px}.project-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;transition:all .3s;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.project-title-row{display:flex;align-items:center;gap:12px;flex:1}.project-card h3{font-size:20px;font-weight:700;color:#2c3e50;margin:0}.owner-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:linear-gradient(135deg,gold,#ffed4e);color:#2c3e50;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap;line-height:1;box-shadow:0 2px 4px #ffd7004d}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.status-badge{padding:6px 14px;color:#fff;border-radius:16px;font-size:12px;font-weight:600;white-space:nowrap}.project-description{color:#7f8c8d;font-size:14px;line-height:1.6;margin:0 0 20px;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-meta{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding:16px;background-color:#f8f9fa;border-radius:8px}.meta-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c3e50}.meta-icon{font-size:16px;width:20px;text-align:center}.meta-text{color:#555}.project-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.btn-action{flex:0 0 calc((100% - 16px) / 3);box-sizing:border-box;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;padding:9px 10px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;line-height:1.2;transition:all .2s}.btn-detail{background-color:#3498db;color:#fff}.btn-detail:hover{background-color:#2980b9;transform:translateY(-2px);box-shadow:0 4px 8px #3498db4d}.btn-tasks{background-color:#2ecc71;color:#fff}.btn-tasks:hover{background-color:#27ae60;transform:translateY(-2px);box-shadow:0 4px 8px #2ecc714d}.btn-weekly-report{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-weekly-report:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-wbs{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#fff}.btn-wbs:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0d948866}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.loading-spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{margin-top:16px;color:#7f8c8d;font-size:14px}@media(max-width:1200px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}@media(max-width:768px){.projects-page{padding:14px}.projects-grid{grid-template-columns:1fr;gap:14px}.project-card{padding:18px}.project-card h3{font-size:17px}.project-actions{flex-wrap:wrap}.btn-action{flex:1 1 calc(50% - 4px);min-width:0}}@media(max-width:480px){.projects-page{padding:10px}.project-card{padding:14px}.project-actions{flex-direction:column}.btn-action{width:100%}.project-meta{padding:10px 12px}.milestone-form-row{flex-direction:column}}.project-progress{margin:10px 0 12px}.progress-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary, #6b7280);margin-bottom:6px}.progress-counts{font-weight:500}.progress-bar-wrap{display:flex;align-items:center;gap:8px}.progress-bar-bg{flex:1;height:8px;background:var(--border-color, #e5e7eb);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.progress-label{font-size:12px;font-weight:700;min-width:34px;text-align:right;color:var(--text-primary, #374151)}.archived-card{opacity:.75;border:1px dashed var(--border-color, #d1d5db)}.archived-badge{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600}.btn-toggle-archive{padding:10px 18px;background:#fff;color:#374151;border:2px solid #e5e7eb;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s}.btn-toggle-archive.active,.btn-toggle-archive:hover{border-color:#667eea;color:#667eea}.btn-archive{background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db}.btn-archive:hover{background:#e5e7eb;color:#374151}.btn-unarchive{background:#eff6ff;color:#3b82f6;border:1px solid #bfdbfe}.btn-unarchive:hover{background:#dbeafe}.btn-milestone{background:#faf5ff;color:#7c3aed;border:1px solid #ddd6fe}.btn-milestone:hover,.btn-milestone.active{background:#ede9fe;color:#5b21b6}.milestone-panel{margin-top:16px;border-top:1px solid var(--border-color, #e5e7eb);padding-top:14px}.milestone-panel-header{display:flex;align-items:center;margin-bottom:10px}.milestone-panel-header h4{margin:0;font-size:14px;font-weight:700;color:var(--text-primary, #111827)}.milestone-loading,.milestone-empty{font-size:13px;color:#9ca3af;padding:8px 0;list-style:none}.milestone-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.milestone-item{display:flex;align-items:flex-start;justify-content:space-between;background:var(--bg-secondary, #f9fafb);border-radius:8px;padding:8px 12px;gap:8px}.milestone-item-left{display:flex;gap:8px;align-items:flex-start;flex:1}.milestone-icon{font-size:16px;flex-shrink:0}.milestone-info{display:flex;flex-direction:column;gap:2px}.milestone-title{font-size:13px;font-weight:600}.milestone-desc{font-size:11px;color:#6b7280}.milestone-date{font-size:11px;color:#9ca3af}.milestone-item-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.milestone-status-badge{font-size:11px;font-weight:700;padding:2px 6px;border-radius:10px;background:#0000000d}.btn-ms-edit,.btn-ms-delete{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px}.btn-ms-edit:hover{background:#e0e7ff}.btn-ms-delete:hover{background:#fee2e2}.milestone-form{background:var(--bg-secondary, #f9fafb);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.milestone-form-title{font-size:12px;font-weight:700;color:#374151;margin-bottom:2px}.milestone-input{padding:7px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:13px;width:100%;box-sizing:border-box;background:#fff}.milestone-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed26}.milestone-form-row{display:flex;gap:8px}.milestone-form-row .milestone-input{flex:1}.milestone-form-actions{display:flex;gap:6px}.btn-ms-save{padding:7px 18px;background:#7c3aed;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600}.btn-ms-save:hover{background:#6d28d9}.btn-ms-cancel{padding:7px 14px;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:13px}.btn-ms-cancel:hover{background:#f3f4f6}.project-detail{background:#f5f7fa;padding:40px}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.header-left{display:flex;align-items:center;gap:16px}.header-left h1{margin:0;font-size:32px;color:#2c3e50}.btn-back{padding:10px 20px;border:2px solid #ecf0f1;border-radius:8px;background:#fff;color:#7f8c8d;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.status-badge{padding:8px 16px;border-radius:20px;color:#fff;font-size:13px;font-weight:600}.btn-gantt{padding:10px 20px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-gantt:hover{border-color:#667eea;color:#667eea}.btn-edit{padding:10px 20px;border:none;border-radius:8px;background:#667eea;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-edit:hover{background:#5568d3;transform:translateY(-2px)}.project-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;transition:all .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #0000001f}.stat-label{font-size:14px;color:#7f8c8d;font-weight:600;margin-bottom:8px}.progress-bar{margin-top:12px;height:8px;background:#ecf0f1;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#2ecc71,#27ae60);transition:width .5s ease}.project-info-section{background:#fff;border-radius:12px;padding:32px;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.project-info-section h2{margin:0 0 24px;font-size:20px;color:#2c3e50;border-bottom:2px solid #ecf0f1;padding-bottom:16px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}.info-item{display:flex;flex-direction:column;gap:8px}.info-value{font-size:15px;color:#2c3e50}.members-section{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #ecf0f1;flex-wrap:wrap;gap:12px}.btn-add-member{padding:8px 16px;border:none;border-radius:8px;background:#3498db;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-add-member:hover{background:#2980b9;transform:translateY(-2px)}.members-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.member-card{display:flex;align-items:center;gap:12px;padding:16px;background:#f8f9fa;border-radius:10px;transition:all .3s ease;position:relative}.member-card:hover{background:#ecf0f1}.member-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.member-info{flex:1;min-width:0}.member-name{font-size:15px;font-weight:600;color:#2c3e50}.member-username{font-size:13px;color:#7f8c8d}.role-badge{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;flex-shrink:0}.role-badge.owner{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.role-badge.member{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.member-actions{display:flex;gap:8px;align-items:center}.btn-toggle-role{width:32px;height:32px;border:none;background:#f39c12;color:#fff;font-size:16px;cursor:pointer;border-radius:6px;transition:all .3s ease;flex-shrink:0}.btn-toggle-role:hover{background:#e67e22;transform:scale(1.1)}.btn-remove-member{width:32px;height:32px;border:none;background:transparent;color:#e74c3c;font-size:16px;cursor:pointer;border-radius:6px;transition:all .3s ease;flex-shrink:0}.btn-remove-member:hover{background:#e74c3c;color:#fff}.member-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;padding:32px;width:90%;max-width:500px;box-shadow:0 8px 32px #0003;z-index:1000}.modal-header h2{margin:0;font-size:20px;color:#2c3e50}.member-form{display:flex;flex-direction:column;gap:20px}.form-group select{padding:12px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;transition:all .3s ease}.form-group select:focus{outline:none;border-color:#667eea}.btn-cancel,.btn-submit{flex:1;padding:12px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.confirm-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;padding:32px;width:90%;max-width:450px;box-shadow:0 8px 32px #0003;z-index:1000}.modal-content{margin-bottom:24px}.modal-content p{margin:0 0 12px;font-size:15px;color:#2c3e50;line-height:1.6}.warning-text{color:#e74c3c;font-size:14px;font-weight:600}.btn-delete{flex:1;padding:12px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.btn-delete:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c66}.tasks-section{background:#fff;border-radius:12px;padding:32px;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.task-filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:2px solid #ecf0f1;border-radius:8px;background:#fff;color:#7f8c8d;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.filter-btn:hover{border-color:#bdc3c7}.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.btn-goto-tasks{padding:8px 16px;border:none;border-radius:8px;background:#2ecc71;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-goto-tasks:hover{background:#27ae60;transform:translateY(-2px)}.tasks-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}.task-item{display:flex;gap:16px;padding:16px;background:#f8f9fa;border-radius:10px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.task-item:hover{background:#ecf0f1;transform:translate(4px)}.task-status-bar{width:4px;border-radius:2px;flex-shrink:0}.task-content{flex:1;min-width:0}.task-title-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.task-title{font-size:15px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.priority-badge{font-size:12px;flex-shrink:0}.priority-badge.high{color:#e74c3c}.priority-badge.medium{color:#f39c12}.task-meta-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.task-assignee,.task-due{font-size:13px;color:#7f8c8d}.task-status-badge{padding:4px 10px;border-radius:10px;font-size:11px;font-weight:600;color:#fff}.empty-tasks{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-tasks p{color:#7f8c8d;font-size:14px}.more-tasks{text-align:center;margin-top:16px}.btn-more{padding:10px 24px;border:2px solid #ecf0f1;border-radius:8px;background:#fff;color:#7f8c8d;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-more:hover{border-color:#667eea;color:#667eea}.project-status-select{padding:5px 28px 5px 12px;border:2px solid;border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;background:transparent;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.project-status-select:focus{outline:none}.project-status-select:disabled{opacity:.6;cursor:not-allowed}.project-status-select:hover:not(:disabled){opacity:.85}@media(max-width:768px){.project-detail{padding:16px}.project-stats{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.stat-card{padding:16px}.stat-value{font-size:24px}.project-info-section,.tasks-section{padding:20px;margin-bottom:16px}.members-section{padding:20px}.members-list{grid-template-columns:1fr;gap:10px}.section-header{flex-wrap:wrap;gap:10px}.task-filter-buttons{gap:6px}.filter-btn{padding:6px 12px;font-size:12px}.member-modal,.confirm-modal{padding:20px;width:92%}}@media(max-width:480px){.project-detail{padding:10px}.project-stats{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:12px}.stat-value{font-size:20px}.stat-label{font-size:11px}.project-info-section,.tasks-section,.members-section{padding:14px}.info-grid{grid-template-columns:1fr;gap:12px}.task-filter-buttons{flex-wrap:wrap}.member-card{padding:12px}.member-avatar{width:38px;height:38px;font-size:18px}.modal-actions{flex-direction:column}}.history-overlay{position:fixed;inset:0;background:#00000080;z-index:2000}.history-panel{position:fixed;top:0;right:0;width:500px;height:100vh;background:#fff;box-shadow:-4px 0 20px #0003;z-index:2001;display:flex;flex-direction:column;animation:slideInRight .3s ease}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.history-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid #ecf0f1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.history-header h2{margin:0;font-size:20px}.history-header .btn-close{width:36px;height:36px;border:none;background:#fff3;border-radius:8px;font-size:20px;color:#fff;cursor:pointer;transition:all .3s ease}.history-header .btn-close:hover{background:#ffffff4d}.history-body{flex:1;padding:24px 32px;overflow-y:auto}.history-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.history-loading .loading-spinner{width:40px;height:40px;border:4px solid #ecf0f1;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.history-loading p{margin-top:16px;color:#7f8c8d;font-size:14px}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.history-empty .empty-icon{font-size:64px;margin-bottom:16px;opacity:.3}.history-empty p{margin:0;color:#7f8c8d;font-size:14px}.history-timeline{position:relative}.history-item{position:relative;display:flex;gap:16px;padding-bottom:24px}.history-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 2px 8px #0000001a;z-index:1}.history-line{position:absolute;left:19px;top:40px;bottom:0;width:2px;background:#ecf0f1}.history-content{flex:1;padding-top:4px}.history-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-user{font-weight:600;color:#2c3e50;font-size:15px}.history-time{font-size:12px;color:#95a5a6}.history-description{color:#2c3e50;font-size:14px;line-height:1.6;margin-bottom:8px}.history-change{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:8px;font-size:13px;margin-top:8px}.old-value{padding:4px 10px;background:#fee;color:#e74c3c;border-radius:6px;font-weight:600}.arrow{color:#95a5a6;font-weight:700}.new-value{padding:4px 10px;background:#e8f5e9;color:#2ecc71;border-radius:6px;font-weight:600}.history-footer{padding:20px 32px;border-top:2px solid #ecf0f1}.btn-close-footer{width:100%;padding:12px;background:#ecf0f1;color:#2c3e50;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-close-footer:hover{background:#bdc3c7}@media(max-width:768px){.history-panel{width:100%}.history-header,.history-body,.history-footer{padding:20px}}.file-drop-zone{border:2px dashed #cbd5e0;border-radius:12px;padding:40px 20px;text-align:center;background:#f8f9fa;cursor:pointer;transition:all .3s ease}.file-drop-zone:hover:not(.disabled){border-color:#667eea;background:#f0f4ff}.file-drop-zone.dragging{border-color:#667eea;background:linear-gradient(135deg,#f0f4ff,#e8eeff);border-width:3px;transform:scale(1.02)}.file-drop-zone.disabled{opacity:.5;cursor:not-allowed;background:#e9ecef}.drop-zone-content{pointer-events:none}.drop-zone-icon{font-size:48px;margin-bottom:16px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.file-drop-zone.dragging .drop-zone-icon{animation:pulse .5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.drop-zone-text{margin:0 0 8px;font-size:16px;font-weight:600;color:#2c3e50}.drop-zone-hint{margin:0;font-size:13px;color:#7f8c8d}.file-drop-zone.compact{padding:20px;border-width:1px}.file-drop-zone.compact .drop-zone-icon{font-size:32px;margin-bottom:8px}.file-drop-zone.compact .drop-zone-text{font-size:14px}.file-drop-zone.compact .drop-zone-hint{font-size:12px}.fpm-overlay{position:fixed;inset:0;background:#0009;z-index:2000}.fpm-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 12px 48px #0000004d;z-index:2001;display:flex;flex-direction:column;overflow:hidden}.fpm-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0;background:#fff}.fpm-title{font-size:14px;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:12px}.fpm-close{width:28px;height:28px;border:none;background:#f3f4f6;border-radius:6px;font-size:14px;color:#6b7280;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.fpm-close:hover{background:#e5e7eb;color:#111827}.fpm-body{flex:1;overflow:hidden;position:relative}.fpm-image-modal{max-width:90vw;max-height:90vh}.fpm-image-body{display:flex;align-items:center;justify-content:center;padding:16px;background:#f9fafb}.fpm-image{max-width:100%;max-height:calc(90vh - 60px);object-fit:contain;border-radius:6px}.fpm-doc-body{padding:0}.fpm-iframe{width:100%;height:100%;border:none;border-radius:0 0 12px 12px;display:block}.fpm-video{width:100%;max-height:100%;display:block}.fpm-audio-wrap{display:flex;align-items:center;justify-content:center;height:100%}.fpm-no-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:#374151}.fpm-no-preview-icon{font-size:48px}.fpm-audio{width:80%}.fpm-resize-shield{position:absolute;inset:0;z-index:9999;cursor:inherit;background:transparent}.fpm-resize-e{position:absolute;right:-4px;top:20px;bottom:20px;width:8px;cursor:ew-resize;z-index:10}.fpm-resize-s{position:absolute;bottom:-4px;left:20px;right:20px;height:8px;cursor:ns-resize;z-index:10}.fpm-resize-se{position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;z-index:11;display:flex;align-items:flex-end;justify-content:flex-end;padding:4px}[data-theme=dark] .fpm-modal{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .fpm-header{background:var(--bg-card)!important;border-bottom-color:var(--border-color)!important}[data-theme=dark] .fpm-title{color:var(--text-primary)!important}[data-theme=dark] .fpm-close{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}[data-theme=dark] .fpm-close:hover{background:var(--bg-hover)!important}[data-theme=dark] .fpm-image-body{background:var(--bg-secondary)!important}.fpicker-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:2100}.fpicker-modal{background:var(--bg-primary, #fff);border-radius:12px;box-shadow:0 20px 60px #00000040;width:440px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.fpicker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color, #e5e7eb)}.fpicker-header h3{margin:0;font-size:15px;font-weight:700;color:var(--text-primary, #1f2937)}.fpicker-close{border:none;background:none;font-size:16px;cursor:pointer;color:var(--text-secondary, #6b7280);padding:2px 6px;border-radius:4px}.fpicker-close:hover{background:var(--bg-hover, #f3f4f6)}.fpicker-file-list{padding:12px 20px;max-height:120px;overflow-y:auto;background:var(--bg-secondary, #f9fafb)}.fpicker-file-list-label{font-size:11px;font-weight:600;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.fpicker-file-item{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:13px;color:var(--text-primary, #1f2937)}.fpicker-file-icon{flex-shrink:0}.fpicker-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fpicker-divider{height:1px;background:var(--border-color, #e5e7eb)}.fpicker-folder-label{padding:10px 20px 6px;font-size:11px;font-weight:600;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em}.fpicker-tree{flex:1;overflow-y:auto;padding:4px 8px;min-height:120px;max-height:280px}.fpicker-folder-row{display:flex;align-items:center;gap:6px;padding:7px 10px 7px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-primary, #1f2937);transition:background .1s;-webkit-user-select:none;user-select:none}.fpicker-folder-row:hover{background:var(--bg-hover, #f3f4f6)}.fpicker-folder-row.selected{background:#3b82f61a;color:var(--primary-color, #3b82f6);font-weight:600}.fpicker-expand-btn{width:18px;height:18px;border:none;background:none;cursor:pointer;font-size:11px;color:var(--text-secondary, #6b7280);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0}.fpicker-expand-placeholder{width:18px;flex-shrink:0}.fpicker-folder-icon{flex-shrink:0;font-size:14px}.fpicker-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fpicker-check{flex-shrink:0;color:var(--primary-color, #3b82f6);font-weight:700;font-size:13px}.fpicker-empty{padding:24px;text-align:center;color:var(--text-secondary, #9ca3af);font-size:13px}.fpicker-footer{padding:12px 20px;border-top:1px solid var(--border-color, #e5e7eb);display:flex;flex-direction:column;gap:10px}.fpicker-selected-info{font-size:12px;color:var(--text-secondary, #6b7280)}.fpicker-selected-info strong{color:var(--primary-color, #3b82f6)}.fpicker-actions{display:flex;justify-content:flex-end;gap:8px}.fpicker-btn-cancel{padding:8px 16px;border:1px solid var(--border-color, #d1d5db);border-radius:7px;background:var(--bg-primary, #fff);color:var(--text-primary, #374151);font-size:13px;cursor:pointer;transition:background .15s}.fpicker-btn-cancel:hover{background:var(--bg-hover, #f3f4f6)}.fpicker-btn-copy{padding:8px 20px;border:none;border-radius:7px;background:var(--primary-color, #3b82f6);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.fpicker-btn-copy:hover:not(:disabled){opacity:.85}.fpicker-btn-copy:disabled{opacity:.45;cursor:not-allowed}.wizlog-overlay{position:fixed;inset:0;background:#0000008c;z-index:2000;display:flex;align-items:center;justify-content:center;animation:wlFadeIn .2s ease}@keyframes wlFadeIn{0%{opacity:0}to{opacity:1}}.wizlog-modal{width:460px;background:var(--bg-card, #fff);border-radius:16px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;overflow:hidden;animation:wlSlideUp .25s ease;border:1px solid var(--border-color, transparent)}@keyframes wlSlideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.wizlog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.wizlog-header-left{display:flex;align-items:center;gap:12px;min-width:0}.wizlog-logo{font-size:28px;flex-shrink:0}.wizlog-title{font-size:17px;font-weight:700;line-height:1.3}.wizlog-subtitle{font-size:12px;opacity:.8;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.wizlog-close{width:32px;height:32px;border:none;background:#fff3;color:#fff;border-radius:8px;font-size:16px;cursor:pointer;flex-shrink:0;transition:background .15s}.wizlog-close:hover{background:#ffffff59}.wizlog-steps{display:flex;align-items:center;padding:16px 24px 12px;gap:0;background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.wizlog-step{display:flex;align-items:center;gap:8px;color:var(--text-secondary, #9ca3af);font-size:13px;font-weight:600}.wizlog-step.active{color:#667eea}.wizlog-step.done{color:#2ecc71}.step-num{width:26px;height:26px;border-radius:50%;background:var(--border-color, #e5e7eb);color:var(--text-secondary, #9ca3af);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;transition:all .2s}.wizlog-step.active .step-num{background:#667eea;color:#fff}.wizlog-step.done .step-num{background:#2ecc71;color:#fff}.step-label{white-space:nowrap}.step-line{flex:1;height:2px;background:var(--border-color, #e5e7eb);margin:0 12px;border-radius:1px}.wizlog-body{padding:24px}.wizlog-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px;position:relative}.form-field label{font-size:13px;font-weight:600;color:var(--text-secondary, #6b7280)}.form-field input,.form-field select{padding:10px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:14px;color:var(--text-primary, #1f2937);background:var(--bg-primary, #fff);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.form-field input:focus,.form-field select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.form-field input:disabled,.form-field select:disabled{opacity:.6;cursor:not-allowed}.wizlog-binder-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;font-size:13px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:7px;cursor:pointer;color:var(--text-primary, #1f2937);text-align:left;transition:border-color .15s,box-shadow .15s;gap:6px;box-sizing:border-box}.wizlog-binder-trigger:hover:not(:disabled){border-color:var(--primary-color, #3b82f6)}.wizlog-binder-trigger:disabled{opacity:.6;cursor:not-allowed}.wizlog-binder-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.wbt-kind{color:var(--text-secondary, #6b7280);font-size:13px}.wbt-name{font-weight:600;color:var(--text-primary, #1f2937)}.wizlog-binder-trigger-arrow{font-size:10px;color:var(--text-secondary, #6b7280);flex-shrink:0}.wizlog-binder-tree{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;width:100%;max-width:100%;z-index:999;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:280px;overflow-y:auto;padding:4px 0}.wbt-group-header{display:flex;align-items:center;gap:6px;padding:7px 12px;cursor:pointer;font-size:13px;color:var(--text-primary, #1f2937);transition:background .1s;-webkit-user-select:none;user-select:none;font-weight:600}.wbt-group-header:hover{background:var(--bg-hover, #f3f4f6)}.wbt-expand{font-size:10px;color:var(--text-secondary, #6b7280);width:12px;flex-shrink:0}.wbt-group-icon{font-size:14px;flex-shrink:0}.wbt-group-label{flex:1}.wbt-group-count{font-size:11px;color:var(--text-secondary, #9ca3af);background:var(--bg-secondary, #f3f4f6);border-radius:10px;padding:1px 7px;font-weight:600}.wbt-children{padding:2px 0}.wbt-item{display:flex;align-items:center;gap:6px;padding:7px 12px 7px 32px;cursor:pointer;font-size:13px;color:var(--text-primary, #1f2937);transition:background .1s;-webkit-user-select:none;user-select:none}.wbt-item:hover{background:var(--bg-hover, #f3f4f6)}.wbt-item.selected{background:#3b82f614;color:var(--primary-color, #3b82f6);font-weight:600}.wbt-item-icon{font-size:14px;flex-shrink:0}.wbt-item-info{flex:1;display:flex;flex-direction:column;min-width:0}.wbt-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wbt-item-sub{font-size:11px;color:var(--text-secondary, #9ca3af);font-weight:400}.wbt-item-id{font-size:11px;color:var(--text-secondary, #9ca3af);flex-shrink:0}.wbt-item-check{flex-shrink:0;color:var(--primary-color, #3b82f6);font-weight:700;font-size:13px}.binder-badge{margin-top:4px;padding:6px 10px;background:#667eea14;border-radius:6px;font-size:12px;color:#667eea;font-weight:600}.wizlog-info-box{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:var(--bg-secondary, #f0f9ff);border-left:3px solid #667eea;border-radius:0 8px 8px 0;font-size:13px;color:var(--text-secondary, #374151);line-height:1.5}.wizlog-file-section{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border-color, #e5e7eb);border-radius:10px;overflow:hidden}.wizlog-file-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.wizlog-file-section-label{font-size:13px;font-weight:600;color:var(--text-secondary, #6b7280)}.wizlog-file-mode-toggle{display:flex;gap:4px}.wizlog-mode-btn{padding:4px 10px;border:1px solid var(--border-color, #d1d5db);background:var(--bg-primary, #fff);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:var(--text-secondary, #6b7280);transition:all .15s}.wizlog-mode-btn.active{background:#667eea;border-color:#667eea;color:#fff}.wizlog-file-list{display:flex;flex-direction:column;gap:2px;padding:8px 12px;max-height:160px;overflow-y:auto}.wizlog-file-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .1s;font-size:13px}.wizlog-file-item:hover{background:var(--bg-secondary, #f3f4f6)}.wizlog-file-item input[type=checkbox]{flex-shrink:0;accent-color:#667eea;width:14px;height:14px;cursor:pointer}.wizlog-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #1f2937)}.wizlog-file-size{font-size:11px;color:var(--text-secondary, #9ca3af);flex-shrink:0}.wizlog-file-empty-warn{font-size:12px;color:#dc2626;text-align:center;padding:8px 0}.wizlog-file-notice{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;color:var(--text-secondary, #6b7280)}.wizlog-error{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#dc2626;font-weight:500}.wizlog-btn-primary{padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .15s;width:100%}.wizlog-btn-primary:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.wizlog-btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.wizlog-btn-secondary{padding:12px 20px;background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #374151);border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.wizlog-btn-secondary:hover:not(:disabled){background:var(--border-color, #e5e7eb)}.wizlog-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.wizlog-btn-row{display:flex;gap:10px}.wizlog-btn-row .wizlog-btn-secondary{flex:0 0 auto}.wizlog-btn-row .wizlog-btn-primary{flex:1}@media(max-width:500px){.wizlog-modal{width:100%;border-radius:16px 16px 0 0}.wizlog-overlay{align-items:flex-end}}.time-tracking-panel{margin-top:16px;border:1.5px solid #e2e8f0;border-radius:10px;overflow:hidden}.tt-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.tt-title{font-size:13px;font-weight:700;color:#334155}.tt-add-btn{padding:4px 10px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer}.tt-add-btn:hover{background:#5a67d8}.tt-summary{display:flex;gap:0;padding:10px 14px 6px}.tt-stat{flex:1;display:flex;flex-direction:column;align-items:center}.tt-stat-label{font-size:11px;color:#94a3b8;margin-bottom:2px}.tt-stat-value{font-size:14px;font-weight:700;color:#334155}.tt-progress-bar{height:6px;background:#f1f5f9;margin:0 14px 10px;border-radius:3px;overflow:hidden}.tt-progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.tt-form{padding:10px 14px;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px}.tt-form-row{display:flex;align-items:center;gap:8px}.tt-form-row label{min-width:80px;font-size:12px;color:#64748b;font-weight:600}.tt-form-row input{flex:1;padding:5px 9px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:13px;outline:none;background:#fff;color:#334155}.tt-form-row input:focus{border-color:#667eea}.tt-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.tt-btn-cancel{padding:5px 14px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;cursor:pointer}.tt-btn-save{padding:5px 14px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.tt-btn-save:hover{background:#5a67d8}.tt-entries{list-style:none;margin:0;padding:0;border-top:1px solid #f1f5f9}.tt-entry{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #f8fafc;transition:background .15s}.tt-entry:hover{background:#f8fafc}.tt-entry:last-child{border-bottom:none}.tt-entry-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.tt-entry-minutes{font-size:13px;font-weight:700;color:#667eea;white-space:nowrap}.tt-entry-date{font-size:12px;color:#94a3b8;white-space:nowrap}.tt-entry-note{font-size:12px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-entry-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.tt-entry:hover .tt-entry-actions{opacity:1}.tt-btn-icon{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px}.tt-btn-icon:hover{background:#f1f5f9}.tt-empty{padding:14px;text-align:center;color:#94a3b8;font-size:13px}@media(prefers-color-scheme:dark){.time-tracking-panel{border-color:#334155}.tt-header{background:#1e293b;border-color:#334155}.tt-title,.tt-stat-value{color:#e2e8f0}.tt-form{background:#1e293b;border-color:#334155}.tt-form-row input{background:#0f172a;color:#e2e8f0;border-color:#334155}.tt-entry:hover{background:#1e293b}.tt-entry{border-color:#1e293b}.tt-progress-bar,.tt-btn-icon:hover,.tt-btn-cancel{background:#334155}.tt-btn-cancel{color:#e2e8f0;border-color:#475569}}.task-detail-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:flex-end;z-index:1000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.task-detail-panel{width:600px;height:100vh;background:#fff;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{padding:24px;border-bottom:2px solid #ecf0f1;background:#fff;color:#2c3e50}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.task-number{font-size:13px;font-weight:600;color:#7f8c8d}.btn-close{width:32px;height:32px;border:none;background:#f8f9fa;color:#7f8c8d;border-radius:8px;font-size:18px;cursor:pointer;transition:all .3s ease}.btn-close:hover{background:#e74c3c;color:#fff}.task-title{font-size:22px;font-weight:700;line-height:1.4;word-break:keep-all;overflow-wrap:break-word;color:#2c3e50}.task-meta-badges{display:flex;gap:8px}.status-select{padding:6px 12px;border:none;border-radius:16px;font-size:13px;font-weight:600;color:#fff;cursor:pointer;transition:all .3s ease}.status-select:hover{opacity:.9;transform:scale(1.05)}.priority-badge{padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;color:#fff}.paste-hint{margin:6px 2px 0;font-size:12px;color:#8a94a2;text-align:center}.paste-hint b{color:#1b4a9c}.priority-star-btn{cursor:pointer;padding:0 1px;transition:transform .12s ease;display:inline-block}.priority-star-btn:hover{transform:scale(1.25)}.confirmed-badge{padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;display:flex;align-items:center;gap:4px}.btn-confirm-task{padding:6px 16px;border:2px solid #2ecc71;background:#fff;color:#2ecc71;border-radius:16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-confirm-task:hover{background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;transform:scale(1.05)}.panel-tabs{display:flex;background:#f8f9fa;border-bottom:2px solid #ecf0f1}.tab-btn{flex:1;padding:16px;border:none;background:transparent;font-size:14px;font-weight:600;color:#7f8c8d;cursor:pointer;transition:all .3s ease;border-bottom:3px solid transparent}.tab-btn:hover{background:#fff;color:#667eea}.tab-btn.active{background:#fff;color:#667eea;border-bottom-color:#667eea}.panel-body{flex:1;overflow-y:auto;padding:24px}.info-tab{display:flex;flex-direction:column;gap:24px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.info-item{display:flex;flex-direction:column;gap:6px}.info-label{font-size:13px;font-weight:600;color:#7f8c8d}.info-value{font-size:14px;color:#2c3e50;font-weight:500}.info-value.due-date{color:#e74c3c;font-weight:600}.detail-date-input{width:100%;padding:6px 8px;font-size:13px;font-weight:500;color:#2c3e50;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer}.detail-date-input:hover{border-color:#9ca3af}.detail-date-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.assignees-tags{display:flex;flex-wrap:wrap;gap:6px}.assignee-tag-detail{display:inline-flex;align-items:center;padding:4px 12px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:14px;font-size:12px;font-weight:600}.description-section{padding:16px;background:#f8f9fa;border-radius:12px}.description-content{margin-top:8px;font-size:14px;line-height:1.6;color:#2c3e50;white-space:pre-wrap}.files-tab{display:flex;flex-direction:column;gap:16px}.tab-header{display:flex;justify-content:flex-end}.btn-upload{display:inline-block;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-upload:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.files-list{display:flex;flex-direction:column;gap:12px}.file-card{display:flex;align-items:center;gap:16px;padding:16px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.file-card:hover{background:#ecf0f1;transform:translate(4px)}.file-icon-large{font-size:32px}.file-details{flex:1}.file-name-large{font-size:14px;font-weight:600;color:#2c3e50;margin-bottom:6px;cursor:pointer}.file-name-large:hover{color:#667eea}.file-meta-large{display:flex;gap:12px;font-size:12px;color:#7f8c8d}.btn-delete-file{padding:8px;border:none;background:transparent;font-size:18px;cursor:pointer;border-radius:6px;transition:all .3s ease}.btn-delete-file:hover{background:#fee}.comments-tab{display:flex;flex-direction:column;gap:16px}.attached-files{display:flex;flex-direction:column;gap:8px;margin-top:12px}.attached-file-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border:1px solid #ecf0f1;border-radius:8px;font-size:13px}.file-icon{font-size:16px}.file-name{flex:1;color:#2c3e50;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:#7f8c8d;font-size:12px}.btn-remove-file{padding:4px 8px;border:none;background:transparent;color:#e74c3c;font-size:14px;cursor:pointer;border-radius:4px;transition:all .3s ease}.btn-remove-file:hover{background:#fee}.comment-input-section{display:flex;flex-direction:column;gap:12px;padding:16px;background:#f8f9fa;border-radius:12px}.comment-input{width:100%;padding:12px;border:2px solid #ecf0f1;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;transition:all .3s ease}.comment-input:focus{outline:none;border-color:#667eea}.btn-add-comment{align-self:flex-end;padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-add-comment:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-add-comment:disabled{opacity:.5;cursor:not-allowed}.comments-list{display:flex;flex-direction:column;gap:12px}.comment-card{max-width:70%;margin-bottom:16px;animation:commentFadeIn .3s ease}@keyframes commentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.comment-card.my-comment{margin-left:auto;margin-right:0}.comment-card.other-comment{margin-left:0;margin-right:auto}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px}.my-comment .comment-header{flex-direction:row-reverse}.comment-author{display:flex;align-items:center;gap:6px}.author-icon{font-size:16px}.author-name{font-size:13px;font-weight:600;color:#2c3e50}.my-comment .author-name{color:#667eea}.comment-actions{display:flex;align-items:center;gap:8px}.comment-date{font-size:11px;color:#95a5a6}.btn-delete-comment{padding:4px 8px;border:none;background:transparent;color:#e74c3c;font-size:12px;cursor:pointer;border-radius:4px;transition:all .3s ease}.btn-delete-comment:hover{background:#fee}.comment-content{padding:12px 16px;border-radius:18px;line-height:1.5;word-wrap:break-word;white-space:pre-wrap;font-size:14px}.comment-content:empty,.comment-content.empty-content{display:none}.my-comment .comment-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:4px}.other-comment .comment-content{background:#ecf0f1;color:#2c3e50;border-bottom-left-radius:4px}.empty-state-small{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-small p{margin:0;font-size:14px;color:#7f8c8d}.btn-history{margin-left:auto;padding:10px 20px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-history:hover{background:#667eea;color:#fff}.comment-files{margin-top:8px;padding-top:8px;display:flex;flex-direction:column;gap:6px}.my-comment .comment-files{align-items:flex-end}.other-comment .comment-files{align-items:flex-start}.comment-file-item{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:8px;font-size:12px;transition:all .3s ease;max-width:300px}.my-comment .comment-file-item{background:#fffffff2}.comment-file-item:hover{background:#fff;border-color:#667eea;transform:translateY(-1px)}.comment-file-item .file-icon{font-size:14px}.comment-file-item .file-name{flex:1;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comment-file-item .file-name.clickable{color:#667eea;cursor:pointer;font-weight:500}.comment-file-item .file-name.clickable:hover{color:#764ba2;text-decoration:underline}.comment-file-item .file-size{color:#7f8c8d;font-size:11px;flex-shrink:0}.comment-file-btn{border:none;background:transparent;cursor:pointer;padding:2px 5px;border-radius:5px;font-size:13px;line-height:1;flex-shrink:0;transition:background .15s ease}.comment-file-btn:hover{background:#667eea26}.comment-file-item.comment-file-image{flex-direction:column;align-items:flex-start;gap:5px;padding:6px;max-width:280px}.comment-image-thumb{max-width:260px;max-height:200px;border-radius:6px;cursor:pointer;object-fit:contain;background:#f1f3f5;display:block;transition:transform .15s ease,box-shadow .15s ease}.comment-image-thumb:hover{transform:scale(1.01);box-shadow:0 4px 12px #0000002e}.auth-img-loading{width:200px;height:140px;border-radius:6px;background:linear-gradient(90deg,#eef1f5 25%,#e3e8ef 37%,#eef1f5 63%);background-size:400% 100%;animation:authImgShimmer 1.2s ease-in-out infinite}@keyframes authImgShimmer{0%{background-position:100% 0}to{background-position:0 0}}.auth-img-failed{width:200px;height:140px;display:flex;align-items:center;justify-content:center;font-size:28px;background:#f1f3f5;border-radius:6px;cursor:pointer}.comment-file-caption{display:flex;align-items:center;gap:6px;max-width:260px;width:100%}.comment-file-caption .file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#667eea;cursor:pointer;font-weight:500}.comment-file-caption .file-name:hover{color:#764ba2;text-decoration:underline}.btn-edit-comment{padding:4px 10px;background:transparent;color:#3498db;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.btn-edit-comment:hover{background:#3498db1a}.comment-card.comment-editing{max-width:100%!important;width:100%;margin-left:0!important;margin-right:0!important}.comment-edit-section{margin-top:8px;width:100%}.comment-edit-input{width:100%;min-height:120px;padding:10px 12px;font-size:14px;line-height:1.6;border:1px solid var(--primary-color, #3b82f6);border-radius:8px;resize:vertical;outline:none;background:var(--bg-primary, #fff);color:var(--text-primary, #1f2937);box-sizing:border-box;font-family:inherit;transition:border-color .15s,box-shadow .15s}.comment-edit-input:focus{border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61f}.edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn-save-edit{padding:8px 16px;background:#2ecc71;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s}.btn-save-edit:hover{background:#27ae60}.btn-cancel-edit{padding:8px 16px;background:#ecf0f1;color:#7f8c8d;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s}.btn-cancel-edit:hover{background:#bdc3c7}.file-sort-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:16px}.sort-label{font-size:13px;font-weight:600;color:#7f8c8d}.sort-buttons{display:flex;gap:6px}.sort-btn{padding:6px 12px;border:2px solid #ecf0f1;background:#fff;color:#7f8c8d;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.sort-btn:hover{border-color:#bdc3c7;background:#f8f9fa}.sort-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.file-actions{display:flex;gap:8px;align-items:center}.btn-preview-file,.btn-download-file{width:36px;height:36px;border:none;background:transparent;color:#3498db;font-size:18px;cursor:pointer;border-radius:6px;transition:all .3s ease}.btn-preview-file:hover{background:#3498db1a;transform:scale(1.1)}.btn-download-file:hover{background:#2ecc711a;color:#2ecc71;transform:scale(1.1)}.image-preview-overlay{position:fixed;inset:0;background:#000000e6;z-index:9998;animation:fadeIn .3s ease}.image-preview-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;z-index:9999;display:flex;flex-direction:column;animation:zoomIn .3s ease;overflow:visible}@keyframes zoomIn{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:2px solid #ecf0f1}.preview-header h3{margin:0;font-size:16px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:600px}.btn-close-preview{width:32px;height:32px;border:none;background:#ecf0f1;color:#7f8c8d;border-radius:8px;font-size:18px;cursor:pointer;transition:all .3s ease;flex-shrink:0}.btn-close-preview:hover{background:#bdc3c7}.preview-content{padding:20px;display:flex;justify-content:center;align-items:center;overflow:auto;max-height:calc(90vh - 80px)}.preview-content img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.dependency-section{display:flex;flex-direction:column;gap:16px}.dependency-block{background:#f8f9fa;border-radius:10px;padding:14px 16px;border:1px solid #ecf0f1}.dependency-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.btn-dep-add{padding:3px 10px;border:1px solid #667eea;border-radius:6px;background:transparent;color:#667eea;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.btn-dep-add:hover{background:#667eea;color:#fff}.dep-search-wrap{position:relative;margin-bottom:10px}.dep-search-input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;outline:none;box-sizing:border-box}.dep-search-input:focus{border-color:#667eea}.dep-search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #0000001f;z-index:100;max-height:220px;overflow-y:auto;margin:0;padding:4px 0;list-style:none}.dep-search-item{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;cursor:pointer;transition:background .1s}.dep-search-item:hover{background:#f3f4f6}.dep-task-title{font-size:13px;font-weight:600;color:#2c3e50}.dep-task-project{font-size:11px;color:#9ca3af;margin-left:8px}.dep-search-empty{padding:10px 14px;font-size:13px;color:#9ca3af;text-align:center}.dep-empty{font-size:13px;color:#9ca3af;text-align:center;padding:6px 0}.dep-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dep-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px 12px}.dep-item.readonly{background:#f9fafb}.dep-item-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}.dep-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dep-status-dot.dep-status-TODO{background:#95a5a6}.dep-status-dot.dep-status-IN_PROGRESS{background:#f39c12}.dep-status-dot.dep-status-REVIEW{background:#3498db}.dep-status-dot.dep-status-DONE{background:#2ecc71}.dep-item-title{font-size:13px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.dep-item-project{font-size:11px;color:#9ca3af;flex-shrink:0}.dep-done-badge{font-size:11px;color:#2ecc71;font-weight:600;flex-shrink:0}.dep-pending-badge{font-size:11px;color:#f39c12;font-weight:600;flex-shrink:0}.btn-dep-remove{width:22px;height:22px;border:none;background:transparent;color:#bdc3c7;border-radius:4px;font-size:14px;cursor:pointer;flex-shrink:0;transition:all .15s;display:flex;align-items:center;justify-content:center}.btn-dep-remove:hover{background:#fee;color:#e74c3c}.replying-to-banner{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-left:3px solid #667eea;border-radius:8px;margin-bottom:12px;font-size:13px;color:#667eea;font-weight:600}.btn-cancel-reply{width:24px;height:24px;border:none;background:#667eea33;color:#667eea;border-radius:50%;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-cancel-reply:hover{background:#667eea4d;transform:scale(1.1)}.comment-footer{display:flex;gap:12px;align-items:center;margin-top:12px;padding-top:8px}.btn-reply,.btn-add-emoji{padding:6px 12px;border:none;background:transparent;color:#7f8c8d;font-size:12px;font-weight:600;cursor:pointer;border-radius:6px;transition:all .3s ease}.btn-reply:hover{background:#667eea1a;color:#667eea}.btn-add-emoji:hover{background:#f1c40f1a;color:#f1c40f}.emoji-actions{position:relative}.emoji-picker{position:absolute;bottom:100%;left:0;margin-bottom:8px;display:flex;gap:4px;padding:8px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000026;z-index:100;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.emoji-option{width:36px;height:36px;border:none;background:transparent;font-size:20px;cursor:pointer;border-radius:8px;transition:all .2s ease}.emoji-option:hover{background:#f8f9fa;transform:scale(1.2)}.comment-reactions,.reply-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.reaction-bubble{display:flex;align-items:center;gap:4px;padding:4px 10px;border:2px solid #ecf0f1;background:#fff;border-radius:16px;font-size:14px;cursor:pointer;transition:all .3s ease}.reaction-bubble:hover{border-color:#bdc3c7;background:#f8f9fa;transform:scale(1.05)}.reaction-bubble.reacted{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.reaction-emoji{font-size:16px}.reaction-count{font-size:12px;font-weight:700;color:#7f8c8d}.reaction-bubble.reacted .reaction-count{color:#667eea}.replies-section{margin-top:16px;margin-left:32px;padding-left:16px;border-left:3px solid #ecf0f1}.reply-card{padding:12px 16px;background:#f8f9fa;border-radius:12px;margin-bottom:12px;transition:all .3s ease}.reply-card:hover{background:#ecf0f1}.reply-card.my-reply{background:linear-gradient(135deg,#667eea0d,#764ba20d)}.reply-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.reply-author{display:flex;align-items:center;gap:6px}.reply-author .author-name{font-size:13px;font-weight:700;color:#2c3e50}.reply-actions{display:flex;align-items:center;gap:8px}.reply-date{font-size:11px;color:#95a5a6}.btn-delete-reply{width:24px;height:24px;border:none;background:transparent;color:#bdc3c7;font-size:14px;cursor:pointer;border-radius:6px;transition:all .3s ease}.btn-delete-reply:hover{background:#e74c3c;color:#fff}.reply-content{font-size:14px;color:#2c3e50;line-height:1.6;margin-bottom:8px}.reply-files{margin-top:8px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.reply-file-item{margin-top:8px}.reply-file-item{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#fff;border-radius:6px;font-size:12px}@media(max-width:768px){.task-detail-panel{width:100%}.info-grid{grid-template-columns:1fr}.file-sort-bar{flex-direction:column;align-items:flex-start}.sort-buttons{width:100%;justify-content:space-between}.sort-btn{flex:1}}.checklist-tab{display:flex;flex-direction:column;gap:12px;padding:4px 0}.checklist-progress{display:flex;flex-direction:column;gap:6px}.checklist-progress-label{font-size:12px;color:var(--text-secondary, #6b7280)}.checklist-progress-bar{height:6px;background:var(--border-color, #e5e7eb);border-radius:4px;overflow:hidden}.checklist-progress-fill{height:100%;background:var(--primary-color, #3b82f6);border-radius:4px;transition:width .3s ease}.checklist-empty{text-align:center;color:var(--text-secondary, #9ca3af);font-size:13px;padding:24px 0}.checklist-list{display:flex;flex-direction:column;gap:6px}.checklist-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;background:var(--bg-secondary, #f9fafb);transition:background .15s}.checklist-item.completed .checklist-content{text-decoration:line-through;color:#9ca3af}.checklist-edit-input{flex:1;font-size:14px;padding:4px 8px;border:1px solid var(--primary-color, #3b82f6);border-radius:4px;outline:none}.checklist-save-btn{font-size:12px;padding:3px 8px;border-radius:4px;border:none;cursor:pointer;background:var(--primary-color, #3b82f6);color:#fff}.checklist-cancel-btn{font-size:12px;padding:3px 8px;border-radius:4px;border:none;cursor:pointer;background:#e5e7eb}.checklist-delete-btn{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:2px 4px;opacity:0;transition:opacity .15s;flex-shrink:0}.checklist-add-input{flex:1;padding:8px 12px;font-size:14px;border:1px solid #e5e7eb;border-radius:6px;outline:none}.checklist-add-btn{padding:8px 16px;font-size:14px;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:6px;cursor:pointer}.file-version-badge{display:inline-block;margin-left:8px;padding:1px 7px;background:#e0f2fe;color:#0369a1;border-radius:8px;font-size:11px;font-weight:700;vertical-align:middle}.btn-file-history{background:transparent;border:none;cursor:pointer;font-size:15px;padding:4px 6px;border-radius:6px;color:#7c3aed;transition:background .1s}.btn-file-history:hover{background:#ede9fe}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:3000;display:flex;align-items:center;justify-content:center}.confirm-modal{background:var(--bg-card, #fff);border-radius:16px;padding:32px;width:380px;text-align:center;box-shadow:0 20px 60px #00000040;border:1px solid var(--border-color, transparent)}.btn-cancel-modal{padding:10px 24px;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:var(--text-primary, #374151)}.btn-cancel-modal:hover{background:var(--bg-hover, #e5e7eb)}.btn-confirm-modal{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:#fff}.btn-confirm-modal:hover{opacity:.9}.file-history-modal{background:var(--bg-card, #fff);border-radius:16px;width:680px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden;border:1px solid var(--border-color, transparent)}.file-history-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.file-history-header h3{margin:0 0 4px;font-size:18px}.file-history-header p{margin:0;font-size:13px;opacity:.85}.btn-close-modal{width:32px;height:32px;border:none;background:#fff3;border-radius:8px;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-close-modal:hover{background:#ffffff59}.file-history-body{flex:1;overflow-y:auto;padding:16px;background:var(--bg-card, #fff)}.file-history-table{width:100%;border-collapse:collapse;font-size:13px}.file-history-table th{text-align:left;padding:10px 12px;background:var(--bg-secondary, #f9fafb);border-bottom:2px solid var(--border-color, #e5e7eb);font-weight:600;color:var(--text-secondary, #6b7280)}.file-history-table td{padding:12px;border-bottom:1px solid var(--border-light, #f3f4f6);color:var(--text-primary, #374151)}.history-latest{background:#22c55e0f!important}.history-latest td{font-weight:600}.version-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:700}.version-badge.latest{background:#e0f2fe;color:#0369a1}.version-badge.old{background:var(--bg-secondary,#f3f4f6);color:var(--text-secondary,#6b7280)}.badge-latest{display:inline-block;padding:2px 8px;background:#dcfce7;color:#16a34a;border-radius:8px;font-size:11px;font-weight:700}.badge-old{display:inline-block;padding:2px 8px;background:var(--bg-secondary,#f3f4f6);color:var(--text-secondary,#6b7280);border-radius:8px;font-size:11px;font-weight:700}.file-card{position:relative;transition:background .1s}.file-card-selected{background:#3b82f60f;border-color:#3b82f64d!important}.file-card-checkbox{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color, #3b82f6);margin-right:2px}.btn-wizlog-add{padding:6px 14px;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:16px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .15s;white-space:nowrap}.btn-wizlog-add:hover{opacity:.88;transform:scale(1.05)}.file-action-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#667eea0f;border:1px solid rgba(102,126,234,.2);border-radius:8px;margin-bottom:12px}.file-action-count{font-size:13px;font-weight:600;color:var(--primary-color, #667eea)}.file-action-btns{display:flex;align-items:center;gap:6px}.file-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-primary, #fff);color:var(--text-primary, #374151);transition:all .15s}.file-action-btn:hover{background:var(--bg-secondary, #f3f4f6);border-color:#d1d5db}.file-action-btn-wizlog{background:#667eea;color:#fff;border-color:#667eea}.file-action-btn-wizlog:hover{background:#5a6fd6;border-color:#5a6fd6;color:#fff}.file-action-btn-clear{color:var(--text-secondary, #6b7280)}.file-action-btn-clear:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.file-action-btns{display:flex;align-items:center;gap:6px;margin-left:auto}.file-action-count{font-size:12px;font-weight:600;color:var(--primary-color, #667eea);padding:0 4px;white-space:nowrap}.btn-clear-sel{padding:4px 8px!important;font-size:12px!important;color:var(--text-secondary, #6b7280)!important;background:var(--bg-secondary, #f3f4f6)!important;border:1px solid var(--border-color, #e5e7eb)!important;border-radius:5px!important;cursor:pointer;font-weight:600}.btn-clear-sel:hover{background:#fee2e2!important;color:#dc2626!important;border-color:#fca5a5!important}.pf-selection-actions{display:flex;align-items:center;gap:6px;margin-right:auto}.pf-sel-count{font-size:12px;font-weight:600;color:var(--primary-color, #667eea);white-space:nowrap}.btn-wizlog-add.disabled,.btn-wizlog-add:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-wizlog-file{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-color:#667eea!important;font-weight:600}.btn-wizlog-file:hover{opacity:.9;transform:none}.btn-copy-to-folder{margin-left:auto;background:var(--primary-color, #3b82f6)!important;color:#fff!important;border:none!important;font-weight:600;padding:5px 12px!important}.btn-copy-to-folder:hover{opacity:.85}.category-picker-wrap{position:relative;width:100%}.category-picker-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;font-size:13px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:7px;cursor:pointer;color:var(--text-primary, #1f2937);text-align:left;transition:border-color .15s,box-shadow .15s;gap:6px}.category-picker-trigger:hover{border-color:var(--primary-color, #3b82f6)}.category-picker-trigger:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.category-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.category-trigger-arrow{font-size:10px;color:var(--text-secondary, #6b7280);flex-shrink:0}.category-tree-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;width:max-content;max-width:410px;z-index:999;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:8px;box-shadow:0 8px 24px #0000001f;max-height:280px;overflow-y:auto;padding:4px 0}.cat-tree-item{display:flex;align-items:center;gap:6px;padding:7px 12px;cursor:pointer;font-size:13px;color:var(--text-primary, #1f2937);transition:background .1s;-webkit-user-select:none;user-select:none}.cat-tree-item:hover{background:var(--bg-hover, #f3f4f6)}.cat-tree-item.selected{background:#3b82f614;color:var(--primary-color, #3b82f6);font-weight:600}.cat-tree-item.cat-tree-none{color:var(--text-secondary, #6b7280);font-style:italic}.cat-tree-item.cat-tree-none.selected{color:var(--primary-color, #3b82f6);font-style:normal;font-weight:600}.cat-tree-icon{flex-shrink:0;font-size:14px}.cat-tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-tree-check{flex-shrink:0;color:var(--primary-color, #3b82f6);font-weight:700;font-size:13px}.cat-tree-divider{height:1px;background:var(--border-color, #e5e7eb);margin:3px 8px}.category-select-detail{padding:4px 8px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#374151;background:#fff;cursor:pointer;outline:none;width:100%;max-width:220px;transition:border-color .15s}.category-select-detail:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.info-value-muted{color:#9ca3af;font-size:13px;font-style:italic}@media(max-width:768px){.task-detail-panel{width:100vw}}@media(max-width:480px){.task-detail-panel{width:100vw;height:100dvh;border-radius:0}.task-detail-overlay{align-items:flex-end}}.mention-dropdown{position:absolute;bottom:100%;left:0;background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e1e4e8);border-radius:8px;box-shadow:0 4px 16px #00000026;list-style:none;margin:0 0 4px;padding:4px 0;min-width:220px;max-height:240px;overflow-y:auto;z-index:1000}.mention-item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;font-size:.875rem;transition:background .1s}.mention-item.active,.mention-item:hover{background:var(--primary-color, #4f8ef7);color:#fff}.mention-username{font-weight:600}.mention-name{opacity:.75;font-size:.8rem}.checklist-item:hover{background:var(--bg-hover, #f3f4f6)}.checklist-item.completed .checklist-content{text-decoration:line-through;color:var(--text-secondary, #9ca3af)}.checklist-checkbox{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:var(--primary-color, #3b82f6)}.checklist-content{flex:1;font-size:14px;cursor:pointer}.checklist-edit-row{flex:1;display:flex;gap:6px;align-items:center}.checklist-edit-input{flex:1;font-size:14px;padding:4px 8px;border:1px solid var(--primary-color, #3b82f6);border-radius:4px;outline:none;background:var(--bg-primary, #fff)}.checklist-save-btn,.checklist-cancel-btn{font-size:12px;padding:3px 8px;border-radius:4px;border:none;cursor:pointer}.checklist-save-btn{background:var(--primary-color, #3b82f6);color:#fff}.checklist-cancel-btn{background:var(--border-color, #e5e7eb);color:var(--text-primary, #374151)}.checklist-delete-btn{background:none;border:none;color:var(--text-secondary, #9ca3af);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.checklist-item:hover .checklist-delete-btn{opacity:1}.checklist-delete-btn:hover{color:#ef4444}.checklist-add-row{display:flex;gap:8px;margin-top:4px}.checklist-add-input{flex:1;padding:8px 12px;font-size:14px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;outline:none;background:var(--bg-primary, #fff)}.checklist-add-input:focus{border-color:var(--primary-color, #3b82f6)}.checklist-add-btn{padding:8px 16px;font-size:14px;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.checklist-add-btn:disabled{opacity:.4;cursor:not-allowed}.task-detail-labels{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.task-detail-label-chip{display:inline-block;padding:3px 10px;border-radius:12px;color:#fff;font-size:12px;font-weight:600}.dep-type-select{padding:3px 6px;font-size:11px;border:1px solid #e2e8f0;border-radius:4px;background:#f8fafc;color:#475569;cursor:pointer;margin-right:4px}.dep-type-select:focus{outline:none;border-color:#667eea}.checklist-assignee-select,.checklist-date-input{padding:4px 8px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;color:#334155;background:#fff;outline:none;max-width:120px}.checklist-assignee-select:focus,.checklist-date-input:focus{border-color:#667eea}.checklist-content-wrap{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.checklist-meta-badge{font-size:11px;color:#94a3b8;white-space:nowrap;background:#f1f5f9;padding:1px 6px;border-radius:10px}.filter-overlay{position:fixed;inset:0;background:#00000080;z-index:1000}.advanced-filter-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:85vh;box-shadow:0 8px 32px #0003;z-index:1001;display:flex;flex-direction:column}.filter-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:2px solid #ecf0f1}.filter-header h2{margin:0;font-size:22px;color:#2c3e50}.btn-close{width:36px;height:36px;border:none;background:#ecf0f1;border-radius:8px;font-size:20px;color:#7f8c8d;cursor:pointer;transition:all .3s ease}.filter-body{flex:1;padding:32px;overflow-y:auto}.filter-group{margin-bottom:24px;display:flex;align-items:center;gap:16px}.filter-group label{min-width:120px;margin:0;font-size:14px;font-weight:600;color:#2c3e50;flex-shrink:0}.filter-group select,.filter-group input[type=date]{flex:1;padding:12px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;transition:all .3s ease}.filter-group select:focus,.filter-group input[type=date]:focus{outline:none;border-color:#667eea}.date-range{display:flex;align-items:center;gap:12px;flex:1}.date-range input{flex:1;padding:12px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;transition:all .3s ease}.date-range input:focus{outline:none;border-color:#667eea}.date-range span{color:#7f8c8d;font-weight:600}.saved-filters-section{margin-top:32px;padding-top:24px;border-top:2px solid #ecf0f1}.saved-filters-section h3{margin:0 0 16px;font-size:16px;color:#2c3e50}.saved-filters-list{display:flex;flex-direction:column;gap:8px}.saved-filter-item{display:flex;gap:8px}.btn-load-filter{flex:1;padding:12px 16px;background:#f8f9fa;border:2px solid #ecf0f1;border-radius:8px;font-size:14px;font-weight:600;color:#2c3e50;text-align:left;cursor:pointer;transition:all .3s ease}.btn-load-filter:hover{background:#ecf0f1;border-color:#667eea;color:#667eea}.btn-delete-filter{width:44px;padding:12px;background:transparent;border:2px solid #ecf0f1;border-radius:8px;color:#e74c3c;font-size:16px;cursor:pointer;transition:all .3s ease}.btn-delete-filter:hover{background:#e74c3c;color:#fff;border-color:#e74c3c}.filter-footer{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-top:2px solid #ecf0f1}.footer-left,.footer-right{display:flex;gap:12px}.btn-reset,.btn-save-filter,.btn-cancel,.btn-apply{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-reset{background:#ecf0f1;color:#7f8c8d}.btn-reset:hover{background:#bdc3c7}.btn-save-filter{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.btn-save-filter:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1266}.btn-apply{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-apply:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.save-filter-dialog{position:absolute;bottom:80px;left:32px;right:32px;background:#fff;border:2px solid #667eea;border-radius:12px;padding:16px;box-shadow:0 4px 16px #0003;display:flex;gap:8px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.save-filter-dialog input{flex:1;padding:10px 14px;border:2px solid #ecf0f1;border-radius:6px;font-size:14px}.save-filter-dialog input:focus{outline:none;border-color:#667eea}.save-filter-dialog button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.save-filter-dialog button:first-of-type{background:#667eea;color:#fff}.save-filter-dialog button:first-of-type:hover{background:#5568d3}.save-filter-dialog button:last-of-type{background:#ecf0f1;color:#7f8c8d}.save-filter-dialog button:last-of-type:hover{background:#bdc3c7}@media(max-width:768px){.advanced-filter-panel{width:95%;max-height:90vh}.filter-header,.filter-body,.filter-footer{padding:20px}.date-range{flex-direction:column;align-items:stretch}.date-range span{display:none}.filter-footer{flex-direction:column;gap:12px}.footer-left,.footer-right{width:100%}.footer-right{flex-direction:column}.btn-reset,.btn-save-filter,.btn-cancel,.btn-apply{width:100%}}.loading-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:9999;animation:lo-fade-in .15s ease}@keyframes lo-fade-in{0%{opacity:0}to{opacity:1}}.loading-overlay-box{background:#fff;border-radius:16px;padding:36px 48px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 8px 32px #0000002e;min-width:200px;animation:lo-pop-in .2s ease}@keyframes lo-pop-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.loading-overlay-spinner{width:44px;height:44px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:lo-spin .7s linear infinite}@keyframes lo-spin{to{transform:rotate(360deg)}}.loading-overlay-message{font-size:15px;font-weight:600;color:#111827;text-align:center}.loading-overlay-sub{font-size:13px;color:#6b7280;text-align:center;margin-top:-8px}[data-theme=dark] .loading-overlay-box{background:var(--bg-card)!important;box-shadow:var(--shadow-lg)!important}[data-theme=dark] .loading-overlay-spinner{border-color:var(--border-color)!important;border-top-color:#667eea!important}[data-theme=dark] .loading-overlay-message{color:var(--text-primary)!important}[data-theme=dark] .loading-overlay-sub{color:var(--text-muted)!important}.project-folder-panel{position:fixed;top:0;right:0;width:600px;height:100vh;background:var(--bg-card, #fff);box-shadow:-4px 0 24px #00000021;display:flex;flex-direction:column;z-index:500;animation:pfSlideIn .25s ease}.project-folder-panel.pf-float{right:auto!important}@keyframes pfSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.pf-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-card, #fff);flex-shrink:0}.pf-header-left{display:flex;align-items:center;gap:12px}.pf-header-icon{font-size:28px}.pf-header-title{font-size:16px;font-weight:700;color:var(--text-primary, #111827)}.pf-header-project{font-size:12px;color:var(--text-secondary, #6b7280);margin-top:2px}.pf-close-btn{width:32px;height:32px;border:none;background:var(--bg-secondary, #f3f4f6);border-radius:8px;font-size:16px;cursor:pointer;color:var(--text-secondary, #6b7280);display:flex;align-items:center;justify-content:center;transition:all .15s}.pf-close-btn:hover{background:var(--bg-hover, #e5e7eb);color:var(--text-primary, #111827)}.pf-action-bar{padding:10px 16px;border-bottom:1px solid var(--border-light, #f3f4f6);flex-shrink:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pf-expand-btns{display:flex;gap:4px;margin-left:auto}.pf-expand-all-btn{padding:4px 10px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:transparent;color:var(--text-secondary, #6b7280);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.pf-expand-all-btn:hover{background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #111827)}.pf-add-root-btn{padding:7px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.pf-add-root-btn:hover{opacity:.88}.pf-download-all-btn{padding:7px 14px;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:13px;font-weight:600;color:var(--text-primary, #374151);cursor:pointer;transition:all .15s;white-space:nowrap}.pf-download-all-btn:hover{background:var(--bg-hover, #e5e7eb)}.pf-wizlog-btn{padding:7px 14px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;font-size:13px;font-weight:600;color:#fff;cursor:pointer;transition:opacity .15s;white-space:nowrap}.pf-wizlog-btn:hover{opacity:.88}.pf-clear-sel-btn{padding:7px 12px;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:12px;font-weight:600;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s;white-space:nowrap}.pf-clear-sel-btn:hover{background:var(--bg-hover, #e5e7eb)}.pf-selection-action-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#667eea0f;border-bottom:1px solid rgba(102,126,234,.2);flex-shrink:0}.pf-sel-count{font-size:13px;font-weight:600;color:var(--primary-color, #667eea)}.pf-sel-btns{display:flex;align-items:center;gap:6px}.pf-sel-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-primary, #fff);color:var(--text-primary, #374151);transition:all .15s;white-space:nowrap}.pf-sel-btn:hover{background:var(--bg-secondary, #f3f4f6)}.pf-sel-btn-wizlog{background:#667eea;color:#fff;border-color:#667eea}.pf-sel-btn-wizlog:hover{background:#5a6fd6;border-color:#5a6fd6;color:#fff}.pf-sel-btn-clear{color:var(--text-secondary, #6b7280)}.pf-sel-btn-clear:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.pf-tree{flex:1;overflow-y:auto;padding:8px 0}.pf-tree::-webkit-scrollbar{width:6px}.pf-tree::-webkit-scrollbar-thumb{background:var(--border-color, #e5e7eb);border-radius:3px}.pf-empty{padding:40px 20px;text-align:center;color:var(--text-muted, #9ca3af);font-size:14px}.pf-folder-node{padding-left:0}.pf-folder-row{display:flex;align-items:center;gap:6px;padding:7px 12px;padding-left:calc(var(--depth,0)*16px + 12px);border-radius:8px;margin:1px 8px;cursor:pointer;transition:background .1s,box-shadow .1s;-webkit-user-select:none;user-select:none;position:relative}.pf-folder-row:hover{background:var(--bg-secondary, #f3f4f6)}.pf-folder-row.pf-drag-over--strong{background:#667eea26!important;outline:2.5px solid #667eea!important;outline-offset:-1px;box-shadow:0 0 0 4px #667eea26!important}.pf-folder-row.pf-drag-over{background:#667eea1f!important;outline:2px dashed #667eea}.pf-folder-row.pf-drop-before{box-shadow:inset 0 3px #667eea;background:#667eea0f!important}.pf-folder-row.pf-drop-after{box-shadow:inset 0 -3px #667eea;background:#667eea0f!important}.pf-drag-hint{font-size:11px;font-weight:700;color:#667eea;background:#667eea1f;padding:2px 8px;border-radius:10px;white-space:nowrap;margin-left:auto;pointer-events:none}.pf-expand-btn-placeholder{width:18px;height:18px;flex-shrink:0;display:inline-block}.pf-expand-btn{width:18px;height:18px;border:none;background:transparent;font-size:12px;color:var(--text-secondary, #6b7280);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:4px}.pf-expand-btn:hover{background:var(--bg-hover, #e5e7eb)}.pf-folder-icon{font-size:16px;flex-shrink:0}.pf-folder-name{flex:1;font-size:14px;font-weight:600;color:var(--text-primary, #111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-folder-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.pf-folder-row:hover .pf-folder-actions{opacity:1}.pf-btn{width:26px;height:26px;border:none;background:transparent;border-radius:6px;font-size:13px;cursor:pointer;color:var(--text-secondary, #6b7280);display:flex;align-items:center;justify-content:center;transition:all .1s}.pf-btn:hover{background:var(--bg-hover, #e5e7eb);color:var(--text-primary, #111827)}.pf-btn-upload:hover{background:#dbeafe;color:#2563eb}.pf-btn-preview:hover{background:#ede9fe;color:#7c3aed}.pf-btn-danger:hover{background:#fee2e2;color:#dc2626}.pf-btn-confirm{color:#16a34a}.pf-btn-confirm:hover{background:#dcfce7}.pf-folder-content{margin-left:0;padding-left:0;border-left:none}.pf-add-folder-row{display:flex;align-items:center;gap:6px;padding:6px 12px;margin:1px 8px}.pf-add-root-row{padding:8px 16px}.pf-name-input{flex:1;padding:5px 10px;border:1px solid #667eea;border-radius:6px;font-size:13px;outline:none;background:var(--bg-input, #fff);color:var(--text-primary, #111827)}.pf-file-row{display:flex;align-items:center;gap:8px;padding:6px 12px;padding-left:calc(var(--depth,1)*16px + 12px + 18px + 6px);margin:1px 8px;border-radius:8px;transition:background .1s;cursor:grab}.pf-file-row:hover{background:var(--bg-secondary, #f9fafb)}.pf-file-row.pf-drag-over{background:#667eea14;outline:1px dashed #667eea}.pf-file-row.pf-file-selected{background:#667eea0f}.pf-file-checkbox{flex-shrink:0;width:14px;height:14px;accent-color:#667eea;cursor:pointer;margin-right:2px}.pf-file-icon{font-size:16px;flex-shrink:0}.pf-file-info{flex:1;min-width:0}.pf-file-name-row{display:flex;align-items:center;gap:6px}.pf-file-name{font-size:13px;font-weight:500;color:var(--text-primary, #111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-file-meta{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:1px}.pf-file-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.pf-file-row:hover .pf-file-actions{opacity:1}.pf-version-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:700;white-space:nowrap;flex-shrink:0}.pf-version-badge.latest{background:#e0f2fe;color:#0369a1}.pf-version-badge.old{background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280)}.pf-latest-tag{display:inline-block;padding:2px 8px;background:#dcfce7;color:#16a34a;border-radius:8px;font-size:11px;font-weight:700}.pf-old-tag{display:inline-block;padding:2px 8px;background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280);border-radius:8px;font-size:11px;font-weight:700}.pf-btn-history{color:#7c3aed!important}.pf-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:2000;display:flex;align-items:center;justify-content:center}.pf-confirm-modal{background:var(--bg-card, #fff);border-radius:16px;padding:32px;width:380px;text-align:center;box-shadow:0 20px 60px #00000040;border:1px solid var(--border-color, transparent)}.pf-confirm-icon{font-size:48px;margin-bottom:12px}.pf-confirm-modal h3{margin:0 0 8px;font-size:18px;color:var(--text-primary, #111827)}.pf-confirm-filename{font-weight:700;color:#667eea;margin:0 0 12px;font-size:14px}.pf-confirm-desc{font-size:14px;color:var(--text-secondary, #6b7280);line-height:1.6;margin:0 0 8px}.pf-confirm-sub{font-size:12px;color:var(--text-muted, #9ca3af);line-height:1.6;margin:0}.pf-confirm-actions{display:flex;gap:12px;justify-content:center}.pf-btn-cancel{padding:10px 24px;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:var(--text-primary, #374151)}.pf-btn-cancel:hover{background:var(--bg-hover, #e5e7eb)}.pf-btn-overwrite{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:#fff}.pf-btn-overwrite:hover{opacity:.9}.pf-drop-preview-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--bg-secondary, #f9fafb)}.pf-drop-preview-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-light, #f3f4f6);font-size:12px}.pf-drop-preview-item:last-child{border-bottom:none}.pf-drop-preview-path{flex:1;color:var(--text-primary, #374151);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-drop-preview-dir{color:var(--text-muted, #9ca3af)}.pf-drop-preview-size{color:var(--text-muted, #9ca3af);white-space:nowrap}.pf-drop-preview-more{padding:8px 12px;font-size:12px;color:var(--text-muted, #9ca3af);text-align:center}.pf-dup-modal{background:var(--bg-card, #fff);border-radius:16px;padding:28px;width:480px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;gap:16px;box-shadow:0 20px 60px #0000004d;border:1px solid var(--border-color, transparent)}.pf-dup-modal-header{display:flex;align-items:flex-start;gap:16px}.pf-dup-modal-icon{font-size:40px;flex-shrink:0;margin-top:2px}.pf-dup-modal-header h3{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--text-primary, #111827)}.pf-dup-modal-header p{margin:0;font-size:13px;color:var(--text-secondary, #6b7280);line-height:1.6}.pf-dup-tree-wrap{flex:1;overflow-y:auto;min-height:80px;max-height:320px;border:1px solid var(--border-color, #e5e7eb);border-radius:10px;background:var(--bg-secondary, #f9fafb);padding:8px 0}.pf-dup-tree-wrap::-webkit-scrollbar{width:5px}.pf-dup-tree-wrap::-webkit-scrollbar-thumb{background:var(--border-color, #e5e7eb);border-radius:3px}.pf-dup-folder-row{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--text-primary, #111827)}.pf-dup-folder-row:hover{background:var(--bg-hover, #f0f0f0)}.pf-dup-expand{font-size:11px;width:14px;color:var(--text-muted, #9ca3af);flex-shrink:0}.pf-dup-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-dup-file-row{display:flex;align-items:center;gap:6px;padding:5px 12px;font-size:12px;border-bottom:1px solid var(--border-light, #f0f0f0)}.pf-dup-file-row:last-child{border-bottom:none}.pf-dup-warn,.pf-dup-file-icon{font-size:13px;flex-shrink:0}.pf-dup-file-name{flex:1;font-weight:500;color:var(--text-primary, #374151);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-dup-version{display:inline-block;padding:1px 8px;border-radius:8px;background:#ef44441a;color:#dc2626;font-size:10px;font-weight:700;white-space:nowrap;flex-shrink:0}.pf-dup-summary{font-size:13px;color:var(--text-secondary, #6b7280);text-align:center;margin:0}.pf-dup-summary strong{color:var(--text-primary, #111827)}.pf-history-modal{background:var(--bg-card, #fff);border-radius:16px;width:680px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden;border:1px solid var(--border-color, transparent)}.pf-history-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.pf-history-header h3{margin:0 0 4px;font-size:18px}.pf-history-filename{margin:0;font-size:13px;opacity:.85}.pf-history-body{flex:1;overflow-y:auto;padding:16px;background:var(--bg-card, #fff)}.pf-history-loading,.pf-history-empty{text-align:center;padding:40px;color:var(--text-muted, #9ca3af)}.pf-history-table{width:100%;border-collapse:collapse;font-size:13px}.pf-history-table th{text-align:left;padding:10px 12px;background:var(--bg-secondary, #f9fafb);border-bottom:2px solid var(--border-color, #e5e7eb);font-weight:600;color:var(--text-secondary, #6b7280)}.pf-history-table td{padding:12px;border-bottom:1px solid var(--border-light, #f3f4f6);color:var(--text-primary, #374151)}.pf-history-latest{background:#22c55e0f!important}.pf-history-latest td{font-weight:600}.pf-history-date{font-family:monospace;font-size:12px;color:var(--text-secondary, #6b7280)}.pf-history-actions{display:flex;gap:4px}@media(max-width:640px){.project-folder-panel{width:100vw}.pf-history-modal,.pf-confirm-modal,.pf-dup-modal{width:95vw!important}}.pf-resize-handle{position:absolute;z-index:10}.pf-resize-e{right:0;top:6px;bottom:6px;width:5px;cursor:ew-resize}.pf-resize-w{left:0;top:6px;bottom:6px;width:5px;cursor:ew-resize}.pf-resize-s{bottom:0;left:6px;right:6px;height:5px;cursor:ns-resize}.pf-resize-n{top:0;left:6px;right:6px;height:5px;cursor:ns-resize}.pf-resize-se{right:0;bottom:0;width:10px;height:10px;cursor:nwse-resize}.pf-resize-sw{left:0;bottom:0;width:10px;height:10px;cursor:nesw-resize}.pf-resize-ne{right:0;top:0;width:10px;height:10px;cursor:nesw-resize}.pf-resize-nw{left:0;top:0;width:10px;height:10px;cursor:nwse-resize}.bulk-upload-modal{background:#fff;border-radius:16px;width:900px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000002e;overflow:hidden}.bulk-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px 16px;border-bottom:1px solid #f0f0f0}.bulk-modal-title{font-size:18px;font-weight:700;color:#111;margin:0}.bulk-modal-project{font-size:13px;color:#6b7280;margin:4px 0 0}.bulk-modal-close{width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;cursor:pointer;font-size:14px;color:#6b7280;transition:background .15s}.bulk-modal-close:hover{background:#e5e7eb}.bulk-tabs{display:flex;border-bottom:2px solid #e5e7eb;background:#f9fafb}.bulk-tab{flex:1;padding:12px 16px;border:none;background:transparent;font-size:14px;font-weight:600;color:#6b7280;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s}.bulk-tab:hover{color:#667eea;background:#f0f4ff}.bulk-tab.active{color:#667eea;border-bottom-color:#667eea;background:#fff}.bulk-steps{display:flex;gap:0;padding:12px 28px;background:#f9fafb;border-bottom:1px solid #f0f0f0}.bulk-step{flex:1;text-align:center;font-size:13px;color:#9ca3af;padding:6px 0;position:relative}.bulk-step.active{color:#667eea;font-weight:700}.bulk-step.done{color:#10b981}.bulk-step-body{padding:24px 28px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px}.bulk-template-box{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#f0f4ff;border:1px solid #c7d2fe;border-radius:12px}.bulk-template-icon{font-size:28px;flex-shrink:0}.bulk-template-title{font-size:14px;font-weight:600;color:#3730a3;margin:0}.bulk-template-desc{font-size:12px;color:#6366f1;margin:4px 0 0}.bulk-btn-template{margin-left:auto;flex-shrink:0;padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.bulk-btn-template:hover{background:#5a6fd6}.bulk-upload-zone{border:2px dashed #c7d2fe;border-radius:12px;padding:36px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.bulk-upload-zone:hover{border-color:#667eea;background:#f8f9ff}.bulk-upload-icon{font-size:32px;display:block;margin-bottom:8px}.bulk-upload-hint{font-size:14px;color:#374151;margin:0}.bulk-upload-ext{font-size:12px;color:#9ca3af;margin:4px 0 0}.bulk-upload-filename{font-size:14px;color:#10b981;font-weight:600;margin:0}.bulk-summary{display:flex;gap:12px}.bulk-summary-card{flex:1;text-align:center;padding:16px 12px;border-radius:10px;display:flex;flex-direction:column;gap:4px}.bulk-summary-card.total{background:#f3f4f6}.bulk-summary-card.success{background:#d1fae5}.bulk-summary-card.error{background:#fee2e2}.bulk-summary-card.ok{background:#d1fae5}.bulk-summary-num{font-size:28px;font-weight:800;color:#111}.bulk-summary-card.success .bulk-summary-num{color:#065f46}.bulk-summary-card.error .bulk-summary-num{color:#991b1b}.bulk-summary-label{font-size:12px;color:#6b7280}.bulk-error-notice{padding:12px 16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;font-size:13px;color:#92400e}.bulk-result-table-wrap{overflow:auto;flex:1;border:1px solid #e5e7eb;border-radius:10px}.bulk-result-table{width:100%;border-collapse:collapse;font-size:13px;min-width:800px}.bulk-result-table th{background:#f9fafb;padding:10px 12px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap;position:sticky;top:0}.bulk-result-table td{padding:8px 12px;border-bottom:1px solid #f3f4f6;vertical-align:top}.bulk-result-table tr:last-child td{border-bottom:none}.bulk-row-error td{background:#fff5f5}.bulk-col-row{width:40px;text-align:center;color:#9ca3af}.bulk-col-status{width:40px;text-align:center}.bulk-col-title{max-width:180px;font-weight:600}.bulk-col-errors{color:#dc2626;font-size:12px;min-width:180px}.bulk-error-msg{margin-bottom:2px}.bulk-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700}.bulk-badge.ok{background:#d1fae5;color:#065f46}.bulk-badge.err{background:#fee2e2;color:#991b1b}.bulk-done{align-items:center;justify-content:center;padding:60px 28px}.bulk-done-icon{font-size:64px}.bulk-done-title{font-size:20px;font-weight:700;color:#111;margin:12px 0 4px}.bulk-done-desc{font-size:14px;color:#6b7280;margin:0 0 24px}.bulk-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bulk-info-box{border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;background:#fafafa}.bulk-info-title{font-size:13px;font-weight:700;color:#374151;margin:0 0 4px}.bulk-info-desc{font-size:11px;color:#9ca3af;margin:0 0 8px}.bulk-info-tags{display:flex;flex-wrap:wrap;gap:5px}.bulk-member-tag{display:inline-block;padding:2px 8px;background:#ede9fe;color:#5b21b6;border-radius:10px;font-size:12px;font-weight:500}.bulk-info-cats{display:flex;flex-direction:column;gap:3px;max-height:120px;overflow-y:auto}.bulk-cat-item{font-size:12px;color:#374151;white-space:nowrap}.bulk-info-empty{font-size:12px;color:#9ca3af}.bulk-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:8px;border-top:1px solid #f0f0f0;margin-top:auto}.bulk-btn-cancel{padding:10px 20px;border:1px solid #e5e7eb;background:#fff;color:#374151;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s}.bulk-btn-cancel:hover{background:#f9fafb}.bulk-btn-primary{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.bulk-btn-primary:hover:not(:disabled){opacity:.9}.bulk-btn-primary:disabled{opacity:.5;cursor:not-allowed}.tpl-modal{background:#fff;border-radius:16px;width:90%;max-width:560px;max-height:88vh;overflow-y:auto;box-shadow:0 10px 40px #0003;animation:slideUp .25s ease}.tpl-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:2px solid #f1f5f9}.tpl-header h2{margin:0;font-size:18px;color:#1e293b}.tpl-toolbar{padding:12px 24px 0}.tpl-btn-create{padding:7px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;font-weight:600}.tpl-btn-create:hover{background:#5a67d8}.tpl-list{padding:12px 24px 20px;display:flex;flex-direction:column;gap:10px}.tpl-empty{text-align:center;padding:32px;color:#94a3b8;font-size:14px}.tpl-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fafafa;transition:box-shadow .15s}.tpl-item:hover{box-shadow:0 2px 8px #00000014}.tpl-item-info{flex:1;min-width:0}.tpl-item-name{font-size:15px;font-weight:700;color:#1e293b;margin-bottom:3px}.tpl-item-desc{font-size:12px;color:#64748b;margin-bottom:3px}.tpl-item-meta{font-size:11px;color:#94a3b8}.tpl-item-actions{display:flex;gap:6px;flex-shrink:0}.tpl-btn-use{padding:6px 14px;background:#10b981;color:#fff;border:none;border-radius:7px;font-size:13px;cursor:pointer;font-weight:600}.tpl-btn-use:hover{background:#059669}.tpl-btn-del{padding:6px 10px;background:#fee2e2;color:#ef4444;border:none;border-radius:7px;font-size:13px;cursor:pointer}.tpl-btn-del:hover{background:#fecaca}.tpl-form{padding:16px 24px 24px;display:flex;flex-direction:column;gap:14px}.tpl-form-group{display:flex;flex-direction:column;gap:5px}.tpl-form-group label{font-size:13px;font-weight:600;color:#475569}.tpl-form-group input,.tpl-form-group textarea,.tpl-form-group select{padding:8px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;background:#fff;outline:none;resize:vertical}.tpl-form-group input:focus,.tpl-form-group textarea:focus,.tpl-form-group select:focus{border-color:#667eea}.tpl-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.tpl-btn-cancel{padding:8px 18px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;cursor:pointer}.tpl-btn-cancel:hover{background:#e2e8f0}.tpl-btn-save{padding:8px 18px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;font-weight:600}.tpl-btn-save:hover{background:#5a67d8}@media(prefers-color-scheme:dark){.tpl-modal{background:#1e293b}.tpl-header{border-color:#334155}.tpl-header h2{color:#f1f5f9}.tpl-item{background:#0f172a;border-color:#334155}.tpl-item-name{color:#f1f5f9}.tpl-form-group input,.tpl-form-group textarea,.tpl-form-group select{background:#0f172a;color:#f1f5f9;border-color:#334155}.tpl-btn-cancel{background:#334155;color:#e2e8f0;border-color:#475569}}.tasks-layout{display:flex;background:#f5f7fa;height:calc(100vh - 118px)}.projects-sidebar{width:300px;background:#fff;border-right:1px solid #e1e8ed;padding:24px;overflow-y:auto;flex-shrink:0}.tasks-main{flex:1;padding:40px;overflow-y:auto}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid #ecf0f1}.sidebar-header h3{margin:0;font-size:18px;color:#2c3e50}.btn-clear-filter{width:28px;height:28px;border:none;background:#ecf0f1;border-radius:6px;font-size:14px;color:#7f8c8d;cursor:pointer;transition:all .3s ease}.btn-clear-filter:hover{background:#e74c3c;color:#fff}.projects-list{display:flex;flex-direction:column;gap:6px}.project-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.project-item:hover{background:#f8f9fa}.project-item.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent}.project-item.active .project-name-sidebar,.project-item.active .project-task-count{color:#fff}.project-item.active .project-icon{filter:brightness(0) invert(1)}.project-info{display:flex;align-items:center;gap:10px;flex:1}.project-icon{font-size:18px}.project-name-sidebar{font-size:14px;font-weight:600;color:#2c3e50}.project-task-count{font-size:13px;font-weight:600;color:#7f8c8d;background:#ecf0f1;padding:4px 10px;border-radius:12px}.project-item.active .project-task-count{background:#ffffff4d}.tasks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.header-left h1{margin:0 0 8px;font-size:32px;color:#2c3e50}.header-left p{margin:0;color:#7f8c8d;font-size:16px;display:flex;align-items:center;gap:8px}.selected-project-name{color:#667eea;font-weight:600}.task-count{color:#7f8c8d}.btn-back{padding:12px 24px;background:#fff;color:#2c3e50;border:2px solid #ecf0f1;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.btn-back:hover{border-color:#667eea;color:#667eea}.btn-calendar{padding:12px 20px;background:#fff;color:#2c3e50;border:2px solid #ecf0f1;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.btn-calendar:hover{border-color:#4285f4;color:#4285f4}.btn-search-trigger{position:relative;padding:10px 16px;background:#fff;color:#2c3e50;border:2px solid #ecf0f1;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-search-trigger:hover{border-color:#667eea;color:#667eea}.btn-search-trigger kbd{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;font-size:10px;padding:1px 5px;font-family:inherit;color:#9ca3af}.btn-notification{position:relative;padding:12px 20px;background:#fff;color:#2c3e50;border:2px solid #ecf0f1;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.btn-notification:hover{border-color:#f39c12;color:#f39c12}.notification-badge{position:absolute;top:-6px;right:-6px;background:#e74c3c;color:#fff;border-radius:50%;width:20px;height:20px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.btn-create{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .3s ease}.btn-create:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.tasks-filters{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:24px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d}.search-box{position:relative;flex:1;max-width:300px}.search-input{width:100%;padding:12px 0 12px 5px;border:2px solid #ecf0f1;border-radius:10px;font-size:14px;transition:all .3s ease}.search-input:focus{outline:none;border-color:#667eea}.search-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:18px;pointer-events:none}.quick-filter-select{padding:12px 16px;border:2px solid #ecf0f1;border-radius:10px;font-size:14px;font-weight:600;color:#2c3e50;cursor:pointer;transition:all .3s ease;background:#fff;min-width:150px}.quick-filter-select:focus{outline:none;border-color:#667eea}.quick-filter-select:hover{border-color:#667eea}.quick-filter-select:disabled{opacity:.5;cursor:not-allowed}.btn-advanced-filter{position:relative;padding:12px 24px;background:#fff;color:#667eea;border:2px solid #667eea;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.btn-advanced-filter:hover{background:#667eea;color:#fff}.btn-advanced-filter.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;animation:pulse-filter 2s ease-in-out infinite}@keyframes pulse-filter{0%,to{box-shadow:0 0 #667eea66}50%{box-shadow:0 0 0 8px #667eea00}}.filter-active-badge{width:8px;height:8px;border-radius:50%;background:#2ecc71;display:inline-block;animation:blink 1.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.btn-clear-advanced-filter{padding:12px 20px;background:#e74c3c;color:#fff;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-clear-advanced-filter:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c66}.filter-group{display:flex;align-items:center;gap:12px}.filter-group label{font-weight:600;color:#2c3e50}.filter-group select{padding:10px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:14px;cursor:pointer;transition:all .3s ease}.filter-group select:focus{outline:none;border-color:#667eea}.filter-buttons{display:flex;gap:8px}.filter-btn{padding:10px 20px;background:#fff;color:#7f8c8d;border:2px solid #ecf0f1;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.filter-btn:hover{border-color:#667eea;color:#667eea}.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.filter-btn:disabled{opacity:.5;cursor:not-allowed}.tasks-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow-x:auto;overflow-y:hidden}.tasks-table{width:100%;border-collapse:collapse}.tasks-table thead{background:#f8f9fa}.tasks-table th{padding:16px;text-align:left;font-weight:600;color:#2c3e50;font-size:14px;border-bottom:2px solid #ecf0f1;position:sticky;top:0;z-index:1;background:#f8f9fa}.tasks-table tbody tr{border-bottom:1px solid #ecf0f1;transition:all .3s ease}.tasks-table tbody tr:hover{background:#f8f9fa}.tasks-table td{padding:10px 16px;color:#2c3e50}.col-depth-spacer{padding:0!important;border:none!important;background:transparent!important}.col-check{width:20px;text-align:center}.col-title{min-width:250px}.col-status{width:100px}.col-priority{width:120px}.col-description{min-width:200px}.col-date{width:120px}.col-actions{width:100px}.task-title-cell{display:flex;flex-direction:column;gap:4px;max-width:340px;min-width:0}.task-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.task-title-cell.clickable{cursor:pointer;transition:color .3s ease}.task-title-cell.clickable:hover{color:#667eea}.project-name{font-size:12px;color:#7f8c8d}.status-cell{display:flex;align-items:center;gap:6px}.status-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;color:#fff}.confirmed-mini-badge{font-size:14px;cursor:help}.unconfirmed-mini-badge{font-size:14px;cursor:help;animation:pulse-pending 2s ease-in-out infinite}@keyframes pulse-pending{0%,to{opacity:1}50%{opacity:.5}}.priority-stars{display:flex;gap:2px}.star{font-size:18px}.star.filled{color:#f39c12}.star.empty{color:#ecf0f1}.description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-cell{display:flex;align-items:center;gap:6px;min-height:30px}.assignee-icon{font-size:16px}.assignees-list{display:flex;flex-wrap:nowrap;gap:4px;align-items:center}.assignee-tag{display:inline-flex;align-items:center;padding:3px 8px;background:var(--bg-card, white);color:#667eea;border:1.5px solid #667eea;border-radius:14px;font-size:12px;font-weight:600;white-space:nowrap;transition:all .3s ease}.assignee-tag:hover{background:#f0f4ff;border-color:#764ba2;color:#764ba2}.no-assignee{color:var(--text-secondary, #7f8c8d);font-style:italic;font-size:13px}.assignee-more{display:inline-flex;align-items:center;padding:4px 10px;background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280);border:2px solid var(--border-color, #e5e7eb);border-radius:16px;font-size:12px;font-weight:700;white-space:nowrap;cursor:default}.assignee-more:hover{background:var(--bg-hover, #e5e7eb);color:var(--text-primary, #374151)}.assignee-tooltip{position:fixed;background:var(--bg-tooltip, #1f2937);color:var(--text-tooltip, #fff);font-size:12px;font-weight:500;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:9999;transform:translate(-50%);box-shadow:0 4px 12px #00000040}.action-buttons{display:flex;gap:6px}.btn-edit-small,.btn-delete-small{padding:6px 10px;border:none;background:transparent;font-size:16px;cursor:pointer;border-radius:6px;transition:all .3s ease}.btn-edit-small:hover{background:#e8f5e9}.btn-delete-small:hover{background:#fee}.empty-state{text-align:center;padding:80px 40px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d}.empty-icon{font-size:64px;margin-bottom:20px}.empty-state h3{margin:0 0 12px;font-size:24px;color:#2c3e50}.empty-state p{margin:0 0 24px;color:#7f8c8d;font-size:16px}@media(max-width:1400px){.projects-sidebar{width:240px}}@media(max-width:1200px){.col-description{display:none}}@media(max-width:1024px){.projects-sidebar{display:none}.tasks-layout{height:auto}.tasks-main{padding:16px;overflow-y:visible}.tasks-filters{flex-wrap:wrap;padding:14px;gap:8px}.search-box{max-width:100%;order:1;width:100%}.quick-filter-select{order:2;flex:1}.filter-buttons{order:3;width:100%;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:768px){.col-date,.col-priority{display:none}.tasks-table-container{overflow-x:auto}.tasks-table{min-width:500px}.tasks-filters{padding:10px 12px;gap:6px}.filter-buttons{gap:4px}.filter-btn{padding:7px 12px;font-size:12px}.search-input{font-size:13px}}@media(max-width:480px){.tasks-main{padding:10px}.tasks-filters{padding:8px 10px}.tasks-table{min-width:400px}.col-assignee{display:none}.tasks-table th,.tasks-table td{padding:8px 10px;font-size:13px}}.btn-bulk-download{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-bulk-download:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-bulk-download:disabled{opacity:.7;cursor:not-allowed;transform:none}.category-row{background:#f8f9ff;border-top:2px solid #e8eaf6;-webkit-user-select:none;user-select:none}.category-row:hover{background:#f0f2ff}.category-row-child{background:#f5f3ff;border-top:1px solid #ddd6fe;border-bottom:1px solid #ddd6fe}.category-row-child:hover{background:#ede9fe}.category-child-indent{color:#a78bfa;font-size:12px;flex-shrink:0;margin-right:2px}.category-row-drag-over{background:#e0e7ff!important;outline:2px dashed #667eea;outline-offset:-2px}.category-row-cell{padding:0!important}.category-row-inner{display:flex;align-items:center;gap:6px;padding:8px 12px}.category-drag-handle{cursor:grab;color:#9ca3af;font-size:14px;flex-shrink:0}.category-collapse-btn{width:20px;height:20px;border:none;background:transparent;cursor:pointer;font-size:12px;color:#6b7280;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.category-collapse-btn:hover{background:#e5e7eb}.category-name{font-size:13px;font-weight:700;color:#4338ca;flex:1}.category-date-badge{font-size:11px;color:#6b7280;background:#f3f4f6;border-radius:10px;padding:1px 8px;flex-shrink:0;white-space:nowrap}.category-edit-form{display:flex;align-items:center;gap:6px;flex:1}.category-date-input{padding:2px 6px;border:1px solid #667eea;border-radius:6px;font-size:12px;outline:none;background:#fff;color:#111827;cursor:pointer}.category-date-sep{font-size:12px;color:#6b7280;flex-shrink:0}.category-task-count{font-size:11px;background:#e0e7ff;color:#4338ca;border-radius:10px;padding:1px 8px;font-weight:600;flex-shrink:0}.category-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.category-row:hover .category-actions{opacity:1}.category-btn-icon{width:24px;height:24px;border:none;background:transparent;border-radius:4px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s}.category-btn-icon:hover{background:#e5e7eb}.category-name-input{flex:1;padding:3px 8px;border:1px solid #667eea;border-radius:6px;font-size:13px;font-weight:600;outline:none;min-width:120px}.category-btn-confirm{padding:2px 8px;border:1px solid #16a34a;background:#dcfce7;color:#16a34a;border-radius:4px;font-size:12px;cursor:pointer}.category-btn-cancel{padding:2px 8px;border:1px solid #e5e7eb;background:transparent;color:#6b7280;border-radius:4px;font-size:12px;cursor:pointer}.category-empty-row td{padding:6px 12px 6px 56px!important;font-size:12px;color:#9ca3af;font-style:italic;background:#fafbff}.add-category-row td{padding:6px 12px!important;border-top:1px dashed #e5e7eb}.add-category-btn{border:none;background:transparent;color:#667eea;font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .1s}.add-category-btn:hover{background:#ede9fe}.add-category-inline{display:flex;align-items:center;gap:6px}.category-child-row td{overflow:hidden;max-height:200px;transition:max-height .2s ease-out,padding .2s ease-out,opacity .18s ease-out;opacity:1}.category-child-row.cat-closing td{max-height:0!important;padding-top:0!important;padding-bottom:0!important;border-top:none!important;border-bottom:none!important;opacity:0}.category-slide-content{overflow:hidden}.task-title-indented{padding-left:8px;border-left:3px solid #c7d2fe}.task-row[data-depth="2"] .task-title-indented{border-left-color:#a78bfa;padding-left:8px}.task-row[data-depth="2"]{background:#fdfcff}.task-row[data-depth="3"] .task-title-indented{border-left-color:#f472b6}.task-row[data-depth="4"] .task-title-indented{border-left-color:#fb923c}.task-row[data-depth="5"] .task-title-indented{border-left-color:#34d399}.task-row-labels{display:inline-flex;gap:4px;flex-wrap:nowrap;margin-left:6px;align-items:center}.task-row-label-chip{display:inline-block;padding:1px 7px;border-radius:10px;color:#fff;font-size:10px;font-weight:600;white-space:nowrap}.task-row-label-more{font-size:10px;color:#94a3b8}.task-recurrence-badge{margin-left:4px;font-size:12px}.user-management{background:#f5f7fa;padding:40px}.header-right{display:flex;gap:12px}.btn-back,.btn-create{padding:12px 24px;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-back{background:#fff;color:#7f8c8d;border:2px solid #ecf0f1}.btn-create{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-create:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.users-container{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.users-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #ecf0f1}.stat-item{display:flex;flex-direction:column;gap:8px}.stat-label{font-size:14px;color:#7f8c8d;font-weight:600}.stat-value{font-size:32px;font-weight:700;color:#2c3e50}.users-table-container{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th{text-align:left;padding:16px 12px;font-size:14px;font-weight:600;color:#7f8c8d;border-bottom:2px solid #ecf0f1;background:#f8f9fa}.users-table td{padding:20px 12px;border-bottom:1px solid #ecf0f1;font-size:15px;color:#2c3e50}.users-table tbody tr{transition:all .3s ease}.users-table tbody tr:hover{background:#f8f9fa}.username-cell{font-weight:600;color:#667eea}.btn-delete-user{padding:8px 16px;background:#e74c3c;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-delete-user:hover{background:#c0392b;transform:translateY(-2px)}.text-muted{color:#95a5a6;font-size:13px}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:999}.user-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;padding:32px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;z-index:1000}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.modal-header h2{margin:0;font-size:24px;color:#2c3e50}.btn-close{width:32px;height:32px;border:none;background:#ecf0f1;color:#7f8c8d;border-radius:8px;font-size:18px;cursor:pointer;transition:all .3s ease}.btn-close:hover{background:#bdc3c7}.user-form{display:flex;flex-direction:column;gap:20px}.form-group input,.form-group select{padding:12px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;transition:all .3s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.modal-actions{display:flex;gap:12px;margin-top:8px}.btn-delete-user{padding:5px 12px;background:#e74c3c;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:background .2s}.btn-delete-user:hover{background:#c0392b}.btn-reset-password{padding:5px 12px;background:#f39c12;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:background .2s;margin-right:6px}.btn-reset-password:hover{background:#d68910}@media(max-width:768px){.user-management{padding:20px}.page-header{flex-direction:column;gap:16px;align-items:flex-start}.users-stats{grid-template-columns:1fr}.users-table{font-size:13px}.users-table th,.users-table td{padding:12px 8px}}.calendar-sync-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.2px}.calendar-sync-badge.on{background:#d1fae5;color:#065f46}.calendar-sync-badge.off{background:#f3f4f6;color:#9ca3af}.profile-page{background:#f5f7fa;padding:40px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.header-left h1{margin:0 0 8px;font-size:36px;color:#2c3e50}.header-left p{margin:0;font-size:16px;color:#7f8c8d}.btn-back{padding:12px 24px;border:2px solid #ecf0f1;border-radius:10px;background:#fff;color:#7f8c8d;font-weight:600;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-back:hover{border-color:#bdc3c7}.profile-container{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.profile-section{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #ecf0f1}.section-header h2{margin:0;font-size:20px;color:#2c3e50}.btn-edit{padding:6px 12px;border:none;border-radius:6px;background:#667eea;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-edit:hover{background:#5568d3;transform:translateY(-1px)}.profile-info{display:flex;flex-direction:column;gap:20px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f8f9fa;border-radius:10px}.info-label{font-size:14px;font-weight:600;color:#7f8c8d}.info-value{font-size:15px;color:#2c3e50;font-weight:500}.role-badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600}.role-badge.admin{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.role-badge.manager{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.role-badge.user{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.profile-form,.password-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#2c3e50}.form-group input{padding:12px 16px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background:#f8f9fa;color:#95a5a6;cursor:not-allowed}.form-actions{display:flex;gap:12px;margin-top:8px}.btn-cancel,.btn-submit{flex:1;padding:14px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-cancel{background:#ecf0f1;color:#7f8c8d}.btn-cancel:hover{background:#bdc3c7}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.password-info{padding:20px;background:#f0f4ff;border-radius:10px;border-left:4px solid #667eea}.password-info p{margin:0;color:#5568d3;font-size:15px}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:#f5f7fa}.loading-spinner{width:50px;height:50px;border:4px solid #ecf0f1;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.loading-container p{margin-top:20px;color:#7f8c8d;font-size:16px}@media(max-width:768px){.profile-page{padding:20px}.page-header{flex-direction:column;gap:16px;align-items:flex-start}.profile-container{max-width:100%}.info-item{flex-direction:column;align-items:flex-start;gap:8px}}.email-notification-wrap{padding:4px 0}.email-notification-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.toggle-label{display:flex;align-items:flex-start;gap:14px;cursor:pointer;flex:1}.toggle-switch{width:44px;height:24px;border-radius:12px;background:#d1d5db;position:relative;flex-shrink:0;cursor:pointer;transition:background .2s;margin-top:2px}.toggle-switch.on{background:#667eea}.toggle-thumb{width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-thumb{left:23px}.toggle-text{display:flex;flex-direction:column;gap:3px}.toggle-title{font-size:14px;font-weight:600;color:#111827}.toggle-desc{font-size:12px;color:#6b7280;line-height:1.4}.toggle-status{font-size:12px;font-weight:700;padding:3px 10px;border-radius:12px;flex-shrink:0}.toggle-status.on{background:#d1fae5;color:#065f46}.toggle-status.off{background:#f3f4f6;color:#9ca3af}.email-notification-warn{margin-top:10px;font-size:12px;color:#ef4444;background:#fee2e2;border-radius:6px;padding:7px 12px}.token-intro{margin:0 0 20px;font-size:14px;color:#6b7280;line-height:1.6}.token-intro code{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:13px;color:#d97757}.token-form{margin-bottom:20px}.token-issued-banner{background:#fff8f4;border:2px solid #d97757;border-radius:12px;padding:18px 20px;margin-bottom:20px}.token-issued-title{font-weight:700;font-size:15px;color:#b34f1f;margin-bottom:6px}.token-issued-desc{font-size:13px;color:#6b665c;margin-bottom:12px;line-height:1.5}.token-issued-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}.token-plain{flex:1;background:#fff;border:1px solid #eae5d8;padding:10px 12px;border-radius:8px;font-family:Courier New,monospace;font-size:13px;color:#1f1d1a;word-break:break-all;line-height:1.4}.btn-copy{padding:10px 16px;border:none;border-radius:8px;background:#667eea;color:#fff;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-copy:hover{background:#5568d3}.btn-dismiss{width:100%;padding:10px;border:1px solid #d97757;border-radius:8px;background:#fff;color:#b34f1f;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s}.btn-dismiss:hover{background:#fff1e8}.token-empty{text-align:center;color:#968f80;font-style:italic;padding:24px 0;margin:0}.token-list{display:flex;flex-direction:column;gap:12px}.token-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:#f8f9fa;border:1px solid #ecf0f1;border-radius:10px;transition:border-color .15s}.token-item:hover{border-color:#bdc3c7}.token-info{flex:1;min-width:0}.token-name{font-size:14px;font-weight:600;color:#2c3e50;margin-bottom:4px;word-break:break-all}.token-meta{font-size:12px;color:#7f8c8d;line-height:1.5}.btn-delete-token{padding:6px 12px;border:1px solid #e74c3c;border-radius:6px;background:#fff;color:#e74c3c;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;transition:all .15s}.btn-delete-token:hover{background:#e74c3c;color:#fff}.ics-guide{margin-top:16px;padding:16px 18px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px}.ics-guide-title{font-size:14px;font-weight:700;color:#075985;margin-bottom:10px}.ics-guide-steps{margin:0 0 12px 18px;padding:0;font-size:13px;color:#1f2937;line-height:1.7}.ics-guide-steps li{margin-bottom:4px}.ics-guide-steps ul{margin:4px 0 4px 18px;padding:0}.ics-guide-steps ul li{font-size:12.5px;color:#4b5563}.ics-guide-warn{font-size:12px;background:#fff7ed;border-left:3px solid #f97316;padding:8px 12px;color:#7c2d12;border-radius:4px;line-height:1.5}.notif-loading{color:#9ca3af;font-size:14px;padding:12px 0}.notif-table-wrap{overflow-x:auto}.notif-table{width:100%;border-collapse:collapse;font-size:14px}.notif-table th{padding:8px 14px;text-align:left;font-size:12px;font-weight:700;color:#6b7280;background:#f9fafb;border-bottom:2px solid #ecf0f1}.notif-th-center{text-align:center!important}.notif-table td{padding:12px 14px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.notif-table tr:last-child td{border-bottom:none}.notif-table tr:hover td{background:#fafafa}.notif-label{font-weight:500;color:#2c3e50}.notif-td-center{text-align:center}.notif-td-center .toggle-switch{display:inline-block}.notif-empty{text-align:center;color:#9ca3af;padding:20px;font-style:italic}.token-issued-label{font-size:12px;font-weight:700;color:#6b665c;margin:8px 0 4px;letter-spacing:.3px;text-transform:uppercase}.token-issued-hint{font-size:12px;color:#6b665c;margin-top:-4px;margin-bottom:12px;line-height:1.5}.twofa-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:40px 16px;overflow-y:auto}.twofa-modal{background:#fff;border-radius:14px;box-shadow:0 12px 40px #00000040;width:100%;max-width:460px;padding:28px}.twofa-modal-title{margin:0 0 16px;font-size:20px;color:#2c3e50}.twofa-steps{margin:0 0 18px;padding-left:20px;color:#555;font-size:13.5px;line-height:1.7}.twofa-qr-box{display:flex;justify-content:center;padding:16px;background:#f8f9fa;border-radius:10px;margin-bottom:16px}.twofa-field-label{font-size:12px;font-weight:700;color:#6b665c;margin:12px 0 4px;letter-spacing:.3px;text-transform:uppercase}.twofa-secret{display:block;background:#f1f3f5;border-radius:8px;padding:10px 12px;font-size:15px;letter-spacing:1px;word-break:break-all;color:#2c3e50}.twofa-uri{display:block;background:#f1f3f5;border-radius:8px;padding:8px 12px;font-size:11px;word-break:break-all;color:#6b665c}.twofa-recovery{margin-top:16px;border-top:1px solid #ecf0f1;padding-top:14px}.twofa-recovery-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.twofa-recovery-actions{display:flex;gap:8px}.twofa-recovery-warn{font-size:12px;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:8px 10px;margin:8px 0 10px;line-height:1.5}.twofa-recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.twofa-recovery-code{background:#f1f3f5;border-radius:6px;padding:6px 8px;font-size:13px;text-align:center;color:#2c3e50;letter-spacing:.5px}.twofa-enable-form{margin-top:18px;border-top:1px solid #ecf0f1;padding-top:16px}.sm-field-error{display:block;margin-top:3px;font-size:12px;color:#ef4444}.schedule-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.schedule-modal{background:var(--bg-primary, #fff);border-radius:12px;width:460px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column}.schedule-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--border-color, #e5e7eb)}.schedule-modal-header h3{margin:0;font-size:16px;font-weight:600}.btn-close-modal{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-secondary, #6b7280);line-height:1;padding:2px 6px;border-radius:4px}.btn-close-modal:hover{background:var(--bg-hover, #f3f4f6)}.schedule-modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.sm-field{display:flex;flex-direction:column;gap:4px}.sm-field label{font-size:12px;font-weight:600;color:var(--text-secondary, #6b7280)}.sm-field input[type=text],.sm-field input[type=datetime-local],.sm-field input[type=date],.sm-field textarea,.sm-field select{padding:8px 10px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:14px;outline:none;background:var(--bg-primary, #fff);color:var(--text-primary, #111)}.sm-field input:focus,.sm-field textarea:focus,.sm-field select:focus{border-color:var(--primary-color, #3b82f6)}.sm-field textarea{resize:vertical}.sm-row{flex-direction:row!important;align-items:center;gap:10px}.sm-row label{margin:0}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-dot{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s}.color-dot:hover{transform:scale(1.15)}.color-dot.selected{border-color:var(--text-primary, #111);transform:scale(1.15)}.schedule-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-color, #e5e7eb)}.btn-delete-schedule{margin-right:auto;padding:8px 16px;border-radius:6px;border:none;cursor:pointer;font-size:14px;background:#fee2e2;color:#dc2626}.btn-delete-schedule:hover{background:#fecaca}.btn-cancel-schedule{padding:8px 16px;border-radius:6px;border:1px solid var(--border-color, #e5e7eb);background:none;cursor:pointer;font-size:14px;color:var(--text-primary, #374151)}.btn-save-schedule{padding:8px 20px;border-radius:6px;border:none;background:var(--primary-color, #3b82f6);color:#fff;cursor:pointer;font-size:14px;font-weight:600}.btn-save-schedule:hover{opacity:.9}.sm-recur-unit{font-size:13px;color:var(--text-secondary, #6b7280);flex-shrink:0}.sm-participants{gap:8px}.sm-part-loading{font-size:13px;color:var(--text-secondary, #9ca3af)}.sm-part-list{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;overflow:hidden}.sm-part-item{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;font-size:13px;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border-color, #f3f4f6)}.sm-part-item:last-child{border-bottom:none}.sm-part-name{font-weight:500;color:var(--text-primary, #111)}.sm-part-status{font-size:12px;font-weight:600}.sm-invite-row{display:flex;gap:6px;align-items:center}.sm-invite-select{flex:1;padding:7px 8px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:13px;background:var(--bg-primary, #fff);color:var(--text-primary, #111)}.sm-invite-btn{padding:7px 14px;border:none;border-radius:6px;background:var(--primary-color, #3b82f6);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.sm-invite-btn:disabled{opacity:.4;cursor:not-allowed}.sm-invite-btn:not(:disabled):hover{opacity:.85}.sm-rsvp-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sm-rsvp-label{font-size:12px;font-weight:600;color:var(--text-secondary, #6b7280)}.sm-rsvp-btn{padding:5px 12px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-primary, #374151);transition:all .15s}.sm-rsvp-btn:hover:not(:disabled){border-color:var(--primary-color, #3b82f6);color:var(--primary-color, #3b82f6)}.sm-rsvp-btn:disabled{opacity:.5;cursor:not-allowed}.calendar-page{display:flex;flex-direction:column;gap:16px;padding:24px;height:100%}.calendar-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.calendar-title{margin:0;font-size:20px;font-weight:700}.calendar-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:8px}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary, #6b7280)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%}.calendar-header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.btn-calendar-back{padding:8px 16px;background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #2c3e50);border:1px solid var(--border-color, #e1e4e8);border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;white-space:nowrap;transition:all .2s}.btn-calendar-back:hover{border-color:#667eea;color:#667eea}.btn-add-schedule{padding:8px 18px;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;white-space:nowrap}.btn-add-schedule:hover{opacity:.9}.calendar-loading{font-size:13px;color:var(--text-secondary, #9ca3af);padding:4px 0}.calendar-wrap{flex:1;background:var(--bg-primary, #fff);border-radius:12px;padding:16px;box-shadow:0 1px 4px #00000014;overflow:auto}.calendar-wrap .fc-toolbar-title{font-size:18px!important;font-weight:700}.calendar-wrap .fc-button{background:var(--bg-secondary, #f3f4f6)!important;border:1px solid var(--border-color, #e5e7eb)!important;color:var(--text-primary, #374151)!important;font-size:13px!important;box-shadow:none!important}.calendar-wrap .fc-button:hover{background:var(--bg-hover, #e5e7eb)!important}.calendar-wrap .fc-button-active,.calendar-wrap .fc-button-primary:not(:disabled).fc-button-active{background:var(--primary-color, #3b82f6)!important;color:#fff!important;border-color:var(--primary-color, #3b82f6)!important}.calendar-wrap .fc-today-button{background:var(--primary-color, #3b82f6)!important;color:#fff!important;border-color:var(--primary-color, #3b82f6)!important}.calendar-wrap .fc-daygrid-day.fc-day-today{background:#3b82f60f!important}.calendar-wrap .fc-event{cursor:pointer;font-size:12px;border-radius:4px!important;padding:1px 4px!important}.calendar-wrap .fc-event:hover{opacity:.85}.calendar-wrap .fc-col-header-cell{font-size:13px;font-weight:600}.calendar-wrap .fc-daygrid-day-number{font-size:13px}@media(max-width:768px){.calendar-page{padding:14px;gap:10px}.calendar-header{gap:8px}.calendar-legend{display:none}.calendar-wrap{padding:10px}.calendar-wrap .fc-toolbar{flex-wrap:wrap;gap:6px}.calendar-wrap .fc-toolbar-title{font-size:15px!important}.calendar-wrap .fc-button{font-size:12px!important;padding:4px 8px!important}.calendar-wrap .fc-col-header-cell{font-size:11px}}@media(max-width:480px){.calendar-page{padding:8px}.calendar-wrap{padding:6px}.calendar-wrap .fc-toolbar-title{font-size:13px!important}.calendar-wrap .fc-daygrid-day-number{font-size:11px}.calendar-wrap .fc-event{font-size:10px}}.gantt-page{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary, #f8f9fa);overflow:hidden}.gantt-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--bg-card, #ffffff);border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0;flex-wrap:wrap}.gantt-header-left{display:flex;align-items:center;gap:14px}.gantt-title{margin:0;font-size:18px;font-weight:700;white-space:nowrap}.gantt-project-select{padding:7px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:14px;min-width:200px;background:#fff;cursor:pointer}.gantt-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gantt-search{padding:7px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:13px;width:160px}.gantt-status-filter,.gantt-range-select{padding:7px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:13px;background:#fff;cursor:pointer}.gantt-back-btn{padding:7px 16px;background:#fff;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.gantt-back-btn:hover{border-color:#667eea;color:#667eea}.gantt-legend{display:flex;gap:16px;padding:8px 20px;background:var(--bg-card, #ffffff);border-bottom:1px solid var(--border-color, #e5e7eb);flex-shrink:0;flex-wrap:wrap}.gantt-legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary, #6b7280)}.gantt-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.gantt-legend-today{width:2px;height:14px;background:#ef4444;border-radius:1px;flex-shrink:0}.gantt-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary, #9ca3af);font-size:15px}.gantt-empty-icon{font-size:48px}.gantt-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:gantt-spin .7s linear infinite}@keyframes gantt-spin{to{transform:rotate(360deg)}}.gantt-body{flex:1;display:flex;overflow:hidden}.gantt-labels{width:220px;flex-shrink:0;background:var(--bg-card, #fff);border-right:2px solid var(--border-color, #e5e7eb);overflow-x:hidden;overflow-y:hidden;display:flex;flex-direction:column;z-index:2}.gantt-label-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:56px;flex-shrink:0;font-size:13px;font-weight:700;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);position:sticky;top:0;z-index:3}.gantt-labels-body{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.gantt-labels-body::-webkit-scrollbar{display:none}.gantt-label-count{font-size:11px;font-weight:500;color:#9ca3af;background:#f3f4f6;border-radius:10px;padding:1px 7px}.gantt-label-row{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:12px;border-bottom:1px solid var(--border-color, #f3f4f6);overflow:hidden;flex-shrink:0;cursor:default}.gantt-label-row-clickable{cursor:pointer}.gantt-label-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.gantt-label-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-priority{font-size:8px;flex-shrink:0}.gantt-scroll{flex:1;overflow-x:hidden;overflow-y:auto;cursor:grab;-webkit-user-select:none;user-select:none}.gantt-scroll.dragging{cursor:grabbing}.gantt-scroll::-webkit-scrollbar{width:8px}.gantt-scroll::-webkit-scrollbar-track{background:#f1f1f1}.gantt-scroll::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.gantt-month-row{position:sticky;top:0;z-index:4;height:28px;background:var(--bg-secondary, #f9fafb);border-bottom:1px solid var(--border-color, #e5e7eb)}.gantt-month-cell{position:absolute;top:0;height:100%;display:flex;align-items:center;padding-left:8px;font-size:11px;font-weight:700;color:var(--text-secondary, #374151);border-right:1px solid var(--border-color, #d1d5db);overflow:hidden;white-space:nowrap}.gantt-day-row{position:sticky;top:28px;z-index:4;height:28px;background:var(--bg-card, #ffffff);border-bottom:2px solid var(--border-color, #e5e7eb)}.gantt-day-cell{position:absolute;top:0;height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-secondary, #6b7280);border-right:1px solid var(--border-color, #f3f4f6);-webkit-user-select:none;user-select:none}.gantt-day-cell.weekend{color:#f87171;background:#fff5f5}.gantt-day-cell.today{color:#ef4444;font-weight:700;background:#fef2f2}.gantt-grid{position:relative;background:var(--bg-card, #ffffff)}.gantt-week-line{position:absolute;top:0;width:1px;background:var(--border-color, #e5e7eb);pointer-events:none}.gantt-weekend-bg{position:absolute;top:0;background:#f871710a;pointer-events:none}.gantt-today-line{position:absolute;top:0;width:2px;background:#ef4444;opacity:.7;pointer-events:none;z-index:3}.gantt-row-line{position:absolute;left:0;right:0;height:1px;background:var(--border-color, #f3f4f6);pointer-events:none}.gantt-bar{position:absolute;border-radius:5px;overflow:hidden;cursor:pointer;transition:filter .15s,transform .15s;display:flex;align-items:center;z-index:2;box-shadow:0 1px 3px #00000026}.gantt-bar:hover{filter:brightness(1.08);transform:scaleY(1.05);z-index:4}.gantt-bar-progress{position:absolute;top:0;left:0;height:100%;background:#ffffff40;pointer-events:none}.gantt-bar-label{position:relative;padding:0 6px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.3);pointer-events:none;z-index:1}.gantt-no-date{position:absolute;right:8px;font-size:10px;color:#9ca3af;height:24px;display:flex;align-items:center;pointer-events:none}@media(max-width:768px){.gantt-labels{width:160px}.gantt-label-title{font-size:11px}.gantt-project-select{min-width:140px;font-size:13px}.gantt-search{width:110px;font-size:12px}.gantt-legend{gap:10px;padding:6px 12px}}@media(max-width:480px){.gantt-labels{width:120px}.gantt-project-select{min-width:120px;font-size:12px}.gantt-search{display:none}.gantt-status-filter{font-size:12px}.gantt-legend-item{font-size:11px}}.gantt-label-category{background:#f0f2ff;border-top:1px solid #c7d2fe;border-bottom:1px solid #c7d2fe}.gantt-label-cat-icon{font-size:13px;flex-shrink:0}.gantt-label-cat-name{font-size:13px;font-weight:700;color:#4338ca;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-label-cat-date{font-size:10px;color:#6b7280;white-space:nowrap;flex-shrink:0}.gantt-label-indented{padding-left:14px;border-left:2px solid #c7d2fe}.gantt-cat-bar{position:absolute;border-radius:4px;background:linear-gradient(135deg,#6366f1,#8b5cf6);opacity:.85;display:flex;align-items:center;cursor:default;box-shadow:0 1px 4px #6366f166;border:1px solid rgba(99,102,241,.5)}.gantt-cat-bar-label{font-size:14px;font-weight:700;color:#fff;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.gantt-cat-row-line{background:#c7d2fe!important;height:1px!important}.stats-page{min-height:100vh;background:var(--bg-primary, #f8f9fa);padding:24px;box-sizing:border-box}.stats-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#9ca3af;font-size:15px}.stats-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.stats-title{margin:0;font-size:22px;font-weight:700}.stats-back-btn{padding:8px 18px;background:#fff;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.stats-back-btn:hover{border-color:#667eea;color:#667eea}.stats-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px}.stats-summary-card{background:#fff;border-radius:12px;padding:18px 16px;border-top:4px solid #667eea;box-shadow:0 1px 4px #00000012;display:flex;flex-direction:column;align-items:center;gap:4px}.summary-icon{font-size:22px}.summary-value{font-size:26px;font-weight:800;line-height:1.1}.summary-label{font-size:12px;color:#6b7280;font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.stats-card{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 4px #00000012}.stats-card-wide{grid-column:span 2}.stats-card-title{margin:0 0 16px;font-size:15px;font-weight:700;color:var(--text-primary, #111827)}.stats-empty{color:#9ca3af;font-size:13px;text-align:center;padding:24px 0}.donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.donut-empty{color:#9ca3af;font-size:13px}.donut-legend{display:flex;flex-direction:column;gap:8px}.donut-legend-item{display:flex;align-items:center;gap:7px;font-size:13px}.donut-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-count{margin-left:auto;font-weight:700;min-width:28px;text-align:right}.vbar-legend{display:flex;gap:16px;margin-bottom:12px}.vbar-legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#6b7280}.dot{display:inline-block;width:10px;height:10px;border-radius:2px}.dot.created{background:#bfdbfe}.dot.done{background:#10b981}.vbar-chart{display:flex;align-items:flex-end;gap:8px;height:160px;padding-bottom:24px;border-bottom:2px solid #f3f4f6;position:relative}.vbar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.vbar-bars{display:flex;align-items:flex-end;gap:3px;width:100%;height:calc(100% - 20px);justify-content:center}.vbar-bar{width:40%;border-radius:4px 4px 0 0;transition:height .5s ease;min-height:2px}.vbar-bar.created{background:#bfdbfe}.vbar-bar.done{background:#10b981}.vbar-label{font-size:11px;color:#9ca3af;text-align:center;position:absolute;bottom:2px}.hbar-chart{display:flex;flex-direction:column;gap:10px}.hbar-row{display:flex;align-items:center;gap:10px}.hbar-label{width:90px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;color:#374151}.hbar-track{flex:1;height:10px;background:#f3f4f6;border-radius:5px;overflow:hidden}.hbar-fill{height:100%;border-radius:5px;transition:width .5s ease}.hbar-value{font-size:12px;font-weight:700;min-width:28px;text-align:right}.user-stat-sort{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap}.sort-label{font-size:12px;color:#6b7280}.sort-btn{padding:4px 12px;border:1px solid #e5e7eb;border-radius:20px;font-size:12px;cursor:pointer;background:#fff;transition:all .15s}.sort-btn.active{background:#667eea;color:#fff;border-color:#667eea}.user-stat-table-wrap{overflow-x:auto}.user-stat-table{width:100%;border-collapse:collapse;font-size:13px}.user-stat-table th{padding:8px 10px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;border-bottom:2px solid #f3f4f6;white-space:nowrap}.user-stat-table td{padding:10px;border-bottom:1px solid #f9fafb;vertical-align:middle}.user-stat-table tr:hover td{background:#f9fafb}.user-name-cell{display:flex;align-items:center;gap:7px;font-weight:600}.user-rank{font-size:10px;color:#9ca3af;min-width:24px}.num{text-align:center;font-weight:600}.done-num{color:#10b981}.ip-num{color:#3b82f6}.overdue-num{color:#ef4444}.rate-bar-wrap{display:flex;align-items:center;gap:6px;min-width:100px}.rate-bar{height:6px;border-radius:3px;transition:width .5s;flex-shrink:0}.done-bar{background:#10b981}.delay-bar{background:#ef4444}.rate-text{font-size:11px;font-weight:700;color:#374151;white-space:nowrap}.mini-bar-wrap{height:6px;background:#f3f4f6;border-radius:3px;min-width:80px;overflow:hidden}.mini-bar{height:100%;background:#667eea;border-radius:3px;transition:width .5s}.project-stat-list{display:flex;flex-direction:column;gap:14px}.project-stat-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.project-stat-name{font-size:13px;font-weight:600;flex:1;min-width:120px}.project-stat-nums{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:3px}.sep{color:#d1d5db}.overdue-tag{background:#fee2e2;color:#ef4444;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;margin-left:4px}.project-stat-pct{font-size:13px;font-weight:700;min-width:40px;text-align:right}.project-stat-bar-track{height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden}.project-stat-bar-fill{height:100%;border-radius:4px;transition:width .6s ease}@media(max-width:768px){.stats-page{padding:14px}.stats-grid{grid-template-columns:1fr;gap:14px}.stats-card-wide{grid-column:span 1}.stats-summary-grid{grid-template-columns:repeat(2,1fr);gap:10px}.donut-wrap{flex-direction:column;align-items:flex-start}.user-stat-table-wrap{overflow-x:auto}.user-stat-table{min-width:600px}}@media(max-width:480px){.stats-page{padding:10px}.stats-summary-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stats-summary-card{padding:12px 10px}.summary-value{font-size:20px}.stats-card{padding:14px}}.syslog-page{min-height:100vh;background:var(--bg-primary, #f8f9fa);padding:24px;box-sizing:border-box}.syslog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.syslog-title{margin:0;font-size:22px;font-weight:700}.syslog-back-btn{padding:8px 18px;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.syslog-back-btn:hover{border-color:#667eea;color:#667eea}.syslog-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}.syslog-sum-card{background:#fff;border-radius:12px;padding:18px 16px;box-shadow:0 1px 4px #00000012;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.syslog-sum-users{align-items:flex-start;text-align:left}.syslog-sum-icon{font-size:22px}.syslog-sum-val{font-size:28px;font-weight:800;color:#111827}.syslog-sum-label{font-size:12px;color:#6b7280;font-weight:500}.syslog-top-user{display:flex;align-items:center;gap:6px;width:100%;margin-top:4px}.syslog-top-rank{font-size:10px;color:#9ca3af;min-width:20px}.syslog-top-name{font-size:13px;font-weight:600;flex:1}.syslog-top-cnt{font-size:12px;font-weight:700;color:#667eea}.syslog-filter-wrap{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 1px 4px #00000012}.syslog-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.syslog-quick-range{display:flex;gap:4px}.syslog-quick-btn{padding:6px 12px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:#374151;transition:all .15s}.syslog-quick-btn:hover{background:#667eea;color:#fff;border-color:#667eea}.syslog-range-sep{font-size:13px;color:#9ca3af;flex-shrink:0}.syslog-filter-input{padding:7px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;background:#fff;color:#111827;cursor:pointer}.syslog-filter-input:focus{outline:none;border-color:#667eea}.syslog-search-btn{padding:7px 18px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.syslog-search-btn:hover{background:#5568d3}.syslog-reset-btn{padding:7px 14px;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:13px;cursor:pointer;color:#6b7280;white-space:nowrap}.syslog-reset-btn:hover{background:#f3f4f6}.syslog-result-info{font-size:13px;color:#6b7280;margin-bottom:10px}.syslog-result-info strong{color:#111827}.syslog-table-wrap{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000012;overflow-x:auto;overflow-y:hidden;margin-bottom:16px}.syslog-loading,.syslog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 0;color:#9ca3af;font-size:14px}.syslog-empty span{font-size:36px}.syslog-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:syslog-spin .7s linear infinite}@keyframes syslog-spin{to{transform:rotate(360deg)}}.syslog-table{width:100%;border-collapse:collapse;font-size:13px}.syslog-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;background:#f9fafb;border-bottom:2px solid #e5e7eb;white-space:nowrap;position:sticky;top:0;z-index:1}.syslog-table td{padding:10px 14px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.syslog-table tr:hover td{background:#fafafa}.syslog-table tr:last-child td{border-bottom:none}.syslog-cell-time{font-size:12px;color:#6b7280;white-space:nowrap;font-family:monospace}.syslog-cell-user{display:flex;flex-direction:column;gap:1px}.syslog-user-name{font-weight:600;color:#111827}.syslog-user-id{font-size:11px;color:#9ca3af}.syslog-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:12px;border:1px solid;font-size:11px;font-weight:700;white-space:nowrap}.syslog-cell-desc{max-width:280px;color:#374151;line-height:1.4}.syslog-cell-val{font-size:12px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.syslog-cell-val.old{color:#ef4444}.syslog-cell-val.new{color:#10b981;font-weight:600}.syslog-cell-task{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.syslog-task-link{color:#667eea;cursor:pointer;font-weight:500}.syslog-task-link:hover{text-decoration:underline}.syslog-cell-project{font-size:12px;color:#6b7280;white-space:nowrap}.syslog-pagination{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.syslog-page-btn{width:34px;height:34px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;cursor:pointer;transition:all .15s;color:#374151}.syslog-page-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.syslog-page-btn.active{background:#667eea;color:#fff;border-color:#667eea;font-weight:700}.syslog-page-btn:disabled{opacity:.35;cursor:not-allowed}@media(max-width:768px){.syslog-page{padding:14px}.syslog-summary{grid-template-columns:repeat(2,1fr);gap:10px}.syslog-filter-row{flex-direction:column;align-items:flex-start}.syslog-quick-range{flex-wrap:wrap}.syslog-table-wrap{overflow-x:auto}.syslog-table{min-width:800px}}@media(max-width:480px){.syslog-page{padding:10px}.syslog-summary{grid-template-columns:1fr 1fr;gap:8px}.syslog-sum-card{padding:12px 10px}.syslog-sum-val{font-size:22px}.syslog-filter-input{font-size:12px;width:100%}.syslog-search-btn,.syslog-reset-btn{flex:1}}.auditlog-page{min-height:100vh;background:var(--bg-primary, #f8f9fa);padding:24px;box-sizing:border-box}.auditlog-forbidden{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:12px;color:#9ca3af}.auditlog-forbidden span{font-size:48px}.auditlog-forbidden p{font-size:16px}.auditlog-filter-wrap{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 1px 4px #00000012}.auditlog-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.auditlog-quick-range{display:flex;gap:4px}.auditlog-quick-btn{padding:6px 12px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:#374151;transition:all .15s}.auditlog-quick-btn:hover{background:#667eea;color:#fff;border-color:#667eea}.auditlog-range-sep{font-size:13px;color:#9ca3af;flex-shrink:0}.auditlog-filter-input{padding:7px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;background:#fff;color:#111827}.auditlog-filter-input:focus{outline:none;border-color:#667eea}.auditlog-search-btn{padding:7px 18px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}.auditlog-search-btn:hover{background:#5568d3}.auditlog-reset-btn{padding:7px 14px;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:13px;cursor:pointer;color:#6b7280;white-space:nowrap}.auditlog-reset-btn:hover{background:#f3f4f6}.auditlog-result-info{font-size:13px;color:#6b7280;margin-bottom:10px}.auditlog-result-info strong{color:#111827}.auditlog-table-wrap{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000012;overflow-x:auto;overflow-y:hidden;margin-bottom:16px}.auditlog-loading,.auditlog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 0;color:#9ca3af;font-size:14px}.auditlog-empty span{font-size:36px}.auditlog-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:auditlog-spin .7s linear infinite;display:inline-block}@keyframes auditlog-spin{to{transform:rotate(360deg)}}.auditlog-table{width:100%;border-collapse:collapse;font-size:13px}.auditlog-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;background:#f9fafb;border-bottom:2px solid #e5e7eb;white-space:nowrap;position:sticky;top:0;z-index:1}.auditlog-table td{padding:10px 14px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.auditlog-table tr:hover td{background:#fafafa}.auditlog-table tr:last-child td{border-bottom:none}.auditlog-cell-time{font-size:12px;color:#6b7280;white-space:nowrap;font-family:monospace}.auditlog-cell-actor{font-weight:600;color:#111827;white-space:nowrap}.auditlog-action-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:12px;border:1px solid;font-size:11px;font-weight:700;white-space:nowrap}.auditlog-cell-target{font-size:12px;color:#6b7280;white-space:nowrap}.auditlog-cell-id{font-size:12px;color:#9ca3af;font-family:monospace;white-space:nowrap}.auditlog-cell-detail{max-width:260px;color:#374151;line-height:1.4;word-break:break-word}.auditlog-cell-ip{font-size:12px;color:#9ca3af;font-family:monospace;white-space:nowrap}.auditlog-result-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700}.auditlog-result-badge.success{background:#d1fae5;color:#065f46}.auditlog-result-badge.fail{background:#fee2e2;color:#991b1b}.auditlog-pagination{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.auditlog-page-btn{width:34px;height:34px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;cursor:pointer;transition:all .15s;color:#374151}.auditlog-page-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.auditlog-page-btn.active{background:#667eea;color:#fff;border-color:#667eea;font-weight:700}.auditlog-page-btn:disabled{opacity:.35;cursor:not-allowed}@media(max-width:768px){.auditlog-page{padding:14px}.auditlog-filter-row{flex-direction:column;align-items:flex-start}.auditlog-quick-range{flex-wrap:wrap}.auditlog-table{min-width:700px}}@media(max-width:480px){.auditlog-page{padding:10px}.auditlog-filter-input{font-size:12px;width:100%}.auditlog-search-btn,.auditlog-reset-btn{flex:1}}.webhooks-page{min-height:100vh;background:var(--bg-primary, #f8f9fa);padding:24px;box-sizing:border-box}.webhooks-forbidden{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:12px;color:#9ca3af}.webhooks-forbidden span{font-size:48px}.webhooks-forbidden p{font-size:16px}.webhooks-loading,.webhooks-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 0;color:#9ca3af;font-size:14px}.webhooks-empty span{font-size:40px}.webhooks-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:wh-spin .7s linear infinite;display:inline-block}@keyframes wh-spin{to{transform:rotate(360deg)}}.webhooks-add-btn{padding:8px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.webhooks-add-btn:hover{background:#5568d3}.webhooks-table-wrap{background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000012;overflow-x:auto}.webhooks-table{width:100%;border-collapse:collapse;font-size:13px}.webhooks-table th{padding:10px 16px;text-align:left;font-size:11px;font-weight:700;color:#6b7280;background:#f9fafb;border-bottom:2px solid #e5e7eb;white-space:nowrap}.webhooks-table td{padding:12px 16px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.webhooks-table tr:hover td{background:#fafafa}.webhooks-table tr:last-child td{border-bottom:none}.webhooks-cell-url{font-family:monospace;font-size:12px;color:#374151;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webhooks-cell-desc{color:#6b7280;font-size:13px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webhooks-cell-events{max-width:240px}.webhooks-event-tag{display:inline-block;padding:2px 7px;margin:2px 3px 2px 0;background:#eff6ff;color:#3b82f6;border:1px solid #bfdbfe;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}.webhooks-event-all{font-size:12px;color:#9ca3af;font-style:italic}.webhooks-cell-actions{display:flex;gap:6px;white-space:nowrap}.webhooks-btn-edit{padding:5px 12px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:#374151;transition:all .15s}.webhooks-btn-edit:hover{border-color:#667eea;color:#667eea}.webhooks-btn-delete{padding:5px 12px;background:#fff;border:1px solid #fca5a5;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;color:#dc2626;transition:all .15s}.webhooks-btn-delete:hover{background:#fee2e2}.toggle-switch-sm{width:38px;height:20px;border-radius:10px;background:#d1d5db;position:relative;flex-shrink:0;cursor:pointer;transition:background .2s}.toggle-switch-sm.on{background:#667eea}.toggle-thumb-sm{width:14px;height:14px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px #0003}.toggle-switch-sm.on .toggle-thumb-sm{left:21px}.webhooks-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.webhooks-modal{background:var(--bg-primary, #fff);border-radius:12px;width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column}.webhooks-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--border-color, #e5e7eb)}.webhooks-modal-header h3{margin:0;font-size:16px;font-weight:600}.webhooks-modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:#6b7280;padding:2px 6px;border-radius:4px}.webhooks-modal-close:hover{background:#f3f4f6}.webhooks-modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.wh-field{display:flex;flex-direction:column;gap:5px}.wh-field label{font-size:12px;font-weight:600;color:#6b7280}.wh-field input[type=text],.wh-field input[type=url],.wh-field input[type=password]{padding:8px 10px;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;font-size:14px;background:var(--bg-primary, #fff);color:var(--text-primary, #111);outline:none}.wh-field input:focus{border-color:#667eea}.wh-field-error{font-size:12px;color:#ef4444}.wh-row{flex-direction:row!important;align-items:center;gap:10px}.wh-row label{margin:0}.wh-status-text{font-size:12px;font-weight:600}.wh-status-text.on{color:#065f46}.wh-status-text.off{color:#9ca3af}.wh-events-grid{display:flex;flex-wrap:wrap;gap:6px}.wh-event-chip{padding:5px 12px;border:1px solid #d1d5db;border-radius:16px;font-size:12px;font-weight:600;cursor:pointer;color:#6b7280;background:#fff;transition:all .15s;-webkit-user-select:none;user-select:none}.wh-event-chip:hover{border-color:#667eea;color:#667eea}.wh-event-chip.selected{background:#667eea;color:#fff;border-color:#667eea}.webhooks-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-color, #e5e7eb)}.wh-btn-cancel{padding:8px 20px;border:1px solid #d1d5db;border-radius:6px;background:none;font-size:14px;cursor:pointer;color:#374151}.wh-btn-save{padding:8px 24px;border:none;border-radius:6px;background:#667eea;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.wh-btn-save:hover:not(:disabled){background:#5568d3}.wh-btn-save:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.webhooks-page{padding:14px}.webhooks-table{min-width:600px}.webhooks-cell-url{max-width:160px}}@media(max-width:480px){.webhooks-page{padding:10px}.webhooks-modal{max-width:100vw;border-radius:12px 12px 0 0;margin-top:auto}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-box{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:50px;width:100%;max-width:450px;animation:slideUp .5s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:36px}.auth-header h1{margin:0;font-size:36px;color:#4a154b;font-weight:800}.auth-header p{margin:10px 0 0;font-size:18px;color:#7f8c8d}.auth-description{font-size:14px;color:#7f8c8d;line-height:1.7;margin-bottom:24px;text-align:center}.auth-form{margin-bottom:10px}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#2c3e50;font-size:14px}.form-group input{width:100%;padding:14px 18px;border:2px solid #ecf0f1;border-radius:10px;font-size:15px;transition:all .3s ease;font-family:inherit;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.form-group input:disabled{background:#f8f9fa;cursor:not-allowed}.btn-auth{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.btn-auth:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.btn-auth:active:not(:disabled){transform:translateY(0)}.btn-auth:disabled{opacity:.7;cursor:not-allowed;transform:none}.auth-success-message{text-align:center;padding:20px 0}.success-icon{font-size:48px;margin-bottom:16px;color:#667eea}.auth-success-message p{margin:0 0 8px;font-size:16px;font-weight:600;color:#2c3e50}.success-sub{font-size:14px!important;font-weight:400!important;color:#7f8c8d!important}.auth-footer{text-align:center;margin-top:28px;padding-top:24px;border-top:2px solid #ecf0f1}.auth-back-link{font-size:14px;color:#667eea;text-decoration:none;transition:color .2s ease}.auth-back-link:hover{color:#764ba2;text-decoration:underline}.reset-password-error{margin:6px 0 0;font-size:13px;color:#c33}@media(max-width:768px){.auth-box{padding:30px 25px}.auth-header h1{font-size:30px}.auth-header p{font-size:16px}}
