/* Training Plans Library & Calendar Styles */

.mpc-plan-hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  margin: 2rem 0;
}

.mpc-plan-card {
  border: 1px solid var(--mpc-border, #e2e8f0);
  border-radius: 8px;
  background: var(--mpc-surface, #ffffff);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.mpc-plan-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.mpc-plan-card h3 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: 1.35rem;
}

.mpc-plan-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background: var(--mpc-badge-bg, #edf2f7);
  color: var(--mpc-badge-color, #2d3748);
  margin-bottom: 1rem;
  align-self: flex-start;
}

.mpc-plan-badge.beginner {
  background: #e6fffa;
  color: #234e52;
}

.mpc-plan-badge.intermediate {
  background: #ebf8ff;
  color: #2b6cb0;
}

.mpc-plan-pathways {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--mpc-border-light, #edf2f7);
}

.mpc-plan-meta-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 1rem;
  font-size: 0.9rem;
}

.mpc-plan-meta-list li {
  margin-bottom: 0.35rem;
  display: flex;
  align-items: baseline;
}

.mpc-plan-meta-list strong {
  min-width: 110px;
  color: var(--mpc-text-muted, #718096);
}

/* Plan Schedule Calendar */
.mpc-calendar-week {
  margin: 2rem 0;
  border: 1px solid var(--mpc-border, #cbd5e0);
  border-radius: 8px;
  overflow: hidden;
  background: var(--mpc-surface, #ffffff);
}

.mpc-calendar-header {
  background: var(--mpc-header-bg, #f7fafc);
  border-bottom: 1px solid var(--mpc-border, #cbd5e0);
  padding: 0.75rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.mpc-calendar-header h3 {
  margin: 0;
  font-size: 1.15rem;
}

.mpc-calendar-header .mpc-week-total {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--mpc-primary, #2b6cb0);
}

.mpc-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  divide-x: 1px solid #e2e8f0;
}

.mpc-day-cell {
  padding: 0.75rem;
  border-right: 1px solid var(--mpc-border-light, #edf2f7);
  display: flex;
  flex-direction: column;
  min-height: 120px;
}

.mpc-day-cell:last-child {
  border-right: none;
}

.mpc-day-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--mpc-text-muted, #718096);
  margin-bottom: 0.35rem;
}

.mpc-session-tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  padding: 0.15rem 0.35rem;
  border-radius: 3px;
  margin-bottom: 0.35rem;
  align-self: flex-start;
}

.mpc-session-tag.easy { background: #e6fffa; color: #234e52; }
.mpc-session-tag.workout { background: #feebc8; color: #7b341e; }
.mpc-session-tag.tempo { background: #feebc8; color: #9c4221; }
.mpc-session-tag.long { background: #ebf8ff; color: #2c5282; }
.mpc-session-tag.rest { background: #edf2f7; color: #4a5568; }
.mpc-session-tag.cross { background: #faf5ff; color: #553c9e; }
.mpc-session-tag.race { background: #fed7d7; color: #9b2c2c; }

.mpc-session-desc {
  font-size: 0.85rem;
  line-height: 1.35;
  margin-top: 0.25rem;
}

.mpc-session-distance {
  font-weight: 600;
  font-size: 0.85rem;
  margin-top: auto;
  padding-top: 0.35rem;
  color: var(--mpc-text-dark, #2d3748);
}

/* Responsive adjustment for small screens */
@media (max-width: 768px) {
  .mpc-calendar-grid {
    grid-template-columns: 1fr;
  }
  .mpc-day-cell {
    border-right: none;
    border-bottom: 1px solid var(--mpc-border-light, #edf2f7);
    min-height: auto;
  }
  .mpc-day-cell:last-child {
    border-bottom: none;
  }
}

/* Callout cards for Prerequisites and Coaching Notes */
.mpc-plan-prereqs,
.mpc-coaching-box,
.mpc-editorial-disclaimer {
  padding: 1.25rem;
  border-radius: 6px;
  margin: 1.5rem 0;
}

.mpc-plan-prereqs {
  background: #f0fff4;
  border-left: 4px solid #38a169;
}

.mpc-coaching-box {
  background: #ebf8ff;
  border-left: 4px solid #3182ce;
}

.mpc-editorial-disclaimer {
  background: #fffaf0;
  border-left: 4px solid #dd6b20;
  font-size: 0.95rem;
}

.mpc-editorial-disclaimer h3,
.mpc-coaching-box h3,
.mpc-plan-prereqs h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
}

/* Print Calendar Styles */
@media print {
  header, footer, nav, .faq-search, .mpc-editorial-intro, .tp-faq, .mpc-plan-pathways, .mpc-print-button {
    display: none !important;
  }
  body, .main, article, .content {
    background: #ffffff !important;
    color: #000000 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .mpc-calendar-week {
    page-break-inside: avoid;
    break-inside: avoid;
    border: 1px solid #000000 !important;
    margin-bottom: 1rem !important;
  }
  .mpc-calendar-header {
    background: #eeeeee !important;
    border-bottom: 1px solid #000000 !important;
  }
  .mpc-calendar-grid {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
  }
  .mpc-day-cell {
    border-right: 1px solid #cccccc !important;
    border-bottom: none !important;
    font-size: 8pt !important;
  }
  .mpc-session-tag {
    border: 1px solid #000000 !important;
    background: transparent !important;
    color: #000000 !important;
  }
  .mpc-plan-builder-card, #plan-builder-form, .mpc-export-actions {
    display: none !important;
  }
}

/* Plan Builder Form Styles */
.mpc-plan-builder-card {
  background: var(--mpc-surface, #ffffff);
  border: 1px solid var(--mpc-border, #e2e8f0);
  border-radius: var(--mpc-radius, 8px);
  padding: 1.5rem;
  margin: 1.5rem 0 2rem;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.mpc-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}

.mpc-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mpc-form-group label {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--mpc-text, #2d3748);
}

.mpc-form-group input,
.mpc-form-group select {
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--mpc-border, #cbd5e0);
  border-radius: 6px;
  font-size: 0.95rem;
  background: #ffffff;
}

.mpc-radio-group {
  display: flex;
  gap: 1rem;
  margin-top: 0.25rem;
}

.mpc-radio-label {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: normal;
  cursor: pointer;
}

.mpc-days-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.mpc-day-check-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.5rem 0.25rem;
  background: #f7fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 0.8rem;
  cursor: pointer;
}

.mpc-day-check-label input {
  margin-top: 0.25rem;
}

.mpc-form-error {
  background: #fff5f5;
  color: #c53030;
  border-left: 4px solid #e53e3e;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
}

.mpc-summary-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1rem 0 1.5rem;
}

.mpc-summary-badges .mpc-badge {
  background: #edf2f7;
  padding: 0.4rem 0.8rem;
  border-radius: 20px;
  font-size: 0.85rem;
  color: #4a5568;
}

.mpc-export-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0;
}

.mpc-day-cell.completed {
  background: #f0fff4 !important;
  opacity: 0.85;
}

.mpc-session-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  margin-top: 0.5rem;
  cursor: pointer;
}
/* Use the site's real theme variables; all new controls work in both modes. */
.mpc-plan-builder-card,.mpc-plan-card,.mpc-calendar-week,.mpc-day-cell{background:var(--surface);color:var(--text);border-color:var(--line);min-width:0}
.mpc-plan-builder-card [hidden],#plan-output[hidden],.mpc-form-grid[hidden]{display:none!important}
.mpc-plan-builder-card :is(input,select),.mpc-form-group label{background:var(--input);color:var(--text);border:1px solid var(--line)}
.mpc-plan-builder-card :is(input,select){box-sizing:border-box;max-width:100%;border-radius:9px;padding:10px;font:inherit}
.mpc-plan-builder-card label{color:var(--text);font-weight:600}
.mpc-plan-builder-card .mpc-form-grid>label{display:flex;flex-direction:column;gap:8px;min-width:0}
.mpc-plan-builder-card fieldset{border:1px solid var(--line);border-radius:12px;margin:20px 0;padding:18px;min-width:0}
.mpc-plan-builder-card fieldset>label{display:block;margin:8px 0}
.mpc-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.mpc-plan-builder-card .mpc-days-grid label{display:grid;justify-items:center;background:var(--soft);border-radius:10px;padding:12px 4px}
.mpc-primary-button,.mpc-export-actions button{background:var(--accent);color:var(--bg);border:1px solid var(--line);padding:12px 18px;border-radius:10px;font-weight:700}
.mpc-export-actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.mpc-calendar-grid{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}
.mpc-calendar-header,.mpc-summary-badges .mpc-badge{background:var(--soft);color:var(--text)}
.mpc-calendar-header{display:block;padding:20px}
.mpc-calendar-header h3{font-size:1.25rem}.mpc-calendar-header p{font-size:.9rem;margin:.6rem 0 0}
.mpc-day-cell{padding:18px;border:1px solid var(--line);border-radius:10px}.mpc-day-cell h4{margin:12px 0;font-size:1rem}
.mpc-session-desc,.mpc-session-pace{color:var(--muted);font-size:.9rem}.mpc-session-distance{display:block;font-size:.95rem}
.mpc-form-error{color:#b23a37}html[data-theme=dark] .mpc-form-error{color:#ffb0a6}
.mpc-schedule-week{margin:18px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.mpc-schedule-week>summary{padding:18px;font-weight:700;background:var(--soft)}
.mpc-static-schedule table{min-width:650px;white-space:normal;text-align:left}.mpc-static-schedule td{vertical-align:top;line-height:1.6}
.mpc-static-schedule td:last-child{min-width:250px}.mpc-static-schedule .mpc-table-wrap{max-height:none}
.mpc-plan-prereqs,.mpc-coaching-box,.mpc-editorial-disclaimer{background:var(--soft);color:var(--text)}
@media(max-width:500px){.mpc-plan-builder-card{padding:18px}.mpc-days-grid{grid-template-columns:repeat(4,1fr)}}
@media print{#wpadminbar,.mpc-header,.mpc-footer,.mpc-export-actions,#pb-status,.mpc-plan-builder-card{display:none!important}.mpc-calendar-grid{display:block!important}.mpc-day-cell{font-size:10pt!important;break-inside:avoid;border:1px solid #aaa!important;margin:5px 0}.mpc-calendar-week{break-inside:auto!important}.mpc-schedule-week{break-inside:auto}.mpc-schedule-week>div{display:block!important;content-visibility:visible!important;height:auto!important}.mpc-static-schedule table{min-width:0;white-space:normal;font-size:9pt}.mpc-static-schedule td:last-child{min-width:0}#plan-output *{color:#000!important;background:#fff!important}.mpc-session-checkbox-label{display:none}}
