/* El resumen del plan acompaña al saludo; los detalles se abren a demanda. */
.has-plan .dashboard-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-items:center;gap:4px 24px;margin-bottom:24px}
.dashboard-heading-copy{min-width:0;grid-column:1;grid-row:1}.dashboard-heading-copy h1{overflow-wrap:anywhere}
.dashboard-race-name{grid-column:1;grid-row:2;min-width:0;margin:0;color:var(--orange);font-size:clamp(18.75px,2.25vw,25.5px);font-weight:720;line-height:1.15;letter-spacing:-.75px;overflow-wrap:anywhere}
.plan-summary-trigger{grid-column:2;grid-row:1/3;align-self:end;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;min-width:0;padding:18px 22px;border:1px solid #ffffff16;border-radius:16px;background:var(--forest);color:#f8f9f2;text-align:left;box-shadow:0 4px 12px #143f3010;transition:background-color .15s,box-shadow .15s}
.plan-summary-trigger:hover{background:#204e3e;box-shadow:0 6px 18px #143f3020}.plan-summary-trigger:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.plan-summary-trigger>span:not(.track-art):not(.sr-only),.plan-summary-trigger>progress,.plan-summary-trigger>strong{position:relative;z-index:1}
.plan-summary-percent{display:block;padding-right:25px;font-size:32px;font-weight:600;line-height:1;letter-spacing:-.8px;color:var(--orange);font-variant-numeric:tabular-nums}
.plan-summary-trigger progress{display:block;width:100%;height:6px;margin:0;appearance:none;-webkit-appearance:none;border:0;border-radius:8px;overflow:hidden;background:#00000030;color:var(--orange);accent-color:var(--orange)}
.plan-summary-trigger progress::-webkit-progress-bar{background:#00000030;border-radius:8px}.plan-summary-trigger progress::-webkit-progress-value{background:var(--orange);border-radius:8px}.plan-summary-trigger progress::-moz-progress-bar{background:var(--orange);border-radius:8px}
.plan-summary-countdown{font-size:11px;line-height:1.5;color:#e0e9d8;overflow-wrap:anywhere}
.plan-summary-trigger .plan-summary-open{position:absolute!important;right:17px;top:18px;color:#d2dfc8}.plan-summary-open svg{width:15px;height:15px}
.plan-summary-trigger .track-art{width:190px;height:220px;right:-55px;top:-40px;opacity:.35;pointer-events:none}.plan-summary-trigger .finish-line{top:169px;right:18px;opacity:.45}
dialog.plan-summary-dialog{width:min(860px,calc(100vw - 28px));max-width:calc(100vw - 28px);min-width:0;max-height:calc(100dvh - 32px);padding:25px;margin:auto;overflow:auto;scrollbar-gutter:stable;border-radius:18px}
.plan-summary-dialog .dialog-top{margin-bottom:22px;align-items:flex-start}.plan-summary-dialog .dialog-top>div{min-width:0}.plan-summary-dialog .dialog-top>.icon-button{width:44px;height:44px;position:static;flex-shrink:0}
.plan-summary-body{min-width:0}.plan-summary-body .race-card{min-height:0;padding:27px;grid-template-columns:minmax(0,1fr) 220px;gap:25px}.plan-summary-body .race-card h2{font-size:30px;margin-top:20px}.plan-summary-body .race-progress{width:220px;padding:19px}.plan-summary-body .stat{min-width:0}
@media(max-width:650px){
  .has-plan .dashboard-heading{grid-template-columns:minmax(0,1fr) minmax(145px,.85fr);gap:4px 14px;margin-bottom:20px}
  .has-plan .dashboard-heading h1{font-size:clamp(24px,5vw,32px);line-height:1.2;letter-spacing:-.8px}.has-plan .dashboard-heading .user-greeting{font-size:clamp(15px,3.5vw,20px);margin-bottom:7px}
  .dashboard-race-name{grid-column:1/-1;font-size:clamp(18px,3.75vw,24px);line-height:1.2;letter-spacing:-.6px}
  .plan-summary-trigger{grid-row:1;padding:14px;gap:9px;border-radius:13px}.plan-summary-percent{font-size:30px;padding-right:20px}.plan-summary-trigger .plan-summary-open{right:11px;top:15px}.plan-summary-open svg{width:13px;height:13px}.plan-summary-countdown{font-size:10px;line-height:1.5}
  dialog.plan-summary-dialog{padding:18px;max-height:calc(100dvh - 24px);border-radius:15px}.plan-summary-dialog .dialog-top{margin-bottom:18px}.plan-summary-dialog .dialog-top h2{font-size:22px}.plan-summary-body .race-card{padding:22px;gap:20px}.plan-summary-body .race-card h2{font-size:27px;margin-top:18px}.plan-summary-body .race-progress{width:100%;padding:16px}.plan-summary-body .stats-grid{grid-template-columns:1fr;gap:9px}.plan-summary-body .stat{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:14px 16px}.plan-summary-body .stat-label{font-size:11px}.plan-summary-body .stat-value{grid-column:2;grid-row:1/3;align-self:center;margin:0;font-size:26px}.plan-summary-body .stat-value small{font-size:11px}.plan-summary-body .stat-caption{font-size:10px;line-height:1.5}.plan-summary-body .stat-label svg{display:block}
}
@media(max-width:350px){.has-plan .dashboard-heading{gap:4px 10px}.plan-summary-trigger{padding:12px}.plan-summary-percent{font-size:28px}.plan-summary-countdown{font-size:10px}.plan-summary-trigger .plan-summary-open{top:13px;right:10px}}
@media(prefers-reduced-motion:reduce){.plan-summary-trigger{transition:none}}

.today-start-countdown{white-space:nowrap;font-weight:600;color:var(--forest)}
.session.is-upcoming .calendar-date-mark{font-size:9px;padding:4px 5px}
