body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}code{font-family:ui-monospace,Menlo,Monaco,Consolas,Courier New,monospace}:root{--font-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--bg:#f7f5f0;--surface:#fff;--ink:#232118;--ink-soft:#4a453b;--muted:#6b6557;--line:#ddd8cc;--line-2:#cfc9ba;--accent:#5e7d57;--accent-fill:#ceddc6;--accent-tint:#5e7d5729;--fs-xs:0.8rem;--fs-sm:0.9rem;--fs-base:1rem;--fs-md:1.05rem;--fs-lg:1.2rem;--icon:20px;--space-sm:8px;--space-md:14px;--space-lg:20px;--tap-target:44px}body{background:#f7f5f0;background:var(--bg);margin:0}.App{animation:fade .4s ease both;box-sizing:border-box;color:#232118;color:var(--ink);display:flex;flex-direction:column;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-weight:400;line-height:1.5;margin:0;max-width:100%;min-height:100vh;width:100%}@keyframes fade{0%{opacity:0}to{opacity:1}}.signout-fab{align-items:center;background:#fff;background:var(--surface);border:1px solid #cfc9ba;border:1px solid var(--line-2);border-radius:8px;bottom:20px;color:#4a453b;color:var(--ink-soft);cursor:pointer;display:inline-flex;height:40px;justify-content:center;position:fixed;right:20px;transition:color .2s ease,border-color .2s ease;width:40px;z-index:50}.signout-fab:hover{border-color:#6b6557;border-color:var(--muted);color:#232118;color:var(--ink)}.signout-fab svg{display:block;height:18px;width:18px}.habit-input button,.notes-input>button,.todo-input>button{align-self:flex-start;background:#232118;background:var(--ink);border:none;border-radius:5px;color:#fff;color:var(--surface);cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.9rem;font-size:var(--fs-sm);font-weight:600;padding:10px 20px;transition:background .2s ease}.habit-input button:hover,.notes-input>button:hover,.todo-input>button:hover{background:#2a2825}.state-message{color:#6b6557;color:var(--muted);font-size:.9rem;padding:20px;padding:var(--space-lg);text-align:center}.empty-state{background:#0000;border:none}.signed-out-hero{flex:1 1;justify-content:center;padding:20px;padding:var(--space-lg);text-align:center}.hero-card,.signed-out-hero{align-items:center;display:flex}.hero-card{background:#0000;border:none;flex-direction:column;gap:20px;gap:var(--space-lg);max-width:440px;padding:0}.hero-card h1{color:#232118;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:clamp(2rem,5vw,2.6rem);font-weight:600;letter-spacing:.01em;line-height:1.1;margin:0}.hero-card p{color:#4a453b;color:var(--ink-soft);font-size:1rem;line-height:1.65;margin:0;max-width:36ch}.hero-cta{background:#232118;background:var(--ink);border:none;border-radius:5px;color:#fff;color:var(--surface);cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.95rem;font-weight:500;margin-top:4px;padding:13px 28px;transition:background .2s ease}.hero-cta:hover{background:#2a2825}.habit-container{align-items:flex-start;box-sizing:border-box;display:flex;gap:clamp(24px,3vw,48px);margin:0;padding:clamp(18px,2vw,28px) clamp(16px,2.5vw,32px) 36px;width:100%}.habit-list{flex:1 1;min-width:0}.habit-table{-webkit-overflow-scrolling:touch;background:#0000;border:none;border-collapse:collapse;border-radius:0;box-shadow:none;display:block;margin-bottom:18px;max-width:100%;overflow-x:auto;width:auto}.habit-table td,.habit-table th{border:none;padding:7px 6px;text-align:center}.habit-table thead th{border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);color:#4a453b;color:var(--ink-soft);font-weight:600;padding-bottom:9px}.habit-table tbody td{border-bottom:1px solid #ddd8cc;border-bottom:1px solid var(--line)}.habit-table tbody tr:last-child td{border-bottom:none}.habit-table thead th:first-child{color:#232118;color:var(--ink);font-size:.8rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-align:left;text-transform:uppercase}.habit-table tbody td:first-child,.habit-table thead th:first-child{min-width:150px;width:160px}.habit-table .last-column{white-space:nowrap;width:1%}.day-of-week{color:#6b6557;color:var(--muted);font-size:.8rem;font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase}.day-of-month{color:#232118;color:var(--ink);font-size:1.05rem;font-size:var(--fs-md);font-weight:600}.habit-table .date-header{min-width:44px;padding:6px 4px 9px}.date-header.today{box-shadow:inset 0 -2px 0 0 #5e7d57;box-shadow:inset 0 -2px 0 0 var(--accent)}.date-header.today .day-of-month{color:#232118;color:var(--ink);font-weight:600}.habit-table .habit-day{height:40px;min-width:44px;padding:5px}.habit-day{cursor:pointer;transition:background .2s ease}@media (hover:hover){.habit-day:not(.completed):not(.skipped):hover{background:#ddd8cc;background:var(--line)}}.habit-day:focus-visible{outline:2px solid #5e7d57;outline:2px solid var(--accent);outline-offset:-4px}.habit-day.completed{background:#ceddc6;background:var(--accent-fill);background-clip:content-box;border-radius:4px}.habit-day.today{background:#5e7d5729;background:var(--accent-tint);background-clip:content-box;border-radius:4px}.habit-day.today.completed{background:#ceddc6;background:var(--accent-fill);background-clip:content-box}.habit-day.skipped{color:#4a453b;color:var(--ink-soft);font-size:1rem;font-size:var(--fs-base)}.habit-streak{color:#5e7d57;color:var(--accent);cursor:default;font-size:1.05rem;font-size:var(--fs-md);font-weight:700}.habit-name{align-items:center;display:flex;justify-content:space-between;padding-right:25px;position:relative}.delete-habit-btn{background:none;border:none;color:#6b6557;color:var(--muted);cursor:pointer;font-size:20px;font-size:var(--icon);line-height:1;opacity:1;position:absolute;right:-4px;transition:opacity .2s,color .2s}.delete-habit-btn:hover{color:#232118;color:var(--ink)}@media (hover:hover){.delete-habit-btn{opacity:0}.habit-table td:first-child:hover .delete-habit-btn{opacity:1}}.habit-name span{color:#232118;color:var(--ink);cursor:pointer;font-size:1rem;font-size:var(--fs-base);font-weight:500;overflow-wrap:break-word;transition:color .2s}.habit-name span:hover{color:#5e7d57;color:var(--accent)}.habit-table td:first-child{text-align:left}.habit-edit{display:flex;flex-direction:column;gap:8px}.habit-edit input{background:#0000;border:none;border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);border-radius:0;color:#232118;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.9rem;outline:none;padding:7px 2px;transition:border-color .2s}.habit-edit input:focus{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}.habit-edit-actions{display:flex;gap:14px}.habit-edit-actions button{background:none;border:none;border-radius:0;cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.82rem;padding:4px 0}.habit-edit-actions button:first-child{color:#5e7d57;color:var(--accent);font-weight:600}.habit-edit-actions button:last-child{color:#6b6557;color:var(--muted)}.habit-input{align-items:center;display:flex;max-width:440px;width:100%}.habit-input input{background:#0000;border:none;border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);border-radius:0;color:#232118;color:var(--ink);flex-grow:1;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--fs-base);margin-right:16px;outline:none;padding:10px 2px;transition:border-color .2s ease}.habit-input input::placeholder{color:#6b6557;color:var(--muted)}.habit-input input:focus{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}.input-and-nav{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.week-navigation{align-items:center;display:flex;gap:4px}.notes-section,.sticky-notes-section{max-width:none;width:100%}.notes-section{flex:1.618 1;min-width:0}.notes-section h3{font-size:1rem;font-size:var(--fs-base);font-weight:700;margin:0 0 10px}.notes-input{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.note-date-input{background:#0000;border:none;color:#6b6557;color:var(--muted);cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.8rem;font-size:var(--fs-xs);letter-spacing:.03em;outline:none;padding:0;text-align:left;text-transform:uppercase;width:100%}.note-date-input::-webkit-calendar-picker-indicator{cursor:pointer;height:18px;opacity:.5;padding:2px;-webkit-transition:opacity .2s;transition:opacity .2s;width:18px}.note-date-input::-webkit-calendar-picker-indicator:hover{opacity:.85}.textarea-wrapper .note-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.notes-input textarea{word-wrap:break-word;background:#0000;border:none;color:#232118;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--fs-base);line-height:1.6;min-height:20px;outline:none;overflow:hidden;padding:2px 0;resize:none;white-space:pre-wrap;width:100%}.notes-input textarea::placeholder{color:#6b6557;color:var(--muted)}.notes-list{max-height:none}.note-item{background:#0000;border:none;border-bottom:1px solid #ddd8cc;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;margin:0;padding:11px 0;position:relative}.notes-list .note-item:last-child,.sticky-note{border-bottom:none}.sticky-note{background:#5e7d5729;background:var(--accent-tint);border-radius:6px;margin-bottom:4px;padding:16px}.note-date{color:#6b6557;color:var(--muted);font-size:.8rem;font-size:var(--fs-xs);letter-spacing:.03em;text-transform:uppercase}.note-text{word-wrap:break-word;cursor:text;font-size:1rem;font-size:var(--fs-base);line-height:1.6;margin:0;padding:2px 0;transition:color .2s;white-space:pre-wrap}.note-header{justify-content:space-between;margin-bottom:6px;min-height:28px;position:relative}.note-actions,.note-header{align-items:center;display:flex}.note-actions{gap:0;opacity:1;position:absolute;right:0;transition:opacity .2s}@media (hover:hover){.note-actions{opacity:0}.note-item:hover .note-actions{opacity:1}}.delete-note-btn,.sticky-note-btn{filter:grayscale(1);opacity:.65;transition:opacity .2s}.delete-note-btn:hover,.sticky-note-btn:hover{opacity:1}.delete-note-btn,.sticky-note-btn,.week-nav-btn{background:none;border:none;border-radius:0;cursor:pointer;font-size:20px;font-size:var(--icon);line-height:1;min-height:44px;min-height:var(--tap-target);min-width:44px;min-width:var(--tap-target);padding:2px 5px}.week-nav-btn{color:#6b6557;color:var(--muted);font-size:26px;font-weight:300;transition:color .2s}.week-nav-btn:hover{color:#232118;color:var(--ink)}.delete-note-btn,.sticky-note-btn{font-size:15px;min-width:28px;padding:2px 3px}.note-edit{display:flex;flex-direction:column;gap:0}.note-edit-actions{align-items:center;display:flex;gap:0}.cancel-note-btn,.save-note-btn{background:none;border:none;border-radius:0;cursor:pointer;font-size:15px;line-height:1;min-height:28px;min-width:28px;padding:2px 3px}.save-note-btn{color:#5e7d57;color:var(--accent)}.cancel-note-btn{color:#6b6557;color:var(--muted)}.note-text-edit{word-wrap:break-word;background:#0000;border:none;color:#232118;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--fs-base);line-height:1.6;min-height:20px;outline:none;overflow:hidden;padding:2px 0;resize:none;white-space:pre-wrap;width:100%}.habit-table tbody tr{cursor:move;transition:background .2s ease}.habit-table tbody tr.dragging{opacity:.45}.habit-table tbody tr.drag-over{box-shadow:inset 0 2px 0 0 #5e7d57;box-shadow:inset 0 2px 0 0 var(--accent)}@media (hover:hover){.habit-table tbody tr:hover{background:rgba(58,56,51,.015)}}.textarea-wrapper{display:flex;flex-direction:column;position:relative}.notes-input .textarea-wrapper{background:#0000;border:none;border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);border-radius:0;box-shadow:none;padding:0 0 8px;transition:border-color .2s ease}.notes-input .textarea-wrapper:focus-within{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}@media screen and (max-width:768px){.habit-container{align-items:stretch;flex-direction:column;gap:40px;padding:24px 18px 48px}.habit-input{max-width:100%}.habit-input input,.notes-input input[type=date],.notes-input textarea{box-sizing:border-box;width:100%}}@media (max-width:600px){.habit-table td,.habit-table th{padding:8px 4px}}.todo-section{margin-bottom:28px}.todo-tabs{border-bottom:1px solid #ddd8cc;border-bottom:1px solid var(--line);display:flex;gap:28px;margin-bottom:18px}.todo-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b6557;color:var(--muted);cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--fs-base);font-weight:500;margin-bottom:-1px;padding:8px 2px;transition:color .2s ease,border-color .2s ease}.todo-tab.active,.todo-tab:hover{color:#232118;color:var(--ink)}.todo-tab.active,.todo-tab.drag-over{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}.todo-tab.drag-over{background:#5e7d5729;background:var(--accent-tint);color:#5e7d57;color:var(--accent)}.todo-input{align-items:center;display:flex;margin-left:auto;margin-top:18px;max-width:440px;width:100%}.todo-input input{background:#0000;border:none;border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);border-radius:0;color:#232118;color:var(--ink);flex-grow:1;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:1rem;font-size:var(--fs-base);margin-right:16px;outline:none;padding:10px 2px;transition:border-color .2s ease}.todo-input input::placeholder{color:#6b6557;color:var(--muted)}.todo-input input:focus{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}.todo-list{list-style:none;margin:0;padding:0}.todo-item{align-items:center;cursor:move;display:flex;gap:10px;padding:8px 25px 8px 0;position:relative;transition:background .2s ease}.todo-item.dragging{opacity:.45}.todo-item.drag-over{box-shadow:inset 0 2px 0 0 #5e7d57;box-shadow:inset 0 2px 0 0 var(--accent)}@media (hover:hover){.todo-item:hover{background:rgba(58,56,51,.015)}}.todo-check{accent-color:#5e7d57;accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:16px;width:16px}.todo-text{color:#232118;color:var(--ink);cursor:pointer;flex:1 1;font-size:1rem;font-size:var(--fs-base);font-weight:500;overflow-wrap:break-word;transition:color .2s}.todo-text:hover{color:#5e7d57;color:var(--accent)}.todo-item.completed .todo-text{color:#6b6557;color:var(--muted);text-decoration:line-through}.delete-todo-btn{background:none;border:none;color:#6b6557;color:var(--muted);cursor:pointer;font-size:20px;font-size:var(--icon);line-height:1;position:absolute;right:-4px;transition:opacity .2s,color .2s}.delete-todo-btn:hover{color:#232118;color:var(--ink)}@media (hover:hover){.delete-todo-btn{opacity:0}.todo-item:hover .delete-todo-btn{opacity:1}}.todo-edit{display:flex;flex-direction:column;gap:8px;width:100%}.todo-edit input{background:#0000;border:none;border-bottom:1px solid #cfc9ba;border-bottom:1px solid var(--line-2);border-radius:0;color:#232118;color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.9rem;outline:none;padding:7px 2px;transition:border-color .2s}.todo-edit input:focus{border-bottom-color:#5e7d57;border-bottom-color:var(--accent)}.todo-edit-actions{display:flex;gap:14px}.todo-edit-actions button{background:none;border:none;border-radius:0;cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:.82rem;padding:4px 0}.todo-edit-actions button:first-child{color:#5e7d57;color:var(--accent);font-weight:600}.todo-edit-actions button:last-child{color:#6b6557;color:var(--muted)}
/*# sourceMappingURL=main.3debb3c1.css.map*/