/* Shared product screens for Gym Finder */
.page-header { border-bottom-color: rgba(214,255,105,.1); }
.page-main { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; padding: 39px 0 92px; }
.breadcrumb { display: flex; align-items: center; gap: 7px; color: var(--muted); margin-bottom: 20px; font-size: 11px; }.breadcrumb a:hover { color: var(--orange); }.breadcrumb svg { width: 13px; }.breadcrumb b { color: var(--text); font-weight: 600; }
.page-title { font-size: clamp(30px, 3.2vw, 45px); margin: 0; letter-spacing: -.065em; line-height: 1.35; }.page-subtitle { max-width: 650px; margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 2; }
.page-kicker { display: inline-flex; align-items: center; gap: 7px; color: var(--lime); font-size: 11px; font-weight: 800; }.page-kicker i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(214,255,105,.1); }
.page-shell { min-height: 100dvh; background: radial-gradient(circle at 88% 0%, rgba(214,255,105,.055), transparent 25%), var(--bg); }
.chip, .status-chip { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 4px 9px; font-size: 10px; font-weight: 700; }.chip { color: #cbd9c4; background: var(--card-raised); }.status-chip { color: #bef5d3; border: 1px solid rgba(25,209,122,.24); background: rgba(25,209,122,.1); }.status-chip svg { width: 12px; }
.panel-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }.panel-card-header { padding: 18px 19px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); }.panel-card-header h2, .panel-card-header h3 { font-size: 15px; margin: 0; }.panel-card-header p { color: var(--muted); margin: 2px 0 0; font-size: 10px; }

/* Authentication */
.auth-main { width: min(calc(100% - 48px), 1170px); min-height: calc(100dvh - 86px); margin: auto; display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 72px; padding: 48px 0 62px; }.auth-copy { position: relative; min-height: 595px; overflow: hidden; display: flex; flex-direction: column; justify-content: end; padding: 43px; border: 1px solid rgba(214,255,105,.22); border-radius: 29px; background: #1d2717; }.auth-copy > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .58; filter: saturate(.7); }.auth-copy::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,12,7,.98), rgba(8,12,7,.04) 82%); }.auth-copy-content { position: relative; z-index: 1; }.auth-copy h1 { margin: 11px 0; max-width: 470px; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.35; letter-spacing: -.07em; }.auth-copy h1 span { color: var(--lime); }.auth-copy p { max-width: 410px; color: #c4d0bc; margin: 0; font-size: 13px; line-height: 2; }.auth-benefit-list { display: grid; gap: 8px; margin-top: 22px; }.auth-benefit-list span { display: flex; align-items: center; gap: 8px; color: #ecf5e8; font-size: 11px; }.auth-benefit-list svg { width: 15px; color: var(--lime); }.auth-form-wrap { width: min(100%, 470px); }.auth-form-wrap > .brand { margin-bottom: 28px; }.auth-form-title { margin: 0; font-size: 30px; letter-spacing: -.06em; }.auth-form-lead { color: var(--muted); margin: 5px 0 19px; font-size: 12px; }.auth-card { padding: 23px; border: 1px solid var(--line); border-radius: 21px; background: var(--surface); box-shadow: var(--shadow); }.role-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 19px; }.role-option { position: relative; display: grid; min-height: 82px; justify-items: center; align-content: center; gap: 5px; color: var(--muted); border: 1px solid var(--line); border-radius: 13px; background: var(--card); cursor: pointer; transition: .2s; }.role-option input { position: absolute; opacity: 0; pointer-events: none; }.role-option svg { width: 18px; }.role-option:has(input:checked) { color: var(--lime); border-color: rgba(214,255,105,.55); background: rgba(214,255,105,.065); }.role-option span { font-size: 10px; font-weight: 700; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.form-field { display: grid; gap: 6px; }.form-field.full { grid-column: 1 / -1; }.form-field label { color: var(--text); font-size: 11px; font-weight: 700; }.form-field label em { color: var(--orange); font-style: normal; }.input-shell { position: relative; display: flex; align-items: center; min-height: 45px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: var(--card-raised); transition: border-color .2s, box-shadow .2s; }.input-shell:focus-within { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(255,107,0,.1); }.input-shell > svg { width: 16px; margin-right: 12px; color: var(--muted); }.input-shell input, .input-shell select, .input-shell textarea { width: 100%; min-width: 0; color: var(--text); outline: 0; border: 0; background: transparent; padding: 10px 9px; font-family: inherit; font-size: 11px; }.input-shell select { appearance: auto; }.input-shell textarea { min-height: 89px; resize: vertical; }.password-button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; color: var(--muted); background: transparent; }.password-button:hover { color: var(--orange); }.password-button svg { width: 16px; }.form-helper { color: var(--muted); margin: 0; font-size: 9px; }.field-error { display: none; color: #ff8585; margin: 0; font-size: 9px; }.form-field.invalid .input-shell { border-color: #ea5c5c; }.form-field.invalid .field-error { display: block; }.check-row { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0; color: var(--muted); font-size: 10px; }.check-row input { accent-color: var(--orange); width: 15px; height: 15px; margin: 1px 0 0; }.check-row a { color: var(--orange); }.form-submit { width: 100%; min-height: 48px; }.form-divider { display: flex; align-items: center; gap: 10px; color: var(--muted); margin: 17px 0; font-size: 10px; }.form-divider::before, .form-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }.auth-alt { text-align: center; color: var(--muted); margin: 16px 0 0; font-size: 11px; }.auth-alt a { color: var(--orange); font-weight: 700; }.login-extra { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin: 14px 0; }.login-extra .check-row { margin: 0; }.login-extra a { color: var(--orange); font-size: 10px; }
.gym-claim-field > small { color: var(--muted); font-size: 9px; line-height: 1.8; }.gym-claim-results { display: grid; gap: 6px; max-height: 228px; overflow-y: auto; }.gym-claim-results button { display: grid; gap: 3px; width: 100%; min-height: 52px; padding: 9px 11px; color: var(--text); text-align: right; border: 1px solid var(--line); border-radius: 10px; background: var(--card-raised); font-family: inherit; cursor: pointer; }.gym-claim-results button:hover, .gym-claim-results button:focus-visible { border-color: var(--orange); background: var(--orange-soft); outline: 0; }.gym-claim-results b { font-size: 11px; }.gym-claim-results span { color: var(--muted); font-size: 9px; }.gym-claim-loading { padding: 8px 2px; color: var(--muted); font-size: 9px; }

/* Gym profile and search */
.result-layout { display: grid; grid-template-columns: 244px 1fr; gap: 21px; margin-top: 29px; }.filter-panel { align-self: start; position: sticky; top: 15px; padding: 17px; }.filter-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 13px; border-bottom: 1px solid var(--line); }.filter-top h2 { margin: 0; font-size: 14px; }.filter-top button { padding: 0; color: var(--orange); border: 0; background: none; font-family: inherit; font-size: 10px; }.filter-group { padding: 14px 0; border-bottom: 1px solid var(--line); }.filter-group:last-child { border: 0; }.filter-group h3 { margin: 0 0 9px; font-size: 11px; }.filter-check { display: flex; align-items: center; justify-content: space-between; margin: 8px 0; color: var(--muted); font-size: 10px; }.filter-check label { display: flex; align-items: center; gap: 7px; cursor: pointer; }.filter-check input { accent-color: var(--orange); }.filter-check small { color: #6d7b8d; }.results-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }.results-toolbar p { color: var(--muted); margin: 0; font-size: 11px; }.sort-select { display: inline-flex; align-items: center; gap: 6px; color: var(--text); padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); font-size: 10px; }.sort-select select { color: inherit; border: 0; outline: 0; background: transparent; font-family: inherit; font-size: 10px; }.result-list { display: grid; gap: 14px; }.result-card { display: grid; grid-template-columns: 240px 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); transition: .2s; }.result-card:hover { transform: translateY(-3px); border-color: rgba(255,107,0,.44); box-shadow: var(--shadow); }.result-card > img { width: 100%; height: 100%; min-height: 205px; object-fit: cover; }.result-info { padding: 17px; display: flex; flex-direction: column; }.result-info-head { display: flex; justify-content: space-between; gap: 10px; }.result-info h2 { margin: 0; font-size: 17px; }.muted-line { display: flex; align-items: center; gap: 4px; color: var(--muted); margin: 3px 0 0; font-size: 10px; }.muted-line svg { width: 13px; color: var(--orange); }.result-info > p { color: var(--muted); margin: 8px 0; font-size: 11px; }.result-details { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.result-details span { padding: 8px 6px; border-left: 1px solid var(--line); font-size: 9px; }.result-details span:last-child { border: 0; }.result-details b { display: block; margin-top: 1px; color: var(--text); font: 700 13px Barlow, Estedad, sans-serif; }.result-actions { display: flex; justify-content: space-between; align-items: center; gap: 11px; margin-top: 12px; }.result-actions strong { font-size: 12px; }.result-actions small { color: var(--muted); font-size: 9px; font-weight: 400; }
.gym-hero { position: relative; min-height: 425px; overflow: hidden; display: flex; align-items: end; padding: 34px; border-radius: 26px; background: #131b12; }.gym-hero > img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; }.gym-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,8,5,.95), rgba(5,8,5,.1) 74%); }.gym-hero-content { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; width: 100%; gap: 24px; }.gym-hero-content h1 { margin: 8px 0 5px; font-size: clamp(31px, 4vw, 48px); letter-spacing: -.07em; }.gym-hero-content p { color: #d3ddd0; margin: 0; font-size: 12px; }.gym-hero-metrics { display: flex; gap: 8px; }.gym-hero-metrics > div { display: grid; min-width: 90px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(10,14,9,.63); backdrop-filter: blur(10px); }.gym-hero-metrics b { font: 800 18px/1.2 Barlow, Estedad, sans-serif; }.gym-hero-metrics span { color: #c2cdbc; font-size: 9px; }.gym-tabs { display: flex; gap: 4px; overflow-x: auto; margin: 17px 0 22px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }.gym-tabs a { flex: 1; min-width: 93px; padding: 8px 11px; color: var(--muted); text-align: center; border-radius: 8px; font-size: 10px; font-weight: 700; }.gym-tabs a:hover, .gym-tabs a.active { color: var(--ink); background: var(--lime); }.gym-detail-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 19px; }.content-stack { display: grid; gap: 18px; }.content-pad { padding: 18px; }.content-pad h2 { margin: 0 0 8px; font-size: 16px; }.content-pad p { color: var(--muted); margin: 0; font-size: 12px; line-height: 2; }.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; margin-top: 15px; }.feature-item { display: flex; align-items: center; gap: 7px; padding: 9px; border-radius: 10px; background: var(--card-raised); color: #c9d5c6; font-size: 10px; }.feature-item svg { width: 15px; color: var(--lime); }.equipment-list { display: grid; gap: 9px; }.equipment-row { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; }.equipment-row > span { display: grid; place-items: center; width: 36px; height: 36px; color: var(--orange); border-radius: 10px; background: var(--orange-soft); }.equipment-row > span svg { width: 18px; }.equipment-row div { display: grid; }.equipment-row b { font-size: 11px; }.equipment-row small { color: var(--muted); font-size: 9px; }.equipment-row strong { margin-right: auto; font: 800 15px Barlow, Estedad, sans-serif; }.price-option { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); }.price-option:last-child { border: 0; }.price-option div { display: grid; gap: 1px; }.price-option b { font-size: 11px; }.price-option small { color: var(--muted); font-size: 9px; }.price-option strong { font-size: 12px; }.side-cta { padding: 18px; background: linear-gradient(140deg, #27381d, #141d12); border-color: rgba(214,255,105,.26); }.side-cta h2 { font-size: 20px; }.side-cta p { color: #bdcbb4; }.side-cta .primary-button { width: 100%; margin-top: 14px; color: var(--ink); background: var(--lime); box-shadow: none; }

/* Trainer */
.trainer-cover { position: relative; min-height: 324px; overflow: hidden; display: grid; grid-template-columns: 285px 1fr; align-items: end; padding: 28px; border: 1px solid var(--line); border-radius: 24px; background: #171d22; }.trainer-cover::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 83% 20%, rgba(214,255,105,.22), transparent 24%), linear-gradient(120deg, #11171b, #202b21); }.trainer-cover > img { position: relative; z-index: 1; width: 260px; height: 295px; align-self: end; object-fit: cover; object-position: top; border-radius: 18px 18px 9px 9px; filter: saturate(.75); }.trainer-cover-content { position: relative; z-index: 1; padding: 10px 0 10px 18px; }.trainer-cover-content h1 { margin: 8px 0 4px; font-size: clamp(29px, 3.8vw, 45px); letter-spacing: -.07em; }.trainer-cover-content > p { color: #c2cec0; margin: 0; font-size: 12px; }.trainer-stats { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }.trainer-stats span { display: grid; min-width: 88px; padding: 9px 11px; border: 1px solid rgba(255,255,255,.11); border-radius: 11px; background: rgba(5,9,8,.35); }.trainer-stats b { color: var(--lime); font: 800 17px/1.1 Barlow, Estedad, sans-serif; }.trainer-stats small { color: #bbc9b7; font-size: 9px; }.trainer-page-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 20px; margin-top: 20px; }.timeline { position: relative; display: grid; gap: 14px; margin: 15px 5px 0; padding-right: 22px; }.timeline::before { content: ''; position: absolute; top: 5px; bottom: 5px; right: 4px; width: 1px; background: var(--line); }.timeline-item { position: relative; display: grid; gap: 2px; }.timeline-item::before { content: ''; position: absolute; right: -22px; top: 6px; width: 9px; height: 9px; border: 2px solid var(--surface); border-radius: 50%; background: var(--orange); }.timeline-item b { font-size: 11px; }.timeline-item span { color: var(--muted); font-size: 10px; }.availability { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.time-slot { padding: 10px; color: #c2d1be; border: 1px solid var(--line); border-radius: 10px; background: var(--card-raised); font-size: 10px; text-align: center; }.time-slot.selected { color: var(--ink); border-color: var(--lime); background: var(--lime); }.review { padding: 12px 0; border-bottom: 1px solid var(--line); }.review:last-child { border: 0; }.review-head { display: flex; justify-content: space-between; align-items: center; }.review-head b { font-size: 11px; }.review-head span { color: var(--muted); font-size: 9px; }.review p { margin: 5px 0 0; font-size: 10px; line-height: 1.8; }

/* AI Coach */
.coach-hero { position: relative; overflow: hidden; padding: 33px 37px; border: 1px solid rgba(214,255,105,.26); border-radius: 24px; background: linear-gradient(120deg, #182016, #10170e); }.coach-hero::after { content: ''; position: absolute; inset: 0; opacity: .28; pointer-events: none; background-image: radial-gradient(rgba(214,255,105,.35) 1px, transparent 1px); background-size: 16px 16px; mask-image: linear-gradient(90deg, transparent, #000); }.coach-hero > * { position: relative; z-index: 1; }.coach-hero h1 { max-width: 600px; margin: 9px 0; font-size: clamp(31px, 4vw, 48px); line-height: 1.35; letter-spacing: -.07em; }.coach-hero h1 span { color: var(--lime); }.coach-hero p { max-width: 570px; color: #b9c9b3; margin: 0; font-size: 12px; line-height: 2; }.coach-hero-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }.coach-hero-badges span { display: inline-flex; gap: 6px; align-items: center; color: #d6e0d1; padding: 5px 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(0,0,0,.16); font-size: 9px; }.coach-hero-badges svg { color: var(--lime); width: 13px; }.coach-layout { display: grid; grid-template-columns: .93fr 1.07fr; gap: 20px; margin-top: 21px; }.coach-steps { padding: 19px; }.step-list { display: grid; gap: 12px; margin-top: 15px; }.step { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 10px; }.step b { display: grid; place-items: center; width: 25px; height: 25px; color: var(--text); border: 1px solid var(--line); border-radius: 8px; background: var(--card-raised); font: 800 11px Barlow, Estedad, sans-serif; }.step.active { color: var(--text); }.step.active b { color: var(--ink); border-color: var(--lime); background: var(--lime); }.coach-note { margin-top: 25px; padding: 12px; color: #bbc8b6; border-radius: 11px; background: rgba(214,255,105,.06); font-size: 10px; line-height: 1.8; }.coach-note svg { width: 14px; vertical-align: -3px; color: var(--lime); }.coach-form { padding: 21px; }.coach-form h2 { margin: 0; font-size: 17px; }.coach-form > p { color: var(--muted); margin: 4px 0 18px; font-size: 10px; }.goal-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.goal-card { position: relative; min-height: 83px; padding: 10px; color: var(--muted); border: 1px solid var(--line); border-radius: 11px; background: var(--card-raised); text-align: right; cursor: pointer; }.goal-card input { position: absolute; opacity: 0; }.goal-card svg { display: block; width: 19px; margin-bottom: 7px; }.goal-card span { font-size: 10px; font-weight: 700; }.goal-card:has(input:checked) { color: var(--lime); border-color: rgba(214,255,105,.58); background: rgba(214,255,105,.075); }.injury-options { display: flex; flex-wrap: wrap; gap: 7px; }.injury-options label { position: relative; color: var(--muted); padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; background: var(--card-raised); cursor: pointer; font-size: 9px; }.injury-options input { position: absolute; opacity: 0; }.injury-options label:has(input:checked) { color: var(--orange); border-color: rgba(255,107,0,.54); }.plan-output { display: none; margin-top: 18px; padding: 16px; border: 1px solid rgba(25,209,122,.26); border-radius: 13px; background: rgba(25,209,122,.07); }.plan-output.show { display: block; animation: reveal .28s ease-out; }.plan-output h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 8px; color: #c8f8da; font-size: 13px; }.plan-output h3 svg { width: 16px; }.plan-output p { color: #b7cfbd; margin: 0; font-size: 10px; line-height: 1.9; }

/* Gym dashboard */
.dashboard-page { min-height: 100dvh; display: grid; grid-template-columns: 250px 1fr; }.dashboard-side { position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; padding: 23px 16px; border-left: 1px solid var(--line); background: #0d131a; }.dashboard-side .brand { margin: 0 8px 25px; }.dashboard-gym { display: flex; align-items: center; gap: 9px; margin: 0 6px 20px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }.dashboard-gym img { width: 34px; height: 34px; object-fit: cover; border-radius: 9px; }.dashboard-gym div { display: grid; min-width: 0; }.dashboard-gym b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.dashboard-gym small { color: var(--muted); font-size: 9px; }.dashboard-nav { display: grid; gap: 3px; }.dashboard-nav a { display: flex; align-items: center; gap: 9px; padding: 9px 10px; color: var(--muted); border-radius: 9px; font-size: 11px; transition: .2s; }.dashboard-nav a svg { width: 16px; }.dashboard-nav a:hover, .dashboard-nav a.active { color: var(--text); background: var(--card-raised); }.dashboard-nav a.active { color: var(--lime); }.dashboard-side-bottom { display: grid; gap: 6px; margin-top: auto; }.dashboard-side-bottom a { display: flex; align-items: center; gap: 9px; padding: 8px; color: var(--muted); font-size: 10px; }.dashboard-side-bottom svg { width: 15px; }.dashboard-content { min-width: 0; padding: 22px 32px 50px; }.dashboard-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }.dashboard-top h1 { margin: 0; font-size: 23px; letter-spacing: -.05em; }.dashboard-top p { color: var(--muted); margin: 2px 0 0; font-size: 10px; }.dashboard-top-actions { display: flex; gap: 8px; align-items: center; }.dashboard-top-actions .icon-button { width: 40px; height: 40px; }.dashboard-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin: 22px 0; }.metric-card { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }.metric-card-top { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 10px; }.metric-card-top span { display: grid; place-items: center; width: 28px; height: 28px; color: var(--orange); border-radius: 8px; background: var(--orange-soft); }.metric-card-top span.green { color: var(--green); background: rgba(25,209,122,.1); }.metric-card-top span.lime { color: var(--lime); background: rgba(214,255,105,.08); }.metric-card-top svg { width: 15px; }.metric-value { display: flex; align-items: end; gap: 7px; margin-top: 12px; }.metric-value b { font: 800 25px/1 Barlow, Estedad, sans-serif; }.metric-value small { color: var(--green); font-size: 9px; }.dashboard-grid { display: grid; grid-template-columns: 1.17fr .83fr; gap: 15px; }.chart-card { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }.chart-card-header { display: flex; justify-content: space-between; align-items: start; gap: 10px; }.chart-card-header h2 { margin: 0; font-size: 14px; }.chart-card-header p { color: var(--muted); margin: 2px 0 0; font-size: 9px; }.chart-card-header select { color: var(--muted); padding: 4px; border: 1px solid var(--line); border-radius: 6px; background: var(--card-raised); font-family: inherit; font-size: 9px; }.visual-chart { width: 100%; height: 187px; margin-top: 14px; }.visual-chart text { fill: #7c8998; font: 9px Estedad, sans-serif; }.visual-chart .gridline { stroke: rgba(165,181,198,.13); stroke-width: 1; }.visual-chart .area { fill: url(#chart-gradient); }.visual-chart .line { fill: none; stroke: #d6ff69; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }.visual-chart .dot { fill: #111720; stroke: #d6ff69; stroke-width: 3; }.dashboard-table { width: 100%; border-collapse: collapse; margin-top: 11px; font-size: 10px; }.dashboard-table th { color: var(--muted); padding: 7px; text-align: right; font-weight: 500; }.dashboard-table td { padding: 9px 7px; border-top: 1px solid var(--line); }.table-person { display: flex; align-items: center; gap: 7px; }.table-person img { width: 26px; height: 26px; object-fit: cover; border-radius: 8px; }.table-person span { display: grid; }.table-person b { font-size: 10px; }.table-person small { color: var(--muted); font-size: 8px; }.subscription-card { padding: 18px; color: #e9f5df; border: 1px solid rgba(214,255,105,.26); border-radius: 16px; background: linear-gradient(145deg, #28351e, #172015); }.subscription-card span { color: var(--lime); font-size: 10px; font-weight: 700; }.subscription-card h2 { margin: 6px 0; font-size: 21px; }.subscription-card p { color: #bbcbb4; margin: 0; font-size: 10px; }.subscription-card .primary-button { width: 100%; margin-top: 16px; color: var(--ink); background: var(--lime); box-shadow: none; }.score-bars { display: grid; gap: 10px; margin-top: 13px; }.score-line { display: grid; grid-template-columns: 85px 1fr 26px; gap: 8px; align-items: center; color: var(--muted); font-size: 9px; }.score-line i { height: 6px; overflow: hidden; border-radius: 10px; background: var(--card-raised); }.score-line i b { display: block; height: 100%; border-radius: inherit; background: var(--orange); }.score-line strong { color: var(--text); font: 800 10px Barlow, Estedad, sans-serif; }

@keyframes reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
body.light-mode .page-shell, body.light-mode .dashboard-side { background: #f6f7f9; } body.light-mode .auth-copy, body.light-mode .side-cta, body.light-mode .coach-hero, body.light-mode .subscription-card { color: #f7fbf1; } body.light-mode .phone-card { color: #eef6e8; } body.light-mode .dashboard-side { border-left-color: var(--line); } body.light-mode .dashboard-gym { background: #fff; }
@media (max-width: 920px) { .auth-main { grid-template-columns: 1fr; gap: 25px; padding-top: 28px; }.auth-copy { display: none; }.auth-form-wrap { margin: auto; }.result-layout, .gym-detail-grid, .trainer-page-grid, .coach-layout, .dashboard-grid { grid-template-columns: 1fr; }.filter-panel { position: static; }.result-layout { grid-template-columns: 1fr; }.filter-panel { display: none; }.dashboard-page { grid-template-columns: 1fr; }.dashboard-side { position: static; height: auto; padding: 13px; border-left: 0; border-bottom: 1px solid var(--line); }.dashboard-side .brand, .dashboard-gym, .dashboard-side-bottom { display: none; }.dashboard-nav { display: flex; overflow-x: auto; }.dashboard-nav a { white-space: nowrap; }.dashboard-content { padding: 18px; }.dashboard-metrics { grid-template-columns: repeat(2, 1fr); }.trainer-cover { grid-template-columns: 200px 1fr; }.trainer-cover > img { width: 185px; height: 252px; } }
@media (max-width: 600px) { .page-main { width: min(calc(100% - 24px), var(--max)); padding: 28px 0 64px; }.page-header .text-button { display: none; }.form-grid, .goal-cards { grid-template-columns: 1fr; }.auth-main { width: min(calc(100% - 24px), 1170px); }.auth-card { padding: 17px; }.role-options { gap: 6px; }.role-option { min-height: 69px; }.result-card { grid-template-columns: 1fr; }.result-card > img { min-height: 172px; max-height: 208px; }.gym-hero { min-height: 406px; padding: 20px; }.gym-hero-content { align-items: start; flex-direction: column; }.gym-hero-metrics { width: 100%; }.gym-hero-metrics > div { flex: 1; min-width: 0; }.gym-tabs { margin-top: 12px; }.feature-grid { grid-template-columns: 1fr; }.trainer-cover { grid-template-columns: 1fr; padding: 20px; }.trainer-cover > img { display: none; }.trainer-cover-content { padding: 0; }.trainer-stats span { flex: 1; min-width: 0; }.coach-hero { padding: 25px 20px; }.coach-form, .coach-steps { padding: 16px; }.dashboard-content { padding: 15px 12px 38px; }.dashboard-top { align-items: start; flex-direction: column; }.dashboard-top-actions { width: 100%; }.dashboard-top-actions .primary-button { flex: 1; }.dashboard-metrics { gap: 8px; }.metric-card { padding: 11px; }.metric-value b { font-size: 21px; }.dashboard-table th:nth-child(3), .dashboard-table td:nth-child(3) { display: none; }.score-line { grid-template-columns: 72px 1fr 22px; } }
