.auth-page{flex-direction:column;max-width:1320px;min-height:100dvh;margin:auto;padding:34px 50px;display:flex}.auth-brand{letter-spacing:-.6px;align-items:center;gap:14px;font-size:28px;font-weight:700;display:flex}.auth-layout{flex:1;grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;padding:70px 0;display:grid}.auth-story h1{letter-spacing:-2px;font-size:clamp(38px,4.3vw,60px);line-height:1.15}.auth-story>p{color:var(--stone);margin-top:22px;font-size:20px;line-height:1.7}.rhythm-motif{gap:10px;margin-top:44px;display:flex}.rhythm-motif span{border-radius:5px;width:29px;height:29px}.auth-story .auth-kindness{max-width:320px;margin-top:22px;font-size:16px}.auth-panel{border-left:1px solid var(--rule);min-width:0;padding:8px 0 8px 50px}.auth-panel>h2{letter-spacing:-.8px;margin-bottom:27px;font-size:32px}.auth-tabs{border-bottom:1px solid var(--rule);gap:30px;margin-bottom:27px;display:flex}.auth-tabs button{color:var(--stone);border-bottom:2px solid #0000;padding:0 0 12px;font-size:17px}.auth-tabs .selected{color:var(--forest);border-bottom-color:var(--forest);font-weight:650}.auth-form{flex-direction:column;gap:20px;display:flex}.auth-form>label,.password-field+label{font-size:14px;font-weight:550;display:block}.auth-form input:not([type=checkbox]){background:#fbfaf7;border:1px solid #b9bfb0;border-radius:8px;width:100%;min-height:46px;margin-top:8px;padding:12px 13px;font-size:16px;line-height:1.35;display:block}.auth-form>.button{min-height:47px;margin-top:4px}.password-field{position:relative}.password-field input{padding-right:83px!important}.password-field>button{color:var(--forest);border-radius:4px;padding:0 8px;font-size:12px;font-weight:500;position:absolute;top:5px;bottom:5px;right:5px}.password-field>button:hover{background:#e8eee3}.password-hint{color:var(--stone);margin-top:-12px;font-size:12px;line-height:1.5}.login-options{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.remember-label{color:var(--stone);align-items:center;gap:7px;font-size:12px;display:flex}.remember-label input{accent-color:var(--forest);width:16px;height:16px;margin:0}.login-options>button{color:var(--forest);text-underline-offset:3px;padding:3px 0;font-size:13px;text-decoration:underline}.auth-description{color:var(--stone);overflow-wrap:anywhere;margin-bottom:22px;font-size:15px;line-height:1.65}.auth-description strong{color:var(--ink);font-weight:550}.auth-notice{color:var(--forest);background:#e8ede2;border-radius:7px;margin-bottom:10px;padding:11px 13px;font-size:14px;line-height:1.6}.auth-form .auth-notice{margin-bottom:0}.code-input{letter-spacing:8px;font-variant-numeric:tabular-nums;text-align:center;font-size:25px!important}.auth-secondary{justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.auth-secondary button,.auth-back{color:var(--forest);text-underline-offset:4px;padding:5px 0;font-size:14px;line-height:1.4;text-decoration:underline}.auth-panel>.auth-back{margin-top:20px}.auth-footer{color:var(--stone);border-top:1px solid var(--rule);padding-top:20px;font-size:14px}.auth-loading{text-align:center;min-height:100dvh;color:var(--stone);flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:32px;display:flex}.auth-loading h1{color:var(--ink);font-size:30px}.auth-loading p{max-width:450px;line-height:1.6}.header-actions{align-items:center;gap:10px;padding-right:15px;display:flex}.header-actions .settings-button{margin:0}.account-button{width:34px;height:34px;color:var(--forest);background:#e4ebde;border:1px solid #aabda5;border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:650;display:flex}.account-button:hover{background:var(--sage)}.account-identity{flex-direction:column;gap:6px;margin-bottom:23px;display:flex}.account-identity strong{overflow-wrap:anywhere;font-size:20px}.account-identity span{color:var(--stone);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.account-form{margin-top:23px}.account-tabs button{padding:9px}.account-logout{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:20px;margin-top:25px;padding-top:20px;display:flex}.migration-banner{color:var(--forest);border:1px solid #c7d5bf;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;padding:14px 17px;font-size:14px;line-height:1.5;display:flex}.migration-banner>span{max-width:800px}.sync-warning-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.storage-warning .sync-warning-actions button,.account-form .auth-description{margin:0}.saving-message{color:var(--stone)}@media (width<=900px){.auth-page{padding:28px 35px}.auth-layout{grid-template-columns:1fr 1fr;gap:35px}.auth-panel{padding-left:30px}.auth-story h1{font-size:43px}.auth-story>p{font-size:17px}.auth-panel>h2{font-size:28px}.auth-tabs{gap:25px}.auth-story .auth-kindness{font-size:14px}.header-actions{gap:6px;padding-right:0}}@media (width<=650px){.auth-page{padding:22px 24px}.auth-brand{font-size:25px}.auth-layout{padding:37px 0 40px;display:block}.auth-story h1{letter-spacing:-1.2px;font-size:36px}.auth-story>p{margin-top:14px;font-size:15px;line-height:1.6}.rhythm-motif{gap:7px;margin-top:20px}.rhythm-motif span{border-radius:3px;width:20px;height:20px}.auth-story .auth-kindness{display:none}.auth-panel{border-left:0;border-top:1px solid var(--rule);margin-top:30px;padding:28px 0 0}.auth-panel>h2{margin-bottom:22px;font-size:28px}.auth-tabs{margin-bottom:23px}.auth-form{gap:18px}.login-options{gap:13px}.auth-description{font-size:14px}.account-button{width:31px;height:31px;font-size:14px}.migration-banner{padding:13px;display:block}.migration-banner .button{margin-top:12px;font-size:13px}.storage-warning .sync-warning-actions{width:100%;margin-left:32px}.auth-footer{font-size:12px}.account-tabs button{font-size:13px}.account-logout{gap:14px}.account-logout .auth-back{font-size:13px}}.users-view{min-height:650px;padding-bottom:45px}.users-privacy{color:var(--stone);max-width:750px;margin-top:-10px;font-size:15px;line-height:1.6}.users-toolbar{align-items:flex-end;gap:24px;margin:28px 0 24px;display:flex}.users-toolbar>label{flex-direction:column;flex:1;gap:7px;max-width:380px;font-size:13px;display:flex}.users-toolbar input,.auth-form select{font:inherit;background:#fbfaf7;border:1px solid #b9bfb0;border-radius:8px;width:100%;min-height:43px;padding:11px 12px}.auth-form select{margin-top:8px;font-size:15px;display:block}.users-toolbar>span{color:var(--stone);padding-bottom:10px;font-size:14px}.users-toolbar>.text-button{margin-left:auto;padding-bottom:10px;font-size:14px}.users-table-head,.user-row{grid-template-columns:minmax(230px,1.4fr) 190px 190px minmax(150px,1fr);align-items:center;gap:22px;display:grid}.users-table-head{color:var(--stone);padding-bottom:13px;font-size:13px}.user-row{border-top:1px solid var(--rule);min-height:96px;padding:22px 0}.user-name{flex-direction:column;gap:6px;min-width:0;display:flex}.user-name strong{overflow-wrap:anywhere;align-items:center;gap:10px;font-size:19px;font-weight:600;display:flex}.user-name strong small{color:var(--forest);background:var(--sage);border-radius:5px;flex-shrink:0;padding:3px 7px;font-size:11px;font-weight:500}.user-name>span{color:var(--stone);overflow-wrap:anywhere;font-size:14px}.user-role select{font:inherit;background:0 0;border:1px solid #b9bfb0;border-radius:7px;width:100%;padding:9px 10px;font-size:14px}.user-role select:disabled{opacity:.7;cursor:default}.user-status{font-size:13px;line-height:1.4}.user-status.confirmed{color:var(--forest)}.user-status.pending,.user-status.disabled{color:var(--stone)}.user-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.user-actions .text-button,.user-actions>.muted{font-size:13px}.users-feedback{max-width:900px;margin-bottom:20px}.users-empty{padding:35px 0}.mobile-field-label{display:none}@media (width<=1100px){.users-table-head,.user-row{grid-template-columns:minmax(190px,1.2fr) 170px 140px minmax(130px,1fr);gap:16px}.app-header.admin-header nav{gap:5px}.app-header.admin-header nav button{padding:0 12px;font-size:17px}}@media (width<=760px){.app-header.admin-header nav{justify-content:space-between;gap:0;width:100%}.app-header.admin-header nav button{padding:0 1px;font-size:14px}.users-view{min-height:600px}.users-privacy{margin-top:-7px;font-size:13px}.users-toolbar{flex-wrap:wrap;gap:12px;margin-top:24px}.users-toolbar>label{flex-basis:100%;max-width:none}.users-toolbar>span{padding-bottom:2px;font-size:12px}.users-toolbar>.text-button{padding-bottom:2px;font-size:13px}.users-table-head{display:none}.user-row{grid-template-columns:1fr 1fr;gap:17px 15px;padding:22px 0}.user-name{grid-column:1/-1}.user-name strong{font-size:19px}.user-name>span{font-size:13px}.user-role{min-width:0}.user-role select{padding:10px 7px;font-size:12px}.user-state{flex-direction:column;justify-content:center;align-self:end;min-height:41px;display:flex}.user-actions{grid-column:1/-1}.mobile-field-label{color:var(--stone);margin-bottom:7px;font-size:11px;display:block}.user-status{font-size:12px}.users-feedback{font-size:13px}.users-view>.view-heading .button{font-size:14px}}@media (width<=350px){.app-header.admin-header nav button{font-size:12px}.user-row{grid-template-columns:1fr 1fr;gap:14px 10px}.user-name strong{font-size:17px}.user-role select,.user-status{font-size:11px}}.users-section-title{letter-spacing:-.4px;margin-bottom:23px;font-size:23px}.invitations-title{margin-top:46px}.invitation-row{border-top:1px solid var(--rule);grid-template-columns:minmax(230px,1.4fr) 190px minmax(190px,1fr);align-items:center;gap:22px;padding:22px 0;display:grid}.invitation-row .user-name strong{overflow-wrap:anywhere;font-size:17px;display:block}.invitation-list{margin-top:23px}.invitation-error{margin-top:18px}@media (width<=760px){.users-section-title{margin-bottom:15px;font-size:21px}.invitation-row{grid-template-columns:1fr;gap:13px}.invitation-row .user-name strong{font-size:16px}.invitations-title{margin-top:38px}}.empty-state{max-width:670px;padding:31px 18px 22px 0}.empty-mark{width:65px;height:65px;color:var(--forest);background:#e2e9dc;border-radius:18px;justify-content:center;align-items:center;margin-bottom:19px;display:inline-flex}.empty-state h3{letter-spacing:-.5px;margin-bottom:10px;font-size:25px}.empty-state>p{color:var(--stone);max-width:550px;font-size:17px;line-height:1.6}.template-list{grid-template-columns:1fr 1fr;gap:9px;max-width:590px;margin:25px 0 20px;display:grid}.template-list button{border:1px solid var(--rule);text-align:left;border-radius:8px;align-items:center;gap:11px;padding:13px 12px;font-size:15px;display:flex}.template-list button:hover{background:#e9ede3}.template-list button svg:last-child{color:var(--forest);margin-left:auto}.dialog{background:var(--paper);color:var(--ink);border:1px solid #d9ddd2;border-radius:18px;width:100%;max-width:min(560px,100vw - 32px);max-height:calc(100dvh - 40px);padding:26px 28px;overflow-y:auto;box-shadow:0 12px 38px #1e2d241a}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2635294d}.dialog-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.dialog-header h2{letter-spacing:-.7px;overflow-wrap:anywhere;font-size:27px}.habit-form{flex-direction:column;gap:20px;display:flex}.habit-form label,.manual-time label{font-size:14px;font-weight:550;display:block}.habit-form input,.manual-time input,.progress-filters select{background:#fbfaf7;border:1px solid #b9bfb0;border-radius:8px;width:100%;min-height:45px;margin-top:8px;padding:11px 12px;font-size:16px;line-height:1.3}.habit-form fieldset{border:0;min-width:0;margin:0;padding:0}.habit-form legend{margin-bottom:10px;font-size:14px;font-weight:550}.icon-picker{justify-content:space-between;gap:5px;display:flex}.icon-picker button{background:#eeefe7;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:46px;height:44px;display:flex}.icon-picker .selected{color:var(--forest);background:#dce5da;border-color:#769576}.segmented{border:1px solid var(--rule);background:#edefe7;border-radius:9px;gap:4px;padding:3px;display:flex}.segmented button{white-space:nowrap;border:1px solid #0000;border-radius:6px;flex:1;padding:9px 12px;font-size:14px}.segmented .selected{background:var(--paper);color:var(--forest);border-color:#d4dacb;font-weight:600}.form-columns{grid-template-columns:1fr 1fr;gap:15px;display:grid}.weekday-picker{justify-content:space-between;gap:7px;margin-top:13px;display:flex}.weekday-picker button{border:1px solid var(--rule);border-radius:8px;flex:1;max-width:53px;height:41px;font-size:14px}.weekday-picker .selected{background:var(--sage);color:var(--forest);border-color:#9eb399}.optional{color:var(--stone);margin-left:5px;font-size:12px;font-weight:400}.habit-form .form-hint{color:var(--stone);margin-top:-5px;font-size:12px;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:10px;padding-top:2px;display:flex}.weekly-input{align-items:center;gap:10px;margin-top:7px;font-size:14px!important;font-weight:400!important;display:flex!important}.weekly-input input{width:68px!important;margin:0!important}.error-text{color:#9d3e30;font-size:14px;line-height:1.5}.success-text{color:var(--forest);font-size:14px}.settings-section{border-bottom:1px solid var(--rule);margin-bottom:23px;padding:0 0 23px}.settings-section h3{letter-spacing:-.3px;align-items:center;gap:10px;font-size:19px;display:flex}.settings-section p{color:var(--stone);margin:10px 0 16px;font-size:14px;line-height:1.65}.settings-actions{flex-wrap:wrap;gap:10px;display:flex}.settings-actions .button{font-size:14px}.settings-footer{color:var(--stone);font-size:13px}.timer-body{text-align:center;padding:4px 0 20px}.timer-symbol{background:var(--sage);border-radius:18px;justify-content:center;align-items:center;width:66px;height:66px;margin-bottom:13px;display:inline-flex}.timer-body>p{color:var(--stone);font-size:15px}.timer-clock{letter-spacing:-3px;color:var(--forest);font-variant-numeric:tabular-nums;margin:12px 0 4px;font-size:80px;font-weight:550;line-height:1.25}.timer-clock>span{opacity:.5}.timer-toggle{min-width:225px;margin:23px auto 12px}.full-width{width:100%;margin-top:12px}.manual-time{border-top:1px solid var(--rule);padding-top:20px}.manual-row{align-items:center;gap:10px;margin-top:10px;display:flex}.manual-row input{width:95px;margin:0}.manual-row>span{color:var(--stone);font-size:14px;font-weight:400}.manual-row button{margin-left:auto;font-size:14px}.timer-body .success-text{color:var(--forest);margin:20px 0}.habits-view,.progress-view{min-height:650px;padding-bottom:35px}.management-tabs{border-bottom:1px solid var(--rule);gap:25px;margin-top:45px;display:flex}.management-tabs button{color:var(--stone);border-bottom:2px solid #0000;align-items:center;gap:7px;padding:13px 0;font-size:16px;display:flex}.management-tabs .selected{color:var(--forest);border-bottom-color:var(--forest);font-weight:600}.managed-row{border-bottom:1px solid var(--rule);align-items:center;gap:20px;padding:24px 0;display:flex}.managed-info{flex:1}.managed-info p{font-size:15px}.manage-actions{align-items:center;gap:10px;display:flex}.management-hint{color:var(--stone);margin-top:28px;font-size:13px;line-height:1.6}.empty-management{text-align:center;color:var(--stone);padding:85px 20px}.empty-management svg{margin-bottom:20px}.empty-management h2{color:var(--ink);font-size:25px}.empty-management p{margin-top:12px;font-size:15px}.progress-filters{justify-content:space-between;align-items:center;gap:20px;margin-top:38px;display:flex}.progress-filters .segmented{min-width:340px}.progress-filters select{width:auto;min-width:220px;max-width:350px;margin:0}.progress-numbers{border-bottom:1px solid var(--rule);gap:65px;padding:36px 0 22px;display:flex}.progress-numbers>div{flex-direction:column;gap:6px;display:flex}.progress-numbers strong{letter-spacing:-1.7px;color:var(--forest);font-size:48px;font-weight:600}.progress-numbers strong small{letter-spacing:-.5px;color:var(--stone);font-size:24px;font-weight:400}.progress-numbers span{color:var(--stone);font-size:14px}.progress-explanation{color:var(--stone);max-width:850px;margin:14px 0 30px;font-size:13px;line-height:1.6}.progress-history{max-width:850px}.progress-history h2,.habit-breakdown h2{margin-bottom:20px;font-size:24px}.progress-history .heatmap{gap:8px}.progress-history .heat-cell{aspect-ratio:3;min-height:20px}.progress-history .heatmap-legend,.progress-history .heatmap-caption{font-size:12px}.habit-breakdown{max-width:850px;margin-top:40px}.breakdown-row{border-top:1px solid var(--rule);align-items:center;gap:15px;padding:18px 0;font-size:16px;display:flex}.breakdown-row>span:first-of-type{overflow-wrap:anywhere;width:240px}.breakdown-row>span:last-child{white-space:nowrap;text-align:right;width:75px;color:var(--stone);font-size:14px}.progress-track{background:#e2e5dc;border-radius:5px;flex:1;height:7px;overflow:hidden}.progress-track i{background:var(--forest);border-radius:5px;height:100%;display:block}@media (width<=760px){.empty-state{padding-top:27px;padding-right:0}.empty-state h3{font-size:22px}.empty-state>p{font-size:15px}.empty-mark{width:57px;height:57px}.template-list button{gap:8px;padding:12px 10px;font-size:14px}.dialog{border-radius:15px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:22px 20px}.dialog-header h2{font-size:25px}.habit-form{gap:18px}.icon-picker button{width:40px;height:40px}.dialog-actions .button{font-size:14px}.settings-section h3{font-size:18px}.habits-view,.progress-view{min-height:600px}.management-tabs{margin-top:15px}.managed-row{flex-wrap:wrap;gap:12px}.managed-info .habit-title{font-size:18px}.managed-info p{font-size:13px}.manage-actions{justify-content:flex-end;gap:10px;width:100%}.managed-row .habit-symbol{width:48px;height:48px}.progress-filters{flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}.progress-filters .segmented{min-width:0}.progress-filters select{width:100%;max-width:none;font-size:14px}.progress-numbers{justify-content:space-between;gap:15px;padding:25px 0 20px}.progress-numbers strong{font-size:37px}.progress-numbers strong small{font-size:19px}.progress-numbers span{max-width:110px;font-size:11px;line-height:1.5}.progress-history .heatmap{gap:5px}.progress-history .heat-cell{aspect-ratio:1.5;min-height:10px}.progress-history h2,.habit-breakdown h2{font-size:22px}.breakdown-row{flex-wrap:wrap;gap:10px;font-size:14px}.breakdown-row>span:first-of-type{width:calc(100% - 40px)}.breakdown-row .progress-track{margin-left:33px}.breakdown-row>span:last-child{width:60px}.settings-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.settings-actions .button{gap:7px;padding:10px 8px;font-size:13px}.settings-actions .button svg{width:17px}.manual-time label{font-size:13px}.icon-picker{gap:3px}.segmented button{padding:9px 8px}.weekday-picker{gap:5px}.timer-clock{font-size:73px}}@media (width<=380px){.template-list,.settings-actions{grid-template-columns:1fr}.segmented button{font-size:12px}.icon-picker{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.icon-picker button{width:100%}.manual-row input{width:75px}.manual-row .button{padding:10px}}:root{color:#262c28;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f8f7f3;--ink:#262c28;--forest:#35634b;--sage:#dce5da;--stone:#787b73;--rule:#dedfd7;--leaf:#7a9d79;--radius:10px;background:#f8f7f3;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{background:0 0;border:0}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #82a383}input:focus,textarea:focus,select:focus{outline-offset:2px;outline:2px solid #82a383}button:not(:disabled){transition:background .15s,color .15s,opacity .15s}h1,h2,h3,p{margin:0}svg{flex-shrink:0}h1{letter-spacing:-1.9px;font-size:clamp(32px,3.45vw,51px);font-weight:700;line-height:1.15}h2{letter-spacing:-.8px;font-size:32px;font-weight:650;line-height:1.2}h3{letter-spacing:-.25px;font-size:21px;font-weight:650;line-height:1.35}.muted{color:var(--stone)}.app-shell{flex-direction:column;max-width:1560px;min-height:100dvh;margin:auto;padding:0 38px;display:flex}.app-header{border-bottom:1px solid var(--rule);flex-shrink:0;justify-content:space-between;align-items:center;height:68px;display:flex;position:relative}.brand{letter-spacing:-.6px;align-items:center;gap:14px;padding:0 25px;font-size:28px;font-weight:700;display:flex}.brand-mark{border:3px solid var(--forest);border-top-color:#0000;border-radius:50%;width:29px;height:29px;position:relative;transform:rotate(-25deg)}.brand-mark:after{content:"";background:var(--forest);border-radius:100%;width:6px;height:6px;position:absolute;top:-2px;right:0}.app-header nav{gap:30px;height:100%;display:flex;position:absolute;left:50%;transform:translate(-50%)}.app-header nav button{white-space:nowrap;border-bottom:3px solid #0000;height:100%;padding:0 18px;font-size:20px}.app-header nav button:hover{color:var(--forest)}.app-header nav .active{color:var(--forest);border-bottom-color:var(--forest);font-weight:650}.icon-button{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.icon-button:hover:not(:disabled){background:#e9ece3}.settings-button{margin-right:20px}.app-shell main{flex:1;padding:44px 26px 0}.view-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:31px;display:flex}.view-heading p,.date-line p{color:var(--stone);margin-top:7px;font-size:21px;line-height:1.5}.date-line{align-items:baseline;gap:17px;display:flex}.date-line p:first-letter{text-transform:uppercase}.date-line button{color:var(--forest);text-underline-offset:3px;font-size:14px;text-decoration:underline}.button{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 18px;font-size:16px;font-weight:500;line-height:1.35;display:inline-flex}.button.primary{background:var(--forest);color:#fff;border:1px solid var(--forest)}.button.primary:hover:not(:disabled){background:#2a503b}.button.secondary{background:0 0;border:1px solid #a6aaa1}.button.secondary:hover:not(:disabled){background:#eeefe9}.button.small{min-height:38px;padding:7px 13px;font-size:15px}.new-habit{min-height:52px;margin-top:0;padding:11px 20px;font-size:20px}.text-button{color:var(--forest);text-underline-offset:4px;align-items:center;gap:8px;padding:6px 0;font-size:16px;text-decoration:underline;display:inline-flex}.week-navigation{border-bottom:1px solid var(--rule);margin-bottom:31px;position:relative}.week-strip{grid-template-columns:repeat(7,1fr);gap:10px;padding:0 4px 12px;display:grid}.week-day{border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:67px;font-size:20px;display:flex;position:relative}.week-day:after{content:"";background:var(--rule);width:1px;position:absolute;top:6px;bottom:6px;right:-6px}.week-day:last-child:after{display:none}.week-day.selected{background:var(--sage);font-weight:650}.week-day:hover{background:#e9ede3}.week-day.upcoming{color:#777d72}.week-dots{gap:6px;height:8px;display:flex}.week-dots i{background:#cbd3c2;border-radius:50%;width:8px;height:8px}.week-dots .filled{background:#7a9d79}.week-arrow{opacity:0;z-index:1;width:25px;height:34px;position:absolute;top:12px}.week-navigation:hover .week-arrow,.week-arrow:focus-visible{opacity:1}.previous-week{left:-25px}.next-week{right:-25px}.today-grid{grid-template-columns:minmax(0,1fr) 380px;gap:28px;min-height:535px;display:grid}.daily-habits{min-width:0}.section-heading{margin-bottom:19px}.section-heading p{color:#50564e;margin-top:4px;font-size:20px}.habit-row{border-bottom:1px solid var(--rule);grid-template-columns:70px minmax(180px,1fr) 175px 175px 24px;align-items:center;gap:16px;min-height:113px;display:grid;position:relative}.habit-row:last-child{border-bottom:0}.habit-symbol{width:68px;height:68px;color:var(--ink);background:#e0e7db;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.habit-symbol:hover{background:#d4dfcf}.habit-info{min-width:0}.habit-title{letter-spacing:-.3px;text-align:left;overflow-wrap:anywhere;padding:0;font-size:22px;font-weight:650;line-height:1.3}.habit-title:hover{color:var(--forest)}.habit-info p,.managed-info p{color:var(--stone);margin-top:5px;font-size:16px;line-height:1.45}.mini-history{align-items:center;gap:7px;display:flex}.day-square{background:#d9dfd0;border-radius:3px;width:19px;height:19px}.day-square.complete{background:#3b6c4d}.day-square.partial{background:#a8bf9c}.day-square.off{background:#e1e1da}.habit-control{justify-content:flex-end;align-items:center;display:flex}.check-circle{background:var(--forest);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:33px;height:33px;display:inline-flex}.check-circle.unchecked{color:#0000;background:0 0;border:1.5px solid #b0b7aa}.boolean-control,.duration-control,.rest-control{white-space:nowrap;align-items:center;gap:12px;min-height:46px;padding:4px 0;font-size:18px;display:flex}.boolean-control:hover .unchecked{color:var(--forest);background:#e8ede1}.rest-control{color:var(--stone);font-size:15px}.duration-control.button{min-width:156px;font-size:17px}.counter{border:1px solid #a6aaa1;border-radius:10px;align-items:center;min-width:174px;height:44px;display:flex;overflow:hidden}.counter button{justify-content:center;align-items:center;width:40px;height:100%;display:flex}.counter button:hover:not(:disabled){background:#e4eadd}.counter span{text-align:center;border-left:1px solid var(--rule);border-right:1px solid var(--rule);font-variant-numeric:tabular-nums;white-space:nowrap;flex:1;padding:4px;font-size:18px}.counter small{font-size:inherit;color:inherit}.counter-done{color:var(--forest);background:#e8eee2;border-color:#7a9d79}.more-button{opacity:.35;width:26px}.habit-row:hover .more-button,.more-button:focus-visible{opacity:1}.row-menu{position:relative}.popover{border:1px solid var(--rule);background:var(--paper);z-index:4;border-radius:10px;width:225px;padding:6px;position:absolute;top:36px;right:0;box-shadow:0 5px 18px #262c2810}.popover button{text-align:left;border-radius:6px;align-items:center;gap:9px;width:100%;padding:10px 9px;font-size:14px;display:flex}.popover button:hover{background:#e9ede3}.week-progress{color:var(--forest);margin-top:3px;font-size:12px;display:block}.weekly-section{margin-top:26px}.weekly-section>h3{font-size:20px}.weekly-section>p{color:var(--stone);margin:5px 0 8px;font-size:14px}.is-rest .habit-info,.is-rest .mini-history{opacity:.58}.rhythm-summary{border-left:1px solid var(--rule);margin-bottom:12px;padding-left:40px}.rhythm-summary h2{margin-bottom:5px}.rhythm-number{letter-spacing:-3px;color:var(--forest);font-variant-numeric:tabular-nums;font-size:76px;font-weight:650;line-height:1.06;display:block}.rhythm-label{margin:0 0 16px;font-size:19px;line-height:1.45}.rhythm-encouragement{color:var(--stone);max-width:310px;font-size:19px;line-height:1.4}.summary-heatmap{margin-top:27px}.summary-heatmap h3{margin-bottom:11px}.heatmap{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-template-columns:repeat(var(--weeks),1fr);gap:6px;display:grid}.heat-cell{aspect-ratio:1.5;border-radius:4px;width:100%;min-height:15px;padding:0;display:block}.level-0{background:#e3e3db}.level-1{background:#d0dfc5}.level-2{background:#a1bf94}.level-3{background:#35634b}.heat-cell:hover:not(:disabled){outline-offset:1px;outline:2px solid #738a67}.heat-cell.future{opacity:.32}.heatmap-legend{color:var(--stone);justify-content:flex-end;align-items:center;gap:5px;margin-top:12px;font-size:11px;display:flex}.heatmap-legend i{border-radius:2px;width:13px;height:13px;display:block}.heatmap-legend span:first-child{margin-right:3px}.heatmap-caption{color:var(--stone);margin-top:7px;font-size:11px;line-height:1.5}.progress-link{color:var(--forest);text-underline-offset:4px;align-items:center;gap:12px;margin-top:22px;padding:0;font-size:17px;text-decoration:underline;display:flex}.daily-note{border-top:1px solid var(--rule);align-items:center;gap:25px;margin-top:12px;padding:19px 0 23px;display:flex}.daily-note>label{white-space:nowrap;letter-spacing:-.4px;font-size:24px;font-weight:650}.note-field{color:var(--stone);border:1px solid #b5b8af;border-radius:10px;flex:1;align-items:center;gap:14px;min-height:49px;padding:10px 17px;display:flex}.note-field textarea{resize:vertical;background:0 0;border:0;outline:none;width:100%;min-height:25px;max-height:180px;font-size:16px;line-height:1.5}.note-field:focus-within{outline-offset:2px;outline:2px solid #82a383}.note-field textarea:focus{outline:none}.app-footer{border-top:1px solid var(--rule);color:var(--stone);justify-content:space-between;align-items:center;gap:15px;padding:17px 14px 19px;font-size:15px;display:flex}.app-footer>span:last-child{align-items:center;gap:9px;display:flex}.app-footer .unsaved{color:#8d4f32}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:20;text-align:center;border-radius:10px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:0;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px)}.toast.visible{opacity:1;padding:13px 20px;transition:opacity .2s,transform .2s;transform:translate(-50%)}.storage-warning{background:#f3eddf;border:1px solid #c5ad78;border-radius:8px;align-items:center;gap:12px;margin-bottom:24px;padding:14px;font-size:14px;line-height:1.45;display:flex}.storage-warning button{color:#7b5b23;flex-shrink:0;margin-left:auto;text-decoration:underline}.future-note{color:var(--stone);margin-bottom:12px;font-size:14px;line-height:1.5}@media (width>=1241px){.app-shell main{padding-top:38px}.view-heading{margin-bottom:24px}.view-heading h1{letter-spacing:-1.8px;font-size:54px}.app-header nav button{font-size:22px}.view-heading .new-habit{align-self:flex-start;margin-top:16px}.week-navigation{margin-bottom:29px}.section-heading h2,.rhythm-summary h2{font-size:36px}.habit-info p{font-size:18px}.rhythm-label,.rhythm-encouragement{font-size:20px}.rhythm-number{font-size:74px;line-height:1}.summary-heatmap{max-width:314px;margin-top:24px}.rhythm-summary{padding-left:40px}.rhythm-summary .heatmap-caption{font-size:11px}.habit-row{gap:15px}.more-button{opacity:0}.habit-info{min-width:0}.habit-title{font-size:23px}}@media (width>=1450px){.today-grid{grid-template-columns:minmax(0,1fr) 444px}.rhythm-summary{padding-left:48px}.habit-row{grid-template-columns:70px minmax(200px,304px) 200px minmax(175px,1fr);gap:16px}.habit-info{padding-left:20px}.habit-row .row-menu{position:absolute;top:calc(50% - 20px);right:-25px}.rhythm-label{margin-bottom:10px}.summary-heatmap{margin-top:18px}.summary-heatmap .heatmap-caption{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=1240px){.app-shell{padding:0 28px}.app-shell main{padding:35px 15px 0}.today-grid{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.rhythm-summary{padding-left:26px}.habit-row{grid-template-columns:60px minmax(155px,1fr) 145px 24px;gap:13px}.habit-symbol{border-radius:13px;width:58px;height:58px}.habit-symbol svg{width:30px;height:30px}.habit-title{font-size:20px}.habit-info p{font-size:14px}.mini-history{grid-area:auto/2;align-self:end;gap:5px;margin-top:-26px;padding-bottom:13px}.day-square{border-radius:2px;width:10px;height:10px}.habit-control{grid-area:1/3}.row-menu{grid-area:1/4}.habit-info{padding-bottom:21px}.counter{min-width:144px}.duration-control.button{min-width:140px}.duration-control,.boolean-control{gap:8px;font-size:16px}.check-circle{width:28px;height:28px}.habit-row{min-height:112px}.new-habit{font-size:17px}.view-heading{gap:15px}.rhythm-label,.rhythm-encouragement{font-size:17px}.app-header nav{gap:12px}.app-header nav button{font-size:18px}}@media (width<=960px){.today-grid{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.app-shell{padding:0 24px}.app-shell main{padding:32px 8px 0}.rhythm-summary{padding-left:22px}.habit-row{grid-template-columns:51px minmax(130px,1fr) 130px 22px;gap:10px}.habit-symbol{border-radius:12px;width:49px;height:49px}.habit-title{font-size:18px}.habit-info p{font-size:13px}.counter{min-width:128px}.counter button{width:30px}.counter span{font-size:16px}.duration-control.button{min-width:125px;font-size:15px}.boolean-control,.duration-control{gap:7px;font-size:14px}.check-circle{width:26px;height:26px}.check-circle svg{width:17px}.brand{padding-left:4px;font-size:25px}.settings-button{margin-right:0}h2{font-size:29px}.rhythm-number{font-size:68px}.summary-heatmap h3{font-size:18px}.heatmap{gap:4px}.heat-cell{border-radius:3px}.rhythm-label,.rhythm-encouragement{font-size:16px}.view-heading h1{max-width:600px}.new-habit{padding:10px 13px;font-size:15px}.week-day{font-size:18px}.progress-link{font-size:15px}}@media (width<=760px){.app-shell{padding:0 20px}.app-header{align-items:flex-start;height:112px;padding-top:16px}.brand{gap:11px;height:32px;font-size:25px}.brand-mark{width:25px;height:25px}.settings-button{height:32px}.app-header nav{gap:24px;height:49px;top:auto;bottom:0;left:0;transform:none}.app-header nav button{border-bottom-width:2px;padding:0 2px;font-size:16px}.app-shell main{padding:29px 0 0}.view-heading{flex-wrap:wrap;align-items:flex-start;gap:19px;margin-bottom:24px}.view-heading h1{letter-spacing:-1.2px;max-width:500px;font-size:34px}.view-heading p,.date-line p{margin-top:9px;font-size:17px}.new-habit{min-height:44px;padding:9px 14px;font-size:15px}.week-strip{gap:3px;padding:0 0 12px}.week-day{border-radius:9px;gap:8px;height:61px;font-size:15px}.week-day:after{top:10px;bottom:10px;right:-2px}.week-dots{gap:3px;height:5px}.week-dots i{width:5px;height:5px}.week-navigation{margin-bottom:25px}.week-arrow{opacity:1;width:21px;height:24px;top:-28px}.previous-week{left:auto;right:27px}.next-week{right:0}.today-grid{min-height:0;display:block}.section-heading{margin-bottom:7px}h2{font-size:28px}.section-heading p{margin-top:5px;font-size:16px}.habit-row{grid-template-columns:54px minmax(120px,1fr) 135px 22px;gap:12px;min-height:113px}.habit-symbol{width:52px;height:52px}.habit-title{font-size:19px}.habit-info p{font-size:13px}.mini-history{padding-bottom:12px}.counter{min-width:135px;height:42px}.counter button{width:32px}.duration-control.button{min-width:130px;font-size:15px}.rhythm-summary{border-left:0;border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;column-gap:35px;margin-top:35px;padding:26px 0 0;display:grid}.rhythm-summary h2{grid-area:1/1}.rhythm-number{grid-area:2/1;margin-top:3px;font-size:65px}.rhythm-label{grid-area:3/1;max-width:190px;margin:0;font-size:15px}.rhythm-encouragement{grid-area:4/1;max-width:190px;margin-top:10px;font-size:15px}.summary-heatmap{grid-area:1/2/6;min-width:0;margin-top:2px}.summary-heatmap h3{margin-bottom:14px;font-size:15px}.heat-cell{aspect-ratio:1;min-height:10px}.heatmap-caption{font-size:10px}.progress-link{grid-area:6/1/auto/3;margin-top:24px;font-size:16px}.daily-note{margin-top:26px;padding-top:23px;display:block}.daily-note>label{margin-bottom:12px;font-size:22px;display:block}.note-field{gap:10px;padding:10px 12px}.note-field textarea{font-size:14px}.app-footer{align-items:flex-start;padding:16px 0;font-size:12px}.app-footer>span:last-child{gap:5px}.app-footer svg{width:15px}.storage-warning{flex-wrap:wrap;align-items:flex-start}.storage-warning>span{flex:1}.date-line button{font-size:13px}}@media (width<=450px){.app-shell{padding:0 16px}.view-heading h1{font-size:32px}.habit-row{grid-template-columns:44px minmax(110px,1fr) 119px 17px;gap:8px}.habit-symbol{border-radius:11px;width:43px;height:43px}.habit-symbol svg{width:27px;height:27px}.habit-title{font-size:17px}.habit-info p{font-size:12px}.counter{min-width:118px;height:39px}.counter button{width:28px}.counter span{padding:4px 2px;font-size:15px}.duration-control.button{gap:6px;min-width:116px;padding:7px 8px;font-size:14px}.duration-control,.boolean-control{gap:6px;font-size:13px}.check-circle{width:24px;height:24px}.more-button{width:22px}.habit-info{padding-bottom:20px}.day-square{width:9px;height:9px}.rhythm-summary{column-gap:24px}.rhythm-summary h2{font-size:26px}.rhythm-label,.rhythm-encouragement{font-size:14px}.rhythm-summary .heatmap-legend{gap:3px;font-size:9px}.heatmap-legend i{width:10px;height:10px}.summary-heatmap h3{font-size:14px}.rest-control{gap:4px;font-size:12px}.app-footer{font-size:11px}.weekly-section>p{font-size:12px}.week-progress{font-size:11px}.week-day{font-size:14px}.view-heading .button{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=350px){.habit-row{grid-template-columns:38px minmax(0,1fr) 110px 16px;gap:6px}.habit-symbol{width:38px;height:38px}.habit-title{font-size:15px}.habit-info p{font-size:11px}.counter{min-width:109px}.duration-control.button{min-width:109px;font-size:12px}.duration-control,.boolean-control{font-size:12px}.mini-history{gap:4px}.day-square{width:8px;height:8px}.rhythm-summary{column-gap:15px}.rhythm-summary h2{font-size:23px}.app-footer{font-size:10px}.rhythm-label{font-size:12px}}
