/* Gymveo · Wave 3 · classes and programs screens. Page-specific layout only; colours and components come from tokens.css / components.css. */
/* Local prefix: co-. Pages: /classes, /classes/sessions/:id, /classes/stats, /programs/* (body.view-classes / body.view-programs). */

/* ---- shared page pieces ---- */
.co-ph{align-items:flex-end}
.co-ph h2.co-h{font-size:24px;letter-spacing:-.025em;line-height:1.2}
[dir="rtl"] .co-ph h2.co-h{letter-spacing:0;line-height:1.35}
.co-ph h1{font-size:30px;letter-spacing:-.03em;line-height:1.15;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
[dir="rtl"] .co-ph h1{letter-spacing:0;line-height:1.35}
.co-ph .t-label{display:block;margin-bottom:4px}
.co-ph h1 .tag{letter-spacing:0;font-size:12.5px}
.co-ph .t-small{margin-top:4px}
.co-ph>div:first-child{min-width:0}
.co-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14px;margin-top:-10px}
.co-back svg.ic{width:18px;height:18px}
.co-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.co-tools form{margin:0}
.co-flip-ltr{transform:scaleX(-1)}
[dir="rtl"] .co-flip-ltr{transform:none}
[dir="rtl"] .co-flip-rtl{transform:scaleX(-1)}
.co-up{transform:rotate(90deg)}
.co-down{transform:rotate(-90deg)}
.co-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.co-row.nw{flex-wrap:nowrap}
.co-row form{margin:0}
.co-end{margin-inline-start:auto}
.co-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.co-lh{display:flex;align-items:baseline;gap:10px}
.co-lh .end{margin-inline-start:auto}
.co-lbl{letter-spacing:0;font-size:13px;font-weight:600;color:var(--text-2);display:flex;justify-content:space-between;gap:8px;margin:0 0 6px}
.co-lbl em{font-style:normal;font-weight:500;color:var(--muted)}
.co-note{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:flex-start}
.co-note svg.ic{width:16px;height:16px;margin-top:2px}
.co-kv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.co-kv b{font-variant-numeric:tabular-nums;text-align:end}
.co-kv a{color:inherit}
.co-muted td,.co-muted th{color:var(--muted)}
.co-none{display:block;padding:12px 10px}
.co-narrow{max-width:760px}
.co-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.co-fs{border:0;margin:0;padding:0;min-width:0}
.co-fs legend{padding:0}
.co-meta{display:inline-flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:13.5px;color:var(--text-2)}
.co-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.co-tags a.tag{text-decoration:none}
.co-pad{padding:12px 0}
.co-ph-only{display:none}
.co-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-radius:10px;background:var(--sunken);font-size:14.5px}
.co-banner .link{margin-inline-start:auto}
.co-quote{display:grid;gap:4px;padding:12px 14px;border-radius:10px;background:var(--sunken);font-size:14.5px}
.view-classes .empty,.view-programs .empty{display:grid;gap:10px;justify-items:start;padding:28px 0;max-width:34em}
.view-classes .empty .t-h2,.view-programs .empty .t-h2{color:var(--text)}
.view-classes .empty p,.view-programs .empty p{color:var(--muted);font-size:15px}
.av img{width:100%;height:100%;object-fit:cover}
button.chip{background:none;cursor:pointer;font-family:inherit}
button.chip.on{background:var(--text);color:var(--page)}

/* owner: pages of the Entraînement area */
.co-ahead{margin-bottom:4px}
.co-area{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin-top:-8px}
.co-area a{display:flex;align-items:center;min-height:44px;padding:0 14px;font-size:14.5px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.co-area a.on{color:var(--text);box-shadow:inset 0 -3px 0 var(--action)}

/* segmented links / radios (the kit's .seg with real controls) */
.co-seg a,.seg.co-radios label{height:38px;padding:0 14px;border-radius:8px;display:flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap;cursor:pointer;position:relative}
.co-seg a.on,.seg.co-radios label:has(input:checked){background:var(--raised);color:var(--text);box-shadow:0 1px 2px rgba(11,21,48,.12)}
.seg.co-radios{flex-wrap:wrap}
.seg.co-radios.num label{min-width:44px;justify-content:center;padding:0 10px}
.co-radios input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.co-radios .chip{height:44px;cursor:pointer;position:relative}
.co-radios .chip:has(input:checked){background:var(--text);color:var(--page);border-color:var(--text)}
.co-radios label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}

/* search field built from the kit's .input (label wraps the real input) */
label.input.co-search{cursor:text;min-width:0}
.co-search input{flex:1;width:0;min-width:0;height:100%;border:0;background:transparent;outline:0;padding:0;font:inherit;color:inherit}
.co-search input::placeholder{color:var(--muted)}
.co-search:focus-within{border-color:var(--action);box-shadow:0 0 0 3px rgba(47,80,255,.18)}
.co-search input::-webkit-search-cancel-button{cursor:pointer}
.co-search .end{white-space:nowrap}

/* two columns: side summary (inline start) + main pane */
.co-2{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-areas:"side pane";gap:28px;align-items:start}
.co-pane{grid-area:pane;display:flex;flex-direction:column;gap:18px;min-width:0}
.co-side{grid-area:side;display:flex;flex-direction:column;gap:12px;padding-inline-end:24px;border-inline-end:1px solid var(--line);min-width:0;align-self:stretch}
.co-side .t-label{margin-top:6px}
.co-side>.t-label:not(:first-child){margin-top:22px}
.co-side>.link{margin-top:6px}

/* ---- classes: day agenda with a time rail ---- */
.co-datenav{display:flex;align-items:center;gap:6px;margin:0}
.co-date{width:168px}
.co-agenda{border-top:1px solid var(--line)}
.co-ag{--rail:84px;position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) minmax(150px,230px) auto;gap:18px;align-items:center;padding:15px 4px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}
.co-ag::before{content:"";position:absolute;inset-block:0;inset-inline-start:var(--rail);width:1px;background:var(--line)}
.co-ag::after{content:"";position:absolute;top:50%;inset-inline-start:calc(var(--rail) - 4px);width:9px;height:9px;margin-top:-5px;border-radius:50%;background:var(--page);box-shadow:inset 0 0 0 2px var(--line-2,var(--line))}
.co-ag.now::after{background:var(--live);box-shadow:none}
.co-ag:hover{background:var(--panel)}
.co-ag time{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}
.co-ag time small{display:block;font-size:12.5px;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:2px}
.co-ag-main{min-width:0;padding-inline-start:12px}
.co-ag .nm{display:block;font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-ag .t-small{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:2px}
.co-ag-fill{display:block;min-width:0}
.co-ag-fill .meter{display:block;margin-top:6px}
.co-ag.full .meter i,.meter.co-inkbar i{background:var(--text)}
.co-ag.cancelled .nm,.co-ag.cancelled time{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.co-ag.cancelled .meter{opacity:.4}
.co-ag.done time,.co-ag.done .nm{color:var(--text-2)}
.co-now{--rail:84px;position:relative;display:flex;align-items:center;gap:0;height:30px;padding:0 4px}
.co-now-t{width:72px;font-size:13px;font-weight:600;color:var(--text)}
.co-now-l{display:flex;align-items:center;gap:8px;padding-inline:4px 10px;font-size:12.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
[dir="rtl"] .co-now-l{text-transform:none;letter-spacing:0}
.co-now::before{content:"";position:absolute;top:50%;inset-inline-start:calc(var(--rail) - 5px);width:11px;height:11px;margin-top:-6px;border-radius:50%;background:var(--live)}
.co-now-l{margin-inline-start:18px}
.co-now::after{content:"";flex:1;height:2px;background:var(--live);border-radius:1px}

/* ---- classes: week grid ---- */
.co-week{display:grid;grid-template-columns:62px repeat(7,minmax(0,1fr));border-top:1px solid var(--line)}
.co-week-r{display:contents}
.co-week-r>*{border-bottom:1px solid var(--line);border-inline-start:1px solid var(--line-soft);padding:8px 6px;min-height:84px;display:flex;flex-direction:column;gap:6px;min-width:0}
.co-week-r>.h{min-height:0;padding:10px 8px;font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none;white-space:nowrap}
.co-week-r>.h.on{color:var(--text);box-shadow:inset 0 -3px 0 var(--action)}
.co-week-r>.tm{border-inline-start:0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:10px}
.co-slot{display:block;background:var(--panel);border-radius:6px;padding:6px 8px;font-size:12.5px;line-height:1.3;box-shadow:0 1px 0 var(--line);border-inline-start:3px solid var(--accent-2);color:var(--text);text-decoration:none;min-height:44px}
.co-slot b{display:block;font-size:13px;overflow-wrap:anywhere;hyphens:auto}
.co-slot small{color:var(--muted);font-variant-numeric:tabular-nums}
.co-slot.full{border-inline-start-color:var(--text)}
.co-slot.cancelled{opacity:.55;border-inline-start-color:var(--line)}
.co-slot.cancelled b{text-decoration:line-through}
.co-slot:hover{box-shadow:0 1px 0 var(--line),0 0 0 1px var(--line)}
.co-weeklist{display:none}

/* ---- classes: session (attendance + walk-in) ---- */
.co-sess{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}
.co-att-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 4px 10px;border-bottom:1px solid var(--line)}
.co-att-h h2{margin:0}
.co-att-list{list-style:none;margin:0;padding:0}
.co-att{display:grid;grid-template-columns:44px 40px minmax(0,1fr) auto 44px;gap:10px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line-soft)}
.co-att.off{opacity:.6}
.co-chk{width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.co-chk input[type=checkbox]{appearance:none;-webkit-appearance:none;margin:0;width:24px;height:24px;border-radius:6px;border:1.5px solid var(--line-2,var(--line));background:var(--panel);cursor:pointer;display:grid;place-items:center;background-position:center;background-repeat:no-repeat;background-size:16px 16px}
.desk .co-chk input[type=checkbox]{border-color:var(--muted)}
.co-chk input[type=checkbox]:checked{background-color:var(--action);border-color:var(--action);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");animation:co-pop .12s ease-out}
@keyframes co-pop{from{transform:scale(.8)}to{transform:scale(1)}}
.co-who{min-width:0}
.co-who .nm{display:block;font-weight:600;font-size:15.5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-who small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-who small a{color:inherit}
.co-att-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-top:14px}
.co-walkin{display:flex;flex-direction:column;gap:10px}
.co-walkin h2{margin:0}
.co-results{list-style:none;margin:0;padding:0}
.co-results .li{color:var(--text);text-decoration:none;border-radius:10px}
.co-results .li:hover,.co-results .li:focus-visible{background:var(--panel)}
.co-li-end{display:flex;align-items:center;gap:8px}

/* ---- classes: stats ---- */
.co-period{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0}
.co-period .input{width:170px}
.co-sent{max-width:34em}
.co-bars{display:grid;gap:10px;max-width:760px;margin-bottom:22px}
.co-bars-r{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr) 64px;gap:14px;align-items:center;font-size:14.5px}
.co-bars-r .meter{grid-column:auto;height:10px;border-radius:5px;margin:0}
.co-bars-r b{text-align:end}
.co-tbl-wrap{min-width:0}
.tbl tbody th[scope=row]{font-size:inherit;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text);text-align:start;padding:11px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.co-muted th[scope=row]{color:var(--muted)}
.co-bar{display:grid;gap:4px;min-width:120px}
.co-bar .meter{margin-top:0}
.co-bar b{justify-self:start}

/* ---- programs: list ---- */
.co-plist .co-pname a{color:var(--text);text-decoration:none}
.co-plist .co-pname a:hover b{text-decoration:underline;text-decoration-color:var(--action);text-decoration-thickness:2px;text-underline-offset:4px}
.co-plist .co-pname small{display:block;font-size:12.5px;color:var(--muted);width:0;min-width:100%;max-width:52ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} /* width:0 keeps the one-line description from widening the table */
.co-plist tbody th[scope=row]{padding-block:9px}
.co-plist td,.co-plist th{padding-block:9px}
.co-plist .co-pname small.co-ph-only{display:none}
.co-act{text-align:end;white-space:nowrap}
.co-act>*{vertical-align:middle}
.co-menu{position:relative;display:inline-block}
.co-menu>summary{list-style:none;cursor:pointer}
.co-menu>summary::-webkit-details-marker{display:none}
.co-menu-l{position:absolute;inset-inline-end:0;top:calc(100% + 4px);z-index:30;min-width:220px;background:var(--panel);border-radius:12px;box-shadow:0 24px 50px -18px rgba(3,7,18,.45),0 0 0 1px var(--line);padding:6px;display:grid;text-align:start}
.co-menu-l form{margin:0}
.co-menu-l a,.co-menu-l button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:14.5px;text-decoration:none;cursor:pointer;text-align:start;white-space:nowrap}
.co-menu-l a:hover,.co-menu-l button:hover:not([disabled]),.co-menu-l button:focus-visible,.co-menu-l a:focus-visible{background:var(--sunken)}
.co-menu-l button[disabled]{opacity:.45;cursor:default}
.co-menu-l svg.ic{width:18px;height:18px;color:var(--muted)}

/* new programme: side panel (a modal dialog) */
dialog.gv.co-sheet{position:fixed;margin:0;inset-block:0;inset-inline-start:auto;inset-inline-end:0;width:min(480px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;overflow:auto}
dialog.gv.co-sheet[open]{animation:co-in .2s ease-out}
@keyframes co-in{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
[dir="rtl"] dialog.gv.co-sheet[open]{animation-name:co-in-rtl}
@keyframes co-in-rtl{from{transform:translateX(-24px);opacity:.6}to{transform:none;opacity:1}}
.co-sheet-b{display:flex;flex-direction:column;gap:16px;margin:0}
.co-sheet .co-sheet-b{min-height:100%;background:var(--panel);padding:20px 24px 28px;box-shadow:-24px 0 48px -24px rgba(3,7,18,.45)}
.co-sh{display:flex;align-items:center;gap:10px}
.co-sh>.btn{margin-inline-start:auto}
.co-sh h2{font-size:21px}
[dir="rtl"] .co-sh h2{letter-spacing:0}
.co-sh small{display:block;font-size:13px;color:var(--muted);font-weight:500}
.co-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:15px}
.co-more>summary::-webkit-details-marker{display:none}
.co-more>summary::before{content:"";width:8px;height:8px;border-inline-end:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin-inline-end:4px;transition:transform .15s}
[dir="rtl"] .co-more>summary::before{transform:rotate(45deg)}
.co-more[open]>summary::before{transform:rotate(45deg)}
.co-more>summary .t-small{font-weight:400}
.co-info{border-block:1px solid var(--line);padding-bottom:4px}
.co-info[open]{padding-bottom:18px}

/* ---- programs: builder ---- */
.co-builder{display:flex;flex-direction:column;container-type:inline-size}
.co-dtabs{display:flex;align-items:flex-end;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.co-dtabs-l{display:flex;gap:4px}
.co-dtab{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border:0;background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:8px 8px 0 0}
.co-dtab small{font-weight:500;font-variant-numeric:tabular-nums}
.co-dtab[aria-selected="true"]{color:var(--text);box-shadow:inset 0 -3px 0 var(--action)}
.co-dtab:hover{color:var(--text)}
.co-dtab-add{color:var(--text-2)}
.co-dtab-add svg.ic{width:18px;height:18px}
.co-day{display:flex;flex-direction:column;padding-top:14px}
.co-dayhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;padding-bottom:14px}
.co-dayctl{display:flex;gap:6px}
.co-exlist{list-style:none;margin:0;padding:0}
.co-ex{display:grid;grid-template-columns:24px 44px minmax(0,1fr) 64px 112px 104px 76px 44px;gap:6px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.co-exh{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:6px 0;border-top:1px solid var(--line)}
[dir="rtl"] .co-exh{letter-spacing:0;text-transform:none;font-size:12.5px}
.co-exf{display:contents}
.co-ex .n{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}
.co-exname{min-width:0}
.co-exname .nm{display:block;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-exname small{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-f{display:block;min-width:0}
.co-fl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.co-in{width:100%;height:44px;border-radius:8px;border:1.5px solid transparent;background:var(--sunken);text-align:center;font:600 14.5px/1 inherit;font-family:inherit;font-variant-numeric:tabular-nums;color:var(--text);padding:0 6px;outline:0}
select.co-in{appearance:none;-webkit-appearance:none;cursor:pointer;text-align-last:center;padding:0 8px}
.co-in:focus,.co-unit:focus-within{border-color:var(--action);box-shadow:0 0 0 3px rgba(47,80,255,.18)}
.co-in:invalid{border-color:var(--bad)}
.co-unit{display:flex;align-items:center;gap:4px;height:44px;border-radius:8px;border:1.5px solid transparent;background:var(--sunken);padding:0 8px;font-weight:600;font-size:14px;color:var(--text-2)}
.co-unit svg.ic{width:16px;height:16px;color:var(--muted)}
.co-unit .co-in{height:40px;border:0;background:transparent;box-shadow:none;padding:0;min-width:0}
.co-f-cue{grid-row:2;grid-column:3 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.co-f-cue .co-in{text-align:start;font-weight:400;font-size:13.5px;background:transparent;border:0;border-bottom:1.5px dashed var(--line);border-radius:0;padding:0 2px;text-align-last:auto}
.co-f-cue .co-in:focus{border-bottom-style:solid;border-bottom-color:var(--action);box-shadow:none}
.co-ex>.co-menu{grid-row:1;grid-column:8}
.co-ex .co-menu-l{min-width:200px}
.co-new{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:12px;border-radius:10px;border:1.5px dashed var(--line-2,var(--line));background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--text-2);cursor:pointer}
.desk .co-new{border-color:var(--muted)}
.co-new:hover{background:var(--panel);color:var(--text)}
.co-exempty{padding:16px 0;color:var(--muted)}
.co-thumb{width:44px;height:44px;border-radius:8px;background:var(--sunken);display:grid;place-items:center;font-size:13px;font-weight:700;letter-spacing:-.02em;color:var(--text-2);flex:none;text-transform:uppercase;overflow:hidden}
.co-thumb img{width:100%;height:100%;object-fit:cover;background:var(--paper)}
.co-thumb.lg{width:64px;height:64px;font-size:16px;border-radius:10px}
.co-thumb.xl{width:88px;height:88px;font-size:20px;border-radius:12px}
.pb-ex.flash-in{animation:co-flash 1.2s ease-out}
@keyframes co-flash{from{background:var(--sunken)}to{background:transparent}}
.co-static{list-style:none;margin:6px 0 16px;padding:0;display:grid;gap:8px}
.co-static li{display:flex;gap:10px;align-items:center}
/* sticky save bar */
.co-savebar{position:sticky;bottom:12px;z-index:15;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding:10px 12px 10px 16px;background:var(--panel);border-radius:12px;box-shadow:0 1px 0 var(--line),0 12px 30px -16px rgba(11,21,48,.4)}
.co-savebar-sum{margin-inline-start:auto}
.co-savebar.dirty #pb-status{color:var(--text);font-weight:600;display:inline-flex;align-items:center;gap:8px}
.co-savebar.dirty #pb-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--live)}
.co-toast{position:fixed;z-index:40;inset-inline-end:24px;bottom:96px;max-width:min(360px,calc(100vw - 32px));padding:12px 16px;border-radius:12px;background:var(--text);color:var(--page);font-size:14.5px;box-shadow:0 12px 30px -12px rgba(3,7,18,.5)}
.co-toast.bad{background:var(--bad-bg);color:var(--bad)}
/* exercise picker */
dialog.gv.co-picker{width:min(680px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
.co-picker-b{background:var(--panel);border-radius:14px;box-shadow:0 30px 60px -20px rgba(3,7,18,.5);padding:20px 24px;display:flex;flex-direction:column;gap:12px;max-height:min(780px,88dvh)}
.co-picker-b>*{flex:none}
.co-chips{gap:6px}
.co-chips .chip{text-decoration:none;min-height:44px}
.co-picker-list{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:180px;overflow:auto}
.co-pick{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;width:100%;padding:10px 4px;border:0;border-bottom:1px solid var(--line-soft);background:none;color:var(--text);font:inherit;text-align:start;cursor:pointer}
.co-pick:hover,.co-pick:focus-visible{background:var(--sunken);border-radius:10px}
.co-pick.on{background:var(--sunken);border-radius:10px;border-bottom-color:transparent}
.co-pick-t{min-width:0}
.co-pick-t b{display:block;font-size:15px}
.co-alt{display:block;font-family:"Readex Pro",Outfit,sans-serif;font-size:14px;color:var(--text-2)}
[dir="rtl"] .co-alt{font-family:Outfit,"Readex Pro",sans-serif}
.co-pick-t small{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-pick.on .co-pick-b{border-color:var(--action);color:var(--action)}

/* ---- programs: assign ---- */
.co-assign{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:32px;align-items:start}
.co-panel{display:flex;flex-direction:column;gap:14px;min-width:0}
.co-msearch{margin:0;display:flex;gap:8px}
.co-msearch .co-search{flex:1}
.co-mlist .li{position:relative;cursor:pointer;min-height:60px;border-radius:10px}
.co-rad{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.co-mlist .li:hover{background:var(--panel)}
.co-mlist .li:has(.co-rad:checked),.co-mlist .li.sel{background:var(--panel);border-bottom-color:transparent;box-shadow:inset 0 0 0 2px var(--action)}
.co-mlist .li:has(.co-rad:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.co-assign-sum{padding-inline-start:24px;border-inline-start:1px solid var(--line)}

/* ---- programs: library ---- */
.co-libsearch{display:flex;gap:10px;align-items:center;margin:0;max-width:760px}
.co-libsearch .co-search{flex:1}
.co-lib{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.co-lib-r{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:18px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line);margin:0}
.co-lib-main{min-width:0}
.co-lib-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.co-lib-h b{font-size:16px}
.co-lib-tags{display:flex;flex-wrap:wrap;gap:6px}
.co-lib-save{align-self:end}

/* ---- programs: coaching view ---- */
.co-adh{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}
.co-adh-w{display:flex;gap:5px}
.co-adh i{width:30px;height:30px;border-radius:7px;background:var(--accent-2)}
.co-adh i.no{background:var(--sunken);box-shadow:inset 0 0 0 1px var(--line)}
.co-who-col .t-h2{display:block}
.co-who-col .tag{margin-top:6px}

/* ---- responsive ---- */
@container (max-width:680px){
  .co-exh{display:none}
  .co-ex{grid-template-columns:44px minmax(0,1fr) 44px;grid-template-areas:"th nm mn" "f f f" "cu cu cu";gap:10px;padding:12px 0}
  .co-ex .n{display:none}
  .co-ex>.co-thumb{grid-area:th}
  .co-exname{grid-area:nm}
  .co-ex>.co-menu{grid-area:mn}
  .co-exf{grid-area:f;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .co-f-cue{grid-area:cu}
  .co-fl{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px;white-space:nowrap;text-overflow:ellipsis}
  .co-f-cue .co-fl{display:none}
}
@container (max-width:420px){
  .co-exf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .co-f-cue{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1100px){
  .co-2{grid-template-columns:minmax(0,1fr);grid-template-areas:"pane" "side"}
  .co-side{border-inline-end:0;padding-inline-end:0;border-top:1px solid var(--line);padding-top:18px}
  .co-coach{grid-template-areas:"side" "pane"}
  .co-coach .co-side{border-top:0;padding-top:0;border-bottom:1px solid var(--line);padding-bottom:18px}
  .co-sess,.co-assign{grid-template-columns:minmax(0,1fr)}
  .co-assign-sum{padding-inline-start:0;border-inline-start:0;border-top:1px solid var(--line);padding-top:18px}
}
@media (max-width:900px){
  .co-ph-only,.co-plist .co-pname small.co-ph-only{display:block}
  .co-plist thead{display:none}
  .co-plist,.co-plist tbody{display:block}
  .co-plist tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}
  .co-plist td,.co-plist th,.co-plist tbody th[scope=row]{border:0;padding:0}
  .co-plist .co-pname small:not(.co-ph-only){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}
  .co-plist td[data-l]{display:none}
  .co-plist .co-pname small{white-space:normal}
  .co-stats thead,.co-hist thead{display:none}
  .co-stats,.co-stats tbody,.co-hist,.co-hist tbody{display:block}
  .co-stats tr,.co-hist tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;padding:12px 0;border-bottom:1px solid var(--line)}
  .co-stats td,.co-stats th,.co-hist td,.co-hist th,.co-stats tbody th[scope=row],.co-hist tbody th[scope=row]{border:0;padding:0;text-align:start}
  .co-stats th[scope=row],.co-hist th[scope=row]{grid-column:1 / -1;order:-1;font-weight:600}
  .co-stats td[data-l]::before,.co-hist td[data-l]::before{content:attr(data-l);display:block;font-size:11.5px;color:var(--muted);font-weight:600}
  .co-savebar{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .co-toast{bottom:calc(150px + env(safe-area-inset-bottom,0px))}
  .co-week{display:none}
  .co-weeklist{display:grid;gap:16px}
  .co-weeklist section{display:grid;gap:6px}
  .co-weeklist h2{margin:0}
  .co-weeklist h2 a{color:inherit;text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
  .co-weeklist section.on h2{color:var(--text)}
  .co-weeklist .co-slot{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:14px;padding:8px 10px}
  .co-weeklist .co-slot b{font-size:14.5px}
}
@media (max-width:760px){
  .co-ph h1{font-size:26px}
  .co-ph .end{margin-inline-start:0;width:100%}
  .co-tools{width:100%}
  .co-ag{--rail:64px;grid-template-columns:52px minmax(0,1fr);grid-template-areas:"t m" "t f";gap:6px 14px;padding:12px 2px}
  .co-ag time{grid-area:t;font-size:18px;align-self:start}
  .co-ag-main{grid-area:m}
  .co-ag-fill{grid-area:f;padding-inline-start:12px}
  .co-ag .co-open{display:none}
  .co-ag::after{top:24px}
  .co-now{--rail:64px}
  .co-now-t{width:52px}
  .co-now-l{margin-inline-start:22px}
  .co-g2{grid-template-columns:minmax(0,1fr)}
  .co-dayhead{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .co-dayctl{grid-column:1 / -1}
  .co-bars-r{grid-template-columns:minmax(0,1fr) 56px;gap:4px 12px}
  .co-bars-r .meter{grid-column:1 / -1;grid-row:2}
  .co-sent{font-size:21px}
  .co-lib-r{grid-template-columns:64px minmax(0,1fr);gap:12px}
  .co-lib-r .co-thumb.xl{width:64px;height:64px;font-size:16px}
  .co-lib-save{grid-column:1 / -1;justify-self:start}
  .co-libsearch{flex-wrap:wrap}
  .co-libsearch .co-search{flex-basis:100%}
  .co-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .co-chips .chip{flex:none}
  .co-adh i{width:22px;height:22px;border-radius:6px}
  .co-period .input{width:150px}
}
@media (max-width:640px){
  dialog.gv.co-picker{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0}
  .co-picker-b{border-radius:0;max-height:100dvh;height:100%;padding:16px}
  dialog.gv.co-sheet{inset-block-start:auto;height:auto;max-height:92dvh;width:100vw}
  .co-sheet .co-sheet-b{border-radius:16px 16px 0 0;padding:18px 16px calc(24px + env(safe-area-inset-bottom,0px))}
  dialog.gv.co-sheet[open],[dir="rtl"] dialog.gv.co-sheet[open]{animation-name:co-up}
  @keyframes co-up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
  .co-att{grid-template-columns:44px 36px minmax(0,1fr) 44px;grid-template-areas:"c a w x" "c a s x"}
  .co-att .co-chk{grid-area:c}
  .co-att .av{grid-area:a;width:36px;height:36px;font-size:12px}
  .co-att .co-who{grid-area:w}
  .co-att .co-att-st{grid-area:s}
  .co-att>:last-child{grid-area:x}
  .co-att-st:empty{display:none}
  .co-att .co-who small{white-space:normal}
  .co-results .li{grid-template-columns:40px minmax(0,1fr)}
  .co-results .co-li-end{grid-column:2}
  .co-datenav{flex-wrap:wrap}
  .co-date{flex:1;min-width:0;width:auto}
}
