@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--border-color:#e2e8f0;--border-focus:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-color:#0d9488;--accent-hover:#0f766e;--accent-light:#f0fdfa;--cyan-color:#0284c7;--cyan-light:#f0f9ff;--status-completed-bg:#f0fdf4;--status-completed-text:#166534;--status-completed-border:#bbf7d0;--status-progress-bg:#fffbeb;--status-progress-text:#854d0e;--status-progress-border:#fde68a;--status-blocked-bg:#fff1f2;--status-blocked-text:#9f1239;--status-blocked-border:#fecdd3;--status-todo-bg:#f8fafc;--status-todo-text:#334155;--status-todo-border:#e2e8f0;--status-overdue-bg:#fef2f2;--status-overdue-text:#991b1b;--status-overdue-border:#fee2e2;--priority-high-bg:#fef2f2;--priority-high-text:#b91c1c;--priority-medium-bg:#fff7ed;--priority-medium-text:#c2410c;--priority-low-bg:#f0fdf4;--priority-low-text:#15803d;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -4px #0000000d;--shadow-inset:inset 0 2px 4px 0 #0000000d;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-title:"Outfit", "Inter", system-ui, sans-serif;--transition-fast:.15s ease;--transition-normal:.25s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.app-container{flex-direction:column;min-height:100vh;display:flex}.navbar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:100;height:70px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:.75rem;display:flex}.brand-logo{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent-color), var(--cyan-color));color:#fff;width:36px;height:36px;font-weight:700;font-family:var(--font-title);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.brand-name{font-family:var(--font-title);background:linear-gradient(to right, var(--text-primary), var(--accent-color));-webkit-text-fill-color:transparent;letter-spacing:-.025em;-webkit-background-clip:text;font-size:1.25rem;font-weight:700}.nav-tabs{align-items:center;gap:.5rem;height:100%;display:flex}.nav-tab{height:100%;font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;align-items:center;gap:.5rem;padding:0 1.25rem;font-size:.925rem;font-weight:500;display:flex;position:relative}.nav-tab:hover{color:var(--accent-color)}.nav-tab:after{content:"";background-color:var(--accent-color);transform-origin:bottom;width:100%;height:3px;transition:transform var(--transition-fast) ease-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-tab.active{color:var(--accent-color);font-weight:600}.nav-tab.active:after{transform:scaleX(1)}.right-section{align-items:center;gap:1rem;display:flex}.profile-pill{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-pill);color:var(--text-primary);box-shadow:var(--shadow-sm);align-items:center;gap:.75rem;padding:.375rem .875rem;font-size:.875rem;font-weight:500;display:flex}.avatar{background-color:var(--accent-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:600;display:flex}.role-tag{background-color:var(--accent-color);color:#fff;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.role-tag.admin{background:linear-gradient(135deg,#0d9488,#0284c7)}.role-tag.pm{background:#64748b}.main-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.page-title-section h1{font-family:var(--font-title);color:var(--text-primary);letter-spacing:-.02em;margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.page-title-section p{color:var(--text-secondary);font-size:.95rem}.btn{font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);box-shadow:var(--shadow-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--accent-color);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover{background-color:#dc2626}.btn-icon{border-radius:var(--radius-sm);box-shadow:none;padding:.5rem}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1.5rem;overflow:hidden}.card-header{border-bottom:1px solid var(--border-color);background-color:#fafbfc;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.card-title{font-family:var(--font-title);color:var(--text-primary);font-size:1.1rem;font-weight:600}.card-body{padding:1.5rem}.dashboard-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon-wrapper{border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-info{flex-direction:column;display:flex}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.85rem;font-weight:500}.stat-value{font-family:var(--font-title);color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1.1}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1.5rem;display:grid}.project-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);min-height:220px;transition:transform var(--transition-fast), border-color var(--transition-fast);flex-direction:column;justify-content:space-between;padding:1.5rem;display:flex}.project-card:hover{border-color:var(--accent-color);transform:translateY(-2px)}.project-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.project-title{font-family:var(--font-title);color:var(--text-primary);font-size:1.2rem;font-weight:600;text-decoration:none}.project-desc{color:var(--text-secondary);flex:1;margin-bottom:1.5rem;font-size:.875rem;line-height:1.45}.project-progress-container{margin-top:auto}.progress-header{color:var(--text-secondary);justify-content:space-between;margin-bottom:.375rem;font-size:.75rem;font-weight:600;display:flex}.progress-bar-bg{background-color:var(--bg-tertiary);border-radius:var(--radius-pill);width:100%;height:6px;margin-bottom:.75rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent-color), var(--cyan-color));border-radius:var(--radius-pill);height:100%;transition:width .4s}.project-pm-section{border-top:1px solid var(--border-color);color:var(--text-secondary);justify-content:space-between;align-items:center;padding-top:.75rem;font-size:.8rem;display:flex}.project-pm-info{align-items:center;gap:.375rem;font-weight:500;display:flex}.timeline-container{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1.5rem;overflow-x:auto}.timeline-header{border-bottom:1px solid var(--border-color);color:var(--text-secondary);text-align:center;background-color:#fafbfc;grid-template-columns:240px repeat(4,1fr);font-size:.875rem;font-weight:600;display:grid;position:sticky;top:0}.timeline-header-cell{border-right:1px solid var(--border-color);flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex}.timeline-header-cell:last-child{border-right:none}.horizon-title{font-family:var(--font-title);color:var(--text-primary);margin-bottom:.125rem;font-size:1rem;font-weight:700}.horizon-subtitle{color:var(--text-muted);font-size:.75rem}.timeline-project-row{border-bottom:1px solid var(--border-color);flex-direction:column;display:flex}.timeline-project-row:last-child{border-bottom:none}.timeline-project-title-bar{background-color:var(--bg-tertiary);font-family:var(--font-title);color:var(--text-primary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:.625rem 1.25rem;font-size:.95rem;font-weight:600;display:flex}.timeline-grid{grid-template-columns:240px repeat(4,1fr);min-height:80px;display:grid}.timeline-pm-cell{border-right:1px solid var(--border-color);flex-direction:column;justify-content:center;padding:1rem 1.25rem;font-size:.85rem;display:flex}.timeline-horizon-cell{border-right:1px solid var(--border-color);background-image:linear-gradient(to right, var(--bg-primary) 1px, transparent 1px);background-size:20px 100%;flex-direction:column;gap:.625rem;padding:.75rem;display:flex}.timeline-horizon-cell:last-child{border-right:none}.timeline-task-bar{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);flex-direction:column;gap:.375rem;padding:.625rem .875rem;font-size:.8rem;display:flex;position:relative}.timeline-task-bar:hover{box-shadow:var(--shadow-md);border-color:var(--accent-color);transform:translateY(-1px)}.timeline-task-header{color:var(--text-primary);justify-content:space-between;align-items:center;font-weight:600;display:flex}.timeline-task-dates{color:var(--text-secondary);align-items:center;gap:.25rem;font-size:.725rem;display:flex}.timeline-task-meta{justify-content:space-between;align-items:center;margin-top:.25rem;display:flex}.table-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background-color:var(--bg-secondary);overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.custom-table th{color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;background-color:#fafbfc;padding:1rem 1.25rem;font-size:.75rem;font-weight:600}.custom-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;padding:1rem 1.25rem}.custom-table tr:last-child td{border-bottom:none}.custom-table tr{transition:background-color var(--transition-fast)}.custom-table tbody tr:hover{background-color:var(--bg-primary)}.badge{border-radius:var(--radius-pill);letter-spacing:-.01em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-todo{background-color:var(--status-todo-bg);color:var(--status-todo-text);border-color:var(--status-todo-border)}.badge-progress{background-color:var(--status-progress-bg);color:var(--status-progress-text);border-color:var(--status-progress-border)}.badge-blocked{background-color:var(--status-blocked-bg);color:var(--status-blocked-text);border-color:var(--status-blocked-border)}.badge-completed{background-color:var(--status-completed-bg);color:var(--status-completed-text);border-color:var(--status-completed-border)}.badge-overdue{background-color:var(--status-overdue-bg);color:var(--status-overdue-text);border-color:var(--status-overdue-border)}.priority-pill{border-radius:var(--radius-sm);text-transform:uppercase;padding:.125rem .375rem;font-size:.7rem;font-weight:600}.priority-high{background-color:var(--priority-high-bg);color:var(--priority-high-text)}.priority-medium{background-color:var(--priority-medium-bg);color:var(--priority-medium-text)}.priority-low{background-color:var(--priority-low-bg);color:var(--priority-low-text)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a66;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:500px;max-height:90vh;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{font-family:var(--font-title);color:var(--text-primary);font-size:1.2rem;font-weight:700}.modal-close-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition-fast);background:0 0;border:none}.modal-close-btn:hover{color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border-color);background-color:#fafbfc;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-label{color:var(--text-secondary);margin-bottom:.375rem;font-size:.85rem;font-weight:600;display:block}.form-input{width:100%;font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:.5rem .75rem;font-size:.875rem}.form-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #0d948826}.form-input-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.identity-switch-container{flex-direction:column;gap:.75rem;display:flex}.identity-card{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.identity-card:hover{background-color:var(--accent-light);border-color:var(--accent-color)}.identity-card.selected{background-color:var(--accent-light);border-color:var(--accent-color);box-shadow:0 0 0 2px #0d948833}.identity-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.identity-email{color:var(--text-secondary);font-size:.775rem}.horizon-legend{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:1.5rem;margin-bottom:1rem;padding:.75rem 1.25rem;font-size:.85rem;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:.5rem;display:flex}.legend-color-dot{border-radius:50%;width:12px;height:12px}.sync-status{color:#15803d;align-items:center;gap:.375rem;font-size:.8rem;font-weight:500;display:flex}.sync-dot{background-color:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%{transform:scale(.9);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 6px #22c55e00}to{transform:scale(.9);box-shadow:0 0 #22c55e00}}.ledger-filters{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;display:flex}.filter-item{flex-direction:column;flex:1;gap:.375rem;min-width:180px;display:flex}.search-input-wrapper{flex:2;min-width:250px;position:relative}.team-member-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.pm-assignment-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;display:flex}.pm-card-header{align-items:center;gap:.75rem;display:flex}.pm-avatar{background-color:var(--cyan-color);color:#fff;width:40px;height:40px;font-weight:600;font-family:var(--font-title);border-radius:50%;justify-content:center;align-items:center;display:flex}.pm-details h3{color:var(--text-primary);font-size:.95rem;font-weight:600}.pm-details p{color:var(--text-secondary);font-size:.75rem}.assigned-projects-list{flex-direction:column;gap:.5rem;display:flex}.assigned-project-item{background-color:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-primary);justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.8rem;font-weight:500;display:flex}.assign-project-trigger{color:var(--accent-color);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;align-items:center;gap:.25rem;padding:.25rem 0;font-size:.8rem;font-weight:600;display:flex}.assign-project-trigger:hover{color:var(--accent-hover)}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.empty-state h3{font-family:var(--font-title);color:var(--text-primary);margin-top:1rem;margin-bottom:.25rem;font-weight:600}.empty-state p{max-width:400px;font-size:.875rem}.meta-row{align-items:center;gap:.5rem;display:flex}.view-toggle{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);gap:.25rem;padding:.25rem;display:inline-flex}.toggle-btn{font-family:var(--font-sans);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;padding:.375rem .875rem;font-size:.825rem;font-weight:500}.toggle-btn:hover{color:var(--text-primary);background-color:#00000005}.toggle-btn.active{color:#fff;background-color:var(--accent-color);box-shadow:var(--shadow-sm);font-weight:600}.task-due-today-glow{box-shadow:0 0 12px #d9770633, var(--shadow-sm)!important;border-color:#d97706!important}.task-overdue-red-card{box-shadow:0 0 4px #ef44440d, var(--shadow-sm)!important;background-color:#fef2f2!important;border-color:#fca5a5!important}.due-today-badge{color:#c2410c!important;background-color:#fff7ed!important;border:1px solid #fed7aa!important}.overdue-badge{animation:2.5s infinite pulse-red;color:#991b1b!important;background-color:#fef2f2!important;border:1px solid #fecdd3!important}@keyframes pulse-red{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 5px #ef444400}to{box-shadow:0 0 #ef444400}}.countdown-tag{color:var(--text-secondary);background-color:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.725rem;font-weight:600;display:inline-flex}.checkpoints-container{border-top:1px dashed var(--border-color);margin-top:.5rem;padding-top:.5rem}.checkpoints-header-row{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:.375rem;font-size:.725rem;font-weight:600;display:flex}.checkpoint-mini-bar{background-color:var(--bg-tertiary);border-radius:var(--radius-pill);width:100%;height:4px;margin-bottom:.5rem;overflow:hidden}.checkpoint-mini-fill{background-color:var(--accent-color);border-radius:var(--radius-pill);height:100%;transition:width .3s}.subtask-list{flex-direction:column;gap:.325rem;max-height:120px;padding-right:2px;display:flex;overflow-y:auto}.subtask-item{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:.5rem;padding:.125rem 0;font-size:.725rem;display:flex}.subtask-checkbox{accent-color:var(--accent-color);cursor:pointer;margin-top:.125rem}.subtask-text{flex:1;line-height:1.25}.subtask-item.completed .subtask-text{color:var(--text-muted);text-decoration:line-through}.subtask-target-date{color:var(--text-muted);background-color:var(--bg-tertiary);border-radius:var(--radius-sm);white-space:nowrap;padding:0 .25rem;font-size:.65rem}.project-metrics-box{border-top:1px solid var(--border-color);flex-direction:column;gap:.375rem;margin-top:.75rem;padding-top:.5rem;display:flex}.metric-row{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:.75rem;font-weight:500;display:flex}.metric-value{color:var(--text-primary);font-weight:700}.streak-badge{color:#c2410c;border-radius:var(--radius-sm);background-color:#fff7ed;border:1px solid #ffedd5;align-items:center;gap:.25rem;padding:.125rem .375rem;font-size:.7rem;font-weight:600;display:inline-flex}
