@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-opsz-normal-oos9povj.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-opsz-normal-Bf69Tn_J.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Victor Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/victor-mono-latin-400-normal-DMJhbcp5.woff2) format("woff2"),url(/assets/victor-mono-latin-400-normal-BITHuKdS.woff) format("woff")}@font-face{font-family:Victor Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/victor-mono-latin-500-normal-BpUbWK6O.woff2) format("woff2"),url(/assets/victor-mono-latin-500-normal-BQmT8nDH.woff) format("woff")}@font-face{font-family:Victor Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/victor-mono-latin-600-normal-BBBxUWmj.woff2) format("woff2"),url(/assets/victor-mono-latin-600-normal-DuO8MA_2.woff) format("woff")}:root{font-family:DM Sans Variable,DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;font-size:16px;--font-mono: "Victor Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg-color: #011627;--surface-color: #0b2942;--surface-muted-color: #06192b;--border-color: #1d3b53;--text-color: #d6deeb;--text-muted-color: #9db2c6;--text-subtle-color: #7e97ad;--text-disabled-color: #3e5a72;--primary-color: #82aaff;--primary-hover-color: #c792ea;--on-accent-color: #011627;--success-color: #addb67;--success-surface-color: #10302b;--success-border-color: #3f6b3c;--error-color: #ef5350;--error-surface-color: #2a1626;--error-border-color: #7a3442;--backdrop-color: rgba(20, 20, 18, .45);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,.page{touch-action:manipulation}body{margin:0;display:flex;min-width:320px;height:100vh;height:100dvh;background-color:var(--bg-color);color:var(--text-color);overflow:hidden}h1,h2,h3{color:var(--text-color);letter-spacing:-.02em}h1{font-size:2rem;font-weight:700;letter-spacing:-.96px}h2{font-size:1.5rem;font-weight:600}p{color:var(--text-color)}a{color:var(--primary-color);text-decoration:none}a:hover{color:var(--primary-hover-color);text-decoration:underline}p a,li a,label a{text-decoration:underline;text-underline-offset:2px}input,textarea,button{font-family:inherit}button{height:48px;padding:0 1rem;border:none;border-radius:var(--radius-sm);background:var(--primary-color);color:var(--on-accent-color);font-size:1rem;font-weight:500;cursor:pointer;transition:transform .1s ease,opacity .2s ease}button:hover{opacity:.9}button:active{transform:scale(.98)}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,.radio-label:has(.radio-input:focus-visible){outline:2px solid var(--primary-color);outline-offset:2px}button.secondary{border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-color)}button.danger{background:var(--error-color);color:var(--on-accent-color);font-weight:600}button.ghost{height:40px;padding:0 .625rem;background:transparent;color:var(--text-color);font-size:.9375rem}button.outline{height:34px;padding:0 .75rem;border:1px solid var(--border-color);background:transparent;color:var(--text-color);font-size:.8125rem}button.error{height:34px;padding:0 .75rem;border:1px solid var(--error-border-color);background:transparent;color:var(--error-color);font-size:.8125rem}.icon-button{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-color)}.icon-button svg{width:20px;height:20px;stroke:currentColor}.radio-group{display:flex;gap:.5rem;width:100%}.radio-label{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:48px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-color);font-size:1.125rem;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease}.radio-label:active{transform:scale(.97)}.radio-label.radio-label-checked[data-status=GOOD]{border-color:var(--success-color);background:var(--success-color);color:var(--on-accent-color)}.radio-label.radio-label-checked[data-status=BAD]{border-color:var(--error-color);background:var(--error-color);color:var(--on-accent-color)}.radio-input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.radio-custom{display:none}#root{margin:0 auto;max-width:640px;padding:0 1.25rem;width:100%;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.page{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:2.5rem}.page-center{align-items:center;justify-content:center}@keyframes dots{0%{content:"."}33%{content:".."}66%{content:"..."}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading{display:flex;align-items:center;justify-content:center;padding:3rem;font-family:var(--font-mono);font-size:.875rem;color:var(--text-subtle-color);animation:pulse 2s ease-in-out infinite}.loading:after{content:"...";animation:dots 1s steps(1) infinite}@media (min-width: 960px){#root{max-width:1120px;padding:0 2rem}}.Calendar{display:flex;flex-direction:column;gap:.375rem;width:100%;user-select:none;-webkit-user-select:none;touch-action:manipulation}.Calendar>div{display:flex;gap:.375rem;width:100%}.Calendar-menu{align-items:center;margin-bottom:.375rem}.Calendar-menu span{order:-1;flex:1;font-size:1.125rem;font-weight:600;letter-spacing:-.3px}.Calendar-day{position:relative;display:flex;align-items:center;justify-content:center;width:calc((100% - 6 * .375rem) / 7);aspect-ratio:1;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.875rem;font-weight:500;background:var(--surface-color);cursor:pointer;transition:background .15s ease}.Calendar-day_empty,.Calendar-day_week-name{background:transparent;cursor:default}.Calendar-day_week-name{aspect-ratio:auto;font-size:.6875rem;color:var(--text-subtle-color)}.Calendar-day.Calendar-day_success{background:var(--success-color);color:var(--on-accent-color)}.Calendar-day.Calendar-day_error{background:var(--error-color);color:var(--on-accent-color)}.Calendar-day.Calendar-day_future{background:transparent;color:var(--text-disabled-color);cursor:default}.Calendar-day_linked:after{content:"";position:absolute;top:50%;right:-7px;width:8px;height:4px;margin-top:-2px;border-radius:2px;background:var(--success-color)}.Calendar-day_today{box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--text-color)}@keyframes pulsate{0%,to{background-color:var(--surface-color)}50%{background-color:var(--border-color)}}.Calendar-day.Calendar-day_pulsate{animation:pulsate 2s infinite ease-in-out}.Calendar>.Calendar-legend{flex-wrap:wrap;gap:.375rem .875rem;margin-top:.375rem;font-size:.75rem;line-height:1.4;color:var(--text-subtle-color)}.Calendar>.Calendar-week_complete{border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--success-surface-color),0 0 0 4px var(--success-border-color);background:var(--success-surface-color)}input[type=text],textarea{width:100%;padding:.25rem 0;border:0;outline:0;background:transparent;color:var(--text-color);font-size:1rem;line-height:1.45;resize:none}input[type=text]{font-size:2rem;font-weight:700;letter-spacing:-.96px;border-bottom:1.5px dashed var(--border-color)}input[type=text]:focus{border-bottom-color:var(--primary-color)}input[type=text]:focus-visible,textarea:focus-visible{outline:none}textarea{min-height:50px;font-size:1rem;color:var(--text-muted-color)}textarea::placeholder{color:var(--text-subtle-color)}.BottomSheet textarea{min-height:90px;padding:.75rem .875rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-color);color:var(--text-color)}.BottomSheet textarea:focus{border-color:var(--primary-color)}.BottomSheet textarea:disabled{background:var(--surface-muted-color)}.StreakTracker{gap:1.375rem}.StreakTracker-info{display:flex;flex-direction:column;gap:.25rem}.StreakTracker-stats{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.StreakTracker-share{grid-column:1 / -1;display:flex;flex-direction:column;gap:.625rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color)}.StreakTracker-share_header{display:flex;justify-content:space-between;align-items:baseline}.StreakTracker-share_label{font-family:var(--font-mono);font-size:1.25rem;font-weight:600}.StreakTracker-share_counts{font-size:.75rem;color:var(--text-subtle-color)}.StreakTracker-hint{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);color:var(--primary-color);font-size:.875rem;line-height:1.4}.StreakTracker-hint:before{content:"";flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--primary-color)}.StreakTracker-sheet{display:flex;flex-direction:column;gap:1.125rem}.StreakTracker-sheet_heading{display:flex;flex-direction:column;gap:.125rem}.StreakTracker-sheet_heading h3{margin:0;font-size:1.375rem;font-weight:700;letter-spacing:-.6px}.StreakTracker-sheet_habit{font-family:var(--font-mono);font-size:.75rem;color:var(--text-subtle-color);text-transform:uppercase;letter-spacing:1px}.StreakTracker-sheet .radio-label{font-size:1rem;font-weight:500}.StreakTracker-sheet_note{display:flex;flex-direction:column;gap:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-muted-color)}.StreakTracker-insights{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color)}.StreakTracker-insights h3{margin:0;font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--text-subtle-color);text-transform:uppercase;letter-spacing:1px}.StreakTracker-insights ul{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.StreakTracker-insights li{font-size:.9375rem;line-height:1.45;text-wrap:pretty}.StreakTracker-notFound{gap:1rem;text-align:center;color:var(--text-muted-color)}.StreakTracker-summary,.StreakTracker-calendar{display:flex;flex-direction:column;gap:1.375rem}@media (min-width: 960px){.StreakTracker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"summary calendar" "year year" "insights insights";column-gap:2.5rem;align-content:start}.StreakTracker-summary{grid-area:summary;align-self:start}.StreakTracker-calendar{grid-area:calendar;align-self:start}.StreakTracker>.YearOverview{grid-area:year}.StreakTracker-insights{grid-area:insights}}.streak{flex:1;display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color)}.streak-header{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--text-muted-color)}.streak-value{font-family:var(--font-mono);font-size:2.5rem;font-weight:600;letter-spacing:-2px;line-height:1.1}.streak-unit{font-size:.75rem;color:var(--text-subtle-color)}.streak .icon{font-size:.8125rem;line-height:1}.progress-bar{display:flex;gap:2px;height:6px;border-radius:3px;overflow:hidden;background:var(--bg-color)}.progress-bar_thick{height:10px;border-radius:5px}.progress-bar .good,.progress-bar .bad{transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-bar .good{background:var(--success-color)}.progress-bar .bad{background:var(--error-color)}@keyframes slideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideOut{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.BottomSheet{position:absolute;bottom:0;left:0;right:0;max-width:640px;margin:0 auto;padding:1.75rem 1.25rem 2.125rem;background:var(--bg-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(100%);animation:slideIn .28s cubic-bezier(.2,.8,.2,1) forwards}.BottomSheet:before{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:40px;height:5px;border-radius:3px;background:var(--border-color)}.BottomSheet.hidden{animation:slideOut .28s cubic-bezier(.2,.8,.2,1) forwards}.BottomSheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;cursor:pointer;background:var(--backdrop-color);opacity:0;animation:fadeIn .2s ease-out forwards}.BottomSheet-backdrop.hidden{animation:fadeOut .2s ease-in forwards}@keyframes ConfirmDialog-fade{0%{opacity:0}to{opacity:1}}@keyframes ConfirmDialog-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ConfirmDialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:1.75rem;background:var(--backdrop-color);animation:ConfirmDialog-fade .15s ease}.ConfirmDialog{display:flex;flex-direction:column;gap:.625rem;width:100%;max-width:400px;padding:1.5rem;border-radius:var(--radius-md);background:var(--surface-color);animation:ConfirmDialog-pop .18s ease}.ConfirmDialog-title{font-size:1.125rem;font-weight:600}.ConfirmDialog-body{font-size:.875rem;line-height:1.45;color:var(--text-muted-color);text-wrap:pretty}.ConfirmDialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.ConfirmDialog-actions button{height:46px;font-size:.9375rem}.GoalSelect{display:flex;align-items:center;gap:.625rem;margin-top:.25rem;font-size:.8125rem;font-weight:500;color:var(--text-muted-color)}.GoalSelect select{height:34px;padding:0 2rem 0 .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239db2c6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .625rem center;color:var(--text-color);font:inherit;font-size:1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.GoalSelect select:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.YearOverview{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color)}.YearOverview-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.75rem;color:var(--text-subtle-color)}.YearOverview-header h3{margin:0;font-family:var(--font-mono);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--text-subtle-color)}.YearOverview-scroll{--cell: 10px;--gap: 3px;overflow-x:auto;padding:0 3px .25rem}.YearOverview-months,.YearOverview-grid{display:grid;grid-template-columns:repeat(53,var(--cell));gap:var(--gap);width:max-content}.YearOverview-months{margin-bottom:.375rem;font-family:var(--font-mono);font-size:.625rem;line-height:1;color:var(--text-subtle-color);white-space:nowrap}.YearOverview-grid{grid-template-rows:repeat(7,var(--cell));grid-auto-flow:column}.YearOverview-day{border-radius:2px;background:var(--bg-color)}.YearOverview-day_success{background:var(--success-color)}.YearOverview-day_error{background:var(--error-color)}.YearOverview-day_today{outline:1.5px solid var(--text-color);outline-offset:1px}@media (min-width: 960px){.YearOverview-scroll{--cell: 12px}}@media (min-width: 1200px){.YearOverview-scroll{--cell: 15px}}.AppBar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;height:56px;gap:.75rem}.AppBar>.ghost{margin-left:-.625rem}.AppBar-brand{display:flex;align-items:center;gap:.625rem;font-size:.9375rem;font-weight:600;letter-spacing:-.2px}.AppBar-logo{display:flex}.AppBar-logo span{width:20px;height:20px;border-radius:50%;border:3px solid var(--text-color)}.AppBar-logo span+span{margin-left:-7px;border-color:var(--primary-color)}.AppBar-right{display:flex;gap:.5rem;align-items:center}.AppBar_avatar{width:34px;height:34px;border-radius:50%;background:var(--surface-color);border:2px solid var(--border-color)}.AccountMenu{position:relative}.AccountMenu-trigger{height:auto;padding:0;border-radius:50%;background:transparent}.AccountMenu-initial{display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-color)}.AccountMenu-panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:15;display:flex;flex-direction:column;min-width:220px;padding:.375rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);box-shadow:0 12px 32px #00000059}.AccountMenu-who{margin:0;padding:.5rem .625rem .375rem;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;color:var(--text-subtle-color)}.AccountMenu-item{display:block;width:100%;height:auto;padding:.625rem;border-radius:var(--radius-sm);background:transparent;color:var(--text-color);font-size:.9375rem;font-weight:400;text-align:left;text-decoration:none}.AccountMenu-item:hover,.AccountMenu-item:focus-visible{background:var(--border-color);text-decoration:none;opacity:1}.AccountMenu-item:not(.AccountMenu-item_danger):hover,.AccountMenu-item:not(.AccountMenu-item_danger):focus-visible{color:var(--text-color)}.AccountMenu-item_danger{color:var(--error-color)}.AccountMenu-language{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem .625rem;font-size:.9375rem}.AccountMenu-language select{min-height:40px;padding:0 .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-muted-color);color:var(--text-color);font:inherit}.AccountMenu-panel hr{width:100%;margin:.375rem 0;border:0;border-top:1px solid var(--border-color)}.ReminderDialog-time{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.25rem;font-size:.9375rem}.ReminderDialog-time select{height:40px;padding:0 .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-muted-color);color:var(--text-color);font:inherit;font-size:1rem}.ReminderDialog-note{font-size:.8125rem;line-height:1.4;color:var(--text-subtle-color)}.ConfirmDialog[tabindex="-1"]:focus{outline:none}button.ReminderDialog-turn-off{align-self:flex-start;margin-left:-.625rem;color:var(--error-color)}.ReminderDialog-single{grid-template-columns:1fr}.Login-container{justify-content:center;gap:1.75rem;padding:1.75rem .5rem 2.5rem}.Login-logo{display:flex;align-items:center}.Login-logo span{width:44px;height:44px;border-radius:50%;border:5px solid var(--text-color)}.Login-logo span+span{margin-left:-14px}.Login-logo span:nth-child(2){border-color:var(--primary-color)}.Login-title{margin:0;font-size:2.75rem;line-height:1.02;font-weight:700;letter-spacing:-1.6px}.Login-subtitle{margin:0;max-width:290px;font-size:1.125rem;line-height:1.45;font-weight:400;letter-spacing:0;color:var(--text-muted-color);text-wrap:pretty}.Login-button{width:100%;max-width:400px}.Login-consent{display:flex;align-items:flex-start;gap:.625rem;max-width:400px;margin:0;font-size:.875rem;line-height:1.45;color:var(--text-muted-color);cursor:pointer}.Login-consent input{flex-shrink:0;width:18px;height:18px;margin:.1rem 0 0;accent-color:var(--primary-color)}.Login-accepted{max-width:400px;margin:0;font-size:.875rem;line-height:1.45;color:var(--text-muted-color)}.Login-buttons{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:400px}.Login-error{max-width:400px;margin:0;padding:.75rem 1rem;border:1px solid var(--error-border-color);border-radius:var(--radius-md);background:var(--error-surface-color);color:var(--text-color);font-size:.875rem;line-height:1.45}.Login-notice{max-width:400px;margin:0;padding:.75rem 1rem;border:1px solid var(--success-border-color);border-radius:var(--radius-md);background:var(--success-surface-color);font-size:.875rem}@media (min-width: 960px){.Login-container{width:100%;max-width:480px;margin:0 auto}}.HabitsList-item{display:flex;flex-direction:column;gap:.625rem;padding:.875rem 1.125rem 1rem;margin-bottom:.625rem;cursor:pointer;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);transition:background .2s ease,border-color .2s ease}.HabitsList-item:active{transform:scale(.99)}.HabitsList-item_success{border-color:var(--success-border-color);background:var(--success-surface-color)}.HabitsList-item_bad{border-color:var(--error-border-color);background:var(--error-surface-color)}.HabitsList-date{margin-top:1.125rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-subtle-color);text-transform:uppercase;letter-spacing:1px}.HabitsList-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.375rem 0 1.125rem}.HabitsList-title{margin:0}button.HabitsList-reorder_toggle{flex-shrink:0;height:44px;padding:0 .75rem;background:transparent;color:var(--primary-color);font-size:.9375rem}.HabitsList-reorder{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.HabitsList-reorder_item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem .25rem .25rem 1.125rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.HabitsList-reorder_item-dragging{position:relative;z-index:1;border-color:var(--primary-color);box-shadow:0 8px 24px #00000059}.HabitsList-reorder_name{min-width:0;font-size:1.0625rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button.HabitsList-reorder_handle{flex-shrink:0;width:48px;height:48px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-subtle-color);cursor:grab;touch-action:none}button.HabitsList-reorder_handle svg{fill:currentColor}.HabitsList-reorder_item-dragging button.HabitsList-reorder_handle{color:var(--primary-color);cursor:grabbing}.HabitsList-item_title{font-size:1.125rem;font-weight:600;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.HabitsList-item_row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.HabitsList-item_header{align-items:flex-start}.HabitsList-item_text{display:flex;flex-direction:column;gap:.125rem;min-width:0}.HabitsList-item .radio-group{width:auto;flex-shrink:0}.HabitsList-item .radio-label{flex:none;width:44px;min-height:44px}.HabitsList-item_progress{display:flex;flex-direction:column;gap:.4375rem}.HabitsList-item_stats,.HabitsList-item_streaks{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted-color)}.HabitsList-item_stats{flex-wrap:wrap;row-gap:.25rem}.HabitsList-item_stats span{white-space:nowrap}.HabitsList-item_streaks{display:flex;gap:.875rem}.HabitsList-item_streaks b{color:var(--text-color)}.HabitsList-status-text{font-size:.875rem;color:var(--text-muted-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.HabitsList-item_success .HabitsList-status-text{color:var(--success-color)}.HabitsList-item_bad .HabitsList-status-text{color:var(--error-color)}.HabitsList-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:3.75rem;padding:0 1.25rem;text-align:center}.HabitsList-empty-icon{font-size:3rem}.HabitsList-empty-title{font-size:1.25rem;font-weight:600}.HabitsList-empty-text{font-size:.9375rem;line-height:1.45;color:var(--text-muted-color);text-wrap:pretty}button.HabitsList-create{flex-shrink:0;height:auto;min-height:72px;border:1px dashed color-mix(in srgb,var(--text-subtle-color) 55%,transparent);border-radius:var(--radius-md);background:transparent;color:var(--primary-color);font-size:.9375rem}button.HabitsList-create:hover{opacity:1;border-color:var(--primary-color)}button.HabitsList-create_first{flex-shrink:0;align-self:center;justify-self:center;margin-top:1.5rem;padding:0 1.75rem}@media (min-width: 960px){.HabitsList{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;align-content:start}.HabitsList>:not(.HabitsList-item,.HabitsList-create){grid-column:1 / -1}.HabitsList-date{margin-top:.125rem}.HabitsList-heading{margin:-.625rem 0 .125rem}.HabitsList-item{margin-bottom:0}button.HabitsList-create{align-self:stretch}}.HabitsList-error{color:var(--text-muted-color)}.ViewSwitch{display:flex;gap:.125rem;margin-top:1rem;padding:.125rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-muted-color)}.ViewSwitch-link{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:var(--radius-sm);color:var(--text-muted-color);font-size:.9375rem;font-weight:500;text-decoration:none}.ViewSwitch-link:visited,.ViewSwitch-link:hover{color:var(--text-muted-color);text-decoration:none}.ViewSwitch-link.active,.ViewSwitch-link.active:visited,.ViewSwitch-link.active:hover{background:var(--surface-color);color:var(--text-color);font-weight:600}@media (min-width: 960px){.ViewSwitch{max-width:320px}}.Overview{--row-inset: .75rem;--week-gap: .5rem;--cell-gap: 3px}.Overview_weeks-4{--week-gap: .375rem;--cell-gap: 2px}.Overview-range{margin-top:1.125rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-subtle-color);text-transform:uppercase;letter-spacing:1px}.Overview-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.375rem 0 1rem}.Overview-title{margin:0}.Overview-title_alone{margin:1.5rem 0 1rem}.Overview-nav{display:flex;gap:.5rem}.Overview-nav .icon-button{width:44px;height:44px}.Overview-nav .icon-button[aria-disabled=true]{opacity:.35;cursor:default}.Overview-nav .icon-button svg{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.Overview-span{display:flex;gap:.5rem;margin-bottom:1rem}.Overview-span button{height:44px;padding:0 1rem;border:1px solid var(--border-color);border-radius:999px;background:transparent;color:var(--text-muted-color);font-size:.875rem}.Overview-span button[aria-pressed=true]{border-color:var(--primary-color);color:var(--text-color)}.Overview-summary{margin:0 0 1rem;color:var(--text-muted-color)}.Overview-summary b{color:var(--text-color)}.Overview-days{display:flex;gap:var(--week-gap);padding:0 calc(var(--row-inset) + 1px);margin-bottom:.375rem;font-family:var(--font-mono);font-size:.6875rem;line-height:1.2;color:var(--text-subtle-color)}.Overview-week{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--cell-gap)}.Overview-day{display:flex;flex-direction:column;align-items:center}.Overview-weekLabel{grid-column:1 / -1}.Overview-rows{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}button.Overview-row{width:100%;height:auto;display:flex;flex-direction:column;gap:.5rem;padding:.625rem var(--row-inset) .75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);color:var(--text-color);text-align:left}.Overview-rowHeader{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.Overview-name{min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.Overview-streak{flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;color:var(--success-color)}.Overview-cells{display:flex;gap:var(--week-gap)}.Overview-cell{display:inline-block;height:20px;border-radius:4px;background:var(--surface-muted-color)}.Overview_weeks-4 .Overview-cell{height:16px;border-radius:3px}.Overview-cell_good{background:var(--success-color)}.Overview-cell_good-weekly{background:color-mix(in srgb,var(--success-color) 55%,var(--surface-color))}.Overview-cell_bad{background:color-mix(in srgb,var(--error-color) 70%,var(--bg-color))}.Overview-cell_future{background:transparent;box-shadow:inset 0 0 0 1px var(--border-color)}.Overview-cell_none{background:transparent}.Overview-cell_today{box-shadow:0 0 0 1.5px var(--surface-color),0 0 0 3px var(--text-color)}.Overview_weeks-4 .Overview-cell_today{box-shadow:inset 0 0 0 1.5px var(--surface-color),0 0 0 1.5px var(--text-color)}.Overview-weekTotal{flex:1;padding:.125rem 0;border-radius:4px;background:var(--surface-muted-color);color:var(--text-muted-color);font-family:var(--font-mono);font-size:.75rem;text-align:center}.Overview-weekTotal_none{background:transparent}.Overview-weekTotal_met{background:var(--success-color);color:var(--on-accent-color)}.Overview-legend{display:flex;flex-wrap:wrap;gap:.5rem .875rem;margin:1rem 0;padding:.625rem var(--row-inset);border-radius:var(--radius-md);background:var(--surface-color);font-size:.75rem;color:var(--text-muted-color)}.Overview-legend>span{display:flex;align-items:center;gap:.375rem}.Overview-legend .Overview-cell{width:12px;height:12px;border-radius:3px}.Overview-message{color:var(--text-muted-color)}@media (min-width: 960px){.Overview-cells .Overview-cell{height:28px}.Overview_weeks-4 .Overview-cells .Overview-cell{height:22px}}.LegalPage{padding-top:1rem;line-height:1.6}.LegalPage h1{margin:.75rem 0 .25rem}.LegalPage h2{margin:1.75rem 0 .5rem;font-size:1.125rem}.LegalPage p,.LegalPage li{color:var(--text-muted-color)}.LegalPage ul{padding-left:1.25rem}.LegalPage li+li{margin-top:.25rem}.LegalPage-back{align-self:flex-start;font-size:.9375rem}.LegalPage-meta{font-size:.8125rem;color:var(--text-subtle-color)}.LegalPage-content{display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto}.ErrorBoundary{gap:.75rem;text-align:center}.ErrorBoundary h1{margin:0;font-size:1.5rem}.ErrorBoundary p{margin:0 0 .5rem;color:var(--text-muted-color)}.Toast{position:fixed;left:50%;bottom:1.5rem;z-index:25;display:flex;align-items:center;gap:.75rem;width:max-content;max-width:calc(100vw - 2.5rem);margin:0;padding:.75rem .75rem .75rem 1rem;transform:translate(-50%);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);box-shadow:0 12px 32px #00000059;font-size:.875rem;line-height:1.4}.Toast:empty{display:none}.Toast button{height:28px;padding:0 .5rem;background:transparent;color:var(--text-muted-color);font-size:1.125rem}
