@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-600.woff2)format("woff2")}:root{--bg:#fbfbfd;--surface:#fff;--sunken:#f0f0f2;--hover:#f5f5f7;--text:#1d1d1f;--text-muted:#6e6e73;--text-faint:#86868b;--text-fainter:#b0b0b6;--border:#ececef;--border-strong:#e0e0e4;--accent:#1f6f5c;--swatch-empty:#e8e8ec;--overlay:#00000040;--credit-bg:#ffffffb3;--dot:#00000029;--fs-caption:.6875rem;--fs-small:.8125rem;--fs-body:.9375rem;--fs-heading:1.0625rem;--fs-title:1.25rem;--space-hair:.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--radius-xl:16px;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root[data-theme=dark]{--bg:#161618;--surface:#222225;--sunken:#2c2c30;--hover:#303034;--text:#ececee;--text-muted:#a0a0a6;--text-faint:#8a8a90;--text-fainter:#6a6a70;--border:#34343a;--border-strong:#3e3e44;--accent:#52b79e;--swatch-empty:#3a3a40;--overlay:#00000080;--credit-bg:#00000080;--dot:#ffffff17;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{margin:0}.app{z-index:1;max-width:1760px;padding:var(--space-8) var(--space-5);margin:0 auto;position:relative}.app-bg{z-index:0;background-position:50%;background-size:cover;position:fixed;inset:0}.theme-credit{bottom:var(--space-4);right:var(--space-4);z-index:2;font-size:var(--fs-caption);color:var(--text-muted);background:var(--credit-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-decoration:none;position:fixed}.theme-credit:hover{color:var(--text)}.theme-picker{position:relative}.theme-toggle{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);width:34px;height:32px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--hover)}.theme-toggle svg{width:18px;height:18px;display:block}.theme-popover-backdrop{z-index:15;position:fixed;inset:0}.theme-popover{right:0;top:calc(100% + var(--space-2));z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2);gap:var(--space-hair);flex-direction:column;min-width:184px;max-height:min(70vh,520px);display:flex;position:absolute;overflow-y:auto;box-shadow:0 8px 28px #0000002e}.theme-group{gap:var(--space-hair);flex-direction:column;display:flex}.theme-group-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:var(--space-2) 0 var(--space-hair);padding:0 var(--space-2);font-weight:600}.theme-option{align-items:center;gap:var(--space-2);width:100%;font:inherit;font-size:var(--fs-body);color:var(--text);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.theme-option:hover{background:var(--hover)}.theme-option--active{font-weight:600}.theme-swatch{border-radius:var(--radius-sm);background:var(--swatch-empty);background-position:50%;background-size:cover;border:1px solid #00000014;flex:none;width:22px;height:22px}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.app-header h1{font-family:Fraunces,Georgia,Times New Roman,serif;font-size:var(--fs-title);letter-spacing:-.01em;text-transform:lowercase;color:var(--accent);margin:0;font-weight:600}.app-header-controls{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.view-switch{gap:var(--space-1);background:var(--sunken);padding:var(--space-1);border-radius:var(--radius-md);display:inline-flex}.view-switch-btn{font:inherit;font-size:var(--fs-small);color:var(--text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none}.view-switch-btn--active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.board{gap:var(--space-5);padding-bottom:var(--space-2);justify-content:flex-start;align-items:flex-start;display:flex;overflow-x:auto}.board--single{justify-content:center;align-items:flex-start;min-height:calc(100vh - 12rem);padding-top:14vh}.board--single .day-column{z-index:0;padding:var(--space-6);background:var(--surface);box-shadow:0 4px 0 -1px var(--border), 0 5px 0 -1px var(--surface), 0 8px 0 -2px var(--border), 0 18px 30px #00000026;border:none;border-radius:10px;flex:0 0 340px;position:relative}.board--single .day-column:before{content:"";inset:var(--space-5);z-index:-1;background-image:radial-gradient(circle, var(--dot) 1px, transparent 1.4px);pointer-events:none;background-size:18px 18px;position:absolute}.day-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:160px;max-width:340px;padding:var(--space-4);flex:1 1 0;box-shadow:0 1px 3px #0000000a}.day-column--today{border-color:var(--border-strong);box-shadow:0 4px 14px #00000014}.day-header{margin-bottom:var(--space-4)}.day-label{font-size:var(--fs-heading);margin:0;font-weight:600}.board:not(.board--single) .day-column--today .day-label{color:var(--accent)}.day-date{font-size:var(--fs-small);color:var(--text-muted);margin:var(--space-hair) 0 0}.task-list{gap:var(--space-hair);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.task{align-items:center;gap:var(--space-2);padding:var(--space-1);font-size:var(--fs-body);line-height:1.4;display:flex;position:relative}.task-check{width:var(--space-4);height:var(--space-4);accent-color:var(--text-muted);cursor:pointer;flex:none;margin:0}.task-text{text-align:left;font:inherit;font-size:var(--fs-body);color:inherit;cursor:text;padding:var(--space-hair) var(--space-2);border-radius:var(--radius-sm);word-break:break-word;background:0 0;border:none;flex:1}.task-text:hover{background:var(--sunken)}.task--done .task-text{color:var(--text-muted);text-decoration:line-through}.task-edit-input{font:inherit;font-size:var(--fs-body);color:inherit;padding:var(--space-hair) var(--space-2);border-radius:var(--radius-sm);background:var(--surface);box-shadow:0 0 0 2px var(--border-strong);border:none;flex:1}.task-edit-input:focus{box-shadow:0 0 0 2px var(--accent);outline:none}.add-task{margin-top:var(--space-1)}.add-task-input{width:100%;padding:var(--space-2);font:inherit;font-size:var(--fs-body);color:inherit;border-radius:var(--radius-sm);background:0 0;border:none}.add-task-input::placeholder{color:var(--text-muted)}.add-task-input:focus{background:var(--hover);box-shadow:0 0 0 2px var(--accent);outline:none}.top3{margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.top3-label{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 var(--space-1);font-weight:600}.top3-note{font-size:var(--fs-caption);color:var(--text-muted);margin:var(--space-2) 0 0;padding:0 var(--space-1)}.task--pinned .task-text{font-weight:500}.task--lead .task-text{font-weight:600}.task-rolls{font-size:var(--fs-caption);color:var(--text-muted);white-space:nowrap;flex:none}.task-pin{right:var(--space-1);cursor:pointer;color:var(--text-muted);padding:var(--space-hair);opacity:0;background:0 0;border:none;align-items:center;transition:opacity .12s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.task-pin svg{width:15px;height:15px;display:block}.task:hover .task-pin,.task:focus-within .task-pin,.task--pinned .task-pin{opacity:1}@media (hover:none){.task-pin{opacity:1}.task:not(.task--rolled):not(.task--repeats){padding-right:var(--space-5)}}.task--pinned .task-pin{color:var(--accent)}.task-repeat-mark{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.task-repeat-mark svg{width:14px;height:14px;display:block}.task-repeat{cursor:pointer;color:var(--text-muted);padding:var(--space-hair);background:0 0;border:none;flex:none;align-items:center;display:inline-flex}.task-repeat svg{width:15px;height:15px;display:block}.task-repeat--on{color:var(--accent)}.task--editing .task-pin{display:none}.task--rolled,.task--repeats{padding-right:var(--space-6)}.task--pinned:not(.task--rolled):not(.task--repeats){padding-right:var(--space-5)}.review-backdrop{background:var(--overlay);padding:4rem var(--space-4);z-index:10;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.review-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:460px;padding:var(--space-5);max-height:80vh;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.review-panel:focus{outline:none}.review-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.review-header h2{font-size:var(--fs-heading);margin:0;font-weight:600}.review-close{color:var(--text-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none;font-size:1.25rem;line-height:1}.review-close:hover{color:var(--text)}.review-empty{color:var(--text-muted);text-align:center;padding:var(--space-5) 0;margin:0}.review-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.review-item{padding:var(--space-1) 0}.review-item-main{align-items:center;gap:var(--space-2);display:flex}.review-item-text{font-size:var(--fs-body);flex:1}.review-item--done .review-item-text{color:var(--text-muted);text-decoration:line-through}.review-actions{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0 var(--space-5);flex-wrap:wrap;display:flex}.review-actions-label{font-size:var(--fs-small);color:var(--text-muted);margin-right:var(--space-1)}.review-actions button{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-small);padding:var(--space-1) var(--space-2);cursor:pointer;color:var(--text)}.review-actions button:hover{background:var(--hover)}.review-footer{margin-top:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.review-footer--centered{justify-content:center}.review-undo{font-size:var(--fs-small);color:var(--text-muted);align-items:center;gap:var(--space-2);display:inline-flex}.review-done{background:var(--text);color:var(--bg);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-body);padding:var(--space-2) var(--space-4);cursor:pointer;border:none}.search-backdrop{background:var(--overlay);padding:4rem var(--space-4);z-index:10;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.search-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:460px;padding:var(--space-5);max-height:80vh;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.search-input{width:100%;font:inherit;font-size:var(--fs-heading);color:inherit;border:none;border-bottom:1px solid var(--border);padding:var(--space-2) 0;background:0 0}.search-input:focus{border-bottom-color:var(--accent);outline:none}.search-input::placeholder{color:var(--text-muted)}.search-results{margin:var(--space-4) 0 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.search-result{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.search-result-text{min-width:0;font-size:var(--fs-body);word-break:break-word;flex:1}.search-result-status{font-size:var(--fs-small);color:var(--text-muted);white-space:nowrap;flex:none}.search-empty{color:var(--text-muted);font-size:var(--fs-body);margin:var(--space-4) 0 0}.account{font-size:var(--fs-small);color:var(--text-muted);margin-left:auto}.sync-paused{color:#d9544f}.auth-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:360px;padding:var(--space-5);box-shadow:0 12px 40px #0000004d}.auth-lead{font-size:var(--fs-small);color:var(--text-muted);margin:0 0 var(--space-4);line-height:1.5}.auth-msg{font-size:var(--fs-body);color:var(--text);margin:0;line-height:1.5}.auth-input{width:100%;font:inherit;font-size:var(--fs-body);color:inherit;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.auth-input:focus{box-shadow:0 0 0 2px var(--accent);border-color:#0000;outline:none}.auth-submit{margin-top:var(--space-3);background:var(--text);width:100%;color:var(--bg);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-body);padding:var(--space-2) var(--space-4);cursor:pointer;border:none}.auth-submit:disabled{opacity:.6;cursor:default}.auth-error{font-size:var(--fs-small);color:#d9544f;margin:var(--space-2) 0 0}.auth-google{justify-content:center;align-items:center;gap:var(--space-2);width:100%;font:inherit;font-size:var(--fs-body);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;display:flex}.auth-google:hover{background:var(--hover)}.auth-google svg{flex:none}.auth-divider{align-items:center;gap:var(--space-3);margin:var(--space-4) 0;color:var(--text-muted);font-size:var(--fs-small);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.app-footer{margin-top:var(--space-7);gap:var(--space-4);display:flex}.text-button{font:inherit;font-size:var(--fs-small);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0}.text-button:hover{color:var(--text);text-decoration:underline}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.review-panel,.task-edit-input{border:1px solid canvastext}.add-task-input:focus,.task-edit-input:focus{outline-offset:0;outline:2px solid highlight}.view-switch-btn--active,.board:not(.board--single) .day-column--today{outline-offset:-2px;outline:2px solid highlight}}
