.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:20px;padding:48px 40px;max-width:420px;width:100%;text-align:center;box-shadow:0 20px 60px #0003}.login-logo{display:flex;justify-content:center;margin-bottom:16px}.login-title{font-size:32px;font-weight:700;color:#111827;margin-bottom:8px}.login-subtitle{color:#6b7280;font-size:16px;margin-bottom:32px}.login-features{display:flex;flex-direction:column;gap:12px;margin-bottom:36px;text-align:left}.feature-item{display:flex;align-items:center;gap:10px;font-size:14px;color:#374151;background:#f9fafb;padding:10px 14px;border-radius:8px}.feature-icon{font-size:18px}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 20px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;font-size:15px;font-weight:600;color:#374151;transition:all .2s;margin-bottom:20px}.google-btn:hover{border-color:#6366f1;background:#f5f5ff;transform:translateY(-1px);box-shadow:0 4px 12px #6366f126}.login-footer{font-size:13px;color:#9ca3af}.navbar{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.navbar-inner{max-width:1400px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between}.navbar-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:var(--text)}.navbar-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}.user-details{display:flex;flex-direction:column;line-height:1.3}.user-name{font-size:14px;font-weight:600;color:var(--text)}.user-email{font-size:12px;color:var(--text-secondary)}.logout-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);transition:all .2s}.logout-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-light)}@media (max-width: 600px){.user-details,.logout-btn span{display:none}}.project-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:all .2s;position:relative;overflow:hidden;border:2px solid transparent}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card.selected{border-color:var(--card-color);box-shadow:0 0 0 4px #6366f11a,var(--shadow-md)}.card-color-bar{height:4px;background:var(--card-color);width:100%}.card-header{padding:16px 16px 8px}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.card-title{font-size:16px;font-weight:600;color:var(--text);line-height:1.3;flex:1}.card-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s;flex-shrink:0}.project-card:hover .card-actions{opacity:1}.action-btn{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text-secondary);transition:all .15s}.action-btn:hover{background:var(--primary-light);color:var(--primary)}.action-btn-danger:hover{background:var(--danger-light);color:var(--danger)}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.card-description{padding:0 16px 12px;font-size:13px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-footer{padding:12px 16px 16px;border-top:1px solid var(--border)}.task-progress{margin-bottom:8px}.progress-info{display:flex;justify-content:space-between;margin-bottom:6px}.progress-label{font-size:12px;color:var(--text-secondary);font-weight:500}.progress-pct{font-size:12px;color:var(--text-secondary);font-weight:600}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.card-date{font-size:11px;color:var(--text-secondary);margin-top:8px}.selected-indicator{position:absolute;bottom:8px;right:12px;font-size:11px;color:var(--primary);font-weight:500}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:16px;width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:18px;font-weight:700;color:var(--text)}.modal-close{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-secondary);background:var(--bg);transition:all .15s}.modal-close:hover{background:var(--border);color:var(--text)}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text);background:#fff;transition:border-color .2s}.form-input:focus{border-color:var(--primary)}.form-textarea{resize:vertical;min-height:80px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.color-picker{display:flex;flex-wrap:wrap;gap:8px}.color-dot{width:28px;height:28px;border-radius:50%;border:3px solid transparent;transition:all .15s;position:relative}.color-dot:hover{transform:scale(1.15)}.color-dot.selected{border-color:var(--text);transform:scale(1.1)}.form-error{padding:10px 14px;background:var(--danger-light);border:1px solid #fca5a5;border-radius:8px;font-size:13px;color:var(--danger);margin-bottom:16px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.btn-secondary{padding:9px 18px;background:#fff;border:1px solid var(--border);border-radius:8px;font-size:14px;font-weight:600;color:var(--text-secondary);transition:all .15s}.btn-secondary:hover{background:var(--bg);color:var(--text)}.task-panel{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--border);height:fit-content;position:sticky;top:80px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden}.task-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.task-panel-title{display:flex;align-items:center;gap:10px}.task-panel-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.task-panel-title h3{font-size:15px;font-weight:600;color:var(--text);line-height:1.2}.task-panel-sub{font-size:12px;color:var(--text-secondary)}.panel-close{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg);font-size:14px;transition:all .15s}.panel-close:hover{background:var(--border);color:var(--text)}.task-panel-progress{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg)}.task-progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.task-progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.task-progress-pct{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:30px;text-align:right}.add-task-form{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.add-task-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text);transition:border-color .2s}.add-task-input:focus{border-color:var(--primary)}.add-task-btn{width:34px;height:34px;background:var(--primary);color:#fff;border-radius:8px;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.add-task-btn:hover:not(:disabled){background:var(--primary-dark)}.add-task-btn:disabled{opacity:.5;cursor:not-allowed}.task-list{overflow-y:auto;padding:8px 0;flex:1}.task-loading,.task-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;color:var(--text-secondary);font-size:13px;gap:4px;text-align:center}.task-section-label{padding:8px 16px 4px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.task-item{display:flex;align-items:center;gap:10px;padding:8px 16px;transition:background .15s;group:true}.task-item:hover{background:var(--bg)}.task-check{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;background:#fff;color:#fff}.task-item.done .task-check{background:var(--success);border-color:var(--success)}.task-check:hover{border-color:var(--primary)}.task-title{flex:1;font-size:13px;color:var(--text);line-height:1.4}.task-item.done .task-title{text-decoration:line-through;color:var(--text-secondary)}.task-delete{opacity:0;width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s}.task-item:hover .task-delete{opacity:1}.task-delete:hover{background:var(--danger-light);color:var(--danger)}.add-task-assignee{height:34px;padding:0 6px;border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text);background:#fff;cursor:pointer;max-width:110px;flex-shrink:0}.add-task-assignee:focus{border-color:var(--primary);outline:none}.task-assignee-wrap{position:relative;width:24px;height:24px;flex-shrink:0;cursor:pointer}.task-assignee-select{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;z-index:1;width:100%;height:100%}.task-assignee-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}.task-assignee-initials{width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}.task-assignee-empty{width:24px;height:24px;border-radius:50%;border:1.5px dashed var(--border);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:border-color .15s}.task-item:hover .task-assignee-empty{border-color:var(--primary);color:var(--primary)}.members-row{padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.members-avatars{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.member-slot{position:relative}.member-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid white;box-shadow:0 0 0 1px var(--border);display:block}.member-initials{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 0 0 1px var(--border)}.member-remove{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--danger, #ef4444);color:#fff;font-size:8px;display:none;align-items:center;justify-content:center;line-height:1}.member-slot:hover .member-remove{display:flex}.member-invite-btn{width:28px;height:28px;border-radius:50%;border:1.5px dashed var(--primary);color:var(--primary);font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1}.member-invite-btn:hover{background:var(--primary);color:#fff}.invite-form{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.invite-input{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text)}.invite-input:focus{border-color:var(--primary);outline:none}.invite-submit{padding:6px 12px;background:var(--primary);color:#fff;border-radius:8px;font-size:12px;font-weight:600;transition:all .15s}.invite-submit:hover:not(:disabled){opacity:.85}.invite-submit:disabled{opacity:.5;cursor:not-allowed}.invite-error{width:100%;font-size:11px;color:var(--danger, #ef4444);margin:2px 0 0}.dashboard{min-height:100vh;background:var(--bg)}.dashboard-main{max-width:1400px;margin:0 auto;padding:32px 24px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:#fff;border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);border-left:4px solid #e5e7eb;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-active{border-left-color:#6366f1}.stat-completed{border-left-color:#22c55e}.stat-tasks{border-left-color:#f59e0b}.stat-value{font-size:28px;font-weight:700;color:var(--text)}.stat-label{font-size:13px;color:var(--text-secondary);font-weight:500}.projects-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.projects-header-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.section-title{font-size:20px;font-weight:700;color:var(--text)}.filter-tabs{display:flex;gap:4px;background:#fff;padding:4px;border-radius:8px;border:1px solid var(--border)}.filter-tab{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);background:transparent;transition:all .15s}.filter-tab:hover{color:var(--text);background:var(--bg)}.filter-tab.active{background:var(--primary);color:#fff}.projects-header-right{display:flex;align-items:center;gap:12px}.search-input{padding:8px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;color:var(--text);width:220px;transition:border-color .2s}.search-input:focus{border-color:var(--primary)}.btn-primary{padding:9px 18px;background:var(--primary);color:#fff;border-radius:8px;font-size:14px;font-weight:600;transition:all .2s;white-space:nowrap}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.projects-layout{display:grid;grid-template-columns:1fr;gap:24px}.projects-layout:has(.task-panel){grid-template-columns:1fr 380px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{font-size:18px;color:var(--text);margin-bottom:8px}.empty-state p{margin-bottom:20px}@media (max-width: 900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.projects-layout:has(.task-panel){grid-template-columns:1fr}}@media (max-width: 600px){.dashboard-main{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.projects-header{flex-direction:column;align-items:flex-start}.search-input{width:100%}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #eef2ff;--danger: #ef4444;--danger-light: #fee2e2;--success: #22c55e;--success-light: #dcfce7;--warning: #f59e0b;--text: #111827;--text-secondary: #6b7280;--border: #e5e7eb;--bg: #f9fafb;--card: #ffffff;--radius: 12px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px 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)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}button{cursor:pointer;font-family:inherit;border:none;outline:none}input,textarea{font-family:inherit;outline:none}a{text-decoration:none;color:inherit}
