:root{
  color-scheme:dark;
  --bg:#090d12;--panel:#111821;--panel2:#151f2a;--panel3:#0d141c;--text:#f5f7fb;--muted:#97a6b7;--line:#283546;
  --blue:#4389ff;--green:#24c36b;--amber:#f5a524;--purple:#a766ff;--teal:#20bfb2;--red:#ef5c5c;--shadow:0 18px 60px rgba(0,0,0,.28)
}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:radial-gradient(circle at top,#142234 0,#0b1119 36%,var(--bg) 72%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app{width:min(1320px,100%);margin:auto;padding:18px 18px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.brand h1{margin:0;font-size:clamp(26px,4vw,38px);letter-spacing:-.03em}.subtle,.muted,label{color:var(--muted)}.subtle{font-size:13px}.card{background:linear-gradient(180deg,rgba(20,29,40,.97),rgba(15,22,31,.97));border:1px solid var(--line);border-radius:20px;padding:17px;margin:12px 0;box-shadow:0 1px 0 rgba(255,255,255,.02)}.card.flat{box-shadow:none}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.g2,.g3,.g4{grid-template-columns:1fr}.app{padding:12px}.topbar{align-items:flex-start}}
button,input,select,textarea{font:inherit}input,select,textarea{width:100%;color:var(--text);background:#0b121a;border:1px solid var(--line);border-radius:11px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:#5f8fc7;box-shadow:0 0 0 3px rgba(67,137,255,.12)}textarea{min-height:86px;resize:vertical}label{display:block;font-size:12px;font-weight:600}label input,label select,label textarea{margin-top:5px}button{color:var(--text);background:#101924;border:1px solid var(--line);border-radius:12px;padding:9px 12px;cursor:pointer;transition:.16s transform,.16s background,.16s border-color,.16s opacity}button:hover:not(:disabled){transform:translateY(-1px);background:#162231}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--blue);border-color:var(--blue);font-weight:750}.danger{border-color:#6c3434;color:#ffb3b3}.small{padding:6px 9px;font-size:12px}.iconbtn{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}.hidden{display:none!important}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#0d151f;border-radius:999px;padding:5px 9px;font-size:12px}.good{color:#baf5cf}.warn{color:#ffd594}.bad{color:#ffb0b0}.statusDot{width:7px;height:7px;border-radius:50%;background:#34d77b}.types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}@media(max-width:950px){.types{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.types{grid-template-columns:1fr}}.type{position:relative;min-height:104px;border:1px solid var(--line);border-left:6px solid currentColor;border-radius:17px;padding:16px;background:#131c26;cursor:pointer;transition:.2s ease;overflow:hidden}.type:after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;pointer-events:none;transition:.2s}.type:hover{transform:translateY(-2px)}.type.active{transform:translateY(-3px);box-shadow:0 0 0 1px currentColor,var(--shadow)}.type.active:after{opacity:.10}.type.active .selected{display:inline-flex}.type .selected{display:none;position:absolute;right:10px;top:10px;font-size:11px;background:rgba(0,0,0,.28);border-radius:999px;padding:4px 7px}.type b{font-size:18px}.strength{color:var(--blue)}.cardio{color:var(--green)}.mobility{color:var(--amber)}.hyrox{color:var(--purple)}.custom{color:var(--teal)}.sectionAccent.strength{border-top:3px solid var(--blue)}.sectionAccent.cardio{border-top:3px solid var(--green)}.sectionAccent.mobility{border-top:3px solid var(--amber)}.sectionAccent.hyrox{border-top:3px solid var(--purple)}.sectionAccent.custom{border-top:3px solid var(--teal)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.exerciseCard,.historyItem,.clientTile,.block{background:#0d151e;border:1px solid var(--line);border-radius:15px;padding:12px;margin-top:10px}.exerciseTitle{font-weight:760;font-size:15px}.sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px;margin-top:9px}.set{background:#0a1118;border:1px solid #202c3a;border-radius:12px;padding:9px}.set h4{margin:0 0 7px}.note{background:#0e1721;border-left:4px solid var(--blue);border-radius:12px;padding:10px}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button.active{background:var(--purple);border-color:var(--purple)}.progressTable{width:100%;border-collapse:collapse;font-size:13px}.progressTable th,.progressTable td{padding:9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.progressTable th{color:#b6c2cf;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.scroll{overflow:auto}.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.modal{position:fixed;inset:0;background:rgba(1,5,9,.78);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:100}.modalbox{width:min(960px,100%);max-height:92vh;overflow:auto;background:#111923;border:1px solid #354356;border-radius:22px;padding:18px;box-shadow:var(--shadow)}.techimg{width:100%;border:1px solid var(--line);border-radius:15px;background:white}.qr{width:260px;max-width:100%;background:white;padding:12px;border-radius:14px}.toast{position:fixed;right:18px;bottom:18px;max-width:min(430px,calc(100vw - 36px));background:#132030;border:1px solid #39516b;border-radius:14px;padding:11px 14px;box-shadow:var(--shadow);z-index:120;opacity:0;transform:translateY(15px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-top-color:white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.savebar{position:sticky;bottom:10px;z-index:20;margin-top:14px;background:rgba(10,15,22,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:15px;padding:9px}.participant{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 5px 4px 9px;font-size:12px}.clientMeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.metric{background:#0c141c;border:1px solid var(--line);border-radius:13px;padding:10px}.metric b{display:block;font-size:18px;margin-top:3px}.hyroxSegment.running{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple)}.timer{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.screenTitle{margin:0}.authWrap{max-width:960px;margin:42px auto}.help{font-size:11px;color:#7e8b99;margin-top:5px}.divider{height:1px;background:var(--line);margin:14px 0}
.participantTabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:6px 0}.participantTab{--participant-colour:var(--blue);position:relative;display:inline-flex;align-items:center;gap:7px;border-color:color-mix(in srgb,var(--participant-colour) 55%,var(--line));background:color-mix(in srgb,var(--participant-colour) 8%,#101924);padding:8px 12px}.participantTab.active{background:color-mix(in srgb,var(--participant-colour) 22%,#101924);border-color:var(--participant-colour);box-shadow:0 0 0 1px var(--participant-colour),0 8px 24px color-mix(in srgb,var(--participant-colour) 18%,transparent);transform:translateY(-1px)}.participantDot{width:9px;height:9px;border-radius:50%;background:var(--participant-colour);box-shadow:0 0 10px var(--participant-colour)}.participantRemove{width:28px;height:28px;padding:0;border-radius:50%;color:#ffb3b3}.guestBadge{font-size:10px;padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}.hyroxPlanner{border:1px solid color-mix(in srgb,var(--purple) 35%,var(--line));background:linear-gradient(180deg,rgba(72,45,112,.14),rgba(13,21,30,.8))}.hyroxPlanCard.scheduled{border-color:color-mix(in srgb,var(--purple) 52%,var(--line));box-shadow:inset 4px 0 0 var(--purple)}details>summary{cursor:pointer;color:var(--muted);padding:8px 0} 

/* V22.2.1 participant tab reliability/polish */
.participantSection{border:1px solid var(--line);background:#0b121a;border-radius:16px;padding:10px 12px}
.participantSectionHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.participantTabs{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap;min-height:42px;padding:5px 0}
.participantTabWrap{display:inline-flex;align-items:center;gap:4px}
.participantTab{position:relative!important;display:inline-flex!important;align-items:center!important;gap:7px!important;min-height:38px!important;padding:8px 12px!important;background:#101924!important;border:2px solid var(--participant-colour,#4389ff)!important;border-radius:12px!important;color:var(--text)!important;opacity:.82}
.participantTab.active{opacity:1!important;background:#182638!important;box-shadow:0 0 0 2px var(--participant-colour,#4389ff),0 8px 24px rgba(0,0,0,.25)!important;transform:translateY(-1px)}
.participantTab.active:after{content:'ACTIVE';font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--participant-colour,#4389ff);margin-left:2px}
.participantDot{flex:0 0 10px;width:10px!important;height:10px!important;background:var(--participant-colour,#4389ff)!important}
.participantRemove{flex:0 0 28px}
.participantEmpty{font-size:12px;color:var(--muted);padding:4px 0}
@media(max-width:650px){.participantSectionHeader{align-items:flex-start}.participantTab{padding:9px 10px!important}.participantTabs{gap:7px}}

/* V22.4 technique content */
.buttonLike{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-weight:700}
.youtubeBtn{background:#b91c1c;color:#fff;border-color:#dc2626;white-space:nowrap}
.techniqueHero{align-items:flex-start;margin-bottom:12px}
.techPanel{background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:12px;padding:10px}
.techPanel li{margin:6px 0}

/* V22.4.1 Mini PT */
.miniPtCard{border:1px solid var(--border);border-radius:16px;padding:16px;background:linear-gradient(180deg,rgba(67,137,255,.10),rgba(255,255,255,.02));margin-bottom:14px}
.miniPtCard.good{background:linear-gradient(180deg,rgba(36,195,107,.13),rgba(255,255,255,.02))}
.miniPtCard.warn{background:linear-gradient(180deg,rgba(245,165,36,.13),rgba(255,255,255,.02))}
.miniPtCard.info{background:linear-gradient(180deg,rgba(32,191,178,.13),rgba(255,255,255,.02))}
.miniPtEyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:var(--muted)}
.miniPtRecommendation{font-size:1.05rem;line-height:1.55}
.miniPtStatGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.miniPtStatGrid>div{border:1px solid var(--border);border-radius:10px;padding:9px;background:rgba(0,0,0,.12)}
.miniPtStatGrid span{display:block;color:var(--muted);font-size:.76rem}.miniPtStatGrid b{display:block;margin-top:3px}
.miniPtToday,.miniPtCoachNote{border:1px solid var(--border);border-radius:12px;padding:10px;margin:10px 0}
.miniPtCoachNote{border-left:4px solid #a766ff}
@media(max-width:700px){.miniPtStatGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.historyExercise{border:1px solid var(--border);border-radius:12px;padding:10px;margin:8px 0;background:rgba(255,255,255,.025)}

/* V22.5 Beta */
.versionEntry{background:none!important;border:0!important;padding:0!important;color:inherit!important;font:inherit!important;box-shadow:none!important;cursor:default}
.betaText{font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.linkBtn{background:none;border:0;padding:8px 0;color:var(--muted);text-decoration:underline}
.type.ai{border-color:rgba(139,92,246,.35)}
.type.ai.active{background:rgba(139,92,246,.13);border-color:rgba(139,92,246,.8)}
.sectionAccent.ai{border-top-color:#8b5cf6}
.aiHero{padding:8px 0 14px}

.authSingle{max-width:560px;margin:5vh auto;width:min(560px,calc(100vw - 32px))}
.resetSent{text-align:center;padding:32px}
.resetIcon{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;font-size:30px;font-weight:800;border:2px solid #24c36b;color:#24c36b}
/* V22.6 security / intelligent training */
.recoveryCodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.recoveryCodes code{display:block;padding:10px;border:1px solid var(--border);border-radius:9px;text-align:center;font-size:1rem}
.equipmentConfirm{border:1px solid var(--border);border-radius:10px;padding:10px;background:rgba(255,255,255,.025)}
.miniPtQuick{margin-top:8px;flex-wrap:wrap}
@media(max-width:650px){.recoveryCodes{grid-template-columns:1fr}}

/* V22.7 AI Maintenance */
.maintenanceConsole{border-top:2px solid rgba(139,92,246,.75)}
.maintenanceDiff{max-height:480px;overflow:auto;white-space:pre-wrap;font-size:.76rem;line-height:1.35;background:rgba(0,0,0,.18);border:1px solid var(--border);border-radius:10px;padding:10px}
.maintenanceConsole textarea{min-height:100px}

/* V22.7.1 Master Settings layout fix */
.adminConsoleRoot{max-width:1280px;margin:26px auto;padding:0 18px 40px;position:relative;z-index:1}
.adminConsoleRoot>.card,.adminConsoleRoot>#adminBody>.card{margin-top:12px}
#adminLogin{max-width:620px;margin:32px auto}
