/* Cabecera compacta y alineada del control diario de asistencia. */
.attendance-hero {
    grid-template-columns: minmax(250px, 0.72fr) minmax(460px, 1.28fr);
    column-gap: clamp(1.25rem, 3vw, 3rem);
    row-gap: 0.75rem;
    align-items: end;
}

.attendance-hero__intro {
    display: grid;
    gap: 0.48rem;
    align-content: start;
    min-width: 0;
}

.attendance-hero__intro .shell-hero__eyebrow,
.attendance-hero__intro .shell-hero__title,
.attendance-hero__intro .shell-hero__copy {
    margin: 0;
}

.attendance-hero__tools {
    grid-template-columns: minmax(260px, 1fr) minmax(190px, 0.72fr);
    gap: 1rem;
    align-items: start;
    margin-top: 0;
}

.attendance-hero--group {
    grid-template-columns: minmax(0, 1fr);
}

.attendance-hero--group .attendance-hero__tools {
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(160px, 0.7fr);
}

.attendance-hero--primary .attendance-hero__tools {
    grid-template-columns: minmax(300px, 1fr) minmax(160px, 220px) minmax(190px, 240px);
    gap: 0.75rem;
    align-items: end;
}

.attendance-subject-picker {
    display: grid;
    gap: 0.35rem;
}

.attendance-hero--primary .attendance-subject-picker .super-admin-form__control,
.attendance-hero--primary .attendance-daily-note {
    min-height: 47px;
    height: 47px;
    box-sizing: border-box;
}

.attendance-subject-picker,
.attendance-subject-picker .super-admin-form__control {
    min-width: 0;
    width: 100%;
}

.attendance-daily-note {
    display: flex;
    align-items: center;
    min-height: 44px;
    align-self: end;
    padding: 0.45rem 0.7rem;
    border: 1px solid #d3e5f3;
    border-radius: 10px;
    background: #f8fcff;
    color: #315779;
    font-size: 0.85rem;
}

.attendance-course-picker,
.attendance-block-picker,
.attendance-course-picker .super-admin-search-select,
.attendance-course-picker .super-admin-search-select__control,
.attendance-course-picker .super-admin-search-select__input,
.attendance-block-picker .super-admin-form__control {
    min-width: 0;
    max-width: 100%;
}

.attendance-course-picker {
    width: 100%;
    max-width: none;
}

.attendance-block-picker__hint {
    overflow-wrap: anywhere;
}

.attendance-hero > .attendance-pae-window,
.attendance-hero > .attendance-pae-notice {
    grid-column: 1 / -1;
}

.attendance-coverage-panel {
    display: grid;
    gap: 0.8rem;
    margin-top: 0.9rem;
    padding: 1rem;
    border-color: #b9d8ef;
    background: #f8fcff;
}

.attendance-coverage-panel__head,
.attendance-coverage-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.attendance-coverage-panel__head .attendance-card__copy {
    margin: 0.25rem 0 0;
}

.attendance-coverage-panel__count {
    display: inline-grid;
    min-width: 2rem;
    min-height: 2rem;
    place-items: center;
    border-radius: 999px;
    background: #eaf4fc;
    color: #0b365d;
    font-weight: 800;
}

.attendance-coverage-panel__list {
    display: grid;
    gap: 0.55rem;
}

.attendance-coverage-card {
    padding: 0.75rem;
    border: 1px solid #d3e5f3;
    border-radius: 12px;
    background: #fff;
}

.attendance-coverage-card > div {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.attendance-coverage-card strong {
    color: #0b365d;
}

.attendance-coverage-card span,
.attendance-coverage-card small {
    color: #496985;
}

.attendance-coverage-card .button-primary {
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 860px) {
    .attendance-hero {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

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

    .attendance-hero--group .attendance-hero__tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .attendance-hero__tools {
        grid-template-columns: minmax(0, 1fr);
    }

    .attendance-hero--group .attendance-hero__tools {
        grid-template-columns: minmax(0, 1fr);
    }

    .attendance-coverage-panel__head,
    .attendance-coverage-card {
        flex-direction: column;
    }

    .attendance-coverage-card .button-primary {
        width: 100%;
    }
}

.attendance-risk-item {
    width: 100%;
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.attendance-risk-list { gap: 0.35rem; }
/* Scoped overrides: density.css otherwise enlarges titles and paragraph spacing. */
.shell-app .shell-content .attendance-card:has(> .attendance-risk-list) > .attendance-card__title {
    font-size: 1rem !important;
    margin-block: 0 0.45rem !important;
}
.attendance-risk-preview .attendance-card__eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.attendance-risk-preview__trial { color: #627287; font-size: 0.65rem; text-transform: none; letter-spacing: 0; }
.attendance-risk-preview__scope { margin: 0.25rem 0 0; color: #536b85; font-size: 0.74rem; line-height: 1.35; }
.attendance-risk-preview__guide { margin: 0.45rem 0 0.55rem; display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 0.5rem; color: #536b85; font-size: 0.7rem; }
.attendance-risk-preview__guide > span { flex-shrink: 0; }
.attendance-risk-preview__legend { min-width: 0; }
.attendance-risk-preview__legend summary { cursor: pointer; color: #155489; text-align: right; }
.attendance-risk-preview__legend summary:focus-visible { outline: 2px solid var(--ec-focus); outline-offset: 2px; }
.attendance-risk-preview__legend[open] { flex: 1 0 100%; }
.attendance-risk-preview__legend p { margin: 0.4rem 0 0; line-height: 1.4; }
.shell-app .shell-content .attendance-risk-preview .attendance-risk-item--preview {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center;
    min-height: 48px; gap: 0.5rem; padding: 0.45rem 0.55rem !important;
}
.attendance-risk-preview__student { min-width: 0; }
.attendance-risk-preview__student .attendance-side-item__title { overflow-wrap: anywhere; font-weight: 650; }
.attendance-risk-preview__student .attendance-side-item__copy { margin: 0.18rem 0 0; color: #536b85; }
.attendance-risk-preview .attendance-risk-preview__count { display: flex; flex-direction: column; justify-content: center; gap: 0; min-width: 2.7rem; border-radius: 8px; padding: 0.2rem 0.35rem; line-height: 1.05; }
.attendance-risk-preview__count strong { font-size: 1rem; }
.attendance-risk-preview__count > span { font-size: 0.62rem; font-weight: 500; }
.attendance-risk-preview__open { color: #64748b; font-size: 1.3rem; }
.shell-app .shell-content .attendance-risk-item {
    gap: 0.08rem;
    padding: 0.38rem 0.55rem !important;
    border-radius: 10px !important;
}
.shell-app .shell-content .attendance-risk-item .attendance-side-item__top {
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
}
.attendance-risk-item .attendance-side-item__top > div { min-width: 0; }
.shell-app .shell-content .attendance-risk-item .attendance-side-item__title {
    font-size: 0.875rem !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
}
.shell-app .shell-content .attendance-risk-item .attendance-side-item__meta {
    margin-block: 0.08rem 0 !important;
    font-size: 0.75rem !important;
    line-height: 1.25 !important;
}
.shell-app .shell-content .attendance-risk-item .attendance-side-item__copy {
    margin-block: 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.3 !important;
}
.attendance-risk-item .attendance-side-badge {
    min-height: 23px;
    padding: 0.12rem 0.4rem;
}
.attendance-risk-item:hover,
.attendance-risk-item:focus-visible {
    outline: 2px solid var(--ec-focus);
    outline-offset: 2px;
}
.shell-app .shell-content .attendance-risk-item.is-warn {
    border-color: #e9e1c5 !important;
    border-left: 3px solid #c98e16 !important;
    background: #fffdf2 !important;
}
.shell-app .shell-content .attendance-risk-item.is-orange {
    border-color: #eddfd1 !important;
    border-left: 3px solid #da7128 !important;
    background: #fff9f3 !important;
}
.shell-app .shell-content .attendance-risk-item.is-danger {
    border-color: #ebd8d8 !important;
    border-left: 3px solid #bb393f !important;
    background: #fff8f8 !important;
}
.shell-app .shell-content .attendance-risk-item.is-critical {
    border-color: #dbe1e8 !important;
    border-left: 3px solid #252d39 !important;
    background: #f7f9fb !important;
}
.attendance-side-badge.is-orange { border-color: #e9a05a; background: #ffe2ca; color: #88400d; }
.attendance-side-badge.is-critical { border-color: #343b48; background: #252d39; color: #ffffff; }
/* Attendance only: keep the existing scroll action in flow, clear of all cards. */
.shell-app .shell-main:has(.attendance-module) > .shell-scrolltop {
    position: static;
    align-self: flex-end;
    flex: none;
    margin: 0 1rem 1rem;
}
.attendance-risk-modal { max-height: min(90vh, 820px); overflow: hidden; display: flex; flex-direction: column; gap: 0.55rem; }
.attendance-risk-modal.is-warn { --risk-tint: #fffdf2; --risk-line: #e9e1c5; --risk-accent: #915c00; --risk-ink: #624000; }
.attendance-risk-modal.is-orange { --risk-tint: #fff9f3; --risk-line: #eddfd1; --risk-accent: #a94712; --risk-ink: #74330e; }
.attendance-risk-modal.is-danger { --risk-tint: #fff8f8; --risk-line: #ebd8d8; --risk-accent: #a72c35; --risk-ink: #722128; }
.attendance-risk-modal.is-critical { --risk-tint: #f7f9fb; --risk-line: #dbe1e8; --risk-accent: #252d39; --risk-ink: #252d39; }
.attendance-photo-modal__dialog.attendance-risk-modal {
    background: #fff !important;
    border: 1px solid #dbe7f5 !important;
    border-top: 4px solid var(--risk-accent, #155489) !important;
}
.attendance-risk-modal__heading { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.attendance-risk-modal__heading .attendance-card__eyebrow { margin: 0; color: var(--risk-ink, #24415f); }
.attendance-risk-modal__level {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: var(--risk-accent, #155489);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
}
.attendance-risk-modal .attendance-card__title { color: var(--risk-ink, #24415f); }
.attendance-risk-modal .attendance-photo-modal__close { flex: none; }
.attendance-risk-modal__summary { margin: 0; color: var(--risk-ink, #24415f); font-weight: 700; }
.attendance-risk-modal__note { margin: 0; padding: 0.65rem; border-radius: 12px; background: #fff7e6; color: #704d13; }
.attendance-risk-modal__tabs { display: flex; gap: 0.4rem; overflow-x: auto; flex: none; padding: 0.2rem 0; }
.attendance-risk-modal__tab { display: inline-flex; gap: 0.4rem; align-items: center; white-space: nowrap; padding: 0.5rem 0.65rem; border: 1px solid #c9dff5; border-radius: 999px; background: #f7fbff; color: #24415f; font: inherit; font-size: 0.78rem; font-weight: 700; cursor: pointer; }
.attendance-risk-modal__tab.is-active { background: var(--risk-accent, #155489); border-color: var(--risk-accent, #155489); color: #fff; }
.attendance-risk-modal__tab:focus-visible { outline: 2px solid var(--ec-focus); outline-offset: 2px; }
.attendance-risk-modal__tab span { font-weight: 900; }
.attendance-risk-modal__history { overflow-y: auto; min-height: 0; display: grid; gap: 0.4rem; }
.attendance-risk-modal__row { display: grid; grid-template-columns: 100px minmax(100px, 1fr) minmax(110px, 1fr) 110px; gap: 0.6rem; padding: 0.55rem; border: 1px solid var(--risk-line, #dbe7f5); border-radius: 10px; background: var(--risk-tint, #fff); font-size: 0.82rem; }
@media (max-width: 620px) {
    .attendance-risk-modal__row { grid-template-columns: 1fr 1fr; }
}
