:root{--bg:#f4f5f7;--card:#fff;--text:#1f2430;--muted:#6b7280;--border:#e5e7eb;--primary:#4f46e5;--primary-hover:#4338ca;--danger:#dc2626;--low:#64748b;--medium:#2563eb;--high:#e11d48;--shadow:0 1px 3px #00000014, 0 8px 24px #0000000f;--radius:12px;--lane-border:#aab1bd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}:root[data-theme=dark]{--bg:#0f1117;--card:#171a21;--text:#e5e7eb;--muted:#9ca3af;--border:#2a2f3a;--primary:#6366f1;--primary-hover:#818cf8;--shadow:0 1px 3px #0006, 0 8px 24px #0000004d;--lane-border:#49515f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0f1117;--card:#171a21;--text:#e5e7eb;--muted:#9ca3af;--border:#2a2f3a;--primary:#6366f1;--primary-hover:#818cf8;--shadow:0 1px 3px #0006, 0 8px 24px #0000004d;--lane-border:#49515f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}.app{max-width:680px;margin:0 auto;padding:40px 20px 80px}.app--wide{max-width:1100px}.app__header{text-align:center;margin-bottom:24px}.app__header h1{letter-spacing:-.02em;margin:0;font-size:2.25rem}.app__subtitle{color:var(--muted);margin:4px 0 0;font-size:.9rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}input[type=text],input[type=search],input[type=date],input[type=email],input[type=password],select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-size:.95rem}input:focus,select:focus{border-color:var(--primary)}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75}input[type=date]:hover::-webkit-calendar-picker-indicator{opacity:1}input[type=date]:focus::-webkit-calendar-picker-indicator{opacity:1}.theme-toggle{background:var(--bg);width:34px;height:34px;color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:border-color .12s,background .12s;display:inline-flex}.theme-toggle:hover{border-color:var(--primary)}.theme-toggle:focus-visible{box-shadow:0 0 0 2px var(--primary);outline:none}.theme-toggle svg{width:17px;height:17px;display:block}.auth__card{position:relative}.auth__theme{position:absolute;top:14px;right:14px}.date-field{position:relative}.date-mask{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);letter-spacing:.02em;border-radius:8px;outline:none;padding:10px 40px 10px 12px;font-size:.95rem}.date-mask:focus{border-color:var(--primary)}.cal-btn{cursor:pointer;width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.cal-btn:hover{color:var(--text);background:#6366f124}.cal-btn:focus-visible{box-shadow:0 0 0 2px var(--primary);outline:none}.cal-btn svg{width:18px;height:18px;display:block}.date-native{opacity:0;pointer-events:none;position:absolute;inset:0}.todo-form__row--meta>.date-field{flex:0 auto;min-width:160px}.note__edit-meta>.date-field{flex:1;min-width:0}.pw-field{position:relative}.pw-field input{width:100%;padding-right:46px}.pw-toggle{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:7px;transition:background .12s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover{background:#6366f11f}.pw-toggle:focus-visible{box-shadow:0 0 0 2px var(--primary);outline:none}.pw-toggle svg{width:20px;height:20px;display:block}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:10px 16px;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s,opacity .15s}.btn:hover{border-color:var(--primary)}.btn:disabled{opacity:.6;cursor:default}.btn--sm{padding:6px 12px;font-size:.82rem}.btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn--ghost{color:var(--muted);background:0 0;border-color:#0000;padding:6px 10px}.btn--ghost:hover{color:var(--text);border-color:var(--border)}.banner{border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem}.banner--error{color:var(--danger);background:#dc26261f}.empty{text-align:center;color:var(--muted);padding:32px 0}.app__footer{text-align:center;color:var(--muted);margin-top:20px;font-size:.82rem}.app__header--row{text-align:left;justify-content:space-between;align-items:center;gap:12px;display:flex}.app__header--row h1{font-size:1.75rem}.app__account{flex-shrink:0;gap:8px;display:flex}.todo-form__row{gap:8px;margin-bottom:8px;display:flex}.todo-form__row--meta{flex-wrap:wrap}.todo-form__title{flex:1}.todo-form__desc{flex:1;min-width:160px}.todo-form__error{color:var(--danger);margin:4px 0 0;font-size:.85rem}.board-toolbar{margin-bottom:20px}.board-filter{color:var(--muted);align-items:center;gap:8px;margin-top:4px;font-size:.85rem;display:flex}.board{grid-template-columns:repeat(3,1fr);align-items:start;gap:16px;display:grid}@media (width<=780px){.board{grid-template-columns:1fr;gap:12px}.app{padding:28px 16px 64px}}.lane{background:var(--bg);border:2px solid var(--lane-border);border-radius:var(--radius);padding:12px;transition:border-color .15s,background .15s}.lane.is-over{border-color:var(--primary);background:#4f46e50f;border-style:dashed}.lane__header{justify-content:space-between;align-items:center;margin:2px 4px 12px;display:flex}.lane__header h2{letter-spacing:.01em;margin:0;font-size:.95rem}.lane__count{background:var(--border);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.72rem}.lane__cards{flex-direction:column;gap:10px;min-height:80px;display:flex}.lane__empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:8px;padding:18px 0;font-size:.8rem}.note{--note-bg:#e7dcff;--note-edge:#c7b3ef;background:var(--note-bg);border:1px solid var(--note-edge);border-left:4px solid var(--note-edge);color:#26303a;cursor:grab;border-radius:6px;padding:10px 12px;transition:transform .12s,box-shadow .12s;box-shadow:0 2px 6px #00000024}.note:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.note:active{cursor:grabbing}.note.is-done{opacity:.8}.note.is-done .note__title{text-decoration:line-through}.note__top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.note__category{text-transform:uppercase;letter-spacing:.05em;color:#4b5563;font-size:.66rem;font-weight:700}.note__check{color:#1a7f37;font-size:.95rem;font-weight:800;line-height:1}.note__title{word-break:break-word;margin:0;font-size:.92rem;font-weight:600}.note__desc{color:#4b5563;word-break:break-word;margin:4px 0 0;font-size:.82rem}.note__meta{align-items:center;gap:8px;margin-top:10px;display:flex}.note__spacer{flex:1}.note__due{color:#4b5563;font-size:.74rem}.note__due.is-overdue{color:#b91c1c;font-weight:700}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.dot--low{background:var(--low)}.dot--medium{background:var(--medium)}.dot--high{background:var(--high)}.note__icon{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:.9rem;line-height:1}.note__icon:hover{background:#00000014}.note__icon--danger:hover{color:#b91c1c}.note--editing{cursor:default;flex-direction:column;gap:8px;display:flex}.note--editing input[type=text]{width:100%}.note__edit-meta{flex-wrap:wrap;gap:6px;display:flex}.note__edit-meta select,.note__edit-meta input{flex:1;min-width:0}.note__actions{gap:6px;display:flex}.cat-manager{margin-bottom:20px}.cat-manager__head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cat-manager__head h2{margin:0;font-size:1.05rem}.cat-manager__error{color:var(--danger);margin:0 0 10px;font-size:.85rem}.cat-manager__list{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.cat-manager__empty{color:var(--muted);font-size:.85rem}.cat-manager__row{align-items:center;gap:8px;display:flex}.cat-manager__row--edit input[type=text]{flex:1}.cat-manager__swatch{border:1px solid var(--border);border-radius:4px;flex-shrink:0;width:16px;height:16px}.cat-manager__name{flex:1;font-size:.92rem}.cat-manager__add{border-top:1px solid var(--border);align-items:center;gap:8px;padding-top:12px;display:flex}.cat-manager__add input[type=text]{flex:1}.color-picker{flex-shrink:0;position:relative}.color-picker__trigger{border:1px solid var(--border);background:var(--card);height:36px;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.color-picker__trigger:focus-visible{box-shadow:0 0 0 2px var(--primary);outline:none}.color-picker__swatch{border:1px solid var(--border);border-radius:5px;flex-shrink:0;width:20px;height:20px}.color-picker__caret{color:var(--muted);font-size:.7rem}.color-picker__pop{z-index:30;background:var(--card);border:1px solid var(--border);width:208px;box-shadow:var(--shadow);border-radius:12px;padding:14px;position:absolute;top:calc(100% + 6px);left:0}.color-picker__wheel{cursor:crosshair;touch-action:none;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:50%;width:156px;height:156px;margin:0 auto 14px;position:relative}.color-picker__sat{pointer-events:none;background:radial-gradient(circle,#fff 0%,#fff0 70%);border-radius:50%;position:absolute;inset:0}.color-picker__val{pointer-events:none;background:#000;border-radius:50%;position:absolute;inset:0}.color-picker__handle{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.color-picker__bright{align-items:center;gap:8px;margin-bottom:12px;display:flex}.color-picker__bright-label{color:var(--muted);white-space:nowrap;font-size:.78rem}.color-picker__bright input[type=range]{flex:1}.color-picker__hexrow{align-items:center;gap:8px;display:flex}.color-picker__hex{text-transform:uppercase;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.auth{justify-content:center;align-items:center;min-height:80vh;padding:24px;display:flex}.auth__card{width:100%;max-width:400px}.auth__title{margin:0 0 4px;font-size:1.6rem}.auth__subtitle{color:var(--muted);margin:0 0 20px;font-size:.9rem}.auth__form{flex-direction:column;gap:14px;display:flex}.auth__label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.auth__label input{width:100%}.auth__submit{width:100%;margin-top:4px}.auth__switch{text-align:center;color:var(--muted);margin:18px 0 0;font-size:.88rem}.auth__link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.88rem;text-decoration:underline}.auth__demo{text-align:center;color:var(--muted);margin:16px 0 0;font-size:.78rem}.auth__demo code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:.75rem}.auth__divider{text-align:center;color:var(--muted);align-items:center;margin:18px 0;font-size:.78rem;display:flex}.auth__divider:before,.auth__divider:after{content:"";background:var(--border);flex:1;height:1px}.auth__divider span{padding:0 12px}.auth__providers{justify-content:center;display:flex}.auth__google{justify-content:center;min-height:40px;display:flex}.gbtn{color:#1f1f1f;cursor:pointer;background:#fff;border:1px solid #747775;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:320px;height:40px;font-size:.9rem;font-weight:500;display:inline-flex}@media (width<=560px){.app{padding:16px 12px 56px}input[type=text],input[type=search],input[type=date],input[type=email],input[type=password],select{font-size:16px}.app__header h1{font-size:1.9rem}.app__header--row{flex-wrap:wrap}.app__header--row h1{font-size:1.35rem}.app__account{justify-content:flex-end;width:100%}.todo-form__desc{min-width:100%}.todo-form__row--meta>select,.todo-form__row--meta>input[type=date],.todo-form__row--meta>.date-field{flex:44%}.board-filter{flex-wrap:wrap}.note__icon{padding:6px 9px;font-size:1rem}.cat-manager__add{flex-wrap:wrap}.auth{align-items:flex-start;padding:8vh 16px 24px}.auth__google{width:100%}}
