:root{color-scheme:light;--color-bg: #ffffff;--color-surface: #ffffff;--color-surface-muted: #f6f8fb;--color-text: #111111;--color-text-muted: #9aa3b5;--color-text-subtle: #b3bbcb;--color-border: #d4d8dd;--color-border-strong: #3f454c;--color-border-soft: #dddddd;--color-button-bg: #f5f5f5;--color-toggle-active: #f0f0f0;--color-placeholder: #edf1f6;--color-column-highlight: #f4f7fb;--color-drop-border: #1f2933;--color-card-drop-shadow: #1f2933;--color-priority-high: #b71c1c;--color-priority-medium: #ff9800;--color-priority-low: #388e3c;--calendar-filter: none;--composer-panel-width: clamp(18rem, 40vw, 20rem);--composer-description-size: var(--composer-panel-width);--composer-control-height: 2.4rem;--radius-rounded: .65rem}[data-theme=dark]{color-scheme:dark;--color-bg: #0f172a;--color-surface: #111827;--color-surface-muted: #1f2937;--color-text: #f9fafb;--color-text-muted: #d1d5ff;--color-text-subtle: #aab8ff;--color-border: #334155;--color-border-strong: #f9fafb;--color-border-soft: #1f2937;--color-button-bg: #1e293b;--color-toggle-active: #1f2937;--color-placeholder: #94a3b8;--color-column-highlight: #1e293b;--color-drop-border: #94a3b8;--color-card-drop-shadow: #94a3b8;--color-priority-high: #f87171;--color-priority-medium: #fbbf24;--color-priority-low: #34d399;--calendar-filter: invert(.85);--composer-panel-width: clamp(18rem, 40vw, 20rem)}.app-shell{min-height:100vh;background:var(--color-bg);color:var(--color-text);padding:2rem 1.5rem 9rem;font-family:"0xProto",monospace;display:flex;flex-direction:column;gap:1.5rem;text-transform:lowercase}.loading-shell{min-height:100vh;background:var(--color-bg);display:flex;align-items:flex-start;justify-content:center;padding:3rem 1.5rem;font-family:"0xProto",monospace}.loading-skeleton{width:100%;max-width:640px;display:flex;flex-direction:column;gap:1rem}.skeleton-line{background:var(--color-surface-muted);border-radius:var(--radius-rounded);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-line--title{height:2rem;width:40%}.skeleton-line--input{height:2.4rem;width:100%}.skeleton-line--item{height:3.5rem;width:100%}.skeleton-line--short{width:75%}.app-header{display:flex;flex-direction:column;gap:.5rem}.app-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.app-header h1{margin:0}.app-header p{margin:0;color:var(--color-text-muted)}.auth-shell{min-height:50vh;display:grid;place-items:center;padding:2rem 1.5rem;background:var(--color-bg)}.auth-shell.minimal{padding-top:2rem}.auth-hero{display:flex;flex-direction:column;gap:.75rem;max-width:480px}.auth-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:700;color:var(--color-text-muted);margin:0}.auth-hero h1{font-size:clamp(1.8rem,2.6vw,2.6rem);margin:0;line-height:1.1}.auth-subtext{margin:0;color:var(--color-text-muted);font-size:1rem;line-height:1.5}.auth-footnote{margin:.5rem 0 0;color:var(--color-text-muted);font-size:.9rem}.auth-bullets{display:grid;gap:.5rem;margin-top:.5rem}.auth-bullets>div{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border-radius:999px;background:color-mix(in srgb,var(--color-surface-muted) 80%,transparent);color:var(--color-text);font-size:.9rem}.auth-bullets>div:before{content:"•";font-size:1.1rem;color:var(--color-border-strong)}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.85rem;padding:1.25rem 1.5rem 1.5rem;max-width:360px;width:min(90vw,360px);box-shadow:0 4px 24px #0000000d}.auth-card.minimal{width:min(92vw,360px);padding:1.25rem 1.5rem 1.5rem}.auth-card-header p{margin:0;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--color-text-muted);font-weight:600}.auth-card-header h2{margin:.15rem 0 0;font-size:1.2rem;font-weight:600;letter-spacing:-.02em}.auth-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.85rem}.auth-label{font-weight:500;font-size:.82rem;color:var(--color-text-muted);margin-bottom:.15rem}.auth-input{width:100%;padding:.55rem .75rem;border-radius:.6rem;border:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text);font-size:.9rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.auth-input::placeholder{color:color-mix(in srgb,var(--color-placeholder) 50%,transparent)}.auth-input[type=password]::placeholder{color:color-mix(in srgb,var(--color-placeholder) 50%,transparent)}.auth-input:focus-visible{outline:none;border-color:var(--color-border-strong);box-shadow:0 0 0 2.5px color-mix(in srgb,var(--color-border-strong) 20%,transparent);background:var(--color-surface)}.auth-input--code{font-family:"0xProto",monospace;font-size:.78rem;letter-spacing:.02em;border-color:var(--color-border-strong);background:var(--color-surface-muted)}.auth-hint--code{margin-top:-.25rem;margin-bottom:.15rem}.auth-password-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}.auth-toggle-password{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:.65rem .9rem;cursor:pointer}.auth-message{margin:0;background:color-mix(in srgb,#12b981 8%,transparent);color:var(--color-text);border:1px solid var(--color-border);border-radius:.6rem;padding:.5rem .7rem;font-size:.82rem}.auth-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.65rem}.button.primary{background:var(--color-border-strong);color:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:999px;padding:.45rem 1.1rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .15s ease}.button.primary:disabled{opacity:.7}.button.ghost{background:transparent;color:var(--color-text);border:1px dashed var(--color-border-strong);border-radius:999px}.auth-reset-link{border:none;background:transparent;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;padding:.25rem 0;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease;align-self:flex-start;margin-top:.25rem}.auth-reset-link:hover{color:var(--color-text)}.auth-reset-link:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.auth-hint{font-size:.76rem;color:var(--color-text-muted);margin:.15rem 0 .5rem;line-height:1.4}.vault-mode-tabs{display:flex;gap:.2rem;margin-bottom:.85rem;background:var(--color-surface-muted);border-radius:.55rem;padding:.2rem}.vault-tab{flex:1;padding:.35rem .6rem;border:none;border-radius:.4rem;background:transparent;color:var(--color-text-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.vault-tab.active,.vault-tab[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);border-color:transparent;box-shadow:0 1px 3px #0000001a}.vault-tab:hover:not(.active){color:var(--color-text)}.vault-code-display{display:flex;align-items:center;gap:.5rem;background:var(--color-surface-muted);border:2px solid var(--color-border-strong);border-radius:var(--radius-rounded);padding:.65rem .75rem;margin:.5rem 0 1rem;overflow:hidden}.vault-code-text{flex:1;font-size:.78rem;word-break:break-all;color:var(--color-text);-webkit-user-select:all;user-select:all;font-family:"0xProto",monospace;letter-spacing:.02em}.vault-code-copy{white-space:nowrap;padding:.3rem .65rem;font-size:.78rem;border:1px solid var(--color-border);border-radius:.35rem;background:var(--color-button-bg);color:var(--color-text);cursor:pointer;transition:background .15s}.vault-code-copy:hover{background:var(--color-border)}.vault-id-label{font-size:.78rem;color:var(--color-text-muted);font-family:monospace}.view-toggles{display:inline-flex;gap:.5rem}.header-controls{display:inline-flex;gap:.75rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.theme-toggle-round{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:1rem;line-height:1;transition:background .15s ease,border-color .15s ease}.theme-toggle-round:hover,.theme-toggle-round:focus-visible{background:color-mix(in srgb,var(--color-toggle-active) 60%,transparent);border-color:var(--color-border-strong);outline:none}.header-btn-ghost{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);padding:.3rem .7rem;font-size:.78rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease;text-transform:lowercase}.header-btn-ghost:hover,.header-btn-ghost:focus-visible{color:var(--color-text);border-color:var(--color-border-strong);outline:none}.header-btn-leave{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;background:transparent;color:var(--color-text-muted);font-size:1.25rem;line-height:1;cursor:pointer;transition:color .15s ease,background .15s ease}.header-btn-leave:hover,.header-btn-leave:focus-visible{color:var(--color-priority-high);background:color-mix(in srgb,var(--color-priority-high) 10%,transparent);outline:none}.header-title-editable{margin:0;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px dashed transparent;padding-bottom:1px;transition:border-color .15s ease}.header-title-editable:hover,.header-title-editable:focus-visible{border-bottom-color:var(--color-text-muted);outline:none}.header-title-input{margin:0;font-size:inherit;font-family:inherit;font-weight:inherit;color:var(--color-text);background:transparent;border:none;border-bottom:1px solid var(--color-border-strong);border-radius:0;padding:.1rem .25rem;width:10rem;max-width:60vw;text-transform:lowercase;outline:none}.view-option{border:1px solid var(--color-border-strong);border-radius:var(--radius-rounded);padding:.5rem 1rem;background:var(--color-surface);color:var(--color-text);cursor:pointer}.view-option.active{background:var(--color-toggle-active);font-weight:600}.composer-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--composer-panel-width);gap:1.25rem;align-items:stretch;justify-content:flex-start}.composer form{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;width:100%}.composer-sidebar{display:flex;flex-direction:column;gap:.75rem;width:var(--composer-panel-width)}.composer input[type=text],.composer textarea{width:100%;padding:.4rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-rounded);font-size:.875rem;line-height:1.4;background:var(--color-surface);color:var(--color-text);box-sizing:border-box}.composer input[type=text]::placeholder,.composer textarea::placeholder{color:var(--color-placeholder);font-style:italic;text-transform:none}.composer-input{min-height:var(--composer-control-height)}.composer-textarea{height:var(--composer-description-size);min-height:var(--composer-description-size);resize:none}.search-input{flex:1;min-width:0;max-width:18rem;padding:.35rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-rounded);background:var(--color-surface);color:var(--color-text);font-size:.8rem;min-height:var(--composer-control-height);transition:border-color .15s ease,box-shadow .15s ease}.search-input::placeholder{color:var(--color-placeholder);font-style:italic;text-transform:none}.search-input:focus-visible{outline:none;border-color:var(--color-border-strong);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-border-strong) 20%,transparent)}.priority-focus-filter{margin-left:auto;display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.priority-focus-options{display:inline-flex;gap:.5rem}.priority-focus-button{border:1px solid var(--color-border);border-radius:var(--radius-rounded);padding:.35rem .75rem;background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;min-height:var(--composer-control-height);display:inline-flex;align-items:center;justify-content:center}.priority-focus-button:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}.priority-focus-button.active{background:var(--color-toggle-active);font-weight:600}.priority-focus-button.priority-high{border-color:var(--color-priority-high);color:var(--color-priority-high)}.priority-focus-button.priority-high.active{background:color-mix(in srgb,var(--color-priority-high) 12%,transparent)}.priority-focus-button.priority-medium{border-color:var(--color-priority-medium);color:var(--color-priority-medium)}.priority-focus-button.priority-medium.active{background:color-mix(in srgb,var(--color-priority-medium) 12%,transparent)}.priority-focus-button.priority-low{border-color:var(--color-priority-low);color:var(--color-priority-low)}.priority-focus-button.priority-low.active{background:color-mix(in srgb,var(--color-priority-low) 12%,transparent)}.composer-submit-inline{border:1px solid var(--color-border-strong);border-radius:var(--radius-rounded);background:var(--color-button-bg);color:var(--color-text);padding:0 1.25rem;min-height:var(--composer-control-height);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-transform:lowercase;letter-spacing:.05em;align-self:stretch}.composer-submit-inline:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}.composer-priority-row{display:flex;align-items:center;gap:.5rem}.composer-priority-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.composer-priority-options{display:inline-flex;gap:.35rem}.composer-priority-button{border:1px solid var(--color-border);border-radius:var(--radius-rounded);padding:.25rem .6rem;background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;transition:background .15s ease,border-color .15s ease}.composer-priority-button:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}.composer-priority-button.priority-high{border-color:var(--color-priority-high);color:var(--color-priority-high)}.composer-priority-button.priority-high.active{background:color-mix(in srgb,var(--color-priority-high) 15%,transparent);font-weight:600}.composer-priority-button.priority-medium{border-color:var(--color-priority-medium);color:var(--color-priority-medium)}.composer-priority-button.priority-medium.active{background:color-mix(in srgb,var(--color-priority-medium) 15%,transparent);font-weight:600}.composer-priority-button.priority-low{border-color:var(--color-priority-low);color:var(--color-priority-low)}.composer-priority-button.priority-low.active{background:color-mix(in srgb,var(--color-priority-low) 15%,transparent);font-weight:600}.composer-submit-mobile{display:none}.filter-row{margin-top:.5rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between}.filters{display:flex;gap:.5rem}.filters-hidden{visibility:hidden;pointer-events:none}.filters button{padding:.35rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-rounded);background:var(--color-surface);color:var(--color-text);cursor:pointer;min-height:var(--composer-control-height);display:inline-flex;align-items:center;justify-content:center}.filters button.active{border-color:var(--color-border-strong);background:var(--color-toggle-active);font-weight:600}.todo-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.todo-list{border:1px solid var(--color-border-soft);background:var(--color-surface);padding:.75rem;border-radius:var(--radius-rounded)}.todo-list .empty-state{margin:0;border:none;background:transparent;padding:1rem 0}.todo-board{display:flex;gap:1rem;align-items:flex-start;overflow-x:auto;padding-bottom:.5rem}.todo-column{flex:1;min-width:220px;border:1px solid var(--color-border-soft);background:var(--color-surface);padding:.75rem;display:flex;flex-direction:column;gap:.75rem;border-radius:var(--radius-rounded)}.todo-column h2{margin:0;font-size:1rem}.todo-column ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.todo{background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-rounded);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem;min-height:160px}.todo-list:not(.card-view) .todo{cursor:grab;position:relative;transition:background .15s ease,opacity .15s ease,filter .25s ease}.todo-list:not(.card-view) .todo.dragging{opacity:.6;cursor:grabbing}.todo-list:not(.card-view) .todo.drop-target{background:var(--color-column-highlight)}.todo-list:not(.card-view) .todo.drop-target:before{content:"";position:absolute;left:-1px;right:-1px;height:3px;background:var(--color-drop-border)}.todo-list:not(.card-view) .todo.drop-target.drop-before:before{top:-1px}.todo-list:not(.card-view) .todo.drop-target.drop-after:before{bottom:-1px}.todo-list.card-view .todo-card{cursor:grab;position:relative;transition:background .15s ease,opacity .15s ease,box-shadow .15s ease,filter .25s ease;will-change:transform;border-radius:var(--radius-rounded)}.todo-list.card-view .todo-card.dragging{opacity:.65;cursor:grabbing}.todo-list.card-view .todo-card.card-drop-target{background:var(--color-column-highlight);box-shadow:inset 0 0 0 1px var(--color-card-drop-shadow)}.todo-list:not(.card-view) .todo.calendar-muted,.todo-list.card-view .todo-card.calendar-muted{filter:grayscale(.85) blur(2px);opacity:.35}.todo-list:not(.card-view) .todo.calendar-focus{background:color-mix(in srgb,var(--color-column-highlight) 55%,transparent);box-shadow:0 0 0 1px var(--color-card-drop-shadow)}.todo-list.card-view .todo-card.calendar-focus:not(.card-drop-target){background:color-mix(in srgb,var(--color-column-highlight) 60%,transparent);box-shadow:0 0 0 2px var(--color-card-drop-shadow);z-index:1}.todo-list:not(.card-view) .todo.category-drop-target,.todo-list.card-view .todo-card.category-drop-target{background:color-mix(in srgb,var(--color-column-highlight) 75%,transparent);box-shadow:0 0 0 2px var(--color-drop-border);filter:none;opacity:1}.todo-list.card-view .todo-card.card-drop-target:before{content:"";position:absolute;left:-1px;right:-1px;height:3px;background:var(--color-drop-border)}.todo-list.card-view .todo-card.card-drop-target.card-drop-before:before{top:-1px}.todo-list.card-view .todo-card.card-drop-target.card-drop-after:before{bottom:-1px}.todo-board .todo-column{transition:background .15s ease,outline .15s ease}.todo-board .todo-column.column-drop-target{background:var(--color-column-highlight);outline:2px dashed var(--color-drop-border);outline-offset:4px}.todo-card{flex-direction:column;align-items:flex-start;gap:.75rem;border-radius:var(--radius-rounded)}.todo-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%}.todo-controls{display:flex;align-items:center;gap:.5rem}.todo-card-header .todo-label{flex:1;min-width:0}.todo-card-header .todo-label span{word-break:break-word}.todo-sync-status{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .45rem;border-radius:999px;border:1px solid var(--color-border);font-size:.75rem;text-transform:none;color:var(--color-text);background:var(--color-surface-muted);cursor:default}.todo-sync-status:disabled{opacity:1}.todo-sync-status.todo-sync-retry{cursor:pointer}.todo-sync-status:before{content:"";width:.5rem;height:.5rem;border-radius:999px;background:var(--color-text-muted)}.todo-sync-status.status-syncing:before{background:#fbbf24}.todo-sync-status.status-synced:before{background:#22c55e}.todo-sync-status.status-failed{color:#b91c1c;border-color:#b91c1c;background:color-mix(in srgb,#b91c1c 12%,var(--color-surface-muted))}.todo-sync-status.status-failed:before{background:#b91c1c}.todo-content{display:flex;flex-direction:column;gap:.75rem;width:100%}.todo-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%}.todo-header .todo-label{flex:1;min-width:0}.todo-header .todo-label span{word-break:break-word}.todo-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;width:100%;flex-wrap:wrap}.todo-meta{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--color-text-muted)}.todo-meta-row{display:flex;align-items:center;gap:.75rem}.todo-meta-details{display:flex;flex-direction:column;gap:.25rem;margin-top:.15rem}.todo-details-toggle{border:none;background:transparent;color:var(--color-text-subtle);font-size:.7rem;text-transform:lowercase;cursor:pointer;padding:.1rem 0;transition:color .15s ease}.todo-details-toggle:hover,.todo-details-toggle:focus-visible{color:var(--color-text-muted);outline:none}.category-tag-remove{border:none;background:transparent;color:inherit;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .15s ease;margin-left:.15rem}.category-tag-remove:hover{opacity:1}.column-count{font-weight:400;color:var(--color-text-muted);font-size:.85rem}.todo-priority-badge{border:1px solid var(--color-border);padding:.35rem .6rem;font-size:.75rem;font-weight:600;line-height:1;background:var(--color-surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;border-radius:var(--radius-rounded)}.todo-priority-badge.priority-high{border-color:var(--color-priority-high);color:var(--color-priority-high)}.todo-priority-badge.priority-medium{border-color:var(--color-priority-medium);color:var(--color-priority-medium)}.todo-priority-badge.priority-low{border-color:var(--color-priority-low);color:var(--color-priority-low)}.todo-priority-badge:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}.todo.completed span{text-decoration:line-through;color:var(--color-text-muted)}.todo-label{display:flex;align-items:center;gap:.75rem;font-size:1rem;flex:1}.todo-card .todo-label{align-items:flex-start}.todo-description{margin:0;font-size:.75rem;color:var(--color-text-muted);line-height:1.4;padding-left:1.5rem}.todo-card .todo-description{width:100%}.todo-card .todo-description.empty{min-height:calc(.75rem * 1.4);visibility:hidden}.todo-category-tags{display:flex;flex-wrap:wrap;gap:.35rem;padding-left:1.5rem;margin:0}.todo-card .todo-category-tags{width:100%}.todo-category-tags-inline{padding-left:0;margin-bottom:.35rem}.archived-category-tags{padding-left:0;margin-bottom:0}.category-tag{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.3rem .55rem;border-radius:999px;font-size:.7rem;text-transform:lowercase;border:1px solid color-mix(in srgb,var(--tag-color, #6b7280) 55%,transparent);background:color-mix(in srgb,var(--tag-color, #6b7280) 20%,transparent);color:var(--color-text)}.category-tag:before{content:"";width:.4rem;height:.4rem;border-radius:999px;background:var(--tag-color, #6b7280)}.todo-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.todo-actions button{white-space:nowrap;min-width:4rem;text-align:center;font-size:.75rem}.card-footer .todo-actions{margin-left:auto;justify-content:flex-end}.card-actions{display:flex;gap:.5rem}.card-actions.empty{min-height:1.8rem;visibility:hidden}.todo-dismiss{padding:.35rem .6rem}.todo button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-rounded);padding:.35rem .75rem;cursor:pointer;color:var(--color-text)}.todo-card button{align-self:auto}.empty-state{text-align:center;padding:1rem;border:1px solid var(--color-border-soft);background:var(--color-surface);border-radius:var(--radius-rounded)}.empty-state-onboard{padding:2rem 1.5rem}.empty-state-title{margin:0;font-size:1rem;font-weight:600;color:var(--color-text)}.empty-state-hint{margin:.5rem 0 0;font-size:.85rem;color:var(--color-text-muted);max-width:36rem;margin-left:auto;margin-right:auto;line-height:1.5}.column-empty{font-size:.875rem;color:var(--color-text-muted)}.app-footer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid var(--color-border-soft);background:var(--color-surface);box-shadow:0 -6px 16px #0000000f;z-index:40}.footer-stats{display:flex;gap:1rem;flex-wrap:wrap}.app-footer button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-rounded);padding:.35rem .75rem;cursor:pointer;color:var(--color-text)}.footer-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}.app-footer button:disabled{opacity:.5;cursor:not-allowed}.confirm-bar{position:fixed;left:1.5rem;right:1.5rem;bottom:calc(var(--archive-footer-offset, 5.5rem) + .5rem);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-rounded);box-shadow:0 4px 12px #0000001f;font-size:.85rem;color:var(--color-text);animation:confirm-bar-slide-up .2s ease}@keyframes confirm-bar-slide-up{0%{transform:translateY(.5rem);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-bar-actions{display:flex;gap:.5rem;flex-shrink:0}.confirm-bar-cancel{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-rounded);padding:.3rem .7rem;cursor:pointer;font-size:.8rem}.confirm-bar-confirm{border:1px solid var(--color-priority-high);background:color-mix(in srgb,var(--color-priority-high) 12%,transparent);color:var(--color-priority-high);border-radius:var(--radius-rounded);padding:.3rem .7rem;cursor:pointer;font-size:.8rem;font-weight:600}.confirm-bar-confirm:hover{background:color-mix(in srgb,var(--color-priority-high) 22%,transparent)}.category-confirm{border:1px solid var(--color-border);border-radius:var(--radius-rounded);padding:.5rem .6rem;background:var(--color-surface-muted);font-size:.8rem;color:var(--color-text);display:flex;flex-direction:column;gap:.4rem}.category-confirm-actions{display:flex;gap:.4rem}.category-confirm-actions button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-rounded);padding:.2rem .55rem;cursor:pointer;font-size:.75rem}.category-confirm-delete{border-color:var(--color-priority-high)!important;color:var(--color-priority-high)!important;background:color-mix(in srgb,var(--color-priority-high) 8%,transparent)!important}.archive-drawer{position:fixed;left:0;right:0;bottom:0;padding:1.25rem 1.5rem calc(1.5rem + var(--archive-footer-offset, 5.5rem));background:color-mix(in srgb,var(--color-surface) 92%,transparent);transform:translateY(100%);transition:transform .3s ease;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;pointer-events:none;z-index:30;box-shadow:0 -16px 32px #0000001f;border-top-left-radius:1rem;border-top-right-radius:1rem;max-height:min(28rem,calc(100vh - var(--archive-footer-offset, 5.5rem) - 2rem))}.archive-drawer.open{transform:translateY(0);pointer-events:auto}.archive-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-transform:lowercase}.archive-close{border:none;background:transparent;color:var(--color-text-muted);font-size:1rem;line-height:1;padding:.25rem;cursor:pointer;border-radius:999px;margin-left:auto;transition:background-color .2s ease,color .2s ease}.archive-close:hover,.archive-close:focus-visible{background-color:color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text);outline:none}.archive-header h2{margin:0;font-size:1rem}.archive-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.archived-todo{border:1px solid var(--color-border-soft);padding:.75rem;background:var(--color-surface);display:flex;flex-direction:column;gap:.5rem;border-radius:var(--radius-rounded)}.archived-header{display:flex;align-items:center;gap:.5rem;text-transform:none}.archived-title{font-weight:600;word-break:break-word}.archived-description{margin:0;padding-left:1.5rem;font-size:.75rem;color:var(--color-text-muted);line-height:1.4}.archived-description--empty{visibility:hidden}.archived-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.7rem;color:var(--color-text-subtle);text-transform:lowercase}.archived-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.archived-todo .todo-priority-badge{cursor:default;pointer-events:none}.archived-todo.archived-todo-dragging{opacity:.6;cursor:grabbing}.archived-delete{border:none;background:transparent;color:var(--color-text-muted);font-size:1rem;line-height:1;padding:.25rem;cursor:pointer;border-radius:999px;transition:background-color .2s ease,color .2s ease}.archived-delete:hover,.archived-delete:focus-visible{background-color:color-mix(in srgb,var(--color-text) 8%,transparent);color:var(--color-text);outline:none}.bottom-nav{display:none}@media (max-width: 640px){.bottom-nav{display:flex;align-items:center;gap:.4rem;position:fixed;left:0;right:0;bottom:0;padding:.6rem .75rem;background:var(--color-surface);border-top:1px solid var(--color-border-soft);box-shadow:0 -4px 16px #0000000f;z-index:40;overflow-x:auto;-webkit-overflow-scrolling:touch}.bottom-nav-filters{display:flex;gap:.3rem;flex-shrink:0}.bottom-nav-filter{padding:.45rem .7rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;white-space:nowrap}.bottom-nav-filter.active{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.bottom-nav-filter:disabled{opacity:.4;pointer-events:none}.bottom-nav-divider{width:1px;height:1.2rem;background:var(--color-border);flex-shrink:0;margin:0 .25rem}.bottom-nav-views{display:flex;gap:.3rem;flex-shrink:0}.bottom-nav-view{padding:.45rem .7rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;white-space:nowrap}.bottom-nav-view.active{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.bottom-nav-actions{display:flex;gap:.3rem;flex-shrink:0;margin-left:auto}.bottom-nav-action{padding:.45rem .7rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;white-space:nowrap}.bottom-nav-action:disabled{opacity:.4;pointer-events:none}.app-footer,.view-toggles,.filter-row .filters{display:none}.app-header-top{flex-direction:column;align-items:stretch;gap:.75rem}.header-controls{width:100%;justify-content:space-between}.header-title-input{width:8rem}.composer form{flex-direction:column;width:100%}.composer-sidebar,.composer-submit-inline{width:100%}.composer-submit-mobile{display:inline-flex;width:100%;margin-top:0}.composer-textarea{height:10rem;min-height:10rem}.composer-layout{grid-template-columns:1fr}.composer-calendar{order:-1}.filter-row{flex-direction:column;align-items:stretch;gap:.75rem}.search-input{max-width:100%}.todo-board{flex-direction:column;gap:1rem}.todo-column{min-width:0;width:100%}.confirm-bar{left:1rem;right:1rem}}.category-panel{border:1px solid var(--color-border);background:var(--color-surface);padding:.75rem;display:flex;flex-direction:column;gap:.75rem;color:var(--color-text);border-radius:var(--radius-rounded)}.category-panel h3{margin:0;font-size:.9rem;font-weight:600;text-transform:lowercase}.category-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.category-panel-actions{display:flex;gap:.25rem}.category-panel-actions button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-rounded);padding:.25rem .5rem;cursor:pointer}.category-chip-group{display:flex;flex-wrap:wrap;gap:.35rem}.category-chip{border:1px solid color-mix(in srgb,var(--chip-color, #6b7280) 40%,transparent);background:transparent;color:var(--color-text);padding:.3rem .6rem;border-radius:999px;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:background .2s ease,border-color .2s ease;text-transform:lowercase}.category-chip-dot{width:.45rem;height:.45rem;border-radius:999px;background:var(--chip-color, #6b7280);display:inline-block}.category-chip-selected{background:color-mix(in srgb,var(--chip-color, #6b7280) 25%,transparent);border-color:color-mix(in srgb,var(--chip-color, #6b7280) 65%,transparent)}.category-chip.category-chip-dragging{opacity:.6;cursor:grabbing}.category-add-form{display:flex;gap:.5rem;align-items:center}.category-add-form input{flex:1;min-width:0;padding:.35rem .6rem;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-rounded);font-size:.8rem}.category-add-form button{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:.35rem .75rem;cursor:pointer;border-radius:var(--radius-rounded)}.category-error{font-size:.75rem;color:var(--color-priority-high);margin:0}.category-color-swatches{display:flex;flex-wrap:wrap;gap:.35rem;grid-column:1 / -1}.category-color-swatch{width:1.4rem;height:1.4rem;border-radius:999px;background:var(--swatch-color, #6b7280);border:2px solid transparent;cursor:pointer;transition:border-color .15s ease,transform .1s ease;padding:0}.category-color-swatch:hover{transform:scale(1.15)}.category-color-swatch.active{border-color:var(--color-border-strong);box-shadow:0 0 0 2px var(--color-surface),0 0 0 3px var(--swatch-color)}.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}.composer-calendar{border:1px solid var(--color-border);background:var(--color-surface);padding:.75rem;display:flex;flex-direction:column;gap:.75rem;color:var(--color-text);border-radius:var(--radius-rounded)}.composer-calendar h3{margin:0;font-size:.9rem;font-weight:600;text-transform:lowercase}.calendar{display:flex;flex-direction:column;gap:.5rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.calendar-nav{display:flex;gap:.25rem}.calendar-nav button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-rounded);padding:.25rem .5rem;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;font-size:.75rem}.calendar-weekday{text-align:center;color:var(--color-text-muted);text-transform:uppercase;font-size:.65rem;font-weight:600}.calendar-day{border:1px solid transparent;background:transparent;padding:.35rem .15rem;cursor:pointer;color:var(--color-text);border-radius:var(--radius-rounded);transition:background .15s ease,color .15s ease,border-color .15s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:2.5rem}.calendar-day:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:2px}.calendar-day:hover{background:color-mix(in srgb,var(--color-toggle-active) 80%,transparent)}.calendar-day.selected{background:var(--color-toggle-active);border-color:var(--color-border);font-weight:600}.calendar-day.outside{color:color-mix(in srgb,var(--color-text-muted) 70%,transparent)}.calendar-day.today{border-color:color-mix(in srgb,var(--color-border-strong) 60%,transparent)}.calendar-day-number{font-size:.8rem;line-height:1}.calendar-indicators{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.2rem;max-width:1.6rem}.calendar-indicator{display:inline-block;width:.35rem;height:.35rem;border-radius:999px;background:var(--color-priority-high)}.calendar-indicator.priority-medium{background:var(--color-priority-medium)}.calendar-indicator.priority-low{background:var(--color-priority-low)}.calendar-day.outside .calendar-indicator{background:color-mix(in srgb,var(--color-priority-high) 50%,transparent)}.calendar-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}.composer-error{margin:.25rem 0 0;color:var(--color-priority-high);font-size:.75rem;text-transform:none}.drag-handle{display:none;color:var(--color-text-subtle);font-size:1rem;line-height:1;-webkit-user-select:none;user-select:none;flex-shrink:0}[data-input=touch] .drag-handle{display:flex;align-items:center;justify-content:center;min-width:1.4rem;min-height:2rem;cursor:grab}[data-input=touch] .todo{display:grid;grid-template-columns:1.4rem 1fr;column-gap:.35rem}[data-input=touch] .todo .todo-header,[data-input=touch] .todo .todo-description,[data-input=touch] .todo .todo-footer{grid-column:2}[data-input=touch] .todo .drag-handle{grid-column:1;grid-row:1}[data-input=touch] .button.primary,[data-input=touch] .button.ghost{padding:.7rem 1.4rem;font-size:.9rem}[data-input=touch] .auth-input{padding:.7rem .85rem;font-size:1rem}[data-input=touch] .vault-tab{padding:.5rem .75rem;font-size:.85rem}[data-input=touch] .vault-code-copy{padding:.45rem .8rem}[data-input=touch] .todo-status-btn,[data-input=touch] .todo-priority-btn,[data-input=touch] .todo-dismiss-btn{padding:.55rem .7rem;min-width:2.2rem;min-height:2.2rem}[data-input=touch] .todo-details-toggle{padding:.4rem 0;min-height:1.8rem}[data-input=touch] .category-tag{padding:.4rem .7rem;font-size:.82rem}[data-input=touch] .category-tag-remove{padding:.25rem .35rem;min-width:1.4rem;min-height:1.4rem}[data-input=touch] .todo-list:not(.card-view) .todo{padding:.85rem 1rem}[data-input=touch] .todo-list.card-view .todo-card{padding:.85rem .9rem}[data-input=touch] .archive-close,[data-input=touch] .archived-delete{padding:.4rem;min-width:2rem;min-height:2rem}[data-input=touch] .confirm-bar-cancel,[data-input=touch] .confirm-bar-confirm{padding:.6rem 1rem}[data-input=touch] .theme-toggle-button{padding:.5rem .7rem;min-height:2rem}[data-input=touch] .filter-btn{padding:.5rem .8rem}[data-input=touch] .calendar-day{min-width:2.2rem;min-height:2.2rem}[data-input=touch] .category-color-swatch{width:1.6rem;height:1.6rem}[data-input=touch] button:hover,[data-input=touch] .vault-tab:hover:not(.active),[data-input=touch] .vault-code-copy:hover,[data-input=touch] .theme-toggle-button:hover,[data-input=touch] .todo-details-toggle:hover,[data-input=touch] .category-tag-remove:hover,[data-input=touch] .archive-close:hover,[data-input=touch] .archived-delete:hover,[data-input=touch] .confirm-bar-cancel:hover,[data-input=touch] .confirm-bar-confirm:hover,[data-input=touch] .calendar-day:hover,[data-input=touch] .category-color-swatch:hover,[data-input=touch] .auth-reset-link:hover{background:unset;border-color:inherit;color:inherit}@font-face{font-family:"0xProto";src:url(/DoWhat/assets/0xProto-Regular-SuRw7mFX.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"0xProto";src:url(/DoWhat/assets/0xProto-Italic-CW1Kik25.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"0xProto";src:url(/DoWhat/assets/0xProto-Bold-DFEYRWvM.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}*{box-sizing:border-box}body{margin:0;background:#fff;color:#111;font-family:"0xProto",monospace}button,input,textarea{font:inherit}
