/* PT · shared pieces (.ptx-*) [8.4]. Own tokens so it sits the same in the desk panel, the coach phone and the client phone. Version pills = the house .cpv-tier (black when on). */
.ptx{--x-sf:#fff;--x-sk:#EEF1F4;--x-ln:#DDE3E9;--x-ln2:#C3CCD6;--x-fg:#12161A;--x-mu:#5B6672;--x-sb:#8794A1;--x-el:#075DC6;--x-eld:#044399;--x-elt:#E6EFFB;--x-fg2:#8A640C;--x-fgt:#FBF2DC;--x-tu:#137A4A;--x-tut:#E4F4EC;
  --x-c:"Barlow Condensed",Impact,sans-serif;--x-b:Inter,"Helvetica Neue",Arial,sans-serif;--x-m:"JetBrains Mono",ui-monospace,Menlo,monospace;font-family:var(--x-b);color:var(--x-fg);box-sizing:border-box}
.ptx *{box-sizing:border-box}
.ptx button{font-family:inherit;cursor:pointer;color:inherit;background:none}
.ptx-wk{background:var(--x-sf);border:1px solid var(--x-ln);border-radius:8px;padding:12px 14px 13px;display:grid;gap:8px}
.ptx-wk .eb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;color:var(--x-mu)}
.ptx .src{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:2px 6px;background:var(--x-sk);color:var(--x-fg)}
.ptx .src.s-bench{background:#12161A;color:#fff}.ptx .src.s-day{background:var(--x-elt);color:var(--x-eld)}.ptx .src.s-club{background:var(--x-fgt);color:var(--x-fg2)}.ptx .src.s-goal{background:var(--x-tut);color:var(--x-tu)}
.ptx-wk .tt{font-family:var(--x-c);font-weight:900;font-size:26px;line-height:1;letter-spacing:.02em;text-transform:uppercase;text-wrap:balance}
.ptx-lines{display:grid;gap:3px;font-size:13.5px;line-height:1.4}
.ptx-lines .ld{font-weight:700}
.ptx-lines .ln{padding-left:12px;position:relative}.ptx-lines .ln:before{content:"";position:absolute;left:2px;top:.62em;width:4px;height:4px;border-radius:50%;background:var(--x-sb)}
.ptx-nov{border:1.5px dashed var(--x-ln2);border-radius:6px;padding:10px;font-size:12px;color:var(--x-mu);text-align:center}
.ptx-wk .ft{display:flex;gap:5px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--x-ln)}
.ptx .sc{font-family:var(--x-m);font-size:10.5px;font-weight:700;background:var(--x-fg);color:#fff;border-radius:3px;padding:2px 7px}
.ptx .mv{font-size:10.5px;color:var(--x-mu);border:1px solid var(--x-ln);border-radius:999px;padding:1px 8px}
.ptx-vp{display:flex;gap:3px;background:var(--x-sf);border:1px solid var(--x-ln);border-radius:999px;padding:3px}
.ptx-vp button{flex:1;min-height:32px;border:0;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--x-mu)}
.ptx-vp button.on{background:#111;color:#fff}
.ptx-vp button:disabled{opacity:.35;cursor:default;text-decoration:line-through}
.ptx-nonotes{border:1.5px dashed #D9A21B;background:var(--x-fgt);border-radius:8px;padding:11px 13px;display:grid;gap:3px;font-size:12px;line-height:1.45;color:var(--x-fg2)}
.ptx-nonotes b{color:var(--x-fg);font-size:12.5px}
.ptx-notes{background:var(--x-sf);border:1px solid var(--x-ln);border-radius:8px;display:grid}
.ptx-notes .hd{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border-bottom:1px solid var(--x-ln);background:var(--x-sk);border-radius:8px 8px 0 0}
.ptx-notes .hd b{font-family:var(--x-c);font-weight:900;font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.ptx-notes .hd span{margin-left:auto;font-size:10.5px;color:var(--x-mu)}
.ptx-notes .blk{padding:11px 14px;border-bottom:1px solid var(--x-ln);display:grid;gap:7px}
.ptx-notes .blk:last-child{border-bottom:0}
.ptx-notes h5{margin:0;display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--x-sb)}
.ptx-notes h5 em{font-style:normal;font-family:var(--x-m);font-size:10px;letter-spacing:0;color:var(--x-eld);background:var(--x-elt);border-radius:3px;padding:1px 6px}
.ptx-notes p{margin:0;font-size:13px;line-height:1.5;text-wrap:pretty}
.ptx-notes ul{margin:0;padding-left:17px;font-size:13px;line-height:1.5}
.ptx-notes .sca,.ptx-notes .lk{display:grid;gap:6px}
.ptx-notes .sca div,.ptx-notes .lk div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;font-size:12px;line-height:1.4;padding-bottom:6px;border-bottom:1px dashed var(--x-ln)}
.ptx-notes .sca div:last-child,.ptx-notes .lk div:last-child{border-bottom:0;padding-bottom:0}
.ptx-notes .sca span,.ptx-notes .lk span{color:var(--x-mu)}
.ptx-notes .lk b{color:var(--x-eld)}
.ptx-notes .hr{display:grid;gap:0}
.ptx-notes .hr>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:1px 10px;padding:7px 0;border-bottom:1px solid var(--x-ln)}
.ptx-notes .hr>div:last-child{border-bottom:0}
.ptx-notes .hr em{grid-row:1/4;font-style:normal;font-family:var(--x-m);font-size:10.5px;font-weight:700;color:var(--x-mu);padding-top:2px}
.ptx-notes .hr b{font-size:12.5px}
.ptx-notes .hr span{font-size:12px;line-height:1.45;color:var(--x-fg);text-wrap:pretty}
.ptx-notes .hr q{font-size:12px;font-weight:700;color:var(--x-eld)}
.ptx-notes .hr .wod b{color:var(--x-eld)}
.ptx-pick{display:grid;gap:9px;align-content:start} /* [v8.28] min-height auto, not 0: as a grid row of the desk panel body a 0 minimum let the row shrink to the panel height, and the list (overflow:hidden = a 0 minimum too) was squashed to the leftover space: 6,500px of workouts clipped at 335px with nothing to scroll. The picker is content-sized; the sheet around it scrolls. */
.ptx-pick .q{width:100%;border:1px solid var(--x-ln2);border-radius:6px;padding:10px 12px;font:inherit;font-size:13px;background:var(--x-sf)}
.ptx-pick .q:focus{outline:2px solid var(--x-el);outline-offset:-1px}
.ptx-pick .srcs{display:flex;gap:5px;flex-wrap:wrap}
.ptx-pick.ph .srcs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ptx-pick .srcs button{display:flex;align-items:center;gap:6px;border:1px solid var(--x-ln2);border-radius:999px;padding:6px 11px;font-size:11.5px;font-weight:700;white-space:nowrap;background:var(--x-sf)}
.ptx-pick .srcs button em{font-style:normal;font-family:var(--x-m);font-size:10px;color:var(--x-sb)}
.ptx-pick .srcs button.on{background:var(--x-fg);border-color:var(--x-fg);color:#fff}.ptx-pick .srcs button.on em{color:#C3CCD6}
.ptx-pick .row2{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ptx-pick .mvs{display:flex;gap:4px;flex-wrap:wrap;flex:1 1 auto;min-width:0}
.ptx-pick .mvs button{border:1px dashed var(--x-ln2);border-radius:999px;padding:3px 9px;font-size:10.5px;color:var(--x-mu)}
.ptx-pick .mvs button.on{border-style:solid;border-color:var(--x-el);background:var(--x-elt);color:var(--x-eld);font-weight:700}
.ptx-pick .so{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--x-sb)}
.ptx-pick .so select{font:inherit;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--x-fg);border:1px solid var(--x-ln2);border-radius:5px;padding:5px 7px;background:var(--x-sf)}
.ptx-pick .lst{display:grid;border:1px solid var(--x-ln);border-radius:8px;background:var(--x-sf);overflow:clip} /* [v8.28] clip, not hidden: still rounds the corners, but not a scroll container, so the list keeps its content height */
.ptx-pick .it{border-bottom:1px solid var(--x-ln)}.ptx-pick .it:last-child{border-bottom:0}
.ptx-pick .it.on{background:#F7FAFE;box-shadow:inset 3px 0 0 var(--x-el)}
.ptx-pick .it .hd{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;padding:10px 12px;min-height:44px}
.ptx-pick .it .hd:hover{background:var(--x-sk)}
.ptx-pick .r{flex:0 0 16px;height:16px;border-radius:50%;border:1.5px solid var(--x-ln2)}
.ptx-pick .r.on{border:5px solid var(--x-el)}
.ptx-pick .it .b{flex:1 1 auto;min-width:0;display:grid;gap:1px}
.ptx-pick .it .b b{font-size:13.5px;font-weight:700}
.ptx-pick .it .b span{font-size:11px;color:var(--x-mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptx-pick .it .tg{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto}
.ptx-pick.ph .it .tg{max-width:118px}
.ptx-flag,.ptx-done,.ptx-new{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 7px;white-space:nowrap}
.ptx-flag{background:repeating-linear-gradient(135deg,#FBF2DC 0 4px,#F4E3B5 4px 6px);color:#8A640C;border:1px solid #E2C06A}
.ptx-done{background:var(--x-sk);color:var(--x-mu);text-transform:none;letter-spacing:0;font-family:var(--x-m);font-weight:600}
.ptx-new{background:var(--x-elt);color:var(--x-eld)}
.ptx-pick .ex{padding:0 12px 12px 38px;display:grid;gap:8px}
.ptx-pick .ex .st{margin:0;font-size:12px;line-height:1.45;color:var(--x-mu)}
.ptx-pick .ex .st b{color:var(--x-fg)}
.ptx-pick .ex .st.warn{color:#8A640C}
.ptx-pick .none{padding:18px;text-align:center;font-size:12px;color:var(--x-sb)}
.ptx-pick .note{font-size:11px;color:var(--x-mu)}

/* [v8.36] the workout's tags under its name in the library */
.ptx-pick .ptx-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.ptx-pick .ptx-tags i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.02em;padding:1px 6px;border-radius:999px;background:#EEF1F4;color:#4A5561}

/* [v8.43] the workout as pieces inside a PT card: the Floor look, flush with the card */
.ptx .cpv-ver.ptx-pcs{margin:2px 0 4px}
.apm-lines .cpv-ver.ptx-pcs{border:0;background:transparent;padding:0;margin:0}
