.app{max-width:720px;margin:0 auto;padding:calc(var(--top-nav-offset) + 1rem) 1.25rem calc(5rem + env(safe-area-inset-bottom,0px))}.top-nav{position:fixed;top:0;left:0;right:0;z-index:150;display:grid;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.5rem;padding:max(.5rem,env(safe-area-inset-top,0px)) max(.65rem,env(safe-area-inset-right,0px)) .5rem max(.65rem,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.top-nav-menu{width:2.75rem;height:2.75rem;padding:0;border:none;background:transparent;color:var(--ink-muted);box-shadow:none}.top-nav-menu:active{color:var(--ink)}.top-nav-title{margin:0;grid-column:2;text-align:center;font-family:var(--font-display);font-size:1.35rem;font-weight:400;letter-spacing:-.02em;line-height:1.2;color:var(--ink)}.top-nav-end{grid-column:3;width:2.75rem}:root{--top-nav-offset: calc(max(.5rem, env(safe-area-inset-top, 0px)) + 3.25rem) }.sticky-toolbar{position:sticky;top:var(--top-nav-offset);z-index:40;margin:0 -1.25rem .75rem;padding:.65rem 1.25rem .75rem;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.sticky-toolbar .toolbar{margin-bottom:0}.add-task-anchor{scroll-margin-top:6rem}.add-task-sentinel{height:1px;margin:0;pointer-events:none}.fab-add{position:fixed;right:max(1.1rem,env(safe-area-inset-right,0px));bottom:max(1.25rem,env(safe-area-inset-bottom,0px));z-index:90;width:3.25rem;height:3.25rem;border:none;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 28px #1a5f4a59;opacity:0;pointer-events:none;transform:scale(.85) translateY(8px);transition:opacity .2s ease,transform .2s ease,box-shadow .15s ease}.fab-add--visible{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.fab-add--visible:active{transform:scale(.96) translateY(0)}[data-theme=dark] .fab-add{box-shadow:0 8px 28px #00000073}.loading{text-align:center;padding:calc(var(--top-nav-offset) + 4rem) 1.25rem 4rem;color:var(--ink-muted)}.next-focus{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1.75rem;box-shadow:var(--shadow)}.next-focus-swipe{position:relative;overflow:hidden;border-radius:var(--radius-sm);margin:0 -.25rem}.next-focus-swipe-actions{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-end;pointer-events:none}.next-focus-swipe-action{display:flex;align-items:center;justify-content:center;min-width:5.5rem;padding:0 1rem}.next-focus-row{position:relative;z-index:1;display:flex;align-items:center;gap:.75rem;padding:.15rem .25rem;background:var(--bg-elevated);transition:transform .2s ease;touch-action:pan-y}.next-focus-row--swiping{transition:none}.next-focus-row .next-focus-title{flex:1;min-width:0}.next-focus-check{flex-shrink:0}.next-focus-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.35rem}.next-focus-title{font-family:var(--font-display);font-size:1.65rem;line-height:1.25;margin:0}.next-focus-empty{color:var(--ink-muted);font-style:italic;margin:0}.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.search-row{display:flex;gap:.5rem}.search-field{position:relative;flex:1;min-width:0}.search-input{width:100%;box-sizing:border-box;padding:.65rem 2.65rem .65rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated)}.search-field-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);display:flex;color:var(--ink-muted);pointer-events:none}.filter-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.filter-chip{padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s}.filter-chip:hover{border-color:var(--border-strong)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.tag-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.tag-chip-interactive{display:inline-flex;align-items:center;max-width:100%;vertical-align:middle;transition:padding .28s cubic-bezier(.4,0,.2,1),opacity .15s ease}.tag-chip-label{white-space:nowrap;line-height:1.2}.tag-chip-remove{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center;width:0;max-width:0;height:1.1rem;padding:0;margin:0;border:none;border-radius:50%;background:transparent;color:#fffffff2;font-size:1.05rem;font-weight:600;line-height:1;overflow:hidden;opacity:0;cursor:pointer;transition:max-width .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),opacity .22s ease,margin-left .28s cubic-bezier(.4,0,.2,1)}.tag-chip-interactive:hover .tag-chip-remove,.tag-chip-interactive:focus-within .tag-chip-remove{width:1.1rem;max-width:1.1rem;margin-left:.35rem;opacity:1}.tag-chip-remove:hover{background:#0000002e}.tag-chip-editing{display:inline-flex}.tag-add-btn{flex-shrink:0;width:1.65rem;height:1.65rem;border-radius:50%;border:1px solid var(--border);background:var(--bg-elevated);font-size:1.15rem;font-weight:400;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted)}.tag-add-btn:hover{border-color:var(--accent);color:var(--accent)}.tag-chip--input-shell{padding:.2rem .55rem}.tag-chip-input{border:none;background:transparent;color:#fff;font-size:.75rem;font-weight:600;min-width:4.5rem;max-width:9rem;padding:.1rem 0}.tag-chip-input::placeholder{color:#ffffffb3}.tag-chip-input:focus{outline:none}.tag-chip--on-task{cursor:grab}.tag-chip--on-task:active{cursor:grabbing}.tag-chip,.tag-filter,.tag-chip-interactive{padding:.3rem .65rem;border-radius:999px;border:1px solid transparent;font-size:.75rem;font-weight:600;color:#fff;opacity:.85}.tag-filter.tag-chip-interactive{cursor:pointer}.tag-filter:hover{opacity:1}.tag-filter.active{opacity:1;box-shadow:0 0 0 2px var(--ink)}.add-task{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.add-task-row{display:flex;gap:.5rem}.add-task input[type=text]{flex:1;padding:.7rem .9rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated)}.btn{padding:.65rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);font-weight:600;font-size:.875rem;white-space:nowrap}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-muted);padding:.35rem .5rem}.btn-ghost:hover{color:var(--ink);background:#0000000a}.btn-danger:hover{color:#a63d40}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.task-list-empty{text-align:center;padding:2rem;color:var(--ink-muted);border:1px dashed var(--border);border-radius:var(--radius)}.task-list-item{list-style:none;border-radius:var(--radius-sm)}.task-list-item.dragging{opacity:.5;box-shadow:var(--shadow)}.task-item-swipe{position:relative;overflow:hidden;border-radius:var(--radius-sm)}.task-swipe-actions{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-between;pointer-events:none}.task-swipe-action{display:flex;align-items:center;justify-content:center;min-width:5.5rem;padding:0 1rem;font-size:.8rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.task-swipe-action--delete{background:#a63d40;color:#fff;text-transform:none}.task-swipe-action--complete{margin-left:auto;background:var(--accent);color:#fff}.task-swipe-action--icon{text-transform:none}.task-item{position:relative;z-index:1;display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);transition:box-shadow .15s,transform .2s ease;touch-action:pan-y}.task-item--swiping{transition:box-shadow .15s}.task-item--open-edit{cursor:pointer}.task-item--open-edit .drag-handle{cursor:grab}.task-item--open-edit .task-check{cursor:pointer}.task-item--open-edit .task-tags{cursor:default}.task-item.priority-1{background:var(--priority-1);border-color:#1a5f4a40;box-shadow:0 4px 20px #1a5f4a1a}.task-item.priority-2{background:var(--priority-2);border-color:#1a5f4a26}.task-item.priority-3{background:var(--priority-3);border-color:#1c1a171f}.task-item.completed .task-title{text-decoration:line-through;color:var(--ink-muted)}.task-item.completed .task-notes{color:var(--ink-faint)}.task-item.tag-drop-target{outline:2px dashed var(--accent);outline-offset:2px;background:var(--accent-soft)}.drag-handle{flex-shrink:0;align-self:center;padding:.25rem;border:none;background:transparent;color:var(--ink-faint);cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.task-check{flex-shrink:0;align-self:center;width:1.25rem;height:1.25rem;accent-color:var(--accent)}.task-body{flex:1;min-width:0}.task-title{font-weight:600;margin:0;word-break:break-word}.task-notes{margin:.25rem 0 0;font-size:.85rem;color:var(--ink-muted)}.task-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:.4rem;line-height:0}.priority-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.2rem}.tag-chip-interactive[draggable=true]{cursor:grab}.tag-chip-interactive[draggable=true]:active{cursor:grabbing}.tag-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.tag-name-input{flex:1;border:none;background:transparent;padding:.2rem 0;min-width:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal-backdrop--confirm{z-index:110}.modal{width:100%;max-width:420px;background:var(--bg-elevated);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.modal h3{margin:0 0 1rem;font-size:1.1rem}.modal label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-muted);margin-bottom:.35rem}.modal .modal-field{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.75rem;background:var(--input-bg)}.modal textarea.modal-field{min-height:72px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.modal--confirm .confirm-dialog-message{margin:0 0 1.25rem;color:var(--ink-muted);font-size:.95rem;line-height:1.5}.btn-danger-solid{background:#a63d40;border-color:#a63d40;color:#fff}.btn-danger-solid:hover{filter:brightness(1.05)}.modal--task-edit{max-width:480px;overflow:hidden}.modal-task-edit-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.modal-task-edit-header h3{margin:0;flex:1;min-width:0}.modal-delete-btn{flex-shrink:0;color:#a63d40}.modal-delete-btn:active{color:#8b3235}.modal--task-edit form{min-width:0}.subtask-progress{margin-top:.55rem}.subtask-progress-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.3rem}.subtask-progress-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.subtask-progress-count{font-size:.75rem;font-weight:600;color:var(--ink-muted);font-variant-numeric:tabular-nums}.subtask-progress-track{height:6px;border-radius:999px;background:var(--border);overflow:hidden}.subtask-progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .25s ease}.subtask-editor{margin-bottom:.75rem;width:100%;min-width:0}.subtask-editor-header{margin-bottom:.5rem}.subtask-editor-title{font-size:.8rem;font-weight:600;color:var(--ink-muted)}.subtask-list{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.35rem;width:100%;min-width:0}.subtask-item{display:flex;align-items:center;gap:.45rem;width:100%;min-width:0;box-sizing:border-box;padding:.35rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg)}.subtask-item.completed .subtask-title-input{text-decoration:line-through;color:var(--ink-muted)}.subtask-check{flex-shrink:0;width:1rem;height:1rem;margin:0;padding:0;border:none;accent-color:var(--accent)}.subtask-title-input{flex:1 1 auto;width:0;min-width:0;border:none;background:transparent;padding:.2rem 0;font-size:.875rem;margin:0;color:var(--ink)}.subtask-title-input:focus{outline:none}.subtask-remove{flex-shrink:0;padding:.25rem;color:var(--ink-faint)}.subtask-remove:hover{color:#a63d40}.subtask-add{display:flex;gap:.4rem;width:100%;min-width:0}.subtask-add-input{flex:1 1 auto;width:0;min-width:0;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);font-size:.875rem;margin:0;color:var(--ink)}.subtask-add-btn{padding:.5rem .75rem;font-size:.8rem}.side-menu-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.side-menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;padding:0;background:var(--overlay);cursor:pointer}.side-menu-drawer{position:relative;z-index:1;width:min(100%,320px);max-width:88vw;height:100%;background:var(--bg-elevated);box-shadow:var(--shadow);display:flex;flex-direction:column;animation:side-menu-slide .22s ease}@keyframes side-menu-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}.side-menu-header{display:flex;align-items:center;gap:.35rem;padding:.75rem .65rem;border-bottom:1px solid var(--border)}.side-menu-header-spacer{width:2.25rem}.side-menu-title{flex:1;margin:0;font-size:1.05rem;font-weight:600;text-align:center}.side-menu-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.side-menu-sync{flex-shrink:0;padding:.85rem .85rem 1rem;border-bottom:1px solid var(--border)}.side-menu-sync-heading{margin:0 0 .65rem;font-size:.8rem;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.side-menu-panel{flex:1;overflow-y:auto;padding:1rem .85rem 1.5rem;-webkit-overflow-scrolling:touch}.side-menu-nav{display:flex;flex-direction:column;gap:.35rem}.side-menu-nav-item{display:flex;align-items:center;gap:.65rem;width:100%;text-align:left;padding:.75rem .35rem;border:none;background:transparent;font-weight:600;font-size:1rem;color:var(--ink)}.side-menu-nav-icon{display:flex;flex-shrink:0;color:var(--ink-muted)}.side-menu-nav-item:active{color:var(--ink-muted)}.panel-intro{margin:0 0 1rem;font-size:.85rem;color:var(--ink-muted);line-height:1.45}.manage-tags-add{display:flex;gap:.45rem;margin-bottom:1rem}.manage-tags-input{flex:1;min-width:0;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);font-size:1rem}.manage-tags-input--inline{padding:.35rem .5rem}.manage-tags-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.manage-tags-empty{color:var(--ink-muted);font-size:.9rem;padding:.5rem 0}.manage-tags-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.manage-tags-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.manage-tags-name{flex:1;min-width:0;text-align:left;border:none;background:transparent;padding:.35rem 0;font-weight:600;font-size:.95rem;color:var(--ink)}.manage-tags-delete{color:var(--ink-faint)}.settings-fieldset{border:none;margin:0;padding:0}.settings-fieldset--spaced{margin-top:1.35rem}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .15rem;cursor:pointer}.settings-toggle-text{font-weight:600;font-size:.95rem;line-height:1.35}.settings-toggle{position:relative;flex-shrink:0;width:2.75rem;height:1.6rem}.settings-toggle-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.settings-toggle-track{position:relative;display:block;width:100%;height:100%;border-radius:999px;background:var(--border-strong);transition:background .2s ease}.settings-toggle-track:after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.3rem;height:1.3rem;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0003;transition:transform .2s ease}.settings-toggle-input:checked+.settings-toggle-track{background:var(--accent)}.settings-toggle-input:checked+.settings-toggle-track:after{transform:translate(1.15rem)}.settings-toggle-input:focus-visible+.settings-toggle-track{outline:2px solid var(--accent);outline-offset:2px}.settings-legend{font-size:.8rem;font-weight:600;color:var(--ink-muted);margin-bottom:.65rem}.settings-theme-options{display:flex;flex-direction:column;gap:.35rem}.settings-theme-option{display:flex;align-items:center;gap:.65rem;padding:.65rem .15rem;font-weight:600;cursor:pointer}.settings-theme-option input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.settings-sync-hint{margin:0;font-size:.9rem;line-height:1.45;color:var(--ink-muted)}.settings-sync-hint code{font-size:.82rem}.settings-sync{display:flex;flex-direction:column;gap:.65rem}.settings-sync-signed-in{margin:0;font-weight:600;font-size:.95rem;color:var(--ink)}.settings-sync-meta{margin:0;font-size:.85rem;color:var(--ink-muted)}.settings-sync-error{margin:0;font-size:.85rem;color:#a63d40}.settings-sync-btn{align-self:flex-start}.google-sync-btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;width:100%;margin:0;padding:.7rem 1.25rem;border:1px solid #747775;border-radius:999px;background:#fff;color:#1f1f1f;font-family:var(--font-sans);font-size:.9rem;font-weight:500;line-height:1.2;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.google-sync-btn:hover{background:#f8f9fa;box-shadow:0 1px 2px #0000000f}.google-sync-btn:active{background:#f1f3f4}.google-logo-icon{flex-shrink:0}[data-theme=dark] .google-sync-btn{background:#131314;color:#e3e3e3;border-color:#8e918f}[data-theme=dark] .google-sync-btn:hover{background:#1e1f20}[data-theme=dark] .google-sync-btn:active{background:#282a2c}:root{--bg: #f4f0e8;--bg-elevated: #fffdf8;--ink: #1c1a17;--ink-muted: #5c574f;--ink-faint: #8a8479;--accent: #1a5f4a;--accent-soft: #d8ebe3;--accent-glow: rgba(26, 95, 74, .12);--priority-1: linear-gradient(135deg, #fffdf8 0%, #e8f4ef 100%);--priority-2: linear-gradient(135deg, #fffdf8 0%, #f0ebe3 100%);--priority-3: linear-gradient(135deg, #fffdf8 0%, #f5f2ec 100%);--border: rgba(28, 26, 23, .1);--border-strong: rgba(28, 26, 23, .18);--shadow: 0 12px 40px rgba(28, 26, 23, .08);--radius: 14px;--radius-sm: 10px;--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Instrument Serif", Georgia, serif;--input-bg: #fffdf8;--overlay: rgba(28, 26, 23, .45)}[data-theme=dark]{--bg: #121110;--bg-elevated: #1c1a17;--ink: #f4f0e8;--ink-muted: #b8b2a6;--ink-faint: #8a8479;--accent: #3d9a7a;--accent-soft: #1e3d32;--accent-glow: rgba(61, 154, 122, .15);--priority-1: linear-gradient(135deg, #1c1a17 0%, #1e2e28 100%);--priority-2: linear-gradient(135deg, #1c1a17 0%, #252219 100%);--priority-3: linear-gradient(135deg, #1c1a17 0%, #221f1a 100%);--border: rgba(244, 240, 232, .1);--border-strong: rgba(244, 240, 232, .18);--shadow: 0 12px 40px rgba(0, 0, 0, .45);--input-bg: #262320;--overlay: rgba(0, 0, 0, .55)}body.side-menu-open{overflow:hidden}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% -20%,var(--accent-glow),transparent),radial-gradient(circle at 100% 100%,rgba(196,92,62,.06),transparent 40%)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}button:focus:not(:focus-visible){outline:none}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
