/* Planner-specific styles. Builds on ../assets/styles.css */
:root{--day:#f6c453;--day-ink:#4a3300;--night:#2b3f73;--night-ink:#fff;--fly:#d9534f;--fly-ink:#fff;--home:#3f8f6b;--home-ink:#fff;--rr:#f3eee3}
.planner{padding-bottom:2rem}
.pl-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 1rem;padding-top:1.1rem}
.pl-h1{font-size:clamp(1.5rem,5vw,2.2rem);margin:0}
.privacy-note{font-size:.88rem;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:10px;padding:.5rem .75rem;margin:0;max-width:34rem}
.tabs{position:sticky;top:0;z-index:4;display:flex;gap:.35rem;overflow-x:auto;padding:.6rem 1.25rem;background:var(--paper);border-bottom:1px solid var(--line);scrollbar-width:none;max-width:var(--max);margin:0 auto}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:0 0 auto;font:inherit;font-size:.95rem;font-weight:700;border:2px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:.45rem .9rem;min-height:40px;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.pl-body{padding-top:1.1rem}
.tabpane{display:none}.tabpane.on{display:block}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;margin-bottom:1rem}
.box h2{font-size:1.3rem}.box h3{font-size:1.08rem;margin-bottom:.4rem}
.grid2{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:760px){.grid2{grid-template-columns:1fr 1fr}}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;margin:0}
.kv dt{color:var(--muted);font-size:.92rem}.kv dd{margin:0;font-weight:600}
.big{font-size:1.6rem;font-weight:800;color:var(--navy);margin:.1rem 0 .3rem}
.pill{display:inline-block;font-size:.78rem;font-weight:700;padding:.12rem .5rem;border-radius:999px;vertical-align:middle}
.pill-D{background:var(--day);color:var(--day-ink)}.pill-N{background:var(--night);color:var(--night-ink)}.pill-out{background:var(--fly);color:var(--fly-ink)}.pill-home{background:var(--home);color:var(--home-ink)}.pill-rr{background:var(--rr);color:var(--muted)}
.pro{font-size:.72rem;font-weight:700;background:#fdebc8;color:var(--accent-ink);border-radius:999px;padding:.1rem .45rem;margin-left:.3rem;vertical-align:middle;white-space:nowrap}
/* calendar */
.legend{display:flex;flex-wrap:wrap;gap:.4rem .8rem;font-size:.85rem;margin:.2rem 0 1rem}
.legend span{display:inline-flex;align-items:center;gap:.3rem}.legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.months{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:760px){.months{grid-template-columns:1fr 1fr}}
@media(min-width:1050px){.months{grid-template-columns:1fr 1fr 1fr}}
.month{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem}
.month h3{font-size:1rem;margin:0 0 .4rem}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.mgrid .dow{font-size:.7rem;text-align:center;color:var(--muted);font-weight:700}
.dcell{position:relative;aspect-ratio:1/1;border:0;border-radius:6px;font:inherit;font-size:.85rem;font-weight:700;background:var(--rr);color:var(--ink);cursor:pointer;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.dcell small{font-size:.58rem;font-weight:700;opacity:.95}
.dcell.D{background:var(--day);color:var(--day-ink)}.dcell.N{background:var(--night);color:var(--night-ink)}
.dcell.out{background:var(--fly);color:var(--fly-ink)}.dcell.home{background:var(--home);color:var(--home-ink)}
.dcell.today{outline:3px solid var(--accent);outline-offset:1px}
.dcell.blank{background:transparent;cursor:default}
/* plan list */
.plan-day{border-left:6px solid var(--line);padding:.6rem .8rem;margin-bottom:.7rem;background:#fff;border-radius:8px;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.plan-day.D{border-left-color:var(--day)}.plan-day.N{border-left-color:var(--night)}.plan-day.out{border-left-color:var(--fly)}.plan-day.home{border-left-color:var(--home)}
.plan-day h4{margin:0 0 .35rem;color:var(--navy);font-size:1rem}
.plan-day ul{margin:0;padding-left:1.1rem}.plan-day li{margin-bottom:.2rem;font-size:.96rem}
.t{font-variant-numeric:tabular-nums;font-weight:800}
.src{font-size:.82rem;color:var(--muted)}
.def{background:#fff6e0;border:1px dashed #d9a640;border-radius:4px;padding:0 .25rem;font-size:.82rem}
/* forms */
.fgrid{display:grid;gap:.7rem;grid-template-columns:1fr}
@media(min-width:600px){.fgrid{grid-template-columns:1fr 1fr}}
.fgrid label,.fl{display:flex;flex-direction:column;font-size:.9rem;font-weight:700;color:var(--navy);gap:.25rem}
.planner input:not([type=checkbox]):not([type=file]),.planner select,.planner textarea{font:inherit;font-weight:400;color:var(--ink);padding:.55rem .7rem;border:2px solid #cfd6df;border-radius:10px;min-height:44px;width:100%;background:#fff}
.planner textarea{min-height:5rem}
.hint{font-weight:400;color:var(--muted);font-size:.82rem}
.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.6rem 0}
.btn-sm{padding:.45rem .85rem;min-height:38px;font-size:.92rem}
.btn-danger{background:#fff;border-color:#b33;color:#b33}
.check-list{list-style:none;padding:0;margin:0}
.check-list li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--line)}
.check-list input[type=checkbox]{width:22px;height:22px;flex:0 0 auto}
.check-list .txt{flex:1}.check-list li.done .txt{text-decoration:line-through;color:var(--muted)}
.xbtn{border:0;background:none;color:#b33;font-size:1.2rem;cursor:pointer;min-width:36px;min-height:36px}
table.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th,.tbl td{text-align:left;padding:.45rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{color:var(--muted);font-size:.82rem}
/* declaration card */
.decl{border:3px solid var(--navy);border-radius:14px;padding:1rem 1.1rem;background:#fff;max-width:34rem}
.decl h3{margin:0 0 .2rem}.decl .small{margin:.4rem 0 0}
/* ask */
.askbox{display:flex;gap:.5rem;flex-wrap:wrap}.askbox input{flex:1 1 14rem}
.hit{border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin:.7rem 0;background:#fff}
.hit h4{margin:0 0 .3rem;color:var(--navy)}
.alert{background:#fde8e6;border-left:5px solid #c0392b;padding:.8rem 1rem;border-radius:6px;margin:.7rem 0}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.chip{font:inherit;font-size:.85rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.3rem .7rem;cursor:pointer;color:var(--navy)}
#toast{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);background:var(--navy);color:#fff;padding:.6rem 1rem;border-radius:999px;font-size:.92rem;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
#toast.show{opacity:1}
dialog{border:0;border-radius:14px;max-width:min(32rem,94vw);padding:1.1rem;box-shadow:0 10px 40px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(20,38,63,.45)}
.pl-foot{margin-top:1.5rem}
@media print{
  .no-print,.site-footer,.tabs{display:none!important}
  body{background:#fff}
  .tabpane{display:none!important}
  body.print-decl #tab-meds{display:block!important}
  body.print-decl #tab-meds > *:not(.decl-wrap){display:none!important}
  .decl{max-width:none;border-width:2px}
}
.planner-page .site-header{position:static}
@media(max-width:599px){
  .planner-page .header-inner{padding-top:.45rem;padding-bottom:.45rem}
  .planner-page .nav{font-size:.88rem}
  .pl-top{padding-top:.6rem}
  .pl-top .eyebrow{margin-bottom:.2rem}
  .pl-h1{font-size:1.3rem}
  .privacy-note{font-size:.8rem;padding:.35rem .6rem}
  .tabs{padding:.45rem .8rem}
  .tabs button{font-size:.88rem;padding:.35rem .75rem;min-height:38px}
}
/* ---------- v2: Today, log, sick diary, family ---------- */
.today-hero{border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem;background:var(--rr);border:1px solid var(--line)}
.today-hero .eyebrow{color:inherit;opacity:.85;margin-bottom:.2rem}
.today-hero h2{font-size:1.35rem;margin:0 0 .35rem;color:inherit}
.today-hero .cd{margin:0}.today-hero .cd strong{font-size:1.15rem}.today-hero .hint{color:inherit;opacity:.85}
.st-D{background:var(--day);color:var(--day-ink)}.st-N{background:var(--night);color:#fff}.st-travel{background:var(--fly);color:#fff}.st-off{background:var(--home);color:#fff}
.tiles{display:grid;gap:.7rem;grid-template-columns:1fr}
@media(min-width:600px){.tiles{grid-template-columns:1fr 1fr 1fr}}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem}
.tile h3{font-size:1rem;margin:0 0 .2rem}.tile .small{margin:.2rem 0}
.tbig{font-size:1.5rem;font-weight:800;color:var(--navy);margin:0;font-variant-numeric:tabular-nums}
.small-list{padding-left:1.1rem;margin:.2rem 0}.small-list li{margin-bottom:.25rem;font-size:.93rem}
a.def{text-decoration:none;color:inherit;white-space:nowrap}
.ybig{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;text-align:center;margin:.3rem 0 .6rem}
.ybig div{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.5rem .2rem;font-size:.82rem;color:var(--muted)}
.ybig span{display:block;font-size:1.5rem;font-weight:800;color:var(--navy)}
.promo{border-color:var(--accent);background:#fffaf0}
details.box>summary{cursor:pointer}
.lbl{font-weight:700;color:var(--navy);font-size:.92rem;margin:.7rem 0 .3rem}
.seg{display:inline-flex;flex-wrap:wrap;gap:.3rem;margin:.2rem 0}
.seg button,.energy button,.step{font:inherit;font-weight:700;border:2px solid var(--line);background:#fff;color:var(--navy);border-radius:10px;min-height:44px;padding:.35rem .8rem;cursor:pointer}
.seg button[aria-pressed=true],.chip[aria-pressed=true],.energy button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.hrs{display:flex;align-items:center;gap:.6rem}.hval{font-size:1.5rem;font-weight:800;min-width:4.5rem;text-align:center;color:var(--navy)}
.step{min-width:48px;font-size:1.3rem;padding:0}
.logf .chip,#sickf .chip{min-height:40px;padding:.35rem .8rem;font-size:.9rem}
.energy{display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem}
.energy button{display:flex;flex-direction:column;align-items:center;padding:.3rem .1rem;line-height:1.1}
.energy b{font-size:1.2rem}.energy small{font-size:.7rem;font-weight:600}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.chart-wrap{overflow-x:auto;margin:.6rem 0}
.chart{width:100%;min-width:300px;height:auto;display:block}
.chart .ax{font-size:9px;fill:var(--muted)}.chart .ax-e{fill:#b8641a}
.chart .bar{fill:var(--navy);opacity:.85}.chart .eline{fill:none;stroke:#e07b1f;stroke-width:2}.chart .edot{fill:#e07b1f;stroke:#fff;stroke-width:1}
.chart .tline{stroke:#3f8f6b;stroke-dasharray:4 3;stroke-width:1.5}
.lg-bar{background:var(--navy)!important}.lg-dot{background:#e07b1f!important;border-radius:50%!important}.lg-line{height:0!important;border-top:2px dashed #3f8f6b;border-radius:0!important}
.privacy-box{background:#eef4fb;border:1px solid #c9d8ea;border-radius:10px;padding:.7rem .9rem;margin:.6rem 0}
.privacy-box p{margin:.3rem 0}
.flink{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem;padding:.6rem 0;border-bottom:1px solid var(--line)}
.flink .row{margin:.2rem 0}
.st{display:inline-block;font-size:.75rem;font-weight:700;border-radius:999px;padding:.05rem .5rem;margin-left:.2rem}
.st-ok{background:#dff1e7;color:#22613f}.st-warn{background:#fdebc8;color:var(--accent-ink)}.st-snap{background:#eee;color:#555}
.vet{list-style:"🦺 ";color:var(--muted)}
.pbars{list-style:none;padding:0;margin:.2rem 0 .8rem}
.pbars li{display:grid;grid-template-columns:minmax(7rem,40%) 1fr auto;gap:.5rem;align-items:center;font-size:.88rem;margin-bottom:.25rem}
.pb{background:var(--paper);border-radius:6px;height:12px;overflow:hidden;border:1px solid var(--line)}.pb i{display:block;height:100%;background:var(--navy-2)}
.pn{color:var(--muted);font-variant-numeric:tabular-nums}
.hit h4 .xbtn{float:right;min-height:28px}
/* ---------- v3: roster changes (one-off overrides) ---------- */
:root{--extra:#7b4fa8;--extra-ink:#fff;--leave:#bfe3ea;--leave-ink:#14424d}
.dcell.X{background:var(--extra);color:var(--extra-ink)}
.dcell.lv,.dcell.sk,.dcell.sw{background:var(--leave);color:var(--leave-ink)}
.dcell.chg-day::after{content:"";position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:#e8a33d;box-shadow:0 0 0 1.5px #fff}
.dcell.chg-day{box-shadow:inset 0 0 0 2px #e8a33d}
.pill-X{background:var(--extra);color:#fff}.pill-lv,.pill-sk,.pill-sw{background:var(--leave);color:var(--leave-ink)}
.plan-day.X{border-left-color:var(--extra)}.plan-day.lv,.plan-day.sk,.plan-day.sw{border-left-color:var(--leave)}
.st-X{background:var(--extra);color:#fff}
.chg{display:inline-block;font-size:.72rem;font-weight:800;background:#fdebc8;color:#5a3a00;border:1px solid #e8a33d;border-radius:999px;padding:0 .45rem;vertical-align:middle;white-space:nowrap}
.chg-inv{background:rgba(255,255,255,.9)}
.lg-chg{background:var(--rr)!important;box-shadow:inset 0 0 0 2px #e8a33d}
.linkbtn{font:inherit;font-weight:700;background:rgba(255,255,255,.18);color:inherit;border:1.5px solid currentColor;border-radius:999px;padding:.35rem .8rem;min-height:40px;cursor:pointer;margin-top:.4rem}
.btn-ov{background:#fff;border:2px solid var(--extra);color:var(--extra)}
.ovh{margin:0 0 .5rem;font-size:1.05rem}
.ovgrid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.3rem 0 .6rem}
.ovbtn{font:inherit;font-weight:700;font-size:.92rem;text-align:left;border:2px solid var(--line);background:#fff;color:var(--navy);border-radius:12px;min-height:56px;padding:.45rem .6rem;cursor:pointer;display:flex;flex-direction:column;justify-content:center;line-height:1.2}
.ovbtn small{font-weight:600;color:var(--muted);font-size:.75rem}
.ovbtn-x{border-color:var(--extra);color:var(--extra)}
.ovbtn-ghost{border-style:dashed;color:var(--muted)}
.ovplan{margin:.2rem 0 .6rem}.ovplan summary{cursor:pointer;font-weight:700;color:var(--navy)}
#daydlg h4{margin:.6rem 0 .3rem;color:var(--navy)}
.ovact{position:sticky;bottom:-1.1rem;background:#fff;padding:.5rem 0}
.ovlist .check-list li{font-size:.92rem}
/* ---------- v4: Meals, Fitness, My tabs ---------- */
.subnav{display:flex;flex-wrap:wrap;margin-bottom:.6rem}
.seg.wrap{flex-wrap:wrap}
.kj{font-weight:800}.kcal{color:var(--muted);font-weight:600;white-space:nowrap}
.fsearch{width:100%;min-height:46px;font-size:1rem;margin:.2rem 0 .5rem}
.flist{display:grid;grid-template-columns:1fr;gap:.35rem;max-height:22rem;overflow:auto;margin:.4rem 0;padding-right:.2rem}
.fbtn{display:flex;justify-content:space-between;align-items:center;gap:.5rem;text-align:left;font:inherit;font-weight:700;color:var(--navy);background:#fff;border:2px solid var(--line);border-radius:12px;min-height:50px;padding:.4rem .7rem;cursor:pointer}
.fbtn .hint{font-weight:600;white-space:nowrap;font-size:.8rem}
.fbtn.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy) inset}
.picker{border:2px solid var(--navy);border-radius:14px;padding:.7rem .8rem;margin-top:.6rem;background:#fff}
.picker h3{margin-top:0}
.ftag{display:inline-block;font-size:.72rem;font-weight:700;background:#e9eef7;color:#22345c;border-radius:999px;padding:0 .45rem;margin-left:.15rem}
.ftag-def{background:#fdebc8;color:#5a3a00}.ftag-you{background:#d9f0e3;color:#174d2f}
.calrow{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.2rem 0 .5rem}.calrow input{width:6rem}
.ebar{height:14px;border-radius:999px;background:#eee7da;overflow:hidden;margin:.4rem 0}.ebar i{display:block;height:100%;background:linear-gradient(90deg,#3e8e63,#e8a33d)}
#daytotal h4{margin:.7rem 0 .2rem;color:var(--navy)}
.tbl tr.me td{background:#fdf3dc;font-weight:700}
.tpl h3 .tag{background:#fdebc8;color:#5a3a00}
.mcheck .chip[aria-pressed=true]{background:#3e8e63;color:#fff;border-color:#3e8e63}
.mtick{fill:#3e8e63}
.lg-mt{background:#3e8e63!important;height:6px!important;border-radius:2px}
.mf-foot{margin-top:1rem}
.safe{margin-bottom:.7rem}.safe summary{cursor:pointer;min-height:40px}
.wk{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:.4rem 0}
.wkd{display:flex;flex-direction:column;align-items:center;border-radius:10px;padding:.35rem 0;background:#f7f3ea;border:1px solid var(--line);min-height:64px}
.wkd.D{background:#fbe6ae}.wkd.N{background:#c9d1e8}.wkd.X{background:#e6d3f5}.wkd.out,.wkd.home{background:#f3c7c5}.wkd.lv,.wkd.sk,.wkd.sw{background:#d9eef2}
.wkd.today{outline:3px solid var(--navy);outline-offset:-1px}
.wkn{font-size:.75rem;font-weight:700;color:var(--muted)}.wkc{font-size:1.3rem;font-weight:800;color:#2b6b47;line-height:1.3}.wks{font-size:.66rem;color:var(--muted)}
.runner{border:2px solid var(--navy);text-align:center}.runner h2{font-size:1.25rem}.runner .tbig{font-size:3rem}
.exrow{display:grid;grid-template-columns:1fr 4rem 4.5rem auto;gap:.3rem;margin-bottom:.35rem;align-items:center}
.exrow .ex-o{grid-column:1/4}
.exrow input{min-height:42px;min-width:0}
.trk .tbl input{width:100%;min-height:42px}
.chk{display:flex;align-items:center;gap:.4rem;font-weight:600}
.tabs .tab-pin{font-style:italic}
.tscroll{overflow-x:auto;max-width:100%}.tbl-tight{font-size:.8rem}.tbl-tight th,.tbl-tight td{padding:.3rem .25rem}
.daynav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.3rem 0 .6rem}.daynav strong{min-width:8rem;text-align:center}.step[disabled]{opacity:.35}
.wkchart .eline{stroke:#c0392b;stroke-width:2.5}
.lg-est{height:0!important;border-top:3px solid #c0392b;border-radius:0!important;background:none!important}
.fs{border:1px solid var(--line);border-radius:12px;padding:.5rem .7rem;margin:.6rem 0}.fs legend{font-weight:800;color:var(--navy);padding:0 .3rem}
.pday{border-left:6px solid #e9e2d3;background:#fff;border-radius:10px;padding:.45rem .6rem;margin:.35rem 0;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.pday.D{border-left-color:#e9c75a}.pday.N{border-left-color:#7d8fc4}.pday.X{border-left-color:var(--extra)}.pday.out,.pday.home{border-left-color:#d88a86}.pday.lv,.pday.sk,.pday.sw{border-left-color:#8fc6d1}.pday.today{box-shadow:0 0 0 2px var(--navy)}
.pdh{margin-bottom:.2rem}.plist{list-style:none;margin:.2rem 0;padding:0}.plist li{margin:.15rem 0}
.linkbtn.plus{background:none;color:var(--navy);border:1.5px dashed var(--line);font-size:.85rem;min-height:38px}
.sessf{margin-top:.3rem}.csvmap{border:1px solid var(--line);border-radius:12px;padding:.5rem .7rem;margin:.5rem 0;background:#fff}
/* v6: wind down, learn, mental health, heat & hydration, money, snacks */
.facts{padding-left:1.3rem}.facts li{margin:.45rem 0;line-height:1.45}.facts .src{font-size:.8rem;display:block;color:#555}
.further{border-top:1px dashed var(--line);padding-top:.6rem;color:#555}
.calmgrid,.snackgrid,.spendgrid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.5rem 0}
.calmgrid .btn,.snackgrid .btn,.spendgrid .btn{min-height:48px;white-space:normal;text-align:left;padding:.55rem .7rem}
.breath{text-align:center;padding:.8rem 0}.bcircle{width:150px;height:150px;margin:.4rem auto;border-radius:50%;background:radial-gradient(circle at 40% 35%,#cfe3f7,#5d8fc4);transition-property:transform;transition-timing-function:ease-in-out;transform:scale(.55)}
.bph{font-size:1.2rem}.guide{padding:.6rem;border:2px solid var(--line);border-radius:10px;margin:.5rem 0}.gstep{font-size:1.15rem;font-weight:700}
.okline{color:#1d6b42;font-weight:700}
.wroutine{padding-left:1.3rem}.wroutine li{margin:.35rem 0}.wt{display:inline-block;min-width:3.4rem;font-weight:700}
.wdm{font-size:10px}.lg-wd{background:none!important;border:0!important}
.helpfab{position:fixed;left:.6rem;bottom:.6rem;z-index:50;background:#b3261e;color:#fff;border:0;border-radius:999px;padding:.6rem 1rem;font-weight:800;min-height:44px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.helpdlg{max-width:30rem;width:calc(100% - 1.5rem);border:0;border-radius:12px;padding:1rem}.helpdlg::backdrop{background:rgba(0,0,0,.45)}
.hlines{list-style:none;padding:0}.hlines li{margin:.45rem 0}.btn.hl{display:block;background:#b3261e;border-color:#b3261e;color:#fff;text-align:left;min-height:48px}
.gentle{background:#eef6ff;border-left:5px solid #4a7fb5;padding:.7rem .9rem;border-radius:6px;margin:.7rem 0}
.scale{border:0;padding:0;margin:.5rem 0}.scale legend{font-weight:700}.scale .seg button{min-width:48px;min-height:44px}
.mline{fill:none;stroke:#1d6b42;stroke-width:2}.mlined{fill:#1d6b42}.sline{fill:none;stroke:#b3261e;stroke-width:2;stroke-dasharray:4 3}.slined{fill:#b3261e}.cline{fill:none;stroke:#4a3aa8;stroke-width:2}.clined{fill:#4a3aa8}
.lg-m{background:#1d6b42!important}.lg-s{background:#b3261e!important}.lg-c{background:#4a3aa8!important}
.nudge{background:#fff6e0;border:1px dashed #d9a640;border-radius:8px;padding:.6rem .8rem;margin:.7rem 0}
.ready{border-radius:10px;padding:.7rem .9rem;margin:.6rem 0;border-left:6px solid}.ready-ok{background:#e9f6ee;border-color:#1d6b42}.ready-amber{background:#fff4e0;border-color:#d98a00}.ready-red{background:#fde8e6;border-color:#b3261e}
.ctr{justify-content:space-between}.ctr span{flex:1}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin:.6rem 0}.sw{min-height:52px;border:2px solid #8a7a3a;border-radius:10px;font-weight:800;color:#3b3205}
.uchip{display:inline-block;border:1px solid #8a7a3a;border-radius:6px;padding:0 .3rem;margin:.1rem}
.symg{border:1px solid var(--line);border-radius:8px;margin:.5rem 0;padding:.4rem .7rem}.symg legend{font-weight:800}.sym-stroke{border-color:#b3261e;background:#fff5f4}
.heatwarn{margin-top:.4rem}
.mtot{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.7rem 0}.mtot div{background:#f7f3ea;border-radius:8px;padding:.5rem}.mtot span{display:block;font-size:.85rem}.mtot strong{font-size:1.2rem}
.proj{font-size:1.05rem}.whatcould{margin:.2rem 0}
.itemcard{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;margin:.6rem 0}.swapres{background:#e9f6ee;border-radius:6px;padding:.4rem .6rem}
.example{background:#f4f4f4;border-radius:8px;padding:.4rem .7rem}
.trend{display:flex;gap:.3rem;align-items:flex-end;height:60px;margin:.3rem 0}.trend .tb{display:flex;flex-direction:column;align-items:center;font-size:.75rem}.trend i{display:block;width:18px;background:#5d8fc4;border-radius:3px 3px 0 0}.trend em{font-style:normal}
.fgrid fieldset{border:0;padding:0}
@media (max-width:380px){.calmgrid,.snackgrid,.spendgrid{grid-template-columns:1fr}}
.up{color:#b3261e;font-weight:700}.down{color:#1d6b42;font-weight:700}.curbar{fill:#d98a00}
.irow{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.ictr{display:flex;align-items:center;gap:.35rem}.ictr .btn{min-width:44px;min-height:44px}.icount{min-width:1.6rem;text-align:center;font-size:1.15rem}
.ialt{display:flex;flex-wrap:wrap;gap:.4rem;align-items:flex-end;font-size:.85rem;margin:.3rem 0}.ialt select,.ialt input{font:inherit}
.trend-block .trhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem}.trend-block h3{margin:0}
.seg-sm button{min-height:36px;padding:.2rem .55rem;font-size:.85rem}
.spark{max-width:100%;height:auto}.trsum{margin:.3rem 0}
.trlist{list-style:none;padding:0;margin:.4rem 0 0;font-size:.88rem}.trlist li{padding:.25rem 0;border-top:1px solid var(--line)}.trd{font-weight:700;margin-right:.3rem}
.sh{fill:#f7f3ea}.sh-D{fill:#fbe6ae}.sh-N{fill:#c9d1e8}.sh-out{fill:#f3c7c5}.sh-home{fill:#c5e3d5}.sh-X{fill:#e6d3f5}.sh-lv,.sh-sk,.sh-sw{fill:#d9eef2}
.nav-hidden{display:none!important}
.tab-more{font:inherit;font-weight:700;border:0;background:transparent;color:inherit;padding:.5rem .7rem;cursor:pointer;white-space:nowrap}.tab-more.active{text-decoration:underline}
.more-menu{position:relative;margin:.4rem auto;max-width:40rem;z-index:5;display:grid!important;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.18);padding:.3rem}
.more-menu button{font:inherit;text-align:left;background:none;border:0;padding:.7rem .8rem;min-height:44px;color:var(--navy);border-radius:8px}.more-menu button:hover{background:#f3efe4}.more-edit{grid-column:1/-1;border-top:1px solid var(--line)!important}
.chk.big{display:block;padding:.55rem .3rem;font-size:1.02rem;border-bottom:1px solid var(--line)}
.picker-first{border:2px solid var(--navy)}
/* v8: All tabs index + Meds & First Aid */
.tabindex{grid-template-columns:repeat(3,1fr)!important;gap:.35rem}
.tabindex .ti-head{grid-column:1/-1;margin:.2rem .3rem}
.tabindex .ti{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:76px;text-align:center!important;border:1px solid var(--line)!important;background:#fff!important;position:relative;font-weight:700;font-size:.85rem;line-height:1.15}
.tabindex .ti.cur{border:2px solid var(--navy)!important}
.ti-ic{font-size:1.6rem}.ti-pin{position:absolute;top:3px;right:5px;font-size:.7rem}
.fa-disc{font-size:.92rem}
.doselist,.medlist,.kitlist{list-style:none;padding:0;margin:.5rem 0}
.dosebtn{display:flex;gap:.7rem;align-items:center;width:100%;text-align:left;font:inherit;background:#fff;border:2px solid var(--line);border-radius:12px;padding:.7rem;min-height:56px;margin:.3rem 0;color:inherit;cursor:pointer}
.dchk{flex:0 0 32px;height:32px;border-radius:50%;border:2px solid var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff}
.dose-taken .dosebtn{background:#eaf5ee;border-color:#8cc5a0}.dose-taken .dchk{background:#2f8a52;border-color:#2f8a52}
.dose-due .dosebtn{border-color:#d99a2b;background:#fff7e6}.dose-overdue .dosebtn{border-color:#c0392b;background:#fdecea}
.medrow{display:flex;justify-content:space-between;gap:.5rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--line)}
.bodymap{width:100%;max-width:340px;display:block;margin:.4rem auto;touch-action:manipulation}
.bm-body{fill:#efe7d6;stroke:#b9ab8f;stroke-width:.8}.bm-reg{fill:transparent;stroke:transparent;cursor:pointer}.bm-reg:hover{fill:rgba(31,58,95,.12)}.bm-reg.on{fill:rgba(31,58,95,.3);stroke:var(--navy)}
.bm-dot{fill:#c0392b;stroke:#fff;stroke-width:1;pointer-events:none}.bm-lab{font-size:9px;fill:#666}
.wcard{display:flex;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--line)}.wphoto{width:84px;height:84px;object-fit:cover;border-radius:8px;flex:0 0 84px}
.wnote input{min-width:0;flex:1}
.fa-signs ul,.smallcard ul{margin:.3rem 0 .5rem 1.1rem}
.kitlist li{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
.kchk{flex:1 1 60%;display:flex;gap:.5rem;align-items:center;min-height:44px}.kchk input{width:22px;height:22px}
.kexp{display:flex;align-items:center;gap:.3rem}.kexp input{max-width:9.5rem}
.kit-expired{background:#fdecea}.kit-soon{background:#fff7e6}
.badge{font-size:.75rem;font-weight:800;padding:.1rem .45rem;border-radius:999px}.badge.red{background:#c0392b;color:#fff}.badge.amber{background:#d99a2b;color:#fff}
.amber{color:#9a6400;font-weight:700}
.smallcard summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}.smallcard summary h3{margin:0}.smallcard summary::after{content:"▾";margin-left:auto}
.redflag{background:#fdecea;border-left:4px solid #c0392b;padding:.4rem .7rem;border-radius:6px;margin:.4rem 0}
.vet-real{background:#eef4fb;border-left:4px solid var(--navy);padding:.4rem .7rem;border-radius:6px}
.campgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:.6rem 0}
.camptile{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.2rem;min-height:76px;padding:.4rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);text-decoration:none;font-weight:700;font-size:.82rem;line-height:1.15}
.campcard summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}.campcard summary h3{margin:0}.campcard summary::after{content:"▾";margin-left:auto}
.campcard ul{margin:.4rem 0 .4rem 1.1rem}.campcard li{margin:.25rem 0}
/* v9: Body tab */
.bm-met{flex-wrap:wrap;margin:.6rem 0}.bm-met button{min-height:40px}
.bm-rep{fill:none!important;stroke:#d99a2b!important;stroke-width:2!important}
.ncard{display:flex;justify-content:space-between;gap:.5rem;padding:.6rem 0 .6rem .6rem;border-bottom:1px solid var(--line);border-left:4px solid #8cc5a0}
.ncard.sev3{border-left-color:#d99a2b}.ncard.sev4,.ncard.sev5{border-left-color:#c0392b}
.sevset{border:0;padding:0;margin:0}.sevset legend{font-weight:700;font-size:.92rem;margin-bottom:.3rem}
.sevopt{display:inline-flex;position:relative}.sevopt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.sevopt span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:2px solid var(--line);border-radius:10px;font-weight:800;margin-right:.3rem;background:#fff}
.sevopt input:checked+span{background:var(--navy);color:#fff;border-color:var(--navy)}.sevopt input:focus-visible+span{outline:3px solid #f0b429}

/* Oodle planner extras */
.fgrid .span2{grid-column:1/-1}
.tabs button.nav-hidden{display:none}
.trlist{list-style:none;padding:0;margin:.4rem 0}.trlist li{padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.trlist .trd{color:var(--muted);font-size:.82rem;margin-right:.4rem}
.trhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem}
.trhead h3{margin:0}.trsum{margin:.3rem 0}
.up{color:#b91c1c}.down{color:#047857}
.linkbtn{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:0;cursor:pointer;font:inherit;font-weight:800}
.planner .tag{display:inline-block;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:999px;background:var(--tint);color:var(--acc-ink)}
