:root {
    --navy: #0b1f4d;
    --navy-2: #132f6b;
    --gold: #d4a017;
    --gold-2: #f3cd5e;
    --light: #f5f7fb;
    --card: #ffffff;
    --text: #1f2937;
    --muted: #64748b;
    --success-soft: #dcfce7;
    --danger-soft: #fee2e2;
    --warning-soft: #fef3c7;
    --info-soft: #dbeafe;
}

.teacher-homeroom-note {
    display: flex;
    align-items: flex-start;
    gap: 0.95rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: rgba(11, 31, 77, 0.05);
    border: 1px solid rgba(11, 31, 77, 0.08);
}

.teacher-homeroom-note-icon {
    width: 2.3rem;
    height: 2.3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(212, 160, 23, 0.16);
    color: var(--navy);
    flex-shrink: 0;
}

.teacher-homeroom-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
}

.teacher-homeroom-summary-item {
    border-radius: 1rem;
    border: 1px solid rgba(11, 31, 77, 0.08);
    background: linear-gradient(180deg, rgba(11, 31, 77, 0.02), rgba(11, 31, 77, 0.05));
    padding: 1rem;
}

.teacher-homeroom-student-card {
    border-radius: 1rem;
    border: 1px solid rgba(11, 31, 77, 0.08);
    background: #fff;
    padding: 1rem;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.homeroom-roster-table .table-avatar {
    width: 2.9rem;
    height: 2.9rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(11, 31, 77, 0.08);
    color: var(--navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.homeroom-roster-table .table-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 767.98px) {
    .teacher-homeroom-note {
        padding: 0.95rem;
    }

    .teacher-homeroom-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.clearance-office-slip-page {
    max-width: 920px;
    margin: 0 auto;
}

.clearance-office-slip-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .42rem .8rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.clearance-office-slip-header {
    display: flex;
    justify-content: space-between;
    gap: 1.25rem;
    align-items: flex-start;
    margin-bottom: 1.2rem;
}

.clearance-office-slip-header h1 {
    margin: 0 0 .35rem;
    font-size: 1.7rem;
    font-weight: 800;
    color: #0f172a;
}

.clearance-office-slip-header p {
    margin: 0;
    color: #475569;
    max-width: 42rem;
}

.clearance-office-slip-status {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}

.clearance-office-slip-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 1rem;
}

.clearance-office-slip-profile {
    display: grid;
    grid-template-columns: 126px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.clearance-office-slip-photo {
    width: 126px;
    max-width: 126px;
}

.clearance-office-slip-photo img,
.clearance-office-slip-photo .student-photo-placeholder {
    display: block;
    width: 126px;
    max-width: 126px;
    min-width: 126px;
    height: 150px;
    border-radius: 18px;
    object-fit: cover;
}

.clearance-office-slip-evidence {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .85rem .95rem;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: rgba(248, 250, 252, 0.95);
}

.clearance-office-slip-evidence span {
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
}

.clearance-office-slip-evidence strong {
    color: #0f172a;
    font-size: 1rem;
}

.clearance-office-slip-footer {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px dashed rgba(148, 163, 184, 0.55);
}

.clearance-office-slip-note {
    padding: .9rem 1rem;
    border-radius: 16px;
    background: rgba(255, 248, 220, 0.72);
    border: 1px solid rgba(217, 119, 6, 0.2);
    color: #7c2d12;
}

.clearance-office-slip-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: .75rem;
    color: #64748b;
    font-size: .88rem;
}

@media (max-width: 991.98px) {
    .clearance-office-slip-grid,
    .clearance-office-slip-profile {
        grid-template-columns: 1fr;
    }

    .clearance-office-slip-photo,
    .clearance-office-slip-photo img,
    .clearance-office-slip-photo .student-photo-placeholder {
        width: 126px;
        max-width: 126px;
        min-width: 126px;
    }

    .clearance-office-slip-header {
        flex-direction: column;
    }

    .clearance-office-slip-status {
        justify-content: flex-start;
    }
}

@media print {
    .clearance-office-slip-page {
        max-width: none !important;
        padding: .95rem 1rem !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    .clearance-office-slip-kicker {
        margin-bottom: .6rem !important;
        padding: .24rem .55rem !important;
        font-size: .56rem !important;
    }

    .clearance-office-slip-header {
        gap: .7rem !important;
        margin-bottom: .7rem !important;
    }

    .clearance-office-slip-header h1 {
        font-size: 1.05rem !important;
        margin-bottom: .18rem !important;
    }

    .clearance-office-slip-header p,
    .clearance-office-slip-meta,
    .clearance-office-slip-note,
    .clearance-office-slip-evidence span,
    .clearance-office-slip-evidence strong {
        font-size: .62rem !important;
    }

    .clearance-office-slip-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: .55rem !important;
    }

    .clearance-office-slip-profile {
        grid-template-columns: 86px minmax(0, 1fr) !important;
        gap: .6rem !important;
    }

    .clearance-office-slip-photo {
        width: 86px !important;
        max-width: 86px !important;
    }

    .clearance-office-slip-photo img,
    .clearance-office-slip-photo .student-photo-placeholder {
        width: 86px !important;
        max-width: 86px !important;
        min-width: 86px !important;
        height: 104px !important;
        border-radius: 12px !important;
    }

    .clearance-office-slip-page .card.table-card,
    .clearance-office-slip-page .clearance-office-slip-evidence,
    .clearance-office-slip-page .clearance-office-slip-note {
        box-shadow: none !important;
        break-inside: avoid;
    }

    .clearance-office-slip-page .card-header {
        padding: .42rem .58rem !important;
        font-size: .66rem !important;
    }

    .clearance-office-slip-page .card-body {
        padding: .56rem .62rem !important;
    }

    .clearance-office-slip-page .detail-item {
        padding-block: .22rem !important;
    }

    .clearance-office-slip-page .detail-label {
        font-size: .5rem !important;
    }

    .clearance-office-slip-page .detail-value {
        font-size: .65rem !important;
    }

    .clearance-office-slip-page .soft-badge {
        padding: .18rem .38rem !important;
        font-size: .5rem !important;
    }

    .clearance-office-slip-evidence {
        padding: .5rem .56rem !important;
        border-radius: 10px !important;
    }

    .clearance-office-slip-footer {
        margin-top: .7rem !important;
        padding-top: .55rem !important;
    }
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--light);
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
}

a { text-decoration: none; }

.app-shell {
    min-height: 100vh;
    display: flex;
}

.sidebar {
    width: 312px;
    min-width: 312px;
    color: white;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 28%),
        linear-gradient(180deg, var(--navy-2) 0%, var(--navy) 42%, var(--gold) 100%);
    padding: 16px 14px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: sticky;
    top: 0;
    height: 100vh;
    transition: width .25s ease, min-width .25s ease, padding .25s ease;
}

.sidebar > div:first-child {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.brand-block {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 6px 8px 14px;
}

.brand-logo {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, var(--gold), var(--gold-2));
    box-shadow: 0 12px 24px rgba(0,0,0,.16);
    color: #fff;
    font-size: 22px;
}

.brand-logo-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    display: block;
    background: #fff;
    padding: .22rem;
}

.brand-title {
    font-weight: 800;
    font-size: 1.12rem;
}

.brand-subtitle {
    color: #d7dfeb;
    font-size: .82rem;
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 4px 2px 4px 14px;
    gap: 0;
    border-left: 1px solid rgba(255,255,255,.10);
}

.sidebar-nav::-webkit-scrollbar { width: 8px; }
.sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.18);
    border-radius: 999px;
}

.sidebar-section {
    display: grid;
    gap: .35rem;
}

.sidebar-section + .sidebar-section {
    margin-top: .55rem;
    padding-top: .75rem;
    border-top: 1px solid rgba(255,255,255,.08);
}

.sidebar-section-title {
    padding: 0 16px;
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.54);
}

.sidebar-section-links {
    display: grid;
    gap: 0;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    border-radius: 0;
    color: #dbe5f5;
    background: transparent;
    transition: .2s ease;
    border-left: 3px solid transparent;
}

.sidebar-link i {
    flex: 0 0 18px;
    text-align: center;
    opacity: .95;
}

.sidebar-link span {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-link:hover {
    background: rgba(255,255,255,.04);
    color: #fff;
    border-left-color: rgba(243,205,94,.45);
}

.sidebar-link.active {
    background: linear-gradient(90deg, rgba(243,205,94,.18), rgba(243,205,94,0));
    color: #fff;
    border-left-color: var(--gold-2);
}

.sidebar-footer-info {
    padding: 12px 8px 4px;
    border-top: 1px solid rgba(255,255,255,.10);
    margin-top: 12px;
}

.content-area {
    flex: 1;
    padding: 22px;
    min-width: 0;
}

.topbar {
    background: white;
    border-radius: 20px;
    padding: 18px 20px;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
    margin-bottom: 18px;
}

.page-title {
    color: var(--navy);
    font-weight: 800;
}

.page-stack {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.sidebar-toggle-btn,
.sidebar-mobile-btn {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 14px;
    display: inline-grid;
    place-items: center;
    font-size: 1rem;
    transition: .2s ease;
}

.sidebar-toggle-btn {
    background: #f8fafc;
    color: var(--navy);
}

.sidebar-toggle-btn:hover { background: #eef2ff; }

.sidebar-mobile-btn {
    display: none;
    background: var(--navy);
    color: #fff;
}

.sidebar-mobile-btn:hover { background: var(--navy-2); }

.offcanvas .sidebar-link {
    color: var(--text);
    background: transparent;
    border: 0;
    border-left: 3px solid transparent;
    border-radius: 0;
}

.offcanvas .sidebar-link:hover,
.offcanvas .sidebar-link.active {
    color: #0b1f4d;
    background: linear-gradient(90deg, #eef4ff, rgba(238,244,255,0));
    border-left-color: #c99b1a;
}

.offcanvas .sidebar-section + .sidebar-section {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid #e6edf7;
}

.offcanvas .sidebar-section-title {
    padding: 0 4px;
    color: #667085;
}

.card-soft,
.stat-card,
.panel-card,
.table-card {
    border: 0;
    border-radius: 20px;
    background: var(--card);
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
}

.table-card { overflow: hidden; }

.card-soft .card-body,
.stat-card .card-body { padding: 20px; }

.stat-label {
    color: var(--muted);
    font-size: .9rem;
}

.stat-value {
    font-size: 2rem;
    font-weight: 800;
    color: var(--navy);
}

.btn-gold {
    background: var(--gold);
    border-color: var(--gold);
    color: #fff;
}

.btn-gold:hover {
    background: var(--gold-2);
    border-color: var(--gold-2);
    color: #fff;
}

.btn-navy {
    background: var(--navy);
    border-color: var(--navy);
    color: #fff;
}

.btn-navy:hover {
    background: var(--navy-2);
    border-color: var(--navy-2);
    color: #fff;
}

.hero-gradient,
.hero-panel {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    padding: 30px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 28%),
        linear-gradient(135deg, var(--navy-2) 0%, var(--navy) 38%, var(--gold) 100%);
    color: #fff;
    box-shadow: 0 18px 50px rgba(11,35,65,.16);
}

.hero-panel::before,
.hero-gradient::before {
    content: "";
    position: absolute;
    right: -55px;
    top: -55px;
    width: 180px;
    height: 180px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
}

.hero-panel::after,
.hero-gradient::after {
    content: "";
    position: absolute;
    right: 60px;
    bottom: -70px;
    width: 170px;
    height: 170px;
    background: rgba(243,205,94,.18);
    border-radius: 50%;
}

.hero-panel > *,
.hero-gradient > * { position: relative; z-index: 1; }

.hero-mini-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: .85rem;
}

.hero-mini-card,
.school-kpi-card {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 36%),
        linear-gradient(135deg, var(--navy) 0%, var(--gold) 100%);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    padding: 1rem;
    backdrop-filter: blur(10px);
    box-shadow: 0 14px 28px rgba(4,16,36,.18);
}

.hero-mini-card .label,
.school-kpi-label {
    font-size: .78rem;
    color: rgba(255,255,255,.70);
    margin-bottom: .3rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.hero-mini-card .value,
.school-kpi-value {
    font-size: 1.35rem;
    font-weight: 900;
    color: #fff;
    line-height: 1;
}

.school-kpi-meta {
    margin-top: .55rem;
    color: rgba(255,255,255,.82);
    font-size: .8rem;
    line-height: 1.35;
}

.panel-card .card-header,
.table-card .card-header {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 34%),
        linear-gradient(135deg, var(--navy) 0%, var(--gold) 100%);
    color: #fff;
    border: 0;
    padding: 1rem 1.15rem;
    font-size: 1rem;
    font-weight: 800;
}

.metric-pill {
    padding: 10px 14px;
    border-radius: 16px;
    background: #f8fafc;
    min-width: 120px;
}

.metric-pill strong {
    display: block;
    color: var(--navy);
}

.mini-stat {
    border-radius: 18px;
    background: linear-gradient(135deg, #fff, #f9fbff);
    border: 1px solid #edf2f7;
    padding: 16px;
}

.mini-stat .label {
    color: var(--muted);
    font-size: .88rem;
}

.mini-stat .value {
    color: var(--navy);
    font-weight: 800;
    font-size: 1.5rem;
}

.table thead th {
    background: #f8fafc;
    color: var(--navy);
    white-space: nowrap;
}

.table > :not(caption) > * > * {
    padding-top: .9rem;
    padding-bottom: .9rem;
}

.section-eyebrow {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #667085;
    font-weight: 800;
    margin-bottom: .35rem;
}

.soft-badge {
    border-radius: 999px;
    padding: 6px 10px;
    font-size: .78rem;
    font-weight: 700;
}

.soft-success { background: var(--success-soft); color: #166534; }
.soft-danger { background: var(--danger-soft); color: #991b1b; }
.soft-warning { background: var(--warning-soft); color: #92400e; }
.soft-info { background: var(--info-soft); color: #1d4ed8; }

.performance-band-guide-card {
    border-width: 1px;
    border-style: solid;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.32);
}

.performance-band-guide-card .label {
    font-weight: 800;
}

.performance-band-guide-card .meta {
    font-weight: 600;
}

.performance-band-guide-outstanding {
    background: linear-gradient(180deg, rgba(220, 252, 231, 0.95), rgba(220, 252, 231, 0.72)) !important;
    border-color: rgba(22, 101, 52, 0.18) !important;
}

.performance-band-guide-outstanding .label {
    color: #166534;
}

.performance-band-guide-outstanding .meta {
    color: #166534;
}

.performance-band-guide-steady {
    background: linear-gradient(180deg, rgba(219, 234, 254, 0.95), rgba(219, 234, 254, 0.72)) !important;
    border-color: rgba(29, 78, 216, 0.18) !important;
}

.performance-band-guide-steady .label {
    color: #1d4ed8;
}

.performance-band-guide-steady .meta {
    color: #1e40af;
}

.performance-band-guide-support {
    background: linear-gradient(180deg, rgba(254, 243, 199, 0.96), rgba(254, 243, 199, 0.76)) !important;
    border-color: rgba(146, 64, 14, 0.18) !important;
}

.performance-band-guide-support .label {
    color: #92400e;
}

.performance-band-guide-support .meta {
    color: #9a3412;
}

.performance-band-guide-critical {
    background: linear-gradient(180deg, rgba(254, 226, 226, 0.96), rgba(254, 226, 226, 0.76)) !important;
    border-color: rgba(153, 27, 27, 0.18) !important;
}

.performance-band-guide-critical .label {
    color: #991b1b;
}

.performance-band-guide-critical .meta {
    color: #991b1b;
}

.public-nav {
    background: white;
    border-radius: 20px;
    padding: 16px 20px;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
}

.public-shell {
    padding: 22px;
}

.school-admin-hero {
    border-radius: 32px;
}

.school-hero-copy-panel {
    padding: 1.35rem 1.4rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 36%),
        linear-gradient(135deg, var(--navy) 0%, var(--gold) 100%);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 20px 40px rgba(3,11,24,.18);
}

.school-workspace-card {
    display: inline-flex;
    align-items: center;
    gap: .9rem;
    padding: .9rem 1rem;
    border-radius: 22px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 30%),
        linear-gradient(135deg, var(--navy-2) 0%, var(--gold) 100%);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 18px 34px rgba(2,10,24,.22);
    max-width: min(560px, 100%);
}

.school-workspace-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: rgba(255,255,255,.12);
    color: #dbeafe;
    font-size: 1.05rem;
    flex: 0 0 auto;
}

.school-workspace-copy {
    display: grid;
    gap: .32rem;
}

.school-chip,
.live-badge {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .48rem .9rem;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    font-size: .85rem;
    font-weight: 700;
}

.hero-live-pill {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .34rem .72rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, .32);
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.hero-live-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 0 6px rgba(34,197,94,.16);
    animation: heroPulse 1.8s ease-in-out infinite;
}

@keyframes heroPulse {
    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(34,197,94,.26);
    }
    50% {
        transform: scale(1.08);
        box-shadow: 0 0 0 8px rgba(34,197,94,.08);
    }
}

.school-workspace-text {
    color: rgba(255,255,255,.82);
    font-size: .92rem;
    line-height: 1.35;
}

.school-hero-title {
    font-size: clamp(1.9rem, 3vw, 3.25rem);
    font-weight: 900;
    line-height: 1.05;
    max-width: 16ch;
    color: var(--gold-2);
}

.school-hero-text {
    color: rgba(255,255,255,.82);
    max-width: 62ch;
}

.school-panel { overflow: hidden; }

.school-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
}

.school-editor-panel {
    position: sticky;
    top: 110px;
}

.school-editor-highlight {
    padding: 1rem 1rem 1.05rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #fff7df, #fff);
    border: 1px solid rgba(212,160,23,.22);
}

.school-spotlight-panel {
    background:
        radial-gradient(circle at top right, rgba(243,205,94,.18), transparent 32%),
        linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);
}

.school-spotlight-badge {
    display: inline-flex;
    align-items: center;
    padding: .72rem 1rem;
    border-radius: 999px;
    background: rgba(11,31,77,.08);
    color: var(--navy);
    font-weight: 800;
}

.school-spotlight-stat {
    height: 100%;
    border-radius: 20px;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid #e9eef7;
    box-shadow: 0 12px 24px rgba(15,23,42,.04);
}

.school-spotlight-stat .label {
    font-size: .78rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .35rem;
}

.school-spotlight-stat .value {
    font-size: 1.35rem;
    font-weight: 900;
    color: var(--navy);
}

.report-card-topbar {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    margin-bottom: .55rem;
}

.report-card-sheet {
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(250,251,253,.99));
    padding-top: 1.1rem;
}

.report-card-formal-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: .8rem;
    align-items: start;
    margin-bottom: .85rem;
}

.report-card-formal-title {
    border: 1px solid #d8dee9;
    border-radius: 16px;
    background: #fff;
    padding: .9rem 1rem;
}

.report-card-formal-title h1 {
    margin: .1rem 0 .2rem;
    font-size: 1.3rem;
    line-height: 1.15;
    color: var(--navy);
    font-weight: 900;
}

.report-card-formal-meta {
    margin-top: .3rem;
}

.report-card-position-card {
    border-radius: 16px;
    padding: .85rem .95rem;
    background: linear-gradient(180deg, #10315f, #0a2342);
    color: #fff;
    box-shadow: 0 12px 26px rgba(15,23,42,.1);
}

.report-card-position-label {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .68rem;
    color: rgba(255,255,255,.78);
    margin-bottom: .2rem;
    font-weight: 800;
}

.report-card-position-value {
    font-size: 1.55rem;
    line-height: 1;
    font-weight: 900;
    margin-bottom: .22rem;
}

.report-card-position-meta {
    font-size: .76rem;
    color: rgba(255,255,255,.82);
}

.report-card-school-line {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .45rem;
    color: #667085;
    font-size: .7rem;
    font-weight: 700;
}

.report-card-school-line span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.report-card-school-line span:not(:last-child)::after {
    content: "•";
    color: #c0c9d8;
    margin-left: .2rem;
}

.report-card-bio-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px;
    gap: .8rem;
    border: 1px solid #d8dee9;
    border-radius: 16px;
    background: #fff;
    padding: .85rem;
    margin-bottom: .75rem;
}

.report-card-bio-main {
    min-width: 0;
}

.report-card-bio-head {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    align-items: flex-start;
    margin-bottom: .6rem;
}

.report-card-bio-photo-wrap {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.report-card-formal-photo {
    width: 100px;
    height: 112px;
    border-radius: 14px;
    border-width: 2px;
}

.report-card-bio-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
}

.report-card-bio-grid-formal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem .9rem;
}

.report-card-bio-line {
    display: flex;
    justify-content: space-between;
    gap: .7rem;
    align-items: baseline;
    padding: .28rem 0;
    border-bottom: 1px solid #edf2f7;
}

.report-card-bio-line span {
    display: block;
    flex: 0 0 42%;
    font-size: .58rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #667085;
    font-weight: 800;
}

.report-card-bio-line strong {
    display: block;
    flex: 1 1 auto;
    text-align: right;
    font-size: .77rem;
    line-height: 1.25;
    color: var(--navy);
    font-weight: 800;
}

.report-card-bio-item {
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    padding: .45rem .52rem;
    background: #fbfcfe;
}

.report-card-bio-item span {
    display: block;
    font-size: .58rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #667085;
    font-weight: 800;
    margin-bottom: .08rem;
}

.report-card-bio-item strong {
    display: block;
    font-size: .77rem;
    line-height: 1.25;
    color: var(--navy);
    font-weight: 800;
}

.report-card-formal-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .45rem;
    margin-bottom: .75rem;
    align-items: stretch;
}

.report-card-academic-card {
    margin-bottom: .75rem;
}

.report-card-formal-lower {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.report-card-formal-lower-top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: .65rem;
}

.report-card-conduct-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: -.1rem;
    margin-bottom: .65rem;
}

.report-card-progress-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.report-card-cluster + .report-card-cluster {
    margin-top: .35rem;
}

.report-card-progress-card-wide {
    grid-column: span 2;
}

.report-card-progress-card-qr .registration-qr-card {
    max-width: 230px;
}

.report-card-progress-card-qr .registration-qr-meta {
    text-align: center;
}

.report-card-progress-card-qr .detail-list {
    margin-top: .2rem;
}

.report-card-progress-card .card-body p {
    line-height: 1.45;
}

.report-card-remarks-card {
    margin-top: 0;
}

.report-card-remarks-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem .7rem;
}

.report-card-conduct-admin-row,
.report-card-admin-remarks-row {
    --bs-gutter-x: .8rem;
}

.report-card-student-details-columns {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.report-card-student-details-columns::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: #dbe4ee;
    transform: translateX(-50%);
}

.report-card-student-details-column {
    gap: .45rem;
}

.report-card-student-details-column .detail-item {
    border-bottom: 1px solid #edf2f7;
    padding: .18rem 0 .45rem;
    gap: .8rem;
    align-items: flex-start;
}

.report-card-student-details-column .detail-label {
    flex: 0 0 48%;
}

.report-card-student-details-column .detail-value {
    flex: 1 1 auto;
}

.report-card-remark-block {
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fbfcfe;
    padding: .55rem .62rem;
}

.report-card-remark-block-wide {
    grid-column: 1 / -1;
}

.report-card-remark-block .detail-label {
    margin-bottom: .18rem;
}

.report-card-remark-block .detail-value {
    font-size: .74rem;
    line-height: 1.45;
    color: #102a43;
}

.report-card-cluster {
    border-radius: 18px;
    border: 1px solid #e6edf7;
    background: linear-gradient(180deg, rgba(248,251,255,.95), rgba(255,255,255,.98));
    padding: .72rem;
    margin-bottom: .75rem;
}

.report-card-cluster-head {
    margin-bottom: .55rem;
}

.report-card-cluster-head h3 {
    font-size: .9rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1.2;
}

.report-card-cluster-head p {
    color: #667085;
    max-width: 760px;
    font-size: .76rem;
}

.report-card-profile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .6rem;
    margin-bottom: .45rem;
    align-items: stretch;
}

.report-card-admin-profile {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}

.report-card-student-media {
    display: flex;
    align-items: flex-start;
    gap: .72rem;
    border-radius: 16px;
    padding: .75rem .82rem;
    border: 1px solid #e6edf7;
    background: #fff;
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
    min-height: 100%;
}

.report-card-admin-student-media {
    padding: .68rem .75rem;
}

.report-card-student-photo {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 14px;
    border: 3px solid rgba(11,31,77,.08);
    background: #eef2ff;
    flex: 0 0 auto;
}

.report-card-student-photo-placeholder {
    display: grid;
    place-items: center;
    color: var(--navy);
    font-size: 1.45rem;
}

.report-card-student-name {
    font-size: 1.02rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1.15;
    margin-bottom: .12rem;
}

.report-card-student-subtitle {
    color: #667085;
    margin-bottom: .32rem;
    font-size: .75rem;
}

.report-card-student-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.report-card-identity-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
    margin-top: .52rem;
}

.report-card-admin-identity-grid {
    margin-top: .6rem;
    gap: .42rem;
}

.report-card-identity-item {
    border-radius: 12px;
    padding: .4rem .5rem;
    background: linear-gradient(180deg, #f8fbff, #ffffff);
    border: 1px solid #e6edf7;
}

.report-card-identity-item .identity-label {
    display: block;
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #667085;
    margin-bottom: .08rem;
}

.report-card-identity-item .identity-value {
    display: block;
    color: var(--navy);
    font-weight: 800;
    line-height: 1.2;
    font-size: .76rem;
}

.report-card-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
    align-content: start;
}

.report-card-summary-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: .18rem;
    border-radius: 13px;
    padding: .55rem .62rem;
    border: 1px solid #d8dee9;
    background: #fff;
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
    min-height: 100%;
}

.report-card-summary-card .label {
    font-size: .56rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #667085;
    font-weight: 800;
    margin-bottom: .1rem;
}

.report-card-summary-card .value {
    font-size: .92rem;
    line-height: 1.05;
    color: var(--navy);
    font-weight: 900;
    margin-bottom: .08rem;
}

.report-card-summary-card .meta {
    font-size: .67rem;
    color: #667085;
    line-height: 1.3;
}

@media (max-width: 1200px) {
    .report-card-formal-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .report-card-formal-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.housing-stats-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.housing-stats-grid .report-card-summary-card {
    min-height: 100%;
}

.housing-toolbar {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e7edf6;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.housing-toolbar-copy h6 {
    color: var(--navy);
    font-weight: 800;
}

.housing-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    justify-content: flex-end;
}

.housing-alert-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.housing-alert-card {
    border-radius: 20px;
    border: 1px solid #d9e1ef;
    background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
    padding: 1rem;
    display: grid;
    gap: .9rem;
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
}

.housing-alert-card--warning {
    background: linear-gradient(180deg, #fffdf7 0%, #fff7ed 100%);
    border-color: #f7d9a5;
}

.housing-alert-card--danger {
    background: linear-gradient(180deg, #fff8f8 0%, #fff1f2 100%);
    border-color: #f8c4cc;
}

.housing-alert-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
}

.housing-alert-title {
    font-size: .95rem;
    line-height: 1.2;
    font-weight: 800;
    color: var(--navy);
}

.housing-alert-copy {
    margin-top: .22rem;
    font-size: .78rem;
    color: #667085;
}

.housing-alert-list {
    display: grid;
    gap: .55rem;
}

.housing-alert-item {
    padding: .72rem .8rem;
    border-radius: 14px;
    border: 1px solid rgba(214,223,236,.9);
    background: rgba(255,255,255,.88);
}

.housing-alert-item strong,
.housing-movement-cell strong {
    display: block;
    color: var(--navy);
    font-size: .84rem;
    line-height: 1.2;
}

.housing-alert-item span,
.housing-movement-cell span {
    display: block;
    margin-top: .16rem;
    color: #667085;
    font-size: .74rem;
}

.housing-house-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.housing-house-card {
    border-radius: 20px;
    border: 1px solid #d9e1ef;
    background:
        radial-gradient(circle at top right, rgba(212,160,23,.12), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
    box-shadow: 0 14px 28px rgba(15,23,42,.06);
    padding: 1rem;
    display: grid;
    gap: .9rem;
}

.housing-house-card-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.housing-house-title {
    font-size: 1rem;
    line-height: 1.2;
    font-weight: 800;
    color: var(--navy);
}

.housing-house-subtitle {
    margin-top: .25rem;
    font-size: .8rem;
    color: #667085;
}

.housing-house-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
}

.housing-house-metrics div,
.housing-house-meta {
    border-radius: 14px;
    border: 1px solid #e7edf6;
    background: rgba(255,255,255,.85);
    padding: .6rem .7rem;
}

.housing-house-metrics span,
.housing-house-meta span {
    display: block;
    font-size: .67rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #667085;
    font-weight: 800;
    margin-bottom: .18rem;
}

.housing-house-metrics strong,
.housing-house-meta strong {
    display: block;
    color: var(--navy);
    font-size: .95rem;
    line-height: 1.15;
}

.housing-movement-cell {
    min-width: 150px;
}

.housing-stat-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    padding: .34rem .62rem;
    border-radius: 999px;
    border: 1px solid #d8dee9;
    background: #fff;
    color: var(--navy);
    font-weight: 800;
    font-size: .82rem;
    line-height: 1;
}

.housing-stat-pill.success {
    background: #eefbf2;
    border-color: #b7ebc2;
    color: #166534;
}

.housing-stat-pill.info {
    background: #eef6ff;
    border-color: #cfe0fb;
    color: #1d4ed8;
}

.housing-stat-pill.navy {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #1e3a8a;
}

.housing-stat-pill.neutral {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #334155;
}

.housing-stat-pill.gold {
    background: #fff8e8;
    border-color: #f6d68a;
    color: #9a6700;
}

.housing-stat-pill.warning {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #c2410c;
}

.housing-stat-pill.danger {
    background: #fff1f2;
    border-color: #fecdd3;
    color: #be123c;
}

@media (max-width: 1399.98px) {
    .housing-stats-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

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

@media (max-width: 767.98px) {
    .housing-toolbar,
    .housing-alert-head {
        flex-direction: column;
        align-items: stretch;
    }

    .housing-stats-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .housing-alert-grid,
    .housing-house-grid,
    .housing-house-metrics {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .housing-house-card-top {
        flex-direction: column;
    }
}

.report-card-section-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .55rem;
    padding: .6rem .72rem;
    border-radius: 15px;
    border: 1px solid #e6edf7;
    background: linear-gradient(135deg, #f9fbff, #ffffff);
    margin-bottom: .6rem;
}

.report-card-section-intro h3 {
    font-size: .86rem;
    font-weight: 900;
    color: var(--navy);
}

.report-card-section-intro p {
    color: #667085;
    max-width: 760px;
    font-size: .74rem;
}

.report-card-note-panel {
    border-radius: 12px;
    padding: .65rem .75rem;
    border: 1px solid rgba(11,31,77,.08);
    background: linear-gradient(135deg, #f8fbff, #fffef8);
    color: #344054;
    line-height: 1.45;
    font-size: .76rem;
}

.report-card-table th,
.report-card-table td {
    vertical-align: middle;
}

.report-card-table th {
    font-size: .67rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #667085;
    font-weight: 800;
}

.report-card-subject-table {
    table-layout: fixed;
    width: 100%;
}

.report-card-subject-table th {
    padding: .48rem .42rem;
    line-height: 1.22;
    min-height: 48px;
    white-space: normal;
}

.report-card-subject-table td {
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.report-card-subject-table .report-col-subject { width: 13%; }
.report-card-subject-table .report-col-components { width: 18%; }
.report-card-subject-table .report-col-score { width: 8%; }
.report-card-subject-table .report-col-grade { width: 7%; }
.report-card-subject-table .report-col-comparison { width: 14%; }
.report-card-subject-table .report-col-trend { width: 10%; }
.report-card-subject-table .report-col-position { width: 10%; }
.report-card-subject-table .report-col-remark { width: 8%; }
.report-card-subject-table .report-col-teacher { width: 12%; }

.report-card-teacher-cell {
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.3;
}

.report-card-subject-table .report-col-components,
.report-card-subject-table .report-col-remark {
    word-break: break-word;
    overflow-wrap: anywhere;
}

.report-card-subject-table-basic {
    table-layout: auto;
}

.report-card-subject-table-basic th,
.report-card-subject-table-basic td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.report-card-subject-table-basic .report-col-subject {
    width: 22%;
}

.report-card-subject-table-basic .report-col-components {
    width: 30%;
}

.report-card-subject-table-basic .report-col-score {
    width: 8%;
}

.report-card-subject-table-basic .report-col-grade {
    width: 8%;
}

.report-card-subject-table-basic .report-col-remark {
    width: 12%;
}

.report-card-subject-table-basic .report-col-teacher {
    width: 20%;
}

.report-card-subject-table-portal {
    table-layout: auto;
}

.report-card-subject-table-portal th,
.report-card-subject-table-portal td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.report-card-subject-table-portal .report-col-subject {
    width: 15%;
    min-width: 128px;
}

.report-card-subject-table-portal .report-col-components {
    width: 20%;
    min-width: 168px;
}

.report-card-subject-table-portal .report-col-score {
    width: 7%;
    min-width: 72px;
    white-space: nowrap;
}

.report-card-subject-table-portal .report-col-grade {
    width: 6%;
    min-width: 64px;
    white-space: nowrap;
}

.report-card-subject-table-portal .report-col-comparison {
    width: 13%;
    min-width: 120px;
}

.report-card-subject-table-portal .report-col-trend {
    width: 9%;
    min-width: 94px;
}

.report-card-subject-table-portal .report-col-position {
    width: 8%;
    min-width: 88px;
    white-space: nowrap;
}

.report-card-subject-table-portal .report-col-remark {
    width: 10%;
    min-width: 96px;
}

.report-card-subject-table-portal .report-col-teacher {
    width: 12%;
    min-width: 128px;
}

.report-card-subject-table-portal .report-col-score,
.report-card-subject-table-portal .report-col-grade,
.report-card-subject-table-portal .report-col-position {
    text-align: center;
}

.report-card-subject-table-portal .report-col-components,
.report-card-subject-table-portal .report-col-comparison,
.report-card-subject-table-portal .report-col-trend,
.report-card-subject-table-portal .report-col-remark,
.report-card-subject-table-portal .report-col-teacher {
    vertical-align: top;
}

.report-card-teacher-cell span {
    display: inline-block;
}

.result-summary-slip-page {
    max-width: 1120px;
    margin: 0 auto;
}

.result-summary-slip-sheet {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(15, 23, 42, .10);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
    box-shadow: 0 24px 48px rgba(15,23,42,.08);
    padding: 1rem 1rem .9rem;
}

.result-summary-slip-sheet > * {
    position: relative;
    z-index: 1;
}

.result-summary-slip-sheet.has-watermark::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image: var(--result-summary-watermark);
    background-repeat: no-repeat;
    background-position: center;
    background-size: min(42%, 240px);
    opacity: .07;
}

.result-summary-slip-sheet.has-watermark .table-card,
.result-summary-slip-sheet.has-watermark .result-summary-slip-student,
.result-summary-slip-sheet.has-watermark .result-summary-slip-stat {
    background: rgba(255,255,255,.88);
}

.result-summary-slip-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: .7rem;
}

.result-summary-slip-header h2 {
    margin: 0;
    font-size: 1.28rem;
    font-weight: 900;
    color: #0f172a;
}

.result-summary-slip-meta,
.result-summary-slip-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .65rem;
    align-items: center;
}

.result-summary-slip-meta {
    margin-top: .2rem;
    color: #64748b;
    font-size: .8rem;
}

.result-summary-slip-sheet .result-summary-slip-student {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 1rem;
    align-items: center;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 20px;
    padding: .75rem .85rem;
    margin-bottom: .7rem;
}

.result-summary-slip-sheet .result-summary-slip-student-main {
    min-width: 0;
}

.result-summary-slip-sheet .result-summary-slip-student-name {
    font-size: 1.02rem;
    font-weight: 900;
    color: #0f172a;
}

.result-summary-slip-sheet .result-summary-slip-student-subtitle {
    color: #475569;
    margin-top: .1rem;
    margin-bottom: .4rem;
    font-size: .9rem;
}

.result-summary-slip-sheet .result-summary-slip-student-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .42rem .7rem;
}

.result-summary-slip-sheet .result-summary-slip-student-grid span,
.result-summary-slip-sheet .result-summary-slip-stat span,
.result-summary-slip-sheet .result-summary-slip-remarks span {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748b;
    margin-bottom: .12rem;
}

.result-summary-slip-sheet .result-summary-slip-student-grid strong,
.result-summary-slip-sheet .result-summary-slip-stat strong,
.result-summary-slip-sheet .result-summary-slip-remarks strong {
    color: #0f172a;
    font-weight: 800;
}

.result-summary-slip-sheet .result-summary-slip-photo {
    display: block;
    width: 108px;
    min-width: 108px;
    max-width: 108px;
    height: 108px;
    object-fit: cover;
    justify-self: end;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .10);
}

.result-summary-slip-sheet .result-summary-slip-photo-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #eef3f8, #f8fafc);
    color: #64748b;
    font-size: 2rem;
}

.result-summary-slip-sheet .result-summary-slip-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    margin-bottom: .7rem;
}

.result-summary-slip-sheet .result-summary-slip-stat {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 16px;
    padding: .55rem .6rem;
}

.result-summary-slip-sheet .result-summary-slip-stat strong {
    font-size: .92rem;
}

.result-summary-slip-table-card .card-header {
    font-size: .76rem;
}

.result-summary-slip-table th,
.result-summary-slip-table td {
    vertical-align: middle;
}

.result-summary-slip-table th {
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
    padding: .34rem .4rem;
}

.result-summary-slip-table td {
    font-size: .74rem;
    padding: .34rem .4rem;
}

.result-summary-slip-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 138px;
    gap: 1rem;
    align-items: end;
    margin-top: .7rem;
}

.result-summary-slip-remarks {
    display: grid;
    gap: .5rem;
}

.result-summary-slip-qr {
    text-align: center;
}

.result-summary-slip-qr-label {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748b;
    margin-bottom: .35rem;
}

.result-summary-slip-qr-image {
    width: 120px;
    height: 120px;
    object-fit: contain;
}

.report-card-table td {
    font-size: .78rem;
}

.report-card-page .table-card {
    border-radius: 14px;
    border: 1px solid #d8dee9;
    box-shadow: none;
}

.report-card-page .table-card .card-header {
    padding: .62rem .78rem;
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #102a43;
    background: #f8fafc;
    border-bottom: 1px solid #d8dee9;
}

.report-card-page .table-card .card-body {
    padding: .68rem .78rem;
}

.report-card-page .detail-list {
    gap: .28rem;
}

.report-card-page .detail-item {
    padding: .28rem 0;
}

.report-card-page .detail-label {
    font-size: .58rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.report-card-page .detail-value {
    font-size: .72rem;
    line-height: 1.35;
}

.report-card-page .soft-badge {
    font-size: .62rem;
    padding: .25rem .45rem;
}

.report-card-print-header {
    display: none;
}

.result-publish-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
}

.result-publish-actions .form-select,
.result-publish-actions .form-control {
    min-width: 220px;
}

.result-comment-form {
    padding: .35rem 0;
}

.school-mini-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem 1.25rem;
    color: var(--muted);
    font-size: .95rem;
}

.school-mini-summary strong {
    color: var(--navy);
    font-weight: 900;
    margin-right: .2rem;
}

.school-dashboard-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.school-dashboard-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.15rem 1.1rem;
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid #e8edf6;
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
}

.school-dashboard-card.highlight {
    display: block;
    background:
        radial-gradient(circle at top right, rgba(243,205,94,.16), transparent 30%),
        linear-gradient(135deg, var(--navy), var(--gold));
    border-color: rgba(255,255,255,.08);
    color: #fff;
}

.school-dashboard-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    background: rgba(11,31,77,.08);
    color: var(--navy);
    font-size: 1.05rem;
}

.school-dashboard-icon.alt {
    background: rgba(212,160,23,.14);
    color: #9a7004;
}

.school-dashboard-icon.success {
    background: rgba(22,163,74,.12);
    color: #166534;
}

.school-dashboard-label {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #718198;
    margin-bottom: .25rem;
    font-weight: 800;
}

.school-dashboard-card.highlight .school-dashboard-label,
.school-dashboard-card.highlight .school-dashboard-meta {
    color: rgba(255,255,255,.74);
}

.school-dashboard-value {
    font-size: 1.45rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1.05;
    margin-bottom: .22rem;
}

.school-dashboard-card.highlight .school-dashboard-value {
    color: #fff;
}

.school-dashboard-meta {
    color: #5d6b80;
    font-size: .9rem;
    line-height: 1.4;
}

.school-dashboard-highlight {
    font-size: 1.2rem;
    font-weight: 900;
    margin-bottom: .35rem;
}

.school-table tbody td {
    padding: 1.25rem 1rem;
    vertical-align: top;
}

.school-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(90px,1fr));
    gap: .75rem;
}

.school-metric-label {
    font-size: .76rem;
    color: #667085;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.school-metric-value {
    font-weight: 900;
    font-size: 1.1rem;
    color: var(--navy);
}

.school-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    max-width: 260px;
    margin-left: auto;
}

.school-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.school-directory-card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    border-radius: 24px;
    padding: 1.2rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.96)),
        #fff;
    border: 1px solid #e8edf6;
    box-shadow: 0 14px 30px rgba(15,23,42,.05);
}

.school-directory-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.school-directory-head h4 {
    margin: .28rem 0 0;
    font-size: 1.18rem;
    font-weight: 900;
    color: var(--navy);
}

.school-directory-code {
    display: inline-flex;
    align-items: center;
    padding: .36rem .7rem;
    border-radius: 999px;
    background: #eef4ff;
    color: #254f93;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.school-rate-pill {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: .5rem .8rem;
    border-radius: 999px;
    background: rgba(212,160,23,.14);
    color: #946e05;
    font-weight: 800;
    font-size: .82rem;
}

.school-directory-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.school-directory-meta span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    background: #f8fafc;
    color: #415269;
    font-size: .82rem;
    font-weight: 700;
}

.school-directory-contact {
    display: grid;
    gap: .55rem;
    color: #4d5b70;
    font-size: .92rem;
}

.school-directory-contact div {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
}

.school-directory-contact i {
    width: 16px;
    color: #6f84a5;
    margin-top: .15rem;
}

.school-progress-stack {
    display: grid;
    gap: .75rem;
}

.school-progress-label {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .38rem;
    color: #53657d;
    font-size: .82rem;
    font-weight: 700;
}

.school-progress-label strong {
    color: var(--navy);
    font-weight: 900;
}

.school-progress-bar {
    height: 10px;
    border-radius: 999px;
    background: #e9eef7;
    overflow: hidden;
}

.school-progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d4a017, #f3cd5e);
}

.school-progress-bar.alt span {
    background: linear-gradient(90deg, #11346b, #1f68b0);
}

.school-directory-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.school-directory-stats div {
    padding: .9rem .85rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #edf1f7;
    text-align: center;
}

.school-directory-stats span {
    display: block;
    color: #718198;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .3rem;
}

.school-directory-stats strong {
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 900;
}

.school-revenue-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .95rem 1rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #0e2448, #163d70);
    color: rgba(255,255,255,.84);
    font-size: .9rem;
}

.school-revenue-strip strong {
    color: #fff;
    font-size: 1rem;
    font-weight: 900;
}

.school-actions-card {
    justify-content: flex-start;
    margin-left: 0;
    max-width: none;
}

.school-interaction-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.school-inline-tools {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.school-inline-search {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: min(360px, 100%);
    padding: .78rem .95rem;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e7edf6;
}

.school-inline-search i {
    color: #8091a8;
}

.school-inline-search input {
    width: 100%;
    border: 0;
    background: transparent;
    outline: 0;
    color: var(--text);
}

.school-board-status {
    padding: .75rem .95rem;
    border-radius: 999px;
    background: #eef4ff;
    color: #37517f;
    font-size: .9rem;
    font-weight: 700;
}

.school-board-status span {
    color: var(--navy);
    font-weight: 900;
    margin-right: .25rem;
}

.school-view-toggle {
    display: inline-flex;
    padding: .3rem;
    gap: .3rem;
    border-radius: 999px;
    background: #edf2fa;
}

.school-view-toggle button {
    border: 0;
    background: transparent;
    color: #53657d;
    font-weight: 700;
    padding: .62rem .9rem;
    border-radius: 999px;
    transition: .2s ease;
}

.school-view-toggle button.active {
    background: #fff;
    color: var(--navy);
    box-shadow: 0 6px 16px rgba(15,23,42,.08);
}

.school-card-grid[data-view="compact"] {
    grid-template-columns: 1fr;
}

.school-card-grid[data-view="compact"] .school-directory-card {
    gap: .8rem;
}

.school-card-grid[data-view="compact"] .school-directory-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.school-card-grid[data-view="compact"] .school-directory-contact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-hero-grid {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 1.5rem;
    align-items: stretch;
}

.public-layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.public-sidebar {
    position: sticky;
    top: 22px;
    display: grid;
    gap: 1rem;
}

.public-sidebar-card {
    border-radius: 22px;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
    padding: 1.1rem 1.15rem;
}

.public-sidebar-card-soft {
    background: #fffdf6;
}

.public-sidebar-title {
    margin: 0 0 .4rem;
    color: var(--navy);
    font-weight: 900;
}

.public-sidebar-copy {
    margin: 0;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.5;
}

.public-sidebar-nav {
    display: grid;
    gap: .7rem;
}

.public-sidebar-link {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .95rem 1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    color: var(--navy);
    font-weight: 800;
    box-shadow: 0 10px 25px rgba(15,23,42,.04);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.public-sidebar-link:hover {
    transform: translateY(-2px);
    border-color: rgba(212,160,23,.28);
    box-shadow: 0 12px 26px rgba(15,23,42,.08);
    color: var(--navy);
}

.public-sidebar-link i {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-grid;
    place-items: center;
    background: #fff8e8;
    color: var(--gold);
    flex: 0 0 auto;
}

.public-sidebar-metric {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(15,23,42,.08);
    color: var(--muted);
    font-size: .92rem;
}

.public-sidebar-metric:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.public-sidebar-metric strong {
    color: var(--navy);
    font-size: .95rem;
    text-align: right;
}

.public-main {
    min-width: 0;
}

.portal-card {
    border-radius: 24px;
    border: 0;
    background: #fff;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
    height: 100%;
}

.portal-card .card-body { padding: 1.4rem; }

.public-shell .table-card {
    background: #fff;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
}

.public-shell .table-card .card-header {
    background: var(--navy);
    color: #fff;
    border-bottom: 1px solid rgba(11,31,77,.10);
}

.portal-tile {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    padding: 1rem;
    height: 100%;
    background: #fffdf6;
    transition: transform .2s ease, box-shadow .2s ease;
}

.portal-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(15,23,42,.08);
}

.portal-school-logo-wrap {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    padding: .35rem;
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
    overflow: hidden;
}

.portal-school-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.portal-school-logo-fallback {
    background: #fff8e8;
    border-color: rgba(212,160,23,.22);
    color: var(--navy);
    font-weight: 900;
    font-size: .95rem;
    letter-spacing: .04em;
}

.public-shell .portal-tile .btn-navy {
    background: var(--gold);
    border-color: var(--gold);
    color: #fff;
}

.public-shell .portal-tile .btn-navy:hover {
    background: var(--gold-2);
    border-color: var(--gold-2);
    color: #fff;
}

.login-wrap {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background: #f5f7fb;
}

.login-card {
    width: 100%;
    max-width: 460px;
    background: white;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
}

.login-header {
    background: var(--navy);
    color: white;
    padding: 28px;
}

.student-login-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    text-align: center;
}

.student-login-brand-logo-wrap {
    width: 88px;
    height: 88px;
    border-radius: 24px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.student-login-brand-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.student-login-brand-name {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
}

.public-shell .hero-panel,
.public-shell .hero-gradient {
    background: var(--navy);
    color: #fff;
}

.public-shell .hero-panel::before,
.public-shell .hero-panel::after,
.public-shell .hero-gradient::before,
.public-shell .hero-gradient::after {
    display: none;
}

.school-portal-hero {
    background: #fff !important;
    color: var(--text) !important;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
}

.school-portal-hero .lead,
.school-portal-hero p,
.school-portal-hero .text-white-50 {
    color: var(--muted) !important;
}

.school-portal-hero h1 {
    color: var(--navy);
}

.school-portal-contact-card {
    background: #fff8e8 !important;
    border: 1px solid rgba(212,160,23,.18);
    box-shadow: none;
}

.school-portal-contact-card .label {
    color: #8a6a08;
}

.school-portal-contact-card .value {
    color: var(--navy);
}

.school-portal-hero .btn-outline-light {
    color: var(--navy);
    border-color: #d1d5db;
}

.school-portal-hero .btn-outline-light:hover {
    background: #f8fafc;
    color: var(--navy);
    border-color: #cbd5e1;
}

.school-portal-stage {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.9fr);
    gap: 1.4rem;
    align-items: stretch;
    margin-bottom: 1.5rem;
}

.school-portal-shell {
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--school-secondary) 14%, transparent), transparent 28%),
        radial-gradient(circle at top right, color-mix(in srgb, var(--school-primary) 12%, transparent), transparent 32%),
        linear-gradient(180deg, #f8fafc 0%, #eef4fb 100%);
}

.school-portal-hero-card,
.school-portal-side-card,
.school-portal-process-board,
.school-portal-support-card {
    border: 1px solid #e5e7eb;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(212,160,23,.12), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
    box-shadow: 0 18px 40px rgba(15,23,42,.07);
}

.school-portal-hero-card {
    padding: 1.6rem;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--school-secondary) 26%, white), transparent 28%),
        linear-gradient(145deg, color-mix(in srgb, var(--school-primary) 92%, #08101f) 0%, var(--school-primary-dark) 64%, #09162b 100%);
    color: #fff;
    border-color: color-mix(in srgb, var(--school-primary) 36%, #ffffff);
    box-shadow: 0 24px 54px color-mix(in srgb, var(--school-primary) 22%, transparent);
}

.school-portal-brand-row {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    margin-bottom: 1.35rem;
}

.school-portal-brand-mark {
    width: 96px;
    height: 96px;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(255,255,255,.98), color-mix(in srgb, var(--school-secondary) 28%, white));
    border: 1px solid rgba(255,255,255,.24);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow:
        0 14px 28px rgba(15,23,42,.18),
        inset 0 1px 0 rgba(255,255,255,.65);
}

.school-portal-brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.school-portal-brand-mark span {
    font-size: 2rem;
    font-weight: 800;
    color: var(--school-primary);
    letter-spacing: .08em;
}

.school-portal-brand-copy h1 {
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
    margin: 0 0 .45rem;
    color: #fff;
}

.school-portal-brand-copy p {
    margin: 0;
    max-width: 60ch;
    color: rgba(255,255,255,.78);
    font-size: 1.02rem;
}

.school-portal-identity-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1rem;
}

.school-portal-identity-chips span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .52rem .9rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.92);
    font-size: .88rem;
    backdrop-filter: blur(10px);
}

.school-portal-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.2rem;
}

.school-portal-meta-card {
    padding: 1rem 1.05rem;
    border-radius: 22px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(12px);
}

.school-portal-meta-card .label,
.school-portal-side-panel .label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.68);
    margin-bottom: .45rem;
}

.school-portal-meta-card strong,
.school-portal-side-panel strong {
    display: block;
    color: #fff;
    font-size: 1.05rem;
    line-height: 1.25;
}

.school-portal-meta-card small,
.school-portal-side-panel small {
    display: block;
    margin-top: .3rem;
    color: rgba(255,255,255,.72);
}

.school-portal-alert {
    margin-bottom: 1.2rem;
    padding: 1rem 1.1rem;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.18);
    background: linear-gradient(180deg, rgba(255,244,214,.96), rgba(255,250,235,.98));
    color: #7c4a02;
}

.school-portal-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.school-portal-hero-actions .btn-outline-secondary {
    background: rgba(255,255,255,.09);
    border-color: rgba(255,255,255,.16);
    color: #fff;
}

.school-portal-hero-actions .btn-outline-secondary:hover {
    background: rgba(255,255,255,.16);
    border-color: rgba(255,255,255,.26);
    color: #fff;
}

.school-portal-side-card {
    padding: 1.45rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--school-secondary) 18%, transparent), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,250,253,.98));
}

.school-portal-side-card h3 {
    margin: -.15rem 0 0;
    color: var(--school-primary);
    font-size: 1.45rem;
}

.school-portal-checklist {
    margin: 0;
    padding-left: 1.1rem;
    color: #475569;
}

.school-portal-checklist li + li {
    margin-top: .6rem;
}

.school-portal-side-panel {
    padding: 1rem 1.05rem;
    border-radius: 22px;
    background: linear-gradient(180deg, #fffdf6, #fff8e8);
    border: 1px solid color-mix(in srgb, var(--school-secondary) 26%, #ffffff);
}

.school-portal-side-panel.soft {
    background: #f8fafc;
    border-color: rgba(203,213,225,.82);
}

.school-portal-side-panel .label,
.school-portal-side-panel strong,
.school-portal-side-panel small {
    color: inherit;
}

.school-portal-side-panel .label {
    color: #8a6a08;
}

.school-portal-side-panel strong {
    color: var(--school-primary);
}

.school-portal-side-panel.soft .label {
    color: #64748b;
}

.school-portal-process-board {
    padding: 1.45rem;
    margin-bottom: 1.4rem;
    background:
        radial-gradient(circle at bottom left, color-mix(in srgb, var(--school-secondary) 14%, transparent), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,250,252,.98));
}

.school-portal-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.school-portal-section-heading h3 {
    margin: 0;
    color: var(--school-primary);
}

.school-portal-section-heading p {
    margin: 0;
    color: #64748b;
    max-width: 34ch;
}

.school-portal-support-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.school-portal-support-card {
    padding: 1.3rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.99), rgba(248,250,252,.98));
}

.school-portal-support-card h4 {
    margin: .2rem 0 .55rem;
    color: var(--school-primary);
    font-size: 1.08rem;
}

.school-portal-support-card p {
    margin: 0;
    color: #5b6675;
}

.school-portal-support-card.accent {
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--school-primary) 12%, transparent), transparent 34%),
        linear-gradient(180deg, rgba(241,247,255,.98), rgba(255,255,255,.98));
}

.school-portal-orbit {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
    opacity: .42;
}

.school-portal-orbit-one {
    width: 240px;
    height: 240px;
    top: -92px;
    right: -64px;
    background: radial-gradient(circle, color-mix(in srgb, var(--school-secondary) 54%, white), transparent 68%);
}

.school-portal-orbit-two {
    width: 180px;
    height: 180px;
    bottom: -72px;
    left: -36px;
    background: radial-gradient(circle, color-mix(in srgb, var(--school-secondary-light) 42%, white), transparent 72%);
}

.login-body {
    padding: 28px;
}

.login-recovery-card {
    margin-bottom: 1.25rem;
    padding: 1rem 1rem 1.1rem;
    border: 1px solid rgba(212, 160, 23, .28);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255,248,232,.95), rgba(255,255,255,.98)),
        #fff;
    box-shadow: 0 10px 25px rgba(15, 23, 42, .05);
}

.login-recovery-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .55rem;
}

.login-recovery-head h3 {
    margin: .15rem 0 0;
    font-size: 1.05rem;
    color: var(--navy);
}

.login-recovery-badge {
    flex: 0 0 auto;
    padding: .38rem .7rem;
    border-radius: 999px;
    background: rgba(212, 160, 23, .14);
    color: #8a6a08;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.login-recovery-summary {
    color: var(--muted);
    font-size: .92rem;
}

.login-recovery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .9rem;
}

.login-recovery-info {
    padding: .8rem .9rem;
    border-radius: 14px;
    border: 1px solid #ebe5d2;
    background: rgba(255,255,255,.85);
}

.login-recovery-info .label,
.login-recovery-support .label {
    display: block;
    margin-bottom: .22rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.login-recovery-steps {
    display: grid;
    gap: .65rem;
    margin-top: .9rem;
}

.login-recovery-step {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}

.login-recovery-step span {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(11, 31, 77, .08);
    color: var(--navy);
    font-weight: 800;
}

.login-recovery-step div {
    padding-top: .25rem;
    color: var(--text);
    font-size: .92rem;
    line-height: 1.48;
}

.login-recovery-support,
.login-recovery-footer,
.login-help-strip {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid #ebe5d2;
}

.login-recovery-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.login-recovery-footer {
    color: var(--muted);
    font-size: .9rem;
}

.login-help-strip {
    color: var(--muted);
    font-size: .9rem;
}

.login-help-strip ul {
    padding-left: 1.1rem;
}

.login-help-strip li + li {
    margin-top: .3rem;
}

.print-page {
    background: #fff;
    max-width: 900px;
    margin: 20px auto;
    padding: 35px;
    border: 1px solid #ddd;
}

.qrbox {
    width: 120px;
    height: 120px;
    border: 2px dashed #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    text-align: center;
    word-break: break-all;
}

.footer-bar {
    padding: 12px 18px;
    text-align: center;
    font-size: 13px;
    color: #64748b;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.app-shell.sidebar-collapsed .sidebar {
    width: 92px;
    min-width: 92px;
    padding: 20px 10px;
}

.app-shell.sidebar-collapsed .brand-block {
    justify-content: center;
    padding-bottom: 18px;
}

.app-shell.sidebar-collapsed .sidebar-brand-copy,
.app-shell.sidebar-collapsed .sidebar-link span,
.app-shell.sidebar-collapsed .sidebar-footer-info {
    display: none !important;
}

.app-shell.sidebar-collapsed .sidebar-link {
    justify-content: center;
    padding: 11px 0;
    border-left-width: 0;
}

.app-shell.sidebar-collapsed .sidebar-link i {
    margin: 0 !important;
    font-size: 1rem;
}

.app-shell.sidebar-collapsed .brand-logo {
    margin: 0 auto;
}

.icon-badge {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #fff8e8, #fffdf6);
    color: var(--navy);
    font-size: 1.15rem;
    box-shadow: inset 0 0 0 1px rgba(212,160,23,.10);
}

.icon-badge.gold {
    background: linear-gradient(135deg, rgba(212,160,23,.16), rgba(243,205,94,.26));
    color: #9a6e00;
}

.title-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.title-row-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.stat-compact {
    border-radius: 18px;
    background: linear-gradient(135deg, #fff, #f9fbff);
    border: 1px solid #edf2f7;
    padding: 1rem;
    height: 100%;
}

.stat-compact-label {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--muted);
    font-weight: 800;
}

.stat-compact-value {
    font-size: 1.7rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1;
    margin-top: .45rem;
}

.surface-card {
    border-radius: 22px;
    background: linear-gradient(135deg, #fff, #fbfdff);
    border: 1px solid #edf2f7;
    padding: 1.15rem;
}

.action-tile {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #f8fbff);
    padding: 1rem;
    height: 100%;
}

.action-tile h6 {
    font-weight: 800;
    color: var(--navy);
}

.action-tile p {
    color: var(--muted);
    font-size: .9rem;
    margin-bottom: .85rem;
}

.form-section-card {
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    padding: 1.15rem;
    background: linear-gradient(135deg, #fff, #fbfdff);
}

.form-section-header {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
}

.form-section-header h5 {
    margin: 0;
    font-weight: 800;
}

.form-section-header p {
    margin: .2rem 0 0;
    color: var(--muted);
    font-size: .9rem;
}

.registration-hero {
    margin-bottom: 1.25rem;
}

.registration-insight-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.registration-insight-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    padding: 1rem 1.05rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.registration-insight-card strong {
    font-size: 1rem;
    color: var(--text);
}

.registration-insight-card span {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.45;
}

.registration-helper-note {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    border-radius: 14px;
    background: #f8fbff;
    border: 1px solid #e4eefc;
    color: #39506c;
    padding: .8rem .9rem;
    margin-bottom: 1rem;
    font-size: .9rem;
    line-height: 1.5;
}

.registration-helper-note i {
    color: var(--navy);
    margin-top: .15rem;
}

.settings-admission-rule-card {
    border-radius: 20px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fbfdff, #f7fbff);
    padding: 1.1rem;
}

.settings-admission-rule-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.settings-admission-rule-header h5 {
    color: var(--navy);
}

.settings-admission-rule-preview {
    min-width: 170px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--navy), var(--navy-2));
    color: #fff;
    padding: .9rem 1rem;
    box-shadow: 0 14px 28px rgba(11, 31, 77, .16);
}

.settings-admission-rule-preview-label {
    display: block;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.78);
    margin-bottom: .3rem;
}

.settings-admission-rule-preview strong {
    display: block;
    font-size: 1rem;
    line-height: 1.35;
}

.settings-admission-rule-mini {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: #fff;
    padding: 1rem;
}

.settings-admission-rule-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin-top: .75rem;
}

.settings-admission-rule-mini-grid span {
    display: block;
    color: var(--muted);
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .2rem;
}

.settings-admission-rule-mini-grid strong {
    display: block;
    color: var(--text);
    font-size: .95rem;
    line-height: 1.4;
}

.settings-switcher-card .card-body,
.settings-panel-card .card-body,
.settings-save-card .card-body {
    padding: 1.2rem;
}

.settings-panel-card .card-header {
    background: linear-gradient(135deg, rgba(238,244,255,.95), rgba(255,255,255,.98));
    color: var(--navy);
    font-weight: 800;
    border-bottom: 1px solid #e5e7eb;
}

.settings-school-select {
    min-width: 260px;
}

.settings-preview-card {
    overflow: hidden;
}

.settings-preview-logo {
    max-width: 120px;
    max-height: 120px;
    object-fit: contain;
}

.settings-gateway-card .card-body {
    align-content: start;
}

.settings-save-card {
    border: 1px solid rgba(11,31,77,.08);
    background: linear-gradient(135deg, #ffffff, #f7fbff);
}

.registration-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .72fr);
    gap: 1.25rem;
    align-items: start;
}

.registration-main {
    min-width: 0;
}

.registration-sidebar {
    position: sticky;
    top: 96px;
    display: grid;
    gap: 1rem;
}

.hero-mini-card .value-sm {
    font-size: 1.1rem;
    line-height: 1.35;
}

.result-panel {
    border-radius: 24px;
    padding: 1.35rem;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
}

.result-panel.success {
    background: linear-gradient(135deg, #f6fff8, #effcf3);
    border-color: #b7ebc2;
}

.result-panel.warning {
    background: linear-gradient(135deg, #fffdf6, #fff8e6);
    border-color: #f7d88a;
}

.result-panel.danger {
    background: linear-gradient(135deg, #fff7f7, #fff0f0);
    border-color: #f1b8b8;
}

.verification-chip-stack {
    display: grid;
    gap: .8rem;
}

.verification-chip-card {
    padding: 1rem 1.05rem;
    border-radius: 18px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(8px);
}

.verification-chip-card .label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.72);
    font-weight: 700;
    margin-bottom: .3rem;
}

.verification-chip-card .value {
    color: #fff;
}

.verify-document-code {
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: .92rem;
}

.documents-compact-value {
    font-size: 1.05rem;
    line-height: 1.25;
}

.documents-help-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.documents-file-link {
    color: var(--navy);
    font-weight: 700;
    text-decoration: none;
}

.documents-file-link:hover {
    color: var(--gold);
    text-decoration: underline;
}

.documents-review-cell {
    min-width: 240px;
}

.documents-review-form {
    display: grid;
    gap: .45rem;
}

.student-portal-hero .hero-mini-card .value {
    font-size: 1.1rem;
}

.student-portal-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem 1.25rem;
    color: rgba(255,255,255,.88);
    font-size: .95rem;
}

.student-portal-highlights strong {
    color: #fff;
}

.student-timeline-active {
    border-color: rgba(11,31,77,.12);
    box-shadow: 0 16px 30px rgba(11,31,77,.08);
}

.student-profile-drawer {
    border-radius: 28px;
}

.student-profile-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.student-profile-summary-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    padding: 1rem;
}

.student-profile-summary-card .label {
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;
}

.student-profile-summary-card .value {
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
    margin-top: .35rem;
}

.student-profile-summary-card .meta {
    font-size: .84rem;
    color: #64748b;
    margin-top: .3rem;
}

.student-timeline-list {
    display: grid;
    gap: 1rem;
}

.student-timeline-item {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .9rem;
    align-items: start;
}

.student-timeline-dot {
    width: 14px;
    height: 14px;
    border-radius: 999px;
    margin-top: .3rem;
    border: 2px solid rgba(15, 23, 42, .08);
}

.student-timeline-dot.soft-info { background: #dbeafe; }
.student-timeline-dot.soft-success { background: #dcfce7; }
.student-timeline-dot.soft-warning { background: #fef3c7; }
.student-timeline-dot.soft-danger { background: #fee2e2; }
.student-timeline-dot.soft-secondary { background: #e2e8f0; }

.student-mini-list {
    display: grid;
    gap: .8rem;
}

.student-mini-item {
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: .9rem 1rem;
}

.student-hero-side {
    display: grid;
    gap: 1rem;
}

.student-photo-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: 22px;
    background: rgba(8,25,54,.28);
    border: 1px solid rgba(255,255,255,.12);
}

.student-photo-image,
.student-photo-placeholder {
    width: 86px;
    height: 86px;
    border-radius: 22px;
    flex: 0 0 auto;
}

.student-photo-image {
    object-fit: cover;
    border: 2px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
}

.student-photo-placeholder {
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.10);
    color: #fff;
    font-size: 1.8rem;
    border: 2px dashed rgba(255,255,255,.18);
}

.student-photo-copy {
    min-width: 0;
}

.student-photo-name {
    color: #fff;
    font-weight: 800;
    line-height: 1.2;
}

.student-photo-meta {
    color: rgba(255,255,255,.72);
    font-size: .92rem;
    margin-top: .2rem;
}

.student-shell {
    display: grid;
    grid-template-columns: minmax(248px, 280px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
    min-width: 0;
}

.student-sidebar {
    position: sticky;
    top: 20px;
    display: grid;
    gap: 1.1rem;
    padding: 1.2rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.08), transparent 32%),
        linear-gradient(180deg, var(--navy-2) 0%, var(--navy) 48%, var(--gold) 100%);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 36px rgba(15,23,42,.14);
    color: #fff;
}

.student-sidebar-brand {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.student-sidebar-badge {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--gold), var(--gold-2));
    color: #fff;
    font-size: 1.1rem;
}

.student-sidebar-title {
    font-weight: 900;
    color: #fff;
}

.student-sidebar-subtitle {
    color: rgba(255,255,255,.72);
    font-size: .9rem;
}

.student-sidebar-profile {
    text-align: center;
    padding: 1rem;
    border-radius: 22px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}

.student-sidebar-photo {
    width: 94px;
    height: 94px;
    margin: 0 auto .85rem;
    border-radius: 24px;
    object-fit: cover;
    display: block;
}

.student-sidebar-photo-placeholder {
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 1.75rem;
}

.transcript-print-only {
    display: none;
}

.student-sidebar-name {
    font-weight: 800;
    color: #fff;
    line-height: 1.25;
}

.student-sidebar-meta {
    color: rgba(255,255,255,.74);
    font-size: .9rem;
    margin-top: .25rem;
}

.student-sidebar-nav {
    display: grid;
    gap: .55rem;
}

.student-sidebar-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .82rem .9rem;
    border-radius: 16px;
    color: #eef4ff;
    text-decoration: none;
    font-weight: 700;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
}

.student-sidebar-link:hover {
    color: #fff;
    border-color: rgba(255,255,255,.18);
    background: rgba(255,255,255,.12);
}

.student-sidebar-link.active {
    background: linear-gradient(135deg, var(--gold), var(--gold-2));
    color: #fff;
    border-color: transparent;
}

.student-sidebar-link-disabled {
    opacity: .58;
    cursor: not-allowed;
    pointer-events: none;
}

.student-sidebar-unlock-note {
    margin-top: .15rem;
    padding: .75rem .85rem;
    border-radius: 14px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.10);
    color: rgba(255,255,255,.74);
    font-size: .82rem;
    line-height: 1.45;
}

.student-sidebar-footer {
    padding-top: .4rem;
}

.student-sidebar-progress {
    height: 10px;
    border-radius: 999px;
    background: #e8edf6;
    overflow: hidden;
}

.student-sidebar-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(135deg, var(--navy), var(--gold));
}

.student-school-logo-image {
    width: 86px;
    height: 86px;
    border-radius: 22px;
    object-fit: contain;
    background: #fff;
    padding: .45rem;
    flex: 0 0 auto;
}

.student-school-logo-inline {
    display: block;
    margin: 0;
    box-shadow: 0 10px 24px rgba(15,23,42,.12);
}

.student-shell-content {
    min-width: 0;
    overflow-x: clip;
}

.student-guide-card {
    border-radius: 24px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #fbfdff);
    box-shadow: 0 14px 34px rgba(15,23,42,.06);
    padding: 1.15rem;
    min-width: 0;
}

.student-guide-band {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.18fr) minmax(0, .72fr);
    gap: 1rem;
    align-items: stretch;
}

.student-guide-band-main {
    display: grid;
    gap: 1rem;
}

.student-guide-card-primary {
    background: linear-gradient(180deg, rgba(16,39,78,.98), rgba(13,36,73,.94));
    border-color: rgba(255,255,255,.08);
    color: #fff;
}

.student-guide-card-primary .section-eyebrow,
.student-guide-card-primary h5,
.student-guide-card-primary p {
    color: #fff;
}

.student-guide-intro {
    color: rgba(255,255,255,.78);
    line-height: 1.55;
    font-size: .94rem;
}

.student-guide-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .8rem;
}

.student-guide-header > * {
    min-width: 0;
}

@media (max-width: 1440px) {
    .student-shell {
        grid-template-columns: 250px minmax(0, 1fr);
    }

    .student-guide-band {
        grid-template-columns: 1fr;
    }
}

.student-id-page {
    display: flex;
    justify-content: center;
    padding: 8px 0 0;
}

.student-id-layout {
    width: min(900px, 100%);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 360px));
    justify-content: center;
    gap: 28px;
    align-items: start;
}

.student-id-card-sheet {
    border-radius: 22px;
    box-shadow: none;
    overflow: visible;
    background: transparent;
}

.student-id-card-front,
.student-id-card-back {
    min-height: 340px;
    display: flex;
    flex-direction: column;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.student-id-card-front {
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.14), transparent 24%),
        linear-gradient(160deg, var(--navy-2) 0%, var(--navy) 58%, #0f2a4e 100%);
    color: #fff;
}

.student-id-card-back {
    background:
        linear-gradient(180deg, #0c1628 0 56px, transparent 56px),
        linear-gradient(180deg, #fdfefe 0%, #eef4fb 100%);
    color: #122033;
    border: 1px solid #d6dee9;
}

.student-id-card-topband {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px 10px;
}

.student-id-card-topband-back {
    padding-bottom: 0;
    color: #fff;
}

.student-id-card-brand .section-eyebrow {
    font-size: .62rem;
    letter-spacing: .18em;
    color: rgba(255,255,255,.88);
}

.student-id-card-brand h2 {
    margin: 3px 0 3px;
    font-size: 1.12rem;
    line-height: 1.15;
    font-weight: 800;
    color: inherit;
}

.student-id-card-schoolcode {
    color: rgba(255,255,255,.84);
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.student-id-card-back .student-id-card-schoolcode {
    color: rgba(255,255,255,.78);
}

.student-id-card-back .section-eyebrow,
.student-id-card-back .student-id-card-brand h2 {
    color: #fff;
}

.student-id-status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: .7rem;
    font-weight: 800;
    white-space: nowrap;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.2);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}

.student-id-card-body {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 0 18px 14px;
    flex: 0 0 auto;
}

.student-id-photo-wrap {
    display: flex;
    justify-content: center;
}

.student-id-photo {
    width: 102px;
    height: 128px;
    object-fit: cover;
    border-radius: 16px;
    border: 3px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
}

.student-id-photo-placeholder {
    display: grid;
    place-items: center;
    color: rgba(255,255,255,.88);
    font-size: 2rem;
}

.student-id-maincopy {
    min-width: 0;
}

.student-id-label {
    color: rgba(255,255,255,.82);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .64rem;
    margin-bottom: 6px;
}

.student-id-maincopy h3 {
    margin: 0 0 6px;
    font-size: 1.24rem;
    line-height: 1.15;
    font-weight: 800;
    color: #fff;
}

.student-id-program {
    color: rgba(255,255,255,.9);
    font-size: .84rem;
    line-height: 1.4;
    margin-bottom: 10px;
}

.student-id-chip-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.student-id-chip-row .soft-badge {
    font-size: .67rem;
    padding: 5px 9px;
    font-weight: 800;
}

.student-id-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.student-id-detail-card {
    border-radius: 14px;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.18);
    padding: 9px 10px;
}

.student-id-detail-card span {
    display: block;
    color: rgba(255,255,255,.82);
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 4px;
}

.student-id-detail-card strong {
    display: block;
    font-size: .8rem;
    line-height: 1.35;
    font-weight: 700;
    color: #fff;
}

.student-id-card-footerband {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 18px 14px;
    border-top: 1px solid rgba(255,255,255,.12);
    color: rgba(255,255,255,.84);
    font-size: .7rem;
    line-height: 1.45;
}

.student-id-card-back-body {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 14px 18px 12px;
    flex: 0 0 auto;
}

.student-id-qr-block {
    display: grid;
    place-items: center;
    border-radius: 16px;
    padding: 10px;
}

.student-id-qr-block-back {
    background: #ffffff;
    border: 1px solid #d6dee9;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.8);
}

.student-id-qr-block-back .student-id-qr-fallback {
    color: #122033;
}

.student-id-qr-image {
    width: 92px;
    height: 92px;
    object-fit: contain;
}

.student-id-qr-fallback {
    width: 92px;
    min-height: 92px;
    font-size: .68rem;
    line-height: 1.45;
}

.student-id-back-copy {
    min-width: 0;
}

.student-id-back-heading {
    font-size: .95rem;
    font-weight: 800;
    margin-bottom: 6px;
    color: #122033;
}

.student-id-back-text {
    color: #334155;
    line-height: 1.5;
    font-size: .78rem;
    margin-bottom: 10px;
}

.student-id-back-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.student-id-back-card {
    border-radius: 12px;
    background: #ffffff;
    border: 1px solid #cfd8e3;
    padding: 9px 10px;
}

.student-id-back-card-wide {
    grid-column: 1 / -1;
}

.student-id-back-card span {
    display: block;
    color: #475569;
    font-size: .6rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 4px;
}

.student-id-back-card strong {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    color: #122033;
    line-height: 1.4;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.student-id-back-note {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #d6dee9;
    color: #334155;
    font-size: .75rem;
    line-height: 1.5;
}

.student-id-card-footerband-back {
    border-top: 1px solid #d6dee9;
    color: #334155;
}

.student-guide-next-copy {
    color: var(--muted);
    line-height: 1.6;
}

.student-guide-steps {
    display: grid;
    gap: .75rem;
}

.student-guide-step {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: .9rem;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: #fff;
}

.student-guide-step-number {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    font-size: .8rem;
    font-weight: 900;
    letter-spacing: .04em;
    background: #eef4ff;
    color: var(--navy);
}

.student-guide-step-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.student-guide-step-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .6rem;
    margin-bottom: .3rem;
}

.student-guide-step-title-row h6 {
    margin: 0;
    color: var(--navy);
    font-weight: 800;
    line-height: 1.3;
}

.student-guide-step-state {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-weight: 900;
    color: #64748b;
}

.student-guide-step p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.5;
}

.student-guide-step.is-complete {
    border-color: rgba(22,163,74,.18);
    background: linear-gradient(135deg, #f6fff8, #ffffff);
}

.clinic-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.clinic-urgent-panel .card-body {
    padding-top: 1.15rem;
}

.clinic-urgent-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.clinic-urgent-card {
    border-radius: 20px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    padding: 1rem;
    display: grid;
    gap: .95rem;
    box-shadow: 0 14px 24px rgba(15,23,42,.05);
}

.clinic-urgent-card--danger {
    background: linear-gradient(135deg, #fff7f7, #fffdfd);
    border-color: rgba(220, 38, 38, .16);
}

.clinic-urgent-card--warning {
    background: linear-gradient(135deg, #fffbf2, #fffdf9);
    border-color: rgba(245, 158, 11, .2);
}

.clinic-urgent-card--info {
    background: linear-gradient(135deg, #f7fbff, #ffffff);
    border-color: rgba(37, 99, 235, .15);
}

.clinic-urgent-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .9rem;
}

.clinic-urgent-head h6 {
    color: var(--navy);
    font-weight: 800;
}

.clinic-list-card--urgent {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
}

.behaviour-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.behaviour-form-field {
    min-width: 0;
}

.behaviour-form-span-2 {
    grid-column: 1 / -1;
}

.behaviour-case-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}

.behaviour-note-sheet {
    position: relative;
}

.behaviour-note-header {
    align-items: flex-start;
}

.behaviour-note-date-card {
    min-width: 220px;
}

.behaviour-note-student-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.behaviour-note-summary-box {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: rgba(248, 250, 252, .92);
}

.behaviour-note-body-copy {
    color: #1f2937;
    line-height: 1.65;
}

.behaviour-note-sign-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    margin-top: 1.5rem;
}

.behaviour-note-sign-block {
    min-height: 90px;
}

.behaviour-note-sign-label {
    font-size: .82rem;
    font-weight: 700;
    color: #475569;
    margin-bottom: 2.25rem;
}

.behaviour-note-sign-line {
    border-bottom: 1.6px solid rgba(15, 23, 42, .45);
}

.behaviour-history-term-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin: 1rem 0 1.25rem;
}

.behaviour-history-term-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .55rem .95rem;
    border-radius: 999px;
    border: 1px solid #d6dce5;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    color: var(--navy);
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.behaviour-history-term-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(15, 23, 42, .08);
    color: var(--navy);
}

.behaviour-history-term-chip.is-active {
    border-color: rgba(11, 37, 91, .18);
    background: linear-gradient(135deg, rgba(11, 37, 91, .08), rgba(212, 175, 55, .12));
}

.behaviour-history-bundle-sheet {
    margin-top: 1.5rem;
}

.behaviour-history-bundle-summary {
    margin-top: 1rem;
}

.behaviour-history-bundle-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: .9rem;
}

.behaviour-history-bundle-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    justify-content: flex-end;
}

.behaviour-history-bundle-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem 1rem;
}

.behaviour-history-bundle-card {
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.96));
    padding: 1rem 1.05rem;
}

.clinic-list-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
    padding: 1rem;
}

.clinic-student-strip {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.clinic-alert-banner {
    border-radius: 16px;
    padding: .95rem 1rem;
    border: 1px solid rgba(220, 38, 38, .16);
    background: linear-gradient(135deg, #fff5f5, #fffdfd);
    color: #991b1b;
    line-height: 1.55;
}

.clinic-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.clinic-hero .student-portal-highlights {
    color: rgba(255,255,255,.84);
}

.clinic-trend-bar {
    position: relative;
    height: 10px;
    border-radius: 999px;
    background: rgba(214, 223, 236, .75);
    overflow: hidden;
}

.clinic-trend-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0b255b 0%, #d4af37 100%);
}

.student-guide-step.is-complete .student-guide-step-number {
    background: rgba(22,163,74,.12);
    color: #166534;
}

.student-guide-step.is-complete .student-guide-step-state {
    color: #166534;
}

.student-guide-step.is-current {
    border-color: rgba(37,99,235,.20);
    background: linear-gradient(135deg, #f8fbff, #ffffff);
    box-shadow: inset 0 0 0 1px rgba(37,99,235,.10);
}

.student-guide-step.is-current .student-guide-step-number {
    background: linear-gradient(135deg, var(--navy), var(--gold));
    color: #fff;
}

.student-guide-step.is-current .student-guide-step-state {
    color: var(--navy);
}

.student-guide-step.is-upcoming {
    opacity: .88;
}

.student-guide-reminders {
    margin: 0;
    padding-left: 1rem;
    display: grid;
    gap: .65rem;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.55;
}

.student-reminder-modal {
    border: 0;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(15,23,42,.20);
}

.student-reminder-modal .modal-header,
.student-reminder-modal .modal-body,
.student-reminder-modal .modal-footer {
    padding-left: 1.35rem;
    padding-right: 1.35rem;
}

.student-reminder-list {
    display: grid;
    gap: .7rem;
}

.student-reminder-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .8rem .9rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff8ef, #ffffff);
    border: 1px solid #f3dfc1;
    color: #8a5a00;
    font-weight: 700;
}

.student-reminder-item i {
    color: #d97706;
}

.student-reminder-note {
    margin-top: 1rem;
    padding: .85rem .95rem;
    border-radius: 16px;
    background: #f8fbff;
    border: 1px solid #e5e7eb;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.5;
}

.class-album-hero {
    background: radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 34%), linear-gradient(135deg, var(--navy-2), var(--navy) 42%, var(--gold));
}

.class-album-filter-card {
    overflow: hidden;
}

.class-album-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
    align-items: end;
}

.class-album-filter-field {
    min-width: 0;
}

.class-album-filter-actions {
    display: flex;
    gap: .65rem;
    align-items: end;
    flex-wrap: wrap;
}

.class-album-groups {
    display: grid;
    gap: 1rem;
}

.class-album-group-card {
    overflow: hidden;
}

.class-album-group-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.class-album-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.class-album-student-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: .95rem;
    padding: 1rem;
    border-radius: 22px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #ffffff, #fbfdff);
    box-shadow: 0 12px 28px rgba(15,23,42,.05);
    align-items: start;
}

.class-album-photo-panel {
    display: grid;
    gap: .7rem;
    justify-items: center;
}

.class-album-photo-wrap {
    display: flex;
    justify-content: center;
    width: 150px;
    height: 150px;
    min-width: 150px;
    max-width: 150px;
    min-height: 150px;
    max-height: 150px;
    overflow: hidden;
}

.class-album-photo {
    width: 150px !important;
    height: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    object-fit: cover !important;
    border-radius: 18px;
    display: block;
    background: #eef4ff;
    box-shadow: 0 12px 24px rgba(15,23,42,.08);
    flex: 0 0 150px;
}

.class-album-photo-fallback {
    display: grid;
    place-items: center;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--navy);
    background: linear-gradient(135deg, #eef4ff, #f8fbff);
}

.class-album-identity-chips {
    display: grid;
    gap: .45rem;
}

.class-album-identity-chips-center {
    justify-items: center;
}

.class-album-student-body {
    min-width: 0;
    display: grid;
    gap: .85rem;
}

.class-album-student-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .75rem;
}

.class-album-student-titles {
    min-width: 0;
}

.class-album-student-head-stack {
    justify-items: center;
    text-align: center;
}

.class-album-student-subline {
    margin-top: .35rem;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.4;
}

.class-album-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.class-album-meta-card {
    padding: .7rem .8rem;
    border-radius: 16px;
    background: #f8fbff;
    border: 1px solid #e5e7eb;
    min-width: 0;
}

.class-album-meta-label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 900;
    color: #64748b;
    margin-bottom: .32rem;
}

.class-album-meta-value {
    color: var(--navy);
    font-weight: 700;
    font-size: .9rem;
    line-height: 1.4;
    word-break: break-word;
}

.class-album-student-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.class-album-student-footer-stack {
    justify-content: center;
}

.class-album-actions {
    display: flex;
    gap: .45rem;
    flex-wrap: wrap;
}

.class-album-actions-center {
    justify-content: center;
}

.class-album-print-sheet {
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: #fff;
    padding: 1rem 1.1rem;
}

.class-album-print-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.class-album-print-title {
    margin: 0;
    color: var(--navy);
    font-size: 1.5rem;
    font-weight: 900;
}

.class-album-print-subtitle {
    color: var(--muted);
    margin-top: .2rem;
    font-size: .92rem;
}

.class-album-print-count {
    color: var(--navy);
    font-weight: 800;
}

.class-album-print-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .9rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid #e5e7eb;
    color: #475569;
    font-size: .88rem;
}

.dashboard-chart-card .card-body {
    min-height: 100%;
}

.dashboard-chart-note {
    background: linear-gradient(135deg, #f8fbff, #fdfefe);
}

.dashboard-chart-note .detail-item:last-child .detail-value {
    max-width: 180px;
    text-align: right;
}

.detail-list {
    display: grid;
    gap: .9rem;
}

.detail-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid #eef2f7;
}

.detail-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.detail-label {
    color: var(--muted);
    font-size: .88rem;
}

.detail-value {
    color: var(--navy);
    font-weight: 700;
    text-align: right;
}

.top-action-bar {
    display: flex;
    justify-content: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.document-sheet {
    background: #fff;
    border-radius: 28px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 30px rgba(15,23,42,.06);
    padding: 1.75rem;
}

.admission-letter-sheet {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,251,255,.96));
}

.registration-sheet {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, rgba(255,255,255,.99), rgba(248,251,255,.97));
}

.registration-sheet.has-watermark::before {
    display: none;
}

.admission-letter-sheet.has-watermark::before {
    display: none;
}

.admission-letter-sheet > *:not(.document-watermark) {
    position: relative;
    z-index: 1;
}

.admission-letter-sheet .document-watermark {
    z-index: 3;
}

.admission-letter-sheet .document-watermark-image {
    width: min(56%, 400px);
    max-width: 56%;
    max-height: 56%;
    opacity: .2;
    filter: grayscale(100%) contrast(1.18);
    mix-blend-mode: normal;
}

.registration-sheet > *:not(.document-watermark) {
    position: relative;
    z-index: 1;
}

.document-watermark {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}

.document-watermark-image {
    width: min(58%, 420px);
    max-width: 58%;
    max-height: 58%;
    object-fit: contain;
    opacity: .01;
    filter: none;
    mix-blend-mode: normal;
}

.admission-letter-sheet .admission-letter-body,
.admission-letter-sheet .registration-section,
.admission-letter-sheet .registration-note,
.admission-letter-sheet .admission-letter-summary-item {
    background: rgba(255,255,255,.66);
}

.registration-sheet .registration-profile,
.registration-sheet .registration-section,
.registration-sheet .registration-note,
.registration-sheet .registration-mini-stat,
.registration-sheet .registration-qr-card {
    background-color: rgba(255,255,255,.8);
}

.registration-watermark {
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: min(72%, 520px) auto;
    opacity: .18;
    filter: grayscale(100%) contrast(1.18);
    z-index: 0;
}

.registration-watermark-image-layer {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    opacity: .12;
    z-index: 0;
    padding-top: 2.75rem;
}

.registration-sheet .document-watermark-image {
    width: min(58%, 430px);
    max-width: 58%;
    max-height: 58%;
    opacity: 1;
    filter: grayscale(100%) contrast(1.18);
    mix-blend-mode: normal;
}

.report-card-sheet {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.report-card-sheet > *:not(.document-watermark):not(.report-card-watermark-image-layer) {
    position: relative;
    z-index: 1;
}

.report-card-sheet .report-card-watermark {
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: center 50%;
    background-size: min(46%, 320px) auto;
    opacity: .30;
    filter: grayscale(100%) contrast(1.18);
    z-index: 6;
}

.report-card-sheet .report-card-watermark-image-layer {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 7;
    pointer-events: none;
    opacity: 0;
}

.report-card-sheet .report-card-watermark-image-layer .document-watermark-image {
    width: min(46%, 320px);
    max-width: 320px;
    height: auto;
    opacity: .24;
    filter: grayscale(100%) contrast(1.08);
}

.report-card-print-watermark {
    display: none;
}

.report-card-print-watermark-image {
    display: block;
    width: min(52%, 360px);
    max-width: 360px;
    height: auto;
    opacity: .32;
    filter: grayscale(100%) contrast(1.04);
}

.report-card-page-watermark {
    display: none;
}

.report-card-page-watermark-image {
    display: block;
    width: min(56%, 420px);
    max-width: 420px;
    height: auto;
    opacity: .20;
    filter: contrast(1.12);
}

.report-card-sheet.has-watermark .report-card-formal-title,
.report-card-sheet.has-watermark .report-card-bio-card,
.report-card-sheet.has-watermark .report-card-summary-card,
.report-card-sheet.has-watermark .report-card-profile,
.report-card-sheet.has-watermark .table-card,
.report-card-sheet.has-watermark .report-card-cluster {
    background-color: rgba(255,255,255,.84);
}

.report-card-sheet .report-card-position-card,
.report-card-sheet .report-card-position-card * {
    color: #ffffff;
}

.document-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.registration-document-title {
    gap: 1.4rem;
    align-items: stretch;
}

.registration-school-copy {
    flex: 1 1 0;
}

.registration-qr-card {
    width: 220px;
    flex: 0 0 220px;
    border-radius: 24px;
    padding: 1rem;
    background: linear-gradient(180deg, var(--navy-2), var(--gold));
    color: #fff;
    display: grid;
    justify-items: center;
    text-align: center;
    box-shadow: 0 18px 36px rgba(16,39,78,.18);
}

.payment-receipt-page {
    max-width: 920px;
    margin: 0 auto;
}

.payment-receipt-sheet > *:not(.document-watermark) {
    position: relative;
    z-index: 1;
}

.payment-receipt-sheet .payment-receipt-watermark {
    z-index: 3;
}

.payment-receipt-sheet .document-watermark-image {
    width: min(56%, 400px);
    max-width: 56%;
    max-height: 56%;
    opacity: .22;
    filter: grayscale(100%) contrast(1.18);
    mix-blend-mode: normal;
}

.payment-receipt-sheet.has-watermark .table-card,
.payment-receipt-sheet.has-watermark .payment-details-summary,
.payment-receipt-sheet.has-watermark .registration-note,
.payment-receipt-sheet.has-watermark .registration-qr-card {
    background-color: rgba(255,255,255,.84);
}

.payment-receipt-page .registration-document-title {
    align-items: stretch;
}

.payment-receipt-page .registration-qr-card {
    justify-content: start;
}

.payment-receipt-qr-image {
    margin-bottom: .8rem;
}

.payment-receipt-reference {
    width: 100%;
    padding: .55rem .65rem;
    border-radius: 14px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-weight: 800;
    letter-spacing: .02em;
    word-break: break-word;
    margin-top: .15rem;
}

.payment-receipt-chip-row {
    align-items: center;
}

.academic-summary-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.15rem 1.25rem;
    border-radius: 22px;
    background: #fff;
    border: 1px solid #e6ebf3;
    box-shadow: 0 10px 25px rgba(15,23,42,.05);
}

.academic-summary-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex: 1 1 320px;
}

.academic-summary-stats {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.academic-school-toolbar {
    display: flex;
    justify-content: flex-end;
}

.academic-tab-shell {
    display: grid;
    gap: 1rem;
}

.academic-tab-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.academic-tabs-nav {
    gap: .75rem;
    flex-wrap: wrap;
}

.academic-tab-link {
    border-radius: 999px !important;
    border: 1px solid #d9e2ef !important;
    background: #fff !important;
    color: #22324d !important;
    font-weight: 700;
    padding: .8rem 1.15rem;
    box-shadow: 0 6px 18px rgba(15,23,42,.05);
}

.academic-tab-link:hover,
.academic-tab-link:focus {
    border-color: rgba(15,76,129,.25) !important;
    color: var(--primary-color) !important;
}

.academic-tab-link.active {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 14px 30px rgba(15,76,129,.18);
}

.academic-tab-content {
    display: grid;
    gap: 1.25rem;
}

.academic-tab-content > .tab-pane {
    padding-top: .25rem;
}

.academic-directory-card .card-header {
    padding-bottom: .85rem;
}

.academic-directory-table th {
    white-space: nowrap;
}

.academic-directory-table td {
    vertical-align: top;
}

.academic-combo-grid {
    max-height: 420px;
    overflow-y: auto;
    padding-right: .2rem;
}

.selection-board {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.selection-help-text {
    color: var(--muted);
    font-size: .9rem;
    margin-bottom: 1rem;
}

.selection-option-grid {
    display: grid;
    gap: .9rem;
}

.selection-option-card {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    padding: 1rem 1.05rem;
    border: 1px solid #e6ebf3;
    border-radius: 18px;
    background: #fbfdff;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    cursor: pointer;
}

.selection-option-card:hover {
    border-color: rgba(11,31,77,.2);
    box-shadow: 0 10px 24px rgba(15,23,42,.06);
    background: #fff;
}

.selection-option-card:focus-visible {
    outline: 3px solid rgba(212, 170, 66, .28);
    outline-offset: 2px;
}

.selection-option-card-active {
    border-color: rgba(11,31,77,.34);
    box-shadow: 0 14px 30px rgba(11,31,77,.08);
    background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
}

.selection-option-card-disabled {
    opacity: .62;
    background: #f8fafc;
    border-style: dashed;
    cursor: not-allowed;
}

.selection-option-card-disabled:hover {
    border-color: #e6ebf3;
    box-shadow: none;
    background: #f8fafc;
}

.selection-option-card input {
    margin-top: .25rem;
    flex: 0 0 auto;
}

.selection-option-copy {
    min-width: 0;
}

.selection-option-title {
    color: var(--navy);
    font-weight: 800;
    margin-bottom: .15rem;
}

.selection-option-meta {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.5;
}

.class-subject-preview {
    margin-top: .7rem;
    padding-top: .7rem;
    border-top: 1px solid #e6ebf3;
    display: grid;
    gap: .55rem;
}

.class-subject-preview-group {
    display: grid;
    gap: .15rem;
}

.class-subject-preview-label {
    color: var(--navy);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.class-subject-preview-values {
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.5;
}

.class-subject-preview-empty {
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.5;
}

.selection-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: .2rem;
}

.action-tile-muted {
    background: #f8fafc;
    border: 1px dashed #d5ddea;
}

.payment-details-summary {
    border: 1px solid #e6ebf3;
    border-radius: 18px;
    padding: .9rem 1rem;
    margin-bottom: 1rem;
    background: #f8fbff;
}

.payment-details-summary-label {
    color: var(--muted);
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .25rem;
}

.payment-details-summary-value {
    color: var(--navy);
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.1;
}

.payment-detail-list {
    gap: .75rem;
}

.payment-detail-item {
    align-items: flex-start;
}

.payment-detail-item .detail-label {
    flex: 0 0 38%;
    max-width: 38%;
    padding-top: .08rem;
}

.payment-detail-value {
    flex: 1 1 auto;
    max-width: none;
    text-align: left;
    line-height: 1.45;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.payment-code-value {
    font-family: "Courier New", Courier, monospace;
    font-size: .83rem;
}

.payment-receipt-note {
    line-height: 1.65;
    word-break: break-word;
}

.payment-receipt-print-header {
    display: none;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid #d1d5db;
}

.payment-receipt-print-header h2 {
    margin: 0 0 6px;
    color: var(--navy);
    font-size: 1.45rem;
    font-weight: 800;
}

.payment-receipt-print-meta {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #4b5563;
    font-size: .88rem;
}

.registration-qr-label {
    font-weight: 800;
    letter-spacing: .02em;
    margin-bottom: .75rem;
}

.registration-qr-image {
    width: 160px;
    height: 160px;
    object-fit: contain;
    background: #fff;
    border-radius: 18px;
    padding: .6rem;
}

.registration-qr-fallback {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.45);
    color: #fff;
}

.registration-qr-meta {
    margin-top: .75rem;
    font-size: .82rem;
    color: rgba(255,255,255,.8);
}

.registration-hero-panel {
    margin-bottom: 1.25rem;
}

.registration-profile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 1rem;
    padding: 1.2rem;
    border-radius: 24px;
    background: linear-gradient(135deg, #f8fbff, #eef4ff);
    border: 1px solid #dbe7f6;
}

.registration-profile-main {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.registration-photo {
    width: 106px;
    height: 106px;
    border-radius: 26px;
    object-fit: cover;
    border: 3px solid rgba(16,39,78,.12);
    background: #fff;
    flex: 0 0 auto;
}

.registration-photo-placeholder {
    display: grid;
    place-items: center;
    background: #e8f0ff;
    color: var(--navy);
    font-size: 2rem;
    border-style: dashed;
}

.registration-profile-copy {
    min-width: 0;
}

.registration-profile-name {
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1.15;
}

.registration-profile-meta {
    margin-top: .35rem;
    color: #3d5c8b;
    font-weight: 600;
}

.registration-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .9rem;
}

.registration-chip {
    display: inline-flex;
    align-items: center;
    padding: .55rem .85rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #dbe7f6;
    color: var(--navy);
    font-size: .88rem;
    font-weight: 800;
}

.registration-profile-side {
    display: grid;
    gap: .75rem;
}

.registration-mini-stat {
    border-radius: 18px;
    padding: .9rem 1rem;
    background: #fff;
    border: 1px solid #dbe7f6;
}

.registration-mini-stat span {
    display: block;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--muted);
    font-weight: 800;
    margin-bottom: .4rem;
}

.registration-mini-stat strong {
    color: var(--navy);
    font-size: 1rem;
}

.registration-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.registration-section {
    border-radius: 22px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: 1.1rem 1.15rem;
}

.registration-section .detail-item {
    align-items: flex-start;
}

.registration-section .detail-value {
    max-width: 56%;
    text-align: left;
    word-break: break-word;
}

.registration-section-title {
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--navy);
    font-weight: 900;
    margin-bottom: .95rem;
}

.registration-note {
    margin-top: 1.15rem;
    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: linear-gradient(135deg, #fff8e8, #fffdf6);
    border: 1px solid #f2d48c;
}

.registration-note-title {
    font-weight: 900;
    color: #8a6000;
    margin-bottom: .35rem;
}

.registration-verification-strip {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px dashed #dbe2ec;
}

.registration-link-text {
    color: var(--navy);
    font-weight: 700;
    word-break: break-word;
}

.registration-signature-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
    color: var(--navy);
    align-items: end;
    column-gap: 3rem;
}

.registration-signature-block {
    min-width: 0;
}

.registration-signature-block-end {
    text-align: right;
}

.registration-signature-role {
    font-size: .84rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: .75rem;
}

.registration-signature-line-wrap {
    min-height: 1.4rem;
}

.registration-signature-note {
    margin-top: .45rem;
    font-size: .75rem;
    color: #7b8794;
    font-weight: 700;
}

.registration-signature-line {
    display: inline-block;
    width: min(100%, 240px);
    border-bottom: 1px solid currentColor;
    transform: translateY(-2px);
}

.registration-signature-image {
    display: inline-block;
    max-width: min(100%, 220px);
    max-height: 72px;
    object-fit: contain;
    object-position: left bottom;
}

.settings-signature-preview-card {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
    padding: 1rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #fff, #fbfdff);
    border: 1px solid #e5e7eb;
}

.settings-signature-image {
    max-width: 100%;
    max-height: 82px;
    object-fit: contain;
}

.admission-letter-banner {
    margin-bottom: 1.25rem;
    border-radius: 24px;
    background: linear-gradient(135deg, var(--navy), var(--gold));
    color: #fff;
    padding: 1.25rem;
    box-shadow: 0 20px 40px rgba(15,23,42,.16);
}

.admission-letter-profile {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.admission-letter-profile-copy {
    min-width: 0;
}

.admission-letter-name {
    font-size: 1.55rem;
    font-weight: 900;
    line-height: 1.12;
}

.admission-letter-subtitle {
    margin-top: .35rem;
    color: rgba(255,255,255,.82);
    max-width: 680px;
}

.admission-letter-banner .registration-chip {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.18);
    color: #fff;
}

.admission-letter-body {
    border-radius: 22px;
    background: linear-gradient(135deg, #fff, #fbfdff);
    border: 1px solid #e5e7eb;
    padding: 1.2rem;
    margin-bottom: 1rem;
    color: #294166;
}

.admission-letter-body p:last-child {
    margin-bottom: 0;
}

.admission-letter-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: .95rem 0;
}

.admission-letter-summary-item {
    border-radius: 18px;
    background: #f7fafc;
    border: 1px solid #e2e8f0;
    padding: .8rem .9rem;
    min-width: 0;
}

.admission-letter-summary-item span {
    display: block;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #7b8794;
    margin-bottom: .35rem;
}

.admission-letter-summary-item strong {
    display: block;
    color: var(--navy);
    font-size: .96rem;
    line-height: 1.28;
    word-break: break-word;
}

.timeline-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1rem;
}

.timeline-step {
    border-radius: 18px;
    padding: 1rem;
    background: linear-gradient(135deg, #fff, #f8fbff);
    border: 1px solid #e5e7eb;
}

.timeline-step .step-tag {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border-radius: 999px;
    background: #eef4ff;
    color: var(--navy);
    padding: .3rem .65rem;
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .75rem;
}

.timeline-step h6 {
    font-weight: 800;
    color: var(--navy);
}

.timeline-step p {
    font-size: .9rem;
    color: var(--muted);
    margin-bottom: 0;
}

.table-card .card-body > .table:last-child {
    margin-bottom: 0;
}

.approval-queue-stats {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.approval-queue-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, .9fr);
    gap: 1rem;
    align-items: start;
}

.approval-queue-main {
    min-width: 0;
}

.approval-queue-side {
    min-width: 0;
}

.approval-row-selected td {
    background: rgba(16,39,78,.05);
}

.approval-note-preview {
    max-width: 260px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.approval-focus-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.approval-note-detail {
    max-width: 58%;
    text-align: left;
}

.approval-action-form {
    display: grid;
    gap: .9rem;
}

.approval-check-grid {
    display: grid;
    gap: .65rem;
}

.approval-history-list {
    display: grid;
    gap: .75rem;
}

.approval-history-item {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: .9rem 1rem;
}

.approval-doc-compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.approval-doc-preview-card {
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: 1rem;
}

.approval-doc-preview-head {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: flex-start;
    flex-wrap: wrap;
}

.approval-doc-preview-surface {
    border-radius: 16px;
    border: 1px solid #dbe3ee;
    background: #f8fafc;
    min-height: 340px;
    padding: .5rem;
    overflow: hidden;
}

.approval-doc-preview-image,
.approval-doc-preview-frame {
    width: 100%;
    height: 100%;
    min-height: 320px;
    border: 0;
    border-radius: 12px;
    background: #fff;
    object-fit: contain;
}

.approval-doc-preview-fallback {
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
}

.upload-import-hero {
    background: radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 38%), linear-gradient(135deg, var(--navy-2), var(--navy) 40%, var(--gold));
}

.upload-import-shell {
    align-items: stretch;
}

.upload-import-card,
.upload-manual-card {
    border-radius: 26px;
}

.upload-card-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.upload-card-badge {
    flex: 0 0 auto;
}

.upload-guidance-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

.upload-guidance-card {
    border-radius: 18px;
    padding: .95rem 1rem;
    background: linear-gradient(135deg, #f8fbff, #ffffff);
    border: 1px solid #e5e7eb;
}

.upload-guidance-label {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--navy);
    font-weight: 900;
    margin-bottom: .4rem;
}

.upload-guidance-copy {
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.45;
}

.upload-input {
    border-style: dashed;
    border-width: 2px;
    min-height: 54px;
    background: #fbfdff;
}

.upload-feature-row {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.upload-feature-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .5rem .8rem;
    background: #eef4ff;
    color: var(--navy);
    font-weight: 800;
    font-size: .85rem;
}

.upload-support-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.qr-checkin-hero {
    background: radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 34%), linear-gradient(135deg, var(--navy-2), var(--navy) 40%, var(--gold));
}

.qr-checkin-card {
    border-radius: 26px;
}

.qr-checkin-flow-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.qr-flow-card {
    border-radius: 22px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
    padding: 1rem 1.1rem;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.04);
}

.qr-step-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff 0%, #fbfdff 100%);
    padding: 1rem;
    margin-top: 1rem;
}

.qr-checkin-form {
    display: grid;
    gap: .9rem;
}

.qr-checkin-input {
    min-height: 130px;
    border-width: 2px;
    border-style: dashed;
    background: #fbfdff;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: .01em;
}

.qr-checkin-layout {
    display: grid;
    grid-template-columns: minmax(340px, .9fr) minmax(0, 1.35fr);
    gap: 1rem;
    align-items: start;
}

.qr-checkin-left,
.qr-checkin-right {
    min-width: 0;
}

.qr-scan-result-card {
    margin-bottom: 1rem;
}

.qr-activity-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.qr-activity-filter-note {
    width: 100%;
    font-size: .8rem;
    color: #b91c1c;
    margin-bottom: .15rem;
}

.qr-activity-filter-row {
    width: 100%;
    display: grid;
    gap: .65rem;
}

.qr-activity-filter-row-primary {
    grid-template-columns: minmax(220px, 1.8fr) minmax(150px, .9fr) minmax(150px, .9fr) minmax(150px, .9fr);
    align-items: end;
}

.qr-activity-filter-row-secondary {
    grid-template-columns: repeat(4, minmax(120px, 1fr)) auto;
    align-items: end;
}

.qr-filter-field {
    display: grid;
    gap: .26rem;
    min-width: 112px;
    flex: 1 1 112px;
}

.qr-filter-field-search {
    min-width: 0;
}

.qr-filter-field-date {
    flex-basis: 132px;
}

.qr-filter-label {
    margin: 0;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b7280;
}

.qr-activity-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: .75rem;
}

.qr-activity-header-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.qr-quick-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-bottom: .85rem;
    padding: .15rem 0 .2rem;
}

.qr-quick-filter-chip {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: .42rem .85rem !important;
    border-radius: 999px;
    border: 1px solid rgba(191, 219, 254, .8) !important;
    background: rgba(248, 251, 255, .96) !important;
    color: #274472 !important;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.qr-quick-filter-chip:hover {
    background: #eef5ff !important;
    border-color: #bdd2fb !important;
    color: #173b73 !important;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .12);
}

.qr-quick-filter-chip.is-active {
    background: linear-gradient(135deg, #1d4ed8, #1e40af) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .16);
}

.qr-activity-filter-compact {
    padding: .75rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fbff, #fbfdff);
    border: 1px solid #e5e7eb;
}

.qr-activity-filter .form-control,
.qr-activity-filter .form-select {
    min-width: 0;
    width: 100%;
}

.qr-activity-filter-compact .form-control,
.qr-activity-filter-compact .form-select {
    min-height: 38px;
    font-size: .82rem;
    padding: .45rem .6rem;
}

.qr-activity-actions {
    display: flex;
    align-items: end;
    gap: .45rem;
    margin-left: auto;
    justify-content: flex-end;
}

.qr-pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .6rem;
    padding-top: .85rem;
}

.qr-camera-card {
    border-radius: 22px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: 1rem;
}

.qr-capability-row {
    margin-top: 1rem;
}

.qr-camera-frame {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--navy), var(--gold));
    min-height: 260px;
    border: 1px solid rgba(255,255,255,.08);
}

.qr-camera-preview {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    background: rgba(255,255,255,.04);
}

.qr-camera-shell {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(7, 16, 35, 0.08);
    background: linear-gradient(135deg, #dbeafe, #eff6ff);
}

.qr-camera-overlay {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(7,16,35,.12), rgba(7,16,35,.22));
}

.qr-camera-guide {
    width: min(68%, 260px);
    aspect-ratio: 1;
    border: 3px solid rgba(243,205,94,.92);
    border-radius: 22px;
    box-shadow: 0 0 0 999px rgba(3,12,29,.24);
}

.qr-camera-flash,
.qr-page-flash {
    pointer-events: none;
    opacity: 0;
    transition: opacity .18s ease;
}

.qr-camera-flash {
    position: absolute;
    inset: 0;
}

.qr-camera-flash--active {
    opacity: 1;
}

.qr-camera-flash--success {
    background: radial-gradient(circle at center, rgba(34,197,94,.3), rgba(34,197,94,0) 62%);
}

.qr-camera-flash--warning {
    background: radial-gradient(circle at center, rgba(245,158,11,.3), rgba(245,158,11,0) 62%);
}

.qr-camera-flash--danger {
    background: radial-gradient(circle at center, rgba(239,68,68,.32), rgba(239,68,68,0) 62%);
}

.qr-camera-flash--info {
    background: radial-gradient(circle at center, rgba(59,130,246,.28), rgba(59,130,246,0) 62%);
}

.qr-page-flash {
    position: fixed;
    inset: 0;
    z-index: 1090;
}

.qr-page-flash--active {
    opacity: .95;
}

.qr-page-flash--success {
    background: radial-gradient(circle at center, rgba(34,197,94,.1), rgba(34,197,94,0) 58%);
}

.qr-page-flash--warning {
    background: radial-gradient(circle at center, rgba(245,158,11,.11), rgba(245,158,11,0) 58%);
}

.qr-page-flash--danger {
    background: radial-gradient(circle at center, rgba(239,68,68,.11), rgba(239,68,68,0) 58%);
}

.qr-page-flash--info {
    background: radial-gradient(circle at center, rgba(59,130,246,.09), rgba(59,130,246,0) 58%);
}

.qr-scan-feedback-board {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, .9fr);
    gap: 1rem;
    align-items: start;
    padding: 1rem 1.05rem;
    border-radius: 20px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
}

.qr-scan-feedback-copy h6 {
    font-size: 1rem;
}

.qr-scan-feedback-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.qr-scan-feedback-stat {
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #f8fbff, #ffffff);
    padding: .8rem .85rem;
}

.qr-scan-feedback-stat .label {
    display: block;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b7280;
    margin-bottom: .4rem;
}

.qr-scan-feedback-stat .value {
    display: block;
    font-size: 1.3rem;
    line-height: 1;
    font-weight: 800;
    color: var(--navy);
}

.qr-incident-card {
    padding: .95rem 1rem;
    border-radius: 18px;
    border: 1px solid #f3d4a4;
    background: linear-gradient(135deg, #fff9ef, #ffffff);
}

.qr-incident-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem .9rem;
    font-size: .82rem;
    color: #4b5563;
}

@media (max-width: 991.98px) {
    .qr-scan-feedback-board {
        grid-template-columns: 1fr;
    }

    .qr-scan-feedback-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .qr-scan-feedback-stats,
    .qr-incident-meta {
        grid-template-columns: 1fr;
    }
}

.workflow-compact-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}

.workflow-compact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.workflow-compact-grid-queue {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.workflow-compact-step {
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: linear-gradient(135deg, #fff, #fbfdff);
    padding: .8rem .85rem;
}

.workflow-compact-label {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--navy);
    font-weight: 900;
    margin-bottom: .35rem;
}

.workflow-compact-copy {
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.4;
}

.print-only {
    display: none;
}

.qr-print-title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.qr-print-title-row {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: .75rem;
}

.qr-print-meta {
    text-align: right;
    color: #4b5563;
    font-size: .88rem;
}

.qr-print-filter-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    padding: .75rem 0 1rem;
    border-top: 1px solid #d1d5db;
    border-bottom: 1px solid #d1d5db;
    margin-bottom: 1rem;
    color: #374151;
    font-size: .86rem;
}

.house-toggle-check {
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: .8rem 1rem;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.house-toggle-check .form-check-label {
    display: grid;
    gap: .15rem;
}

.house-toggle-check .form-check-label small {
    color: #64748b;
    font-size: .76rem;
    line-height: 1.35;
}

.house-setup-note {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.house-setup-note-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8eef8;
    color: #163b6b;
    flex-shrink: 0;
}

.backup-command-list {
    display: grid;
    gap: 1rem;
}

.backup-command-card {
    padding: 1rem 1.05rem;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
}

.backup-command-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: .45rem;
}

.backup-command-label {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: .45rem;
}

.backup-command-card code {
    display: block;
    white-space: pre-wrap;
    word-break: break-word;
    color: #10233f;
    font-size: .88rem;
}

.users-role-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
}

.users-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.35rem;
    border-radius: 22px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.10), transparent 32%),
        linear-gradient(135deg, var(--navy-2) 0%, var(--navy) 36%, var(--gold) 100%);
    color: #f8fbff;
    box-shadow: 0 18px 42px rgba(13, 36, 67, .18);
}

.users-banner .section-eyebrow,
.users-banner p {
    color: rgba(240, 246, 255, .84);
}

.users-banner-copy {
    max-width: 720px;
}

.users-banner-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.users-banner-badge {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    font-size: 1.25rem;
}

.users-banner-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.users-role-pill {
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.users-role-pill strong {
    display: block;
    font-size: 1.2rem;
    color: #10233f;
}

.users-role-pill span {
    display: block;
    margin-top: .25rem;
    font-size: .78rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.users-role-pill small {
    display: block;
    margin-top: .55rem;
    font-size: .76rem;
    line-height: 1.45;
    color: #475569;
}

.users-permission-table-wrap {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    overflow: hidden;
}

.users-permission-table-wrap .table {
    margin-bottom: 0;
}

.users-permission-table-wrap .table thead th {
    padding: .95rem 1rem;
    background: #f8fafc;
    color: #10233f;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.users-permission-table-wrap .table td {
    padding: .9rem 1rem;
    vertical-align: middle;
    border-color: rgba(15, 23, 42, 0.07);
}

.users-permission-table-wrap .table tbody tr:nth-child(even) td {
    background: rgba(248, 250, 252, 0.7);
}

.users-permission-table-wrap .form-check-input {
    width: 1.18rem;
    height: 1.18rem;
    cursor: pointer;
}

.users-directory-card .card-header {
    padding: .8rem 1rem;
}

.users-directory-card .qr-activity-header {
    margin-bottom: 0;
    align-items: center;
}

.users-directory-card .card-body {
    padding: .4rem 0 0;
}

.users-directory-card .table th,
.users-directory-card .table td {
    padding: .7rem 1rem;
}

.users-directory-card .table td .small {
    line-height: 1.25;
}

.users-directory-permission-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .55rem;
}

.score-entry-table-wrap {
    overflow-x: auto;
}

.score-entry-filter-switch {
    padding: .8rem 1rem;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.score-entry-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.score-entry-toolbar-copy {
    min-width: 220px;
}

.score-entry-warning-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding: .95rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(245, 158, 11, 0.22);
    background: linear-gradient(180deg, rgba(255,251,235,.98), rgba(255,255,255,.98));
}

.score-entry-warning-strip--success {
    border-color: rgba(34, 197, 94, 0.18);
    background: linear-gradient(180deg, rgba(240,253,244,.98), rgba(255,255,255,.98));
}

.score-entry-warning-copy {
    min-width: 220px;
}

.attendance-toolbar {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.attendance-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}

.attendance-summary-item {
    border-radius: 18px;
    background: #f8fafc;
    padding: 14px 16px;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.attendance-trend-card {
    border-radius: 18px;
    background: #ffffff;
    padding: 14px 16px;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.attendance-trend-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.attendance-trend-bar {
    width: 100%;
    height: 12px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
    margin-bottom: 12px;
}

.attendance-trend-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--navy), var(--gold));
}

.attendance-summary-label {
    font-size: .8rem;
    color: var(--muted);
    margin-bottom: 6px;
}

.attendance-summary-value {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--navy);
}

.attendance-status-select {
    min-width: 132px;
}

.attendance-note-input {
    min-width: 170px;
}

.attendance-row-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.score-sheet-meta-line {
    color: rgba(255, 255, 255, 0.92);
}

.teacher-assignment-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
}

.teacher-assignment-card {
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    padding: 18px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.teacher-assignment-card h5 {
    margin: 0 0 4px;
    color: var(--navy);
    font-weight: 800;
}

.teacher-assignment-card .meta {
    color: var(--muted);
    font-size: .92rem;
}

.teacher-assignment-card .chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.teacher-action-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.teacher-action-card {
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
    border: 1px solid rgba(15, 23, 42, 0.06);
    padding: 18px;
    height: 100%;
}

.teacher-action-card .icon-badge {
    margin-bottom: 12px;
}

.teacher-action-card h5 {
    margin-bottom: 6px;
    color: var(--navy);
    font-weight: 800;
}

.teacher-action-card p {
    color: var(--muted);
    margin-bottom: 14px;
}

.score-entry-table th {
    white-space: nowrap;
    vertical-align: bottom;
}

.score-entry-table td {
    vertical-align: middle;
}

.score-entry-row--unentered {
    background: rgba(254, 243, 199, 0.34);
}

.score-entry-row--partial {
    background: rgba(219, 234, 254, 0.28);
}

.score-entry-row--complete {
    background: rgba(240, 253, 244, 0.22);
}

.score-entry-student-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.score-entry-table .score-input {
    min-width: 86px;
    font-weight: 700;
}

.score-entry-table .score-total-cell {
    min-width: 68px;
    display: inline-flex;
    justify-content: center;
}

.class-results-table th {
    white-space: nowrap;
    vertical-align: bottom;
}

.class-results-table td {
    vertical-align: middle;
}

.class-results-chart-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.class-results-chart-card {
    padding: 16px 16px 15px;
    border-radius: 20px;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
}

.class-results-chart-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 12px;
}

.class-results-chart-bar {
    width: 100%;
    height: 12px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
    margin-bottom: 14px;
}

.class-results-chart-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--navy), var(--gold));
}

.class-results-chart-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
}

.class-results-chart-stats div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.class-results-chart-stats span {
    color: var(--muted);
    font-size: .78rem;
}

.class-results-chart-stats strong {
    color: var(--navy);
    font-size: 1rem;
}

.class-results-watch-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.class-results-watch-card {
    padding: 15px 16px;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: #f8fafc;
}

.class-results-watch-card .label {
    display: block;
    color: var(--muted);
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 5px;
}

.class-results-watch-card strong {
    display: block;
    color: var(--navy);
    font-size: 1.35rem;
    font-weight: 800;
}

.class-results-watch-card .meta {
    display: block;
    color: var(--muted);
    font-size: .82rem;
    margin-top: 5px;
    line-height: 1.4;
}

.class-results-intervention-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.class-results-intervention-tag {
    display: inline-flex;
    align-items: center;
    padding: .38rem .62rem;
    border-radius: 999px;
    background: #fff7ed;
    border: 1px solid rgba(249, 115, 22, .18);
    color: #9a3412;
    font-size: .78rem;
    font-weight: 700;
}

.behaviour-trend-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.behaviour-trend-bar span {
    background: linear-gradient(90deg, #dc2626, #f59e0b);
}

.behaviour-trend-mini {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    margin-top: .8rem;
    font-size: .78rem;
    color: #6b7280;
}

.behaviour-trend-mini strong {
    color: var(--navy);
    font-size: .84rem;
}

.behaviour-report-hero {
    position: relative;
    overflow: hidden;
}

.behaviour-report-hero-card {
    padding: 1rem 1.05rem;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.14);
    background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
    backdrop-filter: blur(10px);
}

.behaviour-report-hero-label {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: rgba(255,255,255,.72);
    font-weight: 800;
    margin-bottom: .45rem;
}

.behaviour-report-hero-school {
    font-size: 1.15rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.25;
}

.behaviour-report-hero-meta {
    display: grid;
    gap: .35rem;
    margin-top: .75rem;
    color: rgba(255,255,255,.78);
    font-size: .86rem;
}

.behaviour-report-filter-card {
    margin-top: .2rem;
}

.behaviour-report-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin: .35rem 0 .85rem;
}

.behaviour-report-summary-grid .report-card-summary-card {
    min-height: 150px;
}

.behaviour-report-list {
    display: grid;
    gap: .9rem;
}

.behaviour-report-list-item {
    padding: .95rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .07);
    background: linear-gradient(135deg, #ffffff, #f8fbff);
}

.behaviour-report-list-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.behaviour-report-inline-bar {
    height: 10px;
    margin-top: .7rem;
    border-radius: 999px;
    background: #edf2f7;
    overflow: hidden;
}

.behaviour-report-inline-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #dc2626, #f59e0b);
}

.behaviour-report-inline-bar--calm span {
    background: linear-gradient(90deg, #0f766e, #22c55e);
}

.behaviour-report-inline-bar--status span {
    background: linear-gradient(90deg, #1d4ed8, #8b5cf6);
}

.behaviour-report-list-card .card-header,
.behaviour-report-trend-card .card-header,
.behaviour-report-table-card .card-header {
    font-weight: 800;
}

.behaviour-risk-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.behaviour-risk-card {
    position: relative;
    border-radius: 22px;
    border: 1px solid #dbe4f0;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.75), transparent 28%),
        linear-gradient(135deg, #ffffff, #f8fbff);
    box-shadow: 0 16px 30px rgba(15, 23, 42, .06);
    padding: 1rem 1.05rem;
    overflow: hidden;
}

.behaviour-risk-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: #93c5fd;
}

.behaviour-risk-card--warning::before {
    background: #f59e0b;
}

.behaviour-risk-card--danger::before {
    background: #dc2626;
}

.behaviour-risk-rank {
    position: absolute;
    top: .9rem;
    right: 1rem;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;
}

.behaviour-risk-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding-right: 2rem;
}

.behaviour-risk-title {
    font-size: 1.02rem;
    line-height: 1.2;
    font-weight: 800;
    color: var(--navy);
}

.behaviour-risk-subtitle {
    margin-top: .22rem;
    font-size: .81rem;
    color: #667085;
}

.behaviour-risk-score {
    min-width: 92px;
    padding: .7rem .75rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255,255,255,.86);
    text-align: center;
}

.behaviour-risk-score span {
    display: block;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: .25rem;
}

.behaviour-risk-score strong {
    display: block;
    font-size: 1.3rem;
    line-height: 1;
    color: var(--navy);
}

.behaviour-risk-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
}

.behaviour-risk-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .85rem;
}

.behaviour-risk-metrics div {
    padding: .75rem .8rem;
    border-radius: 16px;
    border: 1px solid #e7edf6;
    background: rgba(255,255,255,.88);
}

.behaviour-risk-metrics span {
    display: block;
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #667085;
    font-weight: 800;
    margin-bottom: .22rem;
}

.behaviour-risk-metrics strong {
    display: block;
    color: var(--navy);
    font-size: 1rem;
}

.house-side-panel {
    background: #ffffff;
}

.house-summary-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.house-summary-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex: 1 1 auto;
}

.house-summary-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.house-inline-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.house-inline-metric {
    padding: .85rem .9rem;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    text-align: center;
}

.house-inline-metric strong {
    display: block;
    font-size: 1.15rem;
    color: #10233f;
}

.house-inline-metric span {
    display: block;
    margin-top: .25rem;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #64748b;
}

.house-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .05);
}

.house-toolbar-copy h5 {
    color: #10233f;
}

.house-toolbar-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

@media (max-width: 991px) {
    .users-banner,
    .users-banner-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .users-role-strip {
        grid-template-columns: 1fr 1fr;
    }

    .house-summary-strip,
    .house-summary-main {
        flex-direction: column;
        align-items: flex-start;
    }

    .house-inline-metrics {
        grid-template-columns: 1fr;
    }

    .house-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }

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

    .behaviour-trend-mini {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .behaviour-report-section-head,
    .behaviour-report-list-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .behaviour-risk-top {
        flex-direction: column;
        align-items: flex-start;
        padding-right: 0;
    }

    .behaviour-risk-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .behaviour-trend-grid,
    .behaviour-trend-mini,
    .behaviour-risk-metrics {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: A4;
        margin: 12mm;
    }

    .sidebar,
    .topbar,
    .student-sidebar,
    .page-banner,
    .hero-banner,
    .class-album-hero,
    .qr-checkin-hero,
    .no-print,
    .btn,
    form,
    .alert {
        display: none !important;
    }

    html,
    body {
        background: #fff !important;
        color: #111827;
        font-size: 11.5pt;
    }

    .content-area,
    .public-shell,
    .student-shell-content,
    .page-stack,
    .container-fluid,
    .container {
        padding: 0 !important;
        margin: 0 !important;
    }

    .student-shell {
        display: block !important;
    }

    .qr-checkin-layout,
    .qr-checkin-right,
    .qr-print-card,
    .qr-print-body {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .panel-card,
    .card-soft,
    .stat-card,
    .table-card {
        box-shadow: none;
    }

    .table-card {
        border: 0 !important;
        border-radius: 0 !important;
    }

    .table-card .card-body {
        padding: 0 !important;
    }

    .print-only {
        display: block !important;
    }

    .class-album-print-sheet {
        display: block !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        padding: 0 0 12px !important;
        margin-bottom: 12px !important;
        border-bottom: 1px solid #d1d5db !important;
    }

    .class-album-print-head {
        align-items: flex-end !important;
    }

    .class-album-print-title {
        font-size: 18pt !important;
        color: #111827 !important;
    }

    .class-album-print-subtitle,
    .class-album-print-filters {
        color: #4b5563 !important;
    }

    .class-album-group-card,
    .class-album-student-card {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .class-album-group-card {
        border: 0 !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        margin-bottom: 14px !important;
    }

    .class-album-group-card .card-body {
        padding: 10px 0 0 !important;
    }

    .class-album-group-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-end !important;
        gap: 1rem !important;
        padding: 0 0 10px !important;
        border-bottom: 1px solid #d1d5db !important;
        margin-bottom: 10px !important;
        page-break-after: avoid !important;
    }

    .class-album-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        align-items: start !important;
    }

    .class-album-student-card {
        display: grid !important;
        width: auto !important;
        margin: 0 !important;
        padding: 8px !important;
        border: 1px solid #d1d5db !important;
        border-radius: 12px !important;
        box-shadow: none !important;
        background: #fff !important;
    }

    .class-album-photo-wrap {
        width: 92px !important;
        height: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
        min-height: 92px !important;
        max-height: 92px !important;
    }

    .class-album-photo {
        width: 92px !important;
        height: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
        min-height: 92px !important;
        max-height: 92px !important;
        box-shadow: none !important;
    }

    .class-album-meta-grid {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
    }

    .class-album-meta-card,
    .class-album-photo,
    .class-album-photo-fallback {
        border-color: #d1d5db !important;
    }

    .class-album-student-body {
        gap: 6px !important;
    }

    .class-album-student-head-stack,
    .class-album-student-footer-stack {
        justify-items: stretch !important;
        text-align: center !important;
    }

    .class-album-student-titles h6 {
        font-size: 10.5pt !important;
    }

    .class-album-student-subline,
    .class-album-meta-label,
    .class-album-meta-value,
    .class-album-print-subtitle,
    .class-album-print-filters,
    .class-album-group-header .small {
        font-size: 8pt !important;
        line-height: 1.3 !important;
    }

    .class-album-meta-card {
        padding: 6px !important;
        border-radius: 10px !important;
    }

    .class-album-actions .btn {
        display: none !important;
    }

    .class-album-actions-center {
        justify-content: center !important;
    }

    .qr-print-sheet {
        margin-bottom: 1rem;
    }

    .qr-print-title-row,
    .qr-print-filter-summary {
        page-break-inside: avoid;
    }

    .table {
        width: 100% !important;
        border-collapse: collapse !important;
    }

    .table th,
    .table td {
        border: 1px solid #d1d5db !important;
        padding: 10px 12px !important;
        vertical-align: top !important;
    }

    .table thead th {
        background: #eff3f8 !important;
        color: #111827 !important;
        font-size: 10.5pt !important;
    }

    .soft-badge {
        border: 1px solid #cbd5e1 !important;
        background: #fff !important;
        color: #111827 !important;
        padding: 2px 8px !important;
    }

    .print-page,
    .document-sheet {
        border: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    .document-title,
    .registration-profile,
    .registration-sections,
    .registration-verification-strip {
        gap: 12px !important;
    }

    .registration-document-title,
    .registration-profile,
    .registration-sections {
        grid-template-columns: 1fr !important;
    }

    .registration-qr-card,
    .registration-section,
    .registration-note,
    .admission-letter-body,
    .admission-letter-banner,
    .registration-mini-stat {
        background: #fff !important;
        color: #111827 !important;
        border: 1px solid #d1d5db !important;
        box-shadow: none !important;
    }

    .registration-qr-meta,
    .admission-letter-subtitle,
    .text-muted,
    .detail-label {
        color: #4b5563 !important;
    }

    .registration-qr-card {
        width: 190px !important;
        padding: 10px !important;
        justify-items: center;
        page-break-inside: avoid;
    }

    .registration-qr-image {
        width: 130px !important;
        height: 130px !important;
        padding: 4px !important;
        border: 1px solid #d1d5db;
    }

    .registration-profile-main,
    .admission-letter-profile {
        align-items: flex-start !important;
    }

    .registration-chip {
        background: #fff !important;
        color: #111827 !important;
        border: 1px solid #d1d5db !important;
    }

    .detail-item,
    .registration-section,
    .registration-note,
    .registration-hero-panel,
    .admission-letter-banner,
    .admission-letter-body,
    .registration-signature-row {
        page-break-inside: avoid;
    }

    .registration-section .detail-value {
        max-width: 60% !important;
    }

    .registration-signature-row {
        margin-top: 18px !important;
    }

    .registration-print-page {
        font-size: 8.8pt;
        color: #0f172a !important;
    }

    .registration-print-page .registration-document-title {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 122px !important;
        align-items: start !important;
        gap: 6px !important;
        padding-bottom: 5px !important;
        border-bottom: 1.5px solid #cbd5e1 !important;
    }

    .registration-print-page .registration-school-copy h2 {
        margin-bottom: 3px !important;
        font-size: 1rem !important;
        letter-spacing: .02em !important;
    }

    .registration-print-page .registration-school-copy h4 {
        margin-bottom: 4px !important;
        font-size: .78rem !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
        color: #0f172a !important;
    }

    .registration-print-page .registration-school-copy p {
        margin-bottom: 3px !important;
        line-height: 1.16 !important;
    }

    .registration-print-page .registration-hero-panel {
        margin-bottom: 6px !important;
    }

    .registration-print-page .registration-profile {
        grid-template-columns: minmax(0, 1fr) 148px !important;
        padding: 6px !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 12px !important;
        background: #fff !important;
    }

    .registration-print-page .registration-photo,
    .registration-print-page .registration-photo-placeholder {
        width: 64px !important;
        height: 64px !important;
        border-radius: 14px !important;
    }

    .registration-print-page .registration-profile-name {
        font-size: .95rem !important;
        line-height: 1.08 !important;
    }

    .registration-print-page .registration-profile-meta {
        margin-top: 3px !important;
        font-size: .7rem !important;
    }

    .registration-print-page .registration-chip-row {
        gap: 3px !important;
        margin-top: 4px !important;
    }

    .registration-print-page .registration-chip {
        padding: 3px 5px !important;
        font-size: .58rem !important;
        border-color: #cbd5e1 !important;
        font-weight: 700 !important;
    }

    .registration-print-page .registration-mini-stat {
        padding: 5px 6px !important;
        border-color: #d7dee8 !important;
        border-radius: 10px !important;
    }

    .registration-print-page .registration-mini-stat span {
        font-size: .58rem !important;
        margin-bottom: 2px !important;
    }

    .registration-print-page .registration-mini-stat strong {
        font-size: .72rem !important;
    }

    .registration-print-page .registration-sections {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .registration-print-page .registration-section {
        padding: 6px !important;
        display: flex !important;
        flex-direction: column !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 12px !important;
        background: #fff !important;
    }

    .registration-print-page .registration-qr-card {
        width: 122px !important;
        flex: 0 0 122px !important;
        padding: 5px !important;
        border-radius: 12px !important;
        align-self: start !important;
    }

    .registration-print-page .registration-qr-label {
        margin-bottom: 5px !important;
        font-size: .6rem !important;
    }

    .registration-print-page .registration-qr-image {
        width: 82px !important;
        height: 82px !important;
        padding: 2px !important;
        border-radius: 8px !important;
    }

    .registration-print-page .registration-qr-meta {
        margin-top: 3px !important;
        font-size: .52rem !important;
        line-height: 1.1 !important;
    }

    .registration-print-page .registration-section-academic-placement {
        grid-column: 1 / -1 !important;
    }

    .registration-print-page .registration-section-parent-and-guardian {
        grid-column: 1 / -1 !important;
    }

    .registration-print-page .registration-section-parent-and-guardian .detail-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4px 8px !important;
    }

    .registration-print-page .registration-section-student-identity .detail-list,
    .registration-print-page .registration-section-academic-placement .detail-list,
    .registration-print-page .registration-section-housing-and-reporting .detail-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4px 8px !important;
    }

    .registration-print-page .registration-section-contact-and-background .detail-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4px 8px !important;
    }

    .registration-print-page .registration-section-academic-placement .detail-list,
    .registration-print-page .registration-section-housing-and-reporting .detail-list {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .registration-print-page .registration-section-title {
        margin-bottom: 5px !important;
        font-size: .6rem !important;
        padding-bottom: 4px !important;
        border-bottom: 1px solid #dbe2ec !important;
        color: #0f172a !important;
        letter-spacing: .1em !important;
    }

    .registration-print-page .detail-item {
        padding-bottom: 4px !important;
        margin-bottom: 0 !important;
        border-bottom: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .registration-print-page .detail-label,
    .registration-print-page .detail-value {
        font-size: .68rem !important;
    }

    .registration-print-page .detail-item {
        align-items: flex-start !important;
    }

    .registration-print-page .detail-label {
        flex: 0 0 36% !important;
        max-width: 36% !important;
    }

    .registration-print-page .detail-value {
        flex: 1 1 auto !important;
        max-width: none !important;
        text-align: left !important;
        line-height: 1.28 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }

    .registration-print-page .registration-section-student-identity .detail-item,
    .registration-print-page .registration-section-academic-placement .detail-item,
    .registration-print-page .registration-section-contact-and-background .detail-item,
    .registration-print-page .registration-section-parent-and-guardian .detail-item,
    .registration-print-page .registration-section-housing-and-reporting .detail-item {
        display: block !important;
        padding: 4px 5px !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 6px !important;
        background: #fcfdff !important;
        min-height: 100% !important;
    }

    .registration-print-page .registration-section-student-identity .detail-label,
    .registration-print-page .registration-section-academic-placement .detail-label,
    .registration-print-page .registration-section-contact-and-background .detail-label,
    .registration-print-page .registration-section-parent-and-guardian .detail-label,
    .registration-print-page .registration-section-housing-and-reporting .detail-label {
        display: block !important;
        max-width: none !important;
        margin-bottom: 1px !important;
        font-size: .54rem !important;
        line-height: 1.1 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        color: #64748b !important;
    }

    .registration-print-page .registration-section-student-identity .detail-value,
    .registration-print-page .registration-section-academic-placement .detail-value,
    .registration-print-page .registration-section-contact-and-background .detail-value,
    .registration-print-page .registration-section-parent-and-guardian .detail-value,
    .registration-print-page .registration-section-housing-and-reporting .detail-value {
        display: block !important;
        font-size: .62rem !important;
        line-height: 1.14 !important;
        color: #0f172a !important;
        font-weight: 600 !important;
    }

    .registration-print-page .registration-section-academic-placement .detail-item-subject-combination,
    .registration-print-page .registration-section-parent-and-guardian .detail-item-emergency-contact,
    .registration-print-page .registration-section-contact-and-background .detail-item-residential-address,
    .registration-print-page .registration-section-housing-and-reporting .detail-item-reporting-address,
    .registration-print-page .registration-section-housing-and-reporting .detail-item-reporting-venue,
    .registration-print-page .registration-section-housing-and-reporting .detail-item-reporting-token,
    .registration-print-page .registration-section-housing-and-reporting .detail-item-verification-code {
        grid-column: 1 / -1 !important;
    }

    .registration-print-page .detail-item-subject-combination .detail-value,
    .registration-print-page .detail-item-residential-address .detail-value,
    .registration-print-page .detail-item-reporting-address .detail-value,
    .registration-print-page .detail-item-verification-code .detail-value,
    .registration-print-page .detail-item-reporting-token .detail-value {
        font-size: .66rem !important;
    }

    .registration-print-page .registration-note,
    .registration-print-page .registration-verification-strip,
    .registration-print-page .registration-signature-row {
        margin-top: 6px !important;
        padding-top: 6px !important;
    }

    .registration-print-page .registration-note {
        border: 1px solid #d9dee7 !important;
        background: rgba(248,250,252,.82) !important;
        border-radius: 10px !important;
        padding: 6px 7px !important;
    }

    .registration-print-page .registration-note-title {
        font-size: .6rem !important;
        letter-spacing: .06em !important;
        text-transform: uppercase !important;
        color: #0f172a !important;
    }

    .registration-print-page .registration-verification-strip {
        display: none !important;
    }

    .registration-print-page .registration-link-text {
        font-size: .62rem !important;
        line-height: 1.18 !important;
        color: #0f172a !important;
        font-weight: 700 !important;
    }


    .registration-print-page .registration-signature-row {
        margin-top: 8px !important;
        padding-top: 5px !important;
        align-items: end !important;
        border-top: 1px solid #cbd5e1 !important;
    }

    .registration-print-page .registration-signature-row > div {
        padding-top: 0 !important;
    }

    .registration-print-page .registration-signature-line {
        min-width: 180px !important;
    }

.registration-print-page.registration-sheet .registration-watermark {
    display: none !important;
}

.registration-print-page.registration-sheet {
    background-image:
        linear-gradient(135deg, rgba(255,255,255,.985), rgba(248,251,255,.955)),
        var(--registration-watermark);
    background-repeat: no-repeat, no-repeat;
    background-position: center center, center 23%;
    background-size: 100% 100%, min(42%, 270px) auto;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.registration-print-page.registration-sheet .registration-watermark-image-layer {
    display: flex !important;
    position: absolute !important;
    inset: 0 !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: 2.5rem !important;
    opacity: .24 !important;
    z-index: 0 !important;
}

.registration-print-page.registration-sheet .document-watermark-image {
    width: min(42%, 270px) !important;
    max-width: 42% !important;
    max-height: 42% !important;
    opacity: 1 !important;
}

.registration-print-page.registration-sheet .registration-profile,
.registration-print-page.registration-sheet .registration-section,
.registration-print-page.registration-sheet .registration-note,
.registration-print-page.registration-sheet .registration-mini-stat,
.registration-print-page.registration-sheet .registration-qr-card {
    background: rgba(255,255,255,.58) !important;
    box-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) {
        font-size: 9pt !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-document-title {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 118px !important;
        gap: 7px !important;
        margin-bottom: 7px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-school-copy h2 {
        margin-bottom: 3px !important;
        font-size: 1.08rem !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-school-copy p,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-body p {
        margin-bottom: 4px !important;
        line-height: 1.24 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-qr-card {
        width: 118px !important;
        flex: 0 0 118px !important;
        padding: 5px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-qr-image {
        width: 84px !important;
        height: 84px !important;
        padding: 2px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-qr-meta {
        display: block !important;
        margin-top: 4px !important;
        font-size: .56rem !important;
        line-height: 1.12 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-banner {
        margin-bottom: 6px !important;
        padding: 7px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-profile {
        gap: 7px !important;
        align-items: flex-start !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-photo,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-photo-placeholder {
        width: 64px !important;
        height: 64px !important;
        border-radius: 12px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-name {
        font-size: .98rem !important;
        line-height: 1.1 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-subtitle {
        margin-top: 1px !important;
        line-height: 1.16 !important;
        font-size: .74rem !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-chip-row {
        gap: 3px !important;
        margin-top: 4px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-chip {
        padding: 3px 5px !important;
        font-size: .62rem !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-body {
        padding: 6px !important;
        margin-bottom: 5px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-summary {
        gap: 4px !important;
        margin: 5px 0 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-summary-item {
        border-radius: 10px !important;
        padding: 4px 6px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-summary-item span {
        font-size: .58rem !important;
        margin-bottom: 2px !important;
        letter-spacing: .06em !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .admission-letter-summary-item strong {
        font-size: .68rem !important;
        line-height: 1.16 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-sections {
        display: grid !important;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr) !important;
        gap: 5px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-section {
        padding: 6px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-section-title {
        margin-bottom: 5px !important;
        font-size: .68rem !important;
        letter-spacing: .08em !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .detail-list-compact {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4px 10px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .detail-list-reporting {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 4px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .detail-item {
        padding-bottom: 2px !important;
        margin-bottom: 0 !important;
        break-inside: avoid !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .detail-label,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .detail-value {
        font-size: .68rem !important;
        line-height: 1.18 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-note,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-verification-strip,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-row {
        margin-top: 6px !important;
        padding-top: 5px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-note,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-verification-strip {
        display: none !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-link-text {
        font-size: .66rem !important;
        line-height: 1.15 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 4.5rem !important;
        margin-top: 6px !important;
        padding-top: 5px !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-role {
        font-size: .62rem !important;
        margin-bottom: 6px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-note {
        margin-top: 3px !important;
        font-size: .58rem !important;
        line-height: 1.12 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-line {
        width: min(100%, 170px) !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page) .registration-signature-image {
        max-width: min(100%, 150px) !important;
        max-height: 44px !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet {
        page-break-inside: avoid !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .registration-sections,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .registration-signature-row,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .registration-signature-block {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }


    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .document-watermark {
        z-index: 3 !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .document-watermark-image {
        width: min(54%, 340px) !important;
        max-width: 54% !important;
        max-height: 54% !important;
        opacity: .24 !important;
        filter: grayscale(100%) contrast(1.24) !important;
    }

    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .admission-letter-body,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .registration-section,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .registration-note,
    .document-sheet.print-page:not(.registration-print-page):not(.payment-receipt-page).admission-letter-sheet .admission-letter-summary-item {
        background: rgba(255,255,255,.72) !important;
    }

    .payment-receipt-page {
        font-size: 10.5pt;
    }

    .payment-receipt-sheet .payment-receipt-watermark {
        position: fixed !important;
        inset: 0 !important;
        z-index: 3 !important;
    }

    .payment-receipt-sheet .document-watermark-image {
        width: min(54%, 340px) !important;
        max-width: 54% !important;
        max-height: 54% !important;
        opacity: .24 !important;
        filter: grayscale(100%) contrast(1.22) !important;
    }

    .payment-receipt-print-header {
        display: block !important;
    }

    .payment-receipt-page .document-title {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 170px !important;
        align-items: start !important;
        margin-bottom: 10px !important;
    }

    .payment-receipt-page .row {
        --bs-gutter-x: 10px !important;
        --bs-gutter-y: 10px !important;
    }

    .payment-receipt-page .card-header {
        padding: 8px 10px !important;
        font-size: .84rem !important;
        background: #eff3f8 !important;
        color: #111827 !important;
        border-bottom: 1px solid #d1d5db !important;
    }

    .payment-receipt-page .card-body {
        padding: 10px !important;
    }

    .payment-receipt-page .payment-details-summary {
        margin-bottom: 10px !important;
        padding: 8px 10px !important;
        border-color: #d1d5db !important;
        background: #fff !important;
    }

    .payment-receipt-page .payment-details-summary-label {
        font-size: .7rem !important;
        margin-bottom: 2px !important;
    }

    .payment-receipt-page .payment-details-summary-value {
        font-size: 1.2rem !important;
    }

    .payment-receipt-page .registration-qr-card {
        width: 170px !important;
        padding: 10px !important;
        gap: 6px !important;
    }

    .payment-receipt-page .payment-receipt-qr-image {
        width: 124px !important;
        height: 124px !important;
        margin-bottom: 4px !important;
    }

    .payment-receipt-page .payment-receipt-reference {
        padding: 5px 6px !important;
        border: 1px solid #d1d5db !important;
        background: #fff !important;
        color: #111827 !important;
        font-size: .75rem !important;
    }

    .payment-receipt-page .payment-receipt-chip-row {
        margin-bottom: 10px !important;
    }

    .payment-receipt-page .detail-item {
        padding-bottom: 6px !important;
        margin-bottom: 0 !important;
    }

    .payment-receipt-page .payment-detail-item .detail-label {
        flex-basis: 40% !important;
        max-width: 40% !important;
    }

    .payment-receipt-page .detail-label,
    .payment-receipt-page .detail-value {
        font-size: .84rem !important;
    }

    .payment-receipt-page .registration-note {
        margin-top: 10px !important;
        padding-top: 10px !important;
        border-top: 1px solid #d1d5db !important;
    }

    .payment-receipt-page .registration-qr-meta {
        color: #4b5563 !important;
        font-size: .76rem !important;
    }

    .graduated-registry-page {
        font-size: 9.6pt !important;
    }

    .graduated-registry-page .document-title {
        margin-bottom: 8px !important;
    }

    .graduated-registry-page .registration-school-copy h1 {
        font-size: 1.95rem !important;
        margin-bottom: 4px !important;
    }

    .graduated-registry-page .registration-school-copy p {
        font-size: .82rem !important;
        max-width: 86% !important;
    }

    .graduated-registry-page .payment-receipt-chip-row {
        margin-bottom: 8px !important;
        gap: 5px !important;
    }

    .graduated-registry-page .soft-badge {
        padding: 4px 8px !important;
        font-size: .7rem !important;
    }

    .graduated-registry-page .graduated-registry-intro {
        --bs-gutter-x: 8px !important;
        --bs-gutter-y: 8px !important;
        margin-bottom: 10px !important;
    }

    .graduated-registry-page .graduated-registry-summary-col {
        width: 33.333333% !important;
    }

    .graduated-registry-page .graduated-registry-note-col {
        width: 66.666667% !important;
    }

    .graduated-registry-page .graduated-registry-note-col {
        display: none !important;
    }

    .graduated-registry-page .graduated-registry-summary-col {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .graduated-registry-page .card.table-card {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .graduated-registry-page .table-card .card-header {
        padding: 7px 9px !important;
        font-size: .8rem !important;
    }

    .graduated-registry-page .table-card .card-body {
        padding: 8px 9px !important;
    }

    .graduated-registry-page .graduated-registry-summary-col .detail-list {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .graduated-registry-page .graduated-registry-summary-col .detail-item {
        padding-bottom: 0 !important;
        border-bottom: 0 !important;
        margin-bottom: 0 !important;
    }

    .graduated-registry-page .graduated-registry-note-col p {
        font-size: .77rem !important;
        line-height: 1.35 !important;
        margin-bottom: 4px !important;
    }

    .graduated-registry-page .graduated-registry-table-card {
        margin-top: 0 !important;
    }

    .graduated-registry-page .graduated-registry-table {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .graduated-registry-page .graduated-registry-table th,
    .graduated-registry-page .graduated-registry-table td {
        padding: 7px 8px !important;
        font-size: .74rem !important;
        vertical-align: top !important;
        line-height: 1.3 !important;
        word-break: break-word !important;
    }

    .graduated-registry-page .graduated-registry-table thead th {
        font-size: .7rem !important;
        white-space: normal !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(1),
    .graduated-registry-page .graduated-registry-table td:nth-child(1) {
        width: 21% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(2),
    .graduated-registry-page .graduated-registry-table td:nth-child(2) {
        width: 14% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(3),
    .graduated-registry-page .graduated-registry-table td:nth-child(3) {
        width: 14% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(4),
    .graduated-registry-page .graduated-registry-table td:nth-child(4) {
        width: 10% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(5),
    .graduated-registry-page .graduated-registry-table td:nth-child(5) {
        width: 18% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(6),
    .graduated-registry-page .graduated-registry-table td:nth-child(6) {
        width: 11% !important;
    }

    .graduated-registry-page .graduated-registry-table th:nth-child(7),
    .graduated-registry-page .graduated-registry-table td:nth-child(7) {
        width: 12% !important;
    }

    .graduated-registry-page .graduated-registry-student-cell .fw-semibold {
        font-size: .76rem !important;
        line-height: 1.25 !important;
    }

    .graduated-registry-page .graduated-registry-table .small {
        font-size: .66rem !important;
        line-height: 1.25 !important;
    }

    body:has(.student-id-page) .topbar,
    body:has(.student-id-page) .sidebar,
    body:has(.student-id-page) .offcanvas,
    body:has(.student-id-page) .student-sidebar,
    body:has(.student-id-page) .top-action-bar,
    body:has(.student-id-page) .no-print {
        display: none !important;
    }

    body:has(.student-id-page) {
        background: #fff !important;
    }

    body:has(.student-id-page) .content-area,
    body:has(.student-id-page) .public-shell,
    body:has(.student-id-page) .student-shell-content,
    body:has(.student-id-page) .page-stack {
        padding: 0 !important;
        background: #fff !important;
    }

    body:has(.student-id-page) .student-shell {
        display: block !important;
    }

    .student-id-page {
        padding: 0 !important;
    }

    .student-id-layout {
        width: auto !important;
        grid-template-columns: repeat(2, 85.6mm) !important;
        justify-content: center !important;
        gap: 6mm !important;
    }

    .student-id-card-sheet {
        box-shadow: none !important;
        border: .35mm solid #0f172a !important;
        border-radius: 4mm !important;
        width: 85.6mm !important;
        overflow: hidden !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .student-id-card-front,
    .student-id-card-back,
    .student-id-status-chip,
    .student-id-detail-card,
    .student-id-back-card,
    .student-id-qr-block-back {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .student-id-card-front {
        background:
            radial-gradient(circle at top right, rgba(255,255,255,.18), transparent 24%) !important,
            linear-gradient(160deg, #10274d 0%, #0f1f38 58%, #08182d 100%) !important;
        color: #fff !important;
    }

    .student-id-card-back {
        background:
            linear-gradient(180deg, #0b1324 0 14mm, transparent 14mm) !important,
            linear-gradient(180deg, #ffffff 0%, #edf3fb 100%) !important;
        color: #0f172a !important;
        border: .3mm solid #0f172a !important;
    }

    .student-id-card-body {
        grid-template-columns: 25mm 1fr !important;
        gap: 4mm !important;
        text-align: left !important;
        padding: 0 4.8mm 4mm !important;
    }

    .student-id-card-back-body {
        grid-template-columns: 22mm 1fr !important;
        gap: 3.5mm !important;
        text-align: left !important;
        padding: 3.5mm 4.8mm 4mm !important;
    }

    .student-id-photo {
        width: 23mm !important;
        height: 29mm !important;
        border-radius: 3mm !important;
        border: .45mm solid rgba(255,255,255,.3) !important;
    }

    .student-id-maincopy h3 {
        font-size: .95rem !important;
        color: #ffffff !important;
    }

    .student-id-detail-grid {
        gap: 2mm !important;
    }

    .student-id-detail-card {
        padding: 2.3mm 2.6mm !important;
        background: rgba(255,255,255,.18) !important;
        border: .25mm solid rgba(255,255,255,.24) !important;
    }

    .student-id-back-grid {
        gap: 2mm !important;
    }

    .student-id-back-card {
        padding: 2.3mm 2.6mm !important;
        background: #ffffff !important;
        border: .25mm solid #b9c6d6 !important;
    }

    .student-id-qr-image,
    .student-id-qr-fallback {
        width: 18mm !important;
        height: 18mm !important;
        min-height: 18mm !important;
    }

    .student-id-qr-block-back {
        padding: 2.4mm !important;
        background: #ffffff !important;
        border: .25mm solid #9fb0c4 !important;
    }

    .student-id-back-heading {
        font-size: .7rem !important;
        color: #0f172a !important;
    }

    .student-id-card-topband {
        padding: 4mm 4.8mm 2.5mm !important;
    }

    .student-id-card-brand .section-eyebrow,
    .student-id-card-schoolcode,
    .student-id-detail-card span,
    .student-id-back-card span {
        font-size: .48rem !important;
    }

    .student-id-card-brand .section-eyebrow,
    .student-id-card-schoolcode,
    .student-id-label,
    .student-id-program,
    .student-id-detail-card span,
    .student-id-detail-card strong,
    .student-id-card-footerband,
    .student-id-card-footerband-back {
        color: #ffffff !important;
    }

    .student-id-card-brand h2 {
        font-size: .84rem !important;
        color: #ffffff !important;
    }

    .student-id-program,
    .student-id-detail-card strong,
    .student-id-back-card strong,
    .student-id-back-text,
    .student-id-back-note,
    .student-id-card-footerband,
    .student-id-card-footerband-back {
        font-size: .62rem !important;
    }

    .student-id-label,
    .student-id-status-chip {
        font-size: .52rem !important;
    }

    .student-id-status-chip {
        background: rgba(255,255,255,.22) !important;
        border: .25mm solid rgba(255,255,255,.25) !important;
        color: #ffffff !important;
    }

    .student-id-chip-row {
        gap: 1.5mm !important;
        margin-bottom: 2.5mm !important;
    }

    .student-id-chip-row .soft-badge {
        font-size: .46rem !important;
        padding: 1.1mm 1.6mm !important;
        font-weight: 800 !important;
    }

    .student-id-card-footerband {
        padding: 2.8mm 4.8mm 4mm !important;
        border-top: .25mm solid rgba(255,255,255,.25) !important;
    }

    .student-id-back-text,
    .student-id-back-note,
    .student-id-back-card span,
    .student-id-back-card strong,
    .student-id-card-footerband-back {
        color: #1e293b !important;
    }

    .student-id-back-note {
        border-top: .25mm solid #cbd5e1 !important;
    }

    .student-id-card-footerband-back {
        border-top: .25mm solid #cbd5e1 !important;
    }
}

@media (max-width: 992px) {
    .sidebar { display: none; }
    .sidebar-toggle-btn { display: none; }
    .sidebar-mobile-btn { display: inline-grid; }
    .content-area,
    .public-shell { padding: 16px; }
    .public-layout { grid-template-columns: 1fr; }
    .public-sidebar { position: static; }
    .hero-mini-grid,
    .public-hero-grid { grid-template-columns: 1fr; }
    .school-actions {
        justify-content: flex-start;
        max-width: none;
        margin-left: 0;
    }
    .school-card-grid,
    .school-directory-stats,
    .school-dashboard-strip,
    .approval-queue-stats,
    .approval-queue-layout,
    .clinic-summary-grid,
    .clinic-urgent-grid,
    .registration-insight-strip,
    .class-album-filters,
    .workflow-compact-grid,
    .workflow-compact-grid-queue,
    .upload-guidance-grid,
    .upload-support-grid,
    .qr-checkin-layout {
        grid-template-columns: 1fr;
    }
    .registration-workspace {
        grid-template-columns: 1fr;
    }
    .registration-sidebar {
        position: static;
    }
    .settings-admission-rule-header {
        flex-direction: column;
    }
    .settings-school-select {
        min-width: 100%;
    }
    .settings-admission-rule-preview,
    .settings-admission-rule-mini-grid {
        width: 100%;
        grid-template-columns: 1fr;
    }
    .workflow-compact-header {
        flex-direction: column;
    }
    .school-card-grid[data-view="compact"] .school-directory-contact,
    .school-card-grid[data-view="compact"] .school-directory-stats {
        grid-template-columns: 1fr;
    }
    .school-editor-panel {
        position: static;
    }
    .school-portal-stage,
    .school-portal-support-grid,
    .school-portal-meta-grid {
        grid-template-columns: 1fr;
    }
    .school-portal-section-heading,
    .school-portal-brand-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .school-portal-brand-mark {
        width: 78px;
        height: 78px;
        border-radius: 22px;
    }
    .school-table tbody td { min-width: 180px; }
    .admin-grid,
    .timeline-strip { grid-template-columns: 1fr; }
    .student-shell {
        grid-template-columns: 1fr;
    }
    .student-sidebar {
        position: static;
    }
    .student-guide-band {
        grid-template-columns: 1fr;
    }
    .student-id-layout {
        grid-template-columns: 1fr;
        justify-items: center;
    }
    .student-id-card-body {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .student-id-card-back-body {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .student-id-chip-row {
        justify-content: center;
    }
    .student-id-back-grid {
        grid-template-columns: 1fr;
    }
    .student-id-card-footerband {
        flex-direction: column;
    }
    .student-id-card-sheet {
        width: min(100%, 360px);
    }
    .clinic-form-grid {
        grid-template-columns: 1fr;
    }
    .report-card-formal-header,
    .report-card-bio-card,
    .report-card-profile,
    .report-card-summary-grid,
    .report-card-formal-stats,
    .report-card-formal-lower {
        grid-template-columns: 1fr;
    }
    .report-card-cluster {
        padding: .9rem;
    }
    .report-card-identity-grid {
        grid-template-columns: 1fr;
    }
    .report-card-bio-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .report-card-bio-grid-formal,
    .report-card-formal-lower-top,
    .report-card-progress-grid,
    .report-card-conduct-pair,
    .report-card-remarks-grid,
    .report-card-student-details-columns {
        grid-template-columns: 1fr;
    }
    .registration-profile,
    .registration-sections {
        grid-template-columns: 1fr;
    }
    .class-album-meta-grid {
        grid-template-columns: 1fr;
    }
    .registration-document-title {
        flex-direction: column;
    }
    .registration-qr-card {
        width: 100%;
        flex-basis: auto;
    }
    .admission-letter-profile {
        flex-direction: column;
        align-items: flex-start;
    }
    .title-row {
        flex-direction: column;
    }
    .academic-summary-main {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 640px) {
    .class-album-grid,
    .class-album-filters {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 5mm;
    }

    body:has(.report-card-page) .topbar,
    body:has(.report-card-page) .sidebar,
    body:has(.report-card-page) .offcanvas,
    body:has(.report-card-page) .users-banner,
    body:has(.report-card-page) .card-soft,
    body:has(.report-card-page) .no-print {
        display: none !important;
    }

    body:has(.report-card-page) {
        background: #fff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    body:has(.report-card-page) .content-area {
        padding: 0 !important;
    }

    body:has(.report-card-page) .content-area > *:not(.report-card-page) {
        display: none !important;
    }

    .report-card-page {
        padding: 0 !important;
        position: relative !important;
    }

    .report-card-page-watermark {
        display: flex !important;
        position: fixed !important;
        inset: 0 !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 9999 !important;
        pointer-events: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .report-card-page-watermark-image {
        display: block !important;
        width: min(62vw, 500px) !important;
        max-width: 500px !important;
        height: auto !important;
        opacity: .32 !important;
        filter: contrast(1.18) !important;
        mix-blend-mode: multiply !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .report-card-page .report-card-sheet {
        box-shadow: none !important;
        border: 1px solid #bcc9d8 !important;
        border-radius: 0 !important;
        background: #ffffff !important;
        padding: 5px !important;
        overflow: visible !important;
    }

    .report-card-page .report-card-print-watermark,
    .report-card-page .report-card-print-watermark-image {
        display: none !important;
    }

    .report-card-page .report-card-sheet .report-card-watermark {
        display: none !important;
    }

    .report-card-page .report-card-sheet .report-card-watermark-image-layer {
        display: none !important;
        align-items: center !important;
        justify-content: center !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 8 !important;
        pointer-events: none !important;
        overflow: hidden !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .report-card-page .report-card-sheet .report-card-watermark-image-layer .document-watermark-image {
        width: min(48%, 305px) !important;
        max-width: 305px !important;
        height: auto !important;
        display: block !important;
        visibility: visible !important;
        opacity: .42 !important;
        filter: grayscale(100%) contrast(1.06) !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .report-card-page .report-card-sheet > *:not(.document-watermark):not(.report-card-watermark-image-layer) {
        position: relative !important;
        z-index: 1 !important;
    }

    .report-card-page .print-only,
    .report-card-page .report-card-print-header {
        display: block !important;
    }

    .report-card-page .report-card-print-header {
        margin-bottom: 4px !important;
    }

    .report-card-page .report-card-print-header h2 {
        font-size: 16px !important;
        margin-bottom: 2px !important;
    }

    .report-card-page .report-card-print-meta {
        font-size: 9.5px !important;
        gap: 6px !important;
    }

    .report-card-page .document-title.report-card-header {
        grid-template-columns: minmax(0, 1fr) 165px !important;
        gap: 8px !important;
        margin-bottom: 8px !important;
    }

    .report-card-page .report-card-school-copy h1 {
        font-size: 17px !important;
        margin-bottom: 2px !important;
    }

    .report-card-page .report-card-school-copy p,
    .report-card-page .report-card-school-copy .small {
        font-size: 9.5px !important;
        margin-bottom: 0 !important;
        line-height: 1.25 !important;
        color: #344054 !important;
    }

    .report-card-page .report-card-formal-header {
        grid-template-columns: minmax(0, 1fr) 190px !important;
        gap: 6px !important;
        margin-bottom: 4px !important;
    }

    .report-card-page .report-card-formal-title,
    .report-card-page .report-card-position-card,
    .report-card-page .report-card-bio-card,
    .report-card-page .report-card-summary-card,
    .report-card-page .table-card,
    .report-card-page .report-card-cluster {
        box-shadow: none !important;
        border: 1px solid #c6d2df !important;
    }

    .report-card-page .report-card-formal-title,
    .report-card-page .report-card-position-card,
    .report-card-page .report-card-bio-card,
    .report-card-page .report-card-summary-card,
    .report-card-page .report-card-progress-card,
    .report-card-page .report-card-remark-block {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .report-card-page .report-card-cluster,
    .report-card-page .report-card-academic-card,
    .report-card-page .report-card-remarks-card,
    .report-card-page .report-card-formal-lower,
    .report-card-page .report-card-conduct-pair,
    .report-card-page .table-card {
        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    .report-card-page .report-card-sheet.has-watermark .report-card-formal-title,
    .report-card-page .report-card-sheet.has-watermark .report-card-position-card,
    .report-card-page .report-card-sheet.has-watermark .report-card-bio-card,
    .report-card-page .report-card-sheet.has-watermark .report-card-summary-card,
    .report-card-page .report-card-sheet.has-watermark .report-card-profile,
    .report-card-page .report-card-sheet.has-watermark .report-card-progress-card,
    .report-card-page .report-card-sheet.has-watermark .report-card-remark-block,
    .report-card-page .report-card-sheet.has-watermark .table-card,
    .report-card-page .report-card-sheet.has-watermark .report-card-cluster {
        background: rgba(255,255,255,.68) !important;
    }

    .report-card-page .report-card-formal-title {
        background: rgba(255,255,255,.62) !important;
        border-radius: 8px !important;
        padding: 6px 8px !important;
        border-top: 3px solid #0f2f5f !important;
    }

    .report-card-page .report-card-formal-title h1 {
        font-size: 16px !important;
        margin-bottom: 3px !important;
    }

    .report-card-page .report-card-position-card {
        border-radius: 8px !important;
        padding: 6px 8px !important;
        background: rgba(245,248,252,.56) !important;
        color: #102a43 !important;
        border-top: 3px solid #0f2f5f !important;
    }

    .report-card-page .report-card-position-label {
        font-size: 9.5px !important;
        color: #52606d !important;
    }

    .report-card-page .report-card-position-value {
        font-size: 20px !important;
        margin-bottom: 2px !important;
    }

    .report-card-page .report-card-position-meta {
        font-size: 8.8px !important;
        color: #344054 !important;
    }

    .report-card-page .report-card-position-card *,
    .report-card-page .report-card-position-value {
        color: inherit !important;
    }

    .report-card-page .report-card-student-photo,
    .report-card-page .report-card-formal-photo {
        width: 60px !important;
        height: 70px !important;
        border-radius: 10px !important;
    }

    .report-card-page .report-card-profile {
        grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr) !important;
        gap: 7px !important;
        margin-bottom: 6px !important;
        align-items: stretch !important;
    }

    .report-card-page .report-card-admin-profile {
        grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr) !important;
    }

    .report-card-page .report-card-student-media {
        padding: 7px 8px !important;
        gap: 8px !important;
        border-radius: 10px !important;
        align-items: flex-start !important;
    }

    .report-card-page .report-card-admin-student-media {
        padding: 6px 7px !important;
    }

    .report-card-page .report-card-student-name {
        font-size: 13px !important;
        margin-bottom: 1px !important;
        color: #0f172a !important;
    }

    .report-card-page .report-card-student-subtitle {
        font-size: 9.5px !important;
        margin-bottom: 3px !important;
        color: #475467 !important;
    }

    .report-card-page .report-card-student-meta {
        gap: 4px !important;
    }

    .report-card-page .report-card-admin-identity-grid {
        gap: 4px !important;
        margin-top: 5px !important;
    }

    .report-card-page .report-card-bio-card {
        grid-template-columns: minmax(0, 1fr) 112px !important;
        gap: 6px !important;
        margin-bottom: 4px !important;
        padding: 6px !important;
        background: #ffffff !important;
    }

    .report-card-page .report-card-bio-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .report-card-page .report-card-bio-grid-formal {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3px 8px !important;
    }

    .report-card-page .report-card-bio-line {
        padding: 3px 0 !important;
        border-bottom: 1px solid #dbe4ee !important;
    }

    .report-card-page .report-card-bio-line span {
        font-size: 8px !important;
    }

    .report-card-page .report-card-bio-line strong {
        font-size: 10px !important;
    }

    .report-card-page .report-card-bio-item {
        background: #fbfcfe !important;
        border: 1px solid #dbe4ee !important;
        border-radius: 10px !important;
        padding: 5px 6px !important;
    }

    .report-card-page .report-card-bio-item span {
        font-size: 8px !important;
    }

    .report-card-page .report-card-bio-item strong {
        font-size: 10px !important;
    }

    .report-card-page .report-card-formal-stats,
    .report-card-page .report-card-summary-grid {
        gap: 3px !important;
    }

    .report-card-page .report-card-cluster {
        padding: 5px !important;
        border-radius: 8px !important;
        margin-bottom: 4px !important;
        background: rgba(255,255,255,.95) !important;
    }

    .report-card-page .report-card-cluster-head {
        margin-bottom: 3px !important;
        padding-bottom: 2px !important;
        border-bottom: 1px solid #cfd8e3 !important;
    }

    .report-card-page .report-card-cluster-head h3 {
        font-size: 9.5px !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
        margin-bottom: 1px !important;
        color: #102a43 !important;
    }

    .report-card-page .report-card-cluster-head p {
        display: none !important;
    }

    .report-card-page .report-card-formal-lower {
        gap: 5px !important;
    }

    .report-card-page .report-card-formal-lower-top {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-bottom: 4px !important;
    }

    .report-card-page .report-card-progress-row {
        display: flex !important;
        flex-wrap: nowrap !important;
        --bs-gutter-x: 6px !important;
        margin-top: 3px !important;
        margin-bottom: 5px !important;
    }

    .report-card-page .report-card-progress-row > [class*="col-"] {
        flex: 0 0 33.3333% !important;
        width: 33.3333% !important;
        max-width: 33.3333% !important;
    }

    .report-card-page .report-card-progress-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3px !important;
        margin-top: 2px !important;
        margin-bottom: 2px !important;
    }

    .report-card-page .report-card-progress-card {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .report-card-page .report-card-progress-card-wide {
        grid-column: span 2 !important;
    }

    .report-card-page .report-card-progress-card-qr {
        grid-column: span 1 !important;
    }

    .report-card-page .report-card-progress-card .card-body {
        padding: 3px !important;
    }

    .report-card-page .report-card-progress-card .fw-semibold {
        font-size: 9px !important;
        line-height: 1.15 !important;
    }

    .report-card-page .report-card-progress-card .small,
    .report-card-page .report-card-progress-card .card-body p {
        font-size: 7px !important;
        line-height: 1.05 !important;
    }

    .report-card-page .report-card-progress-card-qr .registration-qr-card {
        max-width: 190px !important;
        margin-bottom: 2px !important;
    }

    .report-card-page .report-card-progress-card-qr .registration-qr-image {
        width: 128px !important;
        height: 128px !important;
        padding: .35rem !important;
    }

    .report-card-page .report-card-progress-card-qr .registration-qr-label,
    .report-card-page .report-card-progress-card-qr .registration-qr-meta {
        font-size: 7px !important;
        line-height: 1.05 !important;
    }

    .report-card-page .report-card-progress-card-qr .registration-qr-meta {
        display: none !important;
    }

    .report-card-page .report-card-progress-card-qr .detail-item {
        padding: 1px 0 !important;
    }

    .report-card-page .report-card-progress-card-qr .verify-document-code {
        font-size: 8.5px !important;
        word-break: break-all !important;
    }

    .report-card-page .report-card-conduct-pair {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3px !important;
        margin-top: 0 !important;
        margin-bottom: 3px !important;
    }

    .report-card-page .report-card-remarks-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3px !important;
    }

    .report-card-page .report-card-remark-block {
        border: 1px solid #dbe4ee !important;
        border-radius: 10px !important;
        background: rgba(251,252,254,.48) !important;
        padding: 7px 8px !important;
    }

    .report-card-page .report-card-summary-card,
    .report-card-page .report-card-bio-card,
    .report-card-page .card-body {
        padding: 4px !important;
    }

    .report-card-page .report-card-summary-card {
        background: rgba(255,255,255,.50) !important;
        border-radius: 10px !important;
    }

    .report-card-page .report-card-summary-card .label {
        font-size: 7.5px !important;
        margin-bottom: 1px !important;
        color: #475467 !important;
    }

    .report-card-page .report-card-summary-card .value {
        font-size: 11px !important;
        margin-bottom: 1px !important;
        color: #0f172a !important;
    }

    .report-card-page .report-card-summary-card .meta {
        font-size: 7.5px !important;
        line-height: 1.05 !important;
        color: #475467 !important;
    }

    .report-card-page .report-card-section-intro,
    .report-card-page .report-card-note-panel,
    .report-card-page .report-card-identity-item {
        border: 1px solid #cfd8e3 !important;
        box-shadow: none !important;
    }

    .report-card-page .card-header {
        background: rgba(238,243,248,.42) !important;
        color: #102a43 !important;
        border-bottom: 1px solid #c6d2df !important;
        padding: 3px 5px !important;
        font-size: 8px !important;
        letter-spacing: .08em !important;
        font-weight: 800 !important;
    }

    .report-card-page .table-card {
        border-radius: 8px !important;
        background: rgba(255,255,255,.46) !important;
    }

    .report-card-page .table-card .detail-list {
        gap: 0 !important;
    }

    .report-card-page .report-card-academic-card {
        margin-bottom: 2px !important;
    }

    .report-card-page .score-entry-table-wrap {
        overflow: visible !important;
    }

    .report-card-page .report-card-table {
        margin-bottom: 0 !important;
    }

    .report-card-page .report-card-table thead {
        display: table-header-group !important;
    }

    .report-card-page .report-card-table tr {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .report-card-page .report-card-table th,
    .report-card-page .report-card-table td,
    .report-card-page .detail-label,
    .report-card-page .detail-value {
        font-size: .6rem !important;
    }

    .report-card-page .report-card-table th {
        padding: 2px 3px !important;
        background: rgba(238,243,248,.40) !important;
        color: #334155 !important;
        border-bottom: 1px solid #cbd5e1 !important;
    }

    .report-card-page .report-card-subject-table th {
        padding: 3px 4px !important;
        line-height: 1.15 !important;
        min-height: 0 !important;
    }

    .report-card-page .report-card-subject-table-portal {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .report-card-page .report-card-subject-table-portal th,
    .report-card-page .report-card-subject-table-portal td {
        min-width: 0 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        font-size: .52rem !important;
        line-height: 1.08 !important;
    }

    .report-card-page .report-card-subject-table-portal th {
        padding: 2px 2px !important;
        letter-spacing: .015em !important;
    }

    .report-card-page .report-card-subject-table-portal td {
        padding: 1.5px 2px !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-subject {
        width: 16% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-components {
        width: 24% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-score {
        width: 8% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-grade {
        width: 7% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-comparison {
        width: 18% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-remark {
        width: 10% !important;
    }

    .report-card-page .report-card-subject-table-portal .report-col-teacher {
        width: 17% !important;
    }

    .report-card-page .report-card-subject-table-portal th:nth-child(6),
    .report-card-page .report-card-subject-table-portal td:nth-child(6),
    .report-card-page .report-card-subject-table-portal th:nth-child(7),
    .report-card-page .report-card-subject-table-portal td:nth-child(7) {
        display: none !important;
    }

    .report-card-page .report-card-subject-table-portal .report-card-teacher-cell,
    .report-card-page .report-card-subject-table-portal .report-card-teacher-cell span {
        line-height: 1.15 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }

    .report-card-page .report-card-table td {
        padding: 2px 3px !important;
        color: #111827 !important;
        border-bottom: 1px solid #e2e8f0 !important;
    }

    .result-summary-slip-page {
        max-width: none !important;
    }

    .result-summary-slip-sheet {
        padding: 5mm 5.5mm !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        border: 1px solid #d5dbe4 !important;
        background: #fff !important;
    }

    .result-summary-slip-sheet.has-watermark::before {
        background-size: min(44%, 210px) !important;
        opacity: .09 !important;
    }

    .result-summary-slip-header {
        margin-bottom: .3rem !important;
    }

    .result-summary-slip-header h2 {
        font-size: .92rem !important;
    }

    .result-summary-slip-meta {
        font-size: .56rem !important;
        gap: .2rem .4rem !important;
    }

    .result-summary-slip-student {
        grid-template-columns: minmax(0, 1fr) 76px !important;
        gap: .45rem !important;
        padding: .35rem .45rem !important;
        margin-bottom: .32rem !important;
        border-radius: 12px !important;
    }

    .result-summary-slip-photo {
        width: 76px !important;
        min-width: 76px !important;
        max-width: 76px !important;
        height: 76px !important;
        border-radius: 12px !important;
    }

    .result-summary-slip-student-name {
        font-size: .74rem !important;
    }

    .result-summary-slip-student-subtitle {
        margin-bottom: .22rem !important;
        font-size: .58rem !important;
    }

    .result-summary-slip-student-grid {
        gap: .25rem .4rem !important;
    }

    .result-summary-slip-student-grid span,
    .result-summary-slip-stat span,
    .result-summary-slip-remarks span,
    .result-summary-slip-qr-label {
        font-size: .5rem !important;
    }

    .result-summary-slip-student-grid strong,
    .result-summary-slip-stat strong,
    .result-summary-slip-remarks strong {
        font-size: .56rem !important;
    }

    .result-summary-slip-stats {
        gap: .22rem !important;
        margin-bottom: .3rem !important;
    }

    .result-summary-slip-stat {
        padding: .24rem .3rem !important;
        border-radius: 8px !important;
    }

    .result-summary-slip-table-card .card-header {
        padding: .22rem .3rem !important;
        font-size: .52rem !important;
    }

    .result-summary-slip-table th {
        font-size: .45rem !important;
        padding: 1.5px 2.5px !important;
    }

    .result-summary-slip-table td {
        font-size: .5rem !important;
        padding: 1.5px 2.5px !important;
    }

    .result-summary-slip-footer {
        grid-template-columns: minmax(0, 1fr) 86px !important;
        gap: .35rem !important;
        margin-top: .3rem !important;
    }

    .result-summary-slip-remarks {
        gap: .22rem !important;
    }

    .result-summary-slip-qr-image {
        width: 68px !important;
        height: 68px !important;
    }

    body:has(.result-summary-slip-page) .footer-bar {
        display: none !important;
    }

    .report-card-page .detail-item {
        padding: 0 !important;
    }

    .report-card-page .detail-label {
        font-size: 7px !important;
        color: #475467 !important;
        line-height: 1.05 !important;
    }

    .report-card-page .detail-value {
        font-size: 8.8px !important;
        line-height: 1.08 !important;
        color: #111827 !important;
        font-weight: 700 !important;
    }

    .report-card-page .soft-badge {
        border: 1px solid #cbd5e1 !important;
        background: #f8fafc !important;
        color: #0f2f5f !important;
        font-weight: 800 !important;
        border-radius: 999px !important;
    }

    .report-card-page .report-card-topbar {
        display: none !important;
    }

    .report-card-page .report-card-conduct-admin-row,
    .report-card-page .report-card-admin-remarks-row {
        display: flex !important;
        flex-wrap: nowrap !important;
        --bs-gutter-x: 8px !important;
    }

    .report-card-page .report-card-conduct-admin-row > [class*="col-"],
    .report-card-page .report-card-admin-remarks-row > [class*="col-"] {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
    }

    .report-card-page .report-card-student-details-columns {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .report-card-page .report-card-student-details-columns::before {
        background: #cbd5e1 !important;
        transform: translateX(-50%) !important;
    }

    .report-card-page .report-card-student-details-column {
        gap: 4px !important;
    }

    .report-card-page .report-card-student-details-column .detail-item {
        border-bottom: 1px solid #dbe4ee !important;
        padding: 2px 0 4px !important;
        gap: 8px !important;
        align-items: flex-start !important;
    }

    .report-card-page .report-card-student-details-column .detail-label {
        flex: 0 0 48% !important;
    }

    .report-card-page .report-card-student-details-column .detail-value {
        flex: 1 1 auto !important;
    }

    .report-card-page .report-card-header,
    .report-card-page .report-card-profile,
    .report-card-page .report-card-progress-grid,
    .report-card-page .report-card-progress-row,
    .report-card-page .report-card-academic-card,
    .report-card-page .report-card-formal-lower,
    .report-card-page .report-card-conduct-admin-row,
    .report-card-page .report-card-conduct-pair,
    .report-card-page .report-card-admin-remarks-row,
    .report-card-page .report-card-remarks-card {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

.report-card-page .registration-note {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .behaviour-note-student-grid,
    .behaviour-note-summary-box,
    .behaviour-note-sign-row,
    .behaviour-history-bundle-grid {
        grid-template-columns: 1fr;
    }

    .approval-doc-compare-grid {
        grid-template-columns: 1fr;
    }

    .student-profile-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media print {
    body:has(.behaviour-history-bundle-sheet--print) .page-stack > *:not(.behaviour-history-bundle-sheet--print),
    body:has(.behaviour-history-bundle-sheet--print) .behaviour-history-bundle-sheet--print .no-print,
    body:has(.behaviour-history-bundle-sheet--print) .hero-panel,
    body:has(.behaviour-history-bundle-sheet--print) .card.table-card:not(.behaviour-history-bundle-sheet--print) {
        display: none !important;
    }

    body:has(.behaviour-history-bundle-sheet--print) .behaviour-history-bundle-sheet--print {
        margin-top: 0 !important;
        box-shadow: none !important;
    }

    body:has(.behaviour-history-bundle-sheet--print) .behaviour-history-bundle-card,
    body:has(.behaviour-history-bundle-sheet--print) .behaviour-note-summary-box {
        break-inside: avoid;
        page-break-inside: avoid;
        background: rgba(255, 255, 255, .92) !important;
    }

    body:has(.behaviour-history-bundle-sheet--print) .behaviour-history-bundle-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .behaviour-note-summary-box {
        background: rgba(255, 255, 255, .82) !important;
    }

    .behaviour-note-body-copy {
        font-size: .95rem;
    }
}

.desk-mobile-strip {
    display: none;
    gap: .7rem;
    overflow-x: auto;
    padding: .2rem 0 .35rem;
    scrollbar-width: thin;
}

.desk-mobile-chip {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    white-space: nowrap;
    padding: .85rem 1rem;
    border-radius: 999px;
    background: #fff;
    color: var(--navy);
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    border: 1px solid rgba(11, 31, 77, .08);
}

.desk-mobile-chip i {
    color: var(--gold);
}

.desk-mobile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.desk-mobile-actions .btn {
    min-height: 46px;
}

.desk-mobile-record-card {
    border: 1px solid rgba(11, 31, 77, .08);
}

.desk-mobile-card-list {
    display: none;
    gap: 1rem;
}

.desk-mobile-record-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.desk-mobile-record-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem .85rem;
    margin-bottom: 1rem;
}

.desk-mobile-label {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--muted);
    margin-bottom: .25rem;
}

.desk-mobile-value {
    font-weight: 700;
    color: var(--text);
    word-break: break-word;
}

@media (max-width: 768px) {
    .desk-mobile-strip {
        display: flex;
        position: sticky;
        top: .5rem;
        z-index: 20;
        margin-top: -.35rem;
    }

    .desk-mobile-actions {
        flex-direction: column;
    }

    .desk-mobile-actions .btn,
    .desk-mobile-actions .soft-badge,
    .desk-mobile-actions a.btn {
        width: 100%;
        justify-content: center;
    }

    .desk-mobile-form .col-auto,
    .desk-mobile-form .col-lg-2,
    .desk-mobile-form .col-lg-3,
    .desk-mobile-form .col-lg-5,
    .desk-mobile-form .col-lg-7 {
        width: 100%;
    }

    .desk-mobile-card-list {
        display: grid;
    }

    #payments_table .table-responsive {
        display: none;
    }

    .qr-checkin-layout {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .qr-checkin-left,
    .qr-checkin-right {
        width: 100%;
    }

    .qr-checkin-left {
        order: 1;
    }

    .qr-checkin-right {
        order: 2;
        display: grid;
        gap: 1rem;
    }

    .qr-checkin-card,
    .qr-scan-result-card,
    .qr-print-card,
    .attendance_scan .card,
    .clinic-summary-grid > .card,
    .housing-toolbar,
    .housing-alert-card,
    .housing-house-card {
        border-radius: 20px;
    }

    .qr-checkin-input {
        min-height: 128px;
        font-size: 1rem;
    }

    .qr-checkin-flow-strip {
        grid-template-columns: 1fr;
    }

    .qr-activity-filter {
        display: grid;
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    .qr-activity-filter-row-primary,
    .qr-activity-filter-row-secondary {
        grid-template-columns: 1fr 1fr;
    }

    .qr-activity-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .75rem;
    }

    .qr-activity-actions .btn {
        width: 100%;
    }

    .qr-camera-card .d-flex,
    .surface-card .d-flex.gap-2,
    .card-soft .d-flex.gap-2,
    .housing-toolbar-actions {
        gap: .75rem !important;
    }

    .card-body.p-4 {
        padding: 1.15rem !important;
    }

    .qr-camera-preview {
        min-height: 260px;
    }

    .qr-scan-feedback-board {
        grid-template-columns: 1fr;
    }

    .qr-scan-feedback-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .clinic-form-grid,
    .housing-alert-grid,
    .housing-house-grid {
        grid-template-columns: 1fr !important;
    }

    .clinic-student-strip,
    .housing-toolbar {
        display: grid;
        gap: 1rem;
    }

    .clinic-list-card,
    .attendance-summary-item {
        padding: 1rem;
    }

    .housing-toolbar-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .housing-toolbar-actions .btn {
        width: 100%;
    }

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

@media (max-width: 576px) {
    .desk-mobile-record-grid,
    .hero-mini-grid,
    .housing-stats-grid,
    .qr-scan-feedback-stats,
    .student-portal-highlights {
        grid-template-columns: 1fr;
    }

    .student-portal-highlights {
        display: grid;
        gap: .5rem;
    }

    .hero-panel h1 {
        font-size: 1.6rem;
    }

    .qr-activity-header,
    .desk-mobile-record-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .qr-quick-filter-chips {
        gap: .45rem;
    }

    .qr-activity-filter-row-primary,
    .qr-activity-filter-row-secondary {
        grid-template-columns: 1fr;
    }

    .qr-activity-actions {
        grid-template-columns: 1fr;
    }
}

.student-full-profile-hero-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 32px rgba(15, 23, 42, .12);
}

.student-full-profile-hero-name {
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--navy);
}

.student-profile-anchor-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: -.35rem;
}

.student-profile-anchor-nav a {
    padding: .7rem 1rem;
    border-radius: 999px;
    background: #fff;
    color: var(--navy);
    font-weight: 700;
    border: 1px solid rgba(11, 31, 77, .08);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
}

.student-profile-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.student-profile-result-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.student-profile-result-box {
    padding: 1rem;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    border: 1px solid rgba(11, 31, 77, .08);
}

.student-profile-result-box .label {
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .35rem;
}

.student-profile-result-box .value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1.1;
}

.student-profile-result-box .meta {
    font-size: .84rem;
    color: var(--muted);
    margin-top: .35rem;
}

.student-profile-quick-links {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.student-profile-quick-links .btn {
    min-width: 170px;
}

@media (max-width: 768px) {
    .student-profile-anchor-nav,
    .student-profile-quick-links {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .student-profile-anchor-nav a,
    .student-profile-quick-links .btn {
        width: 100%;
        text-align: center;
    }

    .student-profile-result-grid,
    .student-profile-result-grid--compact {
        grid-template-columns: 1fr 1fr;
    }

    .student-full-profile-hero-card {
        align-items: flex-start;
    }
}

@media (max-width: 576px) {
    .student-profile-anchor-nav,
    .student-profile-quick-links,
    .student-profile-result-grid,
    .student-profile-result-grid--compact {
        grid-template-columns: 1fr;
    }

    .student-full-profile-hero-card {
        flex-direction: column;
    }
}

.inventory-hero-card {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, .9fr);
    gap: 1.25rem;
    align-items: stretch;
}

.inventory-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.inventory-summary-grid .metric-card {
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(11, 31, 77, .08);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(7, 23, 51, .06);
    padding: 1rem 1.05rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 106px;
}

.inventory-summary-grid .metric-label {
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
    line-height: 1.25;
    margin-bottom: .55rem;
}

.inventory-summary-grid .metric-value {
    font-size: 1.65rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.inventory-two-column {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.boarding-ops-page {
    display: grid;
    gap: 1.25rem;
}

.boarding-showcase-banner {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .95fr);
    gap: 1.35rem;
    padding: 1.65rem;
    border-radius: 30px;
    background:
        radial-gradient(circle at top left, rgba(212,160,23,.20), transparent 22%),
        radial-gradient(circle at bottom right, rgba(255,255,255,.12), transparent 26%),
        linear-gradient(135deg, #081932, #0f376f 58%, #154f98);
    color: #fff;
    box-shadow: 0 26px 54px rgba(8,25,50,.24);
    overflow: hidden;
}

.boarding-showcase-copy h1 {
    font-size: clamp(1.9rem, 3vw, 2.9rem);
    line-height: 1.02;
    font-weight: 900;
    margin: .35rem 0 .75rem;
    max-width: 11ch;
}

.boarding-showcase-copy p {
    max-width: 56ch;
    color: rgba(255,255,255,.82);
    line-height: 1.7;
    margin: 0;
}

.boarding-showcase-banner .section-eyebrow {
    color: rgba(255,255,255,.74);
}

.boarding-showcase-art {
    position: relative;
    min-height: 220px;
}

.boarding-showcase-card {
    position: absolute;
    min-width: 180px;
    padding: 1rem 1rem 1.05rem;
    border-radius: 22px;
    box-shadow: 0 18px 32px rgba(7,23,51,.22);
    backdrop-filter: blur(8px);
}

.boarding-showcase-card span {
    display: block;
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    margin-bottom: .45rem;
    opacity: .8;
}

.boarding-showcase-card strong {
    display: block;
    font-size: 1.1rem;
    line-height: 1.25;
    font-weight: 900;
}

.boarding-showcase-card--navy {
    top: .15rem;
    right: 1.75rem;
    background: rgba(7,19,40,.86);
    color: #fff;
}

.boarding-showcase-card--gold {
    top: 5.65rem;
    left: 1.35rem;
    background: linear-gradient(135deg, #f3cd5e, #d4a017);
    color: #372500;
}

.boarding-showcase-card--white {
    right: .35rem;
    bottom: .35rem;
    background: rgba(255,255,255,.96);
    color: var(--navy);
}

.boarding-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .9fr);
    gap: 1.25rem;
    padding: 1.5rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(212,160,23,.20), transparent 28%),
        radial-gradient(circle at left center, rgba(11,31,77,.12), transparent 34%),
        linear-gradient(135deg, #ffffff, #f7fbff);
    border: 1px solid #e5ecf7;
    box-shadow: 0 20px 46px rgba(15,23,42,.06);
}

.boarding-hero-copy h2 {
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
    font-weight: 900;
    color: var(--navy);
}

.boarding-hero-text {
    max-width: 62ch;
    color: #5d6b80;
    line-height: 1.65;
}

.boarding-hero-chips {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
}

.boarding-hero-side {
    display: flex;
}

.boarding-hero-panel {
    width: 100%;
    border-radius: 24px;
    padding: 1.25rem;
    background: linear-gradient(160deg, rgba(11,31,77,.98), rgba(14,57,115,.94));
    color: #fff;
    box-shadow: 0 18px 36px rgba(11,31,77,.18);
}

.boarding-hero-panel-label {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .75rem;
    font-weight: 800;
    color: rgba(255,255,255,.72);
    margin-bottom: .35rem;
}

.boarding-hero-panel-value {
    font-size: 2rem;
    line-height: 1;
    font-weight: 900;
    margin-bottom: .55rem;
}

.boarding-hero-panel-meta {
    color: rgba(255,255,255,.78);
    line-height: 1.55;
    font-size: .95rem;
}

.boarding-hero-links {
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.boarding-filter-card .card-body {
    background: linear-gradient(180deg, rgba(248,251,255,.96), rgba(255,255,255,.98));
}

.boarding-quick-links {
    display: flex;
    gap: .8rem;
    flex-wrap: wrap;
}

.boarding-quick-link {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .85rem 1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e7edf7;
    box-shadow: 0 12px 24px rgba(15,23,42,.04);
    color: #20324e;
    text-decoration: none;
    font-weight: 700;
}

.boarding-quick-link i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(11,31,77,.08);
    color: var(--navy);
}

.boarding-exeat-page .boarding-quick-links {
    gap: .7rem;
}

.boarding-exeat-page .boarding-quick-link {
    padding: .78rem .95rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid rgba(11,31,77,.08);
    box-shadow: 0 10px 22px rgba(15,23,42,.04);
    color: #20324e;
    font-weight: 800;
}

.boarding-exeat-page .boarding-quick-link:hover {
    background: linear-gradient(180deg, #ffffff, #f3f8ff);
    border-color: rgba(11,31,77,.14);
    color: #10284f;
}

.boarding-dashboard-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.boarding-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .25rem;
}

.boarding-section-head h4 {
    font-weight: 900;
    color: var(--navy);
}

.boarding-section-head p {
    max-width: 62ch;
}

.boarding-workspace-card,
.boarding-insight-card,
.boarding-history-card,
.boarding-roll-card {
    border-radius: 24px;
}

.boarding-workspace-card .card-header,
.boarding-insight-card .card-header,
.boarding-history-card .card-header,
.boarding-roll-card .card-header {
    background: linear-gradient(180deg, rgba(250,252,255,.95), rgba(244,248,253,.95));
}

.boarding-roll-card .card-body {
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.98));
}

.boarding-roll-card table tbody tr:nth-child(odd),
.boarding-insight-card table tbody tr:nth-child(odd),
.boarding-history-card table tbody tr:nth-child(odd) {
    background: rgba(248,251,255,.55);
}

.boarding-workspace-grid .form-control,
.boarding-workspace-grid .form-select,
.boarding-roll-card .form-control,
.boarding-roll-card .form-select {
    border-radius: 14px;
}

.boarding-workspace-grid textarea.form-control {
    min-height: 110px;
}

.boarding-insight-grid .soft-badge,
.boarding-history-grid .soft-badge {
    font-weight: 800;
}

.boarding-history-grid .card-body,
.boarding-insight-grid .card-body {
    padding-top: .75rem;
}

.boarding-exeat-page {
    --exeat-ink: #10284f;
    --exeat-soft: #f7fbff;
}

.boarding-exeat-page.page-stack {
    gap: 1.45rem;
}

.boarding-exeat-banner {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .9fr);
    gap: 1rem;
    padding: 1.35rem 1.45rem;
    border-radius: 26px;
    background:
        radial-gradient(circle at top right, rgba(243,205,94,.18), transparent 24%),
        linear-gradient(135deg, #0b1f4d, #123c78 62%, #184f94);
    color: #fff;
    box-shadow: 0 22px 44px rgba(11,31,77,.18);
}

.boarding-exeat-banner-copy h1 {
    margin: .3rem 0 .55rem;
    font-size: clamp(1.75rem, 2.7vw, 2.45rem);
    line-height: 1.05;
    font-weight: 900;
}

.boarding-exeat-banner-copy p {
    margin: 0;
    max-width: 58ch;
    color: rgba(255,255,255,.82);
    line-height: 1.6;
}

.boarding-exeat-banner .section-eyebrow {
    color: rgba(255,255,255,.72);
}

.boarding-exeat-banner-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: stretch;
}

.boarding-exeat-banner-stat {
    padding: 1rem .95rem;
    border-radius: 18px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(8px);
}

.boarding-exeat-banner-stat span {
    display: block;
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 800;
    color: rgba(255,255,255,.7);
    margin-bottom: .45rem;
}

.boarding-exeat-banner-stat strong {
    display: block;
    font-size: 1.55rem;
    line-height: 1;
    font-weight: 900;
}

.boarding-exeat-page .boarding-showcase-banner {
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .95fr);
    padding: 1.45rem 1.5rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(212,160,23,.10), transparent 25%),
        radial-gradient(circle at left center, rgba(11,31,77,.08), transparent 34%),
        linear-gradient(135deg, #ffffff, #f7fbff);
    color: var(--exeat-ink);
    border: 1px solid #e5ecf7;
    box-shadow: 0 20px 46px rgba(15,23,42,.06);
}

.boarding-exeat-page .boarding-showcase-banner .section-eyebrow {
    color: #6b7a90;
}

.boarding-exeat-page .boarding-showcase-copy h1 {
    color: var(--exeat-ink);
    max-width: 13ch;
}

.boarding-exeat-page .boarding-showcase-copy p {
    color: #5d6b80;
}

.boarding-exeat-page .boarding-showcase-art {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
    min-height: auto;
    align-content: start;
}

.boarding-exeat-page .boarding-showcase-card {
    position: relative;
    inset: auto;
    min-width: 0;
    width: 100%;
    border-radius: 18px;
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
}

.boarding-exeat-page .boarding-showcase-card--navy {
    background: linear-gradient(145deg, #0b1f4d, #123c78);
}

.boarding-exeat-page .boarding-showcase-card--gold {
    background: linear-gradient(145deg, #fff8e3, #f6deb2);
    color: #5f4300;
}

.boarding-exeat-page .boarding-showcase-card--white {
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid rgba(11,31,77,.08);
}

.boarding-exeat-page .boarding-hero {
    padding: 1.35rem 1.45rem;
}

.boarding-exeat-page .boarding-hero-panel {
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    color: var(--exeat-ink);
    border: 1px solid rgba(11,31,77,.08);
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
}

.boarding-exeat-page .boarding-hero-panel-label {
    color: #6b7a90;
}

.boarding-exeat-page .boarding-hero-panel-meta {
    color: #5d6b80;
}

.boarding-exeat-page .boarding-hero-links .btn-outline-light {
    color: var(--exeat-ink);
    border-color: rgba(11,31,77,.12);
}

.boarding-exeat-page .boarding-hero-links .btn-outline-light:hover {
    background: rgba(11,31,77,.06);
}

.boarding-exeat-policy-band {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.boarding-exeat-policy-card {
    padding: 1.15rem 1.2rem;
    border-radius: 22px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid rgba(11, 31, 77, .08);
    box-shadow: 0 14px 28px rgba(15,23,42,.05);
    display: grid;
    gap: .45rem;
}

.boarding-exeat-policy-card--primary {
    background:
        radial-gradient(circle at top right, rgba(243,205,94,.22), transparent 28%),
        linear-gradient(145deg, #0b1f4d, #123c78);
    color: #fff;
    border-color: rgba(11,31,77,.12);
}

.boarding-exeat-policy-card--primary .boarding-exeat-policy-label,
.boarding-exeat-policy-card--primary .boarding-exeat-policy-text {
    color: rgba(255,255,255,.76);
}

.boarding-exeat-policy-label {
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 800;
    color: #6b7a90;
}

.boarding-exeat-policy-value {
    font-size: 1.18rem;
    line-height: 1.25;
    font-weight: 900;
    color: var(--exeat-ink);
}

.boarding-exeat-policy-card--primary .boarding-exeat-policy-value {
    color: #fff;
}

.boarding-exeat-policy-text {
    color: #5d6b80;
    line-height: 1.6;
    font-size: .92rem;
}

.boarding-exeat-form-card .card-body,
.boarding-exeat-watch-card .card-body,
.boarding-exeat-live-card .card-body,
.boarding-exeat-history-card .card-body {
    background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(248,251,255,.98));
}

.boarding-exeat-form-intro {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: .15rem;
}

.boarding-exeat-form-cluster {
    height: 100%;
    padding: 1rem 1rem 1.05rem;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff, #f8fbff);
    border: 1px solid rgba(11,31,77,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 12px 24px rgba(15,23,42,.04);
    display: grid;
    gap: .95rem;
}

.boarding-exeat-form-cluster--notes {
    padding-bottom: 1rem;
}

.boarding-exeat-form-chip {
    padding: .9rem .95rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff, #f7fbff);
    border: 1px solid rgba(11,31,77,.08);
    box-shadow: 0 10px 22px rgba(15,23,42,.04);
}

.boarding-exeat-form-chip .label {
    display: block;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    color: #6b7a90;
    margin-bottom: .35rem;
}

.boarding-exeat-form-chip strong {
    display: block;
    color: #10284f;
    font-size: .96rem;
    line-height: 1.35;
}

.boarding-exeat-form-section-label {
    display: inline-flex;
    align-items: center;
    padding: .42rem .72rem;
    border-radius: 999px;
    background: rgba(11,31,77,.06);
    color: #10284f;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
}

.boarding-exeat-form-layout textarea.form-control {
    min-height: 112px;
}

.boarding-exeat-form-card .card-header,
.boarding-exeat-watch-card .card-header,
.boarding-exeat-live-card .card-header,
.boarding-exeat-history-card .card-header {
    border-bottom: 1px solid rgba(11,31,77,.06);
}

.boarding-exeat-watch-card .inventory-alert-item {
    align-items: flex-start;
    border-radius: 18px;
    padding: 1rem 1.05rem;
}

.boarding-exeat-page .boarding-filter-card .card-header,
.boarding-exeat-page .boarding-workspace-card .card-header,
.boarding-exeat-page .boarding-insight-card .card-header,
.boarding-exeat-page .boarding-history-card .card-header {
    background: linear-gradient(180deg, rgba(250,252,255,.95), rgba(244,248,253,.95));
    color: var(--exeat-ink);
}

.boarding-exeat-page .boarding-insight-card .card-header,
.boarding-exeat-page .boarding-history-card .card-header {
    border-bottom: 1px solid rgba(11,31,77,.06);
}

.boarding-exeat-live-card table thead th,
.boarding-exeat-history-card table thead th {
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7a90;
    border-bottom-width: 1px;
}

.boarding-exeat-live-card table tbody td,
.boarding-exeat-history-card table tbody td {
    padding-top: .95rem;
    padding-bottom: .95rem;
    vertical-align: top;
}

.boarding-exeat-row-open {
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,251,255,.86));
}

.boarding-exeat-row-overdue {
    background: linear-gradient(180deg, rgba(255,245,245,.96), rgba(255,250,250,.9));
}

.boarding-exeat-live-card form.d-grid {
    min-width: 190px;
}

.boarding-exeat-slip-page {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
    isolation: isolate;
}

.boarding-exeat-slip-page > *:not(.document-watermark):not(.registration-watermark-image-layer) {
    position: relative;
    z-index: 1;
}

.boarding-exeat-slip-page .document-watermark {
    opacity: .16;
    background-repeat: no-repeat;
    background-position: center 200px;
    background-size: 360px;
    z-index: 3;
}

.boarding-exeat-slip-page .registration-watermark-image-layer {
    display: block;
    opacity: .11;
    z-index: 4;
    pointer-events: none;
}

.boarding-exeat-slip-page .document-watermark-image {
    max-width: 360px;
}

.boarding-exeat-slip-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.4rem;
}

.boarding-exeat-slip-school-copy h2 {
    font-size: 1.7rem;
}

.boarding-exeat-slip-school-copy p {
    color: var(--muted);
    max-width: 560px;
}

.boarding-exeat-slip-code-card {
    min-width: 220px;
    padding: 1rem 1.1rem;
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.92));
    color: #fff;
    text-align: right;
    display: grid;
    gap: .55rem;
    justify-items: end;
}

.boarding-exeat-slip-code-label {
    font-size: .74rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
}

.boarding-exeat-slip-code-value {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.boarding-exeat-slip-hero {
    position: relative;
    z-index: 1;
    margin-top: 1.25rem;
    margin-bottom: 1.4rem;
    padding: 1.2rem 1.25rem;
    border-radius: 24px;
    background:
        radial-gradient(circle at top left, rgba(245, 158, 11, 0.22), transparent 44%),
        linear-gradient(135deg, rgba(247, 250, 252, 0.98), rgba(241, 245, 249, 0.94));
    border: 1px solid rgba(148, 163, 184, 0.16);
}

.boarding-exeat-slip-profile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.35rem;
}

.boarding-exeat-slip-profile-main {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.boarding-exeat-slip-profile-copy {
    min-width: 0;
}

.boarding-exeat-slip-name {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
}

.boarding-exeat-slip-subtitle {
    color: #475569;
    margin-top: .2rem;
    margin-bottom: .7rem;
}

.boarding-exeat-slip-side {
    display: grid;
    grid-template-columns: repeat(3, minmax(115px, 1fr));
    gap: .7rem;
}

.boarding-exeat-slip-qr-card {
    grid-column: 1 / -1;
    padding: .8rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(148, 163, 184, 0.18);
    display: grid;
    justify-items: center;
    gap: .45rem;
    text-align: center;
}

.boarding-exeat-slip-qr-image {
    width: 108px;
    height: 108px;
    object-fit: contain;
}

.boarding-exeat-slip-qr-fallback {
    width: 108px;
    height: 108px;
}

.boarding-exeat-slip-side .registration-mini-stat {
    min-width: 0;
}

.boarding-exeat-slip-sections {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1rem;
}

.boarding-exeat-slip-section {
    border-radius: 24px;
}

.boarding-exeat-slip-note {
    position: relative;
    z-index: 1;
    border-radius: 24px;
}

.boarding-exeat-slip-signatures {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.2rem;
}

@media (max-width: 991.98px) {
    .boarding-exeat-slip-header,
    .boarding-exeat-slip-profile {
        flex-direction: column;
        align-items: stretch;
    }

    .boarding-exeat-slip-code-card {
        min-width: 0;
        justify-items: start;
        text-align: left;
    }

    .boarding-exeat-slip-side,
    .boarding-exeat-slip-signatures {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 7mm;
    }

    body:has(.boarding-exeat-slip-page) .footer-bar {
        position: fixed;
        left: 7mm;
        right: 7mm;
        bottom: 2mm;
        padding: 3px 8px;
        font-size: 9px;
        line-height: 1.15;
        color: #64748b;
        background: transparent;
        border-top: 1px solid #d7dee8;
        z-index: 20;
    }

    .boarding-exeat-slip-page {
        border: 0;
        box-shadow: none;
        border-radius: 0;
        margin: 0;
        max-width: none;
        padding: 11px 13px 24px;
        font-size: 11.2px;
    }

    .boarding-exeat-slip-page .section-eyebrow {
        font-size: .56rem;
        margin-bottom: .12rem;
    }

    .boarding-exeat-slip-header {
        gap: .65rem;
        margin-bottom: .45rem;
    }

    .boarding-exeat-slip-school-copy h2 {
        font-size: 1rem;
        margin-bottom: .1rem !important;
    }

    .boarding-exeat-slip-school-copy h4 {
        font-size: .78rem;
        margin-bottom: .08rem !important;
    }

    .boarding-exeat-slip-school-copy p {
        font-size: .62rem;
        line-height: 1.22;
        margin-bottom: 0 !important;
        max-width: none;
    }

    .boarding-exeat-slip-code-card {
        min-width: 136px;
        padding: .46rem .56rem;
        border-radius: 12px;
        gap: .18rem;
    }

    .boarding-exeat-slip-code-label {
        font-size: .54rem;
    }

    .boarding-exeat-slip-code-value {
        font-size: .72rem;
    }

    .boarding-exeat-slip-hero {
        margin-top: .42rem;
        margin-bottom: .5rem;
        padding: .56rem .62rem;
        border-radius: 14px;
    }

    .boarding-exeat-slip-profile {
        gap: .55rem;
    }

    .boarding-exeat-slip-profile-main {
        gap: .48rem;
    }

    .boarding-exeat-slip-page .registration-photo,
    .boarding-exeat-slip-page .registration-photo-placeholder {
        width: 48px;
        height: 48px;
        min-width: 48px;
    }

    .boarding-exeat-slip-name {
        font-size: .86rem;
    }

    .boarding-exeat-slip-subtitle {
        margin-top: 0;
        margin-bottom: .18rem;
        font-size: .62rem;
    }

    .boarding-exeat-slip-page .registration-chip-row {
        gap: .22rem;
    }

    .boarding-exeat-slip-page .registration-chip {
        padding: .12rem .28rem;
        font-size: .54rem;
        border-radius: 999px;
    }

    .boarding-exeat-slip-side {
        grid-template-columns: 108px repeat(3, minmax(70px, 1fr));
        gap: .28rem;
        align-items: stretch;
    }

    .boarding-exeat-slip-qr-card {
        grid-column: auto;
        padding: .28rem;
        border-radius: 10px;
        gap: .18rem;
    }

    .boarding-exeat-slip-qr-image,
    .boarding-exeat-slip-qr-fallback {
        width: 56px;
        height: 56px;
    }

    .boarding-exeat-slip-page .registration-qr-label,
    .boarding-exeat-slip-page .registration-qr-meta {
        font-size: .5rem;
        line-height: 1.15;
    }

    .boarding-exeat-slip-page .registration-mini-stat {
        padding: .32rem .38rem;
        border-radius: 10px;
    }

    .boarding-exeat-slip-page .registration-mini-stat span {
        font-size: .48rem;
    }

    .boarding-exeat-slip-page .registration-mini-stat strong {
        font-size: .6rem;
    }

    .boarding-exeat-slip-sections {
        gap: .4rem;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .boarding-exeat-slip-section {
        border-radius: 12px;
    }

    .boarding-exeat-slip-page .registration-section {
        padding: .46rem .5rem;
    }

    .boarding-exeat-slip-page .registration-section-title {
        font-size: .58rem;
        margin-bottom: .22rem;
    }

    .boarding-exeat-slip-page .detail-list {
        gap: 0;
    }

    .boarding-exeat-slip-page .detail-item {
        padding: .18rem 0;
        gap: .2rem;
    }

    .boarding-exeat-slip-page .detail-label {
        font-size: .5rem;
        width: 40%;
        min-width: 40%;
    }

    .boarding-exeat-slip-page .detail-value {
        font-size: .56rem;
        text-align: right;
    }

    .boarding-exeat-slip-note {
        display: inline-block;
        vertical-align: top;
        width: calc(50% - .3rem);
        margin-top: .38rem;
        padding: .4rem .48rem;
        border-radius: 12px;
    }

    .boarding-exeat-slip-note + .boarding-exeat-slip-note {
        margin-left: .36rem;
    }

    .boarding-exeat-slip-page .registration-note-title {
        font-size: .58rem;
        margin-bottom: .14rem;
    }

    .boarding-exeat-slip-page .registration-note p {
        font-size: .54rem;
        line-height: 1.18;
    }

    .boarding-exeat-slip-page .registration-verification-strip {
        margin-top: .32rem;
        padding: .32rem .42rem;
        border-radius: 12px;
        gap: .32rem;
    }

    .boarding-exeat-slip-page .registration-link-text {
        font-size: .46rem;
        line-height: 1.15;
        word-break: break-all;
    }

    .boarding-exeat-slip-signatures {
        gap: .34rem;
        margin-top: .3rem;
    }

    .boarding-exeat-slip-page .registration-signature-role {
        font-size: .5rem;
        margin-bottom: .48rem;
    }

    .boarding-exeat-slip-page .registration-signature-note {
        font-size: .48rem;
        line-height: 1.1;
    }

    .boarding-exeat-slip-page .registration-signature-line {
        margin-top: .42rem;
    }

    .boarding-exeat-slip-hero,
    .boarding-exeat-slip-section,
    .boarding-exeat-slip-note,
    .boarding-exeat-slip-code-card,
    .boarding-exeat-slip-page .registration-verification-strip,
    .boarding-exeat-slip-signatures {
        break-inside: avoid;
    }
}

.boarding-exeat-page .boarding-section-head {
    margin-top: .25rem;
    margin-bottom: -.2rem;
}

.inventory-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1rem;
}

.inventory-pulse-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.inventory-pulse-card {
    border-radius: 22px;
}

.inventory-pulse-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.inventory-alert-list,
.inventory-category-list,
.inventory-movement-mini-list {
    display: grid;
    gap: .8rem;
}

.inventory-alert-item,
.inventory-category-item,
.inventory-movement-mini-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .9rem 1rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    border: 1px solid rgba(11, 31, 77, .08);
}

.inventory-category-qty {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--navy);
}

.inventory-stock-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.inventory-stock-card {
    padding: 1rem;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f7faff);
    border: 1px solid rgba(11, 31, 77, .08);
    display: grid;
    gap: .8rem;
}

.inventory-stock-card-top,
.inventory-stock-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .8rem;
}

.inventory-stock-card-title {
    font-weight: 800;
    color: var(--navy);
    line-height: 1.25;
}

.inventory-stock-card-metric {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.inventory-stock-card-meta {
    display: grid;
    gap: .35rem;
    font-size: .86rem;
    color: var(--muted);
}

@media (max-width: 992px) {
    .boarding-exeat-banner,
    .boarding-showcase-banner,
    .boarding-hero,
    .boarding-dashboard-strip,
    .boarding-exeat-policy-band,
    .boarding-exeat-form-intro,
    .inventory-hero-card,
    .inventory-two-column,
    .inventory-pulse-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .boarding-exeat-banner {
        padding: 1.1rem 1.15rem;
        border-radius: 22px;
    }

    .boarding-exeat-banner-strip {
        grid-template-columns: 1fr;
    }

    .boarding-showcase-banner {
        padding: 1.15rem;
        border-radius: 24px;
    }

    .boarding-showcase-copy h1 {
        max-width: none;
    }

    .boarding-showcase-art {
        min-height: 250px;
    }

    .boarding-showcase-card--navy {
        right: .35rem;
    }

    .boarding-showcase-card--gold {
        left: .2rem;
    }

    .boarding-hero {
        padding: 1.1rem;
        border-radius: 22px;
    }

    .boarding-quick-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .boarding-quick-link {
        width: 100%;
        justify-content: flex-start;
    }

    .boarding-section-head {
        align-items: start;
    }

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

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

@media (max-width: 576px) {
    .boarding-showcase-art {
        min-height: 280px;
    }

    .boarding-showcase-card {
        min-width: 0;
        width: calc(100% - 1rem);
    }

    .boarding-showcase-card--navy,
    .boarding-showcase-card--gold,
    .boarding-showcase-card--white {
        left: .5rem;
        right: .5rem;
    }

    .boarding-showcase-card--navy {
        top: .2rem;
    }

    .boarding-showcase-card--gold {
        top: 5.95rem;
    }

    .boarding-showcase-card--white {
        bottom: .25rem;
    }

    .boarding-quick-links {
        grid-template-columns: 1fr;
    }

    .inventory-summary-grid {
        grid-template-columns: 1fr;
    }

    .inventory-stock-grid {
        grid-template-columns: 1fr;
    }

    .inventory-pulse-header,
    .inventory-alert-item,
    .inventory-category-item,
    .inventory-movement-mini-item,
    .inventory-stock-card-top,
    .inventory-stock-card-footer {
        flex-direction: column;
        align-items: flex-start;
    }
}

.transcript-print-sheet {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(247,249,252,.965));
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 24px;
    padding: 2rem;
    color: #0f172a;
}

.transcript-print-header {
    position: relative;
    z-index: 1;
    margin-bottom: 1.5rem;
}

.transcript-print-title {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1.25rem;
}

.transcript-print-school {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.transcript-print-school-logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15, 23, 42, .08);
    padding: .55rem;
}

.transcript-print-kicker {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #8a6b10;
    font-weight: 800;
    margin-bottom: .35rem;
}

.transcript-print-school h1 {
    margin: 0;
    font-size: 1.55rem;
    line-height: 1.08;
    font-weight: 800;
}

.transcript-print-school p {
    margin: .35rem 0 0;
    color: #475569;
    font-size: .96rem;
}

.transcript-print-verify {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}

.transcript-print-sheet .registration-qr-card {
    width: 188px;
    flex: 0 0 188px;
    padding: .78rem .72rem;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(11,31,77,.96), rgba(11,31,77,.88));
    color: #fff;
    box-shadow: 0 14px 30px rgba(11,31,77,.14);
}

.transcript-print-sheet .registration-qr-image {
    width: 122px;
    height: 122px;
    padding: .4rem;
    border-radius: 14px;
    background: #fff;
}

.transcript-print-sheet .registration-qr-label {
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: .32rem;
}

.transcript-print-sheet .registration-qr-meta {
    margin-top: .5rem;
    font-size: .66rem;
    line-height: 1.25;
    color: rgba(255,255,255,.82);
}

.transcript-print-student-band {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
    gap: 1rem;
    align-items: stretch;
}

.transcript-print-student-profile,
.transcript-print-summary-grid,
.transcript-print-term,
.transcript-print-footer {
    position: relative;
    z-index: 1;
}

.transcript-print-student-profile {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(148, 163, 184, .22);
    box-shadow: 0 18px 38px rgba(15, 23, 42, .06);
}

.transcript-print-student-photo,
.transcript-print-student-photo-placeholder {
    width: 92px;
    height: 112px;
    border-radius: 18px;
    flex: 0 0 92px;
    object-fit: cover;
    border: 1px solid rgba(15, 23, 42, .12);
    background: rgba(255,255,255,.9);
}

.transcript-print-student-photo-placeholder {
    display: grid;
    place-items: center;
    color: #0b1f4d;
    font-size: 2rem;
    background: linear-gradient(180deg, rgba(11,31,77,.08), rgba(212,160,23,.1));
}

.transcript-print-student-copy h2 {
    margin: 0 0 .45rem;
    font-size: 1.25rem;
    line-height: 1.1;
    font-weight: 800;
}

.transcript-print-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.transcript-print-chip {
    display: inline-flex;
    align-items: center;
    padding: .4rem .65rem;
    border-radius: 999px;
    background: rgba(11,31,77,.08);
    border: 1px solid rgba(11,31,77,.12);
    color: #0f172a;
    font-size: .74rem;
    font-weight: 700;
}

.transcript-print-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.transcript-print-group-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .75rem;
}

.transcript-print-group-card {
    padding: .82rem .9rem;
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(148, 163, 184, .24);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .05);
}

.transcript-print-group-title {
    margin-bottom: .5rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    color: #7a5d0b;
}

.transcript-print-detail-grid {
    display: grid;
    gap: .42rem;
}

.transcript-print-detail-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem .75rem;
}

.transcript-print-cumulative-card {
    margin-top: .75rem;
}

.transcript-print-grade-summary-card {
    margin-top: .75rem;
}

.transcript-print-grade-legend-card {
    margin-top: .75rem;
}

.transcript-print-grade-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.transcript-print-grade-chip {
    display: inline-flex;
    align-items: center;
    padding: .3rem .52rem;
    border-radius: 999px;
    background: rgba(11,31,77,.08);
    border: 1px solid rgba(11,31,77,.14);
    color: #0f172a;
    font-size: .68rem;
    font-weight: 800;
}

.transcript-print-grade-legend-list {
    display: grid;
    gap: .35rem;
}

.transcript-print-grade-legend-item {
    display: grid;
    grid-template-columns: 56px 92px minmax(0, 1fr);
    gap: .45rem;
    align-items: start;
    font-size: .7rem;
    line-height: 1.3;
    color: #0f172a;
}

.transcript-print-grade-legend-item strong {
    font-size: .72rem;
    color: #0b1f4d;
}

.transcript-print-detail-item {
    display: grid;
    gap: .1rem;
}

.transcript-print-detail-item span {
    font-size: .64rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #64748b;
    font-weight: 700;
}

.transcript-print-detail-item strong {
    font-size: .78rem;
    line-height: 1.28;
    color: #0f172a;
    font-weight: 800;
}

.transcript-print-summary-card {
    padding: .85rem .9rem;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(11,31,77,.94), rgba(11,31,77,.86));
    color: #fff;
    min-height: 88px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 16px 34px rgba(11,31,77,.16);
}

.transcript-print-summary-card span {
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
    font-weight: 700;
}

.transcript-print-summary-card strong {
    font-size: .94rem;
    line-height: 1.18;
    font-weight: 800;
}

.transcript-print-sections {
    display: grid;
    gap: 1rem;
}

.transcript-print-term {
    padding: 1rem 1.05rem;
    border-radius: 20px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(148, 163, 184, .22);
    box-shadow: 0 16px 36px rgba(15, 23, 42, .05);
    break-inside: avoid;
    page-break-inside: avoid;
}

.transcript-print-term-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
    margin-bottom: .9rem;
}

.transcript-print-term-head h3 {
    margin: 0 0 .2rem;
    font-size: 1rem;
    font-weight: 800;
}

.transcript-print-term-head p {
    margin: 0;
    color: #64748b;
    font-size: .76rem;
}

.transcript-print-pill-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.transcript-print-pill {
    padding: .35rem .6rem;
    border-radius: 999px;
    background: rgba(212,160,23,.12);
    border: 1px solid rgba(212,160,23,.2);
    color: #7a5d0b;
    font-size: .72rem;
    font-weight: 700;
}

.transcript-print-table-wrap {
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, .22);
    margin-bottom: .9rem;
}

.transcript-print-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .78rem;
}

.transcript-print-table thead th {
    background: rgba(11,31,77,.94);
    color: #fff;
    padding: .58rem .62rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
}

.transcript-print-table tbody td {
    padding: .52rem .62rem;
    border-top: 1px solid rgba(226, 232, 240, .88);
    vertical-align: top;
}

.transcript-print-table tbody tr:nth-child(even) td {
    background: rgba(248, 250, 252, .92);
}

.transcript-print-insight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
}

.transcript-print-insight {
    padding: .78rem .82rem;
    border-radius: 16px;
    background: rgba(248,250,252,.86);
    border: 1px solid rgba(203, 213, 225, .46);
}

.transcript-print-insight-title {
    margin-bottom: .42rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    color: #7a5d0b;
}

.transcript-print-insight-line,
.transcript-print-insight-copy {
    font-size: .74rem;
    line-height: 1.4;
    color: #0f172a;
}

.transcript-print-insight-copy + .transcript-print-insight-copy,
.transcript-print-insight-line + .transcript-print-insight-line {
    margin-top: .3rem;
}

.transcript-print-footer {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid rgba(148, 163, 184, .32);
}

.transcript-print-footer-note {
    font-size: .75rem;
    color: #334155;
    margin-bottom: .85rem;
}

.transcript-print-approval-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: .9rem;
}

.transcript-print-stamp-card {
    padding: .82rem .88rem;
    border-radius: 18px;
    background: rgba(248,250,252,.88);
    border: 1px dashed rgba(100, 116, 139, .45);
}

.transcript-print-stamp-title {
    display: block;
    margin-bottom: .45rem;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #7a5d0b;
    font-weight: 800;
}

.transcript-print-stamp-box {
    min-height: 82px;
    border: 1px solid rgba(15, 23, 42, .2);
    border-radius: 14px;
    background:
        radial-gradient(circle at center, rgba(212,160,23,.08), transparent 55%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(241,245,249,.92));
}

.transcript-print-stamp-note {
    margin-top: .42rem;
    font-size: .68rem;
    line-height: 1.35;
    color: #475569;
}

.transcript-print-signatures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.transcript-print-signature span {
    display: block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #64748b;
    font-weight: 800;
    margin-bottom: .3rem;
}

.transcript-print-signature-line {
    min-height: 26px;
    border-bottom: 1px solid rgba(15, 23, 42, .34);
    display: flex;
    align-items: end;
    font-size: .76rem;
    font-weight: 700;
    color: #0f172a;
}

@media (max-width: 991px) {
    .transcript-print-title,
    .transcript-print-student-band,
    .transcript-print-group-grid,
    .transcript-print-approval-strip,
    .transcript-print-insight-grid,
    .transcript-print-signatures {
        grid-template-columns: 1fr;
    }

    .transcript-print-term-head {
        flex-direction: column;
    }

    .transcript-print-pill-row {
        justify-content: flex-start;
    }
}

@media print {
    .transcript-screen-shell {
        display: none !important;
    }

    .transcript-print-only {
        display: block !important;
    }

    .transcript-print-sheet {
        display: block !important;
        padding: 1rem 1.05rem !important;
        border-radius: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(247,249,252,.97)) !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        font-size: 9.1pt !important;
    }

    .transcript-print-sheet .document-watermark {
        opacity: .12 !important;
    }

    .transcript-print-title {
        grid-template-columns: minmax(0, 1fr) 120px !important;
        gap: .55rem !important;
        margin-bottom: .7rem !important;
    }

    .transcript-print-sheet .registration-qr-card {
        width: 112px !important;
        flex: 0 0 112px !important;
        padding: .28rem !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    .transcript-print-sheet .registration-qr-image {
        width: 78px !important;
        height: 78px !important;
        padding: .18rem !important;
        border-radius: 10px !important;
        display: block !important;
        visibility: visible !important;
    }

    .transcript-print-sheet .registration-qr-label {
        font-size: .45rem !important;
        line-height: 1.05 !important;
        margin-bottom: .16rem !important;
    }

    .transcript-print-sheet .registration-qr-meta {
        margin-top: .15rem !important;
        font-size: .4rem !important;
        line-height: 1.02 !important;
        display: block !important;
    }

    .transcript-print-school-logo {
        width: 54px !important;
        height: 54px !important;
        border-radius: 12px !important;
        padding: .35rem !important;
    }

    .transcript-print-school h1 {
        font-size: 1.15rem !important;
    }

    .transcript-print-school p {
        font-size: .72rem !important;
    }

    .transcript-print-student-band {
        grid-template-columns: 1fr !important;
        gap: .45rem !important;
    }

    .transcript-print-student-profile {
        padding: .6rem !important;
        border-radius: 14px !important;
        box-shadow: none !important;
    }

    .transcript-print-student-photo,
    .transcript-print-student-photo-placeholder {
        width: 72px !important;
        height: 88px !important;
        border-radius: 12px !important;
        flex-basis: 72px !important;
    }

    .transcript-print-student-copy h2 {
        font-size: .98rem !important;
        margin-bottom: .3rem !important;
    }

    .transcript-print-chip {
        padding: .2rem .4rem !important;
        font-size: .54rem !important;
    }

    .transcript-print-group-grid {
        gap: .45rem !important;
        margin-top: .45rem !important;
    }

    .transcript-print-cumulative-card {
        margin-top: 0 !important;
    }

    .transcript-print-grade-summary-card {
        margin-top: .38rem !important;
    }

    .transcript-print-grade-legend-card {
        margin-top: .38rem !important;
    }

    .transcript-print-group-card {
        padding: .46rem .52rem !important;
        border-radius: 12px !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .transcript-print-group-title {
        margin-bottom: .32rem !important;
        font-size: .5rem !important;
    }

    .transcript-print-detail-grid {
        gap: .25rem !important;
    }

    .transcript-print-detail-grid-two {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: .24rem .38rem !important;
    }

    .transcript-print-detail-item span {
        font-size: .46rem !important;
    }

    .transcript-print-detail-item strong {
        font-size: .58rem !important;
        line-height: 1.15 !important;
    }

    .transcript-print-grade-chip-row {
        gap: .25rem !important;
    }

    .transcript-print-grade-chip {
        padding: .16rem .34rem !important;
        font-size: .48rem !important;
    }

    .transcript-print-grade-legend-list {
        gap: .2rem !important;
    }

    .transcript-print-grade-legend-item {
        grid-template-columns: 34px 56px minmax(0, 1fr) !important;
        gap: .24rem !important;
        font-size: .48rem !important;
        line-height: 1.15 !important;
    }

    .transcript-print-grade-legend-item strong {
        font-size: .5rem !important;
    }

    .transcript-print-approval-strip {
        gap: .45rem !important;
        margin-bottom: .55rem !important;
    }

    .transcript-print-stamp-card {
        padding: .52rem .58rem !important;
        border-radius: 12px !important;
        break-inside: avoid;
    }

    .transcript-print-stamp-title {
        margin-bottom: .28rem !important;
        font-size: .5rem !important;
    }

    .transcript-print-stamp-box {
        min-height: 52px !important;
        border-radius: 10px !important;
    }

    .transcript-print-stamp-note {
        margin-top: .25rem !important;
        font-size: .48rem !important;
        line-height: 1.15 !important;
    }

    .transcript-print-summary-card {
        min-height: 64px !important;
        padding: .55rem .6rem !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .transcript-print-summary-card span {
        font-size: .52rem !important;
    }

    .transcript-print-summary-card strong {
        font-size: .7rem !important;
    }

    .transcript-print-sections {
        gap: .6rem !important;
    }

    .transcript-print-term {
        padding: .68rem .72rem !important;
        border-radius: 14px !important;
        box-shadow: none !important;
    }

    .transcript-print-term-head {
        margin-bottom: .55rem !important;
    }

    .transcript-print-term-head h3 {
        font-size: .82rem !important;
    }

    .transcript-print-term-head p,
    .transcript-print-footer-note,
    .transcript-print-insight-line,
    .transcript-print-insight-copy,
    .transcript-print-signature-line {
        font-size: .62rem !important;
    }

    .transcript-print-pill {
        padding: .24rem .42rem !important;
        font-size: .56rem !important;
    }

    .transcript-print-table {
        font-size: .64rem !important;
    }

    .transcript-print-table thead th {
        padding: .34rem .38rem !important;
        font-size: .54rem !important;
    }

    .transcript-print-table tbody td {
        padding: .34rem .38rem !important;
    }

    .transcript-print-insight-grid {
        gap: .45rem !important;
    }

    .transcript-print-insight {
        padding: .5rem .54rem !important;
        border-radius: 12px !important;
    }

    .transcript-print-insight-title,
    .transcript-print-signature span,
    .transcript-print-kicker {
        font-size: .52rem !important;
    }

    .transcript-print-footer {
        margin-top: .65rem !important;
        padding-top: .55rem !important;
    }

    .transcript-print-signatures {
        gap: .6rem !important;
    }

}
