@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg-deep:#07070d;--bg-surface:#0c0c16;--bg-elevated:#112;--bg-card:#141428;--bg-hover:#1a1a30;--bg-input:#0a0a18;--border:hsla(0,0%,100%,.06);--border-hover:hsla(0,0%,100%,.12);--border-accent:rgba(139,92,246,.25);--accent:#7c3aed;--accent-glow:rgba(124,58,237,.25);--accent-light:#a78bfa;--blue:#3b82f6;--blue-glow:rgba(59,130,246,.25);--emerald:#10b981;--emerald-glow:rgba(16,185,129,.25);--amber:#f59e0b;--amber-glow:rgba(245,158,11,.25);--red:#ef4444;--red-glow:rgba(239,68,68,.25);--text:#f1f1f7;--text-secondary:#a0a0b8;--text-muted:#6b6b80;--text-dim:#44445a;--font:"Inter",-apple-system,sans-serif;--font-mono:"JetBrains Mono",monospace;--sidebar-w:250px;--header-h:60px;--radius:10px;--radius-sm:6px;--radius-lg:16px;--radius-full:9999px;--shadow:0 1px 3px rgba(0,0,0,.4);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-lg:0 8px 30px rgba(0,0,0,.6);--transition:0.15s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{overflow-x:hidden}body{background:var(--bg-deep);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:var(--sidebar-w);padding:calc(var(--header-h) + 24px) 32px 32px;min-height:100vh}.sidebar{width:var(--sidebar-w);height:100vh;position:fixed;top:0;left:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:50;padding:20px 12px;overflow-y:auto}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:4px 12px 24px;margin-bottom:8px;border-bottom:1px solid var(--border)}.sidebar-logo-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:rgba(124,58,237,.1);border:1px solid rgba(124,58,237,.2);display:flex;align-items:center;justify-content:center;color:var(--accent-light)}.sidebar-logo-text{font-size:1.1rem;font-weight:700;letter-spacing:.08em;color:var(--text)}.sidebar-section-title{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:16px 12px 6px}.sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:.88rem;font-weight:500;transition:all var(--transition)}.sidebar-link:hover{color:var(--text);background:var(--bg-hover)}.sidebar-link.active{color:var(--text);background:rgba(124,58,237,.12);border-left:2px solid var(--accent)}.sidebar-badge{margin-left:auto;font-size:.65rem;font-weight:600;padding:1px 7px;border-radius:var(--radius-full);background:hsla(0,0%,100%,.05);border:1px solid var(--border);color:var(--text-muted)}.sidebar-link.active .sidebar-badge{background:rgba(124,58,237,.2);border-color:rgba(124,58,237,.3);color:var(--accent-light)}.sidebar-projects-header{display:flex;align-items:center;justify-content:space-between;padding-right:4px}.sidebar-clear-filter{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:2px;display:flex;transition:color var(--transition)}.sidebar-clear-filter:hover{color:var(--red)}.sidebar-project-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);font-size:.84rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border:1px solid transparent;margin:1px 0}.sidebar-project-item:hover{color:var(--text);background:var(--bg-hover)}.sidebar-project-item.selected{background:hsla(0,0%,100%,.03);border-color:var(--accent)}.sidebar-project-dot{width:7px;height:7px;border-radius:var(--radius-full);flex-shrink:0;background:var(--accent)}.sidebar-project-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-project-pct{font-size:.72rem;color:var(--text-dim)}.sidebar-user{margin-top:auto;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;padding:16px 8px 0}.sidebar-user-avatar{width:34px;height:34px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent),var(--blue));display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.sidebar-user-name{font-size:.85rem;font-weight:600;color:var(--text)}.sidebar-user-role{font-size:.72rem;color:var(--text-muted)}.app-header{height:var(--header-h);position:fixed;top:0;left:var(--sidebar-w);right:0;background:rgba(7,7,13,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:40}.header-left h1{font-size:1.05rem;font-weight:600;color:var(--text)}.header-left span{font-size:.75rem;color:var(--text-muted);display:block;margin-top:1px}.header-right{display:flex;align-items:center;gap:12px}.header-search{position:relative}.header-search input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 14px 7px 34px;font-size:.85rem;font-family:var(--font);outline:none;width:200px;transition:all var(--transition)}.header-search input:focus{border-color:var(--border-accent);width:240px}.header-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.header-btn{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:all var(--transition)}.header-btn:hover{color:var(--text);border-color:var(--border-hover);background:var(--bg-hover)}.header-btn-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:var(--radius-full);background:var(--accent);border:2px solid var(--bg-deep)}.header-divider{width:1px;height:22px;background:var(--border)}.header-new-btn{font-size:.82rem;padding:7px 14px}.notif-dropdown{position:absolute;top:42px;right:0;width:300px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-lg);z-index:60}.notif-header{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:10px;padding-bottom:8px}.notif-header,.notif-item{border-bottom:1px solid var(--border)}.notif-item{padding:8px 0}.notif-item:last-child{border-bottom:none}.notif-text{font-size:.8rem;color:var(--text-secondary);display:block}.notif-time{font-size:.7rem;color:var(--text-dim);margin-top:2px;display:block}.notif-all{background:none;border:none;color:var(--accent);font-size:.78rem;cursor:pointer;width:100%;padding:8px 0 4px;text-align:center;transition:color var(--transition)}.notif-all:hover{color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition)}.card:hover{border-color:var(--border-hover)}.card-header{padding:18px 20px 0;display:flex;align-items:center;justify-content:space-between}.card-header h3{font-size:.92rem;font-weight:600;color:var(--text)}.card-body{padding:18px 20px 20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--font);font-size:.88rem;font-weight:600;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--transition);text-decoration:none}.btn-primary{background:var(--accent);color:#fff;border-color:hsla(0,0%,100%,.08)}.btn-primary:hover{background:#6d28d9;box-shadow:0 0 16px var(--accent-glow)}.btn-secondary{background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{color:var(--text);border-color:var(--border-hover)}.btn-danger{background:rgba(239,68,68,.1);color:var(--red);border-color:rgba(239,68,68,.2)}.btn-danger:hover{background:rgba(239,68,68,.2)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.form-group label{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.9rem;padding:10px 14px;outline:none;transition:all var(--transition)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-textarea{resize:vertical;min-height:70px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b6b80' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px;padding-right:36px}.badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:var(--radius-full);border:1px solid transparent}.badge-todo{background:hsla(0,0%,100%,.03);color:var(--text-muted);border-color:hsla(0,0%,100%,.06)}.badge-in-progress{background:rgba(245,158,11,.08);color:var(--amber);border-color:rgba(245,158,11,.15)}.badge-in-review{background:rgba(59,130,246,.08);color:var(--blue);border-color:rgba(59,130,246,.15)}.badge-done{background:rgba(16,185,129,.08);color:var(--emerald);border-color:rgba(16,185,129,.15)}.badge-high{background:rgba(239,68,68,.08);color:var(--red);border-color:rgba(239,68,68,.15)}.badge-medium{background:rgba(245,158,11,.08);color:var(--amber);border-color:rgba(245,158,11,.15)}.badge-low{background:rgba(59,130,246,.08);color:var(--blue);border-color:rgba(59,130,246,.15)}.dashboard-grid{display:grid;grid-gap:20px;gap:20px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.stat-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.stat-label{font-size:.74rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-icon{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.stat-number{font-size:1.8rem;font-weight:700;color:var(--text);font-family:var(--font)}.stat-footnote{font-size:.72rem;color:var(--text-dim);margin-top:2px}.charts-grid{display:grid;grid-template-columns:1fr 1.3fr;grid-gap:20px;gap:20px}.bottom-grid{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:20px;gap:20px}.kanban-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;height:calc(100vh - var(--header-h) - 80px)}.kanban-col{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.kanban-col-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.kanban-col-title{display:flex;align-items:center;gap:8px}.kanban-count{font-size:.74rem;color:var(--text-muted);background:hsla(0,0%,100%,.04);border:1px solid var(--border);padding:1px 7px;border-radius:var(--radius-full)}.kanban-add-btn{width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.kanban-add-btn:hover{color:var(--text);border-color:var(--border-hover);background:var(--bg-hover)}.kanban-list{flex:1 1;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.kanban-card{padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;transition:all var(--transition)}.kanban-card:active{cursor:-webkit-grabbing;cursor:grabbing;opacity:.7}.kanban-card:hover{border-color:var(--border-hover);background:var(--bg-hover)}.kanban-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.kanban-proj{font-size:.7rem;font-weight:600}.kanban-priority-dot{width:7px;height:7px;border-radius:var(--radius-full)}.kanban-priority-dot.high{background:var(--red)}.kanban-priority-dot.medium{background:var(--amber)}.kanban-priority-dot.low{background:var(--blue)}.kanban-card-title{font-size:.84rem;font-weight:600;color:var(--text);margin-bottom:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kanban-card-bottom{display:flex;align-items:center;justify-content:space-between}.kanban-date{gap:4px;font-size:.72rem;color:var(--text-dim)}.kanban-avatar,.kanban-date{display:flex;align-items:center}.kanban-avatar{width:22px;height:22px;border-radius:var(--radius-full);justify-content:center;font-size:.6rem;font-weight:600;color:#fff;border:1px solid hsla(0,0%,100%,.06)}.kanban-quick-actions{position:absolute;top:8px;right:8px;display:flex;gap:3px;opacity:0;transition:opacity var(--transition)}.kanban-card:hover .kanban-quick-actions{opacity:1}.kanban-qaction{width:18px;height:18px;border-radius:4px;background:rgba(0,0,0,.6);border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.kanban-qaction:hover{background:var(--accent);border-color:var(--accent);color:#fff}.kanban-empty{display:flex;align-items:center;justify-content:center;height:60px;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-size:.78rem}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.task-table{width:100%;border-collapse:collapse;font-size:.88rem}.task-table th{background:hsla(0,0%,100%,.02);color:var(--text-muted);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;padding:14px 20px;text-align:left}.task-table td,.task-table th{border-bottom:1px solid var(--border)}.task-table td{padding:12px 20px;color:var(--text-secondary)}.task-table tr:last-child td{border-bottom:none}.task-table tr{transition:background var(--transition);cursor:pointer}.task-table tr:hover{background:hsla(0,0%,100%,.015)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);overflow:hidden}.modal.wide{max-width:920px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.1rem;font-weight:700;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:4px;border-radius:4px;transition:all var(--transition)}.modal-close:hover{color:var(--text);background:var(--bg-hover)}.modal-body{padding:24px;overflow-y:auto;max-height:580px}.modal-grid{display:grid;grid-template-columns:1fr}.modal.wide .modal-grid{grid-template-columns:1.1fr 1fr;max-height:580px}.modal-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:20px;margin-top:24px}.modal-actions-right{display:flex;gap:10px;margin-left:auto}.modal-side{background:rgba(0,0,0,.2);border-left:1px solid var(--border);padding:24px;display:flex;flex-direction:column;gap:20px;overflow-y:auto;max-height:580px}.modal-block{background:hsla(0,0%,100%,.015);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.modal-block-title{font-size:.85rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:7px;margin-bottom:14px}.subtask-progress{margin-bottom:14px}.subtask-progress-track{height:4px;background:hsla(0,0%,100%,.04);border-radius:var(--radius-full);overflow:hidden;margin-bottom:4px}.subtask-progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-full);transition:width .3s ease}.subtask-progress-label{font-size:.7rem;color:var(--text-dim);text-align:right}.subtask-list{list-style:none;display:flex;flex-direction:column;gap:6px;max-height:130px;overflow-y:auto;margin-bottom:10px}.subtask-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--radius-sm);background:hsla(0,0%,100%,.01)}.subtask-toggle{background:none;border:none;cursor:pointer;color:var(--text-dim);display:flex;padding:2px}.subtask-title{font-size:.78rem;color:var(--text-secondary);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtask-title.done{text-decoration:line-through;color:var(--text-dim)}.subtask-del{background:none;border:none;color:var(--text-dim);cursor:pointer;opacity:0;padding:2px;transition:all var(--transition)}.subtask-item:hover .subtask-del{opacity:1;color:var(--red)}.subtask-add{display:flex;gap:6px}.subtask-add input{flex:1 1;padding:6px 10px;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);outline:none}.subtask-add input:focus{border-color:var(--border-accent)}.subtask-add-btn{width:30px;height:30px;border-radius:var(--radius-sm);background:rgba(124,58,237,.1);border:1px solid rgba(124,58,237,.2);color:var(--accent-light);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.subtask-add-btn:hover{background:var(--accent);color:#fff}.comment-list{max-height:160px;overflow-y:auto;margin-bottom:10px}.comment-empty{font-size:.76rem;color:var(--text-dim);text-align:center;padding:16px 0}.comment-item{padding:8px 0;border-bottom:1px solid var(--border)}.comment-item:last-child{border-bottom:none}.comment-meta{display:flex;justify-content:space-between;font-size:.7rem;margin-bottom:3px}.comment-author{font-weight:600;color:var(--text-secondary)}.comment-time{color:var(--text-dim)}.comment-text{font-size:.78rem;color:var(--text-secondary);line-height:1.4;background:hsla(0,0%,100%,.015);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px}.comment-add{display:flex;gap:6px}.comment-add input{flex:1 1;padding:6px 10px;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);outline:none}.comment-add input:focus{border-color:var(--border-accent)}.comment-send{width:30px;height:30px;border-radius:var(--radius-sm);background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);color:var(--blue);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.comment-send:hover{background:var(--blue);color:#fff}.calendar-header{justify-content:space-between;margin-bottom:20px}.calendar-header,.calendar-nav{display:flex;align-items:center}.calendar-nav{gap:12px}.calendar-nav h2{font-size:1.15rem;font-weight:600;min-width:180px;text-align:center}.calendar-nav-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.calendar-nav-btn:hover{color:var(--text);border-color:var(--border-hover);background:var(--bg-hover)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.calendar-day-header{background:var(--bg-surface);padding:10px;text-align:center;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.calendar-day{background:var(--bg-card);min-height:90px;padding:6px;display:flex;flex-direction:column;gap:2px}.calendar-day.other-month{background:rgba(0,0,0,.2)}.calendar-day.today{outline:1px solid var(--accent)}.calendar-day-number{font-size:.75rem;font-weight:600;color:var(--text-dim);margin-bottom:2px}.calendar-day.today .calendar-day-number{color:var(--accent-light)}.calendar-pill{font-size:.62rem;padding:1px 5px;border-radius:3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:opacity var(--transition)}.calendar-pill:hover{opacity:.8}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.card:hover .member-delete-btn{opacity:1!important}.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all var(--transition)}.team-card:hover{border-color:var(--border-hover)}.team-card-top{gap:14px;margin-bottom:16px}.team-avatar,.team-card-top{display:flex;align-items:center}.team-avatar{width:44px;height:44px;border-radius:var(--radius-full);justify-content:center;font-size:.9rem;font-weight:700;color:#fff;flex-shrink:0}.team-name{font-size:.95rem;font-weight:600;color:var(--text)}.team-role{font-size:.78rem;color:var(--text-muted)}.team-email{font-size:.78rem;color:var(--text-dim);display:flex;align-items:center;gap:5px;margin-bottom:12px}.team-stats{display:flex;gap:16px;padding-top:12px;border-top:1px solid var(--border)}.team-stat{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted)}.team-status{margin-left:auto;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.team-status.active{color:var(--emerald)}.team-status.offline{color:var(--text-dim)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:16px;gap:16px}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:2px}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mb-30{margin-bottom:30px}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.w-full{width:100%}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.anim-fade-up{animation:fadeUp .25s ease forwards}.anim-fade-in{animation:fadeIn .2s ease forwards}.error-msg{display:flex;align-items:center;gap:8px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.15);color:var(--red);padding:10px 14px;border-radius:var(--radius-sm);font-size:.84rem;margin-bottom:18px}.task-filter-toolbar{display:flex;align-items:center;justify-content:space-between}.sidebar-backdrop{display:none}@media (max-width:1024px){:root{--header-h:56px}.sidebar{width:260px;transform:translateX(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:60}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:55;animation:fadeIn .2s ease}.sidebar-close-mobile{display:flex!important}.main-content{margin-left:0;padding:calc(var(--header-h) + 16px) 16px 24px}.app-header{left:0;padding:0 16px}.header-left h1{font-size:.95rem}.header-left span{display:none}.hamburger-btn{display:flex!important}.header-search{display:none}.header-search.mobile-visible{display:block;position:absolute;top:56px;left:0;right:0;padding:8px 16px;background:var(--bg-deep);border-bottom:1px solid var(--border);z-index:39}.header-search.mobile-visible input{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px}.stat-number{font-size:1.4rem}.bottom-grid,.charts-grid,.dashboard-bottom-grid{grid-template-columns:1fr!important}.kanban-grid,.task-filters-grid{grid-template-columns:repeat(2,1fr)!important}.kanban-grid{height:auto!important}.kanban-col{height:300px}.calendar-grid{grid-template-columns:repeat(7,1fr);font-size:.72rem}.calendar-day{min-height:60px;padding:3px}.calendar-day-number{font-size:.68rem}.calendar-pill{font-size:.55rem;padding:0 3px}.calendar-nav h2{font-size:.95rem;min-width:140px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important}.team-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important}.task-filter-toolbar{flex-direction:column;align-items:stretch!important;gap:12px}.task-filter-toolbar>div:first-child{width:100%!important}.gantt-scale-toggle{flex-wrap:wrap}.modal{margin:0 8px;max-height:90vh;overflow-y:auto}.modal,.modal.wide{max-width:100%!important}.modal.wide .modal-grid{grid-template-columns:1fr!important}.modal-body{padding:16px;max-height:none}.modal-header{padding:14px 16px}.modal-header h2{font-size:1rem}.modal-side{border-left:none;border-top:1px solid var(--border);max-height:none;padding:16px}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions-right{width:100%;margin-left:0}.modal-actions-right .btn{flex:1 1}.card .flex.items-center.justify-between{flex-wrap:wrap;gap:12px}.projects-filter-row{flex-direction:column;align-items:stretch!important}.projects-filter-row>div:first-child{max-width:100%!important}}@media (max-width:640px){.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px}.stat-card{padding:14px}.stat-number{font-size:1.2rem}.kanban-grid,.task-filters-grid{grid-template-columns:1fr!important}.kanban-col{height:260px}.projects-grid{grid-template-columns:1fr!important}.projects-grid .card{height:auto!important;min-height:260px}.project-detail-stats{flex-direction:column;gap:4px!important}.team-grid{grid-template-columns:1fr!important}.calendar-day-header{font-size:.6rem;padding:6px 2px}.calendar-day{min-height:40px;padding:2px}.calendar-day-number{font-size:.6rem}.calendar-pill{display:none}.calendar-nav h2{font-size:.85rem;min-width:120px}.calendar-nav-header{flex-wrap:wrap;gap:12px}.calendar-page .card:nth-child(2){overflow-x:auto}.notif-dropdown{left:16px;right:16px;width:auto!important}.table-wrap{overflow-x:auto}.task-table{font-size:.78rem}.task-table td,.task-table th{padding:8px 12px!important;white-space:nowrap}.team-card{padding:16px}.team-card-top{flex-direction:column;text-align:center}.login-card{padding:24px!important}.btn span{display:none}.btn{padding:8px 12px}.header-right{gap:6px}.header-divider,.header-right div[style*="color: var(--emerald)"] span{display:none}}@media (min-width:1025px){.hamburger-btn,.sidebar-close-mobile{display:none!important}}