/* V32.0.1 — layout and touch fixes. Loaded after ui-controls.css, so these rules settle the cascade.
   Colours come only from the palette tokens; nothing here introduces a new colour except --set-saved below. */

/* ── #1 Bottom navigation: the band behind the buttons is full width; the buttons stay centred (520 px). ── */
.bottom-nav{isolation:isolate}
.bottom-nav::before{content:"";position:absolute;z-index:-1;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);
  background:var(--surface-lowest);border-top:1px solid var(--border-subtle);pointer-events:auto}
@media(min-width:1024px){
  .pk-bar{left:50%;right:auto;width:min(100vw,760px);transform:translateX(-50%);border-radius:var(--r-md) var(--r-md) 0 0;border:1px solid var(--border);border-bottom:0}
  .pk-bar::before{content:"";position:absolute;z-index:-1;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);background:var(--bg);border-top:1px solid var(--border)}
}

/* ── #5 No touch highlight anywhere; the picker rows show selection by the check and count only. ── */
*{-webkit-tap-highlight-color:transparent}
body .pk-row{cursor:default}
body .pk-row:active,body.dark .pk-row:not(.on):active{filter:none;background:var(--surface)}
body .pk-row button.pk-select,
body .pk-row button.pk-select:not(:disabled):hover,
body .pk-row button.pk-select:not(:disabled):active,
body .pk-row button.pk-select:not(:disabled):focus{filter:none;background:transparent;box-shadow:none;border-color:transparent;outline:none}
body .pk-row button.pk-select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.pk-row,.pk-select,.pk-select *{user-select:none;-webkit-user-select:none}

/* ── V32.0.2 (owner #1, #2a) Drawer: drag the strip (it follows the finger), scroll to the end, or tap the notch. The
   strip is drag-only (touch-action:none); the open action list scrolls on its own; one ease for every snap. ── */
#trDrawerTray{overscroll-behavior:contain}
#trDrawerTray.tr-anim{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){#trDrawerTray.tr-anim{transition-duration:.01s}}
#trDrawerTray #trDrawerHandle{touch-action:none;cursor:default;user-select:none;-webkit-user-select:none;gap:2px;padding:4px 16px 9px;min-height:54px}
#trDrawerTray #trDrawerHandle:active{filter:none}
#trDrawerTray #trDrawerQuick{touch-action:pan-y;overscroll-behavior:contain}
body #trDrawerNotch{display:grid;place-items:center;width:72px;height:28px;min-height:28px;padding:0;margin:0 auto;border:0;background:transparent;
 border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none}
body #trDrawerNotch::before{content:"";position:absolute;top:-6px;bottom:-14px;left:-8px;right:-8px}  /* a 48 px tall tap target */
body #trDrawerNotch{position:relative}
body #trDrawerNotch .tr-dh-grip{width:42px;height:5px;border-radius:999px;background:var(--muted);opacity:.6}
body #trDrawerNotch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body #trDrawerNotch:active .tr-dh-grip{opacity:.9}

/* ── #2 / #8 Log a Session: section heads, card heads, full-width cards on phones. ── */
body #page-entry .log-blade{padding:14px}
body #page-entry .log-blade > .section-head{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;
  justify-content:space-between;gap:10px;padding:0 0 0 2px;margin-bottom:10px}
body #page-entry .log-blade > .section-head .section-title{margin:0}
body #page-entry .log-blade > .section-head .section-utility{display:flex;flex-direction:row;align-items:center;gap:8px;flex:0 0 auto;margin:0}
body #page-entry .log-blade > .section-head :is(.blade-x,.sec-collapse){position:static;margin:0;transform:none;
  width:44px;height:44px;min-width:44px;min-height:44px}

/* Card head: drag, number, title, then collapse and close together on the top row; ⓘ, order and Saved underneath. */
body #page-entry .exercise-card-head{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;
  grid-template-areas:"drag num title col x" "sub sub sub sub sub";align-items:center;column-gap:8px;row-gap:8px;
  padding-right:0;margin-bottom:12px}
body #page-entry .exercise-card-head > .drag-handle{grid-area:drag}
body #page-entry .exercise-card-head > .exercise-number{grid-area:num}
body #page-entry .exercise-card-head > .ex-head-title{grid-area:title;min-width:0}
body #page-entry .exercise-card-head > .ehead-tools{display:contents}
body #page-entry .exercise-card-head .ehead-sub{grid-area:sub;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
body #page-entry .exercise-card-head .ehead-sub .card-order{display:flex;flex-wrap:nowrap;gap:6px}
body #page-entry .exercise-card-head .ehead-sub .saved-badge{margin-left:auto}
body #page-entry .exercise-card-head :is(.ex-collapse,.card-x){position:static;margin:0;transform:none;
  width:44px;height:44px;min-width:44px;min-height:44px}
body #page-entry .exercise-card-head .ex-collapse{grid-area:col}
body #page-entry .exercise-card-head .card-x{grid-area:x}
body #page-entry .exercise-card-title{overflow-wrap:anywhere}
@media(min-width:720px){
  body #page-entry .exercise-card-head{grid-template-columns:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"drag num title sub col x"}
  body #page-entry .exercise-card-head .ehead-sub{flex-wrap:nowrap}
}

/* Phones: each card uses the full content width, like the Start a Session cards. */
@media(max-width:719px){
  body #page-entry .log-blade{padding:0;border:0;background:transparent;box-shadow:none}
  body #page-entry .log-blade > .section-head{padding:0 2px}
  body #page-entry .workout-builder{gap:12px}
  body #page-entry .exercise-card{margin-inline:0;width:100%;box-sizing:border-box;padding:12px 12px 14px}
  body #page-entry .exercise-card-head > .drag-handle{min-width:32px;width:32px}
  body #page-entry .set-table td{padding:0 3px}
  body #page-entry .set-table th{padding:0 4px 2px}
  body #page-entry .set-table input{min-height:56px;font-size:18px}
  body #page-entry .set-table select{min-height:56px}
  body #page-entry .exercise-actions .small-btn{min-height:52px}
}

/* ── #8 Per-set saved mark: the set number takes the theme's "saved" colour and a check.
   Classic uses green; the others follow their own palette (Slate: lighter grey on dark, deeper slate on light;
   Glow: a deeper cyan; Vibrant: the chosen accent). ── */
body{--set-saved:var(--accent)}
body.dark{--set-saved:#e8edf3}
body.pal-classic,body.dark.pal-classic{--set-saved:var(--green)}
body.pal-glow{--set-saved:#00566a}
body.dark.pal-glow{--set-saved:#00b4d0}
body.pal-vibrant,body.dark.pal-vibrant{--set-saved:var(--accent)}
.set-table .set-num[data-save]{color:var(--set-saved);font-weight:900;line-height:1.05}
.set-table .set-num[data-save]::after{content:"✓";display:block;font-size:11px;font-weight:900;margin-top:2px}
.set-table .set-num[data-save="device"]{opacity:.7}
.set-table .set-num[data-save="device"]::after{content:"•"}

/* The Log page's second column only hosted the help card, which now lives on the Help page. When it is empty the
   workout sections take the full width instead of leaving a blank column on the left. */
@media(min-width:1024px){
  body #page-entry > .grid-2:has(> div:last-child:not(:has(*))){grid-template-columns:minmax(0,1fr)}
  body #page-entry > .grid-2:has(> div:last-child:not(:has(*))) > div:first-child{grid-column:1}
  body #page-entry > .grid-2 > div:last-child:not(:has(*)){display:none}
}

/* #4 Equipment sits with the exercise it names: full width on phones, beside the Exercise field on wider screens. */
body #page-entry .exercise-meta .ex-equip-field{grid-column:1/-1}
@media(min-width:720px){
  body #page-entry .exercise-meta .ex-pick-field{grid-column:1}
  body #page-entry .exercise-meta .ex-equip-field{grid-column:2}
}

/* ── #9 One filter bar (dropdown fields) and the bottom sheet it opens. Tokens only; every palette keeps its colours. ── */
.filter-host{margin:4px 0 10px;min-width:0}
.filter-host .visual-filter-actions{margin:6px 0 10px}
.filter-bar{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:2px 1px 8px;scrollbar-width:none;overscroll-behavior-x:contain;min-width:0}
.filter-bar::-webkit-scrollbar{display:none}
body .fb-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:12px;
  border:1px solid var(--border);background:var(--surface2);color:var(--text);font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer}
body .fb-btn .fb-chev{width:16px;height:16px;opacity:.75}
body .fb-btn.on{border-color:var(--accent);background:var(--accent-container);color:var(--on-accent-container)}
body .fb-all .ic:first-child{width:18px;height:18px}
.fb-n{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.fb-n[hidden]{display:none}
@media(hover:hover) and (pointer:fine){ .filter-bar{scrollbar-width:thin} }

.wo-sheet-root{position:fixed;inset:0;z-index:1800}
.wo-sheet-root[hidden]{display:none}
.wo-sheet-backdrop{position:absolute;inset:0;background:var(--scrim,rgba(0,0,0,.5));opacity:0;transition:opacity .2s ease;touch-action:none}
.wo-sheet-root.open .wo-sheet-backdrop{opacity:1}
.wo-sheet{position:absolute;left:0;right:0;bottom:0;margin:0 auto;max-width:720px;max-height:88vh;max-height:88dvh;display:flex;flex-direction:column;
  background:var(--surface);color:var(--text);border-radius:22px 22px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.35);
  transform:translateY(100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom,0px)}
.wo-sheet-root.open .wo-sheet{transform:translateY(0)}
.wo-sheet-grab{touch-action:none;padding:8px 16px 2px;cursor:grab;flex:0 0 auto}
.wo-sheet-grip{display:block;width:44px;height:5px;border-radius:999px;background:var(--muted);opacity:.5;margin:0 auto 6px}
.wo-sheet-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px}
.wo-sheet-head h3{margin:0;font-size:18px;font-weight:800;text-align:center;padding:0 52px}
body .wo-sheet-x{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.wo-sheet-body{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:8px 16px 14px}
.wo-sheet-foot{flex:0 0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:10px;padding:12px 16px;border-top:1px solid var(--border)}
.wo-sheet-foot[hidden]{display:none}
body .wo-sheet-foot .btn-ghost{min-height:52px;justify-content:center;font-size:15px}
.fs-sec + .fs-sec{border-top:1px solid var(--border-subtle);margin-top:16px;padding-top:14px}
.fs-sec-h{margin:0 0 10px;font-size:15px;font-weight:800}
.fs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.fs-grid-img{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
body .fs-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:12px;min-height:96px;padding:14px;
  border-radius:16px;border:1px solid var(--border);background:var(--surface2);color:var(--text);text-align:left;font-weight:700;cursor:pointer}
body .fs-grid-img .fs-tile{flex-direction:row;align-items:center;justify-content:flex-start;min-height:76px;padding:10px 12px}
.fs-tile-pic{display:grid;place-items:center}
.fs-tile-pic .ic{width:28px;height:28px}
.fs-grid-img .fs-tile-pic{flex:0 0 auto;width:54px;height:54px;border-radius:50%;overflow:hidden;background:var(--surface)}
.fs-grid-img .fs-tile-img{width:100%;height:100%;object-fit:cover;margin:0}
.fs-tile-ph .ic{width:26px;height:26px;opacity:.8}
.fs-tile-lbl{font-size:15px;line-height:1.25;overflow-wrap:break-word;word-break:normal;hyphens:auto;min-width:0;padding-right:14px}
.fs-tick{position:absolute;top:8px;right:10px;font-weight:900;color:var(--accent)}
body .fs-tile.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-container);color:var(--on-accent-container)}
body .fs-tile.on .fs-tick{color:inherit}
body .fs-tile:disabled{opacity:.4;cursor:default}
.fs-bars{color:currentColor}
.fs-empty{margin:4px 0}
@media(max-width:430px){ .fs-grid-img{grid-template-columns:repeat(2,minmax(0,1fr))} .fs-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
.wo-sheet:focus{outline:none}

/* ── #3 Scheduler: When (start / end date and time), Repeat row, reminder and alarm lists, radio sheets, Custom page ── */
.pn-when-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.pn-when-grid .form-group{margin:0}
.pn-when-grid input{width:100%;min-height:52px}
.rm-bad{color:var(--red);font-weight:700}
body .pn-repeat-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin-top:12px;padding:10px 14px;border-radius:14px;
  border:1px solid var(--border);background:var(--surface2);color:var(--text);font-weight:700;font-size:15px;text-align:left;cursor:pointer}
.pn-repeat-row .pn-repeat-text{flex:1 1 auto;min-width:0}
.pn-repeat-row .ic{width:20px;height:20px;flex:0 0 20px}
.rm-sec{margin-top:6px}
.rm-sec + .rm-sec{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:10px}
.rm-sec-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:2px 0 6px}
.rm-item{display:flex;align-items:center;gap:8px;min-height:52px}
body .rm-item-main{flex:1 1 auto;display:flex;align-items:center;gap:12px;min-height:48px;min-width:0;padding:0;background:none;border:0;color:var(--text);
  font-size:15px;font-weight:600;text-align:left;cursor:pointer}
.rm-item-ic{flex:0 0 24px;width:24px;display:grid;place-items:center;color:var(--muted)}
.rm-item-ic .ic{width:20px;height:20px}
.rm-item-txt{min-width:0;overflow-wrap:anywhere}
body .rm-add-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 0 0 36px;background:none;border:0;color:var(--accent);font-size:15px;font-weight:700;cursor:pointer}
body .rm-add-row:disabled{color:var(--muted);opacity:.6;cursor:default}
.rm-add-row .ic{width:18px;height:18px}
.rm-radio-list{display:flex;flex-direction:column}
body .rm-radio{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px;padding:0 6px;background:none;border:0;border-bottom:1px solid var(--border-subtle);
  color:var(--text);font-size:17px;font-weight:600;text-align:left;cursor:pointer}
.rm-radio:last-child{border-bottom:0}
#woSheet .rm-radio > span:not(.rm-radio-dot){flex:1 1 auto}
.rm-radio-dot{flex:0 0 24px;width:24px;height:24px;border-radius:50%;border:2px solid var(--muted);display:inline-block;position:relative}
.rm-radio.on .rm-radio-dot{border-color:var(--accent)}
.rm-radio.on .rm-radio-dot::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--accent)}
.rm-custom input{width:100%;min-height:52px}
.wo-sheet.full{max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0}
.wo-sheet.full .wo-sheet-head{justify-content:flex-start;gap:8px}
.wo-sheet.full .wo-sheet-head h3{padding:0;flex:1 1 auto;text-align:left}
body .wo-sheet-done{min-height:44px}
.rec-sec{padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.rec-sec:last-child{border-bottom:0}
.rec-sec h4{margin:0 0 10px;font-size:15px;font-weight:800}
.rec-every{display:flex;gap:10px;align-items:center}
.rec-every input{width:90px;min-height:52px;text-align:center;font-size:18px}
.rec-every select{min-height:52px;min-width:130px}
.rec-days{display:flex;gap:8px;flex-wrap:wrap}
body .rec-day{width:46px;height:46px;min-width:46px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface2);color:var(--text);font-weight:800;font-size:16px;cursor:pointer}
body .rec-day.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.rec-ends{display:flex;flex-direction:column;gap:6px}
.rec-end{display:flex;align-items:center;gap:12px;min-height:56px;font-size:16px;font-weight:600;flex-wrap:wrap}
.rec-end input[type=radio]{width:22px;height:22px;accent-color:var(--accent);flex:0 0 22px}
.rec-end input[type=date]{min-height:48px;flex:0 1 190px}
.rec-end input[type=number]{width:84px;min-height:48px;text-align:center}
.rec-end-hint{font-size:12px;color:var(--muted);font-weight:600}

/* ── UI-2 Session summary (layout/Summery.page), in the palette tokens ── */
body .summary-hero2{position:relative;overflow:hidden;padding:18px}
body .summary-hero2::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:var(--accent);opacity:.08;pointer-events:none}
.sh-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;position:relative;z-index:1}
.sh-main{min-width:0}
.summary-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.35);
  background:var(--surface2);color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.summary-badge .ic{width:14px;height:14px}
.sh-title{margin:8px 0 4px;font-size:26px;line-height:1.15;font-weight:900;letter-spacing:-.01em}
.sh-when{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:600}
.sh-when .ic{width:15px;height:15px}
.sh-kcal{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 12px;border-radius:14px;border:1px solid rgba(var(--accent-rgb),.35);
  background:var(--surface2);color:var(--accent);font-weight:800}
.sh-kcal b{font-size:22px;line-height:1}
.sh-kcal span{font-size:11px;color:var(--muted)}
.sh-kcal .ic{width:16px;height:16px}
.sh-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;position:relative;z-index:1}
.summary-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.35);
  background:rgba(var(--accent-rgb),.10);color:var(--text);font-size:12.5px;font-weight:700}
.summary-chip .ic{width:15px;height:15px;color:var(--accent)}
.summary-chip.down .ic{color:var(--muted)}
.summary-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle);position:relative;z-index:1}
.summary-tile{min-width:0;padding:10px 8px;border-radius:12px;background:var(--surface2);text-align:center}
.summary-tile.hl{border:1px solid rgba(var(--accent-rgb),.35)}
.st-lbl{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.summary-tile.hl .st-lbl,.summary-tile.hl .st-val{color:var(--accent)}
.st-val{font-size:18px;font-weight:900;margin-top:2px;overflow-wrap:anywhere}
.st-sub{font-size:11px;color:var(--muted)}
.summary-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.summary-card-head .card-title{display:flex;align-items:center;gap:8px;margin:0}
.summary-card-head .card-title .ic{width:18px;height:18px;color:var(--accent)}
body .summary-muscles,body .summary-xlist,body .summary-mini{margin:14px 0 0}
.summary-mgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:14px;align-items:center}
.summary-body{width:100%;height:auto;max-height:240px}
.summary-body .sb-base,.summary-body .sb-off{fill:var(--surface-highest);stroke:var(--border);stroke-width:.6}
.summary-body .sb-on{fill:var(--accent);stroke:var(--accent);stroke-width:.6}
.summary-body text{font-size:9px;fill:var(--muted);font-weight:700}
.summary-mrow{margin:0 0 12px}
.sm-top{display:flex;align-items:center;gap:8px;font-size:14px}
.sm-top b{flex:1 1 auto;min-width:0}
.sm-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 8px}
.sm-pct{font-weight:900;color:var(--accent);font-size:13px}
.sm-sub{font-size:11.5px;color:var(--muted);margin-top:4px}
.summary-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body .summary-mini{display:flex;flex-direction:column;min-width:0;padding:14px}
.summary-ring{width:100%;max-width:150px;margin:6px auto}
.sr-track{fill:none;stroke:var(--surface-highest);stroke-width:10}
.sr-fill{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round}
.sr-big{font-size:22px;font-weight:900;fill:var(--text);text-anchor:middle;dominant-baseline:middle}
.sr-of{font-size:12px;fill:var(--muted)}
.sr-lbl{font-size:7.5px;font-weight:800;fill:var(--muted);text-anchor:middle;letter-spacing:.06em}
.sm-foot{display:flex;justify-content:space-between;border-top:1px solid var(--border-subtle);padding-top:8px;margin-top:auto;font-size:13px;color:var(--muted)}
.sm-foot b{color:var(--accent)}
.summary-trend{width:100%;height:auto;margin:6px 0}
.st-area{fill:var(--accent);opacity:.12}
.st-line{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linejoin:round}
.st-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}
.st-dot.now{fill:var(--accent)}
.sm-trend-x{display:flex;justify-content:space-between;gap:4px;font-size:10.5px;color:var(--muted)}
.sm-trend-x span{display:flex;flex-direction:column;align-items:center;min-width:0}
.sm-trend-x span.now{color:var(--accent);font-weight:800}
.sm-trend-x b{color:var(--text);font-size:11px}
.sm-first{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.sm-first b{font-size:24px;color:var(--accent)}
.sm-first span{font-size:12px;color:var(--muted)}
.summary-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap}
.summary-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.sl-bar{background:var(--accent-container)}
.sl-line{height:3px!important;background:var(--accent);margin-left:6px}
body .summary-chart svg{display:block;width:100%;max-height:230px;margin:8px 0}
.summary-chart .sv-bar{fill:var(--accent-container)}
.summary-chart .sv-best{fill:var(--accent)}
.summary-chart .sv-line{fill:none;stroke:var(--accent);stroke-width:3;vector-effect:non-scaling-stroke}
.summary-chart .sv-n{font-size:11px;fill:var(--muted);font-weight:700}
.summary-xrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border-subtle)}
.summary-xrow:first-of-type{border-top:0}
.sx-ic{flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:var(--surface2);display:grid;place-items:center;overflow:hidden}
.sx-ic .wo-ic{width:40px;height:40px;object-fit:cover;margin:0}
.sx-ic .ic{width:20px;height:20px;color:var(--accent)}
.sx-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.sx-main b{font-size:14.5px;overflow-wrap:anywhere}
.sx-main span{font-size:12px;color:var(--muted)}
.summary-pr{display:inline-block;padding:1px 6px;border-radius:6px;background:rgba(var(--accent-rgb),.15);color:var(--accent);font-size:10px;font-weight:900;vertical-align:middle}
.summary-spark{flex:0 0 64px;width:64px;height:22px}
.summary-spark polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.summary-spark circle{fill:var(--accent)}
.sx-vol{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end}
.sx-vol b{color:var(--accent);font-size:15px}
.sx-vol span{font-size:10.5px;color:var(--muted)}
@media(max-width:420px){ .summary-mgrid{grid-template-columns:minmax(0,1fr)} .summary-body{max-height:200px} .sh-title{font-size:23px} .summary-spark{display:none} }
@media(min-width:900px){ .summary-pair{grid-template-columns:repeat(2,minmax(0,1fr))} }
.summary-body .sb-sil{fill:var(--surface2);stroke:var(--border-subtle);stroke-width:.6}

/* V32.0.2 (owner #7, icon.not.centered.jpg) — every icon-only button centres its icon at every size. The header buttons
   were flex without justify-content, so with the label hidden on phones the icon sat 3–7 px left of centre; the page
   back buttons were a text "←" whose position followed the font. The palette button keeps its icon-over-name column. */
body nav:not(.bottom-nav) .theme-btn{justify-content:center}
body nav:not(.bottom-nav) .theme-btn > .ic, body nav:not(.bottom-nav) .theme-btn > svg{display:block;flex:0 0 auto}
body .pk-back:not([hidden]){display:inline-grid;place-items:center;padding:0;line-height:1}
body .pk-back .ic{display:block;width:22px;height:22px;vertical-align:0}
/* .icon-btn / .icon-mini / .card-x / .blade-x are already inline-flex and centred (index.html :808, :2082). */

/* V32.0.2 (owner #3a) — both session summaries open with "← Back to workout" top-left, at every screen size. */
body .summary-back{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;align-self:flex-start}
body .summary-back .ic{width:18px;height:18px}
body .session-summary .section-head,body #trDone .section-head{justify-content:flex-start}
body .tr-done-title{margin:2px 0 4px}
body .req{font-weight:600;font-size:11px;color:var(--muted);text-transform:none;letter-spacing:0;margin-left:4px}
body .tr-session-meta{margin:6px 0 12px}

/* V32.0.2 (owner #5) — a workout's details pop-up: ✎ Rename beside the name; Delete and Edit in its actions. */
body .sd-title{display:flex;align-items:center;gap:8px}
body .sd-title > span{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
body .btn-ghost.danger{color:var(--red);border-color:var(--red)}
/* V32.0.2 (owner Q14) — secondary muscles: the same accent, lighter; a legend says which is which. */
.summary-body .sb-sec{fill:var(--accent);fill-opacity:.22;stroke:var(--accent);stroke-opacity:.5;stroke-width:.6}
.summary-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-top:6px}
.summary-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--accent);margin-right:5px;vertical-align:-1px}
.summary-legend i.sec{opacity:.3}
body .ex-mgr-sec{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}

/* V32.0.2 (NEXT_BUILD_PLAN §3, owner's equipment screenshot) — picture tiles show the whole photo: a larger square slot,
   object-fit:contain, so transparent product photos and muscle renders are never cropped to a circle. */
.fs-grid-img .fs-tile-pic{width:72px;height:72px;border-radius:12px;background:transparent}
.fs-grid-img .fs-tile-img{object-fit:contain}
.fs-tile-pic .fs-tile-img{max-width:72px;max-height:72px}

/* V32.0.2 — screenshots in Send feedback. */
.fb-shot-row{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.fb-shot{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--surface2)}
.fb-shot img{width:100%;height:100%;object-fit:cover;display:block}
.fb-shot.busy img{opacity:.45}
.fb-shot .icon-mini{position:absolute;top:2px;right:2px;width:26px;height:26px;min-height:26px;padding:0}

/* V32.0.3 (owner #1) — the filter sheet: ✕ is the theme's close button (red in Classic, like every card ✕); the foot's
   two buttons are one height and keep no focus ring after a tap (keyboard focus still shows). */
body .wo-sheet .wo-sheet-x{background:var(--close-bg);color:var(--close-fg);border:0;width:44px;height:44px;min-width:44px;min-height:44px;
 display:inline-grid;place-items:center;font-size:18px;line-height:1;border-radius:12px}
body .wo-sheet .wo-sheet-x:active{background:var(--close-pressed,var(--close-bg));color:var(--close-pressed-fg,var(--close-fg));filter:none}
body .wo-sheet-foot{align-items:stretch}
body .wo-sheet-foot > button{min-height:52px;height:52px;margin:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
body .wo-sheet-foot > button:focus:not(:focus-visible),body .wo-sheet .wo-sheet-x:focus:not(:focus-visible){outline:none;box-shadow:none}

/* V32.0.3 (owner #9) — the legacy CSV columns as chips inside the import card (they had a dark-mode style only). */
.csv-columns{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.csv-columns span{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700}

/* V32.0.3 (owner #4, #5) — the grouping list under Superset / compound, and each card's group drop-down. */
.tr-grp-menu{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0 4px;padding:6px;border:1px solid var(--border);
 border-radius:12px;background:var(--surface2);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.tr-grp-menu[hidden]{display:none}
.tr-grp-menu button{min-height:48px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-weight:700;font-size:13px;padding:0 6px}
.tr-grp-menu button:active{border-color:var(--accent);color:var(--accent)}
.tr-grp-sel{position:relative;display:inline-flex;align-items:center;gap:4px;min-width:64px;height:48px;padding:0 26px 0 12px;border:1px dashed var(--border);
 border-radius:10px;font-weight:800;color:var(--muted);background:var(--surface2)}
.tr-grp-sel::after{content:"";position:absolute;right:10px;top:50%;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.tr-grp-sel.on{border-style:solid;border-color:var(--accent);color:var(--accent)}
.tr-grp-sel select{position:absolute;inset:0;opacity:0;width:100%;height:100%;font-size:16px;cursor:pointer}

/* V32.0.3 (owner #3) — ▾ beside an exercise's name in Start a Session replaces that one exercise. */
body .tr-swap{display:inline-grid;place-items:center;width:40px;height:40px;min-width:40px;margin-left:6px;padding:0;border:1px solid var(--border);
 border-radius:10px;background:var(--surface2);color:var(--muted);vertical-align:middle;flex:0 0 auto}
body .tr-swap .ic{width:18px;height:18px}
body .tr-swap:active{border-color:var(--accent);color:var(--accent)}

/* V32.0.3 (owner #10) — Your feedback: the conversation with the team. */
.fb-detail{border:1px solid var(--border);border-radius:12px;padding:8px 12px;margin:8px 0}
.fb-detail legend{font-size:12px;font-weight:800;color:var(--muted);padding:0 4px}
.fb-thread-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;margin:0 0 8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text)}
.fb-thread-row.unread{border-color:var(--accent)}
.fb-thread-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.fb-thread-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.fb-thread-meta{font-size:12px;color:var(--muted)}
.fb-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.fb-msg{max-width:88%;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:var(--surface2)}
.fb-msg.user{margin-left:auto;background:rgba(var(--accent-rgb),.12)}
.fb-msg-who{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:4px}
.fb-msg-text{white-space:pre-wrap;overflow-wrap:anywhere}

/* V32.0.4: layout only; appearance continues to use the current theme tokens. */
body #sizeSeg{display:flex;max-width:460px;margin-inline:auto;justify-content:center}
body #sizeSeg button{display:inline-flex;align-items:center;justify-content:center;flex:1;min-width:0;text-align:center;border-radius:0}
[data-body-field][hidden],.hist-controls[hidden],.hist-dates[hidden]{display:none!important}
.body-fields{margin-bottom:16px}
.body-field-choices{display:flex;flex-wrap:wrap;gap:12px;padding-block:12px}
.body-field-choices label{display:inline-flex;align-items:center;gap:6px}
.ex-title-link{font:inherit;color:inherit;text-align:left;padding:0;background:none;border:0;cursor:pointer}
.ex-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#exdAbout p{white-space:normal;overflow-wrap:anywhere;line-height:1.6}
#exdAbout .summary-body{max-width:320px;margin-inline:auto}
.exd-about-tiles{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.exd-about-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:88px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}
.exd-about-image{display:block;width:72px;height:72px;object-fit:contain}
#page-calendar .section-head{align-items:center}
#page-calendar .head-actions{align-items:center;gap:10px}
.cal-plan-split{display:flex;align-items:stretch;gap:0;min-height:52px;border-radius:var(--r-md);background:var(--accent-container);color:var(--on-accent-container);border:1px solid transparent;isolation:isolate}
body #page-calendar .cal-plan-split>button{display:flex;flex:1;align-items:center;justify-content:center;height:auto;min-height:52px;margin:0;padding:10px 16px;border:0;border-radius:var(--r-md) 0 0 var(--r-md);background:transparent;color:inherit}
.cal-menu{position:relative}
.cal-plan-split:has(details[open]){position:relative;z-index:50}
.cal-more-menu[open]{z-index:50}
.cal-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:44px}
.cal-menu>summary::-webkit-details-marker{display:none}
.cal-plan-menu{display:flex;align-items:stretch;flex:0 0 44px;color:inherit}
body #page-calendar .cal-plan-menu>summary{position:relative;display:flex;align-items:center;justify-content:center;flex:1;width:44px;height:auto;min-height:52px;margin:0;padding:0;border:0;border-radius:0 var(--r-md) var(--r-md) 0;background:transparent;color:inherit;line-height:1}
.cal-plan-menu>summary::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:currentColor;opacity:.3}
.cal-plan-split>button:focus-visible,.cal-plan-menu>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.cal-plan-split>button:active,.cal-plan-menu>summary:active{background:rgba(var(--accent-rgb),.14)!important}
#page-calendar .cal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}
#page-calendar .section-head{flex-wrap:wrap}
#page-calendar .section-head>.head-actions{width:100%;justify-content:flex-start}
#page-calendar .cal-quick-log{display:flex;align-items:center;justify-content:center;min-height:54px;flex:0 0 auto}
.cal-more-menu>summary{border-radius:50%;width:44px;padding:0;font-size:24px}
.cal-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:210px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.18);display:grid;gap:4px}
.cal-menu-list>button{text-align:left;justify-content:flex-start;width:100%}
#page-calendar .search-bar{display:flex;flex-direction:row;align-items:stretch;gap:8px}
.cal-search-field{position:relative;flex:1;min-width:0}
#page-calendar .cal-search-field input{width:100%;padding-right:38px}
.cal-search-field input::-webkit-search-cancel-button{display:none}
.cal-search-clear{position:absolute;right:4px;top:0;bottom:0;width:34px;background:transparent;border:0;color:var(--muted);font-size:22px;cursor:pointer}
#page-calendar #calFiltersBtn{flex-shrink:0;display:flex;align-items:center;gap:6px}
#page-calendar .filter-bar{flex-wrap:wrap}
#calClearFilters[hidden]{display:none!important}
.cal-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-block:14px}
#page-calendar .cal-nav{display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;margin:0;flex:0 1 auto;justify-content:flex-start;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface2);min-width:0}
#page-calendar .cal-nav>button{order:0;min-height:40px;padding:7px 10px;flex:0 0 auto;border:0;background:transparent;border-radius:0}
#page-calendar .cal-nav>.cal-label{order:0;font-weight:700;width:auto;flex:1;max-width:none;margin:0}
#page-calendar .cal-nav>button:first-child,#page-calendar .cal-nav>button:last-child{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding-inline:4px;line-height:1}
.cal-chevron{display:block;width:22px;height:22px;flex:0 0 auto}
#page-calendar .cal-toolbar .seg{margin:0;flex-shrink:0}
#page-calendar .cal-toolbar .seg button{padding:8px}
#woSheet.cal-filter-text .fs-grid-img{grid-template-columns:repeat(2,minmax(0,1fr))}
#woSheet.cal-filter-text .fs-grid-img .fs-tile-pic{display:none}
#woSheet.cal-filter-text .fs-grid-img .fs-tile{min-height:44px}
.schedule-start{display:flex;justify-content:center;margin:14px 0 20px}
.schedule-start .btn{width:min(100%,420px);min-height:52px;font-size:18px;justify-content:center}
.cal-export>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:44px}
.cal-export>summary::-webkit-details-marker{display:none}
.cal-export-options{display:grid;gap:8px;padding-top:8px}
.cal-export-options>a{text-decoration:none}
@media(max-width:600px){
 #page-calendar .section-head{display:flex;flex-wrap:wrap}
 #page-calendar .section-head>.head-actions{width:100%;display:flex;flex-wrap:nowrap;justify-content:space-between}
 #page-calendar .cal-plan-split{flex:1}
 #page-calendar .cal-plan-split>button{flex:1;justify-content:center}
 #page-calendar .cal-nav{max-width:100%}
 #page-calendar .cal-toolbar .seg{flex:0 0 auto;max-width:100%}
 #page-calendar .cal-toolbar .seg button{flex:0 0 auto;width:auto;min-width:0;max-width:none;overflow:visible}
 #page-calendar .cal-toolbar{flex-wrap:nowrap;gap:4px}
 #page-calendar .cal-toolbar .seg button{font-size:12px;padding:6px;min-height:44px}
 #page-calendar .cal-toolbar .cal-layout-label{display:none}
 #page-calendar .cal-nav>button{font-size:12px;min-height:44px;padding:6px}
 #page-calendar .cal-nav>.cal-label{padding-inline:2px;white-space:nowrap}
 #page-calendar .cal-nav>button:first-child,#page-calendar .cal-nav>button:last-child{min-width:36px;font-size:24px;padding-inline:2px}
}
