/* EnduroLab v54 — noticeable, native-feeling mobile interface.
 * Restricted to small screens; existing desktop layout is unchanged.
 * Appearance palette tokens are respected and all legacy components remain.
 */
.v54-brand,.v54-more,.v54-menu,.v54-home-mobile,.v54-jumps{display:none}
.v54-menu[hidden]{display:none!important}
@media(max-width:820px){
 body.v54-mobile-active{
  --v54-accent:var(--el-accent,var(--lime));
  --v54-panel:var(--el-panel,var(--panel));
  --v54-panel2:var(--el-panel2,var(--panel2));
  --v54-outline:var(--el-border,var(--border));
  background:var(--el-bg,var(--bg));
 }
 body.v54-mobile-active .main{padding:12px 15px calc(119px + env(safe-area-inset-bottom));}
 body.v54-mobile-active .main>.topbar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;
  border:0;margin:0 0 15px;padding:3px 1px 12px;gap:8px;
  background:transparent;position:relative;min-height:58px;
 }
 body.v54-mobile-active .topbar .workspace-label{display:none!important}
 body.v54-mobile-active .topbar .top-actions{display:flex;flex-wrap:nowrap;gap:7px;align-items:center;margin-left:auto}
 body.v54-mobile-active .top-actions :is(#v20SearchButton,#syncBadge,#topImport){display:none!important}
 body.v54-mobile-active .v54-brand{display:flex;align-items:center;flex:0 1 auto;gap:10px;min-width:0;
  padding:0;border:0;background:none;color:var(--text);text-align:left}
 .v54-brand-mark{width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--v54-accent) 48%,var(--v54-outline));border-radius:15px;
  background:color-mix(in srgb,var(--v54-accent) 12%,var(--v54-panel));
  color:var(--v54-accent);font-size:19px;font-weight:850;letter-spacing:-1.5px}
 .v54-brand-copy{display:grid;gap:2px;min-width:0}
 .v54-brand-copy strong{font-size:17px;font-weight:850;letter-spacing:-.7px;line-height:1.2}
 .v54-brand-copy small{font-size:9px;font-weight:850;letter-spacing:1.15px;color:var(--muted);white-space:nowrap}
 body.v54-mobile-active .top-actions #v27Bell,
 body.v54-mobile-active .top-actions #topLog,
 body.v54-mobile-active .top-actions #v54More{
  width:43px;min-width:43px;height:43px;min-height:43px;padding:0;display:grid;place-items:center;
  font-size:20px!important;font-weight:750;border-radius:14px;
  box-shadow:none;line-height:1;
 }
 body.v54-mobile-active .top-actions #v27Bell{position:relative;border:1px solid var(--v54-outline);
  background:var(--v54-panel)!important;color:var(--text)}
 body.v54-mobile-active .top-actions #topLog{font-size:0!important;
  background:var(--v54-accent);color:#14291d;border-color:var(--v54-accent)}
 body.v54-mobile-active .top-actions #topLog::after{content:'＋';font-size:26px;font-weight:550;line-height:1}
 body.v54-mobile-active .top-actions #v54More{
  background:var(--v54-panel);border:1px solid var(--v54-outline);color:var(--text);font-size:24px!important}
 body.v54-mobile-active .v54-menu{display:grid;position:absolute;right:0;top:calc(100% + 2px);z-index:35;
  width:min(275px,calc(100vw - 32px));padding:9px;gap:4px;background:var(--v54-panel2);
  border:1px solid color-mix(in srgb,var(--v54-accent) 20%,var(--v54-outline));
  box-shadow:0 20px 48px #000b;border-radius:16px}
 .v54-menu-label{font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:850;padding:10px 11px 7px}
 .v54-menu button{display:flex;align-items:center;width:100%;text-align:left;border:0;border-radius:10px;
  background:transparent;color:var(--text);padding:13px 12px;font-size:13px;font-weight:650;min-height:43px}
 .v54-menu button:hover,.v54-menu button:focus-visible{background:var(--v54-panel)}
 /* A floating five-area navigation instead of the former edge-to-edge strip. */
 body.v54-mobile-active .v53-mobile-nav{left:9px;right:9px;bottom:calc(8px + env(safe-area-inset-bottom));
  width:auto;border-radius:20px;border:1px solid color-mix(in srgb,var(--v54-accent) 17%,var(--v54-outline));
  padding:7px 5px;box-shadow:0 16px 42px #000c;
  background:color-mix(in srgb,var(--el-bg,var(--bg)) 90%,var(--v54-panel2));gap:3px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
 body.v54-mobile-active .v53-mobile-link{border:1px solid transparent;min-height:58px;gap:5px;border-radius:14px}
 body.v54-mobile-active .v53-mobile-link.is-active{border-color:color-mix(in srgb,var(--v54-accent) 38%,var(--v54-outline));
  background:color-mix(in srgb,var(--v54-accent) 16%,var(--v54-panel))}
 body.v54-mobile-active .v53-mobile-link .v53-nav-icon{font-size:23px;color:var(--muted)}
 body.v54-mobile-active .v53-mobile-link.is-active .v53-nav-icon{color:var(--v54-accent)}
 body.v54-mobile-active .v53-mobile-link .v53-area-copy strong{font-size:10px;font-weight:760;color:var(--soft)}
 body.v54-mobile-active .v53-mobile-link.is-active .v53-area-copy strong{color:var(--text)}
 body.v54-mobile-active #v20Fab{display:none!important}
 /* Remove doubled page titles. The selected section remains visible in a
  lightweight horizontally scrollable chip bar. */
 body.v54-mobile-active .v53-context{margin:2px 0 18px;padding:11px 12px 12px;
  border-radius:15px;background:color-mix(in srgb,var(--v54-panel) 83%,transparent)}
 body.v54-mobile-active .v53-context-head{display:none}
 body.v54-mobile-active .v53-subnav{gap:7px;margin:0;padding:1px 0 3px}
 body.v54-mobile-active .v53-subtab,
 body.v54-mobile-active .v53-more>summary{min-height:40px;padding:9px 14px;font-size:12px;border-radius:12px}
 body.v54-mobile-active .v53-subtab.is-active,
 body.v54-mobile-active .v53-more>summary.is-active{background:var(--v54-accent);border-color:var(--v54-accent);color:#17271b}
 body.v54-mobile-active .v53-subtab.is-active .v53-subtab-icon{color:#17271b}
 body.v54-mobile-active .v53-more-list{bottom:calc(94px + env(safe-area-inset-bottom));border-radius:14px}
 body.v54-mobile-active .view>.page-head{margin:1px 0 15px}
 body.v54-mobile-active .view>.page-head .eyebrow{font-size:10px;letter-spacing:1.25px}
 body.v54-mobile-active .view>.page-head h1{font-size:clamp(27px,7vw,36px);line-height:1.13;letter-spacing:-1.1px;margin:6px 0 9px}
 body.v54-mobile-active .view>.page-head p{font-size:12px;line-height:1.6;max-width:57ch}
 body.v54-mobile-active .view>.panel,
 body.v54-mobile-active .view .panel{border-radius:17px;box-shadow:none}
 body.v54-mobile-active .view .panel-pad{padding:17px 16px}
 body.v54-mobile-active .view .panel-header{gap:10px;margin-bottom:14px}
 body.v54-mobile-active .view .panel-header h2{font-size:19px}
 body.v54-mobile-active .view .grid{gap:13px;margin-bottom:14px}
 body.v54-mobile-active :is(.btn,.v53-subtab,.v54-more,.v54-brand){-webkit-tap-highlight-color:transparent}
 /* Mobile-only Home. This is a different hierarchy, not restyled desktop columns. */
 body.v54-mobile-active #view-overview #v32Today{max-width:none;overflow:visible;margin:0 0 12px}
 body.v54-mobile-active #view-overview .v35-home .v35-heading{
  padding:8px 2px 14px!important;margin:0!important;background:none!important;border:0!important;
  border-radius:0;min-height:0;align-items:center;gap:8px;
 }
 body.v54-mobile-active #view-overview .v35-home .v33-overline{color:var(--v54-accent);font-size:10px}
 body.v54-mobile-active #view-overview .v35-home .v35-heading h1{font-size:clamp(29px,7.4vw,37px);
  letter-spacing:-1.4px;line-height:1.15;margin:5px 0 6px}
 body.v54-mobile-active #view-overview .v35-home .v35-heading p{font-size:12px;color:var(--muted)}
 body.v54-mobile-active #view-overview .v35-goal-chip{border-radius:999px;padding:8px 11px;
  font-size:10px;max-width:126px;background:var(--v54-panel)}
 body.v54-mobile-active #view-overview .v35-content,
 body.v54-mobile-active #view-overview #v32Today>.v35-stats{display:none!important}
 .v54-home-mobile{display:grid;gap:12px;min-width:0}
 .v54-today-kicker{margin:3px 2px -3px;display:flex;align-items:center;gap:8px;
  font-size:10px;font-weight:900;letter-spacing:1.6px;color:var(--v54-accent)}
 .v54-today-kicker i{width:7px;height:7px;display:block;border-radius:50%;
  background:var(--v54-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--v54-accent) 14%,transparent)}
 .v54-slot-today .v35-today{padding:22px 21px!important;position:relative;
  background:linear-gradient(132deg,color-mix(in srgb,var(--v54-accent) 17%,var(--v54-panel)) 0%,
   color-mix(in srgb,var(--v54-panel2) 90%,var(--v54-panel)) 61%,var(--v54-panel) 100%)!important;
  border:1px solid color-mix(in srgb,var(--v54-accent) 38%,var(--v54-outline))!important;
  border-radius:22px!important;box-shadow:0 14px 32px #0004!important;overflow:hidden}
 .v54-slot-today .v35-today::after{content:'';position:absolute;right:-45px;top:-62px;
  width:160px;height:160px;border:1px solid color-mix(in srgb,var(--v54-accent) 23%,transparent);
  border-radius:50%;box-shadow:0 0 0 23px color-mix(in srgb,var(--v54-accent) 4%,transparent);
  pointer-events:none}
 .v54-slot-today .v35-today .v35-route-image{display:none!important}
 .v54-slot-today .v35-today .v33-section-bar{position:relative;z-index:1;margin-bottom:26px}
 .v54-slot-today .v35-today .v33-section-title{font-size:12px!important;
  font-weight:850!important;letter-spacing:1px;text-transform:uppercase}
 .v54-slot-today .v35-today .v33-status{font-size:10px;border:1px solid var(--v54-outline);
  border-radius:999px;padding:6px 9px;max-width:45%;white-space:normal;text-align:center}
 .v54-slot-today .v35-today .v35-today-body{padding:0!important;position:relative;z-index:1}
 .v54-slot-today .v35-today .v35-training-label{font-size:10px;letter-spacing:1.6px}
 .v54-slot-today .v35-today h3{font-size:clamp(25px,7.5vw,36px)!important;font-weight:840!important;
  line-height:1.15!important;letter-spacing:-.9px!important;max-width:92%}
 .v54-slot-today .v35-today #v32TodayDetail{font-size:13px;line-height:1.63;
  margin-bottom:18px;max-width:90%;color:var(--soft)}
 .v54-slot-today .v35-today .v33-focus-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:17px}
 .v54-slot-today .v35-today .v33-focus-actions .btn{min-height:47px;font-size:12px;padding:11px 14px}
 .v54-slot-today .v35-today .v33-focus-actions .btn.ghost{background:var(--v54-panel2);
  border-color:var(--v54-outline)}
 .v54-stats-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:7px 3px 0}
 .v54-stats-head strong{font-size:17px;letter-spacing:-.45px}
 .v54-stats-head small{color:var(--muted);font-size:10px;text-align:right}
 .v54-slot-stats{min-width:0}
 .v54-slot-stats .v35-stats{display:flex!important;gap:9px!important;overflow-x:auto;
  padding:1px 0 8px;margin:0!important;scroll-snap-type:x proximity;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch}
 .v54-slot-stats .v35-stat{display:flex!important;flex:0 0 min(43vw,166px);flex-direction:column;
  align-items:flex-start!important;gap:10px!important;padding:14px!important;min-height:115px;
  background:var(--v54-panel)!important;border:1px solid var(--v54-outline)!important;
  border-radius:15px!important;scroll-snap-align:start}
 .v54-slot-stats .v35-stat-icon{width:30px;height:30px;font-size:17px}
 .v54-slot-stats .v35-stat strong{font-size:24px!important;letter-spacing:-.75px}
 .v54-slot-stats .v35-stat span:not(.v35-stat-icon){font-size:10px;line-height:1.35}
 .v54-divider-title{margin:5px 3px 0}
 .v54-divider-title span{font-size:10px;font-weight:900;letter-spacing:1.5px;color:var(--v54-accent)}
 .v54-divider-title h2{font-size:22px;line-height:1.25;letter-spacing:-.65px;margin:5px 0 1px}
 .v54-slot-next .v35-next{padding:17px!important;min-height:0!important;border-radius:16px!important;
  position:relative}
 .v54-slot-next .v35-next .v33-section-title{font-size:14px}
 .v54-slot-next .v35-next strong{font-size:19px}
 .v54-slot-next .v35-next p{font-size:12px;line-height:1.55}
 .v54-slot-coach .v33-coach{padding:19px!important;border-radius:16px!important}
 .v54-slot-coach .v33-coach strong{font-size:16px}
 .v54-slot-coach .v33-coach p{font-size:12px;line-height:1.65}
 .v54-slot-week .v33-week{padding:18px!important;border-radius:16px!important}
 .v54-slot-week .v33-week .v33-section-title{font-size:15px}
 .v54-more-week{background:var(--v54-panel);border:1px solid var(--v54-outline);
  border-radius:15px;padding:0;margin-top:2px;overflow:hidden}
 .v54-more-week>summary{display:flex;justify-content:space-between;align-items:center;
  min-height:53px;padding:15px 17px;list-style:none;cursor:pointer;font-size:12px;
  font-weight:800;color:var(--soft)}
 .v54-more-week>summary::-webkit-details-marker{display:none}
 .v54-more-week[open]>summary{border-bottom:1px solid var(--v54-outline)}
 .v54-more-week>summary b{font-size:14px;color:var(--muted)}
 .v54-more-week[open]>summary b{transform:rotate(180deg)}
 .v54-slot-completed .v33-completed,.v54-slot-milestone .v33-milestone{
  padding:17px!important;margin:0!important;border:0!important;box-shadow:none!important;border-radius:0!important}
 .v54-slot-completed .v33-completed{border-bottom:1px solid var(--v54-outline)!important}
 /* Contextual quick jumps so long mobile pages feel navigable rather than endless. */
 .v54-jumps{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;
  margin:0 0 17px;padding:0 1px 6px;max-width:100%}
 .v54-jumps button{flex:0 0 auto;min-height:37px;border:1px solid var(--v54-outline);
  background:var(--v54-panel);color:var(--soft);border-radius:999px;
  padding:7px 13px;font-size:11px;font-weight:760}
 .v54-jumps button:hover{border-color:var(--v54-accent)}
 #view-calendar .cal-top{border-radius:19px!important;padding:18px 15px!important}
 #view-calendar .cal-toolbar{gap:10px}
 #view-calendar .cal-toolbar .cal-actions{flex-wrap:wrap}
 #view-calendar .week-essentials{grid-template-columns:1fr;gap:10px}
 #view-calendar .week-quick-card{border-radius:16px;padding:17px}
 #view-calendar .cal-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #view-calendar .cal-stat{min-height:77px;padding:12px}
 #view-calendar .cal-grid{gap:9px}
 #view-calendar .cal-day{border-radius:15px;padding:14px}
 #view-insights .is-controls{gap:8px}
 #view-insights .insights-studio{padding:17px 14px!important;border-radius:17px}
 #view-insights .is-kpis{gap:9px}
 #view-activities .v20-diary-controls{border-radius:16px}
 #view-activities .activity-card{border-radius:15px}
 :is(#view-calendar,#view-insights,#view-activities) :is(#calWeekLabel,#v24Coach,#v24WorkoutStudio,
  #insightsStudio,#v22Fitness,#v20ReviewCenter,#v20DiarySearch){scroll-margin-top:26px}
 .v54-brand:focus-visible,.v54-more:focus-visible,.v54-menu button:focus-visible,
 .v54-jumps button:focus-visible,.v54-more-week summary:focus-visible{outline:3px solid var(--v54-accent);outline-offset:2px}
}
@media(max-width:410px){
 body.v54-mobile-active .main{padding-left:12px;padding-right:12px}
 body.v54-mobile-active .top-actions #v27Bell,
 body.v54-mobile-active .top-actions #topLog,
 body.v54-mobile-active .top-actions #v54More{width:39px;min-width:39px;height:39px;min-height:39px}
 .v54-brand-mark{width:39px;height:39px;flex-basis:39px}
 .v54-brand-copy strong{font-size:15px}
 .v54-brand-copy small{font-size:8px}
 .v54-slot-today .v35-today .v33-focus-actions{grid-template-columns:1fr}
 .v54-slot-today .v35-today .v33-focus-actions .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
 .v54-jumps *, .v54-more-week *{transition:none!important}
}
