*,:before,:after{box-sizing:border-box}html,body{margin:0}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0f2f5;--header-bg:#1e293b;--header-text:#fff;--header-input-bg:#334155;--header-input-border:#475569;--surface:#fff;--surface-2:#e2e8f0;--surface-3:#f8fafc;--chip-bg:#f1f5f9;--input-bg:#fff;--text:#1a1a1a;--text-strong:#1e293b;--text-muted:#475569;--text-faint:#94a3b8;--border:#d1d5db;--border-soft:#e2e8f0;--border-strong:#cbd5e1;--primary:#3b82f6;--primary-hover:#2563eb;--primary-contrast:#fff;--danger:#dc2626;--danger-bg:#ef4444;--warning:#d97706;--accent:#4f46e5;--focus-ring:#bfdbfe;--highlight:#eff6ff;--overlay:#0006;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001f}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f172a;--header-bg:#020617;--header-text:#f1f5f9;--header-input-bg:#1e293b;--header-input-border:#334155;--surface:#1e293b;--surface-2:#131c30;--surface-3:#273449;--chip-bg:#334155;--input-bg:#0f172a;--text:#e2e8f0;--text-strong:#f1f5f9;--text-muted:#cbd5e1;--text-faint:#94a3b8;--border:#334155;--border-soft:#334155;--border-strong:#334155;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-contrast:#fff;--danger:#f87171;--danger-bg:#dc2626;--warning:#fbbf24;--accent:#818cf8;--focus-ring:#3b82f673;--highlight:#273449;--overlay:#0009;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 14px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,sans-serif}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--header-bg);color:var(--header-text);flex-shrink:0;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.app-header h1{font-size:1.25rem;font-weight:700}.page-switcher{align-items:center;gap:.4rem;display:flex}.page-switcher input,.page-select{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);border-radius:6px;padding:.35rem .6rem;font-size:.85rem}.page-switcher input::placeholder{color:var(--text-faint)}.page-select{cursor:pointer;font-weight:600}.page-switcher button{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);cursor:pointer;border-radius:6px;padding:.35rem .6rem;font-size:.85rem}.page-switcher button:hover{filter:brightness(1.15)}.page-switcher .page-delete{border-color:#0000}.add-column-form{gap:.5rem;margin-left:auto;display:flex}.add-column-form input{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);border-radius:6px;padding:.35rem .6rem;font-size:.85rem}.add-column-form input::placeholder{color:var(--text-faint)}.add-column-form button{background:var(--primary);color:var(--primary-contrast);cursor:pointer;border:none;border-radius:6px;padding:.35rem .75rem;font-size:.85rem}.add-column-form button:hover{background:var(--primary-hover)}.search-box{min-width:220px;position:relative}.search-input{border:1px solid var(--header-input-border);background:var(--header-input-bg);width:100%;color:var(--header-text);border-radius:6px;padding:.35rem .6rem;font-size:.85rem}.search-input::placeholder{color:var(--text-faint)}.search-results{background:var(--surface);width:min(360px,90vw);max-height:60vh;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:97;border-radius:8px;padding:.5rem;position:absolute;top:calc(100% + .4rem);left:0;overflow-y:auto}.search-empty{color:var(--text-muted);padding:.4rem .5rem;font-size:.85rem}.search-group+.search-group{margin-top:.4rem}.search-group-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);padding:.25rem .5rem;font-size:.7rem}.search-list{list-style:none}.search-result{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:.1rem;padding:.4rem .5rem;display:flex}.search-result:hover{background:var(--highlight)}.search-result-title{color:var(--text-strong);font-size:.9rem;font-weight:600}.search-result-meta{color:var(--text-muted);font-size:.75rem}.bin-search-input{background:var(--input-bg);color:var(--text);border-color:var(--border)}.search-highlight{z-index:3;border-radius:8px;animation:.5s ease-in-out 4 search-halo;position:relative}@keyframes search-halo{0%,to{box-shadow:0 0 #3b82f600}50%{box-shadow:0 0 0 3px var(--primary), 0 0 14px 5px var(--focus-ring)}}.theme-toggle,.bin-button{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);cursor:pointer;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex}.theme-toggle:hover,.bin-button:hover{filter:brightness(1.15)}.theme-toggle-text{font-weight:500}@media (width<=640px){.theme-toggle-text{display:none}}.app-body{flex:1;min-height:0;display:flex}.priority-panel{background:var(--surface);border-right:1px solid var(--border-soft);flex-direction:column;gap:.75rem;width:260px;min-width:260px;padding:1rem;display:flex;overflow-y:auto}.priority-title{color:var(--text-strong);font-size:.95rem;font-weight:700}.priority-empty{color:var(--text-faint);font-size:.8rem}.priority-list{flex-direction:column;gap:.4rem;list-style:none;display:flex}.priority-item{border:1px solid var(--border-soft);border-left:3px solid var(--text-faint);cursor:pointer;border-radius:6px;padding:.5rem .6rem;transition:background .12s}.priority-item:hover{background:var(--surface-3)}.priority-item.overdue{border-left-color:var(--danger)}.priority-item.due-today{border-left-color:var(--warning)}.priority-item-title{color:var(--text-strong);word-break:break-word;font-size:.85rem;font-weight:600;display:block}.priority-item-meta{justify-content:space-between;gap:.5rem;margin-top:.25rem;font-size:.72rem;display:flex}.priority-item-cat{color:var(--text-muted);background:var(--chip-bg);border-radius:4px;padding:.05rem .35rem}.priority-item-cat.has-color{color:#1f2937}.priority-item-due{color:var(--text-muted);font-weight:600}.priority-item.overdue .priority-item-due{color:var(--danger)}.priority-item.due-today .priority-item-due{color:var(--warning)}.kanban-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:1rem;min-width:0;padding:1rem;display:grid;overflow-y:auto}.kanban-column{background:var(--surface-2);border-radius:10px;flex-direction:column;max-height:100%;display:flex}.column-header{border-bottom:1px solid var(--border-strong);align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.column-drag-handle{cursor:grab;color:var(--text-faint);-webkit-user-select:none;user-select:none;font-size:1.1rem}.column-drag-handle:active{cursor:grabbing}.column-title{color:var(--text-strong);flex:1;font-size:.95rem;font-weight:600}.column-actions{gap:.15rem;display:flex}.column-actions button,.column-actions .btn-color{cursor:pointer;width:26px;height:26px;color:var(--text-faint);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;transition:background .12s,color .12s;display:inline-flex}.column-actions button:hover,.column-actions .btn-color:hover{background:var(--surface-3)}.column-actions .btn-add:hover{color:var(--primary)}.column-actions .btn-danger:hover{color:var(--danger)}.column-actions .btn-color:hover{color:var(--primary)}.column-actions .btn-color-reset:hover{color:var(--danger)}.column-actions .btn-color{cursor:pointer;position:relative}.column-actions .btn-color input[type=color]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.column-header.has-color{border-bottom-color:#0000001f;border-radius:10px 10px 0 0}.column-header.has-color .column-title{color:#1f2937}.column-header.has-color .column-drag-handle{color:#1f29378c}.column-header.has-color .column-actions button,.column-header.has-color .column-actions .btn-color{color:#1f2937a6}.column-header.has-color .column-actions button:hover,.column-header.has-color .column-actions .btn-color:hover{background:#00000014}.column-tasks{flex-direction:column;flex:1;gap:.5rem;min-height:40px;padding:.5rem;display:flex;overflow-y:auto}.task-card{background:var(--surface);box-shadow:var(--shadow-sm);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;padding:.65rem .75rem}.task-card:active{cursor:grabbing}.task-card-header{align-items:flex-start;gap:.5rem;display:flex}.task-title{color:var(--text-strong);word-break:break-word;flex:1;font-size:.9rem;font-weight:600}.task-actions{flex-shrink:0;gap:.2rem;display:flex}.task-actions button{cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.1rem .2rem;font-size:.85rem;display:inline-flex}.task-actions button:hover{opacity:1;background:var(--surface-3)}.task-desc{color:var(--text-muted);word-break:break-word;-webkit-line-clamp:6;-webkit-box-orient:vertical;margin-top:.35rem;font-size:.8rem;display:-webkit-box;overflow:hidden}.task-due{color:var(--text-muted);margin-top:.4rem;font-size:.75rem;display:inline-block}.task-due.overdue{color:var(--danger);font-weight:600}.task-due.due-today{color:var(--warning);font-weight:600}.task-fields{color:var(--text-muted);flex-wrap:wrap;gap:.25rem .75rem;margin-top:.4rem;font-size:.75rem;list-style:none;display:flex}.modal-backdrop{background:var(--overlay);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:480px;max-width:95vw;max-height:90vh;box-shadow:var(--shadow-md);border-radius:12px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex;overflow-y:auto}.modal h2{color:var(--text-strong);font-size:1.1rem;font-weight:700}.modal form{flex-direction:column;gap:.85rem;display:flex}.modal label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}.modal input,.modal textarea{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:6px;padding:.45rem .6rem;font-family:inherit;font-size:.9rem}.modal textarea{resize:vertical}.modal input:focus,.modal textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.combobox{position:relative}.combobox-control{border:1px solid var(--border);background:var(--input-bg);border-radius:6px;align-items:stretch;display:flex;overflow:hidden}.combobox-control:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.combobox-control input{flex:1;box-shadow:none!important;border:none!important;border-radius:0!important}.combobox-control input:focus{outline:none}.combobox-toggle{background:var(--surface-3);border:none;border-left:1px solid var(--border-soft);cursor:pointer;color:var(--text-muted);padding:0 .7rem;font-size:.75rem}.combobox-toggle:hover{background:var(--chip-bg)}.combobox-options{background:var(--surface);border:1px solid var(--border);z-index:10;max-height:180px;box-shadow:var(--shadow-md);border-radius:6px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.combobox-option{cursor:pointer;color:var(--text);padding:.45rem .7rem;font-size:.875rem}.combobox-option.highlighted{background:var(--highlight)}.combobox-option.create{border-top:1px solid var(--border-soft);color:var(--accent)}.new-cat-hint{color:var(--accent);margin-top:.2rem;font-size:.75rem;display:block}.modal fieldset{border:1px solid var(--border-soft);border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.modal legend{color:var(--text-muted);padding:0 .25rem;font-size:.8rem;font-weight:600}.custom-field-row{background:var(--surface-3);color:var(--text);border-radius:5px;justify-content:space-between;align-items:center;padding:.3rem .5rem;font-size:.82rem;display:flex}.custom-field-row button{cursor:pointer;color:var(--text-faint);background:0 0;border:none;font-size:.8rem}.custom-field-row button:hover{color:var(--danger)}.custom-field-add{gap:.4rem;display:flex}.custom-field-add input{flex:1}.custom-field-add button{background:var(--surface-2);color:var(--text);cursor:pointer;border:none;border-radius:6px;padding:.4rem .7rem;font-size:.82rem}.custom-field-add button:hover{background:var(--border-strong)}.modal-footer{align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.modal-footer-spacer{flex:1}.btn-danger-outline{border-color:var(--danger)!important;color:var(--danger)!important;background:0 0!important}.btn-danger-outline:hover{background:var(--danger)!important;color:#fff!important}.modal-footer button{border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text);border-radius:7px;padding:.45rem 1rem;font-size:.9rem}.modal-footer button:hover{background:var(--surface-3)}.btn-primary{background:var(--primary)!important;color:var(--primary-contrast)!important;border-color:var(--primary)!important}.btn-primary:hover{background:var(--primary-hover)!important}.modal-sm{gap:.85rem;width:420px}.dialog-text{color:var(--text-muted);font-size:.88rem;line-height:1.45}.dialog-error{color:var(--danger);margin-top:.2rem;font-size:.75rem;display:block}.radio-row{color:var(--text);cursor:pointer;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;display:flex;flex-direction:row!important}.radio-row input{width:auto;accent-color:var(--primary)}.radio-detail{margin:-.2rem 0 .2rem 1.5rem}.btn-danger-solid{background:var(--danger-bg)!important;color:#fff!important;border-color:var(--danger-bg)!important}.btn-danger-solid:hover{filter:brightness(1.08)}.btn-danger-solid:disabled{opacity:.5;cursor:not-allowed;filter:none}.trash-section{flex-direction:column;gap:.4rem;display:flex}.trash-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-size:.72rem;font-weight:700}.trash-list{flex-direction:column;gap:.5rem;max-height:40vh;list-style:none;display:flex;overflow-y:auto}.trash-item{border:1px solid var(--border-soft);background:var(--surface-3);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .7rem;display:flex}.trash-item-main{flex-direction:column;min-width:0;display:flex}.trash-item-title{color:var(--text-strong);word-break:break-word;font-size:.88rem;font-weight:600}.trash-item-meta{color:var(--text-faint);font-size:.72rem}.trash-item-actions{flex-shrink:0;gap:.4rem;display:flex}.btn-restore,.btn-forget{border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text);border-radius:6px;padding:.3rem .6rem;font-size:.78rem}.btn-restore{border-color:var(--primary);color:var(--primary)}.btn-restore:hover{background:var(--highlight)}.btn-forget:hover{border-color:var(--danger);color:var(--danger)}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border-soft);width:100%;max-width:360px;box-shadow:var(--shadow-md);border-radius:12px;flex-direction:column;gap:1rem;padding:2rem 1.75rem;display:flex}.auth-title{text-align:center;color:var(--text-strong);margin:0;font-size:1.6rem}.auth-subtitle{text-align:center;color:var(--text-muted);margin:-.5rem 0 .5rem;font-size:.9rem}.auth-field{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.auth-field input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;padding:.55rem .7rem;font-size:.95rem}.auth-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.auth-error{background:var(--danger-bg);color:#fff;border-radius:8px;padding:.55rem .7rem;font-size:.85rem}.auth-submit{background:var(--primary);color:var(--primary-contrast);cursor:pointer;border:none;border-radius:8px;margin-top:.25rem;padding:.65rem;font-size:.95rem;font-weight:600}.auth-submit:hover:not(:disabled){background:var(--primary-hover)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{text-align:center;color:var(--text-muted);margin:0;font-size:.85rem}.auth-switch button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.logout-button{background:var(--header-input-bg);color:var(--header-text);border:1px solid var(--header-input-border);cursor:pointer;border-radius:6px;padding:.4rem .7rem;font-size:.85rem}.logout-button:hover{border-color:var(--danger)}.auth-user{color:var(--header-text);opacity:.85;margin-right:.25rem;font-size:.85rem}.form-success{background:var(--surface-3);color:var(--text-strong);border:1px solid var(--primary);border-radius:8px;padding:.55rem .7rem;font-size:.85rem}.profile-button{background:var(--header-input-bg);color:var(--header-text);border:1px solid var(--header-input-border);cursor:pointer;border-radius:6px;padding:.4rem .7rem;font-size:.85rem}.profile-button:hover{border-color:var(--primary)}.header-actions{align-items:center;gap:1rem;display:flex}.header-menu-toggle{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:.35rem .6rem;font-size:1rem;line-height:1;display:none}.header-menu-toggle:hover{filter:brightness(1.15)}.header-menu-backdrop{display:none}.priority-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.priority-toggle{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.85rem;display:none}.priority-toggle:hover{filter:brightness(1.15)}.priority-close{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1;display:none}.priority-close:hover{color:var(--text)}.priority-backdrop{display:none}@media (width<=768px){.app-header{flex-wrap:wrap;gap:.5rem;position:relative}.add-column-form{margin-left:0}.search-box{flex:100%;order:10;min-width:0}.search-results{width:100%}.priority-toggle{display:inline-flex}.header-menu-toggle{margin-left:auto;display:inline-flex}.header-actions{background:var(--header-bg);border:1px solid var(--header-input-border);min-width:190px;box-shadow:var(--shadow-md);z-index:96;border-radius:8px;flex-direction:column;align-items:stretch;gap:.4rem;margin-top:.4rem;padding:.5rem;display:none;position:absolute;top:100%;right:.5rem}.header-actions.open{display:flex}.header-actions>*{text-align:left;justify-content:flex-start;width:100%}.header-actions .theme-toggle-text{display:inline}.header-menu-backdrop{z-index:95;display:block;position:fixed;inset:0}.priority-backdrop{background:var(--overlay);opacity:0;pointer-events:none;z-index:90;transition:opacity .2s;display:block;position:fixed;inset:0}.priority-backdrop.open{opacity:1;pointer-events:auto}.priority-panel{z-index:95;width:82%;min-width:0;max-width:320px;box-shadow:var(--shadow-md);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.priority-panel.open{transform:translate(0)}.priority-close{display:inline-flex}.kanban-board{grid-template-columns:1fr;padding:.75rem}.modal input,.modal textarea,.add-column-form input,.page-switcher input,.page-select,.search-input{font-size:16px}.column-actions button{width:34px;height:34px}.task-actions button{padding:.25rem .35rem;font-size:1rem}}.due-row{gap:.75rem;display:flex}.due-row>label{flex:1}.due-row input:disabled{opacity:.5;cursor:not-allowed}.view-toggle{border:1px solid var(--header-input-border);background:var(--header-input-bg);color:var(--header-text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex}.view-toggle:hover{filter:brightness(1.15)}.agenda{flex-direction:column;flex:1;gap:1.25rem;min-width:0;padding:1rem;display:flex;overflow-y:auto}.agenda-empty{color:var(--text-faint);font-size:.9rem}.agenda-day{flex-direction:column;gap:.4rem;display:flex}.agenda-day-heading{color:var(--text-strong);border-bottom:2px solid var(--border-soft);align-items:center;gap:.5rem;padding-bottom:.35rem;font-size:.95rem;font-weight:700;display:flex}.agenda-day.today .agenda-day-heading{color:var(--primary);border-bottom-color:var(--primary)}.agenda-day.overdue .agenda-day-heading{color:var(--danger)}.agenda-day-tag{text-transform:uppercase;letter-spacing:.03em;color:var(--danger);background:var(--surface);border:1px solid var(--danger);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}.agenda-items{flex-direction:column;gap:.4rem;list-style:none;display:flex}.agenda-item{background:var(--surface);border:1px solid var(--border-soft);border-left:3px solid var(--text-faint);cursor:pointer;border-radius:8px;grid-template-columns:5.5rem 1fr auto auto;align-items:center;gap:.75rem;padding:.55rem .75rem;display:grid}.agenda-item:hover{background:var(--surface-3)}.agenda-item.overdue{border-left-color:var(--danger)}.agenda-item.today{border-left-color:var(--warning)}.agenda-time{color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.agenda-item-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.agenda-item-cat{color:var(--text-muted);background:var(--chip-bg);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600}.agenda-item-cat.has-color{color:#1f2937}.agenda-item-due{color:var(--text-muted);white-space:nowrap;font-size:.78rem;font-weight:600}.agenda-item.overdue .agenda-item-due{color:var(--danger)}.agenda-item.today .agenda-item-due{color:var(--warning)}@media (width<=700px){.agenda-item{grid-row-gap:.25rem;grid-template-columns:4.5rem 1fr}.agenda-item-cat,.agenda-item-due{grid-column:2;justify-self:start}}
