.asistencias-shell { display: grid; gap: 18px; }
.asistencias-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.asistencias-summary article { display: grid; gap: 5px; min-height: 112px; padding: 18px; border: 1px solid var(--panel-border, #d8e1e7); border-radius: 14px; background: var(--panel-bg, #fff); }
.asistencias-summary span, .asistencias-summary small { color: var(--muted, #667085); }
.asistencias-summary span { font-size: .78rem; font-weight: 700; }
.asistencias-summary strong { color: var(--text, #142033); font-size: 1.5rem; line-height: 1.1; }
.asistencias-panel { overflow: hidden; border: 1px solid var(--panel-border, #d8e1e7); border-radius: 16px; background: var(--panel-bg, #fff); }
.asistencias-toolbar { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(215px, 1.25fr) repeat(3, minmax(130px, .7fr)); gap: 13px; align-items: end; padding: 20px; border-bottom: 1px solid var(--panel-border, #d8e1e7); }
.asistencias-toolbar h2 { margin: 0 0 4px; color: var(--text, #142033); font-size: 1.1rem; }
.asistencias-toolbar p { margin: 0; color: var(--muted, #667085); font-size: .84rem; }
.asistencias-toolbar label { display: grid; gap: 6px; color: var(--muted, #667085); font-size: .76rem; font-weight: 700; }
.asistencias-toolbar select, .asistencias-toolbar input { min-height: 42px; }
.asistencias-actions { display: flex; justify-content: flex-end; gap: 9px; flex-wrap: wrap; padding: 13px 20px; border-bottom: 1px solid var(--panel-border, #d8e1e7); }
.asistencias-actions a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.asistencias-table-shell { overflow: auto; }
.asistencias-table { width: 100%; min-width: 860px; border-collapse: collapse; }
.asistencias-table th { padding: 11px 16px; color: var(--muted, #667085); font-size: .71rem; font-weight: 800; letter-spacing: .045em; text-align: left; text-transform: uppercase; background: rgba(127, 143, 163, .06); }
.asistencias-table td { padding: 14px 16px; color: var(--text, #142033); border-top: 1px solid var(--panel-border, #e2e8ee); vertical-align: middle; }
.asistencias-table td strong, .asistencias-table td small { display: block; }
.asistencias-table td small { margin-top: 3px; color: var(--muted, #667085); font-size: .74rem; }
.asistencias-empty { padding: 44px !important; color: var(--muted, #667085); text-align: center; }
.attendance-open { display: inline-flex; padding: 5px 8px; color: #975d00; border-radius: 999px; background: #fff0ce; font-size: .73rem; font-weight: 800; }

.budget-supervision-module { margin-top: 18px; padding: 20px; border: 1px solid var(--panel-border, #d8e1e7); border-radius: 14px; background: var(--panel-bg, #fff); }
.budget-supervision-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; padding-bottom: 14px; border-bottom: 1px solid var(--panel-border, #d8e1e7); }
.budget-supervision-heading span:first-child { color: var(--muted, #667085); font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.budget-supervision-heading h3 { margin: 4px 0; color: var(--text, #142033); }
.budget-supervision-heading p { margin: 0; color: var(--muted, #667085); font-size: .84rem; }
.budget-supervision-count { flex: 0 0 auto; padding: 6px 9px; color: #006a89; border-radius: 999px; background: #d9f2f9; font-size: .75rem; font-weight: 800; }
.budget-supervision-list { display: grid; gap: 10px; margin-top: 14px; }
.budget-supervision-card { display: grid; grid-template-columns: minmax(150px, 1fr) 70px 60px 115px auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--panel-border, #e2e8ee); border-radius: 11px; }
.budget-supervision-card strong, .budget-supervision-card small { display: block; }
.budget-supervision-card small { margin-top: 3px; color: var(--muted, #667085); font-size: .75rem; }
.budget-supervision-progress { color: var(--text, #142033); font-weight: 900; text-align: center; }
.budget-supervision-actions { display: flex; justify-content: flex-end; gap: 7px; }
.budget-supervision-actions .small-button { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; }
.budget-report-pdf-preview { grid-column: 1 / -1; overflow: hidden; margin-top: 4px; border: 1px solid var(--panel-border, #d8e1e7); border-radius: 9px; background: #f6f8fa; }
.budget-report-pdf-preview iframe { display: block; width: 100%; height: 620px; border: 0; }
.budget-supervision-empty, .budget-supervision-loading { padding: 24px 8px; color: var(--muted, #667085); text-align: center; }
body.dark-mode .asistencias-summary article, body.dark-mode .asistencias-panel, body.dark-mode .budget-supervision-module { background: #162130; border-color: #2c3c4f; }
body.dark-mode .asistencias-summary strong, body.dark-mode .asistencias-toolbar h2, body.dark-mode .asistencias-table td, body.dark-mode .budget-supervision-heading h3, body.dark-mode .budget-supervision-progress { color: #edf5fa; }
body.dark-mode .asistencias-table td, body.dark-mode .budget-supervision-heading, body.dark-mode .budget-supervision-card { border-color: #2c3c4f; }
body.dark-mode .asistencias-table th { background: rgba(255,255,255,.035); }

@media (max-width: 1120px) { .asistencias-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .asistencias-toolbar > :first-child { grid-column: 1 / -1; } }
@media (max-width: 760px) { .asistencias-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .budget-supervision-card { grid-template-columns: 1fr 70px 55px; } .budget-supervision-card .informes-status { justify-self: start; } .budget-supervision-actions, .budget-report-pdf-preview { grid-column: 1 / -1; justify-content: flex-start; } .budget-report-pdf-preview iframe { height: 460px; } }
@media (max-width: 560px) { .asistencias-summary, .asistencias-toolbar { grid-template-columns: 1fr; } .asistencias-toolbar > :first-child { grid-column: auto; } .budget-supervision-heading { display: grid; } }
