:root{--bg:#f4f6fb;--surface:#fff;--text:#1e293b;--muted:#64748b;--border:#e2e8f0;--primary:#4f46e5;--primary-hover:#4338ca;--danger:#dc2626;--shadow:0 10px 30px #0f172a14;--radius:12px;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,select,textarea{font:inherit}code{color:#4338ca;background:#eef2ff;border-radius:4px;padding:.1rem .35rem;font-size:.9em}.logo-dot{background:linear-gradient(135deg,#6366f1,#22d3ee);border-radius:50%;width:10px;height:10px;display:inline-block}.login-page{background:radial-gradient(circle at top right, #6366f11f, transparent 40%), radial-gradient(circle at bottom left, #22d3ee1a, transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);width:min(420px,100%);box-shadow:var(--shadow);padding:2rem}.login-brand h1{margin:.5rem 0 .25rem;font-size:1.75rem}.login-brand p{color:var(--muted);margin:0 0 1.5rem}.login-card label{margin:.75rem 0 .35rem;font-size:.875rem;font-weight:600;display:block}.login-card input{border:1px solid var(--border);border-radius:8px;width:100%;padding:.65rem .75rem}.login-card button[type=submit]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:1.25rem;padding:.75rem;font-weight:600}.login-card button[type=submit]:hover:not(:disabled){background:var(--primary-hover)}.login-card button:disabled{opacity:.7;cursor:not-allowed}.login-hint{text-align:center;color:var(--muted);margin:1.25rem 0 0;font-size:.875rem}.app-shell{min-height:100vh;padding:1rem 1.25rem 2rem}.topbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.topbar-left{align-items:center;gap:.6rem;display:flex}.topbar-left h1{margin:0;font-size:1.15rem}.topbar-center{flex:1}.topbar-center select{border:1px solid var(--border);border-radius:8px;min-width:220px;padding:.5rem .65rem}.topbar-right{align-items:center;gap:.75rem;display:flex}.user-badge{color:var(--muted);font-size:.9rem}.stats-bar{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:1rem 0;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:.85rem 1rem;display:flex}.stat-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.stat-card strong{font-size:1.5rem}.board-toolbar{justify-content:space-between;align-items:center;margin:.5rem 0 1rem;display:flex}.board-toolbar h2{margin:0}.board-toolbar button,.modal-actions button[type=submit],.comment-form button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;font-weight:600}.btn-secondary{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:.55rem 1rem}.kanban{grid-template-columns:repeat(4,minmax(240px,1fr));gap:1rem;padding-bottom:.5rem;display:grid;overflow-x:auto}.kanban-column{border-radius:var(--radius);background:#eef2ff;min-height:420px;padding:.75rem}.kanban-column header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.kanban-column h3{margin:0;font-size:.95rem}.kanban-column .count{color:var(--muted);background:#fff;border-radius:999px;padding:.15rem .55rem;font-size:.8rem}.kanban-cards{flex-direction:column;gap:.65rem;display:flex}.task-card{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;width:100%;padding:.75rem;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #0f172a0a}.task-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a14}.task-card-top{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.task-card h4{margin:0 0 .35rem;font-size:.95rem}.task-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;display:-webkit-box;overflow:hidden}.task-due{color:var(--muted);font-size:.75rem}.priority-badge{text-transform:uppercase;border-radius:999px;padding:.15rem .45rem;font-size:.68rem;font-weight:700}.priority-low{color:#047857;background:#ecfdf5}.priority-medium{color:#1d4ed8;background:#eff6ff}.priority-high{color:#c2410c;background:#fff7ed}.priority-critical{color:#b91c1c;background:#fef2f2}.modal-overlay{z-index:100;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:calc(var(--radius) + 2px);width:min(560px,100%);max-height:90vh;box-shadow:var(--shadow);padding:1.25rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-header h2{margin:0}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:1.1rem}.modal label{margin:.65rem 0 .3rem;font-size:.85rem;font-weight:600;display:block}.modal input,.modal select,.modal textarea{border:1px solid var(--border);border-radius:8px;width:100%;padding:.55rem .65rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.comments-section{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.comments-section h3{margin:0 0 .75rem;font-size:.95rem}.comments-list{flex-direction:column;gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.comments-list li{background:#f8fafc;border-radius:8px;flex-direction:column;gap:.15rem;padding:.55rem .65rem;font-size:.9rem;display:flex}.comments-list strong{color:var(--muted);font-size:.8rem}.comment-form{gap:.5rem;display:flex}.comment-form input{border:1px solid var(--border);border-radius:8px;flex:1;padding:.5rem .65rem}.alert{border-radius:8px;margin-bottom:.5rem;padding:.65rem .75rem;font-size:.9rem}.alert-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.loading-screen{min-height:100vh;color:var(--muted);place-items:center;display:grid}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=900px){.kanban{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (width<=560px){.kanban{grid-template-columns:1fr}.topbar-center select{width:100%}}
