:root{--bg: #f6f7f9;--panel: #ffffff;--card: #ffffff;--text: #1d2330;--muted: #7a8194;--border: #e6e8ee;--hover: #eef0f5;--input: #ffffff;--accent: #7c3aed;--accent-2: #3a6df0;--accent-grad: linear-gradient(135deg, #7c3aed, #3a6df0);--accent-soft: #f0e9ff;--accent-strong: #7c3aed;--on-accent: #ffffff;--dl-bg: #eef1f6;--dl-fg: #5b6472;--over-bg: #fdeaec;--over-fg: #d64550;--rem-bg: #e8f0fe;--rem-fg: #2f6bd6;--high-bg: #fdf0dd;--high-fg: #b9760e;--success: #2e9e5b;--radius: 14px;--radius-sm: 9px;--shadow: 0 3px 12px rgba(60, 40, 120, .1);--shadow-sm: 0 1px 3px rgba(60, 40, 120, .08);color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1218;--panel: #151922;--card: #151922;--text: #e6e9f0;--muted: #8b93a7;--border: #232936;--hover: #1b212c;--input: #0f1218;--accent-soft: #241a3a;--on-accent: #ffffff;--dl-bg: #1c2330;--dl-fg: #9fb0c9;--over-bg: #3a1d22;--over-fg: #ff8a93;--rem-bg: #16263a;--rem-fg: #6db3ff;--high-bg: #3a2a16;--high-fg: #ffb14d;--shadow: 0 3px 14px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 12px;letter-spacing:-.4px}a{color:var(--accent)}button{border:none;background:var(--accent-grad);color:var(--on-accent);border-radius:var(--radius-sm);padding:10px 18px;font-size:14px;font-weight:650;cursor:pointer;transition:filter .12s,background .12s,transform .04s}button:hover{filter:brightness(1.05)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:default;filter:none}button.ghost{background:none;color:var(--muted);padding:6px 9px;font-weight:500}button.ghost:hover{background:var(--hover);color:var(--text);filter:none}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 13px;font-size:14px;font-family:inherit;background:var(--input);color:var(--text);width:100%}select{appearance:none;-webkit-appearance:none;padding-right:36px;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='%238b93a7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:auto}label{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;font-size:13px;color:var(--muted)}fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0 0 14px;padding:12px 14px}legend{font-size:13px;color:var(--muted);padding:0 6px}.row{display:flex;gap:8px;align-items:center}.muted{color:var(--muted)}.error{color:var(--over-fg);font-size:13px}.success{color:var(--success);font-size:13px}.centered{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.layout{display:flex;min-height:100dvh}.sidebar{width:240px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;gap:14px}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:0 6px;gap:8px}.logo{font-weight:800;font-size:21px;letter-spacing:-.5px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.icon-link{text-decoration:none;font-size:17px}.theme-toggle{background:none;color:var(--muted);padding:4px 7px;font-size:16px;border-radius:8px}.theme-toggle:hover{background:var(--hover);filter:none}.category-list{display:flex;flex-direction:column;gap:3px;overflow-y:auto}.category-link{display:flex;gap:10px;align-items:center;padding:9px 11px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text)}.category-link:hover{background:var(--hover)}.category-link.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:650}.category-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-ic{width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;font-size:14px;background:var(--accent-soft)}.cat-ic[data-c="0"]{background:#e9efff}.cat-ic[data-c="1"]{background:#fff1d6}.cat-ic[data-c="2"]{background:#e6f7ec}.cat-ic[data-c="3"]{background:#f0e9ff}.cat-ic[data-c="4"]{background:#ffe9f0}.cat-ic[data-c="5"]{background:#e0f5f4}:root[data-theme=dark] .cat-ic[data-c="0"]{background:#16243f}:root[data-theme=dark] .cat-ic[data-c="1"]{background:#3a2e12}:root[data-theme=dark] .cat-ic[data-c="2"]{background:#123524}:root[data-theme=dark] .cat-ic[data-c="3"]{background:#241a3a}:root[data-theme=dark] .cat-ic[data-c="4"]{background:#3a1626}:root[data-theme=dark] .cat-ic[data-c="5"]{background:#0f3330}.add-category{align-self:flex-start}.sidebar-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding:0 6px;font-size:13px;color:var(--muted)}.main{flex:1;padding:24px 28px;max-width:1120px}.banner{background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-header h2{margin:0;font-size:22px;font-weight:750;min-width:0;overflow:hidden;text-overflow:ellipsis}.panel-header .rename-form{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.panel-header .rename-input{flex:1;min-width:0;font-size:22px;font-weight:750;letter-spacing:-.4px;padding:4px 10px;border-radius:var(--radius-sm)}.quick-add{display:flex;gap:10px;margin-bottom:18px}.quick-add input{flex:1}.quick-add button{white-space:nowrap;padding:0 18px}.item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.item-row{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .12s,box-shadow .12s}.item-row:hover{border-color:var(--accent);box-shadow:var(--shadow)}.item-row input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;flex-shrink:0;margin-top:1px;border:2px solid var(--muted);border-radius:6px;cursor:pointer;position:relative}.item-row input[type=checkbox]:checked{background:var(--accent-grad);border-color:transparent}.item-row input[type=checkbox]:checked:after{content:"✓";color:#fff;font-size:13px;position:absolute;inset:0;display:grid;place-items:center}.item-row.done .item-title{text-decoration:line-through;color:var(--muted)}.item-body{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:none;color:inherit;text-align:left;padding:0;border:none;cursor:pointer;min-width:0}.item-body:hover{filter:none}.item-title{font-size:15px;font-weight:500;display:flex;align-items:center;gap:7px}.item-desc{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pill,.item-deadline,.item-reminders{font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600;white-space:nowrap}.item-deadline{background:var(--dl-bg);color:var(--dl-fg)}.item-deadline.overdue{background:var(--over-bg);color:var(--over-fg)}.item-reminders{background:var(--rem-bg);color:var(--rem-fg)}.pill.high{background:var(--high-bg);color:var(--high-fg)}.empty{padding:18px 0;text-align:center;color:var(--muted)}.done-section{margin-top:16px}.done-list{margin-top:8px}.view-toggle,.view-choice{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:999px;padding:2px;background:var(--bg)}.view-choice{width:100%}.view-opt{background:none;color:var(--muted);padding:5px 14px;font-size:13px;font-weight:600;border-radius:999px;white-space:nowrap}.view-choice .view-opt{flex:1;text-align:center}.view-opt:hover{background:var(--hover);color:var(--text);filter:none}.view-opt.active{background:var(--accent-grad);color:var(--on-accent)}.view-opt.active:hover{filter:brightness(1.05)}.kanban-board{display:flex;gap:14px;align-items:flex-start;padding-bottom:6px}.kanban-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px;scroll-snap-align:start;transition:border-color .12s,background .12s}.kanban-col.over{border-color:var(--accent);background:var(--accent-soft)}.kanban-col-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px;font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.kanban-col-title{display:flex;align-items:center;gap:7px}.kanban-col[data-col=TODO] .kanban-col-title:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--dl-fg)}.kanban-col[data-col=WIP] .kanban-col-title:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--high-fg)}.kanban-col[data-col=DONE] .kanban-col-title:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--success)}.kanban-count{background:var(--panel);color:var(--muted);min-width:22px;text-align:center;padding:1px 7px;border-radius:999px;font-size:12px;font-weight:700}.kanban-col-body{display:flex;flex-direction:column;gap:8px;min-height:40px}.kanban-empty{font-size:13px;text-align:center;padding:10px 0}.kanban-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:11px 13px;cursor:grab;touch-action:none;transition:border-color .12s,box-shadow .12s,opacity .12s}.kanban-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.35}.kanban-card-body{display:flex;flex-direction:column;gap:6px;min-width:0}.kanban-card-body .item-title{font-size:14px}.kanban-card-body.done .item-title{text-decoration:line-through;color:var(--muted)}.kanban-card-body.overlay{background:var(--card);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);padding:11px 13px;cursor:grabbing;width:250px}.modal-backdrop{position:fixed;inset:0;background:#0f12188c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:26px;width:100%;max-width:500px;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow)}.modal h3{font-size:19px}.modal-actions{margin-top:18px}.modal-message{margin:4px 0;font-size:15px;line-height:1.5}button.danger{background:var(--over-fg);color:#fff}button.danger:hover{filter:brightness(1.06)}.reminders .reminder-list{list-style:none;margin:0 0 8px;padding:0;font-size:14px}.reminders .reminder-list li{display:flex;align-items:center;gap:6px;padding:3px 0}.reminder-add select,.reminder-add input{width:auto;flex:1}.settings{max-width:440px}.ai-plan{margin:4px 0 2px}.ai-plan-btn{font-size:14px}.ai-plan-result{margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.ai-plan-result strong{font-size:14px}.ai-plan-result ul{margin:6px 0 8px;padding-left:20px;font-size:14px;line-height:1.5}.ai-plan-result li{margin:2px 0}.ai-summary-btn{width:100%;margin-top:6px;text-align:left}.ai-summary-text{margin:6px 0;font-size:15px;line-height:1.55;white-space:pre-wrap}.login-page h1{font-size:44px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.app-login-wait{display:flex;flex-direction:column;gap:12px;align-items:center;max-width:360px}@media(max-width:720px){.layout{flex-direction:column}.sidebar{width:100%;flex-direction:column;border-right:none;border-bottom:1px solid var(--border);padding:10px}.category-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.category-link{white-space:nowrap;flex-shrink:0}.sidebar-footer{margin-top:0}.main{padding:14px;max-width:100%}.panel-header{flex-wrap:wrap;gap:8px}.kanban-board{overflow-x:auto;scroll-snap-type:x proximity}.kanban-col{flex:0 0 78%;min-width:78%;scroll-snap-align:start}}
