/* Shared reading roles, Home and Calendar. Superseded component rules were
   removed from their original files. No saved-data or navigation changes. */
:root{--ui-meta:14px;--ui-body:16px;--ui-ink:#253b4c;--ui-secondary:#526575;--ui-blue:#a7cff2;--ui-surface:#fdfefe;--ui-line:#d8dfe4}
:root[data-theme="dark"]{--ui-ink:#e7edf3;--ui-secondary:#bdcad5;--ui-surface:#222a33;--ui-line:#3b4652}
body{font-size:var(--ui-body);line-height:1.45}
button,input,textarea,select{font-family:inherit}
button,summary{touch-action:manipulation}
button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--ui-ink);outline-offset:3px}
.sub,.note,.sheet p,.pfs-body p{line-height:1.55}
.sub,.note{max-width:52ch}
details.ui-details{margin-block:16px;color:var(--ui-ink)}
details.ui-details>summary{min-height:48px;display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;cursor:pointer;list-style:none;border-block:1px solid var(--ui-line);padding:12px 0}
details.ui-details>summary::after{content:'+';margin-left:auto;font-size:22px}
details.ui-details[open]>summary::after{content:'−'}
details.ui-details>summary::-webkit-details-marker{display:none}
details.ui-details[open]>summary{margin-bottom:16px}
details.ui-details>p{font-size:14px;line-height:1.6}

/* Home: one immediate action, with food and water always available. */
body.pm-premium #today .hero-top{flex-wrap:wrap;gap:12px}
body.pm-premium #today .datechip{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-height:52px;border:0;border-radius:14px;padding:8px 12px;background:var(--ui-surface);color:var(--ui-ink);font:inherit;cursor:pointer}
body.pm-premium #today .datechip>span{font-size:14px;color:var(--ui-secondary)}
body.pm-premium #today .datechip b{font-size:14px;font-weight:600}
body.pm-premium #today .datechip b span{margin-left:8px;font-size:18px}
body.pm-premium #today .hero-stage{display:flex;flex-direction:column;gap:24px;margin-top:24px}
body.pm-premium #today .stage-r{width:100%;min-width:0}
body.pm-premium #today .herocard{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:360px;padding:8px 0 0;border:0;background:none;box-shadow:none;color:var(--ui-ink);isolation:isolate;overflow:visible}
body.pm-premium #today .hc-k{font-size:16px;line-height:1.4;color:var(--ui-secondary);font-weight:500;max-width:65%}
body.pm-premium #today .hero .hc-t{font:600 clamp(30px,7.8vw,42px)/1.12 var(--sans);letter-spacing:-.045em;max-width:61%;margin-top:8px;overflow-wrap:anywhere}
body.pm-premium #today .hc-sub{font-size:16px;line-height:1.5;color:var(--ui-secondary);max-width:61%;margin-top:14px;min-height:48px}
body.pm-premium #today #homeBody{position:absolute;right:0;top:0;width:35%;height:244px;display:flex;align-items:center;justify-content:center;z-index:-1;overflow:hidden;opacity:1}
/* Match the 1:2 image canvas so percentage muscle targets follow the visible
   anatomy even when a narrow phone cannot fit the full 122px-wide figure. */
body.pm-premium #today #homeBody .body-r{position:relative;height:auto;width:100%;max-width:122px;aspect-ratio:1/2;flex:none;margin:auto}
body.pm-premium #today #homeBody .body-r img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
body.pm-premium #today #homeBody svg{height:100%;width:100%}
body.pm-premium #today .herocard>.home-primary,body.pm-premium #today .herocard>#startSessBtn{width:100%;min-height:56px;margin:22px 0 0;padding:14px 18px;border:0;border-radius:18px;background:var(--ui-blue);color:#253b4c;box-shadow:none;font:600 18px/1.35 var(--sans);text-align:center;cursor:pointer}
body.pm-premium #today .herocard>#startSessBtn::before{content:none}
body.pm-premium #today .home-secondary{min-height:48px;padding:12px 4px;border:0;background:transparent;color:var(--ui-secondary);font:600 16px/1.45 var(--sans);text-decoration:underline;text-underline-offset:5px;cursor:pointer}
body.pm-premium #today .es-plan{max-width:61%;display:grid;gap:8px;margin:20px 0 0;padding:0;pointer-events:none}
body.pm-premium #today .es-pl{display:grid;gap:6px}
body.pm-premium #today .es-pl b{font-size:16px;color:var(--ui-ink);line-height:1.4}
body.pm-premium #today .es-pl span,body.pm-premium #today .es-more{font-size:14px;line-height:1.45;color:var(--ui-secondary)}
body.pm-premium #today .es-row{width:100%;display:flex;margin-top:10px}
body.pm-premium #today .sv-chip{width:100%;min-height:48px;justify-content:center;white-space:normal;line-height:1.4;font-size:14px;padding:12px 16px;border-radius:16px;background:var(--ui-surface);color:var(--ui-ink);box-shadow:none}
body.pm-premium #today .sv-chip svg{color:var(--ui-ink)}
body.pm-premium #today .hq{width:100%;display:flex;flex-direction:column;gap:0}
body.pm-premium #today .hq-k{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'title action' 'amount action' 'track track';gap:7px 16px;min-height:112px;padding:18px 0;text-align:left;border:0;border-top:1px solid var(--ui-line);background:none;color:var(--ui-ink);font:inherit;box-shadow:none;border-radius:0;cursor:pointer}
body.pm-premium #today .hq-l{grid-area:title;font-size:14px;line-height:1.45;color:var(--ui-secondary)}
body.pm-premium #today .hq-k>small{grid-area:amount;font-size:14px;line-height:1.5;white-space:normal;color:var(--ui-secondary)}
body.pm-premium #today .hq-k>small b{font-size:24px;font-weight:600;letter-spacing:-.04em;color:var(--ui-ink);font-variant-numeric:tabular-nums}
body.pm-premium #today .hq-t{grid-area:action;display:flex;align-items:center;gap:8px;max-width:145px;min-height:48px;background:var(--ui-blue);color:#253b4c;padding:10px 14px;border-radius:16px}
body.pm-premium #today .hq-t b{font-size:16px;line-height:1.35;font-weight:600;white-space:normal}
body.pm-premium #today .hq-t svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
body.pm-premium #today .hq-rail{grid-area:track;display:block;height:5px;margin-top:3px;overflow:hidden;border-radius:4px;background:var(--ui-line)}
body.pm-premium #today .hq-rail>i{display:block;height:100%;border-radius:4px;background:var(--ui-blue)}
body.pm-premium #today .home-tools{display:grid;gap:4px;border-block:1px solid var(--ui-line)}
body.pm-premium #today .home-tools button{display:flex;gap:16px;align-items:center;justify-content:space-between;width:100%;min-height:60px;background:none;border:0;color:var(--ui-ink);font:inherit;text-align:left;padding:14px 0;cursor:pointer}
body.pm-premium #today .home-tools b{font-size:16px;font-weight:600;line-height:1.4}
body.pm-premium #today .home-tools span{font-size:24px;color:var(--ui-secondary)}
body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .herocard{min-height:0;padding-right:0}
body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) #homeBody{display:none}
body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) :is(.hc-t,.hc-k,.hc-sub){max-width:100%}
body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .hc-sub{min-height:0}
body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .home-secondary{font-size:14px}
/* Detailed workout results and upcoming plans are on Workout, reached above. */
body.pm-premium #today :is(#homeCoach,#homeNextSec,#homeMetric,#adamInsight,#homeDone){display:none}
body.pm-premium #today #homeStats.hide,body.pm-premium #today .hq.hide{display:none}
@media(max-width:360px){body.pm-premium #today .hero-top .wm{margin-right:0}body.pm-premium #today .hero-top{gap:6px}body.pm-premium #today .datechip{padding:6px 8px}body.pm-premium #today .hq-t{max-width:130px;padding:10px}body.pm-premium #today .hq-k{gap:6px 10px}body.pm-premium #today .hq-k>small b{font-size:22px}}
@media(min-width:900px){body.pm-premium #today .hero-stage{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr);gap:28px 40px;align-items:start}body.pm-premium #today .stage-r{grid-row:1/3}body.pm-premium #today .hq{grid-column:2}body.pm-premium #today .home-tools{grid-column:2}body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .stage-r{grid-column:1/-1;grid-row:auto}body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .hq{grid-column:1}body.pm-premium #today .hc-t{font-size:38px}}

/* Calendar: one readable month and a selected-day summary. */
#monthCal{color:var(--ui-ink)}
#monthCal .mc-shortcuts{display:flex;justify-content:space-between;gap:12px;margin:20px 0 10px}
#monthCal .mc-shortcuts button{min-height:44px;padding:10px 14px;border:1px solid var(--ui-line);border-radius:12px;background:var(--ui-surface);color:var(--ui-ink);font:600 14px/1.4 var(--sans);cursor:pointer}
#monthCal .mc-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 16px}
#monthCal .mc-nav b{font-size:22px;line-height:1.3;letter-spacing:-.03em}
#monthCal .mc-arrow{width:44px;height:44px;flex:none;background:var(--ui-surface);color:var(--ui-ink);border:0;border-radius:50%;font-size:28px;cursor:pointer}
#monthCal :is(.mc-grid,.mc-dow){display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;text-align:center}
#monthCal .mc-dow{font-size:14px;color:var(--ui-secondary);margin-bottom:6px}
#monthCal .mc-d{min-height:48px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;color:var(--ui-ink);border:0;border-radius:14px;padding:7px 0;font:600 16px/1.2 var(--sans);cursor:pointer}
#monthCal .mc-d.today b{text-decoration:underline;text-underline-offset:4px}
#monthCal .mc-d.sel{background:var(--ui-blue);color:#253b4c}
#monthCal .mc-d.blank{visibility:hidden}
#monthCal .mc-dot{width:5px;height:5px;background:currentColor;border-radius:50%;position:absolute;bottom:5px}
#monthCal .mc-key{font-size:14px;color:var(--ui-secondary);display:flex;gap:8px;align-items:center;margin:16px 0 24px}
#monthCal .mc-key i{width:5px;height:5px;border-radius:50%;background:currentColor}
#monthCal .mc-day{border-bottom:1px solid var(--ui-line);padding:20px 0 24px;scroll-margin-top:20px}
#monthCal .mc-date{font-size:14px;color:var(--ui-secondary);margin-bottom:8px}
#monthCal .mc-day h2{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.04em}
#monthCal .mc-sub,#monthCal .mc-empty{font-size:16px;line-height:1.5;margin:12px 0;color:var(--ui-secondary)}
#monthCal .mc-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;margin-top:16px}
#monthCal .mc-summary strong{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}
#monthCal .mc-summary span{font-size:16px;color:var(--ui-secondary)}
#monthCal .mc-totals{display:grid;margin:18px 0 0}
#monthCal .mc-totals>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;font-size:16px;border-bottom:1px solid var(--ui-line)}
#monthCal .mc-totals span{color:var(--ui-secondary)}
#monthCal .mc-details{margin:18px 0}
#monthCal .mc-details summary{min-height:48px;padding:12px 0;font-size:16px;font-weight:600;cursor:pointer}
#monthCal .mc-details section{margin:20px 0}
#monthCal .mc-details h3{font-size:18px;font-weight:600;margin-bottom:8px}
#monthCal .mc-details ul{list-style:none}
#monthCal .mc-details li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 0;font-size:14px}
#monthCal .mc-details li span{color:var(--ui-secondary)}
#monthCal .mc-action{width:100%;min-height:52px;border:0;border-radius:16px;background:var(--ui-blue);color:#253b4c;font:600 16px/1.4 var(--sans);padding:12px 20px;margin:24px 0 0;cursor:pointer}
@media(min-width:900px){#monthCal{max-width:760px;margin:auto}#monthCal .mc-d{min-height:64px}}

#foodSheet .fs-field-label{display:block;margin:12px 0 8px;font-size:16px;font-weight:600;color:var(--ui-ink)}
#foodSheet input{font-size:16px}
#foodSheet .mgrid label{font-size:14px}
#foodSheet .fstot{line-height:1.7;font-size:16px}
#foodSheet .fssrc{font-size:14px;line-height:1.6}

/* Reserve room for a plate chip and its readable caption before the first plate is added. */
body.pm-premium #wfSheet .barsel .bs-on{min-height:64px}

/* Keep the age confirmation in view on short phones without shrinking its control. */
@media(max-height:600px){body.pm-premium #onb .onb-step:has(#onbAge) .onb-q{font-size:32px;line-height:1.12}}

/* Rest days put daily care first at every width, including desktop. */
@media(min-width:900px){
  body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .hq{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
  body.pm-premium #today:is([data-home-state='rest'],[data-home-state='done']) .home-tools{grid-column:1/-1;grid-row:3}
}
/* Honor reduced motion even where older desktop sheets used !important. */
@media(prefers-reduced-motion:reduce){
  body.pm-premium .sheet,.pfs-card{animation:none!important}
}
