/* Metric-matched fallbacks: text keeps its size while the web fonts load, so nothing shifts (CLS). Values come from the DM Sans 400 and Fraunces 600 font files measured against Arial and Georgia. */
@font-face{font-family:'DM Sans Fallback';src:local('Arial'),local('ArialMT');size-adjust:104.68%;ascent-override:94.76%;descent-override:29.61%;line-gap-override:0%}
@font-face{font-family:'Fraunces Fallback';src:local('Georgia');size-adjust:109.08%;ascent-override:89.66%;descent-override:23.38%;line-gap-override:0%}
:root{font-family:'DM Sans','DM Sans Fallback',sans-serif;color:#172033;background:#fffdf8;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}.container{width:min(1180px,calc(100% - 64px));margin-inline:auto}.site-header{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative;z-index:5}.logo{display:inline-flex;align-items:center;gap:5px;justify-self:start;text-decoration:none;font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:27px;font-weight:700;color:#17459d;letter-spacing:-1.4px;white-space:nowrap}.logo svg{color:#f26934}.logo-ai{color:#ee5d2b}.nav,.footer nav{display:flex;gap:42px;align-items:center}.nav a,.footer nav a{text-decoration:none;font-size:14px;font-weight:600}.nav a:hover,.footer nav a:hover{text-decoration:underline;text-underline-offset:5px}.header-note{justify-self:end;transform:rotate(-10deg);font:600 20px/1 'Caveat',cursive;text-align:center;color:#263044}.menu-toggle{display:none;border:0;background:none;color:#172033}.button{min-height:49px;padding:0 25px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:14px;border:0;text-decoration:none;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 7px 14px #173f9826}.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.menu-toggle:focus-visible{outline:3px solid #f2783c;outline-offset:3px}.button-primary{background:#1550b8;color:white}.text-link{display:inline-flex;align-items:center;gap:10px;color:#164fac;text-decoration:none;font-weight:700;font-size:14px}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.hero{height:640px;position:relative;overflow:hidden}.hero-art{position:absolute;right:0;top:-60px;width:min(87vw,1450px);height:720px;object-fit:cover;object-position:right center}.hero-content{position:relative;z-index:1;padding-top:123px}.hero h1,h2,h3{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.045em}.hero h1{max-width:690px;margin:0;font-size:clamp(52px,5.3vw,82px);line-height:.99;font-weight:600}.hero-content>p{max-width:465px;margin:25px 0 27px;font-size:19px;line-height:1.5}.hero-actions{display:flex;align-items:center;gap:24px}.hero-note{position:absolute;top:465px;left:5px;transform:rotate(-10deg);font:600 27px/1.05 'Caveat',cursive}.featured{height:335px;position:relative;overflow:hidden;border-radius:24px;background:#f4e8ff}.featured>img{position:absolute;right:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center}.featured-copy{position:relative;z-index:1;padding:48px 45px;max-width:500px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700;margin:0 0 8px}.featured h2{font-size:clamp(29px,3.1vw,44px);line-height:1.04;margin:0 0 14px;font-weight:600}.featured-copy>p:not(.eyebrow){max-width:380px;font-size:16px;line-height:1.45;margin:0 0 22px}.guides{padding-top:65px;padding-bottom:38px}.guides h2{font-size:clamp(30px,3.25vw,46px);margin:0;line-height:1.1}.section-intro{font-size:17px;margin:23px 0 32px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.guide-card{border-radius:16px;overflow:hidden;min-height:365px;display:flex;flex-direction:column}.guide-card.blue{background:#e3f0ff}.guide-card.peach{background:#ffe8d9}.guide-card.green{background:#edf5c6}.guide-card>img{width:100%;height:205px;object-fit:contain;padding:6px 20px 0}.guide-card>div{padding:2px 26px 27px}.guide-card h3{font-size:25px;line-height:1.1;margin:0 0 8px;font-weight:600}.guide-card p{font-size:15px;line-height:1.45;margin:0 0 13px;min-height:44px}.guide-card a{display:inline-flex;align-items:center;gap:6px;color:#14499d;font-size:15px;font-weight:700;text-underline-offset:3px}.planner{min-height:260px;margin-top:0;margin-bottom:34px;background:#fff0d5;border-radius:24px;display:grid;grid-template-columns:1.3fr 1fr 140px;align-items:center;gap:34px;padding:35px 40px}.planner h2{font-size:37px;line-height:1.08;margin:0 0 12px}.planner-copy>p:last-child{font-size:16px;line-height:1.5;margin:0}.planner-form{display:grid;gap:7px;position:relative}.planner-form label{font-size:13px;font-weight:600}.planner-form input,.planner-form select{width:100%;height:42px;border:1px solid #ead8bf;border-radius:9px;background:white;color:#172033;padding:0 13px;font-size:14px}.planner-form .button{margin-top:6px;width:100%;height:44px;min-height:44px}.plan-result{position:absolute;z-index:2;left:0;top:100%;margin-top:10px;background:#eff8e2;box-shadow:0 8px 20px #19243b17;border-radius:12px;padding:11px 13px;display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.35;color:#25460e}.plan-result svg{flex:none}.sticky-note{justify-self:center;display:grid;place-items:center;text-align:center;transform:rotate(-9deg);width:99px;height:127px;background:#ffe080;color:#1b2b44;box-shadow:4px 5px 0 #e5bd61;font:600 24px/.87 'Caveat',cursive}.closing{height:340px;position:relative;overflow:hidden}.closing img{width:100%;height:100%;object-fit:cover;object-position:center}.closing p{position:absolute;left:max(8%,calc((100vw - 1100px)/2));top:52%;transform:rotate(-8deg);color:#fff;font:600 27px/1.05 'Caveat',cursive;text-align:center;margin:0}.footer{background:#fffdf8}.footer-inner{height:87px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.footer .logo{font-size:24px}.footer .logo svg{width:22px}.footer p{justify-self:end;font-size:13px;font-weight:600}.article-main{background:#fffdf8;min-height:calc(100vh - 169px);padding:30px 0 90px}.article-shell{width:min(900px,calc(100% - 48px));margin:auto}.breadcrumbs{display:flex;gap:10px;color:#627080;font-size:13px;margin-bottom:55px}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.article-heading{max-width:760px;margin:auto;text-align:center;border-bottom:1px solid #e8e1d6;padding-bottom:43px}.article-heading .eyebrow{color:#e4632e}.article-heading h1{font-size:clamp(42px,5vw,65px);line-height:1.08;margin:14px 0 20px}.article-lede{color:#3e4a56;max-width:670px;margin:0 auto;font-size:19px;line-height:1.7}.article-body{max-width:680px;margin:50px auto 0}.article-note{background:#eff3df;border-radius:18px;padding:21px 26px;margin-bottom:46px}.article-note strong{font-size:13px;letter-spacing:.08em;text-transform:uppercase}.article-note p{margin:5px 0 0;font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:25px}.article-body h2{font-size:32px;margin:0 0 35px}.article-body section{border-top:1px solid #e8e1d6;padding:23px 0 29px}.step-number{color:#e46636;font-size:12px;font-weight:700;letter-spacing:.13em}.article-body h3{font-size:26px;margin:7px 0 10px}.article-body section p{font-size:17px;line-height:1.8;color:#3b4651;margin:0}.article-end{margin-top:25px;padding:30px;border-radius:18px;background:#f4e8ff;text-align:center}.article-end p{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:25px;margin:0 0 18px}
@media(max-width:800px){.container{width:min(100% - 40px,620px)}.site-header{height:68px;grid-template-columns:1fr auto}.logo{font-size:23px}.header-note{display:none}.menu-toggle{display:block}.nav{display:none;position:absolute;top:62px;left:0;right:0;padding:20px;background:#fffdf8;border:1px solid #eee4d5;border-radius:14px;box-shadow:0 12px 22px #17203318;flex-direction:column;gap:20px;align-items:flex-start}.nav.open{display:flex}.hero{height:auto;min-height:685px}.hero-art{top:260px;right:-20%;width:125%;height:470px;object-fit:cover;object-position:right}.hero-content{padding-top:62px}.hero h1{font-size:clamp(47px,9vw,67px)}.hero-content>p{max-width:400px;font-size:17px;margin:19px 0 22px}.hero-note{display:none}.featured{height:430px}.featured>img{object-position:60% bottom;opacity:.95}.featured-copy{padding:30px;max-width:380px}.featured h2{font-size:33px}.featured-copy>p:not(.eyebrow){max-width:285px;font-size:15px}.guides{padding-top:54px}.guide-grid{grid-template-columns:1fr;gap:16px}.guide-card{min-height:0;display:grid;grid-template-columns:44% 56%;align-items:center}.guide-card>img{height:190px;padding:8px}.guide-card>div{padding:20px}.guide-card p{min-height:0}.planner{grid-template-columns:1fr;padding:30px;gap:22px;margin-top:10px}.sticky-note{display:none}.closing{height:260px}.closing p{font-size:22px;top:56%;left:6%}.footer-inner{height:auto;min-height:140px;grid-template-columns:1fr auto;padding:24px 0}.footer nav{gap:15px}.footer p{grid-column:1/-1;justify-self:start;margin:0}.article-main{padding-top:18px}.breadcrumbs{margin-bottom:37px}}
@media(max-width:520px){.container{width:calc(100% - 32px)}.hero{min-height:636px}.hero-content{padding-top:46px}.hero h1{font-size:clamp(40px,10.8vw,53px)}.hero-content>p{font-size:16px;max-width:340px}.hero-actions{gap:16px;flex-wrap:wrap}.button{padding:0 18px;min-height:46px}.hero-art{top:255px;right:-38%;width:155%;height:410px}.featured{height:500px}.featured>img{height:100%;object-position:61% bottom}.featured-copy{padding:27px 24px}.featured h2{font-size:31px}.featured-copy>p:not(.eyebrow){max-width:270px}.guides h2{font-size:34px}.section-intro{font-size:15px;margin:17px 0 25px}.guide-card{grid-template-columns:1fr;min-height:0}.guide-card>img{height:198px}.guide-card>div{padding:0 23px 23px}.guide-card h3{font-size:24px}.guide-card p{font-size:15px}.planner h2{font-size:33px}.planner-copy>p:last-child{font-size:15px}.closing{height:220px}.closing img{object-position:62% center}.closing p{font-size:18px;left:5%;top:60%}.footer-inner{grid-template-columns:1fr}.footer nav{gap:24px}.article-shell{width:calc(100% - 40px)}.article-heading h1{font-size:42px}.article-lede{font-size:17px}.article-body{margin-top:35px}.article-body section p{font-size:16px}}
@media(max-width:520px){.hero-art{top:305px;right:-30%;width:250%;height:360px;object-fit:cover;object-position:right center}.featured{height:510px}.featured>img{top:auto;bottom:0;right:-25%;width:180%;height:55%;object-fit:cover;object-position:right bottom}.featured-copy{max-width:100%}.featured-copy>p:not(.eyebrow){max-width:295px}}
@media(max-width:520px){.hero-art{right:0}.featured>img{right:0}}
.article-heading h1{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-weight:600;letter-spacing:-.04em}
@media(min-width:801px) and (max-width:1000px){.container{width:calc(100% - 64px)}.site-header{height:60px}.hero{height:475px}.hero-art{right:-150px;top:-8px;width:720px;height:515px}.hero-content{padding-top:69px}.hero h1{font-size:57px;max-width:500px}.hero-content>p{max-width:345px;font-size:16px;margin:14px 0 18px}.hero-note{top:340px;font-size:22px}.featured{height:293px;border-radius:20px}.featured-copy{padding:42px 34px;max-width:370px}.featured h2{font-size:33px}.featured-copy>p:not(.eyebrow){font-size:14px;max-width:310px}.guides{padding-top:43px;padding-bottom:30px}.guides h2{font-size:32px}.section-intro{font-size:15px;margin:18px 0 27px}.guide-grid{gap:17px}.guide-card{min-height:286px}.guide-card>img{height:155px;padding:0 10px}.guide-card>div{padding:0 18px 19px}.guide-card h3{font-size:21px}.guide-card p{font-size:14px;min-height:42px;margin-bottom:10px}.guide-card a{font-size:13px;gap:3px}.planner{min-height:218px;grid-template-columns:1.4fr 1fr 105px;gap:18px;padding:27px 25px;margin-bottom:28px}.planner h2{font-size:29px;letter-spacing:-.06em}.planner-copy>p:last-child{font-size:14px}.sticky-note{width:78px;height:100px;font-size:20px}.closing{height:260px}.closing p{font-size:23px}.footer-inner{height:75px}}
@media(min-width:801px) and (max-width:1000px){.featured-copy{max-width:405px;padding-right:0}.featured h2{font-size:31px;max-width:350px}}
[hidden]{display:none!important}
.logo img{flex:none}.menu-close-icon{display:none}.menu-toggle[aria-expanded="true"] .menu-open-icon{display:none}.menu-toggle[aria-expanded="true"] .menu-close-icon{display:block}
.button img,.text-link img,.guide-card a img,.index-card-link img{flex:none}
.article-content h2{font-size:32px;line-height:1.2;margin:42px 0 20px;border-top:1px solid #e8e1d6;padding-top:27px}
.article-content h3{font-size:25px;line-height:1.25;margin:31px 0 10px}
.article-content p,.article-content li{font-size:17px;line-height:1.8;color:#3b4651}
.article-content p{margin:0 0 20px}.article-content ul,.article-content ol{padding-left:25px;margin:0 0 22px}
.article-content a{color:#1550b8;text-underline-offset:3px}.article-content blockquote{border-left:3px solid #e46636;padding-left:19px;margin:25px 0}
.article-content code{background:#f1ede5;border-radius:4px;padding:2px 4px}
.index-main{min-height:calc(100vh - 169px);padding-top:30px;padding-bottom:80px}
.index-main>.eyebrow{color:#e4632e}
.index-main h1{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:clamp(42px,5vw,64px);line-height:1.08;letter-spacing:-.045em;margin:10px 0 16px}
.index-intro{font-size:18px;line-height:1.6;max-width:650px;margin:0 0 35px;color:#3e4a56}
.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.index-card{min-height:245px;padding:28px;border-radius:18px;display:flex;flex-direction:column}.index-card-image{width:100%;height:132px;object-fit:cover;border-radius:13px;margin:-6px 0 19px;mix-blend-mode:multiply}
.index-card.blue{background:#e3f0ff}.index-card.peach{background:#ffe8d9}.index-card.green{background:#edf5c6}
.index-card h2{font-size:26px;line-height:1.18;margin:0 0 12px}.index-card h2 a{text-decoration:none}.index-card h2 a:hover{text-decoration:underline}
.index-card>p:not(.eyebrow){font-size:15px;line-height:1.5;margin:0 0 20px}
.index-card-link{margin-top:auto;display:inline-flex;align-items:center;gap:6px;color:#14499d;font-size:14px;font-weight:700;text-underline-offset:3px}
.empty-state{grid-column:1/-1;padding:36px;background:#f4e8ff;border-radius:18px}
@media(max-width:800px){.index-grid{grid-template-columns:1fr 1fr}.nav{z-index:9}}
@media(max-width:520px){.article-content h2{font-size:29px}.article-content h3{font-size:23px}.article-content p,.article-content li{font-size:16px}.index-grid{grid-template-columns:1fr}.index-card{min-height:210px}.index-main{padding-top:22px}.index-intro{font-size:16px}}
.article-meta{font-size:13px;color:#68717b;margin:20px 0 0}.related-articles{border-top:1px solid #e8e1d6;margin-top:42px;padding-top:20px}.related-articles h2{font:700 25px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 14px}.related-articles ul{padding-left:20px;margin:0}.related-articles li{margin:0 0 11px}.related-articles a{color:#1550b8;text-underline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-search{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:23px 0 35px}.home-search h2{font-size:26px;line-height:1.15;margin:0}.home-search .eyebrow,.search-page>.eyebrow{color:#e4632e}.site-search{display:flex;align-items:center;gap:8px;width:min(100%,500px);padding:6px;background:#fff;border:1px solid #e9e2d8;border-radius:16px;box-shadow:0 5px 20px #1720330d}.site-search input{height:42px;min-width:0;flex:1;border:0;outline:0;padding:0 12px;background:transparent;color:#172033;font:inherit}.site-search input:focus-visible{outline:2px solid #1550b8;border-radius:7px}.site-search .button{flex:none;min-height:40px;border-radius:11px}.search-page .site-search{margin:25px 0 30px}.search-results-title{font-size:25px;margin:30px 0 20px}.search-page .index-card h3{font-size:25px;margin:0 0 12px;line-height:1.2}.search-page .index-card h3 a{text-decoration:none}.search-tool-link{margin-top:36px;font-size:15px}.search-tool-link a{color:#1550b8;font-weight:700}.planner-cta .button{white-space:nowrap}.planner-cta p{font-size:12px;color:#555d66;margin:10px 0 0}.tool-page{padding:26px 0 90px}.tool-page .breadcrumbs{margin-bottom:38px}.tool-hero{display:flex;justify-content:space-between;align-items:center;gap:40px;margin:0 0 35px}.tool-hero>div:first-child{max-width:670px}.tool-hero .eyebrow{color:#e4632e}.tool-hero h1{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:clamp(44px,5vw,67px);line-height:1.06;letter-spacing:-.045em;margin:12px 0 19px}.tool-hero p:not(.eyebrow){font-size:18px;line-height:1.6;color:#3e4a56;max-width:610px;margin:0}.tool-hero-note{flex:none;width:195px;height:195px;border-radius:50%;background:#edf5c6;display:grid;place-items:center;text-align:center;transform:rotate(-8deg);font:600 31px/1.05 'Caveat',cursive;color:#214262}.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.tool-form-card,.my-plan-card{border-radius:24px;padding:32px;min-height:430px}.tool-form-card{background:#e7f0ff}.my-plan-card{background:#f4e8ff}.tool-form-card h2,.my-plan-card h2,.app-promo h2,.reminder-card h2,.tool-explainer h2{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;font-size:32px;line-height:1.12;margin:0 0 22px}.tool-form-card form{display:grid;gap:9px}.tool-form-card label,.my-plan-details label,.reminder-controls label{font-size:13px;font-weight:700;margin-top:7px}.tool-form-card select,.my-plan-details input,.reminder-controls input{width:100%;height:45px;border:1px solid #c9d6ea;border-radius:10px;background:#fff;color:#172033;padding:0 12px;font:inherit}.tool-form-card button{margin-top:16px}.my-plan-card .eyebrow{color:#7a45b2}.my-plan-empty{font-size:17px;line-height:1.6;color:#4b4a5c}.my-plan-details{display:grid;gap:12px}.my-plan-details[hidden]{display:none}.plan-sentence{font:600 24px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 7px}.text-button{border:0;background:none;color:#1550b8;font-weight:700;text-decoration:underline;cursor:pointer;padding:6px 0;justify-self:start}.plan-fallback{background:#fffdf8;border-radius:15px;padding:15px 18px;margin:6px 0}.plan-fallback strong{font-size:13px}.plan-fallback p{margin:6px 0 0;font-size:15px;line-height:1.5}.plan-status{min-height:20px;margin:0;color:#344253;font-size:14px}.my-plan-details>.button{justify-self:start}.my-plan-details>.button:disabled{background:#8a9c82;cursor:default;transform:none;box-shadow:none}.plan-week{border-top:1px solid #ddcee9;margin-top:10px;padding-top:16px}.plan-week p{font-size:13px;font-weight:700;margin:0 0 12px}.week-dots{display:flex;gap:11px}.week-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#65717f;font-size:11px;font-weight:700}.week-dot.done{background:#1550b8;color:#fff}.app-promo,.reminder-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;border-radius:24px;padding:30px 34px;margin-top:28px}.app-promo{background:#fff0d5}.reminder-card{background:#edf5c6}.app-promo h2,.reminder-card h2{font-size:30px;margin-bottom:10px}.app-promo p:not(.eyebrow),.reminder-card p:not(.eyebrow){font-size:15px;line-height:1.5;margin:0;max-width:650px}.app-help{font-size:13px!important;margin-top:10px!important;max-width:270px!important}.reminder-controls{width:240px;display:grid;gap:9px}.reminder-controls .button{white-space:nowrap}.reminder-controls .text-button{font-size:13px}.reminder-controls p{font-size:13px!important}.tool-explainer{max-width:780px;margin:58px auto 0}.tool-explainer h2{font-size:34px}.tool-explainer p{font-size:17px;line-height:1.75;color:#3b4651}.tool-explainer a{color:#1550b8;text-underline-offset:3px}.tool-source{font-size:14px!important}.offline-page{min-height:60vh;padding:70px 0}.offline-page h1{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:clamp(42px,6vw,64px);margin:10px 0}.offline-page p:not(.eyebrow){font-size:18px;max-width:600px;line-height:1.6}.offline-page .button{margin-top:14px}
@media(max-width:800px){.home-search{flex-direction:column;align-items:stretch;gap:16px}.home-search .site-search{width:100%}.tool-hero-note{display:none}.tool-layout{grid-template-columns:1fr}.tool-form-card,.my-plan-card{min-height:0}.app-promo,.reminder-card{grid-template-columns:1fr}.reminder-controls{width:100%}.planner-cta .button{width:100%}}
@media(max-width:520px){.home-search{padding:18px 0 28px}.home-search h2{font-size:24px}.site-search{padding:5px;gap:2px}.site-search input{font-size:14px;padding:0 8px}.site-search .button{padding:0 14px}.tool-page{padding-top:12px}.tool-page .breadcrumbs{margin-bottom:28px}.tool-hero h1{font-size:41px}.tool-hero p:not(.eyebrow){font-size:16px}.tool-form-card,.my-plan-card,.app-promo,.reminder-card{padding:25px 21px;border-radius:18px}.tool-form-card h2,.my-plan-card h2,.app-promo h2,.reminder-card h2{font-size:27px}.tool-explainer{margin-top:45px}.tool-explainer h2{font-size:29px}.tool-explainer p{font-size:16px}.week-dot{width:29px;height:29px}.week-dots{gap:7px}}
.installed-welcome[hidden],.app-promo[hidden]{display:none}.installed-welcome{display:flex;align-items:center;gap:18px;background:#e7f0ff;border-radius:24px;padding:22px 26px;margin:0 0 24px}.installed-welcome img{flex:none;border-radius:14px}.installed-welcome .eyebrow{color:#1550b8;margin:0 0 5px}.installed-welcome .installed-title{font:600 clamp(25px,4vw,36px)/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:0 0 5px}.installed-welcome p:last-child{margin:0;color:#3e4a56;line-height:1.4}.app-mode.has-plan .tool-page .breadcrumbs,.app-mode.has-plan .tool-hero{display:none}.app-mode.has-plan .tool-page{padding-top:18px}.app-mode.has-plan .tool-layout{display:flex;flex-direction:column}.app-mode.has-plan .tool-layout>section{width:100%}.app-mode.has-plan .my-plan-card{order:-1;min-height:0}.app-mode.has-plan .tool-form-card{min-height:0}.app-mode.has-plan .header-note{display:none}@media(max-width:520px){.installed-welcome{border-radius:18px;padding:17px;gap:13px;margin-bottom:16px}.installed-welcome img{width:44px;height:44px}.app-mode.has-plan .tool-page{padding-top:10px}}
.hero-art{-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 26%);mask-image:linear-gradient(to right,transparent 0%,#000 26%)}
@media(max-width:800px){.hero-art{left:0;right:auto;top:270px;width:100%;height:420px;object-position:72% center;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 19%);mask-image:linear-gradient(to bottom,transparent 0%,#000 19%)}}
@media(max-width:520px){.hero-art{top:280px;left:0;right:auto;width:100%;height:385px;object-position:73% center}}

/* Practical guide programs and editorial illustrations */
.guide-card.violet,.index-card.violet{background:#efe6fb}
.guide-card.yellow,.index-card.yellow{background:#fff0c9}
.guide-card.mint,.index-card.mint{background:#daf3e8}
.worksheet-promo{background:#f4e8ff}
.start-here{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:34px;padding:26px 30px;border-radius:20px;background:#edf5c6}
.start-here .eyebrow{color:#a4471e}
.start-here h2{font-size:28px;line-height:1.1;margin:0 0 8px}
.start-here p:not(.eyebrow){font-size:14px;line-height:1.5;margin:0;max-width:560px}
.start-here-actions{display:flex;align-items:center;gap:17px;flex-wrap:wrap;flex:none}
@media(max-width:800px){.start-here{display:block;padding:24px}.start-here-actions{margin-top:18px}}
@media(max-width:520px){.start-here{margin-bottom:23px;padding:23px 20px}.start-here h2{font-size:25px}.start-here-actions{display:grid;justify-items:start;gap:14px}.start-here-actions .button{width:100%}}
.article-cover{margin:38px 0 0;border-radius:24px;overflow:hidden;background:#f3eafd}
.article-cover img{width:100%;max-height:480px;object-fit:cover}
.article-cover figcaption{padding:11px 20px;color:#68717b;font-size:12px;text-align:right}
.guide-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 28px;padding:17px 20px;border:1px solid #e7e0d3;border-radius:16px;background:#fff}
.guide-answer{margin:0 0 23px;padding:22px 25px;border-left:4px solid #1550b8;border-radius:0 14px 14px 0;background:#eaf2ff}
.guide-answer h2{font-size:23px;margin:0 0 8px!important}
.guide-answer p{font-size:16px;line-height:1.65;margin:0;color:#344253}
.guide-shortcuts strong{width:100%;font-size:12px;text-transform:uppercase;letter-spacing:.11em}
.guide-shortcuts a{display:inline-block;padding:7px 11px;border-radius:30px;background:#edf3fd;color:#1550b8;font-size:13px;font-weight:700;text-decoration:none}
.guide-shortcuts a:hover{text-decoration:underline}
.guide-plans{margin:20px 0 52px}
.guide-plans-heading{text-align:center;max-width:690px;margin:0 auto 23px}
.guide-plans-heading .eyebrow{color:#e4632e}
.guide-plans-heading h2{font-size:clamp(34px,4vw,48px);line-height:1.08;margin:10px 0 13px}
.guide-plans-heading>p:last-child{font-size:17px;line-height:1.6;color:#46505c;margin:0}
.habit-loop{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px}
.habit-loop>div{position:relative;min-height:129px;padding:22px;border-radius:17px;background:#fff0d5}
.habit-loop>div:nth-child(2){background:#e3f0ff}.habit-loop>div:nth-child(3){background:#edf5c6}
.habit-loop span{display:block;color:#e4632e;font:700 12px 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:.12em;margin-bottom:8px}
.habit-loop strong{display:block;font:600 23px/1.05 'Fraunces','Fraunces Fallback',Georgia,serif}
.habit-loop p{font-size:13px;line-height:1.4;margin:8px 0 0}
.guide-plan{margin:16px 0;border:1px solid #e8e1d6;border-radius:20px;background:#fff;overflow:hidden}
.guide-plan[open]{box-shadow:0 12px 30px #1823400b}
.guide-plan>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;cursor:pointer}
.guide-plan>summary::-webkit-details-marker{display:none}
.guide-plan>summary:focus-visible{outline:3px solid #f2783c;outline-offset:-4px}
.guide-plan>summary>span:first-child{display:grid;gap:6px}
.plan-kicker{font-size:11px;font-weight:800;letter-spacing:.14em;color:#e4632e}
.guide-plan>summary strong{font:600 30px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif}
.plan-audience{font-size:14px;color:#4b5561}
.plan-expand{width:35px;height:35px;flex:none;display:grid;place-items:center;border-radius:50%;background:#e3f0ff;color:#1550b8;font-size:24px;line-height:1}
.guide-plan[open] .plan-expand{transform:rotate(45deg)}
.guide-plan-inner{padding:0 28px 28px}
.plan-backup{background:#f4e8ff;border-radius:12px;padding:15px 18px;font-size:14px;line-height:1.5;margin:0 0 22px}
.plan-days{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.plan-days li{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:start;padding:16px;border:1px solid #e9e3d9;border-radius:14px;background:#fffdf8}
.plan-day-number{font-size:10px;font-weight:800;letter-spacing:.07em;color:#1550b8;white-space:nowrap;padding-top:4px}
.plan-days h3{font:600 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 5px}
.plan-days p{font-size:13px;line-height:1.48;color:#3b4651;margin:0}
.plan-days small{display:block;color:#747b82;font-size:11px;margin-top:8px}
.plan-download{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:20px;padding:22px;border-radius:15px;background:#e7f0ff}
.plan-download strong{font:600 24px 'Fraunces','Fraunces Fallback',Georgia,serif}
.plan-download p{font-size:13px;line-height:1.45;margin:7px 0 0}
.plan-download-links{display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.plan-download-links .button{white-space:nowrap}
.home-blog{padding:38px 0 58px}
.home-blog-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.home-blog-heading .eyebrow{color:#e4632e}
.home-blog h2{font-size:clamp(32px,3.6vw,46px);margin:0}
.home-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.home-blog-grid article{padding:27px;border-radius:18px;background:#f5f0e9}
.home-blog-grid article:nth-child(2){background:#f4e8ff}.home-blog-grid article:nth-child(3){background:#e3f0ff}
.home-blog-grid h3{font-size:25px;line-height:1.16;margin:9px 0 12px}
.home-blog-grid h3 a{text-decoration:none}.home-blog-grid h3 a:hover{text-decoration:underline}
.home-blog-grid article>p:not(.eyebrow){font-size:14px;line-height:1.55;color:#43505c}
.home-blog-grid article>a:last-child{color:#1550b8;font-size:14px;font-weight:700}
@media(min-width:1001px){.guide-grid{grid-template-columns:repeat(3,1fr)}.guide-card h3{font-size:23px}.guide-card>div{padding-inline:20px}}
@media(max-width:800px){.home-blog-grid{grid-template-columns:1fr 1fr}.habit-loop>div{padding:17px}.habit-loop strong{font-size:20px}.plan-days{grid-template-columns:1fr}}
@media(max-width:520px){.article-cover{margin-top:27px;border-radius:16px}.article-cover img{height:245px;object-fit:cover}.article-cover figcaption{font-size:11px}.guide-plans{margin-top:5px}.guide-plans-heading>p:last-child{font-size:15px}.habit-loop{gap:7px}.habit-loop>div{min-height:116px;padding:11px}.habit-loop strong{font-size:17px}.habit-loop p{font-size:11px}.guide-plan>summary{padding:18px}.guide-plan>summary strong{font-size:25px}.guide-plan-inner{padding:0 16px 16px}.plan-days li{grid-template-columns:55px 1fr;padding:12px}.plan-download{display:block;padding:18px}.plan-download-links{margin-top:15px}.plan-download-links .button{width:100%;white-space:normal;text-align:center}.home-blog{padding-top:28px}.home-blog-heading{display:block}.home-blog-heading .text-link{margin-top:12px}.home-blog-grid{grid-template-columns:1fr}.home-blog-grid article{padding:22px}}
.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tool-index-card{background:#e7f0ff;border-radius:23px;padding:27px;display:flex;flex-direction:column;min-height:310px}.tool-index-card:nth-child(2){background:#f4e8ff}.tool-index-card:nth-child(3){background:#fff0d5}.tool-index-number{font-size:12px;font-weight:700;color:#1550b8;letter-spacing:.12em}.tool-index-card h2,.tools-next h2{font:600 31px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:17px 0 10px}.tool-index-card p{font-size:15px;line-height:1.6;margin:0 0 24px}.tool-index-card .button{margin-top:auto;align-self:start}.tools-next{max-width:740px;margin:56px auto 0}.tools-next p{font-size:17px;line-height:1.7}.tools-next a{color:#1550b8}.tracker-page{padding:28px 0 80px}.tracker-page .breadcrumbs{margin-bottom:40px}.tracker-heading{max-width:760px;margin-bottom:38px}.tracker-heading .eyebrow{color:#e4632e}.tracker-heading h1{font:600 clamp(45px,5vw,66px)/1.06 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.045em;margin:12px 0 19px}.tracker-heading>p:last-child{font-size:18px;line-height:1.65;color:#3e4a56}.tracker-editor{display:grid;grid-template-columns:260px 1fr;gap:30px;background:#e7f0ff;border-radius:24px;padding:28px;margin-bottom:28px}.tracker-editor h2,.tracker-sheet h2,.tracker-explainer h2{font:600 32px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:0 0 12px}.tracker-editor p{font-size:15px;line-height:1.55;margin:0}.tracker-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:end}.tracker-fields label,.tracker-review label{display:grid;gap:8px;font-size:13px;font-weight:700}.tracker-fields input,.tracker-review textarea{width:100%;border:1px solid #c9d6ea;border-radius:10px;background:#fff;color:#172033;padding:11px 12px;font:inherit}.tracker-fields input{height:45px}.tracker-sheet{background:#fffaf0;border:1px solid #eadfc9;border-radius:24px;padding:28px}.tracker-sheet-heading{display:flex;justify-content:space-between;gap:25px;align-items:start;margin-bottom:22px}.tracker-sheet-heading .eyebrow{color:#e4632e}.tracker-sheet-heading h2{margin:0 0 8px}.tracker-sheet-heading p:last-child{margin:0;color:#53606b;font-size:15px}.tracker-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;max-width:470px}.tracker-actions .text-link{width:100%;justify-content:flex-end}.button-secondary{background:#fff;border:1px solid #1550b8;color:#1550b8}.tracker-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.tracker-day{min-height:100px;border:1px solid #e7dcc8;background:#fff;border-radius:13px;padding:11px;display:grid;grid-template-columns:1fr auto;align-content:start;column-gap:8px;cursor:pointer}.tracker-day>span{font-size:11px;font-weight:700;letter-spacing:.1em;color:#1550b8}.tracker-day small{grid-column:1;font-size:12px;color:#607080;margin-top:5px}.tracker-day input{grid-column:2;grid-row:1/3;width:20px;height:20px;accent-color:#1550b8;cursor:pointer}.tracker-day em{grid-column:1/-1;align-self:end;margin-top:16px;color:#566576;font-size:12px;font-style:normal}.tracker-review{max-width:670px;margin-top:25px}.tracker-review textarea{resize:vertical;min-height:84px}.tracker-explainer{max-width:760px;margin:50px auto 0}.tracker-explainer ol{padding-left:24px}.tracker-explainer li,.tracker-explainer p{font-size:17px;line-height:1.72;color:#3b4651;margin-bottom:13px}.tracker-explainer a{color:#1550b8;text-underline-offset:3px}
@media(max-width:950px){.tools-grid{grid-template-columns:1fr 1fr}.tracker-editor{grid-template-columns:1fr}.tracker-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.tracker-sheet-heading{display:block}.tracker-actions{justify-content:flex-start;margin-top:20px}.tracker-actions .text-link{justify-content:flex-start}.tracker-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){.tools-grid{grid-template-columns:1fr}.tool-index-card{min-height:0}.tracker-page{padding-top:16px}.tracker-page .breadcrumbs{margin-bottom:29px}.tracker-heading h1{font-size:41px}.tracker-heading>p:last-child{font-size:16px}.tracker-editor,.tracker-sheet{padding:22px 18px;border-radius:18px}.tracker-fields{grid-template-columns:1fr}.tracker-sheet h2{font-size:27px}.tracker-actions .button{width:100%}.tracker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tracker-day{min-height:92px;padding:8px}.tracker-day input{width:18px;height:18px}.tracker-day em{margin-top:10px}.tracker-explainer li,.tracker-explainer p{font-size:16px}}
@media print{@page{size:letter portrait;margin:12mm}.site-header,.footer,.tracker-page .breadcrumbs,.tracker-editor,.tracker-actions,.tracker-explainer{display:none!important}.tracker-page{padding:0}.tracker-heading{margin-bottom:14px}.tracker-heading h1{font-size:25px;margin:0 0 8px}.tracker-heading>p:last-child{display:none}.tracker-sheet{border:0;padding:0;background:#fff}.tracker-sheet-heading h2{font-size:22px}.tracker-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tracker-day{break-inside:avoid;min-height:88px}.tracker-day input{print-color-adjust:exact;-webkit-print-color-adjust:exact}.tracker-review textarea{border:1px solid #999;min-height:70px}}
.start-here-actions{max-width:485px;justify-content:flex-end}.article-end .article-end-extra{font:400 14px/1.5 'DM Sans','DM Sans Fallback',sans-serif;margin:15px 0 0}.article-end-extra a{color:#1550b8}
@media(max-width:800px){.start-here-actions{justify-content:flex-start}}

/* Tools: two clear jobs, with editable downloads as a separate format. */
.tools-page{padding:25px 0 86px}.tools-page .breadcrumbs{margin-bottom:47px}.tools-intro{max-width:810px;margin-bottom:31px}.tools-intro .eyebrow,.tools-library .eyebrow{color:#e4632e}.tools-intro h1{font:600 clamp(46px,5.4vw,72px)/1.03 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.05em;margin:11px 0 18px}.tools-intro>p:not(.eyebrow){font-size:18px;line-height:1.6;color:#3e4a56;max-width:700px;margin:0}.tools-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.tools-jump a{display:inline-flex;align-items:center;gap:13px;padding:10px 15px;border:1px solid #dedfd9;border-radius:100px;color:#1550b8;font-size:13px;font-weight:700;text-decoration:none;background:#fff}.tools-jump a:hover,.tools-jump a:focus-visible{border-color:#1550b8;background:#eef4ff}.tools-journey{display:grid;gap:23px}.tools-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:24px;align-items:stretch;min-height:365px;border-radius:27px;padding:37px;overflow:hidden}.tools-feature-plan{background:#e7f0ff}.tools-feature-track{background:#f4e8ff}.tools-feature-copy{display:flex;flex-direction:column;align-items:flex-start}.tools-feature-copy .eyebrow{color:#1550b8}.tools-feature-copy h2{font:600 clamp(32px,3.1vw,43px)/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;max-width:500px;margin:7px 0 10px}.tools-feature-copy>p:not(.eyebrow){font-size:16px;line-height:1.55;max-width:520px;margin:0}.tools-feature-copy ul{padding-left:19px;margin:16px 0 22px;color:#3c4a58}.tools-feature-copy li{font-size:14px;line-height:1.65}.tools-feature-copy .button{margin-top:auto}.tools-feature-copy small{font-size:12px;color:#536575;margin-top:10px}.tools-feature-preview{position:relative;align-self:center;min-height:273px;display:flex;flex-direction:column;justify-content:center;border-radius:21px;padding:29px;box-shadow:0 16px 40px #15244917;transform:rotate(1.6deg)}.tools-plan-preview{background:#fffdf8}.tools-track-preview{background:#fbf9ff;transform:rotate(-1.5deg)}.tools-preview-label{font-size:10px;font-weight:800;letter-spacing:.14em;color:#d45c2b;margin-bottom:18px}.tools-preview-line{border-top:1px solid #eae5db;padding:10px 0;display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:baseline}.tools-preview-line span{font-size:10px;font-weight:800;letter-spacing:.1em;color:#6a7580}.tools-preview-line strong{font:600 21px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}.tools-preview-sparkle{position:absolute;right:18px;top:13px;color:#e4632e;font-size:31px}.tools-preview-mini{border:1px solid #e2dbe9;border-radius:15px;padding:20px;background:#fff}.tools-preview-mini>strong{display:block;font:600 24px 'Fraunces','Fraunces Fallback',Georgia,serif}.tools-preview-mini>span{display:block;color:#697286;font-size:12px;margin-top:3px}.tools-preview-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin:18px 0}.tools-preview-days i{height:28px;display:grid;place-items:center;border:1px solid #dcd5e5;border-radius:7px;font:700 13px 'DM Sans','DM Sans Fallback',sans-serif;color:#1550b8}.tools-preview-days i:not(:empty){background:#e7f0ff;border-color:#bfd4ff}.tools-preview-mini em{font:500 19px 'Caveat',cursive;color:#7a45b2}.tools-library{margin-top:70px;scroll-margin-top:30px}.tools-library-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:22px}.tools-library-heading>div{max-width:660px}.tools-library h2,.tools-help h2{font:600 clamp(34px,4vw,47px)/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:6px 0 11px}.tools-library-heading p:last-child{font-size:16px;line-height:1.6;color:#4e5863;margin:0}.tools-library-heading .text-link{white-space:nowrap;color:#1550b8;font-weight:700;padding-bottom:5px}.template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.template-row{display:flex;justify-content:space-between;gap:20px;padding:23px;border:1px solid #eae1d4;border-radius:17px;background:#fffdf8}.template-topic{font-size:11px;font-weight:800;color:#d45c2b;text-transform:uppercase;letter-spacing:.12em}.template-row h3{font:600 23px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.025em;margin:8px 0}.template-row p{font-size:13px;line-height:1.5;color:#59636d;margin:0}.template-row-action{display:flex;min-width:105px;align-items:flex-end;justify-content:space-between;flex-direction:column;text-align:right;gap:12px}.template-row-action span:first-child{font-size:12px;color:#64707c}.template-row-action a,.tools-help a{color:#1550b8;font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap}.template-row-action a:hover,.tools-help a:hover{text-decoration:underline}.tools-help{display:flex;align-items:center;justify-content:space-between;gap:27px;background:#edf5c6;border-radius:22px;padding:26px 31px;margin-top:28px}.tools-help h2{font-size:29px;flex:none;margin:0}.tools-help p{font-size:14px;line-height:1.5;max-width:540px;margin:0}.tools-help a{flex:none}

/* The planner exposes meaningful customization before saving. */
.tool-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:0 0 24px}.tool-steps>div{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;border:1px solid #e8e1d6;border-radius:14px;padding:15px;background:#fffdf8}.tool-steps span{grid-row:1/3;font:700 12px 'DM Sans','DM Sans Fallback',sans-serif;color:#e4632e}.tool-steps strong{font-size:14px}.tool-steps small{font-size:12px;color:#5e6975}.tool-form-card .eyebrow{color:#1550b8;margin-bottom:9px}.tool-form-card .form-intro{font-size:14px;line-height:1.5;color:#435366;margin:-10px 0 19px}.tool-form-card form{gap:17px}.plan-field-group{display:grid;gap:8px;padding-bottom:17px;border-bottom:1px solid #cadbf4}.plan-field-group:last-of-type{border:0;padding-bottom:0}.tool-form-card .plan-field-group label{margin:0;font-size:14px}.tool-form-card .plan-field-group input{width:100%;height:46px;padding:0 12px;border:1px solid #c9d6ea;border-radius:10px;background:#fff;color:#172033;font:inherit}.tool-form-card .plan-field-group>small{font-size:12px;color:#56687a}.tool-form-card .plan-reveal{display:grid;gap:7px;margin-top:5px}.tool-form-card .plan-reveal[hidden]{display:none}.tool-form-card :is(input,select):focus-visible{outline:3px solid #f7a87c;outline-offset:2px}.plan-save-note{font-size:12px;line-height:1.4;color:#4d5d6f;margin:-8px 0 0}.my-plan-empty>p{margin:0 0 21px}.plan-live-preview{display:grid;gap:7px;background:#fffdf8;border-radius:16px;padding:20px;box-shadow:0 7px 24px #43335b0b}.plan-live-preview span{font-size:10px;font-weight:800;letter-spacing:.12em;color:#7a45b2}.plan-live-preview strong{font:600 21px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;margin-bottom:8px}.plan-edit-tip{font-size:13px;line-height:1.5;color:#584b66;margin:0}
@media(max-width:950px){.tools-feature{grid-template-columns:1fr 1fr;padding:26px}.tools-preview-line{grid-template-columns:95px 1fr}.tools-preview-line strong{font-size:17px}.tools-help{display:block}.tools-help p{margin:10px 0}.template-row{display:block}.template-row-action{flex-direction:row;align-items:center;text-align:left;margin-top:13px}}
@media(max-width:700px){.tools-page{padding-top:16px}.tools-page .breadcrumbs{margin-bottom:28px}.tools-intro h1{font-size:42px}.tools-intro>p:not(.eyebrow){font-size:16px}.tools-feature{grid-template-columns:1fr;padding:23px;gap:20px}.tools-feature-copy h2{font-size:34px}.tools-feature-preview{width:100%;min-height:0;transform:none;padding:22px}.tools-library{margin-top:50px}.tools-library-heading{display:block}.tools-library-heading .text-link{display:inline-block;margin-top:16px;white-space:normal}.template-list{grid-template-columns:1fr}.tool-steps{grid-template-columns:1fr;gap:7px}.tool-steps>div{padding:11px 14px}.tools-help{padding:23px}.tools-help h2{font-size:26px}}
.tools-more{margin-top:68px}.tools-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tools-mini-grid article{padding:24px;border-radius:18px;background:#fff0d5;border:1px solid #f0ddbd;min-height:210px;display:flex;flex-direction:column}.tools-mini-grid article:nth-child(2){background:#efe6fb;border-color:#e1d1f3}.tools-mini-grid article:nth-child(3){background:#daf3e8;border-color:#c7e5d7}.tools-mini-grid h3{font:600 27px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:12px 0 9px}.tools-mini-grid p{font-size:15px;line-height:1.5;margin:0 0 18px}.tools-mini-grid .text-link{margin-top:auto;color:#1550b8;font-weight:800;text-decoration:none}.simple-tool-page{padding:27px 0 90px}.simple-tool-page .breadcrumbs{margin-bottom:45px}.simple-tool-heading{max-width:780px;margin-bottom:30px}.simple-tool-heading .eyebrow{color:#e4632e}.simple-tool-heading h1{font:600 clamp(44px,5vw,68px)/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.05em;margin:10px 0 17px}.simple-tool-heading>p:last-child{font-size:19px;line-height:1.6;color:#3e4a56}.simple-tool-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:22px;align-items:start}.simple-tool-card,.simple-tool-result{border-radius:24px;padding:30px}.simple-tool-card{background:#e7f0ff}.simple-tool-result{background:#f4e8ff;min-height:365px}.simple-tool-card h2,.simple-tool-result h2,.simple-tool-explainer h2{font:600 32px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:4px 0 22px}.simple-tool-card form{display:grid;gap:14px}.simple-tool-card label{display:grid;gap:7px;font-size:13px;font-weight:800}.simple-tool-card input,.simple-tool-card select{height:46px;border:1px solid #c9d6ea;border-radius:10px;background:#fff;padding:0 12px;color:#172033;font:inherit;width:100%}.simple-tool-card .button{margin-top:7px}.tool-form-note{font-size:12px;color:#526170;line-height:1.5;margin:17px 0 0}.simple-tool-result .eyebrow{color:#7a45b2}.simple-tool-result p,.simple-tool-result li{font-size:17px;line-height:1.6;color:#394453}.simple-tool-result [data-result-body]{min-height:130px}.simple-tool-result [data-result-body] p{margin:0 0 17px}.simple-tool-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}.simple-tool-explainer{max-width:760px;margin:54px auto 0}.simple-tool-explainer p{font-size:17px;line-height:1.75;color:#3b4651}.simple-tool-explainer a{color:#1550b8;text-underline-offset:3px}@media(max-width:700px){.tools-mini-grid{grid-template-columns:1fr}.simple-tool-page{padding-top:16px}.simple-tool-page .breadcrumbs{margin-bottom:28px}.simple-tool-heading h1{font-size:43px}.simple-tool-heading>p:last-child{font-size:16px}.simple-tool-layout{grid-template-columns:1fr}.simple-tool-card,.simple-tool-result{padding:22px 18px;border-radius:18px}.simple-tool-card h2,.simple-tool-result h2{font-size:28px}.simple-tool-result{min-height:300px}.simple-tool-actions .button{width:100%}}@media print{body>*:not(main),.simple-tool-card,.simple-tool-heading .eyebrow,.simple-tool-actions,.simple-tool-explainer{display:none!important}.simple-tool-page{padding:0}.simple-tool-result{background:#fff;padding:0;min-height:0}.simple-tool-result .eyebrow{display:block;color:#000}.simple-tool-result h2{font-size:28px}}
.plan-time-choice{display:grid;gap:8px}.plan-time-choice[hidden]{display:none}.plan-time-choice small{font-size:12px;color:#56687a}

/* Habit plans now explain motivation, friction, cadence, and the first week. */
.plan-depth-fields .plan-field-heading{font:600 24px/1.18 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0}.plan-depth-fields .plan-field-help{font-size:13px;line-height:1.5;color:#4e6071;margin:0 0 5px}.tool-form-card .plan-depth-fields textarea{width:100%;min-height:68px;padding:12px;border:1px solid #c9d6ea;border-radius:10px;background:#fff;color:#172033;font:inherit;resize:vertical}.tool-form-card .plan-depth-fields textarea:focus-visible{outline:3px solid #f7a87c;outline-offset:2px}.plan-reasoning{border-top:1px solid #ddcee9;padding-top:20px;margin-top:7px;display:grid;gap:20px}.plan-reasoning h3{font:600 22px/1.18 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.025em;margin:0 0 7px}.plan-reasoning p{font-size:14px;line-height:1.6;color:#39475b;margin:0}.plan-reasoning ol{list-style:none;padding:0;margin:0;display:grid;gap:9px}.plan-reasoning li{display:grid;gap:5px;background:#fffdf8;border-radius:12px;padding:13px 15px}.plan-reasoning li strong{font-size:12px;color:#1550b8}.plan-reasoning li span{font-size:13px;line-height:1.5;color:#3d4752}.ai-plan-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:30px;background:#edf5c6;border-radius:24px;padding:31px 34px;margin-top:28px;align-items:start}.ai-plan-card .eyebrow{color:#a4471e}.ai-plan-card h2{font:600 34px/1.14 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;margin:8px 0 13px}.ai-plan-card p{font-size:15px;line-height:1.56;color:#3e4a45}.ai-privacy-note{font-size:12px!important;color:#4d6053!important}.ai-plan-card button{margin-top:9px}.ai-plan-card button:disabled{opacity:.6;cursor:wait}.ai-plan-card [data-ai-status]{font-size:13px;font-weight:700;min-height:21px}.ai-plan-result{background:#fffdf8;border-radius:17px;padding:23px}.ai-plan-result[hidden]{display:none}.ai-plan-result h3{font:600 26px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 13px}.ai-plan-result>p{margin:0 0 12px}.ai-obstacle{background:#f4e8ff;border-radius:12px;padding:15px;margin:17px 0}.ai-obstacle strong{font-size:13px}.ai-obstacle p{margin:8px 0 0;font-size:13px}.ai-plan-result ol{list-style:none;padding:0;display:grid;gap:8px}.ai-plan-result li{display:grid;gap:6px;border-top:1px solid #eae2d7;padding:13px 0}.ai-plan-result li strong{font:600 18px 'Fraunces','Fraunces Fallback',Georgia,serif}.ai-plan-result li p,.ai-plan-result li small,.ai-plan-result li em{font-size:13px;line-height:1.5;margin:0;color:#3b4753}.ai-plan-result li em{color:#6e5677}.ai-plan-result li small{color:#1550b8}
@media(max-width:800px){.ai-plan-card{grid-template-columns:1fr}}
@media(max-width:520px){.ai-plan-card{padding:23px 20px;border-radius:18px}.ai-plan-card h2{font-size:29px}.plan-reasoning li{padding:12px}}
.simple-tool-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:26px}.simple-tool-steps>div{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:13px 14px;border:1px solid #e5ddd3;border-radius:13px;background:#fffdf8}.simple-tool-steps span{grid-row:1/3;color:#e4632e;font-size:11px;font-weight:800}.simple-tool-steps strong{font-size:13px}.simple-tool-steps small{font-size:11px;color:#617080}.simple-tool-intro{font-size:14px;line-height:1.55;color:#4b5a68;margin:-10px 0 19px}.field-help{font-size:12px!important;line-height:1.45;color:#5b6b7b;font-weight:400}.simple-tool-card select:invalid{color:#647383}.simple-tool-actions[hidden]{display:none}@media(max-width:700px){.simple-tool-steps{grid-template-columns:1fr;gap:7px}.simple-tool-steps>div{padding:10px 13px}}

.direct-answer{margin:0 0 28px;padding:22px 24px;border-radius:18px;background:#e7f0ff;border-left:5px solid #1550b8}.direct-answer h2{margin:0 0 8px;font:700 13px/1.2 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:#1550b8}.direct-answer p{margin:0;font-size:19px;line-height:1.6}
.key-takeaways{margin:0 0 28px;padding:20px 24px;border:1px solid #eee4d5;border-radius:18px;background:#fff}.key-takeaways h2,.faq-list>h2,.source-list>h2{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:24px;margin:0 0 12px}.key-takeaways ul{margin:0;padding-left:20px;line-height:1.7}
.faq-list{margin:44px 0}.faq-item{padding:18px 0;border-top:1px solid #eee4d5}.faq-item h3{margin:0 0 6px;font-size:18px}.faq-item p{margin:0;line-height:1.7}
.source-list{margin:44px 0;font-size:15px;line-height:1.7}.source-list a{color:#1550b8}.source-reviewed{color:#5b6475;font-size:14px}
.index-section-title{font-family:'Fraunces','Fraunces Fallback',Georgia,serif;font-size:30px;margin:48px 0 18px}

.site-header{grid-template-columns:auto 1fr}.nav{justify-self:end;gap:30px}.nav-build{min-height:42px;padding:0 18px;color:#fff!important}.nav-search{display:inline-flex;align-items:center}.nav-search span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.nav-topics{position:relative}.nav-topics summary{list-style:none;cursor:pointer;font-size:14px;font-weight:600}.nav-topics summary::-webkit-details-marker{display:none}.nav-topics summary::after{content:" ▾"}
.nav-topics-panel{position:absolute;top:34px;left:-18px;z-index:20;display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));gap:4px 18px;padding:18px;background:#fffdf8;border:1px solid #eee4d5;border-radius:16px;box-shadow:0 18px 30px #17203322}.nav-topics-panel a{padding:7px 0}
.footer-inner{display:grid;grid-template-columns:1.2fr 2fr 1fr;gap:32px;align-items:start}.footer-topics{display:grid!important;grid-template-columns:repeat(2,1fr);gap:8px 24px!important}.footer-links{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:8px!important}.footer-topics h2,.footer-links h2{grid-column:1/-1;margin:0 0 6px;font:700 12px/1 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:#ee5d2b}
@media(max-width:800px){.nav{justify-self:stretch}.menu-toggle{justify-self:end}.nav-topics-panel{position:static;box-shadow:none;border:0;padding:8px 0 0 12px;grid-template-columns:1fr}.nav-search span{position:static;width:auto;height:auto;clip:auto;margin-left:8px}.nav-build{width:100%}.footer-inner{grid-template-columns:1fr}}

.topic-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;padding:36px;border-radius:28px;background:#f4efe6;margin:14px 0 36px}.topic-hero>img{border-radius:20px;width:100%;height:100%;object-fit:cover;max-height:320px}.topic-hero h1{font:700 clamp(40px,6vw,64px)/1.02 'Fraunces','Fraunces Fallback',Georgia,serif;margin:8px 0 14px;letter-spacing:-1.5px}.topic-description{font-size:18px;line-height:1.6;margin:0 0 22px}
.topic-body{max-width:760px}.topic-intro{font-size:18px;line-height:1.7}.topic-group{margin:40px 0}.topic-group h2{font:700 28px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 14px}.topic-links,.topic-tools{list-style:none;margin:0;padding:0}.topic-links li{padding:16px 0;border-top:1px solid #eee4d5}.topic-links a,.topic-tools a{font-weight:700;color:#1550b8;text-decoration:none;font-size:18px}.topic-links p{margin:6px 0 0;line-height:1.6;color:#3b4456}.topic-tools li{padding:8px 0}
@media(max-width:800px){.topic-hero{grid-template-columns:1fr;padding:22px}.topic-hero>img{order:-1;max-height:200px}}

.home-hero h1{font-size:clamp(44px,6.4vw,78px)}.topic-chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 26px;max-width:620px}.topic-chip{padding:9px 14px;border:1px solid #d8cfc0;border-radius:999px;background:#fffdf8;text-decoration:none;font-size:14px;font-weight:600}.topic-chip:hover{border-color:#1550b8;color:#1550b8}
.how-it-works{margin:70px auto}.how-it-works h2,.home-answers h2{font:700 clamp(30px,4vw,44px)/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 26px}.how-steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0;margin:0}.how-steps li{counter-increment:step;padding:24px;border:1px solid #eee4d5;border-radius:20px;background:#fff}.how-steps li::before{content:"0" counter(step);display:block;color:#ee5d2b;font-weight:700;margin-bottom:10px}.how-steps p{margin:6px 0 0;line-height:1.6}
.home-answers{margin:70px auto;max-width:860px}
@media(max-width:800px){.how-steps{grid-template-columns:1fr}}

.home-tools{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;align-items:center;margin:0 auto 70px;padding:28px 32px;border-radius:24px;background:#f4efe6}.home-tools h2{font:700 30px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 0}.home-tool-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.home-tool-links a{display:inline-block;padding:10px 14px;border-radius:12px;background:#fff;color:#1550b8;font-weight:700;text-decoration:none;font-size:15px}
@media(max-width:800px){.home-tools{grid-template-columns:1fr;padding:22px}}
.topic-chips-label{margin:26px 0 0;font-size:13px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#5b6475}.topic-chips-label+.topic-chips{margin-top:10px}
@media(max-width:800px){.home-hero{display:flex;flex-direction:column;min-height:0;height:auto}.home-hero .hero-art{position:static;order:2;width:100%;height:260px;margin-top:28px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 25%);mask-image:linear-gradient(to bottom,transparent 0%,#000 25%)}.home-hero .hero-content{padding-top:40px}}
@media(min-width:801px){.home-hero{height:auto;min-height:640px;padding-bottom:60px}.home-hero .hero-content{max-width:620px;margin-left:max(32px,calc((100% - 1180px)/2))}}
@media(min-width:801px){.home-hero .hero-content{max-width:min(560px,46%)}.home-hero .hero-art{top:0;right:0;width:52%;height:100%;object-position:62% center;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 18%);mask-image:linear-gradient(to right,transparent 0%,#000 18%)}.home-hero h1{font-size:clamp(44px,5.2vw,74px)}}
.article-body .direct-answer,.topic-body .direct-answer{padding:22px 24px}.article-body .key-takeaways{padding:20px 24px}
@media(max-width:520px){.direct-answer p{font-size:17px}.article-body .direct-answer,.topic-body .direct-answer{padding:18px 18px 18px 20px}}
.plan-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.plan-card{padding:24px;border-radius:22px;background:#f4efe6}.plan-card h3{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:8px 0}.plan-card h3 a{text-decoration:none}.plan-card p{line-height:1.6}.plan-group .index-section-title a{text-decoration:none}
.plan-personalize{display:flex;gap:18px;align-items:center;justify-content:space-between;margin:0 0 28px;padding:20px 22px;border-radius:18px;background:#fff3e8;border:1px solid #f6d5bd}.plan-personalize p{margin:4px 0 0;line-height:1.55}.plan-personalize .button{flex:none}
.plan-phase{margin:44px 0}.plan-phase h2{font:700 30px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 8px}.plan-phase-note{font-size:17px;line-height:1.6;color:#3b4456}.plan-day-list{list-style:none;margin:18px 0 0;padding:0}.plan-day-list li{padding:18px 0;border-top:1px solid #eee4d5}.plan-day-list li.is-review{background:#f4f8ff;padding:18px;border-radius:14px;border-top:0;margin:8px 0}.plan-day-list h3{margin:4px 0 6px;font-size:19px}.plan-day-list p{margin:4px 0;line-height:1.6}.plan-day-small{color:#3b4456;font-size:15px}.plan-day-why{color:#5b6475;font-size:14px;font-style:italic}
@media(max-width:700px){.plan-personalize{flex-direction:column;align-items:stretch}}
.build-page{padding-bottom:40px}.build-hero{max-width:720px;margin:10px 0 26px}.build-hero h1{font:700 clamp(38px,5.4vw,64px)/1.04 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-1.5px;margin:8px 0 14px}.build-hero p:not(.eyebrow){font-size:18px;line-height:1.6;margin:0}
.build-form{max-width:760px;padding:28px;border-radius:26px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}.build-progress{height:6px;border-radius:99px;background:#eef1f7;overflow:hidden;margin-bottom:10px}.build-progress span{display:block;height:100%;width:0;background:#1550b8;transition:width .25s}.build-step-count{margin:0 0 14px;font-size:13px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#5b6475}
.build-step{border:0;margin:0 0 22px;padding:0;min-width:0}.build-step legend{font:700 clamp(24px,3.4vw,32px)/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 8px;padding:0}.build-help{margin:0 0 16px;color:#3b4456;line-height:1.55}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.choice-row{display:flex;flex-wrap:wrap;gap:10px}.choice{position:relative;display:block;cursor:pointer}.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}.choice span{display:flex;align-items:center;min-height:52px;padding:12px 16px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;font-weight:600;line-height:1.3;transition:border-color .15s,background .15s}.choice input:checked+span{border-color:#1550b8;background:#e7f0ff;color:#12367f;box-shadow:inset 0 0 0 1px #1550b8}.choice input:focus-visible+span{outline:3px solid #f2783c;outline-offset:2px}.choice-row .choice span{min-width:88px;justify-content:center}
.build-field{display:grid;gap:8px;margin-top:18px;font-weight:600}.build-field input,.build-field textarea{font:inherit;font-weight:400;padding:13px 14px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;width:100%}.build-field input:focus,.build-field textarea:focus{border-color:#1550b8;outline:none}.optional{font-weight:400;color:#5b6475}
.build-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.build-nav .button{margin-left:auto}.build-privacy{margin:18px 0 0;font-size:13px;line-height:1.55;color:#5b6475}.build-error{padding:12px 14px;border-radius:12px;background:#fff0ec;color:#9c2d12;font-weight:600}
.text-button{border:0;background:none;color:#1550b8;font-weight:700;padding:10px 4px;cursor:pointer}
.built-plan{max-width:820px;position:static;background:none;box-shadow:none;padding:0;display:block;font-size:inherit;color:inherit}.plan-result-head h2{font:700 clamp(32px,4.6vw,52px)/1.08 'Fraunces','Fraunces Fallback',Georgia,serif;margin:8px 0 10px;letter-spacing:-1px}.plan-result-rule{font-size:20px;font-weight:600;color:#12367f;margin:0 0 8px}.plan-result-why{font-style:italic;color:#3b4456}.plan-result-status{font-size:14px;color:#5b6475;margin:10px 0}
.plan-result-obstacle,.plan-result-coach{margin:18px 0;padding:18px 20px;border-radius:16px;background:#fff3e8;border:1px solid #f6d5bd}.plan-result-coach{background:#e7f0ff;border-color:#c7d8fb}.plan-result-obstacle p,.plan-result-coach p{margin:6px 0 0;line-height:1.6}
.plan-result-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0}.plan-result-phase{margin:26px 0;border-top:1px solid #eee4d5;padding-top:18px}.plan-result-phase-title{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px;cursor:pointer}details.plan-result-phase>summary{list-style:none}details.plan-result-phase>summary::after{content:" +";color:#1550b8}details[open].plan-result-phase>summary::after{content:" –"}
.plan-day-list li.is-rest{opacity:.8}.plan-day-tip{margin-top:8px!important;padding:10px 12px;border-radius:10px;background:#f6f9e8;font-size:14px}
.build-explainer{max-width:760px;margin:70px 0 0}.build-explainer h2{font:700 30px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:40px 0 14px}.build-explainer p{line-height:1.7}.build-phases{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.build-phases div{padding:16px;border-radius:16px;background:#f4efe6}.build-phases span{display:block;font-size:12px;font-weight:700;color:#ee5d2b;letter-spacing:1px;text-transform:uppercase}.build-phases strong{display:block;font:700 20px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:4px 0}.build-phases p{margin:0;font-size:14px;line-height:1.5}
@media(max-width:700px){.build-form{padding:20px;border-radius:20px}.choice-grid{grid-template-columns:1fr}.build-phases{grid-template-columns:1fr 1fr}.plan-result-rule{font-size:18px}}
@media(max-width:700px){.build-step[data-step=topic] .choice-grid{grid-template-columns:1fr 1fr;gap:8px}.build-step[data-step=topic] .choice span{min-height:48px;padding:10px 12px;font-size:14px}}
.built-plan h2[tabindex="-1"]:focus{outline:none}
.app-page{max-width:720px;padding:8px 0 60px}.app-page section,.app-top{margin-bottom:22px}.app-top h2{font:700 clamp(30px,5vw,44px)/1.08 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 6px;letter-spacing:-1px}.app-rule{margin:0;font-weight:600;color:#12367f}
.app-banner{padding:12px 16px;border-radius:14px;background:#f6f9e8;border:1px solid #dfe8b8;font-weight:600;line-height:1.5}
.app-today{padding:24px;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203314}.app-day-label{margin:0;font-size:13px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#ee5d2b}.app-today h3{font:700 28px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 10px}.app-action{font-size:19px;line-height:1.55;margin:0 0 12px}.app-small{padding:12px 14px;border-radius:12px;background:#fff3e8;line-height:1.5}.app-why{color:#5b6475;font-size:15px;font-style:italic;line-height:1.5}
.app-checkin{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.app-checkin .app-done{grid-column:1/-1;min-height:58px;font-size:18px}.app-checkin .text-button,.app-checkin .button-secondary{grid-column:1/-1}.button-secondary{background:#e7f0ff;color:#12367f;border:0}.app-checked{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px;padding:16px;border-radius:14px;background:#e9f6ec}.app-checked-text{margin:0;font-weight:700;color:#1f5130;flex:1 1 100%}
.app-review{padding:22px;border-radius:22px;background:#e7f0ff}.app-review h3{font:700 24px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:4px 0 8px}.app-review-q{font-weight:700;margin:14px 0 8px}.app-review-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-button{min-height:48px;padding:10px 12px;border-radius:12px;border:1.5px solid #c7d8fb;background:#fff;font-weight:600;color:#12367f;cursor:pointer}.choice-button:hover{border-color:#1550b8}
.app-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.app-section-head h3,.app-next h3,.app-install h3,.app-reminder h3,.app-data h3,.app-empty h3{font:700 22px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 8px}.app-section-head p{margin:0;color:#5b6475;font-size:14px}
.app-grid{list-style:none;display:grid;grid-template-columns:repeat(10,1fr);gap:6px;padding:0;margin:12px 0}.app-grid li{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;font-size:13px;font-weight:700;background:#f1ece3;color:#5b6475}.app-grid .s-done{background:#1550b8;color:#fff}.app-grid .s-small{background:#8fb1ef;color:#0e2c66}.app-grid .s-skip{background:#f6d5bd;color:#7a3a14}.app-grid .s-rest,.app-grid .s-rest-upcoming{background:#fff;border:1px dashed #d8cfc0}.app-grid .s-missed{background:#f1ece3;color:#9a9181}.app-grid .is-today{outline:3px solid #ee5d2b;outline-offset:2px}.app-grid .is-review{box-shadow:inset 0 -3px 0 #ee5d2b}
.app-legend{list-style:none;display:flex;flex-wrap:wrap;gap:14px;padding:0;margin:0;font-size:13px;color:#5b6475}.app-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}.app-legend .s-done{background:#1550b8}.app-legend .s-small{background:#8fb1ef}.app-legend .s-skip{background:#f6d5bd}.app-legend .s-rest{border:1px dashed #b9ae9c}
.app-full summary{cursor:pointer;font-weight:700;color:#1550b8;margin-top:12px}
.app-install,.app-reminder,.app-data,.app-empty .app-transfer-in{padding:20px;border-radius:20px;background:#f4efe6}.install-steps{padding-left:22px;margin:12px 0;line-height:1.5}.install-steps li{margin:0 0 12px}.install-steps strong{display:block}.install-steps span{display:block;color:#3b4456;font-size:15px}.install-steps .button{margin-top:8px}
.app-reminder-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.app-reminder-row input{font:inherit;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff}.app-status{font-size:14px;color:#3b4456;margin:10px 0 0}.app-data-actions{display:flex;flex-wrap:wrap;gap:8px 18px}.app-code{width:100%;font:12px/1.4 monospace;margin-top:8px}
.app-empty{padding:30px 0}.app-empty h2{font:700 clamp(32px,5vw,48px)/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 10px}.app-empty .app-transfer-in{margin-top:34px}
body:has(.app-page) .site-header{margin-bottom:4px}
@media(max-width:520px){.app-today{padding:18px;border-radius:20px}.app-today h3{font-size:24px}.app-action{font-size:17px}.app-grid{grid-template-columns:repeat(6,1fr)}.app-review-choices{grid-template-columns:1fr}}
@media (display-mode: standalone){.footer{display:none}.site-header .nav-build{display:none}}
.install-guide{list-style:none;padding:0;margin:18px 0 30px}.install-guide li{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-top:1px solid #eee4d5}.install-visual{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#e7f0ff;color:#1550b8;font-weight:700;font-size:20px}.install-guide p{margin:4px 0 0}
.tool-shell{padding-bottom:50px}.tool-head{max-width:780px;margin:10px 0 24px}.tool-head h1{font:700 clamp(36px,5.2vw,60px)/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-1.4px;margin:8px 0 12px}.tool-lede{font-size:18px;line-height:1.6;margin:0}
.tool-app{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:start;margin-bottom:50px}.tool-form,.tool-output{padding:24px;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}.tool-form h2,.tool-output h2{font:700 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}.tool-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tool-form select{font:inherit;padding:12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8}.tool-form .button{margin-top:18px}.tool-note{font-size:14px;color:#5b6475;margin:10px 0 0}.tool-output-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.tool-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tool-content{max-width:780px}.tool-content h2{font:700 30px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:44px 0 12px}.tool-content p,.tool-content li{line-height:1.7}.tool-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px}.tool-table th,.tool-table td{text-align:left;padding:10px;border-bottom:1px solid #eee4d5;vertical-align:top}.tool-table th{background:#f4efe6}
.tool-next{margin-top:50px;padding-top:10px;border-top:1px solid #eee4d5}.tool-next h3{font:700 20px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:24px 0 8px}.tool-more-links{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}.tool-more-links a{display:inline-block;padding:9px 14px;border-radius:12px;background:#f4efe6;font-weight:700;color:#1550b8;text-decoration:none}
.study-days{list-style:none;padding:0;margin:14px 0 0}.study-day{padding:14px 0;border-top:1px solid #eee4d5}.study-day h3{margin:0 0 6px;font-size:17px}.study-day p{margin:4px 0;line-height:1.5}.study-review{color:#12367f}.study-close{font-size:14px;color:#5b6475}
@media(max-width:860px){.tool-app{grid-template-columns:1fr}}
@media print{.site-header,.footer,.tool-head,.tool-form,.tool-content,.tool-actions,.breadcrumbs{display:none!important}.tool-app{display:block}.tool-output{box-shadow:none;border:0;padding:0}}
.prompt-purposes{grid-template-columns:repeat(2,minmax(0,1fr))}.prompt-card{background:#fffaf2}.prompt-text{font:600 clamp(24px,3vw,30px)/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;margin:10px 0 12px}.prompt-starter{color:#3b4456;font-style:italic;min-height:1.4em}.prompt-week{margin:18px 0 0;padding-left:20px;line-height:1.6}.prompt-week li{margin-bottom:8px}
.prompt-group{margin:30px 0}.prompt-group h3{font:700 22px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 4px}.prompt-group>p{color:#3b4456;margin:0 0 10px}.prompt-list{padding-left:22px}.prompt-list li{margin:0 0 10px;line-height:1.55}.prompt-list em{color:#5b6475}.prompt-time{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:99px;background:#e7f0ff;color:#12367f;font-size:12px;font-weight:700}
@media print{.prompt-card{border:0}.prompt-card .tool-actions,.prompt-card .tool-note{display:none}}
.chip{padding:8px 12px;border-radius:99px;border:1.5px solid #ddd3c4;background:#fffdf8;font-weight:600;cursor:pointer}.chip.is-on{border-color:#1550b8;background:#e7f0ff;color:#12367f}.meal-filters{margin:10px 0}
.meal-picker{list-style:none;padding:0;margin:10px 0 18px;max-height:360px;overflow:auto;border:1px solid #eee4d5;border-radius:14px}.meal-picker li{border-bottom:1px solid #f1ece3}.meal-picker label{display:flex;gap:12px;align-items:center;padding:10px 12px;cursor:pointer}.meal-picker input{width:20px;height:20px;flex:none}.meal-picker span{display:flex;flex-direction:column}.meal-picker small{color:#5b6475}
.meal-week{list-style:none;padding:0;margin:12px 0}.meal-week li{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #eee4d5}.meal-rest{color:#5b6475}.meal-list h4{margin:16px 0 6px;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:#ee5d2b}.meal-list ul{list-style:none;padding:0;margin:0}.meal-list li{padding:4px 0}
.meal-catalog{display:grid;gap:8px}.meal-item{padding:12px 16px;border-radius:14px;background:#fff;border:1px solid #eee4d5}.meal-item summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.meal-item summary span{color:#5b6475;font-size:14px}.meal-ingredients{font-size:15px;color:#3b4456}.meal-leftovers{font-size:14px;font-style:italic;color:#5b6475}
@media(max-width:520px){.meal-week li{grid-template-columns:1fr;gap:2px}}
.stack-card{background:#fffaf2}.stack-sentence{font:600 clamp(24px,3vw,30px)/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;margin:10px 0 12px}.stack-check{margin:16px 0;padding:14px 16px;border-radius:14px;background:#f4efe6}.stack-check p{margin:0 0 6px}.stack-check ul{margin:0;padding-left:20px;line-height:1.6}
.stack-group{margin:30px 0}.stack-group h3{font:700 22px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 4px}.stack-group>p{color:#3b4456}.stack-list{list-style:none;padding:0}.stack-list li{padding:14px 0;border-top:1px solid #eee4d5}.stack-list p{margin:4px 0;line-height:1.55}.stack-example{font-weight:700;font-size:18px}.stack-why{color:#5b6475;font-size:14px}
.tool-form fieldset{border:0;padding:0;margin:14px 0 0;min-width:0}.tool-form legend{font-weight:600;padding:0;margin-bottom:8px}
.article-content table{width:100%;border-collapse:collapse;margin:22px 0;font-size:16px;display:block;overflow-x:auto}.article-content th,.article-content td{text-align:left;padding:10px 12px;border-bottom:1px solid #eee4d5;vertical-align:top;min-width:120px}.article-content thead th{background:#f4efe6;font-weight:700}

.app-resume,.app-yesterday,.app-setup{margin-bottom:18px;padding:18px 20px;border-radius:18px}.app-resume{background:#fff3e8;border:1px solid #f6d5bd}.app-resume p,.app-yesterday p{margin:0 0 12px;font-weight:600;line-height:1.5}.app-resume-actions,.app-yesterday-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.app-yesterday{background:#fff;border:1px solid #eee4d5}.app-setup{background:#e7f0ff}.app-setup-head{display:flex;justify-content:space-between;align-items:center}.app-setup h3{font:700 20px 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}.app-setup ol{list-style:none;padding:0;margin:12px 0 0;counter-reset:setup}.app-setup li{counter-increment:setup;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #c7d8fb}.app-setup li div{display:flex;flex-direction:column}.app-setup li strong::before{content:counter(setup) ". "}.app-setup small{color:#3b4456}.app-setup li.is-done{opacity:.55}.app-setup li.is-done button{display:none}.app-setup li.is-done strong::after{content:" ✓";color:#1f7a3a}
.plan-card-title{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:8px 0}.plan-card-title a{text-decoration:none}
.example-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:16px 0 0}.example-facts div{padding:12px 14px;border-radius:14px;background:#f4efe6}.example-facts dt{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#ee5d2b}.example-facts dd{margin:4px 0 0;font-weight:600}
.example-coach{margin:18px 0;padding:16px 20px;border-left:4px solid #1550b8;background:#fff;border-radius:0 14px 14px 0}.example-coach p{margin:0;font-style:italic;line-height:1.6}.example-coach footer{margin-top:8px;font-size:13px;color:#5b6475}
/* Newsletter + feedback band, modal and forms; colour theme switch. */
.engage-band{background:#f4efe6;border-top:1px solid #eee4d5;padding:34px 0}
.engage-band-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.engage-band h2{font:600 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 0 6px;color:#172033}
.engage-band p{margin:0;color:#3e4a56;font-size:15px}
.engage-band-actions{display:flex;gap:10px;flex-wrap:wrap}
.footer-link-button{border:0;background:none;padding:0;font:inherit;font-size:14px;font-weight:600;color:#172033;cursor:pointer;text-align:left}
.footer-link-button:hover{text-decoration:underline;text-underline-offset:5px}
.footer-inner{height:auto;padding:64px 0 0;grid-template-columns:1fr 1.7fr 1.3fr;gap:40px 56px}
.footer-brand p{justify-self:start;margin:14px 0 0;max-width:240px;color:#3e4a56;font-size:14px;font-weight:500;line-height:1.5}
.footer-topics{gap:14px 32px!important;align-items:start!important}.footer-links{display:grid!important;grid-template-columns:repeat(2,1fr);align-content:start;align-items:start!important;gap:14px 32px!important}.footer-topics h2,.footer-links h2{margin-bottom:8px}
.footer nav a,.footer-link-button{line-height:1.3}
.footer-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px;padding:22px 0 30px;border-top:1px solid #eee4d5}
.footer-bottom p{margin:0;font-size:13px;font-weight:500;color:#627080}
@media(max-width:800px){.footer-inner{grid-template-columns:1fr;gap:36px;padding-top:44px}.footer-bottom{margin-top:0}}
.theme-switch{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:#f4efe6;border:1px solid #eee4d5}
.theme-switch button{border:0;background:transparent;color:#3e4a56;font:600 13px/1 'DM Sans','DM Sans Fallback',sans-serif;padding:8px 12px;border-radius:9px;cursor:pointer}
.theme-switch button[aria-pressed="true"]{background:#fff;color:#172033;box-shadow:0 1px 3px #17203326}
.engage-modal{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:0;border-radius:24px;padding:28px 26px 24px;background:#fffdf8;color:#172033;box-shadow:0 24px 60px #17203340}
.engage-modal::backdrop{background:#1720335c}
.engage-modal h2{font:600 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 36px 10px 0}
.engage-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;border:0;background:#f4efe6;color:#172033;font-size:24px;line-height:1;cursor:pointer}
.engage-form{display:grid;gap:14px}
.engage-intro{margin:0;color:#3e4a56;font-size:15px;line-height:1.55}
.engage-field{display:grid;gap:6px}
.engage-label{font-size:13px;font-weight:700;color:#3e4a56}
.engage-input{width:100%;min-height:48px;border:1px solid #ddd3c4;border-radius:12px;background:#fff;color:#172033;padding:11px 13px;font:inherit;font-size:16px}
textarea.engage-input{min-height:110px;resize:vertical}
.engage-input:focus-visible{outline:3px solid #f2783c;outline-offset:1px}
.engage-topics{border:0;padding:0;margin:0;min-width:0}
.engage-topics legend{padding:0;margin-bottom:8px}
.engage-chips{display:flex;flex-wrap:wrap;gap:6px}
.engage-chip{position:relative;cursor:pointer}
.engage-chip input{position:absolute;opacity:0;pointer-events:none}
.engage-chip span{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:99px;border:1px solid #ddd3c4;background:#fff;font-size:14px;font-weight:600;color:#3e4a56}
.engage-chip input:checked+span{background:#e7f0ff;border-color:#1550b8;color:#12367f}
.engage-chip input:focus-visible+span{outline:3px solid #f2783c;outline-offset:2px}
.engage-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;color:#3e4a56;cursor:pointer}
.engage-consent input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:#1550b8}
.engage-submit{min-height:50px;border:0;border-radius:14px;background:#1550b8;color:#fff;font:700 15px/1 'DM Sans','DM Sans Fallback',sans-serif;cursor:pointer}
.engage-submit:disabled{opacity:.6;cursor:default}
.engage-status{margin:0;min-height:0;color:#c2412d;font-size:14px;font-weight:600}
.engage-status:empty{display:none}
.engage-fine{margin:0;font-size:12px;color:#5b6475}
.engage-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.engage-done{padding:10px 0 4px}
.engage-done-title{font:600 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px;color:#172033}
.engage-done-text{margin:0;color:#3e4a56}
@media(max-width:640px){.engage-band{padding:28px 0}.engage-band-actions{width:100%}.engage-band-actions .button{flex:1}.engage-modal{padding:24px 18px 20px}}
/* Morning routine generator, sleep calculator, 30-day challenge, reading log. */
.routine-list{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}
.routine-list li{display:grid;grid-template-columns:22px 78px 1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid #eee4d5;border-radius:12px;background:#fff}
.routine-box{width:18px;height:18px;border:2px solid #1550b8;border-radius:5px;margin-top:2px}
.routine-time{font-weight:700;color:#12367f;font-size:14px}
.routine-text{font-size:15px;line-height:1.45}
.routine-hard{background:#fff3e8;border-radius:12px;padding:10px 14px;font-size:14px;color:#3e4a56}
.idea-list{padding-left:20px;display:grid;gap:10px}
.idea-list li{line-height:1.5}
.idea-time{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:99px;background:#e7f0ff;color:#12367f;font-size:12px;font-weight:700}
.shift-app{margin-top:24px}
.sleep-table td:nth-child(2){font-weight:700;color:#12367f}
.challenge-rule{font:600 20px/1.35 'Fraunces','Fraunces Fallback',Georgia,serif;margin:8px 0 14px}
.challenge-calendar{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.challenge-calendar li{border:1.5px solid #ddd3c4;border-radius:10px;padding:8px 6px;min-height:58px;display:grid;align-content:start;gap:2px;background:#fff}
.challenge-calendar strong{font-size:15px;color:#172033}
.challenge-calendar span{font-size:11px;color:#5b6475}
.challenge-calendar li.is-review{border-color:#e4632e}
.challenge-group{margin-bottom:26px}
.log-table td{height:34px}
.reading-sheet h3{margin-top:22px}
@media(max-width:640px){.routine-list li{grid-template-columns:20px 64px 1fr}.challenge-calendar{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media print{.tool-app[data-reading] .tool-form,.shift-app .tool-form{display:none!important}.challenge-calendar li{break-inside:avoid}.routine-list li{border-color:#999}[data-challenge-plan],[data-morning-plan]{display:none!important}}
.tool-head.has-art{max-width:none;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:center}
.tool-art{width:100%;height:auto;border-radius:22px;aspect-ratio:3/2;object-fit:cover}
@media(max-width:760px){.tool-head.has-art{grid-template-columns:1fr;gap:16px}.tool-art{max-height:220px}}
@media print{.tool-art{display:none!important}}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll .log-table{min-width:520px}
@media print{.table-scroll{overflow:visible}.table-scroll .log-table{min-width:0}}
.tool-row{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}
.tool-row>*{min-width:0}
.tool-form input:not([type=checkbox]):not([type=radio]),.tool-form select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.tool-app>*,.tool-output,.tool-form{min-width:0;max-width:100%}
/* Wave 2 tools: screen time, meditation timer, kids chart, daily routine */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:10px;margin:14px 0}
.stat{display:grid;gap:2px;padding:14px;border-radius:14px;background:#fff;border:1px solid #eee4d5}
.stat strong{font:600 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;letter-spacing:-.02em}
.stat span{font-size:13px;color:#526170}
.meditation-face{position:relative;width:min(280px,78vw);aspect-ratio:1;margin:22px auto 8px}
.meditation-ring{width:100%;height:100%;transform:rotate(-90deg)}
.meditation-ring circle{fill:none;stroke-width:8}
.ring-track{stroke:#eee4d5}
.ring-progress{stroke:#1550b8;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.meditation-readout{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:4px}
.meditation-readout strong{font:600 clamp(44px,12vw,64px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums}
.meditation-readout span{font-size:15px;color:#526170;text-transform:uppercase;letter-spacing:.08em}
.meditation-actions{justify-content:center}
.meditation-actions .button{min-width:130px}
[data-meditation] .tool-note{text-align:center}
.kids-list{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}
.kids-list li{display:grid;grid-template-columns:48px 1fr 34px;gap:12px;align-items:center;padding:10px 14px;border:2px solid #eee4d5;border-radius:16px;background:#fff}
.kids-icon{font-size:30px;line-height:1;text-align:center}
.kids-label{font:600 20px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.kids-box{display:block;width:30px;height:30px;border:3px solid #1550b8;border-radius:8px}
.kids-week{width:100%;border-collapse:separate;border-spacing:0 6px;min-width:520px}
.kids-week th,.kids-week td{padding:8px;text-align:center;font-size:14px}
.kids-week tbody th{text-align:left;display:flex;gap:10px;align-items:center;font:600 17px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.kids-week tbody th .kids-icon{font-size:26px;width:34px}
.kids-week td.kids-box{width:auto;height:auto;border:0}
.kids-week td.kids-box::after{content:"";display:block;width:28px;height:28px;margin:auto;border:3px solid #1550b8;border-radius:8px}
.kids-subtitle{margin-top:26px}
.day-plan{list-style:none;margin:14px 0;padding:0;display:grid;gap:6px}
.day-block{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid #eee4d5;border-left:5px solid #1550b8}
.day-block.is-fixed{border-left-color:#8a96a6;background:#f7f4ee}
.day-block.is-meal{border-left-color:#e4632e}
.day-block.is-anchor{border-left-color:#172033}
.day-block.is-free{border-left-color:#c9d6ea;border-style:dashed;color:#526170}
.day-time{font-weight:700;font-variant-numeric:tabular-nums;color:#172033;font-size:14px}
@media(max-width:640px){.day-block{grid-template-columns:1fr;gap:2px}.kids-list li{grid-template-columns:40px 1fr 30px}.kids-label{font-size:17px}}
@media print{.tool-app[data-kids] .tool-output-head h2{font-size:34px}.kids-list li{border-color:#999;break-inside:avoid;padding:12px 16px}.kids-label{font-size:24px}.kids-icon{font-size:36px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.kids-week{min-width:0}.day-block{break-inside:avoid;border-color:#999}.stat{border-color:#999}[data-meditation]{display:none!important}}
.meditation-panel{text-align:center}
@media print{.tool-app[data-kids] .kids-subtitle{font:600 34px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;break-before:page;margin:0 0 14px}}
@media print{.tool-output a.button,.tool-output .button-primary{display:none!important}.tool-output::after{content:"Free printable from dailyhabitai.com";display:block;margin-top:14px;font-size:10px;color:#666;text-align:right}}
@media print{[data-challenge-output] .challenge-calendar li{min-height:118px}[data-reading-output] h3{break-before:page;font-size:28px}[data-reading-output] .challenge-calendar li{min-height:96px}.log-table td{height:34px}}
/* Wave 3 tools */
.pomodoro-modes{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#f3ede3;margin:0 auto 6px}
.pomodoro-modes button{border:0;background:none;padding:8px 14px;border-radius:999px;font:inherit;font-size:14px;font-weight:700;color:#526170;cursor:pointer}
.pomodoro-modes button[aria-selected=true]{background:#fff;color:#172033;box-shadow:0 1px 4px #17203322}
[data-pomodoro].is-break .ring-progress{stroke:#2f8a5b}
.pomodoro-task{max-width:360px;margin:6px auto 10px;text-align:left}
.pomodoro-dots{display:flex;justify-content:center;gap:8px;list-style:none;margin:12px 0 4px;padding:0}
.pomodoro-dots li{width:12px;height:12px;border-radius:50%;border:2px solid #1550b8}
.pomodoro-dots li.is-done{background:#1550b8}
.eisen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.eisen-q{border-radius:16px;padding:14px;min-height:170px;border:1px solid #eee4d5;background:#fff}
.eisen-q h3{margin:0 0 8px;font:600 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.eisen-q h3 small{display:block;font:600 11px/1.4 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#526170}
.eisen-q.q1{border-top:5px solid #e4632e}.eisen-q.q2{border-top:5px solid #1550b8}.eisen-q.q3{border-top:5px solid #c9a227}.eisen-q.q4{border-top:5px solid #8a96a6}
.eisen-q ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.eisen-q li{display:flex;align-items:center;gap:6px}
.eisen-task{flex:1;text-align:left;border:1px solid #eee4d5;background:#fffdf8;border-radius:10px;padding:8px 10px;font:inherit;font-size:15px;color:#172033;cursor:pointer;min-width:0;overflow-wrap:anywhere}
.eisen-del{border:0;background:none;font-size:20px;line-height:1;color:#8a96a6;cursor:pointer;padding:4px 6px}
.eisen-empty{color:#8a96a6;font-size:14px}
.smart-goal{font:600 22px/1.35 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;background:#fff;border:1px solid #eee4d5;border-left:5px solid #1550b8;border-radius:14px;padding:16px 18px;margin:10px 0}
.smart-checks{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}
.smart-checks li{padding:8px 12px 8px 34px;border-radius:10px;position:relative;font-size:15px}
.smart-checks li::before{position:absolute;left:12px;top:8px;font-weight:800}
.smart-checks .is-ok{background:#e8f5ee}.smart-checks .is-ok::before{content:"✓";color:#2f8a5b}
.smart-checks .is-warn{background:#fff3e6}.smart-checks .is-warn::before{content:"!";color:#e4632e}
.chores-person{border:1px solid #eee4d5;border-radius:14px;padding:12px 14px;margin:0 0 10px}
.chores-person-row th{background:#f3ede3;font:600 18px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;padding:8px 10px;text-align:left}
.chores-stars th{font-size:14px;color:#526170;text-align:left;padding:6px 10px}
.chores-week{min-width:600px}
.tt-habits{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:8px;margin:6px 0 12px}
.tt-habits input{width:100%}
.tt-grid{border-collapse:collapse;width:100%;min-width:560px;background:#fff}
.tt-grid.is-monthly{min-width:900px}
.tt-grid th,.tt-grid td{border:1px solid #d9d2c5;padding:6px 4px;text-align:center;font-size:12px}
.tt-grid tbody th{text-align:left;min-width:140px;font-size:14px;padding:6px 8px}
.tt-grid td.tt-cell{height:30px}
.tt-grid td.tt-total{min-width:44px}
.rc-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px;counter-reset:rc}
.rc-list li{display:grid;grid-template-columns:30px 1fr;gap:4px 10px;align-items:center;padding:8px 12px;border:1px solid #eee4d5;border-radius:12px;background:#fff;counter-increment:rc}
.rc-list li .kids-box{width:22px;height:22px;border-width:2px;border-radius:6px}
.rc-prompt{font-weight:700;color:#172033}
.rc-prompt::before{content:counter(rc) ". ";color:#526170;font-weight:600}
.rc-line{grid-column:2;font-size:13px;color:#8a96a6}
@media(max-width:640px){.eisen-grid{grid-template-columns:1fr}.smart-goal{font-size:19px}.pomodoro-modes button{padding:8px 10px;font-size:13px}}
@media print{[data-pomodoro]{display:none!important}.eisen-grid{grid-template-columns:repeat(2,1fr)}.eisen-q{min-height:320px;border-color:#999;break-inside:avoid}.eisen-del{display:none}.eisen-task{border:0;padding:2px 0}.smart-checks{display:none}.tt-grid,.tt-grid.is-monthly{min-width:0;font-size:9px}.tt-grid th,.tt-grid td{border-color:#999}.tt-grid.is-monthly th,.tt-grid.is-monthly td{padding:3px 1px}@page{size:auto}.rc-list{grid-template-columns:1fr 1fr;gap:4px 12px}.rc-list li{padding:5px 8px;border-color:#bbb;break-inside:avoid}.rc-list li[hidden]{display:none}.chores-week{min-width:0}.chores-person-row th{background:#eee!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
@media print{.tt-grid td.tt-cell,.tt-grid tbody th{height:46px}.tt-grid:not(.is-monthly) td.tt-cell{height:56px}}
/* Vision board tools */
.vm-app{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.vm-canvas,.vt-card canvas{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 6px 24px #17203322;background:#fff;cursor:pointer}
.vm-tiles{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.vm-tile-btn{border:1px solid #d9d2c5;background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;color:#172033;cursor:pointer}
.vm-tile-btn.is-selected{border-color:#1550b8;background:#e7f0ff}
.vm-editor{border:1px solid #eee4d5;border-radius:16px;background:#fff;padding:14px;margin:8px 0 12px}
.vm-editor-head{display:flex;justify-content:space-between;align-items:center}
.vm-editor h3{margin:0;font-size:20px}
.vm-editor h4{margin:10px 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#526170}
.vm-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.vm-lib{border:2px solid transparent;background:none;padding:0;border-radius:12px;cursor:pointer;text-align:center;font:inherit;font-size:11px;color:#526170}
.vm-lib img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:10px}
.vm-lib:hover,.vm-lib:focus-visible{border-color:#1550b8}
.vm-upload{margin:10px 0;cursor:pointer}
.vm-words{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.vm-words .chip,.vw-card{cursor:pointer}
.vm-plan{margin-top:6px}
.vm-print-img{display:none}
.vt-app{display:block}
.vt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px;margin-top:12px}
.vt-card{background:#fff;border:1px solid #eee4d5;border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px}
.vt-card h3{margin:8px 0 0;font-size:22px}
.vt-card p{margin:0;font-size:15px;color:#3e4a56}
.vt-card .tool-actions{margin-top:auto;padding-top:8px}
.vt-count{color:#526170}
.vw-cards{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.vw-card{border:2px dashed #b9c3d3;border-radius:10px;background:#fffdf8;padding:12px 16px;font:600 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;text-align:center}
.vw-cards.size-s .vw-card{font-size:15px;padding:8px 12px}.vw-cards.size-l .vw-card{font-size:30px;padding:16px 22px}
.vw-cards.style-script .vw-card{font-family:'Caveat',cursive;font-size:26px}.vw-cards.style-script.size-s .vw-card{font-size:20px}.vw-cards.style-script.size-l .vw-card{font-size:38px}
.vw-cards.style-bold .vw-card{font-family:'DM Sans','DM Sans Fallback',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.vw-cards.color-warm .vw-card{background:#fff1e3;color:#8a3d12;border-color:#f0b98f}.vw-cards.color-sage .vw-card{background:#eef5ea;color:#1f4a31;border-color:#a9c8a0}.vw-cards.color-blush .vw-card{background:#fdeeee;color:#7a2d4b;border-color:#e7b3c3}.vw-cards.color-mono .vw-card{background:#fff;color:#000;border-color:#777}
.vw-list{line-height:1.8;color:#3e4a56}
@media(max-width:900px){.vm-app{grid-template-columns:1fr}}
@media print{.vm-app .vm-stage>*:not(.vm-print-img),.vt-gallery>*:not(.vm-print-img){display:none!important}.vm-print-img{display:block;width:100%;height:auto}.vm-app .tool-form,.vt-app .tool-form{display:none!important}.vm-stage::after,.vt-gallery::after{display:none}.vw-card{print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}.vw-cards{gap:6px}.vm-app,.vt-app{page:vb-landscape}}
@page vb-landscape{size:landscape}
@media print{.vm-app.vm-print-portrait{page:vb-portrait}}
@page vb-portrait{size:portrait}
.home-season{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;margin:0 auto 40px;padding:28px 32px;border-radius:24px;background:#fff1e0}
.home-season h2{font:700 32px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;margin:6px 0 10px}
.home-season p{font-size:17px;line-height:1.55;color:#3e4a56;margin:0 0 16px}
.home-season .home-tool-links{margin-top:16px}
.home-season img{width:100%;height:auto;border-radius:18px}
@media(max-width:800px){.home-season{grid-template-columns:1fr;padding:22px}.home-season img{order:-1}}
.vm-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0 8px}
.vm-examples figure{margin:0}
.vm-examples img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 4px 18px #17203320}
.vm-examples figcaption{font-size:14px;line-height:1.5;color:#3e4a56;margin-top:8px}
.vm-example-phone img{max-width:260px}
@media(max-width:640px){.vm-examples{grid-template-columns:1fr}}
.vm-app-flow{margin:16px 0 8px;padding:16px;border-radius:16px;background:#e7f0ff;border:1px solid #c9d6ea}
.vm-app-flow h3{margin:4px 0 8px;font-size:21px}
.vm-app-steps{margin:0 0 10px;padding-left:20px;font-size:15px;line-height:1.5}
.vm-app-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.vm-app-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;background:#fff;border-radius:12px;font-weight:600;font-size:15px}
.vm-app-list li span{min-width:0;overflow-wrap:anywhere}
.vm-app-list .button{flex:none;padding:8px 12px;font-size:14px}
.vm-bulk{border:1px dashed #c9d6ea;border-radius:14px;padding:10px 12px}
.vm-lib[hidden]{display:none}
.chip.is-on{background:#172033;color:#fff}
.vb-page{padding:24px 0 80px}
.vb-head{max-width:820px;margin:20px 0 22px}
.vb-head h1{font:600 clamp(36px,5vw,58px)/1.06 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:10px 0 14px}
.vb-figure{margin:0 0 24px}
.vb-figure img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 8px 28px #17203326}
.vb-figure figcaption{font-size:14px;color:#3e4a56;margin-top:8px;line-height:1.5}
.vb-body{max-width:820px}
.vb-body p,.vb-body li{font-size:17px;line-height:1.7;color:#2f3a46}
.vb-ideas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.vb-ideas ul{padding-left:18px}
.vb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:18px;margin:12px 0 30px}
.vb-card{background:#fff;border:1px solid #eee4d5;border-radius:18px;overflow:hidden;padding-bottom:12px}
.vb-card img{display:block;width:100%;height:auto}
.vb-card h3{margin:12px 14px 4px;font-size:20px}
.vb-card h3 a{color:#172033;text-decoration:none}
.vb-card p{margin:0 14px;font-size:14px;line-height:1.5;color:#3e4a56}
.vb-app{margin:30px 0;padding:22px;border-radius:20px;background:#e7f0ff;border:1px solid #c9d6ea}
.vb-app h2{margin-top:4px}
.vb-usecases li{margin-bottom:8px}
.vb-theme-links{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.vb-theme-links a{display:inline-block;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid #d9d2c5;text-decoration:none;color:#1550b8;font-weight:700;font-size:14px}
@media(max-width:700px){.vb-ideas{grid-template-columns:1fr}.vb-app{padding:16px}}
.vm-fit{margin:10px 0;padding:10px;border-radius:12px;background:#f7f4ee}
.vm-move{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.vm-move .chip{min-width:44px;min-height:40px}
.vb-sizes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-8px 0 24px;font-size:15px}
.vb-sizes strong{width:100%;font-size:14px;color:#3e4a56}
.vb-sizes a{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #c9d6ea;color:#1550b8;font-weight:700;text-decoration:none}
.vm-styles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,45%),1fr));gap:14px;margin:12px 0 24px}
.vm-styles figure{margin:0}
.vm-styles img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 4px 16px #17203326}
.vm-styles figcaption{font-size:13px;line-height:1.45;color:#3e4a56;margin-top:6px}
/* Vision board maker: cleaner toolbar, compact app panel, success dialog */
.vm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.vm-head h2{margin:0}
.vm-shuffle{border:0;border-radius:999px;background:#172033;color:#fff;font:700 15px/1 'DM Sans','DM Sans Fallback',sans-serif;padding:11px 18px;cursor:pointer;white-space:nowrap}
.vm-shuffle:hover{background:#1550b8}
.vm-toolbar{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 6px}
.vm-toolbar [hidden]{display:none}
.vm-toolbar .vm-save{width:100%;justify-content:center;min-height:46px}
.vm-tool{min-height:46px;border:1px solid #d9d2c5;border-radius:12px;background:#fff;color:#172033;font:700 14px/1.1 'DM Sans','DM Sans Fallback',sans-serif;cursor:pointer;padding:0 8px;white-space:nowrap}
.vm-tool:hover{border-color:#1550b8;color:#1550b8}
.vm-tiles{gap:6px}
.vm-app-flow{margin:14px 0 4px;padding:0;border-radius:14px;background:#eef4ff;border:1px solid #c9d6ea}
.vm-app-flow summary{list-style:none;display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-size:15px;line-height:1.35}
.vm-app-flow summary::-webkit-details-marker{display:none}
.vm-app-badge{flex:none;width:26px;height:26px;border-radius:50%;background:#1550b8;color:#fff;display:grid;place-items:center;font-size:14px;font-weight:800}
.vm-app-chev{margin-left:auto;font-size:22px;color:#1550b8;transition:transform .2s}
.vm-app-flow[open] .vm-app-chev{transform:rotate(90deg)}
.vm-app-flow>*:not(summary){margin-left:14px;margin-right:14px}
.vm-app-flow .vm-app-list{margin-bottom:10px}
.vm-app-list li{padding:6px 8px 6px 12px;font-size:14px}
.vm-app-list .button{padding:7px 10px;font-size:13px;min-height:0}
.vm-done{border:0;border-radius:22px;padding:0;max-width:min(440px,92vw);box-shadow:0 20px 60px #17203355}
.vm-done::backdrop{background:rgba(23,32,51,.45)}
.vm-done-inner{position:relative;padding:24px 22px 20px;text-align:center}
.vm-done-x{position:absolute;top:8px;right:10px;border:0;background:none;font-size:26px;color:#6b7685;cursor:pointer}
.vm-done-emoji{font-size:40px;margin:0}
.vm-done h3{margin:6px 0 6px;font-size:24px}
.vm-done p{font-size:15px;line-height:1.5;color:#3e4a56;margin:0 0 10px}
.vm-done-next{background:#f7f4ee;border-radius:14px;padding:12px;margin:10px 0 14px;text-align:left}
.vm-done-links{display:flex;flex-wrap:wrap;gap:6px}
.vm-done-links .chip{text-decoration:none;color:#1550b8;background:#fff;border:1px solid #c9d6ea}
.vm-done-actions{display:flex;flex-direction:column;gap:6px;align-items:center}
.vm-done-actions .button{width:100%;justify-content:center}
@media(max-width:640px){.vm-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.vm-toolbar .vm-save{grid-column:1/-1}.vm-head h2{font-size:22px}}
.vb-more{margin:10px 0}
.vb-more summary{cursor:pointer;font-weight:700;color:#1550b8;padding:6px 0}
.vb-app .tool-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:640px){.vb-app .tool-actions .button{flex:1 1 100%;justify-content:center}.vb-app table td:last-child a{white-space:nowrap}}

.tool-head-compact{max-width:860px;margin:4px 0 18px}
.tool-head-compact h1{font-size:clamp(30px,3.6vw,44px);line-height:1.08;margin:6px 0 8px}
.tool-head-compact .tool-lede{font-size:16px;line-height:1.5;color:#3e4a56;max-width:760px}
.tool-figure{margin:0 0 28px}
.tool-figure .tool-art{max-height:360px;width:100%;object-fit:cover}
@media(max-width:760px){.tool-shell .breadcrumbs{margin-bottom:12px}.tool-head-compact{margin:0 0 14px}.tool-head-compact h1{font-size:28px}.tool-head-compact .tool-lede{font-size:15px}.tool-figure .tool-art{max-height:200px}}

/* ---- Vision board maker: the board first, one options panel at a time ---- */
.vm-app{grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.vm-app.vm-drawer-closed{grid-template-columns:minmax(0,1fr)}
.vm-app.vm-drawer-closed .vm-drawer{display:none}
.vm-app .vm-stage{padding:14px 18px 16px}
.vm-head{display:flex;align-items:center;gap:12px;margin:0 0 12px;flex-wrap:wrap}
.vm-head h2{margin:0;font-size:20px;flex:none}
.vm-tabs{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.vm-tabs::-webkit-scrollbar{display:none}
.vm-tabs button{flex:none;border:1px solid transparent;border-radius:999px;background:none;padding:9px 14px;font:700 14px/1 'DM Sans','DM Sans Fallback',sans-serif;color:#4b5565;cursor:pointer;white-space:nowrap}
.vm-tabs button:hover{background:#f3eee5}
.vm-tabs button[aria-pressed="true"]{background:#e7f0ff;border-color:#c9d6ea;color:#1550b8}
.vm-head-actions{display:flex;gap:8px;align-items:center;margin-left:auto}
.vm-shuffle{padding:10px 16px;font-size:14px}
.vm-dl{display:flex;position:relative}
.vm-dl-main{border:0;border-radius:999px 0 0 999px;background:#1550b8;color:#fff;font:700 14px/1 'DM Sans','DM Sans Fallback',sans-serif;padding:11px 16px;cursor:pointer;white-space:nowrap}
.vm-dl-main:hover{background:#0f3f94}
.vm-dl-more>summary{list-style:none;cursor:pointer;background:#1550b8;color:#fff;border-left:1px solid #ffffff55;border-radius:0 999px 999px 0;padding:11px 12px 11px 10px;font:700 14px/1 'DM Sans','DM Sans Fallback',sans-serif}
.vm-dl-more>summary::-webkit-details-marker{display:none}
.vm-dl-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:260px;display:grid;gap:4px;padding:8px;background:#fff;border:1px solid #e3dac9;border-radius:14px;box-shadow:0 14px 30px #17203326}
.vm-dl-menu button{text-align:left;border:0;background:none;border-radius:10px;padding:11px 12px;font:600 14px/1.2 'DM Sans','DM Sans Fallback',sans-serif;color:#172033;cursor:pointer}
.vm-dl-menu button:hover{background:#f3eee5}
.vm-dl-menu button[hidden]{display:none}
.vm-dl-menu label{display:grid;gap:6px;padding:8px 12px 4px;font-size:12px;font-weight:700;color:#5b6475;border-top:1px solid #eee4d5;margin-top:4px}
.vm-dl-menu select{font:inherit;font-size:13px;padding:8px;border:1px solid #ddd3c4;border-radius:10px;background:#fffdf8}
.vm-canvas-wrap{display:flex;justify-content:center;background:#f5f1ea;border-radius:16px;padding:14px}
.vm-canvas{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 150px);margin:0;border-radius:10px;box-shadow:0 6px 24px #17203326}
.vm-status{text-align:center;font-size:13px}
.vm-drawer{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding:16px 18px 20px}
.vm-drawer-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px}
.vm-drawer-head h3{margin:0;font:700 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.vm-drawer-x{border:0;background:none;font-size:26px;line-height:1;color:#6b7685;cursor:pointer;width:40px;height:40px;border-radius:50%}
.vm-drawer-x:hover{background:#f3eee5}
.vm-app [data-vm-panel]:not(.is-active){display:none!important}
.vm-label{margin:14px 0 8px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.vm-label .optional{text-transform:none;letter-spacing:0;font-weight:600}
.vm-style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vm-style-card{position:relative;display:grid;gap:4px;justify-items:center;padding:6px;border:2px solid transparent;border-radius:14px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;line-height:1.2;color:#172033}
.vm-style-card input{position:absolute;opacity:0;pointer-events:none}
.vm-style-card img{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:9px;box-shadow:0 2px 8px #17203322}
.vm-style-card:has(input:checked){border-color:#1550b8;background:#e7f0ff}
.vm-style-card:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.vm-layouts{gap:6px}
.vm-layouts .choice span{padding:8px 12px;font-size:13px}
.vm-size-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.vm-size-card{display:flex;align-items:center;gap:10px;text-align:left;border:1.5px solid #e3dac9;background:#fff;border-radius:12px;padding:10px;cursor:pointer;min-height:56px;font:inherit;color:#172033}
.vm-size-card strong{display:block;font-size:13px;line-height:1.2}
.vm-size-card small{display:block;font-size:11px;color:#6b7685;line-height:1.3}
.vm-size-shape{flex:none;display:block;border:2px solid #1550b8;border-radius:3px;background:#e7f0ff}
.vm-size-card[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff}
.vm-swatches{display:flex;flex-wrap:wrap;gap:8px}
.vm-swatch{width:40px;height:40px;border-radius:50%;border:2px solid #e3dac9;cursor:pointer;font:700 11px/1 'DM Sans','DM Sans Fallback',sans-serif;color:#4b5565;background:#fff}
.vm-swatch[aria-pressed="true"]{outline:3px solid #1550b8;outline-offset:2px}
.vm-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vm-upload-main{width:100%;justify-content:center;margin:6px 0 4px}
.vm-more{margin-top:14px;border-top:1px solid #eee4d5;padding-top:10px}
.vm-more summary{cursor:pointer;font-weight:700;color:#1550b8;padding:6px 0}
.vm-drawer .vm-editor{margin:10px 0}
.vm-drawer .vm-library{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}
.vm-exit,.vm-mobile-cta{display:none}
@media(max-width:1099px){
/* Page view: a big preview and two clear buttons; editing happens full screen. */
.vm-app,.vm-app.vm-drawer-closed{display:block}
.vm-app .vm-stage{padding:12px 12px 14px}
.vm-app .vm-drawer,.vm-app .vm-tabs{display:none}
.vm-head{flex-wrap:nowrap}
.vm-head h2{font-size:18px}
.vm-canvas-wrap{padding:10px;border-radius:14px}
.vm-canvas{max-height:70vh;max-height:70dvh}
.vm-mobile-cta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 4px}
.vm-mobile-cta .button{min-height:48px;justify-content:center;padding:0 10px;margin:0}
/* Full-screen editor */
html.vm-lock,html.vm-lock body{overflow:hidden}
.vm-app.vm-full{position:fixed;inset:0;z-index:1000;margin:0;background:#fffdf8;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"exit title actions" "canvas canvas canvas" "sheet sheet sheet" "tabs tabs tabs";padding:env(safe-area-inset-top) 0 0}
.vm-full .vm-stage,.vm-full .vm-sticky,.vm-full .vm-head{display:contents}
.vm-full .vm-exit{display:inline-flex;grid-area:exit;align-self:center;margin:8px 0 8px 10px;border:0;border-radius:999px;background:#e7f0ff;color:#1550b8;font:700 14px/1 'DM Sans','DM Sans Fallback',sans-serif;padding:11px 14px;cursor:pointer}
.vm-full h2{grid-area:title;align-self:center;margin:0 0 0 10px;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vm-full .vm-head-actions{grid-area:actions;margin:8px 10px 8px 0}
.vm-full .vm-canvas-wrap{grid-area:canvas;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;padding:4px 6px;margin:0;border-radius:0;background:#efe9df}
.vm-full .vm-canvas{max-height:100%;max-width:100%;width:auto;height:auto;border-radius:6px}
.vm-full .vm-drawer{display:block;grid-area:sheet;position:static;max-height:38vh;max-height:38dvh;overflow:auto;overscroll-behavior:contain;margin:0;padding:10px 14px 12px;border:0;border-top:1px solid #e3dac9;border-radius:18px 18px 0 0;box-shadow:0 -8px 20px #1720331a;background:#fff}
.vm-full.vm-sheet-closed .vm-drawer{display:none}
.vm-full .vm-drawer-head{display:none}
.vm-full .vm-tabs{display:flex;grid-area:tabs;gap:0;margin:0;padding:0 0 env(safe-area-inset-bottom);border-top:1px solid #e3dac9;background:#fffdf8;overflow:visible}
.vm-full .vm-tabs button{flex:1;border:0;border-radius:0;border-top:3px solid transparent;padding:13px 4px 14px;font-size:13px;white-space:normal;line-height:1.15;background:none}
.vm-full .vm-tabs button[aria-pressed="true"]{border-top-color:#1550b8;color:#1550b8;background:#f3f7ff}
.vm-full .vm-mobile-cta,.vm-full .vm-status,.vm-full .vm-app-flow{display:none}
.vm-full [data-vm-templates],.vm-full .vm-tiles,.vm-full [data-vm-lib-groups],.vm-full [data-vm-words]{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.vm-full [data-vm-templates]>*,.vm-full .vm-tiles>*,.vm-full [data-vm-lib-groups]>*,.vm-full [data-vm-words]>*{flex:none}
.vm-full .vm-style-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:92px;overflow-x:auto;scrollbar-width:none}
.vm-full .vm-library{grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-template-columns:none;grid-auto-columns:76px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.vm-full .vm-size-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
@media(max-width:1099px) and (min-width:700px){.vm-canvas{max-height:72vh}.vm-full .vm-drawer{max-height:34vh}.vm-mobile-cta{max-width:520px;margin-inline:auto}}
@media(max-width:420px){.vm-dl-main{padding:10px 12px}.vm-shuffle{padding:9px 12px}.vm-head h2{font-size:17px}}
.vm-keep-mine{width:100%;justify-content:center;margin:8px 0;min-height:44px;font-size:14px}.vm-keep-mine[hidden]{display:none}
.vm-upload-one{width:100%;justify-content:center;margin:10px 0 4px;min-height:44px}
.vm-lib-wrap{margin:10px 0;border:1px solid #eee4d5;border-radius:12px;padding:0 10px}
.vm-lib-wrap>summary{cursor:pointer;font-weight:700;color:#1550b8;padding:11px 0;list-style-position:inside}
.vm-lib-wrap[open]{padding-bottom:10px}
.vm-lib-groups{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.vm-lib-groups>*{flex:none}
.vm-drawer .vm-editor{border:1px solid #c9d6ea;background:#fbfdff}
.vm-fit .chip[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#fff}
.vm-move-label{margin:10px 0 0;font-size:12px;font-weight:700;color:#5b6475}
.vm-swatches[hidden]{display:none}

/* While a tile is being edited, its panel shows only that tile's editor (Done returns to the list). */
.vm-panel[data-vm-panel="tiles"]:has(.vm-editor:not([hidden]))>:not(.vm-editor){display:none!important}
.vm-panel[data-vm-panel="tiles"]:has(.vm-editor:not([hidden])) .vm-editor{margin-top:0}
/* Vision board words: compact group chips so the sheet and Print are near the top */
.vw-app .choice-grid{display:flex;flex-wrap:wrap;gap:6px}
.vw-app .choice-grid .choice span{padding:8px 12px;font-size:14px;min-height:40px}
.vw-app .tool-actions{gap:8px}
@media(max-width:760px){.vw-app .tool-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.vw-app .tool-row select{padding:10px 6px;font-size:13px}.vw-app .tool-row .build-field{font-size:12px}.vw-app .tool-actions .button{flex:1 1 100%;justify-content:center}}
@media(max-width:760px){.vw-app .tool-form{display:flex;flex-direction:column}.vw-app .tool-form>h2{order:-2}.vw-app .tool-form>.tool-actions{order:-1;margin:4px 0 8px}}
/* Tools pass: 30-day habit tracker, 30-day challenge generator, SMART goals, reading challenge, habit stacking builder */
.ht-app{margin-bottom:50px}
.ht-habits{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ht-habit,.ht-add{min-height:44px;max-width:100%;padding:0 16px;border-radius:999px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:inherit;font-size:14px;font-weight:700;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ht-habit[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff;color:#12367f;box-shadow:inset 0 0 0 1px #1550b8}
.ht-add{border-style:dashed;background:transparent;color:#1550b8}
.ht-habit:focus-visible,.ht-add:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.ht-fields{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:12px;margin-bottom:16px}
.ht-field{display:grid;gap:6px;font-size:13px;font-weight:700;color:#172033;min-width:0}
.ht-field input{width:100%;min-width:0;height:46px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;padding:0 12px;font:inherit;font-size:16px;font-weight:400}
.ht-field input:focus,.ht-review textarea:focus{border-color:#1550b8;outline:none}
.ht-sheet{background:#fffaf0;border:1px solid #eadfc9;border-radius:22px;padding:22px}
.ht-sheet-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;margin-bottom:16px}
.ht-sheet-head>div{min-width:0}
.ht-sheet-head .eyebrow{margin:0 0 4px}
.ht-sheet-head h2{font:600 clamp(24px,3vw,32px)/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 0 4px;color:#172033;overflow-wrap:anywhere}
.ht-cue{margin:0;color:#53606b;font-size:15px}
.ht-stats{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:14px;color:#3e4a56}
.ht-stats strong{font:700 20px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#1550b8}
.ht-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ht-day{position:relative;display:grid;align-content:start;gap:2px;min-height:68px;padding:8px 10px;border:1.5px solid #e7dcc8;border-radius:12px;background:#fff;cursor:pointer;transition:background .15s,border-color .15s}
.ht-day input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ht-num{font:700 18px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.ht-day small{font-size:12px;color:#607080;white-space:nowrap;overflow:hidden}
.ht-day::after{content:"";position:absolute;top:8px;right:8px;width:18px;height:18px;border:2px solid #b9c6da;border-radius:6px;display:grid;place-items:center;font-size:13px;font-weight:700;line-height:1}
.ht-day.is-today{border-color:#e4632e;box-shadow:inset 0 0 0 1px #e4632e}
.ht-day.is-done,.ht-day:has(input:checked){background:#1550b8;border-color:#1550b8}
.ht-day.is-done .ht-num,.ht-day.is-done small,.ht-day:has(input:checked) .ht-num,.ht-day:has(input:checked) small{color:#fff}
.ht-day.is-done::after,.ht-day:has(input:checked)::after{content:"✓";color:#fff;border-color:currentColor}
.ht-day:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.ht-review{display:grid;gap:6px;max-width:680px;margin-top:16px;font-size:13px;font-weight:700;color:#172033}
.ht-review textarea{width:100%;min-height:64px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;color:#172033;padding:10px 12px;font:inherit;font-weight:400;resize:vertical}
.ht-print-foot{display:none}
.ht-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.ht-actions .button{margin-top:0;width:auto}
.ht-actions .text-button{min-height:44px;text-decoration:underline}
.ht-actions .ht-remove{margin-left:auto;color:#a4461f}
.ht-note{max-width:760px}
.ht-note a{color:#1550b8}
.cg-own{margin-top:22px;padding-top:18px;border-top:1px dashed #ddd3c4}
.cg-progress,.rc-progress{margin:0 0 8px;font-size:14px;font-weight:700;color:#1550b8}
.cg-calendar li{position:relative;display:block;padding:0}
.cg-calendar label{display:grid;align-content:start;gap:2px;min-height:56px;height:100%;padding:8px 6px;border-radius:9px;cursor:pointer}
.cg-calendar input{position:absolute;top:7px;right:6px;width:18px;height:18px;margin:0;accent-color:#1550b8;cursor:pointer}
.cg-calendar li.is-done{background:#e7f0ff;border-color:#1550b8}
.cg-calendar li:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.smart-form-head{display:flex;justify-content:space-between;align-items:baseline;gap:4px 12px;flex-wrap:wrap}
.smart-form-head .text-button{min-height:44px;font-size:14px;text-decoration:underline}
.smart-milestones{list-style:none;margin:6px 0 14px;padding:0;display:grid;gap:8px}
.smart-milestones label{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:center}
.smart-milestones label>span{font-size:14px;font-weight:700;color:#1550b8}
.smart-milestones input{width:100%;min-width:0;min-height:44px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fffdf8;color:#172033;padding:8px 12px;font:inherit;font-size:15px}
.smart-milestones input:focus,.rc-title:focus{border-color:#1550b8;outline:none}
.print-blank-sheet{display:none}
.rc-list li{grid-template-columns:24px minmax(0,1fr);row-gap:2px}
.rc-list input[type="checkbox"]{width:22px;height:22px;margin:0;accent-color:#1550b8;cursor:pointer}
.rc-list .rc-prompt{cursor:pointer}
.rc-list li.is-done{background:#f3f8ff;border-color:#b9cdf0}
.rc-title{grid-column:2;width:100%;min-width:0;min-height:40px;border:0;border-bottom:1.5px solid #ddd3c4;background:transparent;color:#172033;padding:4px 2px;font:inherit;font-size:15px}
.rc-bingo{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.rc-bingo li{position:relative;min-height:112px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fff}
.rc-bingo label{display:flex;flex-direction:column;justify-content:center;gap:4px;height:100%;padding:22px 6px 8px;text-align:center;font-size:13px;font-weight:600;line-height:1.25;color:#172033;cursor:pointer}
.rc-bingo input{position:absolute;top:6px;right:6px;width:18px;height:18px;margin:0;accent-color:#1550b8;cursor:pointer}
.rc-bingo small{font-size:11px;font-weight:700;color:#1550b8;overflow-wrap:anywhere}
.rc-bingo li.is-free{background:#fff0d5;border-color:#e4632e}
.rc-bingo li.is-done{background:#e7f0ff;border-color:#1550b8}
.rc-bingo li:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
@media(max-width:860px){.tool-app[data-challenge] [data-challenge-output]{order:-1}}
@media(max-width:600px){
.ht-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.ht-field-name{grid-column:1/-1}
.ht-sheet{padding:14px 12px;border-radius:18px}
.ht-sheet-head h2{font-size:24px}
.ht-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.ht-day{min-height:56px;padding:6px;border-radius:10px}
.ht-num{font-size:16px}
.ht-day small{font-size:10.5px}
.ht-day::after{top:5px;right:5px;width:13px;height:13px;border-width:1.5px;border-radius:4px;font-size:10px}
.ht-actions .button{flex:1 1 100%}
.ht-actions .ht-remove{margin-left:0}
.tool-app[data-challenge] .tool-output,.tool-app[data-smart] .tool-output,.tool-app[data-rchallenge] .tool-output{padding:18px 12px;border-radius:18px}
.cg-calendar{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.cg-calendar input{top:5px;right:4px;width:16px;height:16px}
.smart-milestones label{grid-template-columns:1fr;gap:4px}
.rc-bingo{grid-template-columns:repeat(5,minmax(96px,1fr));overflow-x:auto;padding-bottom:6px}
.rc-bingo label{font-size:12px}
}
@media print{
.ht-habits,.ht-fields,.ht-actions,.ht-note,.ht-stats,.tracker-explainer{display:none!important}
.ht-app{margin:0}
.ht-sheet{border:0;border-radius:0;padding:0;background:#fff}
.ht-sheet-head{margin-bottom:12px}
.ht-sheet-head h2{font-size:30px}
.ht-cue{font-size:15px;color:#333}
.ht-grid{gap:6px}
.ht-day{min-height:104px;border-color:#999;break-inside:avoid}
.ht-day.is-today{border-color:#999;box-shadow:none}
.ht-day.is-done,.ht-day:has(input:checked),.cg-calendar li.is-done,.rc-bingo li.is-free,.rc-bingo li.is-done{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.ht-day::after{width:20px;height:20px;border-color:#777}
.ht-review textarea{min-height:80px;border:1px solid #999;resize:none}
.ht-review textarea::placeholder{color:transparent}
.ht-print-foot{display:block;margin:8px 0 0;font-size:10px;color:#666;text-align:right}
.cg-progress,.rc-progress{display:none}
.cg-calendar label{min-height:112px}
.smart-milestones label{grid-template-columns:86px 1fr}
.smart-milestones input{min-height:0;border:0;border-bottom:1px solid #999;border-radius:0;background:none;padding:4px 0}
body.print-blank .tool-app>*:not(.print-blank-sheet){display:none!important}
body.print-blank .print-blank-sheet{display:block}
.print-blank-sheet h2{font:600 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 12px}
.print-blank-sheet h3{font:700 15px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:16px 0 4px}
.blank-intro{margin:0 0 10px;font-size:13px;color:#333}
.blank-lines{margin:0}
.blank-lines div{display:grid;grid-template-columns:44% 1fr;gap:10px;align-items:end;min-height:36px;border-bottom:1px solid #999}
.blank-lines dt{padding-bottom:4px;font-size:12px}
.blank-lines dd{margin:0}
.blank-rule{height:30px;border-bottom:1px solid #999}
.blank-fill{margin:0;font-size:13px;line-height:2.3}
.blank-milestones{margin:0;padding-left:20px}
.blank-milestones li{height:32px;padding-top:12px;border-bottom:1px solid #999;font-size:13px}
.blank-table{width:100%}
.blank-table th,.blank-table td{border:1px solid #999}
.blank-table td{height:28px}
.blank-foot{margin:10px 0 0;font-size:10px;color:#666;text-align:right}
.stack-blank-list{margin:0;padding-left:22px}
.stack-blank-list li{margin-bottom:16px;break-inside:avoid}
.stack-blank-list p{display:flex;align-items:flex-end;gap:8px;min-height:34px;margin:0;font-size:15px}
.stack-blank-list .stack-blank-small{min-height:30px;font-size:12px;color:#444}
.blank-fill-line{flex:1;min-width:60px;border-bottom:1px solid #999}
.rc-list:not([hidden]){display:block;columns:2;column-gap:18px}
.rc-list li{display:grid;grid-template-columns:14px minmax(0,1.35fr) minmax(0,1fr);gap:0 6px;align-items:end;padding:3px 0;border:0;border-bottom:1px solid #ccc;border-radius:0;background:none;font-size:10.5px;line-height:1.25;break-inside:avoid}
.rc-list input[type="checkbox"]{width:12px;height:12px;align-self:start}
.rc-list .rc-prompt{font-weight:600}
.rc-title{grid-column:auto;min-height:0;height:16px;padding:0;border-bottom:1px dotted #999;font-size:10.5px}
.rc-title::placeholder{color:transparent}
.rc-bingo{grid-template-columns:repeat(5,1fr);gap:0;overflow:visible;border:2px solid #172033}
.rc-bingo li{min-height:0;height:132px;border:1px solid #777;border-radius:0;break-inside:avoid}
.rc-bingo label{font-size:12.5px}
.rc-bingo-note{display:block}
}
/* ---- Daily routine planner and weekly meal planner (editable schedule, weekly grid) ---- */
.daily-app{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.daily-presets{margin:12px 0 2px}
.daily-presets .chip,.meal-filters .chip{min-height:44px}
.daily-setup .build-field input{min-height:48px}
.daily-reset{margin-top:6px;min-height:44px;padding:0 2px}
.daily-totals{margin:6px 0 0;font-size:15px;font-weight:600;color:#3b4456;line-height:1.5}
.daily-timeline{gap:5px}
.daily-app .daily-timeline .day-block{grid-template-columns:128px minmax(0,1fr) auto;align-items:center;padding:6px 6px 6px 12px;min-height:52px;border-left:6px solid #1550b8}
.daily-app .daily-timeline .day-block.is-anchor{background:#f6f1e8;border-left:6px solid #172033;min-height:44px}
.daily-app .daily-timeline .day-block.is-free{background:#fffdf8;border-left:6px dashed #c9d6ea}
.daily-timeline .day-block.cat-work{border-left-color:#8a96a6}.daily-timeline .day-block.cat-focus{border-left-color:#1550b8}.daily-timeline .day-block.cat-meal{border-left-color:#e4632e}.daily-timeline .day-block.cat-move{border-left-color:#3f8f5a}.daily-timeline .day-block.cat-home{border-left-color:#c98a12}.daily-timeline .day-block.cat-self{border-left-color:#7a45b2}.daily-timeline .day-block.cat-travel{border-left-color:#2b8a92}
.daily-timeline .day-block.is-overlap{background:#fff1e8;border-top-color:#f2b08f;border-right-color:#f2b08f;border-bottom-color:#f2b08f}
.day-name{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere;line-height:1.35}
.day-name strong{font-weight:600}
.day-name small{font-size:13px;color:#5b6475}
.day-name .day-warn{color:#b23c17;font-weight:700}
.day-edit{min-width:58px;min-height:44px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fffdf8;color:#1550b8;font-weight:700;cursor:pointer}
.day-edit:hover{border-color:#1550b8}
.day-edit:focus-visible,.meal-input:focus-visible,.meal-ing:focus-visible{outline:3px solid #f7a87c;outline-offset:1px}
.day-block.is-free .day-edit{border-style:dashed}
.day-editor{padding:12px 14px 14px;border-radius:14px;border:2px solid #1550b8;background:#fff}
.day-edit-form .build-field{margin-top:10px}
.day-edit-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.day-edit-form select{width:100%;min-height:48px;font:inherit;font-weight:400;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033}
.day-edit-form input{min-height:48px}
.day-edit-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.day-edit-actions .button{margin:0}
.day-delete{margin-left:auto;min-height:44px;color:#b23c17}
.daily-add{width:100%;margin-top:8px}
.daily-actions{margin-top:12px}
.daily-actions .button{flex:1 1 130px;margin:0;padding:0 14px}
.daily-habit-link{display:inline-block;margin-top:14px;color:#1550b8;font-weight:700;text-underline-offset:3px}
@media(max-width:860px){.daily-app{grid-template-columns:1fr}}
@media(max-width:640px){.daily-setup{padding:18px 16px}.daily-setup h2{font-size:21px}.daily-presets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:10px -16px 0;padding:0 16px 4px}.daily-presets::-webkit-scrollbar{display:none}.daily-presets .chip{flex:none}.daily-anchors{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-setup .build-field{margin-top:12px}.daily-output{padding:18px 12px}}
@media(max-width:640px){.daily-app .daily-timeline .day-block{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"time edit" "name edit";column-gap:10px;row-gap:1px}.daily-timeline .day-time{grid-area:time}.daily-timeline .day-name{grid-area:name}.daily-timeline .day-edit{grid-area:edit}.day-edit-row{grid-template-columns:repeat(2,minmax(0,1fr))}.day-edit-row>:last-child{grid-column:1/-1}.day-delete{margin-left:0}}
@media print{.daily-app .day-edit,.daily-add,.daily-actions,[data-daily-status],.daily-habit-link,.day-editor{display:none!important}.daily-timeline{gap:3px}.daily-app .daily-timeline .day-block{grid-template-columns:150px 1fr;min-height:0;padding:4px 10px;font-size:13px;break-inside:avoid}.daily-app .tool-output-head h2{font-size:28px}.daily-totals{font-size:12px}}
.meal-app{grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr)}
.meal-planner{min-width:0}
.meal-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.meal-top h2{margin:0}
.meal-weekof{margin-top:0;font-size:14px}
.meal-weekof input{min-height:44px;padding:8px 12px}
.meal-planner .meal-show{margin-top:12px}
.meal-show .choice span{min-height:44px;min-width:0;padding:8px 16px}
.meal-fill{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}
.meal-planner .meal-fill .button{margin:0}
.meal-cook{margin-top:0;font-size:14px}
.meal-cook select{min-height:49px}
.meal-filters{margin:12px 0 4px}
.meal-hint{margin-top:8px}
.meal-grid{margin-top:12px;display:grid;gap:6px}
.meal-row{display:grid;grid-template-columns:100px repeat(var(--meal-cols,1),minmax(0,1fr));gap:8px;align-items:start}
.meal-head span{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#ee5d2b}
.meal-day{padding-top:6px;border-top:1px solid #eee4d5}
.meal-day-name{margin:12px 0 0;font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.meal-cell{min-width:0}
.meal-cell-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.meal-input,.meal-ing{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit}
.meal-input:focus,.meal-ing:focus{border-color:#1550b8}
.meal-ing{margin-top:6px;min-height:44px;font-size:14px}
.meal-cell-meta{margin:3px 2px 0;font-size:13px;line-height:1.4;color:#5b6475}
.meal-cell-meta:empty{display:none}
.meal-cell-meta a{color:#1550b8;font-weight:700;text-underline-offset:2px}
.meal-ing-toggle{padding:4px 0;font-size:13px}
.meal-browse{margin-top:16px;padding:0 14px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.meal-browse summary{min-height:48px;display:flex;align-items:center;font-weight:700;color:#12367f;cursor:pointer}
.meal-browse-list{list-style:none;padding:0;margin:6px 0 14px;max-height:340px;overflow:auto}
.meal-browse-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #f1ece3}
.meal-browse-list span{display:flex;flex-direction:column;min-width:0}
.meal-browse-list small{color:#5b6475}
.meal-planner .meal-browse-list .button{min-height:44px;margin:0;padding:0 16px;flex:none}
.meal-actions{margin-top:16px}
.meal-planner .meal-actions .button{margin:0}
.meal-actions .text-button{min-height:44px}
.meal-shop{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
.meal-list h3{margin:16px 0 6px;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:#ee5d2b}
.meal-list label{display:flex;gap:10px;align-items:flex-start;padding:5px 0;line-height:1.4;cursor:pointer}
.meal-list input{width:20px;height:20px;flex:none;margin:1px 0 0}
.meal-list input:checked+span{text-decoration:line-through;color:#8a96a6}
.meal-print{display:none}
.meal-shop .text-button{min-height:44px}
@media(min-width:901px){.meal-app[data-cols="3"],.meal-app[data-cols="4"]{grid-template-columns:1fr}.meal-app[data-cols="3"] .meal-shop,.meal-app[data-cols="4"] .meal-shop{position:static;max-height:none}.meal-app[data-cols="3"] .meal-list,.meal-app[data-cols="4"] .meal-list{columns:3;column-gap:28px}.meal-list h3{break-after:avoid}.meal-list li{break-inside:avoid}}
@media(max-width:900px){.meal-app{grid-template-columns:1fr}.meal-shop{position:static;max-height:none}.meal-head{display:none}.meal-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 10px}.meal-day{padding:4px 0 10px}.meal-day-name{grid-column:1/-1;margin:8px 0 2px}.meal-cell-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:block;margin:0 0 4px;font-size:13px;font-weight:700;color:#3b4456}}
@media(max-width:900px){.meal-ing-toggle{min-height:44px}}
@media(max-width:560px){.meal-planner{padding:18px 14px}.meal-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-14px;margin-right:-14px;padding:0 14px 4px}.meal-filters::-webkit-scrollbar{display:none}.meal-filters .chip{flex:none}.meal-top{flex-wrap:nowrap}.meal-weekof input{width:150px}.meal-row{grid-template-columns:minmax(0,1fr)}.meal-planner .meal-fill .button,.meal-cook{width:100%}.meal-planner .meal-actions .button{flex:1 1 100%}.meal-show .choice span{padding:8px 12px}}
@media print{.meal-app>:not(.meal-print){display:none!important}.meal-print{display:block!important}.meal-print-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.meal-print-head h2{font:700 26px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}.meal-print-head p{margin:0;font-size:13px}.meal-print-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:10px 0 14px;font-size:12px}.meal-print-table th,.meal-print-table td{border:1px solid #999;padding:5px 6px;text-align:left;vertical-align:top;height:42px;overflow-wrap:anywhere}.meal-print-table thead th{height:auto}.meal-print-table thead th:first-child{width:92px}.meal-print-table.is-blank td{height:68px}.meal-print h3{font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}.meal-print-list{columns:3;column-gap:18px;font-size:11px}.meal-print-section{break-inside:avoid;margin-bottom:6px}.meal-print-list h4{margin:0 0 2px;font-size:10px;letter-spacing:1px;text-transform:uppercase}.meal-print-list ul{list-style:none;padding:0;margin:0}.meal-print-list li{padding:1px 0}.meal-print-list li::before{content:"\25A1  "}.meal-print-list ul.is-blank li{height:24px;border-bottom:1px solid #999}.meal-print-list ul.is-blank li::before{content:none}.meal-print-foot{margin:10px 0 0;font-size:10px;text-align:right}}
/* Kids morning + bedtime routine charts, chore chart, morning routine generator: editable steps, cards, ink saver */
.chart-app{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto 1fr;grid-template-areas:"settings output" "steps output"}
.chart-app .chart-settings{grid-area:settings}
.chart-app .tool-output{grid-area:output}
.chart-app .chart-steps{grid-area:steps}
.chart-app .chart-steps h2{margin-bottom:2px}
.chart-app .chart-settings>.button{margin-top:12px}
.kit-toggle{margin-top:16px}
.kit-status{min-height:1.4em;margin:6px 0 0}
.kit-status:empty{min-height:0;margin:0}
.kit-steps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.kit-step{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.kit-step-main{display:flex;align-items:center;gap:8px;flex:1 1 180px;min-width:0}
.kit-step-icon{flex:none;width:44px;height:44px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;font-size:24px;line-height:1;padding:0;cursor:pointer}
.kit-step-icon[aria-expanded="true"]{border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8}
.tool-app input.kit-step-label{flex:1 1 auto;width:auto;min-width:0;height:44px;padding:0 10px;border:1.5px solid transparent;border-radius:10px;background:transparent;font:inherit;font-weight:600;color:#172033}
.tool-app input.kit-step-label:hover{border-color:#ddd3c4}
.tool-app input.kit-step-label:focus{border-color:#1550b8;background:#fff;outline:none}
.kit-step-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;margin-left:auto}
.kit-mini{width:44px;height:44px;border:0;border-radius:10px;background:#e7f0ff;color:#12367f;font-size:18px;font-weight:700;line-height:1;padding:0;cursor:pointer}
.kit-mini:disabled{opacity:.35;cursor:default}
.kit-remove{background:#fff0e8;color:#b8431a}
.tool-app .kit-step-tools input.kit-step-time{width:112px;height:44px;padding:0 8px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fff;font:inherit;font-size:15px;color:#172033}
.kit-points{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:#526170}
.tool-app .kit-points input.kit-step-points{width:60px;height:44px;padding:0 6px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fff;font:inherit;color:#172033;text-align:center}
.kit-icons{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;padding:4px 0 2px}
.kit-icon{height:44px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fff;font-size:22px;line-height:1;padding:0;cursor:pointer}
.kit-icon[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff;box-shadow:inset 0 0 0 1px #1550b8}
.kit-step-icon:focus-visible,.kit-mini:focus-visible,.kit-icon:focus-visible,.kit-chip:focus-visible,.kit-ideas summary:focus-visible,.text-button:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.kit-ideas{margin-top:12px;border-top:1px solid #eee4d5;padding-top:4px}
.kit-ideas summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;color:#1550b8}
.kit-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 8px}
.kit-chip{min-height:44px;padding:8px 12px;border:1.5px dashed #c9d6ea;border-radius:12px;background:#fff;font:inherit;font-size:14px;font-weight:600;color:#12367f;text-align:left;cursor:pointer}
.kit-chip:hover{border-style:solid;border-color:#1550b8}
.kit-add{margin-top:14px;padding:14px;border-radius:16px;background:#fff7ea;border:1px solid #f0ddbd}
.kit-add h3{font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}
.kit-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.kit-add-row .build-field{margin-top:10px}
.tool-app .kit-add .kit-add-time input{width:130px}
.kit-add-legend{font-weight:600;margin:12px 0 0}
.tool-app .kit-add .button{margin-top:12px}
.kit-add-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:4px}
.kit-add-own .build-field{margin-top:6px}
.tool-app .kit-add-own .button{margin:0;padding:0 16px}
.chores-person{min-width:0}.chores-person .kit-steps{margin-top:14px}
.kids-time{font:700 .8em/1 'DM Sans','DM Sans Fallback',sans-serif;color:#1550b8;margin-right:4px;white-space:nowrap}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+1),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+1){background:#e7f0ff;border-color:#d3e2fb}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+2),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+2){background:#fff0d5;border-color:#f0ddbd}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+3),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+3){background:#edf5c6;border-color:#dce8a8}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+4),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+4){background:#f4e8ff;border-color:#e1d1f3}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+5),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+5){background:#ffe8d9;border-color:#f5d0b8}
.kids-sheet:not(.is-bw) .kids-list li:nth-child(6n+6),.kids-sheet:not(.is-bw) .kids-card:nth-child(6n+6){background:#daf3e8;border-color:#c7e5d7}
.kids-cards{display:grid;gap:10px;margin-top:14px}
.kids-card-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kids-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;padding:22px 10px 14px;border:2px dashed #b9ab94;border-radius:16px;background:#fff;text-align:center}
.kids-card .kids-icon{font-size:52px}
.kids-card .kids-label{font-size:18px}
.kids-card-num{position:absolute;top:8px;left:12px;font-size:13px;font-weight:700;color:#e4632e}
.kids-sheet.is-bw .kids-icon,.chores-sheet.is-bw .kids-icon{filter:grayscale(1)}
.kids-sheet.is-bw .kids-list li,.kids-sheet.is-bw .kids-card{background:#fff;border-color:#222}
.kids-sheet.is-bw .kids-box,.kids-sheet.is-bw .kids-week td.kids-box::after,.chores-sheet.is-bw .kids-week td.kids-box::after{border-color:#111}
.kids-sheet.is-bw .kids-time,.kids-sheet.is-bw .kids-card-num{color:#111}
.chores-pts{margin-left:auto;padding:2px 8px;border-radius:999px;background:#fff0d5;font:700 13px/1.4 'DM Sans','DM Sans Fallback',sans-serif;color:#8a4a12;white-space:nowrap}
.chores-reward{margin:14px 0 0;padding:12px 16px;border-radius:14px;background:#fff0d5;font:700 20px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;text-align:center}
.chores-sheet.is-bw .chores-pts,.chores-sheet.is-bw .chores-reward{background:#fff;color:#111;border:1.5px solid #111}
.chores-sheet.is-bw .chores-person-row th{background:#eee}
.routine-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px}
.tool-output .routine-tools .button{min-height:44px;padding:0 16px}
.routine-list.is-editing li{grid-template-columns:22px 70px minmax(0,1fr);align-items:center}
.routine-list.is-editing .routine-text{display:none}
.routine-edit{grid-column:3;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tool-app .routine-edit input.kit-step-label{flex:1 1 160px;border-color:#ddd3c4;background:#fffdf8}
.routine-saved{font-size:13px}
@media(max-width:860px){.chart-app{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"settings" "output" "steps"}}
@media(max-width:520px){.chart-app .tool-form,.chart-app .tool-output,[data-morning] .tool-output{padding:18px 16px}.kids-card{min-height:124px}.kids-card .kids-icon{font-size:42px}.kids-card .kids-label{font-size:16px}.routine-list.is-editing li{grid-template-columns:20px minmax(0,1fr)}.routine-edit{grid-column:1/-1}.kit-add-row,.kit-add-own{grid-template-columns:minmax(0,1fr)}.tool-app .kit-add .kit-add-time input{width:100%}.tool-app .kit-add-own .button{width:100%}.chores-reward{font-size:18px}}
@media print{.chart-app{display:block}.chart-app .chart-steps,.kit-status,.routine-tools,.routine-add,.routine-saved,.routine-edit{display:none!important}.routine-list.is-editing .routine-text{display:inline!important}.routine-list.is-editing li{grid-template-columns:22px 78px 1fr}.kids-list li,.kids-card,.kids-time,.chores-pts,.chores-reward{print-color-adjust:exact;-webkit-print-color-adjust:exact}.kids-sheet.is-long .kids-list{gap:4px}.kids-sheet.is-long .kids-list li{padding:6px 14px}.kids-sheet.is-long .kids-label{font-size:19px}.kids-sheet.is-long .kids-icon{font-size:28px}.kids-cards{display:block;margin-top:6px}.kids-card-page{gap:4mm;break-after:page}.kids-card-page:last-child{break-after:auto}.kids-card{min-height:0;height:72mm;break-inside:avoid;border-width:2px}.kids-card .kids-icon{font-size:84px}.kids-card .kids-label{font-size:26px}.tool-app[data-kids] .kids-sheet.is-cards .tool-output-head h2{font-size:18px}.chores-reward{font-size:22px}}
.chart-app .text-button,.routine-tools .text-button{min-height:44px}
@media(max-width:520px){.kit-step-tools{flex-wrap:nowrap;width:100%;margin-left:0}.tool-app .kit-step-tools input.kit-step-time{flex:1 1 auto;width:auto;min-width:0}.kit-points{flex:1 1 auto;justify-content:flex-start;min-width:0}.tool-app .kit-points input.kit-step-points{width:52px}.routine-list li{padding:10px}}
@media print{.chart-app,.tool-app[data-morning]{page:dh-letter}}
@page dh-letter{size:letter portrait;margin:12mm}
.kids-week td.kids-box,.kids-week tbody th{display:table-cell;vertical-align:middle}
.kids-week tbody th .kids-icon{display:inline-block;vertical-align:middle;margin-right:8px}
.kids-week tbody th .kids-label,.kids-week tbody th>span:not(.kids-icon):not(.chores-pts){vertical-align:middle}
.kids-week .chores-pts{display:inline-block;margin-left:8px;vertical-align:middle}
/* Chart tools on phones: the finished chart and its Print button come first, editing follows */
@media(max-width:860px){.tool-app.chart-app[data-chores]{display:flex;flex-direction:column}.tool-app.chart-app[data-chores]>.tool-output{order:-1}}
/* Meal planner on tablets and phones: each meal box uses the full width of its day */
@media(max-width:900px){.meal-row{grid-template-columns:repeat(var(--meal-cols,1),minmax(0,1fr))}}
@media(max-width:560px){.meal-row{grid-template-columns:minmax(0,1fr)}}
html[data-theme="dark"] .vm-size-card[aria-pressed="true"],html[data-theme="dark"] .vm-style-card:has(input:checked){border-color:#6f9cf0;background:#1d2b45;box-shadow:inset 0 0 0 1px #6f9cf0}
html[data-theme="dark"] .vm-size-shape{border-color:#88aef1;background:#1d2b45}
html[data-theme="dark"] .vm-swatch[aria-pressed="true"]{outline-color:#88aef1}
html[data-theme="dark"] .vm-fit .chip[aria-pressed="true"]{background:#3b6fd8;border-color:#3b6fd8;color:#fff}
html[data-theme="dark"] .vm-tabs button[aria-pressed="true"]{border-color:#6f9cf0}
/* Tool upgrades: Pomodoro timer, meditation timer, sleep calculator, screen time calculator, Eisenhower matrix, journal prompt finder, reading log */
[data-pomodoro] .text-button,[data-eisen] .text-button,[data-prompts] .text-button,[data-reading] .text-button{min-height:44px;display:inline-flex;align-items:center}
.pomodoro-modes button{min-height:44px}
.pomo-current{margin:4px auto 12px;max-width:360px;font-size:15px;line-height:1.4;color:#5b6475;overflow-wrap:anywhere}
.pomo-current.has-task{color:#172033;font-weight:700}
.pomo-today{margin:10px 0 0;font-size:14px;font-weight:700;color:#12367f}
.pomo-alerts{margin-top:16px;padding-top:14px;border-top:1px solid #eee4d5;display:grid;justify-items:center;gap:2px}
.pomo-small{min-height:44px;padding:0 16px;font-size:14px}
.pomo-side{display:grid;gap:22px;min-width:0}
.pomo-side h3{font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 10px}
.pomo-add{display:flex;gap:8px}
.pomo-add input{flex:1;min-width:0;min-height:46px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit}
.pomo-add input:focus{border-color:#1550b8;outline:none}
.tool-form .pomo-add .button{margin-top:0;min-height:46px;padding:0 18px}
.pomo-tasks{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.pomo-tasks:empty{display:none}
.pomo-task{display:flex;align-items:center;gap:4px;padding:0 0 0 12px;border:1px solid #eee4d5;border-radius:12px;background:#fffdf8}
.pomo-task.is-current{border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8;background:#f1f6ff}
.pomo-task input[type=checkbox]{flex:none;width:22px;height:22px;margin:0;accent-color:#1550b8;cursor:pointer}
.pomo-task-text{flex:1;min-width:0;min-height:44px;padding:8px;border:0;background:none;text-align:left;font:inherit;font-size:15px;line-height:1.35;color:#172033;cursor:pointer;overflow-wrap:anywhere}
.pomo-task-text small{color:#526170;font-size:13px}
.pomo-task.is-done .pomo-task-text{text-decoration:line-through;color:#8a96a6}
.pomo-task-del,.log-del,.prompt-x{flex:none;width:44px;height:44px;border:0;background:none;font-size:22px;line-height:1;color:#8a96a6;cursor:pointer;border-radius:10px}
.pomo-task-del:hover,.log-del:hover,.prompt-x:hover{color:#b3261e}
.pomo-tasks-note{text-align:left}
.pomo-checks{align-items:center;margin-top:14px}
.med-stats{margin:12px 0 0;font-size:14px;font-weight:700;color:#12367f;text-align:center}
.med-custom{max-width:280px}
.med-checks{margin-top:14px}
.med-dim{position:fixed;inset:0;z-index:1000;width:100%;height:100%;margin:0;padding:24px;border:0;border-radius:0;background:black;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;cursor:pointer;font:inherit}
.med-dim:focus{outline:none}
.med-dim-time{font:600 clamp(56px,16vw,120px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;font-variant-numeric:tabular-nums;color:rgb(112,120,134)}
.med-dim.hide-time .med-dim-time{visibility:hidden}
.med-dim-hint{font-size:13px;letter-spacing:.06em;color:rgb(84,90,102)}
html.med-dimmed,html.med-dimmed body{overflow:hidden}
.tool-form .sleep-now{width:100%;margin-top:14px}
.sleep-summary{font:600 22px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:8px 0 2px}
.sleep-table tr.is-short td,.sleep-table tr.is-short td:nth-child(2){color:#8a5a3c}
.screen-headline{font:600 clamp(20px,2.4vw,24px)/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:10px 0 4px}
.screen-life{margin:14px 0;padding:14px 16px;border-radius:14px;background:#fff3e8}
.screen-life h3{font:700 20px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}
.screen-life p{margin:0 0 6px;line-height:1.55}
.screen-life .tool-note,.screen-age-hint{text-align:left}
.eisen-app{grid-template-columns:minmax(0,1fr)}
.eisen-hint{text-align:left;margin:4px 0 0}
.eisen-q li.eisen-item{display:grid;grid-template-columns:40px minmax(0,1fr) 44px;align-items:center;gap:0;border:1px solid #eee4d5;border-radius:10px;background:#fffdf8}
.eisen-check{justify-self:center;width:20px;height:20px;margin:0;accent-color:#1550b8;cursor:pointer}
.eisen-text{padding:10px 2px;font-size:15px;line-height:1.35;color:#172033;overflow-wrap:anywhere}
.eisen-item.is-done .eisen-text{text-decoration:line-through;color:#8a96a6}
.eisen-more{width:44px;height:44px;border:0;background:none;border-radius:10px;font-size:20px;line-height:1;color:#526170;cursor:pointer}
.eisen-more[aria-expanded=true]{background:#e7f0ff;color:#12367f}
.eisen-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:2px 8px 10px}
.eisen-actions-label{width:100%;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#526170}
.eisen-mini{min-height:40px;padding:0 12px;border:1px solid #ddd3c4;border-radius:10px;background:#fff;font:inherit;font-size:13px;font-weight:700;color:#172033;cursor:pointer}
.eisen-to.q1{border-left:4px solid #e4632e}.eisen-to.q2{border-left:4px solid #1550b8}.eisen-to.q3{border-left:4px solid #c9a227}.eisen-to.q4{border-left:4px solid #8a96a6}
.eisen-danger{color:#b3261e;border-color:#f0c4bf}
.eisen-edit{display:flex;gap:6px;padding:6px 0;min-width:0}
.eisen-edit input{flex:1;min-width:0;padding:8px 10px;border:1.5px solid #1550b8;border-radius:8px;background:#fff;color:#172033;font:inherit;font-size:15px}
.eisen-add{display:flex;gap:6px;margin-top:8px}
.eisen-add input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1.5px dashed #ddd3c4;border-radius:10px;background:#fffdf8;color:#172033;font:inherit;font-size:15px}
.eisen-add input:focus{border-style:solid;border-color:#1550b8;outline:none}
.eisen-add-btn{flex:none;min-height:44px;padding:0 14px;border:0;border-radius:10px;background:#e7f0ff;color:#12367f;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.eisen-line{height:30px;border-bottom:1px solid #bbbbbb}
.eisen-narrow{display:none}
.eisen-foot{display:flex;flex-wrap:wrap;gap:4px 18px}
.eisen-sorter summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font:700 19px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.eisen-sorter[open] summary{margin-bottom:4px}
.prompt-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.prompt-card-top .eyebrow{margin:0}
.prompt-fav{flex:none;width:44px;height:44px;border:1.5px solid #ddd3c4;border-radius:50%;background:#fff;font-size:22px;line-height:1;color:#e4632e;cursor:pointer}
.prompt-fav[aria-pressed=true]{background:#ffe8d9;border-color:#e4632e}
.prompt-filters{margin-top:16px;padding:0 14px;border:1px solid #eee4d5;border-radius:14px;background:#fff}
.prompt-filters summary{min-height:48px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;list-style:none}
.prompt-filters summary::-webkit-details-marker{display:none}
.prompt-filters summary::after{content:"▾";margin-left:auto;color:#1550b8}
.prompt-filters[open] summary::after{content:"▴"}
.prompt-filters-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.prompt-filters fieldset{margin:4px 0 14px}
.prompt-timer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.prompt-timer-label{font-size:14px;font-weight:700;color:#526170}
.prompt-chip{min-height:44px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:999px;background:#fffdf8;font:inherit;font-size:14px;font-weight:700;color:#172033;cursor:pointer}
.prompt-chip[aria-pressed=true]{border-color:#1550b8;background:#e7f0ff;color:#12367f}
.prompt-timer-time{font:600 24px/1 'Fraunces','Fraunces Fallback',Georgia,serif;font-variant-numeric:tabular-nums;color:#12367f}
.prompt-textarea{display:block;width:100%;min-height:190px;padding:14px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;color:#172033;font:inherit;font-size:16px;line-height:1.6;resize:vertical}
.prompt-textarea:focus{border-color:#1550b8;outline:none}
.prompt-write-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.tool-form .prompt-write-actions .button{margin-top:0}
.prompt-write .tool-note{text-align:left}
.prompt-saved{margin-top:14px;padding-top:6px;border-top:1px solid #eee4d5}
.prompt-saved summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}
.prompt-entries{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.prompt-entries li{padding:4px 4px 12px 12px;border-radius:12px;background:#fffaf2}
.prompt-entry-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.prompt-entries em{display:block;font-size:14px;color:#5b6475;padding-right:8px}
.prompt-entries p{margin:6px 0 0;padding-right:8px;white-space:pre-wrap;line-height:1.55;font-size:15px;overflow-wrap:anywhere}
.prompt-favs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.prompt-favs li{display:flex;align-items:center;gap:4px}
.prompt-fav-use{flex:1;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #eee4d5;border-radius:10px;background:#fffdf8;text-align:left;font:inherit;font-size:15px;line-height:1.4;color:#172033;cursor:pointer}
.reading-app{grid-template-columns:minmax(0,1fr)}
.reading-layout{border:0;padding:0;margin:12px 0 0;min-width:0}
.reading-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin:14px 0 4px}
.reading-meta label{flex:1 1 200px;display:flex;align-items:baseline;gap:8px;font-weight:700;min-width:0}
.reading-meta input{flex:1;min-width:0;min-height:40px;padding:8px 2px;border:0;border-bottom:1.5px solid #ddd3c4;border-radius:0;background:transparent;color:#172033;font:inherit;font-weight:400}
.reading-meta input:focus{border-bottom-color:#1550b8;outline:none}
.reading-meta label[data-reading-kids-only]{flex:0 1 230px}
.reading-meta label[data-reading-kids-only] input{flex:0 0 5ch}
.log-edit td{padding:4px;vertical-align:middle}
.log-edit input,.log-edit select{width:100%;min-width:0;min-height:40px;padding:6px 8px;border:1px solid transparent;border-bottom-color:#ddd3c4;border-radius:8px;background:transparent;color:#172033;font:inherit;font-size:15px}
.log-edit input:focus,.log-edit select:focus{border-color:#1550b8;background:#fff;outline:none}
.log-edit input[type=date]{min-width:128px}
.log-edit input[type=number]{max-width:96px}
.log-edit th:first-child{width:34px}
.log-edit .log-x{width:44px;padding:0}
.log-filler{display:none}
.reading-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:8px 0 0}
.reading-row-actions .tool-note{margin:0;text-align:left}
.reading-total{margin:10px 0 0;font-weight:700;color:#12367f}
@media screen and (max-width:820px){
.table-scroll .log-edit{min-width:0}
.log-edit thead{display:none}
.log-edit,.log-edit tbody{display:block}
.log-edit tr{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:0 0 10px;padding:10px 44px 10px 12px;border:1px solid #eee4d5;border-radius:14px;background:#fff}
.log-edit tr.log-filler{display:none}
.log-edit td{display:block;padding:0;border:0;height:auto}
.log-edit td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;font-weight:700;color:#526170}
.log-edit td.log-wide{grid-column:1/-1}
.log-edit td.log-num{display:none}
.log-edit td.log-x{position:absolute;top:2px;right:0;width:44px}
.log-edit input,.log-edit select{border-color:#ddd3c4;background:#fffdf8}
.log-edit input[type=number]{max-width:none}
.log-edit input[type=date]{min-width:0}
.log-kids td:first-child{grid-column:1/-1}
}
@media(max-width:640px){.pomo-alerts .tool-note,.med-stats{font-size:13px}.eisen-mini{min-height:44px}.prompt-card-top .eyebrow{font-size:10px}.meditation-actions .button{min-width:0;flex:1 1 120px}.pomodoro-panel .meditation-face{width:min(224px,64vw);margin:14px auto 6px}.eisen-app .tool-output-head .tool-actions{flex-wrap:wrap}.eisen-app .tool-output-head .tool-actions .button{flex:1 1 auto;width:auto;min-height:44px;padding:0 12px;font-size:13px}.prompt-filters-label{display:none}.eisen-wide{display:none}.eisen-narrow{display:inline!important}.log-edit input,.log-edit select,.reading-meta input{min-height:44px}}
@media(max-width:520px){.sleep-fields,.screen-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.sleep-fields>:last-child{grid-column:1/-1}.sleep-modes,.reading-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sleep-modes .choice span,.reading-modes .choice span{min-width:0;padding:10px 8px;font-size:14px}.screen-fields .build-field{font-size:15px}}
@media print{
.eisen-add,.eisen-more,.eisen-actions,.eisen-hint,.eisen-foot,[data-eisen-status],.eisen-sorter,.eisen-empty{display:none!important}
.eisen-q li.eisen-item{grid-template-columns:24px minmax(0,1fr);border:0;background:none}
.eisen-text{padding:2px 0}
.is-blank .eisen-q ul{gap:0}
.prompt-filters,.prompt-fav{display:none!important}
.screen-life{background:none;border:1px solid #999}
.screen-age-hint{display:none}
.reading-layout,.reading-row-actions,.log-x,.log-del{display:none!important}
.log-edit .log-filler{display:table-row}
.log-edit input,.log-edit select{border:0;padding:0;min-height:0;background:none;-webkit-appearance:none;appearance:none;font-size:12px;color:#000}
.log-edit .is-empty{visibility:hidden}
.log-edit input::-webkit-calendar-picker-indicator{display:none}
.reading-meta{margin:6px 0 10px}
.reading-meta input{border-bottom:1px solid #777;padding:2px}
.log-kids td{height:24px;padding:3px 6px}
.reading-total{font-weight:400}
}
/* Sleep calculator on phones: the three inputs share a row so the answer shows in the first screen */
@media(max-width:560px){[data-sleep] .tool-row.sleep-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sleep-fields .build-field{font-size:12px}.sleep-fields input,.sleep-fields select{padding:10px 4px;font-size:14px;min-width:0}[data-sleep] #sleep-form-title{display:none}[data-sleep] .tool-form>.tool-note{display:none}}
@media(max-width:560px){[data-sleep] .tool-output{padding:16px}[data-sleep] .tool-output-head h2{font-size:19px}[data-sleep] .tool-output-head .button{min-height:40px;padding:0 12px;font-size:13px}[data-sleep] fieldset.build-field{margin-top:4px}}
@media(max-width:560px){[data-sleep] .tool-row.sleep-fields>:last-child{grid-column:auto}[data-sleep] .tool-row.sleep-fields{align-items:end}}
@media(max-width:560px){[data-screen] .tool-form h2,[data-screen] .tool-output-head h2{font-size:20px}[data-screen] .tool-form{padding:16px}[data-screen] .tool-form>.tool-note{font-size:12px;margin-top:6px}[data-screen] .tool-output{padding:16px}[data-screen] .tool-output-head .button{min-height:40px;padding:0 12px;font-size:13px}}
.pomo-lock{margin-top:10px;padding:10px 12px;border-radius:12px;background:#f7f4ee}
.pomo-lock[hidden],.pomo-lock label[hidden]{display:none}
.pomo-lock-choice span{font-size:14px}
.pomo-lock .tool-note{font-size:12.5px;line-height:1.45}
/* Related tool cards on tool pages and guides */
.tool-cards{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.tool-card{display:flex;flex-direction:column;gap:4px;height:100%;padding:14px 16px;border:1px solid #e3dac9;border-radius:14px;background:#fff;text-decoration:none;color:#172033;transition:border-color .15s,transform .15s}
.tool-card:hover{border-color:#1550b8;transform:translateY(-1px)}
.tool-card strong{font:700 16px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.tool-card span{font-size:14px;line-height:1.45;color:#4b5565}
.tool-card em{margin-top:auto;padding-top:4px;font-style:normal;font-weight:700;font-size:13px;color:#1550b8}
.tool-all-link{margin:14px 0 0;font-weight:700}.tool-all-link a{color:#1550b8}
.article-tools{margin:34px 0 10px;padding:18px 18px 20px;border-radius:18px;background:#f5f1ea}
.article-tools h2{margin:0 0 4px;font-size:22px}
@media print{.article-tools,.tool-next{display:none!important}}
/* U1 Pomodoro timer: preset chips, timer faces, full-screen focus mode, shortcut hints */
.pomo-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 12px}
.pomo-presets button{min-height:52px;min-width:0;padding:6px 4px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;color:#172033;display:grid;gap:2px;place-content:center;font:inherit;line-height:1.15;cursor:pointer}
.pomo-presets strong{font-size:14px}
.pomo-presets span{font-size:12.5px;color:#526170;font-variant-numeric:tabular-nums;white-space:nowrap}
.pomo-presets button:hover{border-color:#1550b8}
.pomo-presets button[aria-pressed=true]{border-color:#1550b8;background:#e7f0ff;box-shadow:inset 0 0 0 1px #1550b8}
.pomo-presets button[aria-pressed=true] span{color:#12367f}
.pomo-zen-btn{padding:0 18px;gap:8px}
.pomo-zen-btn svg{flex:none}
.pomo-faces{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px;margin:10px 0 0}
.pomo-faces-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#526170;margin-right:4px}
.pomo-faces button{min-height:44px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1.5px solid transparent;border-radius:99px;background:none;font:inherit;font-size:14px;font-weight:600;color:#526170;cursor:pointer}
.pomo-faces button[aria-checked=true]{border-color:#ddd3c4;background:#fffdf8;color:#172033}
.pomo-faces i{width:18px;height:18px;border-radius:50%;border:4px solid #1550b8;background:#ffffff}
.pomo-faces [data-face-choice=sage] i{border-color:#2f7a55;background:#eef5ec}
.pomo-faces [data-face-choice=apricot] i{border-color:#e0662f;background:#fff3e8}
.pomo-keys{margin:6px 0 0;font-size:13px;color:#526170}
.pomo-keys kbd,.tool-content kbd{display:inline-block;min-width:22px;padding:3px 6px;border:1px solid #d8cfc0;border-bottom-width:2px;border-radius:6px;background:#fffdf8;color:#172033;font:700 12px/1.2 'DM Sans','DM Sans Fallback',sans-serif;text-align:center}
@media(hover:none){.pomo-keys{display:none}}
.pomo-plan{margin:14px 0 0;padding-top:12px;border-top:1px solid #eee4d5;font-size:14px;line-height:1.5;color:#3b4651}
.pomo-plan a{color:#1550b8;font-weight:700;text-underline-offset:3px}
.pomodoro-panel[data-face=sage]{background:#eef5ec;border-color:#d5e5d3}
.pomodoro-panel[data-face=sage] .ring-track{stroke:#d5e5d3}
.pomodoro-panel[data-face=sage] .ring-progress{stroke:#2f7a55}
.pomodoro-panel[data-face=sage] .meditation-readout strong{color:#173d2b}
.pomodoro-panel[data-face=sage] .pomodoro-modes{background:#dcebd9}
[data-pomodoro].is-break .pomodoro-panel[data-face=sage] .ring-progress{stroke:#1550b8}
.pomodoro-panel[data-face=apricot]{background:#fff3e8;border-color:#f5dcc8}
.pomodoro-panel[data-face=apricot] .ring-track{stroke:#f5dcc8}
.pomodoro-panel[data-face=apricot] .ring-progress{stroke:#e0662f}
.pomodoro-panel[data-face=apricot] .meditation-readout strong{color:#4a2412}
.pomodoro-panel[data-face=apricot] .pomodoro-modes{background:#f8e4d3}
[data-pomodoro].is-break .pomodoro-panel[data-face=apricot] .ring-progress{stroke:#2f8a5b}
html.pomo-zen-open,html.pomo-zen-open body{overflow:hidden}
.pomodoro-panel.is-zen{position:fixed;inset:0;z-index:1000;max-width:none;width:100%;height:100%;margin:0;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));overflow:auto}
.pomodoro-panel.is-zen[data-face=paper]{background:#fffdf8}
.pomodoro-panel.is-zen>.pomo-presets,.pomodoro-panel.is-zen>.pomodoro-modes,.pomodoro-panel.is-zen>.pomo-today,.pomodoro-panel.is-zen>.pomo-faces,.pomodoro-panel.is-zen>.pomo-keys,.pomodoro-panel.is-zen>.pomo-alerts,.pomodoro-panel.is-zen>.pomo-plan,.pomodoro-panel.is-zen [data-pomodoro-reset]{display:none}
.pomodoro-panel.is-zen .meditation-face{width:min(60vh,86vw,560px);margin:0 auto 10px}
.pomodoro-panel.is-zen .meditation-readout strong{font-size:clamp(64px,min(14vh,19vw),150px)}
.pomodoro-panel.is-zen .meditation-readout span{font-size:clamp(15px,2.2vh,20px)}
.pomodoro-panel.is-zen .pomo-current{max-width:640px;font-size:clamp(17px,2.6vh,22px)}
.pomodoro-panel.is-zen .pomo-current:not(.has-task){display:none}
.pomodoro-panel.is-zen .meditation-actions{width:min(460px,100%)}
.pomodoro-panel.is-zen .meditation-actions .button{flex:1 1 0;min-height:54px}
.pomodoro-panel.is-zen [data-pomodoro-status]{font-size:14px}
.pomo-plan a{display:inline-flex;align-items:center;min-height:44px}
@media(min-width:861px){
.tool-shell[data-tool=pomodoro-timer] .breadcrumbs{margin-bottom:28px}
.tool-shell[data-tool=pomodoro-timer] .tool-head{margin-bottom:18px}
.pomodoro-panel .meditation-face{width:216px;margin:10px auto 4px}
.pomodoro-panel .pomo-current{margin-bottom:10px}
.pomodoro-panel .meditation-readout strong{font-size:52px}
}
@media(max-width:640px){
.tool-output.pomodoro-panel{padding:18px 12px}
.pomo-presets strong{white-space:nowrap}
.pomo-presets{gap:5px;margin-bottom:10px}
.pomo-presets button{min-height:48px;border-radius:12px;padding:5px 2px}
.pomo-presets strong{font-size:12.5px}
.pomo-presets span{font-size:11.5px}
.pomodoro-panel .meditation-actions{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 52px;gap:8px}
.pomodoro-panel .meditation-actions .button{min-width:0;width:100%;padding:0 10px}
.pomodoro-panel .meditation-actions [data-pomodoro-reset]{grid-column:1/-1;justify-self:center}
.pomodoro-panel .pomo-zen-btn{padding:0}
.pomo-zen-btn:not([aria-pressed=true]) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.pomodoro-panel.is-zen .meditation-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.pomodoro-panel.is-zen .meditation-face{width:min(52vh,84vw)}
}
@media(max-width:360px){.pomo-presets strong{font-size:11.5px;white-space:normal}.pomo-presets span{font-size:11px}}
/* U3 SMART goals: definition and acronym first, worksheet designs, letter-by-letter breakdown, example filter */
.smart-define{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px 30px;align-items:center;margin:0 0 22px;padding:20px 24px;border-radius:22px;background:#fff0d5;border:1px solid #f0ddbd}
.smart-define h2{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}
.smart-define p{margin:0;font-size:16px;line-height:1.55}
.smart-define-jump{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#1550b8;font-weight:700;text-decoration:none}
.smart-define-jump:hover{text-decoration:underline;text-underline-offset:4px}
.smart-acronym{width:100%;border-collapse:collapse;font-size:15px}
.smart-acronym thead th{padding:0 8px 6px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7a5a2e;text-align:left}
.smart-acronym tbody th,.smart-acronym td{padding:5px 8px;text-align:left;vertical-align:middle;border-bottom:1px solid #f0ddbd}
.smart-acronym tbody tr:last-child>*{border-bottom:0}
.smart-acronym tbody th{width:46px}
.smart-acronym td:nth-child(2){font-weight:700;white-space:nowrap}
.smart-acronym td:last-child{color:#3b4651}
.smart-letter{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:#1550b8;color:#ffffff;font:700 15px/1 'DM Sans','DM Sans Fallback',sans-serif}
.smart-acronym .smart-letter[data-letter=m],.tool-app[data-sheet=colorful] .smart-letter[data-letter=m]{background:#c9521f}
.smart-acronym .smart-letter[data-letter=a],.tool-app[data-sheet=colorful] .smart-letter[data-letter=a]{background:#2f7a55}
.smart-acronym .smart-letter[data-letter=r],.tool-app[data-sheet=colorful] .smart-letter[data-letter=r]{background:#7a45b2}
.smart-acronym .smart-letter[data-letter=t],.tool-app[data-sheet=colorful] .smart-letter[data-letter=t]{background:#9a6a06}
.tool-app[data-sheet=minimal] .smart-letter{background:none;color:#172033;border:1.5px solid #172033}
.smart-designs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0 8px}
.smart-designs-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#526170;margin-right:4px}
.smart-designs button{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 12px 0 8px;border:1.5px solid transparent;border-radius:12px;background:none;font:inherit;font-size:14px;font-weight:600;color:#526170;cursor:pointer}
.smart-designs button[aria-checked=true]{border-color:#1550b8;background:#e7f0ff;color:#12367f}
.smart-designs i{width:22px;height:28px;border-radius:3px;border:1px solid #cfc4b2;background:#ffffff linear-gradient(#1550b8,#1550b8) 3px 5px/3px 18px no-repeat}
.smart-designs [data-sheet-choice=minimal] i{background:#ffffff linear-gradient(#9aa3ad,#9aa3ad) 4px 7px/13px 1px no-repeat,linear-gradient(#9aa3ad,#9aa3ad) 4px 13px/13px 1px no-repeat,linear-gradient(#9aa3ad,#9aa3ad) 4px 19px/13px 1px no-repeat}
.smart-designs [data-sheet-choice=colorful] i{border-color:#f0ddbd;background:#fff0d5 linear-gradient(90deg,#1550b8 0 20%,#c9521f 20% 40%,#2f7a55 40% 60%,#7a45b2 60% 80%,#9a6a06 80%) 3px 4px/15px 5px no-repeat}
.smart-breakdown{margin:6px 0 12px;display:grid}
.smart-breakdown div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #eee4d5}
.smart-breakdown dt{display:flex;align-items:center;gap:10px;font-weight:700}
.smart-breakdown dd{margin:0;overflow-wrap:anywhere}
.smart-plan-cta{margin-top:16px;padding:16px;border-radius:16px;background:#e7f0ff}
.smart-plan-cta p{margin:0 0 10px;font-size:15px;line-height:1.5;color:#12367f}
.tool-app[data-sheet=minimal] .smart-goal{font:600 20px/1.45 'DM Sans','DM Sans Fallback',sans-serif;border:0;border-top:2px solid #172033;border-bottom:1px solid #dddddd;border-radius:0;padding:14px 0;background:none}
.tool-app[data-sheet=minimal] .smart-sheet h3{font:700 12px/1.3 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#526170}
.tool-app[data-sheet=minimal] .smart-breakdown div{border-bottom-color:#e6e6e6}
.tool-app[data-sheet=colorful] .smart-sheet{background:#fffaf2;border-color:#f0ddbd}
.tool-app[data-sheet=colorful] .smart-goal{background:#fff0d5;border-color:#f0ddbd;border-left-color:#e4632e}
.tool-app[data-sheet=colorful] .smart-sheet h3{color:#b24618}
.tool-app[data-sheet=colorful] .smart-breakdown div{border-bottom-color:#f0ddbd}
.smart-sheet .tool-output-head .text-button{min-height:44px}
.smart-filter{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}
.smart-filter[hidden]{display:none}
.smart-filter .chip{min-height:44px;padding:0 16px;font:inherit;font-size:14px;font-weight:600;color:#172033}
.smart-filter .chip[aria-pressed=true]{border-color:#1550b8;background:#1550b8;color:#ffffff}
.smart-examples tr[hidden]{display:none}
@media(max-width:860px){.smart-define{grid-template-columns:1fr}.smart-define-jump{display:none}}
@media(max-width:700px){
.smart-define{gap:8px;margin:0 0 16px;padding:14px 12px 8px;border-radius:18px}
.smart-define h2{font-size:20px;margin-bottom:4px}
.smart-define p{font-size:15px;line-height:1.5}
.smart-define p,.smart-define-jump,.smart-acronym thead{display:none}
.smart-acronym{font-size:14px}
.smart-acronym tbody th{width:36px;padding:4px 6px 4px 0}
.smart-acronym td{padding:4px 6px}
.smart-acronym td:last-child{padding-right:0}
.smart-letter{width:28px;height:28px;font-size:14px}
.smart-breakdown div{grid-template-columns:1fr;gap:4px}
.smart-designs button{padding:0 8px 0 6px;gap:6px}
}
@media(max-width:360px){.smart-acronym{font-size:13px}.smart-acronym td:nth-child(2){white-space:normal}}
@media print{
.smart-define,.smart-designs,.smart-plan-cta,.smart-filter{display:none!important}
.smart-letter,.tool-app[data-sheet=colorful] .smart-goal,.tool-app[data-sheet=colorful] .tool-output-head,.tool-app[data-sheet=colorful] .print-blank-sheet .eyebrow,.tool-app[data-sheet=colorful] .blank-table th,.tool-app[data-sheet=colorful] .smart-sheet .tool-table th{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.smart-breakdown div{grid-template-columns:150px 1fr;padding:5px 0;border-bottom-color:#bbb;break-inside:avoid}
.smart-letter{width:24px;height:24px;font-size:12px}
.tool-app[data-sheet=classic] .smart-letter{background:#fff;color:#172033;border:1.5px solid #172033}
.tool-app[data-sheet=minimal] .smart-sheet h2,.tool-app[data-sheet=minimal] .print-blank-sheet h2{font:700 26px/1.1 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:-.02em}
.tool-app[data-sheet=minimal] .print-blank-sheet h3{font:700 11px/1.3 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#555;margin-top:18px}
.tool-app[data-sheet=minimal] .blank-lines div,.tool-app[data-sheet=minimal] .blank-rule,.tool-app[data-sheet=minimal] .blank-milestones li{border-bottom-color:#c8c8c8}
.tool-app[data-sheet=minimal] .blank-table th,.tool-app[data-sheet=minimal] .blank-table td{border:0;border-bottom:1px solid #c8c8c8;background:none}
.tool-app[data-sheet=minimal] .smart-sheet .tool-table th{background:none;border-bottom:1.5px solid #333}
.tool-app[data-sheet=minimal] .print-blank-sheet .eyebrow{color:#777}
.tool-app[data-sheet=colorful] .tool-output-head{background:#fff0d5;border-radius:12px;padding:10px 14px}
.tool-app[data-sheet=colorful] .smart-goal{background:#fff0d5}
.tool-app[data-sheet=colorful] .smart-sheet .tool-table th,.tool-app[data-sheet=colorful] .blank-table th{background:#e7f0ff;color:#12367f}
.tool-app[data-sheet=colorful] .print-blank-sheet .eyebrow{display:inline-block;padding:4px 10px;border-radius:99px;background:#e4632e;color:#fff}
.tool-app[data-sheet=colorful] .print-blank-sheet h2,.tool-app[data-sheet=colorful] .print-blank-sheet h3,.tool-app[data-sheet=colorful] .smart-sheet h3{color:#b24618}
.tool-app[data-sheet=colorful] .blank-lines div,.tool-app[data-sheet=colorful] .blank-rule,.tool-app[data-sheet=colorful] .blank-milestones li{border-bottom-color:#d9b98a}
.tool-app[data-sheet=colorful] .blank-table th,.tool-app[data-sheet=colorful] .blank-table td{border-color:#d9b98a}
.tool-app[data-sheet=colorful] .print-blank-sheet dt[data-letter]::before{content:attr(data-letter);display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:#1550b8;color:#fff;font-size:10px;font-weight:700;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.tool-app[data-sheet=colorful] .print-blank-sheet dt[data-letter=M]::before{background:#c9521f}
.tool-app[data-sheet=colorful] .print-blank-sheet dt[data-letter=A]::before{background:#2f7a55}
.tool-app[data-sheet=colorful] .print-blank-sheet dt[data-letter=R]::before{background:#7a45b2}
.tool-app[data-sheet=colorful] .print-blank-sheet dt[data-letter=T]::before{background:#9a6a06}
.smart-sheet h3 .optional,.smart-sheet [data-smart-status]{display:none}
.tool-app[data-sheet=minimal] .smart-milestones label>span{color:#333}
}
/* 2027 calendar (/calendar/<year>/): options panel, year sheet in five designs, one-page print and 12 month pages.
   The sheet is a print preview, so it keeps its paper colors in dark mode (see KEEP_SELECTORS in content/darkcss.py). */
.cal-app{display:grid;grid-template-columns:292px minmax(0,1fr);gap:22px;align-items:start;margin-bottom:46px}
.cal-controls{position:sticky;top:14px;display:grid;gap:14px;padding:18px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.cal-field{border:0;margin:0;padding:0;min-width:0}
.cal-field legend,.cal-habit-name>span{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 7px;padding:0}
.cal-design-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cal-design{position:relative;display:grid;justify-items:center;gap:4px;cursor:pointer;font-size:11.5px;font-weight:700;line-height:1.15;text-align:center;color:#3e4a56;min-width:0}
.cal-design input,.cal-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.cal-swatch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr 1fr;gap:3px;width:100%;height:44px;padding:5px;border-radius:10px;border:2px solid #e3dccf;box-sizing:border-box;background:#fff}
.cal-swatch i{border-radius:3px;min-width:0}
.cal-design input:checked+.cal-swatch{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8}
.cal-design input:checked~.cal-design-name{color:#12367f}
.cal-design input:focus-visible+.cal-swatch,.cal-seg input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.cal-swatch-warm{background:#fffdf8}.cal-swatch-warm i:nth-child(1){background:#e7f0ff}.cal-swatch-warm i:nth-child(2){background:#fff0d5}.cal-swatch-warm i:nth-child(3){background:#e4632e;border-radius:50%}
.cal-swatch-classic i{border:1px solid #9a9a9a;border-radius:0}.cal-swatch-classic i:nth-child(3){background:#fbe0e0;border-color:#b3261e}
.cal-swatch-minimal i{background:#eef1f5}.cal-swatch-minimal i:nth-child(3){background:#1550b8;border-radius:50%;transform:scale(.55)}
.cal-swatch-bold i:nth-child(1){background:#1550b8}.cal-swatch-bold i:nth-child(2){background:#e4632e}.cal-swatch-bold i:nth-child(3){background:#1f8a5b}
.cal-swatch-inksaver i{border:1.5px solid #000000;border-radius:0}
.cal-swatch i:nth-child(n+4){display:none}
.cal-swatch::after{content:"";grid-column:1/-1;border-top:2px solid #cfd6df;align-self:center}
.cal-field-row{display:grid;gap:12px}
.cal-seg{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;background:#f4efe6;padding:3px;gap:3px}
.cal-seg label{position:relative;min-width:0}
.cal-seg span{display:flex;align-items:center;justify-content:center;min-height:40px;border-radius:9px;font-size:14px;font-weight:700;color:#3e4a56;cursor:pointer;text-align:center;padding:0 4px}
.cal-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.cal-seg b{font-weight:inherit}
.cal-orient{display:inline-block;flex:none;box-sizing:border-box;width:16px;height:12px;margin-right:7px;border:2px solid currentColor;border-radius:2px}
.cal-orient.is-tall{width:12px;height:16px}
@media(min-width:901px){.cal-actions{order:-2}.cal-status{order:-1}.cal-actions+.cal-status,.cal-designs{margin-top:2px}}
.cal-toggles{display:grid;gap:8px}
.cal-toggle{display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 12px;border-radius:12px;background:#f4efe6;cursor:pointer;font-weight:700;font-size:14px;line-height:1.25}
.cal-toggle input{width:20px;height:20px;accent-color:#1550b8;flex:none;margin:0}
.cal-toggle small{display:block;font-weight:500;font-size:12px;color:#526170}
.cal-habit-name{display:grid;gap:0}
.cal-habit-name[hidden]{display:none}
.cal-habit-name input{font:inherit;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;min-height:44px;width:100%;box-sizing:border-box;color:#172033}
.cal-actions{display:grid;gap:8px}
.cal-actions .button{width:100%;min-height:46px;margin:0;padding:0 10px;white-space:nowrap}
.cal-image{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.cal-image-shape select{height:46px;border:1px solid #c9d6ea;border-radius:12px;background:#fff;font:inherit;font-size:13px;font-weight:600;padding:0 4px;color:#172033;max-width:118px}
.cal-status{margin:0;font-size:13px;line-height:1.45;color:#526170}
.cal-status:empty{display:none}
.cal-stage{min-width:0}
.cal-months-print{display:none}

/* The sheet: design tokens, then shared layout */
.cal-sheet,.cal-months-print{--bg:#fffdf8;--ink:#172033;--muted:#6b7683;--we:#b04a1f;--head:#e4632e;--off:#e4632e;--off-ink:#ffffff;--ring:#e4632e;--box:transparent;--box-bd:transparent;--radius:14px;--title:'Fraunces','Fraunces Fallback',Georgia,serif;--mname:#172033;--wefill:#fbf5ec;--line:#b9b2a6}
.cal-sheet[data-design="classic"],.cal-months-print[data-design="classic"]{--bg:#ffffff;--ink:#111111;--muted:#555555;--we:#111111;--head:#111111;--off:#fbe0e0;--off-ink:#b3261e;--ring:#b3261e;--box-bd:#b8b8b8;--radius:0;--mname:#111111;--wefill:#f1f1f1;--line:#9a9a9a}
.cal-sheet[data-design="minimal"],.cal-months-print[data-design="minimal"]{--bg:#ffffff;--ink:#20242a;--muted:#8a939d;--we:#9aa3ad;--head:#9aa3ad;--off:#1550b8;--off-ink:#ffffff;--ring:#1550b8;--radius:0;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif;--mname:#20242a;--wefill:#ffffff;--line:#d5dae0}
.cal-sheet[data-design="bold"],.cal-months-print[data-design="bold"]{--bg:#ffffff;--ink:#172033;--muted:#5b6673;--we:#172033;--off-ink:#ffffff;--radius:10px;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif;--wefill:#f6f7f9;--line:#b7bec8}
.cal-sheet[data-design="inksaver"],.cal-months-print[data-design="inksaver"]{--bg:#ffffff;--ink:#000000;--muted:#000000;--we:#000000;--head:#000000;--off:transparent;--off-ink:#000000;--ring:#000000;--box-bd:#000000;--radius:0;--mname:#000000;--wefill:#ffffff;--line:#000000}
.cal-sheet[data-design="warm"] .cal-month:nth-child(6n+1){--box:#e7f0ff}.cal-sheet[data-design="warm"] .cal-month:nth-child(6n+2){--box:#fff0d5}.cal-sheet[data-design="warm"] .cal-month:nth-child(6n+3){--box:#edf5c6}.cal-sheet[data-design="warm"] .cal-month:nth-child(6n+4){--box:#f4e8ff}.cal-sheet[data-design="warm"] .cal-month:nth-child(6n+5){--box:#ffe8d9}.cal-sheet[data-design="warm"] .cal-month:nth-child(6n){--box:#daf3e8}
.cal-sheet[data-design="bold"] .cal-month:nth-child(6n+1),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n+1){--m:#1550b8}.cal-sheet[data-design="bold"] .cal-month:nth-child(6n+2),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n+2){--m:#e4632e}.cal-sheet[data-design="bold"] .cal-month:nth-child(6n+3),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n+3){--m:#1f8a5b}.cal-sheet[data-design="bold"] .cal-month:nth-child(6n+4),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n+4){--m:#7a45b2}.cal-sheet[data-design="bold"] .cal-month:nth-child(6n+5),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n+5){--m:#d6336c}.cal-sheet[data-design="bold"] .cal-month:nth-child(6n),.cal-months-print[data-design="bold"] .cal-mpage:nth-child(6n){--m:#0f7c8c}
.cal-sheet[data-design="bold"] .cal-month,.cal-months-print[data-design="bold"] .cal-mpage{--head:var(--m);--off:var(--m);--ring:var(--m)}

.cal-sheet{background:var(--bg);color:var(--ink);border-radius:18px;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;padding:22px 24px 16px;print-color-adjust:exact;-webkit-print-color-adjust:exact;min-width:0}
.cal-sheet-head{display:flex;align-items:baseline;gap:6px 16px;margin:0 0 14px;flex-wrap:wrap}
.cal-sheet-year{font:700 46px/1 var(--title);margin:0;letter-spacing:-.03em;color:var(--mname,var(--ink))}
.cal-sheet[data-design="bold"] .cal-sheet-year{font-weight:800;letter-spacing:-.04em}
.cal-sheet-sub{margin:0;display:flex;gap:4px 14px;flex-wrap:wrap;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}
.cal-sheet-note:empty{display:none}
.cal-sheet-note::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--off,#e4632e);box-shadow:inset 0 0 0 1.5px var(--ring,#e4632e);margin-right:6px;vertical-align:-1px}
.cal-sheet[data-design="bold"] .cal-sheet-note::before{background:#1550b8;box-shadow:none}
.cal-sheet[data-design="classic"] .cal-sheet-note::before{border-radius:0}
.cal-sheet .cal-year-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cal-sheet[data-orient="portrait"] .cal-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.cal-sheet .cal-month{background:var(--box);border:1px solid var(--box-bd);border-radius:var(--radius);padding:9px 8px 7px;min-width:0;scroll-margin-top:16px}
.cal-sheet .cal-month-name{font:600 18px/1.2 var(--title);margin:0 0 4px;color:var(--mname,var(--ink));letter-spacing:-.01em}
.cal-sheet[data-design="classic"] .cal-month-name{text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:14px;font-weight:700;border-bottom:1px solid #111111;padding-bottom:4px}
.cal-sheet[data-design="minimal"] .cal-month-name{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;margin-bottom:6px}
.cal-sheet[data-design="bold"] .cal-month-name{background:var(--m);color:#ffffff;font-size:16px;font-weight:800;padding:5px 9px;border-radius:8px;margin-bottom:5px}
.cal-sheet[data-design="inksaver"] .cal-month-name{text-align:center;font-size:16px}
.cal-sheet .cal-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;text-align:center;color:var(--ink)}
.cal-sheet .cal-table th{font-size:10px;font-weight:800;color:var(--head);padding:2px 0 3px}
.cal-sheet .cal-table abbr{text-decoration:none;border:0;cursor:default}
.cal-sheet .cal-table td{padding:1px 0;height:23px;font-variant-numeric:tabular-nums;font-weight:500}
.cal-sheet[data-design="classic"] .cal-table td{border:1px solid #c4c4c4;height:22px}
.cal-sheet[data-design="classic"] .cal-table td.is-we{background:var(--wefill)}
.cal-sheet .cal-d{display:inline-grid;place-items:center;width:1.75em;height:1.75em;border-radius:50%;line-height:1}
.cal-sheet[data-design="classic"] .cal-d{border-radius:0}
.cal-sheet .cal-table td.is-we{color:var(--we)}
.cal-sheet[data-design="minimal"] .cal-table td.is-we .cal-d{font-weight:400}
.cal-sheet[data-holidays="on"] .cal-table td.is-off .cal-d{background:var(--off);color:var(--off-ink);font-weight:800}
.cal-sheet[data-holidays="on"][data-design="classic"] .cal-table td.is-off{background:var(--off)}
.cal-sheet[data-holidays="on"][data-design="inksaver"] .cal-table td.is-off .cal-d{box-shadow:inset 0 0 0 2px #000000}
.cal-sheet[data-holidays="on"] .cal-table td.is-date .cal-d{box-shadow:inset 0 0 0 1.5px var(--ring)}
.cal-sheet[data-holidays="on"][data-design="inksaver"] .cal-table td.is-date .cal-d{box-shadow:none;outline:1.5px dashed #000000;outline-offset:-2px}
.cal-sheet .cal-strip{display:none;margin-top:5px}
.cal-sheet[data-habit="on"] .cal-strip{display:block}
.cal-sheet .cal-strip-label{display:block;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--muted);margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-sheet .cal-strip-boxes{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:2px}
.cal-sheet .cal-strip-boxes i{display:block;aspect-ratio:1;border:1px solid var(--head);border-radius:2px;background:#ffffff}
.cal-sheet[data-design="minimal"] .cal-strip-boxes i{border-color:#b9c0c8}
.cal-sheet-foot{margin-top:14px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px;font-size:11px;line-height:1.5;color:var(--muted)}
.cal-sheet-foot p{margin:0}
.cal-sheet-foot .cal-foot-holidays strong{color:var(--ink)}
.cal-sheet[data-holidays="off"] .cal-foot-holidays{visibility:hidden}
.cal-sheet-foot .cal-foot-credit{white-space:nowrap}

.cal-content .cal-holiday-table td:first-child{font-weight:700}
.cal-plan{margin:40px 0 0}

@media(max-width:1080px){.cal-app{grid-template-columns:260px minmax(0,1fr)}.cal-sheet .cal-year-grid,.cal-sheet[data-orient="portrait"] .cal-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .cal-app{grid-template-columns:1fr;gap:14px}
  .cal-controls{position:static;padding:14px;gap:10px;border-radius:18px}
  .cal-field legend,.cal-habit-name>span{font-size:10.5px;margin-bottom:5px}
  .cal-swatch{height:38px}
  .cal-field-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .cal-seg span{min-height:40px;font-size:13px}
  .cal-toggles{grid-template-columns:1fr 1fr}
  .cal-habit-name{grid-column:1/-1}
  .cal-toggle{font-size:13px;padding:8px 10px}
  .cal-toggle small{display:none}
  .cal-actions{grid-template-columns:1fr 1fr}
  .cal-image{grid-column:1/-1}
}
@media(max-width:640px){
  .cal-page .tool-head-compact .tool-lede{font-size:14.5px;line-height:1.45}
  .cal-field-row{gap:6px}
  .cal-seg{padding:2px;gap:2px}
  .cal-seg span{font-size:12.5px;padding:0 2px}
  .cal-seg b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .cal-orient{margin:0}
  .cal-design{font-size:10.5px}
  .cal-sheet{padding:14px 10px 12px;border-radius:14px}
  .cal-sheet-year{font-size:34px}
  .cal-sheet .cal-year-grid,.cal-sheet[data-orient="portrait"] .cal-year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .cal-sheet .cal-month{padding:7px 5px 5px}
  .cal-sheet .cal-month-name{font-size:16px}
  .cal-sheet .cal-table{font-size:11px}
  .cal-sheet .cal-table td{height:20px}
  .cal-sheet-foot{flex-direction:column;align-items:flex-start;font-size:10.5px}
}
@media(max-width:360px){.cal-sheet .cal-table{font-size:10.5px}.cal-sheet .cal-d{width:1.6em;height:1.6em}.cal-seg span{font-size:12px}.cal-actions .button{padding:0 8px;font-size:13px}}

/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page cal-letter-landscape{size:letter landscape;margin:10mm}
@page cal-letter-portrait{size:letter portrait;margin:10mm}
@page cal-a4-landscape{size:A4 landscape;margin:10mm}
@page cal-a4-portrait{size:A4 portrait;margin:10mm}
@media print{
  body:has(.cal-page)>:not(main){display:none!important}
  .cal-page{width:auto;max-width:none;margin:0;padding:0}
  .cal-page>:not(.cal-app):not(.cal-months-print){display:none!important}
  .cal-app{display:block;margin:0}
  .cal-controls{display:none!important}
  .cal-sheet{border:0;border-radius:0;box-shadow:none;padding:0;display:flex;flex-direction:column;height:var(--ph);overflow:hidden;break-inside:avoid}
  .cal-sheet[data-paper="letter"][data-orient="landscape"],.cal-months-print[data-paper="letter"][data-orient="landscape"] .cal-mpage{page:cal-letter-landscape;--ph:194mm}
  .cal-sheet[data-paper="letter"][data-orient="portrait"],.cal-months-print[data-paper="letter"][data-orient="portrait"] .cal-mpage{page:cal-letter-portrait;--ph:257mm}
  .cal-sheet[data-paper="a4"][data-orient="landscape"],.cal-months-print[data-paper="a4"][data-orient="landscape"] .cal-mpage{page:cal-a4-landscape;--ph:188mm}
  .cal-sheet[data-paper="a4"][data-orient="portrait"],.cal-months-print[data-paper="a4"][data-orient="portrait"] .cal-mpage{page:cal-a4-portrait;--ph:275mm}
  .cal-sheet-head{margin:0 0 3mm}
  .cal-sheet-year{font-size:26pt}
  .cal-sheet-sub{font-size:9pt}
  .cal-sheet .cal-year-grid,.cal-sheet[data-orient] .cal-year-grid{flex:1;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:3.5mm}
  .cal-sheet[data-orient="portrait"] .cal-year-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}
  .cal-sheet .cal-month{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:2mm 2.5mm 1.5mm}
  .cal-sheet .cal-month-name{font-size:12pt;margin-bottom:1mm}
  .cal-sheet[data-design="classic"] .cal-month-name,.cal-sheet[data-design="minimal"] .cal-month-name{font-size:9.5pt}
  .cal-sheet[data-design="bold"] .cal-month-name{font-size:11pt;padding:1mm 2mm}
  .cal-sheet .cal-table{flex:1 1 auto;height:100%;font-size:9pt}
  .cal-sheet .cal-table th{font-size:7pt;padding:0 0 .5mm}
  .cal-sheet .cal-table td,.cal-sheet[data-design="classic"] .cal-table td{height:auto;padding:0}
  .cal-sheet .cal-d{width:5.4mm;height:5.4mm}
  .cal-sheet .cal-strip{margin-top:1mm}
  .cal-sheet .cal-strip-label{font-size:6.5pt;margin-bottom:.6mm}
  .cal-sheet .cal-strip-boxes i{aspect-ratio:auto;height:2.6mm}
  .cal-sheet-foot{margin-top:2.5mm;font-size:7.5pt;flex-direction:row}
  html.cal-printing-months .cal-app{display:none!important}
  html.cal-printing-months .cal-months-print{display:block}
  .cal-months-print{color:var(--ink);print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .cal-months-print .cal-mpage{display:flex;flex-direction:column;height:var(--ph);overflow:hidden;break-after:page;background:var(--bg)}
  .cal-months-print .cal-mpage:last-child{break-after:auto}
  .cal-months-print .cal-mhead{display:flex;align-items:baseline;justify-content:space-between;gap:6mm;margin:0 0 3mm;padding:0 0 2mm;border-bottom:.5mm solid var(--head)}
  .cal-months-print[data-design="bold"] .cal-mhead{background:var(--m);color:#ffffff;border:0;border-radius:3mm;padding:2.5mm 4mm}
  .cal-months-print[data-design="warm"] .cal-mhead{border-bottom-color:#e4632e}
  .cal-months-print .cal-mname{font:700 30pt/1 var(--title);margin:0;letter-spacing:-.02em}
  .cal-months-print[data-design="classic"] .cal-mname,.cal-months-print[data-design="minimal"] .cal-mname{text-transform:uppercase;letter-spacing:.1em;font-size:22pt}
  .cal-months-print .cal-myear{font:700 18pt/1 var(--title);margin:0;opacity:.75}
  .cal-months-print .cal-mtable{flex:1 1 auto;min-height:0;width:100%;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:auto repeat(var(--rows,5),minmax(0,1fr));border-top:.3mm solid var(--line);border-left:.3mm solid var(--line)}
  .cal-months-print .cal-mtable thead,.cal-months-print .cal-mtable tbody,.cal-months-print .cal-mtable tr{display:contents}
  .cal-months-print .cal-mtable th,.cal-months-print .cal-mtable td{display:block;min-width:0;overflow:hidden}
  .cal-months-print .cal-mtable th{border-right:.3mm solid transparent;border-bottom:.3mm solid var(--line)}
  .cal-months-print .cal-mtable td{border-width:0 .3mm .3mm 0!important}
  .cal-months-print .cal-mtable th{font-size:8pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--head);padding:0 1.5mm 1.5mm;text-align:left}
  .cal-months-print .cal-mtable td{border:.3mm solid var(--line);vertical-align:top;padding:1.2mm 1.5mm;font-size:12pt;font-weight:600}
  .cal-months-print .cal-mtable td.is-blank{background:transparent}
  .cal-months-print .cal-mtable td.is-we{background:var(--wefill);color:var(--we)}
  .cal-months-print[data-design="minimal"] .cal-mtable td{border-width:0 0 .3mm}
  .cal-months-print .cal-d{display:inline-grid;place-items:center;min-width:6.4mm;height:6.4mm;border-radius:50%}
  .cal-months-print[data-holidays="on"] td.is-off .cal-d{background:var(--off);color:var(--off-ink)}
  .cal-months-print[data-holidays="on"][data-design="classic"] td.is-off{background:var(--off)}
  .cal-months-print[data-holidays="on"][data-design="classic"] td.is-off .cal-d{background:transparent}
  .cal-months-print[data-holidays="on"][data-design="inksaver"] td.is-off .cal-d{box-shadow:inset 0 0 0 .5mm #000000}
  .cal-months-print[data-holidays="on"] td.is-date .cal-d{box-shadow:inset 0 0 0 .35mm var(--ring)}
  .cal-months-print .cal-hname{display:block;margin-top:.8mm;font-size:6.5pt;font-weight:700;line-height:1.15;color:var(--ink)}
  .cal-months-print[data-holidays="off"] .cal-hname{display:none}
  .cal-months-print .cal-mstrip{display:none;margin-top:3mm}
  .cal-months-print[data-habit="on"] .cal-mstrip{display:block}
  .cal-months-print .cal-mstrip-label,.cal-months-print .cal-mnotes-label{font-size:9pt;font-weight:800;margin:0 0 1.2mm}
  .cal-months-print .cal-mstrip-boxes{display:grid;grid-template-columns:repeat(31,minmax(0,1fr));gap:.8mm}
  .cal-months-print .cal-mstrip-boxes span{height:6.5mm;border:.3mm solid var(--head);border-radius:.8mm;font-size:5.5pt;line-height:1;padding:.4mm .5mm;color:var(--muted)}
  .cal-months-print .cal-mnotes{margin-top:3mm}
  .cal-months-print .cal-mnotes i{display:block;height:7mm;border-bottom:.3mm solid var(--line)}
  .cal-months-print .cal-mfoot{margin:1.5mm 0 0;font-size:7pt;text-align:right;color:var(--muted)}
}
/* Wave 5 C1 Winter Arc tracker (/tools/winter-arc/) and L3 fall bucket list printable (/tools/fall-bucket-list/) */
.wa-app,.fb-app{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.wa-head h2{margin:0}.wa-dates{margin:2px 0 0;font-size:14px;color:#5b6475}
.wa-phase{margin:12px 0 0;font-weight:700;color:#12367f;line-height:1.5}.wa-phase .text-button{font-size:15px;padding:0}
.wa-bar{height:10px;margin-top:12px;border-radius:99px;background:#eee4d5;overflow:hidden}.wa-bar span{display:block;height:100%;width:0;border-radius:inherit;background:#1550b8;transition:width .3s}
.wa-progress p{margin:6px 0 0;font-size:14px;color:#3b4456}.wa-progress[hidden]{display:none}
.wa-day{margin-top:14px;padding:14px;border-radius:16px;background:#f7f4ee;scroll-margin-top:90px}
.wa-day h3{margin:0 0 10px;font:700 16px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.wa-rules{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.wa-rule{display:flex;gap:12px;align-items:center;min-height:48px;padding:8px 12px;border-radius:12px;background:#fff;border:1.5px solid #eee4d5;cursor:pointer}
.wa-rule input{flex:none;width:24px;height:24px;margin:0;accent-color:#1550b8}
.wa-rule span{display:grid;gap:2px;line-height:1.3}.wa-rule small{font-size:12.5px;color:#5b6475}
.wa-rule:has(input:checked){border-color:#1550b8;background:#e7f0ff}.wa-rule:has(input:disabled){cursor:default}
.wa-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wa-wd{text-align:center;font-size:11px;font-weight:700;color:#5b6475}
.wa-pad{min-height:40px}
.wa-cell{display:grid;place-items:center;width:100%;min-height:40px;padding:2px;border-radius:9px;border:1.5px solid #e6dfd2;background:#fffdf8;color:#172033;font:600 12px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.wa-num{white-space:nowrap;font-size:11.5px}
.wa-cell.is-full{background:#1550b8;border-color:#1550b8;color:#fff}
.wa-cell.is-partial{background:#cfe0fb;border-color:#9dbbf0}
.wa-cell.is-today{box-shadow:inset 0 0 0 2px #e4632e}
.wa-cell.is-selected{outline:3px solid #f2783c;outline-offset:1px}
.wa-cell:disabled{opacity:.5;cursor:default}
.wa-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.wa-legend>span{display:inline-flex;align-items:center;gap:6px}
.wa-key{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid #e6dfd2;background:#fffdf8}.wa-key:first-child{margin-left:0}.wa-key.is-full{background:#1550b8;border-color:#1550b8}.wa-key.is-partial{background:#cfe0fb;border-color:#9dbbf0}
.wa-app-link{margin-top:14px}
.wa-chips,.fb-chips{display:flex;flex-wrap:wrap;gap:8px}
.wa-chips+.wa-chips:not(:empty){margin-top:8px}
.wa-chip span{min-height:44px;padding:8px 12px;font-size:14px}
.wa-chip input:disabled+span{opacity:.45;cursor:not-allowed}
.wa-own,.fb-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.wa-own .button,.fb-own .button{margin:0;min-height:48px}
.wa-own-chip{display:inline-flex;align-items:center;gap:2px;padding:0 0 0 12px;border-radius:14px;background:#e7f0ff;border:1.5px solid #1550b8;color:#12367f;font-weight:600;font-size:14px}
.wa-remove,.fb-remove{flex:none;width:44px;height:44px;border:0;border-radius:12px;background:none;color:#5b6475;font-size:22px;line-height:1;cursor:pointer}.wa-remove:hover,.fb-remove:hover{color:#c2410c}
.print-preview{grid-column:1/-1;border:1px solid #eee4d5;border-radius:18px;background:#fff;padding:0 18px}
.print-preview>summary{min-height:48px;display:flex;align-items:center;font-weight:700;color:#1550b8;cursor:pointer}
.print-preview[open]{padding-bottom:18px}
.wa-print,.fb-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.wa-p-kicker,.fb-p-kicker{margin:0;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.wa-p-head h2,.fb-p-head h2{margin:2px 0;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.wa-p-dates{margin:0 0 8px;font-size:12px}
.wa-p-rules{columns:2;column-gap:20px;margin:0 0 10px;padding-left:18px;font-size:11.5px;line-height:1.45}.wa-p-rules span{color:#5b6475}
.wa-p-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.wa-p-grid th{padding:3px;font-size:10px;letter-spacing:1px;text-transform:uppercase}
.wa-p-grid td{height:var(--wa-row,44px);padding:3px 4px;border:1px solid #9a9a9a;vertical-align:top}
.wa-p-grid td.is-pad{background:#f5f5f5}
.wa-p-date{display:block;font-size:10px;font-weight:700}
.wa-p-boxes{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}
.wa-p-boxes i{display:block;width:13px;height:13px;border:1px solid #777;border-radius:3px;font:normal 700 7px/12px 'DM Sans','DM Sans Fallback',sans-serif;text-align:center;color:#999}
.wa-p-boxes i.is-done{background:#172033;border-color:#172033;color:#fff}
.wa-p-foot,.fb-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#444}
.wa-design-bold .wa-p-head{margin:-4px -4px 10px;padding:12px 16px;background:#172033;color:#fff}
.wa-design-bold .wa-p-kicker{color:#f2783c}.wa-design-bold .wa-p-head h2{font-size:34px;text-transform:uppercase;letter-spacing:.5px}
.wa-design-bold .wa-p-grid td{border:2px solid #172033}.wa-design-bold .wa-p-grid th{background:#f2783c;color:#172033}
.wa-design-bold .wa-p-boxes i{border:1.5px solid #172033}.wa-design-bold .wa-p-boxes i.is-done{background:#e4632e;border-color:#e4632e}
.wa-design-cozy{background:#fbf5ec;color:#4a2e1f}
.wa-design-cozy .wa-p-head{text-align:center}.wa-design-cozy .wa-p-kicker{color:#c8552b}.wa-design-cozy .wa-p-head h2{font-style:italic;font-weight:600}
.wa-design-cozy .wa-p-grid{border-collapse:separate;border-spacing:4px}.wa-design-cozy .wa-p-grid td{border:1px solid #d8c3a5;border-radius:8px;background:#fff}.wa-design-cozy .wa-p-grid td.is-pad{background:none;border:0}
.wa-design-cozy .wa-p-rules span{color:#7a5a45}.wa-design-cozy .wa-p-boxes i{border-color:#b08d6c;border-radius:50%}.wa-design-cozy .wa-p-boxes i.is-done{background:#c8552b;border-color:#c8552b}
.fb-progress{margin:8px 0 0;font-weight:700;color:#12367f}
.fb-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}
.fb-list li{display:flex;align-items:center;gap:4px;padding-left:12px;border-radius:12px;background:#fffdf8;border:1.5px solid #eee4d5}
.fb-list li.is-done{background:#fff0d5;border-color:#f2c48e}
.fb-list label{flex:1;display:flex;align-items:center;gap:12px;min-height:46px;cursor:pointer;line-height:1.35}
.fb-list input{flex:none;width:22px;height:22px;margin:0;accent-color:#e4632e}
.fb-list li.is-done span{text-decoration:line-through;text-decoration-color:#e4632e;text-decoration-thickness:2px}
.fb-presets .choice span{min-width:0;padding:10px 12px;font-size:14px}
.fb-start{border:0;padding:0;margin:14px 0 0;min-width:0}.fb-start legend{padding:0;margin-bottom:8px}.fb-presets{gap:6px}.fb-presets .choice span{min-height:44px;padding:8px 12px}
.fb-more{margin-top:16px;border-top:1px solid #eee4d5}.fb-more>summary{min-height:48px;display:flex;align-items:center;font-weight:700;color:#1550b8;cursor:pointer}
.fb-group{border:0;padding:0;margin:10px 0 0}.fb-group legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:700}
.fb-chip{position:relative;cursor:pointer}.fb-chip input{position:absolute;opacity:0;inset:0}
.fb-chip span{display:flex;align-items:center;min-height:44px;padding:6px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font-size:13.5px;line-height:1.3}
.fb-chip input:checked+span{border-color:#e4632e;background:#fff0d5}.fb-chip input:checked+span::before{content:"✓";font-weight:700;color:#c2410c;margin-right:6px}
.fb-chip input:focus-visible+span{outline:3px solid #f2783c;outline-offset:2px}.fb-chip input:disabled+span{opacity:.45}
.fb-p-head{text-align:center;margin-bottom:14px}
.fb-p-list{list-style:none;padding:0;margin:0;columns:2;column-gap:28px}
.fb-p-list li{display:flex;align-items:center;gap:10px;break-inside:avoid;padding:6px 0;border-bottom:1px dashed #c9c1b3;font-size:14px;line-height:1.3}
.fb-p-list i{flex:none;display:grid;place-items:center;width:18px;height:18px;border:1.5px solid #555;border-radius:4px;font:normal 700 13px/1 'DM Sans','DM Sans Fallback',sans-serif}
.fb-print.is-long .fb-p-list li{padding:4px 0;font-size:12.5px}
.fb-p-list li::after{content:"";flex:none;align-self:flex-end;width:72px;margin-left:auto;border-bottom:1px solid currentColor;opacity:.3}.fb-print.is-long .fb-p-list li::after{width:40px}
.fb-design-pumpkin{background:#fff6ea;color:#4a2412}.fb-design-pumpkin .fb-p-kicker{color:#e4632e}.fb-design-pumpkin .fb-p-list li{border-bottom-color:#f0c9a4}.fb-design-pumpkin .fb-p-list i{border-color:#e4632e;color:#e4632e;border-radius:50%}
.fb-design-minimal .fb-p-head{text-align:left;border-bottom:2px solid #172033;padding-bottom:8px}.fb-design-minimal .fb-p-kicker{color:#172033}
.fb-design-leaves{background:#f6f1e1;color:#2f3a22}.fb-design-leaves .fb-p-kicker{color:#b5461f}.fb-design-leaves .fb-p-head h2{font-style:italic}.fb-design-leaves .fb-p-list li{border-bottom:1px solid #cfc59f}.fb-design-leaves .fb-p-list i{border-color:#5f6b48;color:#b5461f}
@media(max-width:860px){.wa-app,.fb-app{grid-template-columns:1fr}}
@media(max-width:560px){.wa-output,.fb-output{padding:16px}.wa-head .tool-actions,.fb-output .tool-actions{width:100%}.wa-head .tool-actions .button,.fb-output .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}.wa-grid{gap:3px}.wa-cell{min-height:38px;border-radius:7px}.wa-num{font-size:10.5px}.wa-day{padding:10px}.print-preview{padding:0 10px}.wa-print,.fb-print{padding:12px}.wa-p-rules,.fb-p-list{columns:1}.wa-p-boxes i{width:9px;height:9px;font-size:0}}
@media print{
.wa-app>:not(.print-preview),.fb-app>:not(.print-preview),.print-preview>summary{display:none!important}
.print-preview{display:block;border:0;padding:0;margin:0;background:none}
.wa-print,.fb-print{max-width:none;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.wa-p-rules{columns:2}.fb-p-list{columns:2}.wa-p-boxes i{width:13px;height:13px;font-size:7px}
.wa-p-grid tr{break-inside:avoid}
.fb-design-pumpkin,.fb-design-leaves,.wa-design-cozy{padding:10px 14px}
.fb-p-head h2{font-size:40px}
.fb-print:not(.is-long) .fb-p-list{columns:auto}.fb-print:not(.is-long) .fb-p-list li{padding:7px 0;font-size:16px}
.wa-p-boxes{flex-wrap:nowrap}.wa-p-boxes i{flex:0 1 13px;min-width:8px}
}
/* Meditation breathing */
.med-switch{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:4px;max-width:440px;padding:4px;border-radius:16px;background:#f4efe6;border:1px solid #eee4d5}
.med-switch button{min-height:44px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font-weight:700;font-size:15px}
.med-switch button[aria-selected=true]{background:#fff;color:#12367f;box-shadow:0 2px 8px #1720331a}
.med-switch button:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.med-app [hidden]{display:none!important}
.breath-stage{position:relative;width:min(280px,74vw);aspect-ratio:1;margin:10px auto 4px}
.breath-guide{position:absolute;inset:0;border-radius:50%;border:2px dashed #d7cdbd;display:grid;place-items:center}
.breath-panel[data-pattern=box] .breath-guide{border-radius:18%}
.breath-shape{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle at 38% 34%,#dbe8ff 0,#a9c4f2 62%,#7fa6e8 100%);transform:scale(.42);transform-origin:center;will-change:transform}
.breath-panel[data-pattern=box] .breath-shape{border-radius:18%}
.breath-panel[data-phase=hold] .breath-shape,.breath-panel[data-phase=rest] .breath-shape{background:radial-gradient(circle at 38% 34%,#fff0d5 0,#ffd3b0 62%,#f5a877 100%)}
.breath-readout{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:2px;text-align:center;pointer-events:none}
.breath-readout strong{font:600 clamp(24px,7vw,32px)/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.breath-count{font:600 clamp(40px,12vw,56px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#12367f;font-variant-numeric:tabular-nums;min-height:1em}
.breath-progress{margin:6px 0 2px;font-size:14px;color:#526170;font-variant-numeric:tabular-nums}
.breath-presets{margin-bottom:6px}
.breath-panel .tool-note{text-align:center}
.breath-custom-note{margin:6px 0 0}
.breath-panel [data-breath-reset]{min-height:44px;padding:0 12px}
.breath-panel .pomo-zen-btn:not([aria-pressed=true]) span{position:static;width:auto;height:auto;overflow:visible;clip:auto}
.breath-safety{margin:28px 0;padding:18px 20px;border-radius:18px;background:#fff0d5;border:1px solid #f3dcb4}
.breath-safety h2{font:700 20px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}
.breath-safety p{margin:0;line-height:1.6}
.breath-panel.is-zen{position:fixed;inset:0;z-index:1000;max-width:none;width:100%;height:100%;margin:0;border:0;border-radius:0;box-shadow:none;background:#fffdf8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));overflow:auto}
.breath-panel.is-zen>.breath-presets,.breath-panel.is-zen [data-breath-reset],.breath-panel.is-zen>[data-breath-status]{display:none}
.breath-panel.is-zen .breath-stage{width:min(62vh,86vw,560px);margin:0 auto 8px}
.breath-panel.is-zen .breath-readout strong{font-size:clamp(28px,4.5vh,44px)}
.breath-panel.is-zen .breath-count{font-size:clamp(56px,11vh,110px)}
.breath-panel.is-zen .meditation-actions{width:min(460px,100%)}
.breath-panel.is-zen .meditation-actions .button{flex:1 1 0;min-height:54px}
@media(prefers-reduced-motion:reduce){.breath-shape{transform:scale(.72)!important}}
@media(max-width:640px){.med-switch{max-width:none}.med-switch button{font-size:14px}.breath-stage{width:min(236px,66vw);margin:6px auto 2px}.breath-panel .meditation-actions{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8px}.breath-panel .meditation-actions .button{min-width:0;width:100%;padding:0 10px}.breath-panel .meditation-actions [data-breath-reset]{grid-column:1/-1;justify-self:center}.breath-custom{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.med-switch,.breath-safety{display:none!important}}
/* Tools hub */
.hub-head{max-width:820px;margin-bottom:18px}
.hub-head h1{font:700 clamp(32px,4vw,48px)/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-1.2px;margin:8px 0 12px}
.hub-head .tool-lede{font-size:17px;color:#3e4a56}
.hub-controls{display:grid;gap:12px;margin:0 0 6px}
.hub-search{display:flex;align-items:center;gap:8px;width:min(100%,560px);padding:4px 6px 4px 14px;border:1.5px solid #ddd3c4;border-radius:16px;background:#fff}
.hub-search[hidden]{display:none}
.hub-search:focus-within{border-color:#1550b8;box-shadow:0 0 0 3px #1550b826}
.hub-search input{flex:1;min-width:0;height:44px;border:0;outline:0;background:transparent;color:#172033;font-size:16px}
.hub-search input::-webkit-search-cancel-button{display:none}
.hub-clear{min-height:44px;padding:0 10px;text-decoration:underline}
.hub-clear[hidden]{display:none}
.hub-jump{display:flex;flex-wrap:wrap;gap:8px}
.hub-jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:99px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}
.hub-jump a:hover{border-color:#1550b8;color:#12367f}
.hub-jump a:first-child{background:#fff0d5;border-color:#f3cf9c}
.tools-hub .tools-library-heading .text-link{min-height:44px}
.hub-count{min-height:1em;margin:4px 0 0;font-size:14px;color:#526170}
.hub-group{margin:26px 0 8px;scroll-margin-top:16px}
.hub-group[hidden],.hub-item[hidden],.hub-empty[hidden]{display:none}
.hub-group-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:12px}
.hub-group-head p{margin:0;color:#526170;font-size:15px}
.hub-group-title{font:700 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}
.hub-popular .hub-group-title{margin-bottom:12px}
.hub-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:12px}
.hub-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;align-content:start;height:100%;padding:10px 14px 10px 10px;border:1px solid #e3dac9;border-radius:16px;background:#fff;color:#172033;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s}
.hub-card:hover{border-color:#1550b8;transform:translateY(-2px);box-shadow:0 8px 18px #1720331a}
.hub-thumb{display:block;width:96px;aspect-ratio:3/2;border-radius:11px;overflow:hidden;background:#f4efe6}
.hub-thumb img{width:100%;height:100%;object-fit:cover}
.hub-thumb-mark{display:grid;place-items:center;width:100%;height:100%;background:#fff0d5}
.hub-thumb-mark img{width:34px;height:34px}
.hub-card-body{display:grid;gap:3px;min-width:0}
.hub-card-body strong{font:700 17px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.hub-card-body span{font-size:14px;line-height:1.45;color:#4b5565}
.hub-grid-popular{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}
.hub-item.is-big .hub-card{grid-template-columns:1fr;align-items:start;padding:10px 10px 14px;background:#fffaf1;border-color:#f0dfc2}
.hub-item.is-big .hub-thumb{width:100%;aspect-ratio:16/9}
.hub-item.is-big .hub-card-body{padding:0 4px}
.hub-empty{margin:18px 0;padding:16px 18px;border-radius:14px;background:#f4efe6}
.hub-empty a{color:#1550b8;font-weight:700}
.tools-hub .app-hook{margin:40px 0 10px}
.hub-faqs{max-width:820px}
@media(max-width:640px){.hub-head .tool-lede{font-size:15px;line-height:1.5}.hub-jump{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 4px}.hub-jump::-webkit-scrollbar{display:none}.hub-jump a{flex:none}.hub-grid-popular{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hub-item.is-big .hub-card-body span{font-size:13px}.hub-item.is-big .hub-card-body strong{font-size:15.5px}.hub-card{grid-template-columns:80px minmax(0,1fr);gap:12px}.hub-thumb{width:80px}.hub-group-title{font-size:23px}}
@media print{.hub-controls,.hub-count{display:none!important}}
/* App hook */
.app-hook{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:18px;align-items:center;margin:0 0 44px;padding:20px 24px;border-radius:22px;background:#e7f0ff;border:1px solid #cfdcf5}
.app-hook-icon{width:56px;height:56px;border-radius:14px;box-shadow:0 4px 12px #17203322}
.app-hook-kicker{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#b04a1f}
.app-hook-title{font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;margin:0 0 4px;color:#172033}
.app-hook-text{margin:0;font-size:15px;line-height:1.5;color:#3e4a56;max-width:620px}
.app-hook-button{white-space:nowrap}
.tool-plan-link{margin:16px 0 0;font-size:15px}
.tool-plan-link a{color:#1550b8;font-weight:700}
@media(max-width:760px){.app-hook{grid-template-columns:44px minmax(0,1fr);gap:12px 14px;padding:16px}.app-hook-icon{width:44px;height:44px;border-radius:11px}.app-hook-title{font-size:19px}.app-hook-text{font-size:14px}.app-hook-button{grid-column:1/-1;width:100%;min-height:48px;white-space:normal;text-align:center}}
@media print{.app-hook{display:none!important}}

/* Online timer (/timer/) */
.tm-page .tool-head{margin-bottom:18px}
.tm-app{max-width:780px;margin:0 0 40px}
.tm-panel{background:#ffffff;border:1px solid #eee4d5;border-radius:24px;padding:22px 22px 18px;box-shadow:0 10px 30px #173f9812;display:flex;flex-direction:column;align-items:stretch}
.tm-face{position:relative;width:min(270px,64vw,40vh);aspect-ratio:1;margin:0 auto 14px}
.tm-ring,.tm-disk{width:100%;height:100%;transform:rotate(-90deg);display:block}
.tm-ring circle{fill:none;stroke-width:9}
.tm-ring-track{stroke:#eee4d5}
.tm-ring-bar{stroke:#1550b8;stroke-linecap:round;transition:stroke-dashoffset .2s linear,stroke .4s}
.tm-panel[data-stage=close] .tm-ring-bar{stroke:#e4632e}
.tm-disk{display:none}
.tm-disk-bg{fill:#f6f1e8;stroke:#eee4d5;stroke-width:4}
.tm-disk-wedge{fill:none;stroke-width:96;stroke:#2f8a5b;transition:stroke-dashoffset .2s linear,stroke .6s}
.tm-panel[data-stage=half] .tm-disk-wedge{stroke:#f2b63c}
.tm-panel[data-stage=close] .tm-disk-wedge{stroke:#e4632e}
.tm-disk-pin{fill:#172033}
.tm-readout{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:6px}
.tm-readout strong{font:600 clamp(48px,15vw,74px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums;letter-spacing:-1px}
.tm-panel[data-long=true] .tm-readout strong{font-size:clamp(36px,11vw,54px)}
.tm-readout span{font-size:14px;font-weight:700;color:#526170;text-transform:uppercase;letter-spacing:.1em}
.tm-panel[data-state=ringing] .tm-readout span,.tm-panel[data-state=done] .tm-readout span{color:#c2410c}
.tm-panel[data-state=ringing] .tm-face{animation:tm-pulse 1s ease-in-out infinite}
@keyframes tm-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@media (prefers-reduced-motion:reduce){.tm-panel[data-state=ringing] .tm-face{animation:none}.tm-ring-bar,.tm-disk-wedge{transition:none}}
.tm-panel.is-kids .tm-ring{display:none}
.tm-panel.is-kids .tm-disk{display:block;height:auto;aspect-ratio:1}
.tm-panel.is-kids .tm-face{aspect-ratio:auto}
.tm-panel.is-kids .tm-readout{position:static;margin-top:10px;gap:2px}
.tm-panel.is-kids .tm-readout strong{font-size:clamp(34px,9vw,46px)}
.tm-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.tm-actions .button{min-height:50px;padding:0 18px}
.tm-start{min-width:170px;font-size:17px}
.tm-panel[data-state=ringing] .tm-start{background:#e4632e;color:#ffffff}
.tm-full-btn{gap:8px}
.tm-status{margin:12px 0 0;text-align:center;font-size:14px;color:#526170;min-height:20px}
.tm-set{margin:18px 0 0;padding-top:16px;border-top:1px solid #eee4d5}
.tm-set label{display:block;font-weight:700;font-size:14px;margin:0 0 6px}
.tm-set-row{display:flex;gap:8px}
.tm-set-row input{flex:1 1 auto;min-width:0;min-height:48px;padding:10px 14px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font-size:17px}
.tm-set-row input:focus{border-color:#1550b8;outline:none}
.tm-set-row input[aria-invalid=true]{border-color:#c2410c}
.tm-set-row .button{min-height:48px;padding:0 20px}
.tm-hint{margin:6px 0 0;font-size:13px;color:#5b6475}
.tm-hint.is-error{color:#c2410c;font-weight:700}
.tm-presets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.tm-presets a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:66px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:999px;background:#fffdf8;color:#172033;font-weight:700;font-size:14px;text-decoration:none;font-variant-numeric:tabular-nums}
.tm-presets a:hover{border-color:#1550b8}
.tm-presets a.is-on{border-color:#1550b8;background:#e7f0ff;color:#12367f;box-shadow:inset 0 0 0 1px #1550b8}
.tm-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:16px 0 0;padding-top:14px;border-top:1px solid #eee4d5}
.tm-field{display:grid;gap:6px;font-size:14px;font-weight:700}
.tm-field select{min-height:44px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font-weight:600}
.tm-volume input{width:100%;min-height:44px;accent-color:#1550b8}
.tm-check{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;font-size:15px;cursor:pointer}
.tm-check input{width:22px;height:22px;accent-color:#1550b8;flex:none}
.tm-check small{font-weight:500;color:#5b6475}
.tm-option-buttons{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 18px}
.tm-option-buttons .text-button{min-height:44px;text-decoration:underline;text-underline-offset:3px}
.tm-options>.tm-hint{grid-column:1/-1;margin-top:-6px}
.tm-keys{margin:12px 0 0;font-size:13px;color:#5b6475;text-align:center}
.tm-keys kbd{display:inline-block;min-width:22px;padding:2px 6px;border:1px solid #d8cfc0;border-bottom-width:2px;border-radius:6px;background:#fffdf8;color:#172033;font:700 12px/1.2 'DM Sans','DM Sans Fallback',sans-serif}
@media(hover:none){.tm-keys{display:none}}
/* The short-answer label keeps its small caps inside tool content (.tool-content h2 would win otherwise) */
.tool-content .direct-answer h2{margin:0 0 8px;font:700 13px/1.2 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:1.6px;text-transform:uppercase}
.tm-fits{padding-left:20px}
.tm-fits li{margin:0 0 10px;line-height:1.6}
.tm-plan{margin:28px 0}
.tm-length-table td:first-child{white-space:nowrap;font-weight:700}
html.tm-full-open,html.tm-full-open body{overflow:hidden}
.tm-panel.is-full{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;box-shadow:none;background:#fffdf8;justify-content:center;align-items:center;padding:20px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto}
.tm-panel.is-full>.tm-set,.tm-panel.is-full>.tm-presets,.tm-panel.is-full>.tm-options,.tm-panel.is-full>.tm-keys{display:none}
.tm-panel.is-full .tm-face{width:min(64vh,88vw,620px);margin-bottom:18px}
.tm-panel.is-full .tm-readout strong{font-size:clamp(64px,min(15vh,20vw),170px)}
.tm-panel.is-full[data-long=true] .tm-readout strong{font-size:clamp(48px,min(11vh,14vw),130px)}
.tm-panel.is-full.is-kids .tm-face{width:min(56vh,86vw,560px)}
.tm-panel.is-full.is-kids .tm-readout strong{font-size:clamp(40px,7vh,72px)}
.tm-panel.is-full .tm-actions{width:min(560px,100%)}
@media(max-width:600px){
  .tm-panel{padding:16px 14px 14px;border-radius:20px}
  .tm-page .tool-head{margin:4px 0 12px}
  .tm-page .tool-head .eyebrow{display:none}
  .tm-page .tool-lede{font-size:15px}
  .tm-face{margin-bottom:10px}
  .tm-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tm-actions .tm-start{grid-column:1/-1;min-width:0}
  .tm-actions .button{padding:0 8px;min-width:0}
  .tm-full-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .tm-panel.is-full .tm-full-btn span{position:static;width:auto;height:auto;clip:auto}
  .tm-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .tm-presets a{min-width:0;padding:0 4px;font-size:13px}
  .tm-options{grid-template-columns:1fr}
}
@media(max-width:600px) and (max-height:600px){.tm-page .tool-lede{display:none}}
@media print{.tm-app{display:none}}

/* Weekly planner */
/* /tools/weekly-planner/: options panel, a fill-in sheet in three layouts and five designs, one-page print and blank print.
   The sheet is a print preview, so it keeps its paper colors in dark mode (see KEEP_SELECTORS in content/darkcss.py). */
.wk-app{display:grid;grid-template-columns:282px minmax(0,1fr);gap:22px;align-items:start;margin-bottom:46px}
.wk-controls{position:sticky;top:14px;display:grid;gap:12px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.wk-field{border:0;margin:0;padding:0;min-width:0}
.wk-field legend,.wk-legend{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 6px;padding:0}
.wk-seg{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;background:#f4efe6;padding:3px;gap:3px}
.wk-seg-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wk-seg label{position:relative;min-width:0}
.wk-seg input,.wk-design input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.wk-seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;border-radius:9px;font-size:14px;font-weight:700;line-height:1.1;color:#3e4a56;cursor:pointer;text-align:center;padding:2px 4px}
.wk-seg small{font-size:10.5px;font-weight:600;color:#6b7683}
.wk-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.wk-seg input:focus-visible+span,.wk-design input:focus-visible+.wk-swatch{outline:3px solid #e4632e;outline-offset:2px}
.wk-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wk-actions .button{width:100%;min-height:46px;margin:0;padding:0 10px;white-space:nowrap}
.wk-status{margin:0;font-size:13px;line-height:1.45;color:#526170}
.wk-status:empty{display:none}
.wk-more{border-top:1px solid #eee4d5;padding-top:4px}
.wk-more summary{display:flex;align-items:center;min-height:44px;font-weight:700;font-size:14px;color:#12367f;cursor:pointer;list-style:none}
.wk-more summary::-webkit-details-marker{display:none}
.wk-more summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:600}
.wk-more[open] summary::after{content:"−"}
.wk-more-body{display:grid;gap:12px;padding-top:4px}
.wk-design-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.wk-design{position:relative;display:grid;justify-items:center;gap:4px;cursor:pointer;font-size:11px;font-weight:700;line-height:1.15;text-align:center;color:#3e4a56;min-width:0}
.wk-swatch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%;height:44px;padding:5px;border-radius:10px;border:2px solid #e3dccf;box-sizing:border-box;background:#fff}
.wk-swatch i{border-radius:3px;min-width:0}
.wk-design input:checked+.wk-swatch{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8}
.wk-swatch-warm{background:#fffdf8}.wk-swatch-warm i:nth-child(1){background:#e7f0ff}.wk-swatch-warm i:nth-child(2){background:#fff0d5}.wk-swatch-warm i:nth-child(3){background:#edf5c6}
.wk-swatch-classic i{border:1px solid #111111;border-radius:0;border-top-width:3px}
.wk-swatch-pastel i:nth-child(1){background:#fde8ef}.wk-swatch-pastel i:nth-child(2){background:#f4e8ff}.wk-swatch-pastel i:nth-child(3){background:#daf3e8}
.wk-swatch-bold i{background:#ffffff;border:1px solid #d5dae0;border-top:6px solid #1550b8}.wk-swatch-bold i:nth-child(2){border-top-color:#e4632e}.wk-swatch-bold i:nth-child(3){border-top-color:#1f8a5b}
.wk-swatch-inksaver i{border:1.5px solid #000000;border-radius:0}
.wk-field-row{display:grid;gap:12px}
.wk-weekof-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.wk-weekof-row input,.wk-hours select,.wk-image select{height:44px;border:1px solid #c9d6ea;border-radius:12px;background:#fff;color:#172033;font:inherit;font-size:14px;padding:0 8px;min-width:0;width:100%;box-sizing:border-box}
.wk-weekof-row .button{min-height:44px;margin:0;padding:0 12px;font-size:13px;white-space:nowrap}
.wk-hours[hidden]{display:none}
.wk-hours-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wk-hours-row label{display:grid;gap:2px;font-size:12px;font-weight:700;color:#526170}
.wk-hours-row .wk-seg{grid-column:1/-1}
.wk-image{display:grid}
.wk-presets{display:flex;flex-wrap:wrap;gap:6px}
.wk-presets .chip{min-height:44px;font-size:14px}
.wk-more-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.wk-more-actions .button{min-height:44px;margin:0}
.wk-more-actions .text-button{min-height:44px;text-decoration:underline}
.wk-hint{margin:0;font-size:12.5px;color:#526170}
.wk-stage{min-width:0}
.wk-next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:16px;padding:16px 18px;border-radius:18px;background:#e7f0ff}
.wk-next p{margin:0;flex:1 1 320px;font-size:15px;line-height:1.5;color:#26344a}
.wk-next .button{margin:0}

/* The sheet: design tokens, weekday colors, then shared layout */
.wk-sheet{--bg:#fffdf8;--ink:#172033;--muted:#6b7683;--line:#ddd3c4;--accent:#e4632e;--box:#1550b8;--card:#ffffff;--card-bd:#eee4d5;--radius:12px;--title:'Fraunces','Fraunces Fallback',Georgia,serif;--wkbg:#fff6e6;--hd-ink:var(--ink);color-scheme:light}
.wk-sheet [data-wd="0"]{--tint:#fde8ef;--band:#d6336c}.wk-sheet [data-wd="1"]{--tint:#e7f0ff;--band:#1550b8}.wk-sheet [data-wd="2"]{--tint:#fff0d5;--band:#e4632e}.wk-sheet [data-wd="3"]{--tint:#edf5c6;--band:#1f8a5b}.wk-sheet [data-wd="4"]{--tint:#f4e8ff;--band:#7a45b2}.wk-sheet [data-wd="5"]{--tint:#daf3e8;--band:#0f7c8c}.wk-sheet [data-wd="6"]{--tint:#ffe8d9;--band:#172033}
.wk-sheet[data-design="classic"]{--bg:#ffffff;--ink:#111111;--muted:#555555;--line:#9a9a9a;--accent:#111111;--box:#111111;--card-bd:#111111;--radius:0;--wkbg:#ffffff}
.wk-sheet[data-design="pastel"]{--bg:#ffffff;--ink:#2b3440;--muted:#6b7683;--line:#c9cfd8;--accent:#7a45b2;--box:#7a45b2;--card-bd:transparent;--radius:16px;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif;--wkbg:#f4f5f7}
/* Header fill per weekday: custom properties that use var() must be set where --tint/--band exist */
.wk-sheet [data-wd]{--hd:var(--tint)}
.wk-sheet[data-design="classic"] [data-wd],.wk-sheet[data-design="pastel"] [data-wd],.wk-sheet[data-design="inksaver"] [data-wd]{--hd:transparent}
.wk-sheet[data-design="bold"] [data-wd]{--hd:var(--band)}
.wk-sheet[data-design="pastel"] .wk-day{--card:var(--tint)}
.wk-sheet[data-design="bold"]{--bg:#ffffff;--ink:#172033;--muted:#5b6673;--line:#c3cad3;--accent:#1550b8;--box:#1550b8;--card-bd:#d5dae0;--radius:10px;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif;--wkbg:#f4f6f9;--hd-ink:#ffffff}
.wk-sheet[data-design="bold"] .wk-day{--accent:var(--band);--box:var(--band)}
.wk-sheet[data-design="inksaver"]{--bg:#ffffff;--ink:#000000;--muted:#000000;--line:#000000;--accent:#000000;--box:#000000;--card-bd:#000000;--radius:0;--wkbg:#ffffff}

.wk-sheet{background:var(--bg);color:var(--ink);border-radius:18px;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;padding:18px 20px 12px;print-color-adjust:exact;-webkit-print-color-adjust:exact;min-width:0}
.wk-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;margin:0 0 12px}
.wk-sheet .wk-title{font:700 30px/1.15 var(--title);letter-spacing:-.02em;border:0;border-bottom:1px dashed transparent;background:transparent;color:var(--ink);padding:2px 0;min-width:0;width:100%;border-radius:0}
.wk-sheet .wk-title:hover{border-bottom-color:var(--line)}
.wk-sheet[data-design="bold"] .wk-title{font-weight:800}
.wk-when{display:flex;align-items:center;gap:4px}
.wk-sheet .wk-nav{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;padding:0 0 3px}
.wk-sheet .wk-nav:hover{border-color:var(--box);color:var(--box)}
.wk-range{margin:0;min-width:148px;text-align:center;font-size:14px;font-weight:800;line-height:1.25;color:var(--ink)}
.wk-weekno{display:block;font-size:11px;font-weight:700;color:var(--muted)}
.wk-range-blank{display:none}
.wk-focus{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-width:0}
.wk-focus>span{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.wk-sheet .wk-in{display:block;width:100%;min-width:0;box-sizing:border-box;height:28px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);font:500 13px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;padding:3px 2px}
.wk-sheet .wk-focus .wk-in{font-weight:700;font-size:14px}
.wk-sheet .wk-in:focus,.wk-sheet textarea:focus{outline:2px solid var(--box);outline-offset:1px;border-radius:3px}
.wk-sheet .wk-lined{background:repeating-linear-gradient(transparent 0 21px,var(--line) 21px 22px)}
.wk-sheet textarea{appearance:none;-webkit-appearance:none;display:block;width:100%;box-sizing:border-box;resize:none;border:0;border-radius:0;color:var(--ink);font:500 12.5px/22px 'DM Sans','DM Sans Fallback',system-ui,sans-serif;padding:0 2px;background:transparent;height:44px;overflow:hidden}
.wk-sheet .wk-notes{height:66px}
.wk-sheet input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex:none;width:15px;height:15px;margin:0;border:1.5px solid var(--box);border-radius:3px;background:transparent center/85% no-repeat;cursor:pointer}
.wk-sheet input[type="checkbox"]:checked{background-color:var(--box);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.wk-sheet[data-design="inksaver"] input[type="checkbox"]:checked,.wk-sheet[data-design="classic"] input[type="checkbox"]:checked{background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.wk-sheet input[type="checkbox"]:focus-visible{outline:2px solid #e4632e;outline-offset:2px}
.wk-sheet .wk-daynav{display:none}

/* Planner and Minimal: day boxes plus a week box */
.wk-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.wk-sheet .wk-day{background:var(--card);border:1px solid var(--card-bd);border-radius:var(--radius);padding:6px 9px 9px;min-width:0}
.wk-sheet .wk-dayname{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin:0 0 2px;padding:4px 7px;border-radius:calc(var(--radius) * .6);background:var(--hd);color:var(--hd-ink);font:700 16px/1.2 var(--title)}
.wk-sheet[data-design="classic"] .wk-dayname{padding:3px 0 4px;border-bottom:2px solid #111111;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.wk-sheet[data-design="inksaver"] .wk-dayname{padding:3px 0;border-bottom:1.5px solid #000000}
.wk-sheet[data-design="pastel"] .wk-dayname{padding:3px 0;font-size:15px;font-weight:800}
.wk-sheet .wk-date{font:700 11px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--muted);white-space:nowrap}
.wk-sheet[data-design="bold"] .wk-dayname .wk-date{color:#ffffff}
.wk-sheet .wk-label{margin:5px 0 0;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.wk-sheet .wk-top,.wk-sheet .wk-todo,.wk-sheet .wk-lines,.wk-sheet .wk-ticks{list-style:none;padding:0;margin:0}
.wk-sheet .wk-top{counter-reset:wk}
.wk-sheet .wk-top li,.wk-sheet .wk-todo li{display:flex;align-items:center;gap:5px;min-width:0}
.wk-sheet .wk-top li::before{counter-increment:wk;content:counter(wk);flex:none;width:9px;font-size:11px;font-weight:800;color:var(--accent)}
.wk-sheet .wk-check{display:inline-grid;place-items:center;flex:none;width:18px;height:28px;cursor:pointer}
.wk-sheet .wk-week{background:var(--wkbg);border:1px solid var(--card-bd);border-radius:var(--radius);padding:8px 10px 10px;min-width:0}
.wk-sheet[data-design="classic"] .wk-week,.wk-sheet[data-design="inksaver"] .wk-week{border-style:dashed}
.wk-sheet .wk-habit-name{font-weight:700}
.wk-sheet .wk-ticks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:4px 0 2px}
.wk-sheet .wk-tick{display:grid;justify-items:center;align-content:center;gap:2px;min-height:44px;cursor:pointer;font-size:10px;font-weight:800;color:var(--muted)}
.wk-sheet .wk-tick input[type="checkbox"]{width:20px;height:20px;border-radius:5px}
.wk-sheet[data-layout="minimal"] .wk-dayname{margin-bottom:4px}
.wk-sheet[data-layout="minimal"] .wk-lines .wk-in{height:30px}

/* Schedule: an hourly grid, then the week box in two columns */
.wk-sheet[data-layout="hourly"] .wk-body{display:block}
.wk-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.wk-sheet .wk-grid{width:100%;min-width:620px;border-collapse:collapse;table-layout:fixed;color:var(--ink)}
.wk-sheet .wk-grid th,.wk-sheet .wk-grid td{border-bottom:1px solid var(--line);padding:0}
.wk-sheet .wk-grid thead th{padding:4px 2px 5px;text-align:center;font:700 13px/1.15 var(--title);background:var(--hd);color:var(--hd-ink);border:0;border-left:3px solid var(--bg)}
.wk-sheet .wk-grid thead th .wk-date{display:block;margin-top:1px}
.wk-sheet[data-design="bold"] .wk-grid thead .wk-date{color:#ffffff}
.wk-sheet[data-design="classic"] .wk-grid thead th,.wk-sheet[data-design="inksaver"] .wk-grid thead th{border-bottom:2px solid #000000;border-left:0;text-transform:uppercase;font-size:11.5px;letter-spacing:.06em}
.wk-sheet .wk-grid thead th:first-child{background:transparent;border:0}
.wk-sheet .wk-grid .wk-time{width:50px;text-align:right;padding:0 6px 0 0;font:700 10.5px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--muted);white-space:nowrap;background:transparent}
.wk-sheet .wk-grid td{border-left:1px solid var(--line)}
.wk-sheet .wk-grid tr:has(+ tr.is-half) td,.wk-sheet .wk-grid tr:has(+ tr.is-half) th{border-bottom-style:dotted}
.wk-sheet .wk-grid tr.is-half .wk-time{font-weight:600;font-size:9.5px}
.wk-sheet .wk-grid .wk-in{border:0;height:27px;font-size:12px;padding:2px 4px}
.wk-sheet .wk-grid .wk-in:not(:placeholder-shown){background:var(--tint);font-weight:600;border-radius:3px}
.wk-sheet[data-design="classic"] .wk-grid .wk-in:not(:placeholder-shown),.wk-sheet[data-design="inksaver"] .wk-grid .wk-in:not(:placeholder-shown){background:transparent;font-weight:700}
.wk-sheet[data-layout="hourly"] .wk-week{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 18px;margin-top:10px}
.wk-sheet .wk-credit{margin:8px 0 0;text-align:right;font-size:10.5px;color:var(--muted)}

@media(max-width:1080px){.wk-app{grid-template-columns:250px minmax(0,1fr)}.wk-design-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .wk-app{grid-template-columns:1fr;gap:12px}
  .wk-controls{position:static;padding:12px;gap:10px;border-radius:18px}
  .wk-design-list{grid-template-columns:repeat(5,minmax(0,1fr))}
  .wk-field-row{grid-template-columns:1fr 1fr;gap:10px}
  .wk-body{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px),(pointer:coarse){
  .wk-sheet .wk-in{height:44px;font-size:16px}
  .wk-sheet .wk-grid .wk-in{height:44px;font-size:14px}
  .wk-sheet .wk-check{width:44px;height:44px;margin-left:-13px;margin-right:-10px}
  .wk-sheet input[type="checkbox"]{width:20px;height:20px}
  .wk-sheet textarea{font-size:16px;line-height:28px;height:56px}
  .wk-sheet .wk-lined{background:repeating-linear-gradient(transparent 0 27px,var(--line) 27px 28px)}
  .wk-sheet .wk-notes{height:84px}
}
@media screen and (max-width:700px){
  .wk-controls{gap:8px}
  .wk-field legend,.wk-legend{font-size:10.5px;margin-bottom:4px}
  .wk-seg span{font-size:13px}
  .wk-field-row{grid-template-columns:1fr}
  .wk-design{font-size:10px}
  .wk-swatch{height:38px}
  .wk-sheet{padding:12px 10px 10px;border-radius:14px}
  .wk-head{gap:4px 6px;margin-bottom:8px}
  .wk-sheet .wk-title{font-size:22px;height:44px}
  .wk-when{gap:2px}
  .wk-range{min-width:0;font-size:12.5px}
  .wk-weekno{display:none}
  .wk-focus{gap:8px}
  .wk-sheet .wk-daynav{display:flex;gap:4px;overflow-x:auto;margin:0 0 10px;padding-bottom:2px}
  .wk-sheet .wk-daybtn{flex:1 0 auto;min-width:44px;min-height:44px;padding:0 4px;border-radius:10px;border:1px solid var(--line);background:#ffffff;color:var(--ink);font:700 13px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
  .wk-sheet .wk-daybtn[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
  .wk-body{grid-template-columns:1fr}
  .wk-sheet[data-focus="one"] .wk-day:not(.is-current){display:none}
  .wk-sheet[data-focus="one"] .wk-grid [data-wd]:not(.is-current){display:none}
  .wk-sheet[data-focus="one"] .wk-grid{min-width:0}
  .wk-sheet[data-focus="one"] .wk-grid .wk-time{width:60px}
  .wk-sheet[data-layout="hourly"] .wk-week{grid-template-columns:1fr}
  .wk-next{padding:14px}
  .wk-next .button{width:100%}
}
@media screen and (max-width:360px){
  .wk-head{grid-template-columns:1fr}
  .wk-when{justify-content:space-between}
  .wk-range{flex:1}
  .wk-focus{flex-direction:column;align-items:stretch;gap:0}
}

/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page wk-letter-landscape{size:letter landscape;margin:10mm}
@page wk-letter-portrait{size:letter portrait;margin:10mm}
@page wk-a4-landscape{size:A4 landscape;margin:10mm}
@page wk-a4-portrait{size:A4 portrait;margin:10mm}
@media print{
  body:has(.wk-app)>:not(main){display:none!important}
  main:has(.wk-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.wk-app)>:not(.wk-app){display:none!important}
  .wk-app{display:block;margin:0}
  .wk-controls,.wk-next,.wk-sheet .wk-daynav,.wk-sheet .wk-nav{display:none!important}
  .wk-sheet{border:0;border-radius:0;box-shadow:none;padding:0;display:flex;flex-direction:column;height:var(--ph);overflow:hidden;break-inside:avoid}
  .wk-sheet[data-paper="letter"][data-orient="landscape"]{page:wk-letter-landscape;--ph:194mm}
  .wk-sheet[data-paper="letter"][data-orient="portrait"]{page:wk-letter-portrait;--ph:257mm}
  .wk-sheet[data-paper="a4"][data-orient="landscape"]{page:wk-a4-landscape;--ph:188mm}
  .wk-sheet[data-paper="a4"][data-orient="portrait"]{page:wk-a4-portrait;--ph:275mm}
  .wk-sheet ::placeholder{color:transparent}
  .wk-head{margin:0 0 3mm;gap:1mm 6mm}
  .wk-sheet .wk-title{font-size:20pt;height:auto;padding:0}
  .wk-range{font-size:10pt;min-width:0;text-align:right}
  .wk-weekno{font-size:7.5pt}
  .wk-sheet .wk-in{height:auto;min-height:0;font-size:8.5pt;padding:0 .5mm}
  .wk-sheet .wk-focus .wk-in{font-size:9.5pt}
  .wk-sheet .wk-label{font-size:6.5pt;margin-top:1mm}
  .wk-sheet .wk-dayname{font-size:11pt;padding:.8mm 2mm}
  .wk-sheet .wk-date{font-size:7.5pt}
  .wk-body{flex:1 1 auto;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:3mm}
  .wk-sheet[data-orient="portrait"] .wk-body{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}
  .wk-sheet .wk-day,.wk-sheet .wk-week{display:flex!important;flex-direction:column;min-height:0;overflow:hidden;padding:1.5mm 2.5mm 2mm}
  .wk-sheet .wk-grid [data-wd]{display:table-cell!important}
  .wk-sheet .wk-top,.wk-sheet .wk-todo,.wk-sheet .wk-lines{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
  .wk-sheet .wk-top{flex-grow:3}.wk-sheet .wk-todo{flex-grow:4}.wk-sheet .wk-lines{flex-grow:7}
  .wk-sheet .wk-top li,.wk-sheet .wk-todo li,.wk-sheet .wk-lines li{flex:1 1 0;min-height:0;display:flex;align-items:stretch}
  .wk-sheet .wk-top li::before{align-self:center}
  .wk-sheet .wk-top .wk-in,.wk-sheet .wk-todo .wk-in,.wk-sheet .wk-lines .wk-in{flex:1;height:auto;align-self:stretch}
  .wk-sheet .wk-check{height:auto;width:4mm;margin:0}
  .wk-sheet input[type="checkbox"]{width:3mm;height:3mm;border-width:.3mm}
  .wk-sheet .wk-lined{background:linear-gradient(transparent 4.4mm,var(--line) 4.4mm) 0 0/100% 4.6mm repeat-y;min-height:0}
  .wk-sheet textarea,.wk-sheet .wk-notes{font-size:8pt;line-height:4.6mm;height:100%;min-height:0}
  .wk-sheet .wk-dnotes-box{flex:2.2 1 0}
  .wk-sheet .wk-wnotes{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
  .wk-sheet .wk-wnotes .wk-lined{flex:1 1 0}
  .wk-sheet .wk-tick{min-height:0;font-size:6.5pt}
  .wk-sheet .wk-tick input[type="checkbox"]{width:4.5mm;height:4.5mm}
  /* Portrait Planner and Minimal: one row per day, sections side by side, so lines stay tall enough to write on */
  .wk-sheet[data-orient="portrait"]:not([data-layout="hourly"]) .wk-body{grid-template-columns:1fr;grid-template-rows:repeat(8,minmax(0,1fr));gap:2mm}
  .wk-sheet[data-orient="portrait"]:not([data-layout="hourly"]) .wk-day{display:grid!important;grid-template-columns:25mm minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr);grid-template-rows:auto minmax(0,1fr);gap:0 4mm;padding:1.5mm 2.5mm}
  .wk-sheet[data-orient="portrait"]:not([data-layout="hourly"]) .wk-dayname{grid-column:1;grid-row:1/3;flex-direction:column;justify-content:flex-start;gap:1mm;margin:0;align-self:stretch}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-label:nth-of-type(1){grid-column:2;grid-row:1}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-top{grid-column:2;grid-row:2}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-label:nth-of-type(2){grid-column:3;grid-row:1}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-todo{grid-column:3;grid-row:2}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-label:nth-of-type(3){grid-column:4;grid-row:1}
  .wk-sheet[data-orient="portrait"] .wk-day>.wk-dnotes-box{grid-column:4;grid-row:2}
  .wk-sheet[data-orient="portrait"][data-layout="minimal"] .wk-day{grid-template-columns:25mm minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
  .wk-sheet[data-orient="portrait"][data-layout="minimal"] .wk-lines{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,minmax(0,1fr));column-gap:5mm}
  .wk-sheet[data-orient="portrait"]:not([data-layout="hourly"]) .wk-week{display:grid!important;grid-template-columns:1fr 1fr;gap:0 6mm}
  .wk-sheet[data-layout="hourly"] .wk-body{display:flex;flex-direction:column}
  .wk-sheet .wk-grid-wrap{flex:1 1 auto;min-height:0;overflow:hidden}
  .wk-sheet .wk-grid{min-width:0;height:100%}
  .wk-sheet .wk-grid thead th{font-size:9pt;padding:.8mm .5mm}
  .wk-sheet .wk-grid .wk-time{width:12mm;font-size:7pt;padding-right:1.5mm}
  .wk-sheet .wk-grid .wk-in{height:auto;font-size:7.5pt;line-height:1.1;padding:0 1mm}
  .wk-sheet[data-step="30"] .wk-grid .wk-in{font-size:7pt}
  .wk-sheet[data-layout="hourly"] .wk-week{flex:none;height:26mm;display:grid!important;grid-template-columns:1fr 1fr;gap:1mm 6mm;margin-top:2.5mm}
  .wk-sheet[data-layout="hourly"] .wk-wnotes{height:100%}
  .wk-sheet .wk-credit{margin:1.5mm 0 0;font-size:7pt}
  html.wk-blank .wk-sheet .wk-in,html.wk-blank .wk-sheet textarea{color:transparent!important}
  html.wk-blank .wk-sheet .wk-grid .wk-in{background:transparent!important}
  html.wk-blank .wk-sheet input[type="checkbox"]{background-color:transparent!important;background-image:none!important}
  html.wk-blank .wk-sheet .wk-date,html.wk-blank .wk-sheet [data-wk-range],html.wk-blank .wk-sheet .wk-weekno{display:none!important}
  html.wk-blank .wk-sheet .wk-range-blank{display:inline}
}

/* Bored guide picker */
/* /guides/what-to-do-when-bored/: one idea card, four filters and a printable checklist of every idea. */
.bp,.article-body section.bp{margin:28px 0;padding:20px;border-radius:22px;background:#e7f0ff;border:1px solid #d3e1f7}
.article-body .bp .bp-group{border:0;padding:0}
.article-body .bp p.bp-idea{font:600 22px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:0 0 10px}
.article-body .bp p.bp-count{font-size:13px;line-height:1.4;margin:8px 0 0}
.bp-head .eyebrow{color:#12367f;margin:0}
.bp-head h2{font:600 26px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;margin:6px 0 14px}
.bp-card{background:#fffdf8;border-radius:16px;padding:18px 18px 14px;box-shadow:0 8px 24px #17203314}
.bp-idea{font:600 22px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:0 0 10px;min-height:2.6em}
.bp-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0}
.bp-tags span{display:inline-block;padding:4px 10px;border-radius:99px;background:#fff0d5;color:#8a3f12;font-size:12.5px;font-weight:700}
.bp-tags span:nth-child(2){background:#daf3e8;color:#1f5f45}.bp-tags span:nth-child(3){background:#f4e8ff;color:#5b3190}.bp-tags span:nth-child(4){background:#e7f0ff;color:#12367f}
.bp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.bp-actions .button{min-height:46px;margin:0}
.bp-actions .text-link{display:inline-flex;align-items:center;min-height:44px;color:#1550b8;font-weight:700}
.bp-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 0}
.bp-filters label{display:grid;gap:3px;min-width:0}
.bp-filters label>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#3e4a56}
.bp-filters select{height:44px;min-width:0;width:100%;border:1px solid #c9d6ea;border-radius:12px;background:#fff;color:#172033;font:inherit;font-size:14px;padding:0 8px}
.bp-count{margin:8px 0 0;font-size:13px;color:#3e4a56}
.bp-list{margin-top:10px;border-top:1px solid #c9d6ea;padding-top:4px}
.bp-list summary{display:flex;align-items:center;min-height:44px;font-weight:700;color:#12367f;cursor:pointer}
.bp-print{background:#fffdf8;border-radius:14px;padding:14px 16px;margin:6px 0 12px}
.bp-print-title{font:600 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 10px;color:#172033}
.bp-groups{columns:2;column-gap:28px}
.bp-group{break-inside:avoid-column;margin:0 0 14px}
.bp-group h3{font:700 13px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#b24618;margin:0 0 6px}
.bp-group ul{list-style:none;margin:0;padding:0}
.bp-group li{display:flex;gap:8px;align-items:baseline;font-size:14px;line-height:1.4;color:#26344a;padding:3px 0;break-inside:avoid}
.bp-group small{flex:none;margin-left:auto;padding-left:6px;font-size:11px;font-weight:700;color:#6b7683;white-space:nowrap}
.bp-box{flex:none;width:11px;height:11px;border:1.5px solid #1550b8;border-radius:3px;transform:translateY(1px)}
.bp-print-foot{margin:6px 0 0;font-size:11px;color:#6b7683;text-align:right}
@media(max-width:700px){
  .bp,.article-body section.bp{padding:16px 12px;margin:22px -4px;border-radius:18px}
  .article-body .bp p.bp-idea{font-size:19px}
  .bp-head h2{font-size:22px}
  .bp-idea{font-size:19px}
  .bp-actions .button{width:100%}
  .bp-filters{grid-template-columns:1fr 1fr}
  .bp-groups{columns:1}
}
@media print{
  html.bp-printing body *:not(:has(.bp-print)):not(.bp-print):not(.bp-print *){display:none!important}
  html.bp-printing body,html.bp-printing main,html.bp-printing .article-shell,html.bp-printing article,html.bp-printing .article-body,html.bp-printing .bp,html.bp-printing .bp-list{margin:0!important;padding:0!important;border:0!important;background:#ffffff!important;box-shadow:none!important;max-width:none!important;width:auto!important}
  html.bp-printing{background:#ffffff}
  html.bp-printing .bp-print{padding:0;margin:0;background:#ffffff}
  html.bp-printing .bp-print-title{font-size:18pt;margin-bottom:3mm}
  html.bp-printing .bp-groups{columns:3;column-gap:6mm}
  html.bp-printing .bp-group{break-inside:auto;border:0!important;padding:0!important;margin:0 0 3mm!important}
  html.bp-printing .bp-group h3{break-after:avoid;margin:0 0 1mm;font-size:8.5pt}
  html.bp-printing .bp-group li{font-size:8pt;line-height:1.25;padding:.4mm 0;gap:1.5mm}
  html.bp-printing .bp-group small{font-size:6.5pt}
  html.bp-printing .bp-box{width:2.4mm;height:2.4mm;border-width:.3mm}
  html.bp-printing .bp-box{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* Online timer on wide screens: a big dial on the left, setup on the right, like the Pomodoro page */
@media(min-width:1000px){
.tm-app{max-width:none}
.tm-panel:not(.is-full){display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"face set" "face presets" "face options" "actions options" "status keys";column-gap:40px;align-items:start;padding:30px 34px 24px}
.tm-panel:not(.is-full) .tm-face{grid-area:face;width:min(400px,52vh);margin:0 auto;align-self:center}
.tm-panel:not(.is-full) .tm-readout strong{font-size:clamp(74px,7vw,104px)}
.tm-panel:not(.is-full) .tm-actions{grid-area:actions;margin-top:18px}
.tm-panel:not(.is-full) .tm-status{grid-area:status}
.tm-panel:not(.is-full) .tm-set{grid-area:set;margin-top:0;padding-top:0;border-top:0}
.tm-panel:not(.is-full) .tm-presets{grid-area:presets}
.tm-panel:not(.is-full) .tm-options{grid-area:options}
.tm-panel:not(.is-full) .tm-keys{grid-area:keys;text-align:left;align-self:end}
}
/* Breathing label stays readable when the shape is small: a soft pill behind the word */
.breath-readout strong{padding:2px 12px;border-radius:999px;background:#ffffffd9}
html[data-theme="dark"] .breath-readout strong{background:#0f1726d9;color:#e8edf6}

/* To-do list */
/* /tools/to-do-list/: tabs for several lists, a sheet in four layouts and five designs, options beside it (below on phones),
   one-page print and a blank template. The sheet is a print preview, so it keeps its paper colors in dark mode
   (see KEEP_SELECTORS in content/darkcss.py). */
.td-app{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start;margin-bottom:46px}
.td-stage{min-width:0}
.td-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.td-tab{flex:none;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid #e3dccf;background:#fff;color:#3e4a56;font-size:14px;font-weight:700;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.td-tabs .td-tab[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
.td-tab-new{border-style:dashed;color:#1550b8;background:transparent}
.td-tab[hidden]{display:none}
.td-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.td-controls{position:sticky;top:14px;display:grid;gap:12px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.td-field{border:0;margin:0;padding:0;min-width:0}
.td-field legend,.td-legend{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 6px;padding:0}
.td-seg{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;background:#f4efe6;padding:3px;gap:3px}
.td-seg label{position:relative;min-width:0}
.td-seg input,.td-design input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.td-seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border-radius:9px;font-size:14px;font-weight:700;line-height:1.1;color:#3e4a56;cursor:pointer;text-align:center;padding:3px 4px}
.td-seg small{font-size:10.5px;font-weight:600;color:#6b7683;margin-top:2px}
.td-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.td-seg input:focus-visible+span,.td-design input:focus-visible+.td-swatch{outline:3px solid #e4632e;outline-offset:2px}
.td-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.td-actions .button{width:100%;min-height:46px;margin:0;padding:0 10px;white-space:nowrap}
.td-status{margin:0;font-size:13px;line-height:1.45;color:#526170}
.td-status:empty{display:none}
.td-design-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.td-design{position:relative;display:grid;justify-items:center;gap:4px;cursor:pointer;font-size:11px;font-weight:700;line-height:1.15;text-align:center;color:#3e4a56;min-width:0}
.td-swatch{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:3px;width:100%;height:44px;padding:5px 6px;border-radius:10px;border:2px solid #e3dccf;box-sizing:border-box;background:#fff}
.td-swatch i{border-radius:3px;min-height:0;border-left:7px solid #1550b8;background:#f4efe6}
.td-design input:checked+.td-swatch{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8}
.td-swatch-warm{background:#fffdf8}.td-swatch-warm i{background:#fff0d5;border-left-color:#1550b8}
.td-swatch-classic i{background:#ffffff;border:0;border-bottom:1.5px solid #111111;border-radius:0}
.td-swatch-pastel i:nth-child(1){background:#f4e8ff;border-left-color:#7a45b2}.td-swatch-pastel i:nth-child(2){background:#e7f0ff;border-left-color:#7a45b2}.td-swatch-pastel i:nth-child(3){background:#daf3e8;border-left-color:#7a45b2}
.td-swatch-bold i{background:#1550b8;border-left:0}.td-swatch-bold i:nth-child(2){background:#e4632e}.td-swatch-bold i:nth-child(3){background:#1f8a5b}
.td-swatch-inksaver i{background:#ffffff;border:1.5px solid #000000;border-radius:0}
.td-more{border-top:1px solid #eee4d5;padding-top:4px}
.td-more summary{display:flex;align-items:center;min-height:44px;font-weight:700;font-size:14px;color:#12367f;cursor:pointer;list-style:none}
.td-more summary::-webkit-details-marker{display:none}
.td-more summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:600}
.td-more[open] summary::after{content:"−"}
.td-more-body{display:grid;gap:12px;padding-top:4px}
.td-more-body .button{min-height:44px;margin:0}
.td-image{display:grid}
.td-image select,.td-add-to{height:48px;border:1px solid #c9d6ea;border-radius:12px;background:#fff;color:#172033;font:inherit;font-size:15px;padding:0 8px;min-width:0;width:100%;box-sizing:border-box}
.td-image select{height:44px;font-size:14px}
.td-list-actions{display:flex;flex-wrap:wrap;gap:0 14px;border-top:1px solid #eee4d5;padding-top:4px}
.td-list-actions .text-button{min-height:44px;text-decoration:underline;font-size:14px}
.td-list-actions .text-button:disabled{color:#8b95a1;cursor:default;text-decoration:none}
.td-hint{margin:0;font-size:12.5px;color:#526170}
.td-keys{margin:10px 2px 0;font-size:13px;color:#526170}
.td-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:30;display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:6px 6px 6px 16px;border-radius:14px;background:#172033;color:#ffffff;font-size:14px;box-shadow:0 12px 30px #17203340}
.td-toast[hidden]{display:none}
.td-toast span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-undo{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:10px;background:#ffd166;color:#172033;font-weight:800}

/* The sheet: design tokens, then layout */
.td-sheet{--bg:#fffdf8;--ink:#172033;--muted:#6b7683;--line:#ddd3c4;--accent:#e4632e;--box:#1550b8;--head:#fff0d5;--head-ink:#172033;--card:transparent;--radius:12px;--title:'Fraunces','Fraunces Fallback',Georgia,serif;color-scheme:light}
.td-sheet[data-design="classic"]{--bg:#ffffff;--ink:#111111;--muted:#555555;--line:#9a9a9a;--accent:#111111;--box:#111111;--head:transparent;--radius:0}
.td-sheet[data-design="pastel"]{--bg:#ffffff;--ink:#2b3440;--muted:#6b7683;--line:#cfd6df;--accent:#7a45b2;--box:#7a45b2;--head:transparent;--head-ink:#7a45b2;--radius:16px;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.td-sheet[data-design="bold"]{--bg:#ffffff;--ink:#172033;--muted:#5b6673;--line:#c3cad3;--accent:#1550b8;--box:#1550b8;--head:#1550b8;--head-ink:#ffffff;--radius:10px;--title:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.td-sheet[data-design="inksaver"]{--bg:#ffffff;--ink:#000000;--muted:#000000;--line:#000000;--accent:#000000;--box:#000000;--head:transparent;--radius:0}
.td-sheet[data-design="pastel"] .td-group:nth-child(8n+1){--card:#f4e8ff}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+2){--card:#e7f0ff}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+3){--card:#daf3e8}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+4){--card:#fde8ef}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+5){--card:#fff0d5}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+6){--card:#edf5c6}.td-sheet[data-design="pastel"] .td-group:nth-child(8n+7){--card:#ffe8d9}.td-sheet[data-design="pastel"] .td-group:nth-child(8n){--card:#f4e8ff}
.td-sheet[data-design="bold"] .td-group:nth-child(8n+2){--head:#e4632e;--box:#e4632e}.td-sheet[data-design="bold"] .td-group:nth-child(8n+3){--head:#1f8a5b;--box:#1f8a5b}.td-sheet[data-design="bold"] .td-group:nth-child(8n+4){--head:#7a45b2;--box:#7a45b2}.td-sheet[data-design="bold"] .td-group:nth-child(8n+5){--head:#d6336c;--box:#d6336c}.td-sheet[data-design="bold"] .td-group:nth-child(8n+6){--head:#0f7c8c;--box:#0f7c8c}.td-sheet[data-design="bold"] .td-group:nth-child(8n+7){--head:#172033;--box:#172033}.td-sheet[data-design="bold"] .td-group:nth-child(8n){--head:#5b6673;--box:#5b6673}

.td-sheet{background:var(--bg);color:var(--ink);border-radius:18px;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;padding:16px 18px 10px;print-color-adjust:exact;-webkit-print-color-adjust:exact;min-width:0}
.td-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px 14px;flex-wrap:wrap;margin:0 0 8px}
.td-sheet .td-title{flex:1 1 200px;min-height:44px;font:700 30px/1.15 var(--title);letter-spacing:-.02em;border:0;border-bottom:1px dashed transparent;background:transparent;color:var(--ink);padding:2px 0;min-width:0;width:100%;border-radius:0}
.td-sheet .td-title:hover{border-bottom-color:var(--line)}
.td-sheet .td-title:focus{outline:2px solid var(--box);outline-offset:2px;border-radius:3px}
.td-meta{margin:0;font-size:13px;font-weight:700;color:var(--muted)}
.td-date-line{display:none}
.td-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 12px}
.td-add.has-target{grid-template-columns:minmax(0,1fr) minmax(0,170px) auto}
.td-sheet .td-add-in{height:48px;min-width:0;width:100%;box-sizing:border-box;border:1.5px solid var(--box);border-radius:12px;background:#ffffff;color:#172033;font:500 16px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;padding:0 14px}
.td-sheet .td-add-in::placeholder{color:#6b7683}
.td-sheet .td-add-in:focus{outline:3px solid #e4632e;outline-offset:1px}
.td-add-to[hidden]{display:none}
.td-add-btn{min-height:48px;margin:0;padding:0 20px}
.td-body{display:grid;gap:10px}
.td-sheet[data-layout="day"] .td-body{grid-template-columns:repeat(2,minmax(0,1fr))}
.td-group{min-width:0;background:var(--card);border-radius:var(--radius)}
.td-sheet[data-design="pastel"] .td-group{padding:6px 10px 8px}
.td-gname{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 2px;padding:5px 10px;border-radius:calc(var(--radius) * .6);background:var(--head);color:var(--head-ink);font:700 16px/1.2 var(--title);letter-spacing:-.01em}
.td-sheet[data-design="classic"] .td-gname,.td-sheet[data-design="inksaver"] .td-gname{padding:4px 0;border-bottom:2px solid #000000;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.td-sheet[data-design="pastel"] .td-gname{padding:3px 0;font-weight:800}
.td-gcount{font:700 12px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;opacity:.8}
.td-sheet[data-layout="simple"] .td-gname{display:none}
.td-ghint{margin:2px 10px 0;font-size:12.5px;color:var(--muted)}
.td-sheet .td-items,.td-sheet .td-blank{list-style:none;margin:0;padding:0}
.td-blank{display:none}
.td-item{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 44px;align-items:start;border-bottom:1px solid var(--line);position:relative}
.td-item.is-dragging{z-index:5;background:var(--bg);box-shadow:0 10px 24px #17203330;border-radius:8px;opacity:.95}
.td-item.drop-before{box-shadow:inset 0 3px 0 #e4632e}
.td-item.drop-after{box-shadow:inset 0 -3px 0 #e4632e}
.td-group.drop-into{outline:2px dashed #e4632e;outline-offset:2px}
.td-sheet .td-handle{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:grab;touch-action:none;padding:0;border-radius:8px}
.td-sheet .td-handle svg{width:10px;height:18px;fill:currentColor}
.td-sheet .td-handle:hover{color:var(--box)}
.td-sheet .td-handle:focus-visible,.td-sheet .td-del:focus-visible{outline:2px solid #e4632e;outline-offset:-2px}
.td-check{display:grid;place-items:center;width:44px;height:44px;cursor:pointer}
.td-sheet .td-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0;border:2px solid var(--box);border-radius:6px;background:transparent center/85% no-repeat;cursor:pointer}
.td-sheet .td-check input:checked{background-color:var(--box);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.td-sheet[data-design="classic"] .td-check input,.td-sheet[data-design="inksaver"] .td-check input{border-radius:0}
.td-sheet[data-design="classic"] .td-check input:checked,.td-sheet[data-design="inksaver"] .td-check input:checked{background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.td-sheet .td-check input:focus-visible{outline:2px solid #e4632e;outline-offset:2px}
.td-sheet .td-text{display:block;width:100%;min-width:0;box-sizing:border-box;min-height:44px;resize:none;overflow:hidden;field-sizing:content;border:0;border-radius:0;background:transparent;color:var(--ink);font:500 16px/22px 'DM Sans','DM Sans Fallback',system-ui,sans-serif;padding:11px 4px;margin:0}
.td-sheet .td-text:focus{outline:2px solid var(--box);outline-offset:-2px;border-radius:6px}
.td-item.is-done .td-text{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}
.td-sheet .td-del{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0;border-radius:8px}
.td-sheet .td-del svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.td-sheet .td-del:hover{color:#c2410c}
.td-empty{min-height:40px;display:flex;align-items:center;padding:0 10px;font-size:13px;color:var(--muted);font-style:italic;border-bottom:1px dashed var(--line)}
.td-sheet[data-layout="frog"] .td-group[data-g="frog"] .td-text,.td-sheet[data-layout="135"] .td-group[data-g="big"] .td-text{font-weight:700;font-size:17px}
.td-credit{margin:8px 0 0;text-align:right;font-size:10.5px;color:var(--muted)}
.td-sheet.is-dense .td-text{font-size:15px}

@media(max-width:1080px){.td-app{grid-template-columns:minmax(0,1fr) 250px}.td-design-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .td-app{grid-template-columns:1fr;gap:14px}
  .td-controls{position:static;padding:12px;gap:10px;border-radius:18px}
  .td-seg{grid-template-columns:repeat(4,minmax(0,1fr))}
  .td-more .td-seg{grid-template-columns:1fr 1fr}
  .td-design-list{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:700px){
  .td-sheet{padding:12px 10px 8px;border-radius:16px}
  .td-sheet .td-title{font-size:25px}
  .td-add.has-target{grid-template-columns:minmax(0,1fr) auto}
  .td-add.has-target .td-add-in{grid-column:1/-1}
  .td-sheet[data-layout="day"] .td-body{grid-template-columns:1fr}
  .td-keys{display:none}
}
@media(max-width:480px){.td-controls>.td-field .td-seg{grid-template-columns:1fr 1fr}.td-item{grid-template-columns:44px 44px minmax(0,1fr) 44px}}
@media(pointer:coarse){.td-keys{display:none}}

/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page td-letter{size:letter portrait;margin:12mm}
@page td-a4{size:A4 portrait;margin:12mm}
@media print{
  html:has(.td-app),body:has(.td-app){background:#ffffff!important}
  body:has(.td-app)>:not(main){display:none!important}
  main:has(.td-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.td-app)>:not(.td-app){display:none!important}
  .td-app{display:block;margin:0}
  .td-controls,.td-tabs,.td-add,.td-toast,.td-keys,.td-sheet .td-handle,.td-sheet .td-del,.td-ghint,.td-empty{display:none!important}
  .td-sheet{border:0;border-radius:0;box-shadow:none;padding:0;display:flex;flex-direction:column;height:var(--ph);overflow:hidden;break-inside:avoid}
  .td-sheet[data-paper="letter"]{page:td-letter;--ph:250mm}
  .td-sheet[data-paper="a4"]{page:td-a4;--ph:268mm}
  .td-head{margin:0 0 4mm;padding-bottom:2mm;border-bottom:.6mm solid var(--accent)}
  .td-sheet .td-title{font-size:24pt;padding:0;height:auto;min-height:0;flex:1 1 0;width:auto}
  .td-meta{flex:none}
  .td-meta{font-size:9pt}
  .td-date-line{display:inline;margin-left:6mm}
  .td-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:3mm}
  .td-sheet[data-layout="day"] .td-body{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,minmax(0,1fr));gap:3mm 6mm}
  .td-group{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .td-sheet[data-layout="simple"] .td-group,.td-sheet[data-layout="frog"] .td-group[data-g="rest"],.td-sheet[data-layout="135"] .td-group[data-g="later"]{flex:1 1 auto}
  .td-gname{font-size:11pt;padding:1mm 2.5mm;margin-bottom:.5mm}
  .td-gcount{font-size:8pt}
  .td-items{flex:none}
  .td-blank{display:flex!important;flex-direction:column;flex:1 1 auto;min-height:0}
  .td-item,.td-blank li{display:grid;grid-template-columns:7mm minmax(0,1fr);align-items:center;min-height:8.5mm;border-bottom:.25mm solid var(--line);overflow:hidden}
  .td-blank li{flex:none;height:8.5mm}
  .td-sheet[data-layout="simple"] .td-blank li,.td-sheet[data-layout="frog"] [data-g="rest"] .td-blank li,.td-sheet[data-layout="135"] [data-g="later"] .td-blank li{flex:1 1 0;height:auto;min-height:5.5mm;max-height:10mm}
  .td-blank li::before{content:"";width:3.8mm;height:3.8mm;box-sizing:border-box;border:.35mm solid var(--box);border-radius:.8mm;margin-left:.8mm}
  .td-sheet[data-design="classic"] .td-blank li::before,.td-sheet[data-design="inksaver"] .td-blank li::before{border-radius:0}
  .td-check{width:7mm;height:auto;justify-items:start;padding-left:.8mm}
  .td-sheet .td-check input{width:3.8mm;height:3.8mm;border-width:.35mm;border-radius:.8mm}
  .td-sheet .td-text{min-height:0;max-height:11mm;padding:.8mm 1mm;font-size:10.5pt;line-height:1.3}
  .td-sheet[data-layout="frog"] .td-group[data-g="frog"] .td-item,.td-sheet[data-layout="frog"] .td-group[data-g="frog"] .td-blank li,.td-sheet[data-layout="135"] .td-group[data-g="big"] .td-item,.td-sheet[data-layout="135"] .td-group[data-g="big"] .td-blank li{min-height:14mm;max-height:none}
  .td-sheet[data-layout="frog"] .td-group[data-g="frog"] .td-text,.td-sheet[data-layout="135"] .td-group[data-g="big"] .td-text{font-size:13pt}
  .td-sheet.is-dense .td-item{min-height:6mm}
  .td-sheet.is-cols .td-items{display:block;columns:2;column-gap:6mm}
  .td-sheet.is-cols .td-item{break-inside:avoid}
  .td-sheet.is-dense .td-text{font-size:9pt;padding:.3mm 1mm;max-height:5.6mm}
  .td-sheet[data-layout="day"] .td-item,.td-sheet[data-layout="day"] .td-blank li{min-height:7mm}
  .td-credit{margin:2mm 0 0;font-size:7pt}
  html.td-blank .td-meta [data-td-count]{display:none}
}

/* Eisenhower upgrade */
/* /tools/eisenhower-matrix/: definition box and quadrant key, axis labels, three designs, drag and drop,
   examples by role, and a one-page landscape print (named pages only). */
.eisen-define{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px 30px;align-items:center;margin:0 0 20px;padding:20px 24px;border-radius:22px;background:#fff0d5;border:1px solid #f0ddbd}
.eisen-define h2{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 6px}
.eisen-define p{margin:0 0 8px;font-size:16px;line-height:1.55}
.eisen-define .eisen-define-q{font-size:14.5px;color:#3b4651;margin:0}
.eisen-define-jump{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#1550b8;font-weight:700;text-decoration:none}
.eisen-define-jump:hover{text-decoration:underline;text-underline-offset:4px}
.eisen-key{width:100%;border-collapse:collapse;font-size:15px}
.eisen-key thead th{padding:0 8px 6px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7a5a2e;text-align:left}
.eisen-key tbody th,.eisen-key td{padding:6px 8px;text-align:left;vertical-align:middle;border-bottom:1px solid #f0ddbd}
.eisen-key tbody tr:last-child>*{border-bottom:0}
.eisen-key tbody th{font-weight:700;white-space:nowrap}
.eisen-key td:last-child{color:#3b4651}
.eisen-badge{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;margin-right:4px;border-radius:50%;background:#e4632e;color:#ffffff;font:700 13px/1 'DM Sans','DM Sans Fallback',sans-serif;vertical-align:1px}
.eisen-badge.q2{background:#1550b8}.eisen-badge.q3{background:#9a6a06}.eisen-badge.q4{background:#6b7683}
.eisen-q h3 .eisen-badge{width:22px;height:22px;font-size:12px}
.eisen-app .tool-output-head .tool-actions .button{min-height:44px}
.eisen-designs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 2px}
.eisen-designs-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#526170;margin-right:4px}
.eisen-designs button{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 12px 0 8px;border:1.5px solid transparent;border-radius:12px;background:none;font:inherit;font-size:14px;font-weight:600;color:#526170;cursor:pointer}
.eisen-designs button[aria-checked=true]{border-color:#1550b8;background:#e7f0ff;color:#12367f}
.eisen-designs i{width:30px;height:22px;border-radius:3px;border:1px solid #cfc4b2;background:#ffffff linear-gradient(90deg,#e4632e 0 50%,#1550b8 50%) 2px 2px/24px 3px no-repeat;box-sizing:border-box}
.eisen-designs [data-design-choice=minimal] i{background:#ffffff linear-gradient(#111111,#111111) 50% 50%/1px 16px no-repeat,linear-gradient(#111111,#111111) 50% 50%/24px 1px no-repeat}
.eisen-designs [data-design-choice=colorful] i{border-color:#f0ddbd;background:linear-gradient(90deg,#fde4d6 0 50%,#e1ecff 50%) 0 0/100% 50% no-repeat,linear-gradient(90deg,#fff1c2 0 50%,#eceff3 50%) 0 100%/100% 50% no-repeat}
.eisen-print-date{display:none}
.eisen-axis{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#526170}
@media(min-width:641px){
.eisen-board{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto;gap:6px 10px;margin-top:10px}
.eisen-board .eisen-grid{display:contents}
.eisen-axis-top{grid-row:1;text-align:center}
.eisen-axis-u{grid-column:2}.eisen-axis-nu{grid-column:3}
.eisen-axis-side{grid-column:1;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;align-self:center}
.eisen-axis-i{grid-row:2}.eisen-axis-ni{grid-row:3}
.eisen-board .eisen-q.q1{grid-area:2/2}.eisen-board .eisen-q.q2{grid-area:2/3}.eisen-board .eisen-q.q3{grid-area:3/2}.eisen-board .eisen-q.q4{grid-area:3/3}
}
@media(max-width:640px){.eisen-axis{display:none}}
.eisen-q.is-drop{outline:3px dashed #1550b8;outline-offset:2px}
.eisen-item[draggable=true]{cursor:grab}
.eisen-item.is-dragging{opacity:.45}
/* Minimal: black lines, no cards */
.eisen-app[data-design=minimal] .eisen-q{border:0;border-radius:0;background:transparent;padding:12px 14px}
.eisen-app[data-design=minimal] .eisen-q.q1,.eisen-app[data-design=minimal] .eisen-q.q3{border-right:2px solid #172033}
.eisen-app[data-design=minimal] .eisen-q.q1,.eisen-app[data-design=minimal] .eisen-q.q2{border-bottom:2px solid #172033}
.eisen-app[data-design=minimal] .eisen-board{gap:6px 0}
.eisen-app[data-design=minimal] .eisen-q h3{font:700 17px/1.2 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:-.01em}
.eisen-app[data-design=minimal] .eisen-q .eisen-badge{background:#172033}
.eisen-app[data-design=minimal] .eisen-q li.eisen-item{background:transparent;border-color:#dddddd}
@media(max-width:640px){.eisen-app[data-design=minimal] .eisen-q.q1,.eisen-app[data-design=minimal] .eisen-q.q3{border-right:0}.eisen-app[data-design=minimal] .eisen-q{border-bottom:2px solid #172033;padding:12px 2px}.eisen-app[data-design=minimal] .eisen-q.q4{border-bottom:0}}
/* Colorful: a tinted box per quadrant */
.eisen-app[data-design=colorful] .eisen-q{border-top-width:8px}
.eisen-app[data-design=colorful] .eisen-q.q1{background:#fde4d6;border-color:#f6c3a8;border-top-color:#e4632e}
.eisen-app[data-design=colorful] .eisen-q.q2{background:#e1ecff;border-color:#b9cff3;border-top-color:#1550b8}
.eisen-app[data-design=colorful] .eisen-q.q3{background:#fff1c2;border-color:#eed98a;border-top-color:#c9a227}
.eisen-app[data-design=colorful] .eisen-q.q4{background:#eceff3;border-color:#cfd5dd;border-top-color:#8a96a6}
.eisen-app[data-design=colorful] .eisen-q li.eisen-item{background:#ffffff}
.eisen-paper summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14px;font-weight:700;color:#12367f}
.eisen-paper-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.eisen-paper select{min-height:44px}
/* Examples by role */
.eisen-filter{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}
.eisen-filter[hidden]{display:none}
.eisen-filter .chip{min-height:44px;padding:0 16px;font:inherit;font-size:14px;font-weight:600;color:#172033}
.eisen-filter .chip[aria-pressed=true]{border-color:#1550b8;background:#1550b8;color:#ffffff}
.eisen-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}
.eisen-ex{padding:16px 18px;border-radius:18px;background:#fff;border:1px solid #eee4d5;min-width:0}
.eisen-ex[hidden]{display:none}
.eisen-ex h3{margin:0 0 4px;font:700 19px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.eisen-ex>p{margin:0 0 10px;font-size:14.5px;line-height:1.5;color:#3b4651}
.eisen-ex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.eisen-ex-q{padding:8px 10px;border-radius:10px;background:#fffdf8;border:1px solid #eee4d5;border-top:4px solid #e4632e;min-width:0}
.eisen-ex-q.q2{border-top-color:#1550b8}.eisen-ex-q.q3{border-top-color:#c9a227}.eisen-ex-q.q4{border-top-color:#8a96a6}
.eisen-ex-name{margin:0 0 4px;font-size:13px;font-weight:800;color:#172033}
.eisen-ex-name .eisen-badge{width:18px;height:18px;font-size:10px}
.eisen-ex-q ul{margin:0;padding-left:16px;font-size:13.5px;line-height:1.4;overflow-wrap:anywhere}
.eisen-ex-q li+li{margin-top:3px}
.eisen-ex-load{margin-top:10px;min-height:44px}
.eisen-ex-load[hidden]{display:none}
@media(max-width:860px){.eisen-define{grid-template-columns:1fr}.eisen-define-jump{display:none}.eisen-examples{grid-template-columns:1fr}}
@media(max-width:700px){
.eisen-define{gap:6px;margin:0 0 14px;padding:14px 12px 8px;border-radius:18px}
.eisen-define h2{font-size:20px;margin-bottom:2px}
.eisen-define p{font-size:14.5px;line-height:1.5;margin-bottom:4px}
.eisen-define .eisen-define-q,.eisen-key thead{display:none}
.eisen-key{font-size:14px}
.eisen-key tbody th,.eisen-key td{padding:4px 5px}
.eisen-key tbody th{padding-left:0}
.eisen-key td:last-child{padding-right:0}
.eisen-designs button{padding:0 8px 0 6px;gap:6px}
.eisen-paper-body{grid-template-columns:1fr}
}
@media(max-width:360px){.eisen-key{font-size:13px}.eisen-key .eisen-badge{width:20px;height:20px;font-size:11px}}
@media(max-width:400px){.eisen-ex-grid{grid-template-columns:1fr}}
@page eisen-letter{size:letter landscape;margin:10mm}
@page eisen-a4{size:A4 landscape;margin:10mm}
@media print{
  body:has(.eisen-app)>:not(main){display:none!important}
  main:has(.eisen-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.eisen-app)>:not(.eisen-app){display:none!important}
  .eisen-app{display:block;margin:0}
  .eisen-app>:not(.eisen-sheet){display:none!important}
  .eisen-sheet{page:eisen-letter;--ph:192mm;height:var(--ph);display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:0;background:#fff;break-inside:avoid}
  .eisen-app[data-paper=a4] .eisen-sheet{page:eisen-a4;--ph:186mm}
  .eisen-sheet .tool-actions,.eisen-designs,.eisen-paper,.eisen-hint,.eisen-foot,[data-eisen-status]{display:none!important}
  .eisen-sheet .tool-output-head{margin:0}
  .eisen-sheet .tool-output-head h2{font-size:22pt;margin:0}
  .eisen-print-date{display:flex;justify-content:space-between;margin:1mm 0 2mm;font-size:9pt;color:#526170}
  .eisen-print-credit{font-size:7.5pt}
  .eisen-board{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:7mm minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr);gap:1.5mm 3mm;margin:0}
  .eisen-board .eisen-grid{display:contents}
  .eisen-axis{display:block;font-size:8pt}
  .eisen-axis-top{grid-row:1;text-align:center}
  .eisen-axis-u{grid-column:2}.eisen-axis-nu{grid-column:3}
  .eisen-axis-side{grid-column:1;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;align-self:center}
  .eisen-axis-i{grid-row:2}.eisen-axis-ni{grid-row:3}
  .eisen-board .eisen-q.q1{grid-area:2/2}.eisen-board .eisen-q.q2{grid-area:2/3}.eisen-board .eisen-q.q3{grid-area:3/2}.eisen-board .eisen-q.q4{grid-area:3/3}
  .eisen-sheet .eisen-q{min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:3mm 4mm;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .eisen-sheet .eisen-q h3{font-size:14pt;margin:0 0 1.5mm}
  .eisen-sheet .eisen-q h3 small{font-size:7pt}
  .eisen-sheet .eisen-q ul{gap:.8mm}
  .eisen-sheet .eisen-q li.eisen-item{display:grid;grid-template-columns:5mm minmax(0,1fr);border:0;background:none;min-height:0}
  .eisen-sheet .eisen-text{font-size:10.5pt;padding:.3mm 0}
  .eisen-sheet .eisen-check{width:3.5mm;height:3.5mm}
  .eisen-badge{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .eisen-app.is-blank .eisen-q ul{flex:1 1 auto;display:block;background:repeating-linear-gradient(to bottom,transparent 0,transparent 32px,#c4c4c4 32px,#c4c4c4 34px)}
  .eisen-app[data-design=minimal] .eisen-board{gap:1.5mm 0}
  .eisen-app[data-design=minimal] .eisen-q.q1,.eisen-app[data-design=minimal] .eisen-q.q3{border-right:.6mm solid #111111}
  .eisen-app[data-design=minimal] .eisen-q.q1,.eisen-app[data-design=minimal] .eisen-q.q2{border-bottom:.6mm solid #111111}
  .eisen-app[data-design=classic] .eisen-q{border:.3mm solid #999999;border-top:1.6mm solid #e4632e}
  .eisen-app[data-design=classic] .eisen-q.q2{border-top-color:#1550b8}.eisen-app[data-design=classic] .eisen-q.q3{border-top-color:#c9a227}.eisen-app[data-design=classic] .eisen-q.q4{border-top-color:#8a96a6}
}
@media screen{
.eisen-sheet{display:flex;flex-direction:column}
.eisen-sheet>.tool-output-head{order:0}.eisen-sheet>.eisen-board{order:1}.eisen-sheet>[data-eisen-status]{order:2}.eisen-sheet>.eisen-hint{order:3}.eisen-sheet>.eisen-designs{order:4;margin-top:8px}.eisen-sheet>.eisen-foot{order:5}.eisen-sheet>.eisen-paper{order:6}
}
@media(max-width:700px){
.eisen-define .eisen-define-text p{display:none}
.eisen-app .tool-output-head h2{margin-bottom:8px}
}

/* Daily planner upgrade */
/* /tools/daily-routine-planner/: a first-screen design picker with print actions, the routine builder (above),
   and a fill-in planner page in three designs. The page is a print preview, so .dp-sheet and .dp-thumb keep
   their paper colors in dark mode (KEEP_SELECTORS in content/darkcss.py). */
.dp-quick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"text designs" "actions designs" "status status";gap:10px 26px;align-items:center;margin:0 0 22px;padding:18px 22px;border-radius:22px;background:#fff0d5;border:1px solid #f0ddbd}
.dp-quick-text{grid-area:text}
.dp-quick h2{font:700 23px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 4px}
.dp-quick p{margin:0;font-size:15px;line-height:1.5;color:#3b4651}
.dp-designs{grid-area:designs;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dp-designs button{display:grid;justify-items:center;gap:6px;min-height:44px;padding:8px 6px;border:2px solid #e3d3b6;border-radius:14px;background:#fffdf8;font:inherit;font-size:13.5px;font-weight:700;line-height:1.2;color:#3e4a56;cursor:pointer;text-align:center}
.dp-designs button[aria-checked=true]{border-color:#1550b8;background:#e7f0ff;color:#12367f;box-shadow:0 0 0 1px #1550b8}
.dp-designs button:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.dp-thumb{display:grid;gap:3px;width:52px;height:66px;padding:6px 5px;border-radius:4px;background:#ffffff;border:1px solid #cfc4b2;box-sizing:border-box}
.dp-thumb b{display:block;border-radius:1px}
.dp-thumb-hourly{grid-template-columns:1fr 1fr;grid-template-rows:6px 1fr 1fr}
.dp-thumb-hourly b:nth-child(1){grid-column:1/-1;background:#e4632e}
.dp-thumb-hourly b:nth-child(2){grid-row:2/4;background:repeating-linear-gradient(#ffffff 0 4px,#9aa7b8 4px 5px)}
.dp-thumb-hourly b:nth-child(3){grid-row:2/4;background:linear-gradient(#1550b8,#1550b8) 0 0/100% 3px no-repeat,repeating-linear-gradient(#ffffff 0 5px,#d0c6b5 5px 6px)}
.dp-thumb-priorities{grid-template-rows:6px 16px 1fr}
.dp-thumb-priorities b:nth-child(1){background:#e4632e}
.dp-thumb-priorities b:nth-child(2){background:repeating-linear-gradient(#ffffff 0 4px,#1550b8 4px 5px)}
.dp-thumb-priorities b:nth-child(3){background:repeating-linear-gradient(90deg,#ffffff 0 3px,transparent 3px),repeating-linear-gradient(#ffffff 0 5px,#9aa7b8 5px 6px)}
.dp-thumb-minimal{grid-template-rows:4px 1fr}
.dp-thumb-minimal b:nth-child(1){background:#172033}
.dp-thumb-minimal b:nth-child(2){background:repeating-linear-gradient(#ffffff 0 5px,#b9b9b9 5px 6px)}
.dp-thumb-minimal b:nth-child(3){display:none}
.dp-quick-actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:8px}
.dp-quick-actions .button,.dp-options-actions .button{min-height:46px;margin:0;padding:0 16px;white-space:nowrap}
.dp-status{grid-area:status;font-size:13.5px;color:#526170}
.dp-status:empty{display:none}
.dp-jump{display:none}
/* The planner page and its options */
.dp-app{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start;margin:0 0 46px}
.dp-options{position:sticky;top:14px;display:grid;gap:12px;padding:18px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.dp-options h2{font:700 21px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}
.dp-options-note{margin:0;font-size:13.5px;line-height:1.45;color:#526170}
.dp-options-row{display:grid;gap:10px}
.dp-options-row .build-field{margin:0}
.dp-options-row input,.dp-options-row select{min-height:44px;width:100%;box-sizing:border-box}
.dp-field{margin:0;padding:0;border:0;min-width:0}
.dp-legend{display:block;padding:0;margin:0 0 8px;font-size:inherit;font-weight:600}
.dp-seg{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:12px;background:#f4efe6;min-width:0}
.dp-options-row select{height:44px;border:1px solid #c9d6ea;border-radius:12px;background:#fff;color:#172033;font:inherit;font-size:14px;padding:0 8px}
.dp-seg label{position:relative;min-width:0}
.dp-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.dp-seg span{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:9px;font-size:14px;font-weight:700;color:#3e4a56;cursor:pointer}
.dp-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.dp-seg input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.dp-options-actions{display:grid;gap:8px}
.dp-options-actions .text-button{min-height:44px;justify-self:start}
.dp-sheet{position:relative;min-width:0;padding:30px 34px 22px;border-radius:6px;background:#ffffff;color:#172033;border:1px solid #e3dccf;box-shadow:0 18px 40px #17203318}
.dp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:6px 20px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:14px;border-bottom:3px solid #e4632e}
.dp-sheet .dp-title{flex:1 1 220px;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:#172033;font:700 32px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif}
.dp-date{margin:0;font-size:15px;font-weight:600;color:#526170}
.dp-date-blank{display:none}
.dp-body{display:grid;gap:16px 26px}
.dp-box{min-width:0}
.dp-sheet .dp-label{margin:0 0 4px;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#1550b8}
.dp-sheet .dp-in{width:100%;min-height:44px;box-sizing:border-box;padding:0 2px;border:0;border-bottom:1px solid #d9cfbf;border-radius:0;background:transparent;color:#172033;font:inherit;font-size:15.5px}
.dp-sheet .dp-in:focus,.dp-sheet .dp-title:focus,.dp-sheet .dp-lined:focus{outline:2px solid #1550b8;outline-offset:1px}
.dp-sheet ol,.dp-sheet ul{list-style:none;margin:0;padding:0}
.dp-top ol{counter-reset:dp}
.dp-top li{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;counter-increment:dp}
.dp-top li::before{content:counter(dp);font:700 18px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#e4632e}
.dp-sheet .dp-top .dp-in{font-weight:700}
.dp-todo li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center}
.dp-check{display:grid;place-items:center;width:34px;height:44px;cursor:pointer}
.dp-check input{width:18px;height:18px;margin:0;accent-color:#1550b8}
.dp-sheet .dp-lined{display:block;width:100%;box-sizing:border-box;resize:vertical;padding:0 2px;border:0;border-radius:0;background:transparent repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#d9cfbf 31px,#d9cfbf 32px);color:#172033;font:inherit;font-size:15.5px;line-height:32px}
.dp-hours li{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:8px;min-height:34px;border-bottom:1px solid #e6ddd0}
.dp-hour{font-size:12.5px;font-weight:700;color:#526170;white-space:nowrap}
.dp-hour-items{font-size:14px;line-height:1.3;color:#172033;overflow-wrap:anywhere}
.dp-credit{margin:12px 0 0;font-size:11px;color:#8a96a6;text-align:right}
/* Designs */
.dp-sheet[data-design=hourly] .dp-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"focus focus" "sched top" "sched todo" "sched notes"}
.dp-sheet[data-design=priorities] .dp-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"focus focus" "top top" "todo notes"}
.dp-sheet[data-design=minimal] .dp-body{grid-template-areas:"focus" "lines"}
.dp-focus{grid-area:focus}.dp-sched{grid-area:sched}.dp-top{grid-area:top}.dp-todo{grid-area:todo}.dp-notes{grid-area:notes}.dp-lines{grid-area:lines}
.dp-sheet[data-design=hourly] .dp-lines,.dp-sheet[data-design=priorities] .dp-lines,.dp-sheet[data-design=priorities] .dp-sched,.dp-sheet[data-design=minimal] .dp-sched,.dp-sheet[data-design=minimal] .dp-top,.dp-sheet[data-design=minimal] .dp-todo,.dp-sheet[data-design=minimal] .dp-notes{display:none}
.dp-sheet[data-design=hourly] .dp-todo li:nth-child(n+7){display:none}
.dp-sheet[data-design=priorities] .dp-top .dp-in{font-size:18px;min-height:50px}
.dp-sheet[data-design=priorities] .dp-notes .dp-lined{min-height:320px}
.dp-sheet[data-design=minimal] .dp-head{border-bottom:2px solid #172033}
.dp-sheet[data-design=minimal] .dp-title{font:700 28px/1.1 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:-.02em}
.dp-sheet[data-design=minimal] .dp-label{color:#555555}
.dp-sheet[data-design=minimal] .dp-focus .dp-in{font-size:18px;font-weight:700;border-bottom:2px solid #172033}
.dp-sheet[data-design=minimal] .dp-lines .dp-lined{min-height:448px}
@media(max-width:980px){.dp-quick{grid-template-columns:1fr;grid-template-areas:"text" "designs" "actions" "status"}.dp-app{grid-template-columns:1fr}.dp-options{position:static}.dp-options-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.dp-options-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.dp-options-actions .text-button{justify-self:center}}
@media(max-width:700px){
.dp-quick{gap:10px;padding:14px 12px;border-radius:18px;margin-bottom:16px}
.dp-quick h2{font-size:20px}
.dp-quick p{font-size:14px}
.dp-designs{gap:6px}
.dp-designs button{padding:6px 4px;font-size:12.5px}
.dp-thumb{width:40px;height:50px;padding:4px}
.dp-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dp-quick-actions [data-dp-print]{grid-column:1/-1}
.dp-quick-actions .button{padding:0 8px;font-size:14px}
.dp-jump{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:#1550b8;font-weight:700;text-decoration:none;justify-self:start}
.dp-options-row{grid-template-columns:1fr 1fr}
.dp-options-row>.build-field:first-child{grid-column:1/-1}
.dp-options-actions{grid-template-columns:1fr 1fr}
.dp-options-actions [data-dp-print]{grid-column:1/-1}
.dp-sheet{padding:18px 14px 14px}
.dp-sheet .dp-title{font-size:25px}
.dp-sheet[data-design=hourly] .dp-body,.dp-sheet[data-design=priorities] .dp-body{grid-template-columns:minmax(0,1fr);grid-template-areas:"focus" "top" "sched" "todo" "notes"}
.dp-sheet[data-design=priorities] .dp-notes .dp-lined{min-height:160px}
}
@page dp-letter{size:letter portrait;margin:10mm}
@page dp-a4{size:A4 portrait;margin:10mm}
@media print{
  body:has(.dp-app)>:not(main){display:none!important}
  main:has(.dp-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.dp-app)>:not(.dp-app){display:none!important}
  .dp-app{display:block;margin:0}
  .dp-app>:not(.dp-sheet){display:none!important}
  .dp-sheet{page:dp-letter;--ph:254mm;height:var(--ph);display:flex;flex-direction:column;overflow:hidden;padding:0;border:0;border-radius:0;box-shadow:none;break-inside:avoid}
  .dp-sheet[data-paper=a4]{page:dp-a4;--ph:272mm}
  .dp-sheet ::placeholder{color:transparent}
  .dp-head{margin-bottom:4mm;padding-bottom:2.5mm}
  .dp-sheet .dp-title{min-height:0;height:auto;font-size:24pt}
  .dp-date{font-size:11pt}
  .dp-body{flex:1 1 auto;min-height:0;gap:5mm 7mm}
  .dp-sheet[data-design=hourly] .dp-body{grid-template-rows:auto auto auto minmax(0,1fr)}
  .dp-sheet[data-design=priorities] .dp-body{grid-template-rows:auto auto minmax(0,1fr)}
  .dp-sheet[data-design=minimal] .dp-body{grid-template-rows:auto minmax(0,1fr)}
  .dp-box{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .dp-sheet .dp-label{font-size:8pt;margin-bottom:1mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .dp-sheet .dp-in{min-height:0;height:8mm;font-size:11pt;padding:0 .5mm}
  .dp-sheet[data-design=priorities] .dp-top .dp-in{min-height:0;height:10mm;font-size:13pt}
  .dp-check{height:8mm;width:7mm}
  .dp-sheet[data-design=priorities] .dp-todo ul{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(10,minmax(0,1fr))}
  .dp-sheet[data-design=priorities] .dp-todo li{min-height:0;align-items:end}
  .dp-check input{width:3.6mm;height:3.6mm}
  .dp-todo li{grid-template-columns:7mm minmax(0,1fr)}
  .dp-sheet .dp-lined{flex:1 1 auto;min-height:0!important;height:auto;resize:none;overflow:hidden;font-size:11pt;line-height:30px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#bbbbbb 29px,#bbbbbb 30px);print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .dp-hours{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(var(--dp-rows,17),minmax(0,1fr))}
  .dp-hours li{min-height:0;grid-template-columns:15mm minmax(0,1fr);border-bottom:.3mm solid #bbbbbb}
  .dp-hour{font-size:9pt}
  .dp-hour-items{font-size:10pt;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .dp-credit{margin:2mm 0 0;font-size:7pt}
  .dp-head,.dp-top li::before{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .dp-blank .dp-sheet .dp-in,.dp-blank .dp-sheet .dp-lined{color:transparent}
  .dp-blank .dp-hour-items,.dp-blank [data-dp-date-text]{display:none}
  .dp-blank .dp-date-blank{display:inline}
  .dp-blank .dp-check input{appearance:none;-webkit-appearance:none;border:.3mm solid #555555;border-radius:.6mm;background:#ffffff}
}
.daily-habit-link{display:inline-flex;align-items:center;min-height:44px}

/* Steps to miles */
.steps-form .steps-modes-set,.steps-form .steps-pace-set{margin-top:0}
.steps-modes,.steps-paces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.steps-paces{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps-modes .choice span,.steps-paces .choice span{min-width:0;min-height:46px;padding:8px 10px;justify-content:center;text-align:center;font-size:15px}
.steps-main .build-field{margin-top:12px}
.steps-big input{font:600 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;padding:10px 14px;letter-spacing:-.02em}
.steps-distance{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px;align-items:end}
.steps-distance select{height:56px}
.steps-answer{margin:12px 0 4px;padding:14px 16px;border-radius:16px;background:#fff4ea;border:1px solid #f6d9c2}
.steps-answer-main{font:600 21px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:0}
.steps-answer-main strong{color:#1550b8;font-size:1.3em;white-space:nowrap}
.steps-answer-sub{margin:4px 0 0;font-size:14px;color:#3e4a56}
.steps-form .steps-pace-set{margin-top:14px}
.steps-body{align-items:end}
.steps-body .build-field{margin-top:12px}
.steps-height>span{font-weight:600}
.steps-pair{display:flex;gap:8px}
.steps-pair label{flex:1 1 0;display:flex;align-items:center;gap:6px;min-width:0;font-weight:500;color:#526170}
.steps-pair input{flex:1 1 auto;min-width:0}
.steps-measured{margin-top:14px;border-top:1px solid #eee4d5;padding-top:4px}
.steps-measured summary{display:flex;align-items:center;min-height:44px;font-weight:700;color:#12367f;cursor:pointer}
.steps-measured .build-field{margin-top:8px}
.steps-chart th small{display:block;font-weight:500;font-size:12px;color:#526170}
.steps-chart td,.steps-chart th{white-space:nowrap}
.steps-mine td:first-child,.steps-chart td:first-child{font-weight:700}
[data-steps] .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
[data-steps] .stat strong{font-size:24px}
@media(max-width:560px){
  .steps-form{padding:16px}
  .steps-form>.tool-note{font-size:12px}
  .steps-answer-main{font-size:19px}
  .steps-big input{font-size:26px;padding:8px 12px}
  .steps-body{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps-body .steps-height{grid-column:1/-1}
  [data-steps] .tool-output{padding:16px}
  [data-steps] .tool-output-head h2{font-size:20px}
  [data-steps] .tool-output-head .button{min-height:44px;padding:0 12px;font-size:13px}
  .steps-chart td,.steps-chart th{padding:8px 6px;font-size:14px}
  [data-steps] .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-steps] .stat strong{font-size:22px}
}
@media(max-width:360px){.steps-modes .choice span,.steps-paces .choice span{font-size:13px;padding:6px}}

/* Reading speed test */
.tool-app.rs-app{grid-template-columns:minmax(0,1fr);max-width:860px}
.rs-card{padding:24px;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}
.rs-card h2{font:700 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 10px}
.rs-pick{border:0;padding:0;margin:0;min-width:0}
.rs-pick legend{font-weight:700;padding:0;margin-bottom:8px}
.rs-passages{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:8px}
.rs-choice span{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:60px;padding:10px 14px}
.rs-choice small{font-weight:500;font-size:13px;color:#526170}
.rs-kind{font-style:normal}
.rs-step{margin:12px 0 0;font-size:15px;line-height:1.5}
.rs-card .rs-start{margin-top:14px;min-height:56px;width:100%;max-width:380px;font-size:17px}
.rs-passage{max-width:66ch;margin:0 auto}
.rs-passage .eyebrow{color:#b24618}
.rs-passage h2{font-size:28px;margin:4px 0 14px}
.rs-passage p:not(.eyebrow){font:400 19px/1.7 Georgia,'Times New Roman',serif;color:#172033;margin:0 0 1em}
.rs-done-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;margin:8px -24px -24px;padding:12px 24px calc(12px + env(safe-area-inset-bottom));background:#fffdf8f2;border-top:1px solid #eee4d5;border-radius:0 0 24px 24px;backdrop-filter:blur(6px)}
.rs-done{min-height:52px;flex:0 1 320px;font-size:16px}
.rs-timer-note{font-size:13px;color:#526170}
.rs-timer-note::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#e4632e;vertical-align:middle}
.rs-quiz .eyebrow{color:#b24618}
.rs-q{border:0;padding:0;margin:18px 0 0;min-width:0}
.rs-q legend{font-weight:700;padding:0;margin-bottom:8px;line-height:1.4}
.rs-option{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;margin:6px 0;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;cursor:pointer;line-height:1.35}
.rs-option input{flex:none;width:20px;height:20px;margin:0;accent-color:#1550b8}
.rs-option:has(input:checked){border-color:#1550b8;background:#e7f0ff;color:#12367f}
.rs-option:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.rs-quiz .button{margin-top:18px;min-height:52px}
.rs-quiz-error{color:#b3261e;font-weight:600;margin:12px 0 0}
.rs-result-card{padding:20px;border-radius:18px;background:#fffdf8;border:1px solid #eee4d5}
.rs-result-card .eyebrow{color:#b24618}
.rs-wpm{margin:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}
.rs-wpm strong{font:600 clamp(56px,9vw,76px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#1550b8;letter-spacing:-.03em}
.rs-wpm span{font-size:17px;font-weight:600;color:#3e4a56}
.rs-stats{margin:14px 0 6px}
.rs-stats .stat strong{font-size:26px}
.rs-scale{position:relative;height:14px;margin:22px 0 6px;border-radius:99px;background:#efe7da}
.rs-scale-band{position:absolute;top:0;bottom:0;border-radius:99px;background:#cfe0ff}
.rs-scale-avg{position:absolute;top:-5px;width:3px;height:24px;margin-left:-1px;border-radius:2px;background:#1550b8}
.rs-scale-mark{position:absolute;top:-5px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:#e4632e;border:3px solid #fff;box-shadow:0 2px 6px #17203340}
.rs-scale-labels{display:flex;justify-content:space-between;font-size:12px;color:#526170}
.rs-verdict{font-size:17px;font-weight:600;line-height:1.45;margin:14px 0 0;color:#172033}
.rs-actions{margin-top:16px}
.rs-actions .button{min-height:48px}
.rs-review{margin:14px 0 0;padding-left:22px}
.rs-review li{margin:0 0 10px;line-height:1.5}
.rs-review li.is-right::marker{color:#2f7d32}
.rs-review li.is-wrong::marker{color:#b3261e}
.rs-review strong{display:block}
.rs-history{margin-top:22px;border-top:1px solid #eee4d5;padding-top:12px}
.rs-history-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rs-history-head h3{font:700 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}
.rs-history .rs-clear{min-height:44px;padding:0 14px;font-size:13px}
.rs-history-table td,.rs-history-table th{padding:8px;font-size:14px}
@media(max-width:560px){
  .rs-card{padding:14px 16px 16px;border-radius:18px}
  .rs-card h2{font-size:22px}
  .rs-stage[data-rs-stage=pick]>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .rs-choice span{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:6px 12px}
  .rs-choice strong{font-size:15px}
  .rs-choice small{flex:none;font-size:12px}
  .rs-kind{display:none}
  .rs-pick legend{margin-bottom:6px}
  .rs-passages{gap:6px}
  .rs-card .rs-start{margin-top:12px}
  .rs-card .rs-start{max-width:none}
  .rs-passage p:not(.eyebrow){font-size:18px;line-height:1.65}
  .rs-done-bar{margin:8px -16px -16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-radius:0 0 18px 18px}
  .rs-done{flex:1 1 auto}
  .rs-result-card{padding:16px}
  .rs-actions .button{flex:1 1 100%}
  .rs-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rs-stats .stat{padding:10px}
  .rs-stats .stat strong{font-size:20px}
  .rs-stats .stat span{font-size:12px}
}
@media print{.rs-actions,.rs-done-bar,.rs-history .rs-clear{display:none!important}.rs-card{box-shadow:none;border:0}}
/* Core values finder */
/* /tools/core-values-finder/: keep → narrow to 10 → top 5 with a sticky step bar, a values card in three designs,
   a one-page result print and a one-page full list. The card and printouts keep their colours in dark mode (darkcss KEEP_SELECTORS). */
.cv-app{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.cv-steps{min-width:0;padding:22px 22px 0;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}
.cv-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.cv-stephead h2{font:700 25px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:4px 0 6px;color:#172033}
.cv-help{margin:0;font-size:15px;line-height:1.5;color:#3e4a56}
.cv-search{display:block;margin-top:12px}.cv-search[hidden]{display:none}
.cv-search input{width:100%;min-height:46px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:inherit;font-size:16px;color:#172033}
.cv-search input:focus{border-color:#1550b8;outline:none}
.cv-pool[hidden],.cv-group[hidden],.cv-chip[hidden],.cv-empty[hidden],.cv-result[hidden],.cv-bar [hidden]{display:none}
.cv-group{border:0;padding:0;margin:14px 0 0;min-width:0}
.cv-group legend{padding:0;margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.cv-chips{display:flex;flex-wrap:wrap;gap:6px}
.cv-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px;border:1.5px solid #ddd3c4;border-radius:999px;background:#fffdf8;color:#172033;font:600 14.5px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.cv-chip:hover{border-color:#1550b8}
.cv-chip[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#fff}
.cv-chip[aria-pressed="true"]::before{content:"✓";font-weight:800}
.cv-chip:has(.cv-rank:not(:empty))::before{content:none}
.cv-chip:disabled{opacity:.4;cursor:not-allowed}
.cv-chip:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.cv-rank{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f2783c;color:#172033;font-size:12px;font-weight:800}
.cv-rank:empty{display:none}
.cv-bar{position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:18px -22px 0;padding:12px 22px;border-top:1px solid #eee4d5;background:#fffdf8;border-radius:0 0 24px 24px}
.cv-bar .button{margin:0;min-height:48px;width:auto}
.cv-count{flex:1;min-width:0;margin:0;font-size:14px;font-weight:700;color:#12367f}
.cv-next:disabled{opacity:.45;cursor:not-allowed}
.cv-bar.is-done{position:static}
.cv-ranked{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.cv-ranked-item{padding:12px;border-radius:16px;background:#f7f4ee;border:1px solid #eee4d5}
.cv-ranked-head{display:flex;align-items:center;gap:8px}
.cv-ranked-num{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#1550b8;color:#fff;font-weight:800}
.cv-ranked-name{flex:1;min-width:0;display:grid;gap:1px}
.cv-ranked-name strong{font:700 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cv-ranked-name small{font-size:13px;color:#5b6475}
.cv-move{flex:none;width:44px;height:44px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;color:#1550b8;font-size:18px;font-weight:800;cursor:pointer}
.cv-move:disabled{opacity:.35;cursor:default}
.cv-line{display:grid;gap:4px;margin-top:10px;font-size:12.5px;font-weight:700;color:#5b6475}
.cv-line input{width:100%;min-height:46px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;font:400 16px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.cv-line input:focus{border-color:#1550b8;outline:none}
.cv-rest{margin:12px 0 0;font-weight:700;color:#12367f;line-height:1.5}.cv-rest:empty{display:none}
.cv-side{min-width:0;position:sticky;top:90px;display:grid;gap:12px}
.cv-actions .button{margin:0}
.cv-list-btn{justify-self:start;min-height:44px}
.cv-options{padding:16px 18px;border-radius:18px;background:#fff;border:1px solid #eee4d5}
.cv-options .build-field{margin-top:0}.cv-options .build-field+.build-field{margin-top:12px}
.cv-options fieldset{border:0;padding:0;min-width:0}.cv-options legend{padding:0;margin-bottom:8px;font-weight:600}
.cv-options .choice span{min-height:44px;padding:8px 14px;font-size:14px}
.cv-options .tool-note .text-button{min-height:44px}
.cv-card{padding:22px;border-radius:20px;background:#fffdf8;border:1px solid #eee4d5;color:#172033;box-shadow:0 14px 34px #17203312}
.cv-card .cv-card-kicker{margin:0;font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#1550b8}
.cv-card .cv-card-title{font:700 26px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;margin:4px 0 12px;color:inherit}
.cv-card-list{margin:0;padding:0;list-style:none;counter-reset:cv;display:grid;gap:10px}
.cv-card-list li{counter-increment:cv;display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:10px;row-gap:1px}
.cv-card-list li::before{content:counter(cv);grid-row:span 2;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#1550b8;color:#fff;font:800 14px/1 'DM Sans','DM Sans Fallback',sans-serif}
.cv-card-list strong{font:700 18px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.cv-card-list span{font-size:13.5px;line-height:1.35;color:#5b6475}
.cv-card .cv-card-note{margin:12px 0 0;font-size:13px;color:#5b6475}
.cv-card.is-example .cv-card-list{opacity:.8}
.cv-design-bold.cv-card{background:#172033;border-color:#172033;color:#fffdf8}
.cv-design-bold.cv-card .cv-card-kicker{color:#f2783c}.cv-design-bold.cv-card .cv-card-list li::before{background:#f2783c;color:#172033}
.cv-design-bold.cv-card .cv-card-list span,.cv-design-bold.cv-card .cv-card-note{color:#c9d2e3}
.cv-design-soft.cv-card{background:#fbefe4;border-color:#f0d9c4;color:#4a2e1f}
.cv-design-soft.cv-card .cv-card-kicker{color:#c8552b}.cv-design-soft.cv-card .cv-card-title{font-style:italic;font-weight:600}
.cv-design-soft.cv-card .cv-card-list li::before{background:#c8552b;border-radius:50%}
.cv-design-soft.cv-card .cv-card-list span,.cv-design-soft.cv-card .cv-card-note{color:#7a5a45}
.cv-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 28px}
.cv-list-grid h3{margin:20px 0 6px}
.cv-list-grid dl{margin:0}.cv-list-grid dl>div{padding:5px 0;border-bottom:1px solid #eee4d5;line-height:1.4}
.cv-list-grid dt{display:inline;font-weight:700}.cv-list-grid dt::after{content:" – ";font-weight:400;color:#5b6475}
.cv-list-grid dd{display:inline;margin:0;color:#3e4a56}
.cv-print-area{display:none}
.cv-print{background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.cv-print .cv-p-head{text-align:center;padding-bottom:14px;border-bottom:2px solid #172033;margin-bottom:18px}
.cv-print .cv-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.cv-print .cv-p-head h2{margin:4px 0;font:700 40px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.cv-print .cv-p-date{margin:0;font-size:12px;color:#5b6475}
.cv-print .cv-p-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.cv-print .cv-p-list li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:start;padding:14px 16px;border:1.5px solid #d9d2c5;border-radius:14px;break-inside:avoid}
.cv-print .cv-p-num{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#1550b8;color:#fff;font:800 24px/1 'DM Sans','DM Sans Fallback',sans-serif}
.cv-print .cv-p-list h3{margin:0;font:700 26px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.cv-print .cv-p-meaning{margin:2px 0 0;font-size:13px;color:#5b6475}
.cv-print .cv-p-line{margin:8px 0 0;font-size:15px;line-height:1.35}
.cv-print .cv-p-rest{margin:18px 0 0;font-size:14px;font-weight:700}
.cv-print .cv-p-check p{margin:14px 0 0;font-size:14px}
.cv-print .cv-p-foot{display:flex;justify-content:space-between;gap:12px;margin-top:22px;font-size:11px;color:#444}
.cv-print.cv-design-bold .cv-p-head{padding:18px;border:0;border-radius:12px;background:#172033;color:#fff}
.cv-print.cv-design-bold .cv-p-kicker{color:#f2783c}.cv-print.cv-design-bold .cv-p-date{color:#c9d2e3}
.cv-print.cv-design-bold .cv-p-head h2{text-transform:uppercase;letter-spacing:.5px}
.cv-print.cv-design-bold .cv-p-num{background:#f2783c;color:#172033}.cv-print.cv-design-bold .cv-p-list li{border:2px solid #172033}
.cv-print.cv-design-soft{padding:14px 18px;background:#fbefe4;color:#4a2e1f}
.cv-print.cv-design-soft .cv-p-head{border-bottom-color:#c8552b}.cv-print.cv-design-soft .cv-p-kicker{color:#c8552b}.cv-print.cv-design-soft .cv-p-head h2{font-style:italic;font-weight:600}
.cv-print.cv-design-soft .cv-p-list li{background:#fff;border-color:#f0d9c4}.cv-print.cv-design-soft .cv-p-num{background:#c8552b;border-radius:50%}
.cv-print.cv-design-soft .cv-p-meaning,.cv-print.cv-design-soft .cv-p-date{color:#7a5a45}
.cv-print .cv-pl-head{text-align:center;margin-bottom:10px}
.cv-print .cv-pl-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif}
.cv-print .cv-pl-head p{margin:0;font-size:12px}
.cv-print .cv-pl-groups{columns:4;column-gap:18px}
.cv-print .cv-pl-groups section{break-inside:avoid;margin-bottom:8px}
.cv-print .cv-pl-groups h3{margin:0 0 3px;font:800 8.5pt/1.2 'DM Sans','DM Sans Fallback',sans-serif;text-transform:uppercase;letter-spacing:.04em;color:#b24618}
.cv-print .cv-pl-groups ul{list-style:none;margin:0;padding:0}
.cv-print .cv-pl-groups li{display:flex;align-items:center;gap:5px;font-size:9pt;line-height:1.3}
.cv-print .cv-pl-groups i{flex:none;width:9px;height:9px;border:1px solid #555;border-radius:2px}
.cv-print-list .cv-p-foot{display:block;margin-top:8px;font-size:9pt;color:#555;text-align:right}
@media(max-width:860px){.cv-app{grid-template-columns:1fr}.cv-side{position:static}}
@media(max-width:560px){.cv-steps{padding:16px 14px 0}.cv-bar{margin:14px -14px 0;padding:10px 14px}.cv-stephead h2{font-size:21px}.cv-chip{padding:6px 12px;font-size:14px}.cv-bar .button{padding:0 14px}.cv-count{font-size:13px}.cv-actions .button{flex:1;padding:0 10px}.cv-card{padding:18px}.cv-move{width:44px}}
@media(max-width:420px){.cv-count{flex-basis:100%}.cv-next{flex:1}}
@media print{
.tool-shell:has(.cv-app),.tool-shell:has(.gc-app){width:auto;max-width:none;padding:0;margin:0}
.cv-app,.gc-app{margin:0}
.cv-app{display:block}
.cv-print .cv-pl-head h2{font-size:22px}.cv-print .cv-pl-head p{font-size:10px}
.cv-print .cv-pl-groups section{margin-bottom:6px}
.cv-print .cv-pl-groups li{font-size:8.2pt;line-height:1.2}
.cv-app>:not(.cv-print-area){display:none!important}
.cv-print-area{display:block}
.cv-print-list,html.cv-printing-list .cv-print-result{display:none}
html.cv-printing-list .cv-print-list{display:block}
.cv-print{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* Gratitude challenge */
/* /tools/gratitude-challenge/: today's prompt with a tick and a short answer, a 30-day calendar, and three printables
   (challenge calendar, daily and weekly journal pages) in three designs. Printouts keep their colours in dark mode. */
.gc-app{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.gc-head h2{margin:0}.gc-dates{margin:2px 0 0;font-size:14px;color:#5b6475}
.gc-phase{margin:12px 0 0;font-weight:700;color:#12367f;line-height:1.5}.gc-phase .text-button{font-size:15px;padding:0;min-height:44px}
.gc-bar{height:10px;margin-top:12px;border-radius:99px;background:#eee4d5;overflow:hidden}.gc-bar span{display:block;height:100%;width:0;border-radius:inherit;background:#e4632e;transition:width .3s}
.gc-progress p{margin:6px 0 0;font-size:14px;color:#3b4456}.gc-progress[hidden],.gc-note[hidden]{display:none}
.gc-today{margin-top:14px;padding:16px;border-radius:18px;background:#fff0d5;border:1px solid #f2d3a8;scroll-margin-top:90px}
.gc-today.is-done{background:#e7f0ff;border-color:#c9d9f5}
.gc-day-label{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.gc-prompt{margin:6px 0 12px;font:600 22px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.gc-done{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 14px;border-radius:12px;background:#fff;border:1.5px solid #eee4d5;font-weight:700;cursor:pointer}
.gc-done input{flex:none;width:24px;height:24px;margin:0;accent-color:#1550b8}
.gc-done:has(input:checked){border-color:#1550b8}.gc-done:has(input:disabled){cursor:default;color:#5b6475}
.gc-note{display:grid;gap:6px;margin-top:10px;font-size:13px;font-weight:700;color:#3e4a56}
.gc-note textarea{width:100%;min-height:64px;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;color:#172033;font:400 16px/1.4 'DM Sans','DM Sans Fallback',system-ui,sans-serif;resize:vertical}
.gc-note textarea:focus{border-color:#1550b8;outline:none}
.gc-nav{margin:4px 0 0}.gc-nav:empty{display:none}.gc-nav .text-button{min-height:44px}
.gc-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.gc-wd{text-align:center;font-size:11px;font-weight:700;color:#5b6475}
.gc-pad{min-height:48px}
.gc-cell{display:grid;place-items:center;align-content:center;gap:2px;width:100%;min-height:48px;padding:3px 2px;border-radius:10px;border:1.5px solid #e6dfd2;background:#fffdf8;color:#172033;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.gc-date{font-size:9.5px;font-weight:600;color:#5b6475;white-space:nowrap}
.gc-cell.is-done{background:#e4632e;border-color:#e4632e;color:#fff}.gc-cell.is-done .gc-date{color:#fff4ea}
.gc-cell.is-today{box-shadow:inset 0 0 0 2px #1550b8}
.gc-cell.is-selected{outline:3px solid #1550b8;outline-offset:1px}
.gc-cell:disabled{opacity:.55;cursor:default}
.gc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.gc-legend>span{display:inline-flex;align-items:center;gap:6px}
.gc-key{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid #e6dfd2;background:#fffdf8}.gc-key.is-done{background:#e4632e;border-color:#e4632e}.gc-key.is-today{box-shadow:inset 0 0 0 2px #1550b8}
.gc-setup .tool-note .text-button{min-height:44px}
.gc-journal-buttons{display:flex;flex-wrap:wrap;gap:8px}.gc-journal-buttons .button{flex:1;margin:0;min-height:46px}
.gc-preview-pick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.gc-preview-pick .button{margin:0;min-height:44px;width:auto}
.gc-preview-pick .button[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#fff}
.gc-prompt-list li{margin:4px 0}
.gc-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.gc-print .gc-p-head{text-align:center;margin-bottom:12px}
.gc-print .gc-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.gc-print .gc-p-head h2{margin:2px 0;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.gc-print .gc-p-sub{margin:0;font-size:11.5px;color:#5b6475}
.gc-print .gc-p-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.gc-print .gc-p-grid li{min-height:112px;padding:7px 8px;border:1px solid #b9b2a6;border-radius:8px;break-inside:avoid}
.gc-print .gc-p-top{display:flex;align-items:center;gap:6px}
.gc-print .gc-p-day{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#1550b8}
.gc-print .gc-p-date{font-size:9.5px;color:#5b6475}
.gc-print .gc-p-box{margin-left:auto;display:grid;place-items:center;width:15px;height:15px;border:1.5px solid #555;border-radius:4px;font:normal 800 11px/1 'DM Sans','DM Sans Fallback',sans-serif}
.gc-print .gc-p-grid li.is-done .gc-p-box{background:#172033;border-color:#172033;color:#fff}
.gc-print .gc-p-q{margin:5px 0 0;font-size:11px;line-height:1.3}
.gc-print .gc-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#444}
.gc-print .gc-p-line{display:block;height:24px;border-bottom:1px solid #b9b2a6}
.gc-print .gc-p-entry{padding:10px 0 14px;border-bottom:2px dashed #cfc7b8}
.gc-print .gc-p-entry+.gc-p-entry{border-bottom:0}
.gc-print .gc-p-entry-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12px}
.gc-print .gc-p-mood{color:#5b6475}
.gc-print .gc-p-entry h3{margin:10px 0 2px;font:700 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.gc-print .gc-p-three{margin:0;padding-left:20px;font-size:12px}
.gc-print .gc-p-row h4,.gc-print .gc-p-bottom h4{margin:10px 0 0;font-size:12px;font-weight:800}
.gc-print .gc-p-week{display:grid;border-top:1.5px solid #172033}
.gc-print .gc-p-wrow{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:start;padding:4px 0 8px;border-bottom:1px solid #d9d2c5}
.gc-print .gc-p-wday{padding-top:10px;font:700 14px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.gc-print .gc-p-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
.gc-print.gc-design-warm{background:#fff6ea;color:#4a2412}
.gc-print.gc-design-warm .gc-p-kicker,.gc-print.gc-design-warm .gc-p-day,.gc-print.gc-design-warm .gc-p-wday{color:#c8552b}
.gc-print.gc-design-warm .gc-p-head h2{font-style:italic}
.gc-print.gc-design-warm .gc-p-grid li{background:#fff;border-color:#f0c9a4}
.gc-print.gc-design-warm .gc-p-box{border-color:#e4632e;border-radius:50%}
.gc-print.gc-design-warm .gc-p-grid li.is-done .gc-p-box{background:#e4632e;border-color:#e4632e}
.gc-print.gc-design-warm .gc-p-line{border-bottom-color:#f0c9a4}.gc-print.gc-design-warm .gc-p-week{border-top-color:#c8552b}
.gc-print.gc-design-ink .gc-p-kicker,.gc-print.gc-design-ink .gc-p-day{color:#111}
.gc-print.gc-design-ink .gc-p-head{text-align:left;border-bottom:2px solid #111;padding-bottom:6px}
.gc-print.gc-design-ink .gc-p-grid li{border-color:#777;border-radius:0}
.gc-print.gc-design-ink .gc-p-line{border-bottom-color:#999}
@media(max-width:860px){.gc-app{grid-template-columns:1fr}}
@media(max-width:560px){.gc-output{padding:16px}.gc-head .tool-actions{width:100%}.gc-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}.gc-grid{gap:3px}.gc-cell{min-height:46px;border-radius:8px}.gc-date{font-size:8.5px}.gc-today{padding:12px}.gc-prompt{font-size:19px}.gc-print{padding:12px}.gc-print .gc-p-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gc-print .gc-p-bottom{grid-template-columns:1fr}.gc-print .gc-p-wrow{grid-template-columns:72px minmax(0,1fr)}}
/* Phones: five days per row in challenge order (no weekday padding), so every day stays a 44 px target */
@media(max-width:560px){.gc-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.gc-wd,.gc-pad{display:none}.gc-cell{min-height:50px}.gc-date{font-size:10px}}
@media print{
.gc-app>:not(.print-preview){display:none!important}
.gc-app .print-preview>summary,.gc-preview-pick{display:none!important}
.gc-print{max-width:none;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.gc-print.gc-design-warm{padding:8px 12px}
.gc-print .gc-p-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.gc-print .gc-p-grid li{min-height:0;height:31mm}
.gc-print .gc-p-line{height:7mm}
.gc-print.gc-page-weekly .gc-p-line{height:10mm}
.gc-print .gc-p-bottom{grid-template-columns:1fr 1fr}
.gc-print .gc-p-wrow{grid-template-columns:96px minmax(0,1fr)}
}
/* Lead tool: the tool a guide is about, one tap from the short answer */
.lead-tool{display:grid;grid-template-columns:1fr auto;gap:2px 16px;align-items:center;margin:0 0 24px;padding:14px 18px;border:1px solid #cfdcf5;border-radius:16px;background:#fff;text-decoration:none;color:#172033}
.lead-tool:hover{border-color:#1550b8}
.lead-tool-kicker{grid-column:1;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#b04a1f}
.lead-tool strong{grid-column:1;font:700 19px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.lead-tool span:not(.lead-tool-kicker){grid-column:1;font-size:14px;line-height:1.45;color:#3e4a56}
.lead-tool em{grid-column:2;grid-row:1/4;font-style:normal;font-weight:700;color:#fff;background:#1550b8;border-radius:999px;padding:10px 16px;white-space:nowrap}
@media(max-width:560px){.lead-tool{grid-template-columns:1fr}.lead-tool em{grid-column:1;grid-row:auto;justify-self:start;margin-top:8px}}
@media print{.lead-tool{display:none}}
/* To-do rows keep their columns before the script adds the handle and delete buttons, so the list does not jump (CLS) */
@media screen{.td-item>.td-handle{grid-column:1}.td-item>.td-check{grid-column:2}.td-item>.td-text{grid-column:3}.td-item>.td-del{grid-column:4}}
/* Space the script fills after load is reserved up front, so nothing below it jumps (CLS) */
.wa-phase{min-height:1.5em}
@media(max-width:560px){.wa-phase{min-height:3em}}
.chores-sheet .table-scroll{min-height:214px}
/* Stopwatch */
/* /stopwatch/: big count-up digits with hundredths, Start/Lap/Reset, and a lap table (right of the digits on wide screens).
   The lap box has a fixed height from the first paint, so laps restored after load never move the page (CLS). */
.sw-page .tool-head{margin-bottom:18px}
.sw-app{margin:0 0 40px}
.sw-panel{background:#ffffff;border:1px solid #eee4d5;border-radius:24px;padding:22px 22px 18px;box-shadow:0 10px 30px #173f9812}
.sw-main{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.sw-face{text-align:center;padding:10px 0 4px}
.sw-time{display:block;font:600 clamp(54px,17vw,120px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums;letter-spacing:-.03em;white-space:nowrap}
.sw-panel[data-long=true] .sw-time{font-size:clamp(40px,12.5vw,96px)}
.sw-cs{font-size:.52em;color:#526170;letter-spacing:0}
.sw-sub{display:block;margin-top:10px;font-size:14px;font-weight:700;color:#526170;text-transform:uppercase;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.sw-panel[data-state=running] .sw-sub{color:#1550b8}
.sw-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(560px,100%);margin:16px auto 0}
.sw-actions .button{min-height:52px;padding:0 10px}
.sw-actions .sw-start{grid-column:1/-1;min-height:60px;font-size:19px}
.sw-panel[data-state=running] .sw-start{background:#e4632e;color:#ffffff}
.sw-actions .button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.sw-full-btn{gap:8px}
.sw-status{margin:12px 0 0;text-align:center;font-size:14px;color:#526170;min-height:20px}
.sw-keys{margin:10px 0 0;font-size:13px;color:#5b6475;text-align:center}
.sw-keys kbd{display:inline-block;min-width:22px;padding:2px 6px;border:1px solid #d8cfc0;border-bottom-width:2px;border-radius:6px;background:#fffdf8;color:#172033;font:700 12px/1.2 'DM Sans','DM Sans Fallback',sans-serif}
@media(hover:none){.sw-keys{display:none}}
.sw-laps{margin-top:18px;padding-top:14px;border-top:1px solid #eee4d5;min-width:0}
.sw-laps-head{display:flex;justify-content:space-between;align-items:center;gap:8px 14px;flex-wrap:wrap}
.sw-laps-head h3{font:700 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0}
.sw-laps-head h3 span{font:600 14px 'DM Sans','DM Sans Fallback',sans-serif;color:#526170}
.sw-laps-actions{display:flex;gap:4px 16px;flex-wrap:wrap}
.sw-laps-actions .text-button{min-height:44px}
.sw-laps-actions .text-button:disabled{color:#8b95a1;cursor:default;text-decoration:none}
.sw-laps-scroll{height:220px;overflow:auto;margin-top:6px;border:1px solid #eee4d5;border-radius:14px;overscroll-behavior:contain}
.sw-table{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.sw-table th,.sw-table td{padding:9px 12px;border-bottom:1px solid #f0e9dd;text-align:right;white-space:nowrap}
.sw-table th:first-child{text-align:left;width:3.5em}
.sw-table thead th{position:sticky;top:0;background:#f4efe6;font-size:13px;z-index:1}
.sw-table tbody th{font-weight:700}
.sw-table .sw-empty td{text-align:left;white-space:normal;color:#526170;font-size:14px;line-height:1.5;border:0}
.sw-table .sw-live{background:#f3f7ff;color:#12367f}
.sw-table .is-best td:nth-child(2){color:#1f7a45;font-weight:700}
.sw-table .is-worst td:nth-child(2){color:#c2410c;font-weight:700}
.sw-table td small{font-size:12px;margin-left:4px}
.sw-summary{margin:8px 0 0;font-size:13px;color:#5b6475;min-height:1.5em;font-variant-numeric:tabular-nums}
.sw-uses{padding-left:20px}
.sw-uses li{margin:0 0 10px;line-height:1.6}
.sw-plan{margin:28px 0}
.sw-content code{background:#f1ede5;border-radius:4px;padding:1px 4px}
html.sw-full-open,html.sw-full-open body{overflow:hidden}
.sw-panel.is-full{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;box-shadow:none;background:#fffdf8;display:flex;flex-direction:column;justify-content:center;padding:20px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto}
.sw-panel.is-full .sw-laps,.sw-panel.is-full .sw-keys{display:none}
.sw-panel.is-full .sw-time{font-size:clamp(60px,min(21vw,30vh),240px)}
.sw-panel.is-full[data-long=true] .sw-time{font-size:clamp(44px,min(15vw,22vh),180px)}
.sw-panel.is-full .sw-sub{font-size:clamp(14px,2.4vh,22px)}
.sw-panel.is-full .sw-actions{width:min(640px,100%)}
/* Wide screens: digits and buttons on the left, laps on the right, like the online timer */
@media(min-width:1000px){
.sw-panel:not(.is-full){display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);column-gap:36px;padding:30px 34px 24px}
.sw-panel:not(.is-full) .sw-main{justify-content:center}
.sw-panel:not(.is-full) .sw-time{font-size:clamp(96px,8.6vw,132px)}
.sw-panel:not(.is-full)[data-long=true] .sw-time{font-size:clamp(72px,6.4vw,100px)}
.sw-panel:not(.is-full) .sw-laps{margin:0;padding:0 0 0 30px;border-top:0;border-left:1px solid #eee4d5}
.sw-panel:not(.is-full) .sw-laps-scroll{height:300px}
.sw-panel.is-full{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-content:center;column-gap:44px;padding:40px}
.sw-panel.is-full .sw-laps{display:block;margin:0;border-top:0;padding-top:0}
.sw-panel.is-full .sw-laps-scroll{height:min(60vh,560px)}
.sw-panel.is-full .sw-time{font-size:clamp(90px,min(12vw,26vh),220px)}
}
@media(max-width:560px){.sw-panel{padding:16px 14px 14px;border-radius:18px}.sw-actions .button:not(.sw-start){font-size:14px}.sw-laps-scroll{height:200px}}
@media print{.sw-actions,.sw-laps-actions,.sw-keys,.sw-status{display:none!important}.sw-panel{box-shadow:none}.sw-laps-scroll{height:auto;overflow:visible}}
/* Reading time calculator */
/* /tools/reading-time-calculator/: pages or words and the answer in the first screen, speed presets, book lengths,
   words per page, and the output panel with a 100 to 600 page table. The server renders the same answer the script writes. */
.rt-set{border:0;padding:0;margin:0;min-width:0}
.rt-set legend{font-weight:700;padding:0;margin-bottom:8px}
.rt-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rt-modes .choice span{min-width:0;min-height:48px;padding:8px 10px;justify-content:center}
.rt-form .rt-big{margin-top:12px}
.rt-input{display:flex;align-items:center;gap:10px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8}
.rt-input:focus-within{border-color:#1550b8;box-shadow:0 0 0 2px #1550b833}
.rt-form .build-field .rt-input input{flex:1 1 auto;min-width:0;border:0;background:transparent;padding:8px 0;border-radius:0;font:600 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;letter-spacing:-.02em}
.rt-form .build-field .rt-input input:focus,.rt-form .build-field .rt-input input:focus-visible{outline:none}
.rt-input em{font-style:normal;font-weight:600;color:#526170}
.rt-answer{margin:12px 0 4px;padding:14px 16px;border-radius:16px;background:#fff4ea;border:1px solid #f6d9c2}
.rt-answer-main{font:600 21px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;margin:0}
.rt-answer-main strong{color:#1550b8;font-size:1.3em;white-space:nowrap}
.rt-answer-sub{margin:4px 0 0;font-size:14px;color:#3e4a56}
.rt-answer-plan{margin:10px 0 0;padding-top:10px;border-top:1px solid #f6d9c2;font-size:15px;line-height:1.45;color:#172033}
.rt-answer-plan strong{color:#12367f}
.rt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rt-row .build-field{margin-top:12px}
.rt-row input{min-height:48px}
.rt-speed-set,.rt-book-set{margin-top:14px}
.rt-speeds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.rt-speeds .choice span{min-width:0;min-height:54px;padding:6px 4px;flex-direction:column;justify-content:center;gap:0;text-align:center;font-size:14px}
.rt-speeds .choice small{font-size:12px;font-weight:500;color:#526170}
.rt-speeds .choice input:checked+span small{color:#12367f}
.rt-books{display:flex;flex-wrap:wrap;gap:8px}
.rt-books .chip{min-height:44px;font-size:14px}
.rt-books .chip small{font-weight:500;color:#526170}
.rt-page{margin-top:12px;border-top:1px solid #eee4d5;padding-top:4px}
.rt-page summary{display:flex;align-items:center;min-height:44px;font-weight:700;color:#12367f;cursor:pointer}
.rt-page .build-field{margin-top:6px}
.rt-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.rt-stats .stat strong{font-size:24px}
.rt-quick td,.rt-compare td{white-space:nowrap}
.rt-compare th small{display:block;font-weight:500;font-size:12px;color:#526170}
@media(max-width:560px){
  .rt-form{padding:16px}
  .rt-answer-main{font-size:19px}
  .rt-form .build-field .rt-input input{font-size:26px}
  .rt-speeds{grid-template-columns:repeat(3,minmax(0,1fr))}
  [data-rtime] .tool-output{padding:16px}
  [data-rtime] .tool-output-head h2{font-size:20px}
  .rt-stats .stat strong{font-size:22px}
  .rt-quick td,.rt-quick th,.rt-compare td,.rt-compare th{padding:8px 6px;font-size:14px}
}
/* Vision board guide */
.vg{margin:0 0 30px}html body .article-body section.vg,html body .article-body .vg section{border-top:0;padding:0}
.vg .vg-title{font:600 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 0 12px;border-top:0;padding-top:0}
.vg-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.vg-step,.vg-step-make>a{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:10px;align-content:start;padding:10px;border-radius:14px;background:#fff;border:1px solid #ece4d6}
.vg-step img,.vg-step-make img{grid-row:1/4;width:44px;height:44px;border-radius:10px;object-fit:cover}
.vg-step-n{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#b04a1f}
.vg-step strong{font:700 14.5px/1.25 'DM Sans','DM Sans Fallback',sans-serif;color:#172033}
.vg-step-text{font-size:12.5px;line-height:1.4;color:#4a5562;margin-top:3px}
.vg-steps>li.vg-step-make{display:flex;padding:0;border:0;background:none;min-height:0}
.vg-step-make>a{flex:1;background:#e7f0ff;border-color:#b9cdf2;text-decoration:none;color:#172033}
.vg-step-make>a:hover{border-color:#1550b8}
.vg-step-make img{object-position:top}
.vg-step-go{grid-column:2;margin-top:5px;font-size:12.5px;font-weight:700;color:#1550b8}
.vg-make{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;padding:18px 20px;border-radius:20px;background:#fff0d5;margin:0 0 26px}
.vg-make-thumbs{display:flex;gap:6px;text-decoration:none}
.vg-make-thumbs img{width:62px;height:110px;border-radius:9px;object-fit:cover;box-shadow:0 3px 10px #1720331f}
.vg-make-thumbs img:nth-child(2){transform:translateY(-6px)}
.vg .vg-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#b04a1f;margin:0 0 4px}
.vg-make h3{font:600 25px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 0 6px}
.vg-make-copy>p:not(.vg-kicker){font-size:15px;line-height:1.5;color:#3e4a56;margin:0 0 12px}
.vg-make-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.vg-make-alt{display:inline-flex;align-items:center;min-height:44px;color:#1550b8;font-weight:700;font-size:14px;text-underline-offset:3px}
.vg .vg-sub{font:600 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;margin:0 0 12px}
.vg-gallery{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vg-gallery figure{margin:0;border-radius:14px;overflow:hidden;background:#fff;border:1px solid #ece4d6}
.vg-gallery img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.vg-gallery figcaption{display:grid;gap:1px;padding:9px 12px 4px}
.vg-gallery figcaption strong{font:700 16px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.vg-gallery figcaption>span:not(.vg-gallery-links){font-size:13px;color:#5a6571}
.vg-gallery-links{display:flex;gap:16px}
.vg-gallery-links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:#1550b8;text-underline-offset:3px}
.vg-gallery-links a:last-child{color:#4a5562;font-weight:600}
.vg .vg-more{font-size:15px;line-height:1.5;margin:12px 0 18px}.vg-more a{color:#1550b8;text-underline-offset:3px}
.vg-supplies{border:1px solid #e3d9c7;border-radius:16px;background:#fffaf0;padding:0 16px}
.vg-supplies>summary{cursor:pointer;min-height:48px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-weight:700;font-size:15px;color:#172033}
.vg-supplies>summary span{font-weight:600;font-size:12px;color:#b04a1f;letter-spacing:.06em;text-transform:uppercase}
.vg-supplies[open]{padding-bottom:16px}
.vg-supplies>.button{margin-top:14px}
.vg-print{background:#fff;border:1px solid #ece4d6;border-radius:12px;padding:16px;color:#172033}
.vg .vg-print-title{font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 2px}
.vg .vg-print-sub{font-size:13px;color:#5a6571;margin:0 0 12px}
.vg-print-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 18px}
.vg-print-groups h4{margin:0 0 4px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#1550b8}
.vg-print-groups ul{list-style:none;margin:0;padding:0}
.vg-print-groups li{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.35;padding:3px 0}
.vg-box{flex:none;width:14px;height:14px;margin-top:2px;border:1.5px solid #1550b8;border-radius:3px}
.vg .vg-print-plan-title{font:700 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:16px 0 6px}
.vg-print-plan{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.vg-print-plan th{text-align:left;font-weight:700;padding:4px 6px;border-bottom:1.5px solid #172033}
.vg-print-plan td{height:30px;border-bottom:1px solid #d9d2c5;padding:0 6px}
.vg .vg-print-foot{font-size:11px;color:#6b7685;margin:10px 0 0}
@media(max-width:760px){
  .vg-steps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin-inline:-20px;padding:0 20px 6px;scroll-padding-inline:20px;scrollbar-width:thin}
  .vg .vg-title{font-size:23px;margin-bottom:10px}
  .vg-steps>li{flex:0 0 184px;scroll-snap-align:start}
  .vg-step,.vg-step-make>a{grid-template-columns:40px minmax(0,1fr);grid-template-rows:none;grid-auto-rows:min-content;align-content:center;padding:8px 10px 8px 8px;min-height:66px}
  .vg-steps>li.vg-step-make{flex-basis:210px}
  .vg-step img,.vg-step-make img{grid-row:1/3;width:40px;height:48px;border-radius:8px}
  .vg-step-text{display:none}
  .vg-step strong{font-size:14px}
  .vg-step-make .vg-step-n{display:none}
  .vg-step-go{margin-top:2px}
  .vg-make{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"thumbs kicker" "thumbs title" "act act" "text text";gap:0 14px;padding:14px 16px 12px;align-items:start}
  .vg-make-copy{display:contents}
  .vg-make-thumbs{grid-area:thumbs;margin-bottom:12px}
  .vg-make-thumbs img{width:40px;height:71px;border-radius:7px}
  .vg-make-thumbs img:nth-child(2){transform:translateY(-4px)}
  .vg .vg-kicker{grid-area:kicker;align-self:end;margin:0 0 2px}
  .vg-make h3{grid-area:title;margin:0;font-size:23px}
  .vg-make-actions{grid-area:act;gap:0 14px}
  .vg-make-copy>p:not(.vg-kicker){grid-area:text;font-size:14px;margin:2px 0 0}
  .vg-make-actions .button{width:100%}
  .vg-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-inline:-20px;padding:0 20px 6px;scroll-padding-inline:20px}
  .vg-gallery>li{flex:0 0 82%;scroll-snap-align:start}
}
@media print{
  .vg-steps,.vg-make,.vg-sub,.vg-gallery,.vg-more{display:none}
  html.vg-printing body *:not(:has(.vg-print)):not(.vg-print):not(.vg-print *){display:none!important}
  html.vg-printing body,html.vg-printing main,html.vg-printing .article-shell,html.vg-printing article,html.vg-printing .article-body,html.vg-printing .vg,html.vg-printing .vg-supplies{margin:0!important;padding:0!important;border:0!important;background:#ffffff!important;box-shadow:none!important;max-width:none!important;width:auto!important}
  html.vg-printing{background:#ffffff}
  html.vg-printing .vg-supplies>summary{display:none!important}
  html.vg-printing .vg-print{border:0;padding:0;border-radius:0}
  html.vg-printing .vg-print-groups{grid-template-columns:repeat(3,1fr)}
  html.vg-printing .vg .vg-print-title{font-size:24pt;margin-bottom:2mm}
  html.vg-printing .vg-print-groups{gap:4mm 8mm}
  html.vg-printing .vg-print-groups li{font-size:11pt;padding:1.2mm 0}
  html.vg-printing .vg .vg-print-plan-title{font-size:15pt;margin-top:8mm}
  html.vg-printing .vg-print-plan td{height:15mm}
  html.vg-printing .vg-box{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* Monthly calendars (/calendar/<year>/<month>/ and /calendar/monthly/): one big month on the page and on paper.
   The sheet reuses the year calendar's design tokens (.cal-sheet[data-design]); every block has a fixed height on
   screen so saved options and the script never move the page (CLS). Rules inside the sheet start with .cal-sheet so
   the dark theme keeps the paper light. */
.mc-stage{display:grid;gap:10px;align-content:start}
.mc-facts{margin:0;height:20px;font-size:14px;line-height:20px;font-weight:700;color:#3e4a56;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-picker{display:grid;grid-template-columns:44px minmax(0,1fr) 104px 44px;gap:6px;align-items:center}
.mc-step{height:44px;border-radius:12px;border:1px solid #c9d6ea;background:#ffffff;font-size:26px;line-height:1;color:#12367f;padding:0}
.mc-step:hover{border-color:#1550b8}
.mc-pick select,.mc-pick input{box-sizing:border-box;height:44px;width:100%;border:1px solid #c9d6ea;border-radius:12px;background:#ffffff;font:inherit;font-size:16px;font-weight:700;padding:0 10px;color:#172033}
.mc-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px}
.mc-nav>:last-child{justify-content:flex-end}
.mc-nav-link{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;white-space:nowrap;overflow:hidden;border-radius:12px;background:#f4efe6;color:#12367f;font-weight:700;font-size:14px;text-decoration:none}
.mc-nav-link:hover{text-decoration:underline}
.mc-page-link{margin:0;font-size:14px;line-height:1.5;color:#3e4a56}
.mc-page-link a{color:#1550b8;font-weight:700}
.mc-ideas li{margin-bottom:10px}
.mc-months{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.mc-months a,.mc-months span{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;background:#f4efe6;color:#12367f;font-weight:700;text-decoration:none}
.mc-months span{background:#12367f;color:#ffffff}
.mc-months a:hover{text-decoration:underline}
.cal-sheet .cal-month-name a{color:inherit;text-decoration:none}
.cal-sheet .cal-month-name a:hover{text-decoration:underline}

.mc-headline{max-width:none}
.mc-controls .cal-seg span{min-height:44px}
@media screen and (min-width:1101px){.cal-sheet.mc-sheet .mc-table{aspect-ratio:7/3.3}}
.cal-sheet.mc-sheet{padding:16px 18px 12px}
.cal-sheet.mc-sheet[data-orient="portrait"]{max-width:700px;width:100%;justify-self:center}
.cal-sheet.mc-sheet[data-mi="0"],.cal-sheet.mc-sheet[data-mi="6"]{--box:#e7f0ff;--m:#1550b8}
.cal-sheet.mc-sheet[data-mi="1"],.cal-sheet.mc-sheet[data-mi="7"]{--box:#fff0d5;--m:#e4632e}
.cal-sheet.mc-sheet[data-mi="2"],.cal-sheet.mc-sheet[data-mi="8"]{--box:#edf5c6;--m:#1f8a5b}
.cal-sheet.mc-sheet[data-mi="3"],.cal-sheet.mc-sheet[data-mi="9"]{--box:#f4e8ff;--m:#7a45b2}
.cal-sheet.mc-sheet[data-mi="4"],.cal-sheet.mc-sheet[data-mi="10"]{--box:#ffe8d9;--m:#d6336c}
.cal-sheet.mc-sheet[data-mi="5"],.cal-sheet.mc-sheet[data-mi="11"]{--box:#daf3e8;--m:#0f7c8c}
.cal-sheet.mc-sheet[data-design="bold"]{--head:var(--m);--off:var(--m);--ring:var(--m)}
.cal-sheet.mc-sheet[data-design="classic"],.cal-sheet.mc-sheet[data-design="minimal"],.cal-sheet.mc-sheet[data-design="inksaver"]{--box:transparent}
.cal-sheet .mc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;height:52px;margin:0 0 10px;padding:0 12px;border-radius:12px;background:var(--box)}
.cal-sheet .mc-title{margin:0;font:700 38px/1 var(--title);letter-spacing:-.02em;color:var(--mname,var(--ink));white-space:nowrap;overflow:hidden;min-width:0}
.cal-sheet .mc-year{font-weight:600;color:var(--muted)}
.cal-sheet .mc-sub{margin:0;min-width:0;font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-sheet.mc-sheet[data-design="classic"] .mc-head{border-radius:0;border-bottom:2px solid #111111;padding:0 2px}
.cal-sheet.mc-sheet[data-design="classic"] .mc-title{text-transform:uppercase;letter-spacing:.08em;font-size:30px}
.cal-sheet.mc-sheet[data-design="minimal"] .mc-head{padding:0 2px}
.cal-sheet.mc-sheet[data-design="minimal"] .mc-title{text-transform:uppercase;letter-spacing:.14em;font-size:26px;font-weight:800}
.cal-sheet.mc-sheet[data-design="bold"] .mc-head{background:var(--m)}
.cal-sheet.mc-sheet[data-design="bold"] .mc-title,.cal-sheet.mc-sheet[data-design="bold"] .mc-year,.cal-sheet.mc-sheet[data-design="bold"] .mc-sub{color:#ffffff}
.cal-sheet.mc-sheet[data-design="bold"] .mc-title{font-weight:800}
.cal-sheet.mc-sheet[data-design="inksaver"] .mc-head{border-radius:0;border-bottom:2px solid #000000;padding:0 2px}

.cal-sheet .mc-table{width:100%;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px repeat(var(--rows,5),minmax(0,1fr));aspect-ratio:7/4.4;border-collapse:collapse;border-top:1px solid var(--line);border-left:1px solid var(--line);color:var(--ink)}
.cal-sheet.mc-sheet[data-orient="portrait"] .mc-table{aspect-ratio:7/7.4}
.cal-sheet .mc-table thead,.cal-sheet .mc-table tbody,.cal-sheet .mc-table tr{display:contents}
.cal-sheet .mc-table th,.cal-sheet .mc-table td{display:block;min-width:0;overflow:hidden;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cal-sheet .mc-table th{display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--head);text-align:left;white-space:nowrap}
.cal-sheet .mc-ws{display:none}
.cal-sheet .mc-table td{padding:5px 6px;text-align:left}
.cal-sheet .mc-table td.is-we{background:var(--wefill)}
.cal-sheet.mc-sheet[data-design="minimal"] .mc-table{border-top:0;border-left:0}
.cal-sheet.mc-sheet[data-design="minimal"] .mc-table th,.cal-sheet.mc-sheet[data-design="minimal"] .mc-table td{border-right-color:transparent}
.cal-sheet .mc-d{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 3px;margin:-2px 0 1px -3px;border-radius:13px;font-size:15px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;box-sizing:border-box}
.cal-sheet .mc-table td.is-we .mc-d{color:var(--we)}
.cal-sheet.mc-sheet[data-holidays="on"] td.has-off .mc-d{background:var(--off);color:var(--off-ink)}
.cal-sheet.mc-sheet[data-holidays="on"][data-design="classic"] td.has-off{background:var(--off)}
.cal-sheet.mc-sheet[data-holidays="on"][data-design="classic"] td.has-off .mc-d{background:transparent;border-radius:0}
.cal-sheet.mc-sheet[data-holidays="on"][data-design="inksaver"] td.has-off .mc-d{box-shadow:inset 0 0 0 2px #000000}
.cal-sheet.mc-sheet[data-holidays="on"] td.has-date:not(.has-off) .mc-d{box-shadow:inset 0 0 0 1.5px var(--ring)}
.cal-sheet.mc-sheet[data-holidays="on"][data-design="inksaver"] td.has-date:not(.has-off) .mc-d{box-shadow:none;outline:1.5px dashed #000000;outline-offset:-2px}
.cal-sheet .mc-h{display:block;margin-top:2px;font-size:11px;line-height:1.2;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.cal-sheet .mc-h.is-obs,.cal-sheet .mc-h.is-date{font-weight:500;color:var(--muted)}
.cal-sheet.mc-sheet[data-holidays="off"] .mc-h.is-off,.cal-sheet.mc-sheet[data-holidays="off"] .mc-h.is-date,.cal-sheet.mc-sheet[data-obs="off"] .mc-h.is-obs{display:none}

.cal-sheet .mc-strip,.cal-sheet .mc-notes{display:none;margin-top:10px}
.cal-sheet.mc-sheet[data-habit="on"] .mc-strip,.cal-sheet.mc-sheet[data-notes="on"] .mc-notes{display:block}
.cal-sheet .mc-strip-label,.cal-sheet .mc-notes-label{margin:0 0 4px;height:16px;font-size:12px;line-height:16px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-sheet .mc-strip-boxes{display:grid;grid-template-columns:repeat(31,minmax(0,1fr));gap:2px}
.cal-sheet .mc-strip-boxes span{display:block;height:22px;padding:1px 2px;border:1px solid var(--head);border-radius:3px;background:#ffffff;font-size:8px;line-height:1;color:var(--muted);overflow:hidden}
.cal-sheet .mc-notes i{display:block;height:26px;border-bottom:1px solid var(--line)}
.cal-sheet.mc-sheet[data-orient="landscape"] .mc-notes i:nth-of-type(n+4){display:none}
.cal-sheet .mc-foot{margin-top:10px;align-items:flex-start}
.cal-sheet .mc-foot-list{display:flex;flex-wrap:wrap;gap:2px 14px;margin:0;min-width:0}
.cal-sheet .mc-foot-list .is-off{font-weight:700;color:var(--ink)}
.cal-sheet.mc-sheet[data-holidays="off"] .mc-foot-list .is-off,.cal-sheet.mc-sheet[data-holidays="off"] .mc-foot-list .is-date,.cal-sheet.mc-sheet[data-obs="off"] .mc-foot-list .is-obs{display:none}
.cal-sheet.mc-sheet[data-blank="on"] .mc-foot-list{visibility:hidden}

@media(min-width:901px){.mc-app .mc-stage{grid-column:2;grid-row:1}.mc-app .mc-controls{grid-column:1;grid-row:1}}
@media(max-width:900px){.cal-sheet .mc-h{font-size:10px}}
@media screen and (max-width:640px){
  .mc-headline h1{font-size:24px}
  .mc-facts{font-size:13px}
  .cal-sheet.mc-sheet{padding:10px 8px 10px}
  .cal-sheet .mc-head{height:44px;margin-bottom:8px;padding:0 8px}
  .cal-sheet .mc-title{font-size:28px}
  .cal-sheet.mc-sheet[data-design="classic"] .mc-title{font-size:22px}
  .cal-sheet.mc-sheet[data-design="minimal"] .mc-title{font-size:20px}
  .cal-sheet .mc-sub{display:none}
  .cal-sheet .mc-table,.cal-sheet.mc-sheet[data-orient="portrait"] .mc-table{aspect-ratio:7/6;grid-template-rows:24px repeat(var(--rows,5),minmax(0,1fr))}
  .cal-sheet .mc-table th{padding:0 4px;font-size:10px;letter-spacing:.02em}
  .cal-sheet .mc-wl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .cal-sheet .mc-ws{display:inline}
  .cal-sheet .mc-table td{padding:3px 2px}
  .cal-sheet .mc-d{min-width:22px;height:22px;margin:0;font-size:13px;border-radius:11px}
  .cal-sheet .mc-h{display:none!important}
  .cal-sheet.mc-sheet[data-obs="on"] td.has-obs::after{content:"";display:block;width:5px;height:5px;margin:2px 0 0 8px;border-radius:50%;background:var(--muted)}
  .cal-sheet .mc-strip-boxes{grid-template-columns:repeat(16,minmax(0,1fr))}
  .cal-sheet .mc-strip-boxes span{height:18px}
  .cal-sheet .mc-notes i{height:22px}
  .cal-sheet .mc-foot{font-size:11px}
  .cal-sheet .mc-foot-list{flex-direction:column}
  .mc-picker{grid-template-columns:44px minmax(0,1fr) 88px 44px}
}
@media print{
  .mc-stage{display:block}
  .mc-stage>:not(.mc-sheet){display:none!important}
  .cal-sheet.mc-sheet,.cal-sheet.mc-sheet[data-orient="portrait"]{max-width:none;padding:0}
  .cal-sheet .mc-head{height:15mm;margin:0 0 3mm;padding:0 4mm}
  .cal-sheet .mc-title{font-size:30pt}
  .cal-sheet.mc-sheet[data-design="classic"] .mc-title,.cal-sheet.mc-sheet[data-design="minimal"] .mc-title{font-size:22pt}
  .cal-sheet .mc-sub{font-size:10pt}
  .cal-sheet .mc-table,.cal-sheet.mc-sheet[data-orient="portrait"] .mc-table{flex:1 1 auto;min-height:0;aspect-ratio:auto;grid-template-rows:8mm repeat(var(--rows,5),minmax(0,1fr))}
  .cal-sheet .mc-table th{font-size:8pt;padding:0 2mm}
  .cal-sheet .mc-table td{padding:1.2mm 1.5mm}
  .cal-sheet .mc-d{min-width:7mm;height:7mm;font-size:13pt;border-radius:3.5mm}
  .cal-sheet .mc-h{font-size:7pt;margin-top:.6mm}
  .cal-sheet .mc-strip,.cal-sheet .mc-notes{margin-top:3mm}
  .cal-sheet .mc-strip-label,.cal-sheet .mc-notes-label{font-size:9pt;height:auto;line-height:1.2;margin-bottom:1.2mm}
  .cal-sheet .mc-strip-boxes span{height:6.5mm;font-size:5.5pt}
  .cal-sheet .mc-notes i{height:7mm}
  .cal-sheet .mc-foot{margin-top:2mm;font-size:7.5pt}
}
/* Habit tracker designs */
/* /tools/habit-tracker-template/: a gallery of six printable designs drawn in CSS, and a live preview that is the real
   print page scaled into a fixed 4:3 frame (so nothing below it moves when the script draws it). Sheets stay light in dark mode. */
.tool-app.hd-app{display:block}
.hd-gallery h2{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:0 0 10px}
.hd-designs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.hd-design{position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 8px 10px;border:1.5px solid #e6dfd2;border-radius:16px;background:#fff;cursor:pointer;min-width:0}
.hd-design input{position:absolute;opacity:0;width:1px;height:1px}
.hd-design:has(input:checked){border-color:#1550b8;background:#e7f0ff;box-shadow:inset 0 0 0 1px #1550b8}
.hd-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.hd-design-name{margin-top:6px;font-weight:800;font-size:14px;line-height:1.2;color:#172033}
.hd-design-note{font-size:12px;line-height:1.3;color:#5b6475}
.hd-thumb{position:relative;display:block;aspect-ratio:4/3;border-radius:10px;border:1px solid #e3dccf;background-color:#fff;overflow:hidden}
.hd-thumb::before{content:"";position:absolute;left:9%;top:8%;width:42%;height:5%;border-radius:2px;background:#172033}
.hd-thumb-monthly{background:linear-gradient(#fff,#fff) 9% 22%/22% 70% no-repeat,repeating-linear-gradient(90deg,#c9cfdb 0 1px,transparent 1px 5px) 9% 22%/84% 70% no-repeat,repeating-linear-gradient(#c9cfdb 0 1px,transparent 1px 7px) 9% 22%/84% 70% no-repeat}
.hd-thumb-monthly::after{content:"";position:absolute;left:34%;top:27%;width:4px;height:6px;background:#1550b8;box-shadow:5px 0 #1550b8,10px 0 #1550b8,20px 0 #1550b8,0 7px #e4632e,5px 7px #e4632e,15px 7px #e4632e,10px 14px #1550b8,15px 14px #1550b8,20px 14px #1550b8,25px 14px #1550b8,0 21px #e4632e,10px 21px #e4632e}
.hd-thumb-circle i{position:absolute;left:50%;top:56%;width:68%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff 0 26%,transparent 27%),repeating-radial-gradient(circle,transparent 0 6px,#c9cfdb 6px 7px),repeating-conic-gradient(#c9cfdb 0 1.2deg,transparent 1.2deg 11.6deg),conic-gradient(#1550b8aa 0 70deg,#fff 70deg 110deg,#e4632eaa 110deg 150deg,#fff 150deg);border:1px solid #9aa3b2}
.hd-thumb-minimal{background:repeating-linear-gradient(#fff 0 9px,#dde1e8 9px 10px) 9% 22%/84% 72% no-repeat}
.hd-thumb-minimal::after{content:"";position:absolute;left:9%;right:7%;top:26%;height:64%;background:radial-gradient(circle,#b8bfcc 1.4px,transparent 1.9px) 0 0/7px 10px;-webkit-mask:linear-gradient(90deg,transparent 0 22%,#000 22%);mask:linear-gradient(90deg,transparent 0 22%,#000 22%)}
.hd-thumb-weekly{background:repeating-linear-gradient(90deg,#c9cfdb 0 1px,transparent 1px 12%) 34% 22%/60% 60% no-repeat,repeating-linear-gradient(#c9cfdb 0 1px,transparent 1px 8px) 9% 22%/85% 60% no-repeat,linear-gradient(#e7f0ff,#e7f0ff) 9% 88%/85% 7% no-repeat}
.hd-thumb-weekly::after{content:"";position:absolute;left:40%;top:26%;width:6px;height:5px;background:#1550b8;box-shadow:14px 0 #1550b8,28px 8px #1550b8,0 16px #e4632e,14px 16px #e4632e,42px 16px #e4632e}
.hd-thumb-kids{display:flex;flex-direction:column;justify-content:flex-end;gap:1px;padding:0 6% 8%;background:#fff7ea}
.hd-thumb-kids::before{background:#e4632e}
.hd-thumb-kids b{display:block;font:400 clamp(12px,1.5vw,18px)/1.05 system-ui,sans-serif;letter-spacing:.2em;color:#f0a070;text-align:right;border-bottom:1px solid #f2d3a8}
.hd-thumb-year{background:repeating-linear-gradient(90deg,#c9cfdb 0 1px,transparent 1px 7%) 20% 20%/72% 74% no-repeat,repeating-linear-gradient(#c9cfdb 0 1px,transparent 1px 3px) 20% 20%/72% 74% no-repeat}
.hd-thumb-year::after{content:"";position:absolute;left:21%;top:24%;width:6%;height:3px;background:#1550b8;box-shadow:0 6px #e4632e,7px 3px #1550b8,14px 9px #1550b8,21px 3px #e4632e,28px 12px #1550b8,35px 18px #1550b8,42px 6px #e4632e,0 24px #1550b8,7px 30px #1550b8,49px 27px #e4632e}
.hd-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.hd-bar .button{min-height:46px}
.hd-paper{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#3e4a56}
.hd-paper select{min-height:46px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-weight:600}
.hd-status{min-height:1.5em}
.hd-work{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;align-items:start;margin-top:14px}
.hd-fields h2{font-size:22px}.hd-fields .build-field{margin-top:8px}.hd-fields .build-field input{min-height:48px}
.hd-fields .tt-habits input{min-height:46px;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit}
.hd-more summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;color:#1550b8}
.hd-current{margin:0 0 8px;font-size:13px;font-weight:700;color:#5b6475}
.hd-frame{position:relative;aspect-ratio:4/3;border-radius:18px;background:#e9edf3;overflow:hidden}
/* The print page itself. Screen: page size plus a 10 mm margin, scaled down by the script; print: exactly one page. */
.hd-sheet{position:absolute;top:0;left:0;transform-origin:0 0;box-sizing:content-box;padding:10mm;display:flex;flex-direction:column;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;box-shadow:0 10px 30px #17203326}
.hd-sheet[data-paper="letter"][data-orient="landscape"]{width:259mm;height:193mm}
.hd-sheet[data-paper="letter"][data-orient="portrait"]{width:195mm;height:257mm}
.hd-sheet[data-paper="a4"][data-orient="landscape"]{width:277mm;height:188mm}
.hd-sheet[data-paper="a4"][data-orient="portrait"]{width:190mm;height:274mm}
.hd-sheet .hd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm;padding-bottom:2mm;margin-bottom:3mm;border-bottom:2px solid #172033}
.hd-sheet .hd-kicker{margin:0;font-size:8pt;font-weight:800;letter-spacing:2px;color:#1550b8}
.hd-sheet .hd-title{margin:1mm 0 0;font:700 22pt/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.hd-sheet .hd-sub{margin:0;max-width:95mm;font-size:9pt;line-height:1.35;text-align:right;color:#5b6475}
.hd-sheet .hd-body{flex:1;min-height:0;display:flex;flex-direction:column}
.hd-sheet .hd-foot{display:flex;justify-content:space-between;gap:6mm;margin-top:2mm;font-size:7.5pt;color:#666}
.hd-sheet .hd-table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}
.hd-sheet .hd-table th,.hd-sheet .hd-table td{border:.6pt solid #9aa3b2;padding:0;text-align:center;font-size:8pt;font-weight:700;color:#172033;overflow:hidden}
.hd-sheet .hd-table thead th{height:6mm;background:#e7f0ff;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.hd-sheet .hd-table tbody tr:nth-child(even) td{background:#f7f9fd;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.hd-sheet .hd-table .hd-name-col{width:42mm;padding:0 2mm;text-align:left;font-size:9.5pt;white-space:nowrap;text-overflow:ellipsis}
.hd-sheet .hd-table .hd-total-col{width:11mm}
.hd-sheet .hd-table .hd-goal-col{width:15mm;font-size:8pt;color:#5b6475}
.hd-sheet .hd-table tr.hd-wd th{height:4.5mm;font-size:6.5pt;font-weight:600;color:#5b6475;background:#fff}
.hd-sheet .hd-table-week .hd-name-col{width:50mm;font-size:10pt}
.hd-sheet .hd-notes{display:grid;grid-template-columns:1fr 1fr;gap:6mm;margin-top:4mm}
.hd-sheet .hd-notes h3{margin:0;font:700 11pt/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:0}
.hd-sheet .hd-rule{display:block;height:8mm;border-bottom:.6pt solid #9aa3b2}
.hd-sheet .hd-table-kids .hd-name-col{width:62mm;font-size:14pt;font-family:'Fraunces','Fraunces Fallback',Georgia,serif}
.hd-sheet .hd-table-kids thead th{height:9mm;font-size:12pt;background:#fff0d5}
.hd-sheet .hd-table-kids td{font-size:28pt;font-weight:400;color:#f0a070;border-width:1.2pt;border-color:#e4632e}
.hd-sheet .hd-table-kids th{border-width:1.2pt;border-color:#e4632e}
.hd-sheet .hd-table-kids tbody tr:nth-child(even) td{background:#fffaf2}
.hd-sheet .hd-reward{margin:4mm 0 0;font:600 14pt/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.hd-sheet[data-design="kids"] .hd-kicker{color:#e4632e}
.hd-sheet .hd-body-circle{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:4mm}
.hd-sheet .hd-circle-wrap{min-height:0;display:flex;justify-content:center}
.hd-sheet .hd-circle{height:100%;width:auto;max-width:100%}
.hd-sheet .hd-w{fill:#fff;stroke:#8d97a8;stroke-width:1}
.hd-sheet .hd-w-alt{fill:#f1f5fc}
.hd-sheet .hd-ring-no{font:800 11px 'DM Sans','DM Sans Fallback',sans-serif;fill:#1550b8;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:#fff;stroke-width:3px}
.hd-sheet .hd-day-no{font:600 12px 'DM Sans','DM Sans Fallback',sans-serif;fill:#5b6475;text-anchor:middle;dominant-baseline:central}
.hd-sheet .hd-centre{font:700 30px 'Fraunces','Fraunces Fallback',Georgia,serif;fill:#172033;text-anchor:middle}
.hd-sheet .hd-centre-sub{font:600 16px 'DM Sans','DM Sans Fallback',sans-serif;fill:#5b6475;text-anchor:middle}
.hd-sheet .hd-legend{margin:0;padding-left:7mm;columns:2;column-gap:10mm;font-size:10pt;font-weight:600}
.hd-sheet .hd-legend li{min-height:7mm;padding-top:1.5mm;border-bottom:.6pt solid #c9cfdb;break-inside:avoid}
.hd-sheet .hd-lines{justify-content:space-between}
.hd-sheet .hd-line-nums,.hd-sheet .hd-dots{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));gap:1.2mm}
.hd-sheet .hd-line-nums span{text-align:center;font-size:6.5pt;color:#8a94a6}
.hd-sheet .hd-line-name{margin:0 0 1.5mm;min-height:5mm;padding-bottom:.8mm;border-bottom:.6pt solid #dde1e8;font:600 11pt/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.hd-sheet .hd-dots i{display:block;aspect-ratio:1;border:.8pt solid #9aa3b2;border-radius:50%}
.hd-sheet .hd-body-year{gap:2mm}
.hd-sheet .hd-px-habit{margin:0;font:600 12pt/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.hd-sheet .hd-px-key{display:flex;gap:7mm;margin:0;font-size:9pt;font-weight:600}
.hd-sheet .hd-px-key span{display:inline-flex;align-items:center;gap:2mm}
.hd-sheet .hd-px-key i{display:inline-block;width:5mm;height:5mm;border:.8pt solid #9aa3b2;border-radius:1mm}
.hd-sheet .hd-pixels{flex:1;min-height:0;display:grid;grid-template-columns:7mm repeat(12,minmax(0,1fr));grid-template-rows:auto repeat(31,minmax(0,1fr));gap:.8mm}
.hd-sheet .hd-px-head,.hd-sheet .hd-px-day{display:grid;place-items:center;font-size:7.5pt;font-weight:700;color:#5b6475}
.hd-sheet .hd-px-head{font-size:9pt;color:#172033}
.hd-sheet .hd-pixels i{border:.6pt solid #b8bfcc;border-radius:.8mm}
.hd-sheet .hd-pixels i.is-off{border-color:#e6e1d8;background:#f1ede5;print-color-adjust:exact;-webkit-print-color-adjust:exact}
@media(max-width:1100px){.hd-designs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.hd-work{grid-template-columns:1fr}.hd-preview{order:-1}}
@media(max-width:640px){
.hd-designs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:40%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:2px 16px 6px;scroll-padding:0 16px;scrollbar-width:thin}
.hd-design{scroll-snap-align:start}
.hd-gallery h2{font-size:21px}
.hd-bar .button{flex:1 1 calc(50% - 5px);padding:0 10px}
.hd-bar .button-primary{flex-basis:100%}
.hd-paper{flex:1 1 calc(50% - 5px)}.hd-paper select{flex:1;min-width:0}
.hd-fields{padding:18px 16px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page ht-letter-landscape{size:letter landscape;margin:10mm}
@page ht-letter-portrait{size:letter portrait;margin:10mm}
@page ht-a4-landscape{size:A4 landscape;margin:10mm}
@page ht-a4-portrait{size:A4 portrait;margin:10mm}
@media print{
  html:has(.hd-app),body:has(.hd-app){background:#fff!important}
  body:has(.hd-app)>:not(main){display:none!important}
  main:has(.hd-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.hd-app)>:not(.hd-app){display:none!important}
  .hd-app{display:block;margin:0}
  .hd-gallery,.hd-bar,.hd-status,.hd-fields,.hd-current{display:none!important}
  .hd-work{display:block;margin:0}
  .hd-frame{aspect-ratio:auto;overflow:visible;background:none;border-radius:0}
  .hd-sheet{position:static;transform:none!important;width:auto!important;padding:0;box-shadow:none;overflow:hidden;break-inside:avoid}
  .hd-sheet[data-paper="letter"][data-orient="landscape"]{page:ht-letter-landscape}
  .hd-sheet[data-paper="letter"][data-orient="portrait"]{page:ht-letter-portrait}
  .hd-sheet[data-paper="a4"][data-orient="landscape"]{page:ht-a4-landscape}
  .hd-sheet[data-paper="a4"][data-orient="portrait"]{page:ht-a4-portrait}
}
/* /tools/habit-tracker/: the way into the printable designs */
.ht-designs-link{display:flex;align-items:center;gap:12px;margin:14px 0 0;padding:10px 14px;min-height:56px;border:1px solid #cfdcf5;border-radius:16px;background:#fff;text-decoration:none;color:#172033}
.ht-designs-link:hover{border-color:#1550b8}
.ht-designs-link .hd-thumb{flex:none;width:58px}
.ht-designs-link strong{display:block;font-size:15px}
.ht-designs-link span:not(.hd-thumb){display:block;font-size:13px;line-height:1.35;color:#5b6475}
.ht-designs-link em{margin-left:auto;font-style:normal;font-weight:800;color:#1550b8;white-space:nowrap}
@media(max-width:560px){.ht-designs-link em{display:none}}
@media print{.ht-designs-link{display:none!important}}
html[data-theme="dark"] .hd-design:has(input:checked){border-color:#8bacef;box-shadow:inset 0 0 0 1px #8bacef}
/* Journal prompts upgrade */
/* /tools/journal-prompt-finder/: set and time chips (server-rendered, ?set= preselects one), "Give me one", a phone image,
   and printable prompt cards and a 30-day calendar in three designs. The print page is scaled into a fixed 3:4 frame. */
.jp-chips{display:flex;flex-wrap:wrap;gap:6px}
.jp-times{align-items:center;margin-top:8px}
.jp-times-label{margin-right:4px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.jp-chip{position:relative;display:inline-flex}
.jp-chip input{position:absolute;opacity:0;width:1px;height:1px}
.jp-chip span{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:999px;background:#fff;font-size:14px;font-weight:700;color:#172033;cursor:pointer;white-space:nowrap}
.jp-chip input:checked+span{border-color:#1550b8;background:#1550b8;color:#fff}
.jp-chip input:focus-visible+span{outline:3px solid #f2783c;outline-offset:2px}
.jp-times .jp-chip span{min-height:44px;padding:0 12px;font-size:13px}
.jp-prompt-box{margin-top:14px;padding-top:14px;border-top:1px solid #eee4d5;min-height:188px}
.jp-actions{margin-top:4px}
.jp-actions .button{min-height:46px}
.jp-printables{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start;padding:24px;border-radius:24px;background:#fff;border:1px solid #eee4d5}
.jp-print-setup h2{margin:0 0 6px;font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.jp-page-pick{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.jp-thumb{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid #9aa3b2}
.jp-thumb-classic{background:linear-gradient(135deg,#fffdf8 50%,#1550b8 50%)}
.jp-thumb-warm{background:linear-gradient(135deg,#fff6ea 50%,#e4632e 50%)}
.jp-thumb-ink{background:linear-gradient(135deg,#fff 50%,#111 50%)}
.jp-paper{margin-top:12px}
.jp-print-setup .tool-actions{margin-top:14px}
.jp-frame{position:relative;aspect-ratio:3/4;width:100%;max-width:520px;justify-self:center;border-radius:18px;background:#e9edf3;overflow:hidden}
.jp-print{position:absolute;top:0;left:0;transform-origin:0 0;box-sizing:content-box;padding:10mm;display:flex;flex-direction:column;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;box-shadow:0 10px 30px #17203326}
.jp-print[data-paper="letter"]{width:195mm;height:257mm}
.jp-print[data-paper="a4"]{width:190mm;height:274mm}
.jp-print .jp-p-head{text-align:center;margin-bottom:4mm}
.jp-print .jp-p-kicker{margin:0;font-size:8pt;font-weight:800;letter-spacing:2px;color:#1550b8}
.jp-print .jp-p-title{margin:1mm 0;font:700 21pt/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:inherit}
.jp-print .jp-p-sub{margin:0;font-size:9pt;color:#5b6475}
.jp-print .jp-p-foot{display:flex;justify-content:space-between;gap:6mm;margin-top:3mm;font-size:7.5pt;color:#555}
.jp-print .jp-p-cards{flex:1;min-height:0;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));border-top:1px dashed #9aa3b2;border-left:1px dashed #9aa3b2}
.jp-print .jp-p-cards li{display:flex;flex-direction:column;gap:2mm;padding:4mm;border-right:1px dashed #9aa3b2;border-bottom:1px dashed #9aa3b2;overflow:hidden}
.jp-print .jp-p-tag{font-size:6.5pt;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#1550b8}
.jp-print .jp-p-cards .jp-p-q{margin:0;font:600 11.5pt/1.3 'Fraunces','Fraunces Fallback',Georgia,serif}
.jp-print .jp-p-mark{margin-top:auto;font-size:6pt;color:#8a94a6}
.jp-print .jp-p-cal{flex:1;min-height:0;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:2mm}
.jp-print .jp-p-cal li{display:flex;flex-direction:column;gap:1mm;padding:2mm 2.5mm;border:1px solid #b9b2a6;border-radius:2mm;overflow:hidden}
.jp-print .jp-p-top{display:flex;align-items:center;justify-content:space-between}
.jp-print .jp-p-day{font-size:7.5pt;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1550b8}
.jp-print .jp-p-box{width:4mm;height:4mm;border:1.2px solid #555;border-radius:1mm}
.jp-print .jp-p-cal .jp-p-q{margin:0;font-size:8.5pt;line-height:1.3}
.jp-print.jp-design-warm{background:#fff6ea;color:#4a2412}
.jp-print.jp-design-warm .jp-p-kicker,.jp-print.jp-design-warm .jp-p-tag,.jp-print.jp-design-warm .jp-p-day{color:#c8552b}
.jp-print.jp-design-warm .jp-p-title{font-style:italic}
.jp-print.jp-design-warm .jp-p-cards,.jp-print.jp-design-warm .jp-p-cards li{border-color:#e4a57c}
.jp-print.jp-design-warm .jp-p-cards li:nth-child(odd){background:#fff}
.jp-print.jp-design-warm .jp-p-cal li{background:#fff;border-color:#f0c9a4}
.jp-print.jp-design-warm .jp-p-box{border-color:#e4632e;border-radius:50%}
.jp-print.jp-design-ink .jp-p-kicker,.jp-print.jp-design-ink .jp-p-tag,.jp-print.jp-design-ink .jp-p-day{color:#111}
.jp-print.jp-design-ink .jp-p-head{text-align:left;border-bottom:2px solid #111;padding-bottom:2mm}
.jp-print.jp-design-ink .jp-p-cal li{border-radius:0;border-color:#777}
.jp-print.jp-design-ink .jp-p-cards,.jp-print.jp-design-ink .jp-p-cards li{border-color:#777}
@media(max-width:860px){.jp-printables{grid-template-columns:1fr}}
@media(max-width:640px){
.jp-app .jp-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:2px 18px 4px}
.jp-app .jp-chips::-webkit-scrollbar{display:none}
.jp-chip{flex:none}
.jp-prompt-box{min-height:210px}
.jp-actions .button{flex:1 1 calc(50% - 5px);padding:0 10px}
.jp-actions .button-primary{flex-basis:100%}
.jp-printables{padding:18px}
.jp-print-setup .tool-actions .button{flex:1 1 100%}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page jp-letter{size:letter portrait;margin:10mm}
@page jp-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.jp-app),body:has(.jp-app){background:#fff!important}
  body:has(.jp-app)>:not(main){display:none!important}
  main:has(.jp-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.jp-app)>:not(.jp-app){display:none!important}
  .jp-app{display:block;margin:0}
  .jp-app>:not(.jp-printables),.jp-print-setup{display:none!important}
  .jp-printables{display:block;padding:0;border:0;background:none}
  .jp-frame{aspect-ratio:auto;max-width:none;overflow:visible;background:none;border-radius:0}
  .jp-print{position:static;transform:none!important;width:auto!important;padding:0;box-shadow:none;overflow:hidden;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .jp-print.jp-design-warm{padding:0 3mm;box-sizing:border-box}
  .jp-print[data-paper="letter"]{page:jp-letter}
  .jp-print[data-paper="a4"]{page:jp-a4}
}
html[data-theme="dark"] .jp-chip input:checked+span{background:#1550b8;border-color:#8bacef;color:#fff}
/* Bucket list */
/* /tools/bucket-list/: the list (example first) with progress, dates and ticks beside a filterable library of 150+ ideas,
   a one-page print in three designs, a blank template and a phone PNG. Printouts stay light in dark mode (KEEP_SELECTORS). */
.bl-app{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.bl-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.bl-head h2{margin:4px 0 0}
.bl-progress{display:flex;align-items:center;gap:12px;margin-top:10px}
.bl-bar{flex:1;height:10px;border-radius:99px;background:#eee4d5;overflow:hidden}.bl-bar span{display:block;height:100%;border-radius:inherit;background:#e4632e;transition:width .3s}
.bl-progress p{margin:0;flex:none;font-size:14px;font-weight:700;color:#12367f}
.bl-actions{margin-top:14px}.bl-actions .button{margin:0}
.bl-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px}
.bl-item{display:grid;grid-template-columns:minmax(0,1fr) 112px 44px;align-items:center;gap:6px;padding-left:12px;border-radius:12px;background:#fffdf8;border:1.5px solid #eee4d5}
.bl-item.is-done{background:#fff0d5;border-color:#f2c48e}
.bl-check{display:flex;align-items:center;gap:12px;min-height:48px;padding:4px 0;cursor:pointer;line-height:1.35;min-width:0}
.bl-check input{flex:none;width:22px;height:22px;margin:0;accent-color:#e4632e}
.bl-text{min-width:0;overflow-wrap:anywhere}
.bl-item.is-done .bl-text{text-decoration:line-through;text-decoration-color:#e4632e;text-decoration-thickness:2px}
.bl-when-text{display:none}
.bl-when{width:100%;min-height:44px;padding:0 10px;border:1.5px dashed #d8cdbb;border-radius:10px;background:transparent;font:500 14px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.bl-when:focus{border-style:solid;border-color:#1550b8;outline:none;background:#fff}
.bl-when::placeholder{color:#767b85}
.bl-remove{width:44px;height:44px;border:0;border-radius:12px;background:none;color:#5b6475;font-size:22px;line-height:1;cursor:pointer}.bl-remove:hover{color:#c2410c}
.bl-listfoot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px}
.bl-listfoot .text-button,.bl-ideas .tool-note .text-button{min-height:44px}
.bl-listfoot [data-bl-dates]{display:none}
.bl-ideas h2{margin-bottom:0}
.bl-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.bl-own .build-field{margin-top:12px}.bl-own .button{margin:0;min-height:48px}
.bl-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.bl-filter{min-height:44px;padding:0 14px;border:1.5px solid #ddd3c4;border-radius:999px;background:#fffdf8;color:#172033;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.bl-filter[aria-pressed="true"]{background:#172033;border-color:#172033;color:#fffdf8}
.bl-filter:focus-visible,.bl-chip:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.bl-count{margin:10px 0 0;font-size:13.5px;font-weight:700;color:#5b6475}
.bl-pool{height:420px;overflow-y:auto;margin-top:8px;padding:2px 10px 12px 2px;border-top:1px solid #eee4d5;border-bottom:1px solid #eee4d5;overscroll-behavior:contain}
.bl-pool:focus-visible{outline:3px solid #f2783c}
.bl-group{margin-top:12px}.bl-group[hidden],.bl-chip[hidden]{display:none}
.bl-group h3{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.bl-chips{display:flex;flex-wrap:wrap;gap:6px}
.bl-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:500 14px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:left;cursor:pointer}
.bl-chip:hover{border-color:#e4632e}
.bl-chip[aria-pressed="true"]{border-color:#e4632e;background:#fff0d5}
.bl-chip[aria-pressed="true"]::before{content:"✓";font-weight:800;color:#c2410c}
.bl-chip:disabled{opacity:.45;cursor:not-allowed}
.bl-designs{border:0;padding:0;min-width:0}.bl-designs legend{padding:0;margin-bottom:8px}.bl-designs .choice span{min-height:44px;padding:8px 14px;font-size:14px}
.bl-print-area{display:none}
.bl-print{background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.bl-print .bl-p-head{text-align:center;margin-bottom:14px}
.bl-print .bl-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.bl-print .bl-p-head h2{margin:2px 0;font:700 38px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.bl-print .bl-p-meta{margin:0;font-size:12px;color:#5b6475}
.bl-print .bl-p-list{list-style:none;margin:0;padding:0}
.bl-print .bl-p-list li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed #c9c1b3;font-size:15px;line-height:1.3;break-inside:avoid}
.bl-print .bl-p-list i,.bl-print .bl-p-blank i{display:grid;place-items:center;width:18px;height:18px;border:1.5px solid #555;border-radius:4px;font:normal 700 13px/1 'DM Sans','DM Sans Fallback',sans-serif}
.bl-print .bl-p-when{min-width:90px;font-size:12px;color:#5b6475;text-align:right;border-bottom:1px solid #c9c1b3;padding-bottom:1px}
.bl-print .bl-p-list li.is-done .bl-p-text{text-decoration:line-through}
.bl-print.is-long .bl-p-list{columns:2;column-gap:24px}.bl-print.is-long .bl-p-list li{padding:4px 0;font-size:12px}.bl-print.is-long .bl-p-when{min-width:60px;font-size:10px}
.bl-print .bl-p-blank{list-style:none;margin:0;padding:0}
.bl-print .bl-p-blank li{display:grid;grid-template-columns:22px 26px minmax(0,1fr) 110px;gap:8px;align-items:end;height:27px}
.bl-print .bl-p-blank b{font-size:11px;color:#5b6475;text-align:right}
.bl-print .bl-p-line,.bl-print .bl-p-wline{height:1px;background:#b9b1a3}
.bl-print .bl-p-blank .bl-p-cols{height:auto;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#5b6475}
.bl-print .bl-p-cols span:nth-child(2){grid-column:3}
.bl-print .bl-p-foot{margin-top:14px;font-size:10px;color:#555;text-align:right}
.bl-print.bl-design-adventure .bl-p-head{padding:16px;border-radius:12px;background:#172033;color:#fff}
.bl-print.bl-design-adventure .bl-p-kicker{color:#f2783c}.bl-print.bl-design-adventure .bl-p-meta{color:#c9d2e3}
.bl-print.bl-design-adventure .bl-p-head h2{text-transform:uppercase;letter-spacing:.5px}
.bl-print.bl-design-adventure i{border-color:#e4632e;color:#e4632e}
.bl-print.bl-design-soft{padding:14px 18px;background:#fbefe4;color:#4a2e1f}
.bl-print.bl-design-soft .bl-p-kicker{color:#c8552b}.bl-print.bl-design-soft .bl-p-head h2{font-style:italic;font-weight:600}
.bl-print.bl-design-soft i{border-color:#c8552b;color:#c8552b;border-radius:50%}
.bl-print.bl-design-soft .bl-p-list li{border-bottom-color:#e8cdb4}.bl-print.bl-design-soft .bl-p-when,.bl-print.bl-design-soft .bl-p-meta{color:#7a5a45}
@media(max-width:860px){.bl-app{grid-template-columns:1fr}.bl-pool{height:360px}}
@media(max-width:560px){
.bl-output{padding:16px}.bl-actions{width:100%}.bl-actions .button{flex:1;padding:0 10px;min-height:44px}
.bl-item{grid-template-columns:minmax(0,1fr) 44px}.bl-when{display:none}
.bl-when-text{display:block;margin-top:1px;font-size:12.5px;font-weight:700;color:#b24618}.bl-when-text:empty{display:none}
.bl-listfoot [data-bl-dates]{display:inline-flex;align-items:center}
.bl-dating .bl-item{padding-bottom:8px}
.bl-dating .bl-when{display:block;grid-column:1;grid-row:2;min-height:44px}
.bl-dating .bl-when-text{display:none}
.bl-ideas{padding:16px}.bl-filter{padding:0 12px;font-size:13.5px}.bl-chip{font-size:13.5px}
}
@media print{
.tool-shell:has(.bl-app),.tool-shell:has(.wl-app){width:auto;max-width:none;padding:0;margin:0}
.bl-app{display:block;margin:0}
.bl-app>:not(.bl-print-area){display:none!important}
.bl-print-area{display:block}
.bl-print-blank,html.bl-printing-blank .bl-print-list{display:none}
html.bl-printing-blank .bl-print-blank{display:block}
.bl-print{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.bl-print:not(.is-long) .bl-p-list li{font-size:16px;padding:8px 0}
}
/* Wheel of life */
/* /tools/wheel-of-life/: an SVG wheel that follows 8 sliders (example drawn on the server), the two lowest areas with
   one habit each, saved scores to compare, a one-page print (filled or blank) and a phone PNG. The wheel disk and the
   printouts keep their light colours in dark mode (darkcss KEEP_SELECTORS). */
.wl-app{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"card form" "focus form"}
.wl-card{grid-area:card}.wl-form{grid-area:form}.wl-focus{grid-area:focus;min-width:0}
.wl-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.wl-head h2{margin:4px 0 0}
.wl-figure{margin:12px auto 0;max-width:440px;aspect-ratio:1;border-radius:50%;background:#fffdf8}
.wl-figure .wl-svg{display:block;width:100%;height:100%}
.wl-mini .wl-rings circle,.wl-figure .wl-rings circle,.wl-print .wl-rings circle{fill:none;stroke:#1720332e;stroke-width:1;stroke-dasharray:3 3}
.wl-mini .wl-spokes path,.wl-figure .wl-spokes path,.wl-print .wl-spokes path{stroke:#fffdf8;stroke-width:2}
.wl-mini .wl-prev,.wl-figure .wl-prev,.wl-print .wl-prev{fill:none;stroke:#172033;stroke-width:2.5;stroke-dasharray:6 4}
.wl-figure .wl-ring-labels text,.wl-print .wl-ring-labels text{font:700 9px 'DM Sans','DM Sans Fallback',sans-serif;fill:#5b6475}
.wl-mini .wl-badges text,.wl-figure .wl-badges text,.wl-print .wl-badges text{font:800 14px 'DM Sans','DM Sans Fallback',sans-serif;fill:#ffffff;text-anchor:middle}
.wl-print .wl-labels text{font:700 15px 'DM Sans','DM Sans Fallback',sans-serif;fill:#172033}
.wl-print .wl-label-score{font-weight:800;fill:#1550b8}
.wl-summary{margin:10px 0 0;font-size:15px;line-height:1.5;font-weight:600;color:#12367f;min-height:3em}
.wl-actions{margin-top:12px}.wl-actions .button{margin:0}
.wl-blank-btn{min-height:44px;margin-top:4px}
.wl-help{margin:4px 0 0;font-size:14.5px;line-height:1.5;color:#3e4a56}
.wl-rows{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:4px}
.wl-row{display:grid;grid-template-columns:28px minmax(0,1fr) 34px 34px;grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:6px 10px 2px;border-radius:14px;background:#fffdf8;border:1px solid #eee4d5}
.wl-num{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;font:800 13px/1 'DM Sans','DM Sans Fallback',sans-serif}
.wl-name{min-width:0;min-height:44px;padding:0 8px;border:1.5px solid transparent;border-radius:10px;background:transparent;font:700 16px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.wl-name:hover{border-color:#eee4d5}.wl-name:focus{border-color:#1550b8;background:#fff;outline:none}
.wl-val{font:700 22px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;text-align:right}
.wl-delta{font-size:13px;font-weight:800;color:#5b6475}.wl-delta.is-up{color:#1f7a45}.wl-delta.is-down{color:#b3261e}
.wl-range{grid-column:1/-1;width:100%;height:44px;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none}
.wl-range::-webkit-slider-runnable-track{height:8px;border-radius:99px;background:linear-gradient(to right,var(--c) var(--pct,50%),#e6dfd2 var(--pct,50%))}
.wl-range::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-10px;border-radius:50%;background:#ffffff;border:4px solid var(--c);box-shadow:0 2px 6px #17203340}
.wl-range::-moz-range-track{height:8px;border-radius:99px;background:#e6dfd2}
.wl-range::-moz-range-progress{height:8px;border-radius:99px;background:var(--c)}
.wl-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#ffffff;border:4px solid var(--c);box-shadow:0 2px 6px #17203340}
.wl-range:focus-visible{outline:3px solid #f2783c;outline-offset:2px;border-radius:8px}
@media(min-width:1100px){.wl-row{grid-template-columns:28px minmax(0,205px) minmax(0,1fr) 30px 30px;grid-template-rows:auto;padding:4px 10px}.wl-range{grid-column:3;grid-row:1}.wl-val{grid-column:4}.wl-delta{grid-column:5}}
.wl-compare{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:end;margin-top:16px;padding-top:14px;border-top:1px solid #eee4d5}
.wl-compare .button{margin:0;min-height:48px}
.wl-compare-field{display:grid;gap:4px;font-size:13px;font-weight:700;color:#3e4a56}
.wl-compare-field select{min-height:48px;width:100%;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:500 15px 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.wl-compare-note{grid-column:1/-1;margin:0;min-height:2.8em}
.wl-form .tool-note .text-button{min-height:44px}
.wl-focus h2{font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;margin:4px 0 12px}
.wl-focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wl-focus-card{padding:16px;border-radius:18px;background:#fff;border:1px solid #eee4d5;border-top:5px solid var(--c)}
.wl-focus-area{margin:0;display:flex;justify-content:space-between;gap:8px;font-size:15px}.wl-focus-area span{font-weight:800;color:#5b6475}
.wl-focus-habit{margin:8px 0 4px;font:700 18px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.wl-focus-why{margin:0;font-size:14px;line-height:1.5;color:#3e4a56}
.wl-focus-links{display:grid;gap:0;margin:8px 0 0}
.wl-focus-links a{display:flex;align-items:center;min-height:44px;font-weight:700;color:#1550b8;text-underline-offset:3px}
.wl-print-area{display:none}
.wl-print{background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.wl-print .wl-p-head{text-align:center;margin-bottom:6px}
.wl-print .wl-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#e4632e}
.wl-print .wl-p-head h2{margin:2px 0;font:700 34px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.wl-print .wl-p-meta{margin:0;font-size:12px;color:#5b6475}
.wl-print .wl-p-svg{display:block;width:100%;max-width:640px;height:auto;margin:0 auto}
.wl-print .wl-p-scores{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;counter-reset:wl}
.wl-print .wl-p-scores li{counter-increment:wl;display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid #e3ddd2;font-size:13px}
.wl-print .wl-p-scores li::before{content:counter(wl);display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--c);color:#fff;font-size:10px;font-weight:800}
.wl-print .wl-p-scores span{flex:1}
.wl-print .wl-p-focus{margin-top:10px;padding:10px 14px;border:1.5px solid #d9d2c5;border-radius:12px}
.wl-print .wl-p-focus h3{margin:0 0 4px;font:700 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.wl-print .wl-p-focus p{margin:4px 0 0;font-size:13px;line-height:1.4}
.wl-print .wl-p-lines p{margin:0;padding:18px 0 4px;border-bottom:1px solid #b9b1a3;font-size:12px;font-weight:700;color:#5b6475}
.wl-print .wl-p-foot{margin-top:10px;font-size:10px;color:#555;text-align:right}
@media(max-width:900px){.wl-app{grid-template-columns:1fr;grid-template-areas:"card" "form" "focus"}}
@media(max-width:560px){
.wl-card,.wl-form{padding:16px}.wl-actions{width:100%}.wl-actions .button{flex:1;padding:0 10px;min-height:44px}
.wl-focus-grid{grid-template-columns:1fr}.wl-compare{grid-template-columns:1fr}.wl-focus h2{font-size:21px}
}
@media print{
html:has(.wl-app),html:has(.bl-app),body:has(.wl-app),body:has(.bl-app){background:#fff}
.wl-app{display:block;margin:0}
.wl-app>:not(.wl-print-area){display:none!important}
.wl-print-area{display:block}
.wl-print-blank,html.wl-printing-blank .wl-print-result{display:none}
html.wl-printing-blank .wl-print-blank{display:block}
.wl-print{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.wl-print .wl-p-svg{max-width:7in}
.wl-print-blank .wl-p-svg{max-width:none}
}
/* Reward chart */
/* /tools/reward-chart/: a fill-in sticker chart (behaviors × days, or a 10/20/30-box goal line) in five designs, options beside it
   (below on phones), one-page print and a blank chart. The sheet is paper, so it keeps its colors in dark mode (KEEP_SELECTORS). */
.rc-sprite{position:absolute;width:0;height:0;overflow:hidden}
.rc-app{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start;margin-bottom:46px}
.rc-stage{min-width:0}
.rc-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.rc-pick{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rc-pick-label{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#526170;margin-right:4px}
.rc-pick-btn{display:grid;place-items:center;width:48px;height:48px;padding:0;border-radius:14px;border:2px solid #e3dccf;background:#fff;cursor:pointer}
.rc-pick-btn .rc-stk{width:30px;height:30px}
.rc-pick-btn[aria-checked="true"]{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8;background:#e7f0ff}
.rc-pick-btn:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.rc-actions{display:flex;gap:8px}.rc-actions .button{margin:0;min-height:46px;padding:0 18px}
.rc-progress{display:grid;grid-template-columns:minmax(80px,200px) 1fr;align-items:center;gap:12px;margin:0 0 12px}
.rc-meter{height:10px;border-radius:99px;background:#eee4d5;overflow:hidden}.rc-meter span{display:block;height:100%;border-radius:inherit;background:#e4632e;transition:width .3s}
.rc-status{margin:0;font-size:14px;font-weight:700;color:#12367f;line-height:1.35;min-height:1.35em}
.rc-progress.is-reached .rc-meter span{background:#1f8a5b}.rc-progress.is-reached .rc-status{color:#1f6b45}
/* The sheet: design tokens, then layout */
.rc-sheet{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--cell:#ffffff;--head:#1550b8;--t1:#ffe3e0;--t2:#fff0d5;--t3:#fff7c7;--t4:#e3f5d8;--t5:#e2ecff;position:relative;overflow:hidden;padding:22px 22px 14px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.rc-sheet[data-design="space"]{--bg:#14214d;--ink:#ffffff;--soft:#c7d2f0;--line:#3a4d8a;--cell:#1f2f68;--head:#ffd166;--t1:#1b2a5c;--t2:#1b2a5c;--t3:#1b2a5c;--t4:#1b2a5c;--t5:#1b2a5c;border-color:#14214d;background-image:radial-gradient(circle at 12% 18%,#fff 0 1.5px,transparent 2px),radial-gradient(circle at 38% 8%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 64% 22%,#fff 0 1.2px,transparent 1.8px),radial-gradient(circle at 88% 60%,#fff 0 1.5px,transparent 2px),radial-gradient(circle at 22% 72%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 52% 92%,#fff 0 1.3px,transparent 1.8px)}
.rc-sheet[data-design="animals"]{--bg:#f6fbef;--ink:#23401f;--soft:#51704a;--line:#cfe3c0;--head:#3f7a28;--t1:#eaf5df;--t2:#fff3dc;--t3:#eaf5df;--t4:#fff3dc;--t5:#eaf5df;border-color:#cfe3c0}
.rc-sheet[data-design="ocean"]{--bg:#eef8fb;--ink:#0f3a52;--soft:#3f6679;--line:#bfe0ea;--head:#12708f;--t1:#dff2f8;--t2:#e8f6ec;--t3:#dff2f8;--t4:#e8f6ec;--t5:#dff2f8;border-color:#bfe0ea}
.rc-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#777777;--head:#111111;--t1:#ffffff;--t2:#ffffff;--t3:#ffffff;--t4:#ffffff;--t5:#ffffff;border-color:#cccccc}
.rc-deco{position:absolute;top:10px;right:14px;width:130px;height:70px;pointer-events:none}
.rc-deco svg{display:none;width:100%;height:100%}
.rc-sheet[data-design="rainbow"] .rc-deco-rainbow,.rc-sheet[data-design="space"] .rc-deco-space,.rc-sheet[data-design="animals"] .rc-deco-animals,.rc-sheet[data-design="ocean"] .rc-deco-ocean{display:block}
.rc-head{position:relative;padding-right:140px;margin-bottom:12px}
.rc-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--head)}
.rc-sheet .rc-name{display:block;width:100%;height:52px;margin:0;padding:0 6px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 38px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.rc-sheet .rc-name:hover{border-color:var(--line)}.rc-sheet .rc-name:focus{outline:none;border-color:var(--head)}
.rc-sheet .rc-name::placeholder,.rc-sheet .rc-beh::placeholder{color:var(--soft);opacity:.7}
.rc-sheet[data-design="animals"] .rc-name,.rc-sheet[data-design="ocean"] .rc-name{font-style:italic}
.rc-week{width:100%;border-collapse:separate;border-spacing:0 6px;table-layout:fixed}
.rc-week[hidden],.rc-line[hidden]{display:none}
.rc-week thead th{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);text-align:center;padding:0 0 2px}
.rc-week .rc-th-beh{width:36%;text-align:left;padding-left:10px}
.rc-week tbody tr>*{background:var(--t1)}
.rc-week tbody tr:nth-child(2)>*{background:var(--t2)}.rc-week tbody tr:nth-child(3)>*{background:var(--t3)}.rc-week tbody tr:nth-child(4)>*{background:var(--t4)}.rc-week tbody tr:nth-child(5)>*{background:var(--t5)}
.rc-week tbody th{border-radius:14px 0 0 14px;padding:4px 4px 4px 8px;text-align:left;font-weight:600}
.rc-week tbody td{padding:4px 3px}.rc-week tbody td:last-child{border-radius:0 14px 14px 0;padding-right:8px}
.rc-beh-cell>.rc-beh{width:calc(100% - 48px);min-height:44px;height:auto;padding:4px 6px;border:1.5px dashed transparent;border-radius:9px;background:transparent;color:var(--ink);font:600 16px/1.25 'DM Sans','DM Sans Fallback',system-ui,sans-serif;vertical-align:middle}
.rc-beh-cell>.rc-beh:hover{border-color:var(--line)}.rc-beh-cell>.rc-beh:focus{outline:none;border-color:var(--head);background:var(--cell)}
.rc-del{width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--soft);font-size:20px;line-height:1;cursor:pointer;vertical-align:middle;border-radius:8px}
.rc-del:hover{color:#b3261e}
.rc-cell,.rc-box{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;min-height:44px;max-height:74px;padding:0;border-radius:12px;border:1.5px solid var(--line);background:var(--cell);cursor:pointer}
.rc-cell:not(.has-sticker)::after{content:"";width:34%;aspect-ratio:1;border-radius:50%;border:1.5px dashed var(--line)}
.rc-cell:hover,.rc-box:hover{border-color:var(--head)}
.rc-cell:focus-visible,.rc-box:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.rc-cell .rc-stk{width:72%;height:72%}
.rc-stk{display:block;width:24px;height:24px}
.rc-cell.is-new .rc-stk,.rc-box.is-new .rc-stk{animation:rc-pop .32s ease-out}
@keyframes rc-pop{0%{transform:scale(.3) rotate(-20deg)}70%{transform:scale(1.15) rotate(4deg)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.rc-cell.is-new .rc-stk,.rc-box.is-new .rc-stk{animation:none}}
.rc-line{list-style:none;padding:0;margin:4px 0 0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.rc-box{max-height:none;border-radius:14px}
.rc-box .rc-stk{width:66%;height:66%}
.rc-box-n{position:absolute;top:3px;left:6px;font:700 11px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--soft)}
.rc-line .is-goal .rc-box{background:#fff0d5;border-color:#e4632e}
.rc-line .is-half .rc-box{border-width:2.5px;border-color:var(--head)}
.rc-line .is-half .rc-box::after{content:"Halfway!";position:absolute;bottom:3px;left:0;right:0;text-align:center;font:800 10px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--head)}
.rc-reward{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 12px;border-radius:14px;border:1.5px dashed var(--line);font:700 18px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--ink)}
.rc-gift{flex:none;width:32px;height:32px}
.rc-credit{margin:8px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.rc-under{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px}
.rc-under .rc-add{margin:0;width:auto;min-height:46px}.rc-under .rc-add[hidden],.rc-under .rc-hint[hidden]{display:none}
.rc-hint{margin:0;font-size:13px;line-height:1.45;color:#526170}
/* Options */
.rc-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.rc-field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0}
.rc-field[hidden]{display:none}
.rc-field legend,.rc-legend{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 6px;padding:0}
.rc-field input[type=text],.rc-field input[type=number],.rc-field select{width:100%;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.rc-field input:focus,.rc-field select:focus{outline:none;border-color:#1550b8}
.rc-seg{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;background:#f4efe6;padding:3px;gap:3px}
.rc-seg-3{grid-template-columns:repeat(3,1fr)}
.rc-seg label{position:relative;min-width:0}
.rc-seg input,.rc-design input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.rc-seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border-radius:9px;font-size:14px;font-weight:700;line-height:1.1;color:#3e4a56;cursor:pointer;text-align:center;padding:3px 4px}
.rc-seg small{font-size:10.5px;font-weight:600;color:#6b7683;margin-top:2px}
.rc-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.rc-seg input:focus-visible+span,.rc-design input:focus-visible+.rc-swatch{outline:3px solid #e4632e;outline-offset:2px}
.rc-designs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.rc-design{position:relative;display:grid;justify-items:center;gap:4px;font-size:11px;font-weight:700;line-height:1.15;text-align:center;color:#3e4a56;cursor:pointer;min-width:0}
.rc-swatch{display:block;width:100%;height:44px;border-radius:10px;border:2px solid #e3dccf;box-sizing:border-box}
.rc-design input:checked+.rc-swatch{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8}
.rc-swatch-rainbow{background:linear-gradient(180deg,#e5484d 0 20%,#f59e0b 20% 40%,#f2c500 40% 60%,#3aa35b 60% 80%,#1550b8 80%)}
.rc-swatch-space{background:#14214d radial-gradient(circle at 70% 40%,#ffd166 0 6px,transparent 7px)}
.rc-swatch-animals{background:#f6fbef radial-gradient(ellipse at 50% 62%,#5a9a3c 0 7px,transparent 8px)}
.rc-swatch-ocean{background:linear-gradient(180deg,#eef8fb 0 55%,#1a8bb3 55% 64%,#dff2f8 64%)}
.rc-swatch-ink{background:#ffffff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
.rc-more{border-top:1px solid #eee4d5;padding-top:4px}
.rc-more summary{display:flex;align-items:center;min-height:44px;font-weight:700;font-size:14px;color:#12367f;cursor:pointer;list-style:none}
.rc-more summary::-webkit-details-marker{display:none}
.rc-more summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:600}
.rc-more[open] summary::after{content:"−"}
.rc-more-body{display:grid;gap:12px;padding-top:4px}.rc-more-body .button{margin:0;min-height:44px}
.rc-ideas{gap:6px}.rc-ideas .rc-legend{margin:6px 0 0}
.rc-idea-list{display:flex;flex-wrap:wrap;gap:6px}
.rc-idea{min-height:44px;padding:6px 12px;border-radius:12px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:600 13.5px/1.25 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:left;cursor:pointer}
.rc-idea:hover{border-color:#1550b8}
.rc-list-actions{display:flex;flex-wrap:wrap;gap:0 16px;border-top:1px solid #eee4d5;padding-top:4px}
.rc-list-actions .text-button{min-height:44px;font-size:14px;text-decoration:underline}
@media(max-width:1080px){.rc-app{grid-template-columns:minmax(0,1fr) 250px}.rc-designs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.rc-app{grid-template-columns:1fr;gap:16px}.rc-controls{position:static}.rc-designs{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* Phones and tablets: each behavior sits on its own line above its seven day boxes */
@media(max-width:900px){
  .rc-week,.rc-week thead,.rc-week tbody{display:block}
  .rc-week tr{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:2px;margin-bottom:6px;padding:3px;border-radius:12px;background:var(--t1)}
  .rc-week tbody tr:nth-child(2){background:var(--t2)}.rc-week tbody tr:nth-child(3){background:var(--t3)}.rc-week tbody tr:nth-child(4){background:var(--t4)}.rc-week tbody tr:nth-child(5){background:var(--t5)}
  .rc-week thead tr{background:none;padding:0 4px;margin:0}
  .rc-week tbody tr>*{background:none}
  .rc-week .rc-th-beh{display:none}
  .rc-week tbody th{grid-column:1/-1;display:flex;align-items:center;padding:0;border-radius:0}
  .rc-week tbody td,.rc-week tbody td:last-child{padding:0;border-radius:0}
  .rc-beh-cell>.rc-beh{flex:1;width:auto;min-width:0;font-size:15px}
  .rc-del{flex:none;width:44px}
  .rc-week tr{column-gap:4px;padding:4px 6px}.rc-week thead tr{padding:0 6px}
}
@media(max-width:600px){.rc-week tr{column-gap:2px;padding:3px}.rc-week thead tr{padding:0 3px}}
@media(max-width:600px){
  .rc-bar{gap:8px}.rc-pick-label{width:100%}.rc-pick-btn{width:46px;height:46px}
  .rc-actions{width:100%}.rc-actions .button{flex:1;padding:0 10px}
  .rc-progress{grid-template-columns:1fr;gap:6px}
  .rc-sheet{padding:14px 6px 10px;border-radius:16px}
  .rc-deco{width:92px;height:50px;top:8px;right:8px}
  .rc-head{padding-right:96px;margin-bottom:6px}
  .rc-sheet .rc-name{font-size:28px;height:44px}
  .rc-cell{border-radius:10px;min-height:46px}
  .rc-line{grid-template-columns:repeat(5,minmax(0,1fr))}
  .rc-reward{font-size:16px;padding:8px 10px}
  .rc-under .rc-add{width:100%}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page rc-letter{size:letter portrait;margin:10mm}
@page rc-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.rc-app),body:has(.rc-app){background:#ffffff!important}
  body:has(.rc-app)>:not(main){display:none!important}
  main:has(.rc-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.rc-app)>:not(.rc-app){display:none!important}
  .rc-app{display:block;margin:0}
  .rc-controls,.rc-bar,.rc-progress,.rc-under,.rc-del{display:none!important}
  .rc-sheet{display:flex;flex-direction:column;height:var(--ph);box-sizing:border-box;border:0;border-radius:0;box-shadow:none;padding:6mm 7mm 4mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  .rc-sheet[data-paper="letter"]{page:rc-letter;--ph:257mm}
  .rc-sheet[data-paper="a4"]{page:rc-a4;--ph:275mm}
  .rc-deco{width:46mm;height:25mm;top:4mm;right:6mm}
  .rc-head{padding-right:50mm;margin-bottom:4mm}
  .rc-kicker{font-size:10pt}
  .rc-sheet .rc-name{font-size:30pt;height:15mm;border:0;padding:0}
  .rc-week{flex:none;border-spacing:0 2mm}
  .rc-week thead th{font-size:10pt}
  .rc-beh-cell>.rc-beh{width:100%;border:0;font-size:13pt;padding:0 1mm}
  .rc-cell{height:min(34mm,185mm / var(--rows) - 17mm);min-height:0;max-height:none;aspect-ratio:auto;border-width:.4mm}
  .rc-line{flex:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:3mm}
  .rc-box{aspect-ratio:auto;height:min(34mm,185mm / var(--lines) - 4mm);min-height:0;border-width:.4mm}
  .rc-box-n{font-size:9pt}
  .rc-reward{margin-top:auto;font-size:15pt;padding:3mm 4mm}
  .rc-gift{width:10mm;height:10mm}
  .rc-credit{font-size:7pt}
  html.rc-blank .rc-sheet .rc-name{border-bottom:.4mm solid var(--line);border-radius:0;width:60%}
  html.rc-blank .rc-beh-cell>.rc-beh{border-bottom:.3mm solid var(--line);border-radius:0}
  .rc-sheet .rc-name::placeholder,.rc-sheet .rc-beh::placeholder{color:transparent}
  .rc-cell.is-new .rc-stk,.rc-box.is-new .rc-stk{animation:none}
}
/* Cleaning schedule */
/* /tools/cleaning-schedule/: daily checklist, weekly schedule by day, monthly and seasonal lists with ticks, options beside them
   (below on phones), and a printable page per list in four designs. Shares the option controls (.rc-field, .rc-seg, .rc-design,
   .rc-more) with the reward chart. The printable keeps its paper colors in dark mode (KEEP_SELECTORS in content/darkcss.py). */
.cs-app{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start;margin-bottom:46px}
.cs-stage{min-width:0}
.cs-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:#f4efe6}
.cs-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:4px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font:700 15px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.cs-tab small{font-size:11px;font-weight:600;color:#6b7683;margin-top:3px}
.cs-tab[aria-pressed="true"]{background:#fff;color:#12367f;box-shadow:0 1px 5px #17203326}
.cs-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.cs-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:12px 0}
.cs-sum-text{flex:1 1 260px;margin:0;font-size:14px;font-weight:700;line-height:1.4;color:#12367f;min-height:2.8em;display:flex;align-items:center}
.cs-actions{display:flex;gap:8px}.cs-actions .button{margin:0;min-height:46px;padding:0 18px}
.cs-panel[hidden]{display:none}
.cs-week{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.cs-day,.cs-season,.cs-today-box{padding:12px 12px 8px;border-radius:18px;background:#fff;border:1px solid #eee4d5;box-shadow:0 8px 22px #1720330d;min-width:0}
.cs-day.is-today,.cs-season.is-now{border-color:#1550b8;box-shadow:0 0 0 1.5px #1550b8,0 8px 22px #1720330d}
.cs-day-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0 0 4px}
.cs-day-head h3{margin:0;font:700 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cs-focus{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#b24618}
.cs-mins{margin-left:auto;font-size:13px;font-weight:700;color:#526170}
.cs-badge{display:inline-block;vertical-align:2px;padding:2px 8px;border-radius:99px;background:#1550b8;color:#fff;font:800 10.5px/1.4 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.cs-plus{margin:0}.cs-plus .text-button{min-height:44px;padding:0;font-size:13px;font-weight:700;color:#1550b8;text-decoration:underline;text-underline-offset:3px}
.cs-h{margin:0 0 4px;font:700 19px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cs-today-box{margin-bottom:12px;background:#fff0d5;border-color:#f2d3a8}
.cs-room{margin:14px 0 2px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.cs-progress{margin:0 0 4px;font-size:14px;font-weight:700;color:#3b4456}
.cs-list{list-style:none;margin:0;padding:0}
.cs-task{display:flex;align-items:center;gap:4px;min-height:44px;border-bottom:1px solid #f0e9dd}
.cs-task:last-child{border-bottom:0}
.cs-check{flex:1;display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;cursor:pointer}
.cs-check input{flex:none;width:22px;height:22px;margin:0;accent-color:#1550b8;cursor:pointer}
.cs-text{font-size:15px;line-height:1.3;color:#172033}
.cs-task.is-done .cs-text{text-decoration:line-through;color:#6b7683}
.cs-min{flex:none;font-size:12px;color:#6b7683;white-space:nowrap}
.cs-x{flex:none;width:44px;height:44px;margin-right:-6px;padding:0;border:0;border-radius:8px;background:transparent;color:#8a93a0;font-size:18px;cursor:pointer}
.cs-x:hover{color:#b3261e}
.cs-who{flex:none;min-width:44px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:32px;padding:0 10px;border-radius:99px;border:1.5px solid #c9d6ea;background:#e7f0ff;color:#12367f;font:700 12px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer;position:relative}
.cs-who::before{content:"";position:absolute;inset:-6px 0}
.cs-who.is-empty{background:#fff;color:#526170;border-style:dashed}
.cs-who[data-p="1"],.cs-dot[data-p="1"]{background:#fff0d5;border-color:#f2d3a8;color:#8a3a12}
.cs-who[data-p="2"],.cs-dot[data-p="2"]{background:#daf3e8;border-color:#b9dccd;color:#1f5b44}
.cs-who[data-p="3"],.cs-dot[data-p="3"]{background:#f4e8ff;border-color:#dccbee;color:#5b3a86}
.cs-seasons{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.cs-add{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:14px}
.cs-add input,.cs-add select{height:46px;min-width:0;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.cs-add input:focus,.cs-add select:focus{outline:none;border-color:#1550b8}
.cs-add .button{margin:0;min-height:46px;width:auto}
/* Options */
.cs-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.cs-seg-4{grid-template-columns:1fr 1fr}
.cs-toggle{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700;cursor:pointer}
.cs-toggle input{width:22px;height:22px;margin:0;accent-color:#1550b8}
.cs-opt{font-weight:600;text-transform:none;letter-spacing:0;color:#6b7683}
.cs-people{display:grid;gap:6px}
.cs-person{display:flex;align-items:center;gap:6px}
.cs-person input{flex:1;min-width:0;height:44px;box-sizing:border-box;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.cs-dot{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid #c9d6ea;background:#e7f0ff;color:#12367f;font-size:12px;font-weight:800}
.cs-people-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.cs-people-actions .button{margin:0;min-height:44px;width:auto;flex:1;padding:0 12px}.cs-people-actions .button[hidden]{display:none}
.cs-loads{margin:6px 0 0;font-size:13px;color:#3b4456}.cs-loads[hidden]{display:none}
.cs-designs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.cs-swatch-fresh{background:linear-gradient(180deg,#2f8f6b 0 30%,#f3fbf7 30%)}
.cs-swatch-classic{background:linear-gradient(180deg,#172033 0 30%,#fffdf8 30%)}
.cs-swatch-pastel{background:linear-gradient(180deg,#c9a7ef 0 30%,#fdf7ff 30%)}
.cs-swatch-ink{background:#fff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
/* Print preview and printable page */
.cs-preview{grid-column:1/-1;margin-top:4px}
.cs-preview>summary{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#12367f;cursor:pointer}
.cs-print{--bg:#f3fbf7;--ink:#123b2e;--soft:#4f6f63;--accent:#2f8f6b;--band:#dcf2e8;--line:#b9dccd;max-width:780px;margin:8px auto 0;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:var(--bg);color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;color-scheme:light}
.cs-print.cs-design-classic{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--accent:#1550b8;--band:#f4efe6;--line:#ddd3c4}
.cs-print.cs-design-pastel{--bg:#fdf7ff;--ink:#3b2a4f;--soft:#6e5b82;--accent:#8b5cc4;--band:#f1e6fb;--line:#dccbee}
.cs-print.cs-design-ink{--bg:#ffffff;--ink:#111111;--soft:#555555;--accent:#111111;--band:#ffffff;--line:#999999}
.cs-print .cs-p-head{margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--accent)}
.cs-print .cs-p-kicker{margin:0;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.cs-print .cs-p-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.cs-print.cs-design-classic .cs-p-head h2{font-style:italic}
.cs-print .cs-p-sub{margin:0;font-size:11.5px;color:var(--soft)}
.cs-print .cs-p-table{width:100%;border-collapse:collapse;font-size:12px}
.cs-print .cs-p-table th,.cs-print .cs-p-table td{border:1px solid var(--line);padding:4px 6px;height:24px}
.cs-print .cs-p-table thead th{background:var(--accent);color:#fff;font-size:11px;text-align:center}
.cs-print.cs-design-ink .cs-p-table thead th{background:#fff;color:#111;border-bottom:2px solid #111}
.cs-print .cs-p-table .cs-p-task{text-align:left;width:auto}
.cs-print .cs-p-table .cs-p-day,.cs-print .cs-p-box{width:30px;padding:0}
.cs-print .cs-p-months .cs-p-day,.cs-print .cs-p-months .cs-p-box{width:22px}
.cs-print .cs-p-roomrow th{background:var(--band);color:var(--accent);text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;height:18px;padding:2px 6px}
.cs-print .cs-p-focus{margin-top:10px}
.cs-print .cs-p-focus h3{margin:0 0 4px;font:700 15px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.cs-print .cs-p-focuslist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;font-size:11.5px}
.cs-print .cs-p-focuslist li{padding:3px 0;border-bottom:1px solid var(--line);min-height:18px}
.cs-print .cs-p-week{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cs-print .cs-p-seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.cs-print .cs-p-dbox{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;break-inside:avoid}
.cs-print.cs-design-ink .cs-p-dbox{border-radius:0;border-color:#777}
.cs-print .cs-p-every{grid-column:1/-1;background:var(--band)}
.cs-print .cs-p-cols{columns:2;column-gap:18px}.cs-print .cs-p-cols li{break-inside:avoid}
.cs-print .cs-p-notes .cs-p-list li::before{display:none}
.cs-print .cs-p-dbox h3{display:flex;justify-content:space-between;gap:6px;margin:0 0 4px;font:700 15px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.cs-print .cs-p-dbox h3 span{font:800 9.5px/1.6 'DM Sans','DM Sans Fallback',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.cs-print .cs-p-list{list-style:none;margin:0;padding:0;font-size:11.5px}
.cs-print .cs-p-list li{position:relative;padding:3px 0 3px 18px;border-bottom:1px solid var(--line);min-height:20px;box-sizing:border-box}
.cs-print .cs-p-list li::before{content:"";position:absolute;left:0;top:5px;width:10px;height:10px;border:1.3px solid var(--accent);border-radius:3px}
.cs-print.cs-design-ink .cs-p-list li::before{border-radius:0;border-color:#111}
.cs-print .cs-p-foot{margin:10px 0 0;text-align:right;font-size:10px;color:var(--soft)}
@media(max-width:1080px){.cs-app{grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:900px){.cs-app{grid-template-columns:1fr;gap:16px}.cs-controls{position:static}.cs-seg-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:560px){
  .cs-tab{font-size:14px;min-height:50px}.cs-tab small{font-size:10px}
  .cs-actions{width:100%}.cs-actions .button{flex:1;padding:0 10px}
  .cs-sum-text{flex-basis:100%;min-height:0}
  .cs-add{grid-template-columns:1fr 1fr}.cs-add input{grid-column:1/-1}
  .cs-seg-4{grid-template-columns:1fr 1fr}
  .cs-print{padding:12px}.cs-print .cs-p-week,.cs-print .cs-p-seasons{grid-template-columns:1fr 1fr}.cs-print .cs-p-focuslist{grid-template-columns:1fr}
  .cs-print .cs-p-months .cs-p-day,.cs-print .cs-p-months .cs-p-box{width:14px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page cs-letter{size:letter portrait;margin:10mm}
@page cs-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.cs-app),body:has(.cs-app){background:#ffffff!important}
  body:has(.cs-app)>:not(main){display:none!important}
  main:has(.cs-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.cs-app)>:not(.cs-app){display:none!important}
  .cs-app{display:block;margin:0}
  .cs-app>:not(.cs-preview){display:none!important}
  .cs-preview>summary{display:none!important}
  .cs-print{display:flex;flex-direction:column;box-sizing:border-box;height:var(--ph);max-width:none;margin:0;border:0;border-radius:0;padding:5mm 6mm 3mm;overflow:hidden;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .cs-preview{margin:0}
  .cs-print[data-paper="letter"]{page:cs-letter;--ph:252mm}
  .cs-print[data-paper="a4"]{page:cs-a4;--ph:270mm}
  .cs-print .cs-p-head h2{font-size:24pt}
  .cs-print .cs-p-table{font-size:10.5pt}
  .cs-print .cs-p-table td,.cs-print .cs-p-table th{height:7.5mm}
  .cs-print .cs-p-roomrow th{height:5mm}
  .cs-print .cs-p-table .cs-p-day,.cs-print .cs-p-box{width:10mm}
  .cs-print .cs-p-months .cs-p-day,.cs-print .cs-p-months .cs-p-box{width:7.5mm}
  .cs-print.cs-page-weekly .cs-p-week{flex:1 1 auto;min-height:0;grid-template-rows:auto repeat(4,minmax(0,1fr))}
  .cs-print.cs-page-weekly .cs-p-list li{min-height:6mm;padding:.6mm 0 .6mm 5mm}
  .cs-print.cs-page-weekly .cs-p-list li::before{top:1.6mm}
  .cs-print .cs-p-dbox{overflow:hidden}
  .cs-print .cs-p-list{font-size:10pt}
  .cs-print .cs-p-list li{min-height:6.5mm}
  .cs-print.cs-page-monthly .cs-p-seasons{margin-top:6mm}
  .cs-print .cs-p-foot{margin-top:auto;padding-top:2mm;font-size:7pt}
}
/* Wheel of life on phones: a small live wheel sticks to the top of the sliders */
.wl-mini{display:none}
@media(max-width:860px){
.wl-mini{display:block;position:sticky;top:8px;z-index:3;width:132px;height:132px;margin:0 0 10px auto;padding:6px;border-radius:50%;background:#fffdf8;box-shadow:0 6px 18px #17203322}
.wl-mini .wl-svg{width:100%;height:100%}
.wl-mini .wl-ring-labels,.wl-mini .wl-badges{display:none}
.wl-form>h2{margin-bottom:-120px;max-width:calc(100% - 150px)}
.wl-form>.wl-help{max-width:calc(100% - 150px);min-height:96px}
}
html[data-theme="dark"] .wl-mini{background:#1b2435}
/* Share or link to this tool (backlink plan): plain link and credit line to copy */
.share-cite{margin:32px 0 0;padding:18px 20px;border:1px solid #eee4d5;border-radius:18px;background:#fffdf8}
.share-cite h2{margin:0 0 6px;font:700 20px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif}
.share-cite p{margin:0 0 10px;font-size:15px;color:#3e4a56}
.share-cite-row{display:flex;gap:8px;margin:0 0 8px}
.share-cite-field{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1px solid #e3dac9;border-radius:12px;background:#fff;font:500 14px 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.share-cite .button{min-height:44px;white-space:nowrap}
.share-cite-status{min-height:1.4em;font-size:14px;color:#12367f}
@media(max-width:560px){.share-cite-row{flex-direction:column}}
@media print{.share-cite{display:none}}

/* 75 challenge tracker (/tools/75-hard-tracker/): 75 Hard, Medium, Soft and Custom on one engine */
.ch-app{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.ch-programs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:4px;margin:0 0 10px;border-radius:16px;background:#f4efe6}
.ch-program{min-height:44px;padding:6px 8px;border:0;border-radius:12px;background:none;color:#172033;font:700 15px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.ch-program[aria-pressed="true"]{background:#1550b8;color:#fff;box-shadow:0 4px 12px #1550b833}
.ch-program:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.ch-blurb{margin:0 0 12px;min-height:3em;font-size:14px;line-height:1.5;color:#3b4456}
.ch-head h2{margin:0}.ch-dates{margin:2px 0 0;font-size:14px;color:#5b6475}
.ch-status{margin:12px 0 0;min-height:1.5em;font-weight:700;color:#12367f;line-height:1.5}
.ch-alert{margin-top:10px;padding:12px 14px;border-radius:14px;background:#fff0e6;border:1.5px solid #f2b89a;color:#6b2d12}
.ch-alert p{margin:0;font-weight:600;line-height:1.45}
.ch-alert-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.ch-alert-actions .button{margin:0;min-height:44px}.ch-alert-actions .text-button{min-height:44px}
.ch-alert[hidden]{display:none}
.ch-bar{height:10px;margin-top:12px;border-radius:99px;background:#eee4d5;overflow:hidden}.ch-bar span{display:block;height:100%;width:0;border-radius:inherit;background:#1550b8;transition:width .3s}
.ch-progress p{margin:6px 0 0;min-height:1.45em;font-size:14px;color:#3b4456}
.ch-day{margin-top:14px;padding:14px;border-radius:16px;background:#f7f4ee;scroll-margin-top:90px}
.ch-day h3{margin:0 0 10px;font:700 16px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.ch-rules{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.ch-rule{display:flex;gap:12px;align-items:center;min-height:52px;padding:8px 12px;border-radius:12px;background:#fff;border:1.5px solid #eee4d5;cursor:pointer}
.ch-rule input{flex:none;width:24px;height:24px;margin:0;accent-color:#1550b8}
.ch-rule span{display:grid;gap:2px;line-height:1.3}.ch-rule small{font-size:12.5px;color:#5b6475}
.ch-rule:has(input:checked){border-color:#1550b8;background:#e7f0ff}.ch-rule:has(input:disabled){cursor:default}
.ch-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px}
.ch-cell{display:grid;place-items:center;width:100%;min-height:44px;padding:0;border-radius:10px;border:1.5px solid #e6dfd2;background:#fffdf8;color:#172033;font:600 13px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.ch-cell.is-full{background:#1550b8;border-color:#1550b8;color:#fff}
.ch-cell.is-partial{background:#cfe0fb;border-color:#9dbbf0}
.ch-cell.is-today{box-shadow:inset 0 0 0 2px #e4632e}
.ch-cell.is-selected{outline:3px solid #f2783c;outline-offset:1px}
.ch-cell:disabled{opacity:.5;cursor:default}
.ch-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.ch-legend>span{display:inline-flex;align-items:center;gap:6px}
.ch-key{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid #e6dfd2;background:#fffdf8}.ch-key.is-full{background:#1550b8;border-color:#1550b8}.ch-key.is-partial{background:#cfe0fb;border-color:#9dbbf0}
.ch-app-link{margin-top:14px}
.ch-miss{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ch-miss .choice span{display:grid;gap:2px;justify-content:start;text-align:left;min-height:60px}.ch-miss .choice small{font-size:12.5px;font-weight:500;color:#5b6475}
.ch-edit{margin:0;padding:0;list-style:none;display:grid;gap:6px;counter-reset:ch}
.ch-edit li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:6px;counter-increment:ch}
.ch-edit li::before{content:counter(ch);display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#1550b8;color:#fff;font-size:13px;font-weight:700}
.ch-edit input{width:100%;min-height:44px;padding:8px 12px;font:inherit;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8}
.ch-remove{width:44px;height:44px;border:0;border-radius:12px;background:none;color:#5b6475;font-size:22px;line-height:1;cursor:pointer}.ch-remove:hover{color:#c2410c}
.ch-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:10px}.ch-own .button{margin:0;min-height:48px}
.tool-form .ch-blank{width:100%}
.ch-attempts[hidden]{display:none}
.ch-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.ch-p-kicker{margin:0;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.ch-p-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.ch-p-dates{margin:0 0 8px;font-size:12px}
.ch-p-rules{columns:2;column-gap:20px;margin:0 0 10px;padding-left:18px;font-size:11px;line-height:1.45}.ch-p-rules li{break-inside:avoid}.ch-p-rules span{color:#5b6475}
.ch-p-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ch-p-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
.ch-p-table th{padding:2px 0;font-size:9px;font-weight:700;text-align:center;border-bottom:1.5px solid #172033}
.ch-p-table th:first-child{width:26px}.ch-p-table th:nth-child(2){width:38px}
.ch-p-table td{height:24px;padding:0;border-bottom:1px solid #c9c9c9;text-align:center}
.ch-p-table td.ch-p-day{font-weight:700}.ch-p-table td.ch-p-date{font-size:9px;color:#444;border-bottom-style:dotted}
.ch-p-table i{display:inline-block;width:12px;height:12px;border:1px solid #666;border-radius:3px;vertical-align:middle}
.ch-p-table i.is-done{background:#172033;border-color:#172033}
.ch-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#444}
.ch-design-bold .ch-p-head{margin:-4px -4px 10px;padding:12px 16px;background:#172033;color:#fff}
.ch-design-bold .ch-p-kicker{color:#f2783c}.ch-design-bold .ch-p-head h2{text-transform:uppercase;letter-spacing:.5px}
.ch-design-bold .ch-p-table th{background:#f2783c;color:#172033;border-bottom-color:#172033}
.ch-design-bold .ch-p-table i{border:1.5px solid #172033}.ch-design-bold .ch-p-table i.is-done{background:#e4632e;border-color:#e4632e}
.ch-design-ink .ch-p-kicker{color:#111}.ch-design-ink .ch-p-rules span{color:#444}
@media(max-width:860px){.ch-app{grid-template-columns:1fr}}
@media(max-width:560px){.ch-output{padding:16px}.ch-programs{gap:2px;padding:3px}.ch-program{padding:4px 2px;font-size:14px}.ch-head .tool-actions{width:100%}.ch-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}.ch-day{padding:10px}.ch-miss{grid-template-columns:1fr}.ch-print{padding:12px}.ch-p-rules{columns:1}.ch-p-cols{grid-template-columns:1fr;gap:0}.ch-p-cols .ch-p-table+.ch-p-table thead{display:none}}
@media(max-width:359px){.ch-programs{grid-template-columns:1fr 1fr}}
.ch-setup .text-button{min-height:44px}
@page ch-letter{size:letter portrait;margin:11mm}
@page ch-a4{size:A4 portrait;margin:11mm}
@media print{
.ch-app{page:ch-letter}.ch-app.is-a4{page:ch-a4}
.ch-app>:not(.print-preview){display:none!important}
.ch-print{max-width:none;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.ch-p-rules{columns:2}.ch-p-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ch-p-cols .ch-p-table+.ch-p-table thead{display:table-header-group}
.ch-p-table tr{break-inside:avoid}
}
/* Dry January */
/* /tools/dry-january/: 31 days with one tip a day, a tick per alcohol-free day, drinks skipped and money saved, a one-page
   printable in three designs. The server renders the same default state the script draws, so nothing moves on load (CLS). */
.dj-app{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.dj-head h2{margin:0}.dj-dates{margin:2px 0 0;font-size:14px;color:#5b6475}
.dj-phase{margin:12px 0 0;min-height:1.5em;font-weight:700;color:#12367f;line-height:1.5}
.dj-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}
.dj-totals>div{padding:10px 12px;border-radius:14px;background:#f6f1e8;border:1px solid #eee4d5}
.dj-totals dt{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.dj-totals dd{margin:2px 0 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;white-space:nowrap}
.dj-totals dd small{font:600 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#5b6475}
.dj-projection{margin:8px 0 0;font-size:14px;color:#3b4456}
.dj-today{margin-top:14px;padding:16px;border-radius:18px;background:#fff0d5;border:1px solid #f2d3a8;scroll-margin-top:90px}
.dj-today.is-done{background:#e7f0ff;border-color:#c9d9f5}
.dj-day-label{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.dj-kind{padding:3px 9px;border-radius:99px;background:#fff;color:#12367f;letter-spacing:.04em}
.dj-tip-title{margin:8px 0 4px;font:600 22px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.dj-tip-text{margin:0 0 12px;font-size:16px;line-height:1.5;color:#2f3a4a}
.dj-done{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 14px;border-radius:12px;background:#fff;border:1.5px solid #eee4d5;font-weight:700;cursor:pointer}
.dj-done input{flex:none;width:24px;height:24px;margin:0;accent-color:#1550b8}
.dj-done:has(input:checked){border-color:#1550b8}.dj-done:has(input:disabled){cursor:default;color:#5b6475}
.dj-nav{margin:4px 0 0}.dj-nav .text-button{min-height:44px}.dj-nav:has(>[hidden]){display:none}
.dj-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dj-cell{display:grid;place-items:center;align-content:center;gap:2px;width:100%;min-height:50px;padding:3px 2px;border-radius:10px;border:1.5px solid #e6dfd2;background:#fffdf8;color:#172033;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.dj-date{font-size:9.5px;font-weight:600;color:#5b6475;white-space:nowrap}
.dj-cell.is-done{background:#e4632e;border-color:#e4632e;color:#fff}.dj-cell.is-done .dj-date{color:#fff4ea}
.dj-cell.is-today{box-shadow:inset 0 0 0 2px #1550b8}
.dj-cell.is-selected{outline:3px solid #1550b8;outline-offset:1px}
.dj-cell:disabled{opacity:.55;cursor:default}
.dj-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.dj-legend>span{display:inline-flex;align-items:center;gap:6px}
.dj-key{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid #e6dfd2;background:#fffdf8}.dj-key.is-done{background:#e4632e;border-color:#e4632e}.dj-key.is-today{box-shadow:inset 0 0 0 2px #1550b8}
.dj-start-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dj-start-buttons .button{flex:1;margin:0;min-height:44px;padding:0 12px;white-space:nowrap}
.dj-start-buttons .button[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#fff}
.dj-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.dj-inputs input{width:100%;min-height:46px}
.dj-safety{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#fff4ea;border:1px solid #f2d3a8;font-size:14px;line-height:1.5;color:#4a2e1f}
.dj-setup .tool-note .text-button{min-height:44px}
.dj-tip-list li{margin:6px 0}
.dj-swaps{width:100%;border-collapse:collapse;font-size:16px}.dj-swaps th,.dj-swaps td{padding:10px 12px;border-bottom:1px solid #eee4d5;text-align:left;vertical-align:top}.dj-swaps th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6475}
.dj-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.dj-print .dj-p-head{text-align:center;margin-bottom:10px}
.dj-print .dj-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.dj-print .dj-p-head h2{margin:2px 0;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.dj-print .dj-p-sub{margin:0;font-size:11.5px;color:#5b6475}
.dj-print .dj-p-sums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
.dj-print .dj-p-sums div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:6px 10px;border:1.5px solid #172033;border-radius:8px}
.dj-print .dj-p-sums span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.dj-print .dj-p-sums strong{font:700 18px/1 'Fraunces','Fraunces Fallback',Georgia,serif}
.dj-print .dj-p-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.dj-print .dj-p-grid li{min-height:84px;padding:6px 7px;border:1px solid #b9b2a6;border-radius:8px;break-inside:avoid}
.dj-print .dj-p-top{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.dj-print .dj-p-day{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#1550b8}
.dj-print .dj-p-date{font-size:9px;color:#5b6475}
.dj-print .dj-p-box{margin-left:auto;display:grid;place-items:center;width:15px;height:15px;border:1.5px solid #555;border-radius:4px;font:normal 800 11px/1 'DM Sans','DM Sans Fallback',sans-serif}
.dj-print .dj-p-grid li.is-done .dj-p-box{background:#172033;border-color:#172033;color:#fff}
.dj-print .dj-p-tip{margin:5px 0 0;font-size:10px;line-height:1.3;color:#3b4456}
.dj-print .dj-p-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:12px}
.dj-print .dj-p-bottom h3{margin:0 0 2px;font:700 15px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.dj-print .dj-p-line{display:block;height:24px;border-bottom:1px solid #b9b2a6}
.dj-print .dj-p-check{width:100%;border-collapse:collapse;font-size:11px}
.dj-print .dj-p-check th,.dj-print .dj-p-check td{border:1px solid #b9b2a6;padding:3px 6px;height:22px;text-align:left}
.dj-print .dj-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#444}
.dj-print.dj-design-fresh{background:#f1faf5;color:#123b33}
.dj-print.dj-design-fresh .dj-p-kicker,.dj-print.dj-design-fresh .dj-p-day{color:#1f7a64}
.dj-print.dj-design-fresh .dj-p-grid li{background:#fff;border-color:#b6dccb}
.dj-print.dj-design-fresh .dj-p-box{border-color:#1f7a64;border-radius:50%}
.dj-print.dj-design-fresh .dj-p-grid li.is-done .dj-p-box{background:#1f7a64;border-color:#1f7a64}
.dj-print.dj-design-fresh .dj-p-sums div{border-color:#1f7a64;background:#fff}
.dj-print.dj-design-fresh .dj-p-line{border-bottom-color:#b6dccb}
.dj-print.dj-design-ink .dj-p-kicker,.dj-print.dj-design-ink .dj-p-day{color:#111}
.dj-print.dj-design-ink .dj-p-head{text-align:left;border-bottom:2px solid #111;padding-bottom:6px}
.dj-print.dj-design-ink .dj-p-grid li{border-color:#777;border-radius:0}
.dj-print.dj-design-ink .dj-p-sums div{border-radius:0}
@media(max-width:860px){.dj-app{grid-template-columns:1fr}}
@media(max-width:560px){.dj-output{padding:16px}.dj-head .tool-actions{width:100%}.dj-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}
.dj-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.dj-today{padding:12px}.dj-tip-title{font-size:19px}
.dj-totals{gap:6px}.dj-totals>div{padding:8px}.dj-totals dt{font-size:9.5px;letter-spacing:.02em}.dj-totals dd{font-size:22px}
.print-preview.dj-preview{padding:0 10px}.dj-print{padding:12px}.dj-print .dj-p-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dj-print .dj-p-sums,.dj-print .dj-p-bottom{grid-template-columns:1fr}}
@media(max-width:380px){.dj-inputs{grid-template-columns:1fr}.dj-totals dd{font-size:19px}}
@page dj-letter{size:letter portrait;margin:10mm}
@media print{
.tool-shell:has(.dj-app){width:auto;max-width:none;padding:0;margin:0}
.dj-app{page:dj-letter;margin:0}
.dj-app>:not(.print-preview){display:none!important}
.dj-app .print-preview>summary{display:none!important}
.dj-print{max-width:none;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.dj-print.dj-design-fresh{padding:8px 12px}
.dj-print .dj-p-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.dj-print .dj-p-sums{grid-template-columns:repeat(3,minmax(0,1fr))}
.dj-print .dj-p-bottom{grid-template-columns:1.2fr 1fr}
.dj-print .dj-p-grid li{min-height:0;height:31mm}
}
/* Atomic habits cheat sheet */
/* /research/atomic-habits-what-the-research-says/: our one-page summary of the book (never its text) with an evidence
   rating per law. On screen it is a paper card; "Print cheat sheet" prints only the sheet on one page (named @page).
   Sheet rules are scoped under ".article-body .ah" so the article's own (and dark-mode) paragraph styles never reach the paper. */
.article-body section.ah{margin:0 0 30px;padding:0;border-top:0}
.ahw-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;margin:0 0 12px}
.ahw-bar .eyebrow{margin:0 0 4px;color:#b04a1f}
.article-body .ahw-bar h2{margin:0 0 4px;font:600 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em}
.ahw-intro{margin:0;font-size:15px;line-height:1.5;color:#3e4a56;max-width:520px}
.ahw-bar .button{min-height:46px;margin:0}
.article-body .ah .ah-sheet{padding:22px 24px;border:1px solid #e6dfd2;border-radius:10px;background:#ffffff;color:#172033;box-shadow:0 10px 28px #17203314;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.article-body .ah .ah-head{text-align:center;padding-bottom:10px;border-bottom:2px solid #172033;margin-bottom:12px}
.article-body .ah .ah-kicker{margin:0;font-size:11px;line-height:1.4;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#1550b8}
.article-body .ah .ah-title{margin:2px 0;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.article-body .ah .ah-sub{margin:0;font-size:13px;line-height:1.4;color:#5b6475}
.article-body .ah .ah-h{margin:14px 0 8px;padding:0;border:0;font:800 12px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#b04a1f}
.article-body .ah .ah-laws{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.article-body .ah .ah-law{padding:10px 12px;border:1px solid #e6dfd2;border-radius:10px;background:#fffdf8}
.article-body .ah .ah-law p{margin:0 0 4px;font-size:13.5px;line-height:1.45;color:#2f3a4a}
.article-body .ah .ah-law b,.article-body .ah .ah-tools strong{color:#172033}
.article-body .ah .ah-law .ah-law-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.article-body .ah .ah-law-top strong{font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.article-body .ah .ah-n{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#1550b8;color:#fff;font-size:13px;font-weight:800}
.article-body .ah .ah-stage{margin-left:auto;padding:2px 8px;border-radius:99px;background:#fff0d5;color:#8a3a14;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.article-body .ah .ah-law .ah-ev{margin:6px 0 0;padding-top:6px;border-top:1px dashed #d9d2c5;font-size:12.5px;font-weight:700;color:#1d6b3a}
.article-body .ah .ah-law .ah-ev[data-level="moderate"]{color:#8a5a00}
.article-body .ah .ah-tools,.article-body .ah .ah-facts{margin:0;padding-left:18px}
.article-body .ah .ah-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}
.article-body .ah .ah-tools li,.article-body .ah .ah-facts li{margin:0 0 4px;font-size:13.5px;line-height:1.45;color:#2f3a4a}
.article-body .ah .ah-mine{margin-top:14px;padding:10px 12px;border:1.5px dashed #1550b8;border-radius:10px}
.article-body .ah .ah-mine p{margin:0 0 8px;font-size:13.5px;line-height:1.4;color:#172033}
.article-body .ah .ah-mine .ah-mine-title{margin-bottom:6px;font:700 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.article-body .ah .ah-fill{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px 6px}
.article-body .ah .ah-fill span{flex:1 1 120px;min-width:90px;height:20px;border-bottom:1px solid #8c8577}
.article-body .ah .ah-week{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.article-body .ah .ah-week span{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12px}
.article-body .ah .ah-week i{display:inline-block;width:14px;height:14px;border:1.5px solid #555;border-radius:3px}
.article-body .ah .ah-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:12px 0 0;font-size:11px;line-height:1.4;color:#5b6475}
@media(max-width:620px){.article-body .ah .ah-sheet{padding:14px 12px}.article-body .ah .ah-title{font-size:24px}.article-body .ah .ah-laws,.article-body .ah .ah-tools{grid-template-columns:1fr}.ahw-bar .button{width:100%}.article-body .ah .ah-foot span:last-child{overflow-wrap:anywhere}}
@page ah-letter{size:letter portrait;margin:12mm}
@media print{
  html.ah-printing body *:not(:has(.ah-sheet)):not(.ah-sheet):not(.ah-sheet *){display:none!important}
  html.ah-printing body,html.ah-printing main,html.ah-printing .article-shell,html.ah-printing article,html.ah-printing .article-body,html.ah-printing .ah{margin:0!important;padding:0!important;border:0!important;background:#ffffff!important;box-shadow:none!important;max-width:none!important;width:auto!important}
  html.ah-printing{background:#ffffff}
  html.ah-printing .ah{page:ah-letter}
  html.ah-printing .article-body .ah .ah-sheet{border:0;border-radius:0;box-shadow:none;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  html.ah-printing .article-body .ah .ah-laws,html.ah-printing .article-body .ah .ah-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.ah-printing .article-body .ah .ah-title{font-size:26pt}
  html.ah-printing .article-body .ah .ah-head{padding-bottom:6px;margin-bottom:8px}
  html.ah-printing .article-body .ah .ah-law{padding:8px 10px;break-inside:avoid}
  html.ah-printing .article-body .ah .ah-law p,html.ah-printing .article-body .ah .ah-tools li,html.ah-printing .article-body .ah .ah-facts li{font-size:10.5pt;line-height:1.35;margin-bottom:2px}
  html.ah-printing .article-body .ah .ah-fill span{height:26px}
  html.ah-printing .article-body .ah .ah-foot{flex-wrap:nowrap;font-size:8.5pt;line-height:1.3;margin-top:8px}
  html.ah-printing .article-body .ah .ah-foot span{white-space:nowrap}
  .ahw-bar{display:none}
}
/* No-spend challenge */
/* /tools/no-spend-challenge/: a calendar of the challenge days on a paper sheet (tap to mark), the selected day's mark and
   "money not spent", the rules (allowed / not allowed) and totals, options beside it (below on phones), one-page print.
   Shares the option controls (.rc-field, .rc-seg, .rc-design, .rc-more) with the reward chart. The sheet is paper, so it
   keeps its colors in dark mode (KEEP_SELECTORS in content/darkcss.py); the savings challenge uses the same design tokens. */
.ns-sheet,.sv-sheet{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--cell:#ffffff;--head:#1550b8;--band:#f4efe6;--none:#1550b8;--none-bg:#e7f0ff;--ess:#b7501c;--ess-bg:#fff0d5;--slip:#b3261e;--slip-bg:#fde7e4;--fill:#e7f0ff;--mark:#1550b8;--bar:#e4632e;position:relative;padding:18px 18px 12px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.ns-sheet[data-design="mint"],.sv-sheet[data-design="mint"]{--bg:#f3fbf7;--ink:#123b2e;--soft:#4f6f63;--line:#b9dccd;--head:#2f8f6b;--band:#dcf2e8;--none:#2f8f6b;--none-bg:#d4efe2;--ess:#9a6412;--ess-bg:#fff3d6;--fill:#d4efe2;--mark:#23775a;--bar:#2f8f6b;border-color:#b9dccd}
.ns-sheet[data-design="blush"],.sv-sheet[data-design="blush"]{--bg:#fff6f4;--ink:#4a2230;--soft:#7a5561;--line:#f0cfd4;--head:#b83a60;--band:#fde4e6;--none:#b83a60;--none-bg:#fde0e6;--ess:#6f43a8;--ess-bg:#efe5fb;--slip:#8a1c1c;--slip-bg:#f9dcdc;--fill:#fde0e6;--mark:#b83a60;--bar:#c2456b;border-color:#f0cfd4}
.ns-sheet[data-design="ink"],.sv-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#888888;--head:#111111;--band:#f2f2f2;--none:#111111;--none-bg:#ffffff;--ess:#111111;--ess-bg:#ffffff;--slip:#111111;--slip-bg:#e6e6e6;--fill:#e6e6e6;--mark:#111111;--bar:#111111;border-color:#cccccc}
.ns-app,.sv-app{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start;margin-bottom:46px}
.ns-stage{min-width:0}
.ns-bar,.sv-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.ns-status,.sv-status{flex:1 1 240px;margin:0;font-size:14px;font-weight:700;line-height:1.4;color:#12367f;min-height:2.8em;display:flex;align-items:center}
.ns-actions,.sv-actions{display:flex;flex-wrap:wrap;gap:8px}.ns-actions .button,.sv-actions .button{margin:0;min-height:46px;padding:0 18px}.sv-actions [hidden]{display:none}
.ns-kicker,.sv-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--head)}
.ns-title,.sv-title{display:block;width:100%;height:48px;margin:0;padding:0 6px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 32px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.ns-title:hover,.sv-title:hover{border-color:var(--line)}.ns-title:focus,.sv-title:focus{outline:none;border-color:var(--head)}
.ns-title::placeholder,.sv-title::placeholder,.sv-fund-name::placeholder{color:var(--soft);opacity:.7}
.ns-range,.sv-sub{margin:0 0 10px;padding-left:6px;font-size:14px;font-weight:600;line-height:1.4;color:var(--soft)}
.ns-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px}
.ns-dow span{text-align:center;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.ns-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ns-pad{display:block;min-width:0}
.ns-day{position:relative;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;align-items:center;height:64px;min-width:0;padding:4px 2px 5px;border-radius:12px;border:1.5px solid var(--line);background:var(--cell);color:var(--ink);cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.ns-day:hover{border-color:var(--head)}
.ns-day:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.ns-date{justify-self:start;max-width:100%;overflow:hidden;padding-left:3px;font-size:11px;font-weight:700;line-height:1.1;white-space:nowrap;color:var(--soft)}
.ns-glyph{font-size:22px;font-weight:800;line-height:1}
.ns-amt{max-width:100%;overflow:hidden;font-size:10.5px;font-weight:700;line-height:1.1;white-space:nowrap;min-height:1.1em}
.ns-day.is-none{border-color:var(--none);background:var(--none-bg)}.ns-day.is-none .ns-glyph{color:var(--none)}
.ns-day.is-essentials{border-color:var(--ess);background:var(--ess-bg)}.ns-day.is-essentials .ns-glyph{color:var(--ess)}
.ns-day.is-slip{border-color:var(--slip);background:var(--slip-bg)}.ns-day.is-slip .ns-glyph{color:var(--slip)}
.ns-day.is-today{border-style:dashed;border-width:2px}
.ns-day.is-selected{box-shadow:0 0 0 2.5px var(--head)}
.ns-panel{display:grid;gap:8px;margin:12px 0 4px;padding:12px;border-radius:16px;background:var(--band)}
.ns-panel-title{margin:0;font-size:14px;font-weight:800;color:var(--ink)}
.ns-marks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ns-mark-btn{min-height:44px;padding:4px 6px;border-radius:12px;border:1.5px solid var(--line);background:var(--cell);color:var(--ink);font:700 13px/1.15 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.ns-mark-btn span{font-weight:800}.ns-mark-btn.is-none span{color:var(--none)}.ns-mark-btn.is-essentials span{color:var(--ess)}.ns-mark-btn.is-slip span{color:var(--slip)}
.ns-mark-btn[aria-pressed="true"]{border-color:var(--head);box-shadow:0 0 0 2px var(--head)}
.ns-mark-btn:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.ns-log{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px}
.ns-log-field{display:grid;gap:4px;min-width:0;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.ns-log-field input,.ns-add input,.sv-dep input,.sv-fund-nums input{width:100%;min-width:0;height:44px;box-sizing:border-box;padding:0 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--cell);color:var(--ink);font:500 16px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;text-transform:none}
.ns-log-field input:focus,.ns-add input:focus,.sv-dep input:focus,.sv-fund-nums input:focus{outline:none;border-color:var(--head)}
.ns-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin:12px 0 0;font-size:13px}
.ns-legend,.ns-total{margin:0;font-weight:600;color:var(--soft)}
.ns-total strong{color:var(--ink)}
.ns-key{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:5px;border-radius:6px;border:1.5px solid;font-size:12px;font-weight:800;line-height:1;vertical-align:-5px}
.ns-key.is-none{color:var(--none);border-color:var(--none);background:var(--none-bg)}.ns-key.is-essentials{color:var(--ess);border-color:var(--ess);background:var(--ess-bg)}.ns-key.is-slip{color:var(--slip);border-color:var(--slip);background:var(--slip-bg)}
.ns-sep{display:inline-block;width:10px}
.ns-rules{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;padding-top:12px;border-top:1.5px dashed var(--line)}
.ns-rule{min-width:0}
.ns-rule-h{margin:0 0 4px;font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.01em;color:var(--none)}
.ns-rule-banned .ns-rule-h{color:var(--slip)}
.ns-rule-list{list-style:none;margin:0;padding:0}
.ns-rule-list li{display:flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--line);font-size:15px;line-height:1.3}
.ns-rule-list li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--none)}
.ns-rule-banned .ns-rule-list li::before{background:var(--slip)}
.ns-rule-list li span{flex:1;min-width:0}
.ns-x,.sv-x{flex:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--soft);font-size:19px;line-height:1;cursor:pointer}
.ns-x:hover,.sv-x:hover{color:#b3261e}
.ns-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px}
.ns-add .button,.sv-dep .button{margin:0;min-height:44px;width:auto;padding:0 14px}
.ns-credit,.sv-credit{margin:10px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.ns-controls,.sv-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.ns-seg-4{grid-template-columns:1fr 1fr}
.ns-controls input[type=date],.sv-controls input[type=date]{width:100%;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.ns-controls input[type=date]:focus,.sv-controls input[type=date]:focus{outline:none;border-color:#1550b8}
.ns-designs{grid-template-columns:repeat(4,minmax(0,1fr))}
.ns-swatch-classic{background:linear-gradient(180deg,#1550b8 0 30%,#fffdf8 30%)}
.ns-swatch-mint{background:linear-gradient(180deg,#2f8f6b 0 30%,#f3fbf7 30%)}
.ns-swatch-blush{background:linear-gradient(180deg,#c2456b 0 30%,#fff6f4 30%)}
.ns-swatch-ink{background:#fff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
@media(max-width:1080px){.ns-app,.sv-app{grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:900px){.ns-app,.sv-app{grid-template-columns:1fr;gap:16px}.ns-controls,.sv-controls{position:static}.ns-seg-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){
  .ns-actions,.sv-actions{width:100%}.ns-actions .button,.sv-actions .button{flex:1;padding:0 10px}
  .ns-status,.sv-status{flex-basis:100%;min-height:2.8em}
  .ns-sheet,.sv-sheet{padding:12px 6px 10px;border-radius:16px}
  .ns-title,.sv-title{font-size:26px;height:44px}
  .ns-grid,.ns-dow{gap:3px}
  .ns-dow span{font-size:10px;letter-spacing:0}
  .ns-day{height:60px;border-radius:10px;padding:3px 1px 4px}
  .ns-date{font-size:10px;padding-left:2px}
  .ns-glyph{font-size:19px}
  .ns-amt{font-size:9.5px}
  .ns-panel{padding:10px 8px}
  .ns-marks{grid-template-columns:1fr 1fr}
  .ns-log{grid-template-columns:120px minmax(0,1fr)}
  .ns-rules{grid-template-columns:1fr;gap:10px}
  .ns-seg-4{grid-template-columns:1fr 1fr}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page ns-letter{size:letter portrait;margin:10mm}
@page ns-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.ns-app),body:has(.ns-app){background:#ffffff!important}
  body:has(.ns-app)>:not(main){display:none!important}
  main:has(.ns-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.ns-app)>:not(.ns-app){display:none!important}
  .ns-app{display:block;margin:0}
  .ns-controls,.ns-bar,.ns-panel,.ns-x,.ns-add{display:none!important}
  .ns-sheet{display:flex;flex-direction:column;height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:6mm 7mm 4mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  .ns-sheet[data-paper="letter"]{page:ns-letter;--ph:257mm}
  .ns-sheet[data-paper="a4"]{page:ns-a4;--ph:275mm}
  .ns-kicker{font-size:10pt}
  .ns-title{font-size:26pt;height:13mm;border:0;padding:0}
  .ns-range{padding:0;font-size:10pt;margin-bottom:4mm}
  .ns-dow span{font-size:8.5pt}
  .ns-grid,.ns-dow{gap:1.6mm}
  .ns-day{height:min(26mm,140mm / var(--rows) - 1.6mm);border-width:.35mm;border-radius:2.5mm}
  .ns-day.is-selected{box-shadow:none}
  .ns-day.is-today{border-style:solid;border-width:.35mm}
  .ns-date{font-size:8.5pt}.ns-glyph{font-size:18pt}.ns-amt{font-size:8.5pt}
  .ns-foot{font-size:10pt;margin-top:4mm}
  .ns-rules{margin-top:4mm;padding-top:3mm;gap:6mm}
  .ns-rule-h{font-size:13pt}
  .ns-rule-list{columns:2;column-gap:5mm}
  .ns-rule-list li{min-height:7mm;font-size:10pt;break-inside:avoid}
  .ns-credit{margin-top:auto;font-size:7pt}
  html.ns-blank .ns-title{border-bottom:.35mm solid var(--line);border-radius:0;width:60%}
  .ns-title::placeholder{color:var(--ink);opacity:1}
  html.ns-blank .ns-title::placeholder{color:transparent}
}
/* Savings challenge */
/* /tools/savings-challenge/: five challenges in tabs (52-week, 100 envelopes, 26-week, custom goal, savings tracker for
   sinking funds), the chart as a paper sheet with the goal and a progress bar, options beside it (below on phones), a random
   envelope picker and one-page print per challenge. Uses the design tokens above and the reward chart's option controls. */
.sv-stage{min-width:0}
.sv-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:10px;padding:4px;border-radius:16px;background:#f4efe6}
.sv-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:4px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font:700 14.5px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:center;cursor:pointer}
.sv-tab small{margin-top:3px;font-size:11px;font-weight:600;color:#6b7683}
.sv-tab[aria-pressed="true"]{background:#fff;color:#12367f;box-shadow:0 1px 5px #17203326}
.sv-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.sv-draw{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:#fff0d5;border:1.5px solid #f2d3a8}
.sv-draw[hidden]{display:none}
.sv-draw p{flex:1 1 200px;margin:0;font:700 18px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.sv-draw .button{margin:0;min-height:44px}.sv-draw .text-button{min-height:44px}
.sv-sum{margin:6px 0 12px}
.sv-meter,.sv-fund-bar{height:12px;border-radius:99px;background:var(--band);overflow:hidden}
.sv-meter span,.sv-fund-bar span{display:block;height:100%;border-radius:inherit;background:var(--bar);transition:width .3s}
.sv-figs{display:flex;flex-wrap:wrap;gap:4px 18px;margin:8px 0 0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--soft)}
.sv-figs strong{margin-left:4px;font:700 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:0;text-transform:none;color:var(--ink)}
.sv-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.sv-grid[hidden],.sv-funds[hidden]{display:none}
.sv-sheet[data-mode="envelopes"] .sv-grid{grid-template-columns:repeat(10,minmax(0,1fr))}
.sv-cell{position:relative;display:grid;align-content:center;justify-items:center;gap:3px;width:100%;height:62px;padding:12px 2px 4px;border-radius:12px;border:1.5px solid var(--line);background:var(--cell);color:var(--ink);cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.sv-sheet[data-mode="envelopes"] .sv-cell{height:52px;padding-top:10px}
.sv-cell:hover{border-color:var(--head)}
.sv-cell:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.sv-n{position:absolute;top:4px;left:6px;font-size:10.5px;font-weight:700;line-height:1;color:var(--soft)}
.sv-amt{max-width:100%;overflow:hidden;font:700 17px/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;white-space:nowrap}
.sv-date{font-size:11px;font-weight:600;line-height:1;color:var(--soft);white-space:nowrap}
.sv-cell.is-filled{border-color:var(--mark);background:var(--fill)}
.sv-cell.is-filled .sv-amt{color:var(--mark)}
.sv-cell.is-filled::after{content:"✓";position:absolute;top:3px;right:6px;font-size:12px;font-weight:800;line-height:1;color:var(--mark)}
.sv-cell.is-picked{border-color:#e4632e;box-shadow:0 0 0 3px #e4632e}
.sv-funds{display:grid;gap:10px}
.sv-fund{min-width:0;padding:10px 12px;border-radius:16px;border:1.5px solid var(--line);background:var(--cell)}
.sv-fund-top{display:flex;align-items:center;gap:4px}
.sv-fund-name{flex:1;min-width:0;height:44px;padding:0 6px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.sv-fund-name:hover{border-color:var(--line)}.sv-fund-name:focus{outline:none;border-color:var(--head)}
.sv-fund-nums{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;margin:4px 0 10px}
.sv-fund-nums label{display:grid;gap:3px;min-width:0;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.sv-fund-nums input{padding:0 8px;background:var(--bg)}
.sv-fund-bar{height:10px}
.sv-fund-note{margin:6px 0 0;min-height:1.35em;font-size:13px;font-weight:600;line-height:1.35;color:var(--soft)}
.sv-dep{display:grid;grid-template-columns:minmax(0,170px) auto;gap:6px;margin-top:8px}
.sv-under{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px}
.sv-under[hidden]{display:none}
.sv-under .button{margin:0;min-height:46px;width:auto}
.sv-seg-auto{grid-template-columns:repeat(auto-fit,minmax(40px,1fr))}
.sv-controls [hidden]{display:none}
.sv-chart-table td,.sv-chart-table th{padding:6px 8px;white-space:nowrap}
.sv-chart-table td:nth-child(3n){font-weight:700}
@media(max-width:1080px){.sv-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:900px){.sv-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:600px){
  .sv-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}
  .sv-tab{grid-column:span 2;font-size:14px;min-height:50px}
  .sv-tab:nth-child(n+4){grid-column:span 3}
  .sv-tab small{font-size:10.5px}
  .sv-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .sv-sheet[data-mode="envelopes"] .sv-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .sv-cell{height:60px}
  .sv-amt{font-size:16px}
  .sv-fund{padding:8px}
  .sv-fund-nums{grid-template-columns:1fr 1fr}
  .sv-fund-nums label:last-child{grid-column:1/-1}
  .sv-figs{gap:2px 12px}
  .sv-figs strong{font-size:17px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page sv-letter{size:letter portrait;margin:10mm}
@page sv-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.sv-app),body:has(.sv-app){background:#ffffff!important}
  body:has(.sv-app)>:not(main){display:none!important}
  main:has(.sv-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.sv-app)>:not(.sv-app){display:none!important}
  .sv-app{display:block;margin:0}
  .sv-controls,.sv-tabs,.sv-bar,.sv-draw,.sv-under,.sv-x,.sv-dep{display:none!important}
  .sv-sheet{display:flex;flex-direction:column;height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:6mm 7mm 4mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  .sv-sheet[data-paper="letter"]{page:sv-letter;--ph:257mm}
  .sv-sheet[data-paper="a4"]{page:sv-a4;--ph:275mm}
  .sv-kicker{font-size:10pt}
  .sv-title{font-size:24pt;height:12mm;border:0;padding:0}
  .sv-sub{padding:0;font-size:9.5pt;margin-bottom:2mm}
  .sv-sum{margin:1mm 0 4mm}
  .sv-meter{height:3mm}
  .sv-figs{font-size:8.5pt;margin-top:2mm}.sv-figs strong{font-size:13pt}
  .sv-grid,.sv-sheet[data-mode="envelopes"] .sv-grid{grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:1.8mm}
  .sv-cell,.sv-sheet[data-mode="envelopes"] .sv-cell{height:min(24mm,188mm / var(--rows) - 1.8mm);padding:3mm 1mm 1mm;border-width:.35mm;border-radius:2.5mm}
  .sv-cell.is-picked{box-shadow:none;border-color:var(--line)}
  .sv-n{font-size:7.5pt;top:1.2mm;left:1.6mm}
  .sv-amt{font-size:12pt}
  .sv-date{font-size:7.5pt}
  .sv-sheet[data-cols="8"] .sv-amt{font-size:10pt}
  .sv-sheet[data-cols="8"] .sv-cell{padding-top:3.4mm}
  /* Tracker: one compact row per fund (name, target, saved, needed by), then its bar, so 8 funds fit one page */
  .sv-funds{gap:2.5mm}
  .sv-fund{display:grid;grid-template-columns:1.7fr 3fr;column-gap:4mm;row-gap:1.5mm;align-items:end;padding:1.5mm 4mm 2mm;border-width:.35mm;break-inside:avoid}
  .sv-fund-top{grid-column:1}
  .sv-fund-nums{grid-column:2;margin:0;gap:4mm;grid-template-columns:1fr 1fr 1.3fr}
  .sv-fund-note{grid-column:1;grid-row:2;align-self:center}
  .sv-fund-bar{grid-column:2;grid-row:2;align-self:center}
  .sv-fund-name{height:7mm;padding:0;border:0;font-size:12.5pt}
  .sv-fund-nums label{font-size:7pt}
  .sv-fund-nums input{height:7mm;padding:0;border:0;border-bottom:.3mm solid var(--line);border-radius:0;background:transparent;font-size:10.5pt}
  .sv-fund-nums input::-webkit-calendar-picker-indicator{display:none}
  .sv-fund-nums input[type=date][value=""]{color:transparent}
  .sv-fund-bar{height:2.2mm}
  .sv-fund-note{font-size:8pt;margin:0;min-height:0;line-height:1.2}
  .sv-credit{margin-top:auto;font-size:7pt}
  html.sv-blank .sv-title{border-bottom:.35mm solid var(--line);border-radius:0;width:60%}
  html.sv-blank .sv-fund-name{border-bottom:.3mm solid var(--line);border-radius:0;margin-right:4mm}
  .sv-title::placeholder{color:var(--soft);opacity:.8}
  .sv-fund-name::placeholder{color:transparent}
}
/* Sleep calculator upgrade */
.sleep-next{display:flex;flex-wrap:wrap;gap:0 16px;margin:6px 0 0;font-size:15px;font-weight:600}
.sleep-next a{display:inline-flex;align-items:center;min-height:44px;color:#1550b8}
.ss-app{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:start;margin:24px 0 0;scroll-margin-top:16px}
.ss-app>*{min-width:0}
.ss-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0 12px}
.ss-fields .build-field{margin-top:12px}
.ss-fields input,.ss-fields select{min-height:48px;font:inherit;font-weight:400;padding:10px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;width:100%;min-width:0}
.ss-designs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;border:0}
.ss-designs legend{margin-bottom:8px;font-weight:600}
.ss-design{position:relative;display:flex;align-items:center;gap:8px;min-height:48px;padding:6px 12px 6px 6px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;cursor:pointer;font-size:14px;font-weight:600}
.ss-design input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ss-design:has(input:checked){border-color:#1550b8;background:#e7f0ff;box-shadow:inset 0 0 0 1px #1550b8}
.ss-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.ss-swatch{display:grid;gap:4px;align-content:center;width:40px;height:34px;padding:0 6px;border-radius:9px;border:1px solid #0000001a;box-sizing:border-box}
.ss-swatch i{display:block;height:5px;border-radius:3px}
.ss-swatch-night{background:#14213d}.ss-swatch-night i{background:#fff7e8}.ss-swatch-night i+i{background:#f2a65a;width:60%}
.ss-swatch-warm{background:#fffdf8}.ss-swatch-warm i{background:#172033}.ss-swatch-warm i+i{background:#e4632e;width:60%}
.ss-swatch-minimal{background:#ffffff}.ss-swatch-minimal i{background:#111111}.ss-swatch-minimal i+i{background:#bbbbbb;width:60%}
.ss-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.ss-actions .button{margin:0;min-height:48px}
.ss-status{min-height:1.4em;margin:8px 0 0;font-size:14px;color:#12367f}
.ss-sheet{--bg:#14213d;--ink:#fff7e8;--soft:#b9c3d9;--accent:#f2a65a;--line:#2d3d63;--band:#1c2b4d;padding:22px 22px 14px;border-radius:22px;background:var(--bg);color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;box-shadow:0 14px 34px #17203318;color-scheme:light}
.ss-sheet.ss-design-warm{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--accent:#c24f1f;--line:#e3d9c8;--band:#fdf0e3;border:1px solid #eee4d5}
.ss-sheet.ss-design-minimal{--bg:#ffffff;--ink:#111111;--soft:#555555;--accent:#111111;--line:#bbbbbb;--band:#f2f2f2;border:1px solid #dddddd;border-radius:6px}
.ss-kicker{margin:0;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.ss-title{display:block;width:100%;min-height:44px;margin:2px 0 0;padding:0;border:0;border-bottom:1.5px dashed transparent;background:transparent;color:var(--ink);font:700 28px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.ss-title:hover,.ss-title:focus{border-bottom-color:var(--soft);outline:none}
.ss-sub{margin:2px 0 10px;font-size:14px;color:var(--soft)}
.ss-table{width:100%;border-collapse:collapse;font-size:16px}
.ss-table thead th{padding:6px 8px;border-bottom:2px solid var(--accent);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--soft)}
.ss-table tbody th,.ss-table td{height:44px;padding:0 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.ss-table tbody th{font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.ss-table td{font-weight:600;font-variant-numeric:tabular-nums}
.ss-table td:nth-child(3){color:var(--soft)}
.ss-table td:last-child{color:var(--accent);font-weight:800}
.ss-table tr.is-weekend th,.ss-table tr.is-weekend td{background:var(--band)}
.ss-short{display:none}
.ss-foot-note{margin:8px 0 0;font-size:12.5px;color:var(--soft)}
.ss-routine{margin-top:14px}
.ss-routine h3{margin:0 0 2px;font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--ink)}
.ss-routine ol{margin:0;padding:0 0 0 22px;color:var(--accent);font-weight:800}
.ss-routine input{width:100%;min-height:44px;padding:0 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:500 15px 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.ss-routine input:focus{outline:none;border-bottom-color:var(--accent)}
.ss-credit{margin:10px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.ss-age-table caption{caption-side:top;text-align:left;font-weight:700;padding:0 0 6px}
/* The result heading and its print button stay on one row, so the web font loading cannot push the answer down (CLS). */
[data-sleep] .tool-output-head{flex-wrap:nowrap}
[data-sleep] .tool-output-head h2{flex:1 1 auto;min-width:0;font-size:22px}
[data-sleep] .tool-output-head .tool-actions{flex:none}
@media(max-width:560px){[data-sleep] .tool-output-head h2{font-size:19px}[data-sleep] .tool-output-head .button{min-height:44px}[data-sleep] .sleep-fields input,[data-sleep] .sleep-fields select{min-height:44px}}
@media(max-width:860px){.ss-app{grid-template-columns:1fr}}
@media(max-width:560px){
  .ss-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px}
  .ss-fields .build-field{font-size:13px}
  .ss-fields>:last-child{grid-column:1/-1}
  .ss-fields input,.ss-fields select{padding:8px;font-size:15px}
  .ss-actions .button{flex:1 1 100%}
  .ss-designs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .ss-designs legend{grid-column:1/-1}
  .ss-design{flex-direction:column;justify-content:center;gap:4px;padding:8px 4px;font-size:13px;text-align:center}
  .ss-sheet{padding:16px 12px 10px;border-radius:16px}
  .ss-title{font-size:23px}
  .ss-table{font-size:14.5px}
  .ss-table tbody th,.ss-table td{padding:0 5px}
  .ss-table thead th{padding:6px 5px;font-size:10px;letter-spacing:.04em}
}
@media(max-width:420px){.ss-long{display:none}.ss-short{display:inline}.ss-table tbody th{font-size:15px}}
@media(max-width:340px){.ss-table{font-size:13px}.ss-table tbody th,.ss-table td{padding:0 3px}}
@page ss-page{size:portrait;margin:12mm}
@media print{
  .ss-app,.sleep-next{display:none!important}
  html.ss-printing,html.ss-printing body{background:#ffffff!important}
  html.ss-printing body>:not(main){display:none!important}
  html.ss-printing main{width:auto;max-width:none;margin:0;padding:0}
  html.ss-printing main>:not(.ss-app){display:none!important}
  html.ss-printing .ss-app{display:block!important;margin:0}
  html.ss-printing .ss-app>:not(.ss-stage){display:none!important}
  html.ss-printing .ss-sheet{page:ss-page;box-shadow:none;border-radius:0;padding:8mm 9mm 5mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  html.ss-printing .ss-sheet.ss-design-minimal,html.ss-printing .ss-sheet.ss-design-warm{border:0}
  html.ss-printing .ss-kicker{font-size:9pt}
  html.ss-printing .ss-title{font-size:30pt;min-height:0;border:0}
  html.ss-printing .ss-sub{font-size:11pt;margin-bottom:6mm}
  html.ss-printing .ss-table{font-size:14pt}
  html.ss-printing .ss-table thead th{font-size:9pt;padding:2mm}
  html.ss-printing .ss-table tbody th,html.ss-printing .ss-table td{height:15mm;padding:0 3mm}
  html.ss-printing .ss-table tbody th{font-size:16pt}
  html.ss-printing .ss-long{display:inline!important}html.ss-printing .ss-short{display:none!important}
  html.ss-printing .ss-foot-note{font-size:9.5pt}
  html.ss-printing .ss-routine{margin-top:8mm}
  html.ss-printing .ss-routine h3{font-size:16pt}
  html.ss-printing .ss-routine input{min-height:0;height:10mm;font-size:12pt}
  html.ss-printing .ss-credit{margin-top:6mm;font-size:8pt}
}
/* Nap calculator */
.nap-form .nap-now{width:100%;margin-top:14px}
.nap-type-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nap-type-grid .choice span{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-height:58px;padding:8px 12px}
.nap-type-grid .choice b{font-size:14.5px;line-height:1.2}
.nap-type-grid .choice small{font-size:13px;font-weight:500;color:#5b6475}
.nap-type-grid .choice input:checked+span small{color:#12367f}
.nap-custom input{max-width:180px}
.nap-fields .build-field{margin-top:12px}
.nap-fields input,.nap-fields select{min-height:48px;min-width:0}
.nap-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#b4481c}
.tool-output .nap-headline{margin:4px 0 4px;font:700 32px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.nap-detail{margin:0;font-size:15px;color:#3e4a56}
.nap-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 0;padding:0;list-style:none}
.nap-line li{display:grid;gap:2px;padding:10px 12px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.nap-line span{font-size:12.5px;font-weight:600;color:#5b6475}
.nap-line b{font:700 19px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033;font-variant-numeric:tabular-nums;white-space:nowrap}
.nap-line .is-wake{border-color:#1550b8;background:#e7f0ff}
.nap-line .is-wake b{color:#12367f}
.nap-timing{min-height:3.1em;margin:12px 0 0;padding:10px 12px;border-radius:12px;font-size:15px;line-height:1.4}
.nap-timing.is-ok{background:#edf7ee;color:#1d5b2c}
.nap-timing.is-late,.nap-timing.is-after{background:#fff1e6;color:#8a3b12}
.nap-inertia{margin:10px 0 0;font-size:14.5px;color:#3e4a56}
.nap-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.nap-actions .button{margin:0;min-height:48px}
@media(max-width:1000px) and (min-width:861px){.nap-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
  .nap-app #nap-form-title,.nap-form>.tool-note{display:none}
  .nap-app .tool-form,.nap-app .tool-output{padding:16px}
  .nap-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .nap-type-grid .choice span{min-height:48px;padding:6px 10px}
  .nap-app fieldset.build-field{margin-top:10px}
  .nap-app .tool-row.nap-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .nap-fields .build-field{font-size:12px;margin-top:10px}
  .nap-fields input,.nap-fields select{padding:10px 4px;font-size:14px}
  .tool-output .nap-headline{font-size:26px}
  .nap-line{gap:6px}.nap-line li{padding:8px}.nap-line b{font-size:16px}
  .nap-actions .button{flex:1 1 100%}
}
@media(max-width:340px){.nap-line b{font-size:14px}.nap-line span{font-size:11px}}
@media print{.nap-app .tool-form,.nap-actions{display:none!important}}
/* Christmas countdown */
.xc-app{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.xc-panel{grid-column:1/-1;padding:22px 20px 18px;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;text-align:center}
.xc-kicker{margin:0 0 12px;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b3261e;min-height:1.4em}
.xc-clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:760px;margin:0 auto}
.xc-unit{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 4px 12px;border-radius:18px;background:#fffdf8;border:1.5px solid #eee4d5}
.xc-unit strong{display:block;font:600 clamp(40px,11vw,88px)/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums;letter-spacing:-1px}
.xc-unit span{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.xc-unit:first-child strong{color:#1550b8}
.xc-sub{margin:14px 0 0;font-size:17px;font-weight:600;color:#12367f;min-height:1.5em}
.xc-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.xc-actions .button{min-height:44px;margin:0;display:inline-flex;align-items:center;gap:8px}
.xc-app.is-christmas .xc-unit strong{color:#b3261e}
.xc-panel.is-full{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;justify-content:center;border-radius:0;border:0;background:#172033;padding:24px}
.xc-panel.is-full .xc-kicker{color:#f6b37e;font-size:clamp(14px,2.4vw,22px)}
.xc-panel.is-full .xc-clock{max-width:1400px;width:100%;gap:clamp(8px,2vw,24px)}
.xc-panel.is-full .xc-unit{background:#1f2a44;border-color:#2c3a5c;padding:clamp(14px,3vw,40px) 4px}
.xc-panel.is-full .xc-unit strong{font-size:clamp(48px,14vw,220px);color:#fffdf8}
.xc-panel.is-full .xc-unit span{color:#c5cee0;font-size:clamp(12px,1.8vw,20px)}
.xc-panel.is-full .xc-sub{color:#e8edf7;font-size:clamp(16px,2.6vw,28px)}
.xc-panel.is-full .xc-actions a{display:none}
html[data-theme="dark"] .xc-panel.is-full{background:#0b1020}html[data-theme="dark"] .xc-panel.is-full .xc-unit{background:#151c2e;border-color:#26314b}html[data-theme="dark"] .xc-panel.is-full .xc-unit:first-child strong{color:#9fc0ff}
html.xc-full-open{overflow:hidden}
.xc-advent{scroll-margin-top:80px}
.xc-themes{border:0;padding:0;margin:14px 0 0;min-width:0}.xc-themes legend{padding:0;margin-bottom:8px}.xc-themes .choice span{min-height:44px;padding:8px 14px}
.xc-peek{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:6px;font-weight:600;cursor:pointer}.xc-peek input{width:22px;height:22px;margin:0;accent-color:#1550b8}
.xc-status{margin:4px 0 10px;font-weight:700;color:#12367f;min-height:3em}
.xc-doors{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.xc-door{position:relative;width:100%;min-height:64px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;border-radius:14px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:inherit;cursor:pointer;text-align:center}
.xc-num{font:700 22px/1 'Fraunces','Fraunces Fallback',Georgia,serif}
.xc-text{display:none;font-size:12.5px;line-height:1.25}
.xc-door.is-locked{background:repeating-linear-gradient(135deg,#f6f1e8 0 8px,#fffdf8 8px 16px)}
.xc-door.is-locked .xc-num{color:#6b7280}
.xc-door.is-open{background:#fff;border-color:#b3261e}.xc-door.is-open .xc-num{color:#b3261e}
.xc-door.is-today{box-shadow:0 0 0 3px #f2b63c}
.xc-door.is-done{background:#b3261e;border-color:#b3261e;color:#fff}.xc-door.is-done .xc-num{color:#fff}
.xc-door.is-done::after{content:"✓";position:absolute;top:4px;right:7px;font-weight:700;font-size:13px}
.xc-door.is-selected{outline:3px solid #1550b8;outline-offset:2px}
.xc-door:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.xc-app.is-preview .xc-doors{grid-template-columns:repeat(4,minmax(0,1fr))}
.xc-app.is-preview .xc-door{justify-content:flex-start;padding:10px 8px;min-height:112px}
.xc-app.is-preview .xc-text{display:block}
.xc-detail{margin-top:12px;padding:14px 16px;border-radius:16px;background:#fff6ea;border:1.5px solid #f2c48e;min-height:148px}
.xc-detail-label{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#b3261e}
.xc-detail-text{margin:6px 0 8px;font:600 20px/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;min-height:2.6em}
.xc-done{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:700;cursor:pointer}.xc-done input{width:24px;height:24px;margin:0;accent-color:#b3261e}
.xc-done.is-muted{opacity:.45;cursor:default}
.xc-progress{margin:10px 0 0;font-weight:700;color:#12367f}
.xc-setup .choice span{min-height:44px}
.xc-idea-list{columns:2;column-gap:32px}.xc-idea-list li{break-inside:avoid;margin-bottom:4px}
.xc-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fbf3ea;color:#2c3a2a;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.xc-p-head{text-align:center;margin-bottom:12px}
.xc-p-kicker{margin:0;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#b3261e}
.xc-p-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.xc-p-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.xc-p-grid li{display:flex;flex-direction:column;gap:4px;min-height:92px;padding:8px;border:1.5px solid #d8c7ae;border-radius:10px;background:#fffdf8;font-size:12.5px;line-height:1.3;break-inside:avoid}
.xc-p-top{display:flex;align-items:center;gap:6px}
.xc-p-top b{font:700 20px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#b3261e}
.xc-p-top small{font-size:10.5px;color:#5d6a55}
.xc-p-top i{margin-left:auto;display:grid;place-items:center;width:16px;height:16px;border:1.5px solid #b3261e;border-radius:4px;font:normal 700 12px/1 'DM Sans','DM Sans Fallback',sans-serif;color:#b3261e}
.xc-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#444}
.xc-design-snow{background:#eef5fb;color:#12305c}.xc-design-snow .xc-p-kicker,.xc-design-snow .xc-p-top b{color:#1f6fc4}.xc-design-snow .xc-p-grid li{border-color:#bcd3ea;background:#fff}.xc-design-snow .xc-p-top i{border-color:#1f6fc4;color:#1f6fc4;border-radius:50%}.xc-design-snow .xc-p-top small{color:#4f6583}
.xc-design-ink{background:#fff;color:#172033}.xc-design-ink .xc-p-kicker,.xc-design-ink .xc-p-top b,.xc-design-ink .xc-p-top i{color:#172033}.xc-design-ink .xc-p-grid li{border-color:#9a9a9a;background:#fff}.xc-design-ink .xc-p-top i{border-color:#172033}.xc-design-ink .xc-p-top small{color:#555}
@media(max-width:860px){.xc-app{grid-template-columns:1fr}}
@media(max-width:560px){.xc-panel{padding:16px 12px 14px}.xc-clock{gap:6px}.xc-unit{padding:10px 2px 8px;border-radius:14px}.xc-unit span{font-size:11px;letter-spacing:.04em}.xc-sub{font-size:15px}.xc-advent .tool-actions{width:100%}.xc-advent .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}.xc-doors{grid-template-columns:repeat(4,minmax(0,1fr))}.xc-door{min-height:56px}.xc-app.is-preview .xc-doors{grid-template-columns:repeat(2,minmax(0,1fr))}.xc-app.is-preview .xc-door{min-height:84px}.xc-idea-list{columns:1}.xc-print{padding:10px}.xc-p-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
.xc-app>:not(.print-preview){display:none!important}
.xc-print{max-width:none;border:0;padding:12px 14px;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.xc-p-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.xc-p-grid li{min-height:106px;font-size:13px}
.xc-p-head h2{font-size:32px}
}
/* Winter bucket list */
/* A font-independent grid for the list chips, so the web font loading never rewraps them (CLS). */
.wb-app .fb-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.wb-app .fb-presets .choice span{justify-content:center;text-align:center;width:100%}
.wb-app .wb-print{background:#fff;color:#172033}
.wb-app .wb-print .fb-p-kicker{color:#1550b8}
.wb-app .wb-print .fb-p-list li{border-bottom:1px dashed #c9c1b3}
.wb-app .wb-print .fb-p-list i{border:1.5px solid #555;color:#172033}
.wb-app .wb-print .fb-p-foot{color:#444}
.wb-app .wb-print.fb-design-minimal .fb-p-kicker{color:#172033}
.wb-app .wb-print.fb-design-snow{background:#eef5fb;color:#12305c}
.wb-app .wb-print.fb-design-snow .fb-p-kicker{color:#1f6fc4}
.wb-app .wb-print.fb-design-snow .fb-p-list li{border-bottom:1px solid #bcd3ea}
.wb-app .wb-print.fb-design-snow .fb-p-list i{border-color:#1f6fc4;color:#1f6fc4;border-radius:50%}
.wb-app .wb-print.fb-design-holiday{background:#fbf3ea;color:#2c3a2a}
.wb-app .wb-print.fb-design-holiday .fb-p-kicker{color:#b3261e}
.wb-app .wb-print.fb-design-holiday .fb-p-head h2{font-style:italic}
.wb-app .wb-print.fb-design-holiday .fb-p-list li{border-bottom:1px dashed #d8c7ae}
.wb-app .wb-print.fb-design-holiday .fb-p-list i{border-color:#2f6b3a;color:#b3261e}
@media print{.wb-app .wb-print.fb-design-snow,.wb-app .wb-print.fb-design-holiday{padding:10px 14px}.wb-app .wb-print:not(.is-long) .fb-p-list li{padding:5px 0;font-size:15px}.wb-app .wb-print .fb-p-head{margin-bottom:8px}}
.xc-setup .text-button,.wb-app .fb-setup .text-button{min-height:44px}
/* Social media detox */
/* /tools/social-media-detox/: apps, a full break or a limit, 7/14/30 days marked kept or slip, a tip a day and time won back.
   The server renders the same default state the script draws, so nothing moves on load (CLS). One-page printable. */
.sd-app{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.sd-head h2{margin:0}.sd-dates{margin:2px 0 0;font-size:14px;color:#5b6475}
.sd-phase{margin:12px 0 0;min-height:1.5em;font-weight:700;color:#12367f;line-height:1.5}
.sd-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}
.sd-totals>div{padding:10px 12px;border-radius:14px;background:#f6f1e8;border:1px solid #eee4d5}
.sd-totals dt{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.sd-totals dd{margin:2px 0 0;font:700 26px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;white-space:nowrap}
.sd-totals dd small{font:600 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#5b6475}
.sd-projection{margin:8px 0 0;font-size:14px;color:#3b4456}
.sd-today{margin-top:14px;padding:16px;border-radius:18px;background:#fff0d5;border:1px solid #f2d3a8;scroll-margin-top:90px}
.sd-today.is-kept{background:#e7f0ff;border-color:#c9d9f5}
.sd-today.is-slip{background:#fff4ea;border-color:#f2c9a8}
.sd-day-label{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.sd-kind{padding:3px 9px;border-radius:99px;background:#fff;color:#12367f;letter-spacing:.04em}
.sd-tip-title{margin:8px 0 4px;font:600 22px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.sd-tip-text{margin:0 0 12px;font-size:16px;line-height:1.5;color:#2f3a4a}
.sd-marks{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}
.sd-mark{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:6px 12px;border-radius:12px;border:1.5px solid #eee4d5;background:#fff;color:#172033;font:700 15px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.sd-mark.is-kept[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#fff}
.sd-mark.is-slip[aria-pressed="true"]{background:#e4632e;border-color:#e4632e;color:#fff}
.sd-mark:disabled{cursor:default;color:#5b6475;opacity:.7}
.sd-slip{margin-top:12px;padding:12px 14px;border-radius:12px;background:#fff;border:1px dashed #e4632e}
.sd-slip-title{margin:0 0 4px;font-weight:800;color:#b24618}
.sd-slip ol{margin:0;padding-left:20px;font-size:15px;line-height:1.5}
.sd-nav{margin:4px 0 0}.sd-nav .text-button{min-height:44px}.sd-nav:has(>[hidden]){display:none}
.sd-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.sd-cell{display:grid;place-items:center;align-content:center;gap:2px;width:100%;min-height:50px;padding:3px 2px;border-radius:10px;border:1.5px solid #e6dfd2;background:#fffdf8;color:#172033;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.sd-date{font-size:9.5px;font-weight:600;color:#5b6475;white-space:nowrap}
.sd-cell.is-kept{background:#1550b8;border-color:#1550b8;color:#fff}.sd-cell.is-kept .sd-date{color:#e7f0ff}
.sd-cell.is-slip{background:#fff4ea;border-color:#e4632e;border-style:dashed;color:#b24618}
.sd-cell.is-today{box-shadow:inset 0 0 0 2px #e4632e}
.sd-cell.is-selected{outline:3px solid #1550b8;outline-offset:1px}
.sd-cell:disabled{opacity:.55;cursor:default}
.sd-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.sd-legend>span{display:inline-flex;align-items:center;gap:6px}
.sd-key{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid #e6dfd2;background:#fffdf8}.sd-key.is-kept{background:#1550b8;border-color:#1550b8}.sd-key.is-slip{background:#fff4ea;border:1.5px dashed #e4632e}.sd-key.is-today{box-shadow:inset 0 0 0 2px #e4632e}
.sd-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.sd-apps .choice span{min-height:44px;padding:8px 12px;justify-content:center;border-radius:12px;font-size:15px}
.sd-modes .choice,.sd-lengths .choice{flex:1}.sd-modes .choice span,.sd-lengths .choice span{min-height:46px;padding:8px 12px}
.sd-setup select{width:100%;min-height:48px}
.sd-limit input,.sd-inputs input{width:100%;min-height:46px}
.sd-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sd-setup .tool-note .text-button{min-height:44px}
.sd-tip-list li{margin:6px 0}
.sd-table{width:100%;border-collapse:collapse;font-size:16px}.sd-table th,.sd-table td{padding:10px 12px;border-bottom:1px solid #eee4d5;text-align:left;vertical-align:top}.sd-table th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6475}
.sd-print{max-width:760px;margin:0 auto;padding:22px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.sd-print .sd-p-head{text-align:center;margin-bottom:10px}
.sd-print .sd-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.sd-print .sd-p-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.sd-print .sd-p-sub{margin:0;font-size:11.5px;color:#5b6475}
.sd-print .sd-p-sums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
.sd-print .sd-p-sums div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:6px 10px;border:1.5px solid #172033;border-radius:8px}
.sd-print .sd-p-sums span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sd-print .sd-p-sums strong{font:700 17px/1 'Fraunces','Fraunces Fallback',Georgia,serif;white-space:nowrap}
.sd-print .sd-p-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.sd-print .sd-p-grid.sd-p-len-30{grid-template-columns:repeat(6,minmax(0,1fr))}
.sd-print .sd-p-grid li{min-height:84px;padding:6px 7px;border:1px solid #b9b2a6;border-radius:8px;break-inside:avoid}
.sd-print .sd-p-top{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}
.sd-print .sd-p-day{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#1550b8}
.sd-print .sd-p-date{font-size:9px;color:#5b6475}
.sd-print .sd-p-box{margin-left:auto;display:grid;place-items:center;flex:none;width:15px;height:15px;border:1.5px solid #555;border-radius:4px;font:normal 800 11px/1 'DM Sans','DM Sans Fallback',sans-serif}
.sd-print .sd-p-grid li.is-kept .sd-p-box{background:#172033;border-color:#172033;color:#fff}
.sd-print .sd-p-grid li.is-slip .sd-p-box{border-style:dashed;color:#b24618}
.sd-print .sd-p-tip{margin:5px 0 0;font-size:10px;line-height:1.3;color:#3b4456}
.sd-print .sd-p-notes{flex:1;margin-top:6px;min-height:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 21px,#d6cfc2 21px,#d6cfc2 22px)}
.sd-print .sd-p-len-30 .sd-p-notes{display:none}
.sd-print .sd-p-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:12px}
.sd-print .sd-p-bottom h3{margin:6px 0 2px;font:700 15px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.sd-print .sd-p-bottom h3:first-child{margin-top:0}
.sd-print .sd-p-line{display:block;height:24px;border-bottom:1px solid #b9b2a6}
.sd-print .sd-p-check{width:100%;border-collapse:collapse;font-size:11px}
.sd-print .sd-p-check th,.sd-print .sd-p-check td{border:1px solid #b9b2a6;padding:3px 6px;height:22px;text-align:left}
.sd-print .sd-p-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#444}
.sd-print.sd-design-calm{background:#f3f5fc;color:#1c2a4a}
.sd-print.sd-design-calm .sd-p-kicker,.sd-print.sd-design-calm .sd-p-day{color:#5a4fb0}
.sd-print.sd-design-calm .sd-p-grid li{background:#fff;border-color:#cdd2ea}
.sd-print.sd-design-calm .sd-p-box{border-color:#5a4fb0;border-radius:50%}
.sd-print.sd-design-calm .sd-p-grid li.is-kept .sd-p-box{background:#5a4fb0;border-color:#5a4fb0}
.sd-print.sd-design-calm .sd-p-sums div{border-color:#5a4fb0;background:#fff}
.sd-print.sd-design-calm .sd-p-line{border-bottom-color:#cdd2ea}
.sd-print.sd-design-ink .sd-p-kicker,.sd-print.sd-design-ink .sd-p-day{color:#111}
.sd-print.sd-design-ink .sd-p-head{text-align:left;border-bottom:2px solid #111;padding-bottom:6px}
.sd-print.sd-design-ink .sd-p-grid li{border-color:#777;border-radius:0}
.sd-print.sd-design-ink .sd-p-sums div{border-radius:0}
@media(max-width:860px){.sd-app{grid-template-columns:1fr}}
@media(max-width:560px){.sd-output{padding:16px}.sd-head .tool-actions{width:100%}.sd-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}
.sd-head h2{font-size:22px}.sd-phase{margin-top:10px}
.sd-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.sd-today{padding:12px;margin-top:10px}.sd-tip-title{font-size:19px}.sd-tip-text{font-size:15px;margin-bottom:10px}
.sd-totals{gap:6px}.sd-totals>div{padding:8px}.sd-totals dt{font-size:9.5px;letter-spacing:.02em}.sd-totals dd{font-size:21px}
.sd-marks{grid-template-columns:1fr 1fr}.sd-mark{font-size:14px;padding:6px 8px}
.print-preview.sd-preview{padding:0 10px}.sd-print{padding:12px}.sd-print .sd-p-grid,.sd-print .sd-p-grid.sd-p-len-30{grid-template-columns:repeat(4,minmax(0,1fr))}.sd-print .sd-p-sums,.sd-print .sd-p-bottom{grid-template-columns:1fr}}
@media(max-width:380px){.sd-inputs{grid-template-columns:1fr}.sd-totals dd{font-size:18px}.sd-apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@page sd-letter{size:letter portrait;margin:10mm}
@media print{
.tool-shell:has(.sd-app){width:auto;max-width:none;padding:0;margin:0}
.sd-app{page:sd-letter;margin:0}
.sd-app>:not(.print-preview){display:none!important}
.sd-app .print-preview>summary{display:none!important}
.sd-print{max-width:none;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.sd-print.sd-design-calm{padding:8px 12px}
.sd-print .sd-p-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.sd-print .sd-p-grid.sd-p-len-30{grid-template-columns:repeat(6,minmax(0,1fr))}
.sd-print .sd-p-sums{grid-template-columns:repeat(3,minmax(0,1fr))}
.sd-print .sd-p-bottom{grid-template-columns:1.2fr 1fr}
.sd-print .sd-p-grid li{min-height:0;height:108mm;display:flex;flex-direction:column}
.sd-print .sd-p-grid.sd-p-len-14 li{height:72mm}
.sd-print .sd-p-grid.sd-p-len-30 li{height:30mm}
}
/* Year in review */
/* /tools/year-in-review/: 24 questions in eight parts plus three picks. Every panel is rendered on the server and the
   script only shows, hides and fills them, so nothing moves on load. Prints the answers or the blank questions. */
.yr-app{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
.yr-head{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap}
.yr-head h2{margin:0}
.yr-year-pick{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#5b6475}
.yr-year-pick select{min-height:44px;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:inherit;font-weight:700;color:#172033}
.yr-progress{display:flex;align-items:center;gap:12px;margin-top:12px}
.yr-progress p{margin:0;flex:none;font-size:14px;font-weight:700;color:#12367f;min-width:9.5em;text-align:right}
.yr-bar{flex:1;height:10px;border-radius:99px;background:#eee4d5;overflow:hidden}.yr-bar span{display:block;height:100%;background:#e4632e;border-radius:99px;transition:width .2s}
.yr-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.yr-mode{min-height:48px;padding:6px 10px;border-radius:12px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#3b4456;font:500 13.5px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer;text-align:center}
.yr-mode strong{display:block;font-size:15px;color:#172033}
.yr-mode[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff;box-shadow:inset 0 0 0 1px #1550b8}
.yr-steps{margin:14px -4px 0;overflow-x:auto;scrollbar-width:thin}
.yr-steps ol{list-style:none;display:flex;gap:6px;margin:0;padding:2px 4px 6px;width:max-content}
.yr-step{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px 0 6px;border-radius:99px;border:1.5px solid #e6dfd2;background:#fff;color:#172033;font:600 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;white-space:nowrap;cursor:pointer}
.yr-step-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f6f1e8;font-size:13px;font-weight:800;color:#5b6475}
.yr-step[aria-current="step"]{border-color:#1550b8;background:#1550b8;color:#fff}.yr-step[aria-current="step"] .yr-step-n{background:#fff;color:#1550b8}
.yr-step.is-done .yr-step-n{background:#e4632e;color:#fff}
.yr-panel{margin-top:10px}
.yr-panel-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.yr-panel-title{margin:2px 0 4px;font:600 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.yr-panel-intro{margin:0 0 6px;font-size:15px;line-height:1.5;color:#3b4456}
.yr-q{display:grid;gap:6px;margin-top:14px}
.yr-q-text{display:flex;gap:8px;font-weight:700;line-height:1.35;color:#172033}
.yr-q-n{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff0d5;color:#b24618;font-size:12px;font-weight:800}
.yr-q textarea{width:100%;min-height:84px;padding:11px 13px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:400 16px/1.45 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033;resize:vertical}
.yr-q textarea::placeholder{color:#8a8f9c}
.yr-q textarea:focus{border-color:#1550b8;outline:none;background:#fff}
.yr-app.is-quick .yr-q:not(.is-quick){display:none}
.yr-pick-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px;counter-reset:pick}
.yr-pick{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:6px 8px;padding:10px;border-radius:14px;background:#f6f1e8;border:1px solid #eee4d5;counter-increment:pick}
.yr-pick input,.yr-pick select{width:100%;min-height:46px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fff;font:inherit;color:#172033}
.yr-pick input:focus,.yr-pick select:focus{border-color:#1550b8;outline:none}
.yr-pick-link{grid-column:1/-1;display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#1550b8}
.yr-pick-link::after{content:"→";margin-left:6px}
.yr-next-steps{margin-top:14px;padding:12px 14px;border-radius:14px;border:1.5px dashed #1550b8}
.yr-next-title{margin:0 0 2px;font-weight:800;color:#172033}
.yr-next-steps ul{margin:0;padding-left:18px}.yr-next-steps li{margin:0}.yr-next-steps a{display:inline-flex;align-items:center;min-height:44px}
.yr-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.yr-nav .button{margin:0;min-height:48px}.yr-nav .button[hidden]{display:none}
.yr-side h2{margin-bottom:10px}
.yr-card{padding:18px;border-radius:18px;background:#fffdf8;border:1px solid #eee4d5;box-shadow:inset 0 4px 0 #e4632e}
.yr-card-kicker{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#1550b8}
.yr-card-tag{padding:2px 8px;border-radius:99px;background:#fff0d5;color:#b24618;letter-spacing:.04em}
.yr-card-tag[hidden]{display:none}
.yr-card-word{margin:6px 0 8px;font:700 32px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;overflow-wrap:anywhere}
.yr-card-list{margin:0;display:grid;gap:8px}
.yr-card-list dt{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#b24618}
.yr-card-list dd{margin:2px 0 0;font-size:15px;line-height:1.4;color:#2f3a4a;min-height:2.8em;overflow-wrap:anywhere}
.yr-card.is-example .yr-card-word,.yr-card.is-example dd{color:#6b7280}
.yr-actions{display:grid;gap:8px;margin-top:14px}.yr-actions .button{margin:0;min-height:48px;width:100%}
.yr-side .tool-note .text-button{min-height:44px}
.yr-q-list li{margin:4px 0}
.yr-quick-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:99px;background:#fff0d5;color:#8a3a14;font-size:12px;font-weight:800;vertical-align:1px}
.yr-table{width:100%;border-collapse:collapse;font-size:16px}.yr-table th,.yr-table td{padding:10px 12px;border-bottom:1px solid #eee4d5;text-align:left;vertical-align:top}.yr-table th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6475}
.yr-print{max-width:760px;margin:0 auto 16px;padding:24px;border:1px solid #eee4d5;border-radius:6px;background:#fff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.yr-print .yr-p-head{text-align:center;padding-bottom:8px;margin-bottom:10px;border-bottom:2px solid #172033}
.yr-print .yr-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.yr-print .yr-p-head h2{margin:2px 0;font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:inherit}
.yr-print .yr-p-sub{margin:0;font-size:11.5px;color:#5b6475}
.yr-print h3{margin:12px 0 4px;font:700 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#b24618}
.yr-print .yr-p-item{margin:0 0 7px;break-inside:avoid}
.yr-print .yr-p-q{margin:0;font-size:11.5px;font-weight:700;line-height:1.35;color:#172033}
.yr-print .yr-p-a{margin:1px 0 0;font-size:12.5px;line-height:1.45;color:#2f3a4a;white-space:pre-wrap;overflow-wrap:anywhere}
.yr-print .yr-p-empty{font-size:13px;color:#5b6475}
.yr-print .yr-p-picks{margin-top:12px;padding:8px 14px 10px;border:1.5px solid #1550b8;border-radius:10px;break-inside:avoid}
.yr-print .yr-p-picks h3{margin-top:0;color:#1550b8}
.yr-print .yr-p-picks ol{margin:0;padding-left:20px;font-size:13px;line-height:1.5}
.yr-print .yr-p-foot{margin-top:12px;font-size:10.5px;color:#5b6475;text-align:right}
.yr-print .yr-p-cols{columns:2;column-gap:22px}
.yr-print .yr-p-bsec{break-inside:avoid-column}
.yr-print .yr-p-bsec h3{margin:6px 0 2px;font-size:13.5px}
.yr-print .yr-p-bq{margin:0 0 5px;break-inside:avoid}
.yr-print .yr-p-bq .yr-p-q{font-size:10.5px;font-weight:600}
.yr-print .yr-p-line{display:block;height:17px;border-bottom:1px solid #b9b2a6}
.yr-print .yr-p-bpicks{margin-top:8px;padding:6px 12px 8px;border:1.5px solid #1550b8;border-radius:10px}
.yr-print .yr-p-bpicks h3{margin:0 0 2px;font-size:13.5px;color:#1550b8}
.yr-print .yr-p-pickline{display:flex;align-items:flex-end;gap:6px;margin:0;font-size:12px}.yr-print .yr-p-pickline .yr-p-line{flex:1}
@media(max-width:860px){.yr-app{grid-template-columns:1fr}}
@media(max-width:560px){.yr-head{flex-wrap:nowrap}.yr-head h2{font-size:22px;min-width:0}.yr-year-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.yr-steps{scrollbar-width:none}.yr-steps::-webkit-scrollbar{display:none}
.yr-main{padding:16px}.yr-side{padding:16px}.yr-panel-title{font-size:21px}.yr-progress p{min-width:0}
.yr-modes{grid-template-columns:1fr 1fr}.yr-mode{font-size:12.5px}.yr-pick{grid-template-columns:minmax(0,1fr) 96px}
.print-preview.yr-preview{padding:0 10px}.yr-print{padding:14px}.yr-print .yr-p-cols{columns:1}}
@page yr-letter{size:letter portrait;margin:12mm}
@media print{
.tool-shell:has(.yr-app){width:auto;max-width:none;padding:0;margin:0}
.yr-app{page:yr-letter;margin:0}
.yr-app>:not(.print-preview){display:none!important}
.yr-app .print-preview>summary{display:none!important}
.yr-app[data-print="answers"] .yr-print-blank,.yr-app[data-print="blank"] .yr-print-answers{display:none!important}
.yr-print{max-width:none;margin:0;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.yr-print .yr-p-cols{columns:2}
}
/* Goal planner */
/* /tools/goal-planner/: three goal sheets on paper you type on (yearly goals by life area with SMART letters, a quarterly
   plan with 3 milestones and 13 weekly actions, a monthly sheet with 3 actions and a 31-day habit strip), tabs above them,
   options beside them (below on phones), one page per sheet in print. Shares .rc-field, .rc-seg, .rc-design and .rc-more
   with the reward chart. The sheets are paper, so they keep their colors in dark mode (KEEP_SELECTORS). */
.gp-sheet{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--cell:#ffffff;--head:#1550b8;--band:#f4efe6;--on:#1550b8;--accent:#e4632e;position:relative;display:flex;flex-direction:column;padding:18px 18px 12px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.gp-sheet[hidden]{display:none}
.gp-sheet[data-design="sage"]{--bg:#f3fbf7;--ink:#123b2e;--soft:#4f6f63;--line:#b9dccd;--head:#2f8f6b;--band:#dcf2e8;--on:#2f8f6b;--accent:#b7791f;border-color:#b9dccd}
.gp-sheet[data-design="sunset"]{--bg:#fff6ec;--ink:#3d2317;--soft:#7a5a48;--line:#f0d5bd;--head:#d4572a;--band:#ffe7d1;--on:#d4572a;--accent:#7a45b2;border-color:#f0d5bd}
.gp-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#999999;--head:#111111;--band:#f2f2f2;--on:#111111;--accent:#111111;border-color:#cccccc}
.gp-goal{--area:#1550b8}
.gp-goal[data-area="health"]{--area:#2f8f6b}.gp-goal[data-area="money"]{--area:#1f7a8c}.gp-goal[data-area="career"]{--area:#1550b8}.gp-goal[data-area="relationships"]{--area:#c2456b}.gp-goal[data-area="learning"]{--area:#7a45b2}.gp-goal[data-area="home"]{--area:#b7501c}.gp-goal[data-area="fun"]{--area:#d4572a}
.gp-sheet[data-design="ink"] .gp-goal{--area:#111111}
.gp-app{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:22px;align-items:start;margin-bottom:46px}
.gp-stage{min-width:0}
.gp-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;margin-bottom:10px;border-radius:16px;background:#f4efe6}
.gp-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:4px 6px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font:700 15px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.gp-tab small{margin-top:3px;font-size:11px;font-weight:600;color:#6b7683}
.gp-tab[aria-pressed="true"]{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.gp-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.gp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.gp-status{flex:1 1 240px;margin:0;font-size:14px;font-weight:700;line-height:1.4;color:#12367f;min-height:2.8em;display:flex;align-items:center}
.gp-actions{display:flex;flex-wrap:wrap;gap:8px}.gp-actions .button{margin:0;min-height:46px;padding:0 18px}
.gp-sheet input,.gp-sheet select{min-width:0;color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.gp-sheet input::placeholder{color:var(--soft);opacity:.6}
.gp-sheet input:focus,.gp-sheet select:focus{outline:none;border-color:var(--head)}
.gp-head{margin-bottom:10px}
.gp-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--head)}
.gp-h{margin:2px 0 0;font:700 30px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink)}
.gp-head-row{display:flex;flex-wrap:wrap;align-items:end;gap:6px 16px}
.gp-title{flex:1 1 260px;display:block;height:48px;margin:0;padding:0 6px;border:1.5px dashed transparent;border-radius:10px;background:transparent;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif!important;letter-spacing:-.02em}
.gp-title:hover{border-color:var(--line)}
.gp-word{flex:0 1 190px;display:grid;gap:2px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.gp-word input{height:44px;padding:0 4px;border:0;border-bottom:1.5px solid var(--line);background:transparent;font:600 18px/1 'Fraunces','Fraunces Fallback',Georgia,serif!important;letter-spacing:0;text-transform:none;color:var(--accent)}
.gp-goals{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0;padding:0;list-style:none}
.gp-goal{padding:8px 12px 4px 14px;border:1.5px solid var(--line);border-left:6px solid var(--area);border-radius:14px;background:var(--cell)}
.gp-goal-top{display:flex;align-items:center;gap:8px}
.gp-n{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--area);color:#fff;font-size:13px;font-weight:800}
.gp-area{flex:0 1 auto;min-width:0;max-width:60%;text-overflow:ellipsis;height:44px;padding:0 22px 0 6px;border:0;border-radius:8px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%235b6475' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 6px center;-webkit-appearance:none;appearance:none;color:var(--area)!important;font-size:12px!important;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.gp-letters{flex:none;display:flex;gap:3px;margin-left:auto}
.gp-letters i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--band);color:var(--soft);font:800 11px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;font-style:normal}
.gp-letters i.is-on{background:var(--on);color:#fff}
.gp-goal-text{display:block;width:100%;height:44px;padding:0 2px;border:0;border-bottom:1.5px dashed var(--line);background:transparent;font:700 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif!important;letter-spacing:-.01em}
.gp-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0 14px}
.gp-fields label,.gp-line{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--line)}
.gp-fields span,.gp-line>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);white-space:nowrap}
.gp-fields input,.gp-line input{width:100%;height:44px;padding:0 2px;border:0;background:transparent;font-size:15px}
.gp-smart-link{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:700;color:var(--head);text-underline-offset:3px}
.gp-lines{display:grid;gap:0}
.gp-pick{display:grid;gap:4px;margin-top:8px;font-size:12px;font-weight:700;color:var(--soft)}
.gp-pick select{height:44px;padding:0 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--cell);font-size:15px}
.gp-sub{margin:14px 0 2px;font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.01em;color:var(--head)}
.gp-list{margin:0;padding:0;list-style:none}
.gp-row{display:grid;grid-template-columns:86px minmax(0,1fr) 44px;align-items:center;gap:6px;min-height:44px;border-bottom:1px solid var(--line)}
.gp-acts .gp-row{grid-template-columns:28px minmax(0,1fr) 44px}
.gp-row-label{font-size:12.5px;font-weight:800;color:var(--soft);white-space:nowrap}
.gp-row input{width:100%;height:44px;padding:0 2px;border:0;background:transparent;font-size:15px}
.gp-tick{position:relative;width:44px;height:44px;padding:0;border:0;background:transparent;cursor:pointer}
.gp-tick::before{content:"";position:absolute;inset:11px;border:2px solid var(--on);border-radius:6px;background:var(--cell)}
.gp-tick[aria-pressed="true"]::before{background:var(--on)}
.gp-tick[aria-pressed="true"]::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:800 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.gp-tick:focus-visible,.gp-day:focus-visible,.gp-smart-link:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.gp-habit{margin-bottom:6px}
.gp-strip{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}
.gp-day{display:grid;justify-items:center;align-content:center;gap:1px;height:48px;min-width:0;padding:0;border:1.5px solid var(--line);border-radius:10px;background:var(--cell);color:var(--ink);cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.gp-day b{font-size:14px;line-height:1}.gp-day small{font-size:10px;font-weight:700;line-height:1;color:var(--soft)}
.gp-day[aria-pressed="true"]{border-color:var(--on);background:var(--on);color:#fff}.gp-day[aria-pressed="true"] small{color:#fff}
.gp-day.is-void{visibility:hidden}
.gp-notes{display:none}
.gp-build{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:8px;font-size:14px;font-weight:700;color:var(--head);text-underline-offset:3px}
.gp-credit{margin:10px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.gp-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.gp-designs{grid-template-columns:repeat(4,minmax(0,1fr))}
.gp-seg-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gp-swatch-classic{background:linear-gradient(180deg,#1550b8 0 30%,#fffdf8 30%)}
.gp-swatch-sage{background:linear-gradient(180deg,#2f8f6b 0 30%,#f3fbf7 30%)}
.gp-swatch-sunset{background:linear-gradient(180deg,#d4572a 0 30%,#fff6ec 30%)}
.gp-swatch-ink{background:#fff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
@media(max-width:1080px){.gp-app{grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:900px){.gp-app{grid-template-columns:1fr;gap:16px}.gp-controls{position:static}}
@media(max-width:600px){
  .gp-actions{width:100%}.gp-actions .button{flex:1;padding:0 10px}
  .gp-status{flex-basis:100%}
  .gp-tab{font-size:14px}.gp-tab small{font-size:10px}
  .gp-sheet{padding:12px 8px 10px;border-radius:16px}
  .gp-goal-top{gap:5px}
  .gp-letters{gap:2px}.gp-letters i{width:20px;height:20px;font-size:10px}
  .gp-title{font-size:25px!important;height:44px}
  .gp-h{font-size:25px}
  .gp-word{flex-basis:100%}
  .gp-goal{padding:6px 8px 2px 10px}
  .gp-goal-text{font-size:17px!important}
  .gp-fields{grid-template-columns:1fr}
  .gp-fields label{grid-template-columns:1fr;gap:0;padding-top:6px}
  .gp-fields input{height:36px}
  .gp-row{grid-template-columns:70px minmax(0,1fr) 44px;gap:4px}
  .gp-row-label{font-size:11.5px;white-space:normal;line-height:1.15}
  .gp-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
  .gp-day{height:46px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page gp-letter{size:letter portrait;margin:10mm}
@page gp-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.gp-app),body:has(.gp-app){background:#ffffff!important}
  body:has(.gp-app)>:not(main){display:none!important}
  main:has(.gp-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.gp-app)>:not(.gp-app){display:none!important}
  .gp-app{display:block;margin:0}
  .gp-controls,.gp-bar,.gp-tabs,.gp-smart-link,.gp-build,.gp-pick{display:none!important}
  html.gp-all .gp-sheet[hidden]{display:flex!important}
  .gp-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:5mm 7mm 3mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-after:page;break-inside:avoid}
  .gp-sheet:last-child{break-after:auto}
  .gp-sheet[data-paper="letter"]{page:gp-letter;--ph:257mm}
  .gp-sheet[data-paper="a4"]{page:gp-a4;--ph:275mm}
  .gp-sheet input::placeholder{color:transparent}
  .gp-kicker{font-size:9.5pt}
  .gp-h,.gp-title{font-size:24pt!important;height:12mm;padding:0;border:0}
  .gp-word{font-size:7.5pt}.gp-word input{height:8mm;font-size:13pt!important}
  .gp-goals{gap:3mm}
  .gp-goal{padding:1.5mm 3mm 1mm 3.5mm;border-width:.35mm;border-left-width:1.6mm;border-radius:3mm;break-inside:avoid}
  .gp-area{height:6mm;background:none;padding:0;font-size:8pt!important}
  .gp-n{width:5.5mm;height:5.5mm;font-size:8pt}
  .gp-letters i{width:5mm;height:5mm;font-size:7pt}
  .gp-goal-text{height:10mm;font-size:14pt!important;border-bottom-width:.3mm}
  .gp-fields label,.gp-line{min-height:0;height:9mm;border-bottom-width:.3mm}
  .gp-fields span,.gp-line>span{font-size:7pt}
  .gp-fields input,.gp-line input,.gp-row input{height:8mm;font-size:10.5pt}
  .gp-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gp-fields input{font-size:9.5pt}
  .gp-goal{padding-top:2.5mm;padding-bottom:2mm}
  .gp-sub{margin:4mm 0 0;font-size:12pt}
  .gp-row{min-height:0;height:10mm;grid-template-columns:24mm minmax(0,1fr) 8mm;border-bottom-width:.3mm}
  .gp-acts .gp-row{height:12mm;grid-template-columns:6mm minmax(0,1fr) 8mm}
  .gp-weeks .gp-row{height:9.6mm}
  .gp-row-label{font-size:8.5pt}
  .gp-tick{width:8mm;height:8mm}.gp-tick::before{inset:1.5mm;border-width:.35mm;border-radius:1.2mm}
  .gp-tick[aria-pressed="true"]::after{font-size:9pt}
  .gp-strip{grid-template-columns:repeat(16,minmax(0,1fr));gap:1.2mm}
  .gp-day{height:13mm;border-width:.3mm;border-radius:2mm}
  .gp-day b{font-size:9pt}.gp-day small{font-size:6.5pt}
  .gp-notes{display:flex;flex:1;min-height:20mm;margin-top:4mm;padding-top:1mm;background:repeating-linear-gradient(180deg,transparent 0 8.7mm,var(--line) 8.7mm 9mm)}
  .gp-notes span{font:700 12pt 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
  .gp-credit{margin-top:auto;font-size:7pt}
  /* Blank: the same layout with every line empty */
  html.gp-blank .gp-sheet input,html.gp-blank .gp-area{color:transparent!important}
  html.gp-blank .gp-letters i{background:var(--band);color:var(--soft)}
  html.gp-blank .gp-tick[aria-pressed="true"]::before{background:var(--cell)}
  html.gp-blank .gp-tick::after{content:none}
  html.gp-blank .gp-day[aria-pressed="true"]{border-color:var(--line);background:var(--cell);color:var(--ink)}
  html.gp-blank .gp-day[aria-pressed="true"] small{color:var(--soft)}
  html.gp-blank .gp-goal{--area:var(--line)}
  html.gp-blank .gp-n{background:var(--soft)}
  html.gp-blank .gp-title{border-bottom:.35mm solid var(--line);border-radius:0;width:60%;flex:none}
}
/* 2027 planner bundle */
/* /planner/2027/: a "print the set" checklist (each part opens its printable in a new tab; ticks saved on the device) beside
   a printable cover page in three designs. The cover preview is paper, so it keeps its colors in dark mode (KEEP_SELECTORS). */
.pl-app{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:start;margin-bottom:46px}
.pl-check{min-width:0;padding:18px;border-radius:22px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}
.pl-check-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px}
.pl-check-head h2{margin:0;font-size:26px}
.pl-progress{margin:0;font-size:14px;font-weight:700;color:#12367f;min-height:1.4em}
.pl-track{height:8px;margin:10px 0 6px;border-radius:99px;background:#f4efe6;overflow:hidden}
.pl-track span{display:block;width:0;height:100%;border-radius:99px;background:#e4632e;transition:width .25s}
.pl-items{display:grid;margin:0;padding:0;list-style:none}
.pl-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:10px 0;border-bottom:1px solid #eee4d5}
.pl-item:last-child{border-bottom:0}
.pl-done{position:relative;display:grid;place-items:center;width:44px;height:44px;cursor:pointer}
.pl-done input{position:absolute;opacity:0;width:44px;height:44px;margin:0;cursor:pointer}
.pl-box{width:24px;height:24px;border:2px solid #1550b8;border-radius:7px;background:#fff}
.pl-done input:checked+.pl-box{background:#1550b8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='11'%3E%3Cpath d='M1.5 5.5l4 4 7-8' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E") no-repeat center}
.pl-done input:focus-visible+.pl-box{outline:3px solid #e4632e;outline-offset:2px}
.pl-item-text{min-width:0}
.pl-item-text h3{margin:0;font-size:18px;line-height:1.25;letter-spacing:-.01em}
.pl-item-text h3 small{font:700 12px 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;color:#6b7683;white-space:nowrap}
.pl-item-text p{margin:3px 0 0;font-size:14px;line-height:1.45;color:#3e4a56}
.pl-item.is-done .pl-item-text h3{color:#526170;text-decoration:line-through;text-decoration-color:#e4632e;text-decoration-thickness:2px}
.pl-open{min-height:44px!important;padding:0 16px!important;white-space:nowrap}
.pl-months{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 0;padding:0;list-style:none}
.pl-months a{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 6px;border-radius:10px;background:#f4efe6;color:#1550b8;font-size:13px;font-weight:700;text-decoration:none}
.pl-months a:hover{text-decoration:underline}
.pl-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:8px 0 0;font-size:13px;color:#526170}
.pl-foot .text-button{min-height:44px}
.pl-cover-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0;scroll-margin-top:20px}
.pl-cover-form{display:grid;gap:12px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}
.pl-cover-form h2{margin:0;font-size:24px}
.pl-cover-form .button{margin:0;min-height:48px}
.pl-form-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px}
.pl-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.pl-swatch-classic{background:#fffdf8 radial-gradient(circle at 75% 30%,#e4632e 0 6px,transparent 7px);border-color:#1550b8!important}
.pl-swatch-bold{background:#1550b8 radial-gradient(circle at 70% 35%,#f2994a 0 8px,transparent 9px)}
.pl-swatch-minimal{background:#fff;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 6px #111}
.pl-cover-stage{display:grid;place-items:center;padding:14px;border-radius:20px;background:#f4efe6}
.pl-sheet{--bg:#fffdf8;--ink:#172033;--soft:#526170;--frame:#1550b8;--sun:#e4632e;--hill:#dfe9fb;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:min(100%,340px);aspect-ratio:8.5/11;box-sizing:border-box;padding:12% 10%;overflow:hidden;border-radius:6px;background:var(--bg);color:var(--ink);text-align:center;box-shadow:0 10px 26px #1720332b;color-scheme:light}
.pl-sheet[data-paper="a4"]{aspect-ratio:210/297}
.pl-sheet::before{content:"";position:absolute;inset:5%;border:1.5px solid var(--frame);border-radius:4px;pointer-events:none}
.pl-art{position:absolute;inset:0;pointer-events:none}
.pl-art i{position:absolute;display:block;border-radius:50%}
.pl-art i:nth-child(1){top:13%;right:17%;width:15%;aspect-ratio:1;background:var(--sun)}
.pl-art i:nth-child(2){left:-20%;bottom:-38%;width:90%;aspect-ratio:1;background:var(--hill)}
.pl-art i:nth-child(3){right:-30%;bottom:-45%;width:100%;aspect-ratio:1;background:var(--hill);opacity:.7}
.pl-sheet p{position:relative;margin:0;max-width:100%;overflow-wrap:anywhere}
.pl-c-year{font:700 92px/.95 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.04em;color:var(--frame)}
.pl-c-title{margin-top:4px!important;font:600 26px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:.02em}
.pl-c-word{margin-top:14px!important;padding:4px 12px;border-radius:99px;background:var(--sun);color:#fff;font:700 12px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.pl-c-name{margin-top:18px!important;font:600 17px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--soft)}
.pl-sheet [hidden]{display:none}
.pl-sheet[data-design="bold"]{--bg:#1550b8;--ink:#ffffff;--soft:#dfe9fb;--frame:#ffffff;--sun:#f2994a;--hill:#2a64c9}
.pl-sheet[data-design="bold"] .pl-c-year{color:#fff}
.pl-sheet[data-design="minimal"]{--bg:#ffffff;--ink:#111111;--soft:#444444;--frame:#111111;--sun:#111111;--hill:transparent}
.pl-sheet[data-design="minimal"] .pl-art{display:none}
.pl-sheet[data-design="minimal"] .pl-c-year{font-weight:400;color:#111}
.pl-sheet[data-design="minimal"] .pl-c-title{font:700 14px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.4em;text-transform:uppercase}
.pl-sheet[data-design="minimal"] .pl-c-word{background:transparent;color:#111;border:1px solid #111}
@media(max-width:900px){.pl-app{grid-template-columns:1fr;gap:16px}.pl-cover-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
@media(max-width:640px){
  .pl-check{padding:12px 10px}
  .pl-check-head h2{font-size:22px}
  .pl-item{grid-template-columns:44px minmax(0,1fr);align-items:start}
  .pl-item-text h3{font-size:16.5px;padding-top:10px}
  .pl-open{grid-column:2;justify-self:start}
  .pl-cover-wrap{grid-template-columns:1fr}
  .pl-sheet{width:min(100%,300px)}
  .pl-c-year{font-size:76px}
}
@page pl-letter{size:letter portrait;margin:0}
@page pl-a4{size:A4 portrait;margin:0}
@media print{
  html.pl-printing,html.pl-printing body{background:#ffffff!important}
  html.pl-printing body>:not(main){display:none!important}
  html.pl-printing main{width:auto;max-width:none;margin:0;padding:0}
  html.pl-printing main>:not(.pl-app),html.pl-printing .pl-check,html.pl-printing .pl-cover-form{display:none!important}
  html.pl-printing .pl-app,html.pl-printing .pl-cover-wrap,html.pl-printing .pl-cover-stage{display:block;margin:0;padding:0;background:none;border-radius:0}
  html.pl-printing .pl-sheet{width:100%;height:278mm;aspect-ratio:auto;border-radius:0;box-shadow:none;padding:30mm 20mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;page:pl-letter}
  html.pl-printing .pl-sheet[data-paper="a4"]{height:296mm;page:pl-a4}
  html.pl-printing .pl-art i:nth-child(2){bottom:-52%}html.pl-printing .pl-art i:nth-child(3){bottom:-58%}
  html.pl-printing main:has(.pl-sheet[data-paper="letter"]){page:pl-letter}
  html.pl-printing main:has(.pl-sheet[data-paper="a4"]){page:pl-a4}
  html.pl-printing .pl-c-year{font-size:120pt}
  html.pl-printing .pl-c-title{font-size:30pt}
  html.pl-printing .pl-sheet[data-design="minimal"] .pl-c-title{font-size:15pt}
  html.pl-printing .pl-c-word{font-size:12pt;margin-top:10mm!important}
  html.pl-printing .pl-c-name{font-size:20pt;margin-top:14mm!important}
}
/* Self-care checklist */
/* /tools/self-care-checklist/: a self-care menu on paper (3 lists of 4 lines: every day, a few times a week, once a week)
   with a tick per line for the chosen day and a week of dots; the idea library and options sit beside it (below on
   phones). Every list always has 4 rows, so the server-rendered example and the saved menu have the same height (CLS).
   The sheet is paper, so it keeps its colors in dark mode (KEEP_SELECTORS). Print: one page, a box per weekday. */
.sc-sheet{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--cell:#ffffff;--head:#1550b8;--band:#f4efe6;--on:#1550b8;display:flex;flex-direction:column;padding:16px 16px 12px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.sc-sheet[data-design="sage"]{--bg:#f3fbf7;--ink:#123b2e;--soft:#4f6f63;--line:#b9dccd;--head:#2f8f6b;--band:#dcf2e8;--on:#2f8f6b;border-color:#b9dccd}
.sc-sheet[data-design="blush"]{--bg:#fff5f6;--ink:#43202a;--soft:#7a5561;--line:#f0cfd6;--head:#c2456b;--band:#fde4e9;--on:#c2456b;border-color:#f0cfd6}
.sc-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#999999;--head:#111111;--band:#f2f2f2;--on:#111111;border-color:#cccccc}
.sc-sheet .sc-row{--area:#1550b8}
.sc-sheet .sc-row[data-area="body"]{--area:#2f8f6b}.sc-sheet .sc-row[data-area="mind"]{--area:#7a45b2}.sc-sheet .sc-row[data-area="social"]{--area:#c2456b}.sc-sheet .sc-row[data-area="space"]{--area:#b7501c}.sc-sheet .sc-row[data-area="own"]{--area:#1550b8}
.sc-sheet[data-design="ink"] .sc-row{--area:#111111}
.sc-app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;margin-bottom:46px}
.sc-stage{min-width:0}
.sc-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.sc-status{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;align-items:center;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.sc-actions{display:flex;flex-wrap:wrap;gap:8px}.sc-actions .button{margin:0;min-height:46px;padding:0 18px}
.sc-sheet .sc-head{margin-bottom:4px}
.sc-sheet .sc-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--head)}
.sc-sheet .sc-title{display:block;width:100%;height:46px;margin:0;padding:0 4px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 29px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.sc-sheet .sc-title:hover{border-color:var(--line)}.sc-sheet .sc-title:focus{outline:none;border-color:var(--head)}
.sc-sheet .sc-daynav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin:0 0 4px;border-radius:14px;background:var(--band)}
.sc-sheet .sc-nav{width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--head);font:700 24px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.sc-sheet .sc-nav:disabled{opacity:.3;cursor:default}
.sc-sheet .sc-day{margin:0;text-align:center;font-size:14.5px;font-weight:800;color:var(--ink)}
.sc-sheet .sc-days{display:none}
.sc-sheet .sc-sec{margin-top:8px}
.sc-sheet .sc-sec-h{display:flex;align-items:baseline;gap:8px;margin:0;padding:6px 2px 2px;border-bottom:2px solid var(--head);font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
.sc-sheet .sc-sec-h small{font:800 11px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.sc-sheet .sc-list{margin:0;padding:0;list-style:none}
.sc-sheet .sc-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-areas:"check text remove" "check meta remove";align-items:center;column-gap:6px;min-height:60px;padding:4px 0;border-bottom:1px solid var(--line)}
.sc-sheet .sc-check{grid-area:check;position:relative;width:44px;height:44px;padding:0;border:0;background:transparent;cursor:pointer}
.sc-sheet .sc-check::before{content:"";position:absolute;inset:10px;border:2px solid var(--area);border-radius:7px;background:var(--cell)}
.sc-sheet .sc-check[aria-pressed="true"]::before{background:var(--area)}
.sc-sheet .sc-check[aria-pressed="true"]::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:800 16px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.sc-sheet .sc-check:disabled{cursor:default}.sc-sheet .sc-check:disabled::before{border-style:dashed;border-color:var(--line)}
.sc-sheet .sc-check:focus-visible,.sc-sheet .sc-remove:focus-visible,.sc-sheet .sc-nav:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.sc-sheet .sc-text{grid-area:text;align-self:end;font-size:15.5px;font-weight:600;line-height:1.3;color:var(--ink);overflow-wrap:anywhere}
.sc-sheet .sc-text em{font-style:normal;font-weight:500;color:var(--soft)}
.sc-sheet .sc-meta{grid-area:meta;align-self:start;display:flex;align-items:center;gap:10px;min-height:18px}
.sc-sheet .sc-tag{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--area)}
.sc-sheet .sc-week{display:flex;gap:4px}
.sc-sheet .sc-week i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line);background:var(--cell);box-sizing:border-box}
.sc-sheet .sc-week i.is-on{border-color:var(--area);background:var(--area)}
.sc-sheet .sc-week i.is-day{outline:1.5px solid var(--soft);outline-offset:1px}
.sc-sheet .sc-row.is-empty .sc-week{visibility:hidden}
.sc-sheet .sc-remove{grid-area:remove;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--soft);font:600 22px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.sc-sheet .sc-remove:hover{background:var(--band);color:var(--ink)}
.sc-sheet .sc-remove[hidden]{display:block;visibility:hidden}
.sc-sheet .sc-notes{display:none}
.sc-sheet .sc-help{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--soft)}
.sc-sheet .sc-credit{margin:6px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.sc-side{display:grid;gap:16px;min-width:0}
.sc-picker{padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.sc-picker-h{margin:0 0 10px;font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.sc-picker-h small{display:block;margin-top:4px;font:600 13px/1.35 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;color:#526170}
.sc-filters{display:grid;gap:8px}
.sc-chips{display:flex;flex-wrap:wrap;gap:6px}
.sc-chip{position:relative}
.sc-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.sc-chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;border-radius:99px;border:1.5px solid #ddd3c4;background:#fffdf8;font-size:14px;font-weight:700;color:#3e4a56;cursor:pointer}
.sc-chip input:checked+span{border-color:#1550b8;background:#1550b8;color:#fff}
.sc-chip input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.sc-ideas{display:grid;gap:6px;margin:12px 0 0;padding:0;list-style:none}
.sc-ideas li[hidden]{display:none}
.sc-idea{display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-areas:"box text" "box meta";align-items:center;column-gap:10px;width:100%;min-height:52px;padding:6px 12px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;color:#172033;text-align:left;cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.sc-idea::before{content:"+";grid-area:box;display:grid;place-items:center;width:22px;height:22px;box-sizing:border-box;border-radius:50%;border:1.5px solid #1550b8;color:#1550b8;font:800 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.sc-idea[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff}
.sc-idea[aria-pressed="true"]::before{content:"✓";background:#1550b8;color:#fff}
.sc-idea:hover{border-color:#1550b8}
.sc-idea:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.sc-idea-text{grid-area:text;font-size:14.5px;font-weight:600;line-height:1.3}
.sc-idea small{grid-area:meta;font-size:11.5px;font-weight:700;color:#5b6475}
.sc-note{min-height:1.4em;margin:8px 0 0;font-size:13px;font-weight:700;color:#a3461a}
.sc-own{display:grid;gap:6px;margin-top:6px;padding-top:10px;border-top:1px solid #eee4d5}
.sc-own-label{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.sc-own-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.sc-own-row input{grid-column:1/-1;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.sc-own-row select{height:46px;min-width:0;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:15px}
.sc-own-row .button{margin:0;min-height:46px}
.sc-own-row input:focus,.sc-own-row select:focus{outline:none;border-color:#1550b8}
.sc-controls{display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.sc-designs{grid-template-columns:repeat(4,minmax(0,1fr))}
.sc-swatch-classic{background:linear-gradient(180deg,#1550b8 0 30%,#fffdf8 30%)}
.sc-swatch-sage{background:linear-gradient(180deg,#2f8f6b 0 30%,#f3fbf7 30%)}
.sc-swatch-blush{background:linear-gradient(180deg,#c2456b 0 30%,#fff5f6 30%)}
.sc-swatch-ink{background:#fff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
@media(max-width:1080px){.sc-app{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:900px){.sc-app{grid-template-columns:1fr;gap:16px}}
@media(max-width:600px){
  .sc-actions{width:100%}.sc-actions .button{flex:1;padding:0 10px}
  .sc-status{flex-basis:100%;min-height:0}
  .sc-sheet{padding:12px 8px 10px;border-radius:16px}
  .sc-sheet .sc-title{font-size:25px;height:44px}
  .sc-sheet .sc-row{column-gap:4px}
  .sc-sheet .sc-text{font-size:15px}
  .sc-picker,.sc-controls{padding:14px 12px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page sc-letter{size:letter portrait;margin:10mm}
@page sc-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.sc-app),body:has(.sc-app){background:#ffffff!important}
  body:has(.sc-app)>:not(main){display:none!important}
  main:has(.sc-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.sc-app)>:not(.sc-app){display:none!important}
  .sc-app{display:block;margin:0}
  .sc-side,.sc-bar,.sc-sheet .sc-daynav,.sc-sheet .sc-check,.sc-sheet .sc-remove,.sc-sheet .sc-tag{display:none!important}
  .sc-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:6mm 7mm 3mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .sc-sheet[data-paper="letter"]{page:sc-letter;--ph:257mm}
  .sc-sheet[data-paper="a4"]{page:sc-a4;--ph:275mm}
  .sc-sheet .sc-kicker{font-size:9.5pt}
  .sc-sheet .sc-title{height:14mm;padding:0;border:0;font-size:26pt}
  .sc-sheet .sc-days{display:grid;grid-template-columns:minmax(0,1fr) repeat(7,11mm);align-items:end;margin-top:3mm;font:800 9pt/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--head);text-align:center}
  .sc-sheet .sc-dh small{display:block;font-size:7pt;font-weight:600;color:var(--soft)}
  .sc-sheet .sc-sec{margin-top:3mm}
  .sc-sheet .sc-sec-h{font-size:14pt;padding:1mm 0 .8mm;border-bottom-width:.5mm}
  .sc-sheet .sc-sec-h small{font-size:7.5pt}
  .sc-sheet .sc-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"text meta";min-height:0;height:13mm;padding:0;column-gap:0;border-bottom-width:.3mm}
  .sc-sheet .sc-text{align-self:center;padding-left:1mm;font-size:11pt}
  .sc-sheet .sc-text em{display:none}
  .sc-sheet .sc-meta{align-self:center;min-height:0}
  .sc-sheet .sc-row.is-empty .sc-week{visibility:visible}
  .sc-sheet .sc-week{gap:0}
  .sc-sheet .sc-week i{width:11mm;height:11mm;display:grid;place-items:center;border:0;border-radius:0;background:none;outline:0}
  .sc-sheet .sc-week i::before{content:"";width:6.5mm;height:6.5mm;box-sizing:border-box;border:.35mm solid var(--area);border-radius:1.4mm;background:var(--cell)}
  .sc-sheet .sc-row.is-empty .sc-week i::before{border-color:var(--line)}
  .sc-sheet .sc-week i.is-on{background:none}.sc-sheet .sc-week i.is-on::before{background:var(--area)}
  .sc-sheet .sc-week i.is-day{outline:0}
  .sc-sheet .sc-notes{display:flex;flex:1;min-height:12mm;margin-top:4mm;padding-top:1mm;background:repeating-linear-gradient(180deg,transparent 0 8.7mm,var(--line) 8.7mm 9mm)}
  .sc-sheet .sc-notes span{font:700 12pt 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
  .sc-sheet .sc-help{margin-top:2mm;font-size:8pt}
  .sc-sheet .sc-credit{font-size:7pt}
  html.sc-blank .sc-sheet .sc-text,html.sc-blank .sc-sheet .sc-title{color:transparent!important}
  html.sc-blank .sc-sheet .sc-title{border-bottom:.35mm solid var(--line);width:60%}
  html.sc-blank .sc-sheet .sc-week i.is-on::before{background:var(--cell)}
  html.sc-blank .sc-sheet .sc-row .sc-week i::before{border-color:var(--head)}
  html.sc-blank .sc-sheet .sc-dh small{visibility:hidden}
}
/* Affirmation cards */
/* /tools/affirmation-cards/: 12 cards on a paper sheet (3 columns, 2 on phones) with dashed cut lines, adult or kids set,
   three designs; tap a card to edit it below the sheet. Cards have a fixed aspect ratio, so text changes never move the
   page (CLS). The sheet is paper and keeps its colors in dark mode (KEEP_SELECTORS). Print: 3 x 4 cards on one page. */
.af-sheet{--bg:#fffdf8;--ink:#3d2317;--soft:#7a5a48;--cut:#d9b99c;--c1:#fff0d5;--c2:#ffe3d3;--c3:#fdf2c4;--c4:#ffe8ee;--accent:#e4632e;padding:14px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.af-sheet[data-design="calm"]{--bg:#f7fbff;--ink:#12295c;--soft:#4a5d80;--cut:#a9c0e6;--c1:#e7f0ff;--c2:#dcf2e8;--c3:#eee8fb;--c4:#e2f3f7;--accent:#1550b8;border-color:#d8e4f7}
.af-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--cut:#777777;--c1:#ffffff;--c2:#ffffff;--c3:#ffffff;--c4:#ffffff;--accent:#111111;border-color:#cccccc}
.af-app{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;margin-bottom:46px}
.af-stage{min-width:0}
.af-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin-bottom:10px;border-radius:16px;background:#f4efe6}
.af-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:4px 6px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font:700 15px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.af-tab small{margin-top:3px;font-size:11px;font-weight:600;color:#5b6475}
.af-tab[aria-pressed="true"]{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.af-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.af-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.af-status{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;align-items:center;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.af-actions{display:flex;flex-wrap:wrap;gap:8px}.af-actions .button{margin:0;min-height:46px;padding:0 18px}
.af-sheet .af-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.af-sheet .af-cell{min-width:0}
.af-sheet .af-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;aspect-ratio:5/4;padding:10px 12px;box-sizing:border-box;border:1.5px dashed var(--cut);border-radius:14px;background:var(--c1);color:var(--ink);text-align:center;cursor:pointer;overflow:hidden}
.af-sheet .af-cell:nth-child(4n+2) .af-card{background:var(--c2)}.af-sheet .af-cell:nth-child(4n+3) .af-card{background:var(--c3)}.af-sheet .af-cell:nth-child(4n) .af-card{background:var(--c4)}
.af-sheet .af-card[aria-pressed="true"]{border:2.5px solid var(--accent);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
.af-sheet .af-card:focus-visible{outline:3px solid #e4632e;outline-offset:3px}
.af-sheet .af-icon{font-size:30px;line-height:1}
.af-sheet .af-icon:empty{display:none}
.af-sheet .af-text{font:700 17px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.01em;overflow-wrap:anywhere}
.af-sheet[data-set="kids"] .af-text{font:800 17px/1.25 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.af-sheet .af-credit{margin:10px 0 0;text-align:center;font-size:11px;color:var(--soft)}
.af-edit{display:grid;gap:6px;margin-top:12px;padding:12px 14px;border-radius:16px;background:#f4efe6}
.af-edit-label{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.af-edit input{height:48px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:600 17px 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.af-edit input:focus{outline:none;border-color:#1550b8}
.af-edit-hint{margin:0;font-size:13px;line-height:1.4;color:#526170}
.af-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.af-themes{display:flex;flex-wrap:wrap;gap:6px}
.af-shuffle{margin:0;min-height:46px}
.af-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.af-swatch-sunny{background:linear-gradient(135deg,#fff0d5 0 50%,#ffe3d3 50%);border-style:dashed!important}
.af-swatch-calm{background:linear-gradient(135deg,#e7f0ff 0 50%,#dcf2e8 50%);border-style:dashed!important}
.af-swatch-ink{background:#fff;border-style:dashed!important;border-color:#777!important}
@media(max-width:1080px){.af-app{grid-template-columns:minmax(0,1fr) 260px}.af-sheet .af-text{font-size:15.5px}}
@media(max-width:900px){.af-app{grid-template-columns:1fr;gap:16px}.af-controls{position:static}}
@media(max-width:600px){
  .af-actions{width:100%}.af-actions .button{flex:1;padding:0 10px}
  .af-status{flex-basis:100%;min-height:0}
  .af-sheet{padding:8px;border-radius:16px}
  .af-sheet .af-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .af-sheet .af-card{aspect-ratio:1/1;padding:8px}
  .af-sheet .af-text,.af-sheet[data-set="kids"] .af-text{font-size:15px}
  .af-sheet .af-icon{font-size:26px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page af-letter{size:letter portrait;margin:8mm}
@page af-a4{size:A4 portrait;margin:8mm}
@media print{
  html:has(.af-app),body:has(.af-app){background:#ffffff!important}
  body:has(.af-app)>:not(main){display:none!important}
  main:has(.af-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.af-app)>:not(.af-app){display:none!important}
  .af-app{display:block;margin:0}
  .af-controls,.af-tabs,.af-bar,.af-edit{display:none!important}
  .af-sheet{display:flex;flex-direction:column;height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .af-sheet[data-paper="letter"]{page:af-letter;--ph:262mm}
  .af-sheet[data-paper="a4"]{page:af-a4;--ph:280mm}
  .af-sheet .af-grid{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:0;border:.3mm dashed var(--cut)}
  .af-sheet .af-card{height:100%;aspect-ratio:auto;border:.3mm dashed var(--cut);border-radius:0;padding:6mm;gap:3mm;box-shadow:none}
  .af-sheet .af-card[aria-pressed="true"]{border:.3mm dashed var(--cut);box-shadow:none}
  .af-sheet .af-text,.af-sheet[data-set="kids"] .af-text{font-size:17pt}
  .af-sheet .af-icon{font-size:30pt}
  .af-sheet .af-credit{margin:2mm 0 0;font-size:7pt}
}
/* Water tracker */
/* /tools/water-tracker/: today's boxes (tap one per glass, bottle or drop) above a week or month sheet with a row per day.
   Box count, size and units are the user's own; no targets. The server renders this week with the example log, and the
   script keeps the same rows and heights (CLS). The sheet is paper and keeps its colors in dark mode (KEEP_SELECTORS).
   Print: one page, week (7 big rows and notes) or month (a row for every day). */
.wt-defs{position:absolute;width:0;height:0;overflow:hidden}
.wt-sheet,.wt-today{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#d6e2f5;--head:#1550b8;--on:#2f7fd8;--band:#eef4ff;--cell:#ffffff}
.wt-sheet{display:flex;flex-direction:column;padding:16px 16px 12px;border-radius:22px;border:1px solid #e3e9f3;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.wt-sheet[data-design="sage"]{--bg:#f3fbf7;--ink:#123b2e;--soft:#4f6f63;--line:#b9dccd;--head:#2f8f6b;--on:#3aa37c;--band:#dcf2e8;border-color:#b9dccd}
.wt-sheet[data-design="berry"]{--bg:#fff5f8;--ink:#43202a;--soft:#7a5561;--line:#f0cfd9;--head:#b8356a;--on:#d9577f;--band:#fde4ec;border-color:#f0cfd9}
.wt-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#999999;--head:#111111;--on:#111111;--band:#f2f2f2;border-color:#cccccc}
.wt-app{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;margin-bottom:46px}
.wt-stage{min-width:0}
.wt-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin-bottom:10px;border-radius:16px;background:#f4efe6}
.wt-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;padding:4px 6px;border:0;border-radius:12px;background:transparent;color:#3e4a56;font:700 15px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.wt-tab small{margin-top:3px;font-size:11px;font-weight:600;color:#5b6475}
.wt-tab[aria-pressed="true"]{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.wt-tab:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.wt-today{padding:10px 12px 14px;margin-bottom:12px;border-radius:20px;background:#eef4ff;border:1px solid #d6e2f5}
.wt-today-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-bottom:8px}
.wt-today-text{display:grid;gap:2px;margin:0;text-align:center}
.wt-today-text b{font:700 19px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.wt-today-text span{font-size:14px;font-weight:700;color:#12367f}
.wt-nav{width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#1550b8;font:700 24px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.wt-nav:disabled{opacity:.3;cursor:default}
.wt-nav:focus-visible,.wt-box:focus-visible,.wt-row:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.wt-boxes{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.wt-box{display:grid;place-items:center;width:48px;height:56px;padding:0;border:0;border-radius:12px;background:#fff;cursor:pointer}
.wt-box:hover{background:#dfeaff}
.wt-ico{display:block;fill:transparent;stroke:var(--head);stroke-width:1.8;stroke-linejoin:round}
.wt-ico.is-on{fill:var(--on);stroke:var(--on)}
.wt-box .wt-ico{width:34px;height:34px}
html[data-theme="dark"] .wt-today{--head:#8fb3ff;--on:#5b9cf0}
.wt-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.wt-summary{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;align-items:center;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.wt-actions{display:flex;flex-wrap:wrap;gap:8px}.wt-actions .button{margin:0;min-height:46px;padding:0 18px}
.wt-sheet .wt-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 12px}
.wt-sheet .wt-title{flex:1 1 220px;min-width:0;height:46px;margin:0;padding:0 4px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.wt-sheet .wt-title:hover{border-color:var(--line)}.wt-sheet .wt-title:focus{outline:none;border-color:var(--head)}
.wt-sheet .wt-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--head)}
.wt-sheet .wt-period{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin:6px 0;border-radius:14px;background:var(--band)}
.wt-sheet .wt-nav{color:var(--head)}
.wt-sheet .wt-period-label{margin:0;text-align:center;font-size:14.5px;font-weight:800;color:var(--ink)}
.wt-sheet .wt-rows{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.wt-sheet .wt-row{display:grid;grid-template-columns:40px minmax(0,1fr) 30px;align-items:center;gap:6px;width:100%;min-height:52px;padding:4px 8px;box-sizing:border-box;border:1.5px solid var(--line);border-radius:12px;background:var(--cell);color:var(--ink);cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:left}
.wt-sheet .wt-row.is-weekend{background:var(--band)}
.wt-sheet .wt-row[aria-pressed="true"]{border-color:var(--head);box-shadow:inset 0 0 0 1px var(--head)}
.wt-sheet .wt-row:disabled{cursor:default}.wt-sheet .wt-row:disabled .wt-ico{opacity:.45}
.wt-sheet .wt-d{display:grid;justify-items:center;line-height:1}
.wt-sheet .wt-d b{font-size:17px}.wt-sheet .wt-d small{margin-top:2px;font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--soft)}
.wt-sheet .wt-row.is-today .wt-d b{color:var(--head)}
.wt-sheet .wt-cells{display:grid;grid-template-columns:repeat(var(--n),minmax(0,34px));justify-content:start;justify-items:center;gap:2px}
.wt-sheet .wt-cells .wt-ico{width:100%;max-width:26px;height:26px}
.wt-sheet .wt-n{text-align:right;font-size:15px;font-weight:800;color:var(--soft)}
.wt-sheet[data-layout="month"] .wt-rows{gap:3px}
.wt-sheet[data-layout="month"] .wt-row{min-height:44px;padding:2px 8px}
.wt-sheet[data-layout="month"] .wt-cells .wt-ico{max-width:20px;height:20px}
.wt-sheet .wt-notes{display:none}
.wt-sheet .wt-credit{margin:8px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.wt-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.wt-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.wt-designs{grid-template-columns:repeat(4,minmax(0,1fr))}
.wt-swatch-classic{background:radial-gradient(circle at 50% 60%,#2f7fd8 0 9px,transparent 10px),#fffdf8}
.wt-swatch-sage{background:radial-gradient(circle at 50% 60%,#3aa37c 0 9px,transparent 10px),#f3fbf7}
.wt-swatch-berry{background:radial-gradient(circle at 50% 60%,#d9577f 0 9px,transparent 10px),#fff5f8}
.wt-swatch-ink{background:radial-gradient(circle at 50% 60%,transparent 0 7px,#111 7px 9px,transparent 10px),#fff}
@media(max-width:1080px){.wt-app{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:900px){.wt-app{grid-template-columns:1fr;gap:16px}.wt-controls{position:static}}
@media(max-width:600px){
  .wt-actions{width:100%}.wt-actions .button{flex:1;padding:0 10px}
  .wt-summary{flex-basis:100%;min-height:0}
  .wt-today{padding:8px 6px 12px}.wt-today-text b{font-size:16.5px}
  .wt-boxes{gap:4px}
  .wt-box{width:44px;height:52px}.wt-box .wt-ico{width:30px;height:30px}
  .wt-sheet{padding:12px 8px 10px;border-radius:16px}
  .wt-sheet .wt-title{font-size:24px;height:44px}
  .wt-sheet .wt-row{grid-template-columns:34px minmax(0,1fr) 22px;gap:4px;padding:4px 6px}
  .wt-sheet .wt-d b{font-size:15px}
  .wt-sheet .wt-cells .wt-ico{height:22px}
  .wt-sheet .wt-n{font-size:13.5px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page wt-letter{size:letter portrait;margin:10mm}
@page wt-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.wt-app),body:has(.wt-app){background:#ffffff!important}
  body:has(.wt-app)>:not(main){display:none!important}
  main:has(.wt-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.wt-app)>:not(.wt-app){display:none!important}
  .wt-app{display:block;margin:0}
  .wt-controls,.wt-tabs,.wt-today,.wt-bar,.wt-sheet .wt-nav{display:none!important}
  .wt-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:5mm 7mm 3mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .wt-sheet[data-paper="letter"]{page:wt-letter;--ph:257mm}
  .wt-sheet[data-paper="a4"]{page:wt-a4;--ph:275mm}
  .wt-sheet .wt-title{height:13mm;padding:0;border:0;font-size:26pt}
  .wt-sheet .wt-kicker{font-size:9pt}
  .wt-sheet .wt-period{display:block;margin:1mm 0 3mm;background:none}
  .wt-sheet .wt-period-label{text-align:left;font-size:11pt;color:var(--head)}
  .wt-sheet .wt-row{min-height:0;height:23mm;padding:0 3mm;border-width:.3mm;border-radius:3mm;box-shadow:none!important;grid-template-columns:14mm minmax(0,1fr) 12mm}
  .wt-sheet .wt-row[aria-pressed="true"]{border-color:var(--line)}
  .wt-sheet .wt-row:disabled .wt-ico{opacity:1}
  .wt-sheet .wt-rows{gap:2mm}
  .wt-sheet .wt-d b{font-size:15pt}.wt-sheet .wt-d small{font-size:7.5pt}
  .wt-sheet .wt-cells{grid-template-columns:repeat(var(--n),minmax(0,16mm))}
  .wt-sheet .wt-cells .wt-ico{max-width:13mm;height:13mm}
  .wt-sheet .wt-n{font-size:0}
  .wt-sheet .wt-n::after{content:"";display:inline-block;width:9mm;border-bottom:.3mm solid var(--line)}
  .wt-sheet .wt-notes{display:flex;flex:1;min-height:15mm;margin-top:4mm;padding-top:1mm;background:repeating-linear-gradient(180deg,transparent 0 8.7mm,var(--line) 8.7mm 9mm)}
  .wt-sheet .wt-notes span{font:700 12pt 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
  .wt-sheet[data-layout="month"] .wt-rows{gap:0}
  .wt-sheet[data-layout="month"] .wt-row{min-height:0;height:6.6mm;border-radius:0;border-width:0 0 .25mm;padding:0 1mm;grid-template-columns:14mm minmax(0,1fr) 10mm}
  .wt-sheet[data-layout="month"] .wt-cells{grid-template-columns:repeat(var(--n),minmax(0,9mm))}
  .wt-sheet[data-layout="month"] .wt-d{display:flex;gap:1.5mm;align-items:baseline;justify-items:start}
  .wt-sheet[data-layout="month"] .wt-d b{font-size:9pt}.wt-sheet[data-layout="month"] .wt-d small{font-size:6.5pt}
  .wt-sheet[data-layout="month"] .wt-cells .wt-ico{max-width:5mm;height:5mm}
  .wt-sheet[data-layout="month"] .wt-notes{min-height:8mm;margin-top:2mm}
  .wt-sheet .wt-credit{margin-top:2mm;font-size:7pt}
  html.wt-blank .wt-sheet .wt-ico.is-on{fill:transparent;stroke:var(--head)}
  html.wt-blank .wt-sheet .wt-title{color:transparent;border-bottom:.35mm solid var(--line);width:60%;flex:none}
}
/* Morning routine checklist */
/* The printable checklist under the morning routine generator: design cards, a title and print/wallpaper buttons beside a
   paper preview in three designs (week: Mon-Sun tick table; list: big boxes; kids: picture cards). Printing the page
   prints only the sheet, one page. The sheet is paper, so it keeps its colors in dark mode (KEEP_SELECTORS). */
.mrc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:22px;align-items:start;margin:0 0 50px;scroll-margin-top:16px}
.mrc-controls{padding:24px;border-radius:24px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312}
.mrc-controls h2{margin:0 0 4px;font:700 26px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.mrc-designs{border:0;padding:0;margin:14px 0 0;min-width:0}.mrc-designs legend{padding:0;margin-bottom:8px;font-weight:600}
.mrc-design-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mrc-design{position:relative;display:grid;justify-items:center;gap:6px;padding:8px 4px;border-radius:14px;border:1.5px solid #e6dfd2;background:#fffdf8;cursor:pointer;text-align:center}
.mrc-design input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.mrc-design:has(input:checked){border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8;background:#e7f0ff}
.mrc-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.mrc-design-name{font-size:13.5px;font-weight:700;line-height:1.2;color:#172033}.mrc-design-name small{display:block;font-size:11px;font-weight:500;color:#5b6475}
.mrc-swatch{display:grid;gap:3px;width:52px;padding:6px;border-radius:8px;background:#ffffff;border:1px solid #eee4d5}
.mrc-swatch i{display:block;height:6px;border-radius:2px;background:#cfdcf3}
.mrc-swatch-week i{background:repeating-linear-gradient(90deg,#1550b8 0 5px,transparent 5px 8px);opacity:.7}
.mrc-swatch-list i{height:7px;background:linear-gradient(90deg,#1550b8 0 7px,transparent 7px 10px,#cfdcf3 10px)}
.mrc-swatch-kids{grid-template-columns:1fr 1fr;background:#fff6ec}.mrc-swatch-kids i{height:12px;border-radius:4px;background:#ffd9c2}.mrc-swatch-kids i:nth-child(2){background:#dce8fb}.mrc-swatch-kids i:nth-child(3){background:#edf5c6}
.mrc-title-field{margin-top:12px}.mrc-title-field input{min-height:48px}
.mrc-actions{display:grid;gap:8px;margin-top:14px}.mrc-actions .button{margin:0;width:100%;min-height:48px}
.mrc-controls .tool-note a{color:#1550b8;font-weight:700}
.mrc-stage{min-width:0;padding:14px;border-radius:24px;background:#f4efe6}
.mrc-sheet{--ink:#172033;--soft:#5b6475;--line:#d9d0c1;--accent:#1550b8;--warm:#e4632e;display:flex;flex-direction:column;padding:26px 26px 16px;border-radius:6px;background:#ffffff;color:var(--ink);box-shadow:0 10px 26px #17203318;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;color-scheme:light}
.mrc-head{text-align:center;margin-bottom:12px}
.mrc-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--warm)}
.mrc-sheet .mrc-title{margin:2px 0 2px;font:700 28px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}
.mrc-sub{margin:0;font-size:13px;color:var(--soft)}
.mrc-week{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}
.mrc-week th{padding:5px 2px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border-bottom:2px solid var(--accent);text-align:center}
.mrc-week th:nth-child(2){text-align:left}
.mrc-week th.mrc-time,.mrc-week td.mrc-time{width:64px}
.mrc-week th.mrc-day{width:28px}
.mrc-week td{padding:7px 2px;border-bottom:1px solid var(--line);vertical-align:middle}
.mrc-week td.mrc-time{font-size:11.5px;font-weight:700;color:#b24618;white-space:nowrap}
.mrc-week td.mrc-step{padding-right:6px;line-height:1.3;overflow-wrap:anywhere}
.mrc-week td.mrc-box{text-align:center}
.mrc-week td.mrc-box i{display:inline-block;width:17px;height:17px;border:1.5px solid var(--accent);border-radius:4px;vertical-align:middle}
.mrc-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:0}
.mrc-list li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 4px;border-bottom:1.5px dashed var(--line)}
.mrc-cb{display:block;width:26px;height:26px;border:2.5px solid var(--accent);border-radius:7px}
.mrc-list .mrc-step{font-size:16px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.mrc-list .mrc-time{font-size:12px;font-weight:700;color:var(--soft);white-space:nowrap}
.mrc-hard{margin:12px 0 0;padding:8px 12px;border-radius:10px;background:#fff0d5;font-size:12.5px;line-height:1.4;color:var(--ink)}
.mrc-hard b{color:#b24618}
.mrc-foot{margin-top:10px;font-size:10px;color:var(--soft);text-align:right}
.mrc-sheet[data-design="list"] .mrc-head{text-align:left;padding-bottom:10px;border-bottom:3px solid var(--ink)}
.mrc-sheet[data-design="list"] .mrc-kicker{color:var(--accent)}
.mrc-sheet[data-design="kids"]{background:#fff6ec}
.mrc-sheet[data-design="kids"] .mrc-title{font-size:32px;color:#1550b8}
.mrc-kids-sub{display:flex;justify-content:center;gap:10px;align-items:center}.mrc-stars{color:#e4632e;letter-spacing:2px}
.mrc-kids{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mrc-kids li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:#ffffff;border:2px solid #ffd9c2}
.mrc-kids li:nth-child(4n+2){border-color:#cfdcf3}.mrc-kids li:nth-child(4n+3){border-color:#d9e8a8}.mrc-kids li:nth-child(4n){border-color:#e6d3f5}
.mrc-num{position:absolute;top:-8px;left:-6px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e4632e;color:#ffffff;font-size:11px;font-weight:800}
.mrc-icon{font-size:34px;line-height:1}
.mrc-kids .mrc-step{font-size:15px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.mrc-kids .mrc-cb{width:30px;height:30px;border-color:#e4632e;border-radius:50%}
@media(max-width:900px){.mrc{grid-template-columns:1fr}}
@media(max-width:560px){
.mrc-controls{padding:16px}.mrc-controls h2{font-size:22px}
.mrc-design-name small{display:none}
.mrc-stage{padding:8px;border-radius:18px}
.mrc-sheet{padding:14px 10px 10px}
.mrc-sheet .mrc-title{font-size:22px}
.mrc-week{font-size:11.5px}.mrc-week th.mrc-time,.mrc-week td.mrc-time{width:50px}.mrc-week td.mrc-time{font-size:10px}.mrc-week th.mrc-day{width:17px}.mrc-week td.mrc-box i{width:12px;height:12px;border-width:1.2px;border-radius:3px}
.mrc-list li{grid-template-columns:28px minmax(0,1fr);gap:8px}.mrc-list .mrc-time{grid-column:2}.mrc-list .mrc-step{font-size:14.5px}.mrc-cb{width:22px;height:22px}
.mrc-kids{grid-template-columns:1fr;gap:8px}.mrc-icon{font-size:28px}
}
@page mrc-page{size:portrait;margin:12mm}
@media print{
.tool-shell:has(.mrc){width:auto;max-width:none;padding:0;margin:0}
.tool-shell:has(.mrc) .tool-app[data-morning]{display:none!important}
.mrc{display:block;page:mrc-page;margin:0}
.mrc-controls{display:none!important}
.mrc-stage{padding:0;background:none;border-radius:0}
.mrc-sheet{padding:0;box-shadow:none;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.mrc-sheet[data-design="kids"]{padding:6mm;border-radius:0}
.mrc-sheet .mrc-title{font-size:34px}.mrc-sub{font-size:14px}
.mrc-week{font-size:15px}.mrc-week th.mrc-time,.mrc-week td.mrc-time{width:84px}.mrc-week th.mrc-day{width:40px}.mrc-week td{padding:11px 3px}.mrc-week td.mrc-time{font-size:13px}.mrc-week td.mrc-box i{width:22px;height:22px}
.mrc-list li{padding:12px 4px}.mrc-list .mrc-step{font-size:19px}.mrc-cb{width:30px;height:30px}
.mrc-kids{gap:16px}.mrc-kids li{grid-template-columns:1fr;justify-items:center;align-content:center;gap:10px;min-height:44mm;padding:12px;text-align:center}.mrc-icon{font-size:64px}.mrc-kids .mrc-step{font-size:20px}.mrc-kids .mrc-cb{width:40px;height:40px}.mrc-num{width:28px;height:28px;font-size:14px}
.mrc-hard{font-size:13.5px}
html:has(.mrc),html:has(.mrc) body{background:#ffffff!important}
}
/* Weekly review */
/* /tools/weekly-review/: five step panels (shared .yr-* stepper styles from the year in review) with a week switcher,
   checklist items, a 3-habit x 7-day grid and the top 3, beside a summary card. The printouts (.wr-print) are paper, so
   they keep their colors in dark mode (KEEP_SELECTORS). */
.wr-app{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
.wr-head{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px}
.wr-when{text-align:center;min-width:0}
.wr-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.tool-output .wr-when h2{margin:0;font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wr-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid #ddd3c4;background:#fffdf8;color:#1550b8;font:700 24px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.wr-arrow:disabled{opacity:.4;cursor:default}
.wr-checks{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.wr-check{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 12px;border-radius:12px;background:#f6f1e8;border:1px solid #eee4d5;font-weight:600;line-height:1.35;color:#172033;cursor:pointer}
.wr-check input{flex:none;width:22px;height:22px;margin:0;accent-color:#1550b8}
.wr-check:has(input:checked){background:#e7f0ff;border-color:#b9cdf0}
.wr-habits{display:grid;gap:6px;margin-top:10px}
.wr-hrow{display:grid;grid-template-columns:minmax(0,1fr) repeat(7,44px) 40px;align-items:center;gap:4px}
.wr-hname input{width:100%;min-height:44px;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fffdf8;font:inherit;color:#172033}
.wr-hname input:focus{border-color:#1550b8;outline:none;background:#fff}
.wr-hday{position:relative;display:block;width:44px;height:44px;cursor:pointer}
.wr-hday input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.wr-hday span[aria-hidden]{position:absolute;inset:4px;border-radius:10px;border:1.5px solid #cfdcf3;background:#fff}
.wr-hday span[aria-hidden]::after{content:attr(data-d);position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:700;color:#8a8f9c}
.wr-hday input:checked+span{background:#1550b8;border-color:#1550b8}
.wr-hday input:checked+span::after{content:"✓";color:#ffffff;font-size:15px;font-weight:800}
.wr-hday input:focus-visible+span{outline:3px solid #f2783c;outline-offset:1px}
.wr-hcount{font-size:13px;font-weight:800;text-align:right;color:#12367f;font-variant-numeric:tabular-nums}
.wr-top{margin:10px 0 0;padding-left:24px;display:grid;gap:8px}
.wr-top li::marker{font-weight:800;color:#e4632e}
.wr-top input{width:100%;min-height:48px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:inherit;color:#172033}
.wr-top input:focus{border-color:#1550b8;outline:none;background:#fff}
.wr-print{max-width:760px;margin:0 auto 16px;padding:24px;border:1px solid #eee4d5;border-radius:6px;background:#ffffff;color:#172033;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.wr-print .wr-p-head{text-align:center;padding-bottom:6px;margin-bottom:8px;border-bottom:2px solid #172033}
.wr-print .wr-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#1550b8}
.wr-print .wr-p-head h2{margin:2px 0 0;font:700 24px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.wr-print .wr-p-fill{display:inline-block;width:220px;height:1em;border-bottom:1px solid #b9b2a6;vertical-align:bottom}
.wr-print h3{margin:8px 0 3px;font:700 14px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#b24618}
.wr-print .wr-p-cols{columns:2;column-gap:22px}
.wr-print .wr-p-sec,.wr-print .wr-p-bsec{break-inside:avoid}
.wr-print .wr-p-item{margin:0 0 6px;break-inside:avoid}
.wr-print .wr-p-q{margin:0;font-size:11px;font-weight:700;line-height:1.35;color:#172033}
.wr-print .wr-p-a{margin:1px 0 0;font-size:12px;line-height:1.45;color:#2f3a4a;white-space:pre-wrap;overflow-wrap:anywhere}
.wr-print .wr-p-empty{font-size:13px;color:#5b6475}
.wr-print .wr-p-done,.wr-print .wr-p-boxes{list-style:none;margin:0 0 4px;padding:0;font-size:10.5px;line-height:1.35;color:#2f3a4a}
.wr-print .wr-p-done li::before{content:"✓ ";font-weight:800;color:#1550b8}
.wr-print .wr-p-boxes li{position:relative;padding-left:16px;margin-bottom:2px}.wr-print .wr-p-boxes li::before{content:"";position:absolute;left:0;top:2px;width:9px;height:9px;border:1.2px solid #172033;border-radius:2px}
.wr-print .wr-p-bq{margin:0 0 4px;break-inside:avoid}
.wr-print .wr-p-bq .wr-p-q{font-size:10.5px;font-weight:600}
.wr-print .wr-p-line{display:block;height:17px;border-bottom:1px solid #b9b2a6}
.wr-print .wr-p-habits{margin-top:6px;break-inside:avoid}
.wr-print .wr-p-habits table{width:100%;border-collapse:collapse;font-size:11px}
.wr-print .wr-p-habits th,.wr-print .wr-p-habits td{border:1px solid #b9b2a6;padding:3px 4px;text-align:center;height:20px}
.wr-print .wr-p-habits th:first-child,.wr-print .wr-p-habits td.wr-p-hname{text-align:left;width:38%}
.wr-print .wr-p-box.is-on{background:#e7f0ff;color:#1550b8;font-weight:800}
.wr-print .wr-p-top{margin-top:8px;padding:6px 12px 8px;border:1.5px solid #1550b8;border-radius:10px;break-inside:avoid}
.wr-print .wr-p-top h3{margin:0 0 2px;color:#1550b8}
.wr-print .wr-p-top ol{margin:0;padding-left:20px;font-size:12.5px;line-height:1.5}
.wr-print .wr-p-pickline{display:flex;align-items:flex-end;gap:6px;margin:0;font-size:12px}.wr-print .wr-p-pickline .wr-p-line{flex:1}
.wr-print .wr-p-foot{margin-top:8px;font-size:10px;color:#5b6475;text-align:right}
@media(max-width:860px){.wr-app{grid-template-columns:1fr}}
@media(max-width:560px){
.wr-main{padding:16px}.wr-side{padding:16px}
.tool-output .wr-when h2{font-size:19px;white-space:normal;line-height:1.15}
.wr-hrow{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding-bottom:8px;border-bottom:1px solid #eee4d5}
.wr-hrow .wr-hname{grid-column:1/-1}
.wr-hday{width:auto;height:44px}
.wr-hcount{text-align:center}
.wr-preview{padding:0 10px}.wr-print{padding:12px}.wr-print .wr-p-cols{columns:1}
}
@page wr-page{size:portrait;margin:11mm}
@media print{
.tool-shell:has(.wr-app){width:auto;max-width:none;padding:0;margin:0}
.wr-app{page:wr-page;margin:0}
.wr-app>:not(.print-preview){display:none!important}
.wr-app[data-print="answers"] .wr-print-blank,.wr-app[data-print="blank"] .wr-print-answers{display:none!important}
.wr-print{max-width:none;margin:0;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.wr-print .wr-p-cols{columns:2}
.wr-print .wr-p-line{height:20px}.wr-print .wr-p-habits td{height:24px}
html:has(.wr-app),html:has(.wr-app) body{background:#ffffff!important}
}
/* 100 day challenge */
/* /tools/100-day-challenge/: the tracker card (title, stats, "tick today", a 100-box grid: 10 across, 5 across on phones)
   beside the picker (idea, own challenge, start date, why, design, print and image). The printable chart (.hc-print) is
   paper, so it keeps its colors in dark mode (KEEP_SELECTORS). */
.hc-app{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.hc-kicker{margin:0;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618;min-height:1.4em}
.tool-output .hc-title{margin:4px 0 2px;font:700 28px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;overflow-wrap:anywhere}
.hc-rule{margin:0;font-size:15.5px;line-height:1.45;color:#3b4456;overflow-wrap:anywhere}
.hc-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 0}
.hc-stats div{padding:8px 4px;border-radius:14px;background:#f6f1e8;text-align:center}
.hc-stats dt{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5b6475}
.hc-stats dd{margin:2px 0 0;font:700 26px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums}
.hc-progress{display:flex;align-items:center;gap:12px;margin-top:12px}
.hc-bar{flex:1;height:10px;border-radius:99px;background:#eee4d5;overflow:hidden}.hc-bar span{display:block;height:100%;border-radius:99px;background:#e4632e;transition:width .2s}
.hc-progress p{margin:0;flex:none;max-width:60%;font-size:14px;font-weight:700;color:#12367f;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-today{width:100%;margin:14px 0 0;min-height:52px;font-size:16px}
.hc-today.is-done{background:#e7f0ff;color:#12367f;box-shadow:inset 0 0 0 1.5px #1550b8}
.hc-today:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.hc-grid{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}
.hc-grid label{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:2px 0;border-radius:10px;border:1.5px solid #cfdcf3;background:#fff;cursor:pointer;user-select:none}
.hc-grid input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.hc-n{font:700 14px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#172033}
.hc-d{margin-top:2px;font-size:9.5px;line-height:1;color:#6b7280;white-space:nowrap}
.hc-grid li.is-mile label{border-color:#e4632e;background:#fff6ec}
.hc-grid li.is-done label{border-color:#1550b8;background:#1550b8}
.hc-grid li.is-done.is-mile label{border-color:#e4632e;background:#e4632e}
.hc-grid li.is-done .hc-n,.hc-grid li.is-done .hc-d{color:#ffffff}
.hc-grid li.is-today label{box-shadow:0 0 0 2px #ffffff,0 0 0 4px #e4632e}
.hc-grid label:has(input:disabled){background:#faf7f1;border-style:dashed;cursor:default}
.hc-grid label:has(input:disabled) .hc-n{color:#8a8f9c}
.hc-grid label:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.hc-side h2{margin-bottom:4px}
.hc-side .build-field{margin-top:12px}
.hc-side .build-field select,.hc-side .build-field input{width:100%;min-height:48px}
.hc-surprise{min-height:44px;text-decoration:underline}
.hc-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.hc-designs{border:0;padding:0;margin:14px 0 0;min-width:0}.hc-designs legend{padding:0;margin-bottom:8px;font-weight:600}
.hc-design-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hc-design{position:relative;display:grid;justify-items:center;gap:6px;padding:8px 4px;border-radius:14px;border:1.5px solid #e6dfd2;background:#fffdf8;cursor:pointer;text-align:center}
.hc-design input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.hc-design:has(input:checked){border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8;background:#e7f0ff}
.hc-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.hc-design-name{font-size:13.5px;font-weight:700;line-height:1.2;color:#172033}.hc-design-name small{display:block;font-size:11px;font-weight:500;color:#5b6475}
.hc-swatch{display:grid;grid-template-columns:repeat(3,14px);gap:4px;padding:6px;border-radius:8px;background:#fffdf8;border:1px solid #eee4d5}
.hc-swatch i{display:block;width:14px;height:14px;border:2px solid #1550b8;border-radius:4px}
.hc-swatch i:nth-child(2){background:#1550b8}.hc-swatch i:nth-child(3){border-color:#e4632e}
.hc-swatch-circles{background:#fff6ec}.hc-swatch-circles i{border-radius:50%;border-color:#e4632e}.hc-swatch-circles i:nth-child(2){background:#e4632e}.hc-swatch-circles i:nth-child(3){border-color:#1550b8}
.hc-swatch-minimal{background:#ffffff}.hc-swatch-minimal i{border:1px solid #111111;border-radius:0}.hc-swatch-minimal i:nth-child(2){background:#111111}.hc-swatch-minimal i:nth-child(3){border:2px solid #111111}
.hc-actions{display:grid;gap:8px;margin-top:14px}.hc-actions .button{margin:0;width:100%;min-height:48px}
.hc-side .tool-note .text-button{min-height:44px}
.hc-plan{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#1550b8}.hc-plan::after{content:"→";margin-left:6px}
.hc-ideas{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hc-ideas li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #eee4d5;border-radius:14px;background:#ffffff}
.hc-ideas strong{display:block;color:#172033}.hc-ideas span{display:block;font-size:14px;line-height:1.4;color:#5b6475}
.hc-ideas .hc-use{flex:none;min-height:44px;margin:0;padding:0 16px}
.hc-print{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#1550b8;--mile:#e4632e;--fill:#1550b8;--mile-bg:#fff0e4;max-width:760px;margin:0 auto 16px;padding:24px;border:1px solid #eee4d5;border-radius:6px;background:var(--bg);color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.hc-print[data-design="circles"]{--bg:#fff6ec;--ink:#3d2317;--soft:#7a5a48;--line:#e4632e;--mile:#1550b8;--fill:#e4632e;--mile-bg:#e7f0ff}
.hc-print[data-design="minimal"]{--bg:#ffffff;--ink:#111111;--soft:#444444;--line:#111111;--mile:#111111;--fill:#111111;--mile-bg:#ffffff}
.hc-p-head{text-align:center;margin-bottom:10px}
.hc-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--line)}
.hc-print .hc-p-title{margin:2px 0;font:700 30px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}
.hc-p-rule{margin:2px 0 6px;font-size:13px;color:var(--ink)}
.hc-p-fill{display:inline-block;min-width:55%;height:1.2em;border-bottom:1px solid var(--soft);vertical-align:bottom}
.hc-p-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;font-size:12px}
.hc-p-meta p{display:flex;align-items:flex-end;gap:5px;margin:0}.hc-p-meta .hc-p-fill{min-width:110px}
.hc-p-grid{list-style:none;padding:0;margin:12px auto;max-width:620px;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.hc-p-grid li{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:10px;min-width:0}
.hc-p-grid b{font-size:15px;line-height:1}.hc-p-grid small{margin-top:2px;font-size:8.5px;line-height:1;color:var(--soft);white-space:nowrap}
.hc-p-grid li.is-mile{border-color:var(--mile);background:var(--mile-bg)}
.hc-p-grid li.is-done{background:var(--fill);color:#ffffff}.hc-p-grid li.is-done small{color:#ffffff}
.hc-p-grid li.is-done.is-mile{background:var(--mile)}
.hc-print[data-design="circles"] .hc-p-grid li{border-radius:50%}
.hc-print[data-design="minimal"] .hc-p-grid{gap:0;border-top:1px solid #111111;border-left:1px solid #111111}
.hc-print[data-design="minimal"] .hc-p-grid li{border:0;border-right:1px solid #111111;border-bottom:1px solid #111111;border-radius:0}
.hc-print[data-design="minimal"] .hc-p-grid li.is-mile b{text-decoration:underline;text-decoration-thickness:2px}
.hc-p-rewards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;font-size:11px}
.hc-p-rewards p{display:grid;gap:14px;margin:0}.hc-p-rewards b{color:var(--mile)}.hc-p-rewards .hc-p-fill{min-width:0;width:100%}
.hc-print[data-design="minimal"] .hc-p-rewards b{color:#111111}
.hc-p-foot{margin-top:10px;font-size:10px;color:var(--soft);text-align:right}
@media(max-width:860px){.hc-app{grid-template-columns:1fr}.hc-ideas{grid-template-columns:1fr}}
@media(max-width:560px){
.hc-main,.hc-side{padding:16px}
.tool-output .hc-title{font-size:24px}
.hc-stats{gap:6px}.hc-stats dd{font-size:22px}.hc-stats dt{font-size:10px;letter-spacing:.04em}
.hc-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.hc-d{font-size:10.5px}
.hc-row{grid-template-columns:1fr}
.hc-design-name small{display:none}
.hc-preview{padding:0 10px}.hc-print{padding:12px}.hc-p-grid{gap:3px}.hc-p-grid b{font-size:10px}.hc-p-grid small{display:none}.hc-p-rewards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@page hc-page{size:portrait;margin:12mm}
@media print{
.tool-shell:has(.hc-app){width:auto;max-width:none;padding:0;margin:0}
.hc-app{page:hc-page;margin:0}
.hc-app>:not(.print-preview){display:none!important}
.hc-print{max-width:none;margin:0;border:0;padding:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.hc-p-grid{max-width:700px;gap:8px}.hc-p-grid b{font-size:17px}.hc-p-grid small{font-size:9px}
html:has(.hc-app),html:has(.hc-app) body{background:#ffffff!important}
}
/* Chore chart gallery */
/* /tools/chore-chart/: four templates picked from thumbnails at the top of the chart (weekly grid, kids side by side,
   daily checklist, picture chart). The thumbnails are server-rendered; the chart keeps its reserved height (no shift). */
.cg-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 4px}
.cg-thumb{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0;min-height:44px;padding:6px 6px 7px;border-radius:12px;border:1.5px solid #e3dccf;background:#fffdf8;color:#172033;font:inherit;text-align:left;cursor:pointer}
.cg-thumb:hover{border-color:#1550b8}
.cg-thumb[aria-checked="true"]{border-color:#1550b8;background:#e7f0ff;box-shadow:0 0 0 1px #1550b8}
.cg-thumb:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.cg-name{font:700 13px/1.15 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#12367f}
.cg-note{font-size:11px;line-height:1.2;color:#5b6475}
.cg-mini{display:grid;gap:3px;height:40px;padding:4px;border-radius:7px;background:#ffffff;border:1px solid #e3d9c8;box-sizing:border-box;overflow:hidden}
.cg-mini i{display:block;min-width:0;border-radius:2px}
.cg-mini-week{grid-template-rows:repeat(4,minmax(0,1fr))}
.cg-mini-week i{background:linear-gradient(90deg,#f3ede3 0 34%,transparent 34%),repeating-linear-gradient(90deg,#c9d6ea 0 7%,transparent 7% 9.5%) 36% 0/64% 100% no-repeat}
.cg-mini-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.cg-mini-columns i{background:linear-gradient(#e7f0ff,#e7f0ff) 0 0/100% 5px no-repeat,repeating-linear-gradient(180deg,transparent 0 3px,#c9d6ea 3px 7px,transparent 7px 9px) 0 7px/100% calc(100% - 7px) no-repeat}
.cg-mini-columns i:nth-child(2){background:linear-gradient(#fff0d5,#fff0d5) 0 0/100% 5px no-repeat,repeating-linear-gradient(180deg,transparent 0 3px,#c9d6ea 3px 7px,transparent 7px 9px) 0 7px/100% calc(100% - 7px) no-repeat}
.cg-mini-columns i:nth-child(4){display:none}
.cg-mini-daily{grid-template-rows:repeat(4,minmax(0,1fr))}
.cg-mini-daily i{background:linear-gradient(90deg,#d8dee8 0 58%,transparent 58%) 0 50%/100% 3px no-repeat,linear-gradient(#1550b8,#1550b8) 100% 50%/7px 7px no-repeat}
.cg-mini-pictures{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.cg-mini-pictures i{border-radius:4px;background:#e7f0ff radial-gradient(circle,#e4632e 0 3px,transparent 3.5px)}
.cg-mini-pictures i:nth-child(2){background-color:#fff0d5}.cg-mini-pictures i:nth-child(3){background-color:#edf5c6}.cg-mini-pictures i:nth-child(4){background-color:#f4e8ff}
.chores-sheet .table-scroll[hidden],.cg-alt[hidden]{display:none}
.cg-alt{min-height:214px;margin-top:8px}
/* Desktop: the people editor sits above the chart options, so reserve its height until the script fills it (no shift). */
@media(min-width:861px){.chart-app[data-chores] [data-chores-people]:empty{min-height:502px}}
.cg-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.cg-col{min-width:0;padding:10px 12px 12px;border:1.5px solid #eee4d5;border-radius:16px;background:#ffffff}
.cg-who{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;margin:0 0 6px;font:700 20px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cg-date{font:600 12.5px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#526170}
.cg-list{list-style:none;margin:0;padding:0;display:grid}
.cg-item{display:grid;gap:6px;padding:8px 0;border-top:1px solid #eee4d5}
.cg-item:first-child{border-top:0}
.cg-text{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;font:600 16px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cg-text .chores-pts{display:inline-block;margin-left:2px;padding:1px 6px;font-size:12px;vertical-align:1px}
.cg-text .kids-icon{flex:none;width:30px;font-size:24px}
.cg-label{min-width:0;overflow-wrap:break-word;hyphens:auto}
.cg-days,.cg-dots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cg-days i,.cg-dots i{display:grid;place-items:center;aspect-ratio:1;max-height:34px;border:2px solid #1550b8;border-radius:7px;font:700 10.5px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;font-style:normal;color:#8a96a6}
.cg-dots i{border-radius:50%;max-height:30px}
.cg-daily .cg-item{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.cg-bigbox{display:block;width:40px;height:40px;border:3px solid #1550b8;border-radius:10px}
.cg-tiles{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(var(--tc,3),minmax(0,1fr));gap:10px}
.cg-alt>.cg-who{margin-top:4px}
.cg-tile{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:14px 8px 10px;border-radius:16px;background:#e7f0ff;text-align:center}
.cg-tile:nth-child(6n+2){background:#fff0d5}.cg-tile:nth-child(6n+3){background:#edf5c6}.cg-tile:nth-child(6n+4){background:#f4e8ff}.cg-tile:nth-child(6n+5){background:#ffe8d9}.cg-tile:nth-child(6n+6){background:#daf3e8}
.cg-tile .kids-icon{font-size:46px}
.cg-tile .cg-label{font:600 16px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.cg-tile .cg-dots{width:100%;margin-top:auto;gap:3px}
.cg-points{margin:8px 0 0;font-size:14px;font-weight:600;color:#526170}
.chores-sheet.is-bw .cg-tile{background:#ffffff;border:1.5px solid #111111}
.chores-sheet.is-bw .cg-days i,.chores-sheet.is-bw .cg-dots i,.chores-sheet.is-bw .cg-bigbox{border-color:#111111;color:#555555}
.chores-sheet.is-bw .cg-col{border-color:#555555}
@media(max-width:560px){
  .cg-gallery{gap:5px}
  .cg-thumb{padding:5px 4px 6px}
  .cg-note{display:none}
  .cg-name{font-size:11.5px}
  .cg-mini{height:34px}
  .cg-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .cg-tile .kids-icon{font-size:40px}
  .cg-tile .cg-label{font-size:15px}
}
@media print{
  .cg-gallery{display:none!important}
  .cg-alt{min-height:0}
  .cg-cols{grid-template-columns:repeat(var(--n,1),minmax(0,1fr));gap:4mm}
  .cg-col,.cg-tile{break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .cg-item{padding:2mm 0}
  .cg-text{font-size:13pt}
  .cg-days i,.cg-dots i,.cg-bigbox{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .cg-tiles{grid-template-columns:repeat(var(--tc,3),minmax(0,1fr));gap:3mm;margin-bottom:3mm}
  .cg-tile{height:min(62mm,calc(196mm / var(--trows,1) - 3mm));box-sizing:border-box;padding:2mm;gap:1mm;justify-content:center;overflow:hidden}
  .cg-tile .kids-icon{font-size:min(40pt,calc(196mm / var(--trows,1) * .24))}
  .cg-tile .cg-label{font-size:min(15pt,calc(196mm / var(--trows,1) * .1))}
  .cg-tile .cg-dots{margin-top:0;max-width:60mm}
  .cg-dots i{max-height:min(8mm,calc(196mm / var(--trows,1) * .13))}
  .cg-tile .chores-pts{padding:0 5px;font-size:9pt}
  .cg-cols{gap:3mm}.cg-col{padding:2mm 3mm}
  .cg-cols .cg-text{gap:2mm}.cg-cols .cg-text .kids-icon{width:auto;font-size:15pt}.cg-daily .cg-item{gap:2mm}.cg-bigbox{width:9mm;height:9mm;border-width:2.5px}
  .chores-sheet[data-lines="m"] .cg-text{font-size:11.5pt}
  .chores-sheet[data-lines="s"] .cg-text{font-size:10pt}.chores-sheet[data-lines="s"] .cg-item{padding:1mm 0;gap:1mm}.chores-sheet[data-lines="s"] .cg-text .kids-icon{font-size:14pt;width:7mm}.chores-sheet[data-lines="s"] .cg-days i{max-height:6mm}.chores-sheet[data-lines="s"] .cg-bigbox{width:7mm;height:7mm}
  /* The weekly grid with many rows (several people, points): tighter rows so it stays one page */
  .chores-sheet[data-lines="m"] .kids-week{border-spacing:0 2px}.chores-sheet[data-lines="m"] .kids-week th,.chores-sheet[data-lines="m"] .kids-week td{padding:1.5mm 2mm}.chores-sheet[data-lines="m"] .kids-week tbody th{font-size:12pt}.chores-sheet[data-lines="m"] .kids-week td.kids-box::after{width:8mm;height:8mm}
  .chores-sheet[data-lines="s"] .kids-week{border-spacing:0 1px}.chores-sheet[data-lines="s"] .kids-week th,.chores-sheet[data-lines="s"] .kids-week td{padding:.7mm 2mm}.chores-sheet[data-lines="s"] .kids-week tbody th{font-size:10.5pt}.chores-sheet[data-lines="s"] .kids-week tbody th .kids-icon{font-size:14pt;width:auto}.chores-sheet[data-lines="s"] .kids-week td.kids-box::after{width:6.5mm;height:6.5mm;border-width:2px}.chores-sheet[data-lines="s"] .chores-person-row th,.chores-sheet[data-lines="s"] .chores-stars th{padding:.8mm 2mm;font-size:10pt}
  .chores-sheet[data-lines="s"] .chores-reward{margin-top:2mm;padding:2mm 4mm;font-size:15pt}
}
/* Visual schedule */
/* /tools/visual-schedule/: picture steps in order (strip), cut-out cards or a First–Then board, Now/Next and tap-to-done.
   The server renders the example routine in the same markup the script draws, so nothing moves on load (CLS).
   Prints one Letter page: the grid rows share the page height (--pr rows). */
.vs-app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;margin-bottom:46px}
.vs-stage{min-width:0}
.vs-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:8px}
.vs-routines{display:flex;flex-wrap:wrap;gap:6px}
.vs-routine{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid #ddd3c4;background:#fff;color:#172033;font:700 14px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.vs-routine:hover{border-color:#1550b8}
.vs-routine[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
.vs-routine:focus-visible,.vs-tap:focus-visible,.vs-lib-btn:focus-visible,.vs-step-icon:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.vs-actions{display:flex;gap:8px}.vs-actions .button{margin:0;min-height:46px;padding:0 18px}
.vs-status{margin:0 0 10px;font-size:14px;font-weight:700;color:#12367f;line-height:1.35;min-height:1.35em}
.vs-sheet{--pc:3;--pr:3;position:relative;padding:20px 20px 12px;border-radius:22px;border:1px solid #eee4d5;background:#fffdf8;color:#172033;box-shadow:0 14px 34px #17203312;color-scheme:light}
.vs-head{text-align:center;margin-bottom:12px}
.vs-title{margin:0;font:700 32px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.01em;color:#172033}
.vs-cut{display:none;margin:4px 0 0;font-size:13px;font-weight:600;color:#6b7280}
.vs-sheet[data-layout="cards"] .vs-cut{display:block}
.vs-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.vs-card{min-width:0;display:flex}
.vs-tap{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:158px;padding:26px 8px 12px;border-radius:18px;border:2px solid #e3d9c8;background:#e7f0ff;color:#172033;font:inherit;text-align:center;cursor:pointer}
.vs-card:nth-child(6n+2) .vs-tap{background:#fff0d5}.vs-card:nth-child(6n+3) .vs-tap{background:#edf5c6}.vs-card:nth-child(6n+4) .vs-tap{background:#f4e8ff}.vs-card:nth-child(6n+5) .vs-tap{background:#ffe8d9}.vs-card:nth-child(6n+6) .vs-tap{background:#daf3e8}
.vs-num{position:absolute;top:8px;left:12px;font:800 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#e4632e}
.vs-icon{font-size:54px;line-height:1.05}
.vs-label{font:600 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;overflow-wrap:anywhere}
.vs-badge{position:absolute;top:7px;right:8px;padding:3px 8px;border-radius:999px;background:#1550b8;color:#ffffff;font:800 11px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase}
.vs-card.is-now .vs-tap{border-color:#e4632e;box-shadow:0 0 0 2px #e4632e}
.vs-card.is-now .vs-badge{background:#e4632e}
.vs-card.is-done .vs-icon,.vs-card.is-done .vs-label{opacity:.35}
.vs-card.is-done .vs-tap::after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-62%);display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#1f8a5b;color:#ffffff;font:800 34px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.vs-empty{grid-column:1/-1;padding:30px 10px;text-align:center;color:#5b6475}
/* Cut-out cards: white, dashed cut lines */
.vs-sheet[data-layout="cards"] .vs-tap{background:#ffffff;border:2px dashed #b9ab94}
/* First–Then: two big pictures with an arrow between */
.vs-sheet[data-layout="firstthen"] .vs-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.vs-sheet[data-layout="firstthen"] .vs-tap{min-height:260px;padding-top:50px}
.vs-sheet[data-layout="firstthen"] .vs-num{top:12px;left:0;right:0;font:700 26px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#1550b8;text-transform:none}
.vs-sheet[data-layout="firstthen"] .vs-card+.vs-card .vs-num{color:#e4632e}
.vs-sheet[data-layout="firstthen"] .vs-icon{font-size:96px}
.vs-sheet[data-layout="firstthen"] .vs-label{font-size:24px}
.vs-sheet[data-layout="firstthen"] .vs-card{position:relative}
.vs-sheet[data-layout="firstthen"] .vs-card:first-child::after{content:"→";position:absolute;right:-34px;top:50%;transform:translateY(-50%);font:800 30px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#e4632e}
/* Black and white */
.vs-sheet[data-ink="bw"]{background:#ffffff}
.vs-sheet[data-ink="bw"] .vs-tap{background:#ffffff!important;border-color:#222222}
.vs-sheet[data-ink="bw"][data-layout="cards"] .vs-tap{border-color:#555555}
.vs-sheet[data-ink="bw"] .vs-icon{filter:grayscale(1)}
.vs-sheet[data-ink="bw"] .vs-num,.vs-sheet[data-ink="bw"][data-layout="firstthen"] .vs-card+.vs-card .vs-num{color:#111111}
.vs-credit{margin:10px 0 0;text-align:right;font-size:11px;color:#6b7280}
.vs-under{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px;margin-top:8px}
.vs-under .text-button{min-height:44px;font-size:14px;text-decoration:underline}
.vs-hint{margin:0;font-size:13px;line-height:1.45;color:#526170}
.vs-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.vs-field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0;font-size:14px;font-weight:700;color:#172033}
.vs-field legend,.vs-legend{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 6px;padding:0}
.vs-legend .optional{letter-spacing:0;text-transform:none;font-weight:600}
label.vs-field>input[type=text]{width:100%;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px;font-weight:500}
label.vs-field>input:focus{outline:none;border-color:#1550b8}
.vs-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:12px;background:#f4efe6;padding:3px;gap:3px}
.vs-seg-2{grid-template-columns:1fr 1fr}
.vs-seg label{position:relative;min-width:0}
.vs-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.vs-seg span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border-radius:9px;font-size:13.5px;font-weight:700;line-height:1.1;color:#3e4a56;cursor:pointer;text-align:center;padding:4px}
.vs-seg small{font-size:10.5px;font-weight:600;color:#6b7683;margin-top:3px}
.vs-seg input:checked+span{background:#fff;color:#12367f;box-shadow:0 1px 4px #17203326}
.vs-seg input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.vs-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.vs-step{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.vs-step-icon{flex:none;width:44px;height:44px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fff;font-size:24px;line-height:1;padding:0;cursor:pointer}
.vs-step-icon[aria-expanded="true"]{border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8}
.vs-step-label{flex:1 1 60px;min-width:0;height:44px;padding:0 8px;border:1.5px solid transparent;border-radius:10px;background:transparent;font:inherit;font-size:15px;font-weight:600;color:#172033}
.vs-step-label:hover{border-color:#ddd3c4}.vs-step-label:focus{border-color:#1550b8;background:#fff;outline:none}
.vs-step-tools{display:flex;gap:3px;margin-left:auto}
.vs-step-tools .kit-mini{width:44px}
.vs-picker{padding:4px 2px 2px}
.vs-more{border-top:1px solid #eee4d5;padding-top:4px}
.vs-more summary{display:flex;align-items:center;min-height:44px;font-weight:700;font-size:14px;color:#12367f;cursor:pointer;list-style:none}
.vs-more summary::-webkit-details-marker{display:none}
.vs-more summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:600}
.vs-more[open] summary::after{content:"−"}
.vs-more-body{display:grid;gap:4px;padding:4px 0 8px}
.vs-more-body .vs-legend{margin:8px 0 2px}
.vs-lib{display:flex;flex-wrap:wrap;gap:6px}
.vs-lib-btn{min-height:44px;padding:4px 10px;border:1.5px dashed #c9d6ea;border-radius:12px;background:#fff;color:#12367f;font:600 13.5px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.vs-lib-btn span{font-size:20px;vertical-align:middle}
.vs-lib-btn:hover{border-style:solid;border-color:#1550b8}
.vs-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.vs-own .button{margin:0;min-height:46px;padding:0 14px}
.vs-list-actions{border-top:1px solid #eee4d5;padding-top:4px}
.vs-list-actions .text-button{min-height:44px;font-size:14px;text-decoration:underline}
.vs-sample{list-style:decimal;columns:2;column-gap:32px}
.vs-sample li{margin:0 0 6px}
@media(max-width:1180px){.vs-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.vs-app{grid-template-columns:1fr;gap:16px}.vs-controls{position:static}.vs-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.vs-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){
  .vs-actions{width:100%}.vs-actions .button{flex:1;padding:0 10px}
  .vs-routines{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px;width:calc(100% + 32px)}
  .vs-routines::-webkit-scrollbar{display:none}
  .vs-routine{flex:none}
  .vs-sheet{padding:14px 10px 10px;border-radius:16px}
  .vs-title{font-size:25px}
  .vs-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .vs-tap{min-height:132px;padding:24px 6px 10px}
  .vs-icon{font-size:46px}.vs-label{font-size:16px}
  .vs-sheet[data-layout="firstthen"] .vs-cards{gap:26px}
  .vs-sheet[data-layout="firstthen"] .vs-tap{min-height:200px;padding-top:44px}
  .vs-sheet[data-layout="firstthen"] .vs-icon{font-size:68px}
  .vs-sheet[data-layout="firstthen"] .vs-label{font-size:19px}
  .vs-sheet[data-layout="firstthen"] .vs-num{font-size:21px}
  .vs-sheet[data-layout="firstthen"] .vs-card:first-child::after{right:-22px;font-size:22px}
  .vs-sample{columns:1}
}
@page vs-letter{size:letter portrait;margin:10mm}
@media print{
  html:has(.vs-app),body:has(.vs-app){background:#ffffff!important}
  body:has(.vs-app)>:not(main){display:none!important}
  main:has(.vs-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.vs-app)>:not(.vs-app){display:none!important}
  .vs-app{display:block;margin:0;page:vs-letter}
  .vs-controls,.vs-bar,.vs-status,.vs-under,.vs-badge{display:none!important}
  .vs-sheet{display:flex;flex-direction:column;height:257mm;box-sizing:border-box;border:0;border-radius:0;box-shadow:none;padding:4mm 2mm 2mm;background:#ffffff;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  .vs-title{font-size:28pt}
  .vs-cards{flex:1;grid-template-columns:repeat(var(--pc),minmax(0,1fr));grid-template-rows:repeat(var(--pr),minmax(0,1fr));gap:5mm}
  .vs-sheet[data-layout="cards"] .vs-cards{gap:3mm}
  .vs-tap{height:100%;min-height:0;border-width:.5mm;padding:8mm 3mm 4mm}
  .vs-card.is-now .vs-tap{box-shadow:none;border-color:#e3d9c8}
  .vs-sheet[data-layout="cards"] .vs-card.is-now .vs-tap{border-color:#b9ab94}
  .vs-card.is-done .vs-icon,.vs-card.is-done .vs-label{opacity:1}
  .vs-card.is-done .vs-tap::after{display:none}
  .vs-num{font-size:14pt;top:3mm;left:4mm}
  .vs-icon{font-size:52pt}
  .vs-label{font-size:17pt}
  .vs-sheet[data-rows="1"] .vs-icon{font-size:96pt}.vs-sheet[data-rows="1"] .vs-label{font-size:26pt}
  .vs-sheet[data-rows="2"] .vs-icon{font-size:76pt}.vs-sheet[data-rows="2"] .vs-label{font-size:21pt}
  .vs-sheet[data-rows="4"] .vs-icon{font-size:44pt}.vs-sheet[data-rows="4"] .vs-label{font-size:15pt}
  .vs-sheet[data-rows="5"] .vs-icon,.vs-sheet[data-rows="6"] .vs-icon{font-size:34pt}.vs-sheet[data-rows="5"] .vs-label,.vs-sheet[data-rows="6"] .vs-label{font-size:13pt}
  .vs-sheet[data-layout="firstthen"] .vs-cards{flex:none;height:150mm;margin-top:14mm;gap:18mm}
  .vs-sheet[data-layout="firstthen"] .vs-num{font-size:30pt;top:6mm}
  .vs-sheet[data-layout="firstthen"] .vs-card:first-child::after{right:-14mm;font-size:30pt}
  .vs-credit{margin-top:3mm;font-size:7pt}
}
/* House rules */
/* /tools/house-rules/: a family rules poster from age sets and a rule list, with positive-phrasing hints, 4 designs and a
   signature line. The server renders the example set in the same markup the script draws (no layout shift); prints one page.
   The editor reuses the visual schedule's control styles (.vs-more, .vs-lib, .vs-own, .vs-step-icon). */
.hr-app{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start;margin-bottom:46px}
.hr-stage{min-width:0}
.hr-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:8px}
.hr-sets{display:flex;flex-wrap:wrap;gap:6px}
.hr-set{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid #ddd3c4;background:#fff;color:#172033;font:700 14px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.hr-set:hover{border-color:#1550b8}
.hr-set[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
.hr-set:focus-visible,.hr-design input:focus-visible+.hr-swatch{outline:3px solid #e4632e;outline-offset:2px}
.hr-actions{display:flex;gap:8px}.hr-actions .button{margin:0;min-height:46px;padding:0 18px}
.hr-note{margin:0 0 10px;font-size:14px;font-weight:600;color:#12367f;line-height:1.4;min-height:2.8em}
.hr-sheet{--ink:#172033;--accent:#1550b8;--dot:#e4632e;--line:#e3d9c8;position:relative;padding:34px 38px 16px;border-radius:22px;border:1px solid #eee4d5;background:#fffdf8;color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.hr-deco{display:block;width:64px;height:6px;margin:0 auto 12px;border-radius:4px;background:var(--dot)}
.hr-title{margin:0 0 18px;text-align:center;font:700 40px/1.12 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.015em;color:var(--ink);overflow-wrap:anywhere}
.hr-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.hr-rule{display:flex;align-items:center;gap:16px;min-height:66px;padding:8px 14px;border-top:1.5px solid var(--line);cursor:pointer}
.hr-rule:first-child{border-top:0}
.hr-icon{flex:none;width:48px;font-size:36px;line-height:1;text-align:center}
.hr-text{font:600 24px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--ink);overflow-wrap:anywhere}
.hr-sheet[data-density="few"] .hr-rule{min-height:96px}.hr-sheet[data-density="few"] .hr-text{font-size:30px}.hr-sheet[data-density="few"] .hr-icon{font-size:48px;width:60px}
.hr-sheet[data-density="many"] .hr-rule{min-height:54px;padding:5px 12px}.hr-sheet[data-density="many"] .hr-text{font-size:20px}.hr-sheet[data-density="many"] .hr-icon{font-size:28px;width:40px}
/* Bright: each rule on a colored pill */
.hr-sheet[data-design="bright"] .hr-title{color:#1550b8}
.hr-sheet[data-design="bright"] .hr-deco{background:#1550b8}
.hr-sheet[data-design="bright"] .hr-list{gap:10px}
.hr-sheet[data-design="bright"] .hr-rule{border:0;border-radius:999px;padding:8px 22px;background:#e7f0ff}
.hr-sheet[data-design="bright"] .hr-rule:nth-child(6n+2){background:#fff0d5}.hr-sheet[data-design="bright"] .hr-rule:nth-child(6n+3){background:#edf5c6}.hr-sheet[data-design="bright"] .hr-rule:nth-child(6n+4){background:#f4e8ff}.hr-sheet[data-design="bright"] .hr-rule:nth-child(6n+5){background:#ffe8d9}.hr-sheet[data-design="bright"] .hr-rule:nth-child(6n+6){background:#daf3e8}
/* Big pictures: tiles for children who do not read yet */
.hr-sheet[data-design="pictures"] .hr-list{grid-template-columns:repeat(var(--hc,3),minmax(0,1fr));gap:12px}
.hr-sheet[data-design="pictures"] .hr-rule{flex-direction:column;justify-content:center;gap:8px;min-height:170px;padding:16px 10px;border:0;border-radius:18px;background:#e7f0ff;text-align:center}
.hr-sheet[data-design="pictures"] .hr-rule:nth-child(6n+2){background:#fff0d5}.hr-sheet[data-design="pictures"] .hr-rule:nth-child(6n+3){background:#edf5c6}.hr-sheet[data-design="pictures"] .hr-rule:nth-child(6n+4){background:#f4e8ff}.hr-sheet[data-design="pictures"] .hr-rule:nth-child(6n+5){background:#ffe8d9}.hr-sheet[data-design="pictures"] .hr-rule:nth-child(6n+6){background:#daf3e8}
.hr-sheet[data-design="pictures"] .hr-icon{width:auto;font-size:60px}
.hr-sheet[data-design="pictures"] .hr-text{font-size:19px}
/* Ink saver */
.hr-sheet[data-design="ink"]{--ink:#111111;--accent:#111111;--dot:#111111;--line:#999999;background:#ffffff}
.hr-sheet[data-design="ink"] .hr-icon{filter:grayscale(1)}
.hr-sign{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px;margin-top:22px}
.hr-sign[hidden]{display:none}
.hr-sign p{grid-column:1/-1;margin:0;text-align:center;font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--accent)}
.hr-sign span{display:block;height:34px;border-bottom:1.5px solid #9aa3b2}
.hr-sheet[data-design="ink"] .hr-sign span{border-color:#111111}
.hr-credit{margin:14px 0 0;text-align:right;font-size:11px;color:#6b7280}
.hr-controls{position:sticky;top:14px;display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.hr-field{display:grid;gap:6px;border:0;margin:0;padding:0;min-width:0;font-size:14px;font-weight:700;color:#172033}
.hr-field legend,.hr-legend{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170;margin:0 0 6px;padding:0}
.hr-legend .optional{letter-spacing:0;text-transform:none;font-weight:600}
.hr-field input[type=text]{width:100%;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px;font-weight:500}
.hr-field input:focus{outline:none;border-color:#1550b8}
.hr-designs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.hr-design{position:relative;display:grid;justify-items:center;gap:4px;font-size:11.5px;font-weight:700;line-height:1.15;text-align:center;color:#3e4a56;cursor:pointer;min-width:0}
.hr-design input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.hr-swatch{display:block;width:100%;height:46px;border-radius:10px;border:2px solid #e3dccf;box-sizing:border-box}
.hr-design input:checked+.hr-swatch{border-color:#1550b8;box-shadow:0 0 0 2px #1550b8}
.hr-swatch-classic{background:linear-gradient(#e4632e,#e4632e) 50% 7px/22px 3px no-repeat,repeating-linear-gradient(180deg,transparent 0 14px,#c9bfae 14px 15.5px) 0 4px/100% 100% no-repeat #fffdf8}
.hr-swatch-bright{background:linear-gradient(90deg,#b9d0f5,#b9d0f5) 50% 6px/74% 8px no-repeat,linear-gradient(90deg,#f7d49a,#f7d49a) 50% 17px/74% 8px no-repeat,linear-gradient(90deg,#cfe08a,#cfe08a) 50% 28px/74% 8px no-repeat #fffdf8}
.hr-swatch-pictures{background:linear-gradient(#f7d49a,#f7d49a) 18% 50%/30% 70% no-repeat,linear-gradient(#b9d0f5,#b9d0f5) 82% 50%/30% 70% no-repeat #fffdf8}
.hr-swatch-ink{background:#ffffff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
.hr-edit{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hr-edit-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.hr-edit-main{display:flex;align-items:flex-start;gap:6px;flex:1 1 170px;min-width:0}
.hr-edit-text{flex:1;min-width:0;min-height:44px;height:48px;padding:4px 8px;border:1.5px solid transparent;border-radius:10px;background:transparent;color:#172033;font:600 14.5px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif;resize:none}
.hr-edit-text:hover{border-color:#ddd3c4}.hr-edit-text:focus{border-color:#1550b8;background:#fff;outline:none}
.hr-edit-tools{display:flex;gap:3px;margin-left:auto}
.hr-edit-tools .kit-mini{width:44px}
.hr-row-tip{flex-basis:100%;margin:0;padding:0 6px 2px 54px;font-size:13px;line-height:1.35;color:#8a4a12}
.hr-row-tip[hidden]{display:none}
.hr-row-tip .text-button{min-height:44px;font-size:13px;text-decoration:underline;text-align:left}
.hr-tip{margin:-6px 0 0;padding:8px 10px;border-radius:12px;background:#fff0d5;font-size:13px;line-height:1.4;color:#5a3410}
.hr-tip[hidden]{display:none}
.hr-check{min-height:44px;font-size:14px}
@media(max-width:1080px){.hr-app{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:900px){.hr-app{grid-template-columns:1fr;gap:16px}.hr-controls{position:static}}
@media(max-width:560px){
  .hr-actions{width:100%}.hr-actions .button{flex:1;padding:0 10px}
  .hr-sets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 4px;width:calc(100% + 32px)}
  .hr-sets::-webkit-scrollbar{display:none}
  .hr-set{flex:none}
  .hr-sheet{padding:20px 14px 10px;border-radius:16px}
  .hr-title{font-size:29px;margin-bottom:10px}
  .hr-rule{gap:10px;min-height:56px;padding:6px 6px}
  .hr-icon{width:36px;font-size:28px}
  .hr-text{font-size:19px}
  .hr-sheet[data-density="few"] .hr-rule{min-height:72px}.hr-sheet[data-density="few"] .hr-text{font-size:23px}.hr-sheet[data-density="few"] .hr-icon{font-size:36px;width:44px}
  .hr-sheet[data-density="many"] .hr-text{font-size:17px}
  .hr-sheet[data-design="bright"] .hr-rule{padding:6px 14px}
  .hr-sheet[data-design="pictures"] .hr-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .hr-sheet[data-design="pictures"] .hr-rule{min-height:130px;padding:12px 6px}
  .hr-sheet[data-design="pictures"] .hr-icon{font-size:44px}
  .hr-sheet[data-design="pictures"] .hr-text{font-size:16px}
  .hr-sign{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@page hr-letter{size:letter portrait;margin:12mm}
@media print{
  html:has(.hr-app),body:has(.hr-app){background:#ffffff!important}
  body:has(.hr-app)>:not(main){display:none!important}
  main:has(.hr-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.hr-app)>:not(.hr-app){display:none!important}
  .hr-app{display:block;margin:0;page:hr-letter}
  .hr-controls,.hr-bar,.hr-note{display:none!important}
  .hr-sheet{display:flex;flex-direction:column;height:253mm;box-sizing:border-box;border:0;border-radius:0;box-shadow:none;padding:10mm 8mm 2mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
  .hr-deco{margin-bottom:6mm}
  .hr-title{font-size:38pt;margin-bottom:10mm}
  .hr-list{flex:1;align-content:start}
  .hr-rule{min-height:22mm;padding:2mm 4mm}
  .hr-text{font-size:22pt}.hr-icon{font-size:30pt;width:16mm}
  .hr-sheet[data-density="few"] .hr-rule{min-height:40mm}.hr-sheet[data-density="few"] .hr-text{font-size:30pt}.hr-sheet[data-density="few"] .hr-icon{font-size:44pt;width:22mm}
  .hr-sheet[data-density="many"] .hr-rule{min-height:16mm;padding:1mm 3mm}.hr-sheet[data-density="many"] .hr-text{font-size:17pt}.hr-sheet[data-density="many"] .hr-icon{font-size:22pt;width:12mm}
  .hr-sheet[data-design="bright"] .hr-list{gap:3mm}
  .hr-sheet[data-design="pictures"] .hr-list{gap:4mm}
  .hr-sheet[data-design="pictures"] .hr-rule{min-height:0;height:min(80mm,calc(182mm / var(--hr,2) - 4mm))}
  .hr-sheet[data-design="pictures"] .hr-icon{font-size:min(64pt,calc(182mm / var(--hr,2) * .3));width:auto}
  .hr-sheet[data-design="pictures"] .hr-text{font-size:min(22pt,calc(182mm / var(--hr,2) * .1))}
  .hr-sign{margin-top:auto;padding-top:6mm}
  .hr-sign span{height:12mm}
  .hr-credit{margin-top:3mm;font-size:7pt}
}
/* Reward chart at 320 px */
/* Seven day boxes need 7 x 44 px: on the narrowest phones the sheet runs edge to edge so each box stays at least 44 px wide. */
@media(max-width:380px){.rc-sheet{margin-inline:-16px;padding:14px 0 10px;border-radius:0;border-left:0;border-right:0}.rc-week tr{column-gap:1px;padding:3px 1px}.rc-week thead tr{padding:0 1px}.rc-head{padding-left:8px}.rc-reward{margin-inline:8px}.rc-credit{padding-right:8px}}
/* Allowance calculator */
/* /tools/allowance-calculator/: kids and ages, a rate per year of age, weekly / 2 weeks / monthly, spend-save-give jars
   and a one-page allowance chart. The server renders the same numbers the script draws (CLS). The chart preview is a
   fixed-ratio paper box sized in container units, so it scales to any width and prints at page size. */
.al-app{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"out form" "chart form"}
.al-output{grid-area:out}.al-form{grid-area:form}
.al-head h2{margin:0;font-size:26px;overflow-wrap:anywhere}.al-head h2 span{font:600 17px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#5b6475;letter-spacing:0}
.al-basis{margin:4px 0 0;font-size:14px;color:#5b6475}
.al-kids{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.al-kid{padding:12px 14px;border-radius:16px;background:#f6f1e8;border:1px solid #eee4d5}
.al-kid-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.al-kid-name{min-width:0;font-weight:800;font-size:16px;color:#172033;overflow-wrap:anywhere}
.al-kid-amt{font:700 28px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;color:#12367f;white-space:nowrap}
.al-kid-amt small{font:600 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:#5b6475}
.al-kid-more{margin:2px 0 0;font-size:14px;color:#3b4456}
.al-jars{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.al-jars li{padding:4px 10px;border-radius:99px;font-size:14px;font-weight:800;background:#fff;border:1px solid #eee4d5;color:#172033;white-space:nowrap}
.al-jars li span{font-weight:600;color:#3b4456}
.al-jars .al-jar-1{background:#e7f0ff;border-color:#c9d9f5}.al-jars .al-jar-2{background:#fff0d5;border-color:#f2d3a8}.al-jars .al-jar-3{background:#daf3e8;border-color:#b9dccd}
.al-kid-survey{margin:6px 0 0;font-size:13px;color:#5b6475}
.al-total{margin:12px 0 0;font-weight:700;color:#172033;font-size:15px}
.al-rows{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.al-row{display:grid;grid-template-columns:minmax(0,1fr) 74px 96px 44px;gap:6px;align-items:end}
.al-f{display:grid;gap:4px;min-width:0;font-size:12px;font-weight:700;color:#5b6475}
.al-f input,.al-f select,.al-chore input{width:100%;height:46px;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;font:inherit;font-size:16px;font-weight:500;color:#172033}
.al-f input:focus,.al-chore input:focus{border-color:#1550b8;outline:none}
.al-remove{width:44px;height:46px;padding:0;border-radius:12px;border:1.5px solid #ddd3c4;background:#fff;color:#5b6475;font-size:22px;line-height:1;cursor:pointer}
.al-remove:disabled{opacity:.4;cursor:default}
.tool-form .al-add{margin-top:10px;min-height:44px}
.al-rates .choice,.al-periods .choice,.al-types .choice,.al-designs .choice,.al-papers .choice{flex:1}
.al-form .choice-row .choice span{min-width:0;min-height:46px;padding:8px 10px;justify-content:center;text-align:center}
.al-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.al-form select{width:100%;min-height:48px}
.al-splits{display:grid;gap:6px}.al-splits .choice span{min-height:44px;padding:8px 14px}
.tool-form h2.al-chart-title{margin-top:28px}
.al-chores{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.al-chore{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px}
.al-chores.is-pay .al-chore{grid-template-columns:minmax(0,1fr) 84px 44px}
.al-chores-field .text-button,.al-form .tool-note .text-button{min-height:44px}
.al-chart.print-preview{grid-area:chart;grid-column:auto;padding:14px 16px 18px;border-radius:24px}
.al-chart-label{margin:0 0 10px;font-weight:800;color:#12367f}
.al-stage,.stc-stage{position:relative;container-type:inline-size;aspect-ratio:816/1056;overflow:hidden;border:1px solid #e6dfd2;border-radius:4px;background:#fff;box-shadow:0 6px 20px #17203318}
.al-stage[data-paper="a4"],.stc-stage[data-paper="a4"]{aspect-ratio:794/1123}
.al-sheet{--u:calc(100cqw / 816);--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--accent:#1550b8;--warm:#e4632e;--line:#cfc6b6;--head:#1550b8;--headink:#ffffff;--j1:#e7f0ff;--j2:#fff0d5;--j3:#daf3e8;position:absolute;inset:0;display:flex;flex-direction:column;padding:calc(44*var(--u)) calc(48*var(--u)) calc(26*var(--u));background:var(--bg);color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;font-size:calc(13*var(--u));line-height:1.3;color-scheme:light}
.al-sheet.al-design-bright{--bg:#fffaf0;--ink:#2b2140;--soft:#6b5f80;--accent:#0f8a7e;--warm:#e0467c;--line:#e5d6bf;--head:#0f8a7e;--j1:#ffe7ef;--j2:#e3f6f3;--j3:#fff1c7}
.al-sheet.al-design-ink{--bg:#ffffff;--ink:#111111;--soft:#555555;--accent:#111111;--warm:#111111;--line:#888888;--head:#ffffff;--headink:#111111;--j1:#ffffff;--j2:#ffffff;--j3:#ffffff}
.al-sheet .al-s-kicker{margin:0;font-size:calc(12*var(--u));font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.al-sheet .al-s-head h2{margin:calc(4*var(--u)) 0;font:700 calc(32*var(--u))/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al-sheet .al-s-sub{margin:0;font-size:calc(14*var(--u));color:var(--soft)}
.al-sheet .al-s-jars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:calc(14*var(--u));margin-top:calc(18*var(--u))}
.al-sheet .al-s-jar{display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 calc(8*var(--u));padding:calc(9*var(--u)) calc(14*var(--u));border:1.5px solid var(--line);border-radius:calc(12*var(--u));background:var(--j1)}
.al-sheet .al-s-jar-save{background:var(--j2)}.al-sheet .al-s-jar-give{background:var(--j3)}
.al-sheet .al-s-jar-name{grid-column:1/-1;font-size:calc(11*var(--u));font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.al-sheet .al-s-jar strong{font:700 calc(22*var(--u))/1.15 'Fraunces','Fraunces Fallback',Georgia,serif}
.al-sheet .al-s-jar-pct{font-size:calc(11*var(--u));color:var(--soft);white-space:nowrap}
.al-sheet .al-s-goal{display:flex;align-items:flex-end;gap:calc(10*var(--u));margin:calc(18*var(--u)) 0 0;font-size:calc(13*var(--u));font-weight:700}
.al-sheet .al-s-goal i{flex:1;height:calc(14*var(--u));border-bottom:1px solid var(--line)}.al-sheet .al-s-goal i.al-s-short{flex:0 0 calc(150*var(--u))}
.al-sheet table{width:100%;border-collapse:collapse;table-layout:fixed}
.al-sheet .al-s-table{margin-top:calc(18*var(--u))}
.al-sheet .al-s-table th{height:calc(30*var(--u));padding:0 calc(4*var(--u));border:1px solid var(--line);background:var(--head);color:var(--headink);font-size:calc(12*var(--u));font-weight:800;text-align:center}
.al-sheet .al-s-table th.is-payday{background:var(--warm)}
.al-sheet.al-design-ink .al-s-table th{border-bottom:2px solid #111111}.al-sheet.al-design-ink .al-s-table th.is-payday{background:#ffffff;text-decoration:underline}
.al-sheet .al-s-table td{height:calc(38*var(--u));padding:0 calc(8*var(--u));border:1px solid var(--line);font-size:calc(14*var(--u));font-weight:600;overflow:hidden}
.al-sheet .al-s-table .al-s-chore{width:calc(330*var(--u));text-align:left}.al-sheet.is-pay .al-s-table .al-s-chore{width:calc(250*var(--u))}
.al-sheet .al-s-pay,.al-sheet .al-s-sum{width:calc(64*var(--u));text-align:center}
.al-sheet td.al-s-pay{color:var(--accent);font-weight:800}
.al-sheet .al-s-box{text-align:center}
.al-sheet .al-s-box i{display:inline-block;width:calc(20*var(--u));height:calc(20*var(--u));border:1.5px solid var(--line);border-radius:calc(5*var(--u));vertical-align:middle}
.al-sheet.al-design-ink .al-s-box i{border-radius:0;border-color:#555555}
.al-sheet h3{margin:calc(24*var(--u)) 0 calc(8*var(--u));font:700 calc(18*var(--u))/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink)}
.al-sheet .al-s-log th{height:calc(26*var(--u));border:1px solid var(--line);background:var(--j1);color:var(--ink);font-size:calc(12*var(--u));font-weight:800}
.al-sheet .al-s-log td{height:calc(34*var(--u));border:1px solid var(--line)}
.al-sheet .al-s-foot{display:flex;justify-content:space-between;gap:calc(12*var(--u));margin-top:auto;font-size:calc(11*var(--u));color:var(--soft)}
.al-table{width:100%;border-collapse:collapse;font-size:16px}.al-table th,.al-table td{padding:10px 12px;border-bottom:1px solid #eee4d5;text-align:left;vertical-align:top}.al-table thead th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6475}.al-table small{color:#5b6475}
@media(max-width:900px){.al-app{grid-template-columns:1fr;grid-template-areas:"out" "form" "chart"}}
@media(max-width:560px){
  .al-output{padding:16px}.al-head .tool-actions{width:100%}.al-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}
  .al-head h2{font-size:22px}.al-kid{padding:10px 12px}.al-kid-amt{font-size:24px}
  .al-row{grid-template-columns:minmax(0,1fr) 64px 44px;grid-template-areas:"name age remove" "amt amt amt"}
  .al-f-name{grid-area:name}.al-f-age{grid-area:age}.al-f-amt{grid-area:amt;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.al-row .al-remove{grid-area:remove}
  .al-row+.al-row{padding-top:8px;border-top:1px solid #eee4d5}
  .al-chart.print-preview{padding:12px 10px 14px}
}
@media(max-width:380px){.al-inputs{grid-template-columns:1fr}.al-form .choice-row{gap:6px}.al-form .choice-row .choice span{padding:8px 6px;font-size:14px}}
@page al-letter{size:letter portrait;margin:10mm}
@page al-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.al-app),body:has(.al-app){background:#ffffff!important}
  main:has(.al-app)>:not(.al-app){display:none!important}
  .tool-shell:has(.al-app){width:auto;max-width:none;padding:0;margin:0}
  .al-app{display:block;margin:0}
  .al-app>:not(.al-chart){display:none!important}
  .al-chart.print-preview{display:block;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
  .al-chart-label{display:none}
  .al-stage{width:100%;border:0;border-radius:0;box-shadow:none;break-inside:avoid}
  .al-stage[data-paper="letter"]{page:al-letter}.al-stage[data-paper="a4"]{page:al-a4}
  .al-sheet{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* Screen time contract */
/* /tools/screen-time-contract/: age buttons tick suggested rules; every rule is editable; the contract itself is the
   output, drawn on the server (same markup the script renders) in a fixed-ratio paper box sized in container units, so
   the first screen shows it and nothing moves on load. Prints on one Letter or A4 page. */
.stc-app{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.stc-head h2{margin:0;overflow-wrap:anywhere}.stc-meta{margin:2px 0 0;font-size:14px;color:#5b6475}
.stc-ages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:14px 0}
.stc-age{min-height:46px;padding:4px 6px;border-radius:12px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:700 14px/1.15 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.stc-ages .stc-age[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
.stc-age:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.stc-sheet{--u:calc(100cqw / 816);--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--accent:#1550b8;--warm:#e4632e;--line:#cfc6b6;--band:#f4efe6;position:absolute;inset:0;display:flex;flex-direction:column;padding:calc(48*var(--u)) calc(56*var(--u)) calc(26*var(--u));background:var(--bg);color:var(--ink);font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif;font-size:calc(14*var(--u));line-height:1.35;color-scheme:light}
.stc-sheet.stc-design-bright{--bg:#fffaf0;--ink:#2b2140;--soft:#6b5f80;--accent:#0f8a7e;--warm:#e0467c;--line:#e5d6bf;--band:#e3f6f3}
.stc-sheet.stc-design-ink{--bg:#ffffff;--ink:#111111;--soft:#555555;--accent:#111111;--warm:#111111;--line:#888888;--band:#ffffff}
.stc-sheet .stc-s-head{padding-bottom:calc(12*var(--u));border-bottom:2px solid var(--accent)}
.stc-sheet.stc-design-bright .stc-s-head{border-bottom:calc(6*var(--u)) dotted var(--warm)}
.stc-sheet .stc-s-kicker{margin:0;font-size:calc(12*var(--u));font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--warm)}
.stc-sheet .stc-s-head h2{margin:calc(4*var(--u)) 0 0;font:700 calc(34*var(--u))/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink)}
.stc-sheet.stc-design-classic .stc-s-head h2{font-style:italic}
.stc-sheet .stc-s-intro{margin:calc(6*var(--u)) 0 0;font-size:calc(13.5*var(--u));color:var(--soft)}
.stc-sheet .stc-s-body{flex:1 1 auto;min-height:0;margin-top:calc(8*var(--u));overflow:hidden}
.stc-sheet .stc-s-sec h3{margin:calc(12*var(--u)) 0 calc(3*var(--u));font-size:calc(11*var(--u));font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.stc-sheet .stc-s-sec ol{margin:0;padding-left:calc(28*var(--u))}
.stc-sheet .stc-s-sec li{margin:calc(3*var(--u)) 0;font-size:calc(15*var(--u));padding-left:calc(2*var(--u))}
.stc-sheet .stc-s-sec li::marker{color:var(--warm);font-weight:800}
.stc-sheet .stc-s-empty{margin:calc(20*var(--u)) 0;color:var(--soft);font-style:italic}
.stc-sheet.stc-compact .stc-s-sec li{font-size:calc(13.2*var(--u));margin:calc(2*var(--u)) 0}.stc-sheet.stc-compact .stc-s-sec h3{margin-top:calc(9*var(--u))}
.stc-sheet.stc-tight .stc-s-body{columns:2;column-gap:calc(26*var(--u))}.stc-sheet.stc-tight .stc-s-sec li{font-size:calc(11.6*var(--u));margin:calc(1.5*var(--u)) 0;break-inside:avoid}.stc-sheet.stc-tight .stc-s-sec h3{margin-top:calc(7*var(--u));break-after:avoid}.stc-sheet.stc-tight .stc-s-sec:first-child h3{margin-top:0}
.stc-sheet .stc-s-deal{display:grid;grid-template-columns:1fr 1fr;gap:calc(20*var(--u));margin-top:calc(12*var(--u))}
.stc-sheet .stc-s-deal>div{padding:calc(10*var(--u)) calc(14*var(--u));border:1px solid var(--line);border-radius:calc(10*var(--u));background:var(--band)}
.stc-sheet.stc-design-ink .stc-s-deal>div{border-radius:0}
.stc-sheet .stc-s-deal h3{margin:0 0 calc(4*var(--u));font:700 calc(14*var(--u))/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--ink)}
.stc-sheet .stc-s-deal p{margin:0;font-size:calc(12*var(--u))}
.stc-sheet .stc-s-review{margin:calc(14*var(--u)) 0 0;font-size:calc(13*var(--u))}
.stc-sheet .stc-s-signs{display:flex;gap:calc(18*var(--u));margin-top:calc(46*var(--u))}
.stc-sheet .stc-s-sign{flex:1;min-width:0}.stc-sheet .stc-s-date{flex:.6}
.stc-sheet .stc-s-sign i{display:block;border-bottom:1.2px solid var(--ink)}
.stc-sheet .stc-s-sign span{display:block;margin-top:calc(5*var(--u));font-size:calc(12*var(--u));font-weight:700;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stc-sheet .stc-s-foot{display:flex;justify-content:space-between;gap:calc(12*var(--u));margin-top:calc(18*var(--u));font-size:calc(10*var(--u));color:var(--soft)}
.stc-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px;align-items:end}
.stc-inputs[hidden]{display:none}
.stc-form select,.stc-form input[type="time"],.stc-form input[type="date"]{width:100%;min-height:48px}
.tool-form h3.stc-rules-title{margin:24px 0 0;font:700 21px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.stc-count{min-height:2.9em}
.stc-sec{margin:14px 0 0;padding:0;border:0;min-width:0}
.stc-sec legend{margin-bottom:4px;padding:0;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#12367f}
.stc-rule{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:start;margin-top:6px}
.stc-rule input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:44px;height:44px;margin:0;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8 center/22px no-repeat;cursor:pointer}
.stc-rules .stc-sec .stc-rule input[type="checkbox"]:checked{border-color:#1550b8;background-color:#1550b8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E")}
.stc-rule input[type="checkbox"]:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.stc-rule textarea{width:100%;min-height:44px;padding:9px 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:15px;line-height:1.35;resize:vertical;field-sizing:content}
.stc-rule textarea:focus{border-color:#1550b8;outline:none}
.stc-rule.is-off textarea{background:#f6f3ee;color:#5b6475}
.stc-remove{width:44px;height:44px;padding:0;border-radius:12px;border:1.5px solid #ddd3c4;background:#ffffff;color:#5b6475;font-size:22px;line-height:1;cursor:pointer}
.stc-form .stc-add,.stc-form .tool-note .text-button{min-height:44px}
.stc-form textarea{resize:vertical}
.stc-table{width:100%;border-collapse:collapse;font-size:16px}.stc-table th,.stc-table td{padding:10px 12px;border-bottom:1px solid #eee4d5;text-align:left;vertical-align:top}.stc-table thead th{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#5b6475}
@media(max-width:900px){.stc-app{grid-template-columns:1fr}}
@media(max-width:560px){
  .stc-output{padding:16px 12px}.stc-head .tool-actions{width:100%}.stc-head .tool-actions .button{flex:1;padding:0 10px;min-height:44px;margin:0}
  .stc-head h2{font-size:22px}.stc-ages{gap:4px}.stc-age{font-size:13px;padding:4px 2px}
}
@page stc-letter{size:letter portrait;margin:10mm}
@page stc-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.stc-app),body:has(.stc-app){background:#ffffff!important}
  main:has(.stc-app)>:not(.stc-app){display:none!important}
  .tool-shell:has(.stc-app){width:auto;max-width:none;padding:0;margin:0}
  .stc-app{display:block;margin:0}
  .stc-app>:not(.stc-output){display:none!important}
  .stc-output{display:block;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
  .stc-output::after{content:none!important;display:none!important}
  .stc-output>:not(.stc-stage){display:none!important}
  .stc-stage{width:100%;border:0;border-radius:0;box-shadow:none;break-inside:avoid}
  .stc-stage[data-paper="letter"]{page:stc-letter}.stc-stage[data-paper="a4"]{page:stc-a4}
  .stc-sheet{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
/* iOS time and date fields */
/* Safari on iPhone gives type=time/date inputs an intrinsic minimum width, so in a two-column row they spill under the next field. */
input[type="time"],input[type="date"]{min-width:0;max-width:100%}
.build-field input[type="time"],.build-field input[type="date"]{display:block;width:100%;box-sizing:border-box}
.tool-row>*,.build-field:has(>input[type="time"]),.build-field:has(>input[type="date"]){min-width:0}
@supports(-webkit-touch-callout:none){input[type="time"],input[type="date"]{-webkit-appearance:none;appearance:none;min-height:44px;color:inherit}}
input[type="time"]::-webkit-date-and-time-value,input[type="date"]::-webkit-date-and-time-value{text-align:left}
/* Morning routine on phones: people searching "morning routine checklist" see the filled example checklist first, then the form to change it. */
@media(max-width:860px){.tool-app[data-morning] .tool-output{order:-1}}
/* Habit scorecard */
/* /tools/habit-scorecard/: the day's habits in order on a paper sheet, each with a time, the habit and three 44 px mark
   buttons (+ – =); the score and the first habit to change sit beside it (below on phones). The server draws the example
   rows with the same markup the script uses, so nothing moves on load (CLS). The sheet is paper and keeps its colors in
   dark mode (KEEP_SELECTORS). Print: one page, filled or a blank 24-line sheet. Prefix hsc- (unique). */
.hsc-sheet{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--head:#1550b8;--band:#f4efe6;--plus:#2f8f6b;--minus:#c2410c;--neutral:#5b6475;display:flex;flex-direction:column;padding:16px 16px 12px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.hsc-sheet[data-design="warm"]{--bg:#fffaf2;--ink:#3d2317;--soft:#7a5a48;--line:#ecd3bd;--head:#c2410c;--band:#fff0d5;--plus:#2f7d4f;--minus:#b42318;--neutral:#7a5a48;border-color:#f1dcc4}
.hsc-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#999999;--head:#111111;--band:#f2f2f2;--plus:#111111;--minus:#111111;--neutral:#111111;border-color:#cccccc}
.hsc-app{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start;margin-bottom:46px}
.hsc-stage{min-width:0}
.hsc-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.hsc-status{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.hsc-jump{display:none;align-items:center;min-height:44px;color:#c2410c;font-weight:800;text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.hsc-jump{display:inline-flex}}
.hsc-actions{display:flex;flex-wrap:wrap;gap:8px}.hsc-actions .button{margin:0;min-height:46px;padding:0 18px}
.hsc-sheet .hsc-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--head)}
.hsc-sheet .hsc-title{display:block;width:100%;height:46px;box-sizing:border-box;margin:0;padding:0 4px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:700 29px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.hsc-sheet .hsc-who{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;margin:2px 0 0;font-size:14px;font-weight:600;color:var(--soft)}
.hsc-sheet .hsc-who span{padding-left:4px}
.hsc-sheet .hsc-who input{flex:1 1 220px;min-width:0;height:44px;box-sizing:border-box;padding:0 4px;border:0;border-bottom:1.5px dashed var(--line);border-radius:0;background:transparent;color:var(--ink);font:600 16px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.hsc-sheet .hsc-title:hover{border-color:var(--line)}
.hsc-sheet .hsc-title:focus,.hsc-sheet .hsc-who input:focus{outline:none;border-color:var(--head)}
.hsc-sheet .hsc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:8px 0 0;padding:6px 10px;border-radius:12px;background:var(--band);font-size:13px;font-weight:600;color:var(--soft)}
.hsc-sheet .is-plus{--c:var(--plus)}.hsc-sheet .is-minus{--c:var(--minus)}.hsc-sheet .is-neutral{--c:var(--neutral)}
.hsc-sheet .hsc-legend b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c);color:#fff;font:800 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.hsc-sheet .hsc-cols{display:grid;grid-template-columns:26px 92px minmax(0,1fr) repeat(3,44px) 44px;gap:0 4px;align-items:end;margin-top:10px;padding:0 0 4px;border-bottom:2px solid var(--head);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--head)}
.hsc-sheet .hsc-cols span:nth-child(n+4){text-align:center;font-size:16px;letter-spacing:0}
.hsc-sheet .hsc-rows{margin:0;padding:0;list-style:none}
.hsc-sheet .hsc-row{display:grid;grid-template-columns:26px 92px minmax(0,1fr) repeat(3,44px) 44px;grid-template-areas:"num time habit marks marks marks remove";gap:0 4px;align-items:center;min-height:52px;border-bottom:1px solid var(--line)}
.hsc-sheet .hsc-num{grid-area:num;font-size:12px;font-weight:800;color:var(--soft);text-align:center}
.hsc-sheet .hsc-time,.hsc-sheet .hsc-habit{height:44px;min-width:0;width:100%;box-sizing:border-box;padding:0 6px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);font:600 16px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.hsc-sheet .hsc-time{grid-area:time;font-size:15px;color:var(--soft)}
.hsc-sheet .hsc-habit{grid-area:habit}
.hsc-sheet .hsc-time:hover,.hsc-sheet .hsc-habit:hover{border-color:var(--line)}
.hsc-sheet .hsc-time:focus,.hsc-sheet .hsc-habit:focus{outline:none;border-color:var(--head);background:var(--bg)}
.hsc-sheet .hsc-time::placeholder,.hsc-sheet .hsc-habit::placeholder{color:var(--soft);opacity:.7}
.hsc-sheet .hsc-marks{grid-area:marks;display:grid;grid-template-columns:repeat(3,44px);gap:4px}
.hsc-sheet .hsc-mark{position:relative;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--c);font:800 17px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer;z-index:0}
.hsc-sheet .hsc-mark::before{content:"";position:absolute;inset:7px;border:2px solid var(--c);border-radius:50%;background:var(--bg);opacity:.55;z-index:-1}
.hsc-sheet .hsc-mark[aria-pressed="true"]{color:#fff}
.hsc-sheet .hsc-mark[aria-pressed="true"]::before{background:var(--c);opacity:1}
.hsc-sheet .hsc-mark:focus-visible,.hsc-sheet .hsc-remove:focus-visible,.hsc-sheet .hsc-add:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.hsc-sheet .hsc-remove{grid-area:remove;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--soft);font:600 22px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.hsc-sheet .hsc-remove:hover{background:var(--band);color:var(--ink)}
.hsc-sheet .hsc-add{align-self:flex-start;min-height:44px;margin:6px 0 0;padding:0 12px;border:1.5px dashed var(--line);border-radius:12px;background:transparent;color:var(--head);font:700 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.hsc-sheet .hsc-add:disabled{opacity:.4;cursor:default}
.hsc-sheet .hsc-tally{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding-top:10px;border-top:2px solid var(--head);font-size:14px;font-weight:700;color:var(--soft)}
.hsc-sheet .hsc-tally b{margin-right:4px;font:700 22px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--c)}
.hsc-sheet .hsc-next,.hsc-sheet .hsc-notes{display:none}
.hsc-sheet .hsc-credit{margin:8px 0 0;text-align:right;font-size:11px;color:var(--soft)}
.hsc-stage .hsc-blanksheet{display:none}
.hsc-side{display:grid;gap:16px;min-width:0}
.hsc-summary,.hsc-controls{display:grid;gap:12px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.hsc-summary-h{margin:0;font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.hsc-summary .is-plus{--c:#2f8f6b}.hsc-summary .is-minus{--c:#c2410c}.hsc-summary .is-neutral{--c:#5b6475}
.hsc-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.hsc-counts p{display:grid;justify-items:center;gap:2px;margin:0;padding:10px 4px;border-radius:14px;background:#fffdf8;border:1.5px solid #eee4d5}
.hsc-counts b{font:700 30px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--c)}
.hsc-counts span{font-size:12.5px;font-weight:700;color:#526170}
.hsc-meter{display:flex;height:10px;overflow:hidden;border-radius:99px;background:#eee4d5}
.hsc-meter i{flex:0 0 0;background:var(--c);transition:flex-grow .25s}
.hsc-suggest{display:grid;gap:8px;padding:14px;border-radius:16px;background:#fff4ec;border:1.5px solid #f6d3bd}
.hsc-suggest[data-kind="stack"],.hsc-suggest[data-kind="empty"],.hsc-suggest[data-kind="score"]{background:#eef5ff;border-color:#cfe0fb}
.hsc-suggest h3{margin:0;font:700 18px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;overflow-wrap:anywhere}
.hsc-suggest p{margin:0;font-size:14.5px;line-height:1.45;color:#3e4a56}
.hsc-links{display:grid;gap:8px}
.hsc-links .button{margin:0;min-height:46px;justify-content:center;text-align:center}
.hsc-tools{display:flex;flex-wrap:wrap;gap:8px}.hsc-tools .button{margin:0;min-height:46px;flex:1 1 auto}
.hsc-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.hsc-swatch-classic{background:linear-gradient(180deg,#1550b8 0 30%,#fffdf8 30%)}
.hsc-swatch-warm{background:linear-gradient(180deg,#c2410c 0 30%,#fffaf2 30%)}
.hsc-swatch-ink{background:#fff repeating-linear-gradient(0deg,#111 0 1.5px,transparent 1.5px 10px)}
@media(max-width:1080px){.hsc-app{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:900px){.hsc-app{grid-template-columns:1fr;gap:16px}}
@media(max-width:600px){
  .hsc-actions{width:100%}.hsc-actions .button{flex:1;padding:0 10px}
  .hsc-status{flex-basis:100%;min-height:0}
  .hsc-sheet{padding:12px 8px 10px;border-radius:16px}
  .hsc-sheet .hsc-title{font-size:25px;height:44px}
  .hsc-sheet .hsc-cols{display:none}
  .hsc-sheet .hsc-row{grid-template-columns:24px minmax(0,1fr) repeat(3,44px) 44px;grid-template-areas:"num habit habit habit habit habit" "time time marks marks marks remove";gap:0 2px;padding:2px 0 4px}
  .hsc-sheet .hsc-time{padding:0 2px 0 26px;font-size:14px}
  .hsc-sheet .hsc-marks{gap:0}
  .hsc-summary,.hsc-controls{padding:14px 12px}
}
/* Printing: named pages only (never an unscoped @page), so other pages keep their own sizes */
@page hsc-letter{size:letter portrait;margin:10mm}
@page hsc-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.hsc-app),body:has(.hsc-app){background:#ffffff!important}
  body:has(.hsc-app)>:not(main){display:none!important}
  main:has(.hsc-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.hsc-app)>:not(.hsc-app){display:none!important}
  .hsc-app{display:block;margin:0}
  .hsc-side,.hsc-bar,.hsc-sheet .hsc-add,.hsc-sheet .hsc-remove{display:none!important}
  html.hsc-blank .hsc-sheet[data-hsc-sheet]{display:none!important}
  html.hsc-blank .hsc-stage .hsc-blanksheet{display:flex}
  .hsc-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:5mm 7mm 3mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .hsc-sheet[data-paper="letter"]{page:hsc-letter;--ph:257mm}
  .hsc-sheet[data-paper="a4"]{page:hsc-a4;--ph:275mm}
  .hsc-sheet .hsc-kicker{font-size:9.5pt}
  .hsc-sheet .hsc-title{height:13mm;padding:0;border:0;font-size:25pt}
  .hsc-sheet .hsc-who{font-size:10.5pt}.hsc-sheet .hsc-who input{height:8mm;font-size:11pt;border-bottom-width:.3mm}
  .hsc-sheet .hsc-legend{margin-top:2mm;padding:1.2mm 3mm;font-size:9pt}
  .hsc-sheet .hsc-cols,.hsc-sheet .hsc-row{grid-template-columns:7mm 22mm minmax(0,1fr) repeat(3,10mm);grid-template-areas:"num time habit marks marks marks";gap:0 1.5mm}
  .hsc-sheet .hsc-cols{display:grid;margin-top:3mm;font-size:8pt;border-bottom-width:.5mm}
  .hsc-sheet .hsc-cols span:nth-child(n+4){font-size:12pt}
  .hsc-sheet .hsc-row{min-height:0;height:min(11mm,calc(178mm / var(--rows)));padding:0;border-bottom-width:.3mm}
  .hsc-sheet .hsc-num{font-size:8pt}
  .hsc-sheet .hsc-time,.hsc-sheet .hsc-habit{height:auto;padding:0;border:0;font-size:11pt}
  .hsc-sheet .hsc-time{font-size:9.5pt}
  .hsc-sheet .hsc-time::placeholder,.hsc-sheet .hsc-habit::placeholder{color:transparent}
  .hsc-sheet .hsc-marks{grid-template-columns:repeat(3,10mm);gap:1.5mm}
  .hsc-sheet .hsc-mark{width:10mm;height:min(10mm,calc(178mm / var(--rows)));font-size:11pt}
  .hsc-sheet .hsc-mark::before{inset:auto;width:min(6.5mm,calc(178mm / var(--rows) - 1.2mm));height:min(6.5mm,calc(178mm / var(--rows) - 1.2mm));border-width:.35mm;opacity:1}
  .hsc-sheet .hsc-mark:not([aria-pressed="true"]){color:transparent}
  .hsc-sheet .hsc-mark:not([aria-pressed="true"])::before{border-color:var(--line)}
  .hsc-blanksheet .hsc-mark::before{border-color:var(--soft)!important}
  .hsc-sheet .hsc-tally{margin-top:3mm;padding-top:2mm;font-size:10pt;border-top-width:.5mm}
  .hsc-sheet .hsc-tally b{font-size:16pt}
  .hsc-sheet .hsc-notes{display:flex;flex:1;min-height:0;margin-top:3mm;padding-top:1mm;background:repeating-linear-gradient(180deg,transparent 0 8.7mm,var(--line) 8.7mm 9mm)}
  .hsc-sheet .hsc-notes span{font:700 11pt 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
  .hsc-sheet .hsc-next{display:block;flex:none;margin:3mm 0 0;font:700 12pt/1.3 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
  .hsc-sheet .hsc-credit{font-size:7pt}
  .hsc-blanksheet .hsc-line{display:inline-block;min-width:60%;border-bottom:.3mm solid var(--line);vertical-align:bottom}
  .hsc-blanksheet .hsc-line-title{display:block;height:12mm;margin:0;width:60%;border-bottom:.35mm solid var(--line)}
  .hsc-blanksheet .hsc-whoprint{margin:2mm 0 0;font-size:10.5pt;font-weight:600;color:var(--soft)}
  .hsc-blanksheet .hsc-whoprint .hsc-line{min-width:45%;height:5mm}
  .hsc-blanksheet .hsc-next .hsc-line{min-width:55%;height:6mm}
}
/* Hobby finder (/guides/hobbies-to-try/, Wave 5 L9): reuses the .bp idea-picker shell; hf- rows below. */
.article-body .hf-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.article-body .hf-list>li{margin:0;padding:14px 16px 12px;background:#fffdf8;border-radius:14px;box-shadow:0 4px 14px #1720330f;min-width:0}
.article-body .hf-item::before{content:none}
.hf-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.hf-top strong{font:600 19px/1.25 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.hf-type{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b24618}
.article-body .hf p.hf-start{margin:6px 0 8px;font-size:14.5px;line-height:1.45;color:#26344a}
.hf-start span{font-weight:700;color:#12367f}
.article-body .hf p.hf-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0}
.hf-tags span{display:inline-block;padding:3px 9px;border-radius:99px;background:#e7f0ff;color:#12367f;font-size:12px;font-weight:700}
.hf-tags .hf-cost{background:#daf3e8;color:#1f5f45}
.article-body .hf p.hf-empty{margin:12px 0 0;font-size:15px}
.hf .bp-actions{margin-top:14px}
@media(max-width:700px){.article-body .hf-list{grid-template-columns:1fr}.hf .bp-actions .button{width:100%}}
@media print{.hf .bp-filters,.hf .bp-actions{display:none}}
/* Dopamine menu */
/* /tools/dopamine-menu/: a restaurant-style menu on paper (starters, mains, sides, desserts, specials) with every line typed
   straight onto the sheet; the idea list and options sit beside it (below on phones). Each section always renders its full
   number of lines, so the server example and the saved menu have the same height (CLS). The sheet is paper and keeps its
   colors in dark mode (KEEP_SELECTORS). Print: one page, filled or blank. */
.dmn-sheet{--bg:#fffaf0;--ink:#172033;--soft:#5b6475;--line:#d9cdb8;--head:#1550b8;--accent:#c2501f;--hl:#fff0d5;position:relative;display:flex;flex-direction:column;padding:22px 22px 14px;border-radius:22px;border:1px solid #eee4d5;background:var(--bg);color:var(--ink);box-shadow:inset 0 0 0 7px var(--bg),inset 0 0 0 8.5px var(--line),0 14px 34px #17203312;color-scheme:light}
.dmn-sheet[data-design="diner"]{--bg:#fff6ec;--ink:#3a1a14;--soft:#7a5a50;--line:#e9c9b8;--head:#c8372d;--accent:#1a6f6f;--hl:#ffe3dc;border-color:#e9c9b8;padding-top:34px}
.dmn-sheet[data-design="diner"]::before{content:"";position:absolute;left:0;right:0;top:0;height:16px;border-radius:22px 22px 0 0;background:repeating-conic-gradient(#c8372d 0 25%,#fff6ec 0 50%) 0 0/16px 16px}
.dmn-sheet[data-design="garden"]{--bg:#f4faf3;--ink:#163a2b;--soft:#4f6f63;--line:#bfdcc8;--head:#2f7d55;--accent:#b03a5e;--hl:#e2f3e6;border-color:#bfdcc8}
.dmn-app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start;margin-bottom:46px}
.dmn-stage{min-width:0}
.dmn-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.dmn-status{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;align-items:center;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.dmn-actions{display:flex;flex-wrap:wrap;gap:8px}.dmn-actions .button{margin:0;min-height:46px;padding:0 18px}
.dmn-sheet .dmn-head{text-align:center}
.dmn-sheet .dmn-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.32em;text-transform:uppercase;color:var(--accent)}
.dmn-sheet .dmn-title{display:block;width:100%;height:50px;margin:2px 0 0;padding:0 4px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);text-align:center;font:700 34px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.dmn-sheet .dmn-title:hover{border-color:var(--line)}.dmn-sheet .dmn-title:focus{outline:none;border-color:var(--head)}
.dmn-sheet .dmn-sub{margin:0;font:italic 500 15px/1.4 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--soft)}
.dmn-sheet .dmn-pickbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:12px 0 2px;padding:6px;border-radius:16px;background:var(--hl)}
.dmn-sheet .dmn-pick{min-height:44px;padding:0 14px;border:0;border-radius:12px;background:var(--head);color:#fff;font:800 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.dmn-sheet .dmn-pick:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.dmn-sheet .dmn-picked{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;height:2.7em;align-self:center;font-size:13.5px;font-weight:700;line-height:1.35;color:var(--ink)}
.dmn-sheet .dmn-sec{margin-top:12px}
.dmn-sheet .dmn-sec-h{display:flex;flex-direction:column;align-items:center;margin:0 0 2px;font:700 22px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
.dmn-sheet .dmn-sec-h span{display:flex;align-items:center;gap:12px}
.dmn-sheet .dmn-sec-h span::before,.dmn-sheet .dmn-sec-h span::after{content:"";width:34px;border-top:1.5px solid var(--line)}
.dmn-sheet .dmn-sec-h small{margin-top:3px;font:800 10.5px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.dmn-sheet .dmn-list{margin:0;padding:0;list-style:none}
.dmn-sheet .dmn-row{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;column-gap:6px;min-height:46px;border-bottom:1.5px dotted var(--line);border-radius:10px}
.dmn-sheet .dmn-row.is-picked{background:var(--hl);box-shadow:inset 3px 0 0 var(--accent)}
.dmn-sheet .dmn-text{width:100%;min-width:0;height:44px;padding:0 6px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:600 16px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-overflow:ellipsis}
.dmn-sheet .dmn-text::placeholder{color:var(--soft);opacity:.8;font-weight:500;font-style:italic;font-size:14px}
.dmn-sheet .dmn-text:disabled{opacity:1;-webkit-text-fill-color:var(--ink)}
.dmn-sheet .dmn-text:disabled::placeholder{color:transparent;-webkit-text-fill-color:transparent}
.dmn-sheet .dmn-text:focus{outline:none;background:var(--hl)}
.dmn-sheet .dmn-time{font-size:12.5px;font-weight:800;color:var(--accent);white-space:nowrap}
.dmn-sheet .dmn-remove{width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--soft);font:600 22px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.dmn-sheet .dmn-remove:hover{background:var(--hl);color:var(--ink)}
.dmn-sheet .dmn-remove[hidden]{display:block;visibility:hidden}
.dmn-sheet .dmn-remove:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.dmn-sheet .dmn-how{margin:14px 0 0;text-align:center;font-size:13px;line-height:1.45;color:var(--soft)}
.dmn-sheet .dmn-how b{color:var(--ink)}
.dmn-sheet .dmn-credit{margin:6px 0 0;text-align:center;font-size:11px;color:var(--soft)}
.dmn-side{display:grid;gap:16px;min-width:0}
.dmn-picker,.dmn-controls{padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.dmn-controls{display:grid;gap:14px}
.dmn-picker-h{margin:0 0 10px;font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.dmn-picker-h small{display:block;margin-top:4px;font:600 13px/1.35 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;color:#526170}
.dmn-tabs{display:flex;flex-wrap:wrap;gap:6px}
.dmn-tab{position:relative}
.dmn-tab input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.dmn-tab span{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;border-radius:99px;border:1.5px solid #ddd3c4;background:#fffdf8;font-size:14px;font-weight:700;color:#3e4a56;cursor:pointer}
.dmn-tab input:checked+span{border-color:#1550b8;background:#1550b8;color:#fff}
.dmn-tab input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.dmn-tip{margin:10px 0 0;font-size:13px;font-weight:600;line-height:1.4;color:#526170}
.dmn-ideas{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}
.dmn-ideas li[hidden]{display:none}
.dmn-idea{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;column-gap:10px;width:100%;min-height:48px;padding:6px 12px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;color:#172033;text-align:left;cursor:pointer;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.dmn-idea::before{content:"+";display:grid;place-items:center;width:22px;height:22px;box-sizing:border-box;border-radius:50%;border:1.5px solid #1550b8;color:#1550b8;font:800 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.dmn-idea[aria-pressed="true"]{border-color:#1550b8;background:#e7f0ff}
.dmn-idea[aria-pressed="true"]::before{content:"✓";background:#1550b8;color:#fff}
.dmn-idea:hover{border-color:#1550b8}
.dmn-idea:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.dmn-idea-text{font-size:14.5px;font-weight:600;line-height:1.3}
.dmn-idea small{font-size:11.5px;font-weight:700;color:#5b6475;white-space:nowrap}
.dmn-note{min-height:1.4em;margin:8px 0 0;font-size:13px;font-weight:700;color:#a3461a}
.dmn-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.dmn-swatch-bistro{background:#fffaf0;box-shadow:inset 0 0 0 4px #fffaf0,inset 0 0 0 5.5px #1550b8}
.dmn-swatch-diner{background:repeating-conic-gradient(#c8372d 0 25%,#fff6ec 0 50%) 0 0/10px 10px repeat-x,#fff6ec}
.dmn-swatch-garden{background:linear-gradient(180deg,#2f7d55 0 30%,#f4faf3 30%)}
@media(max-width:1080px){.dmn-app{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:900px){.dmn-app{grid-template-columns:1fr;gap:16px}}
@media(max-width:600px){
  .dmn-actions{width:100%}.dmn-actions .button{flex:1;padding:0 10px}
  .dmn-status{flex-basis:100%;min-height:0}
  .dmn-sheet{padding:16px 10px 10px;border-radius:16px;box-shadow:inset 0 0 0 4px var(--bg),inset 0 0 0 5.5px var(--line),0 14px 34px #17203312}
  .dmn-sheet[data-design="diner"]{padding-top:28px}
  .dmn-sheet[data-design="diner"]::before{border-radius:16px 16px 0 0}
  .dmn-sheet .dmn-title{font-size:28px;height:44px}
  .dmn-sheet .dmn-pickbar{grid-template-columns:1fr;gap:4px}
  .dmn-sheet .dmn-picked{text-align:center}
  .dmn-sheet .dmn-row{column-gap:2px}
  .dmn-sheet .dmn-time{font-size:11.5px}
  .dmn-picker,.dmn-controls{padding:14px 12px}
}
@page dmn-letter{size:letter portrait;margin:10mm}
@page dmn-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.dmn-app),body:has(.dmn-app){background:#ffffff!important}
  body:has(.dmn-app)>:not(main){display:none!important}
  main:has(.dmn-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.dmn-app)>:not(.dmn-app){display:none!important}
  .dmn-app{display:block;margin:0}
  .dmn-side,.dmn-bar,.dmn-sheet .dmn-pickbar,.dmn-sheet .dmn-remove{display:none!important}
  .dmn-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:inset 0 0 0 3mm var(--bg),inset 0 0 0 3.4mm var(--line);padding:9mm 14mm 5mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .dmn-sheet[data-design="diner"]{padding-top:13mm}
  .dmn-sheet[data-design="diner"]::before{height:5mm;border-radius:0;background-size:5mm 5mm}
  .dmn-sheet[data-paper="letter"]{page:dmn-letter;--ph:257mm}
  .dmn-sheet[data-paper="a4"]{page:dmn-a4;--ph:275mm}
  .dmn-sheet .dmn-kicker{font-size:9pt}
  .dmn-sheet .dmn-title{height:13mm;padding:0;border:0;font-size:28pt}
  .dmn-sheet .dmn-sub{font-size:11pt}
  .dmn-sheet .dmn-sec{margin-top:2.6mm}
  .dmn-sheet .dmn-sec-h{font-size:16pt}
  .dmn-sheet .dmn-sec-h small{font-size:7pt;margin-top:.6mm}
  .dmn-sheet .dmn-row{grid-template-columns:minmax(0,1fr) auto;min-height:0;height:7.4mm;border-bottom-width:.35mm;border-radius:0;background:none!important;box-shadow:none!important}
  .dmn-sheet .dmn-text{height:7mm;padding:0 1mm;font-size:11.5pt}
  .dmn-sheet .dmn-text::placeholder{color:transparent;-webkit-text-fill-color:transparent}
  .dmn-sheet .dmn-time{font-size:9pt}
  .dmn-sheet .dmn-how{margin-top:auto;padding-top:3mm;font-size:9pt}
  .dmn-sheet .dmn-credit{font-size:7pt;margin-top:1mm}
  html.dmn-blank .dmn-sheet .dmn-text{color:transparent;-webkit-text-fill-color:transparent}
  html.dmn-blank .dmn-sheet .dmn-time{visibility:hidden}
}
/* Self-care bingo */
/* /tools/self-care-bingo/: a 5 x 5 card of square cells (free center) on paper, with theme, design, cards-to-print and
   paper options beside it (below on phones). The grid is always 25 square cells, so the server example and any shuffle have
   the same height (CLS). The sheet is paper and keeps its colors in dark mode (KEEP_SELECTORS). Print: one card per page,
   without marks; extra cards are clones with their own shuffle in .bgo-extra. */
.bgo-sheet{--bg:#fffaf0;--ink:#172033;--soft:#5b6475;--line:#e3d9c8;--head:#1550b8;--mark:#e4632e;--free:#1550b8;--t1:#e7f0ff;--t2:#fff0d5;--t3:#edf5c6;--t4:#ffe8ef;--t5:#daf3e8;display:flex;flex-direction:column;padding:18px 16px 12px;border-radius:22px;border:1px solid #eee4d5;background:radial-gradient(circle at 8% 6%,#f6c64a 0 3px,transparent 4px),radial-gradient(circle at 92% 9%,#e4632e 0 3px,transparent 4px),radial-gradient(circle at 85% 97%,#2f8f6b 0 3px,transparent 4px),radial-gradient(circle at 5% 96%,#1550b8 0 3px,transparent 4px),var(--bg);color:var(--ink);box-shadow:0 14px 34px #17203312;color-scheme:light}
.bgo-sheet[data-design="pastel"]{--bg:#fdf7ff;--ink:#3b2a4a;--soft:#6f5d80;--line:#e6d6f0;--head:#8a55b5;--mark:#c2456b;--free:#b03a5e;--t1:#f3e8ff;--t2:#e8f4ff;--t3:#fff1e6;--t4:#e9fbf0;--t5:#fff9d9;background:var(--bg);border-color:#e6d6f0}
.bgo-sheet[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#555555;--line:#888888;--head:#111111;--mark:#111111;--free:#111111;--t1:#ffffff;--t2:#ffffff;--t3:#ffffff;--t4:#ffffff;--t5:#ffffff;background:#ffffff;border-color:#cccccc}
.bgo-app{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start;margin-bottom:46px}
.bgo-stage{min-width:0;max-width:680px}
.bgo-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}
.bgo-status{flex:1 1 240px;margin:0;min-height:2.8em;display:flex;align-items:center;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.bgo-status.is-bingo{color:#a3461a;font-weight:800}
.bgo-actions{display:flex;flex-wrap:wrap;gap:8px}.bgo-actions .button{margin:0;min-height:46px;padding:0 18px}
.bgo-sheet .bgo-head{text-align:center}
.bgo-sheet .bgo-title{display:block;width:100%;height:46px;margin:0;padding:0 4px;border:1.5px dashed transparent;border-radius:10px;background:transparent;color:var(--ink);text-align:center;font:700 30px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.bgo-sheet .bgo-title:hover{border-color:var(--line)}.bgo-sheet .bgo-title:focus{outline:none;border-color:var(--head)}
.bgo-sheet .bgo-sub{margin:2px 0 0;font-size:13.5px;font-weight:600;line-height:1.4;color:var(--soft)}
.bgo-sheet .bgo-letters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:10px 0 4px;text-align:center;font:800 30px/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head)}
.bgo-sheet .bgo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.bgo-sheet .bgo-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;min-height:44px;padding:5px;border:1.5px solid var(--line);border-radius:12px;background:var(--t1);color:var(--ink);font:700 13px/1.15 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:center;cursor:pointer;overflow:hidden;hyphens:auto;overflow-wrap:break-word}
.bgo-sheet .bgo-cell:nth-child(5n+2){background:var(--t2)}.bgo-sheet .bgo-cell:nth-child(5n+3){background:var(--t3)}.bgo-sheet .bgo-cell:nth-child(5n+4){background:var(--t4)}.bgo-sheet .bgo-cell:nth-child(5n){background:var(--t5)}
.bgo-sheet .bgo-cell-text{position:relative;z-index:1;max-height:100%;overflow:hidden}
.bgo-sheet .bgo-cell[aria-pressed="true"]::after{content:"";position:absolute;inset:9%;border-radius:50%;border:4px solid var(--mark);background:color-mix(in srgb,var(--mark) 14%,transparent);opacity:.75}
.bgo-sheet .bgo-cell.is-line{border-color:var(--mark);box-shadow:inset 0 0 0 1.5px var(--mark)}
.bgo-sheet .bgo-cell.is-line::after{background:color-mix(in srgb,var(--mark) 30%,transparent)}
.bgo-sheet .bgo-cell.is-free{background:var(--free);border-color:var(--free);color:#fff;cursor:default}
.bgo-sheet .bgo-cell.is-free b{display:block;font-size:1.25em;letter-spacing:.08em}
.bgo-sheet .bgo-cell.is-free[aria-pressed="true"]::after{border-color:#ffffff;background:transparent;opacity:.5}
.bgo-sheet .bgo-cell.is-selected{outline:3px dashed #e4632e;outline-offset:-3px}
.bgo-sheet .bgo-cell:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.bgo-sheet .bgo-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:10px 0 0;font-size:11.5px;color:var(--soft)}
.bgo-sheet .bgo-credit{margin-left:auto}
.bgo-mode{display:grid;gap:8px;margin-top:12px;max-width:420px}
.bgo-edit{display:grid;gap:4px}
.bgo-edit[hidden]{display:none}
.bgo-edit-label{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.bgo-edit input{height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.bgo-edit input:focus{outline:none;border-color:#1550b8}
.bgo-side{min-width:0}
.bgo-controls{display:grid;gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.bgo-chips,.bgo-copies{display:flex;flex-wrap:wrap;gap:6px}
.bgo-chip{position:relative}
.bgo-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.bgo-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 13px;box-sizing:border-box;border-radius:99px;border:1.5px solid #ddd3c4;background:#fffdf8;font-size:14px;font-weight:700;color:#3e4a56;cursor:pointer}
.bgo-chip input:checked+span{border-color:#1550b8;background:#1550b8;color:#fff}
.bgo-chip input:focus-visible+span{outline:3px solid #e4632e;outline-offset:2px}
.bgo-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.bgo-swatch-confetti{background:radial-gradient(circle at 20% 30%,#e4632e 0 3px,transparent 4px),radial-gradient(circle at 75% 65%,#1550b8 0 3px,transparent 4px),linear-gradient(90deg,#e7f0ff 0 33%,#fff0d5 33% 66%,#edf5c6 66%)}
.bgo-swatch-pastel{background:linear-gradient(90deg,#f3e8ff 0 33%,#e8f4ff 33% 66%,#fff1e6 66%)}
.bgo-swatch-ink{background:#fff repeating-linear-gradient(90deg,#111 0 1.5px,transparent 1.5px 12px)}
.bgo-extra{display:none}
@media(max-width:1080px){.bgo-app{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:900px){.bgo-app{grid-template-columns:1fr;gap:16px}.bgo-stage{max-width:none}}
@media(max-width:600px){
  .bgo-actions{width:100%}.bgo-actions .button{flex:1;padding:0 10px}
  .bgo-status{flex-basis:100%;min-height:0}
  .bgo-sheet{padding:12px 6px 10px;border-radius:16px}
  .bgo-sheet .bgo-title{font-size:24px;height:44px}
  .bgo-sheet .bgo-sub{font-size:12.5px}
  .bgo-sheet .bgo-letters{gap:3px;font-size:24px;margin-top:6px}
  .bgo-sheet .bgo-grid{gap:3px}
  .bgo-sheet .bgo-cell{padding:2px;border-radius:8px;font-size:10px;line-height:1.1;border-width:1px}
  .bgo-sheet .bgo-cell[aria-pressed="true"]::after{border-width:3px;inset:4%}
  .bgo-controls{padding:14px 12px}
}
@media(max-width:360px){.bgo-sheet .bgo-cell{font-size:9px;letter-spacing:-.01em}}
@page bgo-letter{size:letter portrait;margin:10mm}
@page bgo-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.bgo-app),body:has(.bgo-app){background:#ffffff!important}
  body:has(.bgo-app)>:not(main){display:none!important}
  main:has(.bgo-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.bgo-app)>:not(.bgo-app){display:none!important}
  .bgo-app{display:block;margin:0}
  .bgo-side,.bgo-bar,.bgo-mode{display:none!important}
  .bgo-stage{max-width:none}
  .bgo-extra{display:block}
  .bgo-extra:empty{display:none!important}
  .bgo-extra .bgo-sheet{break-before:page}
  .bgo-sheet{height:var(--ph);box-sizing:border-box;overflow:hidden;border:0;border-radius:0;box-shadow:none;padding:8mm 6mm 4mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .bgo-sheet[data-design="confetti"]{background:radial-gradient(circle at 6% 3%,#f6c64a 0 1.2mm,transparent 1.5mm),radial-gradient(circle at 94% 3%,#e4632e 0 1.2mm,transparent 1.5mm),var(--bg)}
  .bgo-sheet[data-paper="letter"]{page:bgo-letter;--ph:257mm}
  .bgo-sheet[data-paper="a4"]{page:bgo-a4;--ph:275mm}
  .bgo-sheet .bgo-title{height:14mm;padding:0;border:0;font-size:30pt}
  .bgo-sheet .bgo-sub{font-size:11pt}
  .bgo-sheet .bgo-letters{gap:2.5mm;margin:5mm 0 2mm;font-size:30pt}
  .bgo-sheet .bgo-grid{gap:2.5mm}
  .bgo-sheet .bgo-cell{min-height:0;padding:2mm;border-width:.4mm;border-radius:3mm;font-size:11.5pt;box-shadow:none!important;border-color:var(--line)!important;outline:0!important}
  .bgo-sheet .bgo-cell::after{display:none!important}
  .bgo-sheet .bgo-cell.is-free{border-color:var(--free)!important}
  .bgo-sheet .bgo-foot{margin-top:auto;font-size:10pt}
  .bgo-sheet .bgo-credit{font-size:8pt}
}
/* Mood tracker */
/* /tools/mood-tracker/: the day card (five mood words, tags, a note) beside six rolling weeks of colored days and a 30-day
   pattern summary; below, the printable monthly mood tracker with a live paper preview. The weeks grid is always 42 cells and
   the summary keeps a fixed minimum height, so the server example and the saved log line up (CLS). The paper preview has a
   fixed page shape and sizes its contents in container units (cqw), so it prints the same at any width; it keeps its colors
   in dark mode (KEEP_SELECTORS). Print: the sheet alone on one page, filled or blank. */
.mdt-app{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);grid-template-areas:"log main" "print print";gap:22px;align-items:start;margin-bottom:46px}
.mdt-log,.mdt-weeks,.mdt-summary,.mdt-print{padding:16px;border-radius:20px;background:#fff;border:1px solid #eee4d5;box-shadow:0 14px 34px #17203312;min-width:0}
.mdt-log{grid-area:log}
.mdt-main{grid-area:main;display:grid;gap:16px;min-width:0}
.mdt-print{grid-area:print;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:22px;align-items:start}
.mdt-daynav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;border-radius:14px;background:#f4efe6}
.mdt-nav{width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#1550b8;font:700 24px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.mdt-nav:disabled{opacity:.3;cursor:default}
.mdt-nav:focus-visible{outline:3px solid #e4632e;outline-offset:1px}
.mdt-day{margin:0;text-align:center;font-size:14.5px;font-weight:800;color:#172033}
.mdt-q{margin:14px 0 10px;font:700 24px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.mdt-moods{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.mdt-mood{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:76px;padding:6px 2px;border:1.5px solid #ddd3c4;border-radius:14px;background:#fffdf8;color:#172033;font:700 13px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.mdt-mood i{width:28px;height:28px;border-radius:50%;background:var(--c)}
.mdt-mood[aria-pressed="true"]{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,#ffffff);box-shadow:inset 0 0 0 1.5px var(--c)}
.mdt-mood[aria-pressed="true"] i{box-shadow:0 0 0 3px #ffffff,0 0 0 5px var(--c)}
.mdt-mood:focus-visible,.mdt-tag:focus-visible,.mdt-cell:focus-visible{outline:3px solid #e4632e;outline-offset:2px}
.mdt-label{display:block;margin:14px 0 6px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#526170}
.mdt-label small{font-weight:600;letter-spacing:0;text-transform:none}
.mdt-tags{display:flex;flex-wrap:wrap;gap:6px}
.mdt-tag{min-height:44px;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:99px;background:#fffdf8;color:#3e4a56;font:700 13.5px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.mdt-tag[aria-pressed="true"]{border-color:#1550b8;background:#1550b8;color:#fff}
.mdt-note{width:100%;height:46px;box-sizing:border-box;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.mdt-note:focus{outline:none;border-color:#1550b8}
.mdt-status{margin:10px 0 0;min-height:2.8em;font-size:14px;font-weight:700;line-height:1.4;color:#12367f}
.mdt-h{margin:0;font:700 21px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:#172033}
.mdt-weeks-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-bottom:8px}
.mdt-range{display:flex;align-items:center;font-size:13.5px;font-weight:700;color:#3e4a56}
.mdt-dow,.mdt-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.mdt-dow{margin-bottom:4px;text-align:center;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.mdt-cell{height:clamp(44px,8vw,56px);min-width:0;padding:0;border:0;border-radius:10px;background:#f4efe6;color:#3e4a56;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.mdt-cell .mdt-d{display:flex;flex-direction:column;align-items:center;gap:2px}
.mdt-cell small{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.mdt-cell[data-m="5"]{background:#277a5c;color:#fff}.mdt-cell[data-m="4"]{background:#8cc084;color:#172033}.mdt-cell[data-m="3"]{background:#f2c14e;color:#172033}.mdt-cell[data-m="2"]{background:#f08a4b;color:#172033}.mdt-cell[data-m="1"]{background:#b03a5e;color:#fff}
.mdt-cell:disabled{background:transparent;border:1.5px dashed #e3d9c8;color:#8a919c;cursor:default}
.mdt-cell.is-today{box-shadow:0 0 0 2.5px #172033}
.mdt-cell.is-day{box-shadow:0 0 0 2.5px #e4632e}
.mdt-key{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0;list-style:none;font-size:13px;font-weight:700;color:#3e4a56}
.mdt-key li{display:flex;align-items:center;gap:6px}
.mdt-key i{width:14px;height:14px;border-radius:4px;background:var(--c)}
.mdt-sum{min-height:7.6em;margin:8px 0 0;padding-left:20px;font-size:14.5px;line-height:1.5;color:#26303d}
.mdt-sum li{margin:2px 0}
.mdt-fine{margin:6px 0 0;font-size:12.5px;line-height:1.45;color:#5b6475}
.mdt-print-controls{display:grid;gap:12px;min-width:0}
.mdt-form{display:grid;gap:14px}
.mdt-designs{grid-template-columns:repeat(3,minmax(0,1fr))}
.mdt-form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.mdt-form select{width:100%;height:48px;box-sizing:border-box;padding:0 10px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8;color:#172033;font:inherit;font-size:16px}
.mdt-buttons{display:flex;flex-wrap:wrap;gap:8px}.mdt-buttons .button{margin:0;min-height:46px;padding:0 16px}
.mdt-swatch-calendar{background:repeating-linear-gradient(90deg,transparent 0 9px,#d9cdb8 9px 10.5px),linear-gradient(180deg,#8cc084 0 45%,#ffffff 45%)}
.mdt-swatch-list{background:#fff repeating-linear-gradient(180deg,transparent 0 8px,#d9cdb8 8px 9.5px)}
.mdt-swatch-pixels{background:conic-gradient(#277a5c 0 25%,#f2c14e 0 50%,#8cc084 0 75%,#f08a4b 0) 0 0/12px 12px}
.mdt-paper{padding:14px;border-radius:18px;background:#ece6da;min-width:0}
.mdt-sheet{--ink:#172033;--soft:#5b6475;--line:#d9cdb8;--head:#1550b8;container-type:inline-size;display:flex;flex-direction:column;aspect-ratio:8.5/11;box-sizing:border-box;padding:5.5cqw 6cqw 3.5cqw;overflow:hidden;background:#ffffff;color:var(--ink);box-shadow:0 8px 22px #17203322;color-scheme:light;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.mdt-sheet[data-paper="a4"]{aspect-ratio:210/297}
.mdt-sheet .mdt-s-kicker{margin:0;font-size:2.1cqw;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--head)}
.mdt-sheet .mdt-s-title{margin:.4cqw 0 2cqw;font:700 6.4cqw/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.mdt-sheet .mdt-s-key{display:flex;flex-wrap:wrap;gap:1cqw 3.4cqw;margin:0 0 2.4cqw;padding:0;list-style:none;font-size:2.2cqw;font-weight:700}
.mdt-sheet .mdt-s-key li{display:flex;align-items:center;gap:1cqw}
.mdt-sheet .mdt-s-key i{width:2.8cqw;height:2.8cqw;border-radius:50%;background:var(--c)}
.mdt-sheet .mdt-s-key.is-blank i{background:transparent;border:.45cqw solid var(--c);box-sizing:border-box}
.mdt-sheet .mdt-s-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1cqw;margin-bottom:.8cqw;text-align:center;font-size:2cqw;font-weight:800;color:var(--soft);text-transform:uppercase}
.mdt-sheet .mdt-s-cal{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:1cqw;min-height:0}
.mdt-sheet .mdt-s-day{position:relative;display:flex;flex-direction:column;gap:.4cqw;padding:.9cqw 1cqw;border:.3cqw solid var(--line);border-radius:1.4cqw;overflow:hidden}
.mdt-sheet .mdt-s-day b{font-size:2.3cqw}
.mdt-sheet .mdt-s-day small{font-size:1.45cqw;line-height:1.2;overflow:hidden}
.mdt-sheet .mdt-s-day.is-on{background:var(--c);border-color:var(--c)}
.mdt-sheet .mdt-s-day[data-m="5"],.mdt-sheet .mdt-s-day[data-m="1"]{color:#ffffff}
.mdt-sheet .mdt-s-day.is-out{border:0}
.mdt-sheet .mdt-s-notes{height:14cqw;margin-top:2.4cqw;font:700 2.4cqw/1 'Fraunces','Fraunces Fallback',Georgia,serif;color:var(--head);background:repeating-linear-gradient(180deg,transparent 0 4.4cqw,var(--line) 4.4cqw 4.7cqw)}
.mdt-sheet .mdt-s-list{flex:1;display:grid;grid-template-rows:repeat(var(--rows),minmax(0,1fr));min-height:0}
.mdt-sheet .mdt-s-row{display:grid;grid-template-columns:4cqw 6cqw auto minmax(0,1fr);align-items:center;gap:1.4cqw;border-bottom:.25cqw solid var(--line);font-size:1.9cqw}
.mdt-sheet .mdt-s-row b{font-size:2.1cqw;text-align:right}
.mdt-sheet .mdt-s-dw{font-weight:700;color:var(--soft);text-transform:uppercase;font-size:1.6cqw}
.mdt-sheet .mdt-s-dots{display:flex;gap:.9cqw}
.mdt-sheet .mdt-s-dots i{width:2.2cqw;height:2.2cqw;box-sizing:border-box;border-radius:50%;border:.35cqw solid var(--c)}
.mdt-sheet .mdt-s-dots i.is-on{background:var(--c)}
.mdt-sheet .mdt-s-line{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink)}
.mdt-sheet .mdt-s-pix{flex:1;display:grid;grid-template-columns:3.6cqw repeat(12,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:.45cqw;min-height:0}
.mdt-sheet .mdt-s-mh,.mdt-sheet .mdt-s-dn{display:grid;place-items:center;font-size:1.6cqw;font-weight:800;color:var(--soft)}
.mdt-sheet .mdt-s-px{border:.22cqw solid var(--line);border-radius:.5cqw}
.mdt-sheet .mdt-s-px.is-on{background:var(--c);border-color:var(--c)}
.mdt-sheet .mdt-s-px.is-out{border:0}
.mdt-sheet .mdt-s-credit{margin:1.6cqw 0 0;text-align:right;font-size:1.5cqw;color:var(--soft)}
@media(max-width:1080px){.mdt-app{grid-template-columns:minmax(0,340px) minmax(0,1fr)}.mdt-print{grid-template-columns:minmax(0,1fr) minmax(0,360px)}}
@media(max-width:900px){.mdt-app{grid-template-columns:1fr;grid-template-areas:"log" "main" "print";gap:16px}.mdt-print{grid-template-columns:1fr}}
@media(max-width:600px){
  .mdt-log,.mdt-weeks,.mdt-summary,.mdt-print{padding:14px 10px}
  .mdt-moods{gap:4px}
  .mdt-mood{min-height:70px;font-size:12px}
  .mdt-dow,.mdt-grid{gap:3px}
  .mdt-form-row{grid-template-columns:1fr}
  .mdt-buttons .button{flex:1 1 calc(50% - 4px);padding:0 8px}
  .mdt-paper{padding:8px}
}
@media(max-width:360px){.mdt-mood{font-size:11px}.mdt-mood i{width:24px;height:24px}}
@page mdt-letter{size:letter portrait;margin:10mm}
@page mdt-a4{size:A4 portrait;margin:10mm}
@media print{
  html:has(.mdt-app),body:has(.mdt-app){background:#ffffff!important}
  body:has(.mdt-app)>:not(main){display:none!important}
  main:has(.mdt-app){width:auto;max-width:none;margin:0;padding:0}
  main:has(.mdt-app)>:not(.mdt-app){display:none!important}
  .mdt-app{display:block;margin:0}
  .mdt-log,.mdt-main,.mdt-print-controls{display:none!important}
  .mdt-print{display:block;padding:0;border:0;box-shadow:none;background:none}
  .mdt-paper{padding:0;background:none}
  .mdt-sheet{box-shadow:none;margin:0 auto;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .mdt-sheet[data-paper="letter"]{page:mdt-letter;width:190mm}
  .mdt-sheet[data-paper="a4"]{page:mdt-a4;width:190mm}
}
/* Mood tracker in dark mode: the day cells keep the key colors (KEEP_SELECTORS); empty and future days get dark surfaces. */
html[data-theme="dark"] .mdt-cell[data-m="0"]{background:#222733;color:#c9ced8}
html[data-theme="dark"] .mdt-cell:disabled{background:transparent;border-color:#3a4150;color:#7d8594}
html[data-theme="dark"] .mdt-cell.is-today{box-shadow:0 0 0 2.5px #e8ecf3}
html[data-theme="dark"] .mdt-mood[aria-pressed="true"]{background:color-mix(in srgb,var(--c) 30%,#1a1f29)}
/* Mood tracker at 320 px: seven day cells need 7 x 44 px, so on the narrowest phones the weeks card runs edge to edge. */
@media(max-width:380px){.mdt-weeks{margin-inline:-16px;padding:14px 0;border-radius:0;border-left:0;border-right:0}.mdt-weeks-head,.mdt-key{padding-inline:10px}.mdt-dow,.mdt-grid{gap:1px;padding-inline:1px}.mdt-cell{border-radius:6px}}
/* Picked chips stay cobalt in dark mode (the generated dark base rule would otherwise win over the unchanged light value). */
html[data-theme="dark"] .mdt-tag[aria-pressed="true"],html[data-theme="dark"] .dmn-tab input:checked+span,html[data-theme="dark"] .bgo-chip input:checked+span{border-color:#3f7be0;background:#1550b8;color:#ffffff}
@media(max-width:380px){.dmn-sheet .dmn-title{font-size:24px}}
/* Time block planner */
/* /tools/time-block-planner/: a day timeline of colored blocks (tap a block to edit it, tap an empty slot to add one; no
   dragging) beside the top priority, an unscheduled to-do list and notes; a week view (grid on wide screens and paper,
   a day-by-day agenda on phones). Blocks are positioned in percent of the timeline, so the same markup fills one printed
   page: the hour height is 88px on screen (a 30-minute block is a 44px target) and is divided from the page in print.
   The sheet is paper, so it keeps its colors in dark mode (KEEP_SELECTORS). */
.tbp-app{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}
.tbp-main{padding:18px}
.tbp-bar{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tbp-seg{display:inline-flex;padding:3px;border-radius:14px;background:#f6f1e8;border:1px solid #eee4d5}
.tbp-seg button,.tbp-seg label span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:64px;padding:0 14px;border:0;border-radius:11px;background:transparent;color:#3b4456;font:700 15px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-bar .tbp-seg button[aria-pressed="true"],.tbp-app .tbp-seg input:checked+span{background:#1550b8;color:#ffffff}
.tbp-seg label{position:relative;display:inline-flex}.tbp-seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.tbp-seg input:focus-visible+span,.tbp-seg button:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.tbp-bar .tbp-add{width:auto;margin:0;min-height:48px;padding:0 20px;font-size:15px}
.tbp-daynav{display:flex;align-items:center;gap:6px;margin:12px 0}
.tbp-daynav[hidden]{display:none}
.tbp-arrow{flex:none;width:44px;height:44px;border-radius:12px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:700 22px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-dayname{flex:1;margin:0;text-align:center;font:700 18px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033}
.tbp-chips{display:none;flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.tbp-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:2px;border-radius:12px;border:1.5px solid #ddd3c4;background:#fffdf8;color:#172033;font:500 12px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-chip b{font-size:13px}.tbp-chip.is-today{border-color:#e4632e}
.tbp-chips .tbp-chip[aria-pressed="true"]{background:#1550b8;border-color:#1550b8;color:#ffffff}
@media(min-width:700px){.tbp-chips{display:grid}.tbp-dayname{display:none}}
.tbp-sheet{--tbp-hour:88px;--paper:#fffdf8;--ink:#172033;--soft:#5b6475;--rule:#e6dfd2;--accent:#1550b8;container-type:inline-size;padding:16px;border:1px solid #eee4d5;border-radius:16px;background:var(--paper);color:var(--ink);color-scheme:light}
.tbp-sheet[data-design="color"]{--paper:#fffaf2;--rule:#eadfcf}
.tbp-sheet[data-design="ink"]{--paper:#ffffff;--ink:#111111;--soft:#444444;--rule:#bbbbbb;--accent:#111111}
.tbp-head{display:grid;gap:2px;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid var(--accent)}
.tbp-sheet .tbp-title{width:100%;min-height:44px;padding:0;border:0;background:transparent;color:var(--ink);font:700 26px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em}
.tbp-sheet .tbp-title:focus{outline:2px dashed var(--accent);outline-offset:2px}
.tbp-date{margin:0;font-size:15px;font-weight:700;color:var(--accent)}
.tbp-totals{margin:0;min-height:1.45em;font-size:13.5px;font-weight:600;color:var(--soft);font-variant-numeric:tabular-nums}
.tbp-day{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
@container (min-width:600px){.tbp-day{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}}
.tbp-time{position:relative;height:calc(var(--tbp-rows) * var(--tbp-hour));margin-left:52px;cursor:copy}
.tbp-hours{position:absolute;inset:0 0 0 -52px;list-style:none;margin:0;padding:0;display:grid;grid-auto-rows:var(--tbp-hour);pointer-events:none}
.tbp-hours li{position:relative;border-top:1px solid var(--rule)}
.tbp-hours li::after{content:"";position:absolute;left:52px;right:0;top:50%;border-top:1px dashed var(--rule)}
.tbp-hours li:last-child{border-bottom:1px solid var(--rule)}
.tbp-hours span{position:absolute;left:0;top:3px;font:600 12px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;color:var(--soft);white-space:nowrap}
.tbp-blocks{position:absolute;inset:0}
.tbp-c-focus{--c:#1550b8;--t:#e7f0ff}.tbp-c-meeting{--c:#7b4bb7;--t:#f1e8ff}.tbp-c-admin{--c:#0f8a7e;--t:#ddf4f0}.tbp-c-personal{--c:#e4632e;--t:#fff0e4}.tbp-c-health{--c:#4f8a10;--t:#edf5d8}.tbp-c-break{--c:#8a8f9c;--t:#f1efea}
.tbp-block{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1px;overflow:hidden;padding:4px 8px 4px 13px;border:2px solid var(--paper);border-radius:12px;background:var(--t);box-shadow:inset 5px 0 0 var(--c);color:var(--ink);font:500 12.5px/1.25 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:left;cursor:pointer}
.tbp-block:hover{filter:brightness(.97)}
.tbp-block:focus-visible{outline:3px solid #f2783c;outline-offset:1px;z-index:2}
.tbp-b-time{font-size:11.5px;font-weight:600;color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.tbp-b-title{font-weight:700;font-size:14px;overflow-wrap:anywhere}
.tbp-b-tag{position:absolute;top:4px;right:6px;padding:1px 6px;border-radius:99px;background:var(--paper);color:var(--c);font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.tbp-block.is-short{flex-direction:row;align-items:center;gap:6px;padding-top:0;padding-bottom:0}
.tbp-block.is-short .tbp-b-title{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbp-block.is-short .tbp-b-tag{position:static;margin-left:auto}
.tbp-sheet[data-design="color"] .tbp-block{background:var(--c);box-shadow:none;color:#ffffff}
.tbp-sheet[data-design="color"] .tbp-b-time{color:#ffffffd9}
.tbp-sheet[data-design="color"] .tbp-b-tag{background:#ffffff;color:var(--c)}
.tbp-sheet[data-design="ink"] .tbp-block{--c:#111111;background:#ffffff;border:1.5px solid #111111;box-shadow:inset 4px 0 0 #111111}
.tbp-sheet[data-design="ink"] .tbp-b-tag{border:1px solid #111111}
.tbp-now{position:absolute;left:-6px;right:0;height:2px;background:#e4632e;pointer-events:none;z-index:3}
.tbp-now::before{content:"";position:absolute;left:0;top:-4px;width:10px;height:10px;border-radius:50%;background:#e4632e}
.tbp-side{display:grid;align-content:start;gap:4px;min-width:0}
.tbp-label{margin:10px 0 0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.tbp-label small{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--soft)}
.tbp-side>.tbp-label:first-child{margin-top:0}
.tbp-sheet .tbp-line{width:100%;min-width:0;min-height:44px;padding:0 4px;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font:500 15px/1.3 'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.tbp-sheet .tbp-line:focus{outline:none;border-bottom-color:var(--accent);background:#1550b80d}
.tbp-todos{list-style:none;margin:0;padding:0}
.tbp-todo,.tbp-todo-add{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center}
.tbp-todo-add{grid-template-columns:minmax(0,1fr) 44px}
.tbp-todo input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:44px;height:44px;margin:0;background:center/22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='none' stroke='%238a8f9c' stroke-width='2'/%3E%3C/svg%3E");cursor:pointer}
.tbp-todo input[type="checkbox"]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='3' width='18' height='18' rx='5' fill='%231550b8'/%3E%3Cpath d='M7.5 12.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.tbp-todo input[type="checkbox"]:focus-visible{outline:3px solid #f2783c;outline-offset:-4px}
.tbp-todo.is-done .tbp-line{text-decoration:line-through;color:var(--soft)}
.tbp-todo-blank{display:block;height:36px;border-bottom:1px solid var(--rule)}
.tbp-icon{width:44px;height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--accent);font:700 20px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-icon:hover{background:#1550b814}
.tbp-sheet .tbp-notes{width:100%;min-height:96px;padding:8px;border:1px solid var(--rule);border-radius:10px;background:transparent;color:var(--ink);font:400 14.5px/1.45 'DM Sans','DM Sans Fallback',system-ui,sans-serif;resize:vertical}
.tbp-legend{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;margin:12px 0 0;padding:0;font-size:12px;color:var(--soft)}
.tbp-legend li{display:flex;align-items:center;gap:5px}
.tbp-legend i,.tbp-dot{display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--c)}
.tbp-sheet[data-design="ink"] .tbp-legend i{background:#ffffff;border:1.5px solid #111111}
.tbp-foot{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;color:var(--soft)}
.tbp-wk-head,.tbp-wk-body{display:grid;grid-template-columns:46px repeat(7,minmax(0,1fr));gap:0}
.tbp-wk-head{position:sticky;top:0;z-index:4;background:var(--paper);padding-bottom:4px}
.tbp-wk-day{min-height:44px;margin:0 2px;padding:2px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:500 13px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-wk-day b{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.tbp-wk-day.is-today{box-shadow:inset 0 0 0 2px #e4632e}
.tbp-wk-body{position:relative;height:calc(var(--tbp-rows) * var(--tbp-hour))}
.tbp-wk-body .tbp-hours{position:relative;inset:auto;grid-column:1;grid-row:1;height:100%}
.tbp-wk-body .tbp-hours li::after{content:none}
.tbp-wk-col{position:relative;grid-row:1;height:100%;border-left:1px solid var(--rule);background:repeating-linear-gradient(to bottom,var(--rule) 0 1px,transparent 1px var(--tbp-hour));cursor:copy}
.tbp-wk-col:last-child{border-right:1px solid var(--rule)}
.tbp-wk-col .tbp-block{padding:3px 4px 3px 9px;border-radius:8px;box-shadow:inset 4px 0 0 var(--c);font-size:11px}
.tbp-wk-col .tbp-b-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:normal;hyphens:auto;font-size:12px;line-height:1.2}
.tbp-wk-col .tbp-b-time{font-size:10.5px}
.tbp-wk-col .tbp-b-tag{display:none}
.tbp-wk-col .tbp-block.is-short .tbp-b-time{display:none}
.tbp-agenda{display:none;list-style:none;margin:0;padding:0}
.tbp-agenda>li{padding:8px 0;border-bottom:1px solid var(--rule)}
.tbp-agenda h3{margin:0}
.tbp-ag-day{min-height:44px;padding:0;border:0;background:transparent;color:var(--accent);font:700 17px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif;cursor:pointer;text-align:left}
.tbp-agenda ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.tbp-ag{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:44px;padding:4px 10px 4px 13px;border:0;border-radius:10px;background:var(--t);box-shadow:inset 5px 0 0 var(--c);color:var(--ink);font:500 14px/1.25 'DM Sans','DM Sans Fallback',system-ui,sans-serif;text-align:left;cursor:pointer}
.tbp-ag-time{font-size:13px;font-weight:600;color:var(--soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.tbp-ag-title{font-weight:700;overflow-wrap:anywhere}
.tbp-ag .tbp-b-tag{position:static}
.tbp-sheet[data-design="color"] .tbp-ag{background:var(--c);color:#ffffff;box-shadow:none}.tbp-sheet[data-design="color"] .tbp-ag-time{color:#ffffffd9}
.tbp-sheet[data-design="ink"] .tbp-ag{background:#ffffff;box-shadow:inset 4px 0 0 #111111;border:1px solid #111111}
.tbp-ag-add{min-height:44px;padding:0 6px;border:0;background:transparent;color:#1550b8;font:700 14px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
@container (max-width:599px){.tbp-wk{display:none}.tbp-agenda{display:block}}
.tbp-form .tbp-actions{display:grid;gap:8px;margin-top:12px}.tbp-form .tbp-actions .button,.tbp-more .button{margin:0;width:100%;min-height:48px}
.tbp-designs,.tbp-paper{border:0;padding:0;margin:16px 0 0;min-width:0}.tbp-designs legend,.tbp-paper legend{padding:0;margin-bottom:8px;font-weight:600}
.tbp-design-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tbp-design{position:relative;display:grid;justify-items:center;gap:6px;padding:8px 4px;border-radius:14px;border:1.5px solid #e6dfd2;background:#fffdf8;cursor:pointer;text-align:center}
.tbp-design input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.tbp-design:has(input:checked){border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8;background:#e7f0ff}
.tbp-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.tbp-design-name{font-size:13.5px;font-weight:700;line-height:1.2;color:#172033}.tbp-design-name small{display:block;font-size:11px;font-weight:500;color:#5b6475}
.tbp-swatch{display:grid;gap:3px;width:52px;padding:5px;border-radius:8px;background:#fffdf8;border:1px solid #eee4d5}
.tbp-swatch i{display:block;height:8px;border-radius:3px;background:#e7f0ff;box-shadow:inset 3px 0 0 #1550b8}
.tbp-swatch i:nth-child(2){background:#fff0e4;box-shadow:inset 3px 0 0 #e4632e}.tbp-swatch i:nth-child(3){background:#ddf4f0;box-shadow:inset 3px 0 0 #0f8a7e}
.tbp-swatch-color i{background:#1550b8;box-shadow:none}.tbp-swatch-color i:nth-child(2){background:#e4632e;box-shadow:none}.tbp-swatch-color i:nth-child(3){background:#0f8a7e;box-shadow:none}
.tbp-swatch-ink{background:#ffffff}.tbp-swatch-ink i,.tbp-swatch-ink i:nth-child(2),.tbp-swatch-ink i:nth-child(3){background:#ffffff;border:1px solid #111111;box-shadow:inset 3px 0 0 #111111}
.tbp-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.tbp-row .build-field{margin-top:14px}
.tbp-form select{width:100%;min-height:48px}
.tbp-more{display:grid;gap:8px;margin-top:16px}
.tbp-form .tool-note .text-button{min-height:44px}
.tbp-plan{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#1550b8}.tbp-plan::after{content:"→";margin-left:6px}
.tbp-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:20px;background:#ffffff;color:#172033;box-shadow:0 24px 60px #17203340}
.tbp-dialog::backdrop{background:#17203366}
.tbp-editor{padding:20px}
.tbp-editor h2{margin:0;font:700 22px/1.2 'Fraunces','Fraunces Fallback',Georgia,serif}
.tbp-editor .build-field{margin-top:12px}
.tbp-editor .build-field input,.tbp-editor select{width:100%;min-height:48px}
.tbp-editor select{font:inherit;padding:0 12px;border:1.5px solid #ddd3c4;border-radius:12px;background:#fffdf8}
.tbp-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tbp-lengths{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:8px}
.tbp-lengths button{min-height:44px;padding:0 2px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fffdf8;color:#172033;font:700 13px/1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.tbp-cats,.tbp-depth{border:0;padding:0;margin:12px 0 0;min-width:0}.tbp-cats legend,.tbp-depth legend{padding:0;margin-bottom:6px;font-weight:600}
.tbp-cat-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tbp-cat{position:relative;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1.5px solid #e6dfd2;border-radius:12px;background:#fffdf8;font-size:14px;font-weight:600;cursor:pointer}
.tbp-cat input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.tbp-cat i{flex:none;width:16px;height:16px;border-radius:5px;background:var(--c)}
.tbp-cat:has(input:checked){border-color:#1550b8;box-shadow:inset 0 0 0 1.5px #1550b8;background:#e7f0ff}
.tbp-cat:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.tbp-depth .tbp-seg{display:flex}.tbp-depth .tbp-seg label{flex:1}.tbp-depth .tbp-seg label span{width:100%}
.tbp-warn{min-height:1.4em;margin:10px 0 0;font-size:14px;font-weight:600;color:#b24618}
.tbp-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.tbp-dialog-actions .button{margin:0;width:100%;min-height:48px}
.tbp-dialog-actions .tbp-delete{grid-column:1/-1;justify-self:center;min-height:44px;color:#b24618}
.tbp-dialog-actions .tbp-delete[hidden]{display:none}
.tbp-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tbp-example{padding:16px;border:1px solid #eee4d5;border-radius:16px;background:#ffffff;min-width:0}
.tbp-example h3{margin:0}.tbp-example-note{margin:2px 0 0;font-size:14px;color:#5b6475}
.tbp-table td{padding:6px 8px;font-size:14px}.tbp-table td:first-child{white-space:nowrap;color:#5b6475;font-variant-numeric:tabular-nums}
.tbp-table .tbp-dot{margin-right:6px;vertical-align:-1px}
.tbp-use{width:100%;margin:6px 0 0;min-height:48px}
@media(max-width:960px){.tbp-app{grid-template-columns:1fr}}
@media(max-width:700px){.tbp-examples{grid-template-columns:1fr}}
@media(max-width:560px){
.tbp-main{padding:12px 10px}
.tbp-sheet{padding:12px 10px}
.tbp-sheet .tbp-title{font-size:22px}
.tbp-seg button{min-width:56px;padding:0 10px}
.tbp-bar .tbp-add{padding:0 14px}
.tbp-cat{font-size:13px;padding:0 8px}
.tbp-ag{grid-template-columns:84px minmax(0,1fr) auto;padding-left:11px}
}
@page tbp-letter-p{size:letter portrait;margin:10mm}
@page tbp-a4-p{size:A4 portrait;margin:10mm}
@page tbp-letter-l{size:letter landscape;margin:9mm}
@page tbp-a4-l{size:A4 landscape;margin:9mm}
@media print{
html:has(.tbp-app),body:has(.tbp-app){background:#ffffff!important}
main:has(.tbp-app)>:not(.tbp-app){display:none!important}
.tool-shell:has(.tbp-app){width:auto;max-width:none;padding:0;margin:0}
.tbp-app{display:block;margin:0}
.tbp-app>:not(.tbp-main){display:none!important}
.tbp-main{padding:0;border:0;border-radius:0;box-shadow:none;background:none}
.tbp-main>:not(.tbp-sheet){display:none!important}
.tbp-main::before,.tbp-main::after{content:none!important;display:none!important}
.tbp-sheet .tbp-title{min-height:34px;font-size:24px}
.tbp-head{margin-bottom:8px;padding-bottom:6px}
.tbp-sheet{border:0;border-radius:0;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
.tbp-app:has(.tbp-sheet[data-view="day"][data-paper="letter"]){page:tbp-letter-p}.tbp-sheet[data-view="day"][data-paper="letter"] .tbp-time{--tbp-hour:calc(8.55in / var(--tbp-rows))}
.tbp-app:has(.tbp-sheet[data-view="day"][data-paper="a4"]){page:tbp-a4-p}.tbp-sheet[data-view="day"][data-paper="a4"] .tbp-time{--tbp-hour:calc(9.3in / var(--tbp-rows))}
.tbp-app:has(.tbp-sheet[data-view="week"][data-paper="letter"]){page:tbp-letter-l}.tbp-sheet[data-view="week"][data-paper="letter"] .tbp-wk{--tbp-hour:calc(5.7in / var(--tbp-rows))}
.tbp-app:has(.tbp-sheet[data-view="week"][data-paper="a4"]){page:tbp-a4-l}.tbp-sheet[data-view="week"][data-paper="a4"] .tbp-wk{--tbp-hour:calc(5.4in / var(--tbp-rows))}
.tbp-wk{display:block!important}.tbp-agenda{display:none!important}
.tbp-wk-head{position:static}
.tbp-day{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)!important}
.tbp-now,.tbp-icon,.tbp-todo-add,[data-tbp-foot]{display:none!important}
.tbp-sheet .tbp-line::placeholder{color:transparent}
.tbp-todo{grid-template-columns:28px minmax(0,1fr)}
.tbp-todo input[type="checkbox"]{width:28px;height:30px;background-size:16px}
.tbp-sheet .tbp-line{min-height:30px;font-size:13px}
.tbp-sheet .tbp-notes{min-height:150px;resize:none}
.tbp-block{font-size:11px}.tbp-b-title{font-size:12px}
}
/* Day counter */
/* /tools/day-counter/: three modes (days since, days until, streak) over a date and a name, the answer as one big number
   with weeks, months and days, weekdays and hours below it, then save, share and image buttons and quick picks. The side
   column lists the next milestones (or dates from today) and the counters saved on this device. Every mode fills the same
   boxes, so switching never moves the page. */
.dcn-app{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.dcn-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:#f6f1e8;border:1px solid #eee4d5}
.dcn-modes button{min-height:48px;padding:0 6px;border:0;border-radius:12px;background:transparent;color:#3b4456;font:700 15px/1.1 'DM Sans','DM Sans Fallback',system-ui,sans-serif;cursor:pointer}
.dcn-app .dcn-modes button[aria-pressed="true"]{background:#1550b8;color:#ffffff}
.dcn-modes button:focus-visible{outline:3px solid #f2783c;outline-offset:2px}
.dcn-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}
.dcn-inputs .build-field{margin-top:12px}
.dcn-inputs .build-field input{min-height:48px}
.dcn-result{margin-top:14px;padding:18px;border-radius:20px;background:#e7f0ff}
.dcn-app[data-mode="streak"] .dcn-result{background:#fff0e4}
.dcn-big{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0;font:700 56px/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;color:#172033;font-variant-numeric:tabular-nums}
.dcn-big small{font:700 20px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;color:#b24618}
.dcn-big small:empty{display:none}
.dcn-line{margin:6px 0 0;min-height:1.45em;font-size:17px;font-weight:600;line-height:1.45;color:#12367f;overflow-wrap:anywhere}
.dcn-app[data-mode="streak"] .dcn-line{color:#8a3a12}
.dcn-break{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 0}
.dcn-break div{min-height:66px;padding:8px 10px;border-radius:12px;background:#ffffff}
.dcn-break dt{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#5b6475}
.dcn-break dd{margin:3px 0 0;font-size:15.5px;font-weight:700;line-height:1.3;color:#172033;font-variant-numeric:tabular-nums}
.dcn-note{display:flex;align-items:center;gap:12px;min-height:44px;margin-top:8px}
.dcn-note p{margin:0;font-size:14px;color:#3b4456}
.dcn-bar{flex:1;height:10px;border-radius:99px;background:#ffffff;overflow:hidden}.dcn-bar span{display:block;height:100%;border-radius:99px;background:#e4632e}
.dcn-note .dcn-bar+p{flex:none;font-weight:700;color:#8a3a12}
.dcn-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.dcn-actions .button{margin:0;width:100%;min-height:48px;padding:0 10px}
.dcn-actions .dcn-slip{grid-column:1/-1}
.dcn-actions .dcn-slip[hidden]{display:none}
.dcn-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.dcn-quick .chip{min-height:44px}
.dcn-side h2{font-size:22px}
.dcn-coming{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.dcn-coming li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid #eee4d5}
.dcn-coming b{color:#172033}.dcn-coming span{font-size:14px;color:#5b6475;text-align:right}
.dcn-side .dcn-saved-title{margin-top:22px}
.dcn-saved{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.dcn-card{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;border:1.5px solid #eee4d5;border-radius:14px;background:#fffdf8}
.dcn-card.is-open{border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8}
.dcn-open{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:baseline;min-height:56px;padding:8px 12px;border:0;background:transparent;color:#172033;text-align:left;cursor:pointer}
.dcn-open b{grid-row:1/3;font:700 30px/1 'Fraunces','Fraunces Fallback',Georgia,serif;align-self:center;font-variant-numeric:tabular-nums}
.dcn-card-unit{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.dcn-card-name{font-weight:700;overflow-wrap:anywhere}
.dcn-del{border:0;border-left:1px solid #eee4d5;background:transparent;color:#5b6475;font-size:22px;cursor:pointer;border-radius:0 14px 14px 0}
.dcn-del:hover{color:#b24618}
@media(max-width:860px){.dcn-app{grid-template-columns:1fr}}
@media(max-width:600px){.dcn-break{grid-template-columns:repeat(2,minmax(0,1fr))}.dcn-big{font-size:46px}}
@media(max-width:560px){
.dcn-main,.dcn-side{padding:16px 12px}
.dcn-result{padding:14px 12px}
.dcn-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.dcn-actions [data-dcn-save]{grid-column:1/-1}
.dcn-modes button{font-size:14px}
}
@media(max-width:359px){.dcn-inputs{grid-template-columns:1fr}.dcn-big{font-size:40px}}
/* Life in weeks */
/* /tools/life-in-weeks/: the birth date and the numbers first, then the grid (a canvas in a box the server sizes with
   aspect-ratio, 52 boxes per row and one row per year, so nothing moves when it is drawn), a key with the life chapters;
   beside it the poster options. The grid box and the poster are paper, so they keep their colors in dark mode
   (KEEP_SELECTORS). Prints a one-page poster on Letter or A4. */
.liw-app{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.liw-top{display:grid;gap:4px}
.liw-top .build-field{margin-top:0}
.liw-top .build-field input{max-width:280px;min-height:48px}
.liw-example{margin:0;min-height:2.9em;font-size:14px;line-height:1.45;color:#5b6475}
.liw-big{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:8px 0 0;font:700 52px/1.05 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.03em;color:#172033;font-variant-numeric:tabular-nums}
.liw-big small{font:700 19px/1.2 'DM Sans','DM Sans Fallback',system-ui,sans-serif;letter-spacing:0;color:#b24618}
.liw-line{margin:4px 0 0;min-height:1.45em;font-size:16px;color:#3b4456}
.liw-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 0}
.liw-stats div{padding:8px 6px;border-radius:14px;background:#f6f1e8;text-align:center}
.liw-stats dt{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5b6475}
.liw-stats dd{margin:2px 0 0;font:700 22px/1.15 'Fraunces','Fraunces Fallback',Georgia,serif;color:#172033;font-variant-numeric:tabular-nums}
.liw-gridwrap{max-width:600px;margin:16px auto 0;padding:8px;border:1px solid #eee4d5;border-radius:14px;background:#fffdf8}
.liw-grid{display:block;width:100%;height:auto;cursor:crosshair}
.liw-info{margin:8px 0 0;min-height:2.9em;font-size:14px;line-height:1.45;color:#3b4456}
.liw-legend,.liw-p-legend{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:6px 0 0;padding:0;font-size:13px;color:#3b4456}
.liw-legend li,.liw-p-legend li{display:flex;align-items:center;gap:6px}
.liw-legend i,.liw-p-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.liw-k-lived{background:#24324f}.liw-k-now{background:#e4632e;box-shadow:0 0 0 2px #fffdf8,0 0 0 3.5px #e4632e}.liw-k-ahead{border:1.5px solid #cfc6b6;background:#fffdf8}
.liw-k-line{height:0!important;width:18px!important;border-top:2.5px dashed #b24618;border-radius:0!important}
.liw-app[data-design="soft"] .liw-legend i{border-radius:50%}
.liw-app[data-design="soft"] .liw-k-lived{background:#e4632e}.liw-app[data-design="soft"] .liw-k-now{background:#1550b8;box-shadow:0 0 0 2px #fff8ef,0 0 0 3.5px #1550b8}
.liw-app[data-design="ink"] .liw-k-lived{background:#111111}.liw-app[data-design="ink"] .liw-k-now{background:#111111;box-shadow:0 0 0 2px #ffffff,0 0 0 3.5px #111111}
.liw-form h2{margin-bottom:0}
.liw-form .build-field{margin-top:12px}
.liw-form .build-field input,.liw-form select{width:100%;min-height:48px}
.liw-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.liw-chapters,.liw-designs,.liw-paper{border:0;padding:0;margin:16px 0 0;min-width:0}
.liw-chapters legend,.liw-designs legend,.liw-paper legend{padding:0;margin-bottom:8px;font-weight:600}
.liw-ch-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.liw-ch{display:grid;grid-template-columns:44px minmax(0,1fr) 60px 10px 60px 44px;gap:6px;align-items:center}
.liw-ch input{min-width:0;width:100%;min-height:44px;padding:0 8px;border:1.5px solid #ddd3c4;border-radius:10px;background:#fffdf8;color:#172033;font:inherit;font-size:15px}
.liw-ch input:focus{border-color:#1550b8;outline:none}
.liw-ch input[type="number"]{text-align:center;padding:0 2px}
.liw-ch span{text-align:center;color:#5b6475}
.liw-ch-color{width:44px;height:44px;border:3px solid #fffdf8;border-radius:12px;box-shadow:0 0 0 1.5px #ddd3c4;cursor:pointer}
.liw-ch-del{width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:#5b6475;font-size:22px;cursor:pointer}
.liw-ch-del:hover{color:#b24618}
.liw-ch-add{min-height:44px;margin-top:4px}
.liw-ch-add[hidden]{display:none}
.liw-design-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.liw-design{position:relative;display:grid;justify-items:center;gap:6px;padding:8px 4px;border-radius:14px;border:1.5px solid #e6dfd2;background:#fffdf8;cursor:pointer;text-align:center}
.liw-design input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.liw-design:has(input:checked){border-color:#1550b8;box-shadow:inset 0 0 0 1px #1550b8;background:#e7f0ff}
.liw-design:has(input:focus-visible){outline:3px solid #f2783c;outline-offset:2px}
.liw-design-name{font-size:13.5px;font-weight:700;line-height:1.2;color:#172033}.liw-design-name small{display:block;font-size:11px;font-weight:500;color:#5b6475}
.liw-swatch{display:grid;grid-template-columns:repeat(4,10px);gap:3px;padding:6px;border-radius:8px;background:#fffdf8;border:1px solid #eee4d5}
.liw-swatch i{display:block;width:10px;height:10px;background:#24324f}
.liw-swatch i:nth-child(3){background:#e4632e}.liw-swatch i:nth-child(4){background:#fffdf8;border:1px solid #cfc6b6}
.liw-swatch-soft{background:#fff8ef}.liw-swatch-soft i{border-radius:50%;background:#e4632e}.liw-swatch-soft i:nth-child(3){background:#1550b8}.liw-swatch-soft i:nth-child(4){background:#fff8ef;border-color:#e3cdb4}
.liw-swatch-ink{background:#ffffff}.liw-swatch-ink i{background:#111111}.liw-swatch-ink i:nth-child(3){background:#111111;outline:1px solid #111111;outline-offset:1px}.liw-swatch-ink i:nth-child(4){background:#ffffff;border-color:#9a9a9a}
.liw-seg{display:inline-flex;padding:3px;border-radius:14px;background:#f6f1e8;border:1px solid #eee4d5}
.liw-seg label{position:relative;display:inline-flex}.liw-seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.liw-seg span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:72px;padding:0 14px;border-radius:11px;font-weight:700;color:#3b4456;cursor:pointer}
.liw-paper .liw-seg input:checked+span{background:#1550b8;color:#ffffff}
.liw-seg input:focus-visible+span{outline:3px solid #f2783c;outline-offset:2px}
.liw-actions{display:grid;gap:8px;margin-top:16px}.liw-actions .button{margin:0;width:100%;min-height:48px}
.liw-form .tool-note .text-button{min-height:44px}
.liw-preview{grid-column:1/-1}
.liw-preview summary{min-height:44px;display:flex;align-items:center;font-weight:700;color:#1550b8;cursor:pointer}
.liw-poster{--bg:#fffdf8;--ink:#172033;--soft:#5b6475;--accent:#e4632e;max-width:640px;margin:8px auto 16px;padding:28px 32px 20px;border:1px solid #eee4d5;border-radius:6px;background:var(--bg);color:var(--ink);text-align:center;font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.liw-poster[data-design="soft"]{--bg:#fff8ef;--ink:#3d2317;--soft:#7a5a48;--accent:#1550b8}
.liw-poster[data-design="ink"]{--bg:#ffffff;--ink:#111111;--soft:#444444;--accent:#111111}
.liw-p-kicker{margin:0;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.liw-poster .liw-p-title{margin:4px 0 2px;font:700 32px/1.1 'Fraunces','Fraunces Fallback',Georgia,serif;letter-spacing:-.02em;color:var(--ink)}
.liw-poster[data-design="ink"] .liw-p-title{font-family:'DM Sans','DM Sans Fallback',system-ui,sans-serif}
.liw-p-sub{margin:0 0 10px;font-size:13px;color:var(--soft)}
.liw-p-canvas{display:block;width:100%;max-width:520px;height:auto;margin:0 auto}
.liw-p-legend{justify-content:center;margin-top:10px;font-size:11px;color:var(--soft)}
.liw-p-foot{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-size:10px;color:var(--soft)}
@media(max-width:960px){.liw-app{grid-template-columns:1fr}}
@media(max-width:560px){
.liw-main,.liw-form{padding:16px 12px}
.liw-big{font-size:42px}
.liw-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.liw-gridwrap{padding:4px;border-radius:10px}
.liw-row{grid-template-columns:1fr}
.liw-design-name small{display:none}
.liw-poster{padding:14px 10px}
.liw-poster .liw-p-title{font-size:24px}
}
@media(max-width:440px){
.liw-ch{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px;row-gap:4px}
.liw-ch>:nth-child(1){grid-column:1;grid-row:1}
.liw-ch>:nth-child(2){grid-column:2/4;grid-row:1}
.liw-ch>:nth-child(3){grid-column:2;grid-row:2}
.liw-ch>:nth-child(4){display:none}
.liw-ch>:nth-child(5){grid-column:3;grid-row:2}
.liw-ch>:nth-child(6){grid-column:4;grid-row:1}
.liw-ch{padding-bottom:6px;border-bottom:1px solid #eee4d5}
}
@page liw-letter{size:letter portrait;margin:10mm}
@page liw-a4{size:A4 portrait;margin:10mm}
@media print{
html:has(.liw-app),body:has(.liw-app){background:#ffffff!important}
main:has(.liw-app)>:not(.liw-app){display:none!important}
.tool-shell:has(.liw-app){width:auto;max-width:none;padding:0;margin:0}
.liw-app{display:block;margin:0}
.liw-app>:not(.liw-preview){display:none!important}
.liw-preview>summary{display:none}
.liw-poster{max-width:none;margin:0;border:0;border-radius:0;padding:0;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid}
.liw-poster[data-paper="letter"]{page:liw-letter}.liw-poster[data-paper="a4"]{page:liw-a4}
.liw-poster .liw-p-title{font-size:30px}
.liw-p-canvas{width:auto;max-width:none;height:8.1in}
.liw-poster[data-paper="a4"] .liw-p-canvas{height:8.7in}
}
