input[type="checkbox"],
input[type="radio"],
.form-check-label,
.choice-card,
.assignment-card {
    cursor: pointer;
}

.choice-grid {
    display: grid;
    gap: 12px;
}

.choice-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-control {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.choice-card {
    position: relative;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 12px;
    min-height: 82px;
    padding: 14px;
    border: 1px solid #dfe6ee;
    border-radius: 13px;
    background: #fff;
    color: var(--text);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
    user-select: none;
}

.choice-card:hover,
.assignment-card:hover {
    transform: translateY(-1px);
    border-color: #9bc0eb;
    box-shadow: 0 7px 18px #1f64b114;
}

.choice-card-icon,
.assignment-icon {
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #eaf3ff;
    color: var(--blue);
}

.choice-card-icon {
    width: 46px;
    height: 46px;
    font-size: 20px;
}

.choice-card-dependency .choice-card-icon,
.assignment-dependency .assignment-icon {
    background: #f1edff;
    color: var(--purple);
}

.choice-card-copy strong,
.choice-card-copy small,
.assignment-copy strong,
.assignment-copy small,
.assignment-copy span {
    display: block;
}

.choice-card-copy strong {
    font: 750 14px Manrope, sans-serif;
}

.choice-card-copy small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.choice-card-check,
.assignment-check {
    display: grid;
    place-items: center;
    border: 1px solid #ccd7e3;
    border-radius: 50%;
    background: #fff;
    color: transparent;
    transition: .18s ease;
}

.choice-card-check {
    width: 23px;
    height: 23px;
}

.choice-card:has(.choice-control:checked) {
    border-color: var(--blue);
    background: linear-gradient(135deg, #f7fbff, #edf5ff);
    box-shadow: 0 0 0 3px #2374e114, 0 8px 20px #2374e112;
}

.choice-card-dependency:has(.choice-control:checked) {
    border-color: var(--purple);
    background: linear-gradient(135deg, #fbfaff, #f2efff);
    box-shadow: 0 0 0 3px #7758d614, 0 8px 20px #7758d612;
}

.choice-card:has(.choice-control:checked) .choice-card-check,
.assignment-card:has(.choice-control:checked) .assignment-check {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
}

.choice-card-dependency:has(.choice-control:checked) .choice-card-check,
.assignment-dependency:has(.choice-control:checked) .assignment-check {
    border-color: var(--purple);
    background: var(--purple);
}

.choice-card:has(.choice-control:focus-visible),
.assignment-card:has(.choice-control:focus-visible) {
    outline: 3px solid #2374e12a;
    outline-offset: 2px;
}

#staffCourseChecks {
    max-height: 300px;
    overflow-y: auto;
    padding: 10px;
    border: 1px solid #dfe6ee;
    border-radius: 13px;
    background: #f7f9fc;
    scrollbar-gutter: stable;
}

.assignment-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 9px;
    min-height: 70px;
    padding: 10px;
    border: 1px solid #dfe6ee;
    border-radius: 11px;
    background: #fff;
    color: var(--text);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
    user-select: none;
}

.assignment-icon {
    width: 38px;
    height: 38px;
    font-size: 16px;
}

.assignment-copy {
    min-width: 0;
}

.assignment-copy small {
    color: #8292a4;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .55px;
    text-transform: uppercase;
}

.assignment-copy strong {
    margin-top: 1px;
    font: 750 12px Manrope, sans-serif;
}

.assignment-copy span {
    overflow: hidden;
    color: var(--muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.assignment-check {
    width: 19px;
    height: 19px;
    font-size: 11px;
}

.assignment-card:has(.choice-control:checked) {
    border-color: var(--blue);
    background: #eef6ff;
    box-shadow: 0 0 0 2px #2374e112;
}

.assignment-dependency:has(.choice-control:checked) {
    border-color: var(--purple);
    background: #f4f1ff;
    box-shadow: 0 0 0 2px #7758d612;
}

.badge-soft.purple {
    background: #f0ecff;
    color: var(--purple);
}

/* Listado profesional de cursos y dependencias */
.course-toolbar { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.course-list-filters { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 14px; }
.course-search { width: min(430px,100%); min-width: 280px; height: 46px; box-shadow: 0 3px 12px #183b5608; }
.course-search i { color: #7c90a6; }
.course-state-filter { position: relative; width: 210px; height: 46px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: #36506b; box-shadow: 0 3px 12px #183b5608; }
.course-state-filter > i:first-child { color: var(--blue); }
.course-state-filter > i:last-child { color: #8a9aae; font-size: 11px; pointer-events: none; }
.course-state-filter select { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #31465d; font-weight: 650; appearance: none; cursor: pointer; }
.course-new-button { height: 46px; padding-inline: 20px; white-space: nowrap; }
.course-list-panel { padding: 22px; }
.course-list-head { margin-bottom: 16px; }
.course-list-head h3 { color: #18324f; font-size: 18px; }
.course-list-head p { margin: 5px 0 0; color: #8492a4; font-size: 12px; }
.course-record-count { display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 20px; background: #eef5ff; color: #286bc3; font-size: 11px; }
.course-record-count i { font-size: 14px; }
.course-table-wrap { overflow: hidden; border: 1px solid #e2e8f0; border-radius: 12px; }
.course-table thead th { height: 42px; padding: .7rem .85rem; background: linear-gradient(180deg,#fbfcfe,#f6f9fc); color: #718298; }
.course-table tbody td { height: 58px; padding: .72rem .85rem; }
.course-table tbody tr { transition: background .16s ease,box-shadow .16s ease; }
.course-table tbody tr:hover { background: #f8fbff; box-shadow: inset 3px 0 var(--blue); }
.record-type { min-width: 108px; display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 18px; font-size: 11px; font-weight: 700; }
.record-type.course { background: #edf5ff; color: #1767cb; }
.record-type.dependency { background: #f2efff; color: #6b4dcc; }
.course-code { color: #142f4e; font: 800 14px Manrope,sans-serif; letter-spacing: .2px; }
.course-detail { color: #435a72; font-weight: 500; }
.staff-count { display: inline-flex; align-items: center; gap: 6px; min-width: 42px; color: #7b8b9c; font-weight: 750; }
.staff-count.has-staff { color: #15955d; }
.staff-count i { font-size: 14px; opacity: .8; }
.course-status { min-width: 78px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 6px 10px; border-radius: 18px; font-size: 10px; font-weight: 800; letter-spacing: .25px; }
.course-status i { width: 7px; height: 7px; border-radius: 50%; }
.course-status.active { background: #eaf8f1; color: #168653; }
.course-status.active i { background: #20a66a; }
.course-status.inactive { background: #eef1f4; color: #718091; }
.course-status.inactive i { background: #8997a5; }
.course-date strong,.course-date small { display: block; white-space: nowrap; }
.course-date strong { color: #415971; font-size: 12px; font-weight: 650; }
.course-date small { margin-top: 2px; color: #93a0ae; font-size: 10px; }
.course-actions { gap: 7px; }
.course-actions .btn-icon { width: 35px; height: 35px; border: 1px solid #dce6f0; background: #fff; color: #2374e1; }
.course-actions .btn-icon:hover { border-color: #9fc2ef; background: #edf5ff; transform: translateY(-1px); }
.course-actions .toggle-course.deactivate { border-color: #ffd8dc; color: #df4c5b; }
.course-actions .toggle-course.deactivate:hover { border-color: #f5aeb6; background: #fff1f3; color: #cf3545; }
.course-actions .toggle-course.activate { border-color: #bfe7d3; color: #168653; }
.course-actions .toggle-course.activate:hover { background: #eaf8f1; }
.course-empty { padding: 52px!important; text-align: center; }
.course-empty span { width: 46px; height: 46px; display: grid; place-items: center; margin: 0 auto 10px; border-radius: 13px; background: #eef4fa; color: #7890a7; font-size: 21px; }
.course-empty strong,.course-empty small { display: block; }
.course-empty strong { color: #415971; }
.course-empty small { margin-top: 4px; color: #8e9ba9; }
.course-list-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 2px 0; color: #75869a; font-size: 11px; }
.course-list-footer strong { color: #314a64; }
.course-footer-note { display: flex; align-items: center; gap: 6px; }
.course-pagination { display: flex; align-items: center; gap: 6px; }
.course-pagination a { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #dfe7ef; border-radius: 9px; background: #fff; color: #5d7187; text-decoration: none; font-weight: 700; transition: .16s ease; }
.course-pagination a:hover { border-color: #a8c7ec; background: #f0f6ff; color: var(--blue); }
.course-pagination .pagination-page.active { border-color: var(--blue); background: var(--blue); color: #fff; box-shadow: 0 4px 10px #2374e128; }
.course-pagination .disabled { opacity: .4; pointer-events: none; }

/* Auditoría: identidad y contexto operativo */
.audit-welcome{margin-bottom:18px}.audit-welcome h2{margin-bottom:5px}.audit-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.audit-summary-grid article{display:flex;align-items:center;gap:13px;padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 14px #1d355708}.audit-summary-grid small,.audit-summary-grid strong{display:block}.audit-summary-grid small{color:#7b8da0;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.audit-summary-grid strong{margin-top:2px;color:#18324f;font:800 20px Manrope,sans-serif}.audit-filter{display:grid;grid-template-columns:minmax(300px,1fr) 230px auto auto;gap:10px;margin-bottom:16px}.audit-search{display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #dfe6ee;border-radius:10px;background:#fff}.audit-search i{color:#8395a8}.audit-search input{width:100%;padding:10px 0;border:0;outline:0;background:transparent;color:#233c55}.audit-panel{padding-bottom:13px}.audit-table{min-width:1040px}.audit-table tbody tr{transition:.14s ease}.audit-table tbody tr:hover{background:#f8fbff}.audit-actor{display:flex;align-items:center;gap:10px;min-width:205px}.audit-actor>span{width:39px;height:39px;flex:0 0 39px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#eaf3ff,#dcecff);color:#2374e1;font:800 14px Manrope,sans-serif}.audit-actor strong,.audit-actor small,.audit-actor em{display:block}.audit-actor strong{color:#18324f;font-size:12px}.audit-actor small{max-width:190px;margin-top:2px;overflow:hidden;color:#71859a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.audit-actor em{width:max-content;margin-top:4px;padding:2px 6px;border-radius:8px;background:#eef3f8;color:#536b82;font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.4px}.audit-action{display:grid;gap:4px;min-width:255px}.audit-action strong{color:#263f59;font-size:11px}.audit-action span{color:#74879a;font-size:10px}.audit-action code{width:max-content;padding:2px 6px;border-radius:5px;background:#f0f4f8;color:#60788e;font-size:8px}.audit-resource{display:grid;gap:6px;min-width:150px}.audit-resource .badge-soft{width:max-content}.audit-resource strong{color:#526980;font-size:10px}.audit-origin{display:grid;gap:6px;min-width:145px}.audit-origin strong{color:#314a64;font-size:11px}.audit-origin strong span{color:#2374e1}.audit-origin small{color:#8797a7;font-size:9px}.audit-origin i{margin-right:4px}.audit-empty{display:grid;place-items:center;gap:6px;padding:36px;color:#91a0af}.audit-empty i{font-size:30px}.audit-empty strong{color:#536b82}.audit-empty span{font-size:11px}.audit-dialog{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;text-align:left}.audit-dialog section{min-width:0}.audit-dialog small{display:block;margin-bottom:6px;color:#75889b;font-size:9px;font-weight:800;letter-spacing:.7px}.audit-dialog pre{min-height:120px;max-height:330px;margin:0;padding:14px;overflow:auto;border:1px solid #e1e7ee;border-radius:10px;background:#f6f8fb;color:#314a64;font:11px/1.55 monospace;white-space:pre-wrap;word-break:break-word}.audit-dialog>i{color:#8fa1b3}
@media(max-width:800px){.audit-summary-grid{grid-template-columns:1fr}.audit-filter{grid-template-columns:1fr}.audit-dialog{grid-template-columns:1fr}.audit-dialog>i{transform:rotate(90deg);justify-self:center}}

.audit-table.simple .audit-action strong{font-size:13px;line-height:1.35}.audit-table.simple .audit-action span{font-size:11px}.audit-table.simple .audit-actor strong{font-size:13px}

/* Egresos */
.stat-icon.amber{background:#fff1d9;color:#b5670b}.expense-welcome{align-items:center}.expense-total{display:flex;align-items:center;gap:11px;padding:11px 15px;border:1px solid #f1ddba;border-radius:13px;background:#fffbf3}.expense-total small,.expense-total strong{display:block}.expense-total small{color:#9b7a49;font-size:9px;text-transform:uppercase}.expense-total strong{color:#9c580b;font:800 18px Manrope,sans-serif}.expense-form-panel{border-top:3px solid #e7a23b}.expense-form-panel .btn-warning{border-color:#d98b19;background:#e69a2d;color:#fff;font-weight:700;box-shadow:0 5px 13px #d88d2428}.expense-form-panel .btn-warning:hover{background:#cf8417;color:#fff}.expense-table{min-width:790px}.expense-number{display:block;color:#2374e1}.expense-table td small{display:block;margin-top:3px;color:#8a9aaa;font-size:9px}.expense-detail{display:block;max-width:230px;overflow:hidden;color:#60758a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.expense-amount{color:#bd6b0c;white-space:nowrap}.audit-table.simple{min-width:760px}.audit-table.simple .audit-action{min-width:260px}.audit-table.simple .audit-actor{min-width:190px}.audit-table.simple .audit-actor small{margin-top:4px;font-size:9px;font-weight:700;text-transform:uppercase}.audit-table.simple .audit-origin{min-width:135px}
.expense-table{min-width:900px}
@media(max-width:800px){.expense-welcome{align-items:flex-start}.expense-total{width:100%}}

/* Egresos, ingresos y conciliación */
.sidebar-group{position:relative}.sidebar-group>summary{min-height:49px;padding:12px 14px;border-radius:11px;display:flex;align-items:center;gap:15px;color:#c6d8ea;font-size:13px;font-weight:600;cursor:pointer;list-style:none;transition:background .16s ease,color .16s ease}.sidebar-group>summary::-webkit-details-marker{display:none}.sidebar-group>summary:hover,.sidebar-group.active>summary{background:#ffffff0b;color:#fff}.sidebar-group>summary>i:first-child{width:27px;flex:0 0 27px;text-align:center;font-size:20px}.sidebar-group-chevron{width:auto!important;margin-left:auto;font-size:11px!important;transition:transform .18s ease}.sidebar-group[open] .sidebar-group-chevron{transform:rotate(180deg)}.sidebar-submenu{display:grid;gap:3px;margin:3px 0 5px 29px;padding-left:13px;border-left:1px solid #ffffff18}.sidebar nav .sidebar-submenu a{min-height:38px;padding:8px 10px;gap:8px;font-size:12px}.sidebar nav .sidebar-submenu a i{width:19px;font-size:14px}.sidebar nav .sidebar-submenu a.active:before{top:7px;bottom:7px;width:3px}
.income-welcome{align-items:center}.income-total{display:flex;align-items:center;gap:11px;padding:11px 15px;border:1px solid #bfe8d2;border-radius:13px;background:#f4fcf8}.income-total small,.income-total strong{display:block}.income-total small{color:#5c8d72;font-size:9px;text-transform:uppercase}.income-total strong{color:#168653;font:800 18px Manrope,sans-serif}.income-form-panel{border-top:3px solid #20a66a}.income-table{min-width:850px}.income-number{display:block;color:#168653}.income-table td small{display:block;margin-top:3px;color:#8a9aaa}.income-amount{color:#168653;white-space:nowrap}.income-origin{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px;padding:12px;border-radius:10px;background:#f3faf7}.income-origin small,.income-origin strong{display:block}.income-origin small{color:#789184;font-size:9px;text-transform:uppercase}.income-origin strong{margin-top:3px;color:#285a42;font-size:11px}.empty-state.compact{padding:30px 18px}.empty-state.compact strong{display:block;margin-top:8px}.empty-state.compact p{margin:5px 0 0;color:#718096}
.reconciliation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.reconciliation-summary>div{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid #e5eaf1;border-radius:14px;background:#fff}.reconciliation-summary small,.reconciliation-summary strong{display:block}.reconciliation-summary small{color:#718096;font-size:11px}.reconciliation-summary strong{margin-top:2px;font:800 21px Manrope,sans-serif}.reconciliation-table{min-width:1050px}.reconciliation-table td>strong,.reconciliation-table td>small{display:block}.reconciliation-table td>small{max-width:280px;margin-top:4px;color:#7c8c9c}.ledger-amount{font:800 16px Manrope,sans-serif}.ledger-amount.outgoing{color:#b76b14}.ledger-amount.incoming{color:#168653}.ledger-balance{font:800 16px Manrope,sans-serif}.ledger-balance.pending{color:#d34a59}.ledger-balance.settled{color:#168653}.reconciliation-status{display:inline-flex;padding:6px 9px;border-radius:15px;font-size:10px;font-weight:800}.reconciliation-status.pendiente{background:#ffedf0;color:#cc3748}.reconciliation-status.parcial{background:#fff3df;color:#a56512}.reconciliation-status.conciliado{background:#e4f7ed;color:#168653}
@media(max-width:900px){.reconciliation-summary{grid-template-columns:1fr}.income-origin{grid-template-columns:1fr}}@media(max-width:800px){.income-welcome{align-items:flex-start}.income-total{width:100%}}@media(min-width:901px){body.sidebar-collapsed .sidebar-group>summary{justify-content:center;padding:11px;gap:0}body.sidebar-collapsed .sidebar-group>summary span,body.sidebar-collapsed .sidebar-group-chevron,body.sidebar-collapsed .sidebar-submenu{display:none}body.sidebar-collapsed .sidebar-group>summary>i:first-child{width:auto}}

/* Variante del listado para funcionarios */
.staff-search { width: min(500px,100%); }
.staff-list-table { min-width: 1050px; }
.staff-identity { display: flex; align-items: center; gap: 11px; min-width: 175px; }
.staff-list-avatar { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 11px; background: linear-gradient(145deg,#eaf3ff,#dcecff); color: #1d6ed2; font: 800 14px Manrope,sans-serif; }
.staff-identity strong,.staff-identity small { display: block; }
.staff-identity strong { max-width: 165px; overflow: hidden; color: #18324f; font: 750 13px Manrope,sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.staff-identity small { margin-top: 3px; color: #9aa7b4; font-size: 9px; }
.staff-contact { min-width: 175px; display: grid; gap: 5px; }
.staff-contact span { display: flex; align-items: center; gap: 7px; max-width: 190px; overflow: hidden; color: #667a8f; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.staff-contact i { width: 13px; color: #8ba0b5; }
.staff-assignment { max-width: 205px; display: inline-flex; align-items: center; gap: 7px; overflow: hidden; padding: 6px 10px; border-radius: 18px; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.staff-assignment.assigned { background: #edf5ff; color: #236dc8; }
.staff-assignment.unassigned { background: #f0f2f5; color: #7b8998; }
.staff-metric { min-width: 34px; height: 28px; display: inline-grid; place-items: center; border-radius: 8px; font-weight: 800; font-size: 12px; }
.staff-metric.delivered { background: #eef3f8; color: #4d657d; }
.staff-metric.paid { background: #eaf8f1; color: #138554; }
.staff-metric.pending { background: #fff0f2; color: #d64252; }

/* Modal profesional de funcionarios */
.staff-modal-dialog { max-width: 1080px; }
.staff-modal-content { overflow: hidden; border-radius: 20px; box-shadow: 0 28px 80px #102a4352; }
.staff-modal-header { align-items: flex-start; padding: 27px 34px 24px; border-bottom-color: #e7edf3; }
.staff-modal-heading { display: flex; align-items: center; gap: 18px; }
.staff-modal-symbol { width: 54px; height: 54px; flex: 0 0 54px; display: grid; place-items: center; border-radius: 50%; background: #eaf3ff; color: #1d6fd4; font-size: 24px; }
.staff-modal-heading .modal-title { margin: 0; color: #172e4d; font: 800 25px Manrope,sans-serif; }
.staff-modal-heading p { margin: 7px 0 0; color: #738195; font-size: 14px; }
.staff-modal-header .btn-close { margin: 6px 0 0 auto; opacity: .55; }
.staff-modal-body { padding: 28px 34px 30px; }
.staff-field-title { display: block; margin-bottom: 9px; color: #203850; font: 750 13px Manrope,sans-serif; }
.staff-field-title b { color: #e45362; }
.staff-field-title em { color: #718096; font-style: normal; font-weight: 500; }
.staff-input-group { min-height: 52px; display: flex; overflow: hidden; border: 1px solid #d8e1eb; border-radius: 10px; background: #fff; transition: border-color .18s ease,box-shadow .18s ease; }
.staff-input-group:focus-within { border-color: #6aa7ee; box-shadow: 0 0 0 3px #2374e112; }
.staff-input-group > span { width: 52px; flex: 0 0 52px; display: grid; place-items: center; color: #6480a0; font-size: 19px; }
.staff-input-group .form-control,.staff-input-group .form-select { min-width: 0; border: 0; border-radius: 0; padding: 12px 4px; box-shadow: none; font-size: 14px; }
.staff-assignment-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin: 28px 0 12px; }
.staff-assignment-heading .staff-field-title { margin: 0; }
.staff-assignment-heading p { margin: 5px 0 0; color: #77889b; font-size: 12px; }
.staff-assignment-heading > span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 15px; background: #f1f5f9; color: #65798e; font-size: 10px; font-weight: 700; white-space: nowrap; }
.staff-modal-content #staffCourseChecks { max-height: 265px; padding: 12px; border-color: #dce5ee; border-radius: 12px; background: #f8fafc; }
.staff-modal-content .assignment-card { min-height: 78px; padding: 12px; border-radius: 11px; box-shadow: 0 2px 7px #183b5608; }
.staff-modal-content .assignment-icon { width: 43px; height: 43px; border-radius: 50%; font-size: 18px; }
.staff-modal-content .assignment-copy strong { font-size: 13px; }
.staff-modal-content .assignment-copy span { margin-top: 2px; font-size: 11px; }
.staff-modal-content .assignment-check { width: 22px; height: 22px; }
.staff-access-status { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 16px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.staff-access-status.enabled { background: #e9f7ef; color: #148653; }
.staff-access-status.disabled { background: #f0f3f6; color: #7b8997; }
.staff-access-panel { margin-top: 24px; overflow: hidden; border: 1px solid #dce5ee; border-radius: 13px; background: #f8fafc; }
.staff-access-switch { min-height: 76px; display: flex; align-items: center; gap: 13px; padding: 15px 17px; }
.staff-access-symbol { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 11px; background: #eaf2fc; color: #3472bd; font-size: 19px; }
.staff-access-switch>div { flex: 1; }
.staff-access-switch strong,.staff-access-switch p { display: block; }
.staff-access-switch strong { color: #203850; font: 750 13px Manrope,sans-serif; }
.staff-access-switch p { margin: 3px 0 0; color: #7a8a9b; font-size: 11px; }
.staff-system-switch { position: relative; width: 46px; height: 26px; flex: 0 0 46px; cursor: pointer; }
.staff-system-switch input { position: absolute; opacity: 0; pointer-events: none; }
.staff-system-switch span { position: absolute; inset: 0; border-radius: 20px; background: #cbd5df; transition: .2s ease; }
.staff-system-switch span:after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px #17345130; transition: .2s ease; }
.staff-system-switch input:checked+span { background: #2374e1; }
.staff-system-switch input:checked+span:after { transform: translateX(20px); }
.staff-system-switch input:focus-visible+span { box-shadow: 0 0 0 3px #2374e125; }
.staff-access-fields { display: none; grid-template-columns: .8fr 1.2fr; gap: 16px; padding: 17px; border-top: 1px solid #e1e8ef; background: #fff; }
.staff-access-panel.enabled { border-color: #bcd5f2; box-shadow: 0 0 0 3px #2374e10b; }
.staff-access-panel.enabled .staff-access-symbol { background: #e4f1ff; color: #1768cd; }
.staff-access-panel.enabled .staff-access-fields { display: grid; }
.staff-payment-permissions { grid-column: 1/-1; padding-top: 14px; border-top: 1px solid #e5ebf1; }
.staff-payment-permissions>div:first-child { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:10px; }
.staff-payment-permissions p { margin:0; color:#7a8a9b; font-size:11px; }
.staff-payment-checks { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.staff-payment-checks label { cursor:pointer; }
.staff-payment-checks input { position:absolute; opacity:0; pointer-events:none; }
.staff-payment-checks label>span { position:relative; display:grid; grid-template-columns:34px 1fr 24px; align-items:center; column-gap:10px; padding:12px; border:1px solid #dce5ee; border-radius:10px; background:#f8fafc; }
.staff-payment-checks label>span>i { grid-row:1/3; display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:#eaf2fc; color:#3472bd; font-size:16px; }
.staff-payment-checks b,.staff-payment-checks small { grid-column:2; }
.staff-payment-checks b { color:#29445d; font-size:12px; }
.staff-payment-checks small { color:#8090a0; font-size:10px; }
.staff-payment-checks em { grid-column:3; grid-row:1/3; display:grid; place-items:center; width:22px; height:22px; border:1px solid #cdd8e3; border-radius:6px; color:transparent; font-style:normal; }
.staff-payment-checks input:checked+span { border-color:#7fb2ee; background:#eef6ff; }
.staff-payment-checks input:checked+span em { border-color:#2374e1; background:#2374e1; color:#fff; }
.staff-payment-checks input:focus-visible+span { box-shadow:0 0 0 3px #2374e125; }
.staff-payment-checks input:disabled+span { opacity:.55; cursor:not-allowed; }
.staff-payment-permission { display:block; margin-top:5px; color:#71869a; font-size:10px; white-space:nowrap; }
.staff-password-row { display: grid; grid-template-columns:minmax(0,1fr) auto 38px; gap: 7px; }
.staff-generate-password { min-width: 92px!important; padding: 8px 10px!important; border: 1px solid #dce5ee; font-size: 11px; }
.staff-password-row>.btn-icon { width: 38px; height: 52px; border: 1px solid #dce5ee; background: #fff; }
.staff-access-help { display: block; margin-top: 6px; color: #8493a3; font-size: 10px; }
.staff-modal-footer { gap: 10px; padding: 20px 34px 24px; border-top-color: #e7edf3; }
.staff-modal-footer .btn { min-width: 135px; padding: 11px 20px; border-radius: 10px; }
.staff-modal-footer .btn-primary { min-width: 205px; background: linear-gradient(135deg,#2478e8,#1659ca); }

/* Modal de cursos y dependencias */
.course-modal-dialog { max-width: 780px; }
.course-modal-content { overflow: hidden; border-radius: 20px; box-shadow: 0 28px 80px #102a4352; }
.course-modal-header { align-items: flex-start; padding: 28px 34px 25px; border-bottom-color: #e8edf3; }
.course-modal-heading { display: flex; align-items: center; gap: 18px; }
.course-modal-symbol { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg,#2f82ed,#175bc6); color: #fff; font-size: 23px; box-shadow: 0 8px 20px #2374e12d; }
.course-modal-heading .modal-title { margin: 0; color: #172e4d; font: 800 25px Manrope,sans-serif; }
.course-modal-heading p { margin: 7px 0 0; color: #738195; font-size: 14px; }
.course-modal-header .btn-close { margin: 5px 0 0 auto; opacity: .55; }
.course-modal-body { padding: 28px 34px 32px; }
.course-field-title { display: block; margin-bottom: 12px; color: #243b53; font: 750 14px Manrope,sans-serif; }
#courseModal .choice-grid-two { gap: 18px; }
#courseModal .choice-card { grid-template-columns: 58px minmax(0,1fr) 27px; gap: 16px; min-height: 112px; padding: 19px 22px; border-radius: 14px; box-shadow: 0 5px 15px #183b560c; }
#courseModal .choice-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px #183b5616; }
#courseModal .choice-card-icon { width: 58px; height: 58px; border-radius: 50%; font-size: 25px; }
#courseModal .choice-card-copy strong { color: #1d3554; font-size: 18px; }
#courseModal .choice-card-copy small { max-width: 150px; margin-top: 6px; font-size: 13px; line-height: 1.45; }
#courseModal .choice-card-check { width: 27px; height: 27px; border-width: 2px; }
#courseModal .choice-card-check i { display: none; }
#courseModal .choice-card:has(.choice-control:checked) .choice-card-check { border: 3px solid var(--blue); background: #fff; box-shadow: inset 0 0 0 5px #fff; }
#courseModal .choice-card:has(.choice-control:checked) .choice-card-check::after { width: 11px; height: 11px; border-radius: 50%; background: var(--blue); content: ''; }
#courseModal .choice-card-dependency:has(.choice-control:checked) .choice-card-check { border-color: var(--purple); }
#courseModal .choice-card-dependency:has(.choice-control:checked) .choice-card-check::after { background: var(--purple); }
.course-input-group { display: flex; min-height: 54px; overflow: hidden; border: 1px solid #d9e1ea; border-radius: 11px; background: #fff; transition: border-color .18s ease,box-shadow .18s ease; }
.course-input-group:focus-within { border-color: #6aa7ee; box-shadow: 0 0 0 3px #2374e112; }
.course-input-group > span { width: 55px; flex: 0 0 55px; display: grid; place-items: center; border-right: 1px solid #dfe5ec; background: #f9fbfd; color: #536a82; font-size: 19px; }
.course-input-group .form-control { min-width: 0; border: 0; border-radius: 0; padding: 13px 18px; font-size: 15px; box-shadow: none; }
.course-modal-footer { gap: 10px; padding: 20px 34px 24px; border-top-color: #e8edf3; }
.course-modal-footer .btn { min-width: 132px; padding: 11px 20px; border-radius: 10px; font-size: 14px; }
.course-modal-footer .btn-primary { background: linear-gradient(135deg,#2478e8,#1659ca); }

@media (max-width: 1100px) {
    .course-toolbar { flex-wrap: wrap; }
    .course-list-filters { flex-basis: 100%; }
    .course-new-button { margin-left: auto; }
}

@media (max-width: 600px) {
    .staff-payment-checks { grid-template-columns: 1fr; }
    .staff-payment-permissions>div:first-child { display:block; }
    .staff-payment-permissions p { margin-top:4px; }
    .choice-grid-two {
        grid-template-columns: 1fr;
    }

    .choice-card {
        min-height: 72px;
    }

    .course-modal-header,
    .course-modal-body,
    .course-modal-footer { padding-left: 20px; padding-right: 20px; }
    .course-modal-heading { align-items: flex-start; gap: 12px; }
    .course-modal-heading .modal-title { font-size: 20px; }
    .course-modal-heading p { font-size: 12px; }
    #courseModal .choice-grid-two { grid-template-columns: 1fr; gap: 10px; }
    #courseModal .choice-card { min-height: 86px; padding: 13px 15px; }
    #courseModal .choice-card-icon { width: 48px; height: 48px; }
    .course-modal-footer .btn { flex: 1; min-width: 0; }

    .course-toolbar,.course-list-filters { align-items: stretch; flex-direction: column; }
    .course-search,.course-state-filter,.course-new-button { width: 100%; min-width: 0; }
    .course-list-panel { padding: 14px; }
    .course-list-head { align-items: flex-start; }
    .course-list-head p { display: none; }
    .course-list-footer { align-items: flex-start; flex-direction: column; }
    .course-pagination { align-self: center; }

    .staff-modal-header,.staff-modal-body,.staff-modal-footer { padding-left: 20px; padding-right: 20px; }
    .staff-modal-heading { align-items: flex-start; gap: 12px; }
    .staff-modal-symbol { width: 46px; height: 46px; flex-basis: 46px; }
    .staff-modal-heading .modal-title { font-size: 20px; }
    .staff-modal-heading p { font-size: 12px; }
    .staff-assignment-heading { align-items: flex-start; flex-direction: column; margin-top: 22px; }
    .staff-modal-content #staffCourseChecks { max-height: 240px; }
    .staff-access-switch { align-items: flex-start; }
    .staff-access-fields { grid-template-columns: 1fr; }
    .staff-password-row { grid-template-columns:1fr 38px; }
    .staff-generate-password { grid-column:1/-1; grid-row:2; }
    .staff-modal-footer .btn { flex: 1; min-width: 0; }
}

/* Legibilidad uniforme en tablas y listados */
.course-table tbody td{font-size:16px}
.record-type{font-size:13px}
.course-code{font-size:16px}
.course-detail{font-size:16px}
.staff-count{font-size:15px}
.course-status{font-size:13px}
.course-date strong{font-size:15px}
.course-date small{font-size:13px}
.course-list-footer{font-size:13px}
.staff-identity strong{font-size:16px}
.staff-identity small{font-size:13px}
.staff-contact span{font-size:14px}
.staff-assignment{font-size:13px}
.staff-metric{font-size:14px}
.staff-access-status{font-size:13px}
.audit-actor strong{font-size:15px!important}
.audit-actor small{font-size:13px!important}
.audit-actor em{font-size:11px!important}
.audit-action strong{font-size:14px!important}
.audit-action span{font-size:13px!important}
.audit-action code{font-size:12px!important}
.audit-resource strong{font-size:13px!important}
.audit-origin strong{font-size:14px!important}
.audit-origin small{font-size:13px!important}
.expense-table td small{font-size:13px}
.expense-detail{font-size:14px}

/* Escala común de lectura para todas las tablas del sistema */
body:not(.login-body) .table thead th{font-size:12px}
body:not(.login-body) .table tbody td{font-size:16px;line-height:1.45}
body:not(.login-body) .table tbody td small{font-size:13px!important;line-height:1.4}
body:not(.login-body) .table tbody td .badge-soft,
body:not(.login-body) .table tbody td .status{font-size:14px!important}
.folio-situation strong,.payment-number,.payment-history-folios{font-size:15px}
.folio-situation small{font-size:13px}
.simple-folio-number{font-size:17px}
