/* R65: premium client surfaces only. No fonts, logo assets, data, navigation
   positioning, server policies or event targets are replaced. */
.gym-client { --client-surface:#191d19; --client-line:#ffffff20; }
.gym-client main > :is(.card,.profile) { min-width:0; }
.gym-client main > .card,
.gym-client .profile .card,
.gym-client .profile-section {
  background:var(--client-surface); border:1px solid var(--client-line);
  border-radius:18px; box-shadow:0 6px 24px #00000012;
}
.gym-client .gym-today {
  padding:30px; margin-bottom:24px;
  background:linear-gradient(135deg,#22291b,#191d19); border-color:#d6ef6230;
}
.gym-client .gym-today .eyebrow { font-size:10px; letter-spacing:.13em; color:#b9beb7; }
.gym-client .gym-today time { font-size:12px; color:#b9beb7; }
.gym-client .gym-today h1 { font-size:clamp(26px,3vw,36px); line-height:1.25; letter-spacing:-.035em; margin:22px 0 14px; }
.gym-client .gym-today p { max-width:640px; font-size:14px; line-height:1.75; color:#cbd1c6; margin:20px 0; }
.gym-client .badge { border-radius:999px; padding:5px 10px; font-size:11px; line-height:1.5; }
.gym-client main .btn { border-radius:11px; min-height:44px; }
.gym-client .gym-session-open { padding:14px 20px; min-height:48px; }
.gym-client .gym-calendar { overflow:hidden; }
.gym-client .gym-calendar > summary { padding:24px 28px; font-size:16px; line-height:1.5; }
.gym-client .gym-calendar > summary small { margin-top:8px; font-size:12px; line-height:1.6; }
.gym-client .gym-calendar .client-calendar { background:transparent; box-shadow:none; }
.gym-client .gym-calendar .card-head { padding:8px 28px 24px; gap:16px; }
.gym-client .gym-calendar .card-head h2 { font-size:20px; line-height:1.4; letter-spacing:-.025em; }
.gym-client .gym-calendar .card-head .sub { font-size:12px; line-height:1.6; }
.gym-client .real-calendar { min-width:0; grid-template-columns:repeat(7,minmax(0,1fr)); min-height:0; padding:0 20px 20px; gap:8px; }
.gym-client .calendar-day { padding:0; border:0; background:transparent; min-width:0; }
.gym-client .calendar-date { margin:0 0 10px; padding:10px 0; border:0; background:transparent; }
.gym-client .calendar-date small { font-size:10px; }
.gym-client .calendar-date b { border-radius:10px; line-height:1.4; }
.gym-client .calendar-event { min-height:150px; padding:16px 12px; gap:10px; border:1px solid #ffffff20; border-radius:12px; background:#ffffff04; overflow-wrap:anywhere; }
.gym-client .calendar-event strong { font-size:12px; line-height:1.6; }
.gym-client .calendar-event span { font-size:9px; line-height:1.6; }
.gym-client .calendar-event small { font-size:11px; line-height:1.6; }
.gym-client .calendar-event.Completada { background:#d6ef6210; border-color:#d6ef6255; }
.gym-client .calendar-event.Omitida { background:#dfb7800d; border-color:#dfb78050; }
.gym-client .calendar-event.rest { background:#b6c8dc08; border-color:#b6c8dc35; }
.gym-client .calendar-empty { margin:16px 0; font-size:11px; line-height:1.6; }
.gym-client .gym-calendar .card-foot { padding:20px 28px; font-size:12px; line-height:1.75; border-color:#ffffff12; }
.gym-client .client-offline { padding:28px; }
.gym-client .client-offline h2 { font-size:20px; line-height:1.5; letter-spacing:-.025em; }
.gym-client .client-offline .sub { font-size:13px; line-height:1.75; }
.gym-client .client-offline .plan-row { gap:16px; padding-top:24px; }
.gym-client .client-plan-library { border-color:#ffffff16; }
.gym-client .profile-section { padding:26px; margin-bottom:20px; }
.gym-client .profile-facts > div { background:#ffffff03; border-color:#ffffff16; border-radius:12px; padding:16px; overflow-wrap:anywhere; }
.gym-client :is(.btn,.calendar-event,summary):focus-visible { outline:2px solid #d6ef62; outline-offset:3px; }
@media(max-width:1000px) and (min-width:701px) {
  .gym-client .calendar-event { padding:12px 8px; }
  .gym-client .calendar-event strong { font-size:11px; }
}
@media(max-width:700px) {
  .gym-client .gym-today { padding:26px 22px; }
  .gym-client .gym-today h1 { font-size:28px; margin:22px 0 12px; }
  .gym-client .gym-today-meta { gap:10px; }
  .gym-client .gym-today p { font-size:14px; }
  .gym-client .gym-session-open { width:100%; font-size:14px; }
  .gym-client .gym-calendar > summary { padding:24px 22px 20px; font-size:15px; }
  .gym-client .gym-calendar .card-head { padding:0 22px 20px; }
  .gym-client .gym-calendar .card-head h2 { font-size:18px; }
  .gym-client .gym-calendar .calendar-controls { gap:8px; }
  .gym-client .gym-calendar .calendar-controls .btn { min-height:44px; }
  .gym-client .calendar-scroll { overflow:visible; }
  .gym-client .calendar-scroll::after { content:none; }
  .gym-client .real-calendar { display:grid; grid-template-columns:minmax(0,1fr); padding:0 14px 14px; gap:8px; }
  .gym-client .calendar-day { display:grid; grid-template-columns:48px minmax(0,1fr); gap:8px; align-items:stretch; }
  .gym-client .calendar-date { margin:0; padding:12px 0; align-content:center; gap:4px; }
  .gym-client .calendar-date b { width:36px; font-size:24px; }
  .gym-client .calendar-event { min-height:104px; padding:14px 16px; gap:6px; }
  .gym-client .calendar-event strong { font-size:13px; }
  .gym-client .calendar-event span { font-size:10px; }
  .gym-client .calendar-event small { font-size:11px; }
  .gym-client .calendar-empty { margin:0; min-height:76px; display:grid; align-content:center; text-align:left; padding:14px 16px; }
  .gym-client .gym-calendar .card-foot { padding:18px 22px 22px; font-size:11px; }
  .gym-client .client-offline { padding:24px 22px; }
  .gym-client .client-offline h2 { font-size:19px; }
  .gym-client .profile-section { padding:24px 20px; }
}
@media(max-width:360px) {
  .gym-client .gym-today,.gym-client .client-offline { padding:22px 18px; }
  .gym-client .gym-today h1 { font-size:25px; }
  .gym-client .gym-calendar > summary { padding:22px 18px 18px; }
  .gym-client .gym-calendar .card-head { padding:0 18px 18px; }
}
