.upcoming-class-row[data-class-id]{cursor:pointer;transition:background .15s;}
.upcoming-class-row[data-class-id]:hover{background:var(--panel-2);}
.upcoming-class-row[data-class-id]:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.student-class-dialog{box-sizing:border-box;width:min(520px,calc(100% - 24px));max-height:90dvh;margin:auto;padding:20px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-family:inherit;overflow:auto;}
.student-class-dialog::backdrop{background:rgba(0,0,0,.65);}
.student-class-dialog h2{font-size:23px;margin:8px 0 12px;}.student-class-dialog p{font-size:14px;line-height:1.6;white-space:pre-line;}
.student-class-dialog button,.student-pro-button{font:inherit;font-size:12px;min-height:38px;padding:9px 12px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:pointer;}
.student-class-dialog button:disabled{opacity:.55;cursor:wait;}.student-class-dialog input{box-sizing:border-box;display:block;width:100%;padding:12px;margin:8px 0 16px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);font-size:16px;}
.class-cover,.student-class-dialog video{width:100%;max-height:230px;object-fit:cover;margin:8px 0;}
.teacher-chip{display:flex!important;align-items:center;gap:10px;width:100%;text-align:left;margin:10px 0;}
.teacher-chip img{width:42px;height:42px;border-radius:50%;object-fit:cover;}
.class-topline{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;letter-spacing:1px;}
.student-class-dialog .class-message{color:var(--gold);font-size:13px;}
.student-plan-notice{font-size:12px;color:var(--gold);margin-top:8px;line-height:1.4;}
.student-pro-button{margin-top:8px;min-height:32px;padding:6px 9px;color:var(--gold);background:transparent;}
.student-booking-row{border-top:1px solid var(--line);padding:12px 0;}
:root[data-student-theme="light"] .student-class-dialog{border-radius:12px;box-shadow:0 12px 40px #0002;}
:root[data-student-theme="light"] .student-class-dialog button{border-radius:6px;}

/* Mi cuenta: composición compacta, controles claros y jerarquía suave. */
body.is-account-view #accountView:not(.hidden) { gap:8px; padding-bottom:4px; }
body.is-account-view .account-profile-hero { padding:12px 16px; gap:12px; border-bottom:0; }
body.is-account-view .account-hero h1 { font-size:23px; letter-spacing:-.5px; line-height:1.15; margin-bottom:4px; }
body.is-account-view .account-hero .muted { font-size:12px; }
body.is-account-view .account-plan-status { margin-top:6px; font-size:9px; letter-spacing:.7px; }
body.is-account-view .profile-avatar { flex-basis:50px; width:50px; height:50px; }
body.is-account-view .profile-avatar span { font-size:17px; }
body.is-account-view :is(.plan-card,.upcoming-classes-card,.recent-attendance-card) { padding:11px 12px; }
body.is-account-view .plan-card > span { font-size:8px; letter-spacing:1.6px; }
body.is-account-view .plan-card strong { margin-top:4px; font-size:19px; line-height:1.2; }
body.is-account-view .plan-card p { margin-top:5px; font-size:11px; line-height:1.45; }
body.is-account-view .plan-card .student-plan-notice:empty { display:none; }
body.is-account-view .upcoming-classes-head .eyebrow { font-size:8px; letter-spacing:1.6px; }
body.is-account-view .upcoming-classes-list { margin-top:4px; }
body.is-account-view .upcoming-class-row[data-class-id] { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; padding:6px 0; }
body.is-account-view .upcoming-class-row[data-class-id]::after { content:'›'; flex-shrink:0; font-size:20px; font-weight:400; line-height:1; color:var(--muted); }
body.is-account-view .upcoming-class-row strong { font-size:11px; line-height:1.35; }
body.is-account-view .upcoming-class-row small { font-size:9px; line-height:1.3; letter-spacing:.6px; }
body.is-account-view .scan-main { min-height:46px; padding:9px 12px; gap:12px; }
body.is-account-view .scan-main strong { font-size:10px; letter-spacing:1.5px; }
body.is-account-view .scan-main small { font-size:9px; letter-spacing:.5px; margin-top:3px; }
body.is-account-view .account-grid { gap:8px; }
body.is-account-view .account-tile { min-height:46px; padding:10px 11px; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; }
body.is-account-view .account-tile > span { font-size:8px; letter-spacing:.9px; line-height:1.4; }
body.is-account-view .account-tile strong { margin:0; font-size:19px; line-height:1; }
body.is-account-view .logout-link { width:auto; justify-self:center; min-height:40px; padding:10px 16px; border:0; background:transparent; color:var(--muted); font-size:9px; letter-spacing:1.4px; }
body.is-account-view .logout-link:hover { background:var(--panel-2); color:var(--text); }
body.is-account-view .student-footer { padding:2px 16px calc(10px + env(safe-area-inset-bottom)); }
body.is-account-view .student-partners { gap:18px; }
body.is-account-view .partner-logo-mambo { width:72px; height:30px; }
body.is-account-view .partner-logo-mqr { width:34px; height:30px; }
body.is-account-view .partner-logo-emuna { width:53px; height:30px; }
:root[data-student-theme="light"] body.is-account-view :is(.plan-card,.upcoming-classes-card,.recent-attendance-card,.account-tile) { background:#fff; border-color:#e2dfd8; border-radius:10px; }
:root[data-student-theme="light"] body.is-account-view .plan-card { background:#faf8f2; border-color:#e7dfcb; }
:root[data-student-theme="light"] body.is-account-view .logout-link { background:transparent; border:0; color:var(--muted); }
:root[data-student-theme="light"] body.is-account-view .logout-link:hover { background:#f5f3ef; color:var(--text); }
@media(max-width:520px){
 body.is-account-view .account-hero h1 { font-size:21px; }
 body.is-account-view #accountView:not(.hidden) { padding-left:14px; padding-right:14px; }
 body.is-account-view .account-profile-hero { padding-top:10px; padding-bottom:10px; }
}

/* Un solo acceso al historial, con las dos secciones dentro. */
body.is-account-view #accountView:not(.hidden) { grid-template-areas:"hero hero" "plan upcoming" "stats stats" "logout logout"; }
.account-history-button { grid-area:stats; display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:52px; padding:10px 12px; border:1px solid var(--line); background:var(--panel); color:var(--text); text-align:left; font:inherit; font-size:10px; letter-spacing:1px; cursor:pointer; }
.account-history-button small { display:block; margin-top:4px; color:var(--muted); font-size:11px; letter-spacing:0; }
.account-history-button > span:last-child { font-size:22px; color:var(--gold); }
.account-history-button:hover { background:var(--panel-2); }
.history-sections { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 16px 12px; flex-shrink:0; }
body.is-account-view .history-sections .account-tile { min-height:44px; background:var(--panel); color:var(--muted); }
body.is-account-view .history-sections .account-tile[aria-pressed="true"] { border-color:var(--gold); color:var(--gold); background:var(--panel-2); }
.account-history-button:focus-visible,.history-sections button:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
:root[data-student-theme="light"] .account-history-button { background:#fff; border-color:#e2dfd8; border-radius:10px; }
@media(max-width:1024px) { body.is-account-view #accountView:not(.hidden) { grid-template-areas:"hero" "plan" "upcoming" "scan" "stats" "logout"; } }
body.is-account-view .detail-panel:not(.hidden) { inset:50% auto auto 50%; width:min(620px,calc(100vw - 28px)); height:auto; max-height:calc(100dvh - 32px); transform:translate(-50%,-50%); }
body.is-account-view .detail-panel .detail-head,body.is-account-view .detail-panel .history-filters { flex-shrink:0; }
body.is-account-view .detail-panel .detail-list { max-height: min(320px,40dvh); }
