/* AreaSports Step 04 layout bridge. Legacy WP classes stay intact for pixel-safe migration. */
.areasports-body { min-height: 100vh; background: var(--c-bg, #F9F3EF); color: var(--c-text, #0f1a20); font-family: var(--font-sans, system-ui, sans-serif); }
.areasports-brand { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; font-weight: 800; letter-spacing: -.03em; }
.areasports-brand__text, .areasports-wordmark { font-weight: 900; letter-spacing: -.04em; color: var(--c-deep, #1B3C53); }
.areasports-wordmark { font-size: clamp(34px, 8vw, 64px); line-height: .9; }
.auth-hero__wordmark { margin: 0 auto 18px; text-align: center; }
.areasports-home { min-height: 100vh; padding: clamp(18px, 4vw, 42px); }
.areasports-home__hero { max-width: 1120px; margin: 0 auto; border-radius: 34px; background: linear-gradient(135deg, #fff, rgba(255,255,255,.78)); box-shadow: 0 30px 80px rgba(27,60,83,.14); padding: clamp(20px, 5vw, 54px); }
.areasports-home__nav { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: clamp(44px, 8vw, 96px); }
.areasports-home__links { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.areasports-home__links a { color: var(--c-deep, #1B3C53); text-decoration: none; font-weight: 700; }
.areasports-home__login { padding: 10px 16px; border-radius: 999px; background: var(--c-deep, #1B3C53); color: #fff !important; }
.areasports-home__content { max-width: 700px; }
.areasports-home__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.areasports-home__cta { display: inline-flex; width: auto; text-decoration: none; padding-inline: 26px; }
.areasports-home__cards { max-width: 1120px; margin: 18px auto 0; }
.areasports-home__card { min-height: 138px; }
.areasports-gradient-card { background: linear-gradient(135deg, rgba(27,60,83,.96), rgba(69,104,130,.8)); }
.areasports-list { display: flex; flex-direction: column; gap: 14px; }
.areasports-list-card { display: flex; flex-direction: column; gap: 8px; }
.areasports-avatar--lg { width: 96px; height: 96px; border-radius: 30px; font-size: 36px; }
.areasports-profile-card { display: flex; flex-direction: column; gap: 18px; align-items: start; }
.profile-form, .areasports-club-form { display: flex; flex-direction: column; gap: 14px; }
.profile-form label { display: flex; flex-direction: column; gap: 8px; font-weight: 700; color: var(--c-deep, #1B3C53); }
.areasports-chart-card { min-height: 260px; align-content: center; }
.areasports-chart-line { height: 120px; border-radius: 20px; background: linear-gradient(180deg, rgba(5,134,199,.18), rgba(5,134,199,.04)); position: relative; overflow: hidden; }
.areasports-chart-line::before { content: ''; position: absolute; left: 6%; right: 6%; top: 54%; height: 3px; border-radius: 999px; background: var(--c-accent, #0586c7); transform: rotate(-7deg); transform-origin: left center; }
.areasports-message { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: 18px; background: rgba(255,255,255,.76); border: 1px solid rgba(27,60,83,.08); }
.areasports-message strong { color: var(--c-deep, #1B3C53); }
.areasports-message p { margin: 0; }
.areasports-message span { color: rgba(15,26,32,.55); font-size: 12px; }
.areasports-chat-card { display: flex; flex-direction: column; gap: 12px; }
.coach-pupil-card__toggle { width: 100%; border: 0; background: transparent; padding: 0; text-align: left; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: inherit; }
.coach-pupil-card__content { display: none; }
.coach-pupil-card.is-open .coach-pupil-card__content, .coach-pupil-card__content.is-open { display: flex; flex-direction: column; }
.areasports-public-list { padding-bottom: 40px; }
.areasports-coach-grid { display: flex; flex-direction: column; gap: 14px; }
.areasports-recipe-card { display: flex; flex-direction: column; gap: 12px; min-height: 190px; }
.areasports-wizard-card { margin-bottom: 16px; }
.tabbar--coach a { min-width: 86px; }
@media (max-width: 760px) {
  .areasports-home__nav { align-items: flex-start; flex-direction: column; margin-bottom: 46px; }
  .areasports-home__links { width: 100%; justify-content: space-between; }
  .areasports-wordmark { font-size: 42px; }
  .club-dashboard { min-height: 100vh; }
}


/* AreaSports Step 05 auth bridge. Keeps WP visual language and adds only form-state glue. */
.auth-panels--wide { max-width: 860px; margin-inline: auto; }
.auth-back-brand { justify-content: center; margin: 0 auto 22px; width: max-content; }
.auth-card { position: relative; }
.auth-form--wide { gap: 18px; }
.auth-input--code { letter-spacing: .08em; text-transform: uppercase; font-weight: 800; }
.auth-textarea { min-height: 120px; resize: vertical; line-height: 1.45; }
.auth-field-error { display: block; margin-top: 7px; color: #b42318; font-size: 13px; font-weight: 700; }
.auth-alert { padding: 12px 14px; border-radius: 16px; margin-bottom: 14px; font-weight: 700; line-height: 1.35; border: 1px solid transparent; }
.auth-alert a { color: inherit; overflow-wrap: anywhere; }
.auth-alert--success { background: rgba(74, 222, 128, .14); color: #166534; border-color: rgba(22, 101, 52, .18); }
.auth-alert--warning { background: rgba(251, 191, 36, .16); color: #92400e; border-color: rgba(146, 64, 14, .18); }
.auth-alert--info { background: rgba(5, 134, 199, .12); color: var(--c-deep, #1B3C53); border-color: rgba(5, 134, 199, .2); }
.auth-remember--terms { align-items: flex-start; line-height: 1.35; }
.app-login--register .app-login__shell,
.app-login--recovery .app-login__shell,
.app-login--club .app-login__shell { padding-top: clamp(22px, 5vw, 52px); padding-bottom: clamp(22px, 5vw, 52px); }
@media (max-width: 720px) {
  .auth-panels--wide { max-width: none; }
}

/* AreaSports Step 06 user cabinet bridge. Uses legacy WordPress class names and adds only Laravel state helpers. */
.areasports-alert { margin: 0 0 16px; padding: 14px 16px; border-radius: 16px; font-weight: 700; border: 1px solid rgba(27,60,83,.1); background: rgba(255,255,255,.85); }
.areasports-alert--success { color: #14532d; background: rgba(74,222,128,.14); }
.areasports-alert--error { color: #7f1d1d; background: rgba(248,113,113,.14); display: flex; flex-direction: column; gap: 4px; }
.areasports-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.areasports-inline-actions .dashboard-button { width: auto; }
.areasports-empty-state { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px dashed rgba(27,60,83,.16); color: var(--c-deep, #1B3C53); }
.areasports-empty-state p { margin: 0; color: rgba(15,26,32,.68); }
.areasports-checkbox input { margin-top: 4px; }
.areasports-danger-zone { border: 1px solid rgba(220,38,38,.18); background: rgba(254,242,242,.72); }
.areasports-current-workout { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.areasports-current-workout .dashboard-button { width: fit-content; }
.areasports-exercise-card { display: flex; flex-direction: column; gap: 12px; }
.areasports-exercise-card.is-done { border-color: rgba(74,222,128,.36); }
.areasports-exercise-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.areasports-exercise-card__head h3 { margin: 0; }
.areasports-exercise-card__head span { border-radius: 999px; padding: 6px 10px; background: rgba(5,134,199,.1); color: var(--c-deep, #1B3C53); font-weight: 800; font-size: 12px; white-space: nowrap; }
.areasports-exercise-card.is-done .areasports-exercise-card__head span { background: rgba(74,222,128,.22); color: #14532d; }
.areasports-exercise-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.areasports-exercise-stats span, .areasports-macro-pills div, .areasports-list-card > span { display: inline-flex; border-radius: 999px; padding: 7px 10px; background: rgba(27,60,83,.07); font-weight: 700; color: var(--c-deep, #1B3C53); }
.areasports-inline-form .dashboard-button { width: auto; height: 100%; }
.areasports-macros-wide { margin-bottom: 16px; }
.areasports-chat-form { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.areasports-message--mine { background: rgba(5,134,199,.10); border-color: rgba(5,134,199,.16); }
.areasports-user-ai-chat { display: flex; flex-direction: column; gap: 14px; }
.areasports-macro-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.areasports-macro-pills div { gap: 6px; }
.areasports-macro-pills dt, .areasports-macro-pills dd { margin: 0; }
.areasports-macro-pills dt { opacity: .7; }
.food-log-entry { align-items: start; }
.dashboard-view__header--inline { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.dashboard-view__header--inline .dashboard-button { width: auto; }
.plan-card span { display: inline-flex; margin-top: 12px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.72); color: var(--c-blue, #456882); font-weight: 800; font-size: 12px; }
.is-unread { box-shadow: 0 0 0 2px rgba(5,134,199,.14) inset; }
@media (max-width: 760px) {
  .dashboard-view__header--inline { display: flex; flex-direction: column; }
  .dashboard-view__header--inline .dashboard-button { width: 100%; }
  .areasports-inline-actions .dashboard-button { width: 100%; }
}

/* AreaSports Step 07 coach cabinet bridge. Keeps WordPress visual classes and adds Laravel data states. */
.areasports-metric-card { display: flex; flex-direction: column; gap: 6px; min-height: 108px; }
.areasports-metric-card span { color: rgba(15,26,32,.62); font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.areasports-metric-card strong { color: var(--c-deep, #1B3C53); font-size: clamp(24px, 4vw, 34px); line-height: 1; }
.areasports-metric-card small { color: rgba(15,26,32,.58); font-weight: 700; }
.areasports-coach-panel { display: flex; flex-direction: column; gap: 14px; }
.areasports-search-form { display: flex; align-items: center; gap: 10px; }
.areasports-search-form input { flex: 1 1 auto; }
.areasports-search-form button { border: 0; border-radius: 999px; padding: 10px 14px; background: var(--c-deep, #1B3C53); color: #fff; font-weight: 800; cursor: pointer; }
.areasports-search-form--card { margin-bottom: 14px; padding: 12px; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px solid rgba(27,60,83,.08); }
.areasports-calendar-row, .areasports-exercise-library-card { align-items: start; }
.areasports-chat-dialogs { display: flex; flex-direction: column; gap: 10px; }
.areasports-dialog-link.is-active { box-shadow: 0 0 0 2px rgba(5,134,199,.18) inset; background: rgba(5,134,199,.08); }
.areasports-dialog-link small { display: block; color: rgba(15,26,32,.58); margin-top: 3px; }
.areasports-section-gap { margin-top: 18px; }
.areasports-section-title { margin: 0 0 8px; color: var(--c-deep, #1B3C53); }
.areasports-pupil-hero h2 { margin: 0 0 6px; color: var(--c-deep, #1B3C53); }
.areasports-pupil-hero p { margin: 0 0 12px; color: rgba(15,26,32,.65); font-weight: 700; }
.areasports-exercise-library-card h3 { margin: 0; color: var(--c-deep, #1B3C53); }
.areasports-exercise-library-card p { margin: 0; color: rgba(15,26,32,.68); }
.coach-pupil-card.is-unread { box-shadow: 0 0 0 2px rgba(5,134,199,.15) inset; }
@media (max-width: 760px) {
  .areasports-search-form { align-items: stretch; flex-direction: column; }
  .areasports-search-form button { width: 100%; }
}

/* AreaSports Step 08 club cabinet bridge. Extends preserved WordPress club dashboard classes without redesigning them. */
.areasports-club-panel { overflow: visible; }
.areasports-attention.is-ok { border-color: rgba(74,222,128,.28); background: rgba(74,222,128,.12); }
.areasports-attention.is-warning { border-color: rgba(245,158,11,.24); background: rgba(245,158,11,.10); }
.areasports-club-table { display: flex; flex-direction: column; gap: 8px; }
.areasports-table-link { color: inherit; text-decoration: none; }
.areasports-table-link.is-active { box-shadow: 0 0 0 2px rgba(5,134,199,.16) inset; background: rgba(5,134,199,.07); }
.club-table__cell small { display: block; margin-top: 3px; color: rgba(15,26,32,.56); font-weight: 700; }
.club-table__strong { display: flex; align-items: center; gap: 0; }
.club-table__strong > span { min-width: 0; }
.club-chip.is-ok { background: rgba(74,222,128,.18); color: #14532d; }
.club-chip.is-warning { background: rgba(245,158,11,.18); color: #7c2d12; }
.club-chip.is-danger { background: rgba(248,113,113,.18); color: #7f1d1d; }
.club-chip.is-muted { background: rgba(27,60,83,.08); color: rgba(15,26,32,.72); }
.areasports-small-value { font-size: clamp(18px, 3vw, 26px) !important; }
.areasports-sidebar-logout { margin: 0; }
.areasports-sidebar-logout .club-sidebar__link { width: 100%; border: 0; text-align: left; cursor: pointer; font: inherit; }
.areasports-club-chat-layout { align-items: stretch; }
.areasports-club-chat-layout .areasports-chat-card { min-height: 420px; }
@media (max-width: 920px) {
  .club-table__row--head { display: none !important; }
}
@media (max-width: 640px) {
}
