:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#17343a;background:#f4f8f6}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:#176353}header{background:#12353a;color:white;padding:20px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:white;text-decoration:none;display:inline-block;cursor:pointer;font-weight:800;font-size:1.25rem;letter-spacing:-.035em}.brand:hover,.brand:focus-visible{color:#c6ebdc}.brand small{font-weight:500;color:#b7d6d2;margin-left:12px;font-size:.85rem}nav{display:flex;flex-wrap:wrap;gap:5px}nav button{border:0;background:transparent;color:#d4e5e2;padding:9px 13px;border-radius:9px}nav button.active,nav button:hover{background:#28605e;color:white}main{max-width:1180px;margin:auto;padding:28px 24px 70px}.intro{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:0 0 22px}.intro h1{font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.045em;margin:0 0 5px}.intro p{margin:0;color:#526a69}.pill{background:#e0eee8;padding:9px 14px;border-radius:50px;color:#285e4c;font-size:.875rem;white-space:nowrap}.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:20px}.card{background:white;border:1px solid #dce9e4;border-radius:20px;padding:26px;box-shadow:0 8px 30px #17343a08}.card h2{margin:0 0 18px;font-size:1.2rem;letter-spacing:-.025em}.muted{color:#607574}.timer-card{background:#e7f3eb;position:relative;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#3f7863;font-size:.78rem;font-weight:800}.time{font-size:clamp(3.5rem,8vw,6.8rem);letter-spacing:-.08em;font-weight:750;line-height:1.1;font-variant-numeric:tabular-nums;margin:24px 0 4px}.timer-visual{display:flex;align-items:center;gap:25px;margin:20px 0 8px}.timer-ring{width:130px;height:130px;flex:none;border-radius:50%;background:conic-gradient(#276d57 var(--pct,0%),#c8ded2 0);display:grid;place-items:center;box-shadow:0 8px 22px #1f584522}.timer-ring:before{content:"";grid-area:1/1;width:100px;height:100px;border-radius:50%;background:#e7f3eb}.timer-ring span{grid-area:1/1;z-index:1;font-weight:800;font-size:1.45rem;color:#205541}.timer-copy{min-width:0}.timer-copy .time{margin:0;font-size:clamp(2.8rem,5vw,5.2rem)}.week-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:20px}.week-bar{text-align:center;font-size:.8rem;color:#4c6b60}.week-bar .track{height:86px;border-radius:10px;background:#e8f1ec;position:relative;overflow:hidden;margin-bottom:7px}.week-bar .fill{position:absolute;background:#3b8a6a;left:0;right:0;border-radius:7px;min-height:3px}.guide-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:25px 0}.guide-cards div{background:#eef6f2;border-radius:13px;padding:18px}.guide-cards strong{display:block;margin-bottom:7px}.progress{height:13px;border-radius:20px;background:#c8ded2;overflow:hidden;margin:25px 0 12px}.progress span{display:block;background:#276d57;height:100%;width:0;transition:width .5s}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.btn{border:1px solid #2e7560;background:#23654f;color:white;border-radius:11px;padding:11px 18px;font-weight:700}.btn.secondary{background:white;color:#215c4b;border-color:#bad7c8}.btn.danger{background:white;color:#8a443a;border-color:#e3c6bd}.btn:hover{filter:brightness(.94)}label{display:block;font-weight:650;font-size:.9rem;margin:16px 0 7px}input,select{width:100%;border:1px solid #b9ceca;border-radius:10px;padding:11px 12px;background:white;color:#17343a}input:focus,select:focus,button:focus-visible{outline:3px solid #80c9aa;outline-offset:2px}.inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result{background:#eef6f2;border-radius:13px;padding:16px;margin-top:18px}.result strong{font-size:1.3rem}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.quick button{background:#fff;border:1px solid #d6e5de;border-radius:13px;text-align:left;padding:14px;color:#234e42;font-weight:700}.quick button:hover{border-color:#427d65}.quick span{display:block;font-weight:400;color:#617771;font-size:.83rem;margin-top:4px}.view{display:none}.view.active{display:block}.days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.day{min-width:0;border:1px solid #dbe9e2;border-radius:12px;padding:12px;background:#fbfdfc}.day label{margin:0 0 8px}.day input{min-width:0;width:100%;padding:8px;font-size:.875rem}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.calendar-head h3{margin:0;font-size:1.05rem}.calendar-head button{border:1px solid #bed7ca;background:white;border-radius:9px;padding:6px 11px;color:#215c4b}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-grid .weekday{text-align:center;color:#607574;font-size:.8rem;padding:4px}.calendar-grid button{border:1px solid #e0eae5;background:#f8fbf9;border-radius:9px;min-height:40px;color:#234f42;position:relative}.calendar-grid button.has-entry{background:#dcefe4;border-color:#9bcbb0;font-weight:800}.calendar-grid button.selected{outline:2px solid #276d57;outline-offset:1px}.calendar-grid button.has-entry:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#276d57;bottom:4px;left:calc(50% - 2.5px)}.session-edit{margin:10px 0 18px;padding:14px;background:#f3f8f5;border-radius:12px}.session-edit .inline label{margin-top:5px}.entry{border-bottom:1px solid #e5eee9;padding:13px 0}.entry:last-child{border:0}.entry small{color:#607574}.guide{max-width:760px}.guide h2{margin-top:30px}.guide p,.guide li{line-height:1.7}.notice{background:#fff8e8;border-left:4px solid #b48b3a;padding:17px;border-radius:8px;line-height:1.6}.footer{max-width:1180px;margin:auto;border-top:1px solid #dce9e4;padding:25px 24px 50px;color:#607574;font-size:.85rem}.footer a{margin-right:17px}.empty{padding:25px;color:#607574;text-align:center}.status{min-height:1.5em;color:#285e4c;font-size:.9rem}.back-top{position:fixed;right:22px;bottom:22px;z-index:20;border:1px solid #397563;background:#123f3f;color:white;border-radius:99px;padding:12px 17px;box-shadow:0 6px 20px #102e2e30;font-weight:700}.back-top[hidden]{display:none}.back-top:hover{background:#23654f}@media(max-width:760px){header{display:block;padding:18px 20px}nav{margin-top:15px;overflow-x:auto;flex-wrap:nowrap}nav button{white-space:nowrap}.brand small{display:none}main{padding:22px 16px 55px}.grid{grid-template-columns:1fr}.intro{align-items:start}.pill{display:none}.card{padding:21px}.quick{grid-template-columns:1fr}.days{grid-template-columns:repeat(2,minmax(0,1fr))}.timer-visual{gap:14px}.timer-ring{width:100px;height:100px}.timer-ring:before{width:76px;height:76px}.timer-ring span{font-size:1rem}.timer-copy .time{font-size:clamp(2rem,6vw,3.5rem)}}@media(max-width:420px){.days{grid-template-columns:1fr}.inline{grid-template-columns:1fr}.guide-cards{grid-template-columns:1fr}}
.download-card{margin-top:20px;background:linear-gradient(135deg,#edf5ff,#f7fbff);border-color:#bfd5f2}.download-card h2{margin:0 0 8px}.download-card p{max-width:680px;line-height:1.6}.download-card .btn{display:inline-block;text-decoration:none;margin-top:8px}.download-card .download-meta{font-size:.9rem;color:#526c86;margin-bottom:0}
nav a.nav-tool{color:#d4e5e2;padding:9px 13px;border-radius:9px;text-decoration:none;white-space:nowrap}nav a.nav-tool:hover,nav a.nav-tool:focus-visible{background:#28605e;color:white}a:focus-visible{outline:3px solid #80c9aa;outline-offset:3px}.supporting-tool{margin-top:20px}.supporting-tool p{line-height:1.6}.supporting-tool .btn{display:inline-block;text-decoration:none}
.article-nav{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:22px}.article-nav a{background:#e0eee8;padding:9px 14px;border-radius:9px;text-decoration:none}.guide{max-width:820px}.guide h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}.guide h2{margin-top:30px}.guide p{line-height:1.75}

nav a{color:#d4e5e2;padding:9px 13px;border-radius:9px;text-decoration:none;white-space:nowrap}nav a[aria-current],nav a:hover{background:#28605e;color:white}
.quick a{display:block;background:#fff;border:1px solid #d6e5de;border-radius:13px;padding:14px;color:#234e42;font-weight:700;text-decoration:none}.quick a:hover{border-color:#427d65}.quick a span{display:block;font-weight:400;color:#617771;font-size:.83rem;margin-top:4px}
.card+.card,.grid+.card,.card+.content,.grid+.content{margin-top:20px}.guide.wide{max-width:none}.content{margin-top:20px}.content>h2:first-child{margin-top:0}
.guide ul,.guide ol{line-height:1.7;padding-left:22px}.guide li{margin:6px 0}.steps-list li{margin:9px 0}.lead{font-size:1.1rem;color:#526a69}
.table-scroll{overflow-x:auto;margin:16px 0;position:relative}.guide table{border-collapse:collapse;width:100%;font-size:.95rem}.guide th,.guide td{border:1px solid #dce9e4;padding:9px 11px;text-align:left;vertical-align:top}.guide th{background:#eef6f2}
.guide details{border:1px solid #dce9e4;border-radius:12px;padding:13px 16px;margin:10px 0;background:#fbfdfc}.guide summary{cursor:pointer;font-weight:700}
.sources{margin-top:30px;padding:16px 18px;background:#f3f8f5;border-radius:12px;display:grid;gap:6px;font-size:.92rem}.reviewed{font-size:.85rem;color:#607574;margin-top:26px}
.guide-cards.links a{text-decoration:none}.guide-cards.links div{line-height:1.5;color:#4c6b60;font-size:.93rem}
.linkish{background:none;border:0;padding:0;margin-top:14px;color:#176353;text-decoration:underline;font-weight:600}
.add-past{margin:18px 0}.add-past summary{cursor:pointer;font-weight:700;color:#215c4b}
.water-week{display:grid;gap:4px}.water-day{display:flex;justify-content:space-between;border-bottom:1px solid #eef3f0;padding:4px 0;font-size:.9rem;color:#4c6b60}
.file-btn{position:relative;overflow:hidden;margin:0;display:inline-block;font-size:1rem}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.contact-box{background:#eef6f2;border-radius:12px;padding:16px 20px;margin:18px 0}.contact-box a{font-size:1.15rem;font-weight:700}
.download-meta{font-size:.85rem;color:#607574}.footer p{margin:6px 0}
@media(max-width:760px){nav a{padding:8px 11px}}
