:root{--color-bg:#fafafa;--color-surface:#fff;--color-border:#e5e5e5;--color-border-subtle:#f0f0f0;--color-text-primary:#171717;--color-text-secondary:#525252;--color-text-muted:#a3a3a3;--color-accent:#171717;--color-accent-hover:#404040;--color-status-todo:#dc2626;--color-status-inprogress:#ca8a04;--color-status-done:#16a34a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--text-page-title:1.75rem;--text-section-title:1.125rem;--text-card-title:.9375rem;--text-body:.875rem;--text-secondary:.8125rem;--text-caption:.75rem;--text-auth-title:1.625rem;--text-stat:2rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--transition-fast:.15s ease;--transition-base:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-body);letter-spacing:-.006em;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app-container{min-height:100vh;padding:var(--space-6);background-color:var(--color-bg);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-surface);padding:var(--space-10);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);width:100%}.ts-logo{align-items:center;gap:var(--space-2);color:var(--color-text-primary);display:inline-flex}.ts-logo svg{flex-shrink:0}.ts-logo-text{letter-spacing:-.03em;color:var(--color-text-primary);font-size:15px;font-weight:600}.ts-logo-text-bold{font-weight:700}.auth-brand{margin-bottom:var(--space-3);justify-content:center;display:flex}.auth-card--login,.auth-card--signup{max-width:420px}.auth-title{font-size:var(--text-page-title);color:var(--color-text-primary);letter-spacing:-.02em;margin-bottom:6px;font-weight:600;line-height:1.25}.auth-subtitle{font-size:var(--text-body);color:var(--color-text-muted);margin-bottom:var(--space-8);text-align:center;line-height:1.5}.form-stack{gap:var(--space-4);flex-direction:column;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{font-size:var(--text-secondary);color:var(--color-text-secondary);font-weight:500}.form-input,.form-select{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-body);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 12px;line-height:1.5}.form-input:focus,.form-select:focus{border-color:var(--color-text-primary);box-shadow:0 0 0 1px var(--color-text-primary);outline:none}.form-input:focus-visible,.form-select:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:1px}.form-input::placeholder{color:var(--color-text-muted)}.auth-error{color:#991b1b;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-secondary);margin-bottom:var(--space-4);background-color:#fef2f2;border:1px solid #fecaca}.auth-footer{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-border);text-align:center}.auth-footer-text{color:var(--color-text-muted);font-size:var(--text-secondary);margin:0 0 var(--space-2) 0}.auth-footer-link{color:var(--color-text-primary);font-weight:600;font-size:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.auth-footer-link:hover{color:var(--color-text-secondary)}.layout-wrapper{background-color:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.layout-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;display:none;position:sticky;top:0}.header-content{max-width:1400px;padding:0 var(--space-6);justify-content:space-between;align-items:center;width:100%;height:52px;margin:0 auto;display:flex}.header-brand-wordmark{font-size:var(--text-card-title);color:var(--color-text-primary);letter-spacing:-.02em;font-weight:700}.header-actions{align-items:center;gap:var(--space-5);display:flex}.header-user-badge{align-items:center;gap:var(--space-2);display:flex}.header-user-avatar{background-color:var(--color-text-primary);width:26px;height:26px;color:var(--color-surface);letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:flex}.header-user-name{font-size:var(--text-secondary);color:var(--color-text-secondary);font-weight:500}.layout-container{flex:1;width:100%;max-width:1400px;margin:0 auto;display:flex}.layout-sidebar{background-color:var(--color-surface);border-right:1px solid var(--color-border);width:220px;min-width:220px;padding:var(--space-5) 0;flex-direction:column;justify-content:space-between;display:flex}.sidebar-top{gap:var(--space-4);flex-direction:column;display:flex}.sidebar-brand{padding:0 var(--space-5) var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);align-items:center;display:flex}.sidebar-footer{padding:var(--space-4) var(--space-5) var(--space-5) var(--space-5);border-top:1px solid var(--color-border-subtle);gap:var(--space-3);flex-direction:column;display:flex}.sidebar-user{align-items:center;gap:var(--space-2);min-width:0;display:flex}.sidebar-user-avatar{background-color:var(--color-border);width:24px;height:24px;color:var(--color-text-primary);letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:flex}.sidebar-user-name{font-size:var(--text-secondary);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.sidebar-logout-btn{width:100%;font-size:var(--text-secondary)!important;justify-content:flex-start!important;padding:6px 8px!important}.sidebar-nav{padding:0 var(--space-3);flex-direction:column;gap:2px;display:flex}.nav-link{padding:7px var(--space-3);color:var(--color-text-muted);font-size:var(--text-secondary);transition:all var(--transition-fast);border-radius:var(--radius-sm);border-left:2px solid #0000;font-weight:500;text-decoration:none;display:block}.nav-link:hover{background-color:var(--color-border-subtle);color:var(--color-text-primary)}.nav-link--active{background-color:var(--color-border-subtle);color:var(--color-text-primary);border-left:2px solid var(--color-text-primary);border-top-left-radius:0;border-bottom-left-radius:0;font-weight:600}.layout-main{padding:var(--space-8) var(--space-10);flex:1;min-width:0;overflow-y:auto}.dashboard-container,.teams-container{width:100%;max-width:960px}.dashboard-header{margin-bottom:var(--space-10)}.teams-header{margin-bottom:var(--space-10);justify-content:space-between;align-items:center;display:flex}.dashboard-title,.teams-title{font-size:var(--text-page-title);color:var(--color-text-primary);letter-spacing:-.025em;margin-bottom:6px;font-weight:600;line-height:1.2}.dashboard-subtitle,.teams-subtitle{font-size:var(--text-body);color:var(--color-text-muted);line-height:1.5}.summary-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-fast)}.summary-card:hover{box-shadow:var(--shadow-sm);border-color:#d4d4d4;transform:translateY(-1px)}.summary-content{gap:var(--space-3);flex-direction:column;display:flex}.summary-label{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0;font-weight:500}.summary-value{font-size:var(--text-stat);color:var(--color-text-primary);letter-spacing:-.03em;margin:0;font-weight:600;line-height:1}.dashboard-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-xs)}.dashboard-section+.dashboard-section{margin-top:var(--space-5)}.section-title{font-size:var(--text-section-title);color:var(--color-text-primary);margin-bottom:var(--space-5);letter-spacing:-.01em;font-weight:600;line-height:1.35}.tasks-list{background-color:var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:1px;display:flex;overflow:hidden}.task-item{padding:var(--space-3) var(--space-4);background:var(--color-surface);transition:background-color var(--transition-fast);border:none;justify-content:space-between;align-items:center;width:100%;text-decoration:none;display:flex}.task-item:hover{background-color:var(--color-bg)}.task-main{flex:1;min-width:0}.task-title{font-size:var(--text-body);color:var(--color-text-primary);margin:0 0 3px;font-weight:500}.task-meta{align-items:center;gap:var(--space-3);font-size:var(--text-caption);display:flex}.task-status{text-transform:capitalize;font-weight:600;font-size:var(--text-caption);letter-spacing:.01em}.task-priority{color:var(--color-text-muted);text-transform:capitalize;font-size:var(--text-caption);font-weight:400}.task-date{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap;margin:0;margin-left:var(--space-4);font-weight:400}.teams-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.team-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-xs);gap:var(--space-4);transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-fast);flex-direction:column;display:flex}.team-card:hover{box-shadow:var(--shadow-md);border-color:#d4d4d4;transform:translateY(-1px)}.team-card-content{gap:var(--space-3);flex-direction:column;display:flex}.team-card-title{font-size:var(--text-card-title);color:var(--color-text-primary);margin:0;font-weight:600}.team-info{flex-direction:column;gap:6px;display:flex}.team-info-item{font-size:var(--text-secondary);justify-content:space-between;margin:0;display:flex}.team-info-label{color:var(--color-text-muted);font-weight:400}.team-info-value{color:var(--color-text-secondary);font-weight:500}.team-card-btn{align-self:flex-start}.kanban-container{width:100%}.kanban-header{margin-bottom:var(--space-8)}.kanban-title{font-size:var(--text-page-title);color:var(--color-text-primary);letter-spacing:-.025em;margin-bottom:6px;font-weight:600;line-height:1.2}.kanban-subtitle{font-size:var(--text-body);color:var(--color-text-muted);margin-top:var(--space-1);margin-bottom:var(--space-2);line-height:1.5}.kanban-filters{margin-top:var(--space-2);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kanban-chip{font-size:var(--text-caption);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background-color:#0000;border-radius:6px;padding:5px 12px;font-family:inherit;font-weight:500;line-height:1.5}.kanban-chip:hover{background-color:var(--color-border-subtle);color:var(--color-text-primary);border-color:#d4d4d4}.kanban-chip--active{background-color:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-surface)}.kanban-chip--active:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-surface)}.kanban-board{gap:var(--space-5);grid-template-columns:repeat(3,1fr);align-items:start;display:grid}.kanban-column{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:200px;box-shadow:var(--shadow-xs);flex-direction:column;display:flex}.kanban-column-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.kanban-column-title{font-size:var(--text-secondary);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-weight:600;display:inline-flex}.kanban-column-title:before{content:"●";font-size:10px;line-height:1}.kanban-column-title[data-status=todo]:before{color:var(--color-status-todo)}.kanban-column-title[data-status=in-progress]:before{color:var(--color-status-inprogress)}.kanban-column-title[data-status=done]:before{color:var(--color-status-done)}.kanban-column-count{font-size:var(--text-caption);color:var(--color-text-muted);background-color:var(--color-border-subtle);text-align:center;border-radius:10px;min-width:22px;padding:2px 8px;font-weight:500}.kanban-column-body{padding:var(--space-3);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.kanban-column-empty{padding:var(--space-8) var(--space-4);color:var(--color-text-muted);font-size:var(--text-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-md);margin:var(--space-2);flex:1;justify-content:center;align-items:center;display:flex}.kanban-column--over .kanban-column-body{background-color:var(--color-border-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);outline:2px dashed var(--color-border);outline-offset:-4px}.kanban-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:grab;transition:box-shadow var(--transition-fast), border-color var(--transition-fast);touch-action:none;-webkit-user-select:none;user-select:none}.kanban-card:hover{box-shadow:var(--shadow-sm);border-color:#d4d4d4}.kanban-card--dragging{box-shadow:var(--shadow-md);opacity:.8;cursor:grabbing;z-index:10;border-color:#d4d4d4;transform:rotate(1.5deg)!important}.kanban-card-top{align-items:flex-start;gap:var(--space-3);display:flex}.kanban-card-avatar{background-color:var(--color-text-primary);width:24px;min-width:24px;height:24px;color:var(--color-surface);letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;margin-top:1px;font-size:11px;font-weight:600;line-height:1;display:flex}.kanban-card-title{font-size:var(--text-body);color:var(--color-text-primary);word-break:break-word;flex:1;min-width:0;margin:0;font-weight:500;line-height:1.4}.kanban-card-badges{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding-left:36px;display:flex}.kanban-badge{font-size:var(--text-caption);white-space:nowrap;border-radius:4px;padding:2px 8px;font-weight:500;line-height:1.5}.kanban-badge--priority{background-color:var(--color-border-subtle);color:var(--color-text-secondary);text-transform:capitalize}.kanban-badge--priority-high{color:#991b1b;background-color:#fef2f2}.kanban-badge--priority-low{background-color:var(--color-border-subtle);color:var(--color-text-muted)}.kanban-badge--date{color:var(--color-text-muted);background-color:#0000;padding:2px 0}.kanban-card-overlay{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-md);cursor:grabbing;opacity:.95;border:1px solid #d4d4d4;transform:scale(1.02)rotate(1.5deg)!important}.kanban-card--priority-high{border-left:3px solid var(--color-status-todo)!important}.kanban-card--priority-medium{border-left:3px solid var(--color-text-muted)!important}.kanban-card--priority-low{border-left:3px solid #0000!important}.kanban-badge--overdue{color:#991b1b!important;background-color:#fef2f2!important;font-weight:600!important}.welcome-card{background:var(--color-surface);padding:var(--space-10);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-xs);width:100%;max-width:960px}.welcome-card h1{font-size:var(--text-page-title);color:var(--color-text-primary);margin-bottom:var(--space-2);letter-spacing:-.025em;font-weight:600;line-height:1.2}.subtitle{color:var(--color-text-muted);font-size:var(--text-body)}.loading-text{font-size:var(--text-body);color:var(--color-text-muted);text-align:center;padding:var(--space-12) var(--space-6)}.error-card{border-radius:var(--radius-lg);padding:var(--space-6);color:#991b1b;font-size:var(--text-body);text-align:center;background:#fef2f2;border:1px solid #fecaca}.empty-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;color:var(--color-text-muted);font-size:var(--text-body)}.status-section{text-align:left;border-top:1px solid var(--color-border);padding-top:var(--space-5)}.status-section h2{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-4);font-weight:600}.status-box{padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-body);background-color:var(--color-bg)}.status-box.success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.status-indicator{margin-right:var(--space-2);color:#22c55e}.status-indicator.outline{color:var(--color-text-muted)}.db-status{margin-top:var(--space-2);font-size:var(--text-secondary);padding-left:var(--space-5);color:#15803d}.db-status p{margin-bottom:var(--space-1)}.activity-feed-section{margin-top:var(--space-10);border-top:1px solid var(--color-border);padding-top:var(--space-8);margin-bottom:var(--space-10)}.activity-feed-title{font-size:var(--text-section-title);color:var(--color-text-primary);margin-bottom:var(--space-4);letter-spacing:-.01em;font-weight:600}.activity-feed-list{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);flex-direction:column;display:flex;overflow:hidden}.activity-feed-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-direction:column;display:flex}.activity-feed-item:last-child{border-bottom:none}.activity-item-content{font-size:var(--text-body);color:var(--color-text-primary);font-weight:400;line-height:1.4}.activity-item-time{font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-1)}.activity-pagination{margin-top:var(--space-4);padding:0 var(--space-2);justify-content:space-between;align-items:center;display:flex}.pagination-info{font-size:var(--text-secondary);color:var(--color-text-secondary)}.pagination-controls{align-items:center;gap:var(--space-2);display:flex}.activity-loading{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.activity-error{margin-top:var(--space-4)}.reports-container{width:100%}.reports-header-wrapper{margin-bottom:var(--space-8);justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.reports-header{flex-direction:column;display:flex}.reports-title{font-size:var(--text-page-title);color:var(--color-text-primary);letter-spacing:-.025em;margin-bottom:6px;font-weight:600;line-height:1.2}.reports-subtitle{font-size:var(--text-body);color:var(--color-text-muted);line-height:1.5}.reports-grid{gap:var(--space-8);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=1024px){.reports-grid{grid-template-columns:repeat(3,1fr)}}.reports-section{flex-direction:column;display:flex}.reports-section-title{font-size:var(--text-section-title);color:var(--color-text-primary);margin-bottom:var(--space-4);letter-spacing:-.01em;font-weight:600}.reports-card-list{gap:var(--space-3);flex-direction:column;display:flex}.reports-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-xs);gap:var(--space-1);transition:box-shadow var(--transition-fast), border-color var(--transition-fast);flex-direction:column;display:flex}.reports-card:hover{box-shadow:var(--shadow-sm);border-color:#d4d4d4}.reports-card-value{color:var(--color-text-primary);font-size:1.5rem;font-weight:600}.reports-card-label{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.leaderboard-list{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.leaderboard-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);transition:background-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.leaderboard-item:hover{background-color:var(--color-bg)}.leaderboard-item:last-child{border-bottom:none}.leaderboard-left{align-items:center;gap:var(--space-3);display:flex}.leaderboard-rank{width:24px;height:24px;font-size:var(--text-caption);border:1px solid var(--color-border);color:var(--color-text-secondary);background-color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.leaderboard-rank--1{background-color:var(--color-text-primary);color:var(--color-surface);border-color:var(--color-text-primary)}.leaderboard-rank--2{background-color:var(--color-text-secondary);color:var(--color-surface);border-color:var(--color-text-secondary)}.leaderboard-rank--3{background-color:var(--color-border-subtle);color:var(--color-text-primary);border-color:var(--color-border)}.leaderboard-name{font-size:var(--text-body);color:var(--color-text-primary);font-weight:500}.leaderboard-actions{font-size:var(--text-secondary);color:var(--color-text-secondary);font-weight:500}@media (width<=1024px){.header-content{padding:0 var(--space-5)}.layout-main{padding:var(--space-6)}.layout-sidebar{width:200px;min-width:200px}.kanban-board{gap:var(--space-3)}}@media (width<=768px){.layout-header{display:block}.sidebar-brand,.sidebar-footer{display:none}.layout-container{flex-direction:column}.layout-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%;min-width:100%;padding:var(--space-3) 0}.sidebar-nav{gap:var(--space-1);padding:0 var(--space-4);flex-direction:row}.nav-link{padding:6px var(--space-3);font-size:var(--text-caption)}.layout-main{padding:var(--space-5)}.summary-grid{grid-template-columns:1fr 1fr}.teams-grid{grid-template-columns:1fr}.auth-card{padding:var(--space-8)}.auth-title{font-size:1.375rem}.dashboard-title,.teams-title,.kanban-title{font-size:1.5rem}.kanban-board{-webkit-overflow-scrolling:touch;grid-template-columns:repeat(3,minmax(220px,1fr));overflow-x:auto}}@keyframes backdropFadeIn{0%{-webkit-backdrop-filter:blur();backdrop-filter:blur();background-color:#0000}to{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006}}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006;justify-content:center;align-items:center;animation:.2s ease-out backdropFadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:480px;max-height:calc(100vh - 48px);box-shadow:var(--shadow-md);gap:var(--space-4);flex-direction:column;animation:.2s ease-out fadeIn;display:flex;overflow-y:auto}.modal-content--wide{max-width:600px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--color-border-subtle);padding-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-section-title);color:var(--color-text-primary);font-weight:600}.modal-close{font-size:var(--text-section-title);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;line-height:1}.modal-close:hover{color:var(--color-text-primary)}.modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4);display:flex}.btn{font-size:var(--text-body);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;padding:8px 16px;font-family:inherit;font-weight:500;line-height:1.5;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.btn-primary{background-color:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-primary:disabled{background-color:var(--color-text-muted);border-color:var(--color-text-muted);cursor:not-allowed}.btn-secondary{color:var(--color-text-secondary);border:1px solid var(--color-border);background-color:#0000}.btn-secondary:hover:not(:disabled){background-color:var(--color-border-subtle);color:var(--color-text-primary);border-color:#d4d4d4}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.btn-danger:hover:not(:disabled){color:#7f1d1d;background-color:#fee2e2;border-color:#fca5a5}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--color-text-secondary);font-size:var(--text-caption);background-color:#0000;border:1px solid #0000;padding:6px 12px}.btn-ghost:hover:not(:disabled){background-color:var(--color-border-subtle);color:var(--color-text-primary)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.selected-members-list{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.member-pill{background-color:var(--color-border-subtle);border:1px solid var(--color-border);font-size:var(--text-caption);color:var(--color-text-secondary);border-radius:14px;align-items:center;gap:6px;padding:4px 10px;display:flex}.member-pill-remove{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-weight:700}.member-pill-remove:hover{color:#dc2626}.search-results-list{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:150px;margin-top:var(--space-1);overflow-y:auto}.search-result-item{padding:var(--space-2) var(--space-3);cursor:pointer;transition:background-color var(--transition-fast);flex-direction:column;display:flex}.search-result-item:hover{background-color:var(--color-border-subtle)}.search-result-name{font-size:var(--text-secondary);color:var(--color-text-primary);font-weight:500}.search-result-email{font-size:var(--text-caption);color:var(--color-text-muted)}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.skeleton{background-color:var(--color-border);border-radius:var(--radius-sm);animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-rect{display:block}.skeleton-circle{border-radius:50%;display:block}.empty-state{text-align:center;padding:var(--space-10) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.empty-state-icon-wrapper{color:var(--color-text-muted);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.empty-state-icon{stroke-width:1.5px}.empty-state-title{font-size:var(--text-body);color:var(--color-text-primary);margin-bottom:4px;font-weight:600}.empty-state-description{font-size:var(--text-secondary);color:var(--color-text-muted);max-width:320px;margin-bottom:var(--space-4);line-height:1.4}.empty-state-description:last-child{margin-bottom:0}.empty-state-btn{margin-top:var(--space-2)}.breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--text-secondary);color:var(--color-text-muted);margin-bottom:var(--space-1);display:flex}.breadcrumb-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-text-primary)}.breadcrumb-separator{color:var(--color-text-muted);-webkit-user-select:none;user-select:none;font-size:11px}.breadcrumb-current{color:var(--color-text-secondary);font-weight:500}.nav-link:focus-visible,.kanban-card:focus-visible,.modal-close:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.activity-feed-item{transition:all var(--transition-fast);border-left:3px solid #0000;padding-left:var(--space-4)!important}.activity-feed-item--create{border-left-color:var(--color-status-done)}.activity-feed-item--update{border-left-color:var(--color-text-muted)}.activity-feed-item--delete{border-left-color:var(--color-status-todo)}.activity-item-icon{margin-right:var(--space-2);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.activity-feed-item--create .activity-item-icon{color:var(--color-status-done)}.activity-feed-item--update .activity-item-icon{color:var(--color-text-secondary)}.activity-feed-item--delete .activity-item-icon{color:var(--color-status-todo)}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.header-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}@media (width<=768px){.kanban-board{scroll-snap-type:x mandatory;scroll-padding:var(--space-4)}.kanban-column{scroll-snap-align:start}.modal-content{margin:0 var(--space-4);width:calc(100% - var(--space-8))}}@media (width<=480px){.form-grid{gap:var(--space-3);grid-template-columns:1fr}}.kanban-header-top{justify-content:space-between;align-items:center;display:flex}.kanban-header-actions{gap:var(--space-2);display:flex}.form-help-text{font-size:var(--text-caption);color:var(--color-text-muted);margin:0}.form-required{color:var(--color-status-todo)}.form-textarea{resize:vertical;min-height:80px}.reports-card--chart{padding:20px 16px 10px}.reports-chart-container{width:100%;height:220px}
