:root{
  --navy:#12233f;--navy2:#1b3357;--mustard:#d5a72e;--mustard-soft:#fff6d9;
  --bg:#f4f6f9;--text:#172033;--muted:#667085;--line:#dfe4ec;--white:#fff;
  --green:#137a4c;--green-soft:#e9f7ef;--amber:#8a5a00;--amber-soft:#fff3cf;
  --red:#b3261e;--red-soft:#fff0ef;--blue-soft:#eaf1fb;
  --shadow:0 14px 34px rgba(18,35,63,.10)
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
.hero{background:var(--navy);border-bottom:6px solid var(--mustard);color:#fff}.hero-inner{width:min(930px,92vw);margin:auto;padding:26px 0;display:flex;align-items:center;gap:18px}
.brand-mark{width:84px;height:84px;flex:0 0 84px;border:4px solid var(--mustard);border-radius:19px;background:#fff;color:var(--navy);display:grid;place-items:center;line-height:1}.brand-mark span{font-size:14px;font-weight:900;letter-spacing:.09em;margin-top:10px}.brand-mark strong{font-size:31px;margin-bottom:10px}
.eyebrow{color:#f1c952;font-size:12px;font-weight:950;letter-spacing:.16em}.hero h1{margin:4px 0 5px;font-size:clamp(30px,5vw,48px);line-height:1.03;letter-spacing:-.04em}.hero p{margin:0;color:#d7e0ec;font-weight:650}
.page{width:min(930px,92vw);margin:30px auto 44px}.search-card,.student-card,.course-card,.download-card,.notice,.empty-card{background:#fff;border:1px solid #e3e7ed;border-radius:18px;box-shadow:var(--shadow)}
.search-card{padding:24px}label{display:block;margin-bottom:8px;color:var(--navy);font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.search-row{display:grid;grid-template-columns:1fr auto;gap:10px}
input{width:100%;padding:14px 15px;border:2px solid #cbd3df;border-radius:12px;font:inherit;font-size:18px;outline:none}input:focus{border-color:var(--mustard);box-shadow:0 0 0 4px rgba(213,167,46,.17)}
button{border:0;border-radius:12px;background:var(--navy);color:#fff;font:inherit;font-weight:900;padding:0 24px;min-height:52px;cursor:pointer}button:hover{background:var(--navy2)}button:disabled{opacity:.55;cursor:wait}
.help{margin-top:7px;color:var(--muted);font-size:12px}.status{min-height:22px;margin-top:11px;font-weight:800}.status.error{color:var(--red)}.status.ok{color:var(--green)}.hidden{display:none!important}
.student-card{margin-top:20px;padding:20px;background:var(--navy);color:#fff}.student-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.student-name{font-size:clamp(22px,4vw,30px);font-weight:950}.control-pill{background:var(--mustard);color:var(--navy);border-radius:999px;padding:8px 12px;font-weight:950;white-space:nowrap}.student-meta{margin-top:12px;color:#d7e0ec;font-weight:700;line-height:1.55}
.section-title{margin:24px 0 10px;color:var(--navy);font-size:23px}.cards{display:grid;gap:12px}.course-card{padding:18px;border-left:6px solid var(--navy)}.course-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.course-name{color:var(--navy);font-size:18px;font-weight:950;line-height:1.25}.badge{border-radius:999px;padding:6px 9px;font-size:10px;font-weight:950;text-transform:uppercase;white-space:nowrap}.badge.green{background:var(--green-soft);color:var(--green)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.blue{background:var(--blue-soft);color:var(--navy)}
.course-info{display:grid;grid-template-columns:2fr 1.3fr 1fr;gap:9px;margin-top:13px}.info{background:#f6f8fb;border:1px solid #e4e8ee;border-radius:10px;padding:10px}.info span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase}.info strong{display:block;margin-top:3px;font-size:14px;overflow-wrap:anywhere}
.simple-message{margin-top:12px;color:#465266;line-height:1.45;font-weight:650}.capacity-alert{margin-top:12px;border-radius:10px;padding:11px 12px;font-weight:900}.capacity-alert.warning{background:var(--amber-soft);color:var(--amber)}.capacity-alert.danger{background:var(--red-soft);color:var(--red)}
.download-card{margin-top:18px;padding:22px;border:2px solid var(--mustard)}.download-card h2{margin:0 0 6px;color:var(--navy);font-size:24px}.download-card p{margin:0;color:var(--muted);line-height:1.5}.download-list{margin:14px 0;padding:0;list-style:none;display:grid;gap:7px}.download-list li{background:#f6f8fb;border-radius:10px;padding:10px 12px;font-weight:800;color:var(--navy)}.download-summary{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.total{font-size:23px;color:var(--navy);font-weight:950}.download-button{background:var(--mustard);color:var(--navy);padding:13px 20px}.download-button:hover{background:#e1b43b}.tiny{margin-top:10px!important;font-size:11px!important}
.empty-card{margin-top:20px;padding:25px;text-align:center}.empty-card h2{margin:0 0 7px;color:var(--navy)}.empty-card p{margin:0;color:var(--muted);line-height:1.5}.notice{margin-top:20px;padding:16px 18px;color:#566274;line-height:1.5}.notice strong{color:var(--navy)}footer{text-align:center;background:#e7ebf0;color:#526071;padding:22px 12px;font-weight:800}.loader{display:inline-block;width:16px;height:16px;border:2px solid #cbd5e1;border-top-color:var(--navy);border-radius:50%;animation:spin .75s linear infinite;vertical-align:-3px;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.hero-inner{padding:20px 0}.brand-mark{width:66px;height:66px;flex-basis:66px;border-radius:14px}.brand-mark strong{font-size:24px}.search-row{grid-template-columns:1fr}.student-top,.course-head,.download-summary{display:block}.control-pill,.badge{display:inline-block;margin-top:10px}.course-info{grid-template-columns:1fr}.download-button{width:100%;margin-top:14px}.page{width:min(94vw,930px)}}
@media print{.hero,.search-card,.notice,footer,.download-card{display:none}.page{width:100%;margin:0}.student-card,.course-card{box-shadow:none}}

/* V3.5 · selección sencilla y presolicitud de bajo consumo de tinta */
.badge.gray{background:#f1f3f5;color:#4b5563}
.select-course{margin-top:14px;width:100%;min-height:44px;background:#f3f4f6;color:#172033;border:1px solid #b8c0cc;padding:10px 14px}
.select-course:hover{background:#e9ecef}
.select-course.selected{background:#e8edf3;color:#12233f;border-color:#7b8798;box-shadow:inset 0 0 0 2px #fff}
.selection-message{margin-top:14px;padding:10px 12px;border:1px solid #d8dde5;border-radius:10px;background:#f7f8fa;color:#344054;font-weight:800}
.payment-box{margin-top:14px;padding:14px;border:1px solid #cfd5de;border-radius:10px;background:#fff;color:#303846;line-height:1.55}
.payment-box strong{display:block;margin-bottom:5px;color:#172033}
.payment-note{margin-top:6px;font-weight:900}
.download-button{background:#e9ecef;color:#172033;border:1px solid #aeb6c2}
.download-button:hover{background:#dde2e8}
.download-button:disabled{background:#f1f3f5;color:#98a2b3;border-color:#d8dde5;cursor:not-allowed}
@media print{
  body{background:#fff;color:#000}
  .student-card,.course-card{background:#fff!important;color:#000!important;border:1px solid #999!important}
  .student-meta,.student-name,.course-name,.simple-message{color:#000!important}
  .control-pill,.badge{background:#fff!important;color:#000!important;border:1px solid #999!important}
}

/* V4.4 · Pasaporte al Aprendizaje */
.course-actions{display:grid;gap:9px;margin-top:14px}
.course-actions .select-course{margin-top:0}
.passport-option{margin-top:13px;padding:13px;border:1px solid #b8c0cc;border-radius:10px;background:#fafafa;color:#303846;line-height:1.45}
.passport-title{font-weight:950;color:#12233f;margin-bottom:5px}
.passport-warning{margin-top:5px;font-weight:900}
.passport-choice{background:#fff;color:#172033;border:2px solid #7b8798}
.passport-choice:hover{background:#f0f2f4}
.passport-choice.selected{background:#e3e7ec;border-color:#12233f}

/* V4.5 · Confirmación de inscripción previa en Pasaporte */
.passport-confirmation{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #c8ced7;
  font-weight:800;
  line-height:1.35;
  cursor:pointer;
}
.passport-confirmation input{
  width:18px;
  height:18px;
  margin-top:1px;
  flex:0 0 auto;
}
.passport-choice:disabled{
  opacity:.48;
  cursor:not-allowed;
}

/* V4.6 · Candado visual reforzado para empalmes */
.select-course.time-conflict,
.select-course.time-conflict:disabled{
  opacity:1;
  color:#7a1f1f;
  background:#f8eeee;
  border-color:#b98b8b;
  cursor:not-allowed;
  font-weight:900;
}

/* V4.7 · Oferta alterna en otro turno */
.alternate-offer{
  margin-top:10px;
  padding:14px;
  border:1px solid #aab3c2;
  border-radius:10px;
  background:#f7f8fa;
}
.alternate-offer[hidden]{display:none}
.alternate-title{
  font-weight:950;
  color:#12233f;
  margin-bottom:9px;
}
.alternate-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.alternate-note{
  margin:10px 0;
  font-size:.92rem;
  line-height:1.4;
  color:#374151;
}
.alternate-choice{
  background:#fff;
  color:#172033;
  border:2px solid #566173;
}
.alternate-choice.selected{
  background:#e7eaee;
  border-color:#12233f;
}
@media (max-width:640px){
  .alternate-grid{grid-template-columns:1fr}
}

/* V5.2 · Preguntas frecuentes */
.faq-shortcut{
  display:inline-block;
  margin-top:12px;
  color:var(--navy);
  font-size:13px;
  font-weight:900;
  text-decoration:none;
  border-bottom:1px solid var(--mustard);
}
.faq-shortcut:hover{color:var(--navy2)}
.faq-section{
  margin-top:24px;
  background:#fff;
  border:1px solid #e3e7ed;
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:22px;
  scroll-margin-top:18px;
}
.faq-heading h2{
  margin:3px 0 7px;
  color:var(--navy);
  font-size:26px;
}
.faq-heading p{
  margin:0 0 16px;
  color:#566274;
  line-height:1.55;
}
.faq-kicker{
  color:#9b7313;
  font-size:11px;
  font-weight:950;
  letter-spacing:.15em;
}
.faq-list{
  display:grid;
  gap:9px;
}
.faq-list details{
  border:1px solid #dfe4eb;
  border-radius:12px;
  background:#fafbfc;
  overflow:hidden;
}
.faq-list summary{
  cursor:pointer;
  padding:14px 44px 14px 15px;
  color:var(--navy);
  font-weight:900;
  position:relative;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:"+";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  font-size:22px;
  color:#7a8493;
}
.faq-list details[open] summary::after{content:"–"}
.faq-list details[open] summary{
  border-bottom:1px solid #dfe4eb;
  background:#f4f6f8;
}
.faq-list details p{
  margin:0;
  padding:13px 15px;
  color:#3f4a5a;
  line-height:1.55;
}
.faq-list details p + p{padding-top:0}
@media(max-width:700px){
  .faq-section{padding:17px}
  .faq-heading h2{font-size:23px}
  .faq-list summary{padding-right:38px}
}
@media print{
  .faq-section,.faq-shortcut{display:none!important}
}

/* V6.2 · Adeudos vigentes conciliados */
.reconciled-public-note{
  margin:18px 0 14px;
  padding:13px 15px;
  border:1px solid #a7d9bf;
  border-radius:13px;
  background:#eaf7f0;
  color:#176a43;
  font-size:13px;
  font-weight:800;
  line-height:1.5;
}
