:root{--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading: "Unbounded", var(--font-family);--font-size-xs: .6875rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-md: 1.0625rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--space-10: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 50%;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 280px;--sidebar-collapsed-width: 68px}[data-theme=dark]{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a26;--bg-elevated: #1e1e2e;--bg-hover: rgba(255, 255, 255, .04);--bg-active: rgba(255, 255, 255, .08);--surface-glass: rgba(30, 30, 50, .6);--surface-glass-border: rgba(255, 255, 255, .06);--surface-glass-hover: rgba(40, 40, 65, .7);--text-primary: #f0f0f5;--text-secondary: #9595a8;--text-tertiary: #5a5a70;--text-inverse: #0a0a0f;--border-primary: rgba(255, 255, 255, .08);--border-secondary: rgba(255, 255, 255, .04);--border-focus: rgba(138, 96, 255, .5);--accent-primary: #8a60ff;--accent-primary-hover: #9d7aff;--accent-primary-subtle: rgba(138, 96, 255, .12);--accent-gradient: linear-gradient(135deg, #8a60ff 0%, #5ebbff 100%);--accent-gradient-hover: linear-gradient(135deg, #9d7aff 0%, #75c8ff 100%);--color-success: #34d399;--color-success-subtle: rgba(52, 211, 153, .12);--color-warning: #fbbf24;--color-warning-subtle: rgba(251, 191, 36, .12);--color-danger: #f87171;--color-danger-subtle: rgba(248, 113, 113, .12);--color-info: #60a5fa;--color-info-subtle: rgba(96, 165, 250, .12);--priority-high: #f87171;--priority-high-bg: rgba(248, 113, 113, .1);--priority-medium: #fbbf24;--priority-medium-bg: rgba(251, 191, 36, .1);--priority-low: #34d399;--priority-low-bg: rgba(52, 211, 153, .1);--shadow-sm: 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);--shadow-glow: 0 0 30px rgba(138, 96, 255, .15);--scrollbar-track: #12121a;--scrollbar-thumb: #2a2a3a;--scrollbar-thumb-hover: #3a3a4e;--overlay-bg: rgba(0, 0, 0, .6)}[data-theme=light]{--bg-primary: #f5f5fa;--bg-secondary: #ffffff;--bg-tertiary: #eeeef5;--bg-elevated: #ffffff;--bg-hover: rgba(0, 0, 0, .03);--bg-active: rgba(0, 0, 0, .06);--surface-glass: rgba(255, 255, 255, .7);--surface-glass-border: rgba(0, 0, 0, .06);--surface-glass-hover: rgba(255, 255, 255, .85);--text-primary: #1a1a2e;--text-secondary: #6b6b80;--text-tertiary: #9999ad;--text-inverse: #ffffff;--border-primary: rgba(0, 0, 0, .08);--border-secondary: rgba(0, 0, 0, .04);--border-focus: rgba(110, 60, 230, .4);--accent-primary: #6e3ce6;--accent-primary-hover: #5c2fd4;--accent-primary-subtle: rgba(110, 60, 230, .1);--accent-gradient: linear-gradient(135deg, #6e3ce6 0%, #3b82f6 100%);--accent-gradient-hover: linear-gradient(135deg, #5c2fd4 0%, #2563eb 100%);--color-success: #10b981;--color-success-subtle: rgba(16, 185, 129, .1);--color-warning: #f59e0b;--color-warning-subtle: rgba(245, 158, 11, .1);--color-danger: #ef4444;--color-danger-subtle: rgba(239, 68, 68, .1);--color-info: #3b82f6;--color-info-subtle: rgba(59, 130, 246, .1);--priority-high: #ef4444;--priority-high-bg: rgba(239, 68, 68, .08);--priority-medium: #f59e0b;--priority-medium-bg: rgba(245, 158, 11, .08);--priority-low: #10b981;--priority-low-bg: rgba(16, 185, 129, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--shadow-glow: 0 0 30px rgba(110, 60, 230, .1);--scrollbar-track: #f0f0f5;--scrollbar-thumb: #ccccdd;--scrollbar-thumb-hover: #aaaabc;--overlay-bg: rgba(0, 0, 0, .35)}:root{--project-blue: #5ebbff;--project-purple: #8a60ff;--project-pink: #f472b6;--project-green: #34d399;--project-orange: #fb923c;--project-red: #f87171;--project-yellow: #fbbf24;--project-cyan: #22d3ee}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-primary);line-height:1.6;overflow:hidden;height:100vh;transition:background-color var(--transition-slow),color var(--transition-slow)}#app{display:flex;height:100vh;overflow:hidden}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-primary-hover)}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit;color:inherit;outline:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;outline:none;border:none;background:none}ul,ol{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::selection{background:var(--accent-primary-subtle);color:var(--text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-10) var(--space-6);text-align:center}.empty-state-icon{font-size:3rem;opacity:.5}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.empty-state-text{font-size:var(--font-size-sm);color:var(--text-secondary);max-width:320px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:500;font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-primary{background:var(--accent-gradient);color:#fff;padding:var(--space-3) var(--space-5);font-weight:600;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-gradient-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-focus)}.btn-ghost{color:var(--text-secondary);padding:var(--space-2);border-radius:var(--radius-sm)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-subtle)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--transition-fast)}.btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:50px;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.badge-priority-high{background:var(--priority-high-bg);color:var(--priority-high)}.badge-priority-medium{background:var(--priority-medium-bg);color:var(--priority-medium)}.badge-priority-low{background:var(--priority-low-bg);color:var(--priority-low)}.checkbox{position:relative;width:22px;height:22px;border:2px solid var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;display:flex;align-items:center;justify-content:center}.checkbox:hover{border-color:var(--accent-primary);background:var(--accent-primary-subtle)}.checkbox.checked{background:var(--accent-gradient);border-color:transparent}.checkbox.checked:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 10px;border-radius:50px;font-size:var(--font-size-xs);font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-secondary)}h1,h2,h3,h4,h5,h6,.sidebar-logo-text,.dashboard-greeting,.dashboard-section-title,.project-view-title,.modal-title,.calendar-title{font-family:var(--font-heading)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes checkmark{0%{transform:scale(0) rotate(45deg);opacity:0}50%{transform:scale(1.2) rotate(45deg)}to{transform:scale(1) rotate(45deg);opacity:1}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-base) ease-out}.animate-fade-in-down{animation:fadeInDown var(--transition-base) ease-out}.animate-fade-in-scale{animation:fadeInScale var(--transition-base) ease-out}.animate-slide-in-left{animation:slideInLeft var(--transition-base) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn var(--transition-spring) ease-out}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.sidebar{width:var(--sidebar-width);height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;transition:width var(--transition-base);flex-shrink:0;overflow:hidden;position:relative;z-index:10}.sidebar-header{padding:var(--space-5) var(--space-5);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-secondary)}.sidebar-logo{display:flex;align-items:center;gap:var(--space-3)}.sidebar-logo-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:var(--shadow-glow)}.sidebar-logo-text{font-size:var(--font-size-lg);font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-theme-toggle{width:34px;height:34px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);font-size:1.1rem;color:var(--text-secondary)}.sidebar-theme-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav{padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);font-weight:500;font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.sidebar-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--accent-primary-subtle);color:var(--accent-primary)}.sidebar-nav-item-icon{font-size:1.15rem;width:24px;text-align:center;flex-shrink:0}.sidebar-nav-item-count{margin-left:auto;font-size:var(--font-size-xs);padding:2px 8px;border-radius:50px;background:var(--bg-tertiary);color:var(--text-tertiary);font-weight:600}.sidebar-section{padding:var(--space-2) var(--space-3);flex:1;overflow-y:auto;display:flex;flex-direction:column}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);margin-bottom:var(--space-2)}.sidebar-section-title{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.sidebar-add-btn{width:26px;height:26px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:1.1rem;cursor:pointer;transition:all var(--transition-fast)}.sidebar-add-btn:hover{background:var(--accent-primary-subtle);color:var(--accent-primary)}.sidebar-projects-list{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-project-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;-webkit-user-select:none;user-select:none;position:relative}.sidebar-project-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-project-item.active{background:var(--accent-primary-subtle);color:var(--accent-primary)}.sidebar-project-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.sidebar-project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-project-tasks-count{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:600}.sidebar-project-actions{display:none;gap:var(--space-1)}.sidebar-project-item:hover .sidebar-project-actions{display:flex}.sidebar-project-item:hover .sidebar-project-tasks-count{display:none}.sidebar-project-action-btn{width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.sidebar-project-action-btn:hover{background:var(--bg-active);color:var(--text-primary)}.sidebar-project-action-btn.delete:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.sidebar-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-secondary)}.sidebar-stats{display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-stat-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs);color:var(--text-tertiary)}.sidebar-stat-value{font-weight:700;color:var(--text-secondary)}.sidebar-progress-bar{height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;margin-top:var(--space-2)}.sidebar-progress-fill{height:100%;background:var(--accent-gradient);border-radius:2px;transition:width var(--transition-slow)}.sidebar-logout-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);margin-top:var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-family:var(--font-family);cursor:pointer;transition:var(--transition-fast)}.sidebar-logout-btn:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.mobile-header{display:none;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:50}.mobile-logo-text{font-size:var(--font-size-lg);font-weight:800;font-family:var(--font-heading);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.mobile-logo-text span{display:flex;align-items:center}.mobile-logo-text span img.emoji{width:1.2em;height:1.2em;margin:0}.mobile-menu-btn{font-size:1.5rem;color:var(--text-secondary);padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.mobile-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90;opacity:0;transition:opacity var(--transition-base)}@media (max-width: 768px){.mobile-header{display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);z-index:100;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block;opacity:1}}.dashboard{animation:fadeIn var(--transition-base) ease-out}.dashboard-header{margin-bottom:var(--space-7)}.dashboard-greeting{font-size:var(--font-size-3xl);font-weight:800;margin-bottom:var(--space-2);line-height:1.2}.dashboard-greeting-accent{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-date{font-size:var(--font-size-sm);color:var(--text-secondary)}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);margin-bottom:var(--space-7)}.stat-card{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base);animation:fadeInUp var(--transition-base) ease-out both;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.stat-card:nth-child(1):before{background:var(--accent-gradient)}.stat-card:nth-child(2):before{background:linear-gradient(90deg,var(--color-success),#6ee7b7)}.stat-card:nth-child(3):before{background:linear-gradient(90deg,var(--color-warning),#fcd34d)}.stat-card:nth-child(4):before{background:linear-gradient(90deg,var(--color-danger),#fca5a5)}.stat-card:nth-child(1){animation-delay:0ms}.stat-card:nth-child(2){animation-delay:80ms}.stat-card:nth-child(3){animation-delay:.16s}.stat-card:nth-child(4){animation-delay:.24s}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--accent-primary-subtle)}.stat-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.stat-card-icon{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem}.stat-card:nth-child(1) .stat-card-icon{background:var(--accent-primary-subtle)}.stat-card:nth-child(2) .stat-card-icon{background:var(--color-success-subtle)}.stat-card:nth-child(3) .stat-card-icon{background:var(--color-warning-subtle)}.stat-card:nth-child(4) .stat-card-icon{background:var(--color-danger-subtle)}.stat-card-label{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.stat-card-value{font-size:var(--font-size-2xl);font-weight:800;line-height:1;margin-bottom:var(--space-1);animation:countUp .6s ease-out}.stat-card-subtitle{font-size:var(--font-size-xs);color:var(--text-tertiary)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.dashboard-section{background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);animation:fadeInUp .4s ease-out both}.dashboard-section:nth-child(1){animation-delay:.3s}.dashboard-section:nth-child(2){animation-delay:.4s}.dashboard-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.dashboard-section-title{font-size:var(--font-size-md);font-weight:700;display:flex;align-items:center;gap:var(--space-2)}.dashboard-section-title-icon{font-size:1.1rem}.recent-task-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.recent-task-item:hover{background:var(--bg-hover)}.recent-task-checkbox{width:18px;height:18px}.recent-task-content{flex:1;min-width:0}.recent-task-title{font-size:var(--font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-task-title.completed{text-decoration:line-through;color:var(--text-tertiary)}.recent-task-meta{font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-2);margin-top:2px}.recent-task-project-dot{width:6px;height:6px;border-radius:var(--radius-full);flex-shrink:0}.deadline-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:all var(--transition-fast)}.deadline-item:hover{background:var(--bg-hover)}.deadline-date-box{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.deadline-date-day{font-size:var(--font-size-md);font-weight:700;line-height:1}.deadline-date-month{font-size:9px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.05em}.deadline-content{flex:1;min-width:0}.deadline-title{font-size:var(--font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deadline-project{font-size:var(--font-size-xs);color:var(--text-tertiary)}.deadline-overdue .deadline-date-box{background:var(--color-danger-subtle);color:var(--color-danger)}.deadline-today .deadline-date-box{background:var(--accent-primary-subtle);color:var(--accent-primary)}@media (max-width: 900px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard-stats,.dashboard-grid{grid-template-columns:1fr}.dashboard-greeting{font-size:var(--font-size-2xl)}.dashboard-header{margin-bottom:var(--space-4)}.stat-card-value{font-size:var(--font-size-xl)}}.project-view{animation:fadeIn var(--transition-base) ease-out}.project-view-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-6)}.project-view-title-area{display:flex;align-items:center;gap:var(--space-4)}.project-view-color-dot{width:14px;height:14px;border-radius:var(--radius-full);flex-shrink:0}.project-view-title{font-size:var(--font-size-2xl);font-weight:800}.project-view-task-count{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:var(--space-1);margin-left:30px}.project-view-actions{display:flex;gap:var(--space-2)}.filters-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg)}.filter-group{display:flex;align-items:center;gap:var(--space-1)}.filter-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.filter-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.filter-btn.active{background:var(--accent-primary-subtle);color:var(--accent-primary)}.filter-divider{width:1px;height:20px;background:var(--border-primary);margin:0 var(--space-2)}.filter-search{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid transparent;transition:all var(--transition-fast)}.filter-search:focus-within{border-color:var(--border-focus);background:var(--bg-elevated)}.filter-search-icon{font-size:.85rem;color:var(--text-tertiary)}.filter-search input{width:180px;font-size:var(--font-size-xs);color:var(--text-primary);background:transparent}.filter-search input::placeholder{color:var(--text-tertiary)}.task-list{display:flex;flex-direction:column;gap:var(--space-2)}.task-card{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);animation:fadeInUp .3s ease-out both;position:relative}.task-card:hover{border-color:var(--accent-primary-subtle);background:var(--surface-glass-hover);transform:translate(4px)}.task-card.completed{opacity:.55}.task-card.completed:hover{opacity:.75}.task-card.dragging{opacity:.5;transform:scale(.98);border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.task-card.drag-over{border-color:var(--accent-primary);background:var(--accent-primary-subtle)}.task-card-checkbox{margin-top:2px}.task-card-content{flex:1;min-width:0}.task-card-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-1);word-break:break-word}.task-card.completed .task-card-title{text-decoration:line-through;color:var(--text-tertiary)}.task-card-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-card-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.task-card-due{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:500}.task-card-due.overdue{color:var(--color-danger)}.task-card-due.today{color:var(--accent-primary)}.task-card-subtasks{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:500}.task-card-tags{display:flex;gap:var(--space-1);flex-wrap:wrap}.task-card-actions{display:none;gap:var(--space-1);flex-shrink:0}.task-card:hover .task-card-actions{display:flex}.task-card-action-btn{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.task-card-action-btn:hover{background:var(--bg-active);color:var(--text-primary)}.task-card-action-btn.delete:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.task-card-star{color:var(--text-tertiary);cursor:pointer;font-size:1rem;transition:all var(--transition-fast);flex-shrink:0}.task-card-star:hover{color:var(--color-warning);transform:scale(1.2)}.task-card-star.starred{color:var(--color-warning)}.add-task-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border:2px dashed var(--border-primary);border-radius:var(--radius-lg);color:var(--text-tertiary);font-weight:500;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-2)}.add-task-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-primary-subtle)}@media (max-width: 768px){.project-view-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.project-view-task-count{margin-left:0}.filters-bar{flex-wrap:wrap;gap:var(--space-2)}.filter-search{width:100%;margin-left:0;margin-top:var(--space-1)}.filter-search input{width:100%}.task-card-actions{display:flex}.task-card{padding:var(--space-3) var(--space-3)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease-out}.modal{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-xl);width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6) var(--space-6) var(--space-4)}.modal-title{font-size:var(--font-size-lg);font-weight:700}.modal-close{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);font-size:1.2rem}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:var(--space-2) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-primary-subtle);background:var(--bg-elevated)}.form-input::placeholder{color:var(--text-tertiary)}textarea.form-input{min-height:100px;resize:vertical;line-height:1.5}.form-input-title{font-size:var(--font-size-lg);font-weight:600;border:none;background:transparent;padding:var(--space-2) 0}.form-input-title:focus{box-shadow:none}.color-picker{display:flex;gap:var(--space-2);flex-wrap:wrap}.color-picker-item{width:32px;height:32px;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);border:3px solid transparent;position:relative}.color-picker-item:hover{transform:scale(1.15)}.color-picker-item.selected{border-color:var(--text-primary);transform:scale(1.1)}.color-picker-item.selected:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700}.priority-selector{display:flex;gap:var(--space-2)}.priority-option{flex:1;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-align:center;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-primary);-webkit-user-select:none;user-select:none}.priority-option:hover{border-color:var(--border-focus)}.priority-option.priority-high.selected{background:var(--priority-high-bg);border-color:var(--priority-high);color:var(--priority-high)}.priority-option.priority-medium.selected{background:var(--priority-medium-bg);border-color:var(--priority-medium);color:var(--priority-medium)}.priority-option.priority-low.selected{background:var(--priority-low-bg);border-color:var(--priority-low);color:var(--priority-low)}.subtasks-list{display:flex;flex-direction:column;gap:var(--space-2)}.subtask-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.subtask-item:hover{background:var(--bg-hover)}.subtask-item .checkbox{width:18px;height:18px}.subtask-text{flex:1;font-size:var(--font-size-sm)}.subtask-text.completed{text-decoration:line-through;color:var(--text-tertiary)}.subtask-delete{width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.subtask-item:hover .subtask-delete{opacity:1}.subtask-delete:hover{background:var(--color-danger-subtle);color:var(--color-danger)}.subtask-add-input{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.subtask-add-input:hover,.subtask-add-input:focus-within{border-color:var(--accent-primary)}.subtask-add-input input{flex:1;font-size:var(--font-size-sm);padding:var(--space-1) 0}.subtask-add-input input::placeholder{color:var(--text-tertiary)}.tags-input-container{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);min-height:40px;align-items:center;transition:all var(--transition-fast)}.tags-input-container:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-primary-subtle)}.tags-input-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:var(--accent-primary-subtle);color:var(--accent-primary);border-radius:50px;font-size:var(--font-size-xs);font-weight:500}.tags-input-tag-remove{cursor:pointer;font-size:.7rem;opacity:.7;transition:opacity var(--transition-fast)}.tags-input-tag-remove:hover{opacity:1}.tags-input-field{flex:1;min-width:100px;font-size:var(--font-size-sm);padding:var(--space-1) 0}.tags-input-field::placeholder{color:var(--text-tertiary)}.confirm-dialog .modal{width:400px}.confirm-dialog .modal-body{text-align:center;padding:var(--space-6)}.confirm-icon{font-size:3rem;margin-bottom:var(--space-4)}.confirm-text{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:var(--space-5)}@media (max-width: 768px){.modal{width:calc(100% - 32px);margin:16px}.modal-body,.modal-footer{padding:var(--space-4)}.form-input{min-height:48px}.priority-option{padding:var(--space-2);font-size:var(--font-size-xs)}}.auth-screen{flex:1;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:var(--space-4)}.auth-card{width:100%;max-width:420px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-7);box-shadow:var(--shadow-lg)}.auth-logo{text-align:center;margin-bottom:var(--space-7)}.auth-logo-icon{font-size:3rem;display:flex;justify-content:center;margin-bottom:var(--space-3)}.auth-title{font-family:var(--font-heading);font-size:var(--font-size-2xl);font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.auth-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);margin:var(--space-2) 0 0}.auth-tabs{display:flex;gap:var(--space-1);background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--space-1);margin-bottom:var(--space-6)}.auth-tab{flex:1;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:var(--transition-fast)}.auth-tab.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm)}.auth-tab:hover:not(.active){color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-field{display:flex;flex-direction:column;gap:var(--space-1)}.auth-field label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.auth-field input{padding:var(--space-3) var(--space-4);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--font-size-base);font-family:var(--font-family);transition:var(--transition-fast);outline:none}.auth-field input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-subtle)}.auth-field input::placeholder{color:var(--text-tertiary)}.auth-error{color:var(--color-danger);font-size:var(--font-size-sm);min-height:1.2em}.auth-submit{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-md);background:var(--accent-gradient);color:#fff;font-size:var(--font-size-base);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:var(--transition-fast);margin-top:var(--space-2)}.auth-submit:hover:not(:disabled){background:var(--accent-gradient-hover);transform:translateY(-1px);box-shadow:var(--shadow-glow)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.auth-loading-spinner{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.main-content{flex:1;height:100vh;overflow-y:auto;padding:var(--space-8) var(--space-9);background:var(--bg-primary);position:relative}.main-content-inner{max-width:960px;margin:0 auto}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:90;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;animation:fadeIn .2s ease-out}.search-container{width:560px;max-width:95vw;background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.search-input-wrapper{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-secondary)}.search-input-icon{font-size:1.2rem;color:var(--text-tertiary)}.search-input{flex:1;font-size:var(--font-size-md);color:var(--text-primary);background:transparent}.search-input::placeholder{color:var(--text-tertiary)}.search-shortcut{font-size:var(--font-size-xs);color:var(--text-tertiary);padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-weight:600}.search-results{max-height:400px;overflow-y:auto;padding:var(--space-2)}.search-result-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.search-result-item:hover,.search-result-item.selected{background:var(--bg-hover)}.search-result-icon{font-size:1rem;color:var(--text-tertiary);width:24px;text-align:center}.search-result-content{flex:1;min-width:0}.search-result-title{font-size:var(--font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-subtitle{font-size:var(--font-size-xs);color:var(--text-tertiary)}.search-empty{text-align:center;padding:var(--space-8);color:var(--text-tertiary);font-size:var(--font-size-sm)}.calendar-view{animation:fadeIn var(--transition-base) ease-out}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.calendar-title{font-size:var(--font-size-2xl);font-weight:800}.calendar-nav{display:flex;align-items:center;gap:var(--space-2)}.calendar-nav-btn{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.calendar-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.calendar-month-year{font-size:var(--font-size-lg);font-weight:700;min-width:180px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-secondary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-secondary)}.calendar-day-header{padding:var(--space-3);text-align:center;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);background:var(--bg-secondary)}.calendar-day{min-height:100px;background:var(--bg-secondary);padding:var(--space-2);position:relative;transition:background var(--transition-fast);cursor:pointer}.calendar-day:hover{background:var(--bg-tertiary)}.calendar-day.other-month{opacity:.3}.calendar-day.today{background:var(--accent-primary-subtle)}.calendar-day-number{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-1)}.calendar-day.today .calendar-day-number{color:var(--accent-primary);font-weight:700}.calendar-day-tasks{display:flex;flex-direction:column;gap:2px}.calendar-task-pill{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.calendar-task-pill:hover{filter:brightness(1.2)}@media (max-width: 768px){.calendar-view{overflow-x:auto;padding-bottom:var(--space-2)}.calendar-grid{min-width:700px}.calendar-day-header{font-size:var(--font-size-xs)}.calendar-day-number{font-size:var(--font-size-sm)}.calendar-task-pill{font-size:10px;padding:2px 4px}.calendar-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}
