@font-face{font-family:Suisse;src:url('./assets/SuisseIntl-Book.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Suisse;src:url('./assets/SuisseIntl-Bold.woff') format('woff');font-weight:700;font-display:swap}
:root{--paper:#fff;--ink:#000;--line:#e4e4e4;--muted:#c9c9c9;--accent:#5866ff;--surface:#f3f3f3;--editor:#dde1fb;--row:42px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Suisse,Arial,sans-serif;font-size:14px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button{border:0;background:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}button:disabled{cursor:default;opacity:.3}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px;gap:16px}.period{padding:0;display:flex;align-items:baseline;gap:12px;text-align:left;font-size:36px;line-height:48px;font-weight:700;letter-spacing:-1.6px}.week-number{color:var(--muted);white-space:nowrap}.toolbar{display:flex;gap:6px;align-items:center}.circle{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;transition:background .15s,transform .15s}.circle:hover{transform:translateY(-1px)}.black{background:var(--ink);color:var(--paper)}.black:hover{opacity:.8}.secondary{background:var(--surface)}.purple{background:#bb9df6;color:#000}.purple:hover{background:#a587e3}
#planner{padding:48px 24px 100px}.week-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.day{min-width:0}.day-header{display:flex;justify-content:space-between;align-items:center;height:42px;padding-bottom:12px;border-bottom:2px solid var(--ink);font-size:21px;line-height:28px;gap:8px}.date-button{padding:0;font-weight:700;letter-spacing:-.5px;text-align:left;white-space:nowrap}.weekday{color:var(--muted);white-space:nowrap}.today .day-header{border-color:var(--accent);color:var(--accent)}.today .weekday{color:var(--accent);opacity:.45}.day-body{min-height:420px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 41px,var(--line) 41px,var(--line) 42px)}.weekend{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:0}.weekend .day-body{min-height:210px}.task{height:var(--row);position:relative;display:flex;align-items:center;min-width:0;padding:0 31px 0 0}.task:hover{box-shadow:0 1px 0 #bbb}.task-title{width:100%;text-align:left;white-space:nowrap;overflow:hidden;padding:0;font-size:14px;line-height:22px}.task-label{padding:2px 6px;border-radius:14px;display:inline-block;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;line-height:18px}.task.done .task-label{text-decoration:line-through;opacity:.3}.task-toggle{position:absolute;right:0;top:0;width:30px;height:42px;display:grid;place-items:center;opacity:0;transition:opacity .15s}.task:hover .task-toggle,.task:focus-within .task-toggle,.task.done .task-toggle{opacity:1}.task-toggle svg{width:22px;height:22px}.task.done .task-toggle{opacity:.3}.task.drag-active{opacity:.3}.day-body.drop-over,.someday-column.drop-over{background-color:color-mix(in srgb,var(--accent) 10%,transparent)}.new-task{position:relative;height:42px;display:block}.new-task input{width:100%;height:41px;background:none;border:0;padding:0 6px;outline:none;font-size:14px}.new-task input::placeholder{color:transparent}.new-task:hover input::placeholder,.new-task input:focus::placeholder{color:#a0a0a0}.new-task:focus-within{border-radius:4px;box-shadow:0 1px 5px #0002;background:var(--paper)}.someday{margin-top:44px}.someday h2{margin:0 0 10px;font-size:21px;letter-spacing:-.5px;line-height:30px}.someday-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.someday-column{min-height:84px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 41px,var(--line) 41px,var(--line) 42px)}.mobile-dock{display:none}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.month-weekday{font-size:14px;color:#aaa;padding:0 8px 14px;text-align:right;border-bottom:2px solid var(--ink)}.month-day{min-height:158px;padding:12px 8px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);overflow:hidden}.month-day:nth-child(7n){border-right:0}.month-day .date-button{font-size:17px;margin-bottom:5px}.month-day.today .date-button{color:var(--accent)}.month-day.other-month .date-button{color:var(--muted)}.month-day .task{height:30px;padding-right:22px}.month-day .task-title{font-size:12px}.month-day .task-toggle{height:30px;width:22px}.month-day .task-toggle svg{width:17px}.month-day .new-task,.month-day .new-task input{height:30px}.day-view{max-width:720px;margin:0 auto}.day-view .day-body{min-height:420px}.day-view .someday-grid{grid-template-columns:1fr}
dialog{color:var(--ink);border:0;padding:0;box-shadow:none;max-height:calc(100dvh - 48px);overflow:auto}dialog::backdrop{background:#0006}dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.task-dialog{margin:64px auto 0;width:512px;border-radius:24px;background:var(--editor);padding:24px}.editor-top{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:56px}.editor-date{display:flex;align-items:center;gap:8px;min-width:0}.editor-date svg{width:14px;height:14px}.editor-date select{max-width:200px;border:0;background:transparent;font-size:14px;padding:4px;cursor:pointer}.editor-actions{display:flex;gap:4px}.icon-button{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;padding:0}.icon-button svg{width:18px;height:18px}.icon-button:hover{background:#0001}.editor-title-row{display:flex;align-items:flex-start;border-bottom:1px solid #0004;gap:10px}.editor-title{resize:none;width:100%;border:0;background:transparent;outline:none;font-size:24px;line-height:30px;padding:0 0 10px;min-height:40px}.editor-title-row .icon-button{margin-top:1px}.notes-toolbar{display:flex;gap:5px;margin:14px 0 7px}.notes-toolbar button{font-family:Georgia,serif;font-size:16px;font-weight:700;width:26px;height:26px}.notes-toolbar button.active{background:#0002;border-radius:4px}.notes-toolbar .italic{font-style:italic}.editor-notes{background:transparent;outline:none;min-height:44px;padding:0;font-size:16px;line-height:24px;overflow-wrap:anywhere}.editor-notes:empty::before{content:attr(data-placeholder);color:#0006;pointer-events:none}.editor-notes p{margin:0 0 8px}.editor-notes ul{padding-left:22px;margin:4px 0}.subtask-list{margin-top:12px}.subtask{display:flex;align-items:center;gap:8px;margin:8px 0}.subtask input[type=checkbox]{accent-color:#000;width:16px;height:16px}.subtask span{flex:1;overflow-wrap:anywhere}.subtask.done span{text-decoration:line-through;opacity:.5}.subtask-add{margin-top:12px;display:flex;align-items:center;gap:8px}.subtask-add input{border:0;background:none;outline:none;flex:1;width:100%;font-size:16px;padding:4px 0}.subtask-add input::placeholder{color:#0005}.subtask-add svg{opacity:.4}.color-palette{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin:15px 0}.swatch{width:32px;height:32px;border-radius:50%;border:1px solid #0002;display:grid;place-items:center}.swatch.selected{outline:2px solid #000;outline-offset:3px}.swatch svg{width:14px;height:14px}.custom-color{display:flex;gap:10px;align-items:center;margin-bottom:12px}.custom-color input{width:34px;height:28px;padding:0;border:0;background:none;cursor:pointer}.date-control{display:flex;gap:8px;align-items:center;margin:12px 0}.date-control input{border:1px solid #0003;border-radius:8px;padding:8px;background:#fff5}.pill{padding:9px 18px;border-radius:24px;font-weight:700;line-height:20px;background:var(--ink);color:var(--paper)}.pill.outlined{border:1px solid var(--ink);background:transparent;color:var(--ink)}.editor-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.quiet{color:#0007;font-size:12px}.utility-dialog{margin:80px auto 0;width:440px;border-radius:24px;padding:28px;background:var(--paper)}.utility-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px}.utility-heading h2{font-size:26px;line-height:32px;letter-spacing:-.7px;margin:0}.utility-dialog p{font-size:15px;line-height:22px}.menu-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:13px 0;font-size:16px;border-bottom:1px solid var(--line)}.menu-row svg{width:18px;height:18px}.menu-row small{color:#888;font-size:12px}.view-tabs{display:flex;background:var(--surface);border-radius:25px;padding:4px;margin-bottom:22px;gap:4px}.view-tabs button{flex:1;border-radius:25px;padding:9px;font-weight:700}.view-tabs button.active{background:var(--ink);color:var(--paper)}.date-picker{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--paper);font-size:16px;min-height:45px}.field-label{display:block;font-size:12px;color:#888;margin-bottom:8px}.utility-section{margin:24px 0 0}.theme-row{display:flex;gap:10px}.theme-swatch{flex:1;border-radius:12px;border:1px solid #ccc;padding:14px 6px;min-height:68px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px}.theme-swatch.active{outline:2px solid var(--accent);outline-offset:2px}.name-input{width:100%;padding:10px 0;background:transparent;border:0;border-bottom:1px solid var(--line);font-size:24px;outline:none}.help-line{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.help-line svg{margin-top:2px}.help-line p{margin:0}.source-note{font-size:12px!important;color:#888;margin-top:24px!important}.source-note a{color:inherit}.search-field{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}.search-field input{width:100%;border:0;background:none;font-size:20px;outline:none}.search-results{max-height:50vh;overflow:auto;margin-top:20px}.search-result{display:block;text-align:left;width:100%;padding:12px 0;border-bottom:1px solid var(--line)}.search-result small{display:block;color:#999;margin-top:6px}.empty-result{color:#888;font-size:14px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:28px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10;max-width:calc(100vw - 24px);display:flex;gap:16px;align-items:center;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}.toast button{color:inherit;text-decoration:underline;padding:0;font-weight:700}.storage-note{display:flex;align-items:center;gap:6px;font-size:12px;color:#888}.storage-note i{width:6px;height:6px;background:#51c76b;border-radius:50%}.theme-blue{--paper:#edf2ff;--line:#d8deed;--surface:#e2e8f5;--editor:#d9e3fb}.theme-paper{--paper:#f8f5ed;--line:#e3e0d7;--surface:#eeeae0;--editor:#e8e4db}.theme-dark{--paper:#202020;--ink:#f4f4f4;--line:#383838;--muted:#626262;--accent:#9ca6ff;--surface:#333;--editor:#41465d;color-scheme:dark}.theme-dark .task-dialog{color:#fff}.theme-dark .editor-notes:empty::before,.theme-dark .subtask-add input::placeholder,.theme-dark .quiet{color:#fff6}.theme-dark .editor-title-row{border-color:#fff4}.theme-dark .editor-date select{color:#fff}.theme-dark .editor-date option{color:#000}.theme-dark .custom-color input{color-scheme:light}
@media(min-width:1500px){#planner{padding-top:56px}.day-body{min-height:504px}.weekend .day-body{min-height:252px}}
@media(max-width:1000px) and (min-width:701px){.week-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:36px}.weekend{display:grid;grid-template-columns:1fr 1fr;gap:20px;grid-column:span 2;grid-template-rows:auto}.weekend .day-body{min-height:252px}.day-body{min-height:252px}.someday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.someday-column:last-child{display:none}.period{font-size:30px}.someday{margin-top:36px}}
@media(max-width:700px){.topbar{padding:20px 16px 16px;align-items:flex-start;gap:8px}.period{font-size:26px;line-height:34px;letter-spacing:-1px;gap:6px;flex-wrap:wrap}.week-number{font-size:20px}.toolbar{gap:4px}.circle{width:32px;height:32px}.circle svg{width:17px;height:17px}.toolbar .secondary{display:none}#planner{padding:28px 16px 105px}.week-grid{display:flex;flex-direction:column;gap:28px}.day-body{min-height:126px}.day-header{font-size:20px}.weekday{font-size:18px}.weekend{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:16px}.weekend .day-body{min-height:126px}.task-title,.new-task input{font-size:16px}.task-toggle{opacity:.25}.task:hover .task-toggle{opacity:1}.someday{margin-top:32px}.someday-grid{grid-template-columns:1fr;gap:0}.someday-column:nth-child(n+2){display:none}.someday-column{min-height:126px}.mobile-dock{display:flex;position:fixed;left:50%;transform:translateX(-50%);bottom:22px;border:1px solid #0001;box-shadow:0 2px 14px #0001;background:var(--paper);padding:4px;border-radius:30px;z-index:2;gap:4px}.mobile-dock button{width:44px;height:32px;border-radius:24px;display:grid;place-items:center}.mobile-dock button.active{background:var(--ink);color:var(--paper)}.mobile-dock svg{width:16px;height:16px}.task-dialog{margin:32px auto 0;width:calc(100% - 24px);padding:22px;border-radius:22px}.editor-top{margin-bottom:38px}.utility-dialog{width:calc(100% - 24px);margin:32px auto 0;padding:24px}.month-day{min-height:128px;padding:8px 3px 0}.month-day .task-label{padding:1px 3px;font-size:10px}.month-day .task{padding-right:0;height:24px}.month-day .task-toggle{display:none}.month-day .new-task input{font-size:12px}.month-weekday{font-size:11px;padding:0 3px 10px;text-align:center}.month-day .date-button{font-size:14px}.month-grid{margin:0 -8px}.toast{bottom:78px;font-size:13px;white-space:normal}.day-view .day-body{min-height:420px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.topbar{padding:0 0 24px}.toolbar,.mobile-dock,.new-task,.task-toggle,.toast,dialog{display:none!important}.period{font-size:28px}#planner{padding:20px 0 0}.week-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.day-header{font-size:15px}.weekday{font-size:14px}.day-body{min-height:378px}.weekend{display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:0}.weekend .day-body{min-height:168px}.someday-grid{display:grid;grid-template-columns:repeat(3,1fr)}.someday-column{display:block!important}.task-label{font-size:12px}.task-title{font-size:12px}body{--paper:white;--ink:black;--line:#ddd;--muted:#aaa;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* Keep the two weekend sections inside the same ruled page as the weekdays. */
@media(min-width:1001px){.week-grid>.day,.weekend>.day{display:flex;flex-direction:column}.week-grid>.day>.day-body,.weekend>.day>.day-body{flex:1}.weekend{grid-template-rows:minmax(252px,1.2fr) minmax(210px,1fr)}.weekend .day-body{min-height:0}}
@media(min-width:1500px){.weekend{grid-template-rows:minmax(294px,1.2fr) minmax(252px,1fr)}}
body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.period{letter-spacing:-1px}
[hidden]{display:none!important}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:32px 24px;background:#f8f5ed}.login-card{width:100%;max-width:280px}.login-mark{font-size:38px;line-height:1;font-weight:700;letter-spacing:-2px;margin:0 0 44px}.login-form{display:flex;align-items:center;border-bottom:1px solid #c7c4bd}.login-form:focus-within{border-color:#292826}.login-form input{flex:1;width:0;min-width:0;height:52px;border:0;background:transparent;outline:0;font:inherit;font-size:18px;border-radius:0;padding:0;color:#292826}.login-form input::placeholder{color:#95928b;opacity:1}.login-form button{width:44px;height:44px;display:grid;place-items:center;background:transparent;color:#292826;border-radius:50%;padding:0}.login-form button:focus-visible{outline:2px solid #292826;outline-offset:2px}.login-form button:disabled{cursor:default}.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}#recover-draft{margin-top:24px}.save-status{position:fixed;bottom:12px;right:20px;font-size:11px;opacity:.5;pointer-events:none}.save-error{position:sticky;top:0;z-index:20;background:#fff1c8;color:#382d0d;padding:12px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.save-error span{flex:1;min-width:200px}.save-error button{font-weight:700;text-decoration:underline;font-size:13px}.save-error+#app-shell{padding-top:0}@media(max-width:700px){.save-status{bottom:6px;right:12px}.save-error{padding:12px 16px}}@media print{.save-status,.save-error,.login-screen{display:none!important}}

