/* flex.css — Flexible Today (owner-approved picture proposal "Change today", "aaa" 12 Oct 2026): the two ways, the muscle
   chips with their ×, the rest / sport / check sheets (the phone) and panels (the website), the next 2 days, the builder
   (systems, chips, the body), the dock. Every colour is a Lawha or KGYM token (light and dark drawn as equals; her palettes
   recolour the same tokens); start / end only (right-to-left ready); every target at least 44 x 44. Loaded just before
   look.css (which stays last but for the palettes and her pages), so its own classes never fight look.css's. */

/* ── the two ways ── */
.flex-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:24px;background:var(--kgym-sunk)}
.flex-way{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center;min-height:56px;padding:6px 12px;border:0;border-radius:20px;
  background:transparent;color:var(--lawha-muted);text-align:start;font:inherit;cursor:pointer}
.flex-way b{font:700 var(--t-body)/1.2 var(--lawha-font)}
.flex-way small{grid-column:2;font-size:12px;line-height:1.25}
.flex-way-ic{grid-row:span 2;display:inline-flex}
.flex-way.is-on{background:var(--kgym-raised);color:var(--lawha-ink);box-shadow:var(--sh1)}
.flex-way.is-on small{color:var(--lawha-muted)}
.flex-way:disabled{opacity:.7}
@media (min-width:900px){.lawha-theme .title-line>.flex-mode{grid-area:auto;width:min(470px,46vw);position:absolute;inset-inline-end:28px;top:50%;transform:translateY(-50%)}
  .lawha-theme .title-line{position:sticky}}

/* ── the muscle chips (rest an extra day) ── */
.mchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mchip{display:inline-flex;align-items:center;gap:2px;min-height:44px;padding-inline:12px 0;border-radius:var(--r-pill);background:var(--kgym-sunk);color:var(--lawha-ink);
  font:600 var(--t-small)/1.2 var(--lawha-font)}
.mchip-x{display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--lawha-muted);cursor:pointer}
.mchip-x .ui-glyph{width:26px;height:26px;padding:6px;border-radius:50%;background:var(--kgym-raised)}
.mchip.rest{gap:6px;padding-inline:12px;border:1.5px dashed var(--kgym-edge);background:transparent;color:var(--lawha-muted);cursor:pointer}
.chip.chip-warn{background:color-mix(in srgb,var(--kgym-low) 26%,var(--kgym-sunk))}
.chip.chip-mine{background:var(--lawha-ink);color:var(--lawha-paper)}
.today-card>.row-sb .card-kicker{margin:0}
.plan-why{grid-column:2/-1;font-size:var(--t-small);color:var(--lawha-muted)}

/* ── shared pieces ── */
.row-sb{display:flex;align-items:center;justify-content:space-between;gap:10px}
.h3{margin:0;font:600 var(--t-name)/1.3 var(--lawha-font)}
.newtag{margin-inline-start:6px;padding:1px 6px;border-radius:6px;background:var(--lawha-accent);color:var(--lawha-paper);font:700 11px/1.4 var(--lawha-font);vertical-align:2px}
.dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--kgym-none)}
.dot-at-target,.dot-met{background:var(--kgym-met)}
.dot-below-target{background:var(--kgym-low)}
.dot-below-minimum{background:var(--kgym-min)}
.dot-untrained{background:var(--kgym-none);box-shadow:inset 0 0 0 1px var(--kgym-skin-edge)}
.suggest{margin-top:10px;padding:12px 14px;border-radius:16px;background:var(--kgym-insight)}
.suggest p{margin:0}
.suggest .k{font:600 var(--t-small)/1.3 var(--lawha-font);color:var(--lawha-accent)}
.suggest .t{font:600 var(--t-body)/1.35 var(--lawha-font);color:var(--lawha-ink)}
.suggest .l{margin-top:2px;font-size:var(--t-small);color:var(--lawha-muted)}
.eq2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.eq2>.btn{min-width:0;width:100%;padding-inline:10px}
.form-note.center{text-align:center}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 0;font-size:14px}
.kv dt{margin:0;color:var(--lawha-muted)}
.kv dd{margin:0;text-align:end;font-weight:600}
.kv-k{font:600 var(--t-body)/1.3 var(--lawha-font)}
.row-g{display:flex;flex-wrap:wrap;gap:6px}

/* ── the sheets (phone) and panels (website) ── */
.flex-sheet{display:grid;gap:10px;align-content:start}
.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.sheet-head h2{margin:2px 0 0;font:600 var(--t-card)/1.25 var(--lawha-font)}
.sheet-head .card-kicker{margin:0}
.flex-sheet .grab{display:block;justify-self:center;width:40px;height:5px;border-radius:3px;background:var(--lawha-line)}
@media (max-width:899px){
  .lawha-theme .flex-sheet{position:fixed;inset-inline:0;bottom:0;z-index:25;max-height:78vh;overflow-y:auto;overscroll-behavior:contain;margin:0;
    padding:8px 16px calc(24px + env(safe-area-inset-bottom));border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:var(--kgym-raised);box-shadow:var(--sh3)}
  .lawha-theme .tab-content:has(.flex-sheet){padding-bottom:78vh}
}
@media (min-width:900px){
  .lawha-theme .flex-sheet .grab{display:none}
  .lawha-theme .flex-sheet{position:fixed;top:110px;inset-inline-end:28px;z-index:20;width:390px;max-height:calc(100vh - 140px);overflow-y:auto;padding:18px;
    border-radius:var(--r-sheet);background:var(--kgym-raised);box-shadow:var(--sh2)}
}
@media (prefers-reduced-motion:no-preference){.lawha-theme .flex-sheet{animation:kgym-sheet-up 250ms var(--lawha-ease)}}
.flex-panel{display:grid;gap:10px;align-content:start;padding:18px;border-radius:var(--r-sheet);background:var(--kgym-raised);box-shadow:var(--sh2)}
.flex-panel .sheet-head h2{font-size:20px}

/* the coach on his pick */
.picks{display:grid}
.pick{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--lawha-line)}
.pick:last-child{border-bottom:0}
.pick .pi{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%}
.pi.warn{background:color-mix(in srgb,var(--kgym-low) 24%,transparent);color:var(--lawha-ink)}
.pi.ok{background:color-mix(in srgb,var(--kgym-met) 20%,transparent);color:var(--lawha-ink)}
.pi.stop{background:color-mix(in srgb,var(--kgym-min) 22%,transparent);color:var(--lawha-ink)}
.pick b{font:600 var(--t-body)/1.35 var(--lawha-font)}
.pick span:not(.pi){font-size:var(--t-small);line-height:1.4;color:var(--lawha-muted)}

/* ── the next 2 days ── */
.flex-ahead,.sport-today{padding:12px 16px}
.ahead{display:grid;margin:6px 0 0;padding:0;list-style:none}
.ah{display:flex;gap:12px;align-items:center;min-height:56px;border-bottom:1px solid var(--lawha-line)}
.ah:last-child{border-bottom:0}
.ah-d{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--kgym-sunk);line-height:1.05;text-align:center}
.ah-d small{font-size:11px;color:var(--lawha-muted)}
.ah-d b{font-size:16px}
.ah-t{flex:1;min-width:0;display:grid}
.ah-t b{font:600 var(--t-body)/1.3 var(--lawha-font)}
.ah-t span{font-size:var(--t-small);color:var(--lawha-muted)}
.likely{flex:none;padding:1px 8px;border:1px solid var(--lawha-line);border-radius:var(--r-pill);font-size:12px;color:var(--lawha-muted);white-space:nowrap}

/* ── sport today and the sport sheet ── */
.lrow{display:flex;gap:12px;align-items:center;min-height:56px}
.lrow .thumb{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-thumb);background:var(--lawha-sage);color:var(--lawha-accent)}
.lr-t{display:grid;min-width:0}
.lr-t b{font:600 var(--t-body)/1.3 var(--lawha-font)}
.lr-t span{font-size:var(--t-small);color:var(--lawha-muted)}
.fchip{min-height:44px;padding:0 14px;border:1.5px solid var(--kgym-edge);border-radius:var(--r-pill);background:transparent;color:var(--lawha-ink);font:600 14px var(--lawha-font);cursor:pointer}
.fchip.is-on{border-color:var(--lawha-ink);background:var(--lawha-ink);color:var(--lawha-paper)}
.stepper{display:inline-flex;align-items:center;gap:4px;padding:3px;border-radius:var(--r-pill);background:var(--kgym-sunk)}
.step-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--kgym-raised);color:var(--lawha-ink);cursor:pointer}
.stepper>span{min-width:62px;text-align:center}
.stepper b{font-size:17px}
.seg{display:flex;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--kgym-sunk)}
.seg button{flex:1;min-height:44px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--lawha-muted);font:600 14px var(--lawha-font);cursor:pointer}
.seg button.is-on{background:var(--kgym-raised);color:var(--lawha-ink);box-shadow:var(--sh1)}
.sport-today .form-note{margin:4px 0 0}

/* ── the builder ── */
.sys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.sys-b{display:grid;justify-items:start;align-content:center;min-height:52px;padding:6px 10px;border:1.5px solid var(--lawha-line);border-radius:14px;background:var(--lawha-surface);
  color:var(--lawha-ink);text-align:start;font:inherit;cursor:pointer;min-width:0}
.sys-b b{font:600 14px/1.2 var(--lawha-font);overflow-wrap:anywhere}
.sys-b small{font-size:11.5px;line-height:1.25;color:var(--lawha-muted)}
.sys-b.is-on{border-color:var(--lawha-ink);background:var(--lawha-ink);color:var(--lawha-paper)}
.sys-b.is-on small{color:var(--lawha-paper);opacity:.85}
.sys-b.is-mine{border-style:dashed}
.flex-mine .btn{margin-top:8px}
.flex-groups{display:grid;gap:4px}
.grp .card-kicker{margin:10px 0 6px}
.pchip{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;border:1.5px solid var(--kgym-edge);border-radius:var(--r-pill);background:transparent;
  color:var(--lawha-ink);font:600 14px var(--lawha-font);cursor:pointer}
.pchip.is-on{border-color:var(--lawha-ink);background:var(--lawha-ink);color:var(--lawha-paper)}
.pchip.is-on .dot{outline:2px solid var(--lawha-paper)}
.pchip .clk{display:inline-flex;color:var(--lawha-muted)}
.pchip.is-on .clk{color:var(--lawha-paper)}
.tabs2{margin-bottom:6px}
.body-picker{margin-top:8px}
.body-picker .map-region.is-selected .bm-shape{stroke:var(--lawha-ink);stroke-width:2.6}
.flex-dock{position:sticky;bottom:96px;z-index:8;display:grid;gap:6px;justify-items:center;padding:30px 0 8px;
  background:linear-gradient(to bottom,transparent,var(--lawha-paper) 40%)}
.flex-dock .form-note{margin:0;text-align:center}
.flex-dock .form-note b{color:var(--lawha-ink)}
@media (min-width:900px){
  /* 900–1199: the systems over the muscles, the coach's panel beside them; 1200 and wider: three columns, as drawn (W2) */
  .lawha-theme .screen-today.screen-today:has(.flex-mid){grid-template-columns:minmax(0,1fr) 320px}
  .lawha-theme .screen-today.screen-today:has(.flex-mid)>.flex-left{grid-column:1;grid-row:1}
  .lawha-theme .screen-today.screen-today:has(.flex-mid)>.flex-mid{grid-column:1;grid-row:2}
  .lawha-theme .screen-today.screen-today:has(.flex-mid)>.flex-right{grid-column:2;grid-row:1 / span 2;align-self:start;position:sticky;top:100px}
  .lawha-theme .flex-left .flex-systems .sys{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1200px){
  .lawha-theme .screen-today.screen-today:has(.flex-mid){grid-template-columns:270px minmax(0,1fr) 340px}
  .lawha-theme .screen-today.screen-today:has(.flex-mid)>.flex-mid{grid-column:2;grid-row:1}
  .lawha-theme .screen-today.screen-today:has(.flex-mid)>.flex-right{grid-column:3;grid-row:1}
  .lawha-theme .flex-left .flex-systems .sys{grid-template-columns:1fr 1fr}
  .lawha-theme .flex-left .flex-mine .sys{grid-template-columns:1fr 1fr}
  .lawha-theme .flex-mid .body-picker{max-width:420px;margin-inline:auto}
}

/* ── CLOSE THE WEEK (owner approval 15 Oct 2026; picture proposal "Close the week" rev 3) ────────────────────────────────
   The three ways and the badge; the week card (D1); the close card (D2 / D3 / D5), the green bar, the rows, the amber and
   her accent boxes; the done card (D7 / H2); the website's columns (W1 / W2). Body's status colours (--kgym-met / low / min /
   none) are the same in every theme and palette; every target at least 44 x 44; start / end only (right-to-left ready). */
.flex-mode.flex-mode3{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.flex-mode3 .flex-way{position:relative;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:center;row-gap:1px;min-height:60px;padding:6px 4px;text-align:center}
.flex-mode3 .flex-way-ic{grid-row:auto}
.flex-mode3 .flex-way b{font-size:13.5px;line-height:1.2}
.flex-mode3 .flex-way small{grid-column:auto;font-size:11.5px;line-height:1.2}
.flex-badge{position:absolute;top:-8px;inset-inline-end:4px;padding:0 7px;border-radius:var(--r-pill);background:var(--lawha-accent);color:var(--lawha-paper);
  font:700 10.5px/1.5 var(--lawha-font);white-space:nowrap}
@media (min-width:900px){.lawha-theme .title-line>.flex-mode.flex-mode3{width:min(520px,50vw)}}

/* the week card on Coach's plan (D1) */
.cw-week{display:flex;gap:12px;padding:14px 16px;border-radius:20px;background:var(--kgym-insight);box-shadow:var(--sh1)}
.cw-week-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--lawha-accent);color:var(--lawha-paper)}
.cw-week-t{flex:1;min-width:0}
.cw-week-t p{margin:0}
.cw-week .k{font:600 var(--t-small)/1.3 var(--lawha-font);color:var(--lawha-accent)}
.cw-week .t{font:600 var(--t-body)/1.35 var(--lawha-font);color:var(--lawha-ink)}
.cw-week .l{margin-top:6px;font-size:var(--t-small);line-height:1.45;color:var(--lawha-muted)}

/* the green bar: one mark per muscle, Body's colours */
.cw-meter{display:grid;grid-template-columns:repeat(19,minmax(0,1fr));gap:3px;height:12px;margin-top:8px}
.cw-meter i,.cw-mlegend i{display:block;border-radius:3px;background:var(--kgym-met)}
.cw-meter .m-l,.cw-mlegend .m-l{background:var(--kgym-low)}
.cw-meter .m-m,.cw-mlegend .m-m{background:var(--kgym-min)}
.cw-meter .m-n{background:var(--kgym-none);box-shadow:inset 0 0 0 1px var(--kgym-skin-edge)}
.cw-meter .m-g,.cw-mlegend .m-g{background:repeating-linear-gradient(135deg,var(--kgym-met) 0 3px,var(--kgym-done) 3px 5.5px);box-shadow:inset 0 0 0 1.5px var(--kgym-met)}
.cw-meter .m-h,.cw-mlegend .m-h{background:var(--kgym-done);box-shadow:inset 0 0 0 1.5px var(--kgym-met)}
.cw-mlegend{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:5px;font-size:12px;color:var(--lawha-muted)}
.cw-mlegend span{display:inline-flex;align-items:center;gap:5px}
.cw-mlegend i{width:12px;height:9px;border-radius:2px}

/* the close card */
.cw-card{display:grid;gap:4px;padding:14px 14px 12px}
.cw-card>.card-kicker{margin:0}
.cw-h2{margin:2px 0 0;font:600 20px/1.25 var(--lawha-font);color:var(--lawha-ink)}
.cw-len{display:inline-flex;align-items:center;justify-self:start;gap:6px;margin:6px 0 0;padding:3px 10px;border-radius:var(--r-pill);background:var(--kgym-sunk);
  font:600 13px/1.4 var(--lawha-font);color:var(--lawha-ink)}
.cw-rows{display:grid;margin-top:4px}
.cw-crow{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;column-gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--lawha-line)}
.cw-crow:last-child{border-bottom:0}
.cw-crow .nm{display:flex;align-items:center;gap:7px;min-width:0;font:600 var(--t-body)/1.25 var(--lawha-font);color:var(--lawha-ink)}
.cw-crow .pr,.cw-drow .pr{font-size:13px;color:var(--lawha-muted);white-space:nowrap}
.cw-crow .pr b,.cw-drow .pr b{color:var(--kgym-met);font-weight:700}
.cw-crow .pr b.is-short,.cw-drow .pr b.is-short{color:var(--lawha-ink)}
.cw-crow .ex{grid-column:1 / 3;padding-inline-start:16px;font-size:12.5px;color:var(--lawha-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-crow .cw-x{grid-row:span 2}
.need{padding:0 8px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--kgym-met) 16%,var(--lawha-surface));color:var(--lawha-ink);font:700 12px/1.6 var(--lawha-font);white-space:nowrap}
.need.amb{background:color-mix(in srgb,var(--kgym-low) 26%,var(--lawha-surface))}
.cw-x{display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--lawha-muted);cursor:pointer}
.cw-x .ui-glyph{width:30px;height:30px;padding:8px;border-radius:50%;background:var(--kgym-sunk)}
.cw-note{margin:6px 0 0;font-size:12.5px;color:var(--lawha-muted)}
.cw-stay{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 10px;align-items:start;margin-top:8px;padding:10px 12px;border-radius:16px;
  background:color-mix(in srgb,var(--kgym-low) 18%,var(--lawha-surface));border:1.5px dashed var(--kgym-low)}
.cw-stay .pi{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--kgym-raised);color:var(--lawha-ink)}
.cw-stay b{font:600 14.5px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.cw-stay>span:not(.pi){grid-column:2;font-size:12.5px;line-height:1.4;color:var(--lawha-muted)}
.cw-stay .cw-putback{grid-column:2;justify-self:start;margin-top:4px}
.cw-stay.is-prot{background:var(--kgym-insight);border-color:var(--lawha-accent)}
.cw-stay.is-prot .pi{color:var(--lawha-accent)}
.cw-card .start-today,.cw-card>.eq2{margin-top:10px}
.cw-card>.eq2:has(>:only-child){grid-template-columns:1fr}
/* two sessions (D3) */
.cw-day{margin-top:8px;padding:6px 12px 4px;border-radius:16px;background:var(--kgym-sunk)}
.cw-day .dh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px}
.cw-day .dh b{font:700 var(--t-body) var(--lawha-font);color:var(--lawha-ink)}
.cw-day .dh>span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--lawha-muted)}
.cw-drow{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:8px;align-items:center;min-height:44px;font-size:14px;border-top:1px solid var(--lawha-line)}
.cw-drow:first-of-type{border-top:0}
.cw-drow .nm{display:flex;align-items:center;gap:7px;min-width:0;font-weight:600;color:var(--lawha-ink)}
/* too much for two (D5) */
.cw-grp{margin-top:9px}
.cw-grp .g2t{margin:0;font:700 13px var(--lawha-font);color:var(--lawha-ink)}
.cw-grp .row-g{margin-top:4px}
.cw-grp .chip{min-height:28px;font-size:12.5px;padding:2px 9px}
.cw-grp .g2l{margin:4px 0 0;font-size:12px;color:var(--lawha-muted)}
.chip.chip-green{background:color-mix(in srgb,var(--kgym-met) 16%,var(--lawha-surface));color:var(--lawha-ink)}
.chip.chip-green .ui-glyph{color:var(--kgym-met)}
/* the done card (D7 / H2) */
.cw-hcard{display:flex;gap:14px;align-items:center}
.cw-hcard p{margin:0}
.cw-ring{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--kgym-met) 0 var(--p),var(--kgym-sunk) var(--p) 100%)}
.cw-ring>span{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:var(--lawha-surface);font:700 15px var(--lawha-font);color:var(--lawha-ink)}
.cw-map{margin-top:8px}
.cw-map .map-region.is-turned .bm-shape{stroke:var(--lawha-ink);stroke-width:2.6}
.cw-turned-key{display:flex;align-items:center;gap:5px;margin:4px 0 0;font-size:12px;color:var(--lawha-muted)}
.cw-turned-key i{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 2.5px var(--lawha-ink)}
.cw-ok{margin-top:6px}

/* the website (W1 / W2): its own layout — the week on the left, the sessions across the middle, the coach on the right */
.cw-weekcard,.cw-session,.cw-turned{display:grid;gap:4px;padding:14px 16px}
.cw-weekcard>.card-kicker,.cw-session .card-kicker{margin:0}
.cw-daypair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.cw-session,.cw-weekcard,.cw-turned{align-content:start}
.cw-session>.chips{justify-self:start}
.cw-daypair.is-one{grid-template-columns:minmax(0,1fr)}
.cw-dtitle{display:grid}
.cw-dtitle b{font:700 17px var(--lawha-font);color:var(--lawha-ink)}
.cw-dtitle .form-note{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.cw-r2s{display:grid;margin-top:4px}
.cw-r2{display:grid;padding:5px 0;border-bottom:1px solid var(--lawha-line)}
.cw-r2:last-child{border-bottom:0}
.cw-r2 b{font:600 14px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.cw-r2 span{font-size:12.5px;color:var(--lawha-muted)}
.cw-r2 em{font-style:normal;font-size:12px;color:var(--lawha-accent)}
.cw-session .start-today{margin-top:10px}
.cw-panel{grid-template-columns:minmax(0,1fr)}
.cw-panel>.card-kicker{margin:0}
.cw-h3{margin:4px 0 6px;font-size:15px}
.cw-panel .mchips{margin-top:0}
@media (min-width:1200px){
  .lawha-theme .screen-today.screen-today:has(.cw-mid){grid-template-columns:250px minmax(0,1fr) 280px}
  /* after a close-out (W2): Before and Now side by side, the same size */
  .lawha-theme .screen-today.screen-today:has(.cw-before){grid-template-columns:minmax(0,1fr) minmax(0,1fr) 320px}
}
/* her Body line (placeholder 2 = A): her side only */
.her-week-line{display:flex;align-items:center;gap:10px;margin:0;padding:12px 14px;border:1.5px dashed var(--lawha-accent);background:var(--kgym-insight);color:var(--lawha-ink);font:600 var(--t-body)/1.35 var(--lawha-font)}
.her-week-line .ui-glyph{flex:none;color:var(--lawha-accent)}

/* ── YOUR WEEK (owner approval 16 Oct 2026, "1a 2a 3a"; picture proposal "Your week") ────────────────────────────────────
   The card at the top of Today (D1–D3; her H1 / H2), the website's wide band above Today's columns (W1), Body's
   "This week | Last week" switch and its Last week (D4; the website's three columns, W2). Body's colours (--kgym-met …) are
   the same in every theme and palette; a quiet week is never red; every target at least 44 x 44; start / end only (right-to-
   left ready). */
.ws-card{display:grid;gap:8px;padding:14px 14px 12px}
.ws-kick{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ws-kick .card-kicker{display:inline-flex;align-items:center;gap:6px;margin:0}
.ws-stage{padding:0 9px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--kgym-met) 18%,var(--lawha-surface));color:var(--lawha-ink);font:700 11.5px/1.7 var(--lawha-font)}
.ws-h2{margin:0;font:600 20px/1.25 var(--lawha-font);color:var(--lawha-ink)}
.ws-h2-btn{display:flex;align-items:center;min-height:44px;margin:-8px 0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}
.ws-sub{margin:-4px 0 0;font-size:var(--t-small);color:var(--lawha-muted)}
.ws-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ws-tiles.is-web{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws-tile{display:grid;gap:1px;padding:8px 10px;border-radius:12px;background:var(--kgym-sunk)}
.ws-tile b{font:700 17px/1.25 var(--lawha-font);color:var(--lawha-ink);white-space:nowrap}
.ws-tile span{font-size:12px;color:var(--lawha-muted)}
.ws-tile.is-green b{color:var(--kgym-met)}
.ws-streak{padding:10px 12px;border-radius:14px;background:var(--kgym-sunk)}
.ws-streak-t{display:flex;align-items:center;gap:6px;margin:0}
.ws-streak-t b{font:600 14.5px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-streak-t span{margin-inline-start:auto;font-size:12.5px;color:var(--lawha-muted);text-align:end}
.ws-bars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;height:8px;margin-top:8px}
.ws-bar{display:block;border-radius:4px;background:var(--kgym-none);box-shadow:inset 0 0 0 1px var(--lawha-line)}
.ws-bar.is-green{background:var(--kgym-met);box-shadow:none}
.ws-bar.is-protected{background:var(--kgym-met);box-shadow:0 0 0 1.5px var(--lawha-surface),0 0 0 3px var(--lawha-accent)}
.ws-bar-dates{margin:6px 0 0;font-size:11.5px;color:var(--lawha-muted)}
.ws-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:2px 0 0}
.ws-h b{font:600 14.5px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-h span{font-size:12.5px;color:var(--lawha-muted)}
.ws-lift-list{display:grid;margin:2px 0 0;padding:0;list-style:none}
.ws-lift{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;border-bottom:1px solid var(--lawha-line)}
.ws-lift:last-child{border-bottom:0}
.ws-lift .nm{display:flex;align-items:center;gap:7px;min-width:0;font:600 14px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-lift .nm .ui-glyph{flex:none;color:var(--kgym-met)}
.ws-lift .ch{font-size:13px;color:var(--lawha-muted);white-space:nowrap}
.ws-lift .ch b{color:var(--kgym-met);font-weight:700}
.ws-lift .ch small{font-size:11.5px}
.ws-more{margin:2px 0 0;font-size:13px;color:var(--lawha-muted)}
.ws-best{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--kgym-insight)}
.ws-best p{margin:0}
.ws-best-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--lawha-accent);color:var(--lawha-paper)}
.ws-best .k{font-size:12px;color:var(--lawha-accent)}
.ws-best .t{font:600 15px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-best .l{font-size:12.5px;line-height:1.4;color:var(--lawha-muted)}
.ws-her{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 10px;align-items:start;padding:10px 12px;border-radius:16px;
  background:var(--kgym-insight);border:1.5px dashed var(--lawha-accent)}
.ws-her .pi{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--kgym-raised);color:var(--lawha-accent)}
.ws-her b{font:600 14.5px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-her>span:not(.pi){grid-column:2;font-size:12.5px;line-height:1.4;color:var(--lawha-muted)}
.ws-kept{padding:10px 12px;border-radius:14px;background:var(--kgym-sunk)}
.ws-kept-l{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--lawha-muted)}
.ws-next{padding:10px 12px;border-radius:16px;background:var(--kgym-insight)}
.ws-next p{margin:0}
.ws-next .k{font-size:12px;color:var(--lawha-accent)}
.ws-next .t{font:600 15px/1.35 var(--lawha-font);color:var(--lawha-ink)}
.ws-next .l{margin-top:4px;font-size:12.5px;line-height:1.4;color:var(--lawha-muted)}
.ws-see{justify-self:stretch;max-width:none;margin-top:2px}
/* Today's card on the phone, as drawn (D1): three numbers, one line and "Tap for the whole week ›" — the card opens Body */
.ws-short{gap:6px;padding-bottom:4px;cursor:pointer}
.ws-nums{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;font-size:13px;color:var(--lawha-muted)}
.ws-nums b{font:700 16px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-line{margin:0;font-size:13px;line-height:1.45;color:var(--lawha-ink)}
.ws-line b{font-weight:700}
.ws-tap{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;margin:0;padding:0;border:0;background:transparent;
  color:var(--lawha-muted);font:500 13px var(--lawha-font);text-align:start;cursor:pointer}
.ws-tap .ui-glyph{flex:none}
/* "Check this set" (review S2-1): gentle — never red, never celebrated; a tap opens History */
.ws-check{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;margin:0;padding:6px 12px;border:1.5px dashed var(--lawha-line);
  border-radius:14px;background:transparent;color:var(--lawha-ink);font:500 13px/1.35 var(--lawha-font);text-align:start;cursor:pointer}
p.ws-check{cursor:auto}
.ws-check .ui-glyph{flex:none;color:var(--lawha-muted)}
[dir="rtl"] .ws-check .ui-glyph{transform:scaleX(-1)}
[dir="rtl"] .ws-tap .ui-glyph{transform:scaleX(-1)}
.ws-map .map-region.is-protected .bm-shape{stroke:var(--lawha-accent);stroke-width:2.4;stroke-dasharray:3 2}
/* her pregnancy week's small figure on the card (H2): the two figures only, small and centred */
:is(.ws-card,.ws-band) .ws-map{width:min(150px,50%);justify-self:center}
:is(.ws-card,.ws-band) .ws-map :is(.map-legend,.map-caption){display:none}
/* Body: the two weeks, and Last week (D4) */
.ws-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;border-radius:var(--r-pill);background:var(--kgym-sunk)}
.ws-seg{min-height:44px;margin:0;padding:0 12px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--lawha-muted);font:600 14px var(--lawha-font);cursor:pointer}
.ws-seg.is-on{background:var(--lawha-surface);color:var(--lawha-ink);box-shadow:var(--sh1)}
.ws-last{display:grid;gap:12px}
.ws-last>.card,.ws-col>.card{margin:0;padding:14px}
.ws-maphead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ws-maphead .form-note{margin:0}
.ws-h3{margin:0;font:600 16px/1.3 var(--lawha-font);color:var(--lawha-ink)}
.ws-day-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:8px}
.ws-day{display:grid;justify-items:center;gap:2px}
.ws-day-col{display:flex;align-items:flex-end;width:14px;height:36px}
.ws-day-bar{display:block;width:14px;height:4px;border-radius:4px;background:var(--kgym-none);box-shadow:inset 0 0 0 1px var(--lawha-line)}
.ws-day-bar.is-trained{height:var(--h);background:var(--kgym-met);box-shadow:none}
.ws-day b{font:700 11.5px var(--lawha-font);color:var(--lawha-ink)}
.ws-day small{font-size:10.5px;color:var(--lawha-muted)}
.ws-days .form-note{margin:6px 0 0}
/* on Body the streak and the best set are their own cards (W2 / D4): no second box inside */
.ws-streakcard .ws-streak{padding:0;background:transparent}
@media (min-width:900px){
  /* the website (W1): the card is one wide band above Today's columns; every column moves one row down under it */
  .ws-band{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;padding:16px 18px}
  .ws-band>div{display:grid;gap:10px;min-width:0}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.ws-band{grid-column:1 / -1;grid-row:1}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-left{grid-row:2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-right{grid-row:3}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-mid{grid-row:2 / span 3}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-card{grid-row:2 / span 2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.flex-left{grid-row:2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.flex-mid{grid-row:3}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.flex-right{grid-row:2 / span 2}
  /* Body's Last week (W2): three columns — the map; every lift and the best set; the days and the streak */
  .lawha-theme .title-line>.ws-switch{grid-area:auto;width:300px;position:absolute;inset-inline-end:28px;top:50%;transform:translateY(-50%)}
  .ws-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,0.95fr);gap:16px;align-items:start}
  .ws-col{display:grid;gap:14px;align-content:start;min-width:0}
}
@media (min-width:1200px){
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-right{grid-row:2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.today-card{grid-row:2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.flex-mid{grid-row:2}
  .lawha-theme .screen-today.screen-today.screen-today:has(>.ws-band)>.flex-right{grid-row:2}
}

/* ── Your note (enhancement 4, owner-approved picture proposal "Ten enhancements", picture 4 and W1, 16 Oct 2026) ──
   The line first under the open card's title, as W1 draws it (in the head's DOM before 👍, shown last by order:99 on a row of its own, so the "First time…"
   line and the set card's warm-up and plate box sit below it), the pencil in the card's head before 👍, and the one short field — the phone's bottom sheet over a dimmed screen, the website's
   panel at the right. Every colour is a Lawha / KGYM token. */
.note-line{display:flex;gap:7px;align-items:flex-start;margin:8px 0 0;padding:7px 10px;border-radius:12px;background:var(--kgym-insight);color:var(--lawha-ink);
  font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
.note-line .ui-glyph{flex:none;margin-top:2px;color:var(--lawha-accent)}
.note-line b{flex:none;font-weight:700}
.note-line .note-text{min-width:0}
.card-head .note-pencil{flex:none}
.card-head:has(>.note-line){flex-wrap:wrap}
.card-head>.note-line{order:99;flex:1 0 100%;box-sizing:border-box;margin:0}
.exercise-note{margin-top:10px}
.exercise-note .note-row{display:flex;align-items:center;gap:8px}
.exercise-note .note-row .note-line{flex:1;margin:0}
.note-sheet .note-field{display:block;box-sizing:border-box;width:100%;min-height:76px;padding:12px;resize:none;font:400 16px/1.4 var(--lawha-font)}
.note-sheet .note-problem{margin:0;color:var(--lawha-ink);font-weight:600}
.note-sheet .form-note{margin:0}
.note-sheet .eq2{margin-top:2px}
.lawha-theme .note-sheet{box-shadow:0 0 0 100vmax rgba(5,8,6,.5),var(--sh3)}
@media (min-width:900px){.lawha-theme .note-sheet{z-index:30;box-shadow:0 0 0 100vmax rgba(5,8,6,.35),var(--sh2)}}

/* ── The sore-joint flag (enhancement 9; pictures 9A, 9B, H9, W3): Today's dashed line, the waiting chip and note; Body's
   entry card, the phone sheet and the website panel (the same pieces) ── */
.joint-line{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:18px;background:var(--kgym-insight);border:1.5px dashed var(--lawha-accent)}
.joint-ic{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--kgym-raised);color:var(--lawha-accent)}
.joint-words{flex:1;min-width:0;display:grid;gap:2px}
.joint-words b{font:600 var(--t-body)/1.3 var(--lawha-font);color:var(--lawha-ink)}
.joint-left{margin:0;font-size:13px;line-height:1.4;color:var(--lawha-muted)}
.joint-open{flex:none;display:grid;place-items:center;min-width:44px;min-height:44px;border:0;background:transparent;color:var(--lawha-muted);cursor:pointer}
.joint-ask{display:grid;gap:6px;margin-top:6px}
.joint-ask-q{font-size:13px;font-weight:600;color:var(--lawha-ink)}
.joint-note{text-align:center;margin:0}
.joint-entry{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 14px;border:0;text-align:start;font:600 var(--t-body)/1.3 var(--lawha-font);color:var(--lawha-ink);cursor:pointer}
.joint-entry-t{flex:1;min-width:0}
.joint-entry-c{flex:none;color:var(--lawha-muted)}
.joint-panel{display:grid;gap:10px;padding:14px 16px}
.joint-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.joint-head h2{margin:0}
.joint-chips{display:flex;flex-wrap:wrap;gap:8px}
.joint-k{margin:0}
.joint-now-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.joint-now-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.joint-coach{margin-top:0}
.joint-fine{margin:0;text-align:center}
.joint-sheet{position:fixed;inset-inline:0;bottom:0;z-index:40;max-height:88vh;overflow:auto;border-radius:28px 28px 0 0;background:var(--kgym-raised);box-shadow:var(--sh2,0 -8px 30px rgba(0,0,0,.25))}
.joint-scrim{position:fixed;inset:0;z-index:39;background:rgba(0,0,0,.36)}
@media (min-width:900px){
  .joint-sheet{position:static;max-height:none;border-radius:var(--r-card);box-shadow:var(--sh1)}
  .joint-scrim{display:none}
}
