/* Plan Maestro — estilo Apple blanco, alineado con /nuevo */
#section-plan { background: #f7f9fc; color: #14213d; }
.plan-maestro { max-width: 1320px; margin: 0 auto; padding: 8px 2px 40px; }

.plan-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.plan-heading > div:first-child span { color: #0071e3; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.plan-heading h1 { margin: 6px 0 5px; font-size: 30px; letter-spacing: -.04em; color: #1d1d1f; }
.plan-heading p { margin: 0; color: #6e6e73; font-size: 14px; }
.plan-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.plan-actions small { color: #6e6e73; font-size: 10px; }
.plan-generar { border: 1px solid #0071e3; background: #0071e3; color: #fff; font: 700 12px/1 inherit; padding: 10px 15px; border-radius: 22px; cursor: pointer; }
.plan-generar:hover { background: #0060c4; }
.plan-generar:disabled { opacity: .6; cursor: default; }

.plan-card { background: #fff; border: 1px solid #e8e8ed; border-radius: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.04); padding: 18px 20px; }
.plan-card > span { color: #0071e3; font-size: 9px; font-weight: 800; letter-spacing: .12em; }

.plan-top { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.plan-count strong, .plan-progress strong { display: block; margin: 8px 0 3px; font-size: 34px; letter-spacing: -.03em; color: #1d1d1f; }
.plan-count strong small, .plan-progress strong small { font-size: 15px; color: #a1a1a6; }
.plan-count p, .plan-progress p { margin: 0; color: #1d1d1f; font-size: 13px; font-weight: 600; }
.plan-count em { display: inline-block; margin-top: 8px; font-style: normal; font-size: 11px; font-weight: 700; }
.plan-count em.ok { color: #1d8a4e; } .plan-count em.warn { color: #b25e00; }
.plan-count small { display: block; margin-top: 6px; color: #6e6e73; font-size: 10px; }
.plan-bar { margin-top: 12px; height: 8px; border-radius: 6px; background: #e8e8ed; overflow: hidden; }
.plan-bar i { display: block; height: 100%; background: #0071e3; }

.plan-timeline { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 10px; margin-bottom: 18px; position: relative; }
.plan-step { display: flex; flex-direction: column; align-items: center; gap: 7px; text-align: center; }
.plan-step i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font-style: normal; font-weight: 800; font-size: 13px; border: 2px solid #e8e8ed; background: #fff; color: #a1a1a6; }
.plan-step span { font-size: 10px; color: #6e6e73; line-height: 1.3; max-width: 140px; }
.plan-step.done i { border-color: #1d8a4e; background: #1d8a4e; color: #fff; }
.plan-step.current i { border-color: #0071e3; background: #0071e3; color: #fff; box-shadow: 0 0 0 4px rgba(0,113,227,.15); }
.plan-step.current span { color: #1d1d1f; font-weight: 700; }

.plan-fases { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.plan-fase header span { color: #0071e3; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.plan-fase header h2 { margin: 5px 0 10px; font-size: 17px; letter-spacing: -.02em; color: #1d1d1f; }
.plan-fase.is-current { border-color: #b7d6f7; box-shadow: 0 0 0 3px rgba(0,113,227,.08), 0 8px 24px rgba(0,0,0,.05); }
.plan-obj { margin: 0 0 12px; color: #1d1d1f; font-size: 13px; line-height: 1.5; font-weight: 550; }
.plan-block { margin-top: 10px; }
.plan-block b { display: block; margin-bottom: 5px; color: #6e6e73; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.plan-block ul { margin: 0; padding-left: 16px; display: grid; gap: 5px; }
.plan-block li { color: #34445c; font-size: 12px; line-height: 1.45; }
.plan-empty { margin: 0; color: #a1a1a6; font-size: 12px; font-style: italic; }

.plan-state { padding: 30px; text-align: center; color: #6e6e73; }
.plan-state strong { display: block; font-size: 14px; color: #1d1d1f; }
.plan-state p { margin: 6px 0 0; font-size: 12px; }
.plan-loading { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.plan-skeleton { height: 150px; border-radius: 18px; background: linear-gradient(90deg, #eef1f5, #f8fafc, #eef1f5); background-size: 200% 100%; animation: planPulse 1.2s infinite; }
@keyframes planPulse { to { background-position: -200% 0; } }

@media (max-width: 860px) {
  .plan-top, .plan-fases, .plan-loading { grid-template-columns: 1fr; }
  .plan-timeline { grid-auto-flow: row; grid-auto-columns: auto; }
  .plan-step { flex-direction: row; justify-content: flex-start; }
}
