html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ============================================================
   Applicant portal (/apply)
   ============================================================ */
.apply-portal {
    --apply-primary: #1b4f9c;
    --apply-primary-2: #2d8fd5;
    --apply-ink: #21324a;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: radial-gradient(1200px 400px at 50% -150px, #e7f0fb 0%, rgba(231,240,251,0) 70%), linear-gradient(180deg, #f6f8fc 0%, #eef2f7 100%);
    color: var(--apply-ink);
}

.apply-header {
    background: linear-gradient(135deg, var(--apply-primary) 0%, #1b6ec2 55%, var(--apply-primary-2) 100%);
    color: #fff;
    box-shadow: 0 4px 18px rgba(27, 79, 156, .25);
}
.apply-header-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
}
.apply-brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
    color: #fff;
    margin-right: auto;
}
.apply-brand-mark {
    width: 40px; height: 40px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .35);
    display: grid; place-items: center;
    font-weight: 800; font-size: 1.3rem;
}
.apply-brand-text { font-weight: 700; font-size: 1.2rem; line-height: 1.05; }
.apply-brand-text small {
    display: block; font-weight: 500; font-size: .68rem;
    opacity: .88; letter-spacing: .09em; text-transform: uppercase;
}
.apply-header .btn-light { font-weight: 600; }

.apply-main { flex: 1 0 auto; }
.apply-container { max-width: 900px; margin: 0 auto; padding: 1.9rem 1rem 2.5rem; }
.apply-footer { text-align: center; padding: 1.1rem; color: #8190a6; font-size: .8rem; }

/* Public admissions directory */
.public-admissions-head {
    display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
    color: #fff; background: linear-gradient(135deg, #153d79, #247dc1);
    border-radius: 16px; padding: 1.5rem; margin-bottom: 1rem;
    box-shadow: 0 10px 28px rgba(27, 79, 156, .2);
}
.public-admissions-head h1 { margin: .15rem 0 .3rem; font-size: 1.8rem; font-weight: 800; }
.public-admissions-head p { margin: 0; max-width: 650px; opacity: .9; }
.public-admissions-eyebrow { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; opacity: .8; }
.public-admissions-card { overflow: hidden; }
.public-admissions-search {
    display: flex; align-items: end; gap: .65rem; padding: 1.1rem;
    background: #f8fafd; border-bottom: 1px solid #e6ecf4;
}
.public-admissions-search .form-label { font-weight: 700; }
.public-admissions-grid { padding: .8rem; overflow-x: auto; }
.public-admissions-grid .rz-data-grid { min-width: 690px; }
.public-admissions-privacy { margin: 0; padding: .8rem 1.1rem 1.1rem; color: #66758a; font-size: .85rem; }

@media (max-width: 640px) {
    .public-admissions-head { align-items: flex-start; flex-direction: column; padding: 1.2rem; }
    .public-admissions-head .btn { width: 100%; }
    .public-admissions-search { align-items: stretch; flex-direction: column; }
    .public-admissions-search .btn { width: 100%; }
    .public-admissions-grid { padding: .45rem; }
}

/* Hero header on the dashboard */
.apply-hero {
    background: #fff;
    border: 1px solid #e6ecf4;
    border-radius: 16px;
    padding: 1.4rem 1.5rem;
    box-shadow: 0 8px 28px rgba(33, 50, 74, .07);
    display: flex; align-items: center; gap: 1rem;
}
.apply-hero h1 { font-size: 1.55rem; font-weight: 700; margin: 0; }
.apply-hero .lead-sub { color: #5b6b82; margin: .25rem 0 0; font-size: .95rem; }
.apply-hero .lead-sub .pill {
    display: inline-block; background: #eef4fc; color: var(--apply-primary);
    border-radius: 999px; padding: .12rem .6rem; font-weight: 600; font-size: .82rem;
}
.apply-avatar {
    margin-left: auto; flex: 0 0 auto;
    width: 60px; height: 60px; border-radius: 50%;
    background: linear-gradient(135deg, var(--apply-primary), var(--apply-primary-2));
    color: #fff; display: grid; place-items: center;
    font-size: 1.5rem; font-weight: 700; box-shadow: 0 6px 16px rgba(27, 79, 156, .35);
    overflow: hidden;
}
.apply-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Step cards */
.step-card {
    background: #fff;
    border: 1px solid #e6ecf4;
    border-radius: 14px;
    padding: 1.15rem 1.2rem;
    height: 100%;
    box-shadow: 0 6px 20px rgba(33, 50, 74, .06);
    transition: transform .15s ease, box-shadow .15s ease;
    border-top: 4px solid #c8d4e6;
}
.step-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(33, 50, 74, .12); }
.step-card.is-done { border-top-color: #2ca36a; }
.step-card.is-active { border-top-color: var(--apply-primary-2); }
.step-card.is-locked { border-top-color: #b7c0cf; opacity: .92; }

.step-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .35rem; }
.step-icon {
    width: 38px; height: 38px; border-radius: 10px; flex: 0 0 auto;
    display: grid; place-items: center; font-size: 1.15rem;
    background: #eef4fc;
}
.step-card.is-done .step-icon { background: #e4f6ec; }
.step-eyebrow {
    font-size: .68rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: #8190a6;
}
.step-title { font-size: 1.02rem; font-weight: 700; margin: 0; }
.step-status { color: #5b6b82; font-size: .9rem; margin: .35rem 0 .85rem; }

/* Generic card used on login / forms */
.apply-card {
    background: #fff;
    border: 1px solid #e6ecf4;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(33, 50, 74, .08);
}
.apply-page-head { margin-bottom: 1.1rem; }
.apply-page-head h3 { font-weight: 700; margin: 0; }
.apply-page-head p { color: #5b6b82; margin: .2rem 0 0; }
.apply-section-title {
    font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--apply-primary); margin: 1.4rem 0 .6rem; padding-bottom: .3rem;
    border-bottom: 2px solid #eef2f7;
}
.apply-section-title:first-of-type { margin-top: 0; }

/* Bio-data form — distinct, numbered section cards */
.bio-section {
    background: #fff;
    border: 1px solid #e6ecf4;
    border-radius: 14px;
    box-shadow: 0 4px 16px rgba(33, 50, 74, .05);
    margin-bottom: 1rem;
    overflow: hidden;
}
.bio-section-head {
    display: flex; align-items: center; gap: .6rem;
    padding: .7rem 1.1rem;
    background: linear-gradient(90deg, #eaf2fc, #f7faff);
    border-bottom: 1px solid #e6ecf4;
    font-weight: 700; color: #21324a;
}
.bio-section-head small { font-weight: 500; color: #7b8aa0; margin-left: .15rem; }
.bio-step {
    width: 26px; height: 26px; border-radius: 50%; flex: 0 0 auto;
    display: grid; place-items: center; font-size: .82rem; font-weight: 700; color: #fff;
    background: linear-gradient(135deg, var(--edu-primary, #1b4f9c), var(--edu-primary-2, #2d8fd5));
}
.bio-section-body { padding: 1.1rem; }

/* ============================================================
   Split-screen auth (staff / student login) + landing page
   ============================================================ */
:root {
    --edu-primary: #1b4f9c;
    --edu-primary-2: #2d8fd5;
    --edu-ink: #21324a;
}

.auth-split { display: flex; min-height: 100vh; }

.auth-brand {
    flex: 1 1 50%;
    position: relative;
    color: #fff;
    background: linear-gradient(150deg, #143a78 0%, var(--edu-primary) 45%, var(--edu-primary-2) 100%);
    display: flex; flex-direction: column; justify-content: center;
    padding: 3rem 3.75rem;
    overflow: hidden;
}
.auth-brand::after {
    content: ""; position: absolute; inset: 0;
    background: radial-gradient(600px 300px at 80% -10%, rgba(255,255,255,.18), transparent 60%),
                radial-gradient(500px 300px at -10% 110%, rgba(255,255,255,.12), transparent 60%);
    pointer-events: none;
}
.auth-brand > * { position: relative; z-index: 1; }

.auth-logo {
    width: 64px; height: 64px; border-radius: 16px;
    background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.35);
    display: grid; place-items: center; font-weight: 800; font-size: 2rem;
    margin-bottom: 1.6rem;
}
/* Logo-image variants (uploaded college logo sits on a clean white tile) */
.has-logo { background: #fff !important; border-color: rgba(255, 255, 255, .8) !important; padding: 5px; }
.auth-logo img, .landing-brand .mark img, .apply-brand-mark img {
    width: 100%; height: 100%; object-fit: contain; display: block;
}

.auth-welcome { font-size: 2.7rem; font-weight: 800; line-height: 1.04; margin: 0; letter-spacing: -.5px; }
.auth-welcome span { color: #ffd66b; }
.auth-tagline { margin-top: 1rem; font-size: 1.03rem; opacity: .92; max-width: 30rem; }

.auth-features { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: 2rem; max-width: 34rem; }
.auth-feature {
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
    border-radius: 12px; padding: .85rem 1rem; display: flex; gap: .65rem; align-items: flex-start;
}
.auth-feature .ico { font-size: 1.2rem; line-height: 1.2; }
.auth-feature h6 { margin: 0; font-weight: 700; font-size: .95rem; }
.auth-feature p { margin: .1rem 0 0; font-size: .78rem; opacity: .85; }

.auth-form-side {
    flex: 1 1 50%; background: #fff;
    display: flex; align-items: center; justify-content: center; padding: 2rem;
}
.auth-form { width: 100%; max-width: 420px; }
.auth-form h1 { font-size: 2rem; font-weight: 800; margin: 0; color: #111; }
.auth-form .subtitle { color: #6a778b; margin: .25rem 0 1.6rem; }
.auth-form .form-label { font-weight: 600; margin-bottom: .25rem; }
.auth-form .form-control { padding: .65rem .85rem; }
.auth-form .input-icon { position: relative; }
.auth-form .input-icon .ico {
    position: absolute; left: .75rem; top: 50%; transform: translateY(-50%);
    color: #9aa6b8; pointer-events: none; font-size: 1rem;
}
.auth-form .input-icon .form-control { padding-left: 2.4rem; }

.btn-edu {
    background: linear-gradient(135deg, var(--edu-primary), var(--edu-primary-2));
    border: none; color: #fff; font-weight: 700;
    box-shadow: 0 8px 20px rgba(27,79,156,.28);
}
.btn-edu:hover { color: #fff; filter: brightness(1.05); }

.auth-or { display: flex; align-items: center; gap: .75rem; color: #98a3b5; margin: 1.1rem 0; font-size: .8rem; }
.auth-or::before, .auth-or::after { content: ""; flex: 1; height: 1px; background: #e6ecf4; }

.auth-passkey {
    width: 100%; border: 1.5px dashed #c3cee0; background: #fff; color: var(--edu-primary);
    border-radius: 10px; padding: .7rem; font-weight: 600;
}
.auth-passkey:hover { background: #f5f8fd; }

.auth-foot { text-align: center; margin-top: 1.4rem; color: #6a778b; font-size: .85rem; }
.auth-foot a { font-weight: 600; }
.auth-copyright { text-align: center; color: #9aa6b8; font-size: .76rem; margin-top: 1rem; }

@media (max-width: 880px) {
    .auth-brand { display: none; }
    .auth-form-side { flex-basis: 100%; }
}

/* ---- Landing / homepage ---- */
.landing { min-height: 100vh; display: flex; flex-direction: column; color: var(--edu-ink);
    background: radial-gradient(1100px 500px at 50% -200px, #e7f0fb 0%, rgba(231,240,251,0) 70%), linear-gradient(180deg, #f7f9fc, #eef2f7); }
.landing-nav { display: flex; align-items: center; gap: .75rem; max-width: 1100px; width: 100%; margin: 0 auto; padding: 1.1rem 1.25rem; }
.landing-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--edu-ink); margin-right: auto; }
.landing-brand .mark { width: 40px; height: 40px; border-radius: 11px; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.25rem;
    background: linear-gradient(135deg, var(--edu-primary), var(--edu-primary-2)); }
.landing-brand .name { font-weight: 800; font-size: 1.3rem; }

.landing-hero { max-width: 1100px; width: 100%; margin: 0 auto; padding: 3.5rem 1.25rem 2rem; text-align: center; }
.landing-hero .eyebrow { display: inline-block; background: #e4eefb; color: var(--edu-primary); font-weight: 700;
    font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; border-radius: 999px; padding: .3rem .85rem; }
.landing-hero h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); font-weight: 800; line-height: 1.06; margin: 1rem 0 0; letter-spacing: -1px; }
.landing-hero h1 span { background: linear-gradient(135deg, var(--edu-primary), var(--edu-primary-2)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.landing-hero p { font-size: 1.12rem; color: #51607a; max-width: 40rem; margin: 1.1rem auto 0; }
.landing-cta { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.8rem; }

.landing-features { max-width: 1100px; width: 100%; margin: 1rem auto 0; padding: 1rem 1.25rem 3rem;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.landing-card { background: #fff; border: 1px solid #e6ecf4; border-radius: 16px; padding: 1.4rem; box-shadow: 0 8px 24px rgba(33,50,74,.06);
    transition: transform .15s ease, box-shadow .15s ease; }
.landing-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(33,50,74,.12); }
.landing-card .ico { width: 46px; height: 46px; border-radius: 12px; background: #eef4fc; display: grid; place-items: center; font-size: 1.4rem; margin-bottom: .85rem; }
.landing-card h5 { font-weight: 700; font-size: 1.05rem; margin: 0; }
.landing-card p { color: #5b6b82; font-size: .9rem; margin: .35rem 0 0; }
.landing-foot { margin-top: auto; text-align: center; color: #8190a6; font-size: .82rem; padding: 1.2rem; border-top: 1px solid #e6ecf4; }

@media (max-width: 860px) { .landing-features { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .landing-features { grid-template-columns: 1fr; } }

/* ============================================================
   Admin dashboard + admissions list
   ============================================================ */
.dash-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.dash-head h1 { font-weight: 800; margin: 0; }
.dash-head .sub { color: #6a778b; margin: .15rem 0 0; }
.dash-head .date { color: #6a778b; font-size: .95rem; }

.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
@media (max-width: 992px) { .stat-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .stat-grid { grid-template-columns: 1fr; } }

.stat-card {
    background: #fff; border: 1px solid #e8edf4; border-radius: 14px;
    padding: 1.1rem 1.25rem; display: flex; align-items: center; gap: 1rem;
    box-shadow: 0 6px 18px rgba(33,50,74,.05);
}
.stat-ico { width: 46px; height: 46px; border-radius: 12px; flex: 0 0 auto; display: grid; place-items: center; font-size: 1.3rem; }
.stat-ico.b1 { background: #e8effc; } .stat-ico.b2 { background: #e6f6ec; }
.stat-ico.b3 { background: #fdf3e3; } .stat-ico.b4 { background: #eaf4fb; }
.stat-card .num { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.stat-card .lbl { color: #6a778b; font-size: .9rem; margin-top: .2rem; }

.panel { background: #fff; border: 1px solid #e8edf4; border-radius: 14px; box-shadow: 0 6px 18px rgba(33,50,74,.05); }
.panel-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #eef2f7; }
.panel-head h5 { margin: 0; font-weight: 700; }

.badge-soft { border-radius: 999px; padding: .2rem .6rem; font-size: .78rem; font-weight: 600; }
.badge-soft.warn { background: #fdf0d5; color: #9a6a12; }
.badge-soft.ok { background: #e3f6ea; color: #1c7a45; }
.badge-soft.muted { background: #eef1f5; color: #5b6b82; }

.sem-chip { display: inline-block; border: 1px solid #dde5ef; border-radius: 6px; padding: .1rem .5rem; font-size: .82rem; color: #41506a; }

/* Styled data grid (dashboard recent list, etc.) */
.total-badge {
    background: #3b82f6; color: #fff; border-radius: 7px;
    padding: .28rem .7rem; font-weight: 700; font-size: .8rem; letter-spacing: .02em;
}
.grid-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0; }
.grid-table thead th {
    background: #f8fafc; border-bottom: 1px solid #e6ecf4;
    color: #21324a; font-weight: 700; font-size: .9rem;
    padding: .75rem 1rem; text-align: left; white-space: nowrap;
}
.grid-table tbody td { padding: .7rem 1rem; border-bottom: 1px solid #eef2f7; vertical-align: middle; }
.grid-table tbody tr:last-child td { border-bottom: none; }
.grid-table tbody tr:hover { background: #f7faff; }
.grid-primary { font-weight: 600; color: #21324a; }
.grid-secondary { color: #8190a6; font-size: .82rem; }

.pill { display: inline-block; border-radius: 6px; padding: .18rem .55rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.pill-type { background: #3b82f6; color: #fff; }
.pill-pink { background: #ec4899; color: #fff; }
.pill-green { background: #16a34a; color: #fff; }
.pill-amber { background: #f0ad4e; color: #fff; }
.pill-muted { background: #eef1f5; color: #5b6b82; }

.student-action-button.rz-button {
    min-width: 126px;
    justify-content: center;
    font-weight: 700;
    color: #1b4f9c;
    border-color: #cfe0f5;
    background: #f5f9ff;
}

.student-action-button.rz-button:hover {
    color: #143a78;
    background: #eaf2fc;
    border-color: #9fc2ee;
}

.student-page-button.rz-button {
    min-width: 118px;
    justify-content: center;
    font-weight: 700;
}

@media (max-width: 640px) {
    .student-action-button.rz-button,
    .student-page-button.rz-button {
        min-width: 0;
    }
}

.act-btn {
    display: inline-grid; place-items: center; width: 32px; height: 32px;
    border-radius: 7px; border: none; color: #fff; text-decoration: none;
    transition: filter .12s ease;
}
.act-btn:hover { filter: brightness(1.08); color: #fff; }
.act-btn svg { width: 16px; height: 16px; }
.act-view { background: #4f46e5; }
.act-edit { background: #3b9cf0; }
.act-delete { background: #ef4444; }

/* Dashboard directory grid */
.directory-shell {
    background: #fff;
    border: 1px solid #dadde2;
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(22, 34, 51, .18);
    overflow: hidden;
}

.directory-titlebar {
    min-height: 52px;
    padding: .8rem .85rem;
    border-bottom: 1px solid #e6e8ec;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #222;
    font-size: .98rem;
}

.directory-titlebar em {
    font-style: italic;
    color: #1f2933;
}

.directory-refresh.rz-button {
    width: 30px;
    height: 30px;
    min-width: 30px;
    color: #ff006e;
    border: 1px solid #ff006e;
    background: #fff;
    padding: 0;
}

.directory-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
}

.directory-main {
    min-width: 0;
    padding: 1rem;
}

.directory-section-head {
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.directory-section-head h5 {
    margin: 0;
    font-size: .9rem;
    font-weight: 700;
}

.directory-table {
    width: 100%;
    margin: 0;
    border: 1px solid #d9dde3;
    border-collapse: collapse;
    font-size: .88rem;
}

.directory-table thead th {
    padding: .55rem .55rem;
    color: #111;
    background: #fff;
    border-bottom: 1px solid #d9dde3;
    font-weight: 700;
    white-space: nowrap;
}

.directory-table tbody td {
    padding: .4rem .55rem;
    border-bottom: 1px solid #d9dde3;
    color: #444;
    vertical-align: middle;
}

.directory-table tbody tr:nth-child(even) {
    background: #fbfbfc;
}

.directory-table tbody tr:hover {
    background: #f5f8ff;
}

.admissions-table {
    min-width: 1180px;
}

.bank-slip-table {
    min-width: 980px;
}

.student-table {
    min-width: 900px;
}

.fee-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    vertical-align: middle;
}

.fee-dot-green { background: #198754; }
.fee-dot-amber { background: #ffc107; }
.fee-dot-red { background: #dc3545; }
.fee-dot-muted { background: #ced4da; }

.directory-table .pill {
    border-radius: 4px;
    padding: .13rem .32rem;
    font-size: .72rem;
}

.directory-action-button {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin: 0 .1rem;
    padding: 0;
    border: 0;
    border-radius: 4px;
    color: #fff;
    text-decoration: none;
    line-height: 1;
}

.directory-action-button:hover {
    color: #fff;
    filter: brightness(1.07);
}

.directory-action-button .rz-icon {
    font-size: 17px;
}

.directory-action-button.action-view {
    background: #5141d8;
}

.directory-action-button.action-edit {
    background: #3496e8;
}

.directory-action-button.action-verify {
    background: #16a34a;
}

.student-bio-dialog {
    color: #21324a;
}

.bio-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .25rem 0 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e6ecf4;
}

.bio-dialog-name {
    font-size: 1.08rem;
    font-weight: 800;
}

.bio-dialog-sub {
    color: #8190a6;
    font-size: .82rem;
}

.bio-edit-section {
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid #e6ecf4;
    border-radius: 8px;
    background: #fff;
}

.bio-edit-section h6 {
    margin: 0 0 .85rem;
    color: #1b4f9c;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.student-bio-card dt {
    color: #8190a6;
    font-size: .78rem;
}

.directory-pager {
    min-height: 50px;
    padding: .35rem .45rem .25rem;
    border: 1px solid #d9dde3;
    border-top: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: #666;
}

.directory-page-buttons,
.directory-page-meta {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.directory-page-nav,
.directory-page-number {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #333;
    display: inline-grid;
    place-items: center;
}

.directory-page-nav:disabled {
    color: #d4d7dd;
}

.directory-page-number.active {
    background: #e9e6ff;
    color: #5141d8;
    font-weight: 700;
}

.directory-size-select.rz-dropdown {
    width: 80px;
}

.directory-sidebar {
    padding: 1.25rem 1rem;
    border-left: 1px solid #e1e4e8;
    background: #fff;
}

.directory-filter-title {
    margin: 0 0 .7rem;
    color: #555;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.directory-filter-field {
    margin: 0 0 .8rem;
    padding: 0 .65rem .55rem;
    border: 1px solid #bcc2ca;
    border-radius: 4px;
}

.directory-filter-field legend {
    float: none;
    width: auto;
    margin: 0;
    padding: 0 .25rem;
    color: #777;
    font-size: .72rem;
}

.directory-filter-field .rz-dropdown,
.directory-filter-field .rz-textbox {
    border: 0;
    box-shadow: none;
}

.directory-apply.rz-button,
.directory-reset.rz-button {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: .35rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.directory-apply.rz-button {
    background-color: #5141d8 !important;
    border-color: #5141d8 !important;
    box-shadow: 0 2px 5px rgba(81, 65, 216, .25);
}

.directory-reset.rz-button {
    color: #3fa54e;
    border: 1px solid #43b05a;
    background: #fff;
}

.directory-stats {
    margin-top: 1rem;
    padding: 1rem .75rem;
    border: 1px solid #d9dde3;
    border-radius: 4px;
}

.directory-stat-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .45rem 0;
    color: #ff006e;
    font-size: .82rem;
}

.directory-stat-row strong {
    color: #444;
    font-weight: 500;
}

.directory-stat-row .stat-good {
    color: #3fa54e;
}

.directory-stat-row .stat-warn {
    color: #ff8a00;
}

@media (max-width: 1100px) {
    .directory-grid {
        grid-template-columns: 1fr;
    }

    .directory-sidebar {
        border-left: 0;
        border-top: 1px solid #e1e4e8;
    }
}

@media (max-width: 680px) {
    .directory-main,
    .directory-sidebar {
        padding: .85rem;
    }

    .directory-pager {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Summary tiles (admissions list overview) */
.summary-row { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.sum-tile {
    flex: 1 1 0; min-width: 150px;
    background: #fff; border: 1px solid #e8edf4; border-radius: 12px;
    padding: .9rem 1.1rem; box-shadow: 0 4px 14px rgba(33, 50, 74, .05);
}
.sum-tile .num { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.sum-tile .lbl { color: #6a778b; font-size: .85rem; margin-top: .3rem; }
.sum-tile.clickable { cursor: pointer; transition: transform .12s ease, box-shadow .12s ease; user-select: none; }
.sum-tile.clickable:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(33, 50, 74, .12); }
.sum-tile.active { border-color: #1b4f9c; box-shadow: 0 0 0 2px rgba(27, 79, 156, .28); }

/* Admission detail side panel */
.adm-detail .ava { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700;
    background: linear-gradient(135deg, var(--edu-primary), var(--edu-primary-2)); flex: 0 0 auto; }
.adm-detail dt { color: #8190a6; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-top: .9rem; }
.adm-detail dd { margin: .1rem 0 0; font-size: .95rem; }

/* Self-contained slide-in side panel */
.side-overlay { position: fixed; inset: 0; background: rgba(20, 30, 48, .38); z-index: 1050; }
.side-pane {
    position: fixed; top: 0; right: 0; height: 100vh; width: 440px; max-width: 94vw;
    background: #fff; z-index: 1051; display: flex; flex-direction: column;
    box-shadow: -10px 0 36px rgba(0, 0, 0, .22);
    animation: side-in .18s ease-out;
}
@keyframes side-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
.side-pane-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #eef2f7; }
.side-pane-head h5 { margin: 0; font-weight: 700; }
.side-pane-body { padding: 1.25rem; overflow: auto; flex: 1; }
.side-pane-foot { padding: .85rem 1.25rem; border-top: 1px solid #eef2f7; display: flex; justify-content: flex-end; gap: .5rem; }
.side-pane-close { background: none; border: none; font-size: 1.4rem; line-height: 1; color: #8190a6; cursor: pointer; }

/* ============================================================
   Admin dashboard + admissions
   ============================================================ */
.dash-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.dash-head h1 { font-weight: 800; margin: 0; }
.dash-head .sub { color: #6a778b; margin: .1rem 0 0; }
.dash-head .date { color: #6a778b; font-size: .9rem; }

.stat-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
.stat-card {
    background: #fff; border: 1px solid #e6ecf4; border-radius: 14px; padding: 1.1rem 1.2rem;
    box-shadow: 0 6px 18px rgba(33,50,74,.06); display: flex; align-items: center; gap: .9rem;
}
.stat-ico { width: 46px; height: 46px; border-radius: 12px; flex: 0 0 auto; display: grid; place-items: center; font-size: 1.3rem; }
.stat-ico.blue { background: #e8f0fd; } .stat-ico.green { background: #e6f6 ee; background: #e6f6ee; }
.stat-ico.amber { background: #fdf3e1; } .stat-ico.cyan { background: #e3f6fb; }
.stat-card .num { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.stat-card .lbl { color: #6a778b; font-size: .85rem; margin-top: .15rem; }

.panel { background: #fff; border: 1px solid #e6ecf4; border-radius: 14px; box-shadow: 0 6px 18px rgba(33,50,74,.06); }
.panel-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #eef2f7; }
.panel-head h5 { margin: 0; font-weight: 700; }

.badge-soft { border-radius: 999px; padding: .2rem .6rem; font-size: .75rem; font-weight: 600; }
.badge-soft.amber { background: #fdf0d8; color: #9a6a12; }
.badge-soft.green { background: #e1f5e9; color: #1d7a45; }
.badge-soft.grey  { background: #eef1f5; color: #5b6b82; }

.dept-summary { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; }

@media (max-width: 900px) { .stat-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .stat-cards { grid-template-columns: 1fr; } }

.exec-dash { margin-bottom: 2rem; }
.exec-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.exec-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.exec-panel--span-2 { grid-column: 1 / -1; }
.exec-chart-wrap { width: 100%; max-width: 100%; overflow: hidden; }
.exec-chart-wrap .rz-chart,
.exec-chart-wrap svg { max-width: 100% !important; }

.exec-enrollment-list { display: flex; flex-direction: column; gap: .85rem; }
.exec-enrollment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(80px, 140px) minmax(40px, 64px);
    gap: .65rem;
    align-items: center;
    font-size: .82rem;
}
.exec-enrollment-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #334155;
}
.exec-enrollment-bar-track {
    height: 10px;
    background: #eef2f7;
    border-radius: 999px;
    overflow: hidden;
}
.exec-enrollment-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #6366f1, #3b82f6);
    border-radius: 999px;
    min-width: 4px;
}
.exec-enrollment-bar-fill--danger { background: linear-gradient(90deg, #ef4444, #f97316); }
.exec-enrollment-count { font-weight: 700; text-align: right; color: #1e293b; font-size: .78rem; }
@media (max-width: 1100px) { .exec-grid-3 { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .exec-grid-2 { grid-template-columns: 1fr; } }

.exec-panel {
    background: #fff;
    border: 1px solid #e6ecf4;
    border-radius: 14px;
    padding: 1rem 1.1rem;
    box-shadow: 0 6px 18px rgba(33,50,74,.05);
    min-width: 0;
    overflow: hidden;
}
.exec-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}
.exec-panel-head h5 { margin: 0; font-weight: 700; }

.stat-card.kpi-blue { border-top: 3px solid #3b82f6; }
.stat-card.kpi-purple { border-top: 3px solid #8b5cf6; }
.stat-card.kpi-green { border-top: 3px solid #22c55e; }
.stat-card.kpi-red { border-top: 3px solid #ef4444; }
.stat-card .kpi-label { color: #6a778b; font-size: .85rem; font-weight: 600; }
.stat-card .kpi-sub { color: #8a96a8; font-size: .78rem; margin-top: .25rem; }

.stat-card.stat-card-stack {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .35rem;
    min-width: 0;
}
.stat-card.stat-card-stack .gender-allocated-num {
    font-size: 1.35rem;
    white-space: nowrap;
}
.stat-card.stat-card-stack .kpi-sub {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.exec-alerts { display: flex; flex-direction: column; gap: .65rem; }
.exec-alerts-2col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
@media (max-width: 640px) { .exec-alerts-2col { grid-template-columns: 1fr; } }
.exec-alert {
    border-radius: 10px;
    padding: .75rem .85rem;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    font-size: .85rem;
}
.exec-alert strong { font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.exec-alert-danger { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.exec-alert-warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.exec-alert-info { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; }
.exec-alert-success { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; }

.exec-activity-list { display: flex; flex-direction: column; gap: .75rem; max-height: 320px; overflow: auto; }
.exec-activity { border-bottom: 1px solid #eef2f7; padding-bottom: .65rem; }
.exec-activity:last-child { border-bottom: 0; padding-bottom: 0; }
.exec-activity-title { font-weight: 600; font-size: .9rem; }
.exec-activity-detail { color: #6a778b; font-size: .85rem; }
.exec-activity-time { color: #9aa5b5; font-size: .75rem; margin-top: .15rem; }

.exec-aging-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: .75rem;
    padding: .55rem 0;
    border-bottom: 1px solid #eef2f7;
    font-size: .88rem;
}
.exec-aging-row:last-child { border-bottom: 0; }

.exec-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .65rem;
}
@media (max-width: 700px) { .exec-quick-grid { grid-template-columns: 1fr 1fr; } }
.exec-quick {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    text-align: center;
    padding: .85rem .5rem;
    border: 1px solid #e6ecf4;
    border-radius: 12px;
    color: #334155;
    text-decoration: none;
    font-size: .78rem;
    font-weight: 600;
    min-height: 88px;
    background: #fafbfd;
}
.exec-quick:hover { background: #f0f4ff; border-color: #c7d2fe; color: #1e3a8a; }

.page-back-bar { margin-bottom: 1rem; }

/* Admin dashboard — colorful quick-action tiles */
.dash-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
@media (max-width: 700px) { .dash-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.dash-action-tile {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-decoration: none;
    border: 1px solid #e8edf4;
    border-radius: 6px;
    padding: .55rem;
    background: #fff;
    transition: transform .15s ease, box-shadow .15s ease;
}
.dash-action-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(33, 50, 74, .12);
}
.dash-action-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 88px;
    border-radius: 4px;
    color: #fff;
}
.dash-action-icon .rz-icon,
.dash-action-icon .material-icons {
    font-size: 2.75rem !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
    line-height: 2.75rem !important;
}
.dash-action-label {
    display: block;
    margin-top: .55rem;
    text-align: center;
    font-size: .78rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.25;
}
.dash-action-icon--olive { background: #8a9a3a; }
.dash-action-icon--blue { background: #2563eb; }
.dash-action-icon--coral { background: #e8554e; }
.dash-action-icon--orange { background: #f59e42; }
.dash-action-icon--teal { background: #14b8a6; }
.dash-action-icon--pink { background: #db2777; }

.exec-fee-split { align-items: stretch; }
.exec-fee-summary {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    justify-content: center;
}
.exec-fee-stat {
    background: #f8fafc;
    border: 1px solid #e6ecf4;
    border-radius: 10px;
    padding: .85rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.exec-fee-stat-label { color: #6a778b; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.exec-fee-stat strong { font-size: 1.15rem; color: #1e293b; }
.exec-fee-stat--collected { border-left: 3px solid #22c55e; }
.exec-fee-stat--outstanding { border-left: 3px solid #ef4444; }

.exec-panel-section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eef2f7;
}
.exec-panel-head--compact {
    margin-bottom: .75rem;
}
.exec-panel-head--compact h5 { font-size: .95rem; }

.hostel-block-head {
    background: #fff;
    border: 1px solid #e8edf3;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
}
.hostel-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.hostel-stat {
    min-width: 88px;
    padding: .75rem 1rem;
    background: #f6f8fc;
    border-radius: 10px;
    border: 1px solid #eef2f7;
}
.hostel-stat--primary {
    background: #cfe2ff;
    border-color: #9ec5fe;
}
.hostel-stat--primary .hostel-stat-value { color: #084298; }
.hostel-stat--primary .hostel-stat-label { color: #052c65; }

.hostel-stat--info {
    background: #cff4fc;
    border-color: #9eeaf9;
}
.hostel-stat--info .hostel-stat-value { color: #055160; }
.hostel-stat--info .hostel-stat-label { color: #087990; }

.hostel-stat--success {
    background: #d1e7dd;
    border-color: #a3cfbb;
}
.hostel-stat--success .hostel-stat-value { color: #0a3622; }
.hostel-stat--success .hostel-stat-label { color: #146c43; }

.hostel-stat--warning {
    background: #fff3cd;
    border-color: #ffe69c;
}
.hostel-stat--warning .hostel-stat-value { color: #664d03; }
.hostel-stat--warning .hostel-stat-label { color: #997404; }

.hostel-stat--danger {
    background: #f8d7da;
    border-color: #f1aeb5;
}
.hostel-stat--danger .hostel-stat-value { color: #58151c; }
.hostel-stat--danger .hostel-stat-label { color: #842029; }

.hostel-stat--secondary {
    background: #e2e3e5;
    border-color: #c4c8cb;
}
.hostel-stat--secondary .hostel-stat-value { color: #41464b; }
.hostel-stat--secondary .hostel-stat-label { color: #565e64; }
.hostel-stat-value {
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
}
.hostel-stat-label {
    display: block;
    font-size: .78rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: .15rem;
}

.cert-page-head h1 { font-weight: 800; }
.cert-form-panel {
    background: #fff;
    border: 1px solid #e8edf3;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
}
.cert-form-title {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid #e8edf3;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #334155;
}
.cert-form-note {
    font-size: .9rem;
    color: #64748b;
    background: #f8fafc;
    border-left: 3px solid #3b82f6;
    padding: .75rem 1rem;
    border-radius: 0 8px 8px 0;
}
.cert-detail-list dt { color: #64748b; font-weight: 600; }
.cert-detail-list dd { margin-bottom: .65rem; }
