:root{--green:#296b4e;--ink:#263c32;--muted:#8b958e;--line:#e9ede7;--bg:#f7f8f3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}button,input,select{font:inherit}button,select{cursor:pointer}button{border:0;background:none;color:inherit}button:hover{filter:brightness(.94)}aside{width:220px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:38px 23px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;font-size:35px;color:var(--green);text-decoration:none;margin-bottom:54px}.brand span{font-size:25px;font-weight:600;letter-spacing:3px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px}.aside-label{font-size:10px;color:#a0a79f;letter-spacing:2px;margin:18px 12px}.nav{padding:15px 12px;text-align:left;border-radius:8px;margin-bottom:8px;font-weight:500}.nav.active{background:#edf3eb;color:var(--green)}.nav i{font-style:normal;font-size:8px;color:#a1aaa2;float:right;margin-top:4px}.side-note{margin:auto 10px 36px;font:21px/1.7 Georgia,'Songti SC',serif}.side-note span{display:block;font:10px/1.8 sans-serif;color:var(--muted);margin-top:15px}.local-note{font-size:10px;color:#9aa39b;margin:14px 10px}main{max-width:1520px;margin-left:220px;padding:0 44px}header{height:85px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}header em{margin:0 15px;color:#cbd1c9}.avatar{border-radius:50%;background:#e7eddf;padding:10px 13px;color:var(--green)}.intro{display:flex;justify-content:space-between;align-items:center;margin:37px 0 28px}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#8e9a85}h1{font-size:29px;font-weight:550;letter-spacing:1px;margin:12px 0}h1 span{font-size:24px}p{color:var(--muted);line-height:1.7;margin:7px 0;font-size:12px}.primary{background:var(--green);color:white;border-radius:7px;padding:13px 20px;white-space:nowrap;box-shadow:0 3px 6px #214f3510}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:23px}.tabs{display:flex;background:#eceedf80;padding:4px;border-radius:8px}.tabs button{padding:9px 20px;border-radius:5px;font-size:12px;color:#7a867c}.tabs .selected{background:white;color:var(--green);box-shadow:0 1px 5px #142f1610}select,input{border:1px solid #e1e6dd;background:white;border-radius:6px;padding:9px 12px;color:#59695e;outline-color:var(--green)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:21px 23px;position:relative}.stat .icon{position:absolute;right:22px;top:20px;color:#759477;font-size:22px}.stat label{color:#819084;font-size:11px}.stat strong{font-size:32px;display:block;font-weight:550;margin:12px 0 9px;font-variant-numeric:tabular-nums}.stat strong small{font-size:12px;margin-left:4px;color:#9ca69c;font-weight:400}.stat p{font-size:10px}.card{background:white;border:1px solid var(--line);border-radius:11px;padding:25px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}h2{font-size:16px;font-weight:550;margin:0}.section-title p{font-size:10px;margin-top:8px}.section-title select{font-size:11px}.heat-scroll{overflow:auto;padding-bottom:8px}#months{display:flex;justify-content:space-between;margin-left:27px;min-width:710px;font-size:10px;color:#9ba49a;margin-bottom:13px}.heat-wrap{display:flex;gap:12px;min-width:740px}.weekdays{width:14px;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:#a1aaa0;padding:1px 0}#heatmap{display:grid;grid-template-rows:repeat(7,13px);grid-auto-flow:column;grid-auto-columns:minmax(10px,1fr);gap:4px;flex:1}.cell{padding:0;border-radius:3px;min-width:10px;height:13px;background:#f0f2ec;position:relative}.cell:hover{outline:2px solid #78977a;z-index:1}.cell.selected{outline:2px solid #355f42;outline-offset:2px}.cell.future{opacity:.5;cursor:default}.empty{background:#eef0eb}.fail{background:#eec9bc}.partial{background:#c8ddb5}.pass{background:#77a76d}.full{background:#356f47}.heat-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #f1f3ee;margin-top:18px;padding-top:17px;font-size:9px;color:#a1a99e}.legend{display:flex;gap:12px}.legend span{display:flex;gap:5px;align-items:center}.legend i{width:9px;height:9px;border-radius:2px}.lower{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:24px}.daily input[type=date]{font-size:10px;padding:7px;max-width:130px}.day-banner{padding:12px 15px;background:#f3f6ee;border-radius:6px;font-size:11px;color:#648257;display:flex;justify-content:space-between;margin-bottom:8px}.task{display:flex;gap:12px;align-items:center;border-bottom:1px solid #f0f2ec;padding:17px 0}.check{border:1.5px solid #d6dfd0;border-radius:50%;width:23px;height:23px;flex-shrink:0;padding:0;color:transparent}.check.done{background:#6a955b;border-color:#6a955b;color:white}.task-info{flex:1;min-width:0}.task-name{font-size:12px}.task-meta{font-size:9px;color:#9aa592;margin-top:7px}.badge{font-size:8px;padding:3px 5px;background:#f3f0e7;color:#a38e59;margin-left:7px;border-radius:3px}.badge.optional{background:#eff3eb;color:#899b7c}.task-value{width:60px;font-size:11px;padding:7px}.task-unit{font-size:9px;color:#939d8d;min-width:38px}.edit{color:#9aa591;padding:3px}.daily-foot{font-size:10px;color:#a2ac9a;text-align:center;padding-top:21px}.category-row{margin:22px 0}.category-row>div{display:flex;justify-content:space-between;font-size:11px}.bar{height:6px;background:#eef2e8;border-radius:5px;margin-top:12px;overflow:hidden}.bar span{height:100%;display:block;border-radius:5px;background:#81a471}.quote{background:#f5f6ef;border-radius:7px;padding:25px;font:17px/1.9 Georgia,'Songti SC',serif;color:#7e8b72;margin-top:28px}.quote small{display:block;font:9px sans-serif;margin-top:12px;color:#a5ad9c}.demo{font-size:9px;color:#a0aa98;margin-top:20px;display:flex;justify-content:space-between}.demo button{font-size:9px;text-decoration:underline}footer{display:flex;justify-content:space-between;margin:25px 0;font-size:9px;color:#b0b6aa}dialog{border:1px solid var(--line);border-radius:14px;width:480px;max-width:calc(100vw - 32px);padding:28px;color:var(--ink);box-shadow:0 20px 100px #253d3320}dialog::backdrop{background:#182b2260;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center}.close{font-size:25px;color:#91a08d}dialog label{display:block;font-size:12px;margin:20px 0}dialog label input,dialog label select{display:block;width:100%;margin-top:8px}.form-row{display:flex;gap:16px}.form-row label{flex:1}.hint{font-size:11px}.rule-list{font-size:11px;color:#7c8979;line-height:1.9;padding-left:17px}dialog .primary{margin-top:15px;width:100%}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#294f3e;color:white;padding:12px 25px;border-radius:8px;display:none;z-index:9}button:focus-visible{outline:2px solid #558452;outline-offset:3px}@media(min-width:1500px){main{margin-right:auto}.cell{height:15px}#heatmap{grid-template-rows:repeat(7,15px)}}@media(max-width:1100px){aside{width:175px;padding:30px 15px}main{margin-left:175px;padding:0 25px}.intro h1{font-size:23px}.legend{gap:7px}.stats{gap:10px}.stat{padding:18px 16px}.lower{grid-template-columns:1.4fr 1fr;gap:16px}.card{padding:20px}}@media(max-width:760px){aside{position:static;width:auto;padding:18px 20px;flex-direction:row;border-bottom:1px solid var(--line);align-items:center;gap:5px}.brand{margin:0 auto 0 0;font-size:25px;gap:7px}.brand span{font-size:20px}.brand small{font-size:6px}.aside-label,.side-note,.local-note,aside .nav[data-nav]{display:none}aside #ruleBtn{margin:0;font-size:11px;padding:8px}main{margin:0;padding:0 18px}header{height:55px}.intro{margin:26px 0 23px;align-items:flex-start}.eyebrow{font-size:7px}h1{font-size:21px!important;line-height:1.6;max-width:240px}h1 span{display:none}.intro p{font-size:10px;max-width:220px}.intro .primary{padding:11px;font-size:11px;margin-top:30px}.toolbar{flex-wrap:wrap}.tabs{flex:1}.tabs button{flex:1;padding:9px 10px}.toolbar select{width:100%;font-size:11px}.stats{grid-template-columns:repeat(2,1fr);gap:12px}.stat strong{font-size:28px}.stat{padding:16px}.stat .icon{right:15px;font-size:18px}.card{padding:19px 16px}.heat-footer{flex-direction:column;gap:14px}.legend{justify-content:space-between;gap:5px}.lower{grid-template-columns:1fr}.insights .quote{margin-top:20px}.task{gap:9px}.task-value{width:55px}.task-unit{min-width:30px}.section-title h2{font-size:14px}footer span{display:none}}
.progress-panel{margin-top:24px}.journey-row{width:100%;display:grid;grid-template-columns:1.6fr repeat(5,1fr);gap:14px;text-align:left;padding:18px 4px;border-top:1px solid var(--line);align-items:center}.journey-row:hover{background:#f6f8f2}.journey-row b{font-size:13px;font-weight:550;overflow-wrap:anywhere}.journey-row small{display:block;font-size:10px;line-height:1.7;color:#95a08e;margin-top:7px}.date-actions{display:flex;align-items:center;gap:5px}.date-actions button{min-height:34px;min-width:28px;border-radius:5px;background:#f1f5ed}.date-actions #goToday{font-size:10px;padding:0 8px}.date-actions button:disabled{opacity:.3}.toolbar select{font-size:11px;min-width:0}#historyHint{margin:0 0 15px}#categoryStats small{color:#a6ae9f}.journey-context{color:#7e9073;font-size:12px;line-height:1.8;padding:0 0 15px}.task-name{line-height:1.8}.task-meta{line-height:1.7}.task .check{width:28px;height:28px}.edit{min-width:30px;min-height:34px}.task-value{min-height:36px}dialog{max-height:90vh;overflow:auto}button:disabled{cursor:default}.lower>.card{min-width:0}@media(max-width:1200px){.toolbar{flex-wrap:wrap}.journey-row{grid-template-columns:1.5fr repeat(3,1fr)}.journey-row>div:nth-child(n+5){grid-row:2}.tabs{flex:1}}@media(max-width:760px){main{padding:0 14px}.intro h1{max-width:210px}.toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toolbar .tabs{grid-column:1/-1}.toolbar select{width:100%}.progress-panel{margin-top:16px}.journey-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 3px}.journey-row>div:first-child{grid-column:1/-1}.journey-row>div:nth-child(n+5){grid-row:auto}.journey-row>div:last-child{grid-column:auto}.journey-row small{font-size:10px}.daily .section-title{flex-wrap:wrap;gap:12px}.date-actions{width:100%}.daily input[type=date]{flex:1;max-width:none;font-size:12px}.date-actions button{min-width:38px;min-height:38px}.task{flex-wrap:wrap;gap:8px}.task-info{min-width:calc(100% - 85px)}.task-value{margin-left:36px;width:90px}.task-unit{flex:1}.task .edit{margin-left:auto}.form-row{gap:10px}.form-row label{min-width:0}h1{font-size:20px!important}.legend{flex-wrap:wrap;justify-content:flex-start;gap:10px}.day-banner{gap:8px;flex-wrap:wrap}dialog{padding:20px}.stat strong{font-size:26px}.stat p{line-height:1.7}.lower{gap:16px;margin-top:16px}}@media(min-width:1500px){main{max-width:1700px}.journey-row{gap:22px}}
.empty{background:var(--color-empty,#eef0eb)}.fail{background:var(--color-fail,#eec9bc)}.low{background:var(--color-low,#e1eacb)}.partial{background:var(--color-partial,#b8d699)}.pass{background:var(--color-pass,#77a76d)}.full{background:var(--color-full,#356f47)}[hidden]{display:none!important}.map-controls{display:flex;align-items:center;gap:10px}.map-tabs button{padding:7px 13px}.calendar-nav{display:none;align-items:center;gap:12px;margin:0 0 18px}.calendar-nav button{width:32px;height:32px;background:#f1f5ed;border-radius:5px;font-size:20px}.calendar-nav strong{font-size:16px;font-weight:500}.calendar-nav>span{margin-left:auto;color:#9ba696;font-size:10px}.monthly .calendar-nav{display:flex}.monthly .heat-scroll{overflow:visible}.monthly #months{display:grid;grid-template-columns:repeat(7,1fr);min-width:0;margin-left:0;text-align:center}.monthly .heat-wrap{min-width:0;display:block}.monthly .weekdays{display:none}.monthly #heatmap{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:72px;grid-auto-flow:row;grid-auto-columns:auto;gap:8px}.monthly .cell{height:auto;min-width:0;border-radius:7px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:10px 12px;border:1px solid #243b2d08;color:#203524}.monthly .cell small{font-size:10px;opacity:.65;align-self:flex-end}.monthly .cell.full{color:white}.monthly .cell.selected{outline:2px solid #355f42;outline-offset:2px}.monthly .cell.future{opacity:.4;background:#f2f4ef}.monthly .day-number{font-size:14px;font-weight:550}.monthly .heat-footer{flex-wrap:wrap}.record-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 3px;font-size:10px;color:#8a9881}.record-toolbar label{display:flex;align-items:center;gap:4px;cursor:pointer}.record-toolbar input{accent-color:var(--green)}.daily{scroll-margin-top:20px}.presets{display:flex;gap:10px}.presets button,.text-button{background:#eef3e8;padding:8px 14px;border-radius:5px;color:#5c7850;font-size:11px}.rule-preview{padding:12px;background:#f4f6ef;border-radius:7px;color:#5f7952}.color-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.color-fields label{margin:0;border:1px solid var(--line);border-radius:7px;padding:9px;display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:11px}.color-fields input{width:38px;height:30px;padding:2px;margin:0;border:0;cursor:pointer}.color-example{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.color-example span{padding:10px;border-radius:5px;font-size:10px}.rule-list{margin-bottom:0}#rules hr{border:0;border-top:1px solid var(--line);margin:22px 0}.progress-panel .journey-row{border-radius:0;box-shadow:none;background:transparent}.progress-panel .journey-row:hover{background:#f7f9f3}@media(max-width:760px){.annual>.section-title{align-items:flex-start;gap:12px;flex-wrap:wrap}.map-controls{width:100%;justify-content:space-between}.map-tabs{flex:none}.monthly #heatmap{grid-auto-rows:56px;gap:5px}.monthly .cell{padding:8px 6px;border-radius:5px}.monthly .day-number{font-size:12px}.monthly .cell small{font-size:8px}.calendar-nav{gap:8px;flex-wrap:wrap}.calendar-nav>span{width:100%;margin-left:0;font-size:9px}.calendar-nav strong{font-size:14px}.heat-footer{font-size:9px}.legend{row-gap:10px}.color-fields{grid-template-columns:1fr 1fr}.color-fields label{font-size:10px}.monthly .heat-footer>span{line-height:1.7}}
#categoryNav{max-height:35vh;overflow:auto;flex-shrink:0}#categoryNav .nav{width:100%;overflow-wrap:anywhere}.category-entry{font-size:11px;color:#648157;padding:10px;white-space:nowrap}.inline-link{float:right;font-size:10px;color:#4d795b;padding:0 0 4px}.category-create{display:flex;gap:10px;margin:20px 0}.category-create input{min-width:0;flex:1}.category-create .primary{width:auto;margin:0;padding:10px 14px}.category-manager-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding:15px 0}.category-manager-row>div{flex:1;min-width:140px}.category-manager-row input{width:100%;font-size:12px}.category-manager-row small{display:block;font-size:9px;color:#95a18c;margin:5px 0}.category-manager-row select{max-width:120px;font-size:10px;padding:7px}.category-manager-row button{font-size:11px;color:#68825b}.category-manager-row .delete-category{color:#ac6d5f}.archived-category-row{display:flex;align-items:center;gap:10px;padding:12px 0;font-size:11px;border-bottom:1px solid var(--line)}.archived-category-row span{flex:1}.archived-category-row button{font-size:10px;color:#5d8052}#archivedCategories{font-size:11px;color:#819176;margin-top:16px}#archivedCategories summary{cursor:pointer;padding:10px 0}.category-stat{display:block;text-align:left;width:100%}.category-stat>small{display:block;color:#99a590;font-size:9px;margin-top:9px}.category-stat:hover{background:#fafbf7}#tabs{flex-wrap:wrap}#tabs select{font-size:10px;max-width:120px}.toolbar{align-items:center}.task-meta{overflow-wrap:anywhere}.journey-context{overflow-wrap:anywhere}@media(max-width:760px){#categoryNav,#manageCategories{display:none}.toolbar{grid-template-columns:1fr 1fr}.toolbar #tabs{grid-column:1/-1;flex-wrap:nowrap;overflow:auto;max-width:calc(100vw - 28px)}.toolbar .tabs button{white-space:nowrap;flex:0 0 auto}.toolbar .category-entry{grid-column:1/-1;justify-self:end;padding:2px 0 7px}.category-manager-row select{max-width:130px}.category-manager-row>div{min-width:120px}.category-manager-row{gap:7px}.side-note{display:none}}
.manage-habit{display:block;color:#638153;font-size:10px;margin-top:8px;padding:5px 0}.journey-row{cursor:pointer}.cell.inactive{background:#fafbf8;border:1px dashed #dfe6d9;color:#acb5a5}.monthly .cell.inactive{border:1px dashed #dfe6d9}.journey-row:focus-visible{outline:2px solid #558452;outline-offset:3px}
aside{overflow-y:auto}#ruleBtn{flex-shrink:0}@media(min-width:761px) and (max-height:850px){.side-note{display:none}#ruleBtn{margin-top:auto}aside{padding-top:28px;padding-bottom:18px}.brand{margin-bottom:32px}#categoryNav{max-height:32vh}}

.monthly .cell.empty{color:var(--text-empty,#203524)}.monthly .cell.fail{color:var(--text-fail,#203524)}.monthly .cell.low{color:var(--text-low,#203524)}.monthly .cell.partial{color:var(--text-partial,#203524)}.monthly .cell.pass{color:var(--text-pass,#203524)}.monthly .cell.full{color:var(--text-full,#203524)}/* Local iteration: clearer scopes, quieter alpha tiles, compact statistics. */
.toolbar #tabs{background:transparent;padding:0;gap:7px;align-items:center}.toolbar #tabs button{padding:10px 15px;background:transparent}.toolbar #tabs .overview-tab{background:white;border:1px solid #dce5dd;font-weight:650;color:#305d4b;box-shadow:0 2px 5px #28473308}.toolbar #tabs .overview-tab.selected{background:#315f50;color:white;border-color:#315f50;box-shadow:0 3px 8px #315f5022}.toolbar #tabs button.selected:not(.overview-tab){background:#e7efe8;color:#31644f;box-shadow:none}.scope-divider{width:1px;height:23px;background:#d7e0d6;margin:0 9px;flex-shrink:0}.scope-label{font-size:9px;color:#9ca896;white-space:nowrap;margin-right:2px}.map-controls{flex-wrap:wrap;justify-content:flex-end}.size-tabs{background:#f1f4ee}.size-tabs button{font-size:10px;padding:7px 10px}.annual{background:linear-gradient(135deg,#fdfefb,#f7faf7);--map-stroke:#ffffff80}.monthly .cell,.cell{background-image:linear-gradient(145deg,#ffffff2e,#ffffff03);box-shadow:inset 0 1px 0 #ffffff70,inset 0 0 0 1px #ffffff40;transition:box-shadow .15s,transform .15s}.monthly .cell{border-color:#ffffff70}.monthly .cell:hover{box-shadow:inset 0 0 0 1px #ffffffaa,0 3px 10px #245d4520;transform:translateY(-1px)}.monthly .cell.selected{outline:2px solid #527f70;outline-offset:2px}.monthly .cell.full{color:var(--text-full,#254f45)}.monthly .cell.future{background:#edf2ee;opacity:.48}.monthly .cell.inactive{background:#f7faf6;border:1px dashed #dce5d9}.analytics{min-width:0}.analytics-tabs{margin:0 0 20px;display:flex}.analytics-tabs button{flex:1;font-size:12px;padding:11px 10px}.analytics #journey{max-height:430px;overflow-y:auto;overscroll-behavior:contain;padding-right:5px}.analytics .journey-row{grid-template-columns:1fr 1fr;gap:13px;padding:18px 2px}.analytics .journey-row>div:first-child{grid-column:1/-1}.analytics .journey-row>div:nth-child(n+5){grid-row:auto}.analytics .journey-context{font-size:10px;line-height:1.9}.analytics .journey-row b{font-size:12px}.analytics .manage-habit{display:inline-block;float:right;padding:0;margin-top:0;font-size:10px}.analytics .quote{font-size:15px;padding:20px;margin-top:22px}.lower{align-items:start}.analytics .demo{margin-bottom:0}#rules[open]{display:flex;flex-direction:column;overflow:hidden;max-height:min(760px,90dvh);padding:24px;width:500px}#rules>.modal-head{flex-shrink:0}#rules .settings-tabs{flex-shrink:0;margin-top:20px;margin-bottom:0;display:flex}#rules .settings-tabs button{flex:1;font-size:12px;padding:12px}#rules .settings-body{overflow-y:auto;overscroll-behavior:contain;min-height:220px;padding:16px 3px 6px;margin-top:8px}#rules #saveRules{flex-shrink:0;margin-top:16px}#rules label{margin:16px 0}#rules .color-fields label{margin:0}#rules .color-example{margin-bottom:16px}.palette-credit{font-size:10px}.opacity-control output{float:right;color:#5a8372}.opacity-control input{padding:0;accent-color:#4aaf99;border:0;margin:12px 0 0;width:100%}.weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.weekday-picker label{position:relative;flex:1;margin:0!important;min-width:35px}.weekday-picker input{position:absolute;opacity:0;width:1px;height:1px}.weekday-picker span{display:block;padding:10px 2px;text-align:center;border:1px solid #e1e8dc;border-radius:6px;font-size:11px}.weekday-picker input:checked+span{background:#dfede3;border-color:#8dbca8;color:#335e4c}.weekday-picker input:focus-visible+span{outline:2px solid #548a74}.exception-settings{margin:22px 0;padding:13px;background:#f5f8f2;border-radius:8px}.exception-settings summary{font-size:12px;cursor:pointer}.exception-settings summary>span{display:block;color:#9aa58f;font-size:9px;margin-top:7px;margin-left:14px}.exception-editor{display:flex;gap:6px;margin-top:12px}.exception-editor input{width:43%;min-width:0;font-size:11px;padding:8px}.exception-editor select{flex:1;width:0;font-size:10px;padding:8px 4px}.exception-editor button{font-size:10px;color:#52806b}.exception-row{display:flex;justify-content:space-between;gap:8px;padding:9px 0;font-size:10px;border-bottom:1px solid #e4ebde}.exception-row button{font-size:10px;color:#a27469}.annual:not(.monthly):not(.compact-map) #heatmap{grid-template-rows:repeat(7,23px);gap:5px;grid-auto-columns:minmax(15px,1fr)}.annual:not(.monthly):not(.compact-map) .heat-wrap{min-width:1050px}.annual:not(.monthly):not(.compact-map) #months{min-width:1020px}.monthly.compact-map .heat-wrap{width:fit-content;min-width:0}.monthly.compact-map #heatmap{grid-template-columns:repeat(7,18px);grid-auto-rows:18px;gap:5px}.monthly.compact-map #months{grid-template-columns:repeat(7,18px);gap:5px;width:fit-content}.monthly.compact-map .cell{padding:0;min-height:0;height:18px;border-radius:4px}.monthly.compact-map .heat-scroll{min-height:150px;padding-top:6px}.monthly.weekly-map:not(.compact-map) #heatmap{grid-auto-rows:96px}.monthly.weekly-map.compact-map .heat-scroll{min-height:60px}.monthly.weekly-map #monthLabel{font-size:13px}.annual:not(.monthly).compact-map #heatmap{grid-template-rows:repeat(7,13px);gap:4px}.annual:not(.monthly).compact-map .cell{height:13px;min-width:10px}.annual:not(.monthly).compact-map .heat-wrap{min-width:740px}.annual:not(.monthly).compact-map #months{min-width:710px}
@media(max-width:1100px){.map-controls{justify-content:flex-start}.annual>.section-title{flex-wrap:wrap;gap:13px}.map-tabs button{padding:7px 11px}}
@media(max-width:760px){.toolbar #tabs{gap:4px;padding:4px 0;align-items:center}.toolbar #tabs button{padding:10px 12px}.scope-divider{margin:0 5px}.scope-label{font-size:8px}.map-controls{width:100%;gap:8px;justify-content:flex-start}.map-controls #year{margin-left:auto;padding:8px;font-size:10px}.map-tabs button{padding:8px 10px;font-size:11px}.size-tabs button{padding:8px;font-size:9px}.monthly.weekly-map:not(.compact-map) #heatmap{grid-auto-rows:68px}.monthly .heat-footer{margin-top:16px}.analytics #journey{max-height:390px}.analytics .quote{margin-top:18px}.analytics .section-title{margin-bottom:16px}#rules[open]{padding:20px 16px;max-height:88dvh;width:calc(100vw - 24px)}#rules .settings-body{min-height:180px;padding-top:10px}.weekday-picker{gap:4px}.weekday-picker span{font-size:10px;padding:10px 1px}.exception-editor{flex-wrap:wrap}.exception-editor input{width:44%}.exception-editor select{width:auto;min-width:85px}.exception-editor button{padding:6px}.monthly .cell small{opacity:.8}}
.annual:not(.monthly):not(.compact-map) #heatmap{grid-auto-columns:23px}.annual:not(.monthly):not(.compact-map) .cell{height:23px;border-radius:5px}.annual:not(.monthly):not(.compact-map) .heat-wrap{min-width:1510px}.annual:not(.monthly):not(.compact-map) #months{min-width:1480px}.annual:not(.monthly).compact-map #heatmap{grid-auto-columns:13px}.annual:not(.monthly).compact-map .heat-wrap{min-width:923px}.annual:not(.monthly).compact-map #months{min-width:897px}
.ui-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex:0 0 auto}.nav,.toolbar #tabs button{display:flex;align-items:center;gap:8px}.toolbar #tabs button .ui-icon{width:17px;height:17px}.stat .icon .ui-icon{width:25px;height:25px}.category-stat .ui-icon{width:15px;height:15px;margin-right:7px}.category-icon-button{width:37px;min-width:37px;height:37px;border:1px solid #dfe7dc;border-radius:8px;background:#f5f8f1;color:#628273;display:inline-flex;align-items:center;justify-content:center}.icon-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.icon-choices button{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 8px;border:1px solid #e4eadd;border-radius:9px;color:#698676}.icon-choices span{font-size:10px}.icon-choices .ui-icon{width:25px;height:25px}.icon-choices button.chosen{background:#e7f1e8;border-color:#8cbaa1;color:#386c53}.time-toolbar{display:flex;align-items:flex-end;gap:14px;margin:-6px 0 23px;padding:15px 18px;border:1px solid #e3e9df;border-radius:9px;background:#ffffff80;flex-wrap:wrap}.time-toolbar label{font-size:10px;color:#7d8f7b;display:flex;align-items:center;gap:9px}.time-toolbar select{font-size:11px;min-width:95px}.time-toolbar label:first-child select{min-width:165px}#timeSummary{font-size:9px;color:#98a58e;flex:1;min-width:180px;margin:0;line-height:1.8;align-self:center}.map-guide{font-size:10px;line-height:1.9;color:#8e9e87;margin:0 0 17px}.task{flex-wrap:wrap}.exclude-control{width:100%;display:flex;align-items:center;gap:6px;font-size:10px;color:#8a9b80;margin:0 0 0 40px;padding:4px 0 0;cursor:pointer}.exclude-control input{padding:0;margin:0;accent-color:#6a9982;width:13px;height:13px}.excluded-task{background:#f6f8f2;border-radius:6px;padding-left:9px;padding-right:9px}.excluded-task .task-name,.excluded-task .task-meta{color:#9aa58f}.excluded-task .task-value{opacity:.55}.excluded-task .check{opacity:.4}.day-preview{border:1px solid #dce8dc;background:#f4f8f1;border-radius:9px;padding:18px;margin-top:19px}.day-summary-head{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px}.day-summary-head b{font-weight:550}.day-summary-head>span{font-size:10px;color:#6f8e70}.day-summary-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.day-summary-counts span{padding:5px 8px;border-radius:4px;background:#ffffff90;font-size:10px;color:#79916f}.day-summary-list{padding:0;list-style:none;margin:13px 0 0}.day-summary-list li{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:9px 0;border-bottom:1px solid #e6eddf;color:#7e8e73}.day-summary-list b{font-size:10px;font-weight:400;white-space:nowrap}.day-preview-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px}.day-preview-actions>button:not(.primary){font-size:10px;color:#93a086}.day-preview-actions .primary{font-size:11px;padding:10px 14px}#dayTooltip{position:fixed;z-index:30;pointer-events:none;background:#fffffff5;backdrop-filter:blur(12px);box-shadow:0 8px 28px #294c2c24;border:1px solid #d9e5d6;border-radius:9px;padding:15px;width:284px;max-width:calc(100vw - 16px)}#dayTooltip .day-summary-head{font-size:11px}#dayTooltip .day-summary-counts span{background:#eef4e8;font-size:9px}#yearLayout{font-size:10px;padding:8px 9px;max-width:185px}.year-months-layout .heat-scroll{overflow:visible;padding:0}.year-months-layout #yearMonths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.mini-month{padding:13px 11px;background:#ffffff80;border:1px solid #e6ece1;border-radius:9px;min-width:0}.mini-month h3{font-size:12px;font-weight:550;margin:0 0 12px;color:#56775e}.mini-week,.mini-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mini-week{font-size:8px;text-align:center;color:#a1ae97;margin-bottom:7px}.mini-days .cell{width:100%;height:24px;min-width:0;padding:0;border-radius:4px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff65;color:var(--text-full);box-shadow:inset 0 1px 0 #ffffff70}.mini-days .day-number{font-size:9px;font-weight:500}.mini-days .cell.selected{outline:2px solid #6a9277;outline-offset:1px}.year-months-layout.compact-map #yearMonths{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.year-months-layout.compact-map .mini-month{padding:12px}.year-months-layout.compact-map .mini-days,.year-months-layout.compact-map .mini-week{grid-template-columns:repeat(7,13px);gap:4px;width:max-content}.year-months-layout.compact-map .mini-days .cell{height:13px;width:13px;min-width:0;border-radius:3px}.annual.github-layout{--map-cell:23px;--map-gap:5px}.annual.github-layout.compact-map{--map-cell:13px;--map-gap:4px}.annual.github-layout .heat-wrap{min-width:0!important;width:max-content;gap:8px}.annual.github-layout #heatmap{flex:none;grid-template-rows:repeat(7,var(--map-cell));grid-auto-columns:var(--map-cell);gap:var(--map-gap)}.annual.github-layout #heatmap .cell{height:var(--map-cell);width:var(--map-cell);min-width:0}.annual.github-layout .weekdays{display:grid;width:32px;grid-template-rows:repeat(7,var(--map-cell));gap:var(--map-gap);padding:0;font-size:9px;align-items:center;flex-shrink:0}.annual.github-layout #months{min-width:0;width:max-content;display:grid;grid-template-columns:repeat(var(--week-cols),var(--map-cell));column-gap:var(--map-gap);margin-left:40px;margin-bottom:12px;font-size:9px}.annual.github-layout #months span{white-space:nowrap;overflow:visible}
@media(max-width:1100px){.year-months-layout #yearMonths,.year-months-layout.compact-map #yearMonths{grid-template-columns:repeat(3,minmax(0,1fr))}.year-months-layout.compact-map .mini-month{padding:10px 8px}}
@media(max-width:760px){.time-toolbar{padding:13px 12px;gap:10px;margin-top:0;margin-bottom:18px;align-items:stretch}.time-toolbar label{flex:1;flex-direction:column;align-items:stretch;gap:6px}.time-toolbar select{width:100%;min-width:0!important;padding:9px}.time-toolbar label:first-child{flex:1.8}#timeSummary{flex:0 0 100%;font-size:8px}.year-months-layout #yearMonths,.year-months-layout.compact-map #yearMonths{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-month{padding:12px 7px}.mini-week,.mini-days{gap:3px}.mini-days .cell{height:23px}.mini-days .day-number{font-size:8px}.mini-month h3{font-size:11px}.year-months-layout.compact-map .mini-days,.year-months-layout.compact-map .mini-week{grid-template-columns:repeat(7,12px);gap:3px}.year-months-layout.compact-map .mini-days .cell{width:12px;height:12px}.year-months-layout.compact-map .mini-month{padding:11px 7px}.map-guide{font-size:9px;line-height:1.9}.day-preview{padding:14px 12px}.day-summary-head{font-size:11px;gap:7px;flex-wrap:wrap}.day-summary-list li{font-size:10px}.day-preview-actions .primary{font-size:10px;padding:10px}.exclude-control{margin-left:35px;font-size:10px}.task{padding-bottom:14px}.task .task-info{min-width:calc(100% - 85px)}.category-create{flex-wrap:wrap}.category-create input{min-width:100px}.category-manager-row>.category-icon-button{width:32px;min-width:32px;height:32px}.icon-choices{gap:8px}.icon-choices button{padding:13px 5px}.toolbar #tabs .ui-icon{width:15px;height:15px}.toolbar #tabs button{gap:5px}#yearLayout{max-width:none;width:100%;order:3}.map-controls{justify-content:flex-start}}
@media(max-width:360px){.year-months-layout #yearMonths{gap:7px}.mini-days .cell{height:19px}.mini-month{padding:10px 5px}.mini-week,.mini-days{gap:2px}.mini-days .day-number{font-size:7px}.icon-choices{grid-template-columns:repeat(3,1fr)}}
.mini-days .cell.inactive{border:1px dashed #dce5d9;background:#f7faf6}.mini-days .cell.future{background:#edf2ee;opacity:.5}.time-toolbar #year{background:#fff}
.account-trigger{display:flex;align-items:center;gap:10px;padding:0;border-radius:24px}.account-trigger .avatar{display:flex;align-items:center;justify-content:center;width:39px;height:39px;padding:0;font-size:23px;line-height:1}.account-nickname{font-size:11px;color:#7d927c;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-locked aside,.auth-locked main>*:not(header){display:none!important}.auth-locked main{margin-left:0;max-width:none;padding:0 40px}.auth-locked header{max-width:1180px;margin:auto}.auth-landing{max-width:620px;margin:75px auto 60px;text-align:center;padding:0 24px}.auth-landing-mark{font-size:49px;margin-bottom:27px}.auth-landing .eyebrow{font-size:9px;letter-spacing:3px}.auth-landing h1{font-size:31px;margin:20px auto 15px;font-weight:550;max-width:none}.auth-landing>p{font-size:13px}.auth-landing-actions{display:flex;justify-content:center;gap:12px;margin:30px 0 24px}.secondary{display:inline-flex;align-items:center;justify-content:center;background:white;border:1px solid #dce6d7;border-radius:7px;padding:12px 18px;color:#607c58;font-size:12px}.auth-landing-actions .primary,.auth-landing-actions .secondary{padding:14px 22px;font-size:12px}.local-account-note{font-size:10px!important;color:#9aa790;line-height:1.8;margin-top:20px}.account-dialog{width:460px;max-height:88dvh;overflow:auto}.account-tabs{display:flex;gap:3px;margin:22px 0 20px;flex-shrink:0}.account-tabs button{flex:1;padding:10px 8px;font-size:12px}.account-dialog label{font-size:11px}.account-dialog form>.primary{margin-top:12px}.account-error{font-size:11px;color:#ad625e;background:#fbefec;border:1px solid #f0dad4;padding:10px 12px;border-radius:6px;line-height:1.8;margin:12px 0}.account-dialog button:disabled{opacity:.6;cursor:wait}.forgot-password{display:block;font-size:10px;color:#809674;padding:7px 0;margin-top:16px;text-align:left}.import-legacy{display:flex!important;align-items:flex-start;gap:8px;padding:12px;background:#f2f7ed;border-radius:7px;font-size:10px!important;line-height:1.8;color:#728e63}.import-legacy input{display:inline-block;width:14px;height:14px;margin:2px 0 0;accent-color:#558565;flex:0 0 auto}.avatar-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:0 0 18px}.avatar-choices button{padding:10px 5px;border:1px solid #e3eadb;border-radius:9px;display:flex;flex-direction:column;align-items:center;gap:8px}.avatar-choices button.selected{background:#f0f6e9;border-color:#8db57e;box-shadow:inset 0 0 0 1px #8db57e}.avatar-choices button>span{width:45px;height:45px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:29px}.avatar-choices small{font-size:9px;color:#98a38f}.account-action-card{border:1px solid #e3eadc;border-radius:8px;padding:18px}.account-action-card h3{font-size:13px;margin:0 0 8px;font-weight:550}.account-action-card p{font-size:11px;margin-bottom:14px}.delete-account{margin:24px 0 0;border:1px solid #eddbd4;border-radius:8px;padding:16px;background:#fdf8f5}.delete-account summary{color:#ab7669;font-size:12px;cursor:pointer}.delete-account p{font-size:11px;line-height:1.9;color:#a5897c;margin-top:13px}.delete-account strong{font-weight:550;color:#9c6f61}.delete-account label{color:#9a8073}.danger-button{background:#aa6d61;border-radius:6px;color:white;font-size:12px;padding:12px 17px;width:100%;margin-top:10px}.recovery-email{display:flex;flex-direction:column;gap:8px;border-radius:8px;background:#f2f7ed;padding:18px;margin:22px 0}.recovery-email span{font-size:10px;color:#91a181}.recovery-email strong{font-size:16px;font-weight:500;color:#55734b;overflow-wrap:anywhere}.recovery-checklist{font-size:12px;line-height:2.1;color:#8c9a80;padding-left:18px;margin:20px 0}.account-dialog a.primary{display:block;text-align:center;text-decoration:none;font-size:12px;margin-top:20px}.account-dialog input[readonly]{color:#98a48f;background:#f7f9f3}#profileUsername{cursor:default}@media(max-width:760px){.auth-locked main{padding:0 18px}.auth-landing{margin-top:60px}.auth-landing h1{font-size:25px!important;max-width:none!important;line-height:1.6}.auth-landing-actions{gap:10px;flex-wrap:wrap}.auth-landing-actions .primary,.auth-landing-actions .secondary{font-size:11px;padding:13px 17px}.auth-landing>p{font-size:11px}.account-nickname{max-width:80px;font-size:10px}.account-trigger{gap:7px}.account-trigger .avatar{width:34px;height:34px;font-size:21px}.account-dialog{padding:22px 18px;max-width:calc(100vw - 28px)}.avatar-choices{gap:7px}.avatar-choices button>span{width:40px;height:40px;font-size:26px}.account-tabs button{font-size:11px}.auth-landing-mark{font-size:42px}.recovery-email strong{font-size:14px}}
.import-legacy[hidden]{display:none!important}
.header-actions{display:flex;align-items:center;gap:24px;flex-shrink:0}.header-breadcrumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-settings{display:flex;align-items:center;gap:6px;padding:7px 0;font-size:14px;color:#7d8f7b;white-space:nowrap}.header-settings .ui-icon{width:16px;height:16px;vertical-align:middle}#settingsGear{display:flex;align-items:center}.home-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.quiet-action{font-size:11px;color:#7a9373;padding:10px 2px;text-decoration:none}.intro .home-actions .primary{min-width:120px;padding:13px 20px}.minor-action{font-size:10px;color:#829574;padding:7px 0;white-space:nowrap;margin-left:auto}.daily>.section-title{flex-wrap:wrap;gap:10px}.daily .date-actions{margin-left:auto}.ignore-day{display:inline-block;margin:7px 0 0;padding:0;font-size:9px;line-height:1.8;color:#99a78e;text-decoration:underline;text-decoration-color:#cbd7c4;text-underline-offset:3px}.ignore-day:hover{color:#66865d}.excluded-task .ignore-day{color:#6f9270}.empty-create{font-size:12px;color:#54825b;border:1px dashed #b5cdaa;border-radius:7px;background:#f4f8ef;width:100%;padding:16px;margin:0 0 8px}.local-note{margin-top:auto}.brand .brand-logo{width:36px;height:40px;display:flex;align-items:center;justify-content:center;font-size:32px;letter-spacing:0;flex-shrink:0}.brand .brand-logo .ui-icon{width:34px;height:34px}.brand-logo img{width:36px;height:40px;object-fit:contain}.brand .brand-words{display:block}.brand-words b{font-size:25px;font-weight:600;display:block}.brand-words small{display:block}.intro.intro-empty{justify-content:flex-end;margin-top:22px;margin-bottom:22px}.intro.intro-empty .home-actions{margin-left:auto}#sideTitle,#heroTitle,#heroSubtitle,#growthQuote{white-space:pre-line}.side-note #sideTitle{font:inherit}.side-note #sideSubtitle{font-size:10px}#siteSettings textarea{display:block;width:100%;resize:vertical;font:inherit;font-size:12px;line-height:1.8;color:#59705d;padding:10px 12px;margin-top:8px;border:1px solid #e1e6dd;border-radius:6px;background:white;outline-color:var(--green)}#siteSettings input,#siteSettings select{font-size:12px}.site-subtabs{display:flex;margin:15px 0}.site-subtabs button{flex:1;font-size:11px;padding:9px}.site-logo-preview{display:flex;gap:12px;align-items:center;min-height:65px;background:#f4f8ef;border:1px solid #e1e9dc;border-radius:8px;padding:13px;margin:15px 0}.preview-logo{display:flex;align-items:center;justify-content:center;font-size:30px;color:#508161;width:36px;height:36px}.preview-logo .ui-icon{width:30px;height:30px}.preview-logo img{width:36px;height:36px;object-fit:contain}.preview-brand b{font-size:17px;color:#547d59;font-weight:550;display:block}.preview-brand small{font-size:8px;letter-spacing:2px;color:#93a285;display:block;margin-top:6px}#siteLogoImageLabel .hint{display:block;font-size:10px;margin-top:7px}#siteLogoImageLabel input{font-size:10px;padding:9px}.auth-landing-mark{display:flex;justify-content:center;align-items:center;min-height:44px}.auth-landing-mark .ui-icon,.auth-landing-mark img{width:52px;height:52px;object-fit:contain}.auth-landing-mark:empty{display:none}
@media(min-width:761px){.daily .date-actions{width:auto}.intro-copy{min-width:0}.intro-copy h1{overflow-wrap:anywhere}}
@media(max-width:1100px){.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.toolbar #tabs{display:flex;flex-wrap:nowrap!important;grid-column:1/-1;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;gap:5px;padding:4px 0 8px;scrollbar-width:thin}.toolbar #tabs button{flex:0 0 auto;white-space:nowrap}.toolbar #tabs .scope-label{display:none}.toolbar #tabs .scope-divider{margin:0 4px}.toolbar #tabs .overview-tab{position:sticky;left:0;z-index:2;background:#fff;box-shadow:5px 0 8px #f7f8f3}.toolbar #tabs .overview-tab.selected{background:#315f50;color:#fff}.toolbar #taskFilter{grid-column:1;grid-row:2;width:100%;min-width:0}.toolbar #categoryEntry{grid-column:2;grid-row:2;padding:8px 2px;justify-self:end}.toolbar #archivedFilter{flex:0 0 105px;min-width:105px;max-width:105px;width:105px}.intro{gap:15px}.home-actions{gap:10px}.intro .home-actions .primary{min-width:105px;font-size:12px;padding:12px 14px}}
@media(max-width:760px){aside #ruleBtn{display:none}.header-actions{gap:14px}.header-settings{font-size:11px;padding:6px 0;gap:5px}.header-settings .ui-icon{width:14px;height:14px}.home-actions{flex-direction:column-reverse;align-items:flex-end;gap:5px;margin-top:24px}.intro .home-actions .primary{min-width:95px;padding:11px 13px;margin-top:0!important;font-size:11px}.home-actions .quiet-action{font-size:9px;padding:4px}.intro.intro-empty .home-actions{flex-direction:row;margin-top:0;align-items:center;gap:14px}.intro.intro-empty{margin-top:20px}.intro .intro-copy h1{max-width:240px!important;font-size:20px!important}.intro-copy{min-width:0;flex:1}.intro .intro-copy p{max-width:240px;font-size:10px}.minor-action{font-size:10px}.daily>.section-title>div:first-child{flex:1;min-width:0}.daily>.section-title>.date-actions{flex:0 0 100%;margin-left:0}.daily>.section-title .minor-action{margin-left:0}.ignore-day{font-size:9px}.task-info .ignore-day{margin-top:5px}.header-breadcrumb em{margin-left:8px;margin-right:8px}#siteAdminTab{font-size:11px}.site-subtabs button{font-size:10px}#siteSettings .hint{font-size:10px}.toolbar #tabs .overview-tab{padding-left:11px;padding-right:11px}.toolbar #tabs button{padding-top:9px;padding-bottom:9px}.brand-words b{font-size:20px}}
.header-actions #ruleBtn{margin:0}.site-subtabs button{white-space:nowrap}@media(max-width:760px){footer{flex-direction:column;gap:6px}footer span:not([hidden]){display:block}}
.brand .brand-words{min-width:0;overflow:hidden}.brand-words b{overflow-wrap:anywhere;line-height:1.4}.brand-words small{overflow-wrap:anywhere}
/* Account and site administration */
.pony-avatar{width:100%;height:100%;display:block}.avatar .pony-avatar{min-width:28px}.auth-landing-mark>.pony-avatar{width:68px;height:68px}.experience-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:24px}.experience-actions button,.admin-entry{font-size:12px;color:#5f826e}.admin-entry{margin:20px auto 0}#leaveGuest{font-size:11px;color:#7c9084;white-space:nowrap}body.admin-mode>aside,body.admin-mode>main,body.admin-mode>#authLanding{display:none!important}.admin-page{max-width:1120px;margin:auto;padding:0 40px 60px}.admin-header{height:112px}.admin-header h1{font-size:25px;margin:9px 0}.admin-header-actions{display:flex;gap:12px}.admin-context{display:flex;align-items:center;gap:16px;margin:28px 0 20px}.admin-context b{font-size:17px}.admin-context span{font-size:11px;color:var(--muted)}.admin-tabs{gap:5px;background:#e8eee8;margin-bottom:22px}.admin-tabs button{flex:1;padding:13px}.admin-panel{padding:30px;min-height:300px}.admin-panel h3{font-size:14px;font-weight:550;margin-top:25px}.admin-panel p{max-width:760px}.admin-panel hr{border:0;border-top:1px solid var(--line);margin:28px 0}.admin-field,.admin-panel #siteSettings label{display:block;font-size:12px;margin:20px 0;color:#63776a}.admin-field input,.admin-field select,.admin-panel #siteSettings label input,.admin-panel #siteSettings label select{display:block;width:100%;margin-top:9px;max-width:650px;padding:11px 12px}.admin-toggle{display:flex;gap:9px;align-items:center;font-size:12px;padding:14px;background:#f0f5ee;border-radius:7px;max-width:650px}.admin-toggle input{accent-color:var(--green);width:16px;height:16px}.admin-panel .site-subtabs{max-width:650px;margin:25px 0}.admin-panel #siteSettings textarea{max-width:650px}.admin-save{position:sticky;bottom:0;background:#fffE;border-top:1px solid var(--line);padding:16px 0 0;margin-top:22px;backdrop-filter:blur(8px)}.admin-save .primary{min-width:130px}.admin-gate{max-width:650px;margin:55px auto}.admin-gate p{margin:18px 0}.admin-gate button{margin:10px 10px 0 0}.admin-status{margin:18px 0;color:#50775f;font-size:12px}.user-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;min-width:530px}.user-table-wrap{overflow:auto}.user-table th{color:#89998e;font-size:11px;font-weight:500;background:#f5f7f1}.user-table td,.user-table th{padding:16px 12px;border-bottom:1px solid var(--line)}.user-table small,.site-row small{display:block;color:#93a090;font-size:10px;margin-top:7px}.user-identity{display:flex;gap:10px;align-items:center}.user-identity .avatar{display:flex;width:39px;height:39px;padding:2px;align-items:center;justify-content:center;font-size:25px;flex-shrink:0}.user-identity b{font-weight:500}.site-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.site-row b{font-size:13px;overflow-wrap:anywhere}.site-row>span{font-size:11px;color:#78927c}.backup-box{padding:20px;border:1px solid var(--line);border-radius:9px;margin-top:24px;background:#fafbf7}.backup-box h3{margin:0 0 12px}.backup-box .primary{margin-top:12px}.admin-panel button:disabled{opacity:.5;cursor:default}.time-toolbar #jumpToday{border:1px solid #dbe5db;border-radius:6px;padding:9px 12px;background:#fff;white-space:nowrap}.category-overflow{position:absolute;z-index:5;top:100%;left:0;right:0;padding:14px;display:flex;flex-wrap:wrap;gap:8px;border:1px solid #dce6da;border-radius:10px;background:#fff;box-shadow:0 10px 30px #29452d15}.category-overflow button{padding:10px 13px;border-radius:6px;background:#f3f6ef;display:flex;align-items:center;gap:6px}.category-overflow .ui-icon{width:16px;height:16px}.toolbar{position:relative}.toolbar #tabs button[hidden]{display:none!important}.admin-page [hidden],.category-overflow[hidden]{display:none!important}
@media(max-width:1100px){.toolbar #tabs{flex-wrap:wrap!important;overflow:visible;white-space:normal;gap:5px;align-content:start;max-height:none}.toolbar #tabs .overview-tab{position:static;box-shadow:none}.toolbar #tabs .scope-divider,.toolbar #tabs .scope-label{display:none}.toolbar #tabs button{padding:9px 12px;height:36px}.toolbar #tabs #archivedFilter{height:36px;width:auto;min-width:85px;flex:0 0 auto;order:5}.toolbar #tabs [data-more-categories]{background:#e9efe5;font-size:11px}.toolbar #taskFilter{grid-row:auto}.toolbar #categoryEntry{grid-row:auto}.time-toolbar{flex-wrap:wrap}.admin-page{padding:0 24px 40px}}
@media(max-width:760px){.admin-page{padding:0 15px 35px}.admin-header{height:100px;gap:10px}.admin-header h1{font-size:22px}.admin-header-actions{gap:7px}.admin-header-actions .secondary{font-size:10px;padding:10px}.admin-context{align-items:flex-start;flex-direction:column;gap:8px;margin:22px 0 18px}.admin-tabs{gap:0;padding:4px}.admin-tabs button{font-size:10px;padding:12px 4px;white-space:nowrap}.admin-panel{padding:20px 16px}.admin-panel .site-subtabs button{font-size:11px;padding:10px 6px}.admin-field{font-size:11px}.admin-gate{margin-top:30px;padding:24px 20px}.backup-box{padding:16px}.user-table td,.user-table th{padding:13px 8px}.site-row .secondary{font-size:10px;padding:10px;white-space:nowrap}.auth-landing-mark>.pony-avatar{width:62px;height:62px}.time-toolbar #jumpToday{font-size:10px}.home-actions{flex-direction:row;align-items:center;margin-top:0}.header-actions{gap:10px}}

@media(max-width:1100px){.toolbar #taskFilter,.toolbar #categoryEntry{grid-row:2}.toolbar #taskFilter{grid-column:1}.toolbar #categoryEntry{grid-column:2}.toolbar #tabs{grid-row:1}}

@media(max-width:1100px){.toolbar #tabs [data-more-categories]{order:6}.toolbar #tabs button{max-width:100%}.toolbar #tabs button span{overflow:hidden;text-overflow:ellipsis}.toolbar #tabs{align-items:center}}
/* Keep the category actions together at the right edge. */
.toolbar{align-items:center}.toolbar #tabs{flex:1;min-width:0}.habit-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;flex-shrink:0}.toolbar .habit-filter-actions #categoryEntry{padding:8px 0;flex-shrink:0}.toolbar .habit-filter-actions #taskFilter{width:200px;min-width:0;margin:0}.annual .map-controls #jumpToday{border:1px solid #dce5dc;border-radius:6px;padding:9px 12px;font-size:11px;white-space:nowrap;background:#fff}.monthly.compact-map .calendar-surface{width:100%;max-width:360px;margin:10px auto 22px;padding:22px 24px 18px;border:1px solid #e9eee7;border-radius:12px;background:#f7f9f5}.monthly.compact-map .calendar-nav{justify-content:center;gap:12px;margin-bottom:10px}.monthly.compact-map .calendar-nav>span{flex:0 0 100%;width:100%;text-align:center;margin:3px 0 0}.monthly.compact-map .map-guide{text-align:center;font-size:10px;line-height:1.8;margin:10px 0 16px}.monthly.compact-map .heat-scroll{padding:8px 0 10px;min-height:0}.monthly.compact-map #months{margin:0 auto 10px}.monthly.compact-map .heat-wrap{margin:0 auto}.monthly.compact-map #months,.monthly.compact-map #heatmap{grid-template-columns:repeat(7,18px);gap:7px}.monthly.compact-map #heatmap{grid-auto-rows:18px}.year-months-layout.compact-map .mini-week,.year-months-layout.compact-map .mini-days{margin-left:auto;margin-right:auto}
@media(max-width:1100px){.toolbar{grid-template-columns:minmax(0,1fr)}.toolbar .habit-filter-actions{grid-column:1/-1;grid-row:2;justify-self:end;max-width:100%}.toolbar .habit-filter-actions #taskFilter{width:min(240px,58vw);grid-row:auto;grid-column:auto}.toolbar .habit-filter-actions #categoryEntry{grid-row:auto;grid-column:auto;justify-self:auto}.toolbar #tabs{width:100%}}
@media(max-width:760px){.habit-filter-actions{gap:10px}.monthly.compact-map .calendar-surface{max-width:340px;padding:20px 18px 16px}.annual .map-controls #jumpToday{font-size:10px;padding:9px 10px}.monthly.compact-map .map-guide{font-size:9px}.monthly.compact-map #months{font-size:10px}}
.monthly.compact-map .calendar-nav{flex-wrap:wrap}.monthly.compact-map .calendar-nav button{flex:0 0 32px}.monthly.compact-map .calendar-nav strong{flex:0 0 auto;white-space:nowrap;text-align:center}

/* Platform identity is separate from habit navigation and settings. */
.platform-bar{height:80px;padding:0 38px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.platform-bar .brand{margin:0;gap:12px}.platform-bar .brand-words b{font-size:24px}.platform-account{display:flex;align-items:center;gap:16px}.platform-bar .account-trigger{padding:8px 0 8px 12px}.platform-bar .account-nickname{font-size:12px}aside{top:80px;padding-top:28px}main>header{height:66px}.auth-locked main>header{max-width:none}.auth-locked main{max-width:1180px;margin:auto}#syncWarning{padding:12px 16px;border:1px solid #e7c9a4;background:#fff9ed;color:#865f37;border-radius:7px;font-size:12px;margin:20px 0;line-height:1.8}#syncWarning button{text-decoration:underline;margin-left:12px}.platform-bar .brand .brand-logo{width:34px;height:38px}.platform-bar .brand .brand-logo img{max-width:34px;max-height:38px}
@media(max-width:760px){aside{display:none}.platform-bar{height:72px;padding:0 18px;gap:12px}.platform-bar .brand-words b{font-size:21px}.platform-bar .brand-words small{font-size:6px}.platform-bar .brand{gap:8px}.platform-account{gap:10px}.platform-bar .account-nickname{font-size:10px;max-width:80px}.platform-bar .brand-logo{width:28px!important}.platform-bar .account-trigger .avatar{width:34px;height:34px}main>header{height:56px}.auth-locked main{padding:0 18px}.auth-landing{margin-top:35px}.platform-bar #leaveGuest{font-size:10px}}
/* Calendar first; recording lives in its own dialog. */
.intro.top-motto{margin:14px 0 18px;gap:16px;align-items:center;min-height:26px}.intro.top-motto #heroEyebrow,.intro.top-motto #heroSubtitle{display:none}.intro.top-motto .intro-copy{flex:1;min-width:0}.intro.top-motto h1{font-size:14px;line-height:1.8;font-weight:400;letter-spacing:.2px;margin:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#768773}.intro.top-motto .home-actions{margin:0;flex-direction:row;gap:0;align-items:center}.motto-label{font-size:10px;padding:6px 9px;border:1px solid #e0e8dc;border-radius:6px;color:#8b9c83;white-space:nowrap}.annual>.section-title{display:flex;flex-direction:row;align-items:center;gap:18px;margin-bottom:20px}.annual>.section-title>div:first-child{min-width:0;flex:1}.annual>.section-title>#recordToday{flex-shrink:0;margin:0}.annual>.toolbar{margin:0 0 12px}.annual>.map-controls{width:100%;margin:0 0 12px;justify-content:flex-end;gap:8px}.annual .calendar-surface{margin-top:8px}.time-toolbar{margin-top:22px;margin-bottom:18px}.stats{margin-bottom:24px}main>.analytics{margin-top:0;margin-bottom:24px}main>.analytics .quote{display:none!important}main>.analytics #categoryStats{max-width:none}.toolbar .habit-filter-actions #taskFilter{width:158px}.toolbar .habit-filter-actions{gap:10px}
.record-dialog{width:790px;max-width:calc(100vw - 28px);max-height:90dvh;overflow:auto;padding:0}.record-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fffffff5;backdrop-filter:blur(8px);z-index:2}.record-dialog-top>span{font-size:11px;letter-spacing:1px;color:#8d9e86}.record-dialog>.daily{border:0;border-radius:0;padding:23px 26px}.record-dialog .daily>.section-title{align-items:center}.record-dialog .daily .date-actions{width:auto;flex:initial}.record-dialog .daily input[type=date]{width:auto;max-width:160px}.record-dialog .record-toolbar label{margin:0;font-size:10px}.record-dialog .record-toolbar input{width:auto;display:inline;margin:0 5px 0 0}.record-dialog .task-info{min-width:0}.record-dialog .task-value{width:78px;margin:0}.record-dialog .task{flex-wrap:nowrap}.record-dialog .task .check{display:inline-flex;align-items:center;justify-content:center}.record-dialog .task-unit{min-width:40px}.record-dialog-footer{padding:15px 24px;background:#fffffff5;backdrop-filter:blur(8px);border-top:1px solid var(--line);position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:2}.record-dialog-footer>span{font-size:10px;color:#8c9c84}.record-dialog-footer .primary{width:auto;min-width:100px;margin:0;padding:11px 20px}.record-dialog .daily-foot{padding-top:16px}.record-dialog .task-value:disabled{opacity:.55}#mottoSettings textarea{width:100%;display:block;margin-top:8px;resize:vertical;border:1px solid #e1e6dd;border-radius:6px;font:inherit;line-height:1.8;color:inherit;padding:10px 12px}.motto-preview{white-space:pre-line;padding:15px;background:#f4f7ef;border-radius:7px;color:#6c8468;font-size:12px}
@media(max-width:1100px){.annual>.toolbar{gap:8px}.toolbar .habit-filter-actions #taskFilter{width:158px}.annual>.map-controls{justify-content:flex-end}}
@media(max-width:760px){.intro.top-motto{margin:10px 0 15px;gap:10px}.intro.top-motto .intro-copy h1{font-size:12px!important;max-width:none!important;line-height:1.8}.intro.top-motto .home-actions{margin:0}.motto-label{font-size:9px;padding:5px 7px}.annual>.section-title{gap:10px;align-items:center;margin-bottom:14px}.annual>.section-title h2{font-size:15px}.annual>.section-title>#recordToday{font-size:11px;padding:11px 13px;min-width:96px}.annual>.section-title p{font-size:9px;line-height:1.7}.annual>.map-controls{justify-content:flex-end;gap:6px;margin-top:4px}.annual>.map-controls .tabs button{padding:8px 11px}.toolbar .habit-filter-actions #taskFilter{width:132px;font-size:10px;padding:9px 8px}.toolbar .habit-filter-actions #categoryEntry{font-size:10px}.annual>.toolbar{margin-bottom:10px}.time-toolbar{margin-top:18px}.record-dialog{max-height:94dvh;max-width:calc(100vw - 16px);border-radius:12px}.record-dialog-top{padding:12px 16px 9px}.record-dialog>.daily{padding:18px 16px}.record-dialog .daily>.section-title{gap:10px}.record-dialog .daily .date-actions{flex:0 0 100%;width:100%;margin-left:0;justify-content:flex-start}.record-dialog .task{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;gap:8px}.record-dialog .task .check{grid-column:1;grid-row:1}.record-dialog .task-info{grid-column:2;grid-row:1;min-width:0!important}.record-dialog .task .edit{grid-column:3;grid-row:1}.record-dialog .task-value{grid-column:2;grid-row:2;width:76px;justify-self:start}.record-dialog .task-unit{grid-column:2;grid-row:2;margin-left:88px;font-size:10px;align-self:center}.record-dialog .task-name{font-size:12px}.record-dialog .task-meta{font-size:9px;line-height:1.7}.record-dialog-footer{padding:13px 16px}.record-dialog-footer .primary{font-size:11px;min-width:82px;padding:10px 15px}.record-dialog-footer>span{font-size:9px}.record-dialog .task-unit br{display:none}}

/* Stable category summaries and compact, unbroken target labels. */
.category-stat.active-category{background:#f1f6ed;border-radius:7px;box-shadow:inset 3px 0 #a8c7ae;padding:12px}.category-stat .bar{display:block}.category-stat .bar>span{display:block;height:100%;border-radius:inherit}.record-dialog .task-unit{white-space:nowrap;min-width:max-content;flex:0 0 auto}.record-dialog #date{font:inherit;font-size:11px;white-space:nowrap;min-height:38px;padding:0 10px;color:#647e60;border:1px solid #e1e8dc;background:#f8faf5}
#toast{inset:auto auto 26px 50%;margin:0;border:0;max-width:calc(100vw - 32px);width:max-content;box-sizing:border-box;text-align:center;font-size:12px;line-height:1.7;pointer-events:none;z-index:2147483647}#toast:popover-open{display:block}
.record-date-picker{width:370px;max-width:calc(100vw - 24px);padding:22px;box-sizing:border-box}.record-date-picker h2{font-size:16px}.date-picker-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:22px 0 16px}.date-picker-nav select{min-width:0;font-size:12px;padding:10px 8px;border:1px solid #e1e8dc;border-radius:6px;background:#f7faf3;color:#58765e}.date-picker-nav button{min-width:36px;min-height:40px;border-radius:6px;background:#f0f5eb;font-size:20px}.date-picker-week,.date-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.date-picker-week{font-size:10px;color:#98a48e;margin-bottom:10px}.date-picker-days button{min-height:40px;border-radius:7px;font-size:12px;color:#5a765e}.date-picker-days button:hover{background:#eff5e9}.date-picker-days button.is-today{box-shadow:inset 0 0 0 1px #b2ccb3}.date-picker-days button[aria-current]{background:#668b73;color:white}.date-picker-days button:disabled{opacity:.25}.date-picker-foot{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:20px}.date-picker-foot span{font-size:9px;color:#95a18b}.date-picker-foot button{font-size:11px;padding:9px 12px;border-radius:6px;background:#edf4e7;color:#63815f}@media(max-width:760px){.record-dialog .task-unit{justify-self:start;width:max-content;max-width:none;margin-left:88px}.record-dialog .task .edit{min-width:24px}.record-date-picker{padding:18px}}

/* Keep the compact tool at the right edge across one or two category rows. */
.annual>.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:14px;position:relative}.annual>.toolbar #tabs{grid-column:1;grid-row:1;width:100%;min-width:0;flex-wrap:wrap;overflow:visible}.annual>.toolbar .habit-filter-actions{grid-column:2;grid-row:1;position:relative;align-self:center;justify-self:end;margin-left:0;max-width:100%}.habit-tools-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;max-width:180px;padding:9px 12px;border:1px solid #dfe7dc;border-radius:7px;background:#fff;color:#79906e;font-size:11px}.habit-tools-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.habit-tools-trigger.has-habit{color:#426e57;background:#eef5eb;border-color:#cbdcc8}.tools-chevron{flex-shrink:0;font-size:12px}.habit-tools-menu{position:absolute;top:calc(100% + 8px);right:0;width:242px;padding:7px;border:1px solid #dfe8da;border-radius:10px;background:#fff;box-shadow:0 12px 35px #28452f20;z-index:15}.habit-tools-menu[hidden],.habit-select-panel[hidden]{display:none!important}.toolbar .habit-tools-menu #categoryEntry,.tools-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px!important;text-align:left;font-size:12px;color:#637d5c;border-radius:6px}.tools-option:hover{background:#f1f6ed}.tools-option>span{font-size:11px;color:#9aab91}.habit-select-panel{padding:9px 10px 12px;border-top:1px solid #edf1e8}.habit-select-panel label{display:block;font-size:10px;color:#95a18a;margin-bottom:7px}.toolbar .habit-tools-menu #taskFilter{display:block;grid-column:auto;grid-row:auto;width:100%;font-size:11px;padding:10px}.time-toolbar .stats-habit-filter select{width:180px;max-width:100%;min-width:0}.stats-habit-filter{min-width:0}.annual>.toolbar .category-overflow{grid-column:1/-1}
/* Restore the opening motto's typographic hierarchy. */
.intro.top-motto{margin:30px 0 28px;gap:24px;align-items:center;min-height:110px}.intro.top-motto #heroEyebrow{display:block;font-size:9px;letter-spacing:2.8px;color:#99a68b;margin-bottom:13px}.intro.top-motto #heroSubtitle{display:block;font-size:11px;line-height:1.9;max-width:none;margin:12px 0 0;color:#98a38c}.intro.top-motto #heroEyebrow[hidden],.intro.top-motto #heroSubtitle[hidden]{display:none}.intro.top-motto .intro-copy h1{font-size:28px!important;line-height:1.6;font-weight:550;letter-spacing:.8px;color:#45664e;max-width:760px!important;-webkit-line-clamp:4;white-space:pre-line}.intro.top-motto .home-actions{align-self:center}.intro.top-motto .motto-label{padding:8px 11px;background:#ffffff70}
@media(max-width:1100px){.annual>.toolbar{grid-template-columns:minmax(0,1fr) auto;gap:8px}.annual>.toolbar #tabs{grid-column:1;grid-row:1}.annual>.toolbar .habit-filter-actions{grid-column:2;grid-row:1}.habit-tools-trigger{max-width:154px;padding:8px 10px;font-size:10px;gap:8px}}
@media(max-width:760px){.annual>.toolbar{column-gap:7px}.annual>.toolbar #tabs{gap:4px}.annual>.toolbar #tabs button{padding:8px 9px;font-size:10px}.annual>.toolbar #tabs .ui-icon{width:14px;height:14px}.habit-tools-trigger{max-width:118px;min-height:36px;padding:8px;font-size:10px;gap:6px}.habit-tools-menu{width:min(242px,calc(100vw - 64px))}.time-toolbar .stats-habit-filter{flex-wrap:wrap;gap:8px}.time-toolbar .stats-habit-filter select{width:170px}.intro.top-motto{margin:25px 0 25px;min-height:100px;gap:12px;align-items:flex-start}.intro.top-motto .intro-copy h1{font-size:22px!important;line-height:1.65;max-width:none!important;letter-spacing:.3px}.intro.top-motto #heroEyebrow{font-size:7px;letter-spacing:1.7px;line-height:1.8;margin-bottom:10px}.intro.top-motto #heroSubtitle{font-size:10px;margin-top:10px;line-height:1.8}.intro.top-motto .home-actions{align-self:flex-start;margin-top:27px}.intro.top-motto .motto-label{font-size:9px;padding:6px 7px}}

@media(max-width:380px){.habit-tools-trigger{max-width:100px}}

/* Motto spacing follows its actual content, with editing kept in Settings. */
.intro.top-motto{min-height:0;display:block}.intro.top-motto .intro-copy{width:100%}.intro.top-motto #heroTitle{margin:0}.intro.top-motto #heroEyebrow[hidden],.intro.top-motto #heroSubtitle[hidden]{display:none!important}.intro.top-motto.daily-motto{min-height:0}
@media(max-width:760px){
 .intro.top-motto{padding:0 16px;margin:26px 0;min-height:0}.intro.top-motto .intro-copy h1{font-size:22px!important;line-height:1.65}.intro.top-motto #heroEyebrow{font-size:10px;line-height:1.7;letter-spacing:1.5px}.intro.top-motto #heroSubtitle{font-size:12px;line-height:1.8}
 /* Functional text and supporting copy stay readable at normal phone scale. */
 .header-breadcrumb,.header-settings,.platform-account #leaveGuest,.account-nickname{font-size:12px}.brand-words small{font-size:9px}
 .annual>.section-title h2{font-size:16px}.annual>.section-title p{font-size:12px}.annual>.section-title>#recordToday{font-size:12px}.annual>.toolbar #tabs button,.habit-tools-trigger{font-size:12px}.habit-tools-trigger{max-width:136px;min-height:40px}.toolbar .habit-tools-menu #categoryEntry,.tools-option{font-size:13px}.habit-select-panel label{font-size:12px}.toolbar .habit-tools-menu #taskFilter{font-size:16px}
 .annual>.map-controls .tabs button,.annual .map-controls #jumpToday{font-size:12px;min-height:38px}.annual .map-controls .size-tabs button{padding-left:8px;padding-right:8px}.calendar-nav>span,.annual.monthly.compact-map .map-guide,.annual .map-guide{font-size:12px;line-height:1.8}.calendar-nav strong{font-size:15px}.heat-footer,.heat-footer .legend{font-size:11px;line-height:1.8}.annual.github-layout .weekdays,.annual.github-layout #months,.mini-week,.mini-days .day-number{font-size:10px}
 .time-toolbar label{font-size:12px}.time-toolbar select,.time-toolbar .stats-habit-filter select{font-size:16px}.time-toolbar label:first-child select{min-width:0;width:185px}.time-toolbar .stats-habit-filter select{width:185px}#timeSummary{font-size:12px;line-height:1.8}.stat label,.stat p{font-size:12px;line-height:1.8}.stat strong small{font-size:13px}.analytics>.section-title h2{font-size:16px}.analytics>.section-title p,.analytics-tabs button,.category-row>div,.journey-context,.journey-row small{font-size:12px}.category-stat>small,.demo,.demo button{font-size:11px;line-height:1.8}.journey-row b{font-size:14px}
 .day-summary-head,.day-summary-head>span,#dayTooltip .day-summary-head{font-size:12px;line-height:1.8}.day-summary-counts span,#dayTooltip .day-summary-counts span{font-size:12px}.day-summary-list li{font-size:13px}.day-summary-list b{font-size:12px}.day-preview-actions>button:not(.primary),.day-preview-actions .primary{font-size:12px}
 dialog label{font-size:13px}dialog input,dialog select,dialog textarea,.record-dialog .task-value,.record-dialog #date{font-size:16px}.hint,dialog .hint,.daily-foot,.local-account-note{font-size:12px;line-height:1.8}.record-dialog .task-name{font-size:14px}.record-dialog .task-meta,.record-dialog .task-unit{font-size:11px}.record-dialog .record-toolbar label,#recordCount,.record-dialog-footer>span,.record-dialog .ignore-day{font-size:12px;line-height:1.8}.record-dialog .badge{font-size:11px}.record-dialog .minor-action,.record-dialog-footer .primary{font-size:12px}.date-picker-foot span{font-size:11px}.date-picker-days button,.date-picker-nav select{font-size:14px}.avatar-choices small{font-size:11px}.account-tabs button{font-size:12px}.auth-landing p{font-size:13px}.forgot-password{font-size:12px}footer{font-size:11px}
}
@media(max-width:380px){.habit-tools-trigger{max-width:106px;font-size:11px}.annual>.toolbar #tabs button{padding-left:7px;padding-right:7px}.record-dialog #date{font-size:14px}.intro.top-motto{padding-left:14px;padding-right:14px}}

@media(max-width:760px){.annual>.map-controls{flex-wrap:wrap}.annual>.map-controls .tabs{flex:0 0 auto}.annual>.map-controls .tabs button{white-space:nowrap}}

.intro.top-motto #heroTitle{text-wrap:balance}@media(max-width:380px){.annual>.section-title h2{font-size:15px}}

/* Canonical type and interaction scale — see 界面规范.md.
   Font declarations override earlier prototype-specific sizes only. */
:root{--font-page:28px;--font-section:16px;--font-body:14px;--font-secondary:12px;--font-caption:11px;--font-metric:28px;--touch-size:38px}
body{font-size:var(--font-body)}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:var(--font-body)!important;line-height:1.5;min-height:var(--touch-size)}
body :is(h2,.section-title h2,.modal-head h2){font-size:var(--font-section)!important;line-height:1.5}
body :is(h3,.task-name,.journey-row b,.mini-month h3){font-size:var(--font-body)!important}
body :is(.intro.top-motto .intro-copy h1,.auth-landing h1){font-size:var(--font-page)!important}
body :is(button,.tabs button,.header-settings,.nav,.manage-habit,.category-entry,.habit-tools-trigger,.tools-option,.minor-action,.quiet-action,.date-actions button,.forgot-password,.inline-link,.ignore-day){font-size:var(--font-secondary)!important;line-height:1.5}
body :is(.primary,.record-dialog-footer .primary,#recordToday,#authSubmit){font-size:var(--font-body)!important;font-weight:600;min-height:var(--touch-size);line-height:1.5}
body :is(label,.hint,.task-meta,.record-toolbar,.journey-context,.journey-row small,.category-stat>small,.category-row>div,.section-title p,.time-toolbar label,#timeSummary,.map-guide,.calendar-nav>span,.daily-foot,.local-account-note,.account-error,.record-dialog-footer>span,.account-action-card p,.delete-account p,.auth-landing p,.recovery-checklist,.side-note,.side-note span,.demo,.demo button,footer,.day-summary-head,.day-summary-counts span,.day-summary-list li,.day-summary-list b,.day-summary-head>span){font-size:var(--font-secondary)!important;line-height:1.8}
body :is(.badge,.task-unit,.heat-footer,.legend,.scope-label,.weekdays,.mini-week,.mini-days .day-number,.monthly .cell small,.avatar-choices small,.record-dialog-top>span,.date-picker-week,.date-picker-foot span){font-size:var(--font-caption)!important;line-height:1.6}
body :is(.intro.top-motto #heroEyebrow,.intro.top-motto #heroSubtitle){font-size:var(--font-secondary)!important;line-height:1.8}
body :is(.stat label,.stat p){font-size:var(--font-secondary)!important;line-height:1.7}.stat strong{font-size:var(--font-metric)!important;line-height:1.25}.stat strong small{font-size:var(--font-body)!important}.calendar-nav strong{font-size:var(--font-section)!important}.monthly .day-number{font-size:var(--font-body)!important}
/* Left aligned view controls and a full-width calendar frame. */
.annual>.map-controls{justify-content:flex-start!important;align-items:center;gap:8px;flex-wrap:wrap}.annual>.map-controls .tabs{flex:0 0 auto;margin-left:0}.annual>.map-controls button{min-height:var(--touch-size);white-space:nowrap}.annual>.map-controls .tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px}.annual>.map-controls #jumpToday{padding:8px 12px}
.cell-size-mark{display:inline-block;flex:none;border-radius:3px;background:#86a996;box-shadow:inset 0 0 0 1px #537b6240}.cell-size-mark.large-mark{width:16px;height:16px}.cell-size-mark.small-mark{width:12px;height:12px}
.annual .calendar-surface,.annual.monthly.compact-map .calendar-surface{width:100%;max-width:none!important;padding:24px 16px 20px;margin:12px 0 20px;box-sizing:border-box}.annual.monthly.compact-map .calendar-surface{border:1px solid #e9eee7;border-radius:12px}.annual .map-guide,.annual.monthly.compact-map .map-guide{max-width:none;width:100%;margin:10px 0 18px;text-align:center}
.annual.monthly.compact-map #months,.annual.monthly.compact-map #heatmap{grid-template-columns:repeat(7,24px);gap:8px}.annual.monthly.compact-map #heatmap{grid-auto-rows:24px}.annual.monthly.compact-map .cell{width:24px;height:24px;min-height:0;border-radius:5px}.annual.monthly.compact-map .heat-wrap{width:max-content;margin-left:auto;margin-right:auto}.annual.monthly.compact-map #months{width:max-content}
.annual.github-layout.compact-map{--map-cell:16px;--map-gap:5px}.annual.year-months-layout.compact-map .mini-days,.annual.year-months-layout.compact-map .mini-week{grid-template-columns:repeat(7,16px);gap:4px;width:max-content}.annual.year-months-layout.compact-map .mini-days .cell{height:16px;width:16px;border-radius:4px}
/* Secondary actions are real buttons, rather than tiny text links. */
.analytics .journey-row>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px}.analytics .journey-row>div:first-child>small{grid-column:1/-1;margin-top:0}.analytics .manage-habit{float:none;margin:0;min-height:38px;min-width:92px;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #dce6d6;border-radius:7px;background:#f2f6ed;white-space:nowrap}
@media(max-width:760px){
 :root{--font-page:22px;--touch-size:44px}
 body :is(dialog input,dialog select,dialog textarea,.time-toolbar select,.time-toolbar .stats-habit-filter select,.record-dialog .task-value,.record-dialog #date,.toolbar .habit-tools-menu #taskFilter){font-size:var(--font-body)!important}
 .annual>.section-title>#recordToday{padding:10px 14px;min-width:102px;font-weight:600;flex-shrink:0}
 .annual>.map-controls,.annual>.map-controls .tabs{justify-content:flex-start!important;gap:6px}.annual>.map-controls .tabs button{padding:8px 10px;min-height:44px}.annual>.map-controls #jumpToday{min-height:44px;padding:8px 10px}
 .annual .calendar-surface,.annual.monthly.compact-map .calendar-surface{padding:20px 8px 16px}.annual.monthly.compact-map #months,.annual.monthly.compact-map #heatmap{gap:7px}
 body :is(.tabs button,.header-settings,.habit-tools-trigger,.tools-option,.minor-action,.manage-habit,.date-actions button,.calendar-nav button,.record-dialog .task .edit,.ignore-day,.forgot-password,.inline-link,.date-picker-nav button,.date-picker-days button,.close){min-height:44px}
 .annual>.toolbar #tabs button{height:44px;padding:8px 9px}.habit-tools-trigger{max-width:130px;min-height:44px}.toolbar .habit-tools-menu #categoryEntry{min-height:44px}.analytics .manage-habit{min-height:44px;min-width:96px}
 .record-dialog .task .edit,.close{min-width:44px}.record-dialog .task{grid-template-columns:28px minmax(0,1fr) 44px}.record-dialog .task .check{width:36px;height:44px}.record-dialog .task-value{min-height:44px}.record-dialog .task-unit{margin-left:88px}.record-dialog .ignore-day{display:inline-flex;align-items:center;margin-top:2px;padding:6px 0}
 .day-preview-actions button,.category-create button,.category-manager-row button,.archived-category-row button{min-height:44px}.date-picker-days button{min-height:44px}.time-toolbar{gap:12px}.time-toolbar label:first-child select,.time-toolbar .stats-habit-filter select{width:180px}
}
@media(max-width:380px){.annual>.toolbar #tabs button{padding:8px 7px}.habit-tools-trigger{max-width:106px}.annual.year-months-layout #yearMonths,.annual.year-months-layout.compact-map #yearMonths{grid-template-columns:1fr}.annual>.section-title{flex-wrap:nowrap}.annual>.section-title>div:first-child{flex:1;min-width:0}.annual>.section-title h2{text-wrap:balance}}

@media(max-width:760px){.record-dialog .task{grid-template-columns:44px minmax(0,1fr) 44px}.record-dialog .task .check{width:44px;height:44px}}

/* Give every filter enough space without enlarging its text. */
.time-toolbar{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(100px,.7fr) minmax(0,1.4fr);align-items:start;gap:12px 18px}.time-toolbar label,.time-toolbar label:first-child{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;flex:initial}.time-toolbar select,.time-toolbar label:first-child select,.time-toolbar .stats-habit-filter select{width:100%!important;max-width:100%;min-width:0!important}#timeSummary{grid-column:1/-1;min-width:0}.time-toolbar .stats-habit-filter{flex-wrap:nowrap}
@media(max-width:760px){.time-toolbar{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}.time-toolbar .stats-habit-filter{grid-column:1/-1}}

/* Only configured motto lines participate in layout. */
.intro.top-motto .intro-copy{display:grid;gap:12px}.intro.top-motto .intro-copy>:is(#heroEyebrow,#heroTitle,#heroSubtitle){margin:0!important}.intro.top-motto .intro-copy>[hidden]{display:none!important}.motto-default-choice{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer}.motto-default-choice input{width:18px;height:18px;min-height:0;margin:0;flex:none;accent-color:#5d876b}.motto-default-choice span{font-size:var(--font-secondary)}#customMottoFields label{display:block;margin-top:14px}#customMottoFields input,#customMottoFields textarea{width:100%;margin-top:7px}#mottoPreview{white-space:pre-line;line-height:1.8}@media(max-width:760px){.motto-default-choice{min-height:44px}.motto-default-choice input{min-height:0}}

@media(max-width:760px){.record-dialog .record-toolbar label{display:inline-flex;align-items:center;min-height:44px;gap:6px}.record-dialog .record-toolbar input[type=checkbox]{min-height:0}}

/* Form rhythm and icon-only controls use the same spacing system. */
dialog label{margin:14px 0}.form-row{align-items:flex-end}.close{font-size:20px!important;line-height:1!important}.calendar-nav>button,.date-picker-nav>button,#prevDay,#nextDay{font-size:20px!important;line-height:1!important}

#rules.motto-settings-open[open]{width:600px}#mottoSettings>.hint{margin:8px 0}#customMottoFields>.hint{margin:8px 0}#rules #customMottoFields label{margin:12px 0}#mottoPreview{margin:10px 0;padding:10px 12px;font-size:var(--font-body)!important}@media(max-width:760px){#rules.motto-settings-open[open]{width:calc(100vw - 24px)}}

/* Identity is body text; extreme narrow screens keep the accessible avatar. */
.platform-bar .account-trigger .account-nickname{font-size:var(--font-body)!important;line-height:1.5;font-weight:500;color:#526b59;max-width:180px}.platform-bar .account-trigger{min-height:44px}.platform-bar .account-trigger .avatar{width:38px;height:38px;flex:none}.platform-account{min-width:0}.stats-heading{grid-column:1/-1;margin:0 0 2px;font-size:var(--font-section);font-weight:600}
.annual .calendar-surface{position:relative}.calendar-help{position:absolute;right:8px;top:7px;z-index:12}.calendar-help>button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#7d9679;border-radius:7px}.calendar-help>button:hover,.calendar-help>button[aria-expanded=true]{background:#eaf1e5}.calendar-help svg{width:19px;height:19px}.calendar-help-panel{position:absolute;right:0;top:46px;width:310px;max-width:calc(100vw - 72px);background:#fff;border:1px solid #dce6d6;border-radius:9px;box-shadow:0 9px 28px #29452d20;padding:16px;color:#70846b;line-height:1.8}.calendar-help-panel[hidden]{display:none!important}.calendar-help-panel strong{font-size:var(--font-body);font-weight:600}.calendar-help-panel p,.annual .calendar-help-panel #mapGuide{font-size:var(--font-secondary)!important;line-height:1.8;margin:8px 0 0;text-align:left;width:auto;max-width:none}.annual.year-months-layout .calendar-surface,.annual.github-layout .calendar-surface{padding-top:56px}
@media(max-width:760px){.platform-bar .account-trigger .account-nickname{max-width:120px}.platform-account{gap:10px}.annual.monthly .calendar-nav{gap:4px}.calendar-help-panel{max-width:calc(100vw - 72px)}}
@media(max-width:380px){.platform-bar .account-trigger .account-nickname{display:none}.annual.monthly .calendar-surface{padding-top:54px}}

@media(max-width:380px){.annual.monthly.compact-map .calendar-surface,.annual.monthly:not(.compact-map) .calendar-surface{padding-top:56px}}
/* Statistics share a single surface and one time/habit scope. */
main>.statistics-block{margin:22px 0 24px;padding:24px}.statistics-block .time-toolbar{margin:0;padding:0;border:0;border-radius:0;background:none}.statistics-block #stats{margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line);gap:0}.statistics-block .stat{background:transparent;box-shadow:none;border:0;border-radius:0;padding:12px 18px}.statistics-block .stat+.stat{border-left:1px solid var(--line)}
.copy-empty{display:none!important}.theme-default-choice{display:flex;align-items:center;gap:10px;min-height:44px}.theme-default-choice input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--theme-accent)}.theme-swatches{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.theme-swatches button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:10px 12px;min-height:44px}.theme-swatches button.selected{border-color:var(--theme-accent);box-shadow:inset 0 0 0 1px var(--theme-accent)}.theme-swatches i{width:20px;height:20px;border-radius:50%;display:inline-block}.theme-color-field{display:flex;align-items:center;justify-content:space-between}.theme-color-field input{width:70px;height:44px;padding:3px}.theme-preview{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--theme-border);border-radius:9px;background:var(--theme-soft);color:var(--theme-ink)}.theme-preview span{font-size:var(--font-secondary)}.theme-preview button{align-self:flex-start;background:var(--theme-accent)!important;color:var(--theme-button-text)!important;border-radius:7px;padding:10px 15px;min-height:44px}
/* Theme accents are separate from heatmap status colors. */
body{background:var(--theme-page,var(--bg))}.brand,.platform-bar .brand,.intro.top-motto .intro-copy h1{color:var(--theme-ink)}.primary,#recordToday,.record-dialog-footer .primary{background:var(--theme-accent)!important;color:var(--theme-button-text)!important}.nav.active,.tabs button.selected,.toolbar #tabs .overview-tab.selected,.annual>.toolbar #tabs .overview-tab.selected{background:var(--theme-accent)!important;color:var(--theme-button-text)!important}.nav.active .ui-icon{color:inherit}.tabs,.date-actions button,.calendar-nav button,.habit-tools-trigger.has-habit,.category-stat.active-category,.analytics .manage-habit,.motto-preview{background:var(--theme-soft)}.category-stat.active-category{box-shadow:inset 3px 0 var(--theme-accent)}.check.done{background:var(--theme-accent);border-color:var(--theme-accent);color:var(--theme-button-text)}.stat .icon,.header-settings,.habit-tools-trigger,.analytics .manage-habit,.calendar-help>button,.date-actions button{color:var(--theme-ink)}.calendar-help>button:hover,.calendar-help>button[aria-expanded=true]{background:var(--theme-soft)}.analytics .manage-habit,.habit-tools-trigger.has-habit,.theme-preview{border-color:var(--theme-border)}.cell.selected,.mini-days .cell.selected{outline-color:var(--theme-accent)!important}.category-stat .bar>span{background:var(--theme-accent)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline-color:var(--theme-accent)}
@media(max-width:760px){main>.statistics-block{padding:20px 14px}.statistics-block .stat{padding:16px 10px}.statistics-block .stat:nth-child(3){border-left:0}.statistics-block .stat:nth-child(n+3){border-top:1px solid var(--line)}.settings-tabs button{padding-left:6px!important;padding-right:6px!important}.theme-swatches{gap:6px}.theme-swatches button{padding:9px}.statistics-block #stats{margin-top:18px}}

[data-storage-note]{display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.6;font-size:12px!important}
aside [data-storage-note]{justify-content:flex-start;flex-wrap:nowrap;font-size:12px} aside [data-storage-note]>span{flex:1;min-width:0}
.storage-info-trigger{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;padding:7px;color:var(--theme-accent,var(--green));border-radius:50%;background:transparent}
.storage-info-trigger svg{width:18px;height:18px}.storage-info-trigger:hover,.storage-info-trigger:focus-visible{background:var(--theme-soft,#eef4f0)}
.storage-info-dialog p{font-size:14px;line-height:1.85;margin:14px 0;color:var(--ink)}
.storage-info-dialog #ackStorageInfo{width:100%;margin-top:12px}
@media(max-width:760px){.storage-info-trigger{width:44px;height:44px;flex-basis:44px;padding:13px}[data-storage-note]{flex-wrap:wrap}}

#closeStorageInfo{min-width:44px;min-height:44px;padding:10px;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center}

/* Brighter presets and paired touch / keyboard color controls. */
.theme-swatches{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important}.theme-swatches button{min-width:0;min-height:64px;padding:9px 4px;display:flex;flex-direction:column;align-items:center;gap:6px}.theme-swatches button span{font-size:12px}.theme-swatches i{width:24px;height:24px;border-radius:50%}
.color-value-pair{display:flex;align-items:center;gap:8px;min-width:0}.color-value-pair input[type=color]{width:48px!important;height:44px!important;min-height:44px!important;margin:0!important;padding:3px!important;flex:none;border:1px solid var(--line)!important;border-radius:8px;background:#fff;cursor:pointer}.color-value-pair input[type=text]{width:112px!important;min-width:0;height:44px;margin:0!important;padding:8px!important;font-size:14px!important;letter-spacing:.3px;font-variant-numeric:tabular-nums;text-transform:uppercase}.color-fields label{display:block;padding:12px}.color-fields label>span{display:block;margin-bottom:8px}.color-fields .color-value-pair input[type=text]{flex:1;width:90px!important}.theme-color-field .color-value-pair{margin-top:8px}.heatmap-presets{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.heatmap-presets button{border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:12px;background:var(--theme-soft)}.palette-dots{display:flex;gap:3px}.palette-dots i{width:12px;height:12px;border-radius:3px}.color-value-pair input:invalid{border-color:#c65d60!important}
@media(max-width:420px){.theme-swatches{grid-template-columns:repeat(3,minmax(0,1fr))}.color-fields{grid-template-columns:1fr!important}.color-fields label{display:flex;align-items:center;justify-content:space-between}.color-fields label>span{margin:0}.color-fields .color-value-pair{width:166px;flex:none}}

/* Filled selection controls share their label color; outlines stay for keyboard focus only. */
.annual>.toolbar #tabs .overview-tab{border:0!important}.annual>.toolbar #tabs .overview-tab.selected{box-shadow:0 3px 6px #214f3510!important;outline:none}.annual>.toolbar #tabs .overview-tab.selected:focus-visible{outline:2px solid var(--theme-ink);outline-offset:3px}
.button-text-settings{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.button-text-settings select{display:block;width:100%;margin-top:8px}.button-text-settings .color-value-pair{margin-top:8px}

@media(max-width:420px){.settings-tabs button{flex:1 1 auto!important;white-space:nowrap;padding-left:5px!important;padding-right:5px!important}.color-fields label{display:block}.color-fields label>span{display:block;margin-bottom:8px}.color-fields .color-value-pair{width:100%}}

/* Platform identity uses readable theme ink on the white header; filled controls use button text. */
.platform-bar .brand,.platform-bar #brandName,.platform-bar #brandEnglish,.platform-bar .account-trigger .account-nickname{color:var(--theme-ink)}

.auth-landing .secondary{color:var(--theme-ink);border-color:var(--theme-border)}#enterGuest{color:var(--theme-ink);background:var(--theme-soft)}

/* Neutral guidance follows the personal theme; status/error colors and heatmap levels retain their meaning. */
.intro.top-motto #heroEyebrow,.intro.top-motto #heroSubtitle{color:var(--theme-muted)}
#toast{background:var(--theme-accent);color:var(--theme-button-text);box-shadow:0 6px 22px #17251e20}
body dialog :is(.hint,.rule-list,.daily-foot,.local-account-note,.recovery-checklist,.task-meta){color:var(--theme-muted)}
body dialog p:not(.account-error):not(.delete-account p){color:var(--theme-muted)}
body :is(.rule-preview,.motto-preview,.import-legacy,.exception-settings,.recovery-email,.excluded-task,.day-preview,.quote){background:var(--theme-soft);color:var(--theme-ink);border-color:var(--theme-border)}
body :is(.rule-preview,.motto-preview,.import-legacy,.recovery-email) :is(p,span,strong){color:inherit}
body :is(.exception-settings summary>span,.exception-editor button,.daily-foot,.task-meta,.local-account-note,.recovery-checklist,.record-dialog-footer>span,.date-picker-foot span){color:var(--theme-muted)}
body :is(.presets button,.text-button,.category-icon-button,.icon-choices button.chosen,.tools-option:hover,.date-picker-nav button,.date-picker-foot button,.day-banner){background:var(--theme-soft);color:var(--theme-ink);border-color:var(--theme-border)}
body :is(.avatar-choices button.selected,.weekday-picker input:checked+span){background:var(--theme-badge);color:var(--theme-ink);border-color:var(--theme-accent);box-shadow:inset 0 0 0 1px var(--theme-accent)}
body .badge{background:var(--theme-badge);color:var(--theme-ink);font-weight:600}
body .badge.optional{background:var(--theme-soft);color:var(--theme-muted);font-weight:400;box-shadow:inset 0 0 0 1px var(--theme-border)}
body .calendar-help-panel{background:var(--theme-soft);color:var(--theme-ink);border-color:var(--theme-border)}
body .calendar-help-panel p,body .annual .calendar-help-panel #mapGuide{color:var(--theme-muted)}
body #storageInfoDialog p{color:var(--theme-muted)}
body :is(.day-summary-counts span,#dayTooltip .day-summary-counts span){background:var(--theme-soft);color:var(--theme-ink)}
body #dayTooltip{border-color:var(--theme-border);color:var(--theme-ink)}
body .record-dialog #date,body .date-picker-nav select{color:var(--theme-ink);border-color:var(--theme-border);background:var(--theme-soft)}
body .date-picker-days button:hover{background:var(--theme-soft)}
body .date-picker-days button[aria-current]{background:var(--theme-accent);color:var(--theme-button-text)}
body .category-stat .bar{background:var(--theme-soft)}body .category-stat .bar>span{background:var(--theme-accent)}
body .monthly.compact-map .calendar-surface{background:var(--theme-soft);border-color:var(--theme-border)}
body .annual{background:linear-gradient(135deg,#ffffff,var(--theme-soft))}
body .journey-row:hover,body .category-stat:hover{background:var(--theme-soft)}

.platform-account #leaveGuest,.local-note [data-ui-copy],.exception-settings summary>span{color:var(--theme-muted)}

/* Keep the platform identity and account controls visible while the page scrolls. */
.platform-bar{position:sticky;top:0;z-index:100;background:#fff}

/* Compact platform header: larger site mark, balanced bilingual lockup and smaller avatar. */
:root{--platform-bar-height:64px}.platform-bar{height:var(--platform-bar-height);min-height:var(--platform-bar-height);padding:0 32px}
aside{top:var(--platform-bar-height)}
.platform-bar .brand{gap:10px}.platform-bar .brand .brand-logo{width:48px!important;height:48px!important;flex:0 0 48px;font-size:42px}
.platform-bar .brand .brand-logo img{width:48px!important;height:48px!important;max-width:none!important;max-height:none!important;object-fit:contain}.platform-bar .brand .brand-logo .ui-icon{width:42px;height:42px}
.platform-bar .brand-words{display:flex;flex-direction:column;gap:2px}.platform-bar .brand-words b{font-size:22px;line-height:1.15;letter-spacing:1px}.platform-bar .brand-words small{font-size:11px;line-height:1.2;letter-spacing:1.2px;margin:0}
.platform-bar .account-trigger .avatar{width:32px;height:32px;font-size:21px}.platform-bar .account-trigger{min-height:44px;min-width:44px}.platform-bar .account-trigger .avatar svg{width:100%;height:100%}
body dialog :is(button.close,#closeStorageInfo){width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;flex:0 0 48px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;font-size:28px!important;font-weight:400;line-height:1!important;border-radius:12px;background:var(--theme-soft);color:var(--theme-ink);cursor:pointer}
body dialog :is(button.close,#closeStorageInfo):hover{background:var(--theme-badge)}
body dialog .modal-head{gap:12px;align-items:center}body dialog .modal-head h2{flex:1;min-width:0}
@media(max-width:760px){:root{--platform-bar-height:60px}.platform-bar{padding:0 16px;gap:10px}.platform-bar .brand{gap:8px}.platform-bar .brand .brand-logo{width:44px!important;height:44px!important;flex-basis:44px}.platform-bar .brand .brand-logo img{width:44px!important;height:44px!important}.platform-bar .brand .brand-logo .ui-icon{width:40px;height:40px}.platform-bar .brand-words b{font-size:20px;line-height:1.1}.platform-bar .brand-words small{font-size:10.5px;line-height:1.2;letter-spacing:.9px}.platform-bar .account-trigger .avatar{width:30px;height:30px;font-size:20px}.platform-bar .platform-account{gap:8px}}

/* Holiday details follow the shared body/caption type scale. */
body .exception-settings summary{font-size:14px;line-height:1.6;list-style-position:outside;margin-left:18px;min-height:44px;padding:4px 0}
body .exception-settings summary>span:first-child{display:inline;font-size:14px;font-weight:600;color:var(--theme-ink);margin:0}
body .exception-settings summary>span:last-child{display:block;font-size:12px;line-height:1.6;margin:3px 0 0;color:var(--theme-muted)}
.home-record-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.home-record-actions button{margin:0;min-height:44px;white-space:nowrap}.home-add-habit{background:transparent;border:1px solid var(--theme-border);color:var(--theme-ink);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:500}.home-add-habit:hover{background:var(--theme-soft)}
.record-dialog .task-heading{display:flex;align-items:center;gap:10px;justify-content:space-between;min-width:0}.record-dialog .task-label{min-width:0;line-height:1.7}.record-dialog .task-name{overflow-wrap:anywhere}.record-dialog .task-heading .ignore-day{flex-shrink:0;white-space:nowrap;margin:0;padding:4px 0;min-height:36px;font-size:12px;line-height:1.5;text-decoration:none;color:var(--theme-muted)}
.record-dialog .task .check{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;border:0;background:transparent!important;font-size:25px!important;font-weight:700;line-height:1;color:transparent;padding:0}
.record-dialog .task .check::before{content:'';position:absolute;z-index:-1;width:32px;height:32px;border:1.5px solid var(--theme-border);border-radius:50%;background:#fff;box-sizing:border-box}
.record-dialog .task .check.done{color:var(--theme-button-text)}.record-dialog .task .check.done::before{background:var(--theme-accent);border-color:var(--theme-accent)}
body .record-dialog input.task-value{height:34px!important;min-height:34px!important;padding:4px 8px;line-height:1.4;font-size:14px!important}.record-dialog .task-info{flex:1;min-width:0}.record-dialog .task-unit{white-space:nowrap}
@media(max-width:760px){.annual>.section-title{flex-wrap:wrap}.annual>.section-title>div:first-child{flex:1 1 100%}.home-record-actions{width:100%;justify-content:flex-end;gap:8px}.home-record-actions #recordToday{padding:10px 14px;min-width:110px}.home-record-actions .home-add-habit{font-size:13px;padding:9px 12px}.record-dialog .task{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px 8px}.record-dialog .task-info{grid-column:2/-1;grid-row:1}.record-dialog .task .check{grid-column:1;grid-row:1;align-self:start}.record-dialog .task .edit{grid-column:3;grid-row:2}.record-dialog .task-value{grid-column:2;grid-row:2;width:72px;margin:0}.record-dialog .task-unit{grid-column:2;grid-row:2;margin-left:82px;align-self:center}.record-dialog .task-heading{gap:6px}.record-dialog .task-heading .ignore-day{min-height:44px;padding:4px 0;align-self:flex-start}.record-dialog .task-label{padding-top:9px}.record-dialog .task-meta{margin-top:2px}}

/* Keep everyday actions within reach on phones; desktop placement is unchanged. */
@media(max-width:760px){
 body>main{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .annual>.section-title .home-record-actions{position:fixed;inset:auto 0 0;z-index:90;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#ffffffed;border-top:1px solid var(--theme-border);box-shadow:0 -4px 18px #243c4810;backdrop-filter:blur(12px);margin:0;box-sizing:border-box}
 .home-record-actions #homeAddBtn,.home-record-actions #recordToday{width:100%;min-width:0;min-height:48px;margin:0;padding:11px 8px;font-size:14px;line-height:1.5;border-radius:10px}
 .home-record-actions #recordToday{font-weight:650}
 body:has(#authLanding:not([hidden])) .home-record-actions{display:none}
 body:not(:has(dialog[open])) #toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
}

/* Chinese brand lockup; English remains available in site settings. */
.platform-bar .brand-words{gap:4px}.platform-bar .brand-words b{font-size:22px;line-height:1.1;letter-spacing:1px}.platform-bar .brand-words small{font-size:12px;line-height:1.4;letter-spacing:.3px;font-weight:400;color:var(--theme-muted);white-space:nowrap}.compact-tools-icon{display:none}
@media(max-width:760px){
 .platform-bar .brand{gap:7px}.platform-bar .brand-words b{font-size:20px}.platform-bar .brand-words small{font-size:11px;letter-spacing:0}.platform-bar .platform-account{gap:6px}.platform-bar #leaveGuest{font-size:12px}.platform-bar .account-nickname{max-width:82px;font-size:13px}.platform-bar .account-trigger{gap:6px}
 .annual>.section-title{margin-bottom:12px}.annual>.toolbar{column-gap:6px;margin-bottom:8px;align-items:start}.annual>.toolbar #tabs{gap:3px;padding:0;align-items:center}.annual>.toolbar #tabs button{min-height:36px!important;height:36px;padding:5px 7px;font-size:12px;gap:4px;line-height:1.4}.annual>.toolbar #tabs .ui-icon{width:14px;height:14px}.annual>.toolbar #tabs .scope-label,.annual>.toolbar #tabs .scope-divider{display:none}
 .annual>.toolbar .habit-filter-actions{align-self:start}.annual .habit-tools-trigger{width:36px;min-width:36px;max-width:36px;min-height:36px;height:36px;padding:8px;justify-content:center}.habit-tools-trigger .compact-tools-icon{display:block;width:18px;height:18px;flex:0 0 auto}.habit-tools-trigger #habitToolsLabel,.habit-tools-trigger .tools-chevron{display:none}.habit-tools-trigger.has-habit{box-shadow:inset 0 0 0 1px var(--theme-accent)}
 .annual>.map-controls{gap:5px;margin-top:0;margin-bottom:8px}.annual>.map-controls .tabs{gap:2px;padding:3px;border-radius:7px}.annual>.map-controls .tabs button{min-height:34px!important;height:34px;padding:5px 7px;font-size:12px;line-height:1.4;gap:4px}.annual>.map-controls #jumpToday{min-height:36px!important;height:36px;padding:5px 8px;font-size:12px}.annual>.map-controls .cell-size-mark{width:11px;height:11px;border-radius:3px}.annual>.map-controls .large-mark{width:14px;height:14px}
}
@media(max-width:380px){.platform-bar{padding-left:12px;padding-right:12px;gap:6px}.platform-bar .brand .brand-logo{width:38px!important;height:38px!important;flex-basis:38px}.platform-bar .brand .brand-logo img{width:38px!important;height:38px!important}.platform-bar .brand-words b{font-size:19px}.platform-bar .brand-words small{font-size:10px}.platform-bar .account-nickname{display:none}.annual>.toolbar #tabs button{padding-left:5px;padding-right:5px}.annual>.map-controls .size-tabs button{width:32px;padding:6px}.annual>.map-controls .size-tabs button>span:not(.cell-size-mark){display:none}}

@media(max-width:760px){.platform-bar .brand-words small{font-size:12px}.annual>.map-controls .size-tabs button{width:32px;padding:6px}.annual>.map-controls .size-tabs button>span:not(.cell-size-mark){display:none}}
@media(max-width:430px){.platform-bar .account-nickname{display:none}}
@media(max-width:380px){.platform-bar .brand-words small{font-size:11.5px}.annual>.map-controls{gap:4px}.annual>.map-controls #jumpToday{padding:5px}.annual>.map-controls .tabs{padding:2px;gap:0}.annual>.map-controls .map-tabs button{padding:5px 4px;min-width:30px}.annual>.map-controls .size-tabs button{width:28px;padding:5px}}

/* Like 岸边: name and quiet slogan sit side by side on wide screens. */
.platform-bar .brand-words{flex-direction:row;align-items:center;gap:20px}
.platform-bar .brand-words b{flex:0 0 auto;line-height:1.25}
.platform-bar .brand-words #brandSlogan{display:block;font-size:13px;line-height:1.5;letter-spacing:.6px;margin:0;font-weight:400;color:var(--theme-muted)}
@media(max-width:760px){.platform-bar .brand-words{gap:0}.platform-bar .brand-words #brandSlogan{display:none}.platform-bar .brand-words b{line-height:1.2}}

/* Align the Chinese name and slogan on their text baseline. */
.platform-bar .brand-words{align-items:baseline}
