:root{--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eef2ff;--accent-on-soft:#4338ca;--accent-border:#c7d2fe;--bg:#fff;--bg-subtle:#f7f8fa;--surface:#fff;--hover-bg:#eff0f4;--border:#e6e8ee;--text:#1a1d27;--text-muted:#5b6273;--chip-bg:#e8eaf0;--chip-text:#40485c;--danger:#dc2626;--danger-soft:#fef2f2;--warn:#b45309;--warn-soft:#fffbeb;--ok:#15803d;--ok-soft:#e7f6ec;--radius:8px;--shadow-card:0 1px 2px #1018280f;--shadow-pop:0 10px 30px #10182824}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:#2a2f52;--accent-on-soft:#a5b4fc;--accent-border:#4a4f8a;--bg:#12141b;--bg-subtle:#181b24;--surface:#1c1f2a;--hover-bg:#232735;--border:#2c3040;--text:#e8eaf2;--text-muted:#9198ad;--chip-bg:#2c3040;--chip-text:#c3c9d8;--danger:#f87171;--danger-soft:#3a1d20;--warn:#e0a10c;--warn-soft:#33290f;--ok:#4ade80;--ok-soft:#16351f;--shadow-card:0 1px 2px #0006;--shadow-pop:0 10px 30px #00000080}}:root[data-theme=dark]{--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:#2a2f52;--accent-on-soft:#a5b4fc;--accent-border:#4a4f8a;--bg:#12141b;--bg-subtle:#181b24;--surface:#1c1f2a;--hover-bg:#232735;--border:#2c3040;--text:#e8eaf2;--text-muted:#9198ad;--chip-bg:#2c3040;--chip-text:#c3c9d8;--danger:#f87171;--danger-soft:#3a1d20;--warn:#e0a10c;--warn-soft:#33290f;--ok:#4ade80;--ok-soft:#16351f;--shadow-card:0 1px 2px #0006;--shadow-pop:0 10px 30px #00000080}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:5px 12px;transition:background .12s,border-color .12s}button:hover{background:var(--bg-subtle)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{color:var(--text-muted);background:0 0;border:none;padding:2px 6px}button.ghost:hover{color:var(--danger);background:0 0}button.icon{justify-content:center;align-items:center;padding:5px;line-height:0;display:inline-flex}button.ghost.icon{border-radius:6px;padding:3px}button.ghost.icon:hover{background:var(--danger-soft)}button.with-icon{align-items:center;gap:6px;display:inline-flex}input,select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:5px 9px}select{appearance:none;cursor:pointer;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='%235b6273' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:26px}select:disabled{cursor:default;opacity:.55}input[type=date]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.9}input:focus,select:focus{outline:2px solid var(--accent-border);border-color:var(--accent)}.layout{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--bg-subtle);flex-direction:column;flex-shrink:0;gap:20px;width:264px;padding:16px;display:flex}.main{flex:1;min-width:0;padding:20px 28px}.brand{align-items:center;gap:8px;font-size:15px;font-weight:650;display:flex}.user-email{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}@media (width<=720px){.user-email{display:none}}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 6px;font-size:11px;font-weight:600}.sidebar-bottom-btn{color:var(--accent-on-soft);border-color:var(--accent-border);background:var(--accent-soft);justify-content:center;margin-top:auto}.sidebar-bottom-btn:hover{background:var(--accent-border)}.list-item{border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.list-item:hover{background:var(--hover-bg)}.list-item.active{background:var(--accent-soft);color:var(--accent-on-soft);font-weight:500}.list-item .ghost{opacity:0}.list-item:hover .ghost{opacity:1}.row-form{gap:6px;display:flex}.row-form input{flex:1;min-width:0}.muted{color:var(--text-muted);font-size:12px}.error{color:var(--danger);font-size:12px}.badge{background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:500}.badge-owner{background:var(--accent-soft);color:var(--accent-on-soft)}.tabs{border-bottom:1px solid var(--border);align-items:center;gap:4px;margin-bottom:16px;display:flex}.tabs-scroll{scrollbar-width:thin;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.tabs-scroll .tab{white-space:nowrap;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.tabs-scroll .tab:hover{color:var(--text);background:0 0}.tabs-scroll .tab.active{color:var(--accent-on-soft);border-bottom-color:var(--accent);font-weight:500}.tab-del{color:var(--text-muted);opacity:.5;background:0 0;border:none;border-radius:4px;align-items:center;padding:1px 2px;line-height:0;display:inline-flex}.tab-del:hover{color:var(--danger);background:var(--danger-soft);opacity:1}.tabs button{color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px}.tabs button.active{color:var(--accent-on-soft);border-bottom-color:var(--accent);font-weight:500}.tabs button:hover{color:var(--text);background:0 0}.kanban{grid-template-columns:repeat(3,minmax(230px,1fr));align-items:start;gap:14px;display:grid}.kanban-col{background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;min-height:260px;padding:10px;transition:border-color .12s,background .12s}.kanban-col.drag-over{border-color:var(--accent);background:var(--accent-soft)}.kanban-col-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);align-items:center;gap:6px;margin:2px 2px 10px;font-size:12px;font-weight:600;display:flex}.card{background:var(--surface);border:1px solid var(--border);cursor:grab;box-shadow:var(--shadow-card);border-radius:10px;flex-direction:column;gap:8px;margin-bottom:8px;padding:10px 12px;display:flex}.card:active{cursor:grabbing}.card.dragging{opacity:.5}.card.locked{cursor:default}.segmented{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;gap:2px;padding:2px;display:flex}.segmented button{color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:3px 12px;font-size:12px}.segmented button:hover{background:#eceef2}.segmented button.active{background:var(--bg);color:var(--accent-on-soft);box-shadow:var(--shadow-card);font-weight:600}.nav-segmented button{padding:5px 16px;font-size:14px}.list-view{max-width:980px}.list-row{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:7px 8px;display:grid}.list-row:hover{background:var(--bg-subtle)}.list-row.done .list-title{color:var(--text-muted);text-decoration:line-through}.list-row .ghost{opacity:0}.list-row:hover .ghost{opacity:1}.list-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.list-meta{justify-self:end}.empty-create{text-align:center;flex-direction:column;align-items:center;max-width:460px;margin:64px auto 0;display:flex}.empty-create .row-form{justify-content:center;width:100%}.prio-chip{white-space:nowrap;border:1px solid var(--border);color:var(--text-muted);background:0 0;border-radius:999px;align-items:center;gap:5px;padding:0 8px 0 6px;font-size:11px;font-weight:500;display:inline-flex}.prio-chip:before{content:"";border-radius:999px;width:7px;height:7px}.prio-high:before{background:var(--danger)}.prio-medium:before{background:#f59e0b}.prio-low:before{background:#3b82f6}.card-title{overflow-wrap:anywhere;font-weight:500;line-height:1.35}.card-meta{flex-wrap:wrap;align-items:center;gap:6px;min-height:24px;display:flex}.meta-display{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.meta-edit{flex-wrap:wrap;align-items:center;gap:6px;display:none}.card.editing .meta-display,.list-row.editing .meta-display{display:none}.card.editing .meta-edit,.list-row.editing .meta-edit{display:flex}.card-actions,.list-actions{flex-shrink:0;gap:2px;display:flex}.card-actions .ghost,.list-actions .ghost{opacity:.35}.card:hover .card-actions .ghost,.card.editing .card-actions .ghost,.list-row:hover .list-actions .ghost,.list-row.editing .list-actions .ghost{opacity:1}.ghost.icon.active{color:var(--accent);opacity:1}.title-input{font:inherit;border-radius:6px;width:100%;min-width:0;padding:2px 6px;font-weight:500}.meta-edit select,.meta-edit input[type=date]{border-color:var(--border);background-color:var(--bg);color:var(--text);min-width:96px;max-width:150px;padding:3px 24px 3px 8px;font-size:12px}.meta-edit input[type=date]{min-width:130px;padding-right:8px}.status-select{appearance:none;cursor:pointer;background-position:right 6px center;background-repeat:no-repeat;border:1px solid #0000;border-radius:999px;width:auto;min-width:0;padding:2px 22px 2px 10px;font-size:11px;font-weight:600}.status-select:disabled{cursor:default;opacity:.7}.status-todo{background-color:var(--chip-bg);color:var(--chip-text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2340485c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.status-in_progress{background-color:var(--warn-soft);color:var(--warn);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.status-done{background-color:var(--ok-soft);color:#15803d;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2315803d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.avatar{object-fit:cover;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 0 0 1px #00000014}.avatar-fallback{background:var(--accent-soft);color:var(--accent-on-soft);font-weight:600}.due-chip{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500}.due-overdue{background:var(--danger-soft);color:var(--danger)}.due-today,.due-soon{background:var(--warn-soft);color:var(--warn)}.due-normal{background:var(--chip-bg);color:var(--text-muted)}.overlay{z-index:50;background:#14182273;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);width:min(380px,100vw - 48px);box-shadow:var(--shadow-pop);border-radius:12px;padding:20px}.toasts{z-index:60;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{box-shadow:var(--shadow-pop);border-radius:999px;align-items:center;gap:12px;max-width:min(560px,100vw - 32px);padding:8px 16px;font-size:13px;animation:.18s ease-out toast-in;display:flex}.toast-action{color:#93c5fd;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-weight:600}.toast-action:hover{color:#bfdbfe;background:0 0}.toast-error{color:#fecaca;background:#2b2f3a}.toast-success{color:#bbf7d0;background:#2b2f3a}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spinner-wrap{align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid var(--accent-border);border-top-color:var(--accent);border-radius:999px;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.editable-input{font:inherit;border-radius:6px;width:100%;min-width:0;padding:1px 6px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.stat-tile{border:1px solid var(--border);background:var(--bg-subtle);border-radius:12px;flex-direction:column;gap:2px;padding:16px;display:flex}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.stat-label{color:var(--text-muted);font-size:12px}.admin-table-wrap{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-subtle)}.admin-user{align-items:center;gap:10px;min-width:0;display:flex}.admin-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.admin-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.nowrap{white-space:nowrap}.role-chips{flex-wrap:wrap;gap:4px;display:flex}.status-pill{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.status-active{background:var(--ok-soft);color:#15803d}.status-inactive{background:var(--danger-soft);color:var(--danger)}.row-inactive td:not(:last-child){opacity:.55}button.danger-ghost{border-color:var(--border);color:var(--danger)}button.danger-ghost:hover{background:var(--danger-soft);border-color:var(--danger)}.login-screen{background:radial-gradient(600px 300px at 20% 0%, var(--accent-soft), transparent), radial-gradient(500px 300px at 90% 100%, var(--accent-soft), transparent), var(--bg-subtle);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:min(360px,100vw - 32px);padding:36px 40px;display:flex}.google-btn{justify-content:center;align-items:center;gap:10px;width:100%;margin-top:16px;padding:9px 18px;font-size:14px;display:flex}button:focus-visible,.list-item:focus-visible{outline:2px solid var(--accent-border);outline-offset:1px}@media (width<=900px){.kanban{grid-template-columns:1fr}.kanban-col{min-height:auto}.list-view{overflow-x:auto}.list-row{min-width:720px}}@media (width<=720px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);gap:14px;width:100%}.main{padding:14px 16px}.card-actions .ghost,.list-actions .ghost,.list-item .ghost{opacity:1}}:root[data-theme=dark] select,:root:not([data-theme=light]) select{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='%239198ad' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}
