/* birdieOS by AI Ops Foundry: golf views layered on the shared client. Loaded after app.css.
   birdieOS uses the pTinksOS color tokens (owner decision 2026-10-22); internal class names keep the old p4/par4 prefix. */

/* birdieOS mark: the owner-supplied bird, flag and ball icon on a white tile */
.bo-mark{width:34px;height:34px;flex:none;border-radius:9px;display:block}
.p4-also{color:var(--muted);font-size:13px;margin-top:18px}

/* summary strip: counts that link to the work, not decorative charts */
.p4-sum{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 16px}
.p4-sum a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-decoration:none;min-height:72px}
.p4-sum a:hover{border-color:var(--hover-bd);background:var(--hover-bg)}
.p4-sum b{font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}
.p4-sum span{font-size:12.5px;color:var(--muted)}
.p4-sum a.warn{border-color:color-mix(in srgb,var(--amber) 55%,var(--line))}
@media (max-width:1100px){.p4-sum{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.p4-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.p4-grid{margin-bottom:16px;align-items:start}
.p4-card + .p4-card{margin-top:0}
.p4-banner{border:1px solid var(--line2);border-left:4px solid var(--cyan);border-radius:10px;padding:10px 14px;margin:0 0 14px;background:var(--surface);font-size:14px}
.p4-banner.bad{border-left-color:var(--red)}
.p4-banner.ok{border-left-color:var(--green)}
.p4-list{list-style:none;margin:0;padding:0}
.p4-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.p4-list li:first-child{border-top:0}
.p4-list li.on{background:var(--hover-bg);margin:0 -10px;padding:10px;border-radius:8px}
.p4-list small,.p4-ledger small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.p4-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}
.p4-kv div{display:flex;flex-direction:column}
.p4-kv dt{font-size:12.5px;color:var(--muted)}
.p4-kv dd{margin:0;font-weight:700;font-size:17px;font-variant-numeric:tabular-nums}
.p4-fine{font-size:12.5px;color:var(--muted);margin:8px 0}
.p4-h3{font-size:14px;margin:18px 0 6px}
.p4-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.p4-form{display:grid;gap:10px}
.p4-form fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:grid;gap:6px}
.p4-form legend{font-size:13px;color:var(--label);padding:0 4px}
.p4-inline{margin-top:6px}
.p4-det{margin-top:10px}
.p4-det summary{cursor:pointer;color:var(--cyan);font-weight:600;font-size:14px}
.p4-det[open] summary{margin-bottom:8px}
.p4-pre{white-space:pre-wrap;font:13px/1.5 var(--font);background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:10px;margin:6px 0 0}
.p4-num{width:84px}
.p4-ledger{list-style:none;margin:0;padding:0;border-left:2px solid var(--line2)}
.p4-ledger li{display:flex;justify-content:space-between;gap:10px;padding:8px 0 8px 14px;position:relative}
.p4-ledger li::before{content:"";position:absolute;left:-5px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--cyan)}
.p4-cands{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.p4-cands>li{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.p4-cands>li.ok{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.p4-x{display:inline-block;width:16px}
.p4-checks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:3px;font-size:13px}
.p4-checks li{padding-left:22px;position:relative}
.p4-checks li::before{position:absolute;left:0;top:0;font-weight:800}
.p4-checks li.ok::before{content:"✓";color:var(--green)}
.p4-checks li.no::before{content:"✕";color:var(--red)}
.p4-checks small{color:var(--muted)}
.p4-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.p4-steps a{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none}
.p4-steps a:hover{background:var(--hover-bg)}
.p4-steps small{display:block;color:var(--muted);font-size:12.5px}
.p4-tick{width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);flex:none;margin-top:2px}
.p4-steps li.ok .p4-tick{background:var(--green);border-color:var(--green)}
.p4-caveats{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:12.5px}
.p4-lesson h2{flex-wrap:wrap}
.linkbtn{background:none;border:0;padding:0;color:var(--cyan);font-weight:600;cursor:pointer;text-align:left}
.linkbtn:hover{text-decoration:underline}

/* public offer page and student panel (booking theme) */
.p4-offer .bk-card{max-width:560px;margin:32px auto}
.p4-offer h1{margin:4px 0 14px}
.p4-offer .p4-kv dd{font-size:15px}
.p4-preview{border:1px dashed #74552a;background:#fbf3e4;color:#4a3518;border-radius:10px;padding:10px 12px;font-size:13.5px}
.bkp .p4-list li{border-color:var(--bd,#e5e5e5)}
.bkp .p4-list small,.bkp .p4-kv dt{color:var(--ink3,#5f5f5f)}
@media (max-width:720px){.p4-kv{grid-template-columns:1fr}.p4-list li{flex-wrap:wrap}.p4-acts{justify-content:flex-start}}
/* compact eligibility checks (override generic list styling) */
.p4-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px}
.p4-checks li{border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important;margin:0!important;padding:2px 0 2px 20px!important;font-size:12.5px;line-height:1.35}
.p4-checks li small{display:block}
.p4-cands>li{padding:10px 12px 12px}
@media (max-width:720px){.p4-checks{grid-template-columns:1fr}}


/* golf brand: accent tints that app.css draws in pTinksOS cyan/purple (scoped so other industries keep pTinksOS) */
/* 0.16.0: SmartFill waitlist candidates; action row wraps on phones instead of pushing the page sideways */
#p4cand .close-row{flex-wrap:wrap;justify-content:flex-start;margin-top:12px}
.p4-det{margin-top:10px}.p4-det>summary{cursor:pointer;color:var(--muted,inherit);padding:6px 0}
.p4-det[open]>summary{margin-bottom:8px}
/* 0.17.0 SmartFill: automatic-mode banner, mode chooser, six-month trend */
.p4-modes{border:0;margin:0 0 10px;padding:0;display:grid;gap:8px}
.p4-modes legend{font-weight:600;margin-bottom:6px}
.p4-mode{align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.p4-mode span{display:flex;flex-direction:column;gap:2px;min-width:0}
.p4-mode small{color:var(--muted);font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.p4-trend{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:end;height:140px;margin:4px 0 6px}
.p4-tcol{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.p4-tbars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid var(--line)}
.p4-tb{width:38%;max-width:22px;min-height:2px;border-radius:4px 4px 0 0}
.p4-tb.open,.p4-key.open{background:var(--muted);opacity:.5}
.p4-tb.fill,.p4-key.fill{background:var(--cyan)}
.p4-tcol small{color:var(--muted);font-size:12px}
.p4-legend{font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.p4-key{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}
.p4-ttab{font-size:13px}
.p4-ttab th,.p4-ttab td{white-space:nowrap}
@media (max-width:520px){.p4-ttab th,.p4-ttab td{padding:8px 6px;font-size:12.5px}.p4-ttab th{letter-spacing:0}}

/* ---------- 0.18.0 Swing Lab (player shared by the student page and the team page) */
.sw-player{outline:none}
.sw-stage{position:relative;background:#000;border-radius:10px;overflow:hidden;aspect-ratio:16/9;width:100%}
.sw-stage.tall{aspect-ratio:3/4;max-width:520px;margin:0 auto}
.sw-stage video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.sw-ov{position:absolute;inset:0;touch-action:none;pointer-events:none}
.sw-ov.on{pointer-events:auto;cursor:crosshair;box-shadow:inset 0 0 0 3px rgba(250,204,21,.85)}
.sw-err{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);color:#fff;padding:12px 14px;font-size:14px;line-height:1.45}
.sw-err a{color:#93c5fd}
.sw-scrub{width:100%;margin:10px 0 6px;accent-color:#16a34a}
.sw-ctl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sw-b{font:inherit;font-size:13px;font-weight:600;min-height:38px;min-width:44px;padding:6px 11px;border-radius:8px;border:1px solid rgba(127,127,127,.45);background:transparent;color:inherit;cursor:pointer}
.sw-b:hover{border-color:rgba(127,127,127,.8)}
.sw-b:focus-visible,.sw-col:focus-visible,.sw-t:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.sw-b[aria-pressed=true]{background:#14532d;color:#fff;border-color:#14532d}
.sw-play{min-width:74px}
.sw-time{font-variant-numeric:tabular-nums;font-size:13px;opacity:.85;margin:0 4px;white-space:nowrap}
.sw-speeds{display:inline-flex;gap:4px}
.sw-text{margin:10px 0 14px;padding:12px 14px;border-left:3px solid rgba(127,127,127,.55);background:rgba(127,127,127,.08);line-height:1.55;border-radius:0 8px 8px 0}
.sw-age{border:0;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:4px 18px}.sw-age legend{font-weight:600;margin-bottom:6px}
.sw-consent h3,.sw-up h3,.sw-wait h3{margin:0 0 6px}
.sw-prog{display:flex;align-items:center;gap:10px;margin:8px 0}.sw-prog>div{flex:1;height:8px;border-radius:99px;background:rgba(127,127,127,.25);position:relative;overflow:hidden}
.sw-prog .sw-bar{position:absolute;left:0;top:0;bottom:0;width:0;background:#16a34a;transition:width .2s}
.sw-lh{margin:18px 0 8px}
.sw-clip .sw-ch{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:flex-start}
.sw-clip h3{margin:0}.sw-clip .bk-hint{margin:2px 0 0}
.sw-cact{display:flex;flex-wrap:wrap;gap:6px}
.sw-pl{margin:12px 0}
.sw-own{margin:8px 0 0;font-size:14px}
.sw-nh{margin:14px 0 6px;font-size:14px}
.sw-notes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sw-n{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid rgba(127,127,127,.2)}
.sw-t{font:inherit;font-size:13px;font-variant-numeric:tabular-nums;font-weight:700;padding:4px 8px;border-radius:6px;border:1px solid rgba(127,127,127,.45);background:transparent;color:inherit;cursor:pointer;min-height:32px}
.sw-nb small{display:block;opacity:.75;margin-top:2px}
.sw-kind{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin-right:4px}
.sw-dim{opacity:.7}
.sw-nact{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 12px}
.sw-nb textarea{width:100%;margin-top:6px}
.sw-foot{margin-top:16px}
.sw-link{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}.sw-link p{margin:2px 0 0}
.sw-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:16px;align-items:start}
@media (max-width:980px){.sw-grid{grid-template-columns:minmax(0,1fr)}}
.sw-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.sw-sw{display:inline-flex;gap:6px}
.sw-col{width:30px;height:30px;border-radius:50%;border:2px solid rgba(127,127,127,.6);background:var(--c);cursor:pointer;padding:0}
.sw-col[aria-pressed=true]{box-shadow:0 0 0 3px rgba(37,99,235,.9);border-color:#fff}
.sw-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sw-notes .pill.ok{color:var(--fg-green,#15803d);border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.08)}
.sw-notes .pill.warn,.sw-tab .pill.warn{color:var(--fg-amber,#b45309);border-color:rgba(251,191,36,.5);background:rgba(251,191,36,.1)}
.sw-tab td{vertical-align:top}
@media (max-width:640px){
  .table-wrap:has(.sw-tab){overflow:visible;border:0}
  .sw-tab,.sw-tab tbody,.sw-tab tr,.sw-tab td{display:block;width:100%}
  .sw-tab thead{display:none}
  .sw-tab tr{border:1px solid rgba(127,127,127,.3);border-radius:10px;padding:10px 12px;margin-bottom:10px}
  .sw-tab td{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border:0;text-align:right}
  .sw-tab td::before{content:attr(data-label);font-weight:600;opacity:.7;text-align:left;flex:none}
  .sw-tab td[data-label=Student]{display:block;text-align:left}.sw-tab td[data-label=Student]::before{content:none}
}

/* ---------- 0.25.0 Swing Lab 2.0 (neutral greys + currentColor so team dark theme and booking light theme both work) */
.sw-scrubwrap{position:relative}
.sw-ticks{position:absolute;left:0;right:0;top:2px;height:6px;pointer-events:none}
.sw-ticks span{position:absolute;top:0;width:3px;height:8px;margin-left:-1px;border-radius:2px;background:#facc15;box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.sw-marks{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.sw-mk{font-size:12px}
.sw-b.sm{min-height:32px;min-width:36px;padding:4px 8px;font-size:12.5px}
.sw-fps{font-size:12px;opacity:.7;white-space:nowrap}
.sw-stage.fs{border-radius:0;aspect-ratio:auto;height:100%}
.sl-tabs,.sl-stabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid rgba(127,127,127,.3);margin:0 0 12px;padding-bottom:0}
.sl-tab,.sl-stab{font:inherit;font-size:13.5px;font-weight:600;white-space:nowrap;background:transparent;color:inherit;border:0;border-bottom:3px solid transparent;padding:9px 7px;min-height:42px;cursor:pointer;opacity:.75}
.sl-tab[aria-selected=true],.sl-stab[aria-selected=true]{opacity:1;border-bottom-color:currentColor}
.sl-tab:focus-visible,.sl-stab:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}
.sl-stabs{margin-bottom:14px}
.sl-n{display:inline-block;min-width:20px;padding:0 6px;border-radius:99px;background:rgba(127,127,127,.22);font-size:12px;line-height:20px;text-align:center}
.sl-pane h2{margin:0 0 6px;font-size:18px}.sl-pane h3{margin:16px 0 6px;font-size:15px}
.sl-dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.sl-dash .bk-card{margin:0}.sl-dash h3{margin:0 0 6px;font-size:15px}.sl-dash p{margin:4px 0}
.sl-wide{grid-column:1/-1}
.sl-ovs{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;margin-top:10px;padding:8px 10px;border:1px solid rgba(127,127,127,.3);border-radius:10px}
.sl-ovs .p4-fine{flex-basis:100%;margin:2px 0 0}
.sl-tools{display:inline-flex;flex-wrap:wrap;gap:4px}
.sl-presets{display:inline-flex;gap:6px;align-items:center}.sl-presets select{min-height:32px}
.sl-thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px 0 4px}
.sl-th{flex:none;display:grid;gap:2px;justify-items:center;background:transparent;color:inherit;border:1px solid rgba(127,127,127,.35);border-radius:8px;padding:4px;cursor:pointer;font:inherit;font-size:12px}
.sl-th img{display:block;border-radius:5px;background:#000;max-width:132px;height:auto}
.sl-th small{opacity:.7;font-variant-numeric:tabular-nums}
.sl-th:hover,.sl-th:focus-visible{border-color:currentColor}
.sl-cmp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sl-cmp-row h4{margin:0 0 6px;font-size:14px}
@media (max-width:760px){.sl-cmp-row{grid-template-columns:1fr}}
.sl-cmp-ctl{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:10px}
.sl-cmp-ctl input[type=range]{vertical-align:middle;width:160px}
.sl-cmphead{display:flex;justify-content:space-between;align-items:center;gap:12px}.sl-cmphead h2{margin:0}
.sl-report section{margin:14px 0}.sl-report h4{margin:0 0 6px;font-size:15px}.sl-report p{line-height:1.55}
.sl-by{font-size:13px;font-weight:700;letter-spacing:.02em;opacity:.75;margin:0}
.sl-box{border:1px solid rgba(127,127,127,.35);border-radius:10px;padding:12px 14px;margin:10px 0}
.sl-box.warn{border-color:rgba(245,158,11,.6);background:rgba(245,158,11,.08)}
.sl-box.ok{border-color:rgba(22,163,74,.5);background:rgba(22,163,74,.07)}
.sl-box h4{margin-top:0}
.sl-inote{border-left:3px solid currentColor;padding-left:10px}
.sl-ph{margin:6px 0}.sl-ph ul{margin:4px 0 0;padding-left:20px}
.sl-fl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sl-f{border:1px solid rgba(127,127,127,.3);border-left-width:4px;border-radius:8px;padding:9px 11px}
.sl-f p{margin:4px 0}.sl-f>div:first-child{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.sl-strength{border-left-color:#16a34a}.sl-opportunity{border-left-color:#f59e0b}.sl-observation{border-left-color:#3b82f6}.sl-footage{border-left-color:#9ca3af}
.sl-f.dis{opacity:.5}.sl-f.dis b{text-decoration:line-through}
.sl-ft{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.sl-kind{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:99px;border:1px solid}
.sl-kind.k-m{color:#15803d;border-color:rgba(22,163,74,.55);background:rgba(22,163,74,.1)}
.sl-kind.k-e{color:#1d4ed8;border-color:rgba(59,130,246,.55);background:rgba(59,130,246,.1)}
.sl-kind.k-q{color:#7e22ce;border-color:rgba(168,85,247,.55);background:rgba(168,85,247,.1)}
.sl-kind.k-u{color:inherit;border-color:rgba(127,127,127,.5);opacity:.8}
html:not([data-theme="light"]) body:not(.bkp) .sl-kind.k-m,html[data-theme="dark"] body.bkp .sl-kind.k-m{color:#4ade80}html:not([data-theme="light"]) body:not(.bkp) .sl-kind.k-e,html[data-theme="dark"] body.bkp .sl-kind.k-e{color:#93c5fd}html:not([data-theme="light"]) body:not(.bkp) .sl-kind.k-q,html[data-theme="dark"] body.bkp .sl-kind.k-q{color:#d8b4fe}
.sl-mt{width:100%;border-collapse:collapse;font-size:13.5px}
.sl-mt th,.sl-mt td{text-align:left;vertical-align:top;padding:7px 8px;border-bottom:1px solid rgba(127,127,127,.22)}
.sl-mt summary{cursor:pointer;font-weight:600}.sl-mt details p{margin:4px 0;font-size:13px}
.sl-na{margin-top:8px}.sl-na ul{margin:6px 0;padding-left:20px;font-size:13.5px}
.sl-drill{border:1px solid rgba(127,127,127,.3);border-radius:8px;padding:8px 11px;margin:6px 0}
.sl-drill summary{cursor:pointer}.sl-drill ol{margin:8px 0;padding-left:20px}.sl-drill p{margin:4px 0;font-size:14px}
.sl-prl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sl-prl li{padding:6px 0;border-top:1px solid rgba(127,127,127,.2)}
.sl-prl li.done .sl-drill{opacity:.65}
.sl-phs{list-style:none;margin:0;padding:0}
.sl-phs li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:5px 0;border-top:1px solid rgba(127,127,127,.18);font-size:14px}
.sl-phs li>span:first-child{min-width:150px;font-weight:600}
.sl-pact{margin-left:auto;display:inline-flex;gap:10px}
.sl-set{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 12px}
.sl-q{margin:8px 0;border:1px solid rgba(127,127,127,.3);border-radius:8px;padding:8px 11px}
.sl-q summary{cursor:pointer}.sl-q ul{margin:6px 0;padding-left:20px}
.sl-q li.q-block{color:#dc2626;font-weight:600}.sl-q li.q-warn{color:#b45309}.sl-q li.q-info{opacity:.8}
html:not([data-theme="light"]) body:not(.bkp) .sl-q li.q-block,html[data-theme="dark"] body.bkp .sl-q li.q-block{color:#f87171}html:not([data-theme="light"]) body:not(.bkp) .sl-q li.q-warn,html[data-theme="dark"] body.bkp .sl-q li.q-warn{color:#fbbf24}
.sl-ah{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.sl-ah h2{margin:0}
.sl-src{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.sl-src label.bk-btn{cursor:pointer}
.sl-src input[type=file]:focus-visible+label,.sl-src label.bk-btn:focus-within{outline:3px solid var(--acc,#2563eb);outline-offset:2px}
.sl-tp{margin:8px 0}
.sl-trimctl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sl-chk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.sl-rec{margin:10px 0}
.sl-recstage{position:relative;background:#000;border-radius:10px;overflow:hidden;aspect-ratio:16/9;max-height:70vh}
.sl-recstage video{display:block;width:100%;height:100%;object-fit:contain}
.sl-tpl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sl-recmsg{position:absolute;left:8px;right:8px;top:8px;color:#fff;background:rgba(0,0,0,.6);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:600}
.sl-recmsg:empty{display:none}
.sl-recctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.sl-spark{color:var(--acc,#16a34a);display:block}
.sl-rs{margin:4px 0 8px;padding-left:18px}
.sl-again{margin-top:14px}
.sl-cmp-note{margin-top:6px}
/* 0.29.0 Swing Lab Recording Studio (swing-studio.js): full window, dark, controls reachable on a tripod-mounted phone */
body.sls-open{overflow:hidden}
.sls{position:fixed;inset:0;z-index:2147483000;background:#050807;color:#f2f5f3;display:flex;flex-direction:column;font:15px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);height:100dvh}
.sls-stage{position:relative;flex:1;min-height:0;background:#000}
.sls-live,.sls-play{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.sls-guide{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sls-top{position:absolute;left:10px;right:10px;top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;z-index:3}
.sls-info{font-size:12px;color:#cfd8d3;background:rgba(0,0,0,.55);border-radius:999px;padding:4px 10px}.sls-info:empty{display:none}
.sls-timer{margin-left:auto;font:700 16px/1 ui-monospace,SFMono-Regular,Menlo,monospace;background:#b91c1c;color:#fff;border-radius:999px;padding:7px 12px}
.sls-msg{position:absolute;left:10px;right:10px;bottom:10px;z-index:2;background:rgba(0,0,0,.62);border-radius:10px;padding:8px 12px;font-weight:600;font-size:14px}.sls-msg:empty{display:none}
.sls-count{position:absolute;inset:0;display:grid;place-items:center;font:800 min(32vw,180px)/1 system-ui;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.6);z-index:2;pointer-events:none}
.sls-review{position:absolute;inset:0;z-index:4;background:#000;display:flex;flex-direction:column}
.sls-review .sls-play{position:relative;flex:1;min-height:0}
.sls-revbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:10px}
.sls-fine{margin:0 0 10px;text-align:center;font-size:12px;color:#aab6b0;padding:0 12px}
.sls-b{appearance:none;border:1px solid rgba(255,255,255,.28);background:rgba(20,26,24,.85);color:#f2f5f3;border-radius:999px;padding:10px 16px;min-height:44px;font:600 14px/1.2 inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.sls-b:hover{border-color:#d4af37}.sls-b:focus-visible,.sls-rec:focus-visible,.sls select:focus-visible{outline:3px solid #d4af37;outline-offset:2px}
.sls-b:disabled{opacity:.45;cursor:default}
.sls-pri{background:#0f8a63;border-color:#0f8a63;color:#fff}
.sls-bar{flex:none;background:#0b1210;border-top:1px solid rgba(212,175,55,.35);padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;max-height:46dvh;overflow:auto}
.sls-rows{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.sls-rows label{display:flex;flex-direction:column;gap:3px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#a9b5af}
.sls-rows label[hidden]{display:none}
.sls-rows select{background:#121c19;color:#f2f5f3;border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:8px 10px;min-height:40px;font:14px/1.2 inherit;text-transform:none;letter-spacing:0}
.sls-rows .sls-ck{flex-direction:row;align-items:center;gap:6px;font-size:13px;text-transform:none;letter-spacing:0;color:#f2f5f3}
.sls-ck input{width:20px;height:20px;accent-color:#0f8a63}
.sls-tips{font-size:13px;color:#d6dfda;background:#101a17;border-radius:10px;padding:8px 12px}.sls-tips p{margin:4px 0}
.sls-go{display:flex;align-items:center;justify-content:center;gap:12px}
.sls-golab{font-weight:700}
.sls-rec{width:72px;height:72px;border-radius:50%;border:4px solid #fff;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}
.sls-rec span{width:54px;height:54px;border-radius:50%;background:#dc2626;transition:all .2s}
.sls-rec.on span{width:28px;height:28px;border-radius:6px}
.sls-rec:disabled{opacity:.4}
.sls.recording .sls-rows,.sls.recording .sls-tips{opacity:.45}
.sls.reviewing .sls-bar{display:none}
@media (orientation:landscape) and (max-height:560px){
  .sls{flex-direction:row}
  .sls-bar{width:min(42vw,330px);max-height:none;border-top:0;border-left:1px solid rgba(212,175,55,.35)}
  .sls-go{order:-1}
}
@media (prefers-reduced-motion:reduce){.sls-rec span{transition:none}}
/* 0.29.0 player zoom and compare overlays */
.sw-stage.zoomed{touch-action:none;cursor:grab}
.sw-stage video,.sw-stage .sw-ov{transform-origin:0 0}
.sw-zl{min-width:3.2em;text-align:center;font-variant-numeric:tabular-nums}
.sl-cmp.ov .sl-cmp-row{grid-template-columns:1fr}
.sl-cmp.ov .sl-cmp-row>div:nth-child(2){display:none}
.sl-ghost{position:absolute;pointer-events:none;overflow:hidden}.sl-ghost[hidden]{display:none}
.sl-ghost video{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.sl-ghost.mir video{transform:scaleX(-1)}
.sl-cmp-warn{margin-top:8px;border-left:3px solid #d4af37;padding:6px 10px;background:rgba(212,175,55,.1);border-radius:6px;font-size:13px}
.sl-cmp-warn:empty{display:none}
.sl-cmp .mirrored .sw-stage{transform:scaleX(-1)}
.sw-zoom{display:inline-flex;align-items:center;gap:4px}
.sls a.sls-b,.sls a.sls-b:visited{color:#f2f5f3}
/* 0.30.0 Swing Lab Pro: ball and club data, reference swings */
.sl-kind.k-c{color:#b45309;border-color:rgba(217,119,6,.55);background:rgba(217,119,6,.1)}
.sl-kind.k-n{color:#0f766e;border-color:rgba(13,148,136,.55);background:rgba(13,148,136,.1)}
html:not([data-theme="light"]) body:not(.bkp) .sl-kind.k-c,html[data-theme="dark"] body.bkp .sl-kind.k-c{color:#fbbf24}
html:not([data-theme="light"]) body:not(.bkp) .sl-kind.k-n,html[data-theme="dark"] body.bkp .sl-kind.k-n{color:#5eead4}
.sl3-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.sl3-head h3{margin:0}
.sl3-tog,.sl3-mode,.sl3-pre{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.sl3-tog [aria-pressed="true"],.sl3-mode [aria-pressed="true"]{outline:2px solid currentColor;outline-offset:1px;font-weight:700}
.sl3-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}
.sl3-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;margin:8px 0}
.sl3-card{border:1px solid rgba(127,127,127,.3);border-radius:10px;padding:9px 10px;display:flex;flex-direction:column;gap:3px;min-width:0}
.sl3-l{font-size:12.5px;opacity:.85}.sl3-v{font-size:19px;line-height:1.2;overflow-wrap:anywhere}.sl3-card small{font-size:11.5px;opacity:.75}.sl3-v.na{font-size:15px;font-weight:600;opacity:.7}
.sl3-k{display:flex;flex-wrap:wrap;gap:3px}
.sl3-tr{margin:10px 0}.sl3-tr label{display:inline-flex;gap:6px;align-items:center}
.sl-trend{width:100%;max-width:520px;height:auto;display:block;margin-top:6px;color:#16a34a}
.sl-trend .g{stroke:rgba(127,127,127,.25);stroke-width:1}.sl-trend text{font-size:13px;fill:#8a929c}.sl-trend circle{fill:currentColor}
.sl3-sess,.sl3-shots,.sl3-form{margin:10px 0;border:1px solid rgba(127,127,127,.25);border-radius:10px;padding:8px 11px}
.sl3-sess summary,.sl3-shots summary,.sl3-form summary{cursor:pointer;font-weight:600}
.sl3-list{list-style:none;padding:0;margin:6px 0;font-size:13.5px}.sl3-list li{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(127,127,127,.18)}
.sl3-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 12px;margin:8px 0}.sl3-grid .sl3-wide{grid-column:1/-1}
.sl3-grid input,.sl3-grid select{width:100%;min-width:0;box-sizing:border-box}
.sl3-empty{padding:10px 0}
.sl3-refs{list-style:none;padding:0;margin:8px 0}.sl3-refs>li{border-bottom:1px solid rgba(127,127,127,.2);padding:9px 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
.sl3-refs>li>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 260px}.sl3-ra{display:flex;gap:6px;align-items:flex-start}
.sl3-rp{flex:1 1 100%}.sl3-kf{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:8px 0}
.sl3-refcmp{margin-top:16px;border-top:1px solid rgba(127,127,127,.25);padding-top:10px}
.sl3-fl{margin:8px 0;border:1px solid rgba(127,127,127,.25);border-radius:10px;padding:7px 11px}.sl3-fl summary{cursor:pointer;font-weight:600}.sl3-fn{font-weight:400;opacity:.8}
/* 0.31.0 Swing Lab Pro workstation panel: deep charcoal, emerald and gold, always dark for analytical contrast */
.sl3-pro{background:linear-gradient(180deg,#0c100f,#111614);color:#e7ece9;border:1px solid #1f2a26;border-radius:16px;padding:14px 14px 10px;box-shadow:0 1px 0 rgba(212,175,55,.18) inset}
.sl3-pro h3{color:#f4f6f5;letter-spacing:.2px}
.sl3-pro .sl3-intro,.sl3-pro .sl3-meta,.sl3-pro .sl-hint3{color:#a9b4ae;font-size:13px}.sl3-pro .sl3-meta b{color:#f4f6f5}
.sl3-pro .sl3-warn{color:#f5d77a;font-size:13px;margin:4px 0}
.sl3-pro label{color:#cfd8d3}
.sl3-pro select,.sl3-pro input{background:#161d1a;color:#eef2f0;border:1px solid #2c3a34;border-radius:8px;padding:5px 8px;font:inherit}
.sl3-pro input[type=file]{padding:4px}
.sl3-pro .sl3-card{background:#141a18;border:1px solid #24302b;border-radius:12px;padding:10px 11px;position:relative}
.sl3-pro .sl3-card .sl3-l{color:#a9b4ae;display:flex;justify-content:space-between;gap:6px;align-items:center;opacity:1}
.sl3-pro .sl3-v{font-size:24px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.sl3-pro .sl3-u{font-size:13px;font-weight:600;color:#a9b4ae}
.sl3-pro .sl3-v.na{font-size:15px;color:#8b9690}
.sl3-pro .sl3-d{font-size:12px;color:#d4af37;font-variant-numeric:tabular-nums}.sl3-pro .sl3-conf{color:#a9b4ae;opacity:1}
.sl3-i{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1px solid #3a4a43;background:transparent;color:#cfd8d3;font:600 11px/18px system-ui;padding:0;cursor:pointer}
.sl3-i[aria-expanded="true"]{border-color:#10b981;color:#10b981}
.sl3-ex{font-size:12.5px;color:#e2e8e5;margin:4px 0 0;line-height:1.35}
.sl3-pro .sl3-tempo{border-color:rgba(212,175,55,.45)}
.sl3-pro .sl-kind.k-m{color:#34d399;border-color:rgba(16,185,129,.6);background:rgba(16,185,129,.12)}
.sl3-pro .sl-kind.k-c{color:#f5c84c;border-color:rgba(212,175,55,.6);background:rgba(212,175,55,.12)}
.sl3-pro .sl-kind.k-e{color:#93c5fd;border-color:rgba(96,165,250,.55);background:rgba(96,165,250,.12)}
.sl3-pro .sl-kind.k-n{color:#5eead4;border-color:rgba(45,212,191,.55);background:rgba(45,212,191,.1)}
.sl3-pro .sl-kind.k-u{color:#b7c1bc;border-color:#43514a}
.sl3-pro .sl3-sess,.sl3-pro .sl3-shots,.sl3-pro .sl3-form{border-color:#24302b;background:#101513}
.sl3-pro .sl3-sess summary,.sl3-pro .sl3-shots summary,.sl3-pro .sl3-form summary{color:#e7ece9}
.sl3-pro .linkbtn{color:#6ee7b7}.sl3-pro .sw-dim{color:#93a09a}
.sl3-pro table.sl-mt th{color:#cfd8d3;background:#141a18}.sl3-pro table.sl-mt td{color:#e7ece9;border-color:#24302b}
.sl3-pro .sl-box.ok{background:#0f1f19;border-color:#1f6f52;color:#e7ece9}
.sl3-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:10px 0}
.sl3-fig{margin:0;background:#101513;border:1px solid #24302b;border-radius:12px;padding:9px 10px}
.sl3-fig figcaption{font-weight:700;font-size:13.5px;color:#f4f6f5}.sl3-fig figcaption span{font-weight:400;color:#a9b4ae;margin-left:6px}
.sl3-svg{width:100%;height:auto;display:block;margin-top:4px}
.sl3-svg text{font-size:12px;fill:#93a09a}.sl3-svg .g{stroke:#24302b;stroke-width:1}.sl3-svg .c{stroke:#3a4a43;stroke-dasharray:4 4}
.sl3-svg .p{fill:#10b981;fill-opacity:.7}.sl3-svg .m{fill:none;stroke:#d4af37;stroke-width:2.5}
.sl3-svg .band{fill:rgba(16,185,129,.12)}.sl3-svg .avg{stroke:#d4af37;stroke-width:1.5}.sl3-svg .ln{stroke:#10b981;stroke-width:1.4;stroke-opacity:.85}
.sl3-pro .sl-trend{color:#10b981}.sl3-pro .sl-trend text{fill:#93a09a}.sl3-pro .sl-trend .g{stroke:#24302b}
.sl3-fus .sl3-list li{display:block}.sl3-fus .sl3-list li>span{display:block;margin:2px 0}
@media (max-width:600px){
  .sl3-pro{padding:12px 10px 8px;border-radius:14px}
  .sl3-pro .sl3-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .sl3-pro .sl3-cards>.sl3-card{flex:0 0 46%;scroll-snap-align:start}
  .sl3-pro .sl3-swipe{display:block}
}
.sl3-swipe{display:none;margin:0 0 6px;font-size:12px;color:#a9b4ae;text-align:right}
/* 0.31.0 synchronized swing timeline in Compare */
.sl-tl{background:#111614;color:#e7ece9;border:1px solid #24302b;border-radius:14px;padding:10px 14px 8px;margin:10px 0}
.sl-tl-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}.sl-tl-h b{font-size:14.5px}.sl-tl-h span{color:#a9b4ae;font-size:13px;font-variant-numeric:tabular-nums}
.sl-tl-track{position:relative;height:66px;margin:4px 6px 0}
.sl-tl-track:before{content:"";position:absolute;left:0;right:0;top:15px;height:2px;background:#24302b}
.sl-tl-prog{position:absolute;left:0;top:15px;height:2px;background:#10b981;width:0}
.sl-tl-dot{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:0;color:#a9b4ae;font:500 12.5px system-ui;cursor:pointer;padding:6px 2px;min-width:44px}
.sl-tl-dot i{width:14px;height:14px;border-radius:50%;background:#2c3a34;border:2px solid #111614;box-shadow:0 0 0 1px #3a4a43}
.sl-tl-dot.on{color:#f4f6f5}.sl-tl-dot.on i{background:#d4af37;box-shadow:0 0 0 1px #d4af37}
.sl-tl-dot:focus-visible{outline:2px solid #10b981;border-radius:6px}
.sl3-pro .p4-fine,.sl3-pro .bk-hint{color:#a9b4ae}.sl3-pro .bk-f label,.sl3-pro .field label{color:#cfd8d3}
.sl-tl-dot small{font-size:11px;color:#8b9690;font-variant-numeric:tabular-nums}
