/* Baseline Fitness canonical page styling. */

/* --- Fitness foundation --- */
:root{
    /* Page-specific tokens only. The Fitness palette + background are defined in baseline-themes.css */
    --hero-bg: var(--header-gradient);
  }

  *{ box-sizing:border-box; }
  html,body{
    margin:0; padding:0;
    background: transparent;
    color: var(--ink);
    font-family: var(--font);
    scroll-behavior:auto;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }
  @media (min-width: 900px){
    .card{ padding: 28px 30px; }
  }

  /* Tabs */
  .tab{
    appearance:none; border:none; cursor:pointer;
    background: rgba(255,255,255,0.08);
    padding:10px 14px;
    border-radius:999px;
    font-size:16px;
    font-weight:760;
    color: var(--muted);
    border:1px solid rgba(255,255,255,0.14);
    box-shadow:0 10px 22px -20px rgba(0,0,0,0.55);
    transition:transform .08s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
    white-space:nowrap;
  }
  .tab:hover{
    transform:translateY(-1px);
    background: rgba(143,15,31,0.18);
    border-color: rgba(143,15,31,0.28);
    box-shadow:0 16px 30px -24px rgba(0,0,0,0.65);
  }
  .tab[aria-selected="true"]{
    color: rgba(255,255,255,0.95);
    background: linear-gradient(135deg, rgba(143,15,31,0.95), rgba(177,18,38,0.80));
    border-color: rgba(255,255,255,0.18);
    box-shadow: 0 18px 44px -28px rgba(143,15,31,0.60);
  }

  /* Layout width is owned by css/baseline-sitewide.css. */
  .section{ display:none; animation:fade var(--dur-3) var(--ease-soft); }
  .section.active{ display:block; }
  @keyframes fade{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:translateY(0)} }


  /* Route-correct first paint. The data attribute is updated on every tab change. */
  html[data-initial-fitness-tab="my-plan"] #system.section.active{ display:none !important; }
  html[data-initial-fitness-tab="my-plan"] #my-plan.section{ display:block !important; }
  html[data-initial-fitness-tab="my-plan"] .tab[data-target="system"]{
    color:var(--muted) !important;
    background:rgba(255,255,255,0.08) !important;
    border-color:rgba(255,255,255,0.14) !important;
    box-shadow:0 10px 22px -20px rgba(0,0,0,0.55) !important;
  }
  html[data-initial-fitness-tab="my-plan"] .tab[data-target="my-plan"]{
    color:rgba(255,255,255,0.95) !important;
    background:linear-gradient(135deg, rgba(143,15,31,0.95), rgba(177,18,38,0.80)) !important;
    border-color:rgba(255,255,255,0.18) !important;
    box-shadow:0 18px 44px -28px rgba(143,15,31,0.60) !important;
  }

  /* Cards */
  .card{
    border-radius: var(--radius-lg);
    padding: 20px;
    box-shadow: var(--shadow);
    backdrop-filter: blur(14px) saturate(120%);
  }

  .grid{ display:grid; gap:14px; grid-template-columns:1fr; }
  @media (min-width:900px){ .grid-2{ grid-template-columns:1fr 1fr; } }

  h2{ margin:0 0 var(--space-2) 0; font-size:34px; line-height:1.15; color: var(--ink); }
  h3{ margin:var(--space-4) 0 var(--space-1) 0; font-size:28px; color: rgba(255,255,255,0.92); line-height:1.25; }
  h4{ margin:var(--space-3) 0 var(--space-1) 0; font-size:20px; color: var(--ink); }
  p{ margin:0 0 var(--space-3) 0; line-height:1.58; }
  ul,ol{ margin:0 0 var(--space-3) 20px; padding:0; }
  li{ margin:6px 0; }

  .note{ color: var(--muted); }
  .divider{ height:1px; background: linear-gradient(90deg, rgba(143,15,31,0.30), rgba(255,255,255,0.12), rgba(143,15,31,0.18)); margin:14px 0; }

  /* Form elements */
  label{ font-weight:760; color: var(--ink); }
  input, select{
    width:100%;
    padding: 12px 12px;
    border-radius: 14px;
    border: 1px solid var(--border-2);
    background: rgba(0,0,0,0.36);
    color: var(--ink);
    outline:none;
  }
  input::placeholder{ color: rgba(255,255,255,0.44); }
  input:focus, select:focus{
    box-shadow: 0 0 0 4px var(--ring);
    border-color: rgba(143,15,31,0.40);
  }

  .row{ display:grid; gap:12px; grid-template-columns: 1fr; }
  @media (min-width:900px){ .row-2{ grid-template-columns: 1fr 1fr; } .row-3{ grid-template-columns: 1.2fr 0.9fr 0.9fr; } }

  .actions-inline{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }

  .action{
    appearance:none;
    border:none;
    cursor:pointer;
    border-radius:999px;
    padding: 11px 14px;
    font-weight:850;
    color: rgba(255,255,255,0.96);
    background: linear-gradient(135deg, rgba(143,15,31,0.96), rgba(177,18,38,0.88));
    box-shadow: 0 18px 40px -26px rgba(143,15,31,0.72);
    transition: transform .08s ease, filter .12s ease, box-shadow .12s ease;
  }
  .action:hover{ transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 22px 46px -28px rgba(143,15,31,0.78); }
  .action:active{ transform: translateY(0px); }

  .action.secondary{
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.16);
    box-shadow: 0 14px 30px -24px rgba(0,0,0,0.65);
  }

  /* Exercise rows (dynamic) */
  .ex-list{ display:grid; gap: 12px; }
  .ex-row{
    display:grid;
    gap:12px;
    grid-template-columns: 1fr;
  }
  @media (min-width:900px){
    .ex-row{
      grid-template-columns: minmax(220px,1.35fr) minmax(150px,.8fr) minmax(90px,.35fr) auto;
      align-items: end;
    }
  }
  .ex-remove{
    width:44px;
    height:44px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.16);
    background: rgba(0,0,0,0.28);
    color: rgba(255,255,255,0.92);
    cursor:pointer;
    font-weight: 900;
    line-height: 1;
  }
  .ex-remove:hover{ background: rgba(143,15,31,0.20); border-color: rgba(143,15,31,0.30); }

  .ex-remove-wrap{display:flex;justify-content:flex-end;align-items:end;}
  .ex-field-sets[hidden]{display:none!important;}
  .ex-row--hold{grid-template-columns:minmax(220px,1.35fr) minmax(150px,.8fr) auto;}
  .ex-field-sets select{min-width:76px;}

  .ex-field-sets{position:relative;z-index:4;}
  .ex-field-sets select.ex-sets[data-native-select="true"]{
    pointer-events:auto!important;
    opacity:1!important;
    position:relative!important;
    z-index:5!important;
    appearance:auto;
  }

  /* Output */
  .mono{
    margin-top: 12px;
    padding: 14px 14px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.30);
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 15px;
    line-height: 1.45;
  }

  .status{
    margin-top: 10px;
    color: var(--muted);
  }

  .badge{
    display:inline-block;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.22);
    color: rgba(255,255,255,0.78);
    font-size: 14px;
    font-weight: 750;
  }

  /* Generator + plan UI */
  .bl-panel{
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.22);
  }
  .muted{ color: rgba(255,255,255,0.70); }

  .plan-view{
    margin-top: 12px;
    display:grid;
    gap: 12px;
  }
  .plan-summary{
    padding: 14px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.26);
  }
  .plan-summary .kpi{
    display:grid;
    gap:10px;
    grid-template-columns: 1fr;
    margin-top: 10px;
  }
  @media (min-width:900px){
    .plan-summary .kpi{ grid-template-columns: 1fr 1fr 1fr; }
  }
  .kpi .k{
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.06);
    border-radius: 16px;
    padding: 10px 12px;
  }
  .k .label{ font-size: 0.85rem; color: rgba(255,255,255,0.70); }
  .k .value{ font-size: 1.05rem; font-weight: 900; margin-top: 4px; }

  .session-card{
    padding: 14px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.22);
  }
  .session-card.done{ opacity: 0.75; }
  .session-head{
    display:flex;
    gap: 10px;
    align-items:center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 10px;
  }
  .session-title{ font-weight: 950; }
  .pill{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.06);
    font-size: 0.9rem;
  }
  .session-actions{
    display:flex;
    gap: 8px;
    align-items:center;
    flex-wrap: wrap;
  }
  .tiny-btn{
    appearance:none;
    border: 1px solid rgba(255,255,255,0.16);
    background: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.92);
    border-radius: 999px;
    padding: 8px 10px;
    cursor:pointer;
    font-weight: 850;
  }
  .tiny-btn:hover{ filter: brightness(1.05); }

  .workout-list{ margin: 0; padding-left: 18px; }
  .workout-list li{ margin: 6px 0; }


  /* Generator field sizing + alignment */
  .field-stack{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .field-input-fixed,
  .field-select-fixed,
  .field-stack .bl-select{
    width:100%;
    max-width:none;
    min-width:0;
  }
  .field-stack .bl-select-btn,
  .field-stack input,
  .field-stack select{
    width:100%;
  }
  .bl-goal-row{
    align-items:end;
  }
  .row.row-2 > .field-stack,
  .ex-row > .field-stack{
    min-width:0;
  }
  @media (min-width:900px){
    .ex-row{
      grid-template-columns: minmax(220px,1.35fr) minmax(150px,.8fr) minmax(90px,.35fr) auto;
      align-items:end;
    }
  }
  .generator-actions{
    margin-top: 14px;
  }
  .session-plan-meta{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top: 10px;
  }
  .session-subcard{
    padding: 12px 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.05);
  }
  .session-subcard + .session-subcard{ margin-top: 10px; }
  .session-locked{
    opacity: 0.7;
  }
  .tiny-btn[disabled],
  .action[disabled],
  .ex-step-btn[disabled]{
    opacity: 0.55;
    cursor:not-allowed;
    filter:none;
  }
  .current-workout{
    display:grid;
    gap:12px;
    margin-top: 12px;
  }
  .current-step{
    padding: 12px 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.05);
  }
  .current-step.active{
    border-color: rgba(143,15,31,0.42);
    box-shadow: 0 12px 30px -24px rgba(143,15,31,0.65);
  }
  .current-step.done{
    opacity: 0.7;
  }
  .current-step-head{
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
  }
  .rest-timer{
    padding: 12px 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(0,0,0,0.24);
  }

  .section-head-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
  }
  .section-head-actions h2{ margin:0; }
  .workout-summary-block{
    padding: 14px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.26);
  }
  .benefit-list{
    display:grid;
    gap:10px;
    margin-top:12px;
  }
  .benefit-item{
    padding: 12px 12px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.05);
  }
  .benefit-item-title{
    font-weight:950;
    margin-bottom:6px;
  }

  /* Exercise library */
  .exercise-grid{ display:grid; gap: 14px; }
  .exercise-card .top{
    display:flex;
    gap: 12px;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .exercise-card .title{
    font-weight: 950;
    font-size: 1.05rem;
  }
  .exercise-tags{
    display:flex;
    gap:8px;
    flex-wrap: wrap;
    margin-top: 6px;
  }
  .tag{
    display:inline-flex;
    align-items:center;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.06);
    font-size: 0.85rem;
    color: rgba(255,255,255,0.84);
  }
  .exercise-art{
    width: 100%;
    max-width: 720px;
    margin-top: 10px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(0,0,0,0.20);
    overflow: hidden;
  }

  /* Achievements */
  .ach-grid{
    display:grid;
    gap: 12px;
    grid-template-columns: 1fr;
  }
  @media (min-width:900px){
    .ach-grid{ grid-template-columns: repeat(3, 1fr); }
  }
  .ach-badge{
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(0,0,0,0.22);
    border-radius: 18px;
    padding: 12px 12px;
    display:flex;
    gap: 12px;
    align-items:flex-start;
  }
  .ach-badge.locked{ opacity: 0.62; }
  .ach-icon{
    width: 44px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.08);
    display:grid;
    place-items:center;
    flex: 0 0 auto;
  }
  .ach-meta .name{ font-weight: 950; }
  .ach-meta .desc{ color: rgba(255,255,255,0.76); font-size: 0.93rem; margin-top: 4px; }
  .ach-meta .prog{ color: rgba(255,255,255,0.70); font-size: 0.85rem; margin-top: 8px; }


  /* Template alignment (Food/Skincare style): prevent tab panels from visually sliding under the hero/banner */

  .section{ scroll-margin-top: calc(var(--homebar-h) + 12px); }
  .section .grid{ align-items: start; }


  /* Coherence pass: keep fitness surfaces solid rather than translucent. */
  .card,
  .ex-row,
  .lib-card,
  .ill,
  .pill,
  .block,
  .k,
  .session-card,
  .ach-badge,
  .ach-card,
  .mini-panel,
  .stat,
  .stat-card{
    background: var(--card-bg) !important;
    border-color: var(--border) !important;
    backdrop-filter: none !important;
  }
  input, select, textarea{
    background: var(--filter-bg) !important;
    border-color: var(--border-2) !important;
    color: var(--ink) !important;
  }
  .action.secondary,
  .tab,
  .ex-remove,
  .ghost,
  .chip,
  .toggle,
  .session-meta,
  .ach-meta,
  .kpi,
  .mini-chip{
    background: var(--showall-bg) !important;
    border-color: var(--showall-border) !important;
    color: var(--ink) !important;
  }
  .card{ backdrop-filter:none !important; }


  /* BASELINE-FITNESS-SURFACE-COHERENCE-V2: opaque sitewide theme surfaces. */
  body[data-app="fitness"] .card,
  body[data-app="fitness"] .ex-row,
  body[data-app="fitness"] .lib-card,
  body[data-app="fitness"] .ill,
  body[data-app="fitness"] .pill,
  body[data-app="fitness"] .block,
  body[data-app="fitness"] .k,
  body[data-app="fitness"] .session-card,
  body[data-app="fitness"] .session-subcard,
  body[data-app="fitness"] .ach-badge,
  body[data-app="fitness"] .ach-card,
  body[data-app="fitness"] .mini-panel,
  body[data-app="fitness"] .stat,
  body[data-app="fitness"] .stat-card{
    background:var(--card-bg)!important;
    border-color:var(--border)!important;
    backdrop-filter:none!important;
  }

/* BASELINE-FITNESS-SETS-FIELD-V1: per-exercise set selector for rep exercises only. */
@media (min-width:900px){
  body[data-app="fitness"] .ex-row{
    grid-template-columns:minmax(220px,1.35fr) minmax(150px,.8fr) minmax(90px,.35fr) auto!important;
    align-items:end;
  }
  body[data-app="fitness"] .ex-row.ex-row--hold{
    grid-template-columns:minmax(220px,1.35fr) minmax(150px,.8fr) auto!important;
  }
}
body[data-app="fitness"] .ex-remove-wrap{display:flex;justify-content:flex-end;align-items:end;}
body[data-app="fitness"] .ex-field-sets[hidden]{display:none!important;}
body[data-app="fitness"] .ex-field-sets select{min-width:76px;}
body[data-app="fitness"] .ex-field-sets{position:relative;z-index:4;}
body[data-app="fitness"] .ex-field-sets select.ex-sets[data-native-select="true"]{pointer-events:auto!important;opacity:1!important;position:relative!important;z-index:5!important;appearance:auto;}



/* BASELINE-FITNESS-EXERCISE-CAPTIONS-20260706
   Layout only. Behaviour, opaque portal and themed control are sitewide. */
body[data-app="fitness"] .ex-exercise-block{
  display:grid;
  grid-template-columns:minmax(0,1fr) 46px;
  gap:8px;
  align-items:end;
  min-width:0;
}
body[data-app="fitness"] .exercise-info-wrap{
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
body[data-app="fitness"] .exercise-info-button{
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
}
@media (min-width:900px){
  body[data-app="fitness"] .ex-row,
  body[data-app="fitness"] .ex-row.ex-row--hold{
    grid-template-columns:minmax(280px,1.5fr) minmax(150px,.8fr) minmax(90px,.35fr) auto!important;
    align-items:end;
  }
}
body[data-app="fitness"] .plan-generator-intro p{margin:0;}


.compact-action{appearance:none;border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.96);border-radius:14px;padding:10px 12px;font:inherit;font-weight:850;cursor:pointer;line-height:1;display:inline-flex;align-items:center;gap:8px;min-height:42px}
.compact-action:hover{filter:brightness(1.06)}
.compact-action[disabled]{opacity:.55;cursor:not-allowed;filter:none}
.compact-action--primary{background:linear-gradient(135deg, rgba(143,15,31,0.96), rgba(177,18,38,0.88));box-shadow:0 18px 40px -28px rgba(143,15,31,0.72)}
.compact-action--success{background:rgba(28,122,66,.24);border-color:rgba(90,220,140,.30)}
.compact-action--danger{background:rgba(143,15,31,.18);border-color:rgba(225,77,77,.35)}
.compact-action--ghost{background:rgba(255,255,255,0.05)}
.saved-plan-actions{justify-content:flex-end}
.plan-options-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.plan-options-meta{margin-top:10px;display:grid;gap:12px}
.option-select-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.future-empty,.completed-empty{padding:20px 0;color:var(--muted)}
.current-workout{display:grid;gap:10px;margin-top:16px}
.current-step{padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.05)}
.current-step-text{margin-top:8px;font-size:1rem;font-weight:850}
.current-step-head{align-items:flex-start}
.step-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.step-status{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.14);font-size:.92rem;font-weight:800;background:rgba(255,255,255,0.06)}
.step-status.success{border-color:rgba(90,220,140,.3);background:rgba(28,122,66,.18)}
.step-status.failed{border-color:rgba(225,77,77,.35);background:rgba(143,15,31,.14)}
.step-subnote{margin-top:6px;color:rgba(255,255,255,.72)}
.failure-entry{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.failure-entry input{width:160px;max-width:100%}
.session-step-list{display:grid;gap:10px;margin-top:14px}
.timer-overlay,.modal-overlay{position:fixed;inset:0;background:rgba(5,2,6,.76);display:grid;place-items:center;padding:20px;z-index:9999}
.timer-modal,.confirm-modal{width:min(100%,460px)}
.timer-digits{font-size:clamp(2.5rem,8vw,4.6rem);font-weight:950;letter-spacing:.04em;text-align:center;margin-top:12px}
.timer-modal .note{margin-top:6px}
@media (max-width:700px){.saved-plan-actions{width:100%;justify-content:flex-start}.step-actions{width:100%;justify-content:flex-start}}


/* Hidden UI state must override layout classes such as .grid and .card. */
[hidden]{ display:none !important; }

.step-icon-btn{
  width:46px;
  min-width:46px;
  height:42px;
  padding:0;
  justify-content:center;
  font-size:1.45rem;
  line-height:1;
}

/* --- Fitness surface --- */
/* BASELINE-FITNESS-SURFACE-FINAL-V3: opaque dark surfaces. */
body[data-app="fitness"] .card,
body[data-app="fitness"] .ex-row,
body[data-app="fitness"] .lib-card,
body[data-app="fitness"] .ill,
body[data-app="fitness"] .pill,
body[data-app="fitness"] .block,
body[data-app="fitness"] .k,
body[data-app="fitness"] .session-card,
body[data-app="fitness"] .session-subcard,
body[data-app="fitness"] .ach-badge,
body[data-app="fitness"] .ach-card,
body[data-app="fitness"] .mini-panel,
body[data-app="fitness"] .stat,
body[data-app="fitness"] .stat-card{
  background:var(--card-bg)!important;
  background-color:#10090d!important;
  border-color:var(--border)!important;
  backdrop-filter:none!important;
}
body[data-app="fitness"] input,
body[data-app="fitness"] select,
body[data-app="fitness"] textarea{
  background:var(--filter-bg)!important;
  border-color:var(--border-2)!important;
  color:var(--ink)!important;
}

.compact-action{appearance:none;border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.96);border-radius:14px;padding:10px 12px;font:inherit;font-weight:850;cursor:pointer;line-height:1;display:inline-flex;align-items:center;gap:8px;min-height:42px}
.compact-action:hover{filter:brightness(1.06)}
.compact-action[disabled]{opacity:.55;cursor:not-allowed;filter:none}
.compact-action--primary{background:linear-gradient(135deg, rgba(143,15,31,0.96), rgba(177,18,38,0.88));box-shadow:0 18px 40px -28px rgba(143,15,31,0.72)}
.compact-action--success{background:rgba(28,122,66,.24);border-color:rgba(90,220,140,.30)}
.compact-action--danger{background:rgba(143,15,31,.18);border-color:rgba(225,77,77,.35)}
.compact-action--ghost{background:rgba(255,255,255,0.05)}
.saved-plan-actions{justify-content:flex-end}
.plan-options-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.plan-options-meta{margin-top:10px;display:grid;gap:12px}
.option-select-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.future-empty,.completed-empty{padding:20px 0;color:var(--muted)}
.current-workout{display:grid;gap:10px;margin-top:16px}
.current-step{padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.05)}
.current-step-text{margin-top:8px;font-size:1rem;font-weight:850}
.current-step-head{align-items:flex-start}
.step-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.step-status{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.14);font-size:.92rem;font-weight:800;background:rgba(255,255,255,0.06)}
.step-status.success{border-color:rgba(90,220,140,.3);background:rgba(28,122,66,.18)}
.step-status.failed{border-color:rgba(225,77,77,.35);background:rgba(143,15,31,.14)}
.step-subnote{margin-top:6px;color:rgba(255,255,255,.72)}
.failure-entry{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.failure-entry input{width:160px;max-width:100%}
.session-step-list{display:grid;gap:10px;margin-top:14px}
.timer-overlay,.modal-overlay{position:fixed;inset:0;background:rgba(5,2,6,.76);display:grid;place-items:center;padding:20px;z-index:9999}
.timer-modal,.confirm-modal{width:min(100%,460px)}
.timer-digits{font-size:clamp(2.5rem,8vw,4.6rem);font-weight:950;letter-spacing:.04em;text-align:center;margin-top:12px}
.timer-modal .note{margin-top:6px}
@media (max-width:700px){.saved-plan-actions{width:100%;justify-content:flex-start}.step-actions{width:100%;justify-content:flex-start}}

/* --- My Plan controls --- */
.my-plan-saved-head,.saved-plan-actions,.options-frequency,.day-picker,.my-plan-subtabs{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.my-plan-saved-head{justify-content:space-between;align-items:flex-start}
.saved-plan-actions{justify-content:flex-end}
.plan-options-panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.options-frequency{margin:8px 0 16px}
.option-choice,.day-choice{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--border-2);border-radius:999px;background:var(--filter-bg);font-weight:800;cursor:pointer}
.option-choice input,.day-choice input{accent-color:#a53b3f}
.day-choice.is-disabled{opacity:.45;cursor:not-allowed}
.my-plan-subtabs{margin:20px 0 4px;border-bottom:1px solid var(--border)}
.my-plan-subtab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:11px 15px;font:inherit;font-weight:900;cursor:pointer}
.my-plan-subtab.active{color:var(--ink);border-bottom-color:#a53b3f}
.completed-empty{padding:20px 0;color:var(--muted)}

.compact-action{appearance:none;border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.96);border-radius:14px;padding:10px 12px;font:inherit;font-weight:850;cursor:pointer;line-height:1;display:inline-flex;align-items:center;gap:8px;min-height:42px}
.compact-action:hover{filter:brightness(1.06)}
.compact-action[disabled]{opacity:.55;cursor:not-allowed;filter:none}
.compact-action--primary{background:linear-gradient(135deg, rgba(143,15,31,0.96), rgba(177,18,38,0.88));box-shadow:0 18px 40px -28px rgba(143,15,31,0.72)}
.compact-action--success{background:rgba(28,122,66,.24);border-color:rgba(90,220,140,.30)}
.compact-action--danger{background:rgba(143,15,31,.18);border-color:rgba(225,77,77,.35)}
.compact-action--ghost{background:rgba(255,255,255,0.05)}
.saved-plan-actions{justify-content:flex-end}
.plan-options-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.plan-options-meta{margin-top:10px;display:grid;gap:12px}
.option-select-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.future-empty,.completed-empty{padding:20px 0;color:var(--muted)}
.current-workout{display:grid;gap:10px;margin-top:16px}
.current-step{padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.05)}
.current-step-text{margin-top:8px;font-size:1rem;font-weight:850}
.current-step-head{align-items:flex-start}
.step-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.step-status{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.14);font-size:.92rem;font-weight:800;background:rgba(255,255,255,0.06)}
.step-status.success{border-color:rgba(90,220,140,.3);background:rgba(28,122,66,.18)}
.step-status.failed{border-color:rgba(225,77,77,.35);background:rgba(143,15,31,.14)}
.step-subnote{margin-top:6px;color:rgba(255,255,255,.72)}
.failure-entry{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.failure-entry input{width:160px;max-width:100%}
.session-step-list{display:grid;gap:10px;margin-top:14px}
.timer-overlay,.modal-overlay{position:fixed;inset:0;background:rgba(5,2,6,.76);display:grid;place-items:center;padding:20px;z-index:9999}
.timer-modal,.confirm-modal{width:min(100%,460px)}
.timer-digits{font-size:clamp(2.5rem,8vw,4.6rem);font-weight:950;letter-spacing:.04em;text-align:center;margin-top:12px}
.timer-modal .note{margin-top:6px}
@media (max-width:700px){.saved-plan-actions{width:100%;justify-content:flex-start}.step-actions{width:100%;justify-content:flex-start}}


/* Keep dialogs closed until JavaScript explicitly opens them. */
.timer-overlay[hidden],
.modal-overlay[hidden]{
  display:none!important;
}

/* BASELINE-FITNESS-VOICE-WORKOUT-20260712 */
.workout-start-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.voice-workout-start{
  white-space:nowrap;
}
.voice-workout-overlay{
  position:fixed;
  inset:0;
  z-index:10080;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,2,6,.84);
}
.voice-workout-overlay[hidden]{display:none!important}
.voice-workout-modal{
  width:min(720px,100%);
  max-height:calc(100svh - 40px);
  overflow:auto;
  padding:clamp(20px,4vw,34px)!important;
  background:#10090d!important;
  border-color:rgba(143,15,31,.72)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.55);
}
.voice-workout-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.voice-workout-head h3{margin:4px 0 0;font-size:clamp(1.35rem,3vw,2rem)}
.voice-workout-kicker{
  color:var(--muted);
  font-size:.9rem;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.voice-listening-status{
  flex:0 0 auto;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  font-size:.88rem;
  font-weight:850;
  background:var(--showall-bg);
}
.voice-listening-status[data-kind="listening"],.voice-listening-status[data-kind="hearing"]{
  border-color:rgba(90,220,140,.38);
  background:rgba(28,122,66,.22);
}
.voice-listening-status[data-kind="error"]{
  border-color:rgba(225,77,77,.55);
  background:rgba(143,15,31,.26);
}
.voice-workout-exercise{
  margin-top:24px;
  padding:20px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#1a1115;
}
.voice-workout-exercise h2{margin:0;font-size:clamp(1.55rem,4vw,2.4rem)}
.voice-workout-target{margin-top:10px;font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:900}
.voice-workout-timer-wrap{
  margin:20px 0 0;
  text-align:center;
}
.voice-workout-timer-label{color:var(--muted);font-weight:800}
.voice-workout-timer{
  margin-top:4px;
  font-size:clamp(3rem,12vw,6.5rem);
  line-height:1;
  font-weight:950;
  letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.voice-workout-prompt{
  margin:22px 0 0;
  font-size:clamp(1.05rem,2.4vw,1.35rem);
  line-height:1.45;
  font-weight:850;
  text-align:center;
}
.voice-last-transcript{
  margin-top:14px;
  min-height:44px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  color:var(--muted);
  text-align:center;
}
.voice-workout-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:20px;
}
body.voice-workout-active{overflow:hidden}
@media (max-width:700px){
  .workout-start-actions{width:100%;justify-content:flex-start}
  .workout-start-actions .action{flex:1 1 210px;justify-content:center}
  .voice-workout-head{display:grid}
  .voice-listening-status{justify-self:start}
  .voice-workout-actions .compact-action{flex:1 1 180px;justify-content:center}
}
body.voice-workout-active .bl-scroll{overflow:hidden!important}
