:root{color-scheme:light;--paper:#f7f6f0;--ink:#25392f;--muted:#73796f;--line:#e3e4da;--white:#fffefa;--accent:#b8d48f;--blue:#e2edf2;--green:#e4ecde;--peach:#f6e8d8;--purple:#eae5f2;--yellow:#f5eecf;--pink:#f4e3e7;--radius:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
.brand .brand-mark{padding:0;overflow:hidden;flex-shrink:0;background:#284737}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}html[data-theme=dark] .brand .brand-mark{background:#284737}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button{touch-action:manipulation}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #6d9560;outline-offset:4px}button,input,select{min-height:44px}button{border:0;background:none}h1,h2,h3,p{margin:0}h1{font-size:40px;line-height:1.09;font-weight:650;letter-spacing:-1.6px}h2{font-size:25px;line-height:1.2;letter-spacing:-.6px}h3{font-size:18px;font-weight:650}p{line-height:1.55}small{font-size:12px}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}svg:not(.progress-ring){width:24px;height:24px}[hidden]{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--muted);margin-bottom:13px}.brand{display:inline-flex;gap:11px;align-items:center;font-size:19px;font-weight:650;letter-spacing:-.6px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--ink);color:#d8e8bc;font-size:31px;font-weight:400;line-height:1}.app{max-width:1040px;margin:auto;padding:0 40px calc(110px + env(safe-area-inset-bottom))}.app-header{padding-top:calc(27px + env(safe-area-inset-top));padding-bottom:32px;display:flex;align-items:center;justify-content:space-between}.profile-button{height:44px;width:44px;border:1px solid #d9ddce;background:#e9ecdf;border-radius:50%;font-size:15px;font-weight:650}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:25px}.page-heading .muted{margin-top:10px;font-size:14px}.date-selector{width:44px;height:44px;position:relative;display:grid;place-items:center;border:1px solid var(--line);border-radius:15px;background:var(--white);flex-shrink:0}.date-selector input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.date-selector:focus-within{outline:3px solid #6d9560;outline-offset:4px}.week-strip{display:grid;grid-template-columns:44px repeat(7,1fr) 44px;gap:8px;margin-bottom:28px}.week-day{border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:13px 2px 11px;border:1px solid transparent;position:relative}.week-day .weekday{font-size:12px;color:var(--muted)}.week-day .day-number{font-size:18px;font-weight:600}.week-day.active{background:var(--ink);color:#fff}.week-day.active .weekday{color:#d4dfcd}.week-day.today:not(.active){background:#e9eddc}.week-day .day-dot{width:4px;height:4px;border-radius:50%;background:transparent}.week-day .day-dot.has-entry{background:#a4bb87}.week-day.active .day-dot{background:#d3e6b6}.week-arrow{align-self:center;width:44px;height:44px;display:grid;place-items:center;font-size:26px;color:var(--muted);border-radius:12px}.week-arrow:hover:not(:disabled){background:#edeedc}.daily-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:29px;padding:25px 28px;background:#e9eddf;border-radius:var(--radius)}.summary-copy h2{font-size:23px;margin-bottom:7px}.summary-copy p{font-size:14px;color:#697460;max-width:300px}.summary-copy .eyebrow{font-size:10px;color:#6e7b60;margin-bottom:8px}.ring-wrap{width:88px;height:88px;position:relative;flex-shrink:0}.progress-ring{width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:6;stroke-linecap:round}.ring-track{stroke:#d5ddc8}.ring-fill{stroke:#527248;transition:stroke-dashoffset .35s}.ring-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:650;letter-spacing:-1px}.ring-value span{font-size:12px;font-weight:500;letter-spacing:0;margin-left:1px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.section-heading h2{font-size:20px}.section-count{font-size:13px;color:var(--muted);font-weight:400;margin-left:9px}.add-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 3px;font-size:13px;font-weight:600}.add-button span{font-size:23px;line-height:1}.habit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.habit-card{position:relative;background:var(--white);border:1px solid #e9e9e0;border-radius:var(--radius);padding:21px;overflow:hidden;transition:background .2s,border-color .2s}.habit-card.complete{border-color:#cedbbc;background:#f2f5eb}.habit-top{display:flex;gap:12px;align-items:center}.habit-icon{width:51px;height:51px;display:grid;place-items:center;border-radius:17px;background:var(--habit-color);font-size:25px;flex-shrink:0}.habit-title{font-size:18px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}.habit-reminder{font-size:11px;color:#858b80;margin-top:4px;display:flex;gap:5px;align-items:center}.habit-reminder svg{width:12px;height:12px}.habit-edit{height:44px;width:40px;flex-shrink:0;margin-left:auto;margin-right:-9px;align-self:flex-start;font-size:22px;color:#8a9184;border-radius:12px}.habit-edit:hover{background:#eceee5}.habit-bottom{margin-top:21px;display:flex;justify-content:space-between;align-items:center;gap:12px}.habit-value{font-size:25px;font-weight:600;letter-spacing:-.7px;line-height:1.2}.habit-value span{font-size:13px;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:5px}.habit-caption{font-size:11px;color:var(--muted);margin-top:4px}.habit-progress{height:4px;background:#e9ece2;border-radius:9px;margin-top:15px;overflow:hidden}.habit-progress>div{height:100%;background:#a3b48e;border-radius:9px;transition:width .2s}.habit-controls{display:flex;gap:7px}.step-button{width:44px;height:44px;border-radius:15px;background:#f0f1e9;font-size:23px;display:grid;place-items:center}.step-button.plus{background:var(--ink);color:#fff}.check-button{width:47px;height:47px;border-radius:50%;border:1.5px solid #d8dfce;display:grid;place-items:center;color:#c0c9b5}.check-button.checked{background:var(--ink);border-color:var(--ink);color:#e9f4d7}.check-button svg{width:22px;height:22px}.daily-note{display:flex;align-items:center;justify-content:center;gap:10px;color:#8b9184;font-size:12px;margin-top:28px}.daily-note span{font-size:18px;color:#92a17e}.empty-state{padding:36px 22px;text-align:center;border:1px dashed #cdd5c2;border-radius:24px;background:#f2f4eb}.empty-state .empty-icon{display:block;font-size:32px;margin-bottom:12px}.empty-state p{font-size:14px;color:var(--muted);margin:9px 0 18px}.primary-button,.secondary-button{padding:12px 20px;min-height:48px;border-radius:15px;font-size:14px;font-weight:600}.primary-button{background:var(--ink);color:#fff}.primary-button:hover{background:#35503e}.secondary-button{background:#eeefe6;border:1px solid var(--line)}.text-button{font-size:13px;padding:10px 2px;text-decoration:underline;text-underline-offset:3px}.danger{color:#a75045}.bottom-nav{position:fixed;z-index:10;bottom:20px;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:380px;max-width:calc(100% - 32px);height:73px;background:#fffef8ed;border:1px solid #e7e8df;box-shadow:0 8px 30px #28382a0c;border-radius:25px;display:grid;grid-template-columns:repeat(3,1fr);padding:7px;backdrop-filter:blur(16px)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:19px;color:#8d9289;font-size:10px;min-height:58px}.nav-item svg{width:22px;height:22px}.nav-item.active{background:#edf1e4;color:var(--ink);font-weight:650}.sync-status{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7edce;border:1px solid #ecdfae;border-radius:14px;padding:9px 13px;font-size:12px;color:#7e692f;margin-bottom:22px}.sync-status button{text-decoration:underline;font-size:12px;flex-shrink:0}.stat-period{display:flex;gap:3px;background:#e9ecdf;padding:4px;border-radius:13px}.stat-period button{padding:7px 12px;min-height:36px;font-size:12px;border-radius:10px}.stat-period button.active{background:var(--white);box-shadow:0 1px 3px #25392f0c}.stat-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:30px}.stat-number{padding:25px;background:#e8eddf;border-radius:23px}.stat-number:nth-child(2){background:#eee8dd}.stat-number strong{display:block;font-size:38px;letter-spacing:-1.3px;font-weight:600}.stat-number p{font-size:12px;color:var(--muted);margin-top:6px}.stats-panel{padding:24px 25px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px}.stats-panel h3{margin-bottom:6px}.stats-panel>.muted{font-size:12px}.bar-chart{height:150px;display:flex;align-items:flex-end;gap:8px;margin-top:24px;padding-top:14px}.chart-column{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.chart-bar{width:100%;max-width:54px;min-height:4px;background:#d9e4c5;border-radius:7px 7px 3px 3px;position:relative}.chart-bar.today{background:#59774d}.chart-column .chart-label{font-size:10px;line-height:1;color:#8c9486;flex-shrink:0}.chart-month .bar-chart{gap:3px}.chart-month .chart-bar{border-radius:3px}.chart-month .chart-label{font-size:8px}.stat-habit{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid #eceee5}.stat-habit:last-child{border-bottom:0;padding-bottom:0}.stat-habit .habit-icon{width:42px;height:42px;font-size:22px;border-radius:13px}.stat-habit-copy{flex:1;min-width:0}.stat-habit-copy strong{display:block;font-size:14px;overflow-wrap:anywhere}.stat-habit-copy p{font-size:11px;color:var(--muted);margin-top:5px}.stat-habit-score{text-align:right;font-size:21px;font-weight:600}.stat-habit-score small{font-size:10px;font-weight:400;color:var(--muted);display:block;margin-top:4px}.stats-footnote{font-size:11px;color:var(--muted);padding:0 6px;line-height:1.6}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.settings-panel{padding:25px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}.settings-panel h3{margin-bottom:8px}.settings-panel>.muted{font-size:13px;margin-bottom:20px}.settings-panel label{margin-top:17px}.settings-panel form .primary-button{margin-top:20px}.settings-panel .primary-button,.settings-panel .secondary-button{width:100%;margin-top:10px}.settings-stack{display:grid;gap:18px}.notification-icon{width:48px;height:48px;border-radius:16px;background:#ede8d9;display:grid;place-items:center;margin-bottom:16px}.notification-state{display:flex;align-items:center;gap:7px;color:#737e65;font-size:12px;margin:10px 0 15px}.notification-state:before{content:"";width:6px;height:6px;background:#a4af8c;border-radius:50%}.install-steps{padding:0;list-style:none;counter-reset:steps;margin:16px 0 0}.install-steps li{counter-increment:steps;display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.5;margin:12px 0}.install-steps li:before{content:counter(steps);display:grid;place-items:center;border-radius:50%;background:#edf0e5;color:#72815e;width:24px;height:24px;flex-shrink:0;font-size:11px}.install-done{font-size:13px;color:#607b4a;margin-top:12px}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;font-size:11px;color:#92978d}.archive-list{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.archive-list p{font-size:12px;color:var(--muted);margin-bottom:8px}.archive-item{font-size:12px;padding:6px 0;display:flex;gap:8px}.file-input{width:1px;height:1px;overflow:hidden;position:absolute;clip:rect(0,0,0,0)}
.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:32px 24px;background:var(--paper)}.auth-card{width:100%;max-width:430px}.auth-card .brand{margin-bottom:70px}.auth-card h1{font-size:41px;margin-bottom:19px}.auth-card .auth-description{font-size:14px;margin-bottom:30px;max-width:350px}.auth-card form{display:grid;gap:18px}.auth-card form .primary-button{margin-top:6px}.auth-footnote{font-size:11px;color:#969c8e;margin-top:24px;line-height:1.65}.auth-card .eyebrow{color:#899874}label{display:block;font-size:12px;font-weight:600;color:#5a6653}input:not([type=radio]):not([type=checkbox]),select{width:100%;margin-top:8px;padding:13px 14px;background:#fafbf5;color:var(--ink);border:1px solid #dfe4d6;border-radius:13px;font-size:15px;min-width:0}input::placeholder{color:#a0a794;font-weight:400}fieldset{padding:0;margin:0;border:0;min-width:0}legend{font-size:12px;font-weight:600;color:#5a6653;margin-bottom:10px;padding:0}.modal{position:fixed;width:calc(100% - 32px);max-width:490px;max-height:calc(100dvh - 38px);border:1px solid var(--line);border-radius:28px;padding:26px;background:var(--white);color:var(--ink);box-shadow:0 25px 100px #1c2d2840;overflow:auto;overscroll-behavior:contain}.modal::backdrop{background:#1d302a66;backdrop-filter:blur(4px)}.modal form{display:grid;gap:20px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-heading .eyebrow{margin-bottom:7px;font-size:9px}.icon-button{width:44px;height:44px;border-radius:50%;font-size:28px;background:#f1f3e9;color:#839078;flex-shrink:0}.form-row{display:flex;gap:12px}.form-row>label{flex:1;min-width:0}.form-row>.emoji-field{flex:0 0 85px}.emoji-field input{text-align:center;font-size:22px!important;padding:8px!important}.amount-fields{gap:9px}.amount-fields label:nth-child(2){flex:1.25}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#edf0e5;border-radius:14px}.segmented label{cursor:pointer;position:relative}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented span{display:grid;place-items:center;min-height:44px;text-align:center;padding:8px;font-size:11px;border-radius:10px;color:#7a8471}.segmented input:checked+span{color:var(--ink);background:var(--white);box-shadow:0 1px 4px #2633240a}.segmented input:focus-visible+span{outline:3px solid #6d9560}.day-checkboxes{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day-checkboxes label{position:relative;cursor:pointer}.day-checkboxes input{position:absolute;opacity:0;width:1px;height:1px}.day-checkboxes span{min-height:44px;display:grid;place-items:center;border:1px solid #e2e7da;border-radius:12px;font-size:12px;background:#f7f8f2;color:#99a08f}.day-checkboxes input:checked+span{background:#e6eddb;border-color:#c4d4b0;color:#49673a}.day-checkboxes input:focus-visible+span{outline:3px solid #6d9560}.label-note{font-size:10px;color:#9aA28e;font-weight:400;margin-left:5px}.form-help{font-size:11px;color:var(--muted);margin-top:-12px}.form-error{font-size:12px;color:#a4473b;line-height:1.5}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:7px}.modal-actions .text-button{margin-right:auto}.modal-actions .secondary-button,.modal-actions .primary-button{padding-left:17px;padding-right:17px}.confirm-modal h2{margin-bottom:14px}.confirm-modal>.muted{font-size:14px;margin-bottom:22px}.toast{position:fixed;bottom:calc(108px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);width:max-content;background:#293d32;color:#fff;padding:13px 20px;border-radius:16px;font-size:13px;box-shadow:0 5px 24px #25392f20;z-index:100;line-height:1.5;text-align:center}.save-status{font-size:12px;color:#67864c;margin-top:12px}.push-help{font-size:11px!important;color:#929b87;margin:12px 0 0!important}.history-tag{display:inline-block;font-size:10px;background:#e8ebdf;border-radius:6px;padding:4px 7px;margin-bottom:8px;color:#758467}
@media(min-width:760px){.app-header{padding-bottom:45px}.page-heading{margin-bottom:28px}.week-strip{max-width:100%;margin-bottom:24px}.week-day{padding-top:12px;padding-bottom:9px}.today-layout{display:grid;grid-template-columns:255px 1fr;gap:28px;align-items:start}.daily-summary{flex-direction:column;align-items:flex-start;min-height:267px;padding:27px;margin:0}.summary-copy p{max-width:180px}.ring-wrap{width:100px;height:100px;align-self:flex-end}.today-habits .section-heading{margin-top:0;min-height:44px;margin-bottom:10px}.habit-grid{grid-template-columns:1fr}.habit-card{padding:20px 22px;display:grid;grid-template-columns:1fr 190px;column-gap:18px;align-items:center}.habit-top{min-width:0}.habit-title{font-size:17px}.habit-bottom{margin-top:0;min-width:0}.habit-progress{grid-column:1/-1;margin-top:17px}.habit-caption{font-size:10px}.habit-value{font-size:23px}.habit-edit{position:absolute;right:13px;top:4px;opacity:.6;margin:0;height:30px;min-height:30px;width:28px;font-size:18px}.habit-top{padding-right:10px}.stats-layout{display:grid;grid-template-columns:1.12fr 1fr;gap:18px;align-items:start}.stats-layout .stats-panel{margin-bottom:0}.stat-summary{max-width:480px}.page-heading h1{font-size:42px}.daily-note{margin-top:30px}.settings-grid{gap:24px}}
@media(max-width:759px){.app{padding-left:22px;padding-right:22px}.app-header{padding-top:calc(21px + env(safe-area-inset-top));padding-bottom:31px}.brand{font-size:17px}.brand-mark{width:33px;height:33px;font-size:29px;border-radius:11px}.profile-button{width:39px;height:39px;min-height:39px;font-size:13px}.page-heading{margin-bottom:21px}h1{font-size:35px;letter-spacing:-1.1px}.page-heading .muted{font-size:12px;margin-top:9px}.page-heading .eyebrow{margin-bottom:9px;font-size:9px;letter-spacing:1.5px}.week-strip{gap:3px;grid-template-columns:23px repeat(7,1fr) 23px;margin-left:-11px;margin-right:-11px;margin-bottom:23px}.week-arrow{width:23px;font-size:22px}.week-day{padding:11px 0 9px;gap:7px;border-radius:15px}.week-day .weekday{font-size:10px}.week-day .day-number{font-size:16px}.daily-summary{padding:21px 23px;margin-bottom:25px;gap:14px}.summary-copy h2{font-size:20px;letter-spacing:-.5px}.summary-copy p{font-size:12px;max-width:205px}.summary-copy .eyebrow{font-size:9px;margin-bottom:7px;letter-spacing:1.3px}.ring-wrap{height:76px;width:76px}.ring-value{font-size:22px}.ring-value span{font-size:10px}.section-heading{margin-bottom:13px}.section-heading h2{font-size:19px}.section-count{font-size:12px;margin-left:7px}.add-button{font-size:12px}.habit-grid{grid-template-columns:1fr;gap:11px}.habit-card{padding:18px 19px;display:grid;grid-template-columns:1fr auto;column-gap:12px}.habit-top{min-width:0;gap:11px}.habit-icon{width:47px;height:47px;font-size:24px;border-radius:15px}.habit-title{font-size:16px}.habit-reminder{font-size:10px;margin-top:5px}.habit-edit{position:absolute;right:10px;top:3px;height:30px;min-height:30px;width:30px;margin:0;font-size:18px;opacity:.7}.habit-bottom{margin-top:0;gap:10px;align-items:center}.habit-value{font-size:20px}.habit-value span{font-size:10px;margin-left:3px}.habit-caption{font-size:10px;margin-top:2px}.habit-progress{grid-column:1/-1;margin-top:15px;height:3px}.habit-controls{gap:5px}.step-button{width:36px;min-height:44px;height:44px;border-radius:13px;font-size:21px}.habit-bottom.amount-bottom{flex-direction:column;align-items:flex-end;gap:7px}.habit-bottom.amount-bottom .habit-metric{text-align:right}.habit-top{padding-right:1px}.habit-bottom.amount-bottom .habit-caption{display:none}.habit-card:has(.amount-bottom){padding-top:20px;padding-bottom:16px}.habit-card:has(.amount-bottom) .habit-top{align-self:center}.check-button{width:44px;height:44px}.daily-note{font-size:11px;margin-top:23px}.stat-period button{padding:7px 10px}.stat-summary{gap:10px;margin-bottom:23px}.stat-number{padding:20px;border-radius:21px}.stat-number strong{font-size:32px}.stat-number p{font-size:11px}.stats-panel{padding:22px 20px}.bar-chart{gap:7px;height:132px}.chart-month .bar-chart{gap:3px}.chart-month .chart-label{font-size:8px}.settings-grid{grid-template-columns:1fr;gap:16px}.settings-panel{padding:23px}.settings-stack{gap:16px}.settings-footer{padding:0 3px}.modal{padding:24px 21px;border-radius:25px}.modal h2{font-size:23px}.auth-card .brand{margin-bottom:62px}.auth-card h1{font-size:39px}.confirm-modal .modal-actions{flex-wrap:wrap}.settings-view .page-heading{margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keep editing easy to reach without placing a small target over other controls. */
h1,h2,.habit-value,.ring-value,.stat-number strong{letter-spacing:0}
.eyebrow,.page-heading .eyebrow,.summary-copy .eyebrow{letter-spacing:0}
.habit-top{padding-right:0}
.habit-top>div{min-width:0;flex:1}
.habit-edit{position:static;width:44px;height:44px;min-height:44px;margin:0 -5px 0 0;opacity:1;align-self:center;font-size:22px}
.page-heading>div:first-child,.stats-layout,.stats-layout>*,.stats-panel,.bar-chart{min-width:0}
.stats-panel,.bar-chart{max-width:100%}
.conflict-item{padding:19px 0;border-bottom:1px solid var(--line)}
.conflict-item:last-child{border:0}
.conflict-item h3{font-size:15px}
.conflict-item p{font-size:12px;color:var(--muted);margin-top:7px;overflow-wrap:anywhere}
.conflict-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:8px}
.sync-actions{display:flex;gap:12px;flex-shrink:0}
@media(max-width:759px){
  #stats-view .page-heading{flex-wrap:wrap;align-items:flex-start}
  #stats-view .page-heading>div:first-child{flex-basis:100%}
  .sync-status{align-items:flex-start;flex-direction:column}
  .habit-top{grid-column:1/-1}
  .habit-card,.habit-card:has(.amount-bottom){padding:17px 19px}
  .habit-bottom,.habit-bottom.amount-bottom{grid-column:1/-1;margin-top:13px;flex-direction:row;align-items:center;gap:12px}
  .habit-bottom.amount-bottom .habit-metric{text-align:left}
  .habit-bottom.amount-bottom .habit-caption{display:block}
  .habit-value{font-size:23px}
  .habit-value span{font-size:12px}
  .habit-progress{margin-top:13px}
  .step-button{width:44px}
}

/* The content scrolls inside a stable app frame, so iOS overscroll cannot carry the menu with it. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
.auth-screen{height:100%;height:100dvh;overflow-y:auto;overscroll-behavior-y:contain}
.app{position:fixed;inset:0;display:flex;flex-direction:column;width:100%;height:100%;height:100dvh;padding-bottom:0;overflow:hidden}
.app-header,.sync-status{flex-shrink:0}
#main-content{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;outline:none;padding-bottom:12px}
.bottom-nav{position:relative;inset:auto;transform:none;flex:0 0 73px;max-width:100%;margin:12px auto calc(16px + env(safe-area-inset-bottom));backdrop-filter:none;background:#fffef8}
body.dialog-open #main-content{overflow-y:hidden}
input:not([type=radio]):not([type=checkbox]),select{font-size:16px}
.modal{inset:auto 0;top:calc(var(--dialog-top,0px) + var(--dialog-height,100dvh) / 2);margin:0 auto;transform:translateY(-50%);max-height:calc(var(--dialog-height,100dvh) - 32px);overflow-x:hidden}
@media(max-width:759px){
  #main-content{margin-inline:-11px;padding-inline:11px;scrollbar-gutter:auto;scrollbar-width:none}
  #main-content::-webkit-scrollbar{display:none}
}

/* A quiet travel journal: the same stable frame, with room for a growing routine. */
:root{--surface-soft:#eef0e6;--surface-warm:#eee8db;--forest:#587450;--gold:#b48b49;--success:#dce8cc;--radius:23px}
textarea{font:inherit;resize:vertical;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #dfe4d6;background:#fafbf5;color:var(--ink);border-radius:13px;font-size:16px;min-height:100px}
button,summary,input,select,textarea{touch-action:manipulation}
button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #6d9560;outline-offset:3px}
button strong,button span{pointer-events:none}
summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;list-style:none}
summary::-webkit-details-marker{display:none}
summary:before{content:'＋';font-size:18px;color:var(--muted);font-weight:400}
details[open]>summary:before{content:'−'}
details[open]>summary{margin-bottom:14px}
.accent-dot{color:#95a87b}.small{font-size:12px}.compact{min-height:44px;padding:10px 14px;font-size:12px;border-radius:13px}
.bottom-nav{width:440px;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;background:var(--white);border-color:var(--line)}
.nav-item{font-size:10px;min-width:0;gap:5px}.nav-item.active{background:var(--surface-soft)}
.app-header{padding-bottom:23px}.today-aside{min-width:0}.today-aside>.daily-summary{margin-bottom:12px}
.journey-link{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;background:var(--surface-warm);padding:19px 22px;border-radius:20px}
.journey-link>span{font-size:11px;color:var(--muted)}.journey-link>strong{font-size:17px;font-weight:600}.journey-link>span:last-child{display:flex;justify-content:space-between}
.routine-group+.routine-group{margin-top:25px}.routine-heading{display:flex;align-items:center;gap:10px;margin-bottom:10px}.routine-heading>span{color:var(--gold);font-size:10px;font-weight:600}.routine-heading h3{font-size:13px;font-weight:600}.routine-heading small{color:var(--muted);margin-left:auto;font-size:11px}
.habit-grid{grid-template-columns:1fr}.habit-card{display:block;padding:19px 21px}.habit-bottom,.habit-bottom.amount-bottom{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:15px;gap:12px}.habit-title.detail-link{padding:0;text-align:left;min-height:28px;display:block}.habit-top>div{min-width:0}.habit-top .habit-edit{position:static;flex:0 0 40px;margin:0 -4px 0 0;align-self:center}
.habit-title{font-size:16px}.habit-value{font-size:23px;overflow-wrap:anywhere}.habit-value span{font-size:12px}.habit-caption{font-size:11px}.habit-progress{margin-top:13px}
.habit-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px}.quiet-button{min-height:44px;font-size:11px;color:var(--muted);padding:8px 0}.habit-tools>.quiet-button:last-child{margin-left:auto}.habit-card.resting{border-style:dashed;background:var(--surface-soft)}.habit-card.resting .habit-progress{display:none}
.detail-link{width:100%;text-align:left}.habit-name{padding:0;min-height:28px;font:inherit;line-height:inherit}.habit-reminder{flex-wrap:wrap;overflow-wrap:anywhere}.chain-notice{display:flex;align-items:center;gap:14px;background:var(--surface-warm);padding:16px 18px;border-radius:17px;margin-bottom:20px}.chain-notice>span{font-size:26px;color:var(--gold)}.chain-notice strong{font-size:13px}.chain-notice p{font-size:12px;color:var(--muted);margin-top:4px}
.timer-panel{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:21px 23px;border:1px solid #b5c5a2;border-radius:var(--radius);background:var(--surface-soft);margin-bottom:22px}.timer-panel .eyebrow{margin-bottom:7px}.timer-panel strong{font-size:16px}.timer-clock{font-variant-numeric:tabular-nums;font-size:31px;font-weight:600;margin:8px 0}.timer-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;max-width:240px}.timer-actions .text-button{width:100%;text-align:right}
.weekly-review{padding:25px 28px;background:var(--surface-soft);border-radius:var(--radius);margin-bottom:23px}.weekly-review .section-heading{align-items:center}.weekly-review h2{font-size:21px}.weekly-review .eyebrow{margin-bottom:8px}.inline-actions{display:flex;gap:2px;flex-shrink:0}.review-score{display:flex;gap:24px;align-items:center}.review-score>strong{font-size:44px;font-weight:600;flex-shrink:0}.review-score>strong small{font-size:20px;margin-left:3px}.review-score p{font-size:13px}.review-score .muted{margin-top:5px}.review-totals{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:15px;margin-top:18px}.review-totals>span{padding:6px 10px;background:var(--white);font-size:11px;border-radius:8px}.review-totals strong{margin-left:6px;font-weight:600}.panel-footnote{margin-top:19px}.stat-habit{width:100%;text-align:left}.stat-habit-copy>span{display:block;line-height:1.5;margin-top:5px}.stats-panel .section-heading{margin-bottom:5px}.stat-habit .habit-icon{flex-shrink:0}.stat-habit:last-child{padding-bottom:0}
.form-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}.form-details-content{display:grid;gap:18px;padding-bottom:15px}.form-details-content>.form-help{margin-top:-7px}.reminder-row{display:flex;gap:12px;align-items:center}.reminder-row input{flex:1;min-width:0}.reminder-row .quiet-button{margin-top:8px;min-width:52px}.form-row{min-width:0}.form-row>label{min-width:0}.form-help{line-height:1.65}.modal{max-width:570px}.modal form{gap:19px}.modal-actions{flex-wrap:wrap}.modal-heading h2{overflow-wrap:anywhere}.detail-modal{max-width:660px}.detail-modal h3{font-size:16px}.detail-goal{font-size:13px;margin-top:15px}.detail-summary{display:flex;gap:24px;margin:23px 0}.detail-summary>span{font-size:11px;color:var(--muted)}.detail-summary strong{display:block;font-size:24px;font-weight:600;color:var(--ink);margin-bottom:5px}.detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.detail-actions .text-button{padding:7px 4px;font-size:11px}.detail-actions+.inline-form{margin-top:18px}.pause-note{background:var(--surface-warm);border-radius:12px;padding:12px 14px;font-size:12px;margin-top:16px}
.detail-calendar{border-top:1px solid var(--line);padding-top:23px;margin-top:23px}.detail-calendar .section-heading{gap:12px}.calendar-navigation{display:flex;justify-content:space-between;align-items:center;margin:11px 0 14px}.calendar-navigation strong{font-size:14px;text-transform:capitalize}.heat-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.heat-cell{display:grid;place-items:center;min-height:40px;aspect-ratio:1;border-radius:9px;font-size:12px;padding:0;background:var(--surface-soft);color:var(--ink);position:relative}.heat-full{background:#55754a!important;color:#fff!important}.heat-minimal{background:#bfcfa5!important;color:#2b4325!important}.heat-partial{background:#e7cc9d!important;color:#5c4521!important}.heat-pause,.heat-skip{background:transparent!important;border:1px dashed #adb79f;color:var(--muted)}.heat-pause:after{content:'Ⅱ';position:absolute;font-size:8px;right:3px;bottom:2px;opacity:.8}.heat-skip:after{content:'·';position:absolute;right:4px;bottom:0}.heat-empty{background:var(--surface-soft)}.heat-unscheduled,.heat-unavailable{background:transparent!important;color:var(--muted);opacity:.4!important}.heat-weekday{text-align:center;padding-bottom:7px;font-size:10px;color:var(--muted)}.heat-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:17px}.heat-legend span{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.heat-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}.year-heatmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 13px}.compact-month h4{margin:0 0 8px;font-size:10px;font-weight:500;text-transform:capitalize;color:var(--muted)}.compact-month .heat-grid{gap:3px}.compact-month .heat-cell{min-height:0;width:100%;border-radius:3px}.compact-month .heat-cell:after{display:none}.order-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:25px 0}.order-controls>span{margin-right:auto}.history-details{border-top:1px solid var(--line);margin-top:17px;padding-top:8px}.entry-history article{padding:13px 0;border-top:1px solid var(--line)}.entry-history article:first-child{border-top:0}.entry-history-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.entry-history-heading strong{font-size:12px}.entry-history-heading .text-button{font-size:11px}.entry-history p{font-size:11px;color:var(--muted)}.entry-history .entry-note{font-size:13px;color:var(--ink);margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere}.goal-history p,.claim-history p{display:flex;justify-content:space-between;gap:15px;font-size:11px;margin:12px 0;line-height:1.6}.goal-history p strong,.claim-history p strong{font-weight:500}.goal-history p span,.claim-history p span{color:var(--muted);text-align:right}
.inline-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.inline-form>label{flex:1;min-width:110px}.inline-form>.secondary-button{width:auto!important;flex:0 0 auto}.compact-form{display:grid;gap:14px;margin-top:18px}.compact-form label{margin-top:0!important}.compact-form>.primary-button,.compact-form>.secondary-button{margin-top:2px}.toggle-label{display:flex;align-items:flex-start;gap:10px;line-height:1.6;font-size:12px;font-weight:400}.toggle-label input{width:20px;height:20px;min-height:20px;flex-shrink:0;accent-color:var(--forest);margin:0}.settings-fieldset{display:grid;gap:14px;margin-top:10px}.settings-fieldset legend{margin-bottom:13px}.archive-item{align-items:center;flex-wrap:wrap;gap:10px}.archive-item .text-button{font-size:11px}.archive-item .text-button:first-of-type{margin-left:auto}.settings-panel .primary-button,.settings-panel .secondary-button{color:var(--ink)}.settings-panel .primary-button{color:#fff}
.coin-balance{display:flex;align-items:center;gap:7px;white-space:nowrap;padding:10px 14px;background:var(--surface-warm);color:#806130;border-radius:13px;font-size:14px;font-weight:600}.coin-balance>span{font-size:19px}.character-panel{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:28px;background:var(--surface-soft);border:1px solid #d7dfca;border-radius:26px;padding:25px 30px 25px 20px;margin-bottom:20px}.character-art{height:240px;max-width:240px;display:flex;align-items:center;justify-content:center}.character-art>svg{width:100%;height:100%;overflow:visible;stroke:none}.character-copy{min-width:0}.character-copy>.eyebrow{color:var(--forest);margin-bottom:9px}.character-copy h2{font-size:28px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.character-copy>.muted{font-size:12px;margin-top:9px}.level-pill{font-size:10px;background:var(--white);padding:6px 9px;border-radius:7px;white-space:nowrap;font-weight:500}.xp-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 9px}.xp-heading strong{font-size:14px}.xp-heading strong span{font-size:11px;font-weight:400;color:var(--muted)}.xp-heading small{font-size:10px;color:var(--muted)}.xp-track,.quest-track{height:6px;background:#dce2cf;border-radius:8px;overflow:hidden}.xp-track>span,.quest-track>span{display:block;height:100%;border-radius:8px;background:#728d59}.character-customize{margin-top:13px}.character-customize summary{font-size:11px;font-weight:500;min-height:36px}.character-customize label{font-size:11px}.character-customize .small{font-size:10px;margin-top:9px}.equipment-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.equipment-chip{font-size:10px;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--white)}.equipment-chip.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.quest-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.quest{padding:20px 22px;border:1px solid var(--line);background:var(--white);border-radius:20px}.quest-top{display:flex;gap:13px;align-items:center;margin-bottom:17px}.quest-icon{height:38px;width:38px;flex-shrink:0;display:grid;place-items:center;color:var(--gold);background:var(--surface-warm);border-radius:12px;font-size:21px}.quest-top>div{min-width:0;flex:1}.quest h3{font-size:14px}.quest-top p{font-size:10px;color:var(--muted);margin-top:4px}.quest-top>strong{font-size:22px;font-weight:600;white-space:nowrap}.quest-top>strong small{font-size:11px;font-weight:400;color:var(--muted)}.quest-reward{font-size:10px;color:var(--muted);margin-top:9px}.quest-track{height:4px}.journey-section{margin:31px 0}.journey-section .section-heading h2{font-size:23px}.journey-section .eyebrow{margin-bottom:8px}.location-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.location{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:20px;padding-bottom:17px;min-width:0}.location-art{height:115px;background:var(--surface-soft);display:grid;place-items:center;overflow:hidden}.location-art>svg{width:100%;height:100%;stroke:none}.location>div:nth-child(2){padding:15px 17px 0}.location h3{font-size:14px;font-weight:600;line-height:1.4}.location-status{font-size:10px;color:var(--forest);margin-bottom:5px}.location-node{display:grid;place-items:center;position:absolute;right:11px;top:10px;width:24px;height:24px;border-radius:50%;font-size:11px;color:var(--ink);background:var(--white)}.location.locked .location-art{filter:grayscale(.8);opacity:.5}.location.locked h3,.location.locked .location-status{color:var(--muted)}
.adventure-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.adventure-grid .settings-panel>h2{font-size:23px}.adventure-grid .settings-panel>.muted{font-size:12px;margin:10px 0 17px}.challenge{padding:15px 0;border-bottom:1px solid var(--line)}.challenge .section-heading{margin-bottom:3px;gap:10px}.challenge .section-heading>strong{font-size:13px;overflow-wrap:anywhere}.challenge .quiet-button{font-size:10px;min-height:32px}.challenge-progress{display:flex;gap:15px;align-items:center;margin-top:11px}.challenge-progress>strong{font-size:16px;font-weight:600;white-space:nowrap}.challenge-progress>strong span{font-size:11px;color:var(--muted);font-weight:400}.challenge-progress>.quest-track{flex:1}.challenge.completed .challenge-progress>strong{color:var(--forest)}.empty-copy{margin:17px 0;line-height:1.7}.reward{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.reward>div{flex:1;min-width:0}.reward strong{display:block;font-size:13px;overflow-wrap:anywhere}.reward p{margin-top:4px}.reward>.secondary-button{width:auto!important;margin:0!important;padding:8px 11px;font-size:10px;min-height:40px}.reward>.quiet-button{min-width:22px;font-size:18px}.reward-list+.compact-form{padding-top:5px}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.achievement{display:flex;gap:12px;padding:18px 16px;background:var(--white);border:1px solid var(--line);border-radius:18px}.achievement-symbol{font-size:28px;line-height:1.1;color:#b7bdac;flex-shrink:0}.achievement h3{font-size:12px;line-height:1.5;font-weight:600}.achievement p{font-size:10px;color:var(--muted);margin-top:5px}.achievement small{display:block;font-size:9px;color:var(--muted);margin-top:11px}.achievement.unlocked{background:var(--surface-warm);border-color:#e2d5bc}.achievement.unlocked .achievement-symbol{color:var(--gold)}.camp-section{padding:25px 28px;border-radius:var(--radius);background:var(--surface-soft)}.camp-section h2{font-size:23px}.camp-section>.muted,.camp-section>div>.muted{font-size:12px;margin-top:9px;max-width:420px}.camp-plants{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:17px}.camp-plant{text-align:center;min-width:0}.camp-plant>div{height:120px;display:grid;place-items:center}.camp-plant svg{width:100%;height:100%;stroke:none}.camp-plant strong{display:block;font-size:11px;line-height:1.5;margin-top:9px}.camp-plant small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.camp-plant.locked>div{filter:grayscale(1);opacity:.4}

html[data-theme=dark]{color-scheme:dark;--paper:#303632;--ink:#F1F1E9;--muted:#C0C8BD;--line:#626B60;--white:#3A413B;--surface-soft:#444D43;--surface-warm:#4B463A;--forest:#BDD0A5;--success:#465741;--gold:#E0BE83}
html[data-theme=dark] input:not([type=radio]):not([type=checkbox]),html[data-theme=dark] select,html[data-theme=dark] textarea{background:#343B35;border-color:#697362;color:var(--ink)}
html[data-theme=dark] label,html[data-theme=dark] legend{color:#C0C8BD}html[data-theme=dark] .brand-mark,html[data-theme=dark] .primary-button,html[data-theme=dark] .step-button.plus,html[data-theme=dark] .check-button.checked{background:#CDD9BA;color:#29382C}html[data-theme=dark] .secondary-button,html[data-theme=dark] .step-button,html[data-theme=dark] .icon-button,html[data-theme=dark] .segmented,html[data-theme=dark] .stat-period,html[data-theme=dark] .profile-button{background:#4A5548;color:var(--ink);border-color:var(--line)}html[data-theme=dark] .stat-period button.active,html[data-theme=dark] .segmented input:checked+span{background:#5D6B56;color:#F1F1E9}html[data-theme=dark] .daily-summary,html[data-theme=dark] .week-day.today:not(.active),html[data-theme=dark] .empty-state,html[data-theme=dark] .stat-number{background:var(--surface-soft)}html[data-theme=dark] .habit-card{background:var(--white);border-color:var(--line)}html[data-theme=dark] .habit-card.complete{background:#465741;border-color:#859678}html[data-theme=dark] .habit-card.resting{background:var(--surface-soft)}html[data-theme=dark] .summary-copy p,html[data-theme=dark] .summary-copy .eyebrow,html[data-theme=dark] .habit-reminder,html[data-theme=dark] .habit-edit{color:var(--muted)}html[data-theme=dark] .week-day.active{background:#CDD9BA;color:#29382C}html[data-theme=dark] .week-day.active .weekday{color:#425438}html[data-theme=dark] .habit-progress,html[data-theme=dark] .ring-track,html[data-theme=dark] .xp-track,html[data-theme=dark] .quest-track{background:#62705B;stroke:#62705B}html[data-theme=dark] .ring-fill{stroke:#BDD0A5}html[data-theme=dark] .ring-value{color:var(--ink)}html[data-theme=dark] .day-checkboxes span{background:#394438;border-color:#697A60;color:#CDD9C4}html[data-theme=dark] .day-checkboxes input:checked+span{background:#637555;border-color:#9CAE87;color:#F1F1E9}html[data-theme=dark] .habit-icon{color:#25392f}html[data-theme=dark] .character-panel{border-color:#69745F}html[data-theme=dark] .coin-balance{color:#E0BE83}html[data-theme=dark] .achievement.unlocked{border-color:#77664B}html[data-theme=dark] .sync-status{background:#5A4E34;border-color:#817047;color:#F0D8A4}html[data-theme=dark] .notification-icon{background:var(--surface-warm)}html[data-theme=dark] .modal::backdrop{background:#1B201BCC}html[data-theme=dark] .stat-habit{border-color:var(--line)}html[data-theme=dark] .install-done{color:#CDD9BA}html[data-theme=dark] .danger,html[data-theme=dark] .form-error{color:#F5B4A4}
html[data-text-size=large] body{font-size:18px}html[data-text-size=large] .habit-title{font-size:19px}html[data-text-size=large] .habit-caption,html[data-text-size=large] .habit-reminder,html[data-text-size=large] .quiet-button,html[data-text-size=large] label,html[data-text-size=large] legend,html[data-text-size=large] .form-help,html[data-text-size=large] summary{font-size:14px}html[data-text-size=large] .muted,html[data-text-size=large] .small,html[data-text-size=large] .stats-footnote{font-size:14px}html[data-text-size=large] .nav-item{font-size:11px}html[data-text-size=large] .habit-tools{gap:14px}html[data-text-size=large] .primary-button,html[data-text-size=large] .secondary-button{font-size:15px}html[data-text-size=large] .achievement p,html[data-text-size=large] .quest-top p,html[data-text-size=large] .quest-reward{font-size:13px}
@media(min-width:760px){.today-layout{grid-template-columns:250px minmax(0,1fr)}.today-aside{position:sticky;top:0}.today-aside .daily-summary{min-height:255px}.habit-card{display:block}.habit-top{padding:0}.habit-bottom.amount-bottom .habit-metric{text-align:left}.daily-note{margin:30px 0 10px}.stats-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.settings-panel{min-width:0}.app-header{padding-top:25px;padding-bottom:28px}}
@media(max-width:759px){.app{padding-inline:20px}.app-header{padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:19px}.page-heading .eyebrow{font-size:9px}.page-heading h1{font-size:33px}.page-heading{gap:12px}.today-aside>.daily-summary{margin-bottom:19px;min-height:132px}.today-aside>.journey-link{display:none}.today-habits>.section-heading{margin-top:22px}.habit-card,.habit-card:has(.amount-bottom){padding:17px 18px}.habit-icon{height:45px;width:45px;border-radius:14px}.habit-title{font-size:16px}.habit-top{gap:11px}.habit-bottom.amount-bottom .habit-metric{text-align:left}.habit-reminder{font-size:10px}.habit-tools{gap:11px;margin-top:5px}.habit-tools .quiet-button{font-size:10px}.routine-group+.routine-group{margin-top:22px}.habit-bottom .secondary-button{max-width:145px}.week-strip{margin-bottom:18px}.bottom-nav{margin-top:9px;margin-bottom:calc(9px + env(safe-area-inset-bottom));height:70px;flex-basis:70px;border-radius:22px;padding:6px}.nav-item{border-radius:16px}.timer-panel{padding:18px;gap:15px;flex-wrap:wrap}.timer-panel>div:first-child{flex:1;min-width:160px}.timer-actions{max-width:none;justify-content:flex-start}.timer-actions .text-button{width:auto;margin-left:3px}.timer-panel .small{font-size:10px}.weekly-review{padding:20px;margin-bottom:18px}.weekly-review h2{font-size:16px}.weekly-review .section-heading{gap:8px}.weekly-review .week-arrow{width:30px}.review-score{gap:18px}.review-score>strong{font-size:37px}.review-score p{font-size:12px}.stats-panel{padding:21px}.bar-chart{height:120px}.detail-modal{width:calc(100% - 24px);padding:23px 20px}.detail-summary{gap:22px}.detail-actions{gap:7px}.detail-actions .compact{font-size:11px;padding-inline:12px}.detail-calendar .stat-period button{font-size:10px;padding-inline:10px}.heat-cell{min-height:34px;font-size:11px;border-radius:8px}.year-heatmap{gap:15px 9px}.compact-month .heat-grid{gap:2px}.compact-month .heat-cell{border-radius:2px}.form-row{gap:10px}.amount-fields{flex-wrap:wrap}.amount-fields>label{flex:1 1 70px}.amount-fields>label:nth-child(2){flex:1.3 1 85px}.goal-history p,.claim-history p{flex-wrap:wrap;gap:3px}.goal-history p span,.claim-history p span{text-align:left;width:100%}.detail-summary strong{font-size:23px}.detail-calendar .section-heading{flex-wrap:wrap}.coin-balance{font-size:12px;padding:8px 11px}.character-panel{grid-template-columns:105px minmax(0,1fr);gap:16px;padding:18px 17px;border-radius:23px}.character-art{height:180px;align-self:start}.character-copy h2{font-size:23px;gap:8px}.character-copy>.eyebrow{font-size:9px;line-height:1.6;margin-bottom:7px}.character-copy>.muted{font-size:10px}.level-pill{font-size:9px;padding:5px 8px}.xp-heading{margin-top:18px;flex-wrap:wrap;gap:5px}.xp-heading small{font-size:9px}.character-customize{grid-column:1/-1}.character-customize summary{font-size:10px;line-height:1.6}.character-customize select{font-size:16px}.equipment-list{gap:6px}.equipment-chip{font-size:10px}.quest-grid{gap:10px;margin-bottom:26px}.quest{padding:16px 14px;border-radius:18px}.quest-top{gap:8px;align-items:flex-start;flex-wrap:wrap;margin-bottom:13px}.quest-icon{height:30px;width:30px;font-size:17px;border-radius:9px}.quest h3{font-size:12px}.quest-top p{font-size:9px}.quest-top>strong{font-size:20px;margin-left:auto}.quest-top>div{flex-basis:calc(100% - 40px)}.quest-reward{font-size:9px}.journey-section{margin:27px 0}.journey-section .section-heading h2{font-size:21px}.location-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.location-art{height:100px}.location{border-radius:17px;padding-bottom:15px}.location>div:nth-child(2){padding:12px 14px 0}.location h3{font-size:12px}.location-status{font-size:9px}.location-node{height:21px;width:21px;font-size:10px}.adventure-grid{grid-template-columns:1fr;gap:16px}.adventure-grid .settings-panel{padding:22px}.achievement-grid{grid-template-columns:1fr 1fr;gap:10px}.achievement{padding:16px 13px;gap:9px}.achievement-symbol{font-size:24px}.achievement h3{font-size:11px}.achievement p{font-size:9px}.achievement small{font-size:9px}.camp-section{padding:23px 21px}.camp-plants{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 14px}.camp-plant>div{height:115px}.camp-plant strong{font-size:11px}.compact-form{gap:14px}.nav-item span{white-space:nowrap}.form-details summary{font-size:12px}html[data-text-size=large] .character-panel{grid-template-columns:1fr}html[data-text-size=large] .character-art{height:180px;max-width:180px;justify-self:center}html[data-text-size=large] .quest-grid{grid-template-columns:1fr}html[data-text-size=large] .quest-top>div{flex-basis:0}html[data-text-size=large] .achievement-grid{grid-template-columns:1fr}html[data-text-size=large] .habit-tools .quiet-button{font-size:13px}html[data-text-size=large] .bottom-nav{flex-basis:76px;height:76px}html[data-text-size=large] .nav-item{font-size:10px}}
@media(max-width:350px){.app{padding-inline:15px}.character-panel{grid-template-columns:1fr}.character-art{height:170px;max-width:170px;justify-self:center}.year-heatmap{grid-template-columns:repeat(2,minmax(0,1fr))}.modal{padding:22px 17px}.nav-item{font-size:9px}.habit-tools{gap:8px}.form-row{flex-wrap:wrap}.form-row>label{flex-basis:110px}.form-row>.emoji-field{flex-basis:75px}.review-score{gap:13px}.review-score>strong{font-size:30px}.page-heading h1{font-size:30px}}
.compact-month h4>button{font:inherit;color:inherit;padding:0;min-height:44px;width:100%;text-align:left;text-transform:capitalize}.compact-month h4{margin-bottom:3px}
.list-tools{display:flex;justify-content:flex-end;margin-top:-9px;margin-bottom:8px}.list-tools .quiet-button{font-size:10px;min-height:36px}.completed-placeholder{padding:16px 0 20px}

/* Personal practice: calm surfaces, compact daily tools, and a space of your own. */
html[data-palette=cream]{--paper:#fbf4e8;--white:#fffaf3;--surface-soft:#eee6d8;--surface-warm:#f2e5cf;--line:#e1d7c8;--forest:#6e7659}
html[data-palette=sage]{--paper:#f0f5eb;--white:#fbfdf8;--surface-soft:#e5eddd;--surface-warm:#efe9d7;--line:#d7e0ce;--forest:#526b4d}
html[data-theme=dark][data-palette=neutral]{--paper:#303632;--white:#3b423d;--surface-soft:#424a43;--surface-warm:#4c473c;--line:#59625a;--ink:#f3f3e9;--muted:#c0c7bc}
html[data-theme=dark][data-palette=cream]{--paper:#38332e;--white:#454039;--surface-soft:#50483e;--surface-warm:#594b37;--line:#6b6052;--ink:#f6eee3;--muted:#d0c6b8;--forest:#d4c7a0}
html[data-theme=dark][data-palette=sage]{--paper:#313a34;--white:#404b41;--surface-soft:#495748;--surface-warm:#53513d;--line:#69745e;--ink:#f1f3e9;--muted:#c4cebb;--forest:#c6d9ac}
.list-tools{justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;margin-top:0}.layout-switch{display:flex;padding:3px;background:var(--surface-soft);border-radius:12px;flex-shrink:0}.layout-switch button{padding:8px 11px;min-height:36px;font-size:11px;border-radius:9px;color:var(--muted)}.layout-switch button[aria-pressed=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 4px #0000000a}
.drag-handle{flex-shrink:0;touch-action:none;user-select:none;cursor:grab;min-height:38px;min-width:24px;padding:0;color:var(--muted);font-size:23px;opacity:.6}.drag-handle:hover,.drag-handle:focus-visible{opacity:1}.habit-card.dragging{opacity:.75;outline:2px solid var(--forest);box-shadow:0 12px 28px #0002}.habit-top>div{min-width:0;flex:1}.quick-values{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0 0}.quick-value{background:var(--surface-soft);border-radius:9px;min-height:35px;padding:6px 10px;font-size:11px;color:var(--ink)}.quick-value:active{background:var(--surface-warm)}
.routine-heading .ritual-start{color:var(--forest);font-size:11px;font-weight:600;padding:6px 0 6px 10px;min-height:40px;margin-left:auto}.routine-heading small{margin-left:0}.routine-heading{gap:8px}.resume-ritual{margin-bottom:18px;width:100%;text-align:left}
.compact-habits .habit-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}.compact-habits .habit-card{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px 14px;gap:0 10px;border-radius:16px}.compact-habits .habit-top{gap:9px;min-width:0}.compact-habits .habit-icon{width:36px;height:36px;font-size:20px;border-radius:11px;flex-shrink:0}.compact-habits .habit-title{font-size:14px;line-height:1.4}.compact-habits .habit-reminder{font-size:10px;margin-top:2px}.compact-habits .habit-edit{padding:0;min-width:24px}.compact-habits .habit-bottom{margin:0;padding:0;display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0}.compact-habits .habit-value{font-size:16px;white-space:nowrap}.compact-habits .habit-value span{display:block;font-size:10px}.compact-habits .habit-caption{font-size:9px;max-width:95px;line-height:1.4}.compact-habits .habit-controls{gap:5px}.compact-habits .step-button{width:33px;height:35px;border-radius:10px;font-size:20px}.compact-habits .check-button{width:36px;height:36px;border-radius:11px}.compact-habits .habit-progress{grid-column:1/-1;margin:9px 0 0;height:3px}.compact-habits .habit-tools{grid-column:1/-1;gap:13px;margin-top:0}.compact-habits .habit-tools .quiet-button{min-height:32px;padding:5px 0;font-size:10px}.compact-habits .quick-values{grid-column:1/-1;margin-top:8px}.compact-habits .habit-metric{text-align:right!important}.compact-habits .habit-bottom .secondary-button{padding:7px 10px;min-height:35px;font-size:10px}
.undo-notice{position:fixed;z-index:150;bottom:calc(99px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;padding:11px 14px 11px 18px;border-radius:15px;background:var(--ink);color:var(--paper);box-shadow:0 8px 30px #0003;max-width:calc(100% - 28px);font-size:12px;white-space:nowrap}.undo-notice[hidden]{display:none}.undo-notice button{font-size:12px;min-height:36px;color:inherit;font-weight:600}.undo-notice button:last-child{font-size:20px;font-weight:400;opacity:.7}.toast{z-index:151}
.personal-profile{display:grid;grid-template-columns:90px minmax(0,1fr);gap:24px;align-items:center;background:var(--surface-soft);border:1px solid var(--line);padding:28px;border-radius:24px;margin-bottom:21px}.personal-initials{display:grid;place-items:center;width:88px;height:88px;background:var(--white);border:1px solid var(--line);border-radius:28px;font-size:28px;color:var(--forest);font-weight:600}.personal-profile h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:27px;line-height:1.4}.personal-profile .eyebrow{margin-bottom:8px}.personal-profile .muted{margin-top:8px;font-size:12px}.personal-profile .xp-heading{margin-top:18px}.skill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.practice-skill{display:flex;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:17px;padding:19px 15px;min-width:0}.skill-symbol{width:35px;height:35px;flex-shrink:0}.skill-symbol svg{width:100%;height:100%;stroke:none}.practice-skill>div:last-child{min-width:0;flex:1}.practice-skill h3{font-size:12px;margin-bottom:8px}.practice-skill strong{font-size:17px;font-weight:600;white-space:nowrap}.practice-skill strong small{font-size:9px;font-weight:400;color:var(--muted)}.practice-skill p{font-size:9px;margin-top:5px}.practice-skill .quest-track{margin-top:11px}.practice-note{margin:13px 0 28px;line-height:1.6}
.weekly-goal{background:var(--surface-warm);border-radius:20px;padding:24px}.weekly-goal .section-heading{margin-bottom:10px}.weekly-goal .section-heading>strong{font-size:24px;white-space:nowrap}.weekly-goal .muted{font-size:12px;line-height:1.7}.weekly-goal .quest-track{margin:18px 0}.weekly-goal .inline-form{gap:10px}.weekly-goal .inline-form label{font-size:11px;max-width:230px}.weekly-goal .inline-form input{margin-top:7px}.weekly-goal .inline-form .form-error{width:100%}
.program-panel{padding:23px 0;border-top:1px solid var(--line);margin-top:22px}.program-panel h3{font-size:22px}.program-panel>.small{margin:8px 0}.program-score{display:flex;align-items:baseline;gap:9px;margin:19px 0 10px}.program-score strong{font-size:25px}.program-score>span{font-size:11px;color:var(--muted)}.program-chapters{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0;margin:23px 0}.program-chapters li{border-top:3px solid var(--line);padding-top:13px;color:var(--muted)}.program-chapters li.reached{border-color:var(--forest);color:var(--ink)}.program-chapters strong{font-size:13px}.program-chapters p{font-size:11px;line-height:1.7;margin-top:7px}.program-form{padding-top:22px;border-top:1px solid var(--line);max-width:600px}.habit-picks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.branch-choice{background:var(--surface-soft);padding:18px;border-radius:14px}.branch-choice h4{font-size:15px}.branch-choice p{margin:8px 0 12px}.branch-choice .secondary-button{margin:0 8px 8px 0}.branch-note{color:var(--forest);font-size:14px;font-weight:600;margin:14px 0 8px}
.personal-space{padding:26px;border-radius:23px;background:var(--surface-soft)}.personal-space>.muted{font-size:12px;line-height:1.7}.space-scene{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:23px 0}.space-slot{background:var(--white);border:1px dashed var(--line);border-radius:18px;height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;overflow:hidden}.space-slot.occupied{border-style:solid}.space-slot svg{height:112px;width:100%;stroke:none}.space-slot>span{font-size:25px;color:var(--muted);opacity:.3;height:100px;display:grid;place-items:center}.space-slot small{font-size:10px;text-align:center;padding:0 5px;line-height:1.5;color:var(--muted)}.space-inventory{display:grid;grid-template-columns:1fr 1fr;gap:15px}.space-inventory label{font-size:11px}.space-shop{margin-top:15px}.space-catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-top:15px}.space-product{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:13px;text-align:center;min-width:0}.space-product-art{height:90px}.space-product-art svg{width:100%;height:100%;stroke:none}.space-product h3{font-size:11px;margin:9px 0 6px;line-height:1.5}.space-product .small{font-size:10px}.space-product .secondary-button{margin-top:11px;padding:6px 9px;font-size:10px;min-height:35px;max-width:100%}
.palette-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.palette-option{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;padding:8px;cursor:pointer;text-align:center;min-width:0}.palette-option:has(input:checked){outline:2px solid var(--forest);outline-offset:2px}.palette-option input{position:absolute;opacity:0;width:1px;height:1px}.palette-option:focus-within{outline:2px solid var(--forest)}.palette-swatch{display:block;height:58px;border-radius:8px;background:linear-gradient(130deg,var(--swatch) 50%,var(--swatch-dark) 50%);border:1px solid #0001}.palette-option strong{display:block;font-size:10px;margin:10px 0 2px;line-height:1.5}.timer-presets{display:flex;gap:8px;flex-wrap:wrap;width:100%}.timer-presets button{padding:7px 12px;background:var(--surface-soft);border-radius:9px;min-height:36px}.timer-history article{padding:13px 0;border-top:1px solid var(--line)}.timer-history article strong{font-size:13px}.timer-history article p{line-height:1.6;margin-top:5px}#timer-form{margin-top:20px;padding:17px;background:var(--surface-soft);border-radius:15px}#timer-form>label{flex-basis:140px}#timer-form>.form-error{width:100%}
.insights-section{margin:30px 0}.insight{padding:20px 0;border-top:1px solid var(--line)}.insight h3{font-size:17px}.insight p{font-size:13px;margin-top:10px;line-height:1.7}.insight .secondary-button{margin-top:15px}.probe-controls{display:grid;gap:15px;margin:20px 0}.probe-controls label{font-size:12px}.probe-list{margin-top:22px}.probe{padding:20px 0;border-top:1px solid var(--line)}.probe .section-heading{gap:10px;align-items:flex-start}.probe strong{font-size:13px;line-height:1.7}.probe time{font-size:10px;white-space:nowrap}.probe-stages{list-style:none;padding:0;display:grid;gap:8px;color:var(--muted);font-size:11px;margin:16px 0}.probe-stages .done{color:var(--forest)}
.ritual-modal .habit-card{margin-top:18px;padding:20px 17px}.ritual-modal .drag-handle{display:none}.ritual-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:20px 0}.ritual-actions .primary-button{font-size:12px;padding:13px 17px}.ritual-progress{display:flex;gap:6px;flex-wrap:wrap;margin:19px 0}.ritual-progress button{border:1px solid var(--line);border-radius:50%;width:32px;height:32px;min-height:32px;font-size:12px;color:var(--muted)}.ritual-progress .active{background:var(--forest);color:var(--paper);border-color:var(--forest)}
@media(max-width:759px){.list-tools .quiet-button{font-size:9px}.compact-habits .habit-card{padding:11px 12px;gap:0 7px}.compact-habits .habit-title{font-size:13px}.compact-habits .habit-top{gap:7px}.compact-habits .drag-handle{min-width:17px;font-size:21px}.compact-habits .habit-icon{height:32px;width:32px;font-size:18px}.compact-habits .habit-value{font-size:14px}.compact-habits .habit-reminder{font-size:8px}.compact-habits .habit-bottom{gap:6px}.compact-habits .habit-value span{font-size:9px}.compact-habits .habit-caption{font-size:8px;max-width:79px}.compact-habits .step-button{width:31px;height:33px}.compact-habits .habit-tools{gap:11px}.personal-profile{grid-template-columns:62px minmax(0,1fr);padding:21px 18px;gap:16px}.personal-initials{height:62px;width:62px;border-radius:20px;font-size:23px}.personal-profile h2{font-size:22px;gap:8px}.personal-profile .muted{font-size:10px}.personal-profile .eyebrow{font-size:9px}.personal-profile .xp-heading{flex-wrap:wrap;gap:6px}.skill-grid{grid-template-columns:1fr 1fr;gap:10px}.practice-skill{padding:15px 12px;gap:9px}.skill-symbol{width:27px;height:27px}.practice-skill strong{font-size:15px}.practice-skill strong small{display:block;font-size:8px}.practice-skill h3{font-size:11px}.weekly-goal{padding:20px}.weekly-goal .section-heading>strong{font-size:21px}.weekly-goal h2{font-size:21px}.weekly-goal .inline-form label{max-width:none}.weekly-goal .inline-form .secondary-button{font-size:12px;padding-inline:14px}.program-chapters{grid-template-columns:1fr;gap:13px}.program-chapters li{padding-top:11px}.program-chapters p{margin-top:5px}.program-panel h3{font-size:20px}.program-panel .section-heading>.quiet-button{font-size:10px;max-width:83px;line-height:1.5}.program-form .habit-picks{grid-template-columns:1fr}.personal-space{padding:21px 17px}.space-scene{gap:8px}.space-slot{height:116px;border-radius:13px}.space-slot svg{height:79px}.space-slot small{font-size:8px}.space-slot>span{height:73px}.space-catalog{grid-template-columns:1fr 1fr;gap:9px}.space-product{padding:10px}.space-product-art{height:76px}.space-inventory{gap:10px}.palette-option{padding:6px}.palette-swatch{height:46px}.palette-option strong{font-size:9px}.probe .section-heading{flex-wrap:wrap}.probe strong{font-size:12px}.undo-notice{bottom:calc(96px + env(safe-area-inset-bottom));font-size:11px;gap:11px}}
html[data-text-size=large] .compact-habits .habit-title{font-size:16px}html[data-text-size=large] .compact-habits .habit-reminder,html[data-text-size=large] .compact-habits .habit-caption,html[data-text-size=large] .compact-habits .habit-tools .quiet-button{font-size:12px}html[data-text-size=large] .compact-habits .habit-card{grid-template-columns:minmax(0,1fr)}html[data-text-size=large] .compact-habits .habit-bottom{justify-content:space-between;margin-top:10px}html[data-text-size=large] .skill-grid{grid-template-columns:1fr 1fr}html[data-text-size=large] .practice-skill{display:block}html[data-text-size=large] .skill-symbol{margin-bottom:10px}html[data-text-size=large] .space-product h3{font-size:13px}
@media(max-width:350px){.compact-habits .habit-card{grid-template-columns:minmax(0,1fr)}.compact-habits .habit-bottom{justify-content:space-between;margin-top:8px}.compact-habits .habit-metric{text-align:left!important}.compact-habits .habit-value span{display:inline;margin-left:4px}.compact-habits .habit-caption{max-width:none}.personal-profile{grid-template-columns:1fr}.personal-initials{display:none}.skill-symbol{display:none}.practice-skill{padding:15px}.personal-space{padding:19px 13px}.space-slot small{font-size:8px}.weekly-goal .section-heading{flex-wrap:wrap}.habit-picks{grid-template-columns:1fr}.ritual-actions{flex-wrap:wrap}}
@media(max-width:759px){#today-view:has(.compact-habits)>.page-heading{margin-bottom:13px}#today-view:has(.compact-habits)>.page-heading .eyebrow{display:none}#today-view:has(.compact-habits)>.page-heading h1{font-size:29px}#today-view:has(.compact-habits)>.page-heading .muted{font-size:11px;margin-top:7px}#today-view:has(.compact-habits)>.week-strip{margin-bottom:13px}#today-view:has(.compact-habits)>.week-strip .week-day{padding-top:8px;padding-bottom:7px;gap:5px}#today-view:has(.compact-habits) .today-aside>.daily-summary{min-height:69px;padding:13px 17px;margin-bottom:2px;border-radius:18px;gap:14px}#today-view:has(.compact-habits) .daily-summary .eyebrow,#today-view:has(.compact-habits) .summary-copy>p:not(.eyebrow){display:none}#today-view:has(.compact-habits) .summary-copy h2{font-size:17px;margin:0}#today-view:has(.compact-habits) .ring-wrap{width:46px;height:46px}#today-view:has(.compact-habits) .ring-value{font-size:17px}#today-view:has(.compact-habits) .ring-value span{font-size:9px}.compact-habits>.section-heading{margin-top:17px;margin-bottom:11px}.compact-habits>.routine-group .routine-heading{margin-bottom:8px}.compact-habits .routine-group+.routine-group{margin-top:18px}.resume-ritual{min-height:40px;padding-block:9px;margin-bottom:13px;font-size:12px}}
body:has(#undo-notice:not([hidden])) #toast{bottom:calc(169px + env(safe-area-inset-bottom))}
