:root{--bg: #0a0710;--bg-2: #100b18;--ink: #f7f4fc;--ink-soft: #cabbe0;--ink-mute: #9a89b4;--v-100: #f4e6ff;--v-200: #e6c8ff;--v-300: #d3a2ff;--v-400: #b877ff;--v-500: #9d5cff;--v-600: #7c3df0;--v-700: #5b2bc0;--accent: #c88bff;--grad: linear-gradient(120deg, #f2c0ff 0%, #bd7bff 44%, #7d4dff 100%);--grad-soft: linear-gradient(135deg, rgba(210,150,255,.22), rgba(126,77,255,.1));--ok: #56e0a8;--ok-ink: #062a1c;--warn: #ffcf6b;--danger: #ff6b95;--info: #7fb4ff;--glass-bd: rgba(255,255,255,.14);--glass-bd-strong: rgba(255,255,255,.22);--glass-bg: linear-gradient(150deg, rgba(255,255,255,.11), rgba(255,255,255,.035));--glass-hi: inset 0 1px 0 rgba(255,255,255,.16);--blur: saturate(150%) blur(18px);--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 30px;--sh-1: 0 10px 30px rgba(0,0,0,.28);--sh-2: 0 18px 55px rgba(0,0,0,.38);--sh-glow: 0 14px 40px rgba(140,80,255,.42);--sp: 4px;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark;font-family:var(--font);color:var(--ink);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;border:0;background:none}a{color:inherit}:where(button,input,textarea,select,a):focus-visible{outline:2px solid var(--v-300);outline-offset:2px;border-radius:6px}h1,h2,h3,h4,p{margin:0}h1{font-size:1.7rem;line-height:1.12;letter-spacing:-.02em;font-weight:800}h2{font-size:1.28rem;line-height:1.18;letter-spacing:-.015em;font-weight:800}h3{font-size:1.02rem;font-weight:700}p{line-height:1.55}::selection{background:var(--v-400);color:#1a0730}.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--v-300)}.muted{color:var(--ink-soft)}.dim{color:var(--ink-mute)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:99px;border:3px solid transparent;background-clip:padding-box}.loading-screen{min-height:100dvh;display:grid;place-items:center;gap:16px;background:radial-gradient(circle at 50% 30%,#241041 0,var(--bg) 60%);color:var(--ink-soft);font-weight:600}.brand-mark,.auth-mark{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:var(--grad);box-shadow:var(--sh-glow);color:#1a0730;font-weight:900;font-size:1.2rem;letter-spacing:-.03em}.glass{border:1px solid var(--glass-bd);background:var(--glass-bg);box-shadow:var(--glass-hi),var(--sh-1);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.device-stage{min-height:100dvh;display:grid;place-items:center;padding:0;background:radial-gradient(1200px 600px at 80% -10%,#2a1152 0,transparent 55%),radial-gradient(900px 500px at -10% 30%,#1b0e3a 0,transparent 55%),#060409}.phone{position:relative;width:100%;max-width:440px;min-height:100dvh;overflow:hidden;color:var(--ink);background:radial-gradient(120% 60% at 88% -6%,rgba(150,60,220,.42) 0,transparent 42%),radial-gradient(120% 70% at -8% 22%,rgba(70,40,160,.4) 0,transparent 46%),linear-gradient(180deg,#120c1c,#0b0713);padding:max(20px,env(safe-area-inset-top)) 20px calc(96px + env(safe-area-inset-bottom))}.phone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(to bottom,#000 0,transparent 68%);mask-image:linear-gradient(to bottom,#000 0,transparent 68%)}.phone>*{position:relative}.app-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px;min-height:46px}.app-header h1{font-size:1.12rem}.greeting{font-size:.82rem;color:var(--ink-soft);margin-bottom:3px}.greeting-name{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.round-btn{position:relative;display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--glass-bd);background:#ffffff12;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--ink);transition:background .2s,transform .1s}.round-btn:active{transform:scale(.94)}.round-btn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid #140d1f}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:26px 0 14px}.section-head h2{font-size:1.15rem}.link-btn{color:var(--v-200);font-weight:700;font-size:.84rem;padding:6px 2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 18px;border-radius:var(--r-md);font-weight:700;font-size:.95rem;transition:transform .1s,box-shadow .2s,background .2s}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{width:100%;background:var(--grad);color:#1c0733;box-shadow:var(--sh-glow);font-weight:800}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-dark{background:#1b1026;color:var(--ink);border:1px solid var(--glass-bd)}.btn-glass{border:1px solid var(--glass-bd);background:#ffffff12;color:var(--ink);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.btn-ghost{color:var(--v-200);font-weight:700}.btn-danger{background:#ff6b9524;color:var(--danger);border:1px solid rgba(255,107,149,.3)}.btn-block{width:100%}.hero{position:relative;overflow:hidden;padding:22px;border-radius:var(--r-xl);min-height:280px;color:#230a38;background:linear-gradient(140deg,#f3c2ff,#c07bff 46%,#7b45f2);box-shadow:var(--sh-2)}.hero:after{content:"";position:absolute;right:-60px;bottom:-90px;width:260px;height:260px;border-radius:50%;border:26px solid rgba(255,255,255,.28);box-shadow:0 0 80px #fff6;pointer-events:none}.hero>*{position:relative}.hero .eyebrow{color:#4a1170}.hero h2{font-size:2rem;letter-spacing:-.03em;margin:6px 0 16px;max-width:15ch}.hero-meta{display:grid;gap:8px;font-size:.86rem;font-weight:700;margin-bottom:20px}.hero-meta span{display:inline-flex;align-items:center;gap:8px}.trainer-chip{display:inline-flex;align-items:center;gap:9px;margin-top:18px;color:#2a0b42;font-weight:700;font-size:.82rem}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.quick-grid button{display:grid;justify-items:center;gap:9px;min-height:92px;padding:12px 6px;border-radius:var(--r-md);border:1px solid var(--glass-bd);background:#ffffff0e;color:var(--ink-soft);font-size:.76rem;font-weight:700;transition:background .2s,transform .1s}.quick-grid button:active{transform:scale(.96)}.quick-grid .ic{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#c88bff2e;color:var(--accent)}.meter{height:12px;border-radius:99px;background:#ffffff17;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.meter>span{display:block;height:100%;border-radius:inherit;background:var(--grad);box-shadow:0 0 18px #be78ffb3;transition:width .5s ease}.helper{color:var(--ink-mute);font-size:.82rem;margin-top:10px}.stack{display:grid;gap:12px}.tile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:14px;border-radius:var(--r-lg);text-align:left;color:var(--ink);border:1px solid var(--glass-bd);background:var(--glass-bg);box-shadow:var(--glass-hi);transition:transform .12s,border-color .2s;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.tile:active{transform:scale(.99)}.tile:hover{border-color:var(--glass-bd-strong)}.tile p{margin:3px 0 0;color:var(--ink-mute);font-size:.8rem}.tile .cta-caret{color:var(--ink-mute)}.date-badge{display:grid;place-items:center;width:52px;height:60px;border-radius:14px;background:#ffffff14;border:1px solid var(--glass-bd)}.date-badge strong{font-size:1.3rem;line-height:1}.date-badge span{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.icon-tile{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#c88bff29;color:var(--accent);flex:0 0 auto}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;font-size:.66rem;font-weight:800;letter-spacing:.03em;text-transform:capitalize;background:#c88bff29;color:var(--v-200);border:1px solid transparent}.chip.scheduled{background:#7fb4ff29;color:#b9d5ff}.chip.verified{background:#56e0a829;color:var(--ok)}.chip.completed{background:#9d5cff2e;color:#d6bcff}.chip.flagged{background:#ff6b9529;color:var(--danger)}.chip.missed{background:#ff9f6b26;color:#ffbd91}.chip.cancelled{background:#ffffff14;color:var(--ink-mute)}.chip.pending{background:#ffcf6b29;color:var(--warn)}.chip.enrolled{background:#56e0a829;color:var(--ok)}.chip.review{background:#ffcf6b29;color:var(--warn)}.avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:linear-gradient(150deg,#d8a7ff,#6a3ad0);color:#fff;font-weight:800;flex:0 0 auto;box-shadow:0 6px 18px #50288c66}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.sm{width:34px;height:34px;font-size:.72rem}.avatar.md{width:46px;height:46px;font-size:.85rem}.avatar.lg{width:72px;height:72px;font-size:1.2rem}.avatar.xl{width:92px;height:92px;font-size:1.5rem}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px;border-radius:var(--r-md);background:#ffffff0f;border:1px solid var(--glass-bd)}.segmented button{min-height:40px;border-radius:11px;font-weight:700;font-size:.86rem;color:var(--ink-mute);transition:color .2s}.segmented button.active{background:var(--grad);color:#1c0733;box-shadow:0 6px 16px #8c50ff59}.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.bottom-nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:440px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--glass-bd);background:#0f0a16d1;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.bottom-nav button{display:grid;justify-items:center;gap:5px;min-height:52px;color:var(--ink-mute);font-size:.66rem;font-weight:700;border-radius:14px;transition:color .2s}.bottom-nav button .navic{display:grid;place-items:center;width:40px;height:28px;border-radius:10px;transition:background .2s}.bottom-nav button.active{color:var(--ink)}.bottom-nav button.active .navic{background:#c88bff33;color:var(--accent)}.page-intro{color:var(--ink-soft);font-size:.9rem;margin-bottom:4px}.empty{display:grid;justify-items:center;gap:10px;padding:40px 20px;text-align:center;color:var(--ink-mute)}.empty .ic{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#ffffff0f;color:var(--v-300)}.form{display:grid;gap:15px}.field{display:grid;gap:7px;font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field input,.field textarea,.field select,.input{width:100%;min-height:48px;border-radius:12px;padding:12px 13px;border:1px solid var(--glass-bd);background:#08050e8c;color:var(--ink);font-size:.95rem;font-weight:500;transition:border-color .2s,background .2s}.field textarea{min-height:92px;resize:vertical;line-height:1.5}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--v-400);background:#08050ebf}.field input::placeholder,.field textarea::placeholder{color:var(--ink-mute)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card-pad{padding:18px;border-radius:var(--r-lg)}.upload-row{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--r-lg)}.upload-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:12px;background:#ffffff14;border:1px solid var(--glass-bd);font-weight:700;font-size:.85rem}.upload-btn input{display:none}.profile-hero{display:flex;align-items:center;gap:15px;padding:18px;border-radius:var(--r-lg)}.profile-hero .who{margin-right:auto;min-width:0}.profile-hero .who p{margin-top:4px;color:var(--ink-soft);font-size:.82rem}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:14px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--glass-bd)}.data-grid>div{padding:15px;background:#120c1ab8;display:grid;gap:5px}.data-grid small{color:var(--ink-mute);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.data-grid strong{font-size:.98rem}.data-grid .wide{grid-column:1 / -1}.settings{display:grid;margin-top:16px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--glass-bd)}.settings button{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:58px;padding:0 14px;background:#ffffff05;color:var(--ink);text-align:left;border-bottom:1px solid var(--glass-bd);transition:background .2s}.settings button:last-child{border-bottom:0}.settings button:hover{background:#ffffff0d}.settings .lead{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#c88bff24;color:var(--accent)}.settings .danger .lead{background:#ff6b9524;color:var(--danger)}.ring-card{display:grid;justify-items:center;gap:6px;padding:24px;border-radius:var(--r-xl);text-align:center}.ring{position:relative;display:grid;place-items:center;width:176px;height:176px;border-radius:50%;margin:6px 0}.ring:before{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border-radius:50%;background:#16101f}.ring .val{position:relative;display:grid;justify-items:center}.ring .val strong{font-size:2.3rem;letter-spacing:-.03em}.ring .val span{color:var(--ink-mute);font-size:.78rem}.timeline{display:grid;gap:12px}.timeline-row{display:flex;align-items:center;gap:13px;width:100%;text-align:left;color:var(--ink)}.timeline-row .who{margin-right:auto}.timeline-row .who p{margin-top:3px;color:var(--ink-mute);font-size:.8rem}.timeline-dot{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#56e0a829;color:var(--ok);flex:0 0 auto}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{padding:15px;border-radius:var(--r-md);text-align:left}.stat .n{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.stat .l{color:var(--ink-mute);font-size:.74rem;margin-top:3px}.pkg{position:relative;overflow:hidden;padding:20px;border-radius:var(--r-lg)}.pkg.featured{border-color:var(--v-300);background:linear-gradient(150deg,#c87bff47,#5a32b43d)}.pkg .badge{position:absolute;top:16px;right:16px;padding:5px 10px;border-radius:99px;background:var(--v-200);color:#2c0d47;font-size:.66rem;font-weight:800}.pkg .n{color:var(--ink-soft);font-size:.84rem}.pkg h2{margin:4px 0}.pkg .price{font-size:1.9rem;font-weight:800;letter-spacing:-.03em}.pkg .per{color:var(--ink-mute);font-size:.8rem}.pkg .desc{margin:10px 0 14px;color:var(--ink-soft);font-size:.86rem}.trainer-hero{display:grid;justify-items:center;gap:6px;padding:24px;border-radius:var(--r-xl);text-align:center}.trainer-hero h2{margin-top:12px}.trainer-hero .spec{color:var(--ink-soft)}.trainer-hero .rate{display:inline-flex;align-items:center;gap:6px;color:var(--v-200);font-size:.85rem;font-weight:700;margin-top:4px}.bio-card{display:grid;gap:12px;padding:18px;border-radius:var(--r-lg)}.bio-card .badges{display:grid;gap:8px}.bio-card .badges span{display:inline-flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:.85rem}.detail-hero{padding:20px;border-radius:var(--r-lg)}.detail-hero h2{font-size:1.7rem;margin:6px 0}.detail-list{display:grid;gap:4px;padding:8px;border-radius:var(--r-lg)}.detail-list>*{display:flex;align-items:center;gap:13px;width:100%;padding:12px;border-radius:14px;text-align:left;color:var(--ink)}.detail-list button:hover{background:#ffffff0a}.detail-list .who{margin-right:auto}.detail-list .who small{display:inline-flex;align-items:center;gap:5px;color:var(--ink-mute);font-size:.8rem}.notes-card{padding:18px;border-radius:var(--r-lg)}.notes-card p{color:var(--ink-soft);margin-top:8px}.workout-launch{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;align-items:center;margin-top:14px;padding:16px;border-radius:var(--r-lg)}.workout-launch-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#c88bff29;color:var(--accent)}.workout-launch h3{margin:3px 0}.workout-launch p:last-child{color:var(--ink-mute);font-size:.8rem}.workout-launch .btn{grid-column:1 / -1;width:100%}.workout-form{display:grid;gap:16px}.workout-overview{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px;border-radius:var(--r-lg)}.workout-overview h2{margin:5px 0}.workout-overview p:last-child{color:var(--ink-mute);font-size:.82rem}.workout-count{display:grid;grid-template-columns:auto auto;gap:2px 8px;flex:0 0 auto;padding:11px 13px;border-radius:14px;background:#ffffff0f}.workout-count strong{color:var(--v-200);font-size:1.1rem;text-align:right;font-variant-numeric:tabular-nums}.workout-count span{color:var(--ink-mute);font-size:.7rem;align-self:center}.workout-form .section-head{margin:8px 0 0}.workout-form .link-btn{display:inline-flex;align-items:center;gap:5px;min-height:44px}.workout-empty{display:grid;justify-items:center;gap:8px;width:100%;min-height:150px;padding:22px;border-radius:var(--r-lg);color:var(--ink)}.workout-empty>span{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#c88bff26;color:var(--accent)}.workout-empty small{color:var(--ink-mute)}.exercise-stack{display:grid;gap:14px}.exercise-card{display:grid;gap:14px;padding:16px;border-radius:var(--r-lg)}.exercise-head{display:grid;grid-template-columns:34px minmax(0,1fr) 36px;gap:10px;align-items:end}.exercise-number{display:grid;place-items:center;width:34px;height:48px;border-radius:11px;background:#c88bff24;color:var(--v-200);font-weight:800}.exercise-name input{font-weight:700}.round-btn.compact{width:36px;height:36px;margin-bottom:6px}.danger-icon{color:var(--danger)}.workflow-mode{display:grid;gap:5px;padding:15px 17px;border:1px solid var(--glass-bd);border-radius:var(--r-lg);background:#ffffff0b}.workflow-mode span{color:var(--v-200);font-size:.68rem;font-weight:800;text-transform:uppercase}.workflow-mode strong{font-size:.98rem}.workflow-mode p{color:var(--ink-mute);font-size:.8rem;line-height:1.5}.workflow-mode.plan{border-color:#c88bff59;background:#9d5cff17}.workflow-mode.review{border-color:#56e0a84d;background:#56e0a812}.workflow-mode.review span{color:var(--ok)}.workflow-mode.live{border-color:#ffcf6b4d;background:#ffcf6b12}.workflow-mode.live span{color:var(--warn)}.workflow-mode.locked{border-color:#ffffff17}.workout-fields{display:grid;gap:16px;min-width:0;margin:0;padding:0;border:0}.workout-fields[disabled]{opacity:.68}.workout-fields[disabled] button{cursor:default}.session-name-field{padding:15px 17px;border:1px solid var(--glass-bd);border-radius:var(--r-lg);background:#ffffff0a}.set-labels,.set-row{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 36px 32px;gap:6px;align-items:center}.set-labels{color:var(--ink-mute);font-size:.65rem;font-weight:700;text-transform:uppercase}.set-labels span:first-child,.set-row>span{text-align:center}.set-stack{display:grid;gap:8px}.set-row>span{color:var(--v-200);font-size:.78rem;font-weight:800}.set-row input{width:100%;min-width:0;height:44px;border:1px solid var(--glass-bd);border-radius:11px;padding:8px;background:#08050e8c;text-align:center;font-variant-numeric:tabular-nums}.set-row button{display:grid;place-items:center;width:36px;height:44px;color:var(--ink-mute)}.set-row .set-complete{height:36px;border-radius:50%;border:1px solid var(--glass-bd);background:#ffffff0a}.set-row .set-complete.done{border-color:#56e0a859;background:#56e0a826;color:var(--ok)}.add-set{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px dashed var(--glass-bd-strong);border-radius:12px;color:var(--v-200);font-size:.82rem;font-weight:700}.optional{margin-left:5px;color:var(--ink-mute);font-weight:500}.session-quality,.progress-uploader{display:grid;gap:16px;padding:18px;border-radius:var(--r-lg)}.session-quality .stars{justify-content:flex-start}.rating-sliders{display:grid;gap:13px}.rating-sliders label{display:grid;grid-template-columns:1fr auto;gap:7px;color:var(--ink-soft);font-size:.8rem}.rating-sliders input{grid-column:1 / -1;min-height:24px;padding:0;accent-color:var(--v-400)}.rating-sliders strong{color:var(--v-200);font-variant-numeric:tabular-nums}.progress-uploader>div:first-child p:last-child{margin-top:5px;color:var(--ink-mute);font-size:.8rem}.progress-uploader .upload-btn{width:max-content}.upload-btn.disabled{opacity:.45;cursor:not-allowed}.upload-status,.form-hint{color:var(--ink-mute);font-size:.78rem;text-align:center}.photo-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-editor{display:grid;gap:7px;min-width:0}.photo-frame{position:relative;overflow:hidden;aspect-ratio:4 / 5;border-radius:14px;background:#ffffff0d}.photo-frame img{width:100%;height:100%;object-fit:cover;display:block}.photo-frame button{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#0a0710d1;color:#fff}.photo-editor>input{width:100%;min-width:0;height:42px;border:1px solid var(--glass-bd);border-radius:10px;padding:8px 10px;background:#08050e8c;font-size:.75rem}.workout-save{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:4}.attendance-card{display:grid;gap:14px;margin-top:14px}.attendance-card .notes-card{margin-top:0}.attendance-message{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:.82rem}.rotating-code{display:grid;grid-template-columns:1fr auto;gap:7px 12px;align-items:center;padding:15px;border-radius:14px}.rotating-code>span{color:var(--ink-mute);font-size:.76rem}.rotating-code>strong{grid-row:1 / 3;grid-column:2;color:#fff;font-size:2rem;font-variant-numeric:tabular-nums}.rotating-code>div{display:flex;align-items:center;gap:10px;color:var(--v-200);font-size:.78rem;font-weight:800}.rotating-code button{color:var(--v-200);font-size:.75rem;font-weight:800}.rotating-code .urgent{color:var(--danger)}.assignment-notice,.missed-notice,.admin-rule{display:flex;align-items:flex-start;gap:12px;padding:14px 15px;border-radius:var(--r-lg)}.assignment-notice{margin-top:14px;color:var(--v-200)}.missed-notice{margin-top:14px;border:1px solid rgba(255,159,107,.28);background:#ff9f6b14;color:#ffbd91}.assignment-notice div,.missed-notice div{min-width:0}.assignment-notice strong,.missed-notice strong{color:var(--ink);font-size:.86rem}.assignment-notice p,.missed-notice p{margin-top:3px;color:var(--ink-mute);font-size:.76rem;line-height:1.45}.admin-rule{border:1px solid rgba(200,139,255,.24);background:#9d5cff14;color:var(--v-200)}.admin-rule p{display:grid;gap:3px}.admin-rule strong{color:var(--ink);font-size:.84rem}.admin-rule span{color:var(--ink-mute);font-size:.77rem;line-height:1.4}.field-help{display:block;margin-top:6px;color:var(--ink-mute);font-size:.76rem;line-height:1.45}.assigned-trainer-preview,.current-assignment{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid rgba(86,224,168,.25);border-radius:14px;background:#56e0a812}.assigned-trainer-preview.missing{border-color:#ffcf6b47;background:#ffcf6b12}.assigned-trainer-preview>div,.current-assignment>div{display:grid;min-width:0;gap:2px}.assigned-trainer-preview span,.current-assignment span,.club-summary span{color:var(--ink-mute);font-size:.68rem;font-weight:800;text-transform:uppercase}.assigned-trainer-preview strong,.current-assignment strong{color:var(--ink);font-size:.88rem}.assigned-trainer-preview small,.current-assignment small{color:var(--ink-mute);font-size:.75rem}.table-action{min-height:36px;padding:0 11px;border:1px solid var(--glass-bd);border-radius:10px;color:var(--v-200);font-size:.75rem;font-weight:800;white-space:nowrap}.table-action.primary{border-color:#c88bff5c;background:#9d5cff24;color:#fff}.assignment-current{display:grid;gap:3px;padding:12px 14px;border-radius:12px;background:#ffffff0d}.assignment-current span{color:var(--ink-mute);font-size:.7rem;text-transform:uppercase}.assignment-history{display:grid;margin-top:15px}.assignment-history>div{display:grid;grid-template-columns:18px 1fr;gap:10px;min-height:74px}.assignment-line{position:relative;width:10px;height:10px;margin-top:4px;border-radius:50%;background:var(--ink-mute);box-shadow:0 0 0 4px #ffffff0d}.assignment-line:after{content:"";position:absolute;top:14px;left:4px;width:1px;height:54px;background:var(--glass-bd)}.assignment-history>div:last-child .assignment-line:after{display:none}.assignment-line.active{background:var(--ok);box-shadow:0 0 0 4px #56e0a81f}.assignment-history strong{font-size:.85rem}.assignment-history p{margin-top:3px;color:var(--v-200);font-size:.75rem}.assignment-history small{display:block;margin-top:4px;color:var(--ink-mute);font-size:.74rem;line-height:1.4}.club-settings-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:20px;align-items:start}.club-summary{position:sticky;top:96px;display:grid;gap:18px}.club-summary>p{color:var(--ink-mute);font-size:.82rem}.club-summary>div{display:grid;gap:4px;padding-top:15px;border-top:1px solid var(--glass-bd)}.club-summary strong{color:var(--ink);font-size:.88rem;line-height:1.45}.club-summary small{color:var(--ink-mute);line-height:1.45}.section-count{color:var(--ink-mute);font-size:.75rem}.progress-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.progress-gallery figure{position:relative;overflow:hidden;min-width:0;aspect-ratio:4 / 5;margin:0;border-radius:var(--r-md);border:1px solid var(--glass-bd);background:#ffffff0d}.progress-gallery img{width:100%;height:100%;object-fit:cover;display:block}.progress-gallery figcaption{position:absolute;inset:auto 0 0;display:grid;gap:2px;padding:26px 10px 10px;background:linear-gradient(transparent,#08050ee6)}.progress-gallery figcaption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.progress-gallery figcaption span{color:var(--ink-soft);font-size:.66rem}.progress-gallery.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-gallery.compact figure{aspect-ratio:1}.progress-empty{display:flex;align-items:center;gap:13px;padding:16px;border-radius:var(--r-lg);color:var(--v-200)}.progress-empty div{min-width:0}.progress-empty strong{color:var(--ink)}.progress-empty p{margin-top:3px;color:var(--ink-mute);font-size:.78rem}.workout-recap,.session-media{display:grid;gap:16px;margin-top:14px;padding:18px;border-radius:var(--r-lg)}.recap-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.recap-title h2{margin-top:4px}.coach-rating{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:99px;background:#ffcf6b1f;color:var(--warn);font-size:.78rem;font-weight:800;white-space:nowrap}.recap-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.recap-metrics>div{display:grid;gap:3px;min-width:0;padding:11px;border-radius:13px;background:#ffffff0d}.recap-metrics svg{color:var(--v-200)}.recap-metrics strong{overflow:hidden;text-overflow:ellipsis;font-size:.95rem;font-variant-numeric:tabular-nums}.recap-metrics span{color:var(--ink-mute);font-size:.63rem}.exercise-recap-list{display:grid;gap:9px}.exercise-recap-list>div{padding:12px;border-radius:13px;background:#08050e59}.exercise-recap-head{display:flex;justify-content:space-between;gap:8px}.exercise-recap-head span{color:var(--v-200);font-size:.67rem;text-transform:capitalize}.exercise-recap-list p{margin-top:5px;color:var(--ink-soft);font-size:.78rem}.exercise-recap-list small{display:block;margin-top:5px;color:var(--ink-mute);line-height:1.45}.coach-summary{display:grid;gap:10px;padding-top:2px}.coach-summary>div{padding-left:11px;border-left:2px solid var(--v-400)}.coach-summary span{color:var(--v-200);font-size:.68rem;font-weight:800;text-transform:uppercase}.coach-summary p{margin-top:3px;color:var(--ink-soft);font-size:.82rem}.effort-strip{display:flex;gap:8px;flex-wrap:wrap}.effort-strip span{padding:7px 10px;border-radius:99px;background:#ffffff0f;color:var(--ink-mute);font-size:.72rem}.effort-strip strong{color:var(--ink)}.verify-steps{display:grid;gap:14px}.camera-box{display:grid;place-items:center;gap:10px;min-height:220px;border-radius:var(--r-lg);text-align:center;color:var(--ink-soft);border:1px dashed var(--glass-bd-strong)}.camera-box.captured{border-style:solid;border-color:var(--ok);background:#56e0a814;color:var(--ok)}.camera-box .cam-ic{display:grid;place-items:center;width:60px;height:60px;border-radius:20px;background:#ffffff0f;color:var(--v-200)}.camera-box.captured .cam-ic{background:#56e0a824;color:var(--ok)}.code-field{padding:16px;border-radius:var(--r-lg)}.code-field input{text-align:center;font-size:1.5rem;font-weight:800;letter-spacing:.5em;padding-left:.5em}.code-hint{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--ink-mute);font-size:.78rem}.verify-progress{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--ink-soft)}.verify-progress .step{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;background:#ffffff0f}.verify-progress .step.done{background:#56e0a824;color:var(--ok)}.feedback-card{display:grid;gap:16px;padding:20px;border-radius:var(--r-lg)}.stars{display:flex;gap:10px;justify-content:center}.stars button{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#ffffff0f;color:var(--warn);transition:transform .1s}.stars button:active{transform:scale(.9)}.star-inline{display:inline-flex;gap:2px;color:var(--warn)}.notif{display:flex;gap:13px;padding:14px;border-radius:var(--r-md);text-align:left;width:100%;color:var(--ink)}.notif.unread{background:#c88bff14;border:1px solid rgba(200,139,255,.2)}.notif .who{margin-right:auto}.notif .who p{margin-top:3px;color:var(--ink-soft);font-size:.82rem}.notif time{color:var(--ink-mute);font-size:.72rem;white-space:nowrap}.auth-stage{position:relative;overflow:hidden;min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(900px 500px at 80% -10%,#351459 0,transparent 55%),radial-gradient(700px 500px at -10% 40%,#1c1046 0,transparent 55%),#070510}.aurora{position:absolute;border-radius:50%;filter:blur(80px);opacity:.8;pointer-events:none}.aurora.a{width:380px;height:380px;top:-130px;left:-110px;background:#b754ff}.aurora.b{width:420px;height:420px;right:-160px;bottom:-150px;background:#5b3eff}.auth-card{position:relative;z-index:1;display:grid;gap:15px;width:min(100%,420px);padding:30px;border-radius:var(--r-xl)}.auth-card h1{font-size:1.9rem}.auth-card .auth-mark{margin-bottom:8px}.auth-switch{text-align:center;font-size:.85rem;color:var(--ink-soft)}.auth-switch button{color:var(--v-200);font-weight:800}.role-hint{display:grid;gap:8px;margin-top:4px}.role-hint button{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--glass-bd);background:#ffffff0a;text-align:left;transition:border-color .2s,background .2s}.role-hint button:hover{border-color:var(--v-400);background:#c88bff14}.role-hint .ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#c88bff29;color:var(--accent)}.role-hint strong{font-size:.9rem}.role-hint small{color:var(--ink-mute);font-size:.76rem}.admin{min-height:100dvh;display:grid;grid-template-columns:248px 1fr;background:radial-gradient(1000px 500px at 100% -10%,#1c0f36 0,transparent 50%),#08060e;color:var(--ink)}.admin-side{position:sticky;top:0;align-self:start;height:100dvh;display:flex;flex-direction:column;gap:6px;padding:22px 16px;border-right:1px solid var(--glass-bd);background:#0c081499;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.admin-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px}.admin-brand .brand-mark{width:40px;height:40px;border-radius:12px;font-size:.9rem}.admin-brand strong{font-size:1rem}.admin-brand small{display:block;color:var(--ink-mute);font-size:.72rem}.admin-nav{display:grid;gap:3px}.admin-nav button{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--ink-mute);font-weight:600;font-size:.9rem;text-align:left;transition:background .2s,color .2s}.admin-nav button:hover{background:#ffffff0d;color:var(--ink-soft)}.admin-nav button.active{background:#c88bff29;color:var(--ink)}.admin-nav .grp{margin:14px 0 6px;padding:0 12px;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-mute)}.admin-side-foot{margin-top:auto;display:grid;gap:8px}.admin-me{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:#ffffff0a}.admin-me .who{min-width:0}.admin-me strong{display:block;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-me small{color:var(--ink-mute);font-size:.72rem}.admin-main{min-width:0;display:flex;flex-direction:column}.admin-top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 30px;border-bottom:1px solid var(--glass-bd);background:#08060eb8;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.admin-top .titles h1{font-size:1.35rem}.admin-top .titles p{color:var(--ink-mute);font-size:.84rem;margin-top:2px}.admin-top .actions{display:flex;align-items:center;gap:10px}.admin-body{padding:26px 30px 44px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-content:start}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi{padding:18px;border-radius:var(--r-lg);display:grid;gap:8px}.kpi .top{display:flex;align-items:center;justify-content:space-between}.kpi .ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#c88bff24;color:var(--accent)}.kpi .n{font-size:2rem;font-weight:800;letter-spacing:-.03em}.kpi .l{color:var(--ink-mute);font-size:.82rem}.kpi .delta{font-size:.76rem;font-weight:700}.kpi .delta.up{color:var(--ok)}.kpi .delta.down{color:var(--danger)}.panel{border-radius:var(--r-lg);padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{font-size:1.1rem}.chart-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}.chart-box{width:100%;height:260px}.table-wrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--glass-bd)}table.data{width:100%;border-collapse:collapse;font-size:.88rem;min-width:640px}table.data thead th{text-align:left;padding:13px 16px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);background:#ffffff08;border-bottom:1px solid var(--glass-bd);font-weight:700}table.data tbody td{padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.06);color:var(--ink-soft);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:#ffffff08}table.data .cell-main{color:var(--ink);font-weight:600}.tbl-user{display:flex;align-items:center;gap:10px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:9px;padding:0 13px;min-height:44px;border-radius:12px;border:1px solid var(--glass-bd);background:#08050e80;color:var(--ink-mute);flex:1 1 240px;max-width:340px}.search input{border:0;background:none;min-height:auto;padding:0;flex:1}.select-pill{min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--glass-bd);background:#08050e80;color:var(--ink)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#04020aa8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{width:min(100%,560px);max-height:88vh;overflow-y:auto;border-radius:var(--r-xl);padding:24px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-head h2{font-size:1.25rem}.modal-head p{color:var(--ink-mute);font-size:.84rem;margin-top:4px}.import-drop{display:grid;justify-items:center;gap:12px;padding:30px;border-radius:var(--r-lg);border:1px dashed var(--glass-bd-strong);text-align:center;color:var(--ink-soft)}.import-drop .ic{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#c88bff24;color:var(--accent)}.import-summary{display:flex;gap:12px;flex-wrap:wrap}.import-summary .pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;font-weight:700;font-size:.84rem}.import-summary .pill.ok{background:#56e0a824;color:var(--ok)}.import-summary .pill.bad{background:#ff6b9524;color:var(--danger)}.import-rows{display:grid;gap:8px;max-height:320px;overflow-y:auto}.import-row{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:12px 14px;border-radius:12px;font-size:.84rem;background:#ffffff08;border:1px solid var(--glass-bd)}.import-row.bad{border-color:#ff6b954d;background:#ff6b950f}.import-row .err{color:var(--danger);font-size:.78rem;margin-top:4px}.import-row code{color:var(--ink-mute);font-size:.78rem;word-break:break-all}.detail-panel{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}.toast{position:fixed;z-index:80;left:50%;bottom:28px;transform:translate(-50%);display:inline-flex;align-items:center;gap:10px;padding:13px 18px;border-radius:14px;background:#140e1cf0;border:1px solid var(--glass-bd-strong);box-shadow:var(--sh-2);font-weight:600;font-size:.88rem;animation:toast-in .25s ease}.toast .ic{color:var(--ok);display:grid;place-items:center}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.fade-in{animation:fade-in .3s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hide-desktop{display:none}@media(max-width:1040px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-grid,.detail-panel,.club-settings-grid{grid-template-columns:1fr}.club-summary{position:static}}@media(max-width:860px){.hide-desktop{display:inline-flex}.admin{grid-template-columns:1fr}.admin-side{position:fixed;z-index:60;left:0;top:0;width:264px;transform:translate(-100%);transition:transform .25s ease}.admin.nav-open .admin-side{transform:none}.admin-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#00000080}}@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}.admin-body{padding:18px 16px 40px}.admin-top{padding:14px 16px}.two-col{grid-template-columns:1fr}}@media(min-width:480px){.device-stage{padding:26px}.phone{min-height:900px;border-radius:40px;box-shadow:0 40px 90px #0000008c;border:1px solid rgba(255,255,255,.06)}.bottom-nav{border-radius:0 0 40px 40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}:root{--af-primary: #6e38d5;--af-primary-hover: #440099;--af-violet: #440099;--af-accent-purple: #a42af9;--af-turquoise: #00aec7;--af-red: #ef3340;--af-orange: #ff7500;--background: #f7f7fa;--surface: #ffffff;--surface-subtle: #f4f2f7;--text-primary: #18151d;--text-secondary: #68646f;--text-muted: #817c88;--border: #e8e5ed;--border-strong: #d7d2de;--disabled-bg: #f0eef3;--disabled-text: #a6a1ac;--success: var(--af-turquoise);--success-ink: #006f7f;--success-tint: #e6f8fb;--warning: var(--af-orange);--warning-ink: #a84600;--warning-tint: #fff2e8;--error: var(--af-red);--error-ink: #bf1d28;--error-tint: #fdebed;--primary-tint: #f0eafa;--bg: var(--background);--bg-2: var(--disabled-bg);--ink: var(--text-primary);--ink-soft: var(--text-secondary);--ink-mute: var(--text-muted);--v-100: #f5f1fc;--v-200: #d8c9f3;--v-300: #9d7be3;--v-400: var(--af-primary);--v-500: var(--af-primary);--v-600: #5821ba;--v-700: var(--af-violet);--accent: var(--af-primary);--grad: var(--af-primary);--grad-soft: var(--primary-tint);--ok: var(--success-ink);--ok-ink: #003f49;--warn: var(--warning-ink);--danger: var(--error-ink);--info: var(--success-ink);--glass-bd: var(--border);--glass-bd-strong: var(--border-strong);--glass-bg: var(--surface);--glass-hi: none;--blur: none;--sh-1: 0 8px 24px rgba(68, 0, 153, .07);--sh-2: 0 16px 40px rgba(68, 0, 153, .11);--sh-glow: 0 10px 24px rgba(68, 0, 153, .16);color-scheme:light;color:var(--text-primary);background:var(--background)}*{letter-spacing:0!important}body{background:var(--background);color:var(--text-primary)}::selection{background:#d8c9f3;color:var(--af-violet)}*::-webkit-scrollbar-thumb{background:#d7d2de;border-color:transparent}:where(button,input,textarea,select,a):focus-visible{outline-color:var(--af-primary)}.eyebrow{color:var(--af-primary)}.muted{color:var(--text-secondary)}.dim{color:var(--text-muted)}.loading-screen{background:var(--af-violet);color:#fff}.brand-mark,.auth-mark{background:var(--af-primary);color:#fff;box-shadow:none}.glass{border-color:var(--border);background:var(--surface);box-shadow:var(--sh-1);backdrop-filter:none;-webkit-backdrop-filter:none}.device-stage{background:#ece9f1}.phone{color:var(--text-primary);background:var(--background)}.phone:before{display:none}.app-header{color:var(--text-primary)}.greeting{color:var(--text-secondary)}.round-btn{border-color:var(--border);background:var(--surface);color:var(--af-primary);box-shadow:0 4px 14px #4400990f;-webkit-backdrop-filter:none;backdrop-filter:none}.round-btn:hover{border-color:var(--af-primary);background:var(--primary-tint)}.round-btn .dot{background:var(--af-red);border-color:var(--surface)}.link-btn,.btn-ghost{color:var(--af-primary)}.btn-primary{background:var(--af-primary);color:#fff;box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--af-primary-hover)}.btn-primary:disabled{background:var(--disabled-bg);color:var(--disabled-text);opacity:1}.btn-dark{background:var(--af-violet);color:#fff;border-color:var(--af-violet)}.btn-dark:hover{background:#350077}.btn-glass{border-color:var(--af-primary);background:var(--surface);color:var(--af-primary);-webkit-backdrop-filter:none;backdrop-filter:none}.btn-glass:hover{background:var(--primary-tint)}.btn-danger{background:var(--af-red);color:#fff;border-color:var(--af-red)}.hero{background:var(--af-violet);color:#fff;box-shadow:var(--sh-2)}.hero:after,.auth-stage:before,.camera-box:before,.club-summary:before,.empty:before,.admin-top:after{content:"";position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:cover;background-position:center}.hero:after{top:0;right:0;bottom:0;left:0;width:auto;height:auto;border:0;border-radius:0;box-shadow:none;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_5.png);mix-blend-mode:multiply;opacity:.3}.hero>*{z-index:1}.hero .eyebrow,.hero h2,.hero-meta,.trainer-chip{color:#fff}.hero .btn-dark{background:#fff;color:var(--af-violet);border-color:#fff}.hero .btn-dark:hover{background:#f4f2f7}.quick-grid button{border-color:var(--border);background:var(--surface);color:var(--text-secondary)}.quick-grid button:hover{border-color:var(--af-primary);background:var(--primary-tint)}.quick-grid .ic,.icon-tile,.workout-launch-icon,.role-hint .ic,.import-drop .ic,.kpi .ic,.settings .lead,.workout-empty>span{background:var(--primary-tint);color:var(--af-primary)}.meter{background:var(--disabled-bg);border-color:var(--border)}.meter>span{background:var(--af-primary);box-shadow:none}.helper{color:var(--text-muted)}.tile{color:var(--text-primary);border-color:var(--border);background:var(--surface);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.tile:hover{border-color:#cfc4e2;box-shadow:var(--sh-1)}.tile p,.tile .cta-caret{color:var(--text-muted)}.date-badge{background:var(--surface-subtle);border-color:var(--border)}.date-badge span{color:var(--text-secondary)}.chip{background:var(--primary-tint);color:var(--af-violet)}.chip.scheduled,.chip.verified,.chip.enrolled{background:var(--success-tint);color:var(--success-ink)}.chip.completed{background:var(--primary-tint);color:var(--af-violet)}.chip.flagged,.chip.missed{background:var(--error-tint);color:var(--error-ink)}.chip.pending,.chip.review{background:var(--warning-tint);color:var(--warning-ink)}.chip.cancelled{background:var(--disabled-bg);color:var(--text-muted)}.avatar{border-color:#fff;background:var(--af-primary);color:#fff;box-shadow:0 5px 16px #44009926}.segmented{background:var(--disabled-bg);border-color:var(--border)}.segmented button{color:var(--text-secondary)}.segmented button.active{background:var(--af-primary);color:#fff;box-shadow:none}.bottom-nav{border-color:var(--border);background:#fffffff5;box-shadow:0 -8px 24px #4400990f}.bottom-nav button{color:var(--text-muted)}.bottom-nav button.active{color:var(--af-primary)}.bottom-nav button.active .navic{background:var(--primary-tint);color:var(--af-primary)}.page-intro{color:var(--text-secondary)}.empty{position:relative;overflow:hidden;color:var(--text-muted);border-radius:var(--r-lg)}.empty:before{top:0;right:0;bottom:0;left:0;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_5.png);opacity:.07}.empty>*{position:relative}.empty .ic{background:var(--primary-tint);color:var(--af-primary)}.field{color:var(--text-secondary)}.field input,.field textarea,.field select,.input,.set-row input,.photo-editor>input{border-color:var(--border);background:var(--surface);color:var(--text-primary)}.field input:focus,.field textarea:focus,.field select:focus,.set-row input:focus,.photo-editor>input:focus{border-color:var(--af-primary);background:var(--surface);outline:3px solid rgba(110,56,213,.12)}.field input::placeholder,.field textarea::placeholder{color:var(--disabled-text)}.upload-btn{background:var(--surface);border-color:var(--af-primary);color:var(--af-primary)}.profile-hero .who p,.trainer-hero .spec,.bio-card .badges span,.notes-card p{color:var(--text-secondary)}.data-grid{border-color:var(--border);background:var(--border)}.data-grid>div{background:var(--surface)}.data-grid small{color:var(--text-muted)}.settings{border-color:var(--border);background:var(--surface)}.settings button{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.settings button:hover{background:var(--surface-subtle)}.settings .danger .lead{background:var(--error-tint);color:var(--error-ink)}.ring:before{background:var(--surface)}.ring .val span,.timeline-row .who p,.stat .l{color:var(--text-muted)}.timeline-row{color:var(--text-primary)}.timeline-dot{background:var(--success-tint);color:var(--success-ink)}.pkg.featured{border-color:var(--af-primary);background:var(--primary-tint)}.pkg .badge{background:var(--af-primary);color:#fff}.pkg .n,.pkg .desc{color:var(--text-secondary)}.pkg .per{color:var(--text-muted)}.trainer-hero .rate{color:var(--af-primary)}.detail-list button:hover{background:var(--surface-subtle)}.detail-list .who small{color:var(--text-muted)}.workout-launch p:last-child,.workout-overview p:last-child,.workout-count span,.workout-empty small,.workflow-mode p,.optional,.upload-status,.form-hint,.progress-uploader>div:first-child p:last-child{color:var(--text-muted)}.workout-count,.session-name-field,.workflow-mode{background:var(--surface-subtle);border-color:var(--border)}.workout-count strong,.workflow-mode span,.exercise-number,.set-row>span,.rating-sliders strong{color:var(--af-primary)}.exercise-number{background:var(--primary-tint)}.workflow-mode.plan{border-color:#cbb8ed;background:var(--primary-tint)}.workflow-mode.review{border-color:#a8e4ec;background:var(--success-tint)}.workflow-mode.review span{color:var(--success-ink)}.workflow-mode.live{border-color:#ffd0aa;background:var(--warning-tint)}.workflow-mode.live span{color:var(--warning-ink)}.workflow-mode.locked{border-color:var(--border);background:var(--disabled-bg)}.set-labels{color:var(--text-muted)}.set-row .set-complete{border-color:var(--border);background:var(--surface)}.set-row .set-complete.done{border-color:var(--af-turquoise);background:var(--success-tint);color:var(--success-ink)}.add-set{border-color:var(--af-primary);color:var(--af-primary)}.rating-sliders label{color:var(--text-secondary)}.rating-sliders input{accent-color:var(--af-primary)}.photo-frame{background:var(--disabled-bg)}.attendance-card{position:relative}.rotating-code{background:var(--af-violet);color:#fff;border-color:var(--af-violet)}.rotating-code>span{color:#e9def9}.rotating-code>strong{color:#fff}.rotating-code>div,.rotating-code button{color:#fff}.rotating-code .urgent{color:#ffd1d5}.attendance-message{color:var(--text-secondary)}.assignment-notice{color:var(--af-primary)}.missed-notice{border-color:#f5a4aa;background:var(--error-tint);color:var(--error-ink)}.assignment-notice strong,.missed-notice strong,.admin-rule strong{color:var(--text-primary)}.assignment-notice p,.missed-notice p,.admin-rule span,.field-help{color:var(--text-muted)}.admin-rule{border-color:#cbb8ed;background:var(--primary-tint);color:var(--af-primary)}.assigned-trainer-preview,.current-assignment{border-color:#a8e4ec;background:var(--success-tint)}.assigned-trainer-preview.missing{border-color:#ffd0aa;background:var(--warning-tint)}.assigned-trainer-preview span,.current-assignment span,.club-summary span{color:var(--text-muted)}.assigned-trainer-preview strong,.current-assignment strong,.club-summary strong{color:var(--text-primary)}.assigned-trainer-preview small,.current-assignment small,.club-summary small{color:var(--text-muted)}.table-action{border-color:var(--af-primary);color:var(--af-primary)}.table-action.primary{border-color:var(--af-primary);background:var(--af-primary);color:#fff}.assignment-current,.recap-metrics>div,.effort-strip span{background:var(--surface-subtle)}.assignment-line{background:var(--disabled-text);box-shadow:0 0 0 4px var(--disabled-bg)}.assignment-line.active{background:var(--af-turquoise);box-shadow:0 0 0 4px var(--success-tint)}.assignment-history p{color:var(--af-primary)}.assignment-history small,.club-summary>p{color:var(--text-muted)}.club-summary{overflow:hidden}.club-summary:before{top:0;right:0;bottom:0;left:0;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_4.png);opacity:.055}.club-summary>*{position:relative}.club-summary>div{border-color:var(--border)}.progress-gallery figure{border-color:var(--border);background:var(--disabled-bg)}.progress-gallery figcaption{background:#18151dd1}.progress-empty{color:var(--af-primary)}.progress-empty strong{color:var(--text-primary)}.progress-empty p{color:var(--text-muted)}.coach-rating{background:var(--warning-tint);color:var(--warning-ink)}.recap-metrics svg,.exercise-recap-head span,.coach-summary span{color:var(--af-primary)}.exercise-recap-list>div{background:var(--surface-subtle)}.exercise-recap-list p,.coach-summary p{color:var(--text-secondary)}.exercise-recap-list small{color:var(--text-muted)}.coach-summary>div{border-color:var(--af-primary)}.camera-box{position:relative;overflow:hidden;border-color:var(--af-violet);background:var(--af-violet);color:#fff}.camera-box:before{top:0;right:0;bottom:0;left:0;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_5.png);mix-blend-mode:multiply;opacity:.24}.camera-box>*{position:relative}.camera-box .cam-ic{background:#ffffff29;color:#fff}.camera-box.captured{border-color:var(--af-turquoise);background:var(--success-tint);color:var(--success-ink)}.camera-box.captured:before{display:none}.camera-box.captured .cam-ic{background:#cceff4;color:var(--success-ink)}.code-field{background:var(--surface)}.code-hint{color:var(--text-muted)}.verify-progress{color:var(--text-secondary)}.verify-progress .step{background:var(--disabled-bg)}.verify-progress .step.done{background:var(--success-tint);color:var(--success-ink)}.stars button{background:var(--warning-tint);color:var(--af-orange)}.star-inline{color:var(--af-orange)}.notif{color:var(--text-primary)}.notif.unread{background:var(--primary-tint);border-color:#d8c9f3}.notif .who p{color:var(--text-secondary)}.notif time{color:var(--text-muted)}.auth-stage{background:var(--af-violet)}.auth-stage:before{top:0;right:0;bottom:0;left:0;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_5.png);background-size:auto 100%;background-position:right center;mix-blend-mode:multiply;opacity:.38}.aurora{display:none}.auth-card{background:#fffffffa;border-color:#fff;box-shadow:0 22px 56px #18003647}.auth-switch{color:var(--text-secondary)}.auth-switch button{color:var(--af-primary)}.auth-error{padding:11px 13px;border:1px solid #f5a4aa;border-radius:12px;background:var(--error-tint);color:var(--error-ink);font-size:.82rem}.role-hint button{border-color:var(--border);background:var(--surface);color:var(--text-primary)}.role-hint button:hover{border-color:var(--af-primary);background:var(--primary-tint)}.role-hint small{color:var(--text-muted)}.admin{background:var(--background);color:var(--text-primary)}.admin-side{border-color:#ffffff29;background:var(--af-violet);color:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.admin-brand small,.admin-nav .grp,.admin-me small{color:#d9cbea}.admin-nav button{color:#e7ddf3}.admin-nav button:hover{background:#ffffff1a;color:#fff}.admin-nav button.active{background:#fff;color:var(--af-violet)}.admin-me{background:#ffffff1a}.admin-side .round-btn{background:#ffffff1a;border-color:#ffffff38;color:#fff;box-shadow:none}.admin-main{background:var(--background)}.admin-top{position:sticky;overflow:hidden;border-color:var(--border);background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-top:after{z-index:-1;inset:-35px 0 -35px auto;width:360px;background-image:url(/brand-assets/Generic_Line_Blend_Landscape_5.png);background-position:center right;opacity:.1}.admin-top .titles p{color:var(--text-muted)}.kpi .ic{background:var(--primary-tint);color:var(--af-primary)}.kpi .l{color:var(--text-muted)}.kpi .delta.up{color:var(--success-ink)}.kpi .delta.down{color:var(--error-ink)}.panel,.kpi{background:var(--surface)}.table-wrap{border-color:var(--border);background:var(--surface)}table.data thead th{color:var(--text-secondary);background:var(--surface-subtle);border-color:var(--border)}table.data tbody td{border-color:var(--border);color:var(--text-secondary)}table.data tbody tr:hover td{background:var(--surface-subtle)}table.data .cell-main{color:var(--text-primary)}.search,.select-pill{border-color:var(--border);background:var(--surface);color:var(--text-primary)}.search{color:var(--text-muted)}.modal-scrim{background:#18151d8c}.modal{background:var(--surface)}.modal-head p{color:var(--text-muted)}.import-drop{border-color:var(--border-strong);color:var(--text-secondary);background:var(--surface)}.import-summary .pill.ok{background:var(--success-tint);color:var(--success-ink)}.import-summary .pill.bad{background:var(--error-tint);color:var(--error-ink)}.import-row{background:var(--surface-subtle);border-color:var(--border)}.import-row.bad{border-color:#f5a4aa;background:var(--error-tint)}.import-row .err{color:var(--error-ink)}.import-row code{color:var(--text-muted)}.toast{background:var(--af-violet);color:#fff;border-color:var(--af-violet)}.toast .ic{color:#fff}@media(min-width:480px){.phone{box-shadow:0 32px 72px #44009924;border-color:var(--border)}}@media(prefers-contrast:more){:root{--border: #c4becb;--text-muted: #5f5a66}}
