:root{--primary: #4f46e5;--primary-hover: #4338ca;--primary-light: #eef2ff;--bg: #f9fafb;--surface: #ffffff;--border: #e5e7eb;--text: #111827;--text-secondary: #6b7280;--text-light: #9ca3af;--success: #10b981;--success-light: #ecfdf5;--warning: #f59e0b;--warning-light: #fffbeb;--danger: #ef4444;--danger-light: #fef2f2;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=dark]{--primary: #818cf8;--primary-hover: #6366f1;--primary-light: #1e1b4b;--bg: #0f172a;--surface: #1e293b;--border: #334155;--text: #f1f5f9;--text-secondary: #94a3b8;--text-light: #64748b;--success: #34d399;--success-light: #064e3b;--warning: #fbbf24;--warning-light: #451a03;--danger: #f87171;--danger-light: #450a0a;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .25)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.125rem;color:var(--text-secondary)}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.auth-container{width:100%;max-width:420px}.auth-card{background:var(--surface);border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-md);position:relative}.auth-logo{font-size:1.75rem;font-weight:700;color:var(--primary);text-align:center;letter-spacing:2px;margin-bottom:.25rem}.auth-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem}.auth-link{text-align:center;margin-top:1.25rem;font-size:.875rem;color:var(--text-secondary)}.remember-forgot-row{display:flex;align-items:center;justify-content:space-between;margin:.75rem 0 1rem;font-size:.8125rem}.remember-me{display:flex;align-items:center;gap:.4rem;color:var(--text-secondary);cursor:pointer;font-weight:500}.remember-me input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;margin:0}.forgot-link{color:var(--primary);font-size:.8125rem;font-weight:500}.forgot-link:hover{text-decoration:underline}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:2.75rem}.password-toggle{position:absolute;right:.5rem;background:none;border:none;cursor:pointer;font-size:1.15rem;padding:.25rem;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);line-height:1}.password-toggle:hover{color:var(--text)}.app-layout{display:flex;flex-direction:column;height:100vh}.app-body{display:flex;flex:1;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.header-logo{font-size:1.25rem;font-weight:700;color:var(--primary);letter-spacing:2px}.header-right{display:flex;align-items:center;gap:1rem}.header-user{font-size:.875rem;color:var(--text-secondary);font-weight:500}.sidebar{width:260px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;padding:1rem 0}.sidebar-nav{padding:0 .75rem;margin-bottom:1.5rem}.sidebar-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius);color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s}.sidebar-link:hover{background:var(--primary-light);color:var(--primary);text-decoration:none}.sidebar-link.active{background:var(--primary-light);color:var(--primary)}.sidebar-icon{font-size:1rem}.sidebar-section{padding:0 .75rem}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 .75rem;margin-bottom:.5rem}.sidebar-section-header h3{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-light);letter-spacing:.5px}.project-nav-list{list-style:none}.sidebar-project{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:var(--radius);color:var(--text-secondary);font-size:.85rem;text-decoration:none;transition:all .15s}.sidebar-project:hover{background:var(--bg);text-decoration:none}.sidebar-project.active{background:var(--primary-light);color:var(--primary)}.project-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:.5;flex-shrink:0}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-count{font-size:.75rem;color:var(--text-light);background:var(--bg);padding:.125rem .5rem;border-radius:10px}.main-content{flex:1;overflow-y:auto;padding:2rem}.page{max-width:900px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.page-header h2{font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:.25rem}.section-title{font-size:1.1rem;font-weight:600;margin:2rem 0 1rem}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:var(--font)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-full{width:100%;justify-content:center;padding:.625rem}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius);background:transparent;color:var(--text-light);cursor:pointer;font-size:1rem;transition:all .15s}.btn-icon:hover{background:var(--bg);color:var(--text)}.btn-danger-icon:hover{background:var(--danger-light);color:var(--danger)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;font-family:var(--font);background:var(--surface);color:var(--text);transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.form-group textarea{resize:vertical}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem}.inline-form input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;font-family:var(--font);margin-bottom:.5rem}.inline-form input:focus{outline:none;border-color:var(--primary)}.task-form h3{font-size:1rem;font-weight:600;margin-bottom:1rem}.error-message{background:var(--danger-light);color:var(--danger);padding:.5rem .75rem;border-radius:var(--radius);font-size:.8125rem;margin-bottom:1rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;cursor:pointer;transition:all .15s}.project-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.project-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.project-card h3{font-size:1rem;font-weight:600}.project-card-desc{color:var(--text-secondary);font-size:.8125rem;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card-stats{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.5rem}.progress-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}.progress-bar.large{height:8px;border-radius:4px}.progress-fill{height:100%;background:var(--primary);border-radius:inherit;transition:width .3s ease}.progress-text{font-size:.75rem;color:var(--text-light);margin-top:.25rem;display:inline-block}.project-progress-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.5rem}.progress-stats{display:flex;justify-content:space-between;font-size:.8125rem;color:var(--text-secondary);margin-bottom:.5rem}.filters-bar{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.filters-bar select{padding:.4rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.8125rem;font-family:var(--font);background:var(--surface);color:var(--text);cursor:pointer}.filters-bar select:focus{outline:none;border-color:var(--primary)}.task-list{display:flex;flex-direction:column;gap:.5rem}.task-card{display:flex;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem;transition:all .15s}.task-card:hover{border-color:var(--primary)}.task-card.task-done{opacity:.6}.task-card.task-done .task-title{text-decoration:line-through}.task-card-left{display:flex;gap:.75rem;flex:1;min-width:0}.status-checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.875rem;background:transparent;flex-shrink:0;margin-top:2px;transition:all .15s}.status-checkbox.status-todo{border-color:var(--text-light);color:var(--text-light)}.status-checkbox.status-progress{border-color:var(--warning);color:var(--warning);background:var(--warning-light)}.status-checkbox.status-done{border-color:var(--success);color:#fff;background:var(--success)}.task-card-content{flex:1;min-width:0}.task-title{font-size:.9rem;font-weight:500;margin-bottom:.25rem}.task-desc{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.task-card-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s}.task-card:hover .task-card-actions{opacity:1}.task-due{font-size:.75rem;color:var(--text-secondary)}.task-due.overdue{color:var(--danger);font-weight:500}.badge{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.priority-low{background:var(--success-light);color:var(--success)}.priority-medium{background:var(--warning-light);color:var(--warning)}.priority-high{background:var(--danger-light);color:var(--danger)}.status-todo{background:var(--bg);color:var(--text-secondary)}.status-progress{background:var(--warning-light);color:var(--warning)}.status-done{background:var(--success-light);color:var(--success)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.25rem 0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700;color:var(--text);line-height:1;margin-bottom:.375rem}.stat-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500}.stat-todo .stat-number{color:var(--text-secondary)}.stat-progress .stat-number{color:var(--warning)}.stat-done .stat-number{color:var(--success)}.empty-state{text-align:center;color:var(--text-light);padding:3rem 1rem;font-size:.9rem}.mobile-menu-btn{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:.25rem}.mobile-menu-btn svg{width:24px;height:24px}.mobile-menu-btn:hover{color:var(--primary)}.mobile-overlay{display:none;position:fixed;top:56px;left:0;right:0;bottom:0;background:#0006;z-index:40}.mobile-overlay.mobile-open{display:block}@media(max-width:768px){.mobile-menu-btn{display:flex;align-items:center;justify-content:center;margin-right:.5rem}.header-left{display:flex;align-items:center}.header-right{gap:.5rem}.header-user{display:none}.sidebar{position:fixed;top:56px;left:0;bottom:0;z-index:50;transform:translate(-100%);transition:transform .3s ease;display:block;width:260px;background:var(--surface);border-right:1px solid var(--border)}.sidebar.mobile-open{transform:translate(0)}.main-content{padding:1rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-row,.project-grid{grid-template-columns:1fr}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .2s;flex-shrink:0}.theme-toggle:hover{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.theme-toggle svg{width:18px;height:18px}.auth-theme-toggle{position:fixed;top:1.25rem;right:1.25rem;z-index:100}[data-theme=dark] .auth-wrapper{background:linear-gradient(135deg,#1e1b4b,#312e81)}.auth-step-desc{text-align:center;color:var(--text-secondary);font-size:.85rem;margin-bottom:1.25rem}.otp-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:1.5rem}.otp-step{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;border:2px solid var(--border);color:var(--text-light);background:var(--surface);transition:all .2s}.otp-step.active{border-color:var(--primary);color:#fff;background:var(--primary)}.otp-step.completed{border-color:var(--success);color:#fff;background:var(--success)}.otp-step-line{width:40px;height:2px;background:var(--border);transition:background .2s}.otp-step-line.completed{background:var(--success)}.otp-input{text-align:center;font-size:1.5rem!important;letter-spacing:8px;font-weight:600}.success-message{background:var(--success-light);color:var(--success);padding:.5rem .75rem;border-radius:var(--radius);font-size:.8125rem;margin-bottom:1rem;text-align:center}.btn:disabled{opacity:.6;cursor:not-allowed}
