/* ================================================================
   local_edumanager — estilos del plugin EduManager Virtual
   ================================================================ */

/* ----- FUNDAE (formación bonificada) ----- */
.local-edumanager-fundae-footerstrip {
    text-align: center;
    padding: 0.75rem 0 0;
    margin-top: 0.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.local-edumanager-fundae-footerstrip a {
    display: inline-block;
}
.local-edumanager-fundae-strip-logo {
    max-height: 48px;
    width: auto;
    vertical-align: middle;
}
.local-edumanager-fundae-pagehead {
    text-align: center;
}
.local-edumanager-fundae-page-logo {
    max-height: 72px;
    width: auto;
}

/* ----- Hero banner ----- */
.local-edumanager-hero {
    background: linear-gradient(135deg, #e6b800 0%, #c49a00 100%);
    color: #111;
    border-radius: 0.625rem;
    padding: 1.75rem 1.5rem;
    margin-bottom: 1.5rem;
}
.local-edumanager-hero h2 {
    color: #111;
    font-weight: 700;
    margin: 0 0 0.4rem;
    font-size: 1.4rem;
    letter-spacing: -0.01em;
}
.local-edumanager-hero p {
    margin: 0;
    opacity: 0.85;
    line-height: 1.5;
    font-size: 0.95rem;
}

/* ----- Tiles informativos del dashboard ----- */
.local-edumanager-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin-top: 1.5rem;
}
.local-edumanager-tile {
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 0.625rem;
    padding: 1.25rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: box-shadow 0.15s;
}
.local-edumanager-tile:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.local-edumanager-tile h3 { font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; color: #1a1a1a; }
.local-edumanager-tile p { margin: 0; opacity: 0.8; font-size: 0.9375rem; line-height: 1.5; }
.local-edumanager-tile .icon { color: #c49a00; margin-bottom: 0.5rem; }

/* ----- Cards de curso en el dashboard ----- */
.edumgr-section-title {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6B7280;
    margin: 1.25rem 0 0.6rem;
}
.edumgr-course-card {
    border: 1px solid rgba(0,0,0,0.09);
    border-radius: 0.5rem;
    padding: 0.875rem 1rem;
    margin-bottom: 0.5rem;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    transition: box-shadow 0.15s;
}
.edumgr-course-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.edumgr-course-card-body { flex: 1; min-width: 0; }
.edumgr-course-card-title {
    font-weight: 600;
    font-size: 0.9375rem;
    margin-bottom: 0.2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.edumgr-course-card-meta { font-size: 0.8rem; color: #777; }
.edumgr-course-card-actions { display: flex; gap: 0.4rem; flex-shrink: 0; flex-wrap: wrap; }

/* ----- Stat cards (panel de seguimiento) ----- */
.edumgr-report {
    max-width: 1200px;
    margin: 0 auto;
}
.edumgr-report-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.edumgr-report-title {
    font-weight: 800;
    font-size: 1.1rem;
    letter-spacing: -0.01em;
}
.edumgr-report-subtitle {
    margin-top: 0.15rem;
    color: #6c757d;
    font-size: 0.85rem;
}
.edumgr-report-head-right {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.edumgr-stat-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-left: 4px solid #999;
    border-radius: 0.5rem;
    padding: 0.875rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.edumgr-stat-top {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
}
.edumgr-stat-ico {
    color: rgba(26,26,26,0.45);
    font-size: 1.15rem;
}
.edumgr-stat-card.ok  { border-left-color: #2e7d32; }
.edumgr-stat-card.warn { border-left-color: #f57f17; }
.edumgr-stat-card.bad  { border-left-color: #c62828; }
.edumgr-stat-num {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    color: #1a1a1a;
}
.edumgr-stat-label { font-size: 0.8rem; color: #666; }

/* ----- Chart cards (panel de seguimiento) ----- */
.edumgr-chart-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 0.75rem;
    padding: 0.9rem 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    height: 100%;
}
.edumgr-chart-title {
    font-weight: 800;
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #495057;
    margin: 0 0 0.75rem;
}
.edumgr-charts-row .chart-area {
    max-width: 100%;
}

/* Moodle Boost: .chart-image uses 46vw on lg+; inside col-md-* that overflows and gets clipped */
.edumgr-chart-card .chart-area .chart-image {
    width: 100%;
    max-width: 100%;
    height: 260px;
    position: relative;
    margin-left: auto;
    margin-right: auto;
}

/* ----- Badges de estado semáforo ----- */
.edumgr-badge-ok, .edumgr-badge-warn, .edumgr-badge-bad {
    display: inline-block;
    border-radius: 999px;
    padding: 0.2em 0.75em;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}
.edumgr-badge-ok   { background: #e8f5e9; color: #2e7d32; }
.edumgr-badge-warn { background: #fff8e1; color: #e65100; }
.edumgr-badge-bad  { background: #ffebee; color: #c62828; }

/* ----- Tabla del report ----- */
.edumgr-report-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0.75rem 0 0.75rem;
}
.edumgr-report-controls-left {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.edumgr-report-controls-left #edumgr-report-search {
    width: min(420px, 70vw);
}
.edumgr-report-table-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
#local-edumanager-report {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.9rem;
}
#local-edumanager-report thead th {
    background: #1a1a1a;
    color: #fff;
    padding: 0.625rem 0.875rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
#local-edumanager-report thead th:after {
    content: ' ⇅';
    opacity: 0.4;
    font-size: 0.65rem;
}
#local-edumanager-report thead th.sort-asc:after  { content: ' ↑'; opacity: 1; }
#local-edumanager-report thead th.sort-desc:after { content: ' ↓'; opacity: 1; }
#local-edumanager-report tbody td {
    padding: 0.55rem 0.875rem;
    vertical-align: middle;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
#local-edumanager-report tbody tr:last-child td { border-bottom: none; }
#local-edumanager-report tbody tr:hover { filter: brightness(0.965); }
#local-edumanager-report tr.edumgr-ok   { background: #e8f5e9; }
#local-edumanager-report tr.edumgr-warn { background: #fff8e1; }
#local-edumanager-report tr.edumgr-bad  { background: #ffebee; }

/* ----- Toolbar de exportación ----- */
.edumgr-toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}
.edumgr-toolbar .edumgr-toolbar-label {
    font-size: 0.8rem;
    color: #6B7280;
    margin-right: 0.25rem;
}

/* ----- Progress bars ----- */
.edumgr-progress-wrap { margin-bottom: 0.75rem; }
.edumgr-progress-label { font-size: 0.8rem; color: #555; margin-bottom: 3px; }
.edumgr-bar-ok   .progress-bar { background-color: #43a047; }
.edumgr-bar-warn .progress-bar { background-color: #fb8c00; }
.edumgr-bar-bad  .progress-bar { background-color: #e53935; }

/* ----- Cuestionario FUNDAE ----- */
.edumgr-survey-block {
    border-left: 4px solid #e6b800;
    padding-left: 1rem;
    margin-bottom: 2rem;
}
.edumgr-survey-block-title {
    font-weight: 700;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #666;
    margin-bottom: 1rem;
}
.edumgr-question-row { margin-bottom: 1.25rem; }
.edumgr-question-text { font-size: 0.9375rem; margin-bottom: 0.5rem; }
.edumgr-likert-row {
    display: flex;
    gap: 0;
}
.edumgr-likert-option { flex: 1; }
.edumgr-likert-option input[type="radio"] { display: none; }
.edumgr-likert-option label {
    display: block;
    text-align: center;
    padding: 0.45rem 0.25rem;
    border: 1px solid #ddd;
    border-right: none;
    cursor: pointer;
    font-size: 0.78rem;
    line-height: 1.3;
    background: #fafafa;
    transition: background 0.12s, border-color 0.12s;
}
.edumgr-likert-option:last-child label { border-right: 1px solid #ddd; border-radius: 0 6px 6px 0; }
.edumgr-likert-option:first-child label { border-radius: 6px 0 0 6px; }
.edumgr-likert-option input[type="radio"]:checked + label {
    background: #e6b800;
    border-color: #c49a00;
    font-weight: 700;
    color: #111;
    z-index: 1;
    position: relative;
}
.edumgr-likert-option label:hover { background: #fff8e1; }

/* ----- Inspector FUNDAE ----- */
.path-local-edumanager .nav-tabs { margin-bottom: 1rem; }
.edumgr-inspector-summary-card {
    border: 1px solid rgba(0,0,0,0.09);
    border-radius: 0.5rem;
    padding: 0.875rem 1rem;
    background: #fff;
    margin-bottom: 0.75rem;
}
.edumgr-inspector-summary-card .card-name {
    font-weight: 600;
    font-size: 0.9375rem;
    margin-bottom: 0.5rem;
}

/* ----- Responsive ----- */
@media (max-width: 576px) {
    .edumgr-likert-row { flex-direction: column; }
    .edumgr-likert-option label {
        border-right: 1px solid #ddd;
        border-radius: 0;
        border-top: none;
    }
    .edumgr-likert-option:first-child label { border-top: 1px solid #ddd; border-radius: 6px 6px 0 0; }
    .edumgr-likert-option:last-child label { border-radius: 0 0 6px 6px; }
    .edumgr-course-card { flex-direction: column; align-items: flex-start; }
}

/* ================================================================
   DASHBOARD DEL ALUMNO
   ================================================================ */

.edumgr-dashboard { max-width: 860px; margin: 0 auto; padding-bottom: 3rem; }

/* ----- Hero ----- */
.edumgr-dash-hero {
    background: linear-gradient(135deg, #0348B4 0%, #023a96 100%);
    border-radius: 0.75rem;
    padding: 2rem 1.75rem;
    margin-bottom: 2rem;
    color: #fff;
}
.edumgr-dash-hero-inner { max-width: 600px; }
.edumgr-dash-hero-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 0.4rem;
    color: #fff;
    line-height: 1.25;
}
.edumgr-dash-hero-icon { margin-right: 0.4rem; opacity: 0.9; }
.edumgr-dash-hero-sub  { margin: 0; opacity: 0.8; font-size: 0.9375rem; }

/* ----- Encabezados de sección ----- */
.edumgr-section-heading {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #6B7280;
    margin: 2rem 0 0.75rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(0,0,0,0.07);
}

/* ----- Tarjeta de progreso por curso ----- */
.edumgr-pcard {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.09);
    border-radius: 0.75rem;
    padding: 1.25rem 1.375rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    transition: box-shadow 0.15s;
}
.edumgr-pcard:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.09); }

/* Cabecera */
.edumgr-pcard-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}
.edumgr-pcard-title-wrap { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; flex: 1; }
.edumgr-pcard-name       { margin: 0; font-size: 1rem; font-weight: 600; }
.edumgr-pcard-link       { color: #1a1a1a; text-decoration: none; }
.edumgr-pcard-link:hover { color: #0348B4; text-decoration: underline; }

/* Badge FUNDAE */
.edumgr-fundae-tag {
    display: inline-block;
    background: #e6b800;
    color: #111;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0.15em 0.55em;
    border-radius: 999px;
    white-space: nowrap;
    vertical-align: middle;
}

/* Badges de estado semáforo */
.edumgr-status-ok, .edumgr-status-warn, .edumgr-status-bad {
    display: inline-block;
    border-radius: 999px;
    padding: 0.25em 0.8em;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
.edumgr-status-ok   { background: #e8f5e9; color: #2e7d32; }
.edumgr-status-warn { background: #fff8e1; color: #e65100; }
.edumgr-status-bad  { background: #ffebee; color: #c62828; }

/* Métricas */
.edumgr-pcard-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin-bottom: 1rem;
}

/* Barra de métrica individual */
.edumgr-mbar { }
.edumgr-mbar-labelrow {
    display: flex;
    justify-content: space-between;
    margin-bottom: 3px;
}
.edumgr-mbar-label { font-size: 0.72rem; color: #666; }
.edumgr-mbar-pct   { font-size: 0.72rem; font-weight: 700; color: #1a1a1a; }
.edumgr-mbar-track {
    height: 6px;
    background: #eee;
    border-radius: 999px;
    overflow: hidden;
}
.edumgr-mbar-fill {
    height: 100%;
    border-radius: 999px;
    transition: width 0.4s ease;
}
.edumgr-mbar-ok   { background: #43a047; }
.edumgr-mbar-warn { background: #fb8c00; }
.edumgr-mbar-bad  { background: #e53935; }

/* Chips de estado */
.edumgr-pcard-chips {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.edumgr-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    font-size: 0.78rem;
    padding: 0.28em 0.7em;
    border-radius: 999px;
    background: #f0f0f0;
    color: #666;
    white-space: nowrap;
}
.edumgr-chip-ok      { background: #e8f5e9; color: #2e7d32; }
.edumgr-chip-neutral { background: #e3f2fd; color: #1565c0; }

/* Botón de acción */
.edumgr-pcard-cta { }
.edumgr-cta { font-size: 0.85rem; padding: 0.45rem 1rem; }

/* ----- Grid de diplomas ----- */
.edumgr-diploma-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 0.5rem;
}
.edumgr-diploma-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.09);
    border-radius: 0.625rem;
    padding: 1.25rem 1rem;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: box-shadow 0.15s;
}
.edumgr-diploma-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.09); }
.edumgr-diploma-card-icon {
    font-size: 2.2rem;
    color: #c62828;
    margin-bottom: 0.75rem;
}
.edumgr-diploma-card-name {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.35rem;
    line-height: 1.4;
}
.edumgr-diploma-card-date {
    font-size: 0.78rem;
    color: #777;
    margin-bottom: 0.75rem;
}
.edumgr-diploma-card-btn { }

/* ----- Estado vacío ----- */
.edumgr-empty-state {
    background: #f8f9fa;
    border-radius: 0.625rem;
    padding: 2rem;
    text-align: center;
    color: #6B7280;
    font-size: 0.95rem;
}

/* ================================================================
   PÁGINA DE VERIFICACIÓN DE DIPLOMA
   ================================================================ */

.edumgr-verify-wrap {
    max-width: 600px;
    margin: 2rem auto;
    padding: 0 1rem;
}
.edumgr-verify-card {
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.edumgr-verify-ok    { background: #f1f8f2; border: 2px solid #43a047; }
.edumgr-verify-invalid { background: #fff8e1; border: 2px solid #fb8c00; }

.edumgr-verify-icon-wrap  { margin-bottom: 0.75rem; }
.edumgr-verify-icon-ok   { color: #2e7d32; }
.edumgr-verify-icon-warn  { color: #e65100; }
.edumgr-verify-icon-bad   { color: #c62828; }

.edumgr-verify-card h2    { margin: 0 0 0.5rem; font-size: 1.3rem; }
.edumgr-verify-sub        { color: #555; margin-bottom: 1.5rem; }

.edumgr-verify-table      { margin: 0 auto 1.5rem; text-align: left; width: 100%; }
.edumgr-verify-table td:first-child { font-weight: 600; width: 40%; }
.edumgr-verify-table code { font-size: 0.78rem; word-break: break-all; }

.edumgr-verify-footer-note {
    font-size: 0.8rem;
    color: #555;
    margin-top: 1rem;
}

/* ----- Report charts ----- */
.edumgr-charts-row { align-items: stretch; }
.edumgr-chart-card {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    height: 100%;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.edumgr-chart-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: #444;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.edumgr-chart-card canvas { max-height: 260px; }

/* ----- Catálogo público de cursos ----- */
.edumgr-catalog-wrap { max-width: 1100px; margin: 0 auto; padding: 40px 20px 60px; }
.edumgr-catalog-h1 { font-size: 28px; font-weight: 700; color: #1a1a2e; margin-bottom: 8px; }
.edumgr-catalog-intro { color: #6c757d; margin-bottom: 36px; font-size: 15px; }
.edumgr-catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 24px;
}
.edumgr-catalog-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e3e6ea;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
}
.edumgr-catalog-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
    transform: translateY(-2px);
}
.edumgr-catalog-img {
    height: 160px;
    background-size: cover;
    background-position: center;
    background-color: #1a1a2e;
}
.edumgr-catalog-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e6b800;
    background: linear-gradient(135deg, #1a1a2e, #0f3460);
}
.edumgr-catalog-chips { padding: 10px 14px 0; display: flex; gap: 6px; flex-wrap: wrap; }
.edumgr-chip-info { background: #e3f2fd; color: #1565c0; }
.edumgr-catalog-body { padding: 12px 14px 8px; flex: 1; }
.edumgr-catalog-title { font-size: 16px; font-weight: 700; color: #1a1a2e; margin: 0 0 8px; line-height: 1.3; }
.edumgr-catalog-desc { font-size: 13px; color: #6c757d; line-height: 1.5; margin: 0 0 8px; }
.edumgr-catalog-dates { font-size: 12px; color: #6B7280; margin: 0; }
.edumgr-catalog-footer { padding: 12px 14px; border-top: 1px solid #f0f0f0; }
.edumgr-catalog-btn {
    background: #e6b800;
    color: #1a1a2e;
    font-weight: 700;
    border: none;
    border-radius: 6px;
    padding: 8px 18px;
    font-size: 13px;
    text-decoration: none;
    display: inline-block;
}
.edumgr-catalog-btn:hover { background: #c49a00; color: #1a1a2e; text-decoration: none; }

/* ----- Responsive dashboard ----- */
@media (max-width: 640px) {
    .edumgr-pcard-metrics { grid-template-columns: 1fr; }
    .edumgr-pcard-header  { flex-direction: column; }
    .edumgr-diploma-grid  { grid-template-columns: 1fr; }
    .edumgr-dash-hero     { padding: 1.5rem 1.25rem; }
}

/* Panel de idoneidad FUNDAE (informe) */
.edumgr-readiness-card{border-radius:10px;padding:14px 18px;margin:0 0 18px;border:1px solid #e3e6ea;background:#fff;}
.edumgr-readiness-ok{border-left:4px solid #28a745;}
.edumgr-readiness-warn{border-left:4px solid #ffc107;}
.edumgr-readiness-title{font-weight:700;margin-bottom:8px;font-size:1rem;}
.edumgr-readiness-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:4px 18px;}
.edumgr-readiness-list li{padding:2px 0;font-size:.9rem;}
.edumgr-readiness-ico-ok{color:#28a745;}
.edumgr-readiness-ico-bad{color:#dc3545;}
.edumgr-readiness-note{margin-top:8px;font-size:.85rem;color:#8a6d3b;background:#fcf8e3;border-radius:6px;padding:6px 10px;}

/* ── Dossier de auditoría del inspector ──────────────────────────────────── */
.edumgr-student-link{font-weight:600;color:#1a73e8;text-decoration:none;border-bottom:1px dotted #1a73e8;}
.edumgr-student-link:hover{color:#0f2547;border-bottom-style:solid;text-decoration:none;}
.edumgr-dossier-back a{color:#6c757d;text-decoration:none;font-size:.9rem;}
.edumgr-dossier-back a:hover{color:#1a73e8;}
.edumgr-dossier-card{background:#fff;border:1px solid #e3e6ea;border-radius:12px;padding:18px 20px;margin:0 0 18px;box-shadow:0 1px 3px rgba(15,37,71,.05);}
.edumgr-dossier-cardtitle{font-size:1rem;font-weight:700;color:#0f2547;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid #f0f2f5;}
.edumgr-dossier-cardtitle i{color:#1a73e8;}
.edumgr-dossier-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;}
.edumgr-dossier-dl dt{font-weight:600;color:#6c757d;font-size:.85rem;margin:0;}
.edumgr-dossier-dl dd{margin:0;color:#0f2547;font-size:.9rem;font-weight:500;}
.edumgr-dossier-table{width:100%;margin:0;font-size:.85rem;}
.edumgr-dossier-table thead th{background:#0f2547;color:#fff;font-weight:600;font-size:.8rem;padding:8px 10px;border:none;}
.edumgr-dossier-table tbody td{padding:7px 10px;border-bottom:1px solid #eef1f4;vertical-align:middle;}
.edumgr-dossier-table tbody tr:nth-child(even){background:#f8fafc;}
.edumgr-dossier-empty{color:#8a94a6;font-style:italic;font-size:.9rem;padding:6px 0;}

/* ══════════ Dashboard de cursos SCORM (premium) ══════════ */
/* Dashboard: sin cabecera vacía ni card blanco (contenido fluido, sin romper el footer) */
body#page-local-edumanager-dashboard #page-header{display:none!important}
body#page-local-edumanager-dashboard #region-main-box,
body#page-local-edumanager-dashboard #region-main,
body#page-local-edumanager-dashboard #topofscroll.main-inner,
body#page-local-edumanager-dashboard .main-inner{
  background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;
}
body#page-local-edumanager-dashboard #page{background:#f4f6fb!important}
.edu-dash{max-width:1300px;margin:0 auto;padding:1rem 0 2rem}
.edu-dash-head{display:flex;align-items:center;gap:16px;margin:6px 0 20px}
.edu-dash-headicon{width:56px;height:56px;border-radius:16px;background:#eaf0fb;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:24px;flex:0 0 auto}
.edu-dash-head h1{margin:0;font-size:26px;font-weight:800;color:#0f2547;letter-spacing:-.02em}
.edu-dash-head p{margin:2px 0 0;color:#6b7688;font-size:14px}

.edu-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:26px;flex-wrap:wrap;
  background:linear-gradient(120deg,#12305a 0%,#1d4ed8 55%,#2563eb 100%);color:#fff;border-radius:20px;padding:26px 30px;margin-bottom:22px;box-shadow:0 12px 30px rgba(15,37,71,.22)}
.edu-hero-ring{flex:0 0 auto}
.edu-hero-txt{flex:0 0 auto}
.edu-hero-title{font-size:19px;font-weight:800}
.edu-hero-sub{opacity:.85;font-size:13px;margin-top:3px}
.edu-hero-stats{display:flex;gap:34px;margin-left:10px}
.edu-hstat{display:flex;flex-direction:column}
.edu-hstat .n{font-size:30px;font-weight:800;line-height:1}
.edu-hstat .l{font-size:12px;opacity:.85;margin-top:6px;white-space:nowrap}
.edu-hstat .l i{margin-right:4px}
.edu-hero-art{margin-left:auto;font-size:96px;opacity:.16}

.edu-filters{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #e6ebf2;margin-bottom:20px}
.edu-fbtn{background:none;border:0;padding:10px 16px;font-weight:600;color:#6b7688;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.edu-fbtn.on{color:#2563eb;border-bottom-color:#2563eb}
.edu-fbtn:hover{color:#2563eb}

.edu-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:20px}
.edu-empty{grid-column:1/-1;text-align:center;color:#8a94a6;padding:40px;background:#fff;border-radius:16px;border:1px dashed #d9e0ea}
.edu-card{background:#fff;border:1px solid #e9edf3;border-radius:18px;overflow:hidden;box-shadow:0 2px 10px rgba(15,37,71,.05);transition:transform .16s,box-shadow .16s;display:flex;flex-direction:column}
.edu-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(15,37,71,.14)}
.edu-card-top{position:relative;height:120px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);font-size:46px}
.edu-card-badge{position:absolute;top:12px;right:12px;color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.edu-card-check{position:absolute;bottom:-16px;left:18px;width:34px;height:34px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;border:3px solid #fff;font-size:14px}
.edu-card-body{padding:18px 18px 16px;display:flex;flex-direction:column;flex:1}
.edu-card-body h3{margin:0 0 6px;font-size:15px;font-weight:700;color:#0f2547;line-height:1.3;min-height:40px}
.edu-card-tag{font-size:12px;color:#8a94a6;margin-bottom:12px}
.edu-card-bar{height:7px;border-radius:20px;background:#eef1f6;overflow:hidden}
.edu-card-bar>i{display:block;height:100%;border-radius:20px}
.edu-card-pct{font-size:12px;color:#6b7688;margin:7px 0 12px}
.edu-card-meta{display:flex;justify-content:space-between;font-size:12px;color:#6b7688;margin-bottom:14px;gap:8px}
.edu-card-meta i{margin-right:3px}
.edu-card-btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;padding:11px;font-weight:700;font-size:13px;text-decoration:none;transition:.15s}
.edu-card-btn.solid{background:#2563eb;color:#fff}
.edu-card-btn.solid:hover{background:#1d4fd7;color:#fff;text-decoration:none}
.edu-card-btn.ghost{background:#eef2fb;color:#2563eb;border:1px solid #dbe4fb}
.edu-card-btn.ghost:hover{background:#dbe4fb;color:#1d4fd7;text-decoration:none}

.edu-info{display:flex;gap:16px;align-items:center;background:#f3f7ff;border:1px solid #e0eafd;border-radius:16px;padding:18px 22px;margin-top:26px}
.edu-info-icon{width:46px;height:46px;border-radius:12px;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto}
.edu-info strong{color:#0f2547}
.edu-info p{margin:3px 0 0;color:#6b7688;font-size:13px}
@media(max-width:700px){.edu-hero-stats{gap:20px;margin:0}.edu-hero-art{display:none}.edu-dash-head h1{font-size:22px}}

/* Acciones por rol en el dashboard */
.edu-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.edu-action{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:16px 20px;text-decoration:none;flex:1;min-width:300px;box-shadow:0 2px 10px rgba(15,37,71,.05);transition:transform .15s,box-shadow .15s}
.edu-action:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,37,71,.12);text-decoration:none}
.edu-action-ico{width:48px;height:48px;border-radius:13px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;flex:0 0 auto}
.edu-action-txt{display:flex;flex-direction:column;flex:1}
.edu-action-txt strong{color:#0f2547;font-size:15px}
.edu-action-txt small{color:#6b7688;font-size:12px;margin-top:2px}
.edu-action-arrow{color:#9aa6b8}

/* ── Barra de acceso rápido EduManager (tutor / inspector) ──────────────────
   Antes se inyectaba como <style> en el pie de cada página de curso. */
#edumgr-quickbar {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    align-items: center;
    background: #1e3a5f;
    border-radius: 40px;
    padding: 10px 20px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .35);
    z-index: 1030;
    white-space: nowrap;
    max-width: calc(100vw - 24px);
    overflow-x: auto;
}
.edumgr-quickbar-btn {
    color: #fff !important;
    text-decoration: none !important;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 14px;
    background: rgba(255, 255, 255, .12);
    border-radius: 20px;
    transition: background .15s;
}
.edumgr-quickbar-btn:hover,
.edumgr-quickbar-btn:focus {
    background: rgba(255, 255, 255, .25) !important;
}
.edumgr-quickbar-insp { background: rgba(37, 99, 235, .5) !important; }
.edumgr-quickbar-courses { background: rgba(15, 52, 96, .6) !important; }
@media print {
    #edumgr-quickbar { display: none; }
}


/* ==========================================================================
   Panel del alumno (dashboard.php) — layout propio sobre «embedded»
   ========================================================================== */
.edx{
    --s-deep:#0B1220; --s-side:#111C33; --s-navy:#0F3460; --s-blue:#2563EB;
    --s-gold:#E6B800; --s-ink:#101828; --s-body:#475467; --s-mut:#667085;
    --s-line:#E4E7EC; --s-bg:#F6F8FC;
    display:grid; grid-template-columns:250px 1fr; min-height:100vh;
    background:var(--s-bg); font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.edx *,.edx *::before,.edx *::after{ box-sizing:border-box; }
#page-local-edumanager-dashboard #page,
#page-local-edumanager-dashboard #region-main,
#page-local-edumanager-dashboard .main-inner{ padding:0!important; margin:0!important; max-width:none!important; background:none!important; border:0!important; }
#page-local-edumanager-dashboard body,#page-local-edumanager-dashboard{ background:var(--s-bg); }

/* ── Barra lateral ── */
.edx-side{ background:var(--s-side); color:#fff; padding:20px 16px; display:flex; flex-direction:column; gap:18px; }
.edx-brand{ display:flex; gap:11px; align-items:center; text-decoration:none!important; padding:4px 6px 14px; }
.edx-brand-mark{ width:38px;height:38px;border-radius:11px;background:var(--s-gold);color:#111C33;
    display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex:none; }
.edx-brand-txt strong{ display:block;color:#fff;font-size:.98rem;font-weight:700;letter-spacing:-.02em; }
.edx-brand-txt small{ display:block;color:rgba(255,255,255,.45);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase; }
.edx-nav{ display:flex; flex-direction:column; gap:2px; }
.edx-nav a{ display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;
    color:rgba(255,255,255,.72)!important;text-decoration:none!important;font-size:.9rem;font-weight:500; }
.edx-nav a i{ width:17px;font-size:.92rem;opacity:.85; }
.edx-nav a:hover{ background:rgba(255,255,255,.07); color:#fff!important; }
.edx-nav a.on{ background:rgba(37,99,235,.22); color:#fff!important; box-shadow:inset 3px 0 0 var(--s-gold); }
.edx-badge-n{ margin-left:auto;background:var(--s-blue);color:#fff;font-size:.68rem;font-weight:700;
    border-radius:99px;padding:1px 7px; }

.edx-sidecard{ background:linear-gradient(160deg,#152648,#0F3460); border:1px solid rgba(255,255,255,.08);
    border-radius:14px; padding:16px; }
.edx-sidecard-t{ font-size:.78rem;color:rgba(255,255,255,.62); }
.edx-sidecard-n{ font-size:2rem;font-weight:800;letter-spacing:-.03em;margin:2px 0 2px;color:#fff; }
.edx-sidecard-s{ font-size:.75rem;color:rgba(255,255,255,.55);margin-bottom:11px; }
.edx-sidecard-link{ display:inline-flex;align-items:center;gap:6px;margin-top:11px;
    font-size:.78rem;color:#93C5FD!important;text-decoration:none!important; }
.edx-bar{ height:7px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden; }
.edx-bar i{ display:block;height:100%;border-radius:99px;background:var(--s-blue); }
.edx-bar.sm{ height:6px;background:var(--s-line); }
.edx-bar.sm i{ background:var(--s-blue); }

.edx-cal{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
    border-radius:14px; padding:14px; }
.edx-cal-head{ display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:rgba(255,255,255,.72);margin-bottom:8px; }
.edx-cal-head a{ color:rgba(255,255,255,.45)!important; font-size:.7rem; }
.edx-cal-month{ font-size:.82rem;font-weight:600;color:#fff;text-align:center;margin-bottom:8px; }
.edx-cal-grid{ display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center; }
.edx-cal-grid span{ font-size:.66rem;color:rgba(255,255,255,.62);padding:4px 0;border-radius:6px; }
.edx-cal-grid .dow{ color:rgba(255,255,255,.34);font-weight:600; }
.edx-cal-grid .today{ background:var(--s-blue);color:#fff;font-weight:700; }
.edx-cal-grid .ev{ background:rgba(230,184,0,.22);color:var(--s-gold);font-weight:600; }
.edx-cal-next{ margin-top:10px;padding:9px 10px;border-radius:9px;background:rgba(37,99,235,.16);
    border-left:3px solid var(--s-blue); }
.edx-cal-next strong{ display:block;font-size:.76rem;color:#fff; }
.edx-cal-next small{ font-size:.7rem;color:rgba(255,255,255,.55); }
.edx-cal-next.empty{ background:rgba(255,255,255,.05);border-left-color:rgba(255,255,255,.18); }

/* ── Barra superior ── */
.edx-main{ display:flex; flex-direction:column; min-width:0; }
.edx-top{ background:#fff;border-bottom:1px solid var(--s-line);display:flex;align-items:center;
    justify-content:space-between;gap:20px;padding:0 22px;min-height:62px;flex-wrap:wrap; }
.edx-tabs{ display:flex;gap:4px;flex-wrap:wrap; }
.edx-tabs a{ display:flex;align-items:center;gap:7px;padding:19px 13px;font-size:.88rem;font-weight:550;
    color:var(--s-body)!important;text-decoration:none!important;border-bottom:2px solid transparent; }
.edx-tabs a i{ font-size:.85rem;color:var(--s-mut); }
.edx-tabs a:hover{ color:var(--s-navy)!important; }
.edx-tabs a.on{ color:var(--s-navy)!important;border-bottom-color:var(--s-blue);font-weight:650; }
.edx-top-right{ display:flex;align-items:center;gap:14px;margin-left:auto; }
.edx-search{ position:relative; }
.edx-search i{ position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--s-mut);font-size:.82rem; }
.edx-search input{ border:1px solid var(--s-line);border-radius:99px;padding:9px 16px 9px 34px;
    font-size:.85rem;width:230px;background:var(--s-bg);color:var(--s-ink); }
.edx-search input:focus{ outline:2px solid var(--s-blue);outline-offset:0;background:#fff; }
.edx-bell{ position:relative;color:var(--s-mut)!important;font-size:1.02rem;padding:6px; }
.edx-bell em{ position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:#EF4444; }
.edx-user{ display:flex;align-items:center;gap:9px;text-decoration:none!important; }
.edx-user img,.edx-avatar{ width:36px;height:36px;border-radius:50%;object-fit:cover; }
.edx-user strong{ display:block;font-size:.85rem;color:var(--s-ink);font-weight:650;line-height:1.2; }
.edx-user small{ display:block;font-size:.74rem;color:var(--s-mut); }

/* ── Cuerpo ── */
.edx-body{ padding:22px; }
.edx-sec{ display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 14px; }
.edx-sec h2{ font-size:1.2rem;font-weight:750;color:var(--s-ink);margin:0;letter-spacing:-.02em; }
.edx-sec a{ font-size:.85rem;font-weight:600;color:var(--s-blue)!important;text-decoration:none!important; }

/* Hero */
.edx-hero{ background:linear-gradient(120deg,#0B1220 0%,#12294D 55%,#173B6B 100%);border-radius:18px;
    padding:32px 34px;display:grid;grid-template-columns:1fr 430px;gap:26px;align-items:center;
    position:relative;overflow:hidden;color:#fff; }
@media (max-width:1100px){ .edx-hero{ grid-template-columns:1fr; } }
.edx-hola{ font-size:1.05rem;color:rgba(255,255,255,.80);margin-bottom:8px; }
.edx-hero h1{ color:#fff!important;font-size:clamp(1.7rem,2.7vw,2.3rem);font-weight:800;
    letter-spacing:-.03em;line-height:1.2;margin:0 0 14px; }
.edx-hero p{ color:rgba(255,255,255,.74);margin:0 0 22px;max-width:44ch;font-size:.96rem; }
.edx-hero-btns{ display:flex;gap:11px;flex-wrap:wrap; }
.edx-btn{ display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:9px;
    font-weight:650;font-size:.92rem;text-decoration:none!important;transition:transform .16s ease,background .16s ease; }
.edx-btn:hover{ transform:translateY(-2px); }
.edx-btn.primary{ background:var(--s-blue);color:#fff!important; }
.edx-btn.primary:hover{ background:#1D4ED8; }
.edx-btn.ghost{ background:rgba(255,255,255,.10);color:#fff!important;border:1px solid rgba(255,255,255,.22); }
.edx-btn.sm{ padding:9px 18px;font-size:.87rem; }
.edx-btn.link{ color:var(--s-blue)!important;padding:9px 4px; }
.edx-hero-r{ position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start; }
.edx-kpi,.edx-streak{ background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);
    border-radius:14px;padding:15px 16px;position:relative;z-index:2; }
.edx-kpi{ grid-column:1; }
.edx-streak{ grid-column:2; }
.edx-kpi-t{ font-size:.76rem;color:rgba(255,255,255,.62); }
.edx-kpi-n{ font-size:1.5rem;font-weight:800;color:#fff;margin:3px 0 1px;letter-spacing:-.02em; }
.edx-kpi-s{ font-size:.73rem;color:rgba(255,255,255,.52); }
.edx-spark{ width:100%;height:40px;margin-top:8px;display:block; }
.edx-hero-art{ grid-column:1 / -1;justify-self:center;width:290px;opacity:.95;margin-top:4px; }
.edx-hero-art svg{ width:100%;height:auto; }

/* Tarjetas de curso */
.edx-courses{ display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:16px; }
.edx-course{ background:#fff;border:1px solid var(--s-line);border-radius:14px;overflow:hidden;
    box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 22px rgba(16,24,40,.05);
    transition:transform .2s ease,box-shadow .2s ease; }
.edx-course:hover{ transform:translateY(-4px);box-shadow:0 16px 36px rgba(16,24,40,.12); }
.edx-course-top{ height:86px;display:flex;align-items:center;justify-content:space-between;padding:14px; }
.edx-course-top i{ font-size:1.7rem;color:rgba(255,255,255,.85); }
.edx-course.t0 .edx-course-top{ background:linear-gradient(135deg,#0B1220,#1E3A5F); }
.edx-course.t1 .edx-course-top{ background:linear-gradient(135deg,#064E3B,#0B7A57); }
.edx-course.t2 .edx-course-top{ background:linear-gradient(135deg,#3B0764,#5B21B6); }
.edx-course.t3 .edx-course-top{ background:linear-gradient(135deg,#78350F,#B45309); }
.edx-chip{ background:rgba(255,255,255,.22);color:#fff;font-size:.68rem;font-weight:650;
    padding:4px 9px;border-radius:99px;white-space:nowrap; }
.edx-course-b{ padding:14px 16px 18px; }
.edx-course-b h3{ font-size:.94rem;line-height:1.4;margin:0 0 12px;min-height:2.6em; }
.edx-course-b h3 a{ color:var(--s-ink)!important;text-decoration:none!important;font-weight:650;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.edx-course-pct{ font-size:.76rem;color:var(--s-mut);margin:7px 0 11px; }
.edx-course-m{ display:flex;justify-content:space-between;font-size:.74rem;color:var(--s-mut);gap:8px; }
.edx-course-m i{ margin-right:4px; }

/* Continuar aprendiendo */
.edx-split{ display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start; }
@media (max-width:1100px){ .edx-split{ grid-template-columns:1fr; } }
.edx-cont{ background:#fff;border:1px solid var(--s-line);border-radius:14px;display:grid;
    grid-template-columns:250px 1fr;gap:0;overflow:hidden;box-shadow:0 8px 22px rgba(16,24,40,.05); }
@media (max-width:700px){ .edx-cont{ grid-template-columns:1fr; } }
.edx-cont-art{ position:relative;background:linear-gradient(135deg,#0B1220,#1E3A5F);min-height:150px;
    display:flex;align-items:center;justify-content:center;text-decoration:none!important; }
.edx-cont-bg{ font-size:3rem;color:rgba(255,255,255,.10); }
.edx-play{ position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);
    color:#0B1220;display:flex;align-items:center;justify-content:center;font-size:1rem;
    box-shadow:0 6px 18px rgba(0,0,0,.30); }
.edx-cont-b{ padding:18px 20px; }
.edx-cont-b h3{ font-size:1.02rem;font-weight:700;color:var(--s-ink);margin:0 0 6px; }
.edx-cont-mod{ font-size:.85rem;color:var(--s-body);margin-bottom:12px; }
.edx-cont-warn{ color:#B45309; }
.edx-cont-btns{ display:flex;align-items:center;gap:10px;margin-top:14px; }

/* Panel lateral derecho */
.edx-panel{ background:#fff;border:1px solid var(--s-line);border-radius:14px;padding:16px;
    box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edx-panel-h{ font-weight:700;color:var(--s-ink);font-size:.98rem;margin-bottom:10px; }
.edx-panel-f{ display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:.83rem;
    font-weight:600;color:var(--s-blue)!important;text-decoration:none!important; }
.edx-row{ display:flex;align-items:center;gap:11px;padding:10px 8px;border-radius:9px;
    text-decoration:none!important;color:inherit!important; }
.edx-row:hover{ background:var(--s-bg); }
.edx-row-i{ width:34px;height:34px;border-radius:9px;background:#EAF1FB;color:var(--s-navy);
    display:flex;align-items:center;justify-content:center;flex:none;font-size:.85rem; }
.edx-row-i.ok{ background:#E7F6F1;color:#0B7A57; }
.edx-row-t{ flex:1;min-width:0; }
.edx-row-t strong{ display:block;font-size:.86rem;font-weight:600;color:var(--s-ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.edx-row-t small{ display:block;font-size:.75rem;color:var(--s-mut); }
.edx-row-d{ font-size:.74rem;color:var(--s-mut);flex:none; }

/* Próximas actividades */
.edx-next{ display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px; }
.edx-nextc{ display:flex;gap:12px;background:#fff;border:1px solid var(--s-line);border-radius:12px;
    padding:14px 16px;text-decoration:none!important;color:inherit!important;
    box-shadow:0 6px 18px rgba(16,24,40,.04);transition:transform .18s ease; }
.edx-nextc:hover{ transform:translateY(-3px); }
.edx-nextc strong{ display:block;font-size:.9rem;color:var(--s-ink);font-weight:650;margin:2px 0; }
.edx-nextc small{ display:block;font-size:.75rem;color:var(--s-mut); }
.edx-nextc small.d{ color:var(--s-blue);font-weight:600;margin-top:4px; }

/* Estados vacíos */
.edx-empty{ text-align:center;padding:38px 20px;color:var(--s-mut);background:#fff;
    border:1px dashed var(--s-line);border-radius:14px; }
.edx-empty i{ font-size:1.8rem;color:#CBD5E1;display:block;margin-bottom:10px; }
.edx-empty p{ margin:0;font-size:.92rem; }
.edx-empty.sm{ padding:22px 14px;border:0; }

@media (max-width:900px){
    .edx{ grid-template-columns:1fr; }
    .edx-side{ position:static; }
    .edx-tabs{ display:none; }
}

/* ── Barra lateral compartida: progreso y calendario ─────────────────────── */
.edu-rail-prog{ background:linear-gradient(160deg,#152648,#0F3460); border:1px solid rgba(255,255,255,.08);
    border-radius:14px; padding:16px; margin-top:16px; }
.edu-rail-prog .t{ font-size:.78rem; color:rgba(255,255,255,.62); }
.edu-rail-prog .n{ font-size:2rem; font-weight:800; letter-spacing:-.03em; margin:2px 0; color:#fff; }
.edu-rail-prog .s{ font-size:.75rem; color:rgba(255,255,255,.55); margin-bottom:11px; }
.edu-rail-prog .s2{ font-size:.73rem; color:rgba(255,255,255,.5); margin-top:9px; }
.edu-rail-prog .lnk{ display:inline-flex; align-items:center; gap:6px; margin-top:10px;
    font-size:.78rem; color:#93C5FD!important; text-decoration:none!important; }
.edu-rail-bar{ height:7px; border-radius:99px; background:rgba(255,255,255,.14); overflow:hidden; }
.edu-rail-bar i{ display:block; height:100%; border-radius:99px; background:#2563EB; }

.edu-rail-cal{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
    border-radius:14px; padding:14px; margin-top:14px; }
.edu-rail-cal .h{ display:flex; justify-content:space-between; align-items:center;
    font-size:.8rem; color:rgba(255,255,255,.72); margin-bottom:8px; }
.edu-rail-cal .h a{ color:rgba(255,255,255,.45)!important; font-size:.7rem; }
.edu-rail-cal .m{ font-size:.82rem; font-weight:600; color:#fff; text-align:center; margin-bottom:8px; }
.edu-rail-cal .g{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
.edu-rail-cal .g span{ font-size:.66rem; color:rgba(255,255,255,.62); padding:4px 0; border-radius:6px; }
.edu-rail-cal .g .dow{ color:rgba(255,255,255,.34); font-weight:600; }
.edu-rail-cal .g .today{ background:#2563EB; color:#fff; font-weight:700; }
.edu-rail-cal .g .ev{ background:rgba(230,184,0,.22); color:#E6B800; font-weight:600; }
.edu-rail-next{ margin-top:10px; padding:9px 10px; border-radius:9px;
    background:rgba(37,99,235,.16); border-left:3px solid #2563EB; }
.edu-rail-next strong{ display:block; font-size:.76rem; color:#fff; }
.edu-rail-next small{ font-size:.7rem; color:rgba(255,255,255,.55); }
.edu-rail-next.empty{ background:rgba(255,255,255,.05); border-left-color:rgba(255,255,255,.18); }

/* El panel usa la barra compartida, que es position:fixed y por tanto está
   fuera del flujo: la rejilla de dos columnas metía el contenido debajo de
   ella. Se pasa a bloque con hueco reservado a la izquierda. */
.edx{ display:block !important; grid-template-columns:none !important; padding-inline-start:250px; }
.edx-top{ justify-content:flex-end; }
.edx-top-left{ flex:1; }
@media (max-width:991px){ .edx{ padding-inline-start:0; } }

/* Los días del calendario ahora son enlaces a la vista del día. */
.edu-rail-cal .g a{ display:block; font-size:.66rem; color:rgba(255,255,255,.62);
    padding:4px 0; border-radius:6px; text-decoration:none!important; }
.edu-rail-cal .g a:hover{ background:rgba(255,255,255,.10); color:#fff; }
.edu-rail-cal .g a.today{ background:#2563EB; color:#fff!important; font-weight:700; }
.edu-rail-cal .g a.ev{ background:rgba(230,184,0,.22); color:#E6B800!important; font-weight:600; }
.edu-rail-cal .g a.ev:hover{ background:rgba(230,184,0,.34); }

/* ==========================================================================
   Página «Mis cursos» (courses.php)
   ========================================================================== */
.edu-courses .edx-body{ padding:22px 24px 40px; }
.edu-cwrap{ display:grid; grid-template-columns:1fr 340px; gap:22px; align-items:start; }
@media (max-width:1200px){ .edu-cwrap{ grid-template-columns:1fr; } }
.edu-pagetitle{ font-size:1rem; font-weight:700; color:#101828; }
.edu-h1{ font-size:1.6rem; font-weight:800; color:#101828; letter-spacing:-.03em; margin:0 0 18px; }

.edu-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px;
    flex-wrap:wrap; margin-bottom:18px; }
.edu-tabs{ display:flex; gap:4px; background:#fff; border:1px solid #E4E7EC; border-radius:12px; padding:5px; }
.edu-tabs a{ padding:8px 14px; border-radius:9px; font-size:.87rem; font-weight:600;
    color:#475467!important; text-decoration:none!important; white-space:nowrap; }
.edu-tabs a:hover{ background:#F6F8FC; }
.edu-tabs a.on{ background:#0F3460; color:#fff!important; }
.edu-sort select{ border:1px solid #E4E7EC; border-radius:10px; padding:9px 14px;
    font-size:.87rem; background:#fff; color:#101828; }

.edu-crow{ display:grid; grid-template-columns:180px 1fr auto; gap:20px; align-items:center;
    background:#fff; border:1px solid #E4E7EC; border-radius:16px; padding:16px;
    margin-bottom:14px; box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 22px rgba(16,24,40,.05);
    transition:transform .18s ease, box-shadow .18s ease; }
.edu-crow:hover{ transform:translateY(-3px); box-shadow:0 16px 36px rgba(16,24,40,.12); }
@media (max-width:800px){ .edu-crow{ grid-template-columns:1fr; } }
.edu-cthumb{ display:flex; align-items:center; justify-content:center; height:118px;
    border-radius:12px; text-decoration:none!important; }
.edu-cthumb i{ font-size:2rem; color:rgba(255,255,255,.34); }
.edu-crow-top{ display:flex; gap:8px; align-items:center; margin-bottom:8px; }
.edu-tag{ background:#FFFBEA; color:#7A5C00; font-size:.68rem; font-weight:700;
    letter-spacing:.06em; padding:4px 9px; border-radius:99px; }
.edu-chip{ font-size:.72rem; font-weight:650; padding:4px 11px; border-radius:99px; margin-left:auto; }
.edu-chip.ok{ background:#E7F6F1; color:#0B7A57; }
.edu-chip.go{ background:#EAF1FB; color:#123A6B; }
.edu-chip.wait{ background:#F2F4F7; color:#667085; }
.edu-cbody h3{ font-size:1.08rem; font-weight:700; margin:0 0 12px; }
.edu-cbody h3 a{ color:#101828!important; text-decoration:none!important; }
.edu-cbody h3 a:hover{ color:#0F3460!important; }
.edu-cprog{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.edu-cbar{ flex:1; height:8px; border-radius:99px; background:#E4E7EC; overflow:hidden; }
.edu-cbar i{ display:block; height:100%; border-radius:99px; background:#0B7A57; }
.edu-cprog span{ font-size:.82rem; color:#667085; white-space:nowrap; }
.edu-cprog strong{ color:#101828; }
.edu-cmeta{ display:flex; flex-wrap:wrap; gap:22px; }
.edu-cmeta span{ display:flex; flex-direction:column; font-size:.8rem; color:#667085; position:relative; padding-left:20px; }
.edu-cmeta span i{ position:absolute; left:0; top:2px; color:#667085; font-size:.82rem; }
.edu-cmeta small{ font-size:.72rem; color:#667085; }
.edu-cmeta b{ font-size:.85rem; color:#101828; font-weight:600; }
.edu-caction{ padding-right:6px; }

/* Panel derecho */
.edu-caside{ display:flex; flex-direction:column; gap:16px; }
.edx-panel-lnk{ float:right; font-size:.78rem; font-weight:600; color:#2563EB!important; text-decoration:none!important; }
.edu-ev{ display:flex; align-items:center; gap:12px; padding:10px 6px; border-radius:10px;
    text-decoration:none!important; color:inherit!important; }
.edu-ev:hover{ background:#F6F8FC; }
.edu-ev-d{ width:46px; text-align:center; background:#F2F4F7; border-radius:10px; padding:6px 0; flex:none; }
.edu-ev-d strong{ display:block; font-size:1rem; color:#101828; line-height:1; }
.edu-ev-d small{ display:block; font-size:.62rem; color:#667085; letter-spacing:.06em; }
.edu-ev-t{ flex:1; min-width:0; }
.edu-ev-t strong{ display:block; font-size:.86rem; color:#101828; font-weight:600;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-ev-t small{ display:block; font-size:.75rem; color:#667085; }
.edu-ev-h{ font-size:.78rem; color:#667085; flex:none; }

.edu-streak-n{ font-size:1.7rem; font-weight:800; color:#101828; letter-spacing:-.02em; }
.edu-streak-n strong{ color:#B45309; }
.edu-streak-s{ font-size:.82rem; color:#667085; margin-bottom:14px; }
.edu-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; text-align:center; }
.edu-week span{ display:flex; flex-direction:column; align-items:center; gap:5px; }
.edu-week em{ font-style:normal; font-size:.7rem; color:#667085; }
.edu-week i{ font-size:1.05rem; color:#E4E7EC; }
.edu-week .ok i{ color:#0B7A57; }
.edu-week .fut i{ color:#F2F4F7; }

/* ==========================================================================
   «Mis certificados» (certificates.php)
   ========================================================================== */
.edu-certhero{ background:linear-gradient(120deg,#0B1220 0%,#12294D 55%,#173B6B 100%);
    border-radius:18px; padding:28px 32px; color:#fff; display:grid;
    grid-template-columns:1fr 240px; gap:24px; align-items:center; margin-bottom:22px;
    position:relative; overflow:hidden; }
@media (max-width:900px){ .edu-certhero{ grid-template-columns:1fr; } }
.edu-eyebrow{ font-size:.82rem; color:rgba(255,255,255,.66); margin-bottom:6px; }
.edu-certhero h1{ color:#fff!important; font-size:clamp(1.5rem,2.4vw,2rem); font-weight:800;
    letter-spacing:-.03em; margin:0 0 8px; }
.edu-certhero h1 i{ color:#E6B800; font-size:.9em; margin-left:6px; }
.edu-certhero p{ color:rgba(255,255,255,.74); margin:0 0 20px; font-size:.95rem; max-width:56ch; }
.edu-certstats{ display:flex; flex-wrap:wrap; gap:0; }
.edu-certstats div{ padding:0 22px; border-left:1px solid rgba(255,255,255,.14); }
.edu-certstats div:first-child{ padding-left:0; border-left:0; }
.edu-certstats i{ color:rgba(255,255,255,.5); font-size:.8rem; margin-right:6px; }
.edu-certstats small{ font-size:.74rem; color:rgba(255,255,255,.62); }
.edu-certstats b{ display:block; font-size:1.35rem; font-weight:800; color:#fff; margin-top:2px; }
.edu-certhero-art{ justify-self:center; width:220px; }
.edu-certhero-art svg{ width:100%; height:auto; }

.edu-certrow .edu-cthumb{ position:relative; }
.edu-cstate{ position:absolute; top:8px; left:8px; font-size:.6rem; font-weight:800;
    letter-spacing:.08em; padding:4px 8px; border-radius:6px; background:rgba(0,0,0,.45); color:#fff; }
.edu-cstate.obtenidos{ background:#0B7A57; }
.edu-cstate.pendientes{ background:#B45309; }
.edu-certsub{ font-size:.85rem; color:#667085; margin-bottom:12px; }
.edu-cmeta b a{ color:#2563EB!important; text-decoration:none!important; }

.edu-sum{ list-style:none; margin:0; padding:0; }
.edu-sum li{ display:flex; justify-content:space-between; align-items:center;
    padding:9px 0; border-bottom:1px solid #F2F4F7; font-size:.86rem; }
.edu-sum li:last-child{ border-bottom:0; }
.edu-sum span{ color:#667085; }
.edu-sum span i{ width:16px; color:#667085; margin-right:6px; }
.edu-sum b{ color:#101828; font-weight:650; }

.edu-tip{ display:flex; gap:14px; align-items:flex-start; }
.edu-tip-i{ width:40px; height:40px; border-radius:11px; background:#EAF1FB; color:#0F3460;
    display:flex; align-items:center; justify-content:center; flex:none; }
.edu-tip strong{ display:block; font-size:.92rem; color:#101828; margin-bottom:5px; }
.edu-tip p{ font-size:.82rem; color:#667085; line-height:1.6; margin:0 0 8px; }
.edu-tip a{ font-size:.82rem; font-weight:600; color:#2563EB!important; text-decoration:none!important; }

/* ==========================================================================
   Seguimiento FUNDAE (index.php)
   ========================================================================== */
.edu-trackhero{ background:linear-gradient(120deg,#0B1220,#12294D 60%,#173B6B);
    border-radius:18px; padding:26px 30px; color:#fff; margin-bottom:22px; }
.edu-trackhero h1{ color:#fff!important; font-size:clamp(1.4rem,2.2vw,1.9rem);
    font-weight:800; letter-spacing:-.03em; margin:0 0 8px; }
.edu-trackhero p{ color:rgba(255,255,255,.76); margin:0; font-size:.94rem; max-width:70ch; }
.edu-trackhero strong{ color:#E6B800; }

.edu-trackcard{ background:#fff; border:1px solid #E4E7EC; border-radius:16px;
    padding:20px 22px; margin-bottom:16px;
    box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 22px rgba(16,24,40,.05); }
.edu-trackhead{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; }
.edu-trackhead h3{ font-size:1.08rem; font-weight:700; margin:0 0 6px; }
.edu-trackhead h3 a{ color:#101828!important; text-decoration:none!important; }
.edu-trackhead h3 a:hover{ color:#0F3460!important; }
.edu-trackmeta{ display:flex; align-items:center; gap:12px; font-size:.82rem; color:#667085; flex-wrap:wrap; }
.edu-trackmeta i{ color:#667085; margin-right:4px; }

.edu-inds{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:760px){ .edu-inds{ grid-template-columns:1fr; } }
.edu-ind .l{ font-size:.8rem; color:#667085; }
.edu-ind .v{ font-size:1.35rem; font-weight:800; color:#101828; letter-spacing:-.02em; margin:2px 0 7px; }
.edu-indbar{ height:8px; border-radius:99px; background:#E4E7EC; overflow:hidden; }
.edu-indbar i{ display:block; height:100%; border-radius:99px; background:#0B7A57; }
.edu-indbar i.go{ background:#E6B800; }
.edu-indbar i.bad{ background:#DC2626; }
.edu-ind .n{ font-size:.72rem; color:#667085; margin-top:5px; }
.edu-ind-na .v{ color:#667085; }

.edu-tracknote{ display:flex; gap:9px; align-items:flex-start; margin-top:16px;
    background:#FFFBEA; border:1px solid #F3E2A8; border-radius:10px;
    padding:11px 14px; font-size:.84rem; color:#7A5C00; }
.edu-tracknote i{ margin-top:2px; }

.edu-trackfoot{ display:flex; align-items:center; gap:20px; flex-wrap:wrap;
    margin-top:18px; padding-top:16px; border-top:1px solid #F2F4F7; }
.edu-step{ display:flex; align-items:center; gap:7px; font-size:.84rem; color:#667085; }
.edu-step i{ font-size:.95rem; }
.edu-step.done{ color:#0B7A57; font-weight:600; }
.edu-trackact{ margin-left:auto; }

.edu-h2{ font-size:1.15rem; font-weight:750; color:#101828; margin:28px 0 14px; }
.edu-gest{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.edu-gestcard{ background:#fff; border:1px solid #E4E7EC; border-radius:14px; padding:16px 18px; }
.edu-gestcard strong{ display:block; font-size:.94rem; color:#101828; margin-bottom:12px; }
.edu-gestcard div{ display:flex; gap:8px; flex-wrap:wrap; }
.edx-btn.ghost.sm{ background:#F6F8FC; color:#0F3460!important; border:1px solid #E4E7EC; }

/* ==========================================================================
   MÓVIL
   Medido en 390 px: el documento se iba a 546 px. Dos causas:
   1) .edu-tabs con white-space:nowrap fijaba un ancho mínimo de ~520 px que
      arrastraba a todos los contenedores padres.
   2) Los hijos de rejilla/flex no tenían min-width:0, así que no encogían.
   ========================================================================== */
@media (max-width: 991px) {
    /* Sin esto, un hijo ancho impide que el contenedor se reduzca. */
    .edx, .edx-main, .edx-body,
    .edu-cwrap, .edu-cmain, .edu-caside,
    .edx-hero, .edx-split, .edu-crow, .edx-panel {
        min-width: 0;
        max-width: 100%;
    }
    .edx { padding-inline-start: 0; overflow-x: hidden; }
    .edx-body { padding: 16px 14px 32px; }

    /* Las pestañas pasan a deslizarse en horizontal en vez de empujar la página. */
    .edu-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        max-width: 100%;
    }
    .edu-tabs::-webkit-scrollbar { display: none; }
    .edu-tabs a { flex: 0 0 auto; }

    /* Barra superior en dos filas */
    .edx-top { flex-wrap: wrap; gap: 10px; padding: 10px 14px; min-height: 0; }
    .edx-top-right { width: 100%; gap: 10px; }
    .edx-search { flex: 1; }
    .edx-search input { width: 100%; }
    .edu-pagetitle { font-size: .95rem; }

    /* Fichas de curso y certificados: una sola columna */
    .edu-crow, .edu-certrow { grid-template-columns: 1fr; gap: 14px; }
    .edu-cthumb { height: 140px; }
    .edu-caction { padding: 0; }
    .edu-caction .edx-btn { width: 100%; justify-content: center; }
    .edu-cmeta { gap: 14px 18px; }
    .edu-toolbar { gap: 10px; }
    .edu-sort select { width: 100%; }

    /* Cabecera de certificados */
    .edu-certhero { padding: 22px 18px; }
    .edu-certstats { gap: 16px; }
    .edu-certstats div { padding: 0; border-left: 0; flex: 1 1 42%; }
    .edu-certhero-art { display: none; }

    /* Panel de inicio */
    .edx-hero { padding: 22px 18px; }
    .edx-hero-r { grid-template-columns: 1fr; }
    .edx-kpi, .edx-streak { grid-column: 1; }
    .edx-hero-art { display: none; }
    .edx-cont { grid-template-columns: 1fr; }
    .edx-courses { grid-template-columns: 1fr; }
    .edx-next { grid-template-columns: 1fr; }
    .edx-sec { gap: 10px; }

    /* Seguimiento FUNDAE */
    .edu-inds { grid-template-columns: 1fr; }
    .edu-trackfoot { gap: 12px; }
    .edu-trackact { margin-left: 0; width: 100%; }
    .edu-trackact .edx-btn { width: 100%; justify-content: center; }
    .edu-gest { grid-template-columns: 1fr; }

    /* Tablas anchas: que se deslicen ellas, no la página */
    .generaltable, .table { display: block; overflow-x: auto; }
}

/* Aviso de requisitos FUNDAE pendientes */
.edu-reqnotice{ max-width:640px; margin:24px auto; background:#fff; border:1px solid #E4E7EC;
    border-radius:16px; padding:28px 30px; box-shadow:0 8px 22px rgba(16,24,40,.06); }
.edu-reqnotice h2{ font-size:1.2rem; font-weight:750; color:#101828; margin:0 0 10px; }
.edu-reqnotice h2 i{ color:#B45309; margin-right:7px; }
.edu-reqnotice > p{ color:#475467; font-size:.95rem; line-height:1.6; margin:0 0 20px; }
.edu-reqnotice strong{ color:#0F3460; }
.edu-reqlist{ list-style:none; margin:0 0 24px; padding:0; }
.edu-reqlist li{ display:flex; align-items:center; gap:10px; padding:12px 0;
    border-bottom:1px solid #F2F4F7; font-size:.92rem; }
.edu-reqlist li:last-child{ border-bottom:0; }
.edu-reqlist li span{ flex:1; color:#475467; }
.edu-reqlist li b{ color:#101828; font-weight:650; }
.edu-reqlist li b small{ color:#667085; font-weight:400; }
.edu-reqlist li.ok i{ color:#0B7A57; }
.edu-reqlist li.ko i{ color:#DC2626; }
.edu-reqlist li.na i, .edu-reqlist li.na b{ color:#667085; }
.edu-reqact{ display:flex; gap:10px; flex-wrap:wrap; }

/* La marca de la barra pasa a ser el logotipo real: sin fondo dorado. */
.edu-rail-mark:has(img){ background:transparent; width:auto; height:auto; }
.edu-rail-mark img{ width:38px; height:38px; object-fit:contain; display:block; }
.edx-brand-mark:has(img){ background:transparent; }
.edx-brand-mark img{ width:38px; height:38px; object-fit:contain; }

/* ==========================================================================
   Calendario (calendar.php)
   ========================================================================== */
.edu-sub{ color:#667085; font-size:.95rem; margin:-10px 0 18px; }
.edu-calbar{ display:flex; align-items:center; justify-content:space-between; gap:14px;
    flex-wrap:wrap; margin-bottom:16px; }
.edu-calnav{ display:flex; align-items:center; gap:8px; }
.edu-navbtn,.edu-hoybtn{ display:inline-flex; align-items:center; justify-content:center;
    height:38px; min-width:38px; padding:0 14px; border:1px solid #E4E7EC; border-radius:10px;
    background:#fff; color:#475467!important; text-decoration:none!important; font-size:.87rem; font-weight:600; }
.edu-navbtn:hover,.edu-hoybtn:hover{ background:#F6F8FC; color:#0F3460!important; }
.edu-calmes{ display:inline-flex; align-items:center; gap:8px; margin-left:6px;
    font-size:1rem; font-weight:700; color:#101828; }
.edu-calmes i{ color:#667085; }
.edu-calfiltro{ display:flex; align-items:center; gap:10px; }
.edu-calfiltro select{ border:1px solid #E4E7EC; border-radius:10px; padding:9px 12px;
    font-size:.86rem; background:#fff; color:#101828; max-width:220px; }

.edu-calgrid{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px;
    background:#E4E7EC; border:1px solid #E4E7EC; border-radius:14px; overflow:hidden; }
.edu-caldow{ background:#F6F8FC; padding:11px 8px; text-align:center;
    font-size:.7rem; font-weight:700; letter-spacing:.06em; color:#667085; }
.edu-calcell{ background:#fff; min-height:104px; padding:7px 8px; position:relative; }
.edu-calcell.fuera{ background:#FAFBFD; }
.edu-calcell.hoy{ background:#F0F6FF; }
.edu-caldia{ display:inline-flex; align-items:center; justify-content:center;
    min-width:24px; height:24px; border-radius:50%; font-size:.8rem; font-weight:600; color:#475467; }
.edu-calcell.hoy .edu-caldia{ background:#2563EB; color:#fff; }
.edu-calev{ display:block; margin-top:4px; padding:3px 5px; border-radius:6px;
    text-decoration:none!important; color:inherit!important; line-height:1.25; }
.edu-calev:hover{ background:#F6F8FC; }
.edu-calev i{ display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; }
.edu-calev span{ font-size:.72rem; color:#101828; font-weight:600;
    display:inline-block; max-width:calc(100% - 14px); overflow:hidden;
    text-overflow:ellipsis; white-space:nowrap; vertical-align:middle; }
.edu-calev small{ display:block; font-size:.66rem; color:#667085; padding-left:12px; }
.edu-calmas{ display:block; font-size:.68rem; color:#2563EB; padding-left:5px; margin-top:2px; }

.edu-calleyenda{ display:flex; flex-wrap:wrap; gap:16px; margin:14px 0 22px; }
.edu-calleyenda span{ display:inline-flex; align-items:center; gap:7px; font-size:.79rem; color:#667085; }
.edu-calleyenda i{ width:9px; height:9px; border-radius:50%; }

.edu-calhoy-h{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.edu-calhoy-i{ width:40px; height:40px; border-radius:11px; background:#EAF1FB; color:#0F3460;
    display:flex; align-items:center; justify-content:center; flex:none; }
.edu-calhoy-h strong{ display:block; font-size:.98rem; color:#101828; }
.edu-calhoy-h small{ display:block; font-size:.8rem; color:#667085; }
.edu-calhoy-h .edx-btn{ margin-left:auto; }
.edu-calok{ display:flex; align-items:center; gap:9px; background:#E7F6F1; color:#0B5E44;
    border:1px solid #BFE7D8; border-radius:10px; padding:12px 14px; font-size:.88rem; }

.edu-sinc-t{ font-size:.85rem; color:#667085; line-height:1.55; margin:0 0 14px; }
.edu-sinc{ display:flex; flex-direction:column; gap:8px; }
.edu-sinc a{ display:flex; align-items:center; gap:10px; padding:10px 13px;
    border:1px solid #E4E7EC; border-radius:10px; font-size:.86rem; font-weight:600;
    color:#475467!important; text-decoration:none!important; }
.edu-sinc a:hover{ background:#F6F8FC; border-color:#C9D8F0; color:#0F3460!important; }
.edu-sinc a i{ color:#667085; width:16px; }
.edu-sinc-n{ font-size:.74rem; color:#667085; margin:10px 0 0; line-height:1.5; }

@media (max-width:991px){
    .edu-calgrid{ font-size:.9em; }
    .edu-calcell{ min-height:72px; padding:5px; }
    .edu-calev small{ display:none; }
    .edu-calbar{ gap:10px; }
    .edu-calfiltro{ width:100%; }
    .edu-calfiltro select{ flex:1; max-width:none; }
    .edu-calhoy-h .edx-btn{ margin-left:0; width:100%; justify-content:center; }
    .edu-calhoy-h{ flex-wrap:wrap; }
}

/* ==========================================================================
   ALINEACIÓN CON EL LOGOTIPO (paneles del plugin)
   Azul #0060D0 para acciones y texto; verde #40B030 solo como fondo, con
   texto oscuro encima; #2A6E1C cuando el verde tiene que ser texto.
   ========================================================================== */
.edx, .edu-rail { --s-blue:#0060D0; --s-gold:#40B030; --d-blue:#0060D0; --d-gold:#40B030; }

/* Barra lateral */
.edu-rail-nav a.on, .edx-nav a.on { box-shadow: inset 3px 0 0 #40B030; background: rgba(0,96,208,.24); }
.edu-rail-bar i, .edx-bar i, .edash-bar i { background: #0060D0; }
.edu-rail-cal .g a.today, .edx-cal-grid .today { background: #0060D0; }
.edu-rail-cal .g a.ev, .edx-cal-grid .ev { background: rgba(64,176,48,.20); color: #7ED96C !important; }
.edu-rail-next, .edx-cal-next { background: rgba(0,96,208,.18); border-left-color: #0060D0; }
.edu-rail-prog { background: linear-gradient(160deg,#12294D,#0F3460); }
.edu-rail-prog .lnk, .edx-sidecard-link { color: #8FC6FF !important; }
.edu-rail-mark { background: transparent; }

/* Botones y acentos */
.edx-btn.primary { background: #0060D0 !important; color: #fff !important; }
.edx-btn.primary:hover { background: #0049A8 !important; }
.edx-btn.link, .edx-sec a, .edx-panel-f, .edx-panel-lnk, .edu-ev-h,
.edu-tip a, .edu-sinc a:hover, .edu-calmas { color: #0060D0 !important; }
.edx-badge.fundae { background: #40B030; color: #0B1B33; }
.edu-tag { background: #EEF8EA; color: #2A6E1C; }
.edu-cbar i, .edu-course-bar i { background: #40B030; }
.edu-indbar i { background: #40B030; }
.edu-indbar i.go { background: #0060D0; }
.edu-chip.ok { background: #EEF8EA; color: #2A6E1C; }
.edu-chip.go { background: #EAF2FE; color: #0049A8; }
.edx-row-i.ok { background: #EEF8EA; color: #2A6E1C; }
.edu-cstate.obtenidos { background: #35931F; }
.edu-week .ok i { color: #40B030; }
.edu-streak-n strong { color: #2A6E1C; }
.edu-calcell.hoy { background: #EAF2FE; }
.edu-calcell.hoy .edu-caldia { background: #0060D0; }
.edu-calok { background: #EEF8EA; color: #2A6E1C; border-color: #CDE9C4; }
.edu-tabs a.on { background: #0F3460; }
.edu-certhero h1 i { color: #40B030; }
.edu-certstats b { color: #fff; }
.edu-tip-i, .edu-calhoy-i { background: #EAF2FE; color: #0049A8; }
.edx-hero::after, .edash-hero::after {
    background: radial-gradient(circle, rgba(64,176,48,.18), transparent 65%);
}
.edx-kpi-n, .edash-progress-num { color: #fff; }
.edx-mini-d.up { color: #7ED96C; }

/* Alta de evento y sincronización iCal */
.edu-calaviso{ display:flex; align-items:center; gap:9px; border-radius:10px;
    padding:12px 14px; font-size:.88rem; margin-bottom:14px; }
.edu-calaviso.ok{ background:#EEF8EA; color:#2A6E1C; border:1px solid #CDE9C4; }
.edu-calaviso.error{ background:#FEF2F2; color:#B42318; border:1px solid #FECDCA; }

.edu-nuevoev{ background:#fff; border:1px solid #E4E7EC; border-radius:14px;
    padding:18px 20px; margin-bottom:16px; box-shadow:0 8px 22px rgba(16,24,40,.06); }
.edu-nuevoev-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.edu-nuevoev-h strong{ font-size:1rem; color:#101828; }
.edu-cerrar{ border:0; background:transparent; color:#667085; cursor:pointer; font-size:1rem; padding:4px; }
.edu-cerrar:hover{ color:#101828; }
.edu-nuevoev-g{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.edu-nuevoev-g .full{ grid-column:1 / -1; }
.edu-nuevoev-g label{ display:flex; flex-direction:column; gap:5px; }
.edu-nuevoev-g span{ font-size:.8rem; color:#667085; font-weight:600; }
.edu-nuevoev-g input, .edu-nuevoev-g select, .edu-nuevoev-g textarea{
    border:1px solid #E4E7EC; border-radius:9px; padding:9px 12px; font-size:.88rem;
    color:#101828; background:#fff; font-family:inherit; }
.edu-nuevoev-g input:focus, .edu-nuevoev-g select:focus, .edu-nuevoev-g textarea:focus{
    outline:2px solid #0060D0; outline-offset:0; border-color:#0060D0; }
.edu-nuevoev-a{ display:flex; gap:10px; margin-top:14px; }

.edu-icalbox{ display:flex; gap:8px; margin-bottom:12px; }
.edu-icalbox input{ flex:1; min-width:0; border:1px solid #E4E7EC; border-radius:9px;
    padding:9px 11px; font-size:.76rem; color:#475467; background:#F6F8FC; font-family:ui-monospace,monospace; }
.edu-icalbox .edx-btn{ flex:none; white-space:nowrap; }
.edu-sinc-t em{ font-style:normal; font-weight:600; color:#0049A8; }
@media (max-width:991px){
    .edu-nuevoev-g{ grid-template-columns:1fr; }
    .edu-icalbox{ flex-direction:column; }
    .edu-icalbox .edx-btn{ width:100%; justify-content:center; }
}

/* Vista de día del calendario */
.edu-caldia{ text-decoration:none!important; color:#475467!important; }
.edu-calcell.hoy .edu-caldia{ color:#fff!important; }
.edu-caldia:hover{ background:#EAF2FE; color:#0049A8!important; }

.edu-diavista{ background:#fff; border:1px solid #E4E7EC; border-radius:16px;
    padding:22px 24px; box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-dianav{ display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.edu-dianav h2{ flex:1; font-size:1.2rem; font-weight:750; color:#101828; margin:0; text-align:center; }
.edu-dianav .edu-hoybtn{ gap:7px; }

.edu-diaev{ display:flex; gap:0; border:1px solid #E4E7EC; border-radius:12px;
    overflow:hidden; margin-bottom:12px; }
.edu-diaev-b{ width:5px; flex:none; }
.edu-diaev-c{ flex:1; padding:16px 18px; min-width:0; }
.edu-diaev-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.edu-diaev-h h3{ font-size:1.05rem; font-weight:700; color:#101828; margin:0 0 10px; }
.edu-diaev-a{ display:flex; gap:6px; flex:none; }
.edu-diaev-a a{ width:32px; height:32px; border-radius:8px; background:#F6F8FC;
    display:flex; align-items:center; justify-content:center;
    color:#667085!important; text-decoration:none!important; font-size:.85rem; }
.edu-diaev-a a:hover{ background:#EAF2FE; color:#0049A8!important; }
.edu-diaev-a a.del:hover{ background:#FEF2F2; color:#B42318!important; }
.edu-diaev-m{ list-style:none; margin:0 0 12px; padding:0; }
.edu-diaev-m li{ display:flex; align-items:flex-start; gap:9px; font-size:.87rem;
    color:#475467; padding:4px 0; }
.edu-diaev-m li i{ color:#667085; width:15px; margin-top:3px; flex:none; }
.edu-diaev-t{ display:inline-block; font-size:.72rem; font-weight:650;
    padding:2px 9px; border-radius:99px; }
@media (max-width:991px){
    .edu-dianav h2{ order:-1; width:100%; text-align:left; font-size:1.05rem; }
}

/* ==========================================================================
   Calificaciones (grades.php)
   ========================================================================== */
.edu-nhero{ display:flex; align-items:center; justify-content:space-between; gap:20px;
    margin-bottom:20px; }
.edu-nhero h1{ font-size:clamp(1.4rem,2.2vw,1.85rem); font-weight:800; color:#101828;
    letter-spacing:-.03em; margin:0 0 6px; }
.edu-nhero p{ color:#667085; margin:0; font-size:.95rem; }
.edu-nhero-art{ width:200px; flex:none; }
.edu-nhero-art svg{ width:100%; height:auto; }

.edu-nstats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:14px; margin-bottom:20px; }
.edu-nstat{ display:flex; gap:13px; align-items:center; background:#fff; border:1px solid #E4E7EC;
    border-radius:14px; padding:16px 18px; box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 22px rgba(16,24,40,.05); }
.edu-nstat .i{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center;
    justify-content:center; flex:none; font-size:1.05rem; }
.edu-nstat .i.verde{ background:#EEF8EA; color:#2A6E1C; }
.edu-nstat .i.azul{ background:#EAF2FE; color:#0049A8; }
.edu-nstat .i.morado{ background:#F3EEFC; color:#5B21B6; }
.edu-nstat .i.ambar{ background:#FEF6E7; color:#B45309; }
.edu-nstat small{ display:block; font-size:.78rem; color:#667085; }
.edu-nstat b{ display:block; font-size:1.5rem; font-weight:800; color:#101828; letter-spacing:-.02em; line-height:1.2; }
.edu-nstat em{ display:block; font-style:normal; font-size:.74rem; color:#667085; }

.edu-ntabla{ padding:20px 22px; }
.edu-tablawrap{ overflow-x:auto; }
.edu-tabla{ width:100%; border-collapse:collapse; }
.edu-tabla th{ text-align:left; font-size:.76rem; font-weight:700; color:#667085;
    text-transform:none; padding:10px 12px; border-bottom:1px solid #E4E7EC; white-space:nowrap; }
.edu-tabla td{ padding:14px 12px; border-bottom:1px solid #F2F4F7; font-size:.88rem; color:#475467; vertical-align:middle; }
.edu-tabla tr:last-child td{ border-bottom:0; }
.edu-tabla td a{ color:#101828!important; font-weight:650; text-decoration:none!important; }
.edu-tabla td a:hover{ color:#0049A8!important; }
.edu-tabla td small{ display:block; font-size:.72rem; color:#667085; }
.edu-tabla td b{ color:#101828; font-weight:650; }
.edu-sinnota{ color:#667085; font-weight:600; }
.edu-sinnota small{ color:#667085; }
.edu-connota{ color:#101828; font-weight:700; font-size:1rem; }
.edu-connota small{ color:#667085; font-weight:400; }
.edu-minibar{ width:96px; height:6px; border-radius:99px; background:#E4E7EC; overflow:hidden; margin-bottom:4px; }
.edu-minibar i{ display:block; height:100%; border-radius:99px; background:#40B030; }
.edu-gris{ color:#667085; }
.edu-franja{ font-size:.72rem; font-weight:650; padding:4px 10px; border-radius:99px; white-space:nowrap; }
.edu-franja.exc{ background:#EEF8EA; color:#2A6E1C; }
.edu-franja.bue{ background:#EAF2FE; color:#0049A8; }
.edu-franja.ace{ background:#FEF6E7; color:#B45309; }
.edu-franja.ins{ background:#FEF2F2; color:#B42318; }
.edu-franja.na{ background:#F2F4F7; color:#667085; }
.edu-nnota{ display:flex; align-items:center; gap:9px; margin-top:16px; background:#F6F8FC;
    border:1px solid #E4E7EC; border-radius:10px; padding:12px 14px; font-size:.85rem; color:#667085; }

.edu-anillo{ text-align:center; margin-bottom:18px; }
.edu-anillo svg{ width:150px; height:150px; }
.edu-anillo-t{ font-size:.9rem; font-weight:650; color:#101828; margin-top:4px; }
.edu-anillo-t small{ display:block; font-size:.78rem; color:#667085; font-weight:400; }
.edu-reparto{ list-style:none; margin:0; padding:0; }
.edu-reparto li{ display:flex; justify-content:space-between; align-items:center;
    padding:9px 0; border-bottom:1px solid #F2F4F7; font-size:.85rem; }
.edu-reparto li:last-child{ border-bottom:0; }
.edu-reparto span{ display:flex; align-items:center; gap:9px; color:#475467; }
.edu-reparto i{ width:9px; height:9px; border-radius:50%; }
.edu-reparto b{ color:#101828; font-weight:650; }

@media (max-width:991px){
    .edu-nhero-art{ display:none; }
    .edu-nstats{ grid-template-columns:1fr 1fr; }
    .edu-nstat{ padding:14px; }
    .edu-nstat b{ font-size:1.25rem; }
}

/* ==========================================================================
   Mensajería (messages.php)
   ========================================================================== */
.edu-msgbar{ display:flex; gap:12px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.edu-msgbuscar{ position:relative; flex:1; min-width:220px; }
.edu-msgbuscar i{ position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#667085; font-size:.85rem; }
.edu-msgbuscar input{ width:100%; border:1px solid #E4E7EC; border-radius:10px;
    padding:10px 14px 10px 36px; font-size:.88rem; background:#fff; color:#101828; }
.edu-msgbuscar input:focus{ outline:2px solid #0060D0; border-color:#0060D0; }
.edu-nuevomsg{ position:relative; }
.edu-nuevomsg summary{ list-style:none; cursor:pointer; }
.edu-nuevomsg summary::-webkit-details-marker{ display:none; }
.edu-nuevomsg-p{ position:absolute; right:0; top:calc(100% + 8px); z-index:20; width:280px;
    background:#fff; border:1px solid #E4E7EC; border-radius:12px; padding:14px;
    box-shadow:0 16px 40px rgba(16,24,40,.16); }
.edu-nuevomsg-p strong{ display:block; font-size:.85rem; color:#101828; margin-bottom:10px; }
.edu-nuevomsg-p a{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:9px;
    text-decoration:none!important; color:inherit!important; }
.edu-nuevomsg-p a:hover{ background:#F6F8FC; }
.edu-nuevomsg-p a img{ width:32px; height:32px; border-radius:50%; }
.edu-nuevomsg-p a strong{ font-size:.85rem; margin:0; }
.edu-nuevomsg-p a small{ display:block; font-size:.74rem; color:#667085; }
.edu-msgvacio{ font-size:.82rem; color:#667085; margin:0; }

.edu-msgwrap{ display:grid; grid-template-columns:300px 1fr 280px; gap:16px; align-items:start;
    height:calc(100vh - 200px); min-height:520px; }
@media (max-width:1300px){ .edu-msgwrap{ grid-template-columns:280px 1fr; } .edu-msginfo{ display:none; } }
@media (max-width:900px){ .edu-msgwrap{ grid-template-columns:1fr; height:auto; } }

.edu-msglista{ background:#fff; border:1px solid #E4E7EC; border-radius:14px;
    overflow-y:auto; height:100%; box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-msgtabs{ display:flex; border-bottom:1px solid #E4E7EC; position:sticky; top:0; background:#fff; z-index:2; }
.edu-msgtabs a{ flex:1; text-align:center; padding:13px 6px; font-size:.83rem; font-weight:600;
    color:#667085!important; text-decoration:none!important; border-bottom:2px solid transparent; }
.edu-msgtabs a.on{ color:#0049A8!important; border-bottom-color:#0060D0; }
.edu-msgtabs em{ font-style:normal; background:#0060D0; color:#fff; font-size:.68rem;
    border-radius:99px; padding:1px 6px; margin-left:4px; }
.edu-msgsec{ padding:12px 14px 6px; font-size:.68rem; font-weight:700; letter-spacing:.08em; color:#667085; }
.edu-msgsec em{ font-style:normal; float:right; }
.edu-msgitem{ display:flex; gap:11px; align-items:center; padding:11px 14px;
    text-decoration:none!important; color:inherit!important; border-left:3px solid transparent; }
.edu-msgitem:hover{ background:#F6F8FC; }
.edu-msgitem.on{ background:#EAF2FE; border-left-color:#0060D0; }
.edu-msgav{ width:40px; height:40px; border-radius:50%; background:#EAF2FE; color:#0049A8;
    display:flex; align-items:center; justify-content:center; flex:none; overflow:hidden; }
.edu-msgav img{ width:100%; height:100%; object-fit:cover; }
.edu-msgav.grupo{ background:#EEF8EA; color:#2A6E1C; border-radius:12px; }
.edu-msgav.grande{ width:52px; height:52px; font-size:1.2rem; }
.edu-msgav.peq{ width:30px; height:30px; font-size:.75rem; }
.edu-msgtxt{ flex:1; min-width:0; }
.edu-msgtxt strong{ display:block; font-size:.88rem; color:#101828; font-weight:650;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-msgtxt small{ display:block; font-size:.77rem; color:#667085;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-msgmeta{ text-align:right; flex:none; }
.edu-msgmeta em{ display:block; font-style:normal; font-size:.72rem; color:#667085; }
.edu-msgmeta b{ display:inline-block; background:#0060D0; color:#fff; font-size:.68rem;
    border-radius:99px; padding:1px 7px; margin-top:3px; }
.edu-msgmeta i{ color:#667085; font-size:.7rem; margin-top:3px; }

.edu-msgchat{ background:#fff; border:1px solid #E4E7EC; border-radius:14px;
    display:flex; flex-direction:column; height:100%; overflow:hidden;
    box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-msghead{ display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid #E4E7EC; }
.edu-msghead strong{ display:block; font-size:.98rem; color:#101828; }
.edu-msghead small{ display:block; font-size:.78rem; color:#667085; }
.edu-msgacc{ margin-left:auto; display:flex; gap:6px; }
.edu-msgacc button{ width:34px; height:34px; border-radius:9px; border:1px solid #E4E7EC;
    background:#fff; color:#667085; cursor:pointer; }
.edu-msgacc button:hover{ background:#F6F8FC; color:#0049A8; }
.edu-msgacc button.act{ background:#EEF8EA; border-color:#CDE9C4; color:#2A6E1C; }
.edu-msgcuerpo{ flex:1; overflow-y:auto; padding:18px; background:#FAFBFD; }
.edu-msgfecha{ text-align:center; font-size:.75rem; color:#667085; margin:14px 0 12px; }
.edu-burbuja{ display:flex; gap:9px; margin-bottom:12px; align-items:flex-end; }
.edu-burbuja.mia{ flex-direction:row-reverse; }
.edu-burbuja-c{ max-width:72%; background:#fff; border:1px solid #E4E7EC; border-radius:14px 14px 14px 4px;
    padding:10px 14px; }
.edu-burbuja.mia .edu-burbuja-c{ background:#0060D0; border-color:#0060D0; border-radius:14px 14px 4px 14px; }
.edu-burbuja-c p{ margin:0; font-size:.89rem; color:#101828; line-height:1.5; word-wrap:break-word; }
.edu-burbuja.mia .edu-burbuja-c p{ color:#fff; }
.edu-burbuja-c time{ display:block; font-size:.7rem; color:#667085; margin-top:5px; text-align:right; }
.edu-burbuja.mia .edu-burbuja-c time{ color:rgba(255,255,255,.75); }
.edu-burbuja-a{ display:block; font-size:.74rem; color:#0049A8; font-weight:650; margin-bottom:3px; }
.edu-msgenviar{ display:flex; gap:9px; padding:13px 16px; border-top:1px solid #E4E7EC; background:#fff; }
.edu-msgenviar input{ flex:1; border:1px solid #E4E7EC; border-radius:99px; padding:11px 18px;
    font-size:.89rem; color:#101828; }
.edu-msgenviar input:focus{ outline:2px solid #0060D0; border-color:#0060D0; }
.edu-msgenviar button{ width:42px; height:42px; border-radius:50%; border:0; background:#0060D0;
    color:#fff; cursor:pointer; flex:none; }
.edu-msgenviar button:hover{ background:#0049A8; }
.edu-msgenviar button:disabled, .edu-msgenviar input:disabled{ opacity:.5; cursor:not-allowed; }
.edu-msgnada{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; color:#667085; padding:40px 20px; }
.edu-msgnada i{ font-size:2.4rem; color:#CBD5E1; margin-bottom:14px; }
.edu-msgnada strong{ display:block; font-size:1rem; color:#475467; margin-bottom:5px; }
.edu-msgnada p{ margin:0; font-size:.88rem; }
.edu-msgnada.peq i{ font-size:1.6rem; }
.edu-msginfo{ display:flex; flex-direction:column; gap:14px; }
.edu-msgficha{ text-align:center; }
.edu-msgficha .edu-msgav{ margin:0 auto 10px; }
.edu-msgficha strong{ display:block; font-size:.98rem; color:#101828; }
.edu-msgficha > a[href^="mailto"]{ display:block; font-size:.82rem; color:#0060D0!important;
    text-decoration:none!important; margin:4px 0 12px; word-break:break-all; }


/* ==========================================================================
   Vista de curso, perfil, historial y foros
   Misma línea gráfica que el resto: azul #0060D0, verde #40B030, tarjeta
   blanca sobre #F6F8FC, radio 14px y sombra suave.
   ========================================================================== */

/* ── Utilidades compartidas ── */
.edu-back{ display:inline-flex; align-items:center; gap:8px; font-size:.87rem; font-weight:600;
    color:#667085!important; text-decoration:none!important; }
.edu-back:hover{ color:#0060D0!important; }
.edu-tag.sm{ font-size:.62rem; padding:2px 7px; }
.edu-tag.light{ background:rgba(255,255,255,.16); color:#fff; }
.edu-tag.ghost{ background:rgba(255,255,255,.08); color:rgba(255,255,255,.86);
    border:1px solid rgba(255,255,255,.22); font-weight:600; }
.edu-chip.bad{ background:#FDECEC; color:#B42318; }
.edx-btn.light{ background:#fff; color:#0049A8!important; }
.edx-btn.light:hover{ background:#EAF2FE; }
.edx-btn.ghostlight{ background:rgba(255,255,255,.10); color:#fff!important;
    border:1px solid rgba(255,255,255,.30); }
.edx-btn.ghostlight:hover{ background:rgba(255,255,255,.18); }
.edx-btn.block{ display:flex; justify-content:center; width:100%; }
.edu-panel-note{ font-size:.72rem; font-weight:500; color:#667085; }
.edu-panel-link{ float:right; font-size:.78rem; font-weight:600; color:#0060D0!important;
    text-decoration:none!important; }
.mono{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.8rem; color:#667085; }
.edu-foro-meta .mut{ color:#667085; }

/* Tablas de datos (progreso, notas, conexiones) */
.edu-tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.edu-table{ width:100%; border-collapse:collapse; font-size:.87rem; min-width:520px; }
.edu-table th{ text-align:left; padding:9px 12px; font-size:.72rem; font-weight:700;
    letter-spacing:.05em; text-transform:uppercase; color:#667085; border-bottom:1px solid #E4E7EC; }
.edu-table td{ padding:11px 12px; border-bottom:1px solid #F2F4F7; color:#475467; vertical-align:middle; }
.edu-table tbody tr:last-child td{ border-bottom:0; }
.edu-table tbody tr:hover{ background:#FAFBFD; }
.edu-table td strong{ color:#101828; }
.edu-table .edu-chip{ margin-left:0; }
.edu-table-fb td{ background:#FAFBFD; font-size:.83rem; color:#667085; padding-top:0; }
.edu-table-fb i{ color:#0060D0; margin-right:6px; }

/* ── Cabecera del curso ── */
.edu-cvhero{ background:linear-gradient(115deg,#0B1220,#0F3460); border-radius:16px;
    padding:26px 28px 20px; color:#fff; margin-bottom:20px; position:relative; overflow:hidden; }
.edu-cvhero::after{ content:''; position:absolute; right:-70px; top:-70px; width:260px; height:260px;
    background:radial-gradient(circle,rgba(64,176,48,.22),transparent 65%); pointer-events:none; }
.edu-cvhero-in{ display:flex; gap:24px; align-items:flex-start; justify-content:space-between;
    position:relative; z-index:1; }
.edu-cvhero-txt{ min-width:0; flex:1; }
.edu-cvhero-tags{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:11px; }
.edu-cvhero h1{ font-size:1.55rem; font-weight:800; letter-spacing:-.03em; margin:0 0 8px;
    color:#fff; line-height:1.25; }
.edu-cvhero-sum{ margin:0 0 12px; font-size:.9rem; color:rgba(255,255,255,.72); max-width:62ch; line-height:1.55; }
.edu-cvhero-meta{ display:flex; flex-wrap:wrap; gap:18px; font-size:.82rem; color:rgba(255,255,255,.68); }
.edu-cvhero-meta i{ margin-right:6px; opacity:.75; }
.edu-cvhero-act{ display:flex; flex-direction:column; gap:9px; flex:none; }
.edu-cvhero-act .edx-btn{ justify-content:center; white-space:nowrap; }
.edu-cvhero-bar{ display:flex; align-items:center; gap:12px; margin-top:18px; position:relative; z-index:1; }
.edu-cvhero-track{ flex:1; height:8px; border-radius:99px; background:rgba(255,255,255,.16); overflow:hidden; }
.edu-cvhero-track i{ display:block; height:100%; border-radius:99px;
    background:linear-gradient(90deg,#0060D0,#40B030); transition:width .4s ease; }
.edu-cvhero-bar strong{ font-size:.92rem; font-weight:800; color:#fff; min-width:44px; text-align:right; }

.edu-cvtabs{ margin-bottom:18px; }
.edu-cvtabs a i{ margin-right:7px; opacity:.7; }
.edu-cvtabs a.on i{ opacity:1; }

.edu-cvwrap{ display:grid; grid-template-columns:1fr 320px; gap:22px; align-items:start; }
.edu-cvmain{ min-width:0; display:flex; flex-direction:column; gap:14px; }
.edu-cvaside{ display:flex; flex-direction:column; gap:16px; }

/* ── Módulos plegables ── */
.edu-cvmod{ background:#fff; border:1px solid #E4E7EC; border-radius:14px; overflow:hidden;
    box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-cvmod > summary{ display:flex; align-items:center; gap:14px; padding:15px 18px; cursor:pointer;
    list-style:none; user-select:none; }
.edu-cvmod > summary::-webkit-details-marker{ display:none; }
.edu-cvmod > summary:hover{ background:#FAFBFD; }
.edu-cvmod-n{ width:32px; height:32px; border-radius:10px; background:#EAF2FE; color:#0049A8;
    display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; flex:none; }
.edu-cvmod.done .edu-cvmod-n{ background:#EEF8EA; color:#2A6E1C; }
.edu-cvmod.locked .edu-cvmod-n{ background:#F2F4F7; color:#667085; }
.edu-cvmod-t{ flex:1; min-width:0; }
.edu-cvmod-t strong{ display:block; font-size:.96rem; font-weight:650; color:#101828; }
.edu-cvmod-t small{ display:block; font-size:.78rem; color:#667085; margin-top:2px; }
.edu-cvmod-p{ display:flex; align-items:center; gap:10px; flex:none; }
.edu-cvmod-bar{ width:82px; height:6px; border-radius:99px; background:#E4E7EC; overflow:hidden; display:block; }
.edu-cvmod-bar i{ display:block; height:100%; border-radius:99px; background:#40B030; }
.edu-cvmod-p b{ font-size:.82rem; font-weight:700; color:#475467; min-width:34px; text-align:right; }
.edu-cvmod-c{ color:#667085; font-size:.8rem; transition:transform .2s ease; flex:none; }
.edu-cvmod[open] .edu-cvmod-c{ transform:rotate(180deg); }
.edu-cvmod-b{ border-top:1px solid #F2F4F7; }
.edu-cvmod-sum{ padding:14px 18px 0; font-size:.86rem; color:#667085; line-height:1.6; }
.edu-cvmod-sum p:last-child{ margin-bottom:0; }

.edu-cvacts{ list-style:none; margin:0; padding:8px; }
.edu-cvact + .edu-cvact{ margin-top:2px; }
.edu-cvact-in{ display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:10px;
    text-decoration:none!important; color:inherit!important; }
a.edu-cvact-in:hover{ background:#F6F8FC; }
.edu-cvact-st{ width:20px; text-align:center; flex:none; font-size:.92rem; color:#CBD5E1; }
.edu-cvact.ok .edu-cvact-st{ color:#40B030; }
.edu-cvact.fail .edu-cvact-st{ color:#D92D20; }
.edu-cvact.lock .edu-cvact-st{ color:#667085; }
.edu-cvact-ic{ width:34px; height:34px; border-radius:10px; background:#F6F8FC; color:#667085;
    display:flex; align-items:center; justify-content:center; font-size:.88rem; flex:none; }
.edu-cvact.ok .edu-cvact-ic{ background:#EEF8EA; color:#2A6E1C; }
.edu-cvact-t{ flex:1; min-width:0; }
.edu-cvact-t strong{ display:block; font-size:.9rem; font-weight:600; color:#101828; }
.edu-cvact.lock .edu-cvact-t strong{ color:#667085; }
.edu-cvact-t small{ display:block; font-size:.77rem; color:#667085; margin-top:2px; }
.edu-cvact-t small em{ font-style:normal; color:#B54708; }
.edu-cvact-go{ flex:none; color:#CBD5E1; font-size:.8rem; }
a.edu-cvact-in:hover .edu-cvact-go{ color:#0060D0; }
.edu-cvact-badge{ background:#F2F4F7; color:#667085; font-size:.68rem; font-weight:650;
    padding:3px 9px; border-radius:99px; }

/* ── Panel derecho del curso ── */
.edu-cvring{ position:relative; display:flex; align-items:center; justify-content:center; margin:4px 0 14px; }
.edu-cvring svg{ display:block; }
.edu-cvring circle{ transition:stroke-dashoffset .6s ease; }
.edu-cvring-n{ position:absolute; text-align:center; }
.edu-cvring-n strong{ display:block; font-size:1.65rem; font-weight:800; color:#101828; letter-spacing:-.03em; }
.edu-cvring-n small{ display:block; font-size:.72rem; color:#667085; }
.edu-cvring-meta{ display:flex; flex-direction:column; gap:6px; border-top:1px solid #F2F4F7; padding-top:12px; }
.edu-cvring-meta span{ font-size:.82rem; color:#667085; display:flex; justify-content:space-between; }
.edu-cvring-meta b{ color:#101828; }

.edu-cvfundae .edx-panel-h{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.edu-cvfundae-logo{ height:16px; width:auto; opacity:.85; }
.edu-cvtime{ display:flex; align-items:baseline; gap:8px; margin-bottom:9px; }
.edu-cvtime strong{ font-size:1.5rem; font-weight:800; color:#101828; letter-spacing:-.03em; }
.edu-cvtime small{ font-size:.78rem; color:#667085; }
.edu-cvnote{ margin:9px 0 0; font-size:.79rem; color:#667085; line-height:1.5; }
.edu-cvnote i{ margin-right:5px; color:#0060D0; }
.edu-cvnote i.ok{ color:#40B030; }
.edu-cvkv{ display:flex; flex-direction:column; gap:7px; margin-top:13px; padding-top:12px;
    border-top:1px solid #F2F4F7; }
.edu-cvkv span{ display:flex; justify-content:space-between; gap:12px; font-size:.82rem; color:#667085; }
.edu-cvkv b{ color:#101828; font-weight:650; text-align:right; }
.edu-cvkv.col span{ align-items:baseline; }
.edu-cvlink{ display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:.81rem;
    font-weight:600; color:#0060D0!important; text-decoration:none!important; }

.edu-cvnext{ display:flex; align-items:center; gap:12px; padding:11px; border-radius:11px;
    background:#F6F8FC; text-decoration:none!important; color:inherit!important; }
.edu-cvnext:hover{ background:#EAF2FE; }
.edu-cvnext-i{ width:38px; height:38px; border-radius:11px; background:#0060D0; color:#fff;
    display:flex; align-items:center; justify-content:center; flex:none; }
.edu-cvnext-t{ flex:1; min-width:0; }
.edu-cvnext-t strong{ display:block; font-size:.88rem; color:#101828; font-weight:650;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-cvnext-t small{ display:block; font-size:.75rem; color:#667085; }
.edu-cvnext > i{ color:#667085; font-size:.8rem; }

.edu-cvdip .edx-panel-b p{ margin:0 0 12px; font-size:.87rem; color:#475467; }
.edu-cvdip .edx-panel-b p i{ color:#40B030; margin-right:6px; }

.edu-cvnota-big{ display:flex; align-items:baseline; gap:8px; margin-bottom:10px; }
.edu-cvnota-big strong{ font-size:2.1rem; font-weight:800; color:#101828; letter-spacing:-.03em; }
.edu-cvnota-big small{ font-size:.85rem; color:#667085; }

.edu-cvdown{ display:flex; align-items:center; gap:14px; padding:14px; border-radius:12px;
    border:1px dashed #CBD5E1; text-decoration:none!important; color:inherit!important; }
.edu-cvdown:hover{ border-color:#0060D0; background:#FAFBFD; }
.edu-cvdown-i{ width:42px; height:42px; border-radius:12px; background:#FDECEC; color:#B42318;
    display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex:none; }
.edu-cvdown-t{ flex:1; min-width:0; }
.edu-cvdown-t strong{ display:block; font-size:.92rem; color:#101828; }
.edu-cvdown-t small{ display:block; font-size:.79rem; color:#667085; margin-top:2px; line-height:1.45; }
.edu-cvdown > i{ color:#0060D0; }

.edu-cvres{ list-style:none; margin:0; padding:0; }
.edu-cvres li + li{ border-top:1px solid #F2F4F7; }
.edu-cvres a{ display:flex; align-items:center; gap:12px; padding:12px 4px;
    text-decoration:none!important; color:inherit!important; }
.edu-cvres a:hover{ background:#FAFBFD; }
.edu-cvres-i{ width:34px; height:34px; border-radius:10px; background:#F6F8FC; color:#0049A8;
    display:flex; align-items:center; justify-content:center; flex:none; }
.edu-cvres-t{ flex:1; min-width:0; }
.edu-cvres-t strong{ display:block; font-size:.88rem; color:#101828; font-weight:600; }
.edu-cvres-t small{ display:block; font-size:.76rem; color:#667085; }
.edu-cvres a > i{ color:#CBD5E1; font-size:.8rem; }

/* ── Perfil ── */
.edu-profhead{ display:flex; align-items:center; justify-content:space-between; gap:20px;
    background:#fff; border:1px solid #E4E7EC; border-radius:16px; padding:20px 24px;
    margin-bottom:20px; box-shadow:0 8px 22px rgba(16,24,40,.05); flex-wrap:wrap; }
.edu-profhead-l{ display:flex; align-items:center; gap:18px; min-width:0; }
.edu-profav{ flex:none; }
.edu-profav img{ width:76px; height:76px; border-radius:50%; object-fit:cover;
    border:3px solid #EAF2FE; }
.edu-profhead-t{ min-width:0; }
.edu-profhead-t h1{ font-size:1.5rem; font-weight:800; color:#101828; letter-spacing:-.03em; margin:0 0 8px; }
.edu-profhead-t p{ margin:0; display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.edu-profhead-t .edu-chip{ margin-left:0; }
.edu-profhead-r{ display:flex; gap:9px; flex:none; flex-wrap:wrap; }

.edu-profwrap{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.edu-profcol{ display:flex; flex-direction:column; gap:16px; min-width:0; }

.edu-proflist{ list-style:none; margin:0; padding:0; }
.edu-proflist li{ display:flex; gap:13px; padding:12px 0; align-items:flex-start; }
.edu-proflist li + li{ border-top:1px solid #F2F4F7; }
.edu-profi{ width:38px; height:38px; border-radius:11px; display:flex; align-items:center;
    justify-content:center; flex:none; font-size:.92rem; }
.edu-profi.blue{ background:#EAF2FE; color:#0049A8; }
.edu-profi.green{ background:#EEF8EA; color:#2A6E1C; }
.edu-profi.amber{ background:#FEF6E7; color:#B54708; }
.edu-profi.violet{ background:#F1EEFC; color:#5B21B6; }
.edu-profi.red{ background:#FDECEC; color:#B42318; }
.edu-profi.grey{ background:#F2F4F7; color:#667085; }
.edu-proft{ flex:1; min-width:0; }
.edu-proft small{ display:block; font-size:.76rem; color:#667085; margin-bottom:2px; }
.edu-proft strong{ display:block; font-size:.91rem; color:#101828; font-weight:650; word-break:break-word; }
.edu-proft strong a{ color:#0060D0!important; text-decoration:none!important; }
.edu-proft em{ display:block; font-style:normal; font-size:.75rem; color:#667085; margin-top:3px; }
.edu-profdesc{ font-weight:400!important; color:#475467!important; font-size:.87rem!important; line-height:1.55; }
.edu-profdesc p:last-child{ margin-bottom:0; }

.edu-proflinks{ list-style:none; margin:0; padding:0; }
.edu-proflinks li + li{ border-top:1px solid #F2F4F7; }
.edu-proflinks a{ display:flex; align-items:center; gap:13px; padding:11px 4px;
    text-decoration:none!important; color:inherit!important; border-radius:9px; }
.edu-proflinks a:hover{ background:#FAFBFD; }
.edu-proflinks a > span:not(.edu-profi){ flex:1; min-width:0; font-size:.89rem; color:#101828; font-weight:600; }
.edu-proflinks a > i{ color:#CBD5E1; font-size:.78rem; }
.edu-proflinks a:hover > i{ color:#0060D0; }
.edu-proflinks-t strong{ display:block; font-size:.89rem; color:#101828; font-weight:650; }
.edu-proflinks-t small{ display:block; font-size:.76rem; color:#667085; margin-top:1px; font-weight:400; }
.edu-proflinks.big a{ padding:13px 4px; }

.edu-profcourses{ list-style:none; margin:0; padding:0; }
.edu-profcourses li + li{ border-top:1px solid #F2F4F7; }
.edu-profcourses a{ display:block; padding:12px 4px; text-decoration:none!important;
    color:inherit!important; border-radius:9px; }
.edu-profcourses a:hover{ background:#FAFBFD; }
.edu-profc-t{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.edu-profc-t strong{ font-size:.89rem; color:#101828; font-weight:650; }
.edu-profc-p{ display:flex; align-items:center; gap:10px; }
.edu-profc-p .edx-bar{ flex:1; }
.edu-profc-p b{ font-size:.79rem; color:#667085; min-width:34px; text-align:right; }

.edu-profacc{ list-style:none; margin:0; padding:0; }
.edu-profacc li{ padding:10px 0; }
.edu-profacc li + li{ border-top:1px solid #F2F4F7; }
.edu-profacc small{ display:block; font-size:.76rem; color:#667085; margin-bottom:3px; }
.edu-profacc strong{ display:block; font-size:.88rem; color:#101828; font-weight:650; }
.edu-profacc em{ display:block; font-style:normal; font-size:.75rem; color:#0060D0; margin-top:2px; }
.edu-profstats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.edu-profstats span{ background:#F6F8FC; border-radius:11px; padding:12px; text-align:center; }
.edu-profstats b{ display:block; font-size:1.15rem; font-weight:800; color:#101828; letter-spacing:-.02em; }
.edu-profstats small{ display:block; font-size:.72rem; color:#667085; margin-top:2px; }

.edu-profqr-t{ margin:0 0 6px; font-size:.9rem; color:#101828; }
.edu-profqr-s{ margin:0 0 14px; font-size:.82rem; color:#667085; line-height:1.55; }
.edu-profqr .edx-btn{ width:100%; justify-content:center; }
.edu-profqr-links{ display:flex; gap:16px; margin-top:12px; justify-content:center; }
.edu-profqr-links a{ font-size:.8rem; color:#667085!important; text-decoration:none!important; }
.edu-profqr-links a:hover{ color:#0060D0!important; }
.edu-profqr-links i{ margin-right:5px; }

/* ── Historial ── */
.edu-timeline{ display:flex; flex-direction:column; gap:20px; }
.edu-tlday-h{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.edu-tlday-h span{ font-size:.85rem; font-weight:700; color:#101828; }
.edu-tlday-h small{ background:#EAF2FE; color:#0049A8; font-size:.7rem; font-weight:700;
    border-radius:99px; padding:2px 9px; }
.edu-tlday-h::after{ content:''; flex:1; height:1px; background:#E4E7EC; }
.edu-tlitems{ list-style:none; margin:0; padding:0; background:#fff; border:1px solid #E4E7EC;
    border-radius:14px; overflow:hidden; box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-tlitems li + li{ border-top:1px solid #F2F4F7; }
.edu-tlitem{ display:flex; align-items:center; gap:14px; padding:13px 16px;
    text-decoration:none!important; color:inherit!important; }
a.edu-tlitem:hover{ background:#FAFBFD; }
.edu-tldot{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center;
    justify-content:center; flex:none; font-size:.85rem; }
.edu-tldot.green{ background:#EEF8EA; color:#2A6E1C; }
.edu-tldot.blue{ background:#EAF2FE; color:#0049A8; }
.edu-tldot.red{ background:#FDECEC; color:#B42318; }
.edu-tldot.gold{ background:#FEF6E7; color:#B54708; }
.edu-tltxt{ flex:1; min-width:0; }
.edu-tltxt strong{ display:block; font-size:.9rem; color:#101828; font-weight:650; }
.edu-tltxt small{ display:block; font-size:.79rem; color:#667085; margin-top:2px; }
.edu-tltxt em{ display:block; font-style:normal; font-size:.74rem; color:#667085; margin-top:3px; }
.edu-tltxt em i{ margin-right:5px; }
.edu-tltime{ font-size:.78rem; color:#667085; flex:none; font-variant-numeric:tabular-nums; }

.edu-histpend{ list-style:none; margin:0; padding:0; }
.edu-histpend li + li{ border-top:1px solid #F2F4F7; }
.edu-histpend li > *{ display:flex; align-items:center; gap:13px; padding:12px 4px;
    text-decoration:none!important; color:inherit!important; }
.edu-histpend li a:hover{ background:#FAFBFD; }
.edu-histpend-i{ width:32px; height:32px; border-radius:10px; background:#EAF2FE; color:#0049A8;
    display:flex; align-items:center; justify-content:center; flex:none; font-size:.72rem; }
.edu-histpend li.lock .edu-histpend-i{ background:#F2F4F7; color:#667085; }
.edu-histpend-t{ flex:1; min-width:0; }
.edu-histpend-t strong{ display:block; font-size:.89rem; color:#101828; font-weight:650; }
.edu-histpend li.lock .edu-histpend-t strong{ color:#667085; }
.edu-histpend-t small{ display:block; font-size:.77rem; color:#667085; margin-top:2px; }
.edu-histpend-t small em{ font-style:normal; color:#B54708; }
.edu-histpend li > * > i:last-child{ color:#CBD5E1; font-size:.78rem; }

/* ── Foros ── */
.edu-foro{ display:flex; gap:16px; background:#fff; border:1px solid #E4E7EC; border-radius:14px;
    padding:16px 18px; margin-bottom:12px; box-shadow:0 8px 22px rgba(16,24,40,.05); align-items:flex-start; }
.edu-foro-i{ width:48px; height:48px; border-radius:13px; background:#EAF2FE; color:#0049A8;
    display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex:none;
    position:relative; text-decoration:none!important; }
.edu-foro-i.hot{ background:#0060D0; color:#fff; }
.edu-foro-i b{ position:absolute; top:-5px; right:-5px; background:#D92D20; color:#fff;
    font-size:.65rem; font-weight:700; border-radius:99px; padding:1px 6px; border:2px solid #fff; }
.edu-foro-b{ flex:1; min-width:0; }
.edu-foro-top{ display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.edu-foro-top .edu-chip{ margin-left:0; }
.edu-foro-curso{ font-size:.76rem; color:#667085; }
.edu-foro-curso i{ margin-right:5px; }
.edu-foro-b h3{ font-size:1rem; font-weight:700; margin:0 0 5px; letter-spacing:-.01em; }
.edu-foro-b h3 a{ color:#101828!important; text-decoration:none!important; }
.edu-foro-b h3 a:hover{ color:#0060D0!important; }
.edu-foro-intro{ margin:0 0 8px; font-size:.84rem; color:#667085; line-height:1.5; }
.edu-foro-meta{ display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.79rem; color:#667085; }
.edu-foro-meta i{ margin-right:5px; color:#667085; }
.edu-foro-meta a{ color:#0060D0!important; text-decoration:none!important; }
.edu-foro-act{ display:flex; flex-direction:column; gap:8px; flex:none; }
.edu-foro-act .edx-btn{ justify-content:center; white-space:nowrap; }

.edu-foromine{ list-style:none; margin:0; padding:0; }
.edu-foromine li + li{ border-top:1px solid #F2F4F7; }
.edu-foromine a{ display:block; padding:11px 4px; text-decoration:none!important; color:inherit!important; }
.edu-foromine a:hover{ background:#FAFBFD; }
.edu-foromine strong{ display:block; font-size:.87rem; color:#101828; font-weight:650; }
.edu-foromine p{ margin:3px 0 4px; font-size:.8rem; color:#667085; line-height:1.45; }
.edu-foromine small{ font-size:.73rem; color:#667085; }
.edu-forohelp{ list-style:none; margin:0; padding:0; }
.edu-forohelp li{ display:flex; gap:10px; font-size:.82rem; color:#667085; line-height:1.5; padding:7px 0; }
.edu-forohelp li i{ color:#0060D0; width:16px; text-align:center; flex:none; margin-top:3px; }
.edu-forohelp strong{ color:#101828; }

/* ── Chat en vivo ── */
.edu-burbuja.nueva{ animation:edu-msg-in .22s ease-out; }
@keyframes edu-msg-in{ from{ opacity:0; transform:translateY(7px); } to{ opacity:1; transform:none; } }
.edu-msgenviar.enviando button i{ animation:edu-spin .7s linear infinite; }
@keyframes edu-spin{ to{ transform:rotate(360deg); } }
.edu-rail-n{ margin-left:auto; background:#D92D20; color:#fff; font-size:.66rem; font-weight:700;
    border-radius:99px; padding:1px 7px; line-height:1.5; }

/* ── Móvil ── */
@media (max-width:1100px){
    .edu-cvwrap{ grid-template-columns:1fr; }
    .edu-profwrap{ grid-template-columns:1fr; }
}
@media (max-width:991px){
    .edu-cvhero{ padding:20px; }
    .edu-cvhero-in{ flex-direction:column; gap:16px; }
    .edu-cvhero-act{ flex-direction:row; flex-wrap:wrap; width:100%; }
    .edu-cvhero-act .edx-btn{ flex:1; min-width:150px; }
    .edu-cvhero h1{ font-size:1.25rem; }
    .edu-cvmod > summary{ flex-wrap:wrap; padding:13px 14px; gap:10px; }
    .edu-cvmod-t{ flex-basis:calc(100% - 90px); }
    .edu-cvmod-p{ margin-left:46px; }
    .edu-cvact-in{ padding:10px 8px; gap:9px; }
    .edu-cvact-ic{ display:none; }
    .edu-profhead{ padding:16px; }
    .edu-profhead-l{ gap:13px; }
    .edu-profav img{ width:56px; height:56px; }
    .edu-profhead-t h1{ font-size:1.2rem; }
    .edu-profhead-r{ width:100%; }
    .edu-profhead-r .edx-btn{ flex:1; justify-content:center; }
    .edu-foro{ flex-wrap:wrap; padding:14px; gap:12px; }
    .edu-foro-act{ flex-direction:row; width:100%; }
    .edu-foro-act .edx-btn{ flex:1; }
    .edu-tlitem{ padding:11px 12px; gap:10px; }
    .edu-profstats{ grid-template-columns:1fr; }
}

/* Correcciones sobre fondo claro y página del QR */

/* .edx-btn.ghost nació para las cabeceras oscuras (texto blanco). Sobre una
   tarjeta blanca era invisible: aquí recupera contraste. */
.edu-profhead-r .edx-btn.ghost,
.edu-qrcard .edx-btn.ghost,
.edu-foro-act .edx-btn.ghost{ background:#F6F8FC; color:#0F3460!important; border:1px solid #E4E7EC; }
.edu-profhead-r .edx-btn.ghost:hover,
.edu-qrcard .edx-btn.ghost:hover,
.edu-foro-act .edx-btn.ghost:hover{ background:#EAF2FE; border-color:#BBD6F7; }

.edu-cvmod-p b.mut{ color:#667085; font-weight:500; font-size:.78rem; }
.edu-cvmod.nopct .edu-cvmod-n{ background:#F2F4F7; color:#667085; }

.edu-qrwrap{ display:grid; grid-template-columns:1fr 320px; gap:22px; align-items:start;
    max-width:900px; }
.edu-qrcard{ text-align:center; padding:28px 24px; }
.edu-qrcard h1{ font-size:1.35rem; font-weight:800; color:#101828; letter-spacing:-.03em; margin:0 0 8px; }
.edu-qrsub{ margin:0 auto 20px; font-size:.9rem; color:#667085; line-height:1.6; max-width:44ch; }
.edu-qrimg{ display:inline-block; padding:16px; background:#fff; border:1px solid #E4E7EC;
    border-radius:16px; box-shadow:0 8px 22px rgba(16,24,40,.07); }
.edu-qrimg img{ display:block; width:220px; height:220px; image-rendering:pixelated; }
.edu-qrwarn{ margin:18px auto 16px; font-size:.82rem; color:#B54708; line-height:1.55;
    background:#FEF6E7; border:1px solid #F5D9A8; border-radius:11px; padding:12px 14px; max-width:46ch; text-align:left; }
.edu-qrwarn i{ margin-right:6px; }
.edu-qrcard .edx-empty{ box-shadow:none; }
@media (max-width:1100px){ .edu-qrwrap{ grid-template-columns:1fr; } }

/* El texto de las listas de ayuda va en su propio <span>: con los <strong>
   sueltos, cada uno se convertía en columna flex y la frase se troceaba. */
.edu-forohelp li > span{ flex:1; min-width:0; }
.edu-forohelp li a{ color:#0060D0!important; text-decoration:none!important; }
.edu-forohelp li strong{ font-weight:650; }

/* En una rejilla, un hijo sin `min-width:0` no puede encogerse por debajo de su
   contenido mínimo: la columna derecha del curso imponía 448px de pista en un
   móvil de 390px y el resto del contenido quedaba recortado. */
.edu-cvwrap > *, .edu-profwrap > *, .edu-qrwrap > *, .edu-cwrap > *,
.edu-cvmain > *, .edu-cvaside > *, .edu-profcol > *{ min-width:0; }
.edu-cvkv span, .edu-cvring-meta span{ min-width:0; flex-wrap:wrap; }
.edu-cvkv b, .edu-cvring-meta b{ min-width:0; word-break:break-word; }
.edu-cvmod-t strong, .edu-cvact-t strong, .edu-profc-t strong,
.edu-foro-b h3, .edu-tltxt strong{ overflow-wrap:anywhere; }

/* Rejilla del calendario: `1fr` tiene como mínimo automático el min-content de
   la celda, así que el día con el evento de título más largo se llevaba 185 px
   de los 362 disponibles y empujaba los demás fuera de la pantalla en móvil.
   minmax(0,1fr) + min-width:0 obligan a las siete columnas a repartirse igual. */
.edu-calgrid{ grid-template-columns:repeat(7, minmax(0, 1fr)); }
.edu-calcell, .edu-caldow{ min-width:0; overflow:hidden; }
.edu-calev{ min-width:0; }
.edu-calev span{ max-width:100%; }

/* En móvil, «Nuevo evento» convivía con el desplegable de curso en una fila sin
   `flex-wrap`: el select ocupaba el ancho y el botón se salía de la pantalla. */
@media (max-width:991px){
    .edu-calfiltro{ flex-wrap:wrap; }
    .edu-calfiltro select{ min-width:0; flex:1 1 100%; }
    .edu-calfiltro .edx-btn{ flex:1 1 100%; justify-content:center; }
}

/* Verificación de diploma: campo para teclear el código. El QR es lo cómodo,
   pero quien recibe el diploma impreso necesita poder escribirlo. */
.edumgr-verify-form{ max-width:420px; margin:22px auto 0; text-align:center; }
.edumgr-verify-form form{ display:flex; gap:8px; flex-wrap:wrap; align-items:stretch; }
.edumgr-verify-label{ flex:1 1 100%; text-align:left; font-size:.78rem; font-weight:700;
    color:#667085; margin-bottom:2px; }
.edumgr-verify-input{ flex:1 1 200px; min-width:0; border:1px solid #E4E7EC; border-radius:10px;
    padding:11px 14px; font-size:.95rem; color:#101828; letter-spacing:.08em;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace; text-transform:uppercase; }
.edumgr-verify-input:focus{ outline:2px solid #0060D0; border-color:#0060D0; }
.edumgr-verify-btn{ flex:0 0 auto; border:0; border-radius:10px; background:#0060D0; color:#fff;
    font-size:.9rem; font-weight:600; padding:11px 20px; cursor:pointer; }
.edumgr-verify-btn:hover{ background:#0049A8; }
.edumgr-verify-hint{ font-size:.76rem; color:#667085; margin:10px 0 0; }

/* ==========================================================================
   ACCESIBILIDAD — WCAG 2.1 nivel AA
   Requisito del SEPE para plataformas de teleformación acreditadas.
   Verificado con axe-core sobre las páginas reales, no a ojo.
   ========================================================================== */

/* «Teleformación FUNDAE» bajo el logotipo daba 4,40:1 sobre el azul de la barra
   (rgba(255,255,255,.45)); el mínimo AA es 4,5:1. Con #9AA3B2 sube a 6,59:1. */
.edu-rail-txt small, .edx-brand-txt small{ color:#9AA3B2; }

/* Los grises apagados sobre tarjeta blanca daban 2,57:1. #667085 da 4,97:1
   sobre blanco y 4,68:1 sobre las tarjetas #F6F8FC, así que cumple en ambos. */
.edu-cvring-n small, .edu-cvtime small, .edu-profqr-links a,
.edu-tltime, .edu-tltxt em, .edu-foromine small, .edu-foro-curso,
.edu-cvact-t small, .edu-cvnext-t small, .edu-cvres-t small,
.edu-proft small, .edu-proflinks-t small, .edu-profacc small,
.edu-profstats small, .edu-histpend-t small, .edumgr-verify-hint,
.edu-msgtxt small, .edu-msgmeta em, .edu-burbuja-c time,
.edu-panel-note, .edu-msgnada p{ color:#667085; }

/* El foco tiene que verse siempre: navegación por teclado (WCAG 2.4.7).
   El navegador lo pinta por defecto, pero varios estilos lo quitaban. */
.edx a:focus-visible, .edx button:focus-visible, .edx input:focus-visible,
.edx select:focus-visible, .edx textarea:focus-visible, .edx summary:focus-visible,
.edx [tabindex]:focus-visible, .edu-rail a:focus-visible{
    outline:3px solid #0060D0; outline-offset:2px; border-radius:4px;
}
.edu-rail a:focus-visible{ outline-color:#8FC6FF; }

/* Zonas con scroll propio: se pueden recorrer con el teclado (WCAG 2.1.1). */
.edu-msgcuerpo:focus-visible, .edu-tablewrap:focus-visible{
    outline:3px solid #0060D0; outline-offset:-3px;
}

/* Quien navega con teclado necesita poder saltarse la barra lateral. */
.edu-skip{ position:absolute; left:-9999px; top:0; z-index:9999;
    background:#0060D0; color:#fff!important; padding:12px 20px; border-radius:0 0 8px 0;
    font-weight:600; text-decoration:none!important; }
.edu-skip:focus{ left:0; }

/* Respetar a quien ha pedido menos animación (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce){
    .edx *, .edu-rail *{ animation-duration:.01ms!important; animation-iteration-count:1!important;
        transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

/* Últimos tres incumplimientos de contraste, medidos uno a uno:
   · lista de conversaciones sobre el azul del elemento activo #EAF2FE:
     #667085 daba 4,41 — #5F6875 da 5,00 (y 5,64 sobre blanco).
   · hora dentro de la burbuja azul propia sobre #0060D0:
     rgba(255,255,255,.75) daba 3,97 — #D9E7FA da 4,68.
   · «Teleformación FUNDAE» lo pisa el customcss del tema: se corrige allí. */
.edu-msgtxt small, .edu-msgmeta em{ color:#5F6875; }
.edu-burbuja.mia .edu-burbuja-c time{ color:#D9E7FA; }
.edu-rail-txt small, .edx-brand-txt small{ color:#9AA3B2!important; }

/* ── Centro de ayuda y documentación ── */
.edu-doc{ padding:26px 30px; }
.edu-doc h2{ font-size:1.35rem; font-weight:800; color:#101828; letter-spacing:-.03em; margin:0 0 12px; }
.edu-doc h3{ font-size:1rem; font-weight:700; color:#0F3460; margin:26px 0 8px; }
.edu-doc h3:first-of-type{ margin-top:20px; }
.edu-doc p{ margin:0 0 11px; font-size:.92rem; color:#475467; line-height:1.65; }
.edu-doc a{ color:#0060D0!important; }
.edu-doc strong{ color:#101828; }
.edu-doclist, .edu-docpasos{ margin:0 0 14px; padding-left:22px; }
.edu-doclist{ list-style:disc; }
.edu-docpasos{ list-style:decimal; }
.edu-doclist li, .edu-docpasos li{ font-size:.91rem; color:#475467; line-height:1.6; margin-bottom:7px; }
.edu-docnota{ font-size:.86rem!important; color:#5F6875!important; background:#F6F8FC;
    border-radius:10px; padding:12px 14px; }

.edu-docaviso{ display:flex; gap:14px; background:#FEF6E7; border:1px solid #F5D9A8;
    border-radius:12px; padding:15px 17px; margin:16px 0 18px; }
.edu-docaviso > i{ color:#B54708; font-size:1.1rem; flex:none; margin-top:2px; }
.edu-docaviso > div > strong:first-child{ display:block; margin-bottom:5px; color:#7A4A05; }
.edu-docaviso p strong{ display:inline; color:inherit; font-weight:700; }
.edu-docaviso p{ margin:0 0 7px; font-size:.88rem; color:#6B4A16; }
.edu-docaviso p:last-child{ margin-bottom:0; }
.edu-docaviso.neutro{ background:#EAF2FE; border-color:#BBD6F7; }
.edu-docaviso.neutro > i{ color:#0049A8; }
.edu-docaviso.neutro p{ color:#1D3E6B; }

.edu-docgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:12px 0 16px; }
.edu-docgrid > div{ background:#F6F8FC; border-radius:12px; padding:16px 14px; text-align:center; min-width:0; }
.edu-docgrid i{ font-size:1.5rem; color:#0060D0; display:block; margin-bottom:8px; }
.edu-docgrid strong{ display:block; font-size:.9rem; color:#101828; }
.edu-docgrid small{ display:block; font-size:.75rem; color:#5F6875; margin-top:3px; }

.edu-docdos{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:14px 0 20px; }
.edu-docdos-c{ background:#F6F8FC; border-radius:14px; padding:18px; min-width:0; }
.edu-docdos-c .edu-profi{ margin-bottom:11px; }
.edu-docdos-c h3{ margin:0 0 8px; font-size:.95rem; }
.edu-docdos-c p{ font-size:.86rem; margin-bottom:8px; }
.edu-docplazo{ background:#fff; border-radius:9px; padding:9px 12px; font-size:.83rem!important;
    color:#0F3460!important; margin-bottom:0!important; }
@media (max-width:900px){ .edu-docdos{ grid-template-columns:1fr; } }

.edu-ayudatut{ list-style:none; margin:0; padding:0; }
.edu-ayudatut li{ display:flex; align-items:center; gap:11px; padding:11px 0; }
.edu-ayudatut li + li{ border-top:1px solid #F2F4F7; }
.edu-ayudatut img{ width:40px; height:40px; border-radius:50%; object-fit:cover; flex:none; }
.edu-ayudatut span{ flex:1; min-width:0; }
.edu-ayudatut strong{ display:block; font-size:.88rem; color:#101828; font-weight:650; }
.edu-ayudatut small{ display:block; font-size:.75rem; color:#5F6875;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-ayudanota{ font-size:.8rem; color:#5F6875; line-height:1.55; margin:12px 0 0;
    padding-top:12px; border-top:1px solid #F2F4F7; }
.edu-ayudanota i{ color:#0060D0; margin-right:5px; }
.edu-ayudap{ font-size:.86rem; color:#475467; line-height:1.55; margin:0 0 13px; }
.edu-ayuda .edu-tabs a i{ margin-right:7px; opacity:.7; }
.edu-ayuda .edu-tabs a.on i{ opacity:1; }
@media (max-width:991px){
    .edu-doc{ padding:20px 18px; }
    .edu-ayuda .edu-toolbar{ flex-wrap:wrap; }
    .edu-ayuda .edu-toolbar .edx-btn{ width:100%; justify-content:center; }
}

/* WCAG 1.4.1 (uso del color): un enlace dentro de un párrafo no puede
   distinguirse solo por el color. Dentro de la documentación van subrayados. */
.edu-doc p a, .edu-doc li a{ text-decoration:underline!important; text-underline-offset:2px; }
.edu-doc p a:hover, .edu-doc li a:hover{ text-decoration-thickness:2px; }

/* Cuando el usuario no tiene foto, Moodle no pinta un <img> sino un
   <span class="userinitials"> con las iniciales. Dentro de una lista flex ese
   span heredaba `flex:1` y el avatar salía ovalado. */
.edu-ayudatut .userinitials,
.edu-nuevomsg-p .userinitials,
.edu-profav .userinitials,
.edx-user .userinitials{ flex:none!important; border-radius:50%; aspect-ratio:1; }
.edu-ayudatut > li > .userinitials{ width:40px; height:40px; font-size:.85rem; }
.edu-profav .userinitials{ width:76px; height:76px; font-size:1.5rem; border:3px solid #EAF2FE; }
@media (max-width:991px){ .edu-profav .userinitials{ width:56px; height:56px; font-size:1.1rem; } }

/* ==========================================================================
   Barra superior de Moodle: campana y sobre invisibles
   ==========================================================================
   El tema deja el <i> en gris oscuro pero pinta su ::before —que es donde vive
   el glifo de Font Awesome— en blanco puro sobre una barra blanca: relación de
   contraste 1,00. El resultado es que el alumno ve la insignia roja «3» pero no
   la campana ni el sobre, y no sabe dónde pulsar.
   Se corrige el pseudo-elemento, no el <i>, que es donde está el problema.
   #475467 da 7,49:1 sobre blanco.
   ========================================================================== */
#header .popover-region .popover-region-toggle,
#header .popover-region .popover-region-toggle::before,
#header .popover-region .popover-region-toggle .icon,
#header .popover-region .popover-region-toggle .icon::before,
.navbar .popover-region-toggle,
.navbar .popover-region-toggle::before,
.navbar .popover-region-toggle .icon,
.navbar .popover-region-toggle .icon::before{
    color:#475467!important;
    -webkit-text-fill-color:#475467!important;
}
.navbar .popover-region-toggle:hover .icon,
.navbar .popover-region-toggle:hover .icon::before,
.navbar .popover-region-toggle:focus-visible .icon,
.navbar .popover-region-toggle:focus-visible .icon::before,
#header .popover-region .popover-region-toggle:hover .icon,
#header .popover-region .popover-region-toggle:hover .icon::before{
    color:#0060D0!important;
    -webkit-text-fill-color:#0060D0!important;
}
/* El foco tiene que verse también aquí: se navega con teclado. */
.navbar .popover-region-toggle:focus-visible{
    outline:3px solid #0060D0; outline-offset:2px; border-radius:8px;
}

/* La insignia de no leídos vive DENTRO del botón, así que heredaba el gris de
   la regla de arriba y perdía el rojo que la hace destacar. #B42318 da 6,49:1. */
.navbar .popover-region-toggle .count-container,
.navbar .popover-region-toggle .count-container *,
#header .popover-region .popover-region-toggle .count-container,
#header .popover-region .popover-region-toggle .count-container *{
    color:#fff!important; -webkit-text-fill-color:#fff!important;
    background:#B42318!important;
}
.navbar .popover-region-toggle .count-container{
    border-radius:99px; padding:1px 6px; font-weight:700; line-height:1.4;
}

/* ==========================================================================
   Panel del tutor-formador
   ========================================================================== */

.sr-only{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ── Cifras de cabecera ── */
.edu-tutkpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:14px; margin-bottom:18px; }
.edu-tutkpi{ background:#fff; border:1px solid #E4E7EC; border-radius:14px; padding:16px 18px;
    box-shadow:0 8px 22px rgba(16,24,40,.05); min-width:0; }
.edu-tutkpi .edu-profi{ margin-bottom:10px; }
.edu-tutkpi b{ display:block; font-size:1.9rem; font-weight:800; color:#101828; letter-spacing:-.03em; line-height:1.1; }
.edu-tutkpi small{ display:block; font-size:.79rem; color:#5F6875; margin-top:3px; line-height:1.4; }
.edu-tutkpi.aviso{ border-color:#F5D9A8; background:#FFFDF7; }
.edu-tutkpi.alerta{ border-color:#F3C7C2; background:#FFFAF9; }

/* ── Ratio de tutorización ── */
.edu-tutratio{ margin-bottom:18px; }
.edu-tutratio-t{ display:flex; align-items:baseline; justify-content:space-between; gap:12px;
    margin-bottom:9px; flex-wrap:wrap; }
.edu-tutratio-t strong{ font-size:.98rem; color:#101828; }
.edu-tutratio-t span{ font-size:.84rem; color:#5F6875; }
.edu-tutratio-n{ margin:10px 0 0; font-size:.82rem; color:#5F6875; line-height:1.55; }
.edu-tutratio-n i{ margin-right:6px; color:#B54708; }
.edu-tutratio-n i.ok{ color:#2A6E1C; }

/* ── Actividad reciente ── */
.edu-tutact{ list-style:none; margin:0; padding:0; }
.edu-tutact li{ display:flex; align-items:center; gap:13px; padding:11px 0; }
.edu-tutact li + li{ border-top:1px solid #F2F4F7; }
.edu-tutact .edu-tltxt strong{ font-weight:600; }
.edu-tutact a{ color:#0060D0!important; text-decoration:none!important; }

/* ── Tutorías pendientes ── */
.edu-tuttut{ list-style:none; margin:0; padding:0; }
.edu-tuttut li + li{ border-top:1px solid #F2F4F7; }
.edu-tuttut a{ display:block; padding:11px 4px; text-decoration:none!important;
    color:inherit!important; border-radius:9px; }
.edu-tuttut a:hover{ background:#FAFBFD; }
.edu-tuttut-t strong{ display:block; font-size:.88rem; color:#101828; font-weight:650; }
.edu-tuttut-t small{ display:block; font-size:.79rem; color:#5F6875; margin:2px 0 4px; line-height:1.45; }
.edu-tuttut-t em{ display:block; font-style:normal; font-size:.75rem; color:#5F6875; }
.edu-tuttut-t em i{ margin-right:5px; }
.edu-tuttut li.fuera{ border-left:3px solid #B42318; padding-left:9px; }
.edu-tuttut li.fuera em{ color:#B42318; font-weight:600; }

/* ── Sin dar señales ── */
.edu-tutparados{ list-style:none; margin:0; padding:0; }
.edu-tutparados li + li{ border-top:1px solid #F2F4F7; }
.edu-tutparados a{ display:flex; align-items:center; gap:10px; padding:10px 4px;
    text-decoration:none!important; color:inherit!important; }
.edu-tutparados a:hover{ background:#FAFBFD; }
.edu-tutparados span{ flex:1; min-width:0; }
.edu-tutparados strong{ display:block; font-size:.87rem; color:#101828; font-weight:650; }
.edu-tutparados small{ display:block; font-size:.75rem; color:#5F6875;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-tutparados b{ flex:none; font-size:.8rem; font-weight:700; color:#B54708;
    background:#FEF6E7; border-radius:99px; padding:2px 9px; }
.edu-tutcurso-n{ display:block; font-size:.74rem; color:#5F6875; margin-top:5px; }

/* ── Filtros del alumnado ── */
.edu-tutfiltros{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.edu-tutfiltros select{ border:1px solid #E4E7EC; border-radius:10px; padding:9px 12px;
    font-size:.85rem; background:#fff; color:#101828; max-width:230px; }
.edu-tutbuscar{ position:relative; display:flex; align-items:center; }
.edu-tutbuscar i{ position:absolute; left:12px; color:#98A2B3; font-size:.82rem; pointer-events:none; }
.edu-tutbuscar input{ border:1px solid #E4E7EC; border-radius:10px; padding:9px 12px 9px 32px;
    font-size:.85rem; color:#101828; min-width:210px; }
.edu-tutbuscar input:focus{ outline:2px solid #0060D0; border-color:#0060D0; }

/* ── Tabla de alumnado ── */
.edu-tuttabla td{ vertical-align:top; }
.edu-tuttabla td a{ color:#0060D0!important; text-decoration:none!important; }
.edu-tutbar{ display:inline-block; vertical-align:middle; width:56px; height:6px;
    border-radius:99px; background:#E4E7EC; overflow:hidden; margin-right:7px; }
.edu-tutbar i{ display:block; height:100%; border-radius:99px; background:#40B030; }
.edu-tutdias{ color:#B54708!important; font-weight:600; }
.edu-tutdip{ color:#2A6E1C; font-weight:600; font-size:.72rem; }
.edu-tutdip i{ margin-right:3px; }
.edu-tutacc{ white-space:nowrap; }
.edu-tutacc .edx-btn{ padding:6px 11px; font-size:.8rem; }
.edu-tutacc .edx-btn.ghost{ background:#F6F8FC; color:#0F3460!important; border:1px solid #E4E7EC; }

/* ── Indicadores FUNDAE de la ficha ── */
.edu-tutind{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.edu-tutind-c{ background:#FFFAF7; border:1px solid #F5D9A8; border-radius:13px; padding:15px 16px; min-width:0; }
.edu-tutind-c.ok{ background:#F4FBF2; border-color:#CDE9C4; }
.edu-tutind-h{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:9px; }
.edu-tutind-h span{ font-size:.85rem; color:#475467; font-weight:600; }
.edu-tutind-h b{ font-size:1.35rem; font-weight:800; color:#101828; letter-spacing:-.02em; }
.edu-tutind-bar{ position:relative; height:8px; border-radius:99px; background:#E4E7EC; overflow:visible; }
.edu-tutind-bar i{ display:block; height:100%; border-radius:99px; background:#B54708; }
.edu-tutind-c.ok .edu-tutind-bar i{ background:#40B030; }
.edu-tutind-bar u{ position:absolute; top:-3px; width:2px; height:14px; background:#0F3460;
    border-radius:2px; text-decoration:none; }
.edu-tutind-c small{ display:block; font-size:.77rem; color:#5F6875; margin-top:9px; }
.edu-tutind-e{ display:block; font-size:.78rem; font-weight:650; color:#B54708; margin-top:6px; }
.edu-tutind-c.ok .edu-tutind-e{ color:#2A6E1C; }
.edu-tutind-e i{ margin-right:5px; }

.edu-tutmail{ font-size:.82rem; }
.edu-tutmail a{ color:#0060D0!important; text-decoration:none!important; }
.edu-tutcursohead{ margin:8px 0 0!important; font-size:.85rem; color:#5F6875; }
.edu-tutcursohead i{ margin-right:6px; color:#98A2B3; }

/* ── Circuito FUNDAE ── */
.edu-tutcircuito{ list-style:none; margin:0; padding:0; }
.edu-tutcircuito li{ display:flex; align-items:center; gap:11px; padding:9px 0; font-size:.86rem; color:#5F6875; }
.edu-tutcircuito li + li{ border-top:1px solid #F2F4F7; }
.edu-tutcircuito li i{ color:#CBD5E1; width:16px; text-align:center; flex:none; }
.edu-tutcircuito li.ok{ color:#101828; }
.edu-tutcircuito li.ok i{ color:#40B030; }
.edu-tutcircuito li span small{ display:block; font-size:.73rem; color:#5F6875; }

/* ── Tarjeta de curso del tutor ── */
.edu-tutcurso{ background:#fff; border:1px solid #E4E7EC; border-radius:16px; padding:20px 22px;
    margin-bottom:16px; box-shadow:0 8px 22px rgba(16,24,40,.05); }
.edu-tutcurso-h{ display:flex; gap:20px; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; }
.edu-tutcurso-t{ flex:1; min-width:0; }
.edu-tutcurso-tags{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:7px; }
.edu-tutcurso-tags .edu-chip{ margin-left:0; }
.edu-tutcurso-fechas{ font-size:.76rem; color:#5F6875; }
.edu-tutcurso h2{ font-size:1.12rem; font-weight:750; color:#101828; letter-spacing:-.02em; margin:0 0 6px; }
.edu-tutcurso-res{ margin:0; font-size:.85rem; color:#5F6875; line-height:1.55; }
.edu-tutcurso-acc{ display:flex; gap:8px; flex:none; flex-wrap:wrap; }
.edu-tutcurso-m{ display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:12px;
    margin-top:16px; padding-top:16px; border-top:1px solid #F2F4F7; }
.edu-tutcurso-m span{ min-width:0; }
.edu-tutcurso-m small{ display:block; font-size:.72rem; color:#5F6875; margin-bottom:3px; }
.edu-tutcurso-m b{ display:block; font-size:1.05rem; font-weight:750; color:#101828; }
.edu-tutcurso-m b.ok{ color:#2A6E1C; }
.edu-tutcurso-m b.warn{ color:#B54708; }
.edu-tutcurso-m b.bad{ color:#B42318; }
.edu-tutcurso-aviso{ display:flex; gap:12px; margin-top:15px; background:#FEF6E7;
    border:1px solid #F5D9A8; border-radius:12px; padding:13px 15px; }
.edu-tutcurso-aviso > i{ color:#B54708; flex:none; margin-top:2px; }
.edu-tutcurso-aviso strong{ display:block; font-size:.88rem; color:#7A4A05; margin-bottom:4px; }
.edu-tutcurso-aviso p{ margin:0 0 6px; font-size:.83rem; color:#6B4A16; line-height:1.5; }
.edu-tutcurso-aviso a{ font-size:.82rem; font-weight:600; color:#0060D0!important; text-decoration:none!important; }

@media (max-width:991px){
    .edu-tutkpis{ grid-template-columns:1fr 1fr; }
    .edu-tutfiltros{ width:100%; }
    .edu-tutfiltros select, .edu-tutbuscar, .edu-tutbuscar input{ flex:1 1 100%; min-width:0; max-width:none; }
    .edu-tutcurso{ padding:16px; }
    .edu-tutcurso-acc{ width:100%; }
    .edu-tutcurso-acc .edx-btn{ flex:1; justify-content:center; }
    .edu-tutcurso-m{ grid-template-columns:1fr 1fr; }
    .edu-tutacc{ display:flex; gap:6px; }
}

/* ── Pie de la barra lateral: perfil y salida ──
   Las páginas del plugin usan el layout «embedded», que oculta la barra superior
   de Moodle y con ella el menú del avatar, donde vive el «Salir». Sin esto no
   había ninguna forma de cerrar sesión desde el panel. */
.edu-rail-pie{ margin-top:auto; padding-top:14px; border-top:1px solid rgba(255,255,255,.10); }
.edu-rail-yo{ display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px;
    text-decoration:none!important; }
.edu-rail-yo:hover{ background:rgba(255,255,255,.07); }
.edu-rail-yo-av{ width:34px; height:34px; border-radius:50%; flex:none; display:flex;
    align-items:center; justify-content:center; background:rgba(255,255,255,.14);
    color:#fff; font-size:.78rem; font-weight:700; letter-spacing:.02em; }
.edu-rail-yo-t{ min-width:0; }
.edu-rail-yo-t strong{ display:block; color:#fff; font-size:.85rem; font-weight:650;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-rail-yo-t small{ display:block; color:#9AA3B2; font-size:.72rem; }
.edu-rail-salir{ display:flex; align-items:center; gap:11px; padding:10px 12px; margin-top:3px;
    border-radius:9px; color:#C3C7CE!important; text-decoration:none!important;
    font-size:.88rem; font-weight:500; }
.edu-rail-salir i{ width:17px; font-size:.9rem; }
.edu-rail-salir:hover{ background:rgba(180,35,24,.22); color:#fff!important; }
.edu-rail-salir:focus-visible{ outline:3px solid #8FC6FF; outline-offset:2px; }

/* La base de .edu-rail la define el CSS del tema. Aquí solo se garantiza que sea
   una columna flexible, para que `margin-top:auto` empuje el pie abajo del todo
   y que la barra pueda desplazarse si no cabe. */
#edu-rail.edu-rail{ display:flex; flex-direction:column; overflow-y:auto; }
#edu-rail.edu-rail > .edu-rail-nav{ flex:none; }

/* ── Acreditación del tutor ── */
.edu-tutacred{ display:flex; gap:14px; border-radius:14px; padding:15px 18px; margin-bottom:18px;
    border:1px solid #F5D9A8; background:#FEF6E7; }
.edu-tutacred > i{ font-size:1.15rem; color:#B54708; flex:none; margin-top:2px; }
.edu-tutacred strong{ display:block; font-size:.92rem; color:#7A4A05; margin-bottom:4px; }
.edu-tutacred p{ margin:0 0 7px; font-size:.85rem; color:#6B4A16; line-height:1.55; }
.edu-tutacred a{ font-size:.84rem; font-weight:600; color:#0060D0!important; text-decoration:none!important; }
.edu-tutacred.ok{ border-color:#CDE9C4; background:#F4FBF2; }
.edu-tutacred.ok > i{ color:#2A6E1C; }
.edu-tutacred.ok strong{ color:#1F5715; }
.edu-tutacred.ok p{ color:#33623C; margin-bottom:0; }
.edu-proft strong em.mut{ font-style:normal; color:#98A2B3; font-weight:400; }

/* Filtro por fechas del informe de tutorías */
.edu-tutfecha{ display:flex; align-items:center; gap:7px; font-size:.82rem; color:#5F6875; }
.edu-tutfecha input{ border:1px solid #E4E7EC; border-radius:10px; padding:8px 11px;
    font-size:.84rem; color:#101828; background:#fff; }
.edu-tutfecha input:focus{ outline:2px solid #0060D0; border-color:#0060D0; }

/* Marca de actuación proactiva y aviso de diploma emitible */
.edu-tutproa{ display:inline-block; font-size:.7rem; font-weight:650; color:#B54708; margin-top:4px; }
.edu-tutproa i{ margin-right:4px; }
.edu-tutdipok{ margin:0 0 12px; font-size:.85rem; color:#2A6E1C; line-height:1.5; }
.edu-tutdipok i{ margin-right:6px; }

/* ── Formulario de tutorías síncronas ── */
.edu-tutform{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
.edu-tutform label{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.edu-tutform label.ancho{ grid-column:1/-1; }
.edu-tutform label > span{ font-size:.79rem; font-weight:600; color:#475467; }
.edu-tutform input, .edu-tutform select, .edu-tutform textarea{
    border:1px solid #E4E7EC; border-radius:10px; padding:10px 12px; font-size:.88rem;
    color:#101828; background:#fff; font-family:inherit; min-width:0; }
.edu-tutform input:focus, .edu-tutform select:focus, .edu-tutform textarea:focus{
    outline:2px solid #0060D0; border-color:#0060D0; }
.edu-tutform textarea{ resize:vertical; }
.edu-tutform-acta{ grid-column:1/-1; border:1px dashed #CBD5E1; border-radius:12px;
    padding:14px 16px; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:0; }
.edu-tutform-acta legend{ font-size:.79rem; font-weight:650; color:#5F6875; padding:0 6px; }
.edu-tutform label.check{ flex-direction:row; align-items:center; gap:9px; grid-column:1/-1; }
.edu-tutform label.check input{ width:17px; height:17px; padding:0; flex:none; }
.edu-tutform label.check span{ font-size:.86rem; font-weight:500; color:#101828; }
.edu-tutform-acc{ grid-column:1/-1; display:flex; gap:9px; }
.edu-tutenlace{ font-size:.78rem; color:#0060D0!important; text-decoration:none!important; }
.edu-tutenlace i{ margin-right:4px; }
@media (max-width:991px){ .edu-tutform{ grid-template-columns:1fr; } .edu-tutform-acta{ grid-template-columns:1fr; } }

/* WCAG 1.4.1: los enlaces dentro de una frase no pueden distinguirse solo por
   el color. Aplica también a las listas de ayuda y a los avisos del panel. */
.edu-forohelp li a, .edu-tutacred a, .edu-ayudanota a,
.edu-tutcurso-aviso a, .edu-docaviso a{
    text-decoration:underline!important; text-underline-offset:2px;
}

/* ── Inspector ── */
.edu-insp-ro{ display:inline-flex; align-items:center; gap:7px; background:#F2F4F7; color:#475467;
    font-size:.76rem; font-weight:650; border-radius:99px; padding:5px 12px; margin-right:12px; }
.edu-insp-ro i{ font-size:.72rem; }
.edu-rail-insp{ background:linear-gradient(160deg,#1B2B44,#12406B); }
.edu-insp-bajo{ color:#B42318!important; font-weight:650; }
.edu-insp-mal{ background:#FFF8F7; }
.edu-insp-mal td{ border-bottom-color:#F3C7C2; }
.edu-inspalertas{ list-style:none; margin:0; padding:0; }
.edu-inspalertas li{ display:flex; gap:12px; padding:12px 0; align-items:flex-start; }
.edu-inspalertas li + li{ border-top:1px solid #F2F4F7; }
.edu-inspalertas strong{ display:block; font-size:.85rem; color:#101828; font-weight:650; line-height:1.45; }
.edu-inspalertas small{ display:block; font-size:.77rem; color:#5F6875; margin-top:4px; line-height:1.5; }
.edu-inspacred{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px;
    margin-top:14px; padding-top:14px; border-top:1px solid #F2F4F7; }
.edu-inspacred span{ min-width:0; }
.edu-inspacred small{ display:block; font-size:.72rem; color:#5F6875; margin-bottom:2px; }
.edu-inspacred b{ display:block; font-size:.86rem; color:#101828; font-weight:650; overflow-wrap:anywhere; }
@media (max-width:991px){
    .edu-insp-ro{ display:none; }
    .edu-inspacred{ grid-template-columns:1fr; }
}

/* Aviso de rol cambiado: sin esto, quien usa «ver como alumno» aterriza en una
   página del plugin (layout embedded, sin barra de Moodle) y no tiene por dónde
   volver a su rol. */
.edu-rail-rol{ background:#7A4A05; border:1px solid #B54708; border-radius:12px;
    padding:13px 14px; margin-bottom:14px; }
.edu-rail-rol strong{ display:block; color:#FFE9C7; font-size:.83rem; font-weight:700; margin-bottom:5px; }
.edu-rail-rol strong i{ margin-right:6px; }
.edu-rail-rol small{ display:block; color:#F0D7B4; font-size:.73rem; line-height:1.5; margin-bottom:9px; }
.edu-rail-rol a{ display:inline-flex; align-items:center; gap:6px; background:#fff; color:#7A4A05!important;
    font-size:.79rem; font-weight:700; border-radius:8px; padding:7px 13px; text-decoration:none!important; }
.edu-rail-rol a:hover{ background:#FFE9C7; }

/* ── Cursos auditables (inspector) ── */
.edu-inspbanner{ display:flex; align-items:center; justify-content:space-between; gap:20px;
    flex-wrap:wrap; background:linear-gradient(115deg,#0B1220,#0F3460); border-radius:16px;
    padding:20px 24px; margin-bottom:20px; position:relative; overflow:hidden; }
.edu-inspbanner::after{ content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px;
    background:radial-gradient(circle,rgba(0,96,208,.30),transparent 65%); pointer-events:none; }
.edu-inspbanner > div{ position:relative; z-index:1; min-width:0; }
.edu-inspbanner strong{ display:block; color:#fff; font-size:1.05rem; font-weight:750; letter-spacing:-.02em; }
.edu-inspbanner span{ display:block; color:rgba(255,255,255,.74); font-size:.83rem; margin-top:3px; }
.edu-inspbanner .edx-btn{ position:relative; z-index:1; flex:none; }

.edu-inspgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:18px; }
.edu-inspcard{ background:#fff; border:1px solid #E4E7EC; border-radius:16px; overflow:hidden;
    box-shadow:0 8px 22px rgba(16,24,40,.05); display:flex; flex-direction:column; min-width:0; }
.edu-inspcard-img{ height:120px; background:linear-gradient(135deg,#0B1220,#1F7A8C);
    background-size:cover; background-position:center; display:flex; align-items:center;
    justify-content:center; color:rgba(255,255,255,.55); font-size:1.8rem; flex:none; }
.edu-inspcard-b{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:9px; flex:1; min-width:0; }
.edu-inspcard h2{ font-size:1rem; font-weight:750; color:#101828; letter-spacing:-.02em; margin:0; line-height:1.35; }
.edu-inspcard-cod{ margin:0; font-size:.76rem; color:#5F6875;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.edu-inspcard-tags{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.edu-inspcard-tags .edu-chip{ margin-left:0; }
.edu-inspcard-h{ font-size:.76rem; color:#5F6875; }
.edu-inspcard-prog{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.edu-inspcard-prog .edx-bar{ flex:1 1 90px; min-width:70px; }
.edu-inspcard-prog b{ font-size:.83rem; color:#101828; }
.edu-inspcard-prog small{ font-size:.73rem; color:#5F6875; flex-basis:100%; }
.edu-inspcard-acc{ display:flex; gap:8px; margin-top:auto; padding-top:4px; }
.edu-inspcard-acc .edx-btn{ flex:1; justify-content:center; }
.edu-inspcard-acc .edx-btn.ghost{ background:#F6F8FC; color:#0F3460!important; border:1px solid #E4E7EC; }
.edu-inspcard-pie{ display:flex; align-items:center; gap:9px; margin:10px -18px -18px; padding:11px 18px;
    border-top:1px solid #F2F4F7; background:#FAFBFD; font-size:.79rem; font-weight:600;
    color:#0F3460!important; text-decoration:none!important; }
.edu-inspcard-pie:hover{ background:#EAF2FE; }
.edu-inspcard-pie span{ flex:1; min-width:0; }
.edu-inspcard-pie i:last-child{ color:#98A2B3; font-size:.74rem; }
.edu-inspacc{ display:flex; gap:9px; flex-wrap:wrap; }
@media (max-width:991px){
    .edu-inspgrid{ grid-template-columns:1fr; }
    .edu-inspbanner{ padding:16px 18px; }
    .edu-inspbanner .edx-btn{ width:100%; justify-content:center; }
}

/* «Estado por curso»: el nombre se partía en cuatro líneas mientras la columna
   de acciones se salía de la tarjeta. Se reparte el ancho a mano. */
.edu-inspestado{ table-layout:auto; width:100%; }
.edu-inspestado th:first-child, .edu-inspestado td:first-child{ min-width:190px; }
.edu-inspestado th:nth-child(2), .edu-inspestado td:nth-child(2),
.edu-inspestado th:nth-child(3), .edu-inspestado td:nth-child(3){ white-space:nowrap; width:1%; }
.edu-inspestado th:last-child, .edu-inspestado td:last-child{ width:1%; white-space:nowrap; }
.edu-inspestado .edu-tutacc{ display:flex; align-items:center; gap:6px; }
.edx-btn.sm.icon{ width:32px; padding:0; justify-content:center; flex:none; }
.edx-btn.sm.icon i{ margin:0; }

/* El texto del botón de las tarjetas de curso no debe partirse en dos líneas. */
.edu-inspcard-acc .edx-btn{ white-space:nowrap; font-size:.82rem; padding-left:10px; padding-right:10px; }
.edu-inspestado .edx-btn.sm.icon{ background:#F6F8FC; border:1px solid #E4E7EC; color:#0F3460!important; }
.edu-inspestado .edx-btn.sm.icon:hover{ background:#EAF2FE; }

/* ── Cabecera del informe de auditoría ── */
.edu-herovolver{ display:inline-flex; align-items:center; gap:7px; font-size:.82rem; font-weight:600;
    color:#5F6875!important; text-decoration:none!important; margin-bottom:12px; }
.edu-herovolver:hover{ color:#0F3460!important; }
.edu-insphero{ position:relative; overflow:hidden; border-radius:18px; padding:24px 26px;
    background:linear-gradient(115deg,#0B1220 0%,#0F3460 55%,#123C7A 100%);
    display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.edu-insphero::after{ content:''; position:absolute; right:-80px; top:-90px; width:280px; height:280px;
    background:radial-gradient(circle,rgba(0,96,208,.34),transparent 65%); pointer-events:none; }
.edu-insphero > *{ position:relative; z-index:1; min-width:0; }
.edu-insphero-t{ flex:1 1 320px; }
.edu-heroeyebrow{ display:inline-flex; align-items:center; gap:6px; font-size:.68rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.10em; color:rgba(255,255,255,.72);
    background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16);
    border-radius:999px; padding:3px 10px; }
.edu-insphero h1{ margin:10px 0 0; font-size:1.5rem; font-weight:780; letter-spacing:-.025em;
    color:#fff; line-height:1.25; }
.edu-herometa{ margin:9px 0 0; display:flex; gap:18px; flex-wrap:wrap;
    font-size:.83rem; color:rgba(255,255,255,.80); }
.edu-herometa span{ display:inline-flex; align-items:center; gap:6px; }
.edu-herometa i{ opacity:.65; }
.edu-insphero-a{ display:flex; flex-direction:column; align-items:flex-end; gap:11px; flex:none; }
.edu-herozip{ display:inline-flex; align-items:center; gap:9px; background:#38A63C; color:#fff!important;
    text-decoration:none!important; font-size:.85rem; font-weight:700; padding:10px 18px;
    border-radius:10px; box-shadow:0 4px 14px rgba(15,89,20,.38); white-space:nowrap; }
.edu-herozip:hover{ background:#2F8F33; }
.edu-heropills{ display:flex; gap:4px; background:rgba(0,0,0,.28); border-radius:999px; padding:4px; }
.edu-heropill{ display:inline-block; padding:6px 15px; border-radius:999px; font-size:.79rem;
    font-weight:650; text-decoration:none!important; color:rgba(255,255,255,.80)!important;
    white-space:nowrap; }
.edu-heropill:hover{ background:rgba(255,255,255,.12); color:#fff!important; }
.edu-heropill.on{ background:#fff; color:#0B1220!important; box-shadow:0 1px 4px rgba(0,0,0,.22); }
.edu-heronota{ display:flex; align-items:flex-start; gap:9px; margin:14px 0 18px; padding:11px 15px;
    background:#FFFAEB; border:1px solid #FEDF89; border-left:4px solid #DC6803;
    border-radius:0 10px 10px 0; font-size:.83rem; color:#7A2E0E; }
.edu-heronota i{ color:#B54708; margin-top:2px; flex:none; }
@media (max-width:767px){
    .edu-insphero{ padding:18px; }
    .edu-insphero-a{ align-items:stretch; width:100%; }
    .edu-herozip{ justify-content:center; }
    .edu-heropills{ justify-content:center; }
}

/* ── Resumen del curso (informe de auditoría) ── */
.edu-resumen{ margin:0 0 20px; }
.edu-resumen-h{ font-size:.98rem; font-weight:720; color:#101828; letter-spacing:-.015em; margin:0 0 11px; }
.edu-resumen-g{ display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:12px; }
.edu-rescard{ background:#fff; border:1px solid #E4E7EC; border-radius:14px; padding:15px 16px;
    box-shadow:0 4px 14px rgba(16,24,40,.04); min-width:0; }
.edu-rescard-i{ display:inline-flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:10px; font-size:.95rem; margin-bottom:10px; }
.edu-rescard.azul  .edu-rescard-i{ background:#EAF2FE; color:#0860D0; }
.edu-rescard.verde .edu-rescard-i{ background:#E7F6E8; color:#2F8F33; }
.edu-rescard.ambar .edu-rescard-i{ background:#FFF6E5; color:#B54708; }
.edu-rescard.lila  .edu-rescard-i{ background:#F0EBFF; color:#6941C6; }
.edu-rescard strong{ display:block; font-size:1.5rem; font-weight:760; color:#101828;
    letter-spacing:-.03em; line-height:1.1; }
.edu-rescard small{ display:block; font-size:.76rem; color:#5F6875; margin-top:4px; line-height:1.35; }
@media (max-width:479px){ .edu-resumen-g{ grid-template-columns:1fr 1fr; } }

/* Verificar diploma: llegar sin código no es un error, es el estado inicial. */
.edumgr-verify-neutral{ background:#F6F8FC; border:1px solid #E4E7EC; }
.edumgr-verify-icon-neutral{ color:#0860D0; }
.edu-insp .edumgr-verify-wrap{ max-width:620px; margin:0 auto; }

/* Conmutador de vista del administrador (barra lateral). */
.edu-rail-vista {
  padding: .6rem .75rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.edu-rail-vista > small {
  display: block;
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
  margin-bottom: .35rem;
}
.edu-rail-vista-op {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
}
.edu-rail-vista-op a {
  flex: 1 1 auto;
  text-align: center;
  padding: .28rem .45rem;
  border-radius: 6px;
  font-size: .74rem;
  line-height: 1.2;
  text-decoration: none;
  color: inherit;
  background: rgba(255,255,255,.07);
  transition: background .15s ease;
}
.edu-rail-vista-op a:hover,
.edu-rail-vista-op a:focus-visible {
  background: rgba(255,255,255,.16);
}
.edu-rail-vista-op a.activa {
  background: var(--edu-accent, #2f6fed);
  color: #fff;
  font-weight: 600;
}

/* Acceso a la administración de Moodle desde la barra del plugin. */
.edu-rail-adm {
  padding: .6rem .75rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.edu-rail-adm > small {
  display: block;
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
  margin-bottom: .35rem;
}
.edu-rail-adm-op {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.edu-rail-adm-op a {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .32rem .45rem;
  border-radius: 6px;
  font-size: .8rem;
  text-decoration: none;
  color: inherit;
  opacity: .85;
  transition: background .15s ease, opacity .15s ease;
}
.edu-rail-adm-op a:hover,
.edu-rail-adm-op a:focus-visible {
  background: rgba(255,255,255,.12);
  opacity: 1;
}
.edu-rail-adm-op a i { width: 1rem; text-align: center; }

/* Primeros pasos cuando el panel de gestión aún no tiene datos. */
.edu-primeros-pasos {
  margin: .75rem 0 0;
  padding-left: 1.2rem;
  line-height: 1.9;
}
.edu-primeros-pasos li { color: var(--edu-text-soft, #5b6472); }

/* Compañeros conectados (FUNDAE, interactividad entre participantes). */
.edu-rail-online {
  padding: .6rem .75rem;
  border-top: 1px solid rgba(255,255,255,.12);
}
.edu-rail-online > small {
  display: block;
  font-size: .68rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
  margin-bottom: .35rem;
}
.edu-rail-online-op { display: flex; flex-direction: column; gap: .1rem; }
.edu-rail-online-op a {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .22rem .4rem;
  border-radius: 6px;
  font-size: .78rem;
  color: inherit;
  text-decoration: none;
  opacity: .9;
}
.edu-rail-online-op a:hover,
.edu-rail-online-op a:focus-visible { background: rgba(255,255,255,.12); opacity: 1; }
.edu-rail-online-op a > span:last-child {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.edu-rail-punto {
  flex: 0 0 auto;
  width: .5rem; height: .5rem;
  border-radius: 50%;
  background: #35c46b;
}
.edu-rail-online-vacio { font-size: .75rem; opacity: .55; }

/* Enlace a la declaración de accesibilidad en el pie de la barra. */
.edu-rail-acc {
  display: block;
  padding: .25rem .45rem;
  font-size: .72rem;
  opacity: .6;
  color: inherit;
  text-decoration: underline;
}
.edu-rail-acc:hover, .edu-rail-acc:focus-visible { opacity: 1; }

/* Declaración de accesibilidad. */
.edu-acc { max-width: 46rem; margin: 0 auto; line-height: 1.65; }
.edu-acc h3 { margin-top: 1.6rem; font-size: 1.05rem; }

/* Horas de tutoría frente al tope de la acción formativa (FUNDAE, pág. 41). */
.edu-tuthoras {
  margin: 0 0 .75rem;
  padding: .5rem .75rem;
  border-radius: 8px;
  font-size: .85rem;
  background: var(--edu-surface-soft, rgba(0,0,0,.04));
}
.edu-tuthoras.excedido {
  background: rgba(220, 53, 69, .12);
  color: #b02a37;
  font-weight: 600;
}

/* Salir del campus desde cualquier pantalla.
   El pie de la barra —perfil y «Cerrar sesión»— quedaba al final de una
   columna más alta que la ventana: en un portátil de 768px caía por debajo
   del borde, y como las páginas del plugin ocultan la barra de Moodle,
   tampoco existía el menú del avatar. Resultado: no había forma visible de
   cerrar sesión sin adivinar que la barra hacía scroll.
   Se ancla el pie al fondo: siempre visible, sea cual sea el alto. */
#edu-rail {
  display: flex;
  flex-direction: column;
}
#edu-rail .edu-rail-pie {
  position: sticky;
  bottom: 0;
  margin-top: auto;
  background: inherit;
  z-index: 3;
}
