.academia-portal {
    --academia-border: #d7dee8;
    --academia-muted: #5d6b7a;
    --academia-surface: #ffffff;
    --academia-soft: #f4f7fb;
    --academia-text: #17212f;
    color: var(--academia-text);
    font-size: 16px;
}

.academia-preinscripcion { max-width: 960px; margin: 2rem auto; color: #17212f; }
.academia-preinscripcion [hidden] { display: none !important; }
.academia-preinscripcion { max-width: 780px; padding: 0 1rem; }
.academia-preinscripcion .academia-pre-progress { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; }
.academia-pre-progress li { padding: .55rem .4rem; border-bottom: 3px solid #d9e1ea; color: #647487; font-size: .86rem; font-weight: 700; }
.academia-pre-progress li.is-active { border-color: #1457a8; color: #1457a8; }
.academia-pre-progress li.is-complete { border-color: #72a7d8; color: #355a7a; }
.academia-pre-search, .academia-pre-other { display: grid; gap: .4rem; margin: .9rem 0; font-weight: 650; }
.academia-pre-search input, .academia-pre-other input { box-sizing: border-box; min-height: 2.8rem; padding: .72rem .8rem; border: 1px solid #b8c3cf; border-radius: .35rem; font: inherit; }
.academia-pre-course-group { padding: 0; overflow: hidden; }
.academia-pre-course-group summary { padding: .85rem; cursor: pointer; color: #1d5f91; font-weight: 700; }
.academia-pre-course-list { padding: 0 .85rem .75rem; }
.academia-pre-choice { padding: .2rem; border-radius: .3rem; }
.academia-pre-choice:has(input:checked) { background: #eaf4ff; font-weight: 650; }
.academia-pre-selected { display: flex; flex-wrap: wrap; gap: .4rem; margin: .8rem 0; align-items: center; }
.academia-pre-chip { border: 1px solid #93b9dd; border-radius: 999px; background: #eaf4ff; color: #174e7b; cursor: pointer; padding: .3rem .55rem; font: inherit; }
.academia-pre-special { margin: .75rem 0; padding: .75rem; border: 1px solid #cbd9e7; background: #f7fbff; }
.academia-pre-recipient { display: grid; gap: .65rem; margin: 1rem 0; padding: 1rem; border: 1px solid #d9e1ea; border-radius: .45rem; }
.academia-pre-recipient label { cursor: pointer; }
.academia-pre-edit-interests, .academia-pre-add-student, .academia-pre-remove-student, .academia-pre-review button { border: 0; background: none; color: #1457a8; cursor: pointer; font: inherit; font-weight: 700; padding: .25rem; text-decoration: underline; }
.academia-pre-review section { margin: .8rem 0; padding-bottom: .8rem; border-bottom: 1px solid #d9e1ea; }
.academia-pre-review h3 { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin: 0 0 .4rem; }
.academia-preinscripcion input:focus, .academia-preinscripcion textarea:focus, .academia-preinscripcion button:focus, .academia-preinscripcion summary:focus { outline: 3px solid rgba(34, 113, 177, .3); outline-offset: 2px; }
.academia-preintro { margin-bottom: 1.25rem; }
.academia-preintro-title { margin: 0 0 .6rem; font-size: clamp(1.7rem, 3vw, 2.35rem); line-height: 1.15; }
.academia-preintro-text { max-width: 760px; margin: 0 0 1rem; color: #5d6b7a; font-size: 1.05rem; line-height: 1.65; }
.academia-pre-progress { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0; color: #6b7785; font-size: .92rem; line-height: 1.5; }
.academia-pre-progress .is-active { color: #1d5f91; font-weight: 700; }
.academia-pre-step { padding: clamp(1.15rem, 3vw, 2rem); border: 1px solid #d9e1ea; border-radius: .7rem; background: #fff; box-shadow: 0 8px 24px rgba(23, 33, 47, .06); }
.academia-pre-step h2 { margin: 0 0 1.35rem; font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.25; }
.academia-pre-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; }
.academia-pre-grid label, .academia-pre-step > label, .academia-pre-student > label { display: flex; flex-direction: column; gap: .45rem; font-weight: 650; line-height: 1.35; }
.academia-pre-grid input, .academia-pre-grid textarea, .academia-pre-student textarea { box-sizing: border-box; width: 100%; min-height: 2.8rem; padding: .72rem .8rem; border: 1px solid #b8c3cf; border-radius: .35rem; background: #fff; color: #17212f; font: inherit; line-height: 1.4; transition: border-color .15s ease, box-shadow .15s ease; }
.academia-pre-grid input:focus, .academia-pre-grid textarea:focus, .academia-pre-student textarea:focus { border-color: #2271b1; outline: 0; box-shadow: 0 0 0 3px rgba(34, 113, 177, .16); }
.academia-pre-help { margin: 1.1rem 0 0; color: #5d6b7a; font-size: .92rem; line-height: 1.55; }
.academia-pre-choice { display: flex; gap: .55rem; align-items: flex-start; margin: .6rem 0; font-weight: 400; line-height: 1.45; }
.academia-pre-choice input { flex: 0 0 auto; margin-top: .2rem; }
.academia-pre-course-list, .academia-pre-student-interests { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1rem; }
.academia-pre-course-group { margin: 0 0 .8rem; padding: .7rem .85rem; border: 1px solid #e2e8ef; border-radius: .45rem; background: #fbfcfe; }
.academia-pre-course-group h3 { margin: 0 0 .35rem; color: #1d5f91; font-size: .82rem; letter-spacing: .05em; }
.academia-pre-student { margin-top: 1rem; padding: 1rem; border: 1px solid #d9e1ea; border-radius: .5rem; background: #fbfcfe; }
.academia-pre-student + .academia-pre-student { margin-top: .7rem; }
.academia-pre-student-heading, .academia-pre-step-heading, .academia-pre-actions { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.academia-pre-actions { margin-top: 1rem; }
.academia-pre-actions button { min-height: 2.8rem; padding: .65rem 1.2rem; border: 1px solid #2271b1; border-radius: .35rem; background: #2271b1; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.academia-pre-actions .academia-pre-back { border-color: #9aa8b6; background: #fff; color: #344454; }
.academia-pre-actions button:focus, .academia-pre-actions button:hover { filter: brightness(.94); outline: 0; box-shadow: 0 0 0 3px rgba(34, 113, 177, .16); }
.academia-pre-actions button:disabled { border-color: #b8c3cf; background: #d5dce3; color: #687684; cursor: not-allowed; filter: none; box-shadow: none; }
.academia-pre-destination { padding: .85rem 1rem; background: #eef6ff; border-left: 4px solid #2271b1; }
.academia-pre-consent { display: flex; gap: .55rem; margin-top: 1rem; font-weight: 400; line-height: 1.5; }
.academia-preinscripcion .academia-preinscripcion-honeypot { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }
.academia-formalizacion { max-width: 960px; margin: 2rem auto; }
.academia-formalizacion [hidden] { display: none !important; }
.academia-formalizacion-section { margin: 0 0 1.1rem; padding: clamp(1.05rem, 2.5vw, 1.7rem); border: 1px solid #d9e1ea; border-radius: .7rem; background: #fff; box-shadow: 0 8px 24px rgba(23, 33, 47, .05); }
.academia-formalizacion-section h2 { margin: 0 0 1rem; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.academia-formalizacion-section h3 { margin: 0 0 .8rem; }
.academia-formalizacion-readonly-help { color: #5d6b7a; line-height: 1.55; }
.academia-formalizacion-proposals { display: grid; gap: .7rem; }
.academia-formalizacion-proposal, .academia-formalizacion-student { padding: 1rem; border: 1px solid #e0e6ed; border-radius: .5rem; background: #fbfcfe; }
.academia-formalizacion-proposal dl { display: grid; gap: .5rem; margin: 0; }
.academia-formalizacion-proposal dl div { display: grid; grid-template-columns: minmax(115px, 20%) 1fr; gap: .7rem; }
.academia-formalizacion-proposal dt { color: #5d6b7a; font-weight: 700; }
.academia-formalizacion-proposal dd { margin: 0; }
.academia-formalizacion-proposal ul { margin: .3rem 0 0 1.1rem; padding: 0; }
.academia-formalizacion-student + .academia-formalizacion-student { margin-top: .8rem; }
.academia-formalizacion-student details { margin: 1rem 0; padding: .75rem; border: 1px solid #e0e6ed; border-radius: .4rem; }
.academia-formalizacion-student summary { cursor: pointer; font-weight: 700; }
.academia-formalizacion-payer { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid #e0e6ed; }
.academia-formalizacion-payer h4 { margin: 0; }
.academia-formalizacion-review { padding: .9rem 1rem; background: #f4f7fb; border-radius: .4rem; line-height: 1.55; }
.academia-formalizacion-review ul { margin: .5rem 0 0 1.1rem; padding: 0; }
.academia-formalizacion-warning { padding: .85rem 1rem; background: #fff8e5; border-left: 4px solid #c88a00; line-height: 1.55; }
.academia-formalizacion-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.academia-formalizacion-actions button { min-height: 2.8rem; padding: .65rem 1.2rem; border: 1px solid #2271b1; border-radius: .35rem; background: #2271b1; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.academia-formalizacion-actions button:disabled { border-color: #b8c3cf; background: #d5dce3; color: #687684; cursor: not-allowed; }
.academia-formalizacion-success, .academia-formalizacion-unavailable { max-width: 700px; margin: 2rem auto; padding: 1.3rem 1.5rem; border: 1px solid #8fc79b; border-radius: .6rem; background: #f4fff6; }
.academia-formalizacion-unavailable { border-color: #e0c58a; background: #fffaf0; }
@media (max-width: 640px) { .academia-preinscripcion { margin: 1rem auto; } .academia-pre-grid, .academia-pre-course-list, .academia-pre-student-interests { grid-template-columns: 1fr; } .academia-pre-step-heading, .academia-pre-actions { align-items: stretch; flex-direction: column; } .academia-pre-actions button { width: 100%; } }
@media (max-width: 640px) { .academia-formalizacion { margin: 1rem auto; } .academia-formalizacion-proposal dl div { grid-template-columns: 1fr; gap: .1rem; } .academia-formalizacion-actions { display: block; } .academia-formalizacion-actions button { width: 100%; } }

.academia-header,
.academia-section {
    margin: 0 0 24px;
}

.academia-header {
    align-items: center;
    border-bottom: 1px solid var(--academia-border);
    display: flex;
    justify-content: space-between;
    padding-bottom: 16px;
}

.academia-header h2,
.academia-section h3,
.academia-card h4 {
    line-height: 1.25;
    margin: 0;
}

.academia-header p {
    color: var(--academia-muted);
    margin: 4px 0 0;
}

.academia-header span {
    background: var(--academia-soft);
    border: 1px solid var(--academia-border);
    border-radius: 6px;
    font-size: 14px;
    padding: 6px 10px;
}

.academia-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    margin-top: 12px;
}

.academia-card,
.academia-alert,
.academia-notice {
    background: var(--academia-surface);
    border: 1px solid var(--academia-border);
    border-radius: 8px;
    padding: 16px;
}

.academia-list {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
}

.academia-list li {
    border-top: 1px solid var(--academia-border);
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 0;
}

.academia-list small,
.academia-muted,
.academia-empty {
    color: var(--academia-muted);
}

.academia-alerts {
    display: grid;
    gap: 10px;
}

.academia-alert p {
    margin: 6px 0 0;
}

.academia-table-wrap {
    overflow-x: auto;
}

.academia-table {
    border-collapse: collapse;
    min-width: 640px;
    width: 100%;
}

.academia-table th,
.academia-table td {
    border-bottom: 1px solid var(--academia-border);
    padding: 10px;
    text-align: left;
    vertical-align: middle;
}

.academia-table th {
    background: var(--academia-soft);
    font-weight: 700;
}

.academia-status {
    background: var(--academia-soft);
    border-radius: 6px;
    display: inline-block;
    padding: 4px 8px;
}

.academia-form,
.academia-filter-form,
.academia-payment-actions {
    display: grid;
    gap: 12px;
}

.academia-filter-form,
.academia-payment-actions {
    align-items: end;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    margin: 12px 0;
}

.academia-form label {
    display: grid;
    gap: 6px;
}

.academia-form input,
.academia-form textarea,
.academia-form select,
.academia-filter-form input,
.academia-filter-form select,
.academia-payment-actions select {
    border: 1px solid var(--academia-border);
    border-radius: 6px;
    min-height: 42px;
    padding: 8px 10px;
    width: 100%;
}

.academia-form button,
.academia-filter-form button,
.academia-payment-actions button {
    background: #1457a8;
    border: 0;
    border-radius: 6px;
    color: #ffffff;
    cursor: pointer;
    min-height: 42px;
    padding: 10px 14px;
}

.academia-full {
    grid-column: 1 / -1;
}

.academia-enroll {
    margin-top: 14px;
}

.academia-enroll summary {
    cursor: pointer;
    font-weight: 700;
}

.academia-activity dl {
    display: grid;
    gap: 8px;
    margin: 12px 0 0;
}

.academia-activity dl div {
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.academia-activity dt {
    color: var(--academia-muted);
    font-weight: 700;
}

.academia-activity dd {
    margin: 0;
    text-align: right;
}

.academia-notice {
    margin: 0 0 16px;
}

.academia-notice-success {
    border-color: #8fc79b;
}

.academia-notice-error {
    border-color: #e28a8a;
}

@media (max-width: 640px) {
    .academia-header,
    .academia-list li,
    .academia-activity dl div {
        align-items: flex-start;
        flex-direction: column;
    }

    .academia-activity dd {
        text-align: left;
    }
}
