@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}:root{--primary-50: #F0FDFA;--primary-100: #CCFBF1;--primary-500: #14B8A6;--primary-600: #0D9488;--primary-700: #0F766E;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--status-planning: #8B5CF6;--status-planning-bg: rgba(139, 92, 246, .1);--status-active: #14B8A6;--status-active-bg: rgba(20, 184, 166, .1);--status-on-hold: #F59E0B;--status-on-hold-bg: rgba(245, 158, 11, .1);--status-completed: #22C55E;--status-completed-bg: rgba(34, 197, 94, .1);--status-cancelled: #EF4444;--status-cancelled-bg: rgba(239, 68, 68, .1);--error-bg: #FEF2F2;--error-border: #FECACA;--error-text: #DC2626;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04)}.project-form-overlay{position:fixed;inset:0;background:#11182799;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-xl);font-family:var(--font-family)}.project-form-modal{background:#fff;border-radius:var(--radius-xl);width:480px;max-width:90vw;max-height:90vh;overflow:auto;box-shadow:var(--shadow-xl);border:1px solid var(--gray-200);display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.project-form-modal::-webkit-scrollbar{width:0;background:transparent}.project-form-header{padding:var(--space-3xl) var(--space-2xl) var(--space-xl);border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--gray-50) 0%,white 100%);display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0}.project-form-title-section{flex:1}.project-form-title{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-2xl);color:var(--gray-900);font-weight:var(--font-weight-bold);line-height:1.2;letter-spacing:-.025em}.project-form-subtitle{margin:0;color:var(--gray-500);font-size:var(--font-size-sm);line-height:1.5;font-weight:var(--font-weight-normal)}.project-form-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--gray-400);line-height:1;padding:var(--space-sm);border-radius:var(--radius-md);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;width:36px;height:36px}.project-form-close-btn:hover{background:var(--gray-100);color:var(--gray-600);transform:scale(1.05)}.project-form-content{padding:var(--space-2xl);overflow-y:auto;flex:1;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.project-form-content::-webkit-scrollbar{width:0;background:transparent}.project-form-error{background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl);color:var(--error-text);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-sm)}.project-form-error strong{font-weight:var(--font-weight-semibold)}.form-group{margin-bottom:var(--space-xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-xl)}.form-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-semibold);color:var(--gray-700);font-size:var(--font-size-sm);line-height:1.4;letter-spacing:.01em}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);font-weight:var(--font-weight-normal);color:var(--gray-900);background:#fff;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none;box-shadow:var(--shadow-sm)}.form-input::placeholder,.form-textarea::placeholder{color:var(--gray-400);font-weight:var(--font-weight-normal)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #14b8a61a;transform:translateY(-1px)}.form-textarea{resize:vertical;min-height:100px;line-height:1.6;font-size:var(--font-size-sm)}.form-select{cursor:pointer;font-size:var(--font-size-sm);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px;appearance:none}.status-preview{margin-bottom:var(--space-2xl);padding:var(--space-lg);background:var(--gray-50);border-radius:var(--radius-md);border:1px solid var(--gray-200)}.status-preview-label{font-size:var(--font-size-xs);color:var(--gray-500);margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:capitalize;letter-spacing:.025em;border:1px solid transparent}.status-badge.status-planning{background:var(--status-planning-bg);color:var(--status-planning);border-color:#8b5cf633}.status-badge.status-active{background:var(--status-active-bg);color:var(--status-active);border-color:#14b8a633}.status-badge.status-on_hold{background:var(--status-on-hold-bg);color:var(--status-on-hold);border-color:#f59e0b33}.status-badge.status-completed{background:var(--status-completed-bg);color:var(--status-completed);border-color:#22c55e33}.status-badge.status-cancelled{background:var(--status-cancelled-bg);color:var(--status-cancelled);border-color:#ef444433}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-md);border-top:1px solid var(--gray-200);padding-top:var(--space-xl);margin-top:var(--space-2xl)}.btn-cancel{padding:var(--space-md) var(--space-2xl);background:#fff;color:var(--gray-600);border:2px solid var(--gray-300);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family);transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;min-height:44px}.btn-cancel:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-cancel:disabled{cursor:not-allowed;opacity:.5}.btn-submit{padding:var(--space-md) var(--space-2xl);background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-family);transition:all .2s cubic-bezier(.4,0,.2,1);min-width:140px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-shadow:var(--shadow-sm)}.btn-submit:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-700) 100%);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-submit:disabled{cursor:not-allowed}.btn-submit.loading{background:var(--gray-400);position:relative}.btn-submit.loading:after{content:"";position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.project-form-overlay{padding:var(--space-lg)}.project-form-modal{width:100%;max-height:95vh}.project-form-header{padding:var(--space-2xl) var(--space-xl) var(--space-lg)}.project-form-title{font-size:var(--font-size-xl)}.project-form-content{padding:var(--space-xl)}.form-row{grid-template-columns:1fr;gap:var(--space-lg)}.form-actions{flex-direction:column-reverse;gap:var(--space-sm)}.btn-cancel,.btn-submit{width:100%;justify-content:center}}@media (prefers-color-scheme: dark){.project-form-modal{background:var(--gray-800);border-color:var(--gray-700)}.project-form-header{background:linear-gradient(135deg,var(--gray-900) 0%,var(--gray-800) 100%);border-color:var(--gray-700)}.project-form-title{color:#fff}.project-form-subtitle{color:var(--gray-400)}.form-label{color:var(--gray-300)}.form-input,.form-textarea,.form-select{background:var(--gray-700);border-color:var(--gray-600);color:#fff}.form-input::placeholder,.form-textarea::placeholder{color:var(--gray-500)}.status-preview{background:var(--gray-700);border-color:var(--gray-600)}.btn-cancel{background:var(--gray-700);color:var(--gray-300);border-color:var(--gray-600)}.btn-cancel:hover:not(:disabled){background:var(--gray-600)}.form-actions{border-color:var(--gray-700)}}:root{--primary-50: #eff6ff;--primary-100: #dbeafe;--primary-200: #bfdbfe;--primary-300: #93c5fd;--primary-400: #60a5fa;--primary-500: #3b82f6;--primary-600: #2563eb;--primary-700: #1d4ed8;--primary-800: #1e40af;--primary-900: #1e3a8a;--neutral-50: #f9fafb;--neutral-100: #f3f4f6;--neutral-200: #e5e7eb;--neutral-300: #d1d5db;--neutral-400: #9ca3af;--neutral-500: #6b7280;--neutral-600: #4b5563;--neutral-700: #374151;--neutral-800: #1f2937;--neutral-900: #111827;--success-50: #ecfdf5;--success-100: #d1fae5;--success-500: #22c55e;--success-600: #16a34a;--success-700: #15803d;--warning-50: #fffbeb;--warning-100: #fef3c7;--warning-500: #f59e0b;--warning-600: #d97706;--warning-700: #b45309;--error-50: #fef2f2;--error-100: #fee2e2;--error-500: #ef4444;--error-600: #dc2626;--error-700: #b91c1c;--font-family-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-display: "Poppins", "Inter", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0em;--tracking-wide: .025em;--tracking-wider: .05em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-primary: 0 4px 14px 0 rgba(59, 130, 246, .15);--shadow-primary-lg: 0 10px 25px -3px rgba(59, 130, 246, .2), 0 4px 6px -2px rgba(59, 130, 246, .05);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}.project-list-container{max-width:1400px;margin:0 auto;padding:var(--space-6);font-family:var(--font-family-primary);background-color:var(--neutral-50);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-state,.error-state{display:flex;justify-content:center;align-items:center;min-height:400px;background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);margin:var(--space-6) 0;border:1px solid var(--neutral-100)}.loading-state p{color:var(--neutral-600);font-size:var(--text-base);font-weight:var(--font-medium);line-height:var(--leading-normal);letter-spacing:var(--tracking-tight)}.error-state p{color:var(--error-700);font-weight:var(--font-medium)}.project-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);padding:var(--space-8);background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);border:1px solid var(--neutral-100)}.project-list-title{font-family:var(--font-family-display);font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--neutral-900);margin:0;letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight)}.create-project-btn{background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-primary);font-family:var(--font-family-primary);letter-spacing:var(--tracking-wide);display:flex;align-items:center;gap:var(--space-2)}.create-project-btn:hover{background:var(--primary-700);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg)}.create-project-btn:active{transform:translateY(0);box-shadow:var(--shadow-primary)}.create-project-btn:focus{outline:2px solid var(--primary-500);outline-offset:2px}.empty-state{background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);border:1px solid var(--neutral-100);min-height:500px;display:flex;align-items:center;justify-content:center}.empty-state-content{text-align:center;padding:var(--space-16) var(--space-6);max-width:480px}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-6);opacity:.6}.empty-state-title{margin:0 0 var(--space-4) 0;font-family:var(--font-family-display);font-size:var(--text-2xl);color:var(--neutral-900);font-weight:var(--font-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.empty-state-description{margin:0 0 var(--space-8) 0;font-size:var(--text-base);color:var(--neutral-600);line-height:var(--leading-relaxed);max-width:420px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-8);letter-spacing:var(--tracking-normal)}.empty-state-btn{background:var(--primary-600);color:#fff;border:none;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-8);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-primary);font-family:var(--font-family-primary);letter-spacing:var(--tracking-wide)}.empty-state-btn:hover{background:var(--primary-700);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg)}.empty-state-btn:focus{outline:2px solid var(--primary-500);outline-offset:2px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:var(--space-6);list-style:none;padding:0;margin:0}.project-card{background:#fff;border-radius:var(--radius-2xl);padding:var(--space-6);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-normal);border:1px solid var(--neutral-100);position:relative;overflow:hidden}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--primary-200)}.project-card:active{transform:translateY(-1px);box-shadow:var(--shadow-md)}.project-card:focus{outline:2px solid var(--primary-500);outline-offset:2px}.project-delete-btn{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--error-500);color:#fff;border:none;border-radius:var(--radius-md);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);opacity:.8;transition:all var(--transition-fast);z-index:1;box-shadow:var(--shadow-sm)}.project-delete-btn:hover{opacity:1;background:var(--error-600);transform:scale(1.05);box-shadow:var(--shadow-md)}.project-delete-btn:disabled{background:var(--warning-500);cursor:not-allowed;transform:none}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5);margin-right:var(--space-12)}.project-name{font-family:var(--font-family-display);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--neutral-900);margin:0 0 var(--space-2) 0;line-height:var(--leading-tight);flex:1;letter-spacing:var(--tracking-tight)}.project-task-count{font-size:var(--text-xs);color:var(--neutral-600);background:var(--neutral-100);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xl);font-weight:var(--font-semibold);white-space:nowrap;text-transform:uppercase;letter-spacing:var(--tracking-wider);border:1px solid var(--neutral-200)}.project-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-5) 0;border-top:1px solid var(--neutral-100);border-bottom:1px solid var(--neutral-100)}.stat-item{text-align:center;padding:var(--space-2);border-radius:var(--radius-lg);transition:background-color var(--transition-fast)}.stat-item:hover{background-color:var(--neutral-50)}.stat-label{display:block;font-size:var(--text-xs);color:var(--neutral-500);text-transform:uppercase;letter-spacing:var(--tracking-wider);font-weight:var(--font-semibold);margin-bottom:var(--space-2);line-height:var(--leading-tight)}.stat-value{display:block;font-size:var(--text-2xl);font-weight:var(--font-bold);line-height:var(--leading-tight);font-family:var(--font-family-display);letter-spacing:var(--tracking-tight)}.stat-value.completed{color:var(--success-600)}.stat-value.in-progress{color:var(--primary-600)}.stat-value.todo{color:var(--neutral-500)}.completion-section{margin-top:var(--space-4)}.completion-rate-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.completion-label{font-size:var(--text-sm);color:var(--neutral-700);font-weight:var(--font-semibold);letter-spacing:var(--tracking-wide)}.completion-percentage{font-size:var(--text-sm);font-weight:var(--font-bold);font-family:var(--font-family-display);letter-spacing:var(--tracking-tight)}.progress-bar{background:var(--neutral-200);border-radius:var(--radius-xl);height:10px;overflow:hidden;position:relative;box-shadow:inset 0 1px 2px #0000001a}.progress-fill{height:100%;border-radius:var(--radius-xl);transition:width var(--transition-slow);position:relative;box-shadow:inset 0 1px #ffffff4d}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);border-radius:inherit}.progress-fill.complete{background:linear-gradient(90deg,var(--success-500),var(--success-600))}.progress-fill.high{background:linear-gradient(90deg,var(--primary-500),var(--primary-600))}.progress-fill.medium{background:linear-gradient(90deg,var(--warning-500),var(--warning-600))}.progress-fill.low{background:linear-gradient(90deg,var(--error-500),var(--error-600))}.completion-percentage{color:var(--neutral-700)}.project-card:has(.progress-fill.complete) .completion-percentage{color:var(--success-600)}.project-card:has(.progress-fill.high) .completion-percentage{color:var(--primary-600)}.project-card:has(.progress-fill.medium) .completion-percentage{color:var(--warning-600)}.project-card:has(.progress-fill.low) .completion-percentage{color:var(--error-600)}.spinner{width:40px;height:40px;border:4px solid var(--neutral-200);border-top:4px solid var(--primary-600);border-radius:50%;animation:spin 1s linear infinite}.error-container{display:flex;flex-direction:column;align-items:center;padding:var(--space-10) var(--space-6);text-align:center;background:var(--error-50);border:1px solid var(--error-200);border-radius:var(--radius-2xl);color:var(--error-800)}.error-icon{font-size:var(--space-12);margin-bottom:var(--space-4)}.error-title{margin:0 0 var(--space-3) 0;font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--error-900);font-family:var(--font-family-display);letter-spacing:var(--tracking-tight)}.error-message{margin:0 0 var(--space-4) 0;font-size:var(--text-base);color:var(--error-700);line-height:var(--leading-relaxed)}.retry-btn{padding:var(--space-3) var(--space-5);background:var(--error-600);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:all var(--transition-normal);font-family:var(--font-family-primary);letter-spacing:var(--tracking-wide);box-shadow:var(--shadow-sm)}.retry-btn:hover{background:var(--error-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}.retry-btn:focus{outline:2px solid var(--error-500);outline-offset:2px}@media (max-width: 1024px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-5)}.project-list-title{font-size:var(--text-2xl)}}@media (max-width: 768px){.project-list-container{padding:var(--space-4)}.project-list-header{flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-6)}.create-project-btn{align-self:stretch;text-align:center;justify-content:center}.project-list-title{font-size:var(--text-xl)}.projects-grid{grid-template-columns:1fr;gap:var(--space-4)}.project-card{padding:var(--space-5)}.project-stats{gap:var(--space-3)}}@media (max-width: 480px){.project-list-container{padding:var(--space-3)}.project-list-header{padding:var(--space-5)}.project-card{padding:var(--space-4)}.project-card-header{flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-right:var(--space-10)}.project-name{margin-right:0;margin-bottom:0;font-size:var(--text-lg)}.project-stats{grid-template-columns:repeat(3,1fr);gap:var(--space-2);padding:var(--space-3) 0}.stat-value{font-size:var(--text-xl)}.empty-state-content{padding:var(--space-12) var(--space-4)}.empty-state-title{font-size:var(--text-xl)}}.project-card:focus-visible{outline:2px solid var(--primary-600);outline-offset:2px}.create-project-btn:focus-visible,.empty-state-btn:focus-visible,.retry-btn:focus-visible{outline:2px solid var(--primary-600);outline-offset:2px}@media (prefers-reduced-motion: reduce){.project-card,.create-project-btn,.empty-state-btn,.progress-fill,.spinner,.project-delete-btn{transition:none;animation:none;transform:none!important}.project-card:hover{transform:none}}@media (prefers-color-scheme: dark){:root{--neutral-50: #0f172a;--neutral-100: #1e293b;--neutral-200: #334155;--neutral-300: #475569;--neutral-400: #64748b;--neutral-500: #94a3b8;--neutral-600: #cbd5e1;--neutral-700: #e2e8f0;--neutral-800: #f1f5f9;--neutral-900: #f8fafc}.project-list-container{background-color:var(--neutral-50)}.project-card,.project-list-header,.empty-state{background:var(--neutral-100);border-color:var(--neutral-200)}.project-task-count{background:var(--neutral-200);border-color:var(--neutral-300)}.stat-item:hover{background-color:var(--neutral-200)}}@media print{.project-list-container{background:#fff;padding:var(--space-4)}.create-project-btn,.empty-state-btn,.project-delete-btn{display:none}.project-card{box-shadow:none;border:1px solid var(--neutral-400);break-inside:avoid;margin-bottom:var(--space-5);page-break-inside:avoid}.projects-grid{grid-template-columns:1fr;gap:var(--space-4)}.project-list-title,.stat-value.completed,.stat-value.in-progress,.stat-value.todo,.completion-percentage{color:#000}}:root{--primary-teal: #14B8A6;--primary-teal-hover: #0F766E;--primary-teal-light: #5EEAD4;--primary-teal-bg: #F0FDFA;--bg-primary: #F9FAFB;--bg-secondary: #FFFFFF;--bg-tertiary: #F3F4F6;--text-primary: #111827;--text-secondary: #6B7280;--text-muted: #9CA3AF;--text-white: #FFFFFF;--border-light: #E5E7EB;--border-medium: #D1D5DB;--border-focus: #14B8A6;--status-todo: #F59E0B;--status-todo-bg: #FEF3C7;--status-todo-border: #FBBF24;--status-progress: #3B82F6;--status-progress-bg: #DBEAFE;--status-progress-border: #60A5FA;--status-done: #22C55E;--status-done-bg: #D1FAE5;--status-done-border: #4ADE80;--priority-low: #6B7280;--priority-low-bg: #F3F4F6;--priority-medium: #F59E0B;--priority-medium-bg: #FEF3C7;--priority-high: #EF4444;--priority-high-bg: #FEE2E2;--priority-urgent: #DC2626;--priority-urgent-bg: #FECACA;--project-active: #22C55E;--project-active-bg: #D1FAE5;--project-planning: #8B5CF6;--project-planning-bg: #F3E8FF;--project-hold: #F59E0B;--project-hold-bg: #FEF3C7;--project-completed: #22C55E;--project-completed-bg: #D1FAE5;--project-cancelled: #EF4444;--project-cancelled-bg: #FEE2E2;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.25rem;--space-2xl: 1.5rem;--space-3xl: 2rem;--space-4xl: 2.5rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0em;--letter-spacing-wide: .025em}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.task-board-container{max-width:1400px;margin:0 auto;padding:var(--space-3xl);min-height:100vh}.loading-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:400px;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);gap:var(--space-lg)}.spinner{width:40px;height:40px;border:4px solid var(--border-light);border-top:4px solid var(--primary-teal);border-radius:var(--radius-full);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-state p{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-secondary);letter-spacing:var(--letter-spacing-wide)}.error-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:400px;background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-4xl);text-align:center;border:1px solid var(--priority-high-bg)}.error-icon{color:var(--priority-high);margin-bottom:var(--space-lg)}.error-state h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-lg)}.error-state p{color:var(--priority-high);font-size:var(--font-size-base);margin-bottom:var(--space-sm)}.retry-btn{background:var(--priority-high);color:var(--text-white);border:none;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease;margin-top:var(--space-lg)}.retry-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4xl);background:var(--bg-secondary);padding:var(--space-4xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.project-info{flex:1;margin-right:var(--space-3xl);text-align:left}.project-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--space-lg) 0;letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.project-description{color:var(--text-secondary);font-size:var(--font-size-lg);margin:0 0 var(--space-2xl) 0;line-height:var(--line-height-relaxed);max-width:600px}.project-meta{display:flex;align-items:center;gap:var(--space-2xl);flex-wrap:wrap}.status-badge{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);border:1px solid transparent}.status-badge.active{background:var(--project-active-bg);color:var(--project-active);border-color:var(--status-done-border)}.status-badge.planning{background:var(--project-planning-bg);color:var(--project-planning);border-color:#c4b5fd}.status-badge.on_hold{background:var(--project-hold-bg);color:var(--project-hold);border-color:var(--status-todo-border)}.status-badge.completed{background:var(--project-completed-bg);color:var(--project-completed);border-color:var(--status-done-border)}.status-badge.cancelled{background:var(--project-cancelled-bg);color:var(--project-cancelled);border-color:#fca5a5}.due-date{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.due-date.overdue{color:var(--priority-high);font-weight:var(--font-weight-semibold)}.task-count-info{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.create-task-btn{background:var(--primary-teal);color:var(--text-white);border:none;padding:var(--space-xl) var(--space-3xl);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-md);white-space:nowrap}.create-task-btn:hover{background:var(--primary-teal-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.create-task-btn:active{transform:translateY(0)}.task-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-2xl);margin-bottom:var(--space-4xl)}.stat-card{background:var(--bg-secondary);padding:var(--space-3xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);text-align:center;transition:all .2s ease;border:1px solid var(--border-light);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.stat-card.total:before{background:var(--text-secondary)}.stat-card.todo:before{background:var(--status-todo)}.stat-card.progress:before{background:var(--status-progress)}.stat-card.done:before{background:var(--status-done)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-number{display:block;font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-sm);line-height:var(--line-height-tight)}.stat-label{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.kanban-board{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2xl);min-height:600px}.task-column{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid var(--border-light)}.task-column:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.task-column.todo:before{background:var(--status-todo)}.task-column.in_progress:before{background:var(--status-progress)}.task-column.done:before{background:var(--status-done)}.column-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2xl);border-bottom:1px solid var(--border-light);background:var(--bg-tertiary)}.column-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;letter-spacing:var(--letter-spacing-wide)}.task-count{background:var(--primary-teal);color:var(--text-white);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);min-width:24px;text-align:center}.task-list{flex:1;padding:var(--space-lg);overflow-y:auto;max-height:70vh;display:flex;flex-direction:column;gap:var(--space-lg);scrollbar-width:none;-ms-overflow-style:none}.task-list::-webkit-scrollbar{display:none}.empty-state{display:flex;justify-content:center;align-items:center;padding:var(--space-4xl);height:200px}.empty-state p{color:var(--text-muted);font-style:italic;font-size:var(--font-size-base);text-align:center}.task-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-xs);transition:all .2s ease;cursor:pointer;position:relative;overflow:hidden}.task-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--primary-teal-light)}.task-card.overdue{border-left:4px solid var(--priority-high);background:linear-gradient(90deg,var(--priority-high-bg) 0%,var(--bg-secondary) 100%)}.task-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg);gap:var(--space-lg)}.task-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;line-height:var(--line-height-normal);flex:1}.task-actions-header{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.priority-badge{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);white-space:nowrap}.priority-badge.low{background:var(--priority-low-bg);color:var(--priority-low)}.priority-badge.medium{background:var(--priority-medium-bg);color:var(--priority-medium)}.priority-badge.high{background:var(--priority-high-bg);color:var(--priority-high)}.priority-badge.urgent{background:var(--priority-urgent-bg);color:var(--priority-urgent)}.task-description{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--space-2xl) 0;line-height:var(--line-height-relaxed);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2xl);gap:var(--space-lg);flex-wrap:wrap}.assignee{display:flex;align-items:center;gap:var(--space-md)}.assignee-avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--primary-teal);color:var(--text-white);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.assignee-name{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.task-meta .due-date{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--text-muted);background:var(--bg-tertiary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.task-meta .due-date.overdue{background:var(--priority-high-bg);color:var(--priority-high);font-weight:var(--font-weight-semibold)}.task-actions{display:flex;justify-content:center;gap:var(--space-sm);border-top:1px solid var(--border-light);padding-top:var(--space-2xl);margin-top:var(--space-lg)}.action-btn{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;transition:all .2s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.action-btn:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-medium);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--bg-tertiary)}.action-btn.prev:hover:not(:disabled){border-color:var(--status-todo);color:var(--status-todo)}.action-btn.edit:hover:not(:disabled){border-color:var(--primary-teal);color:var(--primary-teal)}.action-btn.comments:hover:not(:disabled){border-color:var(--status-progress);color:var(--status-progress)}.action-btn.next:hover:not(:disabled){border-color:var(--status-done);color:var(--status-done)}.action-btn.delete{border-color:var(--priority-high-bg);color:var(--priority-high)}.action-btn.delete:hover:not(:disabled){background:var(--priority-high-bg);border-color:var(--priority-high)}.action-btn.delete.deleting{background:var(--status-todo-bg);border-color:var(--status-todo);color:var(--status-todo);cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#111827b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-2xl);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out;border:1px solid var(--border-light)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3xl);border-bottom:1px solid var(--border-light);background:var(--bg-tertiary)}.modal-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;letter-spacing:var(--letter-spacing-tight)}.close-btn{background:none;border:none;font-size:var(--font-size-3xl);color:var(--text-muted);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-md);transition:all .2s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:var(--text-secondary);background:var(--border-light)}.task-form{padding:var(--space-3xl)}.form-group{margin-bottom:var(--space-3xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-md);letter-spacing:var(--letter-spacing-wide)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-xl);border:1px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-secondary);transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #14b8a61a}.form-group textarea{resize:vertical;min-height:100px;line-height:var(--line-height-relaxed)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-lg);border-top:1px solid var(--border-light);padding-top:var(--space-3xl);margin-top:var(--space-3xl)}.cancel-btn,.submit-btn{padding:var(--space-xl) var(--space-3xl);border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);cursor:pointer;transition:all .2s ease;border:none;min-width:120px}.cancel-btn{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-light)}.cancel-btn:hover:not(:disabled){background:var(--border-light);color:var(--text-primary)}.submit-btn{background:var(--primary-teal);color:var(--text-white)}.submit-btn:hover:not(:disabled){background:var(--primary-teal-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.submit-btn:disabled{background:var(--text-muted);cursor:not-allowed}@media (max-width: 1200px){.kanban-board{grid-template-columns:1fr;gap:var(--space-2xl)}.task-column{max-height:none}.task-list{max-height:400px}}@media (max-width: 768px){.task-board-container{padding:var(--space-2xl)}.project-header{flex-direction:column;align-items:stretch;gap:var(--space-2xl);padding:var(--space-2xl)}.project-info{margin-right:0}.project-title{font-size:var(--font-size-3xl)}.project-meta{gap:var(--space-lg)}.create-task-btn{justify-content:center;padding:var(--space-2xl) var(--space-3xl)}.task-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.stat-card{padding:var(--space-2xl)}.task-card{padding:var(--space-lg)}.task-header{flex-direction:column;align-items:stretch;gap:var(--space-lg)}.task-actions-header{justify-content:space-between}.task-meta{flex-direction:column;align-items:stretch;gap:var(--space-md)}.task-actions{flex-wrap:wrap;gap:var(--space-md)}.form-row{grid-template-columns:1fr;gap:var(--space-2xl)}.modal-overlay{padding:var(--space-lg)}.modal-header,.task-form{padding:var(--space-2xl)}.form-actions{flex-direction:column-reverse;gap:var(--space-lg)}.cancel-btn,.submit-btn{width:100%}}@media (max-width: 480px){.task-board-container,.project-header{padding:var(--space-lg)}.project-title{font-size:var(--font-size-2xl)}.task-stats{grid-template-columns:1fr}.stat-card{padding:var(--space-lg)}.stat-number{font-size:var(--font-size-3xl)}.task-card{padding:var(--space-lg)}.task-list{padding:var(--space-md)}.column-header{padding:var(--space-lg)}.modal-header h2{font-size:var(--font-size-xl)}.form-group input,.form-group textarea,.form-group select{padding:var(--space-lg)}}@media (prefers-color-scheme: dark){:root{--bg-primary: #0F172A;--bg-secondary: #1E293B;--bg-tertiary: #334155;--text-primary: #F1F5F9;--text-secondary: #CBD5E1;--text-muted: #64748B;--border-light: #334155;--border-medium: #475569}}@media (prefers-contrast: high){:root{--border-light: #000000;--border-medium: #000000;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.task-board-container{background:#fff;padding:0;box-shadow:none}.kanban-board{grid-template-columns:1fr;gap:var(--space-lg)}.task-actions,.create-task-btn,.modal-overlay{display:none}.task-card{box-shadow:none;border:2px solid var(--border-medium);break-inside:avoid;margin-bottom:var(--space-lg)}.project-header{box-shadow:none;border:2px solid var(--border-medium)}}
