/* Baseline Fitness — authoritative multiple-plan and Calisthenics generator layout.

   MY ROUTINE THEME / STRUCTURE CONTRACT
   -------------------------------------
   Colours always come from Baseline Fitness tokens. The generator owns one
   two-column settings grid and each exercise owns one left-controls/right-
   Details card. Shared dropdown geometry belongs to sitewide My Routine v12.
*/
.fitness-calisthenics-plan-manager{display:grid;gap:1rem;grid-column:1/-1;margin:0 0 1.25rem}
.fitness-calisthenics-plan-manager .section-head-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.fitness-calisthenics-plan-manager .field-stack{margin:0}
.calisthenics-plan-name-field{display:grid!important;gap:.55rem;width:100%;margin:0 0 1.25rem!important}
.calisthenics-plan-name-field>input{width:100%;min-width:0}

/* Saved plan is one card: title/actions, summary, then Current/Completed/Future. */
#myPlanSavedWrap>.card{display:grid;gap:14px}
.calisthenics-saved-plan-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:13px;border-bottom:1px solid var(--border)}
.calisthenics-saved-plan-head h2{margin:0!important;min-width:0}
.calisthenics-saved-plan-head .saved-plan-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-left:auto}
.calisthenics-saved-plan-summary{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap!important;margin:0!important;padding:0 0 4px!important}
.calisthenics-saved-plan-summary .badge{margin:0!important}

#myPlanGeneratorWrap{--bl-generator-gap:16px}
#myPlanGeneratorWrap .field-stack,#myPlanGeneratorWrap label{min-width:0}
#myPlanGeneratorWrap :is(input,select,textarea){max-width:100%;box-sizing:border-box}
#myPlanGeneratorWrap :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:50px}
#startDate{cursor:pointer}

/* Generator settings: exactly two structural columns. */
#myPlanGeneratorWrap .bl-generator-settings-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;align-items:start!important;width:100%!important;margin:14px 0 18px!important}
#myPlanGeneratorWrap .bl-generator-settings-column{display:grid!important;gap:14px!important;align-content:start!important;min-width:0!important;padding:16px!important;border:1px solid var(--border)!important;border-radius:18px!important;background:var(--card-bg)!important;color:var(--ink)!important}
#myPlanGeneratorWrap .bl-generator-settings-column>.field-stack,#myPlanGeneratorWrap .bl-generator-settings-column>.fitness-frequency-grid,#myPlanGeneratorWrap .bl-generator-settings-column>#specificDayControls{width:100%!important;min-width:0!important;margin:0!important}
#myPlanGeneratorWrap #specificDayControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0 0}
#myPlanGeneratorWrap #specificDayControls[hidden]{display:none!important}
#myPlanGeneratorWrap #specificDayControls label{display:inline-flex;align-items:center;gap:6px;min-width:0}
#myPlanGeneratorWrap .bl-generator-settings-grid .bl-generator-mode-hidden{display:none!important}
#myPlanGeneratorWrap .ex-field-progression-mode.bl-generator-mode-hidden{display:grid!important}
/* The selected generator mode is authoritative. Disabled alternatives are not left visible as duplicate controls. */
#myPlanGeneratorWrap .bl-generator-settings-grid .field-stack:has(#sessions:disabled),
#myPlanGeneratorWrap .bl-generator-settings-grid .field-stack:has(#goalExercise:disabled),
#myPlanGeneratorWrap .bl-generator-settings-grid .field-stack:has(#goalAmount:disabled),
#myPlanGeneratorWrap .bl-generator-settings-grid .fitness-frequency-grid:has(#freq:disabled){display:none!important}

#exerciseList{display:grid!important;gap:1rem!important}
#myPlanGeneratorWrap .ex-row,[data-fitness-routine-panel="calisthenics"] .ex-row{
  display:grid!important;
  grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr)!important;
  grid-template-areas:"exercise exercise" "progression details" "baseline details" "sets details" "rep details" "remove details"!important;
  gap:12px 22px!important;align-items:start!important;width:100%;min-width:0;padding:18px!important;border:1px solid var(--border)!important;border-radius:20px!important;background:var(--card-bg)!important;color:var(--ink)!important;
}
.ex-row>*{min-width:0}
.ex-exercise-block{grid-area:exercise;display:block!important;min-width:0}
.ex-field-exercise{grid-area:exercise;position:relative;z-index:5;width:min(100%,680px)!important;justify-self:center!important;margin:0 auto 6px!important}
.ex-field-exercise>label,.ex-field-exercise>span:not(.ex-picker-control):not(.bl-input-with-unit){display:none!important}
.ex-field-progression-mode{grid-area:progression}
.ex-field-baseline{grid-area:baseline}
.ex-field-sets{grid-area:sets}
.ex-field-rep-increase{grid-area:rep}
.ex-remove-wrap{grid-area:remove}
.ex-details-card{grid-area:details}

.ex-field-progression-mode,.ex-field-baseline,.ex-field-sets,.ex-field-rep-increase{display:grid!important;align-content:start!important;gap:7px!important;min-width:0;width:100%!important;margin:0!important}
.ex-field-progression-mode>span,.ex-field-baseline>label,.ex-field-sets>label,.ex-field-rep-increase>span{display:flex!important;align-items:center!important;min-height:27px!important;margin:0!important;font-weight:850!important;line-height:1.25!important;color:var(--ink)!important}
.ex-search-input,.ex-progression-mode,.ex-baseline,.ex-sets,.ex-rep-increase{width:100%!important;min-width:0!important;min-height:52px!important;margin:0!important}
/* Once the searchable picker exists, the original native exercise select is never a second visible control. */
#myPlanGeneratorWrap .ex-field-exercise>.ex-select,
#myPlanGeneratorWrap .ex-field-exercise>.ex-select-source,
[data-fitness-routine-panel="calisthenics"] .ex-field-exercise>.ex-select,
[data-fitness-routine-panel="calisthenics"] .ex-field-exercise>.ex-select-source{display:none!important}
.ex-select-source[hidden]{display:none!important}
.exercise-info-wrap,.ex-progression-note,.rep-increase-note{display:none!important}

/* Exercise picker = centred exercise-card heading + shared dropdown chevron. */
.ex-picker-control{display:grid!important;grid-template-columns:minmax(0,1fr) 52px!important;width:100%!important;min-width:0!important;align-items:stretch!important}
.ex-picker-control .ex-search-input{min-height:56px!important;border-radius:16px 0 0 16px!important;border-right:0!important;background:var(--filter-bg)!important;color:var(--ink)!important;font:inherit!important;font-size:24px!important;font-weight:900!important;text-align:center!important;line-height:1.2!important;padding:10px 14px!important}
.ex-search-input::-webkit-search-cancel-button,.ex-search-input::-webkit-search-decoration{-webkit-appearance:none!important;appearance:none!important;display:none!important}
.ex-picker-toggle{width:52px!important;min-width:52px!important;min-height:56px!important;margin:0!important;padding:0!important;border:1px solid var(--border-2)!important;border-left:0!important;border-radius:0 16px 16px 0!important;background:var(--filter-bg)!important;color:var(--ink)!important;cursor:pointer!important}
.ex-picker-toggle:hover,.ex-picker-toggle:focus-visible{background:var(--card-bg)!important;box-shadow:0 0 0 3px var(--ring)!important;outline:none!important}
.ex-picker-menu{position:absolute!important;z-index:2147482000!important;left:0!important;right:0!important;top:calc(100% + 8px)!important;max-height:min(540px,62vh)!important;overflow:auto!important;padding:9px!important;border:1px solid var(--border-2)!important;border-radius:16px!important;background:var(--card-bg)!important;color:var(--ink)!important;box-shadow:var(--shadow)!important;opacity:1!important;pointer-events:auto!important}
.ex-picker-menu[hidden]{display:none!important}
.ex-picker-group{display:grid;gap:3px;padding:5px 0 9px}
.ex-picker-group+.ex-picker-group{border-top:1px solid var(--border)!important;padding-top:10px}
.ex-picker-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 9px 7px;color:var(--ink)!important}
.ex-picker-group-head strong,.ex-picker-group-head span{font-size:18px!important}
.ex-picker-group-head span{color:var(--muted)!important;font-weight:700}
.ex-picker-option{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:44px!important;padding:9px 10px!important;border:0!important;border-radius:10px!important;background:var(--card-bg)!important;color:var(--ink)!important;font:inherit!important;font-size:18px!important;text-align:left!important;cursor:pointer!important}
.ex-picker-option:hover,.ex-picker-option:focus-visible{background:var(--filter-bg)!important;outline:none!important}
.ex-picker-option small{color:var(--muted)!important;font-size:18px!important;white-space:nowrap}
.ex-picker-empty{padding:13px;color:var(--muted)!important;font-size:18px!important}

.ex-remove-wrap{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:52px;margin:2px 0 0!important}
.ex-remove{width:52px!important;min-width:52px!important;height:52px!important;min-height:52px!important;margin:0!important;padding:0!important}

/* Details remains one right-hand panel; muscle focus follows Rule. */
.ex-details-card{display:grid!important;grid-template-columns:1fr!important;align-content:start!important;align-self:stretch!important;gap:0!important;width:100%!important;min-width:0!important;margin:0!important;padding:15px 16px!important;border:1px solid var(--border)!important;border-radius:16px!important;background:var(--filter-bg)!important;color:var(--ink)!important}
.ex-details-card::before{content:"Details";display:block;margin:0 0 10px!important;padding:0 0 9px!important;border-bottom:1px solid var(--border)!important;color:var(--ink)!important;font:inherit!important;font-size:21px!important;font-weight:900!important;line-height:1.25!important}
.ex-details-card>span{display:grid!important;grid-template-columns:minmax(145px,.62fr) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;min-width:0!important;padding:8px 0!important;border-bottom:1px solid var(--border)!important;color:var(--ink)!important;font-size:18px!important;line-height:1.4!important}
.ex-details-card>span:last-child{border-bottom:0!important}
.ex-details-card b{color:var(--muted)!important;font-size:18px!important;text-transform:none!important;letter-spacing:0!important}
.ex-details-rule,.ex-details-focus{grid-column:auto!important}

#addExerciseBtn{justify-self:start}
#myPlanGeneratorWrap .divider{margin:1rem 0!important}
#myPlanGeneratorWrap .actions-inline{gap:.7rem!important;flex-wrap:wrap!important}
.fitness-calendar-day.future-date,.routine-calendar-day.future-date,.bl-routine-day-row.future-date{opacity:.48;cursor:not-allowed}

@media(max-width:980px){
  #myPlanGeneratorWrap .bl-generator-settings-grid{grid-template-columns:1fr!important}
  #myPlanGeneratorWrap .ex-row,[data-fitness-routine-panel="calisthenics"] .ex-row{grid-template-columns:1fr!important;grid-template-areas:"exercise" "progression" "baseline" "sets" "rep" "details" "remove"!important;padding:14px!important}
  .ex-field-exercise{width:100%!important}.ex-remove-wrap{justify-self:start!important}
}
@media(max-width:680px){
  .ex-picker-control .ex-search-input{font-size:21px!important}.ex-picker-option{grid-template-columns:1fr!important}.ex-picker-option small{white-space:normal}.ex-details-card>span{grid-template-columns:1fr!important;gap:3px!important}.fitness-calisthenics-plan-manager .section-head-actions{display:grid}.fitness-calisthenics-plan-manager .action{width:100%}.calisthenics-saved-plan-head{display:grid}.calisthenics-saved-plan-head .saved-plan-actions{margin-left:0;justify-content:start}
}
