/* Plate Math app styles. Kit tokens only; plate colours are illustration colours defined in logic.js. */

/* ---------- Shell ---------- */
[hidden]{display:none!important}
.pm-logcount{margin-left:4px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.zl-appbar-status.pulse{animation:pm-fade 1.2s var(--ease)}
.zl-appbar-status.is-bad{color:var(--bad)}
@keyframes pm-fade{0%{color:var(--accent-ink)}100%{color:var(--muted)}}
#units button{min-width:48px}

.pm-tabs{display:flex;gap:4px;padding:10px 16px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;background:var(--surface)}
.pm-tabs::-webkit-scrollbar{display:none}
.pm-tabs [role=tab]{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.pm-tabs [role=tab] svg{width:20px;height:20px;flex:none}
.pm-tabs [role=tab]:hover{color:var(--ink);background:var(--surface-2)}
.pm-tabs [role=tab][aria-selected=true]{background:var(--accent-soft);color:var(--accent-ink)}

.pm-panel{padding:28px 32px 32px}
.pm-panel[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){.pm-panel:not([hidden]){animation:pm-panel .35s var(--ease)}}
@keyframes pm-panel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pm-panel-head{margin:0 0 24px;max-width:60ch}
.pm-panel-head h2{margin:0;font-size:24px;letter-spacing:-.025em;line-height:1.2}
.pm-panel-head p{margin:6px 0 0;color:var(--muted);font-size:15px}
.pm-h3{margin:0;font-size:19px;letter-spacing:-.02em}

.pm-suffix{position:relative;display:flex}
.pm-suffix .zl-input{padding-right:44px}
.pm-suffix > span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px;pointer-events:none}

/* ---------- Load ---------- */
.pm-load-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center}
.pm-target{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.pm-stepper{display:flex;align-items:center;gap:16px}
.pm-step{width:64px;height:64px;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;cursor:pointer;flex:none;transition:background .15s,transform .1s,border-color .15s}
.pm-step svg{width:22px;height:22px}
.pm-step small{font-size:12px;font-weight:600;color:var(--muted);line-height:1.1}
.pm-step:hover{border-color:var(--line-strong);background:color-mix(in oklab,var(--surface-2) 70%,var(--line))}
.pm-step:active{transform:scale(.92)}
.pm-target-wrap{display:flex;align-items:baseline;justify-content:center;gap:10px;min-width:0}
.pm-target-wrap.bump{animation:pm-bump .28s var(--ease)}
@keyframes pm-bump{40%{transform:scale(1.04)}}
.pm-autosize{display:inline-grid;font-size:80px;font-weight:700;letter-spacing:-.05em;line-height:1;max-width:5.2em}
.pm-autosize::after{content:attr(data-value);visibility:hidden;white-space:pre;grid-area:1/1;padding:4px 6px;font:inherit;letter-spacing:inherit;font-variant-numeric:tabular-nums;overflow:hidden}
.pm-target-input{grid-area:1/1;width:100%;min-width:0;border:0;background:transparent;font:inherit;letter-spacing:inherit;line-height:1;text-align:center;padding:4px 6px;color:var(--ink);border-radius:12px}
.pm-target-input:focus,.pm-target-input:focus-visible{outline:none;background:var(--surface-2);box-shadow:inset 0 -3px 0 var(--accent)}
.pm-target-input[aria-invalid=true]{color:var(--bad)}
.pm-target-unit{font-size:28px;font-weight:600;color:var(--muted);letter-spacing:-.02em}
.pm-target .zl-hint{max-width:46ch;margin:4px 0 0}

.pm-summary{background:var(--surface-2);border-radius:var(--r-lg);padding:20px 24px;display:flex;flex-direction:column;gap:12px;min-height:168px;justify-content:center}
.pm-sum-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pm-sum-head .zl-badge svg{width:12px;height:12px}
.pm-sum-msg{margin:0;font-size:16px;color:var(--ink-2)}
.pm-breakdown{margin:0;font-size:15px;color:var(--muted)}
.pm-log-this{align-self:flex-start;margin:-4px 0 -8px -14px}
.pm-chips{display:flex;flex-wrap:wrap;gap:8px}
.pm-chips-empty{font-size:15px;color:var(--muted)}
.pm-chip{display:inline-grid;place-items:center;min-width:48px;height:40px;padding:0 12px;border-radius:12px;background:var(--c);color:var(--t);font-size:16px;font-weight:700;letter-spacing:-.01em;box-shadow:inset 0 -2px 0 rgba(0,0,0,.14)}
.pm-chip.lt{box-shadow:inset 0 0 0 1px var(--line-strong),inset 0 -2px 0 rgba(0,0,0,.08)}
.pm-chip.rim{box-shadow:inset 0 0 0 2px #D7263D}
.pm-chip.sm{min-width:36px;height:28px;padding:0 8px;border-radius:8px;font-size:13px}
@media (prefers-reduced-motion:no-preference){.pm-summary .pm-chip{animation:pm-chip .34s var(--ease) both;animation-delay:calc(var(--i,0) * 40ms)}}
@keyframes pm-chip{from{opacity:0;transform:translateY(6px) scale(.9)}to{opacity:1;transform:none}}
.pm-options{display:flex;gap:8px;flex-wrap:wrap}
.pm-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;min-width:120px;padding:8px 16px;border-radius:var(--r-md);border:1px solid var(--accent-line);background:var(--surface);cursor:pointer;color:var(--ink);text-align:left;transition:background .15s,transform .1s}
.pm-opt b{font-size:18px;letter-spacing:-.02em}
.pm-opt span{font-size:13px;color:var(--muted)}
.pm-opt:hover{background:var(--accent-soft)}
.pm-opt:active{transform:scale(.97)}

.pm-bar-stage{margin:24px 0 0;padding:20px 16px 8px;border-radius:var(--r-lg);background:radial-gradient(120% 90% at 50% 0%,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--line);color:#000}
.pm-barbell{width:100%;height:auto;max-height:270px;margin:0 auto;overflow:hidden}
.pm-barbell .bb-floor{stroke:var(--line-strong);stroke-width:3;stroke-linecap:round}
.pm-barbell .bb-knurl line{stroke:rgba(0,0,0,.18);stroke-width:1.6}
.pm-barbell .bb-cap{fill:#8A939D}
.pm-barbell .plate-body.plate-light{stroke:rgba(0,0,0,.22);stroke-width:1.5}
.pm-barbell .plate-hub{fill:rgba(0,0,0,.16)}
.pm-barbell .plate-label{font-family:var(--font);font-weight:700;letter-spacing:-.02em}
.pm-barbell .plate-unit{font-weight:600;opacity:.8}
.pm-barbell .collar-body{fill:#3A3A3C}
.pm-barbell .collar-lever{fill:var(--accent)}
.pm-bar-caption{margin:8px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.pm-bar-caption.is-bad{color:var(--bad);font-weight:500}

.pm-load-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;margin-top:24px}
.pm-stats{display:flex;flex-wrap:wrap;gap:12px 36px;align-items:flex-end}
.pm-stats .zl-stat b{font-size:24px}
.pm-stats .zl-stat.big b{font-size:34px;color:var(--accent-ink)}
.pm-stats .zl-stat.up b{color:var(--good)}
.pm-bar-opts{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.pm-bar-opts .zl-switch{min-height:44px;font-weight:600;font-size:15px}
.pm-bar-opts > .zl-field:last-child{max-width:200px}
#custom-wrap{width:140px}

/* ---------- 1RM ---------- */
.pm-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:stretch}
.pm-form{display:flex;flex-direction:column;gap:16px}
.pm-form .pm-panel-head{margin-bottom:4px}
.pm-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}
.pm-warn{color:var(--warn)}
.pm-rm-result{background:var(--surface-2);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px}
.pm-big{display:flex;align-items:baseline;gap:8px;font-size:clamp(64px,8vw,96px);font-weight:700;letter-spacing:-.05em;line-height:1;color:var(--ink);margin-top:8px}
.pm-big-unit{font-size:.3em;color:var(--muted);letter-spacing:-.02em;font-weight:600}
.pm-big-sub{margin:8px 0 0;color:var(--muted);font-size:15px;max-width:36ch}
.pm-rm-result.is-empty .pm-big{color:var(--faint)}
.pm-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 0;width:100%}
.pm-methods div{background:var(--surface);border-radius:var(--r-md);padding:12px 8px}
.pm-methods dt{font-size:13px;color:var(--muted)}
.pm-methods dd{margin:2px 0 0;font-size:17px;font-weight:600;letter-spacing:-.01em}

.pm-table-wrap{margin-top:32px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.pm-table{width:100%;border-collapse:collapse;font-size:16px}
.pm-table th,.pm-table td{padding:8px 20px;height:56px;text-align:left;border-top:1px solid var(--line)}
.pm-table thead th{height:44px;border-top:0;font-size:13px;font-weight:600;color:var(--muted);background:var(--surface-2)}
.pm-table tbody th{font-weight:600;width:20%}
.pm-table .pm-muted{color:var(--muted)}
.pm-table .pm-strong{font-weight:700;font-size:17px}
.pm-table .pm-act{text-align:right}
.pm-table tbody tr:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}
.pm-table tr[data-pct="100"] th,.pm-table tr[data-pct="100"] .pm-strong{color:var(--accent-ink)}
.pm-td-empty{color:var(--muted);text-align:center!important}

/* ---------- Warm-up ---------- */
.pm-warm-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:end}
.pm-warm-head .pm-panel-head{margin:0}
.pm-warm-controls{display:flex;gap:12px;align-items:flex-end}
.pm-warm-controls .zl-field{width:160px}
#warm-error{grid-column:1/-1;margin:0}
.pm-progress{display:flex;align-items:center;gap:16px;margin:28px 0 12px}
.pm-progress[hidden]{display:none}
.pm-progress-text{font-size:15px;color:var(--muted);white-space:nowrap}
.pm-progress-text b{color:var(--ink);font-size:17px}
.pm-progress-bar{flex:1;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}
.pm-progress-bar span{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .4s var(--ease)}
.pm-sets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pm-set{display:grid;grid-template-columns:44px minmax(150px,1.2fr) 64px minmax(0,2fr) auto;align-items:center;gap:16px;padding:12px 16px 12px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:background .2s,opacity .2s,border-color .2s}
.pm-set.is-work{border-color:var(--accent-line);background:color-mix(in oklab,var(--accent) 5%,var(--surface))}
.pm-set.is-done{background:var(--surface-2);border-color:transparent}
.pm-set.is-done .pm-set-main,.pm-set.is-done .pm-set-reps,.pm-set.is-done .pm-chips{opacity:.5}
.pm-set.is-done .pm-set-w strong{text-decoration:line-through;text-decoration-thickness:2px}
.pm-set-w{font-size:15px;color:var(--muted)}
.pm-set-w strong{font-size:24px;color:var(--ink);letter-spacing:-.025em}
.pm-set-meta{font-size:13px;color:var(--muted)}
.pm-set-reps{font-size:17px;font-weight:600}
.pm-check{position:relative;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.pm-check input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.pm-check-box{width:28px;height:28px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;color:transparent;transition:background .2s,border-color .2s,transform .2s var(--ease)}
.pm-check-box svg{width:16px;height:16px}
.pm-check input:checked + .pm-check-box{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:scale(1.06)}
.pm-check input:focus-visible + .pm-check-box{outline:3px solid color-mix(in oklab,var(--accent) 70%,transparent);outline-offset:2px}
.pm-check:hover .pm-check-box{border-color:var(--accent)}
.pm-warm-empty{list-style:none}

/* ---------- Program ---------- */
.pm-prog-inputs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
#p-error{margin:12px 0 0}
.pm-prog-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 20px;flex-wrap:wrap}
.pm-prog-tm{display:flex;align-items:baseline;gap:12px;margin:0 0 16px;flex-wrap:wrap}
.pm-prog-tm b{font-size:28px;letter-spacing:-.03em}
.pm-weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pm-week{background:var(--surface-2);border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:column;gap:8px}
.pm-week-head{display:flex;align-items:baseline;justify-content:space-between;padding:4px 6px 4px}
.pm-week-head b{font-size:16px}
.pm-week-head span{font-size:13px;color:var(--muted)}
.pm-week.is-deload{background:transparent;border:1px dashed var(--line-strong)}
.pm-cell{display:grid;grid-template-columns:1fr auto;grid-template-areas:"w r" "p p";align-items:baseline;gap:2px 8px;width:100%;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;color:var(--ink);transition:border-color .15s,transform .1s,box-shadow .15s}
.pm-cell:hover{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.pm-cell:active{transform:scale(.97)}
.pm-cell-w{grid-area:w;font-size:13px;color:var(--muted)}
.pm-cell-w b{font-size:22px;letter-spacing:-.03em;color:var(--ink)}
.pm-cell-r{grid-area:r;font-size:15px;font-weight:600}
.pm-cell-p{grid-area:p;font-size:13px;color:var(--muted)}
.pm-week .pm-cell:last-child:not(:only-child) .pm-cell-r{color:var(--accent-ink)}
.pm-week.is-deload .pm-cell:last-child .pm-cell-r{color:var(--ink)}
@media (prefers-reduced-motion:no-preference){.pm-weeks.anim .pm-cell{animation:pm-chip .35s var(--ease) both;animation-delay:calc(var(--d) * 25ms)}}
.pm-prog-note{margin:16px 0 0}

/* ---------- Log ---------- */
.pm-log-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.3fr) auto;gap:12px 16px;align-items:end;padding:20px;background:var(--surface-2);border-radius:var(--r-lg)}
.pm-log-form:has(#l-custom-wrap:not([hidden])){grid-template-columns:minmax(0,1.6fr) minmax(0,1.6fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,1.3fr) auto}
.pm-f-err{grid-column:1/-1;margin:0}
.pm-f-add{min-width:112px}
.pm-log-body[hidden]{display:none}
.pm-chart-card{margin-top:28px}
.pm-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.pm-chart-head .zl-hint{margin:4px 0 0}
.pm-chart-stats{display:flex;flex-wrap:wrap;gap:12px 40px;margin:20px 0 8px}
.pm-chart-stats .zl-stat b{font-size:24px}
.pm-chart-stats .zl-stat.big b{font-size:34px;color:var(--accent-ink)}
.pm-chart-stats .zl-stat.up b{color:var(--good)}
.pm-chart{position:relative;min-height:220px;margin:0 -8px}
.chart-svg{width:100%;height:auto;touch-action:pan-y;border-radius:12px}
.chart-svg:focus{outline:none}
.chart-svg:focus-visible{outline:3px solid color-mix(in oklab,var(--accent) 70%,transparent);outline-offset:2px}
.chart-grid line{stroke:var(--line);stroke-width:1}
.chart-axis{fill:var(--muted);font-size:12px;font-family:var(--font);font-variant-numeric:tabular-nums}
.chart-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chart-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}
.chart-dot.is-pr{fill:var(--accent)}
.chart-pr-ring{fill:none;stroke:var(--accent);stroke-opacity:.35;stroke-width:2}
.chart-cursor{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:3 4}
.chart-hot{fill:var(--accent);stroke:var(--surface);stroke-width:3;pointer-events:none}
.chart-tip{position:absolute;z-index:5;pointer-events:none;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:8px 12px;display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;white-space:nowrap}
.chart-tip b{font-size:17px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.chart-tip span:last-child{grid-column:1/-1;font-size:13px;color:var(--muted)}
.chart-tip .zl-badge{height:20px;justify-self:start}
.pm-chart-one{display:grid;place-items:center;min-height:160px;color:var(--muted);text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-md);margin:8px}
.pm-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:36px 0 8px}
.pm-day{border-top:1px solid var(--line);padding:16px 0 8px}
.pm-day header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}
.pm-day h3{margin:0;font-size:16px}
.pm-day header span{font-size:13px;color:var(--muted);text-align:right}
.pm-day ul{list-style:none;margin:0;padding:0}
.pm-entry{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 44px 44px;align-items:center;gap:12px;min-height:48px;padding:0 0 0 4px;border-radius:10px}
.pm-entry:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}
.pm-entry-ex{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-entry-set{color:var(--muted)}
.pm-entry-set b{color:var(--ink);font-size:17px}
.pm-entry-e1{color:var(--muted);font-size:15px}
.pm-pr{justify-self:start;background:var(--accent);color:var(--on-accent)}
.pm-del{color:var(--muted)}
.pm-del:hover{color:var(--bad)}
.pm-del svg{width:18px;height:18px}
@media (prefers-reduced-motion:no-preference){.pm-entry.is-new{animation:pm-new 1.4s var(--ease)}.pm-entry.is-new .pm-pr{animation:pm-pop .5s var(--ease) .1s both}}
@keyframes pm-new{0%{background:var(--accent-soft)}100%{background:transparent}}
@keyframes pm-pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.15)}100%{transform:none;opacity:1}}
.pm-more{margin:8px auto 0;display:flex}
#log-empty{margin-top:24px;border:1px dashed var(--line-strong);border-radius:var(--r-lg)}

/* ---------- Plates I own ---------- */
.pm-plates-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:end;margin-bottom:24px}
.pm-plates-head .pm-panel-head{margin:0}
.pm-plate-rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.pm-plate-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto 76px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.pm-plate-row.is-zero .pm-disc,.pm-plate-row.is-zero .pm-plate-name{opacity:.45}
.pm-disc svg{width:56px;height:56px}
.pm-disc svg > circle:first-child{stroke:var(--line-strong);stroke-width:1}
.pm-disc-hub{fill:rgba(0,0,0,.16)}
.pm-disc-hole{fill:var(--surface)}
.pm-plate-name b{display:block;font-size:17px;letter-spacing:-.015em}
.pm-plate-name small{display:block;font-size:13px;color:var(--muted)}
.pm-mini-step{display:flex;align-items:center;gap:4px;background:var(--surface-2);border-radius:999px;padding:2px;border:1px solid var(--line)}
.pm-mini{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.pm-mini svg{width:18px;height:18px}
.pm-mini:hover:not([disabled]){background:var(--raised);box-shadow:var(--shadow-sm)}
.pm-mini[disabled]{opacity:.3;cursor:not-allowed}
.pm-count{min-width:28px;text-align:center;font-size:17px;font-weight:700}
.pm-plate-sub{text-align:right;color:var(--muted);font-size:15px}
.pm-plates-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;flex-wrap:wrap}
.pm-plates-foot .zl-hint{margin:0}

/* ---------- Feature tile visuals ---------- */
.pm-v-rack{display:flex;align-items:flex-end;gap:16px;height:120px;padding-top:12px}
.pm-v-rack div{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}
.pm-v-rack i{display:block;width:20px;height:var(--h);max-height:88px;border-radius:6px;background:var(--c);box-shadow:inset -3px 0 0 rgba(0,0,0,.15)}
.pm-v-rack div:first-child{flex-direction:column}
.pm-v-rack div:first-child i + i{display:none}
.pm-v-rack i.lt,.pm-v-rack i.dk{box-shadow:inset 0 0 0 1px var(--line-strong)}
.pm-v-rack b{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.pm-v-531{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:baseline;background:var(--surface-2);border-radius:var(--r-md);padding:16px}
.pm-v-531 span{font-size:13px;color:var(--muted)}
.pm-v-531 b{font-size:17px;font-variant-numeric:tabular-nums}
.pm-v-spark{width:100%;height:120px}
.pm-v-near{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pm-v-ask{font-size:28px;font-weight:700;letter-spacing:-.03em;margin-right:8px;color:var(--faint);text-decoration:line-through}
.pm-v-opt{padding:8px 14px;border-radius:12px;border:1px solid var(--accent-line);font-weight:700;color:var(--accent-ink)}
.pm-v-dots{display:flex;gap:8px}
.pm-v-dots i{width:36px;height:36px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 9px rgba(0,0,0,.12)}
.pm-v-dots i.lt{box-shadow:inset 0 0 0 1px var(--line-strong),inset 0 0 0 9px rgba(0,0,0,.06)}
.pm-v-dots i.dk{box-shadow:inset 0 0 0 1px var(--line-strong),inset 0 0 0 9px rgba(255,255,255,.06)}
.pm-v-slash{color:var(--faint);font-weight:400}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .pm-load-top{grid-template-columns:1fr;gap:24px}
  .pm-load-foot{grid-template-columns:1fr}
  .pm-bar-opts{justify-content:flex-start}
  .pm-prog-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pm-log-form,.pm-log-form:has(#l-custom-wrap:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr))}
  .pm-f-add{grid-column:1/-1}
  .pm-plate-rows{grid-template-columns:1fr}
  .pm-set{grid-template-columns:44px minmax(0,1fr) auto auto;grid-template-areas:"c m r b" "c p p p"}
  .pm-set .pm-check{grid-area:c;align-self:start}
  .pm-set-main{grid-area:m}.pm-set-reps{grid-area:r}.pm-set .pm-chips{grid-area:p}.pm-set > .zl-btn{grid-area:b}
}
@media (max-width:720px){
  .pm-panel{padding:20px 16px 24px}
  .pm-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:6px}
  .pm-tabs [role=tab]{flex-direction:column;gap:2px;min-height:56px;padding:6px 2px;border-radius:12px;font-size:11px;font-weight:600}
  .pm-tabs [role=tab] svg{width:22px;height:22px}
  .zl-appbar{padding:10px 12px}
  .zl-appbar-title{flex-basis:100%;margin-bottom:4px}
  #example{margin-left:auto}
  .pm-logcount{display:none}
  .pm-stepper{gap:12px}
  .pm-step{width:60px;height:60px}
  .pm-autosize{font-size:60px}
  .pm-target-unit{font-size:22px}
  .pm-summary{padding:16px;min-height:0}
  .pm-bar-stage{margin-top:24px;padding:16px 8px 10px}
  .pm-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .pm-stats .zl-stat.big b{font-size:28px}
  .pm-bar-opts{flex-direction:column;gap:12px;align-items:stretch}
  .pm-bar-opts > .zl-field:last-child{max-width:none}
  #custom-wrap{width:auto}
  .pm-split{grid-template-columns:1fr;gap:24px}
  .pm-rm-result{padding:24px 16px}
  .pm-methods dd{font-size:15px}
  .pm-table th,.pm-table td{padding:8px 12px}
  .pm-table thead th:nth-child(2),.pm-table td:nth-child(2){display:none}
  .pm-warm-head{grid-template-columns:1fr}
  .pm-warm-controls{flex-wrap:wrap}
  .pm-warm-controls .zl-field{flex:1;min-width:140px;width:auto}
  .pm-progress{flex-wrap:wrap;gap:8px 16px}
  .pm-progress-bar{order:3;flex-basis:100%}
  .pm-progress-text{margin-right:auto}
  .pm-set{gap:8px 12px;padding:10px 12px 12px 6px}
  .pm-set-w strong{font-size:22px}
  .pm-prog-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pm-prog-inputs .zl-field:last-child{grid-column:1/-1}
  .pm-weeks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pm-week{padding:8px}
  .pm-cell{padding:10px}
  .pm-cell-w b{font-size:19px}
  .pm-log-form{padding:16px}
  .pm-chart-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .pm-chart-stats .zl-stat.big b{font-size:28px}
  .pm-entry{grid-template-columns:minmax(0,1fr) auto 44px;grid-template-areas:"ex set del" "e1 pr del";row-gap:0;padding:6px 0 6px 4px}
  .pm-entry-ex{grid-area:ex}.pm-entry-set{grid-area:set;text-align:right}.pm-entry-e1{grid-area:e1;font-size:13px}.pm-entry .pm-pr,.pm-pr-gap{grid-area:pr;justify-self:end}.pm-del{grid-area:del}
  .pm-plates-head{grid-template-columns:1fr}
  .pm-plate-row{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"d n s" "d u s"}
  .pm-disc{grid-area:d}.pm-disc svg{width:44px;height:44px}
  .pm-plate-name{grid-area:n}.pm-mini-step{grid-area:s}.pm-plate-sub{grid-area:u;text-align:left;font-size:13px}
  .pm-mini{width:44px;height:44px}
  .pm-v-rack{gap:10px}
  .pm-v-rack b{font-size:11px}
}
@media (max-width:400px){
  .pm-autosize{font-size:52px}
  .pm-step{width:56px;height:56px}
}
@media (max-width:720px){.pm-f-ex,.pm-f-custom,.pm-f-d{grid-column:1/-1}}
@media (max-width:720px){
  .zl-app .zl-seg button{min-height:44px}
  .zl-app .zl-btn-sm{min-height:44px}
  .pm-del{width:44px;height:44px}
}
@media (max-width:720px){
  #panel-load{display:flex;flex-direction:column}
  #panel-load .pm-load-top{display:contents}
  #panel-load .pm-target{order:1}
  #panel-load .pm-bar-stage{order:2;margin-top:20px}
  #panel-load .pm-summary{order:3;margin-top:16px}
  #panel-load .pm-load-foot{order:4}
}
