body.admin-body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(197, 160, 89, 0.08), transparent 24%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)),
        var(--admin-page-bg);
    color: var(--admin-text);
    font-family: "Plus Jakarta Sans", sans-serif;
}

body.admin-body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.2;
    background-image: radial-gradient(circle at 1px 1px, rgba(197, 160, 89, 0.12) 1px, transparent 0);
    background-size: 44px 44px;
}

.material-symbols-outlined {
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
    font-size: 1.2rem;
    line-height: 1;
}

.admin-shell {
    position: relative;
    z-index: 1;
    min-height: 100vh;
}

.admin-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--admin-sidebar-width);
    background: rgba(255, 255, 255, 0.88);
    border-right: 1px solid var(--admin-border);
    backdrop-filter: blur(10px);
}

.admin-sidebar-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 2rem 1rem 1.25rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(197, 160, 89, 0.7) transparent;
}

.admin-sidebar-inner::-webkit-scrollbar {
    width: 0.42rem;
}

.admin-sidebar-inner::-webkit-scrollbar-thumb {
    background: rgba(197, 160, 89, 0.72);
    border-radius: 999px;
}

.admin-sidebar-inner::-webkit-scrollbar-track {
    background: transparent;
}

.brand-logo-light,
.brand-logo-dark,
.brand-mark {
    display: block;
    object-fit: contain;
}

.brand-logo-dark {
    display: none;
}

body.admin-theme-dark .brand-logo-light {
    display: none;
}

body.admin-theme-dark .brand-logo-dark {
    display: block;
}

.admin-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 0 1rem;
    color: inherit;
    text-decoration: none;
    text-align: center;
}

.admin-brand-logo {
    width: min(12.25rem, 100%);
    max-height: 3.25rem;
}

.admin-brand-logo-school {
    width: min(11.5rem, 100%);
    max-height: 4.6rem;
    object-fit: contain;
}

.admin-brand-mark {
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: var(--admin-primary);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.admin-brand-copy {
    display: grid;
    gap: 0.15rem;
    justify-items: center;
    width: 100%;
}

.admin-brand-copy strong {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.admin-brand-copy span,
.admin-campus-label,
.admin-topbar-badge,
.admin-hero-breadcrumbs,
.admin-stat-label,
.admin-status-badge,
.admin-system-row span,
.admin-entity small {
    text-transform: uppercase;
    letter-spacing: 0;
}

.admin-brand-copy span {
    font-size: 0.7rem;
    color: var(--admin-muted);
    font-weight: 700;
}

.admin-campus-pill {
    margin: 0 0.75rem;
    padding: 1rem;
    border-radius: 1rem;
    background: var(--admin-surface-soft);
    border: 1px solid var(--admin-border);
}

.admin-campus-label {
    font-size: 0.62rem;
    color: var(--admin-accent);
    font-weight: 700;
}

.admin-campus-name {
    margin-top: 0.35rem;
    font-family: "Noto Serif", serif;
    font-size: 1.15rem;
    color: var(--admin-primary-strong);
}

.admin-nav {
    display: grid;
    gap: 0.15rem;
    padding: 0 0.25rem;
}

.admin-nav-link {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1.1rem;
    color: #4c5655;
    text-decoration: none;
    border-radius: 1rem;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.admin-nav-link span:last-child {
    font-family: "Noto Serif", serif;
    font-size: 0.98rem;
}

.admin-nav-link:hover,
.admin-nav-link.is-active {
    background: var(--admin-surface-soft);
    color: var(--admin-primary);
}

.admin-nav-link.is-active {
    border-right: 4px solid var(--admin-accent);
    border-radius: 999px 0 0 999px;
    transform: translateX(0.15rem);
}

.admin-nav-link-danger {
    color: #ba1a1a;
}

.admin-sidebar-cta {
    margin-top: auto;
    padding: 0 0.5rem;
}

.admin-primary-cta {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    border: 0;
    padding: 0.95rem 1rem;
    border-radius: 0.75rem;
    background: var(--admin-accent);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(197, 160, 89, 0.24);
    text-decoration: none;
}

.admin-sidebar-footer {
    display: grid;
    gap: 0.15rem;
    padding: 0.25rem 0.25rem 0;
    border-top: 1px solid var(--admin-border);
}

.admin-main {
    margin-left: var(--admin-sidebar-width);
    min-height: 100vh;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 2rem;
    background: rgba(255, 255, 255, 0.8);
    border-bottom: 1px solid var(--admin-border);
    backdrop-filter: blur(10px);
}

.admin-topbar-left,
.admin-topbar-right {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.admin-search-pill {
    width: min(34rem, 56vw);
    min-height: 2.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 1rem;
    border-radius: 999px;
    background: var(--admin-surface-soft);
    border: 1px solid rgba(228, 226, 221, 0.7);
}

.admin-search-pill span {
    color: var(--admin-muted);
}

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

.admin-topbar-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: var(--admin-surface-soft);
    color: #5e6967;
    font-size: 0.64rem;
    font-weight: 700;
}

.admin-theme-toggle {
    min-height: 2.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    border: 1px solid var(--admin-border);
    border-radius: 999px;
    padding: 0.5rem 0.8rem;
    background: var(--admin-surface-soft);
    color: var(--admin-primary);
    font-weight: 700;
}

.admin-theme-toggle:hover {
    background: #fff;
    color: var(--admin-primary-strong);
}

.admin-theme-toggle span:last-child {
    font-size: 0.78rem;
}

.admin-topbar-icon {
    position: relative;
    width: 2.65rem;
    height: 2.65rem;
    border: 0;
    background: transparent;
    color: #47515a;
    border-radius: 999px;
}

.admin-topbar-icon:hover {
    background: var(--admin-surface-soft);
}

.admin-topbar-dot {
    position: absolute;
    top: 0.7rem;
    right: 0.75rem;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: #ba1a1a;
}

.admin-topbar-divider {
    width: 1px;
    height: 2rem;
    background: var(--admin-border);
}

.admin-user {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.admin-user-copy {
    text-align: right;
}

.admin-user-copy strong {
    display: block;
    font-size: 0.95rem;
    color: var(--admin-primary);
}

.admin-user-copy span {
    display: block;
    font-size: 0.64rem;
    color: var(--admin-muted);
    text-transform: uppercase;
    letter-spacing: 0;
}

.admin-user-avatar {
    width: 2.7rem;
    height: 2.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #24313a;
    color: #fff;
    border: 2px solid var(--admin-accent);
    font-weight: 700;
}

.admin-mobile-toggle {
    border: 0;
    background: transparent;
    padding: 0.25rem;
    color: var(--admin-primary);
}

.admin-content {
    padding: 2rem;
}

.admin-page-stack {
    display: grid;
    gap: 2rem;
}

.admin-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.5rem;
    color: #fff;
    background: var(--admin-primary);
    border-radius: 0.9rem;
    box-shadow: 0 14px 34px rgba(26, 43, 71, 0.08);
}

.admin-page-header {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 2rem;
    border-radius: 0.9rem;
    background: var(--admin-primary);
    color: #fff;
    box-shadow: 0 14px 34px rgba(26, 43, 71, 0.08);
}

.admin-page-header p {
    margin: 0.55rem 0 0;
    max-width: 48rem;
    color: rgba(245, 241, 236, 0.84);
}

.admin-page-title {
    margin: 0.45rem 0 0;
    font-family: "Noto Serif", serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.08;
}

.admin-hero-school {
    border-radius: 2.5rem 2.5rem 0 0;
}

.admin-hero-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.12;
    pointer-events: none;
}

.admin-hero-pattern::before,
.admin-hero-pattern::after {
    content: "";
    position: absolute;
    inset: auto auto 0 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
}

.admin-hero-pattern::before {
    background-image:
        radial-gradient(circle at 0 100%, transparent 0 70%, rgba(255, 255, 255, 0.9) 70.5%, transparent 71%),
        radial-gradient(circle at 40% 100%, transparent 0 70%, rgba(255, 255, 255, 0.7) 70.5%, transparent 71%),
        radial-gradient(circle at 80% 100%, transparent 0 70%, rgba(255, 255, 255, 0.7) 70.5%, transparent 71%);
}

.admin-hero-pattern-grid::before {
    background-image: radial-gradient(circle at 2px 2px, rgba(255, 255, 255, 0.9) 1px, transparent 0);
    background-size: 22px 22px;
}

.admin-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 44rem;
}

.admin-hero-breadcrumbs {
    font-size: 0.68rem;
    color: rgba(255, 255, 255, 0.7);
    font-weight: 700;
}

.admin-hero-title,
.admin-card-head h2,
.admin-task-card h3,
.admin-stat-value,
.auth-brand h1,
.auth-heading h2 {
    font-family: "Noto Serif", serif;
}

.admin-hero-title {
    margin: 0.5rem 0 0.75rem;
    font-size: clamp(2.3rem, 5vw, 4rem);
    line-height: 1.08;
}

.admin-hero-text {
    margin: 0;
    max-width: 40rem;
    color: rgba(245, 241, 236, 0.82);
    font-size: 1.05rem;
}

.admin-hero-action {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 1rem 1.25rem;
    border: 0;
    border-radius: 0.75rem;
    background: var(--admin-accent);
    color: #fff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
}

.admin-kpi-grid,
.admin-grid {
    display: grid;
    gap: 1.5rem;
}

.admin-kpi-grid-platform {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-kpi-grid-school {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.admin-grid-platform {
    grid-template-columns: minmax(0, 2fr) minmax(18rem, 0.95fr);
}

.admin-grid-school {
    grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr);
}

.admin-card,
.admin-stat-card {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(26, 43, 71, 0.05);
}

.admin-card {
    padding: 1.6rem;
}

.admin-card-muted {
    background: rgba(240, 238, 233, 0.88);
}

.admin-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.admin-card-head h2 {
    margin: 0;
    font-size: clamp(1.5rem, 2vw, 2.15rem);
    color: var(--admin-primary-strong);
}

.admin-card-head p {
    margin: 0.35rem 0 0;
    color: var(--admin-muted);
}

.admin-text-link {
    color: var(--admin-accent);
    text-decoration: none;
    font-weight: 600;
}

.admin-stat-card {
    position: relative;
    overflow: hidden;
    padding: 1.45rem 1.35rem 1.3rem;
    border-top: 4px solid var(--admin-accent);
}

.admin-stat-card-emerald {
    border-top-color: var(--admin-primary);
}

.admin-stat-card-alert {
    border-top-color: #ba1a1a;
}

.admin-stat-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.1rem;
}

.admin-stat-icon {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: var(--admin-surface-soft);
    color: var(--admin-primary);
}

.admin-stat-meta {
    color: var(--admin-accent);
    font-weight: 600;
}

.admin-stat-label {
    font-size: 0.63rem;
    color: var(--admin-muted);
    font-weight: 700;
}

.admin-stat-value {
    margin-top: 0.5rem;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1;
    color: var(--admin-primary-strong);
}

.admin-stat-trend {
    margin-top: 0.8rem;
    color: #5f6c68;
    font-size: 0.92rem;
}

.admin-table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--admin-text);
    --bs-table-border-color: var(--admin-border);
}

.admin-table thead th {
    color: #596564;
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    background: rgba(245, 243, 238, 0.65);
}

.admin-table > :not(caption) > * > * {
    padding: 1rem 0.75rem;
}

.admin-entity {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.admin-entity-avatar {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.45rem;
    background: var(--admin-surface-soft);
    color: var(--admin-primary-strong);
    font-weight: 700;
}

.admin-entity-logo {
    object-fit: cover;
}

.admin-favicon-preview {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
    border-radius: 0.45rem;
    border: 1px solid var(--admin-border);
    background: var(--admin-surface-soft);
    padding: 0.25rem;
}

.admin-entity-large .admin-entity-avatar {
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    font-size: 1.25rem;
}

.admin-entity strong {
    display: block;
    font-weight: 600;
}

.admin-entity small {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.62rem;
    color: var(--admin-muted);
}

.admin-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.admin-action-button {
    min-height: 2.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--admin-border);
    border-radius: 999px;
    padding: 0.35rem 0.7rem;
    background: var(--admin-surface-soft);
    color: var(--admin-primary-strong);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
}

.admin-action-danger {
    color: #ba1a1a;
}

.admin-color-swatches {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-color-swatch {
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.86);
    box-shadow: 0 0 0 1px var(--admin-border);
}

.admin-code {
    color: var(--admin-primary-strong);
    background: var(--admin-surface-soft);
    border: 1px solid var(--admin-border);
    border-radius: 0.45rem;
    padding: 0.22rem 0.45rem;
}

.admin-muted-text {
    color: var(--admin-muted);
}

.admin-preview-image {
    width: 5rem;
    height: 3rem;
    object-fit: cover;
    border-radius: 0.55rem;
    border: 1px solid var(--admin-border);
}

.admin-theme-preview-large {
    width: 100%;
    max-height: 26rem;
    object-fit: cover;
    border-radius: 1rem;
    border: 1px solid var(--admin-border);
}

.admin-theme-upload-preview {
    min-height: 14rem;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 0.65rem;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.95rem;
    background: var(--admin-surface-soft);
    text-align: center;
}

.admin-theme-upload-preview img {
    width: 100%;
    max-height: 18rem;
    object-fit: cover;
    border-radius: 0.75rem;
    border: 1px solid var(--admin-border);
}

.admin-theme-upload-preview .material-symbols-outlined {
    color: var(--admin-muted);
    font-size: 2.4rem;
}

.admin-theme-upload-preview strong {
    color: var(--admin-primary-strong);
}

.admin-theme-upload-preview small {
    color: var(--admin-muted);
}

.admin-empty-state {
    min-height: 16rem;
    display: grid;
    place-items: center;
    justify-items: center;
    gap: 0.8rem;
    padding: 2rem;
    text-align: center;
    color: var(--admin-muted);
}

.admin-empty-state > .material-symbols-outlined {
    width: 3.25rem;
    height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: var(--admin-surface-soft);
    color: var(--admin-accent);
    font-size: 1.65rem;
}

.admin-empty-state strong {
    color: var(--admin-primary-strong);
    font-size: 1.1rem;
}

.admin-empty-state p {
    margin: 0;
    max-width: 32rem;
}

.admin-flash {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--admin-border);
    background: var(--admin-surface);
    color: var(--admin-primary-strong);
    font-weight: 700;
}

.admin-flash-success {
    border-color: rgba(43, 126, 85, 0.24);
    background: #def5e8;
    color: #2b7e55;
}

.admin-form-grid {
    display: grid;
    gap: 1.25rem;
}

.admin-form-section {
    display: grid;
    gap: 1rem;
}

.admin-form-section h2 {
    margin: 0;
    font-family: "Noto Serif", serif;
    color: var(--admin-primary-strong);
    font-size: 1.45rem;
}

.admin-form-two-cols,
.admin-form-three-cols,
.admin-form-four-cols {
    display: grid;
    gap: 1rem;
}

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

.admin-form-three-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-form-four-cols {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-form label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--admin-primary-strong);
    font-weight: 700;
}

.admin-form input:not([type="checkbox"]),
.admin-form textarea,
.admin-form select {
    width: 100%;
    min-height: 3rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.75rem;
    background: var(--admin-surface-soft);
    color: var(--admin-text);
    padding: 0.7rem 0.85rem;
    outline: none;
}

.admin-form input[type="file"] {
    padding-top: 0.58rem;
}

.admin-form input[type="file"]::file-selector-button {
    margin-right: 0.8rem;
    border: 0;
    border-radius: 999px;
    background: var(--admin-primary-strong);
    color: #ffffff;
    padding: 0.45rem 0.85rem;
    font-weight: 700;
}

.admin-form textarea {
    min-height: 7rem;
}

.admin-form input:focus,
.admin-form textarea:focus,
.admin-form select:focus {
    border-color: var(--admin-accent);
    box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.14);
}

.admin-form .help-text,
.admin-form .form-text {
    display: block;
    margin-top: 0.35rem;
    color: var(--admin-muted);
    font-size: 0.85rem;
}

.admin-form ul {
    margin: 0.35rem 0 0;
    padding-left: 1rem;
    color: #ba1a1a;
}

.admin-form-check > div,
.admin-form-check .form-check {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.admin-form-check input {
    width: 1rem;
    height: 1rem;
}

.admin-form-check label {
    margin: 0;
}

.admin-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

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

.admin-upload-preview-grid-stacked {
    grid-template-columns: 1fr;
}

.admin-upload-preview {
    min-height: 7rem;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 0.55rem;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.85rem;
    background: var(--admin-surface-soft);
    text-align: center;
}

.admin-upload-preview span,
.admin-upload-preview small {
    color: var(--admin-muted);
    font-size: 0.82rem;
}

.admin-upload-preview strong {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: rgba(15, 92, 69, 0.1);
    color: var(--admin-primary-strong);
    font-size: 1rem;
}

.admin-upload-thumb {
    display: block;
    object-fit: contain;
}

.admin-upload-thumb-logo {
    max-width: 11rem;
    width: 100%;
    max-height: 4.5rem;
}

.admin-upload-thumb-favicon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.65rem;
    border: 1px solid var(--admin-border);
    padding: 0.35rem;
    background: var(--admin-surface);
}

.admin-detail-list {
    display: grid;
    gap: 0.75rem;
    margin: 0;
}

.admin-detail-list div {
    display: grid;
    grid-template-columns: minmax(9rem, 0.4fr) minmax(0, 1fr);
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--admin-border);
}

.admin-detail-list dt {
    color: var(--admin-muted);
    font-weight: 700;
}

.admin-detail-list dd {
    margin: 0;
    color: var(--admin-primary-strong);
}

.admin-color-detail-list {
    display: grid;
    gap: 0.8rem;
}

.admin-color-detail {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.85rem;
    background: var(--admin-surface-soft);
}

.admin-color-detail small {
    grid-column: 2;
    color: var(--admin-muted);
}

.admin-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    padding: 0.25rem 0.8rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
}

.admin-status-badge-success {
    background: #def5e8;
    color: #2b7e55;
}

.admin-status-badge-pending {
    background: #f6ebc7;
    color: #a67a27;
}

.admin-status-badge-neutral {
    background: #ece9e1;
    color: #666a66;
}

.admin-status-badge-info {
    background: #e4f0f0;
    color: #537d7b;
}

.admin-task-list,
.admin-alert-list {
    display: grid;
    gap: 1rem;
}

.admin-task-card,
.admin-alert-card,
.admin-payment-card,
.admin-system-card {
    border-radius: 0.9rem;
    border: 1px solid var(--admin-border);
    background: #fff;
}

.admin-task-card {
    padding: 1rem;
}

.admin-task-card.is-highlighted {
    border-left: 3px solid var(--admin-accent);
}

.admin-task-meta,
.admin-system-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.admin-task-meta {
    margin-bottom: 0.8rem;
    color: var(--admin-muted);
    font-size: 0.75rem;
}

.admin-task-card h3 {
    margin: 0 0 0.45rem;
    font-size: 1.35rem;
}

.admin-task-card p {
    margin: 0;
    color: #576261;
}

.admin-task-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}

.admin-btn {
    border-radius: 0.65rem;
    padding: 0.65rem 1rem;
    font-weight: 700;
}

.admin-btn-primary {
    background: var(--admin-primary);
    color: #fff;
}

.admin-btn-secondary {
    background: #fff;
    color: var(--admin-primary);
    border: 1px solid var(--admin-border);
}

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

.admin-system-card {
    margin-top: 1rem;
    padding: 1rem;
}

.admin-progress {
    height: 0.28rem;
    margin: 0.85rem 0;
    border-radius: 999px;
    background: rgba(27, 28, 25, 0.08);
    overflow: hidden;
}

.admin-progress span {
    display: block;
    height: 100%;
    background: var(--admin-primary-strong);
}

.admin-chart-card {
    min-height: 23rem;
}

.admin-select-like {
    border: 1px solid var(--admin-border);
    background: var(--admin-surface-soft);
    color: var(--admin-text);
    border-radius: 0.75rem;
    padding: 0.65rem 1rem;
}

.admin-chart {
    position: relative;
    height: 16rem;
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.4), rgba(245, 243, 238, 0.25));
}

.admin-chart-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(228, 226, 221, 0.65) 1px, transparent 1px);
    background-size: 100% 20%;
}

.admin-chart-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: var(--admin-primary);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-chart-months {
    position: absolute;
    left: 1.5rem;
    right: 1.5rem;
    bottom: 0.9rem;
    display: flex;
    justify-content: space-between;
    color: #687473;
    font-size: 0.8rem;
}

.admin-sidebar-column {
    display: grid;
    gap: 1.5rem;
}

.admin-action-circle {
    width: 2.8rem;
    height: 2.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid var(--admin-primary-strong);
    background: #fff;
    color: var(--admin-primary-strong);
}

.admin-quick-actions {
    display: grid;
    gap: 1rem;
}

.admin-quick-action {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid var(--admin-border);
    background: #fff;
    text-align: left;
    color: var(--admin-primary-strong);
}

.admin-quick-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    background: var(--admin-primary);
    color: #fff;
}

.admin-quick-icon-gold {
    background: var(--admin-accent);
}

.admin-alert-card {
    padding: 1rem 1rem 1rem 1.1rem;
}

.admin-alert-card strong {
    display: block;
    margin-bottom: 0.25rem;
}

.admin-alert-card p {
    margin: 0;
    color: #5c6464;
}

.admin-alert-card-critical {
    border-left: 3px solid #ba1a1a;
    background: #fff6f4;
}

.admin-alert-card-soft {
    border-left: 3px solid var(--admin-accent);
    background: #faf7f0;
}

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

.admin-payment-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
}

.admin-payment-icon {
    width: 2.9rem;
    height: 2.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.8rem;
    background: var(--admin-surface-soft);
    color: var(--admin-primary-strong);
}

.admin-payment-copy {
    display: grid;
    gap: 0.2rem;
}

.admin-payment-copy span {
    color: var(--admin-muted);
    font-size: 0.88rem;
}

.admin-payment-amount {
    margin-left: auto;
    font-family: "Noto Serif", serif;
    font-size: 1.25rem;
}

.admin-mobile-canvas {
    background: var(--admin-page-bg);
}

.admin-mobile-brand {
    display: grid;
    gap: 0.2rem;
    justify-items: center;
    text-align: center;
}

.admin-mobile-brand-logo {
    width: 10rem;
    max-height: 2.75rem;
}

.admin-mobile-brand strong {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.admin-mobile-brand span {
    font-size: 0.68rem;
    color: var(--admin-muted);
    text-transform: uppercase;
    letter-spacing: 0;
}

body.admin-theme-dark {
    --admin-primary: #d8efe9;
    --admin-primary-strong: #ffffff;
    --admin-accent: #d3aa5d;
    --admin-surface: #152422;
    --admin-surface-soft: #203330;
    --admin-page-bg: #0b1514;
    --admin-border: rgba(226, 218, 202, 0.14);
    --admin-text: #eef5f2;
    --admin-muted: #a8b8b4;
    background:
        radial-gradient(circle at top left, rgba(197, 160, 89, 0.12), transparent 24%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)),
        var(--admin-page-bg);
}

body.admin-theme-dark::before {
    opacity: 0.12;
    background-image: radial-gradient(circle at 1px 1px, rgba(211, 170, 93, 0.18) 1px, transparent 0);
}

body.admin-theme-dark .admin-sidebar {
    background: rgba(14, 28, 26, 0.92);
}

body.admin-theme-dark .admin-topbar {
    background: rgba(14, 28, 26, 0.82);
}

body.admin-theme-dark .admin-topbar-badge {
    color: #d7e4e0;
}

body.admin-theme-dark .admin-campus-pill,
body.admin-theme-dark .admin-search-pill,
body.admin-theme-dark .admin-topbar-badge,
body.admin-theme-dark .admin-card-muted {
    background: rgba(32, 51, 48, 0.88);
}

body.admin-theme-dark .admin-nav-link {
    color: #d7e4e0;
}

body.admin-theme-dark .admin-nav-link:hover,
body.admin-theme-dark .admin-nav-link.is-active {
    background: rgba(211, 170, 93, 0.12);
    color: #ffffff;
}

body.admin-theme-dark .admin-nav-link-danger {
    color: #ffb4ab;
}

body.admin-theme-dark .admin-search-pill {
    border-color: var(--admin-border);
}

.admin-search-pill input::placeholder {
    color: var(--admin-muted);
}

body.admin-theme-dark .admin-theme-toggle {
    background: rgba(211, 170, 93, 0.14);
    color: #ffffff;
}

body.admin-theme-dark .admin-theme-toggle:hover {
    background: rgba(211, 170, 93, 0.22);
}

body.admin-theme-dark .admin-topbar-icon,
body.admin-theme-dark .admin-mobile-toggle {
    color: #d7e4e0;
}

body.admin-theme-dark .admin-user-avatar {
    background: #0b1514;
}

body.admin-theme-dark .admin-hero {
    background:
        linear-gradient(135deg, rgba(15, 52, 51, 0.98), rgba(9, 24, 23, 0.98)),
        var(--admin-page-bg);
    color: #ffffff;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

body.admin-theme-dark .admin-page-header {
    background:
        linear-gradient(135deg, rgba(15, 52, 51, 0.98), rgba(9, 24, 23, 0.98)),
        var(--admin-page-bg);
    color: #ffffff;
}

body.admin-theme-dark .admin-page-header p {
    color: rgba(239, 247, 244, 0.86);
}

body.admin-theme-dark .admin-page-title {
    color: #ffffff;
}

body.admin-theme-dark .admin-hero-breadcrumbs {
    color: rgba(255, 255, 255, 0.72);
}

body.admin-theme-dark .admin-hero-title {
    color: #ffffff;
}

body.admin-theme-dark .admin-hero-text {
    color: rgba(239, 247, 244, 0.86);
}

body.admin-theme-dark .admin-card,
body.admin-theme-dark .admin-stat-card,
body.admin-theme-dark .admin-task-card,
body.admin-theme-dark .admin-alert-card,
body.admin-theme-dark .admin-payment-card,
body.admin-theme-dark .admin-system-card,
body.admin-theme-dark .admin-quick-action,
body.admin-theme-dark .admin-flash {
    background: var(--admin-surface);
}

body.admin-theme-dark .admin-table thead th {
    color: #c7d5d1;
    background: rgba(255, 255, 255, 0.04);
}

body.admin-theme-dark .admin-table tbody td {
    color: var(--admin-text);
}

body.admin-theme-dark .admin-table > :not(caption) > * > * {
    border-bottom-color: rgba(226, 218, 202, 0.12);
}

body.admin-theme-dark .admin-entity-avatar,
body.admin-theme-dark .admin-stat-icon,
body.admin-theme-dark .admin-payment-icon {
    background: rgba(211, 170, 93, 0.12);
    color: #f3d89b;
}

body.admin-theme-dark .admin-status-badge-success {
    background: rgba(82, 190, 128, 0.18);
    color: #a8ebc6;
}

body.admin-theme-dark .admin-status-badge-pending {
    background: rgba(211, 170, 93, 0.2);
    color: #f1d08d;
}

body.admin-theme-dark .admin-status-badge-neutral {
    background: rgba(255, 255, 255, 0.08);
    color: #d7e4e0;
}

body.admin-theme-dark .admin-status-badge-info {
    background: rgba(111, 199, 197, 0.16);
    color: #a9e8e6;
}

body.admin-theme-dark .admin-task-card p,
body.admin-theme-dark .admin-alert-card p,
body.admin-theme-dark .admin-payment-copy span,
body.admin-theme-dark .admin-stat-trend,
body.admin-theme-dark .admin-card-head p,
body.admin-theme-dark .admin-empty-state,
body.admin-theme-dark .admin-form .form-text,
body.admin-theme-dark .admin-detail-list dt,
body.admin-theme-dark .admin-color-detail small {
    color: var(--admin-muted);
}

body.admin-theme-dark .admin-system-row strong,
body.admin-theme-dark .admin-payment-amount,
body.admin-theme-dark .admin-task-card h3,
body.admin-theme-dark .admin-alert-card strong,
body.admin-theme-dark .admin-empty-state strong,
body.admin-theme-dark .admin-form-section h2,
body.admin-theme-dark .admin-form label,
body.admin-theme-dark .admin-detail-list dd,
body.admin-theme-dark .admin-code {
    color: var(--admin-primary-strong);
}

body.admin-theme-dark .admin-btn-primary {
    color: #0b1514;
}

body.admin-theme-dark .admin-btn-secondary,
body.admin-theme-dark .admin-action-circle,
body.admin-theme-dark .admin-select-like,
body.admin-theme-dark .admin-action-button,
body.admin-theme-dark .admin-form input:not([type="checkbox"]),
body.admin-theme-dark .admin-form textarea,
body.admin-theme-dark .admin-form select,
body.admin-theme-dark .admin-code,
body.admin-theme-dark .admin-color-detail,
body.admin-theme-dark .admin-upload-preview,
body.admin-theme-dark .admin-favicon-preview,
body.admin-theme-dark .admin-theme-upload-preview {
    background: var(--admin-surface-soft);
    color: var(--admin-primary-strong);
    border-color: var(--admin-border);
}

body.admin-theme-dark .admin-form input[type="file"]::file-selector-button {
    background: #f0d48f;
    color: #0b1514;
}

body.admin-theme-dark .admin-action-danger {
    color: #ffb4ab;
}

body.admin-theme-dark .admin-progress {
    background: rgba(255, 255, 255, 0.1);
}

body.admin-theme-dark .admin-chart {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
}

body.admin-theme-dark .admin-chart-grid {
    background-image: linear-gradient(to top, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
}

body.admin-theme-dark .admin-chart-months {
    color: var(--admin-muted);
}

body.admin-theme-dark .admin-alert-card-critical {
    background: rgba(186, 26, 26, 0.12);
}

body.admin-theme-dark .admin-alert-card-soft {
    background: rgba(211, 170, 93, 0.1);
}

@media (max-width: 1199.98px) {
    .admin-kpi-grid-school {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-grid-platform,
    .admin-grid-school {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .admin-main {
        margin-left: 0;
    }

    .admin-topbar,
    .admin-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .admin-search-pill {
        width: 100%;
        min-width: 0;
    }

    .admin-topbar {
        flex-wrap: wrap;
    }

    .admin-topbar-left,
    .admin-topbar-right {
        width: 100%;
    }

    .admin-topbar-right {
        justify-content: flex-end;
    }

    .admin-theme-toggle span:last-child {
        display: none;
    }

    .admin-kpi-grid-platform,
    .admin-kpi-grid-school,
    .admin-payment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-hero {
        padding: 1.5rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .admin-page-header {
        padding: 1.5rem;
        flex-direction: column;
        align-items: flex-start;
    }

    .admin-brand-logo,
    .admin-mobile-brand-logo {
        width: 9.5rem;
    }
}

@media (max-width: 575.98px) {
    .admin-kpi-grid-platform,
    .admin-kpi-grid-school,
    .admin-payment-grid {
        grid-template-columns: 1fr;
    }

    .admin-card,
    .admin-stat-card {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .admin-form-two-cols,
    .admin-form-three-cols,
    .admin-form-four-cols,
    .admin-upload-preview-grid,
    .admin-detail-list div {
        grid-template-columns: 1fr;
    }

    .admin-task-actions {
        flex-direction: column;
    }
}

/* Patch: public link action for school detail pages */
.admin-hero-action-soft {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: none;
}

.admin-hero-action-soft:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.admin-campus-link {
    display: inline-flex;
    margin-top: .65rem;
    font-size: .76rem;
    font-weight: 800;
    color: var(--admin-accent);
    text-decoration: none;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.admin-mini-list { display: grid; gap: .85rem; }
.admin-mini-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .95rem 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 18px;
    background: color-mix(in srgb, var(--admin-surface), var(--admin-page-bg) 45%);
}
.admin-mini-item small { display: block; color: var(--admin-muted); margin-top: .2rem; }
.admin-empty-state { padding: 2rem; text-align: center; color: var(--admin-muted); border: 1px dashed var(--admin-border); border-radius: 18px; }

.admin-eyebrow {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0;
}

.admin-btn-light {
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
}

.admin-btn-light:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

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

.school-summary-card {
    display: grid;
    gap: 0.25rem;
    padding: 1.2rem 1.35rem;
    border-radius: 0.9rem;
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    box-shadow: 0 14px 34px rgba(26, 43, 71, 0.045);
}

.school-summary-card span {
    color: var(--admin-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.school-summary-card strong {
    color: var(--admin-primary-strong);
    font-family: "Noto Serif", serif;
    font-size: 1.75rem;
    line-height: 1.1;
}

.school-table-title {
    display: grid;
    gap: 0.2rem;
}

.school-table-title strong {
    color: var(--admin-primary-strong);
}

.school-table-title small {
    max-width: 36rem;
    color: var(--admin-muted);
}

.registration-timeline {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.85rem;
}

.registration-timeline-item {
    position: relative;
    min-height: 5.4rem;
    display: grid;
    align-content: start;
    gap: 0.55rem;
    padding: 0.95rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.8rem;
    background: var(--admin-surface-soft);
}

.registration-timeline-marker {
    width: 0.82rem;
    height: 0.82rem;
    border-radius: 999px;
    background: var(--admin-border);
    box-shadow: 0 0 0 0.28rem rgba(117, 128, 143, 0.08);
}

.registration-timeline-item strong {
    display: block;
    color: var(--admin-primary-strong);
    font-weight: 850;
}

.registration-timeline-item small {
    display: block;
    margin-top: 0.15rem;
    color: var(--admin-muted);
}

.registration-timeline-item.is-done .registration-timeline-marker {
    background: #168753;
    box-shadow: 0 0 0 0.28rem rgba(22, 135, 83, 0.12);
}

.registration-timeline-item.is-current {
    border-color: color-mix(in srgb, var(--admin-primary) 42%, var(--admin-border));
    background: color-mix(in srgb, var(--admin-primary) 8%, var(--admin-surface));
}

.registration-timeline-item.is-current .registration-timeline-marker {
    background: var(--admin-primary);
    box-shadow: 0 0 0 0.3rem color-mix(in srgb, var(--admin-primary) 16%, transparent);
}

.registration-timeline-item.is-pending {
    opacity: 0.72;
}

.registration-action-panel {
    display: grid;
    gap: 1.2rem;
}

.registration-action-groups {
    display: grid;
    gap: 1rem;
}

.registration-action-group {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, color-mix(in srgb, var(--admin-surface-soft) 74%, #fff), var(--admin-surface));
}

.registration-action-group-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.registration-action-group-head > .material-symbols-outlined {
    width: 2.55rem;
    height: 2.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--admin-primary) 10%, #fff);
    color: var(--admin-primary-strong);
}

.registration-action-group-head strong {
    display: block;
    color: var(--admin-primary-strong);
    font-weight: 900;
}

.registration-action-group-head small {
    display: block;
    margin-top: 0.12rem;
    color: var(--admin-muted);
    line-height: 1.35;
}

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

.registration-action-grid form {
    margin: 0;
}

.registration-action-grid-docs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.registration-action-grid-danger {
    grid-template-columns: minmax(16rem, 28rem);
}

.registration-action-card {
    width: 100%;
    min-height: 8.9rem;
    display: grid;
    align-content: start;
    gap: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.85rem;
    background: var(--admin-surface);
    color: var(--admin-primary-strong);
    text-align: left;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(26, 43, 71, 0.045);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

button.registration-action-card {
    font: inherit;
    cursor: pointer;
}

.registration-action-card:hover,
.registration-action-card:focus-visible {
    color: var(--admin-primary-strong);
    text-decoration: none;
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--admin-primary) 36%, var(--admin-border));
    box-shadow: 0 18px 44px rgba(26, 43, 71, 0.105);
    outline: none;
}

.registration-action-card > .material-symbols-outlined {
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.7rem;
    background: color-mix(in srgb, var(--admin-primary) 10%, #fff);
    color: var(--admin-primary-strong);
}

.registration-action-card strong {
    display: block;
    font-size: 0.96rem;
    font-weight: 900;
    line-height: 1.2;
}

.registration-action-card small {
    display: block;
    color: var(--admin-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.registration-action-card-success > .material-symbols-outlined {
    background: rgba(22, 135, 83, 0.12);
    color: #168753;
}

.registration-action-card-warning > .material-symbols-outlined {
    background: rgba(199, 154, 59, 0.16);
    color: #9f7020;
}

.registration-action-group-danger {
    border-color: rgba(186, 26, 26, 0.18);
    background: linear-gradient(180deg, rgba(255, 246, 246, 0.9), var(--admin-surface));
}

.registration-action-group-danger .registration-action-group-head > .material-symbols-outlined,
.registration-action-card-danger > .material-symbols-outlined {
    background: rgba(186, 26, 26, 0.1);
    color: #ba1a1a;
}

.registration-action-card-danger {
    color: #8f1111;
}

.registration-action-card-danger:hover,
.registration-action-card-danger:focus-visible {
    color: #8f1111;
    border-color: rgba(186, 26, 26, 0.36);
    box-shadow: 0 18px 44px rgba(186, 26, 26, 0.11);
}

.registration-action-card-muted {
    cursor: not-allowed;
    opacity: 0.72;
}

.registration-action-card-muted:hover {
    transform: none;
    border-color: var(--admin-border);
    box-shadow: 0 12px 30px rgba(26, 43, 71, 0.045);
}

body.admin-theme-dark .registration-action-group,
body.admin-theme-dark .registration-action-card {
    background: var(--admin-surface);
    border-color: var(--admin-border);
}

body.admin-theme-dark .registration-action-group-head > .material-symbols-outlined,
body.admin-theme-dark .registration-action-card > .material-symbols-outlined {
    background: rgba(255, 255, 255, 0.08);
}

body.admin-theme-dark .registration-action-group-danger {
    background: color-mix(in srgb, var(--admin-surface) 86%, #6f1616);
    border-color: rgba(255, 120, 120, 0.18);
}

.admin-form-check-card {
    min-height: 3.9rem;
    align-content: center;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--admin-border);
    background: var(--admin-surface-soft);
}

.admin-form-actions-sticky {
    position: sticky;
    bottom: 1rem;
    z-index: 5;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(12px);
    box-shadow: 0 16px 48px rgba(26, 43, 71, 0.08);
}

.admin-upload-preview-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-upload-preview-wide {
    min-height: 9rem;
}

.admin-upload-thumb-hero {
    width: 100%;
    max-height: 7rem;
    border-radius: 0.65rem;
    object-fit: cover;
}

body.admin-theme-dark .school-summary-card,
body.admin-theme-dark .admin-form-actions-sticky {
    background: var(--admin-surface);
    border-color: var(--admin-border);
}

body.admin-theme-dark .admin-form-actions-sticky {
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

@media (max-width: 991.98px) {
    .school-summary-grid,
    .admin-upload-preview-grid-three {
        grid-template-columns: 1fr;
    }

    .admin-form-actions-sticky {
        position: static;
    }

    .registration-timeline {
        grid-template-columns: 1fr;
    }

    .registration-action-grid,
    .registration-action-grid-docs,
    .registration-action-grid-danger {
        grid-template-columns: 1fr;
    }

    .registration-action-card {
        min-height: auto;
    }
}

/* Phase UX inscriptions / étudiants */
.admin-tabbar {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    padding: .55rem;
    border: 1px solid var(--admin-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--admin-surface-soft) 78%, #fff);
}
.admin-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.6rem;
    padding: .65rem 1rem;
    border-radius: 999px;
    color: var(--admin-primary-strong);
    text-decoration: none;
    font-weight: 800;
    border: 1px solid transparent;
}
.admin-tab:hover,
.admin-tab.is-active {
    color: #fff;
    background: var(--admin-primary-strong);
    border-color: color-mix(in srgb, var(--admin-primary-strong) 75%, #fff);
    box-shadow: 0 10px 24px rgba(15, 52, 51, .14);
}
.school-summary-grid-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.admin-code-pill {
    display: block;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px dashed color-mix(in srgb, var(--admin-accent) 45%, var(--admin-border));
    background: var(--admin-surface-soft);
    color: var(--admin-primary-strong);
    font-weight: 800;
    line-height: 1.7;
    word-break: break-word;
}
.inscription-timeline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}
.timeline-step {
    position: relative;
    display: grid;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid var(--admin-border);
    border-radius: 1rem;
    background: var(--admin-surface-soft);
    color: var(--admin-muted);
}
.timeline-step span {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    color: var(--admin-primary-strong);
    font-weight: 900;
    border: 1px solid var(--admin-border);
}
.timeline-step strong { color: var(--admin-primary-strong); }
.timeline-step small { color: var(--admin-muted); line-height: 1.45; }
.timeline-step.is-done {
    background: color-mix(in srgb, var(--admin-accent) 11%, #fff);
    border-color: color-mix(in srgb, var(--admin-accent) 38%, var(--admin-border));
}
.timeline-step.is-current {
    box-shadow: 0 18px 38px rgba(15, 52, 51, .12);
    transform: translateY(-2px);
}
.timeline-step.is-rejected {
    background: #fff4f4;
    border-color: rgba(186, 26, 26, .25);
}
.timeline-step.is-rejected span { color: #ba1a1a; }
.timeline-step.is-muted { opacity: .55; }
.admin-actions-wide { gap: .7rem; align-items: center; }
.class-progress-box {
    min-height: 100%;
    display: grid;
    place-items: center;
    gap: 1rem;
    text-align: center;
}
.class-progress-ring {
    width: 9rem;
    height: 9rem;
    display: grid;
    place-content: center;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, var(--admin-surface) 55%, transparent 56%),
        conic-gradient(var(--admin-accent), color-mix(in srgb, var(--admin-primary-strong) 55%, var(--admin-accent)), var(--admin-border));
    box-shadow: inset 0 0 0 1px var(--admin-border), 0 18px 38px rgba(26, 43, 71, .08);
}
.class-progress-ring strong {
    color: var(--admin-primary-strong);
    font-family: "Noto Serif", serif;
    font-size: 2rem;
    line-height: 1;
}
.class-progress-ring span {
    color: var(--admin-muted);
    font-size: .78rem;
    font-weight: 800;
}
body.admin-theme-dark .admin-tabbar,
body.admin-theme-dark .admin-code-pill,
body.admin-theme-dark .timeline-step,
body.admin-theme-dark .class-progress-ring {
    background: rgba(255,255,255,.06);
}
@media (max-width: 1100px) {
    .school-summary-grid-four,
    .inscription-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .school-summary-grid-four,
    .inscription-timeline { grid-template-columns: 1fr; }
    .admin-tab { flex: 1 1 100%; }
}
