:root{--bg:#f2f6f5;--surface:#fff;--surface-muted:#eef2f1;--border:#e3e8e6;--text:#1f2a2e;--text-muted:#63716f;--accent:#0b8577;--accent-hover:#096f63;--accent-text:#08695e;--accent-soft:#0b85771a;--accent-contrast:#fff;--danger:#c93636;--danger-text:#b42f2f;--danger-soft:#dc3b3b1a;--checkbox-border:#c3cdca;--shadow:0 2px 8px #1018280f;--shadow-strong:0 8px 24px #1018281f;--backdrop:#10182859;--radius:14px;--radius-small:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--bg:#1a1d1e;--surface:#232729;--surface-muted:#2c3133;--border:#33393b;--text:#e4e7e6;--text-muted:#9aa3a1;--accent:#3fbfae;--accent-hover:#5fcdbe;--accent-text:#6fd3c5;--accent-soft:#3fbfae24;--accent-contrast:#10201d;--danger:#f06e6e;--danger-text:#f08a8a;--danger-soft:#f06e6e24;--checkbox-border:#5d6765;--shadow:0 1px 2px #0000004d;--shadow-strong:0 8px 24px #00000073;--backdrop:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#1a1d1e;--surface:#232729;--surface-muted:#2c3133;--border:#33393b;--text:#e4e7e6;--text-muted:#9aa3a1;--accent:#3fbfae;--accent-hover:#5fcdbe;--accent-text:#6fd3c5;--accent-soft:#3fbfae24;--accent-contrast:#10201d;--danger:#f06e6e;--danger-text:#f08a8a;--danger-soft:#f06e6e24;--checkbox-border:#5d6765;--shadow:0 1px 2px #0000004d;--shadow-strong:0 8px 24px #00000073;--backdrop:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{min-height:100svh}input,select,textarea,button{font:inherit;color:inherit}button{cursor:pointer}.app-shell{min-height:100svh;display:flex}.main-content{flex:1;min-width:0;padding:16px clamp(16px,4vw,48px) 96px}.main-content>*{max-width:820px;margin-inline:auto}.top-bar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.menu-button{display:none}.sync-indicator{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:13px}.search-field{flex:1;min-width:0;max-width:420px;margin-left:auto}.search-field input{background:var(--surface);width:100%;height:44px;box-shadow:var(--shadow);border:none;border-radius:999px;padding:0 16px}.search-field input:focus{box-shadow:var(--shadow), 0 0 0 2px var(--accent-soft);outline:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;padding:20px 12px;display:flex;overflow-y:auto}.account-section{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;margin-top:auto;padding-top:16px;display:flex}.account-section>:not(.sidebar-section-header){margin-left:8px;margin-right:8px}.account-section .sidebar-section-header{align-self:stretch}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 16px);margin-top:0;margin-bottom:0;font-size:14px;overflow:hidden}.danger-link{color:var(--danger)}.link-button:disabled{opacity:.5;cursor:not-allowed}.sidebar-title{margin:4px 8px 20px;font-size:20px}.smart-filters,.list-nav{flex-direction:column;gap:2px;margin:0 0 20px;padding:0;list-style:none;display:flex}.smart-filters button,.list-nav button{text-align:left;border-radius:var(--radius);background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:10px 12px;display:flex}.smart-filters button:hover,.list-nav button:hover{background:var(--surface-muted)}.smart-filters button.active,.list-nav button.active{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.list-nav-item{align-items:center;display:flex}.list-nav-item button:first-child{flex:1;min-width:0}.list-nav-item .icon-button{flex:none;width:auto}.list-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.count-badge{background:var(--surface-muted);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px}.sidebar-section-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 8px;font-size:13px;font-weight:600;display:flex}.add-list-form{margin:0 8px 8px}.add-list-form input{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);width:100%;padding:8px 10px}.sidebar-backdrop{display:none}.quick-add-wrap{margin-bottom:20px}.quick-add{background:var(--surface);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:6px 6px 6px 18px;display:flex}.quick-add input{background:0 0;border:none;flex:1;min-width:0;height:44px;padding:0}.quick-add input:focus{outline:none}.quick-add:focus-within{box-shadow:var(--shadow), 0 0 0 2px var(--accent-soft)}.quick-add select{background:var(--surface-muted);border:none;border-radius:999px;max-width:130px;height:36px;padding:0 8px;font-size:14px}.quick-add button{background:var(--accent);width:44px;height:44px;color:var(--accent-contrast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:26px;line-height:1;display:flex}.quick-add button:hover{background:var(--accent-hover)}.quick-add-preview{flex-wrap:wrap;align-items:center;gap:6px;padding:0 18px;display:flex}.quick-add-preview:not(:empty){margin-top:10px}.quick-add-preview-title{color:var(--text);overflow-wrap:anywhere;margin-right:2px;font-size:14px;font-weight:600}.view-header{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;margin-bottom:16px;padding:16px 18px}.view-greeting{color:var(--text-muted);font-size:14px}.view-title{margin:2px 0 0;font-size:24px;line-height:1.25}.view-progress{color:var(--text-muted);align-items:center;gap:10px;margin-top:10px;font-size:13px;display:flex}.view-progress-bar{background:var(--surface-muted);border-radius:4px;flex:1;height:8px;overflow:hidden}.view-progress-bar span{background:var(--accent);border-radius:4px;height:100%;transition:width .3s;display:block}.task-swipe{border-radius:var(--radius);position:relative}.swipe-actions{border-radius:var(--radius);color:var(--text-muted);background:var(--surface-muted);align-items:center;padding:0 20px;font-size:14px;font-weight:600;transition:background .15s,color .15s;display:flex;position:absolute;inset:0}.swipe-left{justify-content:flex-end}.swipe-right.swipe-reached{background:var(--accent);color:var(--accent-contrast)}.swipe-left.swipe-reached{color:#1f2a2e;background:#e0a100}.task-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.task-item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;padding:14px 12px 14px 16px;transition:box-shadow .15s,transform .2s;display:flex;position:relative}.task-dragging{transition:none}.task-item:hover{box-shadow:var(--shadow), 0 0 0 2px var(--accent-soft)}.task-item:focus-visible{box-shadow:var(--shadow), 0 0 0 2px var(--accent);outline:none}.task-item.task-selected{box-shadow:var(--shadow), 0 0 0 2px var(--accent)}.task-done{opacity:.6}.task-done .task-title{text-decoration:line-through}.checkbox{border:2px solid var(--checkbox-border);width:24px;height:24px;color:var(--accent-contrast);background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;display:flex}.checkbox:hover{border-color:var(--accent)}.task-done .checkbox{background:var(--accent);border-color:var(--accent)}.task-main{flex:1;min-width:0}.task-title{word-break:break-word;font-weight:500;display:block}.task-meta{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.task-meta:empty{display:none}.pill{color:var(--text-muted);background:var(--surface-muted);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.pill-tag{color:var(--text-muted);background:var(--surface-muted);font-weight:500}.pill-due{color:var(--accent-text);background:var(--accent-soft)}.pill-overdue,.pill-prio-3{color:var(--danger-text);background:var(--danger-soft)}.pill-prio-2{color:#8a5a00;background:#e0a10024}:root[data-theme=dark] .pill-prio-2{color:#e8b43a}@media (prefers-color-scheme:dark){:root[data-theme=system] .pill-prio-2{color:#e8b43a}}.empty-state{color:var(--text-muted);text-align:center;padding:40px 0}.task-item .icon-button{opacity:.45}.task-item .icon-button:hover{opacity:1}.task-detail{background:var(--surface);width:min(420px,100vw);box-shadow:var(--shadow-strong);z-index:30;padding:16px 20px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.task-detail-header{justify-content:space-between;margin-bottom:12px;display:flex}.task-detail-title{background:0 0;border:none;border-bottom:1px solid #0000;width:100%;margin-bottom:8px;padding:4px 0;font-size:20px;font-weight:600}.task-detail-title:focus{border-bottom-color:var(--accent);outline:none}.task-detail-description{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);resize:vertical;width:100%;margin-bottom:16px;padding:10px}.field-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.field-row label{width:90px;color:var(--text-muted);flex-shrink:0;font-size:13px}.field-row select:focus,.field-row input:focus,.task-detail-description:focus,.add-subtask-form input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.field-row select,.field-row input{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);flex:1;min-width:0;padding:8px 10px}.subtasks-section{margin-top:20px}.subtasks-section h3{color:var(--text-muted);margin:0 0 8px;font-size:14px}.subtask-list{flex-direction:column;gap:4px;margin:0 0 10px;padding:0;list-style:none;display:flex}.subtask-list li{align-items:center;gap:8px;padding:4px 0;display:flex}.subtask-done span{color:var(--text-muted);text-decoration:line-through}.subtask-list li span{flex:1}.add-subtask-form input{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);width:100%;padding:8px 10px}.centered-screen{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.auth-card{background:var(--surface);width:100%;max-width:340px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:10px;padding:24px;display:flex}.auth-card input{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);padding:11px 12px}.auth-card button[type=submit]{background:var(--accent);color:var(--accent-contrast);border:none;border-radius:999px;padding:12px;font-weight:600}.auth-card button[type=submit]:disabled{opacity:.6;cursor:wait}.auth-card h1,.auth-card h2,.auth-card p{margin:0}.info-text{color:var(--text);background:var(--accent-soft);border-radius:var(--radius-small);margin:0;padding:8px 10px;font-size:14px}.auth-card .danger-button{background:var(--danger);color:#fff}.legal-links{justify-content:center;gap:16px;margin-top:4px;font-size:12px;display:flex}.legal-links a{color:var(--text-muted)}.account-section .legal-links{justify-content:flex-start}.dialog-backdrop{background:var(--backdrop);z-index:50;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{max-width:380px}.icon-button{background:0 0;border:none;border-radius:6px;padding:6px;font-size:16px;line-height:1}.icon-button:hover{background:var(--surface-muted)}.icon-button.small{padding:4px;font-size:13px}.link-button{color:var(--accent);background:0 0;border:none;padding:0;font-size:13px}.muted{color:var(--text-muted)}.muted.small{font-size:12px}.digest-setting{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.digest-setting input[type=time]{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg);color:var(--text);padding:2px 6px;font-size:13px}.error-text{color:var(--danger);margin:0;font-size:13px}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.calendar-nav{align-items:center;gap:4px;display:flex}.calendar-nav .icon-button{border-radius:50%;width:40px;height:40px;font-size:24px}.calendar-title{min-width:0;margin:0 4px;font-size:22px}.calendar-actions{align-items:center;gap:8px;display:flex}.calendar-today{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:5px 14px;font-size:13px}.calendar-grid{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.calendar-weekdays,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{text-align:center;color:var(--text-muted);padding:8px 0;font-size:12px;font-weight:600}.calendar-day{border-top:1px solid var(--border);border-left:1px solid var(--border);cursor:pointer;flex-direction:column;gap:3px;min-width:0;min-height:104px;padding:6px;display:flex}.calendar-day:first-child{border-left:none}.calendar-day.other-month{background:var(--surface-muted)}.calendar-day.other-month .calendar-day-number{color:var(--text-muted)}.calendar-day.is-selected{background:var(--accent-soft)}.calendar-day.drop-target{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day-number{border-radius:999px;justify-content:center;align-self:flex-start;align-items:center;min-width:26px;height:26px;padding:0 6px;font-size:13px;font-weight:600;display:inline-flex}.calendar-day.is-today .calendar-day-number{background:var(--accent);color:var(--accent-contrast)}.calendar-day-name{margin-right:2px;font-weight:500;display:none}.calendar-chips{flex-direction:column;gap:3px;min-width:0;display:flex}.calendar-chip{text-align:left;border:none;border-left:3px solid var(--accent);background:var(--surface-muted);width:100%;color:var(--text);white-space:nowrap;text-overflow:ellipsis;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:6px;padding:3px 6px;font-size:12px;line-height:1.3;display:block;overflow:hidden}.calendar-chip:hover{background:var(--accent-soft)}.calendar-chip.prio-3{border-left-color:var(--danger)}.calendar-chip.overdue{background:var(--danger-soft);color:var(--danger-text)}.calendar-chip.selected{box-shadow:0 0 0 2px var(--accent)}.calendar-chip.dragging{opacity:.35}.calendar-chip-time{margin-right:4px;font-weight:600}.calendar-more{color:var(--text-muted);padding-left:6px;font-size:11px}.calendar-dots{display:none}.calendar-mode-week .calendar-day{min-height:320px}.calendar-mode-week .calendar-chip{white-space:normal;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}.calendar-mode-week .calendar-chip-time{display:block}.calendar-day-list{margin-top:20px}.calendar-day-list h2{margin:0 0 10px 4px;font-size:16px}.empty-state.small{padding:16px 0;font-size:14px}.calendar-ghost{z-index:60;pointer-events:none;background:var(--surface);max-width:220px;color:var(--text);box-shadow:var(--shadow-strong);border:1px solid var(--accent);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;padding:6px 12px;font-size:13px;position:fixed;overflow:hidden;transform:translate(-50%,-130%)}@media (width>=761px){.sidebar{height:100svh;position:sticky;top:0}}@media (width<=1199px){.detail-backdrop{background:var(--backdrop);z-index:20;position:fixed;inset:0}}@media (width>=1200px){.task-detail{width:420px;height:100svh;box-shadow:none;border-left:1px solid var(--border);z-index:auto;flex-shrink:0;position:sticky;top:0;bottom:auto;right:auto}}@media (width<=760px){.menu-button{background:var(--surface);border-radius:var(--radius);width:44px;height:44px;box-shadow:var(--shadow);justify-content:center;align-items:center;font-size:20px;display:inline-flex}.sidebar{z-index:40;box-shadow:var(--shadow-strong);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-backdrop{background:var(--backdrop);z-index:20;display:block;position:fixed;inset:0}.main-content{padding:12px 12px 96px}.sync-label{display:none}.calendar-title{font-size:18px}.calendar-day{align-items:center;min-height:54px;padding:4px 2px}.calendar-day-number{align-self:center}.calendar-mode-month .calendar-chips{display:none}.calendar-mode-month .calendar-dots{gap:3px;display:flex}.calendar-dots i{background:var(--accent);border-radius:50%;width:5px;height:5px}.calendar-dots i.overdue{background:var(--danger)}.calendar-mode-week .calendar-weekdays{display:none}.calendar-mode-week .calendar-day-name{display:inline}.calendar-mode-week .calendar-week{flex-direction:column;display:flex}.calendar-mode-week .calendar-day{border-left:none;flex-direction:row;align-items:flex-start;gap:10px;min-height:52px;padding:8px 10px}.calendar-mode-week .calendar-day-number{justify-content:flex-start;align-self:flex-start;min-width:64px}.calendar-mode-week .calendar-chips{flex:1}.calendar-mode-week .calendar-chip{padding:6px 8px;font-size:14px}.calendar-mode-week .calendar-chip-time{display:inline}.field-row label{width:76px}.field-row input[type=date],.field-row input[type=time]{padding:8px 6px}.field-row input[type=time]{flex:0 0 96px}}.primary-button{background:var(--accent);color:var(--accent-contrast);border:none;border-radius:999px;padding:12px;font-weight:600}.primary-button:disabled{opacity:.6;cursor:not-allowed}.premium-badge{border:1px solid var(--accent);color:var(--accent);background:0 0;border-radius:999px;align-self:flex-start;margin-bottom:4px;padding:3px 10px;font-size:13px}.premium-active{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;align-self:flex-start;margin:0 0 4px;padding:3px 10px;font-size:13px;font-weight:600}.premium-dialog{max-width:420px}.premium-table{border-collapse:collapse;width:100%;font-size:14px}.premium-table th,.premium-table td{border-bottom:1px solid var(--border);text-align:center;padding:6px 4px}.premium-table th:first-child,.premium-table td:first-child{text-align:left}.premium-table th:last-child,.premium-table td:last-child{color:var(--accent);font-weight:600}.theme-switch{background:var(--surface-muted);border-radius:999px;gap:2px;padding:3px;display:flex}.theme-switch button{color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:5px 12px;font-size:13px}.theme-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.field-row-top{align-items:flex-start}.field-row-top>label{padding-top:6px}.reminder-editor{flex:1;min-width:0}.reminder-options{flex-wrap:wrap;gap:6px;display:flex}.reminder-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:5px 11px;font-size:13px}.reminder-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.reminder-chip:disabled{opacity:.45}.reminder-editor .muted.small{margin:6px 0 0}.reminder-snoozed{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tag-editor{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.field-row .tag-editor input{flex:1;min-width:100px}.tag-chip{align-items:center;gap:4px;padding-right:4px;display:inline-flex}.tag-chip button{color:inherit;background:0 0;border:none;border-radius:999px;padding:2px 4px;font-size:11px}.tag-chip button:hover{background:var(--border)}.tag-hash{text-align:center;width:8px;color:var(--text-muted);font-weight:600}.snackbar{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));border-radius:var(--radius);color:#fff;width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--shadow-strong);z-index:60;background:#1f2a2e;align-items:center;gap:16px;padding:10px 10px 10px 18px;font-size:14px;animation:.2s snackbar-in;display:flex;position:fixed;transform:translate(-50%)}.snackbar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.snackbar button{color:#6fd3c5;border-radius:var(--radius-small);background:0 0;border:none;flex-shrink:0;padding:8px 10px;font-weight:700}.snackbar button:hover{background:#ffffff14}:root[data-theme=dark] .snackbar{color:#1f2a2e;background:#e4e7e6}:root[data-theme=dark] .snackbar button{color:#0b8577}@media (prefers-color-scheme:dark){:root[data-theme=system] .snackbar{color:#1f2a2e;background:#e4e7e6}:root[data-theme=system] .snackbar button{color:#0b8577}}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%,12px)}}
