#certificaciones-inline-container{background:transparent;color:var(--text-main);font-family:var(--font)}
.cs-shell{max-width:1100px;margin:auto}
.cs-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-lg)}
.cs-header small{color:var(--primary);font-weight:800;letter-spacing:.14em}
.cs-header h1{margin:5px 0;font-size:28px}
.cs-header p{margin:0 0 20px;color:var(--text-muted)}
.cs-toolbar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}
.cs-agregar-alumno-wrap{margin:4px 0 20px}
.cs-primary{border:0;border-radius:10px;padding:11px 18px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 6px 18px var(--primary-glow)}
.cs-primary:disabled{opacity:.5;cursor:not-allowed}
.cs-secondary{border:1px solid var(--primary);border-radius:10px;padding:10px 16px;background:var(--primary-soft);color:var(--primary);font-weight:700;cursor:pointer}
.cs-secondary:disabled{opacity:.5;cursor:not-allowed}
.cs-pdf-action{margin-left:auto}
.cs-count{font-size:12px;color:var(--text-muted)}
.cs-student{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:18px;position:relative}
.cs-student-label{display:flex;flex-direction:column;gap:2px;padding-right:36px;margin-bottom:13px}.cs-student-label span{font-size:10px;letter-spacing:.13em;color:var(--primary);font-weight:900}.cs-student-label strong{font-size:14px}
.cs-student-head{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.5fr);gap:10px;margin-bottom:16px;align-items:end}
.cs-student-head label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px;font-weight:700}
.cs-student-head input,.cs-student-head select{width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--input-bg);color:var(--text-main);box-sizing:border-box}
.cs-grade-list{display:grid;gap:14px}.cs-grade-record{border:1px solid var(--border);border-radius:11px;padding:14px;background:color-mix(in srgb,var(--bg-card) 86%,var(--primary-soft))}.cs-grade-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.cs-grade-toolbar div{display:flex;align-items:center;gap:8px}.cs-grade-toolbar small{font-size:9px;letter-spacing:.12em;color:var(--primary);font-weight:900}.cs-grade-toolbar strong{font-size:13px}.cs-remove-grade{border:0;background:transparent;color:var(--danger);font-weight:800;cursor:pointer;padding:6px 8px}.cs-grade-head{display:grid;grid-template-columns:1.15fr .65fr .55fr 1.4fr;gap:10px;margin-bottom:12px}.cs-grade-head label{display:block;font-size:11px;color:var(--text-muted);font-weight:700;margin-bottom:4px}.cs-grade-head input,.cs-grade-head select{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--input-bg);color:var(--text-main);box-sizing:border-box}.cs-grade-head .cs-f-nivel{color:var(--text-muted)}.cs-add-grade{margin-top:14px;width:100%;border-style:dashed}.cs-table-scroll{overflow-x:auto}
.cs-student table{width:100%;min-width:700px;border-collapse:collapse}
.cs-student th,.cs-student td{border:1px solid var(--border);padding:6px 8px;font-size:13px;text-align:left}
.cs-student th{background:var(--primary-soft);color:var(--primary);white-space:nowrap}
.cs-student td input{width:70px;border:1px solid var(--border);border-radius:5px;padding:5px;font-size:13px;background:var(--input-bg);color:var(--text-main);box-sizing:border-box}
.cs-student td input.cs-observacion{width:100%;min-height:34px;padding:5px 10px 5px 34px!important;line-height:1.35;background-repeat:no-repeat;background-position:11px 50%;background-size:14px 14px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>")}
.cs-remove-btn{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--danger);font-size:18px;cursor:pointer;line-height:1;padding:4px 8px}
.cs-asig-nombre-cell{display:flex;align-items:center;gap:6px}
.cs-nombre-asig-input{flex:1;min-width:0;width:auto!important;border:1px solid transparent;background:transparent;padding:4px 6px;font-size:13px;color:var(--text-main);border-radius:5px}
.cs-nombre-asig-input:hover,.cs-nombre-asig-input:focus{border-color:var(--border);background:var(--input-bg)}
.cs-del-asig-inline{flex:none;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:0;border-radius:6px;width:22px;height:22px;line-height:1;font-size:12px;cursor:pointer}
.cs-fila-agregar-asig td{border-top:1px dashed var(--border);background:var(--input-bg)}
.cs-add-asig-inline{display:flex;gap:8px;flex-wrap:wrap}
.cs-nueva-asig-inline{flex:1;min-width:180px;padding:7px 9px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--bg-card);color:var(--text-main)}
.cs-agregar-asig-inline{white-space:nowrap}
.cs-status{margin-top:14px;padding:10px 0;font-size:13px}
.cs-status.success{color:var(--success)}
.cs-status.error{color:var(--danger)}
.cs-preview{background:var(--bg-card);border:1px dashed var(--border);border-radius:10px;padding:16px;margin-top:20px}
.cs-preview-block h2{font-size:15px;text-align:center;margin:0}
.cs-preview-block h3{font-size:13px;text-align:center;color:var(--text-muted);margin:2px 0 10px}
.cs-preview-block table{width:100%;border-collapse:collapse}
.cs-preview-block th,.cs-preview-block td{border:1px solid var(--border);padding:6px 8px;font-size:13px;text-align:left}
.cs-preview-block th{background:var(--primary-soft);color:var(--primary);white-space:nowrap}
.cs-preview-divider{margin:20px 0;border:none;border-top:1px dashed var(--border)}
.cs-preview-student{border:1px solid var(--border);border-radius:10px;padding:14px}.cs-preview-student>header{margin-bottom:12px}.cs-preview-student>header small{color:var(--primary);font-weight:900;letter-spacing:.1em}.cs-preview-student>header h2{margin:3px 0;font-size:18px}.cs-preview-student>header p{margin:0;color:var(--text-muted);font-size:12px}.cs-preview-student .cs-preview-block+.cs-preview-block{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}
.cs-acta-panel{background:var(--bg-card);border:1px dashed var(--border);border-radius:12px;padding:16px;margin-bottom:20px}
.cs-acta-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cs-acta-hint{font-size:12px;color:var(--text-muted)}
.cs-acta-status{margin-top:10px;padding:6px 0;font-size:13px}
.cs-acta-status.success{color:var(--success)}
.cs-acta-status.error{color:var(--danger)}
.cs-acta-checklist{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}
.cs-acta-checklist-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.cs-acta-tabla{width:100%;border-collapse:collapse;max-height:420px;display:block;overflow-y:auto}
.cs-acta-tabla thead,.cs-acta-tabla tbody{display:table;width:100%;table-layout:fixed}
.cs-acta-tabla th,.cs-acta-tabla td{border:1px solid var(--border);padding:6px 8px;font-size:13px;text-align:left}
.cs-acta-tabla th{background:var(--primary-soft);color:var(--primary);position:sticky;top:0}
.cs-acta-tabla th:first-child,.cs-acta-tabla td:first-child{width:36px;text-align:center}

.certification-validation-modal{max-width:560px!important;text-align:left!important}.certification-validation-icon{display:grid;width:52px;height:52px;margin:0 auto 12px;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--warning,#f59e0b) 18%,var(--bg-card));color:var(--warning,#f59e0b);font-size:28px;font-weight:900}.certification-validation-copy{text-align:center}.certification-validation-copy>span{display:block;margin-bottom:6px;color:var(--warning,#f59e0b);font-size:11px;font-weight:900;letter-spacing:.14em}.certification-validation-copy h3{margin:0;color:var(--text-main);font-size:1.3rem}.certification-validation-copy p{margin:8px 0 16px;color:var(--text-muted);line-height:1.5}.certification-validation-errors{display:grid;gap:8px;max-height:min(38vh,300px);margin:0 0 18px;padding:12px;overflow:auto;list-style:none;border:1px solid color-mix(in srgb,var(--warning,#f59e0b) 35%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--warning,#f59e0b) 7%,var(--bg-card))}.certification-validation-errors li{position:relative;padding:9px 10px 9px 30px;border-radius:8px;background:var(--bg-card);color:var(--text-main);font-size:.88rem;line-height:1.45}.certification-validation-errors li::before{content:'!';position:absolute;left:10px;top:9px;color:var(--warning,#f59e0b);font-weight:900}
.cs-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em}
.cs-badge-ok{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}
.cs-badge-bad{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}
.cs-badge-neutral{background:color-mix(in srgb,var(--text-muted) 16%,transparent);color:var(--text-muted)}
.cs-acta-generar-wrap{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
@media(max-width:700px){
  .cs-card{padding:17px}
  .cs-student-head{grid-template-columns:1fr 1fr}
  .cs-grade-head{grid-template-columns:1fr 1fr}
  .cs-pdf-action{margin-left:0}
  .cs-acta-tabla{max-height:320px}

  /* [FIX-TABLA-MOVIL] La tabla de notas por alumno tenía un ancho mínimo
     fijo de 700px sin ninguna alternativa para el teléfono: para llenar
     las notas había que desplazar la tabla de lado a lado. Aquí, en vez de
     tabla, cada asignatura se muestra como una tarjeta con sus 4 campos
     (Asignatura, Promedio Anual, Recuperación, Observación) uno debajo del
     otro con su rótulo, usando los data-label agregados en
     certificaciones-module.js. La fila para agregar una asignatura nueva
     no es un dato de alumno, así que se deja fuera de esta conversión. */
  .cs-student table{min-width:0}
  .cs-student thead{display:none}
  .cs-student table,.cs-student tbody{display:block;width:100%}
  .cs-student tr:not(.cs-fila-agregar-asig){
    display:grid;grid-template-columns:1fr 1fr;
    margin-bottom:.6rem;border:1px solid var(--border);border-radius:10px;
    overflow:hidden;background:var(--bg-card)
  }
  .cs-student tr:not(.cs-fila-agregar-asig) td{
    display:block;border:0;border-bottom:1px solid var(--border);
    padding:.5rem .6rem
  }
  .cs-student tr:not(.cs-fila-agregar-asig) td::before{
    content:attr(data-label);display:block;margin-bottom:.25rem;
    color:var(--text-muted);font-size:.62rem;font-weight:800;
    text-transform:uppercase;letter-spacing:.04em
  }
  .cs-student td[data-label="Asignatura"]{grid-column:1/-1;background:var(--primary-soft);border-bottom-color:var(--border)}
  .cs-student tr:not(.cs-fila-agregar-asig) td input{width:100%}
  .cs-student tr.cs-fila-agregar-asig{display:block;border:0;background:transparent}
  .cs-student tr.cs-fila-agregar-asig td{display:block;border:0;padding:.6rem 0 0}
}
@media(max-width:480px){.cs-student-head,.cs-grade-head{grid-template-columns:1fr}.cs-grade-toolbar{align-items:flex-start}.cs-grade-toolbar div{align-items:flex-start;flex-direction:column;gap:2px}}
