/*
 * CON8CT School Operations Visual System
 *
 * Authenticated-school and demo-presentation refinement layered on top of
 * con8ct.css. This file intentionally does not import USWDS/KRDS code. It
 * adapts their accessibility, continuity, token, and task-clarity principles
 * through CON8CT-owned components and tenant-safe semantic variables.
 */

.authenticated,
.demo-showcase-page {
    --ops-canvas: var(--c-auth-canvas, var(--c-bg));
    --ops-surface: var(--c-surface);
    --ops-surface-subtle: var(--c-surface-low);
    --ops-border: var(--c-surface-border, var(--c-line));
    --ops-border-strong: color-mix(in srgb, var(--c-outline) 76%, var(--c-line));
    --ops-radius-control: .625rem;
    --ops-radius-surface: .875rem;
    --ops-radius-panel: 1rem;
    --ops-control-height: 2.75rem;
    --ops-focus-width: .1875rem;
    --ops-focus-offset: .1875rem;
    --ops-page-gap: clamp(1rem, 1.7vw, 1.5rem);
    --ops-row-gap: .625rem;
    --ops-shadow-surface: 0 1px 2px rgba(18, 37, 27, .045), 0 4px 14px rgba(18, 37, 27, .035);
    --ops-shadow-raised: 0 8px 24px rgba(18, 37, 27, .075);
}

.authenticated[data-theme-preset="CLASSIC_ACADEMIC"] {
    --ops-radius-control: .4rem;
    --ops-radius-surface: .625rem;
    --ops-radius-panel: .75rem;
    --ops-shadow-surface: 0 1px 0 rgba(49, 54, 47, .065);
    --ops-shadow-raised: 0 4px 16px rgba(49, 54, 47, .075);
}

.authenticated[data-theme-preset="DARK"] {
    --ops-shadow-surface: 0 1px 2px rgba(0, 0, 0, .24);
    --ops-shadow-raised: 0 8px 28px rgba(0, 0, 0, .34);
}

/* Shell geometry and navigation styling are owned by con8ct.css.
   This later sheet only styles the operations content inside that shell. */

/* School-operations page pattern. */
.authenticated .school-ops-workbench {
    display: grid;
    gap: var(--ops-page-gap);
    inline-size: min(100%, 100rem);
}

.authenticated .school-ops-heading {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    margin: 0;
    padding: .25rem 0 1.125rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .school-ops-heading::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-end: -1px;
    inline-size: clamp(3.5rem, 8vw, 6.5rem);
    block-size: .1875rem;
    border-radius: 99rem;
    background: var(--role-accent);
}

.authenticated .school-ops-heading h1 {
    margin-block: .15rem .35rem;
    font-size: clamp(1.7rem, 2.4vw, 2rem);
    line-height: 1.12;
    letter-spacing: -.025em;
}

.authenticated .school-ops-heading .eyebrow {
    margin: 0;
    color: var(--role-accent);
}

.authenticated .school-ops-heading .admin-settings-heading__meta {
    margin-block-start: .75rem;
}

.authenticated .school-ops-workbench :is(.c-card, .c-surface, .panel) {
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .school-ops-workbench .c-card--tonal {
    background: color-mix(in srgb, var(--c-surface-low) 84%, var(--c-surface));
    box-shadow: none;
}

.authenticated .school-ops-workbench .admin-settings-layout {
    gap: 1rem;
}

.authenticated .school-ops-workbench .admin-settings-main,
.authenticated .school-ops-workbench .admin-settings-aside {
    gap: 1rem;
}

.authenticated .school-ops-workbench .admin-settings-section,
.authenticated .school-ops-workbench .admin-settings-form-card {
    padding: clamp(1rem, 1.7vw, 1.35rem);
}

.authenticated .school-ops-workbench .admin-settings-section__header {
    padding-block-end: .875rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .school-ops-workbench .admin-settings-section__header h2 {
    font-size: 1.125rem;
    letter-spacing: -.012em;
}

/* Dense management rows: scan like a table, reflow like cards on mobile. */
.authenticated .school-ops-workbench .admin-settings-list,
.authenticated .school-ops-workbench .management-list {
    display: grid;
    gap: var(--ops-row-gap);
    border-block-start: 0;
}

.authenticated .school-ops-workbench :is(.admin-settings-row, .management-row) {
    padding: .9rem 1rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface);
    transition: border-color var(--motion-micro), background var(--motion-micro), box-shadow var(--motion-micro);
}

.authenticated .school-ops-workbench :is(.admin-settings-row, .management-row):last-child {
    padding-block-end: .9rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .school-ops-workbench :is(.admin-settings-row, .management-row):hover,
.authenticated .school-ops-workbench :is(.admin-settings-row, .management-row):focus-within {
    border-color: color-mix(in srgb, var(--role-accent) 25%, var(--ops-border));
    background: color-mix(in srgb, var(--role-accent-soft) 24%, var(--c-surface));
    box-shadow: 0 2px 8px rgba(18, 37, 27, .045);
}

.authenticated .school-ops-workbench .admin-settings-row__meta,
.authenticated .school-ops-workbench .form-help,
.authenticated .school-ops-workbench .muted {
    color: var(--c-muted);
}

/* Controls and action hierarchy: USWDS/KRDS-informed task clarity, CON8CT-owned. */
.authenticated .button,
.demo-showcase-page .button {
    min-block-size: var(--ops-control-height);
    border-radius: var(--ops-radius-control);
    font-weight: 750;
    letter-spacing: -.005em;
}

.authenticated .button.primary,
.demo-showcase-page .button.primary {
    box-shadow: 0 1px 2px color-mix(in srgb, var(--brand-primary) 26%, transparent);
}

.authenticated .button.primary:hover,
.demo-showcase-page .button.primary:hover {
    box-shadow: var(--ops-shadow-raised);
}

.authenticated :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]),
.demo-showcase-page :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]) {
    min-block-size: var(--ops-control-height);
    border-color: var(--ops-border-strong);
    border-radius: var(--ops-radius-control);
}

.authenticated :is(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--c-danger);
    box-shadow: inset .1875rem 0 0 var(--c-danger);
}

.authenticated .field-error {
    display: block;
    padding-inline-start: .75rem;
    border-inline-start: .1875rem solid var(--c-danger);
    color: var(--c-danger);
    font-size: .8125rem;
    line-height: 1.45;
}

.authenticated :is(button, .button)[disabled],
.authenticated :is(button, .button)[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .58;
    box-shadow: none;
}

/* Alerts must communicate with shape and text, never color alone. */
.authenticated .alert,
.demo-showcase-page .alert {
    position: relative;
    padding: .9rem 1rem .9rem 1.15rem;
    border-width: 1px 1px 1px .3rem;
    border-style: solid;
    border-radius: var(--ops-radius-control);
    box-shadow: none;
}

.authenticated .alert p,
.demo-showcase-page .alert p {
    color: inherit;
}

.authenticated .alert--success { border-inline-start-color: var(--c-success); }
.authenticated .alert--info { border-inline-start-color: var(--c-info); }
.authenticated .alert--error { border-inline-start-color: var(--c-danger); }

.authenticated .c-chip {
    min-block-size: 1.75rem;
    padding: .2rem .625rem;
    border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    border-radius: 999rem;
    font-size: .6875rem;
    letter-spacing: .015em;
}

/* Admin command center: COLCA reference density without invented operational data. */
.authenticated .admin-dashboard--command-center.school-ops-workbench {
    gap: 1rem;
}

.authenticated .admin-dashboard--command-center .admin-dashboard__header {
    padding-block: .25rem 1rem;
}

.authenticated .admin-dashboard--command-center .admin-dashboard__subscription {
    border-radius: var(--ops-radius-control);
    background: var(--c-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .admin-dashboard--command-center .dashboard-kpi-grid {
    gap: .75rem;
}

.authenticated .admin-dashboard--command-center .dashboard-kpi {
    min-block-size: 6.55rem;
    padding: .9rem 1rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .admin-dashboard--command-center .dashboard-kpi:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--role-accent) 24%, var(--ops-border));
    box-shadow: var(--ops-shadow-raised);
}

.authenticated .admin-dashboard--command-center .dashboard-kpi__icon {
    inline-size: 2.75rem;
    block-size: 2.75rem;
}

.authenticated .admin-dashboard--command-center .dashboard-kpi strong {
    font-size: clamp(1.55rem, 2.5vw, 1.9rem);
}

.authenticated .admin-dashboard--command-center .dashboard-content-grid {
    gap: .875rem;
}

.authenticated .admin-dashboard--command-center .dashboard-action {
    border-radius: var(--ops-radius-control);
}

/* Demo meeting surface: platform-neutral evaluation mode with the same visual grammar. */
.demo-showcase-page {
    --c-auth-canvas: #f5f7f6;
    background: var(--c-auth-canvas);
}

.demo-showcase-page .demo-showcase {
    display: grid;
    gap: 1rem;
    inline-size: min(100%, 92rem);
}

.demo-showcase-page .c-status-hero {
    margin-block-end: 0;
    padding: clamp(1.35rem, 3vw, 2.2rem);
    border: 1px solid var(--c-line);
    border-radius: var(--ops-radius-panel);
    background: linear-gradient(135deg, color-mix(in srgb, var(--brand-primary-soft) 74%, white), var(--c-surface));
    box-shadow: var(--ops-shadow-surface);
}

.demo-showcase-page .c-card {
    border-color: var(--c-line);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.demo-showcase-page .demo-persona-grid {
    gap: 1rem;
    margin-block-end: 0;
}

.demo-showcase-page .demo-persona-card {
    align-content: start;
    padding: clamp(1rem, 2vw, 1.35rem);
}

.demo-showcase-page .demo-journey {
    min-block-size: 4.4rem;
    padding-block: .8rem;
}

.demo-showcase-page .demo-journey__copy span {
    line-height: 1.4;
}

.demo-showcase-page .demo-journey form {
    flex: 0 0 auto;
}

.demo-showcase-page .demo-journey .button {
    min-inline-size: 6.5rem;
    min-block-size: 2.75rem;
    border: 2px solid var(--persona-accent, var(--brand-primary));
    border-radius: .75rem;
    font-weight: 750;
    box-shadow: 0 .18rem .45rem color-mix(in srgb, var(--persona-accent, var(--brand-primary)) 14%, transparent);
}

.demo-showcase-page .demo-journey .button.tertiary {
    color: var(--persona-accent, var(--brand-primary));
    background: var(--c-surface);
}

.demo-showcase-page .demo-journey .button:is(:hover, :focus-visible) {
    transform: translateY(-1px);
    box-shadow: 0 .35rem .8rem color-mix(in srgb, var(--persona-accent, var(--brand-primary)) 22%, transparent);
}

@media (max-width: 30rem) {
    .demo-showcase-page .demo-journey {
        align-items: stretch;
        flex-direction: column;
        gap: .7rem;
    }
    .demo-showcase-page .demo-journey form,
    .demo-showcase-page .demo-journey .button {
        inline-size: 100%;
    }
}


/* Focus, zoom, motion and high-contrast resilience. */
.authenticated :is(a, button, input, select, textarea, summary):focus-visible,
.demo-showcase-page :is(a, button, input, select, textarea, summary):focus-visible {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

.authenticated :is(h1, h2, h3, [id]),
.demo-showcase-page :is(h1, h2, h3, [id]) {
    scroll-margin-block-start: calc(var(--topbar-height) + 1rem);
}

@media (prefers-contrast: more) {
    .authenticated,
    .demo-showcase-page {
        --ops-border: var(--c-outline);
        --ops-border-strong: var(--c-ink);
        --ops-shadow-surface: none;
        --ops-shadow-raised: none;
    }

    .authenticated .role-nav a[aria-current="page"] {
        border-color: var(--role-accent);
    }
}

@media (forced-colors: active) {
    .authenticated :is(.c-card, .c-surface, .panel, .dashboard-kpi, .admin-settings-row, .management-row),
    .demo-showcase-page :is(.c-card, .c-status-hero) {
        border: 1px solid CanvasText;
        box-shadow: none;
    }

    .authenticated .role-nav a[aria-current="page"] {
        border: 2px solid Highlight;
        box-shadow: none;
    }

    .authenticated :is(.c-chip, .alert),
    .demo-showcase-page :is(.c-chip, .alert) {
        border: 1px solid CanvasText;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .school-ops-workbench *,
    .demo-showcase-page * {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }

    .authenticated .admin-dashboard--command-center .dashboard-kpi:hover {
        transform: none;
    }
}

@media (max-width: 64rem) {
    .authenticated .school-ops-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .authenticated .school-ops-workbench .admin-settings-aside {
        position: static;
    }
}

@media (max-width: 48rem) {
    .authenticated .dashboard-shell.school-ops-workbench {
        padding-inline: 1rem;
    }

    .authenticated .school-ops-heading {
        padding-block-start: 0;
    }

    .authenticated .school-ops-workbench :is(.admin-settings-row, .management-row) {
        padding: .875rem;
    }

    .authenticated .mobile-nav {
        padding-block-end: max(.25rem, env(safe-area-inset-bottom));
        border-block-start-color: var(--ops-border);
        background: color-mix(in srgb, var(--c-surface) 96%, transparent);
        backdrop-filter: blur(.8rem);
    }

    .authenticated .page-column {
        padding-block-end: env(safe-area-inset-bottom);
    }
}

@media (max-width: 30rem) {
    .authenticated .school-ops-workbench .admin-settings-row__actions,
    .authenticated .school-ops-workbench .admin-settings-row__actions form,
    .authenticated .school-ops-workbench .admin-settings-row__actions .button,
    .authenticated .school-ops-workbench .management-row > .cluster,
    .authenticated .school-ops-workbench .management-row > .cluster form,
    .authenticated .school-ops-workbench .management-row > .cluster .button {
        inline-size: 100%;
    }

    .authenticated .school-ops-workbench .admin-settings-row__actions,
    .authenticated .school-ops-workbench .management-row > .cluster {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }
}

@media print {
    .authenticated .role-rail,
    .authenticated .topbar,
    .authenticated .mobile-nav,
    .authenticated .demo-app-banner,
    .authenticated .button,
    .authenticated form {
        display: none !important;
    }

    .authenticated .app-shell {
        display: block;
    }

    .authenticated .dashboard-shell {
        inline-size: 100%;
        max-inline-size: none;
        padding: 0;
    }

    .authenticated :is(.c-card, .c-surface, .panel, .dashboard-kpi, .admin-settings-row, .management-row) {
        break-inside: avoid;
        border-color: var(--c-muted);
        box-shadow: none;
    }
}

/* Premium V2 documents and official-record compositions. */
.authenticated .content-workbench--documents .premium-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.authenticated .content-workbench--documents { gap: 14px; }
.authenticated .content-workbench--documents .premium-hero { min-block-size: 206px; }
.authenticated .content-workbench--documents .premium-metrics { gap: 10px; }
.authenticated .content-workbench--documents .premium-metric { min-block-size: 100px; padding: 19px 17px; }
.authenticated .documents-module-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding: 5px; border: 1px solid var(--c-line); border-radius: 10px; background: var(--c-surface); }
.authenticated .documents-module-nav a { min-block-size: 36px; padding: 9px 12px; border-radius: 7px; color: var(--c-muted); font-size: 11px; text-decoration: none; }
.authenticated .documents-module-nav a[aria-current="page"] { background: var(--brand-primary); color: var(--brand-on-primary); font-weight: 700; }
.authenticated .document-preview__toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.authenticated .document-preview__context { margin: 0; color: var(--c-muted); font-size: 12px; }
.authenticated .document-preview__context strong { color: var(--c-ink); }
.authenticated .document-preview__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.authenticated .document-preview__rail { display: grid; gap: 20px; align-content: start; }
.authenticated .document-preview__stage { padding: 30px; background: var(--c-surface-low); }
.authenticated .document-preview__frame { display: block; inline-size: min(100%, 690px); block-size: 790px; margin-inline: auto; border: 0; background: var(--c-surface); box-shadow: var(--shadow-soft); }
.authenticated .document-preview__text { inline-size: min(100%, 690px); margin: 16px auto 0; border: 1px solid var(--c-line); border-radius: 9px; background: var(--c-surface); }
.authenticated .document-preview__text > summary { padding: 12px 14px; color: var(--brand-primary); font-weight: 700; cursor: pointer; }
.authenticated .document-preview__text > :not(summary) { margin: 0; padding: 14px; border-block-start: 1px solid var(--c-line); }
.authenticated .document-preview__text pre { white-space: pre-wrap; overflow-wrap: anywhere; font: 400 13px/1.75 var(--premium-body-font); }
.authenticated .document-preview__review .detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.authenticated .document-preview__review .detail-list > div { display: block; }
.authenticated .document-preview__review .detail-list dt { font-size: 10px; }
.authenticated .document-preview__review .detail-list dd { margin: 4px 0 0; font-size: 12px; }
.authenticated .document-history-timeline { display: grid; gap: 0; margin: 0 0 14px; padding: 0; list-style: none; }
.authenticated .document-history-timeline li { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; padding-block: 6px 12px; color: var(--c-muted); }
.authenticated .document-history-timeline li:not(:last-child)::after { position: absolute; inset: 18px auto 0 6px; inline-size: 2px; background: var(--c-line); content: ""; }
.authenticated .document-history-timeline__marker { z-index: 1; inline-size: 14px; block-size: 14px; border: 3px solid var(--c-surface); border-radius: 50%; background: var(--c-muted); box-shadow: 0 0 0 1px var(--c-line); }
.authenticated .document-history-timeline .is-current .document-history-timeline__marker { background: var(--brand-primary); }
.authenticated .document-history-timeline strong, .authenticated .document-history-timeline span { display: block; font-size: 11px; }
.authenticated .document-history-timeline__reason { margin: 6px 0 0; color: var(--c-ink); font-size: 11px; line-height: 1.5; }
.authenticated .documents-workspace-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border: 1px solid var(--c-line); border-radius: 12px; background: var(--c-surface); }
.authenticated .documents-workspace-actions p { margin: 0; color: var(--c-muted); font-size: 12px; }
.authenticated .documents-workspace-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
.authenticated .documents-capabilities, .authenticated .official-records__create { border: 1px solid var(--c-line); border-radius: 12px; background: var(--c-surface); }
.authenticated :is(.documents-capabilities, .official-records__create) > summary { padding: 14px 18px; color: var(--brand-primary); font-weight: 700; cursor: pointer; }
.authenticated :is(.documents-capabilities, .official-records__create)[open] > summary { border-block-end: 1px solid var(--c-line); }
.authenticated .documents-capabilities > :not(summary), .authenticated .official-records__create > :not(summary) { margin: 16px; }
.authenticated .documents-workspace th a, .authenticated .official-records__table th a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.authenticated .documents-workspace { display: grid; gap: 14px; min-inline-size: 0; }
.authenticated .documents-workspace__main { padding: 0 16px 16px; }
.authenticated .documents-workspace__main .module-tabs { margin-inline: -16px; padding-inline: 16px; }
.authenticated .documents-workspace__main .module-tabs .tab.active { color: var(--brand-primary); font-weight: 750; }
.authenticated .documents-workspace__main .toolbar { margin-block: 16px; }
.authenticated .documents-workspace__filter { display: grid; grid-template-columns: minmax(14rem, 1fr) repeat(2, minmax(12rem, .7fr)) minmax(10rem, .55fr); align-items: end; gap: 10px; }
.authenticated .documents-workspace__filter > :is(input,select) { inline-size: 100%; min-inline-size: 0; }
.authenticated .documents-workspace__filter-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.authenticated .document-row-identity { display: flex; align-items: center; gap: 10px; min-inline-size: 12rem; }
.authenticated .document-row-identity__mark { display: grid; place-items: center; flex: 0 0 34px; block-size: 34px; border-radius: 50%; background: var(--c-surface-low); color: var(--brand-primary); font-weight: 800; }
.authenticated .document-row-identity strong,.authenticated .document-row-identity small { display: block; }
.authenticated .document-row-identity small { margin-block-start: 2px; color: var(--c-muted); font-size: 10px; }
.authenticated main :is(a,button,summary,input,select,textarea):focus-visible { outline: 3px solid var(--brand-focus); outline-offset: 3px; }
.authenticated .documents-workspace__main .premium-scroll { border-radius: 10px; }
.authenticated .table-scroll-hint { margin: 0 0 8px; color: var(--c-muted); font-size: 11px; }
.authenticated .documents-lifecycle { margin: 0; padding: 4px 20px 20px 54px; list-style: none; }
.authenticated .documents-lifecycle li { position: relative; padding: 16px 0; border-block-end: 1px solid var(--c-line); }
.authenticated .documents-lifecycle li::before { position: absolute; inset: 14px auto auto -38px; display: grid; place-items: center; inline-size: 25px; block-size: 25px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-surface-low); color: var(--brand-primary); font-size: 10px; font-weight: 800; content: attr(data-step); }
.authenticated .documents-lifecycle li:not(:last-child)::after { position: absolute; inset: 39px auto -1px -26px; inline-size: 1px; background: var(--c-line); content: ""; }
.authenticated .documents-lifecycle li:last-child { border-block-end: 0; }
.authenticated .documents-lifecycle strong, .authenticated .documents-lifecycle span { display: block; }
.authenticated .documents-lifecycle strong { margin-block-end: 5px; font-size: 12px; }
.authenticated .documents-lifecycle span { color: var(--c-muted); font-size: 11px; line-height: 1.55; }
.authenticated .official-records__controlled { display: flex; align-items: center; gap: 14px; padding: 17px 20px; border-radius: 12px; }
.authenticated .official-records__controlled > svg { flex: 0 0 32px; inline-size: 32px; block-size: 32px; stroke-width: 1.7; }
.authenticated .official-records__controlled > span > * { display: block; }
.authenticated .official-records__controlled strong { margin-block-end: 3px; }
.authenticated .official-records__table { padding: 14px 0 0; }
.authenticated .official-records__table > :is(.c-card__header, .filter-bar, .empty-state, .pagination) { margin-inline: 16px; }
.authenticated .official-records__table .filter-bar { display: grid; grid-template-columns: minmax(12rem, 1.35fr) repeat(2,minmax(10.5rem,.85fr)) minmax(9rem,.65fr); align-items: end; gap: 10px; margin-block-end: 14px; }
.authenticated .official-records__table .filter-bar label { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.authenticated .official-records__table .filter-bar :is(input, select) { min-inline-size: 0; inline-size: 100%; }
.authenticated .official-records__filter-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; align-items: stretch; flex-wrap: wrap; gap: 8px; min-inline-size: 0; }
.authenticated .official-records__filter-actions :is(.button, .premium-button) { flex: 1 1 auto; overflow-wrap: normal; white-space: nowrap; }
.authenticated .official-records__table .table-responsive { overflow: auto; max-block-size: 360px; border-block: 1px solid var(--c-line); overscroll-behavior: contain; }
.authenticated .official-records__table table { min-inline-size: 900px; }
.authenticated :is(.documents-workspace__main .premium-scroll,.official-records__scroll) td:last-child { position: sticky; inset-inline-end: 0; background: var(--c-surface); box-shadow: -8px 0 12px color-mix(in srgb, var(--c-ink) 7%, transparent); }
.authenticated .official-record-preview .document-preview__layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 20px; align-items: start; }
.authenticated .official-record-preview .document-preview__rail > .c-card { padding: 0 20px 20px; }
.authenticated .official-record-preview .document-preview__rail > .c-card > .c-card__header { margin-inline: -20px; padding-inline: 20px; }
.authenticated .official-record-preview .document-preview__rail form { display: grid; gap: 7px; margin-block: 16px 0; }
.authenticated .official-record-preview .document-preview__rail :is(input,select,textarea) { inline-size: 100%; min-inline-size: 0; }
.authenticated .official-record-lineage { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.authenticated .official-record-lineage li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; padding-block: 12px; border-block-end: 1px solid var(--c-line); }
.authenticated .official-record-lineage li:last-child { border-block-end: 0; }
.authenticated .official-record-lineage__digest,.authenticated .official-record-lineage__reason { grid-column: 1 / -1; color: var(--c-muted); font-size: 10px; overflow-wrap: anywhere; }
@media (max-width: 1199px) { .authenticated .content-workbench--documents .premium-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1199px) { .authenticated :is(.official-records__table .filter-bar,.documents-workspace__filter) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) and (max-width: 1199px) { .authenticated .document-preview .document-preview__rail { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
    .authenticated .content-workbench--documents .premium-metrics { grid-template-columns: minmax(0, 1fr); }
    .authenticated .document-preview__toolbar { align-items: stretch; }
    .authenticated .document-preview__actions { inline-size: 100%; }
    .authenticated .document-preview__actions > * { flex: 1 1 100%; }
    .authenticated .document-preview__stage { padding: 12px; }
    .authenticated .document-preview__frame { block-size: 620px; }
    .authenticated .document-preview__review .detail-list { grid-template-columns: minmax(0, 1fr); }
    .authenticated .documents-module-nav { flex-wrap: wrap; overflow: visible; }
    .authenticated .documents-module-nav a { flex: 1 1 min(10rem, 100%); white-space: normal; text-align: center; }
    .authenticated .documents-workspace-actions { align-items: stretch; flex-direction: column; }
    .authenticated .documents-workspace-actions > div > * { flex: 1 1 10rem; }
    .authenticated :is(.documents-workspace__filter,.official-records__table .filter-bar) { grid-template-columns: minmax(0, 1fr); }
    .authenticated .official-records__filter-actions { flex-wrap: wrap; }
    .authenticated .official-records__controlled { align-items: flex-start; }
    .authenticated .official-record-preview .document-preview__layout { grid-template-columns: minmax(0,1fr); }
    .authenticated .official-record-preview .document-preview__rail .button { inline-size: 100%; }
    .authenticated :is(.documents-workspace__main .premium-scroll,.official-records__table .table-responsive) {
        max-block-size: none;
        overflow: visible;
        border: 0;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) .table-scroll-hint { display: none; }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] {
        display: block;
        min-inline-size: 0;
        inline-size: 100%;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] caption {
        display: block;
        inline-size: 100%;
        padding-block-end: 8px;
        text-align: start;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] thead {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] :is(tbody,tr,td) { display: block; }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] tr {
        margin-block-end: 12px;
        border: 1px solid var(--c-line);
        border-radius: 10px;
        background: var(--c-surface);
        overflow: hidden;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] td {
        display: grid;
        grid-template-columns: minmax(7rem, .42fr) minmax(0, 1fr);
        align-items: center;
        gap: 12px;
        min-inline-size: 0;
        padding: 11px 12px;
        border-block-end: 1px solid var(--c-line);
        overflow-wrap: anywhere;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] td::before {
        color: var(--c-muted);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
        content: attr(data-mobile-label);
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] td:last-child {
        position: static;
        border-block-end: 0;
        background: transparent;
        box-shadow: none;
    }
    .authenticated :is(.documents-workspace__main,.official-records__table) table[data-mobile-layout="cards"] td:last-child .button { inline-size: 100%; }
    .authenticated :is(.documents-workspace__main,.official-records__table) .document-row-identity { min-inline-size: 0; }
}

.authenticated :lang(ko) :is(.premium-hero__copy,.documents-workspace-actions,.documents-lifecycle,.official-records__controlled,.document-preview__context,.document-preview__review,.document-preview__history) { word-break: keep-all; overflow-wrap: normal; line-break: strict; }
.authenticated :lang(es) .content-workbench--documents .premium-metric { align-items: flex-start; }
.authenticated :lang(es) .content-workbench--documents .premium-metric p { line-height: 1.35; overflow-wrap: normal; }

/* UI9B — role workspace convergence.
 * The role dashboards reuse canonical dashboard data while adapting the
 * School Operations visual grammar to classroom, family, and student tasks.
 */
.authenticated .role-workspace {
    gap: var(--ops-page-gap);
    inline-size: min(100%, 100rem);
}

.authenticated .role-workspace__heading {
    position: relative;
    margin: 0;
    padding: .25rem 0 1rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .role-workspace__heading::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-end: -1px;
    inline-size: clamp(3.25rem, 7vw, 5.5rem);
    block-size: .1875rem;
    border-radius: 99rem;
    background: var(--role-accent);
}

.authenticated .role-workspace__heading h1 {
    margin-block: .15rem .35rem;
    font-size: clamp(1.7rem, 2.35vw, 2rem);
    letter-spacing: -.026em;
}

.authenticated .role-workspace__heading .eyebrow {
    color: var(--role-accent);
}

.authenticated .role-workspace__heading .role-dashboard__status {
    align-content: start;
}

.authenticated .role-workspace__metric-strip {
    gap: .75rem;
}

.authenticated .role-workspace__metric-strip .dashboard-kpi {
    min-block-size: 6.35rem;
    padding: .85rem .9rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .role-workspace__metric-strip .dashboard-kpi:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--role-accent) 24%, var(--ops-border));
    box-shadow: var(--ops-shadow-raised);
}

.authenticated .role-workspace__metric-strip .dashboard-kpi__icon {
    inline-size: 2.6rem;
    block-size: 2.6rem;
    color: var(--role-accent);
    background: var(--role-accent-soft);
}

.authenticated .role-workspace__metric-strip .dashboard-kpi__icon svg {
    inline-size: 1.45rem;
    block-size: 1.45rem;
}

.authenticated .role-workspace__metric-strip .dashboard-kpi strong {
    font-size: clamp(1.45rem, 2vw, 1.75rem);
}

.authenticated .role-workspace__metric-strip .dashboard-kpi small {
    line-height: 1.3;
}

.authenticated .role-workspace__launch-panel,
.authenticated .role-workspace__panel {
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .role-workspace__launch-panel {
    padding: .95rem 1rem 1rem;
}

.authenticated .role-workspace__launch-panel .dashboard-panel__header,
.authenticated .role-workspace__panel .dashboard-panel__header {
    margin-block-end: .75rem;
    padding-block-end: .75rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .role-workspace__launch-panel .dashboard-panel__header h2,
.authenticated .role-workspace__panel .dashboard-panel__header h2,
.authenticated .role-workspace__identity-region .dashboard-panel__header h2 {
    font-size: 1.08rem;
    letter-spacing: -.012em;
}

.authenticated .role-workspace__launch-strip {
    gap: .625rem;
}

.authenticated .role-workspace__launch-strip .dashboard-action {
    min-block-size: 4rem;
    padding: .7rem .8rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--c-surface) 94%, var(--role-accent-soft));
    box-shadow: none;
}

.authenticated .role-workspace__launch-strip .dashboard-action:hover,
.authenticated .role-workspace__launch-strip .dashboard-action:focus-visible {
    border-color: color-mix(in srgb, var(--role-accent) 34%, var(--ops-border));
    background: color-mix(in srgb, var(--role-accent-soft) 62%, var(--c-surface));
}

.authenticated .role-workspace__launch-strip .dashboard-action__marker {
    inline-size: 2.2rem;
    block-size: 2.2rem;
    color: var(--role-accent);
    border-color: color-mix(in srgb, var(--role-accent) 18%, var(--ops-border));
    background: var(--c-surface);
}

.authenticated .role-workspace__primary-grid,
.authenticated .role-workspace__supporting-grid {
    gap: .875rem;
}

.authenticated .role-workspace__panel {
    padding: 1rem;
}

.authenticated .role-workspace__panel--focus {
    background: linear-gradient(145deg, var(--c-surface), color-mix(in srgb, var(--role-accent-soft) 30%, var(--c-surface)));
}

.authenticated .role-workspace__panel--attention {
    border-block-start-color: color-mix(in srgb, var(--brand-accent) 38%, var(--ops-border));
}

.authenticated .role-workspace__panel--supporting {
    background: color-mix(in srgb, var(--c-surface-low) 28%, var(--c-surface));
}

/* Teacher: compact command view for the active school day. */
.authenticated .role-workspace--teacher .teacher-dashboard__kpis {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.authenticated .role-workspace--teacher .teacher-dashboard__actions {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.authenticated .role-workspace--teacher .teacher-dashboard-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

.authenticated .role-workspace--teacher .teacher-dashboard-row,
.authenticated .role-workspace--teacher .teacher-focus-card {
    border-color: var(--ops-border);
}

.authenticated .role-workspace--teacher .teacher-dashboard-row__marker {
    color: var(--role-accent);
    background: var(--role-accent-soft);
}

.authenticated .role-workspace--teacher .teacher-dashboard-row__marker--assignment {
    color: color-mix(in srgb, var(--brand-accent) 72%, var(--c-ink));
    background: var(--brand-accent-soft);
}

.authenticated .role-workspace--teacher .teacher-dashboard__focus {
    border-inline-start: .2rem solid color-mix(in srgb, var(--role-accent) 42%, var(--ops-border));
}

/* Parent: family identity first, then explicit attention and next actions. */
.authenticated .role-workspace--parent .role-workspace__identity-region {
    display: grid;
    gap: .75rem;
}

.authenticated .role-workspace--parent .parent-dashboard__section-header {
    margin-block-end: 0;
    padding-block-end: .75rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .role-workspace--parent .parent-dashboard__children {
    gap: .75rem;
}

.authenticated .role-workspace--parent .parent-child-card {
    min-block-size: 9.2rem;
    padding: .9rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .role-workspace--parent .parent-child-card__avatar {
    inline-size: 3.15rem;
    block-size: 3.15rem;
    color: var(--c-surface);
    background: var(--role-accent);
    box-shadow: inset 0 0 0 .18rem color-mix(in srgb, var(--c-surface) 62%, transparent);
}

.authenticated .role-workspace--parent .parent-child-card__summary {
    border-block-start-color: var(--ops-border);
}

.authenticated .role-workspace--parent .parent-child-card > a {
    min-block-size: var(--ops-control-height);
    border: 1px solid color-mix(in srgb, var(--role-accent) 18%, var(--ops-border));
    border-radius: var(--ops-radius-control);
    color: var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 58%, var(--c-surface));
}

.authenticated .role-workspace--parent .role-workspace__attention {
    margin-block: 0;
}

.authenticated .role-workspace--parent .role-workspace__attention-card {
    min-block-size: 5.6rem;
    padding: .85rem 1rem;
    border-color: color-mix(in srgb, var(--c-warning) 28%, var(--ops-border));
    border-inline-start: .25rem solid var(--c-warning);
    box-shadow: none;
}

.authenticated .role-workspace--parent .parent-dashboard__actions {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.authenticated .role-workspace--parent .parent-dashboard-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

.authenticated .role-workspace--parent .parent-absence-card {
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--c-surface-low) 55%, var(--c-surface));
}

/* Student: calm, touch-first learning view with one compact identity cue. */
.authenticated .role-workspace__student-identity {
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: end;
    column-gap: .55rem;
}

.authenticated .role-workspace__avatar {
    grid-row: 1 / span 3;
    inline-size: 3.2rem;
    block-size: 3.2rem;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--role-accent) 25%, var(--ops-border));
    border-radius: 50%;
    color: var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 70%, var(--c-surface));
    font-size: 1.2rem;
    font-weight: 850;
}

.authenticated .role-workspace--student .student-dashboard__kpis {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.authenticated .role-workspace--student .student-dashboard__actions {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.authenticated .role-workspace--student .student-dashboard-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

.authenticated .role-workspace--student .student-focus-card,
.authenticated .role-workspace--student .student-dashboard-row {
    border-color: var(--ops-border);
}

.authenticated .role-workspace--student .student-dashboard-row__marker,
.authenticated .role-workspace--student .student-dashboard-row__marker--focus {
    color: var(--role-accent);
    background: var(--role-accent-soft);
}

.authenticated .role-workspace--student .student-dashboard-row__date {
    border: 1px solid color-mix(in srgb, var(--brand-accent) 18%, var(--ops-border));
    background: color-mix(in srgb, var(--brand-accent-soft) 68%, var(--c-surface));
}

.authenticated .role-workspace--student .student-grade-score {
    color: var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 66%, var(--c-surface));
}

@media (max-width: 64rem) {
    .authenticated .role-workspace--teacher .teacher-dashboard__kpis,
    .authenticated .role-workspace--student .student-dashboard__kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .authenticated .role-workspace--teacher .teacher-dashboard__actions,
    .authenticated .role-workspace--student .student-dashboard__actions,
    .authenticated .role-workspace--parent .parent-dashboard__actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .authenticated .role-workspace {
        gap: .875rem;
    }

    .authenticated .role-workspace__heading {
        gap: .75rem;
        padding-block-start: 0;
    }

    .authenticated .role-workspace__heading .role-dashboard__status {
        inline-size: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: .5rem;
        text-align: start;
    }

    .authenticated .role-workspace__heading .role-dashboard__status .button {
        margin-inline-start: auto;
    }

    .authenticated .role-workspace__metric-strip {
        grid-auto-flow: column;
        grid-auto-columns: minmax(10.75rem, 72vw);
        grid-template-columns: none !important;
        overflow-x: auto;
        margin-inline-end: -1rem;
        padding: .05rem 1rem .45rem 0;
        scroll-snap-type: inline proximity;
        scrollbar-width: thin;
        overscroll-behavior-inline: contain;
    }

    .authenticated .role-workspace__metric-strip .dashboard-kpi {
        min-block-size: 6.7rem;
        scroll-snap-align: start;
    }

    .authenticated .role-workspace__launch-panel {
        padding: .85rem;
    }

    .authenticated .role-workspace__launch-strip {
        grid-auto-flow: column;
        grid-auto-columns: minmax(9.25rem, 58vw);
        grid-template-columns: none !important;
        overflow-x: auto;
        margin-inline-end: -.85rem;
        padding-block-end: .35rem;
        padding-inline-end: .85rem;
        scroll-snap-type: inline proximity;
        scrollbar-width: thin;
        overscroll-behavior-inline: contain;
    }

    .authenticated .role-workspace__launch-strip .dashboard-action {
        scroll-snap-align: start;
    }

    .authenticated .role-workspace__primary-grid,
    .authenticated .role-workspace__supporting-grid,
    .authenticated .role-workspace--teacher .teacher-dashboard-grid,
    .authenticated .role-workspace--parent .parent-dashboard-grid,
    .authenticated .role-workspace--student .student-dashboard-grid,
    .authenticated .role-workspace--parent .parent-absence-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .role-workspace--parent .parent-dashboard__children {
        grid-auto-columns: minmax(15rem, 78vw);
        margin-inline-end: -1rem;
        padding-inline-end: 1rem;
    }

    .authenticated .role-workspace--parent .parent-child-card {
        min-block-size: 9rem;
    }

    .authenticated .role-workspace__student-identity {
        inline-size: 100%;
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto;
        justify-content: stretch !important;
    }

    .authenticated .role-workspace__student-identity .role-workspace__avatar {
        grid-row: 1 / span 2;
    }

    .authenticated .role-workspace__student-identity .c-chip {
        justify-self: start;
    }

    .authenticated .role-workspace__student-identity .button {
        grid-column: 3;
        grid-row: 1 / span 2;
        align-self: center;
        margin-inline-start: 0 !important;
    }
}

@media (max-width: 30rem) {
    .authenticated .role-workspace__heading h1 {
        font-size: 1.65rem;
    }

    .authenticated .role-workspace__heading .role-dashboard__status .button {
        inline-size: 100%;
        margin-inline-start: 0;
    }

    .authenticated .role-workspace__panel,
    .authenticated .role-workspace__launch-panel {
        padding: .85rem;
    }

    .authenticated .role-workspace__metric-strip {
        grid-auto-columns: minmax(10rem, 76vw);
    }

    .authenticated .role-workspace__launch-strip {
        grid-auto-columns: minmax(8.75rem, 62vw);
    }

    .authenticated .role-workspace--parent .role-workspace__attention-card {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .authenticated .role-workspace--parent .role-workspace__attention-card .dashboard-kpi__icon {
        display: none;
    }

    .authenticated .role-workspace__student-identity {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .role-workspace__student-identity .button {
        grid-column: 1 / -1;
        grid-row: auto;
        inline-size: 100%;
    }
}

@media (forced-colors: active) {
    .authenticated .role-workspace :is(.dashboard-panel, .parent-child-card, .parent-absence-card) {
        border: 1px solid CanvasText;
        box-shadow: none;
    }

    .authenticated .role-workspace__heading::before {
        background: Highlight;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .role-workspace * {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }

    .authenticated .role-workspace__metric-strip .dashboard-kpi:hover {
        transform: none;
    }
}

@media print {
    .authenticated .role-workspace :is(.dashboard-panel, .parent-child-card, .parent-absence-card) {
        break-inside: avoid;
        border-color: #777;
        box-shadow: none;
    }
}

/* ==========================================================================
   UI9C — Core role workflow workbenches
   Dashboard polish now continues into the high-frequency Teacher, Parent and
   Student task surfaces without creating a second data or authorization layer.
   ========================================================================== */

.authenticated .role-workflow {
    inline-size: min(100%, 88rem);
    margin-inline: auto;
    padding-block-end: clamp(1.5rem, 3vw, 3rem);
    gap: 1rem;
}

.authenticated .role-workflow--form,
.authenticated .role-workflow--conversation {
    inline-size: min(100%, 64rem);
}

.authenticated .role-workflow__hero {
    position: relative;
    min-block-size: 0;
    overflow: hidden;
    padding: clamp(1.15rem, 2vw, 1.65rem) clamp(1.15rem, 2.4vw, 2rem);
    border: 1px solid color-mix(in srgb, var(--role-accent) 24%, var(--c-surface-border));
    border-radius: var(--ops-radius-panel, 1.1rem);
    background:
        linear-gradient(120deg,
            color-mix(in srgb, var(--role-accent-soft) 52%, var(--c-surface)) 0%,
            var(--c-surface) 68%) !important;
    box-shadow: var(--ops-shadow-surface, var(--auth-surface-shadow));
}

.authenticated .role-workflow__hero::after {
    content: "";
    position: absolute;
    inset-block: .8rem;
    inset-inline-start: 0;
    inline-size: .24rem;
    border-radius: 0 999px 999px 0;
    background: var(--role-accent);
}

.authenticated .role-workflow__hero :is(h1, h2, p) {
    max-inline-size: 62rem;
}

.authenticated .role-workflow__hero h1 {
    margin-block: .18rem .35rem;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    letter-spacing: -.022em;
}

.authenticated .role-workflow__hero .eyebrow {
    color: color-mix(in srgb, var(--role-accent) 78%, var(--c-ink));
}

.authenticated .role-workflow__surface,
.authenticated .role-workflow > .c-card,
.authenticated .role-workflow > aside.c-card {
    border-color: var(--c-surface-border);
    border-radius: var(--ops-radius-panel, 1rem);
    background: var(--c-surface);
    box-shadow: var(--ops-shadow-surface, var(--auth-surface-shadow));
}

.authenticated .role-workflow__surface--primary {
    border-color: color-mix(in srgb, var(--role-accent) 20%, var(--c-surface-border));
}

.authenticated .role-workflow__surface--empty {
    background: color-mix(in srgb, var(--role-accent-soft) 26%, var(--c-surface));
}

.authenticated .role-workflow :is(.c-card__header, .admin-settings-section__header) {
    align-items: flex-start;
    gap: .8rem;
}

.authenticated .role-workflow :is(.c-card__header, .admin-settings-section__header) h2 {
    margin-block: .12rem .18rem;
}

.authenticated .role-workflow .c-action-item {
    min-inline-size: 0;
}

.authenticated .role-workflow :is(input, select, textarea) {
    border-color: var(--c-control-border);
    background: var(--c-surface);
}

.authenticated .role-workflow :is(input, select, textarea):focus-visible {
    border-color: var(--brand-focus);
    outline: 3px solid color-mix(in srgb, var(--brand-focus) 34%, transparent);
    outline-offset: 1px;
}

.authenticated .role-workflow .button {
    min-block-size: var(--target-min, 2.75rem);
}

/* Teacher — attendance launch and daily roster. */
.authenticated .role-workflow--attendance .role-workflow__launch-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: .8rem;
}

.authenticated .role-workflow--attendance .role-workflow__launch-card {
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: .45rem;
    min-block-size: 10rem;
    padding: 1rem;
    border-color: color-mix(in srgb, var(--role-accent) 18%, var(--c-surface-border));
    background: color-mix(in srgb, var(--role-accent-soft) 20%, var(--c-surface));
    box-shadow: none;
}

.authenticated .role-workflow--attendance .role-workflow__launch-card .button {
    justify-self: start;
    margin-block-start: .4rem;
}

.authenticated .role-workflow__context-bar {
    padding: 1rem 1.1rem;
    background: color-mix(in srgb, var(--role-accent-soft) 15%, var(--c-surface));
}

.authenticated .role-workflow--attendance-detail .role-workflow__context-bar .form-stack {
    display: grid;
    grid-template-columns: minmax(12rem, 18rem) auto;
    align-items: end;
    gap: .75rem;
    max-inline-size: 32rem;
}

.authenticated .role-workflow--attendance-detail .role-workflow__context-bar .form-stack > :first-child {
    grid-column: 1 / -1;
}

.authenticated .role-workflow--attendance-detail .role-workflow__roster-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, 17rem);
    align-items: center;
    gap: .8rem 1.25rem;
    padding: .9rem .2rem;
    border: 0;
    border-block-end: 1px solid var(--c-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.authenticated .role-workflow--attendance-detail .role-workflow__roster-row:last-of-type {
    border-block-end: 0;
}

.authenticated .role-workflow--attendance-detail .role-workflow__roster-row > label {
    margin: 0;
    color: var(--c-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.authenticated .role-workflow--attendance-detail .role-workflow__roster-row > select {
    grid-column: 2;
    inline-size: 100%;
    min-block-size: var(--target-min, 2.75rem);
}

.authenticated .role-workflow__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    padding-block-start: .8rem;
    border-block-start: 1px solid var(--c-line);
}

/* Teacher — gradebook: context first, then dense but readable entry grid. */
.authenticated .role-workflow--gradebook .role-workflow__context-bar .form-stack {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) auto;
    align-items: end;
    gap: .75rem;
}

.authenticated .role-workflow--gradebook .role-workflow__context-bar .button {
    align-self: end;
}

.authenticated .role-workflow--gradebook .role-workflow__table-wrap {
    overflow: auto;
    max-inline-size: 100%;
    border: 1px solid var(--c-surface-border);
    border-radius: .85rem;
    background: var(--c-surface);
    scrollbar-gutter: stable;
}

.authenticated .role-workflow--gradebook .role-workflow__table-wrap:focus-visible {
    outline: 3px solid var(--brand-focus);
    outline-offset: 3px;
}

.authenticated .role-workflow--gradebook .role-workflow__data-table {
    min-inline-size: 48rem;
    margin: 0;
}

.authenticated .role-workflow--gradebook .role-workflow__data-table th {
    position: sticky;
    inset-block-start: 0;
    z-index: 2;
    background: var(--c-surface-mid);
}

.authenticated .role-workflow--gradebook .role-workflow__data-table :is(th, td):first-child {
    position: sticky;
    inset-inline-start: 0;
    z-index: 1;
    min-inline-size: 12rem;
    background: var(--c-surface);
}

.authenticated .role-workflow--gradebook .role-workflow__data-table th:first-child {
    z-index: 3;
    background: var(--c-surface-mid);
}

.authenticated .role-workflow--gradebook .role-workflow__data-table tbody tr:hover td {
    background: color-mix(in srgb, var(--role-accent-soft) 24%, var(--c-surface));
}

.authenticated .role-workflow--gradebook .role-workflow__data-table tbody tr:hover td:first-child {
    background: color-mix(in srgb, var(--role-accent-soft) 34%, var(--c-surface));
}

.authenticated .role-workflow--gradebook .role-workflow__data-table input[type="number"] {
    min-inline-size: 7rem;
}

.authenticated .role-workflow--gradebook .role-workflow__data-table textarea {
    min-inline-size: 13rem;
    resize: vertical;
}

/* Parent — communication and family action center. */
.authenticated .role-workflow--communication .role-workflow__split {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
    gap: 1rem;
    align-items: start;
}

.authenticated .role-workflow--communication .announcement-publish-aside {
    position: sticky;
    inset-block-start: calc(var(--topbar-height, 4.35rem) + 1rem);
}

.authenticated .role-workflow--communication .admin-settings-list,
.authenticated .role-workflow--conversation .admin-settings-list {
    border: 1px solid var(--c-line);
    border-radius: .85rem;
    overflow: hidden;
}

.authenticated .role-workflow--communication .admin-settings-row,
.authenticated .role-workflow--conversation .admin-settings-row {
    border-block-end: 1px solid var(--c-line);
    background: var(--c-surface);
}

.authenticated .role-workflow--communication .admin-settings-row:last-child,
.authenticated .role-workflow--conversation .admin-settings-row:last-child {
    border-block-end: 0;
}

.authenticated .role-workflow--communication .admin-settings-row:hover,
.authenticated .role-workflow--communication .admin-settings-row:focus-visible {
    background: color-mix(in srgb, var(--role-accent-soft) 32%, var(--c-surface));
}

.authenticated .role-workflow__compose-card {
    border-color: color-mix(in srgb, var(--role-accent) 26%, var(--c-surface-border));
    background: color-mix(in srgb, var(--role-accent-soft) 24%, var(--c-surface));
    box-shadow: none;
}

.authenticated .role-workflow--conversation .role-workflow__message {
    inline-size: min(88%, 42rem);
    margin-block: .2rem;
    border: 1px solid var(--c-line);
    border-radius: .9rem;
}

.authenticated .role-workflow--conversation .role-workflow__message.is-mine {
    margin-inline-start: auto;
    border-color: color-mix(in srgb, var(--role-accent) 28%, var(--c-line));
    background: color-mix(in srgb, var(--role-accent-soft) 38%, var(--c-surface));
}

.authenticated .role-workflow--conversation .role-workflow__message.is-other {
    margin-inline-end: auto;
    background: var(--c-surface-low);
}

.authenticated .role-workflow--family-todo > .role-workflow__surface {
    padding-block: 1rem;
}

.authenticated .role-workflow--family-todo .role-workflow__task-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem 1rem;
    padding: .9rem .1rem;
    border: 0;
    border-block-end: 1px solid var(--c-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.authenticated .role-workflow--family-todo .role-workflow__task-row:last-child {
    border-block-end: 0;
}

.authenticated .role-workflow--family-todo .role-workflow__task-row .eyebrow {
    color: color-mix(in srgb, var(--c-warning) 82%, var(--c-ink));
}

.authenticated .role-workflow__scope-note {
    border-style: dashed;
    box-shadow: none;
}

/* Parent — forms/signatures: calm reading width and one obvious next action. */
.authenticated .role-workflow--form > :is(.c-card, aside.c-card),
.authenticated .role-workflow--form > .alert {
    inline-size: 100%;
}

.authenticated .role-workflow--form > .c-card {
    padding: clamp(1rem, 2vw, 1.4rem);
}

.authenticated .role-workflow--form .reading-card,
.authenticated .role-workflow--form .rich-copy {
    max-inline-size: var(--reading-max, 55rem);
}

.authenticated .role-workflow--form fieldset {
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .85rem;
    background: var(--c-surface-low);
}

.authenticated .role-workflow--form fieldset legend {
    padding-inline: .25rem;
    color: var(--c-ink);
    font-weight: 700;
}

.authenticated .role-workflow--form .form-stack > label,
.authenticated .role-workflow--form .form-stack > fieldset {
    max-inline-size: 50rem;
}

.authenticated .role-workflow--form .checkbox-row {
    padding: .85rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .8rem;
    background: var(--c-surface-low);
}

.authenticated .role-workflow--signature > aside.c-card {
    border-style: dashed;
    box-shadow: none;
}

/* Student — action-first coursework, classes and grade feedback. */
.authenticated .role-workflow--student .role-workflow__surface--primary {
    background: color-mix(in srgb, var(--role-accent-soft) 8%, var(--c-surface));
}

.authenticated .role-workflow--assignments .role-workflow__assignment-row,
.authenticated .role-workflow--academics .role-workflow__grade-row {
    display: block;
    padding: 1rem .1rem;
    border: 0;
    border-block-end: 1px solid var(--c-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.authenticated .role-workflow--assignments .role-workflow__assignment-row:last-child,
.authenticated .role-workflow--academics .role-workflow__grade-row:last-child {
    border-block-end: 0;
}

.authenticated .role-workflow__submission-panel {
    margin-block-start: .8rem;
    padding: .9rem;
    border-color: color-mix(in srgb, var(--role-accent) 22%, var(--c-surface-border));
    background: color-mix(in srgb, var(--role-accent-soft) 28%, var(--c-surface));
    box-shadow: none;
}

.authenticated .role-workflow__submission-panel textarea {
    min-block-size: 7.5rem;
    resize: vertical;
}

.authenticated .role-workflow__class-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: .75rem;
}

.authenticated .role-workflow__class-card {
    display: block;
    min-block-size: 8.25rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--role-accent) 20%, var(--c-surface-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--role-accent-soft) 24%, var(--c-surface));
    box-shadow: none;
}

.authenticated .role-workflow--academics .role-workflow__grade-row > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .35rem 1rem;
    align-items: start;
}

.authenticated .role-workflow--academics .role-workflow__grade-row > div > :is(.eyebrow, h3, .muted, div) {
    grid-column: 1;
}

.authenticated .role-workflow--academics .role-workflow__grade-score {
    grid-column: 2;
    grid-row: 1 / span 3;
    margin: 0;
    padding: .45rem .65rem;
    border-radius: .7rem;
    background: color-mix(in srgb, var(--role-accent-soft) 54%, var(--c-surface));
    color: var(--c-ink);
}

/* Tablet and phone convergence. */
@media (max-width: 64rem) {
    .authenticated .role-workflow--communication .role-workflow__split {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .role-workflow--communication .announcement-publish-aside {
        position: static;
    }

    .authenticated .role-workflow--gradebook .role-workflow__context-bar .form-stack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .role-workflow--gradebook .role-workflow__context-bar .button {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 48rem) {
    .authenticated .role-workflow {
        gap: .8rem;
    }

    .authenticated .role-workflow__hero {
        padding: 1rem;
    }

    .authenticated .role-workflow > .c-card,
    .authenticated .role-workflow__surface {
        padding: .95rem;
    }

    .authenticated .role-workflow--attendance-detail .role-workflow__context-bar .form-stack,
    .authenticated .role-workflow--gradebook .role-workflow__context-bar .form-stack {
        grid-template-columns: minmax(0, 1fr);
        max-inline-size: none;
    }

    .authenticated .role-workflow--attendance-detail .role-workflow__context-bar .form-stack > :first-child,
    .authenticated .role-workflow--gradebook .role-workflow__context-bar .button {
        grid-column: auto;
    }

    .authenticated .role-workflow--attendance-detail .role-workflow__roster-row,
    .authenticated .role-workflow--family-todo .role-workflow__task-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .authenticated .role-workflow--attendance-detail .role-workflow__roster-row > select,
    .authenticated .role-workflow--attendance-detail .role-workflow__roster-row > label {
        grid-column: 1;
    }

    .authenticated .role-workflow--family-todo .role-workflow__task-row .button,
    .authenticated .role-workflow--attendance .role-workflow__launch-card .button,
    .authenticated .role-workflow__compose-card .button,
    .authenticated .role-workflow__submission-panel .button {
        inline-size: 100%;
        justify-content: center;
    }

    .authenticated .role-workflow--conversation .role-workflow__message {
        inline-size: min(94%, 42rem);
    }

    .authenticated .role-workflow--academics .role-workflow__grade-row > div {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .role-workflow--academics .role-workflow__grade-score {
        grid-column: 1;
        grid-row: auto;
        justify-self: start;
    }
}

@media (max-width: 30rem) {
    .authenticated .role-workflow__hero h1 {
        font-size: 1.55rem;
    }

    .authenticated .role-workflow__class-grid,
    .authenticated .role-workflow--attendance .role-workflow__launch-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .role-workflow__actions,
    .authenticated .role-workflow__actions .button {
        inline-size: 100%;
    }
}

@media (forced-colors: active) {
    .authenticated .role-workflow :is(
        .role-workflow__hero,
        .role-workflow__surface,
        .role-workflow__launch-card,
        .role-workflow__compose-card,
        .role-workflow__submission-panel,
        .role-workflow__class-card,
        .role-workflow__message,
        fieldset
    ) {
        border: 1px solid CanvasText;
        box-shadow: none;
    }

    .authenticated .role-workflow__hero::after {
        background: Highlight;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .role-workflow * {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .authenticated .role-workflow :is(
        .role-workflow__hero,
        .role-workflow__surface,
        .role-workflow__launch-card,
        .role-workflow__compose-card,
        .role-workflow__submission-panel,
        .role-workflow__class-card
    ) {
        break-inside: avoid;
        border-color: #777;
        box-shadow: none;
    }

    .authenticated .role-workflow--communication .announcement-publish-aside,
    .authenticated .role-workflow--form .button,
    .authenticated .role-workflow--attendance .button,
    .authenticated .role-workflow--gradebook .button {
        display: none !important;
    }
}

/* UI9D — Admin core operations workbench convergence.
 * Deep Admin workflows reuse existing canonical models, actions and feature
 * gates while adopting the same School Operations hierarchy as Dashboard,
 * Enrollment, Staff and Finance. No UI selector in this section is authority.
 */
.authenticated .admin-ops-workbench {
    gap: 1rem;
    inline-size: min(100%, 100rem);
}

.authenticated .admin-ops-workbench > :is(.alert, .contextual-coachmark) {
    margin-block: 0;
}

.authenticated .admin-ops-workbench .admin-settings-layout {
    gap: .875rem;
}

.authenticated .admin-ops-workbench :is(.admin-settings-main, .admin-settings-aside) {
    gap: .875rem;
}

.authenticated .admin-ops-workbench :is(.admin-settings-card, .admin-settings-section, .admin-settings-form-card) {
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-surface);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .admin-ops-workbench .admin-settings-form-card {
    background: color-mix(in srgb, var(--c-surface-low) 76%, var(--c-surface));
}

.authenticated .admin-ops-workbench .admin-settings-section__header {
    gap: .75rem 1rem;
    margin-block-end: .75rem;
    padding-block-end: .75rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .admin-ops-workbench .admin-settings-section__header > :last-child:not(:first-child) {
    flex: 0 0 auto;
}

.authenticated .admin-ops-workbench .admin-settings-row {
    min-block-size: 4.5rem;
}

.authenticated .admin-ops-workbench .admin-settings-row__actions {
    align-items: center;
}

.authenticated .admin-ops-workbench .admin-settings-row__actions .button,
.authenticated .admin-ops-workbench .admin-settings-heading__action {
    min-block-size: var(--ops-control-height);
}

.authenticated .admin-ops-workbench .empty-state {
    padding: 1rem;
    border: 1px dashed var(--ops-border-strong);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--c-surface-low) 78%, var(--c-surface));
}

/* Operations hub: scan by school responsibility rather than card decoration. */
.authenticated .admin-ops-workbench--hub .operations-hub-intro {
    border-inline-start: .25rem solid var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 16%, var(--c-surface));
}

.authenticated .admin-ops-workbench--hub .operations-hub-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.authenticated .admin-ops-workbench--hub .operations-hub-card {
    min-block-size: 12rem;
    padding: 1rem;
    border-color: var(--ops-border);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .admin-ops-workbench--hub .operations-hub-card:hover,
.authenticated .admin-ops-workbench--hub .operations-hub-card:focus-within {
    border-color: color-mix(in srgb, var(--role-accent) 25%, var(--ops-border));
    box-shadow: var(--ops-shadow-raised);
}

.authenticated .admin-ops-workbench--hub .operations-hub-card h2 {
    font-size: 1.05rem;
    line-height: 1.25;
}

.authenticated .admin-ops-workbench--hub .operations-hub-card__actions {
    padding-block-start: .75rem;
    border-block-start: 1px solid var(--ops-border);
}

.authenticated .admin-ops-workbench--hub .operations-hub-boundary {
    box-shadow: none;
    background: color-mix(in srgb, var(--c-surface-low) 70%, var(--c-surface));
}

/* People access: identity-first rows and calm invitation/search rails. */
.authenticated .admin-ops-workbench--access .access-management-note {
    margin-block: .75rem;
    border-color: color-mix(in srgb, var(--role-accent) 20%, var(--ops-border));
    background: color-mix(in srgb, var(--role-accent-soft) 22%, var(--c-surface));
}

.authenticated .admin-ops-workbench--access .access-management-avatar {
    border-color: color-mix(in srgb, var(--role-accent) 28%, var(--ops-border));
    color: var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 68%, var(--c-surface));
}

.authenticated .admin-ops-workbench--access :is(.access-invitation-ready, .student-access-inline-invite, .student-access-account) {
    border-color: var(--ops-border);
}

.authenticated .admin-ops-workbench--access .access-invitation-ready {
    border-inline-start-color: var(--c-info);
    background: color-mix(in srgb, var(--c-info) 5%, var(--c-surface));
}

.authenticated .admin-ops-workbench--access .student-access-inline-invite,
.authenticated .admin-ops-workbench--access .student-access-account {
    padding: .85rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

/* Academic operations: keep class context, roster membership and assignments
 * visually close without hiding canonical relationship boundaries.
 */
.authenticated .admin-ops-workbench--academics :is(
    .class-section-edit-context,
    .roster-context-card,
    .teacher-assignment-context-card
) {
    border-inline-start: .25rem solid var(--role-accent);
    background: color-mix(in srgb, var(--role-accent-soft) 18%, var(--c-surface));
    box-shadow: none;
}

.authenticated .admin-ops-workbench--academics :is(
    .class-section-row,
    .roster-management-row,
    .teacher-assignment-row
) {
    align-items: start;
}

.authenticated .admin-ops-workbench--academics :is(
    .class-section-row__title,
    .roster-management-row__title,
    .teacher-assignment-row__title
) {
    gap: .4rem .65rem;
}

.authenticated .admin-ops-workbench--academics :is(
    .class-section-create-card,
    .roster-add-card,
    .teacher-assignment-assign-card,
    .class-section-edit-aside
) {
    border-color: color-mix(in srgb, var(--role-accent) 14%, var(--ops-border));
}

/* Attendance operations: compact completion metrics and review queues. */
.authenticated .admin-ops-workbench--attendance .attendance-summary-strip {
    gap: .625rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-summary-metric {
    min-block-size: 6rem;
    padding: .8rem .9rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--role-accent-soft) 18%, var(--c-surface));
}

.authenticated .admin-ops-workbench--attendance .attendance-summary-metric strong {
    color: var(--c-ink);
    font-variant-numeric: tabular-nums;
}

.authenticated .admin-ops-workbench--attendance :is(.attendance-status-list, .planned-absence-review-list) {
    border-color: var(--ops-border);
}

.authenticated .admin-ops-workbench--attendance .attendance-status-row {
    min-block-size: var(--ops-control-height);
}

.authenticated .admin-ops-workbench--attendance .planned-absence-review-row__details {
    padding: .65rem .75rem;
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

/* Calendar: event records read as an operational schedule; editing remains
 * an explicit mutation surface inside the canonical event row.
 */
.authenticated .admin-ops-workbench--calendar .admin-calendar-event-row {
    align-items: start;
}

.authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__body {
    display: grid;
    gap: .55rem;
}

.authenticated .admin-ops-workbench--calendar .calendar-rsvp-summary {
    margin-block-start: .25rem;
    padding: .75rem;
    border-color: var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

.authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__actions {
    align-self: start;
}

.authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__actions form {
    padding: .75rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

/* Reporting: procurement-ready evidence surfaces prioritize readable tables,
 * bounded exports and keyboard-operable horizontal overflow.
 */
.authenticated .admin-ops-workbench--reporting > .admin-settings-section {
    padding: 1rem;
}

.authenticated .admin-ops-workbench--reporting .cluster[aria-label] {
    gap: .45rem;
    margin-block: .65rem;
}

.authenticated .admin-ops-workbench--reporting .admin-report-table-region {
    max-inline-size: 100%;
    overflow: auto;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface);
    overscroll-behavior-inline: contain;
}

.authenticated .admin-ops-workbench--reporting .admin-report-table-region:focus-visible {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

.authenticated .admin-ops-workbench--reporting .data-table {
    inline-size: 100%;
    min-inline-size: 42rem;
    border-collapse: separate;
    border-spacing: 0;
}

.authenticated .admin-ops-workbench--reporting .data-table th {
    position: sticky;
    inset-block-start: 0;
    z-index: 1;
    background: var(--c-surface-low);
    box-shadow: inset 0 -1px 0 var(--ops-border);
}

.authenticated .admin-ops-workbench--reporting .data-table :is(th, td) {
    padding: .7rem .75rem;
    vertical-align: top;
}

.authenticated .admin-ops-workbench--reporting .data-table tbody tr:hover {
    background: color-mix(in srgb, var(--role-accent-soft) 24%, var(--c-surface));
}

.authenticated .admin-ops-workbench--reporting .form-grid {
    padding: .75rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

@media (max-width: 72rem) {
    .authenticated .admin-ops-workbench--hub .operations-hub-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 64rem) {
    .authenticated .admin-ops-workbench .admin-settings-aside {
        position: static;
    }

    .authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__actions {
        inline-size: min(100%, 34rem);
        justify-self: stretch;
    }
}

@media (max-width: 48rem) {
    .authenticated .admin-ops-workbench {
        gap: .8rem;
    }

    .authenticated .admin-ops-workbench--hub .operations-hub-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .admin-ops-workbench--hub .operations-hub-card {
        min-block-size: 0;
    }

    .authenticated .admin-ops-workbench--reporting > .admin-settings-section,
    .authenticated .admin-ops-workbench :is(.admin-settings-card, .admin-settings-section, .admin-settings-form-card) {
        padding: .9rem;
    }

    .authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__actions,
    .authenticated .admin-ops-workbench--calendar .admin-calendar-event-row > .admin-settings-row__actions form {
        inline-size: 100%;
    }
}

@media (max-width: 30rem) {
    .authenticated .admin-ops-workbench .school-ops-heading .admin-settings-heading__action,
    .authenticated .admin-ops-workbench .school-ops-heading .button,
    .authenticated .admin-ops-workbench .admin-settings-row__actions,
    .authenticated .admin-ops-workbench .admin-settings-row__actions form,
    .authenticated .admin-ops-workbench .admin-settings-row__actions .button,
    .authenticated .admin-ops-workbench--hub .operations-hub-card__actions,
    .authenticated .admin-ops-workbench--hub .operations-hub-card__actions .button {
        inline-size: 100%;
    }

    .authenticated .admin-ops-workbench .admin-settings-row__actions,
    .authenticated .admin-ops-workbench--hub .operations-hub-card__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .admin-ops-workbench--reporting .data-table {
        min-inline-size: 38rem;
    }
}

@media (forced-colors: active) {
    .authenticated .admin-ops-workbench :is(
        .operations-hub-card,
        .access-management-note,
        .student-access-inline-invite,
        .student-access-account,
        .class-section-edit-context,
        .roster-context-card,
        .teacher-assignment-context-card,
        .attendance-summary-metric,
        .calendar-rsvp-summary,
        .admin-calendar-event-row > .admin-settings-row__actions form,
        .admin-report-table-region,
        .form-grid
    ) {
        border: 1px solid CanvasText;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-ops-workbench * {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .authenticated .admin-ops-workbench :is(
        .operations-hub-card,
        .admin-settings-card,
        .admin-settings-section,
        .attendance-summary-metric,
        .admin-report-table-region
    ) {
        break-inside: avoid;
        border-color: #777;
        box-shadow: none;
    }

    .authenticated .admin-ops-workbench--reporting .admin-report-table-region {
        overflow: visible;
    }

    .authenticated .admin-ops-workbench--reporting .data-table {
        min-inline-size: 0;
    }
}

/* --------------------------------------------------------------------------
 * UI9E — Authenticated UI completion sweep
 *
 * Final convergence layer for the remaining authenticated operational and
 * configuration surfaces. USWDS/KRDS remain principle references only; this
 * is CON8CT-owned CSS and does not introduce vendor runtime classes/assets.
 * -------------------------------------------------------------------------- */

.authenticated .content-workbench,
.authenticated .role-workflow--secondary,
.authenticated .shared-workbench {
    inline-size: min(100%, 92rem);
    margin-inline: auto;
    padding-block-end: clamp(1.5rem, 3vw, 3rem);
}

/* Content/configuration workbenches ---------------------------------------- */
.authenticated .content-workbench {
    display: grid;
    gap: 1rem;
}

.authenticated .content-workbench .school-ops-heading {
    margin-block-end: 0;
}

.authenticated .content-workbench :is(
    .admin-settings-card,
    .admin-settings-section,
    .admin-settings-form-card,
    .builder-status-panel
) {
    border-color: var(--ops-border);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .content-workbench :is(
    .admin-settings-layout,
    .announcement-management-layout,
    .staff-profile-layout
) {
    gap: 1rem;
    align-items: start;
}

.authenticated .content-workbench .admin-settings-aside {
    position: sticky;
    inset-block-start: calc(var(--app-topbar-height, 4rem) + 1rem);
}

.authenticated .content-workbench :is(
    .admin-settings-row,
    .management-row,
    .announcement-row
) {
    min-block-size: var(--ops-control-height);
    border-color: var(--ops-border);
    background: var(--c-surface);
}

.authenticated .content-workbench :is(
    .admin-settings-row:hover,
    .management-row:hover,
    .announcement-row:hover
) {
    background: color-mix(in srgb, var(--role-accent-soft) 18%, var(--c-surface));
}

.authenticated .content-workbench :is(.form-stack, .stack-form) {
    gap: .9rem;
}

.authenticated .content-workbench :is(input, select, textarea):focus-visible,
.authenticated .shared-workbench :is(input, select, textarea):focus-visible {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

.authenticated .content-workbench--forms .admin-settings-list {
    gap: .6rem;
}

.authenticated .content-workbench--forms .admin-settings-row__title {
    font-size: 1rem;
    line-height: 1.3;
}

.authenticated .content-workbench--forms :is(.admin-settings-form-card, .c-card--tonal) {
    background: color-mix(in srgb, var(--role-accent-soft) 12%, var(--c-surface));
}

.authenticated .content-workbench--documents .document-collection-summary-strip {
    gap: .65rem;
}

.authenticated .content-workbench--documents .document-collection-summary-metric {
    min-block-size: 5.75rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--role-accent-soft) 14%, var(--c-surface));
}

.authenticated .content-workbench--communication .announcement-row__body {
    max-inline-size: 72ch;
}

.authenticated .content-workbench--finance-detail .summary-list {
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    overflow: clip;
}

.authenticated .content-workbench--finance-detail .summary-list > * {
    padding: .7rem .8rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .content-workbench--finance-detail .summary-list > *:last-child {
    border-block-end: 0;
}

.authenticated .content-workbench--configuration :is(
    .staff-profile-context,
    .admin-settings-grid > .c-card,
    .admin-settings-card
) {
    border-color: var(--ops-border);
}

.authenticated .content-workbench--builder .builder-workspace {
    gap: 1rem;
}

.authenticated .content-workbench--builder :is(
    .builder-outline,
    .builder-site-style,
    .builder-editor,
    .builder-preview,
    .builder-status-panel
) {
    border-color: var(--ops-border);
}

.authenticated .content-workbench--builder .builder-page-item {
    border-color: var(--ops-border);
    background: var(--c-surface);
}

.authenticated .content-workbench--builder .builder-page-item:focus-within {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

/* Secondary role work ------------------------------------------------------ */
.authenticated .role-workflow--secondary {
    display: grid;
    gap: .9rem;
}

.authenticated .role-workflow--secondary .role-workflow__hero {
    min-block-size: auto;
    padding: clamp(1rem, 2.2vw, 1.5rem);
}

.authenticated .role-workflow--secondary :is(.c-card, .admin-settings-card, .admin-settings-section) {
    border-color: var(--ops-border);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .role-workflow--secondary :is(.grid.two, .grid.three) {
    gap: .8rem;
}

.authenticated .role-workflow--secondary .c-action-item {
    min-block-size: var(--ops-control-height);
    border-color: var(--ops-border);
    background: var(--c-surface);
}

.authenticated .role-workflow--secondary .c-action-item:hover {
    border-color: color-mix(in srgb, var(--role-accent) 30%, var(--ops-border));
    background: color-mix(in srgb, var(--role-accent-soft) 20%, var(--c-surface));
}

.authenticated .role-workflow--secondary :is(.management-row, .admin-settings-row) {
    border-color: var(--ops-border);
}

.authenticated .role-workflow--teacher.role-workflow--secondary.assignment-submission-page .c-action-item,
.authenticated .role-workflow--teacher.role-workflow--secondary :is(.admin-settings-row, .c-card) {
    border-inline-start-color: color-mix(in srgb, var(--role-accent) 40%, var(--ops-border));
}

.authenticated .role-workflow--parent.role-workflow--secondary .role-workflow__hero {
    background: color-mix(in srgb, var(--role-accent-soft) 20%, var(--c-surface));
}

.authenticated .role-workflow--student.role-workflow--secondary {
    max-inline-size: 76rem;
}

.authenticated .role-workflow--student.role-workflow--secondary .c-card {
    box-shadow: none;
}

.authenticated .role-workflow--communication :is(
    .admin-settings-list,
    .announcement-list
) {
    gap: .6rem;
}

.authenticated .role-workflow--assessment.assignment-submission-page,
.authenticated .role-workflow--assessment .c-card {
    scroll-margin-block-start: 6rem;
}

.authenticated .role-workflow--attendance :is(.form-stack, .grid.two),
.authenticated .role-workflow--coursework :is(.form-stack, .grid.two),
.authenticated .role-workflow--academics :is(.grid.two, .management-list),
.authenticated .role-workflow--finance .management-list,
.authenticated .role-workflow--documents .management-list {
    gap: .75rem;
}

/* Shared utility workbenches ---------------------------------------------- */
.authenticated .shared-workbench {
    display: grid;
    gap: 1rem;
}

.authenticated .shared-workbench :is(.c-card, .admin-settings-card, .admin-settings-section) {
    border-color: var(--ops-border);
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .shared-workbench--notifications .notification-row {
    align-items: start;
    border-color: var(--ops-border);
}

.authenticated .shared-workbench--notifications .notification-row__detail {
    max-inline-size: 76ch;
}

.authenticated .shared-workbench--calendar .admin-settings-row {
    border-color: var(--ops-border);
    background: var(--c-surface);
}

.authenticated .shared-workbench--calendar .calendar-rsvp-panel {
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface-low);
}

.authenticated .shared-workbench--billing .pricing-card {
    border-color: color-mix(in srgb, var(--role-accent) 28%, var(--ops-border));
}

.authenticated .shared-workbench--billing .price {
    font-variant-numeric: tabular-nums;
}

/* Final responsive/accessibility convergence ------------------------------ */
@media (max-width: 64rem) {
    .authenticated .content-workbench .admin-settings-aside {
        position: static;
    }

    .authenticated .content-workbench :is(
        .admin-settings-layout,
        .announcement-management-layout,
        .staff-profile-layout,
        .builder-workspace
    ) {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 48rem) {
    .authenticated :is(.content-workbench, .role-workflow--secondary, .shared-workbench) {
        gap: .75rem;
    }

    .authenticated .content-workbench :is(
        .admin-settings-card,
        .admin-settings-section,
        .admin-settings-form-card
    ),
    .authenticated .role-workflow--secondary :is(.c-card, .admin-settings-card, .admin-settings-section),
    .authenticated .shared-workbench :is(.c-card, .admin-settings-card, .admin-settings-section) {
        padding: .9rem;
    }

    .authenticated .role-workflow--secondary :is(.grid.two, .grid.three) {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .content-workbench--builder .builder-preset-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 30rem) {
    .authenticated :is(.content-workbench, .role-workflow--secondary, .shared-workbench) :is(
        .button,
        button[type="submit"]
    ) {
        min-block-size: 2.75rem;
    }

    .authenticated .content-workbench :is(
        .admin-settings-row__actions,
        .management-row__actions,
        .cluster
    ),
    .authenticated .shared-workbench .admin-settings-row__actions {
        inline-size: 100%;
    }

    .authenticated .content-workbench :is(
        .admin-settings-row__actions,
        .management-row__actions
    ) :is(.button, form),
    .authenticated .shared-workbench .admin-settings-row__actions :is(.button, form) {
        inline-size: 100%;
    }

    .authenticated .content-workbench--builder .builder-preset-options {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .role-workflow--secondary .role-workflow__hero {
        padding: .9rem;
    }
}

@media (forced-colors: active) {
    .authenticated :is(.content-workbench, .role-workflow--secondary, .shared-workbench) :is(
        .c-card,
        .admin-settings-card,
        .admin-settings-section,
        .admin-settings-row,
        .management-row,
        .c-action-item,
        .calendar-rsvp-panel,
        .builder-page-item
    ) {
        border: 1px solid CanvasText;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated :is(.content-workbench, .role-workflow--secondary, .shared-workbench) * {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .authenticated :is(.content-workbench, .role-workflow--secondary, .shared-workbench) :is(
        .c-card,
        .admin-settings-card,
        .admin-settings-section,
        .admin-settings-row,
        .management-row
    ) {
        break-inside: avoid;
        border-color: #777;
        box-shadow: none;
    }

    .authenticated .shared-workbench .table-wrap {
        overflow: visible;
    }
}

.authenticated :is(.content-workbench, .shared-workbench) .table-wrap {
    max-inline-size: 100%;
    overflow: auto;
    overscroll-behavior-inline: contain;
}

.authenticated :is(.content-workbench, .shared-workbench) .table-wrap:focus-visible {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

/* UI10A — Meeting-ready public Demo entry and professional synthetic personas. */
.demo-showcase-page .demo-showcase__badge {
    inline-size: fit-content;
    margin: 0;
    padding: .3rem .7rem;
    border-radius: var(--r-pill);
}

.demo-showcase-page .demo-showcase-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--s6);
    overflow: hidden;
}

.demo-showcase-page .demo-showcase-hero > div {
    position: relative;
    z-index: 1;
}

.demo-showcase-page .demo-showcase-hero__mark {
    inline-size: clamp(6rem, 13vw, 9rem);
    block-size: clamp(6rem, 13vw, 9rem);
    border-radius: 1.75rem;
    opacity: .95;
    transform: rotate(4deg);
    box-shadow: 0 1.25rem 2.5rem color-mix(in srgb, #10281c 28%, transparent);
}

.demo-showcase-page .demo-showcase-assurance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--s3);
}

.demo-showcase-page .demo-showcase-assurance article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--s3);
    min-block-size: 6.5rem;
    padding: var(--s4);
    border: 1px solid var(--c-surface-border);
    border-radius: var(--r-card);
    background: var(--c-surface);
    box-shadow: var(--auth-surface-shadow);
}

.demo-showcase-page .demo-showcase-assurance__icon {
    display: grid;
    place-items: center;
    inline-size: 2.8rem;
    block-size: 2.8rem;
    border-radius: .85rem;
    color: var(--brand-primary);
    background: var(--brand-primary-soft);
}

.demo-showcase-page .demo-showcase-assurance__icon svg {
    inline-size: 1.45rem;
    block-size: 1.45rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.demo-showcase-page .demo-showcase-assurance article > div {
    display: grid;
    gap: .25rem;
    min-inline-size: 0;
}

.demo-showcase-page .demo-showcase-assurance strong {
    color: var(--c-ink);
    font-size: var(--type-small);
}

.demo-showcase-page .demo-showcase-assurance small {
    color: var(--c-muted);
    font-size: var(--type-label);
    line-height: 1.4;
}

.demo-showcase-page .demo-persona-card {
    position: relative;
    overflow: hidden;
    border-block-start: .28rem solid var(--persona-accent, var(--brand-primary));
}

.demo-showcase-page .demo-persona-card[data-persona="admin"] { --persona-accent: var(--brand-primary); }
.demo-showcase-page .demo-persona-card[data-persona="teacher"] { --persona-accent: var(--brand-secondary); }
.demo-showcase-page .demo-persona-card[data-persona="parent"] { --persona-accent: var(--c-info); }
.demo-showcase-page .demo-persona-card[data-persona="student"] { --persona-accent: var(--brand-accent); }

.demo-showcase-page .demo-persona-card::after {
    content: "";
    position: absolute;
    inset: 0 0 auto auto;
    inline-size: 8rem;
    block-size: 8rem;
    border-radius: 0 0 0 100%;
    background: color-mix(in srgb, var(--persona-accent) 8%, transparent);
    pointer-events: none;
}

.demo-showcase-page .demo-persona-card__identity {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--s4);
}

.demo-showcase-page .demo-persona-card__identity > img {
    inline-size: 6.25rem;
    block-size: 6.25rem;
    object-fit: cover;
    border: .2rem solid var(--c-surface);
    border-radius: 1.45rem;
    box-shadow: 0 .65rem 1.6rem color-mix(in srgb, var(--persona-accent) 18%, transparent);
}

.demo-showcase-page .demo-persona-card__identity > div {
    min-inline-size: 0;
}

.demo-showcase-page .demo-persona-card__identity h2 {
    margin: .2rem 0 .4rem;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.demo-showcase-page .demo-persona-card__identity p:last-child {
    margin: 0;
    color: var(--c-muted);
    font-size: var(--type-small);
    line-height: 1.55;
}

.demo-showcase-page .demo-persona-card .demo-journey-list {
    position: relative;
    z-index: 1;
}

@media (max-width: 64rem) {
    .demo-showcase-page .demo-showcase-assurance {
        grid-template-columns: minmax(0, 1fr);
    }

    .demo-showcase-page .demo-showcase-assurance article {
        min-block-size: 0;
    }
}

@media (max-width: 48rem) {
    .demo-showcase-page .demo-showcase-hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .demo-showcase-page .demo-showcase-hero__mark {
        display: none;
    }

    .demo-showcase-page .demo-persona-card__identity {
        grid-template-columns: 4.75rem minmax(0, 1fr);
        align-items: start;
    }

    .demo-showcase-page .demo-persona-card__identity > img {
        inline-size: 4.75rem;
        block-size: 4.75rem;
        border-radius: 1.15rem;
    }
}

@media (max-width: 30rem) {
    .demo-showcase-page .demo-persona-card__identity {
        grid-template-columns: minmax(0, 1fr);
    }

    .demo-showcase-page .demo-persona-card__identity > img {
        inline-size: 5.5rem;
        block-size: 5.5rem;
    }
}

@media (prefers-contrast: more) {
    .demo-showcase-page :is(.demo-showcase-assurance article, .demo-persona-card) {
        border-width: 2px;
    }
}

@media (forced-colors: active) {
    .demo-showcase-page .demo-showcase-assurance__icon {
        color: ButtonText;
        background: ButtonFace;
        border: 1px solid ButtonText;
    }

    .demo-showcase-page .demo-persona-card {
        border-color: CanvasText;
    }

    .demo-showcase-page .demo-persona-card::after {
        display: none;
    }
}

/* The demo banner carrying a refusal rather than its standing explanation. It
   has to catch the eye of someone who just pressed Save, without looking like an
   error: nothing went wrong, the demo simply does not keep changes. */
.demo-app-banner--refused {
    border-color: var(--brand-accent, #b45309);
    box-shadow: inset 0.25rem 0 0 0 var(--brand-accent, #b45309);
}

/* ---------------------------------------------------------------------------
   Admin dashboard — command centre treatment

   Reference mockups supplied 2026-09-03 set the bar: a dark branded hero that
   names the person, a tight metric row of icon tiles, and card surfaces that
   read as one system. Colour still comes from the tenant's own branding tokens,
   so a school with a navy identity gets a navy hero and one with a green
   identity gets green -- the mockup's palette is one school's, not the product's.
   --------------------------------------------------------------------------- */

.authenticated .role-dashboard .role-dashboard__greeting--hero {
    gap: var(--s5);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 0;
    border-radius: 1rem;
    color: var(--brand-on-primary, #fff);
    background:
        radial-gradient(120% 140% at 100% 0%,
            color-mix(in srgb, var(--brand-primary, #12294B) 78%, #fff 22%) 0%,
            var(--brand-primary, #12294B) 55%,
            var(--brand-primary-strong, #0d1f3a) 100%);
    box-shadow: 0 1.25rem 2.5rem -1.25rem color-mix(in srgb, var(--brand-primary, #12294B) 45%, transparent);
}

.authenticated .role-dashboard .role-dashboard__greeting--hero :is(.eyebrow, p) {
    color: color-mix(in srgb, var(--brand-on-primary, #fff) 78%, transparent);
}

.admin-dashboard__greeting-title {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin: .35rem 0 .5rem;
    line-height: 1.1;
}

.admin-dashboard__greeting-lead {
    font-size: clamp(1.05rem, 1.6vw, 1.3rem);
    font-weight: 500;
    color: var(--c-muted);
}

/* On the dark setup hero the same two lines invert. */
.role-dashboard__greeting--hero .admin-dashboard__greeting-lead {
    color: color-mix(in srgb, var(--brand-on-primary, #fff) 80%, transparent);
}

.admin-dashboard__greeting-name {
    font-size: clamp(1.9rem, 3.4vw, 2.75rem);
    font-weight: 700;
    letter-spacing: -.01em;
    /* Ink on the operations greeting: the accent is a brand colour chosen for a
       dark surface, and at heading weight on white it reads as low contrast. */
    color: var(--c-ink);
}

.role-dashboard__greeting--hero .admin-dashboard__greeting-name {
    color: var(--brand-accent, #B9922F);
}

/* The subscription card sits on the hero, so it becomes a translucent panel
   rather than a white box punched out of the gradient. */
.authenticated .role-dashboard .role-dashboard__greeting--hero .admin-dashboard__subscription {
    border-color: color-mix(in srgb, var(--brand-on-primary, #fff) 28%, transparent);
    background: color-mix(in srgb, var(--brand-on-primary, #fff) 12%, transparent);
    color: var(--brand-on-primary, #fff);
    backdrop-filter: blur(2px);
}

.authenticated .role-dashboard .role-dashboard__greeting--hero .admin-dashboard__subscription :is(p, .admin-dashboard__subscription-label) {
    color: color-mix(in srgb, var(--brand-on-primary, #fff) 82%, transparent);
}

/* ---- metric row ---------------------------------------------------------- */

.authenticated .admin-dashboard .dashboard-kpi-grid {
    gap: var(--s4);
}

/* The base row is five columns, which left the sixth operations metric stranded
   alone on a second row -- a row of cards stops reading as a row the moment one
   of them sits by itself. Three columns divides the operations metrics evenly
   and keeps dividing evenly as the set grows, so the band stays a block. */
@media (min-width: 64rem) {
    .authenticated .admin-dashboard--operations .dashboard-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.authenticated .admin-dashboard .dashboard-kpi {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--s4);
    padding: var(--s4) var(--s4) var(--s4) var(--s4);
    border: 1px solid var(--c-line);
    border-radius: .875rem;
    background: var(--c-surface, #fff);
    box-shadow: 0 .35rem 1rem -.75rem color-mix(in srgb, #0f172a 22%, transparent);
    transition: box-shadow var(--motion-micro), transform var(--motion-micro);
}

.authenticated .admin-dashboard .dashboard-kpi:hover {
    box-shadow: 0 .75rem 1.75rem -.9rem color-mix(in srgb, #0f172a 30%, transparent);
}

.authenticated .admin-dashboard .dashboard-kpi__icon {
    display: grid;
    place-items: center;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    border-radius: .75rem;
    background: color-mix(in srgb, var(--brand-primary, #12294B) 10%, transparent);
    color: var(--brand-primary, #12294B);
}

.authenticated .admin-dashboard .dashboard-kpi__icon svg {
    inline-size: 1.4rem;
    block-size: 1.4rem;
    fill: currentcolor;
}

.authenticated .admin-dashboard .dashboard-kpi--secondary .dashboard-kpi__icon,
.authenticated .admin-dashboard .dashboard-kpi--tertiary .dashboard-kpi__icon {
    background: color-mix(in srgb, var(--brand-secondary, #4A5A73) 14%, transparent);
    color: color-mix(in srgb, var(--brand-secondary, #4A5A73) 88%, #000);
}

.authenticated .admin-dashboard .dashboard-kpi--neutral .dashboard-kpi__icon {
    background: color-mix(in srgb, var(--brand-accent, #B9922F) 16%, transparent);
    color: color-mix(in srgb, var(--brand-accent, #B9922F) 82%, #000);
}

.authenticated .admin-dashboard .dashboard-kpi__label {
    display: block;
    font-size: var(--type-small);
    font-weight: 650;
    color: var(--c-muted);
}

.authenticated .admin-dashboard .dashboard-kpi strong {
    display: block;
    margin-block: .1rem .15rem;
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.01em;
    color: var(--c-text);
    font-variant-numeric: tabular-nums;
}

.authenticated .admin-dashboard .dashboard-kpi small {
    display: block;
    font-size: .78rem;
    color: var(--c-muted);
}

@media (max-width: 40rem) {
    .authenticated .role-dashboard .role-dashboard__greeting--hero { padding: var(--s4); }
    .authenticated .admin-dashboard .dashboard-kpi { gap: var(--s3); padding: var(--s3); }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-dashboard .dashboard-kpi { transition: none; }
}


/* ---------------------------------------------------------------------------
   Role operations dashboards — shared layout primitives

   See docs/ROLE-OPERATIONS-DASHBOARDS.md. All four role dashboards already share
   these classes, so the reference grammar is applied here once rather than four
   times: a compact greeting on the page background, a metric row whose figures
   carry the visual weight, and panel cards that read as one family.

   Colour still comes from the tenant's own tokens. The references are one
   school's identity, not the product's.
   --------------------------------------------------------------------------- */

/* ---- greeting ------------------------------------------------------------ */

/* The operations greeting is a line, not a card. The metrics below it are what
   somebody opens the page to read, so the greeting must not compete with them.
   The branded card survives as --hero for the setup dashboard, which is a
   welcome-and-orient screen rather than a daily one. */
.authenticated .role-dashboard .role-dashboard__greeting:not(.role-dashboard__greeting--hero) {
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
    overflow: visible;
}

/* The greeting also carries .school-ops-heading, whose rule underlines a section
   title with a short accent bar. That is right for a workbench heading and wrong
   here: the references put nothing under the greeting, and the leftover bar read
   as a stray mark floating under the name. */
.authenticated .role-dashboard .role-dashboard__greeting:not(.role-dashboard__greeting--hero).school-ops-heading {
    border-block-end: 0;
}

.authenticated .role-dashboard .role-dashboard__greeting:not(.role-dashboard__greeting--hero).school-ops-heading::before {
    content: none;
}

.authenticated .role-dashboard .role-dashboard__greeting:not(.role-dashboard__greeting--hero) h1 {
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    line-height: 1.2;
    letter-spacing: -.01em;
}

.authenticated .role-dashboard .role-dashboard__greeting:not(.role-dashboard__greeting--hero) .eyebrow {
    color: var(--c-muted);
}

/* ---- metric row ---------------------------------------------------------- */

.authenticated .role-dashboard .dashboard-kpi {
    align-items: start;
    min-block-size: 0;
    gap: var(--s4);
    padding: var(--s4);
    border-radius: .875rem;
}

/* A circle, as the references have it: it reads as a badge rather than as
   another card corner inside the card. */
.authenticated .role-dashboard .dashboard-kpi__icon {
    inline-size: 3rem;
    block-size: 3rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
}

.authenticated .role-dashboard .dashboard-kpi__icon svg {
    inline-size: 1.5rem;
    block-size: 1.5rem;
    fill: currentcolor;
}

.authenticated .role-dashboard .dashboard-kpi__label {
    display: block;
    font-size: var(--type-small);
    font-weight: 650;
    color: var(--c-muted);
}

.authenticated .role-dashboard .dashboard-kpi strong {
    display: block;
    margin-block: .15rem .2rem;
    font-size: clamp(1.7rem, 2.6vw, 2.25rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.015em;
    color: var(--c-ink);
    font-variant-numeric: tabular-nums;
}

/* Qualifiers are one or two lines. Left to run on, one long qualifier makes its
   card taller than the rest and the row stops reading as a row. */
.authenticated .role-dashboard .dashboard-kpi small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: .78rem;
    line-height: 1.35;
    color: var(--c-muted);
}

/* ---- panels -------------------------------------------------------------- */

/* One hairline under every panel title, so a panel with an action link and one
   without still look like the same component. */
.authenticated .role-dashboard .dashboard-panel__header {
    align-items: center;
    padding-block-end: var(--s3);
    margin-block-end: var(--s4);
    border-block-end: 1px solid var(--c-surface-border);
}

.authenticated .role-dashboard .dashboard-panel {
    border-radius: .875rem;
}

/* The references put three panels across the operations band. The default two
   column split stays for the pages already built on it. */
.authenticated .role-dashboard .dashboard-content-grid--triple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 68rem) {
    .authenticated .role-dashboard .dashboard-content-grid--triple {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 46rem) {
    .authenticated .role-dashboard .dashboard-content-grid--triple {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---- operations panel band ----------------------------------------------- */
/* Today's schedule, recent announcements and today's attendance. Three panels
   that share the panel primitives; only their row shapes differ. */

.authenticated .dashboard-panel__note {
    margin: var(--s3) 0 0;
    color: var(--c-muted);
    font-size: var(--type-label);
    line-height: 1.4;
}

.authenticated .dashboard-panel__note--leading { margin: 0 0 var(--s2); }
.authenticated .dashboard-panel__note.is-outstanding { color: var(--c-warning); }
.authenticated .dashboard-panel__note.is-complete { color: var(--c-success); }

/* ---- today's schedule ---------------------------------------------------- */

.authenticated .dashboard-schedule-list,
.authenticated .dashboard-announcement-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .dashboard-schedule-item {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: var(--s4);
    padding-block: var(--s3);
}

/* The last row's rule would double up with the panel's own edge. */
.authenticated .dashboard-schedule-item:last-child,
.authenticated .dashboard-announcement-item:last-child {
    border-block-end: 0;
}

/* A fixed-width block so the titles beside them line up whatever the hour. */
.authenticated .dashboard-schedule-item__time {
    display: grid;
    justify-items: center;
    align-content: center;
    inline-size: 3.4rem;
    min-block-size: 3.1rem;
    padding: var(--s2) var(--s1);
    border-radius: var(--ops-radius-control, var(--r-field));
    color: var(--brand-primary-strong);
    background: var(--brand-primary-soft);
    line-height: 1.1;
}

.authenticated .dashboard-schedule-item__time strong {
    font-size: var(--type-small);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.authenticated .dashboard-schedule-item__time small {
    font-size: var(--type-label);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.authenticated .dashboard-schedule-item__copy { min-inline-size: 0; }

.authenticated .dashboard-schedule-item__copy strong {
    display: block;
    color: var(--c-ink);
    font-size: var(--type-small);
    overflow-wrap: anywhere;
}

.authenticated .dashboard-schedule-item__copy p {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s2);
    margin: .15rem 0 0;
    color: var(--c-muted);
    font-size: var(--type-label);
}

/* What has already happened stays listed -- an administrator still needs to see
   what the day held -- but recedes so the next thing is what the eye finds. */
.authenticated .dashboard-schedule-item.is-past .dashboard-schedule-item__time {
    color: var(--c-muted);
    background: var(--c-surface-mid);
}

.authenticated .dashboard-schedule-item.is-past .dashboard-schedule-item__copy strong {
    color: var(--c-muted);
}

.authenticated .dashboard-schedule-item.is-cancelled .dashboard-schedule-item__time {
    color: var(--c-muted);
    background: var(--c-surface-mid);
}

.authenticated .dashboard-schedule-item.is-cancelled .dashboard-schedule-item__copy strong {
    color: var(--c-muted);
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

/* ---- recent announcements ------------------------------------------------ */

.authenticated .dashboard-announcement-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: var(--s3);
    padding-block: var(--s3);
}

.authenticated .dashboard-announcement-item__icon {
    display: grid;
    place-items: center;
    inline-size: 2.2rem;
    block-size: 2.2rem;
    border-radius: 50%;
    color: var(--brand-secondary);
    background: var(--brand-secondary-soft);
}

.authenticated .dashboard-announcement-item__icon svg {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    fill: currentColor;
}

.authenticated .dashboard-announcement-item__copy { min-inline-size: 0; }

.authenticated .dashboard-announcement-item__copy strong {
    display: block;
    color: var(--c-ink);
    font-size: var(--type-small);
    overflow-wrap: anywhere;
}

/* Announcement bodies run to 4000 characters. The panel shows the opening line
   and the title carries the point; the full text is one click away. */
.authenticated .dashboard-announcement-item__copy p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: .15rem 0 0;
    color: var(--c-muted);
    font-size: var(--type-label);
    line-height: 1.4;
}

.authenticated .dashboard-announcement-item__meta {
    display: grid;
    justify-items: end;
    gap: var(--s1);
    color: var(--c-muted);
    font-size: var(--type-label);
    white-space: nowrap;
}

/* ---- attendance meter ---------------------------------------------------- */

.authenticated .dashboard-meter { display: grid; gap: var(--s3); }

.authenticated .dashboard-meter__figure {
    display: grid;
    gap: .1rem;
    margin: 0;
}

/* The panel's focal number, so it outweighs a metric card's figure without
   competing with the page heading. Proportional figures: a standalone display
   number reads loose with tabular digits. */
.authenticated .dashboard-meter__figure strong {
    color: var(--c-ink);
    font-size: clamp(2rem, 3.4vw, 2.5rem);
    font-weight: 700;
    line-height: 1;
}

.authenticated .dashboard-meter__figure span {
    color: var(--c-muted);
    font-size: var(--type-small);
}

/* A meter, not a chart: the unfilled track is a lighter step of the fill's own
   ramp, so the state reads across the whole bar. */
.authenticated .dashboard-meter__track {
    block-size: .55rem;
    border-radius: var(--r-pill);
    background: color-mix(in srgb, var(--c-success) 16%, var(--c-surface-mid));
    overflow: hidden;
}

.authenticated .dashboard-meter__fill {
    display: block;
    inline-size: clamp(0%, var(--meter-value, 0%), 100%);
    block-size: 100%;
    border-radius: inherit;
    background: var(--c-success);
}

/* ---- attendance breakdown ------------------------------------------------ */
/* The four statuses as labelled numbers rather than four chart colours: as
   status tokens they are not a categorical palette (warning and danger are
   indistinguishable under deuteranopia), and at a normal present rate the other
   three are slivers no arc could show. The label carries the identity. */

.authenticated .dashboard-breakdown {
    display: grid;
    gap: 0;
    margin: var(--s4) 0 0;
}

.authenticated .dashboard-breakdown > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--s3);
    padding-block: var(--s2);
    border-block-end: 1px solid var(--c-line);
}

.authenticated .dashboard-breakdown > div:last-child { border-block-end: 0; }

.authenticated .dashboard-breakdown dt {
    color: var(--c-text);
    font-size: var(--type-label);
}

.authenticated .dashboard-breakdown dd {
    margin: 0;
    color: var(--c-ink);
    font-size: var(--type-small);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ---- panel empty states -------------------------------------------------- */


/* ---- class overview list (teacher panel band) ---------------------------- */
/* The schedule and announcement rows above are shared with the administrator's
   band; only this class row is teacher-specific. */

.authenticated .dashboard-class-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .dashboard-class-item { padding: 0; }
.authenticated .dashboard-class-item:last-child { border-block-end: 0; }

.authenticated .dashboard-class-item__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--s3);
    padding-block: var(--s3);
    color: inherit;
    text-decoration: none;
}

.authenticated .dashboard-class-item__link:hover .dashboard-class-item__copy strong {
    color: var(--brand-primary-strong);
    text-decoration: underline;
    text-underline-offset: .18em;
}

.authenticated .dashboard-class-item__copy { min-inline-size: 0; }

.authenticated .dashboard-class-item__copy strong {
    display: block;
    color: var(--c-ink);
    font-size: var(--type-small);
    overflow-wrap: anywhere;
}

.authenticated .dashboard-class-item__copy small {
    display: block;
    margin-block-start: .15rem;
    color: var(--c-muted);
    font-size: var(--type-label);
}

/* Stacked rather than in a row: "24 students" and an attendance chip side by
   side wrap badly in a third-of-a-page panel. */
.authenticated .dashboard-class-item__facts {
    display: grid;
    justify-items: end;
    gap: var(--s1);
    text-align: end;
    white-space: nowrap;
}

.authenticated .dashboard-class-item__count {
    color: var(--c-muted);
    font-size: var(--type-label);
    font-variant-numeric: tabular-nums;
}

/* ---- the operations panel band, shared by every role ---------------------- */
/* Admin, Teacher and Parent all render this band. The rules were written three
   times before this; one selector is the point of a shared grammar. */

.authenticated .role-dashboard__operations-band .dashboard-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.authenticated .role-dashboard__operations-band .dashboard-panel__intro {
    margin-block-end: var(--s3);
    font-size: var(--type-small);
}

.authenticated .role-dashboard__operations-band .dashboard-panel__note a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: .18em;
}

/* Left-aligned and quiet: inside a panel an empty state is one of several
   states, not the centred full-page apology it is on its own screen. */
.authenticated .role-dashboard__operations-band .empty-state {
    margin-block-start: var(--s2);
    padding: var(--s4) 0 var(--s2);
    text-align: start;
}

.authenticated .role-dashboard__operations-band .empty-state h3 {
    margin: 0 0 var(--s2);
    font-size: var(--type-small);
}

.authenticated .role-dashboard__operations-band .empty-state p {
    margin: 0;
    color: var(--c-muted);
    font-size: var(--type-label);
}

.authenticated .role-dashboard__operations-band .empty-state .button {
    margin-block-start: var(--s3);
}

/* ---- parent balance ------------------------------------------------------- */

.authenticated .parent-dashboard__balance-figure { margin: 0; }

.authenticated .parent-dashboard__balance-actions {
    margin-block-start: auto;
    padding-block-start: var(--s4);
}

/* ---------------------------------------------------------------------------
   PORTAL-1 — Admin dashboard visual convergence (2026-09-04)

   The 2026-09-04 reference establishes hierarchy and density, not new domain
   facts. This treatment therefore uses only AdminDashboardView-backed content:
   the six canonical facts, authorized balance, Today's Schedule, Recent
   Announcements, Attendance Today, Launch Actions and existing setup guidance.
   Screenshot-only trends, activity feeds, conferences and AI controls remain
   intentionally absent.
   --------------------------------------------------------------------------- */
.authenticated .admin-dashboard--command-center {
    max-inline-size: 94rem;
    gap: clamp(var(--s4), 1.7vw, var(--s6));
    padding-block-start: clamp(var(--s4), 1.8vw, var(--s6));
}

/* Operations starts with a compact premium welcome band. It is intentionally
   not a photograph: the dashboard view has no canonical campus image source. */
.authenticated .admin-dashboard--operations .admin-dashboard__header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    align-items: center;
    gap: clamp(var(--s4), 2vw, var(--s6));
    padding: clamp(1.1rem, 2.2vw, 1.55rem) clamp(1.15rem, 2.5vw, 1.8rem);
    border: 1px solid color-mix(in srgb, var(--portal-forest, #123d2d) 14%, var(--c-surface-border));
    border-radius: 1.15rem;
    background:
        radial-gradient(ellipse at 92% 18%, rgba(201, 163, 84, .16), transparent 24%),
        radial-gradient(ellipse at 78% 105%, rgba(18, 61, 45, .1), transparent 31%),
        linear-gradient(118deg, color-mix(in srgb, var(--portal-cream, #f7f3e9) 78%, var(--c-surface)), var(--c-surface));
    box-shadow: 0 .55rem 1.8rem rgba(18, 61, 45, .055);
}

.authenticated .admin-dashboard--operations .admin-dashboard__header::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: auto -2.5rem -4.6rem auto;
    inline-size: 15rem;
    block-size: 9rem;
    border: 1px solid rgba(18, 61, 45, .1);
    border-radius: 65% 35% 62% 38% / 55% 62% 38% 45%;
    transform: rotate(-12deg);
}

.authenticated .admin-dashboard--operations .admin-dashboard__welcome {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    flex: 1 1 34rem;
}

.authenticated .admin-dashboard--operations .admin-dashboard__welcome-copy {
    gap: .28rem;
}

.authenticated .admin-dashboard--operations .admin-dashboard__context-line .eyebrow {
    color: color-mix(in srgb, var(--portal-forest, #123d2d) 80%, var(--c-muted));
    font-weight: 800;
}

.authenticated .admin-dashboard--operations .admin-dashboard__context-line .c-chip {
    color: var(--portal-forest, #123d2d);
    background: color-mix(in srgb, var(--portal-forest-soft, #e9f0eb) 82%, var(--c-surface));
}

.authenticated .admin-dashboard--operations .admin-dashboard__greeting-title {
    gap: .06rem;
    margin: .18rem 0 .12rem;
}

.authenticated .admin-dashboard--operations .admin-dashboard__greeting-lead {
    font-size: .82rem;
    font-weight: 720;
    letter-spacing: .02em;
}

.authenticated .admin-dashboard--operations .admin-dashboard__greeting-name {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 2.6vw, 2.35rem);
    font-weight: 650;
    line-height: 1.05;
    letter-spacing: -.03em;
    color: var(--portal-forest, #123d2d);
}

.authenticated .admin-dashboard--operations .admin-dashboard__welcome-copy > p {
    max-inline-size: 62ch;
    font-size: .86rem;
}

.authenticated .admin-dashboard--operations .admin-dashboard__subscription {
    min-inline-size: min(100%, 16.5rem);
    max-inline-size: 20rem;
    gap: .22rem;
    padding: .7rem .8rem;
    border-color: color-mix(in srgb, var(--portal-gold, #c9a354) 26%, var(--c-control-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--c-surface) 86%, transparent);
    box-shadow: none;
}

.authenticated .admin-dashboard--operations .admin-dashboard__subscription p {
    margin: 0;
    color: var(--c-muted);
    font-size: .68rem;
    line-height: 1.35;
}

/* ---- canonical KPI strip ------------------------------------------------ */
.authenticated .admin-dashboard--operations .admin-dashboard__metrics {
    gap: .78rem;
}

@media (min-width: 82rem) {
    .authenticated .admin-dashboard--operations .dashboard-kpi-grid {
        grid-template-columns: repeat(auto-fit, minmax(10.25rem, 1fr));
    }
}

.authenticated .admin-dashboard--operations .dashboard-kpi {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: .7rem;
    min-block-size: 8.25rem;
    padding: .95rem 1rem;
    border-color: color-mix(in srgb, var(--portal-forest, #123d2d) 10%, var(--c-surface-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--c-surface) 97%, var(--portal-cream, #f7f3e9));
    box-shadow: 0 .45rem 1.35rem rgba(18, 61, 45, .045);
}

.authenticated .admin-dashboard--operations .dashboard-kpi::after {
    inset: 0 auto auto 1rem;
    inline-size: 2.15rem;
    block-size: .18rem;
    border-radius: 0 0 var(--r-pill) var(--r-pill);
    background: var(--portal-gold, #c9a354);
    opacity: .78;
}

.authenticated .admin-dashboard--operations .dashboard-kpi__icon {
    inline-size: 2.45rem;
    block-size: 2.45rem;
    border-radius: .78rem;
    color: var(--portal-forest, #123d2d);
    background: var(--portal-forest-soft, #e9f0eb);
}

.authenticated .admin-dashboard--operations .dashboard-kpi--secondary .dashboard-kpi__icon,
.authenticated .admin-dashboard--operations .dashboard-kpi--tertiary .dashboard-kpi__icon {
    color: #536e52;
    background: #edf1e8;
}

.authenticated .admin-dashboard--operations .dashboard-kpi--neutral .dashboard-kpi__icon,
.authenticated .admin-dashboard--operations .dashboard-kpi--accent .dashboard-kpi__icon,
.authenticated .admin-dashboard--operations .dashboard-kpi--finance .dashboard-kpi__icon {
    color: #8b6b2c;
    background: var(--portal-gold-soft, #f4ead1);
}

.authenticated .admin-dashboard--operations .dashboard-kpi__icon svg {
    inline-size: 1.25rem;
    block-size: 1.25rem;
}

.authenticated .admin-dashboard--operations .dashboard-kpi__label {
    font-size: .72rem;
    font-weight: 760;
}

.authenticated .admin-dashboard--operations .dashboard-kpi strong {
    margin-block: .04rem .12rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 2vw, 2rem);
    font-weight: 650;
    color: var(--portal-forest, #123d2d);
}

.authenticated .admin-dashboard--operations .dashboard-kpi small {
    min-block-size: 2.15em;
    font-size: .69rem;
}

.authenticated .admin-dashboard--operations .dashboard-kpi small a:focus-visible {
    border-radius: .2rem;
}

/* ---- real operations panels -------------------------------------------- */
.authenticated .admin-dashboard__operations-band {
    gap: var(--s4);
}

.authenticated .admin-dashboard__operations-band .dashboard-panel {
    min-block-size: 20rem;
    padding: 1.05rem;
    border-color: color-mix(in srgb, var(--portal-forest, #123d2d) 10%, var(--c-surface-border));
    border-radius: 1rem;
    box-shadow: 0 .45rem 1.35rem rgba(18, 61, 45, .04);
}

.authenticated .admin-dashboard__operations-band .dashboard-panel__header {
    min-block-size: 3.35rem;
    padding-block-end: .75rem;
    margin-block-end: .75rem;
}

.authenticated .admin-dashboard__operations-band .dashboard-panel__header h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    color: var(--portal-forest, #123d2d);
}

.authenticated .admin-dashboard__operations-band .dashboard-panel__header > a {
    min-block-size: var(--target-min);
    display: inline-flex;
    align-items: center;
    padding: .4rem .55rem;
    border-radius: .55rem;
    color: var(--portal-forest, #123d2d);
    font-size: .7rem;
    font-weight: 760;
}

.authenticated .admin-dashboard__operations-band .dashboard-panel__header > a:hover,
.authenticated .admin-dashboard__operations-band .dashboard-panel__header > a:focus-visible {
    background: var(--portal-forest-soft, #e9f0eb);
}

.authenticated .admin-dashboard__attendance { order: 1; }
.authenticated .admin-dashboard__schedule { order: 2; }
.authenticated .admin-dashboard__announcements { order: 3; }

.authenticated .admin-dashboard__attendance {
    border-block-start: .2rem solid var(--portal-gold, #c9a354);
}

.authenticated .admin-dashboard__schedule {
    border-block-start: .2rem solid color-mix(in srgb, var(--portal-forest, #123d2d) 74%, #ffffff);
}

.authenticated .admin-dashboard__announcements {
    border-block-start: .2rem solid #78916e;
}

.authenticated .admin-dashboard__attendance .dashboard-meter__fill {
    background: linear-gradient(90deg, var(--portal-forest, #123d2d), #607d58);
}

.authenticated .admin-dashboard__attendance .dashboard-meter__figure strong {
    font-family: Georgia, "Times New Roman", serif;
    color: var(--portal-forest, #123d2d);
}

/* ---- readiness + actions ------------------------------------------------ */
.authenticated .admin-dashboard__workspace-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .8fr);
    gap: var(--s4);
}

.authenticated .admin-dashboard__workspace-grid .dashboard-panel {
    padding: 1.1rem;
    border-radius: 1rem;
}

.authenticated .admin-dashboard__workspace-grid .dashboard-panel__header h2,
.authenticated .admin-dashboard__foundation .dashboard-panel__header h2 {
    font-family: Georgia, "Times New Roman", serif;
    color: var(--portal-forest, #123d2d);
}

.authenticated .admin-dashboard__readiness .dashboard-readiness-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.authenticated .admin-dashboard__readiness .dashboard-readiness-item {
    min-block-size: 4.65rem;
    grid-template-columns: auto minmax(0, 1fr);
    align-content: center;
    border: 1px solid var(--c-surface-border);
    border-radius: .8rem;
    padding: .72rem;
    background: var(--c-surface-low);
}

.authenticated .admin-dashboard__readiness .dashboard-readiness-item__mark {
    display: grid;
    place-items: center;
    inline-size: 1.8rem;
    block-size: 1.8rem;
    border-radius: 50%;
}

.authenticated .admin-dashboard__readiness .dashboard-readiness-item.is-ready .dashboard-readiness-item__mark {
    color: var(--portal-forest, #123d2d);
    background: var(--portal-forest-soft, #e9f0eb);
}

.authenticated .admin-dashboard__readiness .dashboard-readiness-item.is-missing .dashboard-readiness-item__mark {
    color: #8b6b2c;
    background: var(--portal-gold-soft, #f4ead1);
}

.authenticated .admin-dashboard__actions-panel .dashboard-action-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: .5rem;
}

.authenticated .admin-dashboard__actions-panel .dashboard-action {
    min-block-size: var(--target-min);
    border-color: color-mix(in srgb, var(--portal-forest, #123d2d) 9%, var(--c-surface-border));
    border-radius: .78rem;
    background: var(--c-surface-low);
}

.authenticated .admin-dashboard__actions-panel .dashboard-action__marker {
    inline-size: 2.35rem;
    block-size: 2.35rem;
    color: var(--portal-forest, #123d2d);
    background: var(--portal-forest-soft, #e9f0eb);
}

.authenticated .admin-dashboard__actions-panel .dashboard-action__arrow {
    color: var(--portal-gold, #c9a354);
}

/* The foundation remains truthful but visually secondary to today's work. */
.authenticated .admin-dashboard__foundation {
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: color-mix(in srgb, var(--portal-cream, #f7f3e9) 52%, var(--c-surface));
    box-shadow: none;
}

.authenticated .admin-dashboard__foundation .dashboard-panel__header {
    margin-block-end: .65rem;
    padding-block-end: .65rem;
}

.authenticated .admin-dashboard__foundation .dashboard-foundation-grid {
    gap: 0;
}

/* Demo guidance is part of the product, not a second dashboard hero. */
.authenticated .admin-demo-guided-scenario {
    border-inline-start: .25rem solid var(--portal-gold, #c9a354);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--portal-gold-soft, #f4ead1) 34%, var(--c-surface));
}

/* Trial setup keeps the existing behavior and state while adopting the same
   surface vocabulary as the operations dashboard. */
.authenticated .trial-getting-started {
    border-color: color-mix(in srgb, var(--portal-gold, #c9a354) 24%, var(--c-surface-border));
    border-radius: 1rem;
    box-shadow: 0 .45rem 1.35rem rgba(18, 61, 45, .04);
}

@media (max-width: 72rem) {
    .authenticated .admin-dashboard__workspace-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .admin-dashboard__actions-panel .dashboard-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 56rem) {
    .authenticated .admin-dashboard--command-center {
        padding-block-start: var(--s4);
    }

    .authenticated .admin-dashboard--operations .admin-dashboard__header {
        align-items: stretch;
        flex-direction: column;
    }

    .authenticated .admin-dashboard--operations .admin-dashboard__subscription {
        max-inline-size: none;
    }
}

@media (max-width: 48rem) {
    .authenticated .admin-dashboard__operations-band .dashboard-panel {
        min-block-size: 0;
    }

    .authenticated .admin-dashboard__readiness .dashboard-readiness-list,
    .authenticated .admin-dashboard__actions-panel .dashboard-action-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 30rem) {
    .authenticated .admin-dashboard--operations .admin-dashboard__header {
        padding: var(--s4);
        border-radius: .9rem;
    }

    .authenticated .admin-dashboard--operations .admin-dashboard__greeting-name {
        font-size: 1.7rem;
    }

    .authenticated .admin-dashboard--operations .dashboard-kpi {
        min-block-size: 7.65rem;
        padding: .8rem;
    }

    .authenticated .admin-dashboard--operations .dashboard-kpi small {
        font-size: .66rem;
    }
}

@media (prefers-contrast: more) {
    .authenticated .admin-dashboard--operations .admin-dashboard__header,
    .authenticated .admin-dashboard--operations .dashboard-kpi,
    .authenticated .admin-dashboard__operations-band .dashboard-panel,
    .authenticated .admin-dashboard__workspace-grid .dashboard-panel,
    .authenticated .admin-dashboard__foundation {
        border-width: 2px;
    }
}

@media (forced-colors: active) {
    .authenticated .admin-dashboard--operations .admin-dashboard__header,
    .authenticated .admin-dashboard--operations .dashboard-kpi,
    .authenticated .admin-dashboard__operations-band .dashboard-panel,
    .authenticated .admin-dashboard__workspace-grid .dashboard-panel,
    .authenticated .admin-dashboard__foundation,
    .authenticated .admin-demo-guided-scenario,
    .authenticated .trial-getting-started {
        border-color: CanvasText;
        background: Canvas;
        box-shadow: none;
    }

    .authenticated .admin-dashboard--operations .admin-dashboard__header::after,
    .authenticated .admin-dashboard--operations .dashboard-kpi::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-dashboard--operations .dashboard-kpi,
    .authenticated .admin-dashboard__actions-panel .dashboard-action {
        transition: none;
    }
}

/* PORTAL-1 dark preset: preserve the existing authenticated dark family while
   keeping the same information hierarchy. The default cream/forest treatment
   must not turn a dark portal into a light island. */
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard--operations .admin-dashboard__header {
    border-color: color-mix(in srgb, var(--portal-gold, #c9a354) 22%, var(--c-surface-border));
    background:
        radial-gradient(ellipse at 92% 18%, rgba(201, 163, 84, .12), transparent 24%),
        linear-gradient(118deg, color-mix(in srgb, var(--c-surface) 90%, #173a2b), var(--c-surface));
}

body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard--operations :is(
    .admin-dashboard__greeting-name,
    .dashboard-kpi strong,
    .dashboard-panel__header h2,
    .admin-dashboard__workspace-grid .dashboard-panel__header h2,
    .admin-dashboard__foundation .dashboard-panel__header h2,
    .admin-dashboard__attendance .dashboard-meter__figure strong) {
    color: var(--c-ink);
}

body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard--operations .admin-dashboard__context-line .c-chip,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard__operations-band .dashboard-panel__header > a,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard__actions-panel .dashboard-action__marker,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard--operations .dashboard-kpi__icon {
    color: var(--role-accent);
    background: var(--role-accent-soft);
}

body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard--operations .dashboard-kpi,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard__foundation,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard__readiness .dashboard-readiness-item,
body.authenticated.role-admin[data-theme-preset="DARK"] .admin-dashboard__actions-panel .dashboard-action {
    background: var(--c-surface);
}

/* ========================================================================== */
/* PORTAL-2A — tenant-scoped Admin Student Directory / person locator         */
/* ========================================================================== */
.authenticated .admin-student-directory {
    --student-directory-forest: var(--portal-forest, #123d2d);
    --student-directory-forest-soft: var(--portal-forest-soft, #e9f0eb);
    --student-directory-gold: var(--portal-gold, #c9a354);
    --student-directory-gold-soft: var(--portal-gold-soft, #f4ead1);
    gap: var(--s5);
    padding-block-start: var(--s4);
}

.authenticated .student-directory-heading {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--student-directory-forest) 11%, var(--c-surface-border));
    background:
        radial-gradient(ellipse at 94% 10%, color-mix(in srgb, var(--student-directory-gold) 10%, transparent), transparent 30%),
        linear-gradient(118deg, color-mix(in srgb, var(--portal-cream, #f7f3e9) 62%, var(--c-surface)), var(--c-surface));
    box-shadow: 0 .5rem 1.6rem rgba(18, 61, 45, .04);
}

.authenticated .student-directory-heading::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: auto -3rem -4.5rem auto;
    inline-size: 13rem;
    block-size: 13rem;
    border: 1px solid color-mix(in srgb, var(--student-directory-forest) 8%, transparent);
    border-radius: 48% 52% 62% 38%;
    transform: rotate(-18deg);
}

.authenticated .student-directory-heading h1 {
    font-family: Georgia, "Times New Roman", serif;
    color: var(--student-directory-forest);
    font-size: clamp(2rem, 3.4vw, 2.8rem);
}

.authenticated .student-directory-heading__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-block-start: var(--s4);
}

.authenticated .student-directory-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.authenticated .student-directory-kpi {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .8rem;
    min-block-size: 7.6rem;
    padding: 1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--student-directory-forest) 10%, var(--c-surface-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--c-surface) 97%, var(--portal-cream, #f7f3e9));
    box-shadow: 0 .45rem 1.35rem rgba(18, 61, 45, .04);
}

.authenticated .student-directory-kpi::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 1rem;
    inline-size: 2.2rem;
    block-size: .18rem;
    border-radius: 0 0 999px 999px;
    background: var(--student-directory-gold);
}

.authenticated .student-directory-kpi__icon {
    display: grid;
    place-items: center;
    inline-size: 2.8rem;
    block-size: 2.8rem;
    border-radius: .85rem;
    color: var(--student-directory-forest);
    background: var(--student-directory-forest-soft);
}

.authenticated .student-directory-kpi--inactive .student-directory-kpi__icon,
.authenticated .student-directory-kpi--matches .student-directory-kpi__icon {
    color: #87682d;
    background: var(--student-directory-gold-soft);
}

.authenticated .student-directory-kpi__icon svg {
    inline-size: 1.35rem;
    block-size: 1.35rem;
    fill: currentColor;
}

.authenticated .student-directory-kpi__copy {
    display: grid;
    gap: .18rem;
    min-inline-size: 0;
}

.authenticated .student-directory-kpi__copy > span {
    color: var(--c-muted);
    font-size: .72rem;
    font-weight: 760;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.authenticated .student-directory-kpi__copy strong {
    font-family: Georgia, "Times New Roman", serif;
    color: var(--student-directory-forest);
    font-size: 1.85rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.authenticated .student-directory-kpi__copy small {
    color: var(--c-muted);
    font-size: .68rem;
    line-height: 1.35;
}

.authenticated .student-directory-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(19rem, 23rem);
    gap: var(--s4);
    align-items: start;
}

.authenticated .student-directory-list-card,
.authenticated .student-directory-detail {
    border-color: color-mix(in srgb, var(--student-directory-forest) 10%, var(--c-surface-border));
    border-radius: 1rem;
    box-shadow: 0 .45rem 1.35rem rgba(18, 61, 45, .04);
}

.authenticated .student-directory-list-card {
    min-inline-size: 0;
    padding: 0;
    overflow: hidden;
}

.authenticated .student-directory-filters {
    display: grid;
    grid-template-columns: minmax(17rem, 2.25fr) minmax(9rem, .75fr) minmax(10rem, 1fr) auto;
    gap: .75rem;
    align-items: end;
    padding: 1rem;
    border-block-end: 1px solid var(--c-surface-border);
    background: color-mix(in srgb, var(--portal-cream, #f7f3e9) 34%, var(--c-surface));
}

.authenticated .student-directory-filters .form-group {
    gap: .35rem;
    margin: 0;
}

.authenticated .student-directory-filters label {
    color: var(--c-muted);
    font-size: .7rem;
    font-weight: 760;
}

.authenticated .student-directory-filters input,
.authenticated .student-directory-filters select {
    min-block-size: var(--target-min, 2.75rem);
}

.authenticated .student-directory-search-control {
    position: relative;
}

.authenticated .student-directory-search-control__icon {
    position: absolute;
    inset-inline-start: .75rem;
    inset-block-start: 50%;
    display: grid;
    place-items: center;
    inline-size: 1.15rem;
    block-size: 1.15rem;
    transform: translateY(-50%);
    color: var(--c-muted);
    pointer-events: none;
}

.authenticated .student-directory-search-control__icon svg {
    inline-size: 100%;
    block-size: 100%;
    fill: currentColor;
}

.authenticated .student-directory-search-control input {
    inline-size: 100%;
    padding-inline-start: 2.4rem;
}

.authenticated .student-directory-filters__actions {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.authenticated .student-directory-filters__actions .button {
    min-block-size: var(--target-min, 2.75rem);
}

.authenticated .student-directory-results-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1rem .75rem;
}

.authenticated .student-directory-results-heading h2 {
    margin: .2rem 0 0;
    font-family: Georgia, "Times New Roman", serif;
    color: var(--student-directory-forest);
    font-size: 1.25rem;
}

.authenticated .student-directory-results-heading__count {
    margin: 0;
    color: var(--c-muted);
    font-size: .75rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.authenticated .student-directory-empty {
    margin: 0 1rem 1rem;
}

.authenticated .student-directory-table-wrap {
    overflow-x: auto;
    border-block: 1px solid var(--c-surface-border);
}

.authenticated .student-directory-table {
    inline-size: 100%;
    min-inline-size: 46rem;
    border-collapse: collapse;
    font-size: .78rem;
}

.authenticated .student-directory-table th {
    padding: .72rem .8rem;
    color: var(--c-muted);
    background: color-mix(in srgb, var(--portal-cream, #f7f3e9) 28%, var(--c-surface));
    font-size: .66rem;
    font-weight: 780;
    letter-spacing: .035em;
    text-align: start;
    text-transform: uppercase;
}

.authenticated .student-directory-table td {
    padding: .72rem .8rem;
    border-block-start: 1px solid var(--c-surface-border);
    vertical-align: middle;
}

.authenticated .student-directory-table tbody tr:first-child td {
    border-block-start: 0;
}

.authenticated .student-directory-table tbody tr {
    transition: background-color .16s ease, box-shadow .16s ease;
}

.authenticated .student-directory-table tbody tr:hover {
    background: color-mix(in srgb, var(--student-directory-forest-soft) 42%, transparent);
}

.authenticated .student-directory-table tbody tr.is-selected {
    background: color-mix(in srgb, var(--student-directory-forest-soft) 68%, var(--c-surface));
    box-shadow: inset .2rem 0 0 var(--student-directory-forest);
}

.authenticated .student-directory-table__student {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .65rem;
    align-items: center;
    min-inline-size: 13rem;
}

.authenticated .student-directory-avatar {
    display: grid;
    place-items: center;
    inline-size: 2.45rem;
    block-size: 2.45rem;
    flex: 0 0 auto;
    border: 1px solid color-mix(in srgb, var(--student-directory-forest) 15%, var(--c-surface-border));
    border-radius: 50%;
    color: var(--student-directory-forest);
    background: linear-gradient(145deg, var(--student-directory-forest-soft), var(--student-directory-gold-soft));
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
    font-weight: 700;
}

.authenticated .student-directory-avatar--large {
    inline-size: 4rem;
    block-size: 4rem;
    font-size: 1.5rem;
}

.authenticated .student-directory-identity {
    display: grid;
    gap: .12rem;
    min-inline-size: 0;
}

.authenticated .student-directory-identity__name {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--target-min, 2.75rem);
    inline-size: fit-content;
    margin-block: -.55rem;
    color: var(--c-ink);
    font-weight: 780;
    text-decoration: none;
}

.authenticated .student-directory-identity__name:hover {
    color: var(--student-directory-forest);
    text-decoration: underline;
    text-underline-offset: .15em;
}

.authenticated .student-directory-identity > span {
    overflow: hidden;
    color: var(--c-muted);
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.authenticated .student-directory-table__id {
    font-variant-numeric: tabular-nums;
}

.authenticated .student-directory-guardian-state {
    color: var(--c-muted);
    font-size: .72rem;
}

.authenticated .student-directory-guardian-state--connected {
    color: var(--student-directory-forest);
    font-weight: 720;
}

.authenticated .student-directory-table__action {
    text-align: end;
}

.authenticated .student-directory-row-action {
    min-block-size: var(--target-min, 2.75rem);
    padding-inline: .85rem;
}

.authenticated .student-directory-pagination {
    display: grid;
    grid-template-columns: auto minmax(8rem, 1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1rem 1rem;
}

.authenticated .student-directory-pagination .button {
    min-block-size: var(--target-min, 2.75rem);
}

.authenticated .student-directory-pagination .is-disabled {
    opacity: .5;
    pointer-events: none;
}

.authenticated .student-directory-pagination__status {
    color: var(--c-muted);
    font-size: .72rem;
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.authenticated .student-directory-detail {
    position: sticky;
    inset-block-start: 1rem;
    display: grid;
    gap: 1rem;
    padding: 1rem;
    overflow: hidden;
    border-block-start: .2rem solid var(--student-directory-gold);
}

.authenticated .student-directory-detail__identity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
}

.authenticated .student-directory-detail__identity h2 {
    margin: .15rem 0 .1rem;
    font-family: Georgia, "Times New Roman", serif;
    color: var(--student-directory-forest);
    font-size: 1.35rem;
}

.authenticated .student-directory-detail__id {
    margin: 0;
    color: var(--c-muted);
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
}

.authenticated .student-directory-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding-block-end: .85rem;
    border-block-end: 1px solid var(--c-surface-border);
}

.authenticated .student-directory-detail__section {
    display: grid;
    gap: .65rem;
}

.authenticated .student-directory-detail__section + .student-directory-detail__section {
    padding-block-start: .85rem;
    border-block-start: 1px solid var(--c-surface-border);
}

.authenticated .student-directory-detail__section h3 {
    margin: 0;
    color: var(--c-ink);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.authenticated .student-directory-detail-list {
    display: grid;
    gap: .55rem;
    margin: 0;
}

.authenticated .student-directory-detail-list > div {
    display: grid;
    grid-template-columns: minmax(6rem, .8fr) minmax(0, 1.2fr);
    gap: .75rem;
    align-items: baseline;
}

.authenticated .student-directory-detail-list dt {
    color: var(--c-muted);
    font-size: .68rem;
    font-weight: 700;
}

.authenticated .student-directory-detail-list dd {
    margin: 0;
    color: var(--c-ink);
    font-size: .73rem;
    font-weight: 650;
    text-align: end;
}

.authenticated .student-directory-guardian-list {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .student-directory-guardian-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .55rem;
    align-items: start;
    padding: .65rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .75rem;
    background: var(--c-surface-low);
}

.authenticated .student-directory-guardian-list__mark {
    display: grid;
    place-items: center;
    inline-size: 1.85rem;
    block-size: 1.85rem;
    border-radius: 50%;
    color: var(--student-directory-forest);
    background: var(--student-directory-forest-soft);
    font-size: .68rem;
    font-weight: 800;
}

.authenticated .student-directory-guardian-list li > span:last-child {
    display: grid;
    gap: .08rem;
    min-inline-size: 0;
}

.authenticated .student-directory-guardian-list strong {
    color: var(--c-ink);
    font-size: .75rem;
}

.authenticated .student-directory-guardian-list li > span:last-child > span,
.authenticated .student-directory-guardian-list a {
    overflow-wrap: anywhere;
    color: var(--c-muted);
    font-size: .68rem;
}

.authenticated .student-directory-guardian-list a {
    min-block-size: var(--target-min, 2.75rem);
    display: inline-flex;
    align-items: center;
    margin-block: -.45rem;
    inline-size: fit-content;
}

.authenticated .student-directory-detail__actions .button {
    inline-size: 100%;
    min-block-size: var(--target-min, 2.75rem);
}

@media (max-width: 72rem) {
    .authenticated .student-directory-workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .student-directory-detail {
        position: static;
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    }

    .authenticated .student-directory-detail__identity,
    .authenticated .student-directory-detail__chips {
        grid-column: 1 / -1;
    }
}

@media (max-width: 64rem) {
    .authenticated .student-directory-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .student-directory-filters {
        grid-template-columns: minmax(0, 1.6fr) minmax(9rem, .7fr) minmax(10rem, .9fr);
    }

    .authenticated .student-directory-filters__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

@media (max-width: 48rem) {
    .authenticated .student-directory-heading {
        padding: var(--s5);
    }

    .authenticated .student-directory-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .student-directory-filters__actions {
        grid-column: auto;
        justify-content: stretch;
    }

    .authenticated .student-directory-filters__actions .button {
        flex: 1 1 0;
    }

    .authenticated .student-directory-results-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
    }

    .authenticated .student-directory-table-wrap {
        overflow: visible;
        padding: 0 .8rem .8rem;
        border-block: 0;
    }

    .authenticated .student-directory-table,
    .authenticated .student-directory-table tbody,
    .authenticated .student-directory-table tr,
    .authenticated .student-directory-table td {
        display: block;
        inline-size: 100%;
        min-inline-size: 0;
    }

    .authenticated .student-directory-table thead {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .authenticated .student-directory-table tbody {
        display: grid;
        gap: .7rem;
    }

    .authenticated .student-directory-table tbody tr {
        padding: .75rem;
        border: 1px solid var(--c-surface-border);
        border-radius: .85rem;
        background: var(--c-surface);
        box-shadow: 0 .3rem .9rem rgba(18, 61, 45, .035);
    }

    .authenticated .student-directory-table tbody tr.is-selected {
        border-color: color-mix(in srgb, var(--student-directory-forest) 34%, var(--c-surface-border));
        box-shadow: inset .2rem 0 0 var(--student-directory-forest);
    }

    .authenticated .student-directory-table td {
        display: grid;
        grid-template-columns: minmax(7rem, .7fr) minmax(0, 1.3fr);
        gap: .75rem;
        align-items: center;
        padding: .52rem 0;
        border-block-start: 1px solid var(--c-surface-border);
        text-align: start;
    }

    .authenticated .student-directory-table td::before {
        content: attr(data-label);
        color: var(--c-muted);
        font-size: .65rem;
        font-weight: 760;
        letter-spacing: .025em;
        text-transform: uppercase;
    }

    .authenticated .student-directory-table__student {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        padding-block-start: 0;
        border-block-start: 0;
    }

    .authenticated .student-directory-table__student::before {
        display: none;
    }

    .authenticated .student-directory-table__action {
        grid-template-columns: minmax(0, 1fr);
        padding-block-end: 0;
    }

    .authenticated .student-directory-table__action::before {
        display: none;
    }

    .authenticated .student-directory-row-action {
        inline-size: 100%;
    }

    .authenticated .student-directory-detail {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .student-directory-detail__identity,
    .authenticated .student-directory-detail__chips {
        grid-column: auto;
    }
}

@media (max-width: 30rem) {
    .authenticated .admin-student-directory {
        gap: var(--s4);
    }

    .authenticated .student-directory-heading {
        padding: var(--s4);
        border-radius: .9rem;
    }

    .authenticated .student-directory-heading h1 {
        font-size: 1.9rem;
    }

    .authenticated .student-directory-kpis {
        gap: .6rem;
    }

    .authenticated .student-directory-kpi {
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem;
        min-block-size: 8.2rem;
        padding: .8rem;
    }

    .authenticated .student-directory-kpi__icon {
        inline-size: 2.35rem;
        block-size: 2.35rem;
    }

    .authenticated .student-directory-kpi__copy strong {
        font-size: 1.55rem;
    }

    .authenticated .student-directory-detail-list > div {
        grid-template-columns: minmax(0, 1fr);
        gap: .15rem;
    }

    .authenticated .student-directory-detail-list dd {
        text-align: start;
    }

    .authenticated .student-directory-pagination {
        grid-template-columns: 1fr 1fr;
    }

    .authenticated .student-directory-pagination__status {
        grid-column: 1 / -1;
        grid-row: 1;
    }
}

@media (prefers-contrast: more) {
    .authenticated .student-directory-heading,
    .authenticated .student-directory-kpi,
    .authenticated .student-directory-list-card,
    .authenticated .student-directory-detail,
    .authenticated .student-directory-table tbody tr,
    .authenticated .student-directory-guardian-list li {
        border-width: 2px;
    }
}

@media (forced-colors: active) {
    .authenticated .student-directory-heading,
    .authenticated .student-directory-kpi,
    .authenticated .student-directory-list-card,
    .authenticated .student-directory-detail,
    .authenticated .student-directory-filters,
    .authenticated .student-directory-table th,
    .authenticated .student-directory-table tbody tr,
    .authenticated .student-directory-guardian-list li {
        border-color: CanvasText;
        background: Canvas;
        box-shadow: none;
    }

    .authenticated .student-directory-heading::after,
    .authenticated .student-directory-kpi::before {
        display: none;
    }

    .authenticated .student-directory-table tbody tr.is-selected {
        outline: 2px solid Highlight;
        outline-offset: -2px;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .student-directory-table tbody tr {
        transition: none;
    }
}

body.authenticated.role-admin[data-theme-preset="DARK"] .student-directory-heading,
body.authenticated.role-admin[data-theme-preset="DARK"] .student-directory-kpi,
body.authenticated.role-admin[data-theme-preset="DARK"] .student-directory-list-card,
body.authenticated.role-admin[data-theme-preset="DARK"] .student-directory-detail {
    background: var(--c-surface);
}

body.authenticated.role-admin[data-theme-preset="DARK"] :is(
    .student-directory-heading h1,
    .student-directory-kpi__copy strong,
    .student-directory-results-heading h2,
    .student-directory-detail__identity h2) {
    color: var(--c-ink);
}

/* PORTAL-2B Admin Student 360 composition */
.authenticated .admin-student-360 {
    --student-360-forest: var(--portal-forest, #123d2d);
    --student-360-forest-soft: var(--portal-forest-soft, #e9f0eb);
    --student-360-gold: var(--portal-gold, #c9a354);
    --student-360-gold-soft: var(--portal-gold-soft, #f4ead1);
    display: grid;
    gap: var(--s5);
}

.authenticated .student-360-breadcrumb {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: var(--c-muted);
    font-size: .78rem;
    font-weight: 680;
}

.authenticated .student-360-breadcrumb a {
    min-block-size: var(--target-min, 2.75rem);
    display: inline-flex;
    align-items: center;
    color: var(--student-360-forest);
    text-decoration: none;
}

.authenticated .student-360-hero {
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: var(--s5);
    padding: clamp(1.2rem, 2vw, 1.8rem);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--student-360-forest) 11%, var(--c-surface-border));
    border-radius: 1.15rem;
    background:
        radial-gradient(ellipse at 92% 0%, color-mix(in srgb, var(--student-360-gold) 12%, transparent), transparent 34%),
        linear-gradient(145deg, color-mix(in srgb, var(--student-360-forest-soft) 42%, var(--c-surface)), var(--c-surface) 58%);
    box-shadow: 0 .8rem 2rem rgba(18, 61, 45, .06);
}

.authenticated .student-360-hero::after {
    content: "";
    position: absolute;
    inset-inline-end: -3.5rem;
    inset-block-end: -5rem;
    inline-size: 13rem;
    block-size: 13rem;
    border: 1px solid color-mix(in srgb, var(--student-360-gold) 20%, transparent);
    border-radius: 50%;
    pointer-events: none;
}

.authenticated .student-360-identity {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-inline-size: 0;
    gap: 1.15rem;
}

.authenticated .student-360-avatar {
    inline-size: clamp(4.5rem, 7vw, 6rem);
    block-size: clamp(4.5rem, 7vw, 6rem);
    flex: 0 0 auto;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    box-shadow: 0 0 0 .35rem color-mix(in srgb, var(--c-surface) 86%, transparent);
}

.authenticated .student-360-identity__body {
    min-inline-size: 0;
}

.authenticated .student-360-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
}

.authenticated .student-360-title-row h1 {
    margin: 0;
    color: var(--student-360-forest);
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 650;
    letter-spacing: -.025em;
}

.authenticated .student-360-subtitle {
    margin: .25rem 0 0;
    color: var(--c-muted);
}

.authenticated .student-360-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin: 1rem 0 0;
}

.authenticated .student-360-facts > div {
    min-inline-size: 0;
    padding-inline-end: .7rem;
    border-inline-end: 1px solid var(--c-surface-border);
}

.authenticated .student-360-facts > div:last-child {
    border-inline-end: 0;
}

.authenticated .student-360-facts dt,
.authenticated .student-360-detail-list dt {
    color: var(--c-muted);
    font-size: .68rem;
    font-weight: 760;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.authenticated .student-360-facts dd {
    margin: .2rem 0 0;
    overflow-wrap: anywhere;
    font-size: .9rem;
    font-weight: 760;
}

.authenticated .student-360-actions {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
}

.authenticated .student-360-actions .button,
.authenticated .student-360-section__header .button,
.authenticated .student-360-tabs :is(a, span) {
    min-block-size: var(--target-min, 2.75rem);
}

.authenticated .student-360-tabs {
    display: flex;
    align-items: center;
    gap: .25rem;
    padding: .3rem;
    overflow-x: auto;
    border: 1px solid var(--c-surface-border);
    border-radius: .9rem;
    background: var(--c-surface);
    scrollbar-width: thin;
}

.authenticated .student-360-tabs :is(a, span) {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: .55rem .85rem;
    border-radius: .65rem;
    color: var(--c-muted);
    font-size: .78rem;
    font-weight: 740;
    text-decoration: none;
}

.authenticated .student-360-tabs a:first-child {
    color: var(--student-360-forest);
    background: var(--student-360-forest-soft);
    box-shadow: inset 0 -.15rem 0 var(--student-360-forest);
}

.authenticated .student-360-tabs a:not(.is-unavailable):hover {
    color: var(--student-360-forest);
    background: color-mix(in srgb, var(--student-360-forest-soft) 65%, transparent);
}

.authenticated .student-360-breadcrumb a:focus-visible,
.authenticated .student-360-tabs a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--student-360-gold) 74%, CanvasText);
    outline-offset: 2px;
}

.authenticated .student-360-tabs .is-unavailable {
    opacity: .58;
    cursor: not-allowed;
}

.authenticated .student-360-grid {
    display: grid;
    gap: var(--s4);
}

.authenticated .student-360-grid--overview {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.authenticated .student-360-card,
.authenticated .student-360-section {
    border-color: color-mix(in srgb, var(--student-360-forest) 10%, var(--c-surface-border));
    box-shadow: 0 .55rem 1.5rem rgba(18, 61, 45, .045);
}

.authenticated .student-360-card {
    min-inline-size: 0;
    padding: 1rem;
}

.authenticated .student-360-card--unavailable {
    background: linear-gradient(145deg, color-mix(in srgb, var(--c-surface-muted) 72%, var(--c-surface)), var(--c-surface));
}

.authenticated .student-360-card__header,
.authenticated .student-360-section__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.authenticated .student-360-card__header h3,
.authenticated .student-360-section__header h2 {
    margin: .12rem 0 0;
    color: var(--student-360-forest);
    font-family: var(--font-display, Georgia, serif);
    font-weight: 650;
}

.authenticated .student-360-card__header h3 {
    font-size: 1.08rem;
}

.authenticated .student-360-section__header h2 {
    font-size: 1.45rem;
}

.authenticated .student-360-card > p:last-child {
    margin-block-end: 0;
}

.authenticated .student-360-detail-list {
    display: grid;
    gap: 0;
    margin: .85rem 0;
}

.authenticated .student-360-detail-list > div {
    display: grid;
    grid-template-columns: minmax(6.5rem, .85fr) minmax(0, 1.15fr);
    gap: .65rem;
    padding: .55rem 0;
    border-block-start: 1px solid var(--c-surface-border);
}

.authenticated .student-360-detail-list > div:first-child {
    border-block-start: 0;
}

.authenticated .student-360-detail-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    text-align: end;
    font-weight: 720;
}

.authenticated .student-360-family-list,
.authenticated .student-360-document-list {
    display: grid;
    gap: .65rem;
    margin: .85rem 0 0;
    padding: 0;
    list-style: none;
}

.authenticated .student-360-family-list li,
.authenticated .student-360-document-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .7rem;
    align-items: start;
    padding: .7rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--c-surface-muted) 38%, var(--c-surface));
}

.authenticated .student-360-family-list li > span:last-child,
.authenticated .student-360-document-list li > span:last-child {
    display: grid;
    min-inline-size: 0;
    gap: .15rem;
}

.authenticated .student-360-family-list small,
.authenticated .student-360-document-list small,
.authenticated .student-360-table small {
    display: block;
    color: var(--c-muted);
    font-size: .72rem;
}

.authenticated .student-360-family-list a {
    overflow-wrap: anywhere;
    color: var(--student-360-forest);
    font-size: .76rem;
}

.authenticated .student-360-document-icon {
    display: grid;
    place-items: center;
    inline-size: 2rem;
    block-size: 2rem;
    border-radius: .55rem;
    color: var(--student-360-forest);
    background: var(--student-360-gold-soft);
    font-size: .72rem;
    font-weight: 800;
}

.authenticated .student-360-section {
    padding: clamp(1rem, 1.8vw, 1.35rem);
    scroll-margin-block-start: 5.5rem;
}

.authenticated .student-360-window {
    margin: .8rem 0;
    color: var(--c-muted);
    font-size: .78rem;
}

.authenticated .student-360-status-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .6rem;
    margin-block: .85rem;
}

.authenticated .student-360-status-grid > div {
    min-inline-size: 0;
    padding: .75rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--student-360-forest-soft) 34%, var(--c-surface));
}

.authenticated .student-360-status-grid span {
    display: block;
    color: var(--c-muted);
    font-size: .66rem;
    font-weight: 740;
}

.authenticated .student-360-status-grid strong {
    display: block;
    margin-block-start: .2rem;
    color: var(--student-360-forest);
    font-size: 1.35rem;
}

.authenticated .student-360-table-wrap {
    margin-block-start: .85rem;
    overflow-x: auto;
    border: 1px solid var(--c-surface-border);
    border-radius: .8rem;
}

.authenticated .student-360-table {
    inline-size: 100%;
    min-inline-size: 42rem;
    border-collapse: collapse;
}

.authenticated .student-360-table th,
.authenticated .student-360-table td {
    padding: .7rem .8rem;
    border-block-start: 1px solid var(--c-surface-border);
    text-align: start;
    vertical-align: middle;
}

.authenticated .student-360-table th {
    border-block-start: 0;
    color: var(--c-muted);
    background: color-mix(in srgb, var(--c-surface-muted) 58%, var(--c-surface));
    font-size: .66rem;
    font-weight: 790;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.authenticated .student-360-table td {
    font-size: .8rem;
}

.authenticated .student-360-empty,
.authenticated .student-360-module-unavailable {
    margin: .85rem 0 0;
    padding: .8rem;
    border: 1px dashed var(--c-surface-border);
    border-radius: .75rem;
    color: var(--c-muted);
    background: color-mix(in srgb, var(--c-surface-muted) 42%, var(--c-surface));
    font-size: .8rem;
}

@media (max-width: 72rem) {
    .authenticated .student-360-grid--overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .student-360-status-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 64rem) {
    .authenticated .student-360-hero {
        flex-direction: column;
    }

    .authenticated .student-360-actions {
        justify-content: flex-start;
    }

    .authenticated .student-360-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .student-360-facts > div:nth-child(2) {
        border-inline-end: 0;
    }
}

@media (max-width: 48rem) {
    .authenticated .admin-student-360 {
        gap: var(--s4);
    }

    .authenticated .student-360-identity {
        align-items: flex-start;
    }

    .authenticated .student-360-grid--overview,
    .authenticated .student-360-status-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .student-360-actions .button {
        flex: 1 1 12rem;
    }

    .authenticated .student-360-table-wrap {
        margin-inline: -.2rem;
    }
}

@media (max-width: 30rem) {
    .authenticated .student-360-hero {
        padding: 1rem;
        border-radius: .9rem;
    }

    .authenticated .student-360-identity {
        flex-direction: column;
    }

    .authenticated .student-360-title-row h1 {
        font-size: 1.9rem;
    }

    .authenticated .student-360-facts {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .student-360-facts > div,
    .authenticated .student-360-facts > div:nth-child(2) {
        padding: .4rem 0;
        border-inline-end: 0;
        border-block-start: 1px solid var(--c-surface-border);
    }

    .authenticated .student-360-facts > div:first-child {
        border-block-start: 0;
    }

    .authenticated .student-360-detail-list > div {
        grid-template-columns: minmax(0, 1fr);
        gap: .15rem;
    }

    .authenticated .student-360-detail-list dd {
        text-align: start;
    }

    .authenticated .student-360-section__header {
        flex-direction: column;
    }

    .authenticated .student-360-section__header .button {
        inline-size: 100%;
    }
}

@media (prefers-contrast: more) {
    .authenticated .student-360-hero,
    .authenticated .student-360-tabs,
    .authenticated .student-360-card,
    .authenticated .student-360-section,
    .authenticated .student-360-family-list li,
    .authenticated .student-360-document-list li,
    .authenticated .student-360-table-wrap {
        border-width: 2px;
    }
}

@media (forced-colors: active) {
    .authenticated .student-360-hero,
    .authenticated .student-360-tabs,
    .authenticated .student-360-card,
    .authenticated .student-360-section,
    .authenticated .student-360-family-list li,
    .authenticated .student-360-document-list li,
    .authenticated .student-360-status-grid > div,
    .authenticated .student-360-table th,
    .authenticated .student-360-empty,
    .authenticated .student-360-module-unavailable {
        border-color: CanvasText;
        background: Canvas;
        box-shadow: none;
    }

    .authenticated .student-360-hero::after {
        display: none;
    }

    .authenticated .student-360-tabs a:first-child {
        outline: 2px solid Highlight;
        outline-offset: -2px;
        background: Canvas;
        box-shadow: none;
    }

    .authenticated .student-360-tabs .is-unavailable {
        color: GrayText;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .student-360-tabs,
    .authenticated .student-360-section {
        scroll-behavior: auto;
    }
}

body.authenticated.role-admin[data-theme-preset="DARK"] :is(
    .student-360-title-row h1,
    .student-360-card__header h3,
    .student-360-section__header h2,
    .student-360-status-grid strong) {
    color: var(--c-ink);
}


/* PORTAL-3A attendance absence acknowledgement */
.attendance-notice-card { scroll-margin-top: 5.5rem; }
.attendance-notice-list { display: grid; gap: 1rem; }
.attendance-notice-item { align-items: stretch; }
.attendance-notice-item__body { display: grid; gap: .85rem; width: 100%; }
.attendance-notice-item__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.attendance-notice-item__heading p, .attendance-notice-acknowledged p { margin: .25rem 0 0; }
.attendance-notice-form { display: grid; gap: .75rem; padding-top: .25rem; }
.attendance-notice-form textarea { min-height: 6.5rem; resize: vertical; }
.attendance-notice-form .button { min-height: 2.75rem; justify-self: start; }
@media (max-width: 768px) {
  .attendance-notice-item__heading { align-items: stretch; flex-direction: column; }
  .attendance-notice-item__heading .status-pill { align-self: flex-start; }
}
@media (forced-colors: active) {
  .attendance-notice-card, .attendance-notice-item { border: 1px solid CanvasText; }
}

/* PORTAL-3B — attendance intervention command center. Real canonical attendance
 * and durable absence-notice evidence only; no inferred rates or trend series. */
.authenticated .admin-ops-workbench--attendance .attendance-command-heading {
    margin-block-end: .85rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-date-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 1rem 1.5rem;
    margin-block-end: .85rem;
    padding: 1rem 1.1rem;
    border-color: var(--ops-border);
    background: color-mix(in srgb, var(--role-accent-soft) 10%, var(--c-surface));
}

.authenticated .admin-ops-workbench--attendance .attendance-date-card__copy {
    min-inline-size: 0;
}

.authenticated .admin-ops-workbench--attendance .attendance-date-card__copy :is(h2, p) {
    margin-block-end: .25rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-date-form {
    display: flex;
    align-items: end;
    gap: .65rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-date-form .form-group {
    margin: 0;
    min-inline-size: 10rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-date-form :is(input, .button) {
    min-block-size: 2.75rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .7rem;
    margin-block-end: 1rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi {
    display: grid;
    align-content: start;
    min-inline-size: 0;
    min-block-size: 7rem;
    padding: .9rem 1rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-card);
    background: var(--c-surface);
    box-shadow: var(--shadow-card-soft);
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi::before {
    content: "";
    inline-size: 2.1rem;
    block-size: .22rem;
    margin-block-end: .75rem;
    border-radius: 999px;
    background: var(--role-accent);
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi--absence::before,
.authenticated .admin-ops-workbench--attendance .attendance-command-kpi--concern::before {
    background: var(--c-warning);
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi--tardy::before,
.authenticated .admin-ops-workbench--attendance .attendance-command-kpi--response::before {
    background: var(--c-accent);
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi > span {
    color: var(--c-muted);
    font-size: var(--type-label);
    font-weight: 700;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi > strong {
    margin-block: .15rem;
    color: var(--c-ink);
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-kpi > small {
    color: var(--c-muted);
    font-size: .75rem;
    line-height: 1.35;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(18rem, .75fr);
    align-items: start;
    gap: 1rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-command-main,
.authenticated .admin-ops-workbench--attendance .attendance-command-aside {
    display: grid;
    min-inline-size: 0;
    gap: 1rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-report {
    border-color: color-mix(in srgb, var(--role-accent) 18%, var(--ops-border));
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table-region {
    max-inline-size: 100%;
    overflow: auto;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface);
    overscroll-behavior-inline: contain;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table-region:focus-visible {
    outline: var(--ops-focus-width) solid var(--brand-focus);
    outline-offset: var(--ops-focus-offset);
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table {
    inline-size: 100%;
    min-inline-size: 40rem;
    border-collapse: separate;
    border-spacing: 0;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table :is(th, td) {
    padding: .75rem .8rem;
    border-block-end: 1px solid var(--ops-border);
    text-align: start;
    vertical-align: middle;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table th {
    color: var(--c-muted);
    background: var(--c-surface-low);
    font-size: var(--type-label);
    font-weight: 800;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table tbody tr:last-child td {
    border-block-end: 0;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table__number {
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.authenticated .admin-ops-workbench--attendance .attendance-concern-table .button--compact {
    min-block-size: 2.75rem;
    white-space: nowrap;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-card,
.authenticated .admin-ops-workbench--attendance .attendance-workflow-card,
.authenticated .admin-ops-workbench--attendance .attendance-status-card,
.authenticated .admin-ops-workbench--attendance .attendance-boundary-card {
    padding: 1rem;
    border-color: var(--ops-border);
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-card {
    border-inline-start: .25rem solid var(--role-accent);
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-card__heading h2 {
    margin-block-end: .2rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-form {
    display: grid;
    gap: .85rem;
    margin-block-start: .9rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-toggle {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: .65rem;
    min-block-size: 2.75rem;
    padding: .7rem;
    border: 1px solid var(--ops-border);
    border-radius: var(--ops-radius-control);
    background: var(--c-surface);
    cursor: pointer;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-toggle input {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    margin-block-start: .1rem;
    accent-color: var(--role-accent);
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-toggle span {
    display: grid;
    gap: .2rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-toggle small {
    color: var(--c-muted);
    line-height: 1.4;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-fields .form-group {
    margin: 0;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-fields input {
    min-block-size: 2.75rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-form > .button {
    min-block-size: 2.75rem;
    justify-self: start;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-readonly dl {
    display: grid;
    gap: .5rem;
    margin-block: .9rem .5rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-readonly dl > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-block-end: .45rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-readonly :is(dt, dd) {
    margin: 0;
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-readonly dt {
    color: var(--c-muted);
}

.authenticated .admin-ops-workbench--attendance .attendance-policy-readonly dd {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.authenticated .admin-ops-workbench--attendance .attendance-workflow-steps {
    display: grid;
    gap: .75rem;
    margin: .85rem 0 0;
    padding: 0;
    list-style: none;
}

.authenticated .admin-ops-workbench--attendance .attendance-workflow-steps li {
    display: grid;
    grid-template-columns: 2.1rem minmax(0, 1fr);
    gap: .65rem;
    align-items: start;
}

.authenticated .admin-ops-workbench--attendance .attendance-workflow-steps li > span {
    display: grid;
    place-items: center;
    inline-size: 2.1rem;
    block-size: 2.1rem;
    border: 1px solid color-mix(in srgb, var(--role-accent) 35%, var(--ops-border));
    border-radius: 50%;
    color: var(--role-accent-strong, var(--c-ink));
    background: color-mix(in srgb, var(--role-accent-soft) 38%, var(--c-surface));
    font-weight: 800;
}

.authenticated .admin-ops-workbench--attendance .attendance-workflow-steps li > div {
    display: grid;
    gap: .1rem;
    padding-block-start: .1rem;
}

.authenticated .admin-ops-workbench--attendance .attendance-workflow-steps small {
    color: var(--c-muted);
    line-height: 1.4;
}

@media (max-width: 1180px) {
    .authenticated .admin-ops-workbench--attendance .attendance-command-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-layout {
        grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .75fr);
    }
}

@media (max-width: 1024px) {
    .authenticated .admin-ops-workbench--attendance .attendance-command-layout {
        grid-template-columns: minmax(0, 1fr);
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-aside {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .authenticated .admin-ops-workbench--attendance .attendance-policy-card {
        grid-row: span 2;
    }
}

@media (max-width: 768px) {
    .authenticated .admin-ops-workbench--attendance .attendance-date-card {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-date-form {
        align-items: stretch;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-date-form .form-group {
        flex: 1 1 auto;
        min-inline-size: 0;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-aside {
        grid-template-columns: minmax(0, 1fr);
    }
    .authenticated .admin-ops-workbench--attendance .attendance-policy-card {
        grid-row: auto;
    }
}

@media (max-width: 480px) {
    .authenticated .admin-ops-workbench--attendance .attendance-date-form {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }
    .authenticated .admin-ops-workbench--attendance .attendance-date-form .button {
        inline-size: 100%;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-kpis,
    .authenticated .admin-ops-workbench--attendance .attendance-policy-fields {
        grid-template-columns: minmax(0, 1fr);
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-kpi {
        min-block-size: 5.8rem;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-policy-card__heading {
        align-items: stretch;
        flex-direction: column;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-policy-card__heading .c-chip {
        align-self: flex-start;
    }
}

@media (forced-colors: active) {
    .authenticated .admin-ops-workbench--attendance :is(
        .attendance-command-kpi,
        .attendance-concern-table-region,
        .attendance-policy-card,
        .attendance-workflow-card,
        .attendance-policy-toggle
    ) {
        border: 1px solid CanvasText;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-command-kpi::before {
        background: CanvasText;
    }
    .authenticated .admin-ops-workbench--attendance .attendance-workflow-steps li > span {
        border: 1px solid CanvasText;
        color: CanvasText;
        background: Canvas;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-ops-workbench--attendance :is(
        .attendance-concern-table-region,
        .attendance-policy-toggle,
        .attendance-command-kpi
    ) {
        scroll-behavior: auto;
        transition: none;
    }
}

/* ADM-001 — Admin command center production translation (2026-09-06)
   Visual structure follows the approved standalone prototype, but every figure
   rendered below comes from AdminDashboardView-backed canonical data. */
.authenticated .admin-command-center {
    inline-size: min(100%, 96rem);
    margin-inline: auto;
    padding-block: clamp(1.1rem, 2vw, 2rem) clamp(2rem, 4vw, 4rem);
}

.authenticated .admin-command-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(13rem, .55fr);
    align-items: end;
    gap: clamp(1.25rem, 3vw, 3rem);
    min-block-size: clamp(13.5rem, 23vw, 18rem);
    overflow: hidden;
    padding: clamp(1.75rem, 4vw, 3.5rem);
    border: 1px solid color-mix(in srgb, var(--portal-forest) 13%, var(--c-surface-border));
    border-radius: clamp(1.1rem, 2vw, 1.55rem);
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--c-surface) 98%, transparent) 0%,
            color-mix(in srgb, var(--c-surface) 94%, transparent) 37%,
            color-mix(in srgb, var(--c-surface) 72%, transparent) 63%,
            color-mix(in srgb, var(--c-surface) 26%, transparent) 100%),
        url('/images/campus-b4ecd70cd398047bb6bfd40f6719c988.jpg') center / cover no-repeat;
    box-shadow: 0 1.1rem 2.8rem rgba(18, 61, 45, .09);
}

.authenticated .admin-command-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    z-index: -1;
    inline-size: min(31rem, 48%);
    opacity: .18;
    background: url('/images/brand/botanical-branch-left-05f48dd425e0f8867e0f6b717781f4cc.png') left center / contain no-repeat;
    mix-blend-mode: multiply;
    pointer-events: none;
}

.authenticated .admin-command-hero__content {
    position: relative;
    z-index: 1;
    max-inline-size: 48rem;
}

.authenticated .admin-command-hero__welcome {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 0 0 .6rem;
    color: color-mix(in srgb, var(--c-ink) 78%, var(--portal-forest));
    font-size: clamp(.96rem, 1.4vw, 1.08rem);
    font-weight: 620;
}

.authenticated .admin-command-hero__welcome strong { color: var(--brand-primary-strong); }

.authenticated .admin-command-hero h1 {
    max-inline-size: 42rem;
    margin: 0;
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, 'Times New Roman', serif);
    font-size: clamp(2rem, 4.3vw, 3.75rem);
    font-weight: 760;
    letter-spacing: -.035em;
    line-height: 1.03;
    text-wrap: balance;
}

.authenticated .admin-command-hero__detail {
    max-inline-size: 38rem;
    margin: 1rem 0 0;
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-size: clamp(.93rem, 1.2vw, 1.05rem);
    line-height: 1.6;
}

.authenticated .admin-command-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    margin-block-start: 1.2rem;
}

.authenticated .admin-command-hero__setup { min-block-size: 2.35rem; }

.authenticated .admin-command-hero__motto {
    position: relative;
    z-index: 1;
    justify-self: end;
    max-inline-size: 14rem;
    padding: 1rem 0 .6rem;
    color: color-mix(in srgb, var(--portal-forest-deep) 85%, var(--c-ink));
    font-family: var(--font-display, Georgia, 'Times New Roman', serif);
    font-size: clamp(1.05rem, 1.8vw, 1.4rem);
    font-style: italic;
    font-weight: 650;
    line-height: 1.35;
    text-align: end;
    text-shadow: 0 1px 0 rgba(255,255,255,.6);
}

.authenticated .admin-command-hero__motto::after {
    content: "";
    display: block;
    inline-size: 4rem;
    block-size: .15rem;
    margin: .85rem 0 0 auto;
    border-radius: var(--r-pill);
    background: var(--portal-gold);
}

.authenticated .admin-command-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .85rem;
    margin-block-start: 1rem;
}

.authenticated .admin-command-metric {
    display: grid;
    grid-template-columns: 2.85rem minmax(0, 1fr);
    align-items: center;
    gap: .85rem;
    min-inline-size: 0;
    min-block-size: 7.4rem;
    padding: 1.05rem;
    border: 1px solid color-mix(in srgb, var(--portal-forest) 9%, var(--c-surface-border));
    border-radius: 1rem;
    background: var(--c-surface);
    box-shadow: 0 .35rem 1.2rem rgba(18, 61, 45, .055);
}

.authenticated .admin-command-metric__icon {
    display: grid;
    place-items: center;
    inline-size: 2.85rem;
    block-size: 2.85rem;
    border-radius: 50%;
    color: #fff;
    background: var(--brand-primary);
}

.authenticated .admin-command-metric--teachers .admin-command-metric__icon { background: var(--portal-gold); }
.authenticated .admin-command-metric--classes .admin-command-metric__icon { background: var(--portal-forest-deep); }
.authenticated .admin-command-metric--families .admin-command-metric__icon { background: color-mix(in srgb, var(--brand-primary) 72%, #7252a8); }
.authenticated .admin-command-metric--finance .admin-command-metric__icon { background: color-mix(in srgb, var(--portal-gold) 88%, #7c5b11); }
.authenticated .admin-command-metric--enrollment .admin-command-metric__icon { background: color-mix(in srgb, var(--brand-primary) 76%, #315d8a); }

.authenticated .admin-command-metric__icon svg {
    inline-size: 1.35rem;
    block-size: 1.35rem;
    fill: currentColor;
}

.authenticated .admin-command-metric > div {
    display: grid;
    gap: .2rem;
    min-inline-size: 0;
}

.authenticated .admin-command-metric > div > span {
    overflow: hidden;
    color: var(--c-muted);
    font-size: .66rem;
    font-weight: 820;
    letter-spacing: .065em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.authenticated .admin-command-metric strong {
    overflow: hidden;
    color: var(--c-ink);
    font-size: clamp(1.35rem, 2.1vw, 1.8rem);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.03em;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.authenticated .admin-command-metric small {
    display: -webkit-box;
    overflow: hidden;
    color: var(--c-muted);
    font-size: .68rem;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.authenticated .admin-command-glance {
    display: grid;
    grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    margin-block-start: 1rem;
    padding: 0;
    border-radius: 1rem;
}

.authenticated .admin-command-glance__heading {
    display: grid;
    align-content: center;
    gap: .2rem;
    padding: 1rem 1.25rem;
    border-inline-end: 1px solid var(--c-surface-border);
    background: color-mix(in srgb, var(--c-surface-low) 84%, var(--brand-primary-soft));
}

.authenticated .admin-command-glance__heading :is(p,h2) { margin: 0; }
.authenticated .admin-command-glance__heading h2 { font-size: 1.05rem; line-height: 1.2; }

.authenticated .admin-command-glance__items {
    display: flex;
    align-items: stretch;
    min-inline-size: 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

.authenticated .admin-command-glance__item {
    display: grid;
    grid-template-columns: 2.45rem minmax(6.8rem, 1fr);
    align-items: center;
    gap: .7rem;
    min-inline-size: 10.4rem;
    padding: .9rem 1rem;
    border-inline-end: 1px solid var(--c-surface-border);
    color: inherit;
    transition: background var(--motion-micro), color var(--motion-micro);
}

.authenticated .admin-command-glance__item:hover,
.authenticated .admin-command-glance__item:focus-visible { background: var(--brand-primary-soft); }

.authenticated .admin-command-glance__icon,
.authenticated .admin-command-action__icon,
.authenticated .admin-command-announcements__icon {
    display: grid;
    place-items: center;
    inline-size: 2.45rem;
    block-size: 2.45rem;
    border: 1px solid color-mix(in srgb, var(--brand-primary) 16%, var(--c-surface-border));
    border-radius: 50%;
    color: var(--brand-primary-strong);
    background: var(--brand-primary-soft);
}

.authenticated :is(.admin-command-glance__icon,.admin-command-action__icon,.admin-command-announcements__icon)::before {
    inline-size: 1.1rem;
    block-size: 1.1rem;
}

.authenticated .admin-command-glance__item > span:last-child { display: grid; gap: .18rem; }
.authenticated .admin-command-glance__item strong { color: var(--c-ink); font-size: 1.28rem; font-variant-numeric: tabular-nums; line-height: 1; }
.authenticated .admin-command-glance__item small { color: var(--c-muted); font-size: .68rem; font-weight: 700; line-height: 1.25; }

.authenticated .admin-command-glance__setup {
    align-self: center;
    margin: .75rem 1rem;
    white-space: nowrap;
}

.authenticated .admin-command-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-block-start: 1rem;
}

.authenticated .admin-command-panel {
    min-inline-size: 0;
    overflow: hidden;
    border-radius: 1rem;
    box-shadow: 0 .35rem 1.25rem rgba(18, 61, 45, .055);
}

.authenticated .admin-command-panel .dashboard-panel__header {
    padding-block-end: .75rem;
    border-block-end: 1px solid var(--c-surface-border);
}

.authenticated .admin-command-panel--attendance { min-block-size: 25rem; }
.authenticated .admin-command-panel--schedule { min-block-size: 25rem; }
.authenticated .admin-command-panel--announcements { min-block-size: 17rem; }

.authenticated .admin-attendance-visual {
    display: grid;
    grid-template-columns: minmax(8.8rem, .8fr) minmax(8rem, 1fr);
    align-items: center;
    gap: 1.25rem;
    padding-block: 1rem;
}

.authenticated .admin-attendance-ring {
    position: relative;
    display: grid;
    place-items: center;
    inline-size: min(10.2rem, 100%);
    aspect-ratio: 1;
    margin-inline: auto;
    border-radius: 50%;
    background: conic-gradient(var(--brand-primary) var(--attendance-share, 0%), color-mix(in srgb, var(--brand-primary) 10%, var(--c-surface-mid)) 0);
}

.authenticated .admin-attendance-ring::after {
    content: "";
    position: absolute;
    inset: 1rem;
    border-radius: 50%;
    background: var(--c-surface);
    box-shadow: inset 0 0 0 1px var(--c-surface-border);
}

.authenticated .admin-attendance-ring > span {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .25rem;
    max-inline-size: 6.4rem;
    text-align: center;
}

.authenticated .admin-attendance-ring strong { color: var(--c-ink); font-size: clamp(1.5rem, 2.6vw, 2.2rem); font-variant-numeric: tabular-nums; line-height: 1; }
.authenticated .admin-attendance-ring small { color: var(--c-muted); font-size: .68rem; font-weight: 700; line-height: 1.2; }

.authenticated .admin-attendance-breakdown { display: grid; gap: .62rem; margin: 0; }
.authenticated .admin-attendance-breakdown > div { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.authenticated .admin-attendance-breakdown dt { display: flex; align-items: center; gap: .5rem; color: var(--c-text); font-size: .78rem; font-weight: 650; }
.authenticated .admin-attendance-breakdown dd { margin: 0; color: var(--c-ink); font-size: .84rem; font-weight: 780; font-variant-numeric: tabular-nums; }
.authenticated .status-dot { inline-size: .58rem; block-size: .58rem; border-radius: 50%; background: var(--brand-primary); }
.authenticated .status-dot--absent { background: var(--portal-gold); }
.authenticated .status-dot--tardy { background: #8d9793; }
.authenticated .status-dot--early { background: #a35454; }

.authenticated .admin-command-panel__footer-note {
    margin: auto calc(-1 * var(--s4)) calc(-1 * var(--s4));
    padding: .78rem var(--s4);
    border-block-start: 1px solid var(--c-surface-border);
    color: var(--c-muted);
    background: var(--c-surface-low);
    font-size: .72rem;
    font-weight: 700;
}
.authenticated .admin-command-panel__footer-note.is-complete { color: var(--brand-primary-strong); }
.authenticated .admin-command-panel__footer-note.is-outstanding { color: color-mix(in srgb, var(--portal-gold) 68%, var(--c-ink)); }

.authenticated .admin-command-schedule { display: grid; gap: .1rem; margin: .45rem 0 0; padding: 0; list-style: none; }
.authenticated .admin-command-schedule li { display: grid; grid-template-columns: 3.2rem minmax(0,1fr); gap: .85rem; padding: .75rem .2rem; border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 70%, transparent); }
.authenticated .admin-command-schedule li:last-child { border-block-end: 0; }
.authenticated .admin-command-schedule li.is-past { opacity: .62; }
.authenticated .admin-command-schedule time { display: grid; align-content: center; justify-items: center; min-block-size: 3rem; border-radius: .72rem; color: var(--brand-primary-strong); background: var(--brand-primary-soft); font-variant-numeric: tabular-nums; }
.authenticated .admin-command-schedule time strong { font-size: .9rem; line-height: 1; }
.authenticated .admin-command-schedule time small { margin-block-start: .18rem; font-size: .58rem; font-weight: 800; }
.authenticated .admin-command-schedule li > div { min-inline-size: 0; }
.authenticated .admin-command-schedule li > div > strong { color: var(--c-ink); font-size: .84rem; }
.authenticated .admin-command-schedule p { display: flex; flex-wrap: wrap; gap: .35rem; margin: .22rem 0 0; color: var(--c-muted); font-size: .7rem; }

.authenticated .admin-command-announcements { display: grid; margin: .35rem 0 0; padding: 0; list-style: none; }
.authenticated .admin-command-announcements li { display: grid; grid-template-columns: 2.45rem minmax(0,1fr); gap: .75rem; padding: .8rem .05rem; border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 70%, transparent); }
.authenticated .admin-command-announcements li:last-child { border-block-end: 0; }
.authenticated .admin-command-announcements li > div { min-inline-size: 0; }
.authenticated .admin-command-announcements strong { display: block; overflow: hidden; color: var(--c-ink); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.authenticated .admin-command-announcements p { display: -webkit-box; overflow: hidden; margin: .2rem 0 .35rem; color: var(--c-muted); font-size: .7rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.authenticated .admin-command-announcements small { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; color: var(--c-muted); font-size: .62rem; }

.authenticated .admin-command-stat { display: grid; gap: .55rem; padding: 1.2rem 0 .6rem; }
.authenticated .admin-command-stat strong { color: var(--c-ink); font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 820; font-variant-numeric: tabular-nums; letter-spacing: -.045em; line-height: 1; }
.authenticated .admin-command-stat span { color: var(--c-muted); font-size: .78rem; }

.authenticated .admin-finance-snapshot { display: grid; gap: .75rem; padding-block: .7rem; }
.authenticated .admin-finance-snapshot > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-block: .55rem; border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 70%, transparent); }
.authenticated .admin-finance-snapshot > div:last-child { border-block-end: 0; }
.authenticated .admin-finance-snapshot span { color: var(--c-muted); font-size: .75rem; }
.authenticated .admin-finance-snapshot strong { overflow: hidden; color: var(--c-ink); font-size: 1.02rem; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

.authenticated .admin-command-actions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .6rem; padding-block-start: .7rem; }
.authenticated .admin-command-action { display: grid; justify-items: center; align-content: center; gap: .55rem; min-block-size: 6.3rem; padding: .7rem .45rem; border: 1px solid var(--c-surface-border); border-radius: .8rem; color: var(--c-text); background: var(--c-surface); text-align: center; transition: background var(--motion-micro), border-color var(--motion-micro), transform var(--motion-micro), box-shadow var(--motion-micro); }
.authenticated .admin-command-action:hover,
.authenticated .admin-command-action:focus-visible { border-color: color-mix(in srgb, var(--brand-primary) 28%, var(--c-surface-border)); background: var(--brand-primary-soft); box-shadow: 0 .35rem .9rem rgba(18,61,45,.06); transform: translateY(-1px); }
.authenticated .admin-command-action strong { font-size: .68rem; line-height: 1.25; }

.authenticated .operations-setup-getting-started { margin-block: 1rem; }
.authenticated .operations-setup-foundation { margin-block: 1rem; }
.authenticated .operations-setup-foundation__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .75rem; }
.authenticated .operations-setup-foundation__grid > div { display: grid; gap: .25rem; padding: .85rem; border: 1px solid var(--c-surface-border); border-radius: .75rem; background: var(--c-surface-low); }
.authenticated .operations-setup-foundation__grid strong { color: var(--c-ink); font-size: .75rem; }
.authenticated .operations-setup-foundation__grid span { color: var(--c-muted); font-size: .68rem; line-height: 1.45; }

@media (max-width: 82rem) {
    .authenticated .admin-command-metrics { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .authenticated .admin-command-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .authenticated .admin-command-glance { grid-template-columns: 9.5rem minmax(0,1fr); }
    .authenticated .admin-command-glance__setup { grid-column: 1 / -1; justify-self: stretch; margin-block-start: 0; }
}

@media (max-width: 64rem) {
    .authenticated .admin-command-center { padding-inline: var(--s4); }
    .authenticated .admin-command-hero { grid-template-columns: 1fr; min-block-size: 14rem; }
    .authenticated .admin-command-hero__motto { display: none; }
    .authenticated .admin-command-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .authenticated .admin-command-glance { grid-template-columns: 1fr; }
    .authenticated .admin-command-glance__heading { border-inline-end: 0; border-block-end: 1px solid var(--c-surface-border); }
    .authenticated .admin-command-glance__setup { grid-column: auto; }
    .authenticated .operations-setup-foundation__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 48rem) {
    .authenticated .admin-command-center { padding-inline: var(--s3); }
    .authenticated .admin-command-hero { min-block-size: 15.5rem; padding: 1.45rem; background-position: 62% center; }
    .authenticated .admin-command-hero::after { inline-size: 70%; opacity: .12; }
    .authenticated .admin-command-metrics { grid-template-columns: 1fr 1fr; gap: .65rem; }
    .authenticated .admin-command-metric { grid-template-columns: 2.4rem minmax(0,1fr); min-block-size: 6.5rem; padding: .82rem; }
    .authenticated .admin-command-metric__icon { inline-size: 2.4rem; block-size: 2.4rem; }
    .authenticated .admin-command-grid { grid-template-columns: 1fr; }
    .authenticated .admin-command-panel { min-block-size: auto; }
    .authenticated .admin-attendance-visual { grid-template-columns: 1fr; }
    .authenticated .admin-attendance-ring { inline-size: 9rem; }
}

@media (max-width: 34rem) {
    .authenticated .admin-command-metrics { grid-template-columns: 1fr; }
    .authenticated .admin-command-metric { grid-template-columns: 2.65rem minmax(0,1fr); }
    .authenticated .admin-command-actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .authenticated .operations-setup-foundation__grid { grid-template-columns: 1fr; }
}

@media (forced-colors: active) {
    .authenticated :is(.admin-command-hero,.admin-command-metric,.admin-command-glance,.admin-command-panel,.admin-command-action) {
        border: 1px solid CanvasText;
        background: Canvas;
        box-shadow: none;
    }
    .authenticated .admin-attendance-ring { background: Canvas; border: .5rem solid Highlight; }
    .authenticated .admin-attendance-ring::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated :is(.admin-command-glance__item,.admin-command-action) { transition: none; }
    .authenticated .admin-command-action:hover { transform: none; }
}

/* ===========================================================================
   ADM-001 G6 — high-fidelity dashboard command center (2026-09-07)
   The standalone ADM-001 composition is translated directly into the real
   Thymeleaf page. Figures remain canonical AdminDashboardView values.
   =========================================================================== */
.authenticated .admin-command-center {
    inline-size: min(100%, 76rem);
    margin-inline: auto;
    padding: 1.85rem 0 3rem;
    gap: 0;
}

.authenticated .admin-command-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(12rem, .55fr);
    align-items: center;
    gap: 2rem;
    min-block-size: 13rem;
    padding: 1.75rem 2.85rem;
    overflow: hidden;
    border: 1px solid #e2e5e3;
    border-radius: .9rem;
    background:
        linear-gradient(90deg,
            rgba(249, 249, 246, .97) 0%,
            rgba(249, 249, 246, .92) 34%,
            rgba(249, 249, 246, .7) 57%,
            rgba(249, 249, 246, .18) 100%),
        url('/images/campus-b4ecd70cd398047bb6bfd40f6719c988.jpg') center 50% / cover no-repeat;
    box-shadow: 0 1px 2px rgba(15, 58, 38, .035);
}
.authenticated .admin-command-hero::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    z-index: -1;
    inline-size: 18rem;
    opacity: .08;
    background: url('/images/brand/botanical-branch-left-05f48dd425e0f8867e0f6b717781f4cc.png') left center / contain no-repeat;
    pointer-events: none;
}
.authenticated .admin-command-hero::after { display: none; }
.authenticated .admin-command-hero__content { max-inline-size: 42rem; }
.authenticated .admin-command-hero__welcome {
    display: flex;
    gap: .32rem;
    margin: 0 0 .35rem;
    color: #344054;
    font-size: .96rem;
    font-weight: 500;
}
.authenticated .admin-command-hero__welcome strong { color: #344054; font-weight: 600; }
.authenticated .admin-command-hero h1 {
    max-inline-size: 38rem;
    margin: 0;
    color: #111827;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 3.5vw, 3.25rem);
    font-weight: 750;
    letter-spacing: -.042em;
    line-height: .98;
    text-wrap: balance;
}
.authenticated .admin-command-hero__detail {
    margin: .75rem 0 0;
    color: #667085;
    font-size: .82rem;
    line-height: 1.5;
}
.authenticated .admin-command-hero__demo-link {
    display: inline-flex;
    align-items: center;
    min-block-size: 2rem;
    margin-block-start: .85rem;
    padding: .35rem .65rem;
    border: 1px solid rgba(15,68,47,.14);
    border-radius: .5rem;
    color: #0f442f;
    background: rgba(255,255,255,.74);
    font-size: .67rem;
    font-weight: 750;
}
.authenticated .admin-command-hero__motto {
    justify-self: end;
    max-inline-size: 10rem;
    padding: 0 0 .25rem;
    color: #2f3e35;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.18rem;
    font-style: italic;
    font-weight: 500;
    line-height: 1.28;
    text-align: right;
    text-shadow: 0 1px rgba(255,255,255,.8);
}
.authenticated .admin-command-hero__motto::after {
    content: "";
    display: block;
    inline-size: 3.2rem;
    block-size: 2px;
    margin: .72rem 0 0 auto;
    border-radius: 999px;
    background: #d4af37;
}

.authenticated .admin-command-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
    margin-block-start: 1.05rem;
}
.authenticated .admin-command-metric {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    align-items: center;
    gap: .75rem;
    min-inline-size: 0;
    min-block-size: 7rem;
    padding: .9rem 1rem;
    border: 1px solid #e7e9e8;
    border-radius: .72rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15,58,38,.045);
}
.authenticated .admin-command-metric__icon {
    display: grid;
    place-items: center;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    border-radius: 50%;
    color: #fff;
    background: #2f7255;
}
.authenticated .admin-command-metric--teachers .admin-command-metric__icon { background: #d4a935; }
.authenticated .admin-command-metric--classes .admin-command-metric__icon { background: #0f442f; }
.authenticated .admin-command-metric--families .admin-command-metric__icon { background: #8c3ed8; }
.authenticated .admin-command-metric--finance .admin-command-metric__icon { background: #c29a22; }
.authenticated .admin-command-metric--enrollment .admin-command-metric__icon { background: #3c6d91; }
.authenticated .admin-command-metric__icon svg { inline-size: 1.25rem; block-size: 1.25rem; fill: currentColor; }
.authenticated .admin-command-metric > div { display: grid; gap: .22rem; min-inline-size: 0; }
.authenticated .admin-command-metric > div > span {
    overflow: hidden;
    color: #667085;
    font-size: .58rem;
    font-weight: 750;
    letter-spacing: .045em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.authenticated .admin-command-metric strong {
    overflow: hidden;
    color: #101828;
    font-size: 1.45rem;
    font-weight: 780;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.035em;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.authenticated .admin-command-metric small {
    overflow: hidden;
    color: #98a2b3;
    font-size: .57rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.authenticated .admin-command-glance {
    display: grid;
    grid-template-columns: 11.5rem minmax(0, 1fr) auto;
    align-items: stretch;
    min-block-size: 5.25rem;
    margin-block-start: 1.05rem;
    overflow: hidden;
    border: 1px solid #e7e9e8;
    border-radius: .72rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15,58,38,.04);
}
.authenticated .admin-command-glance__heading {
    display: flex;
    align-items: center;
    padding: 1rem 1.25rem;
    border-inline-end: 1px solid #eceeed;
    background: #fbfcfb;
}
.authenticated .admin-command-glance__heading h2 {
    margin: 0;
    color: #17211c;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    line-height: 1.25;
}
.authenticated .admin-command-glance__items {
    display: flex;
    align-items: stretch;
    min-inline-size: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.authenticated .admin-command-glance__items::-webkit-scrollbar { display: none; }
.authenticated .admin-command-glance__item {
    display: grid;
    grid-template-columns: 2.25rem minmax(6.4rem, 1fr);
    align-items: center;
    gap: .65rem;
    min-inline-size: 10.5rem;
    padding: .72rem .9rem;
    border-inline-end: 1px solid #eceeed;
    color: inherit;
    background: #fff;
}
.authenticated .admin-command-glance__item:hover,
.authenticated .admin-command-glance__item:focus-visible { background: #f8faf9; }
.authenticated .admin-command-glance__item--primary {
    margin: .6rem .4rem;
    min-inline-size: 12.25rem;
    padding-block: .35rem;
    border: 2px solid #17211c;
    border-radius: .58rem;
}
.authenticated .admin-command-glance__icon {
    display: grid;
    place-items: center;
    inline-size: 2.2rem;
    block-size: 2.2rem;
    border: 1px solid #dceae2;
    border-radius: 50%;
    color: #36745a;
    background: #f1f8f4;
}
.authenticated .admin-command-glance__item > span:last-child { display: grid; gap: .16rem; }
.authenticated .admin-command-glance__item strong { color: #101828; font-size: 1.02rem; line-height: 1; }
.authenticated .admin-command-glance__item small { color: #667085; font-size: .58rem; font-weight: 550; line-height: 1.2; }
.authenticated .admin-command-glance__all {
    display: inline-flex;
    align-items: center;
    align-self: center;
    gap: .45rem;
    min-block-size: 2.6rem;
    margin: .65rem .85rem;
    padding: 0 .9rem;
    border-radius: .48rem;
    color: #fff;
    background: #0f442f;
    font-size: .67rem;
    font-weight: 750;
    white-space: nowrap;
}
.authenticated .admin-command-glance__all:hover,
.authenticated .admin-command-glance__all:focus-visible { background: #0b3726; }
.authenticated .admin-command-glance__all [data-nav-icon]::before { inline-size: .9rem; block-size: .9rem; }

.authenticated .admin-command-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-block-start: 1.05rem;
}
.authenticated .admin-command-column { display: grid; align-content: start; gap: 1rem; min-inline-size: 0; }
.authenticated .admin-command-card {
    display: flex;
    flex-direction: column;
    min-inline-size: 0;
    overflow: hidden;
    border: 1px solid #e7e9e8;
    border-radius: .72rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15,58,38,.04);
}
.authenticated .admin-command-card--attendance,
.authenticated .admin-command-card--enrollment-snapshot { min-block-size: 24.5rem; }
.authenticated .admin-command-card--admissions,
.authenticated .admin-command-card--schedule { min-block-size: 20.2rem; }
.authenticated .admin-command-card--announcements { min-block-size: 16.8rem; }
.authenticated .admin-command-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-block-size: 3.35rem;
    padding: .82rem 1rem;
    border-block-end: 1px solid #eef0ef;
}
.authenticated .admin-command-card__header h2 {
    margin: 0;
    color: #17211c;
    font-family: Georgia, "Times New Roman", serif;
    font-size: .9rem;
    line-height: 1.2;
}
.authenticated .admin-command-card__header a { color: #357254; font-size: .6rem; font-weight: 750; }
.authenticated .admin-command-card__scope {
    padding: .26rem .48rem;
    border: 1px solid #e4e7ec;
    border-radius: .35rem;
    color: #667085;
    background: #fff;
    font-size: .57rem;
    font-weight: 600;
}
.authenticated .admin-command-card__footer {
    display: flex;
    align-items: center;
    min-block-size: 2.85rem;
    margin-block-start: auto;
    padding: .7rem 1rem;
    border-block-start: 1px solid #eef0ef;
    color: #357254;
    background: #fbfcfb;
    font-size: .64rem;
    font-weight: 700;
}
.authenticated .admin-command-card__footer::after { content: "›"; margin-inline-start: auto; font-size: 1rem; }
.authenticated .admin-command-empty { display: grid; align-content: center; gap: .35rem; min-block-size: 8rem; padding: 1.25rem; color: #667085; }
.authenticated .admin-command-empty strong { color: #344054; font-size: .76rem; }
.authenticated .admin-command-empty p { margin: 0; font-size: .66rem; line-height: 1.5; }

.authenticated .admin-attendance-card__body { flex: 1 1 auto; display: grid; align-content: center; padding: .45rem 1rem; }
.authenticated .admin-attendance-visual { display: grid; grid-template-columns: 1fr; justify-items: center; gap: .75rem; padding: .25rem 0 .65rem; }
.authenticated .admin-attendance-ring {
    position: relative;
    display: grid;
    place-items: center;
    inline-size: 11.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: conic-gradient(#0f442f 0 var(--present-share, 0%), #d4af37 var(--present-share, 0%) 100%);
}
.authenticated .admin-attendance-ring::after {
    content: "";
    position: absolute;
    inset: 1.65rem;
    border-radius: 50%;
    background: #fff;
}
.authenticated .admin-attendance-ring > div { position: relative; z-index: 1; display: grid; justify-items: center; gap: .16rem; text-align: center; }
.authenticated .admin-attendance-ring strong { color: #101828; font-size: 1.85rem; font-weight: 780; letter-spacing: -.045em; line-height: 1; }
.authenticated .admin-attendance-ring small { max-inline-size: 8rem; color: #667085; font-size: .58rem; line-height: 1.2; }
.authenticated .admin-attendance-breakdown { inline-size: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .8rem; margin: 0; }
.authenticated .admin-attendance-breakdown > div { display: flex; align-items: center; justify-content: space-between; gap: .4rem; }
.authenticated .admin-attendance-breakdown dt { display: flex; align-items: center; gap: .35rem; color: #475467; font-size: .61rem; }
.authenticated .admin-attendance-breakdown dd { margin: 0; color: #344054; font-size: .64rem; font-weight: 700; }
.authenticated .status-dot { inline-size: .45rem; block-size: .45rem; flex: 0 0 auto; border-radius: 50%; background: #0f442f; }
.authenticated .status-dot--absent { background: #d4af37; }
.authenticated .status-dot--tardy { background: #98a2b3; }
.authenticated .status-dot--early { background: #c45050; }
.authenticated .admin-attendance-submission {
    inline-size: 100%;
    margin: .1rem 0 0;
    color: #98a2b3;
    font-size: .52rem;
    text-align: center;
}

.authenticated .admin-admissions-queue { display: grid; padding: .35rem .55rem; }
.authenticated .admin-admissions-row {
    display: grid;
    grid-template-columns: 1.8rem minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .55rem;
    min-block-size: 3rem;
    padding: .45rem .35rem;
    border-radius: .42rem;
}
.authenticated .admin-admissions-row:hover,
.authenticated .admin-admissions-row:focus-visible { background: #f8faf9; }
.authenticated .admin-admissions-row__avatar {
    display: grid;
    place-items: center;
    inline-size: 1.8rem;
    block-size: 1.8rem;
    border-radius: 50%;
    color: #276247;
    background: #e9f4ed;
    font-size: .56rem;
    font-weight: 800;
}
.authenticated .admin-admissions-row__person { display: grid; min-inline-size: 0; gap: .08rem; }
.authenticated .admin-admissions-row__person strong { overflow: hidden; color: #344054; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.authenticated .admin-admissions-row__person small { color: #98a2b3; font-size: .55rem; }
.authenticated .admin-admissions-row__status { padding: .18rem .35rem; border-radius: .28rem; font-size: .49rem; font-weight: 750; text-transform: uppercase; white-space: nowrap; }
.authenticated .admin-admissions-row__status--info { color: #245b74; background: #eef7fb; }
.authenticated .admin-admissions-row__status--success { color: #2f6a4d; background: #edf8f1; }
.authenticated .admin-admissions-row__status--warning { color: #7a5d15; background: #fff8e5; }
.authenticated .admin-admissions-row__status--muted { color: #667085; background: #f2f4f7; }
.authenticated .admin-admissions-row time { color: #98a2b3; font-size: .52rem; white-space: nowrap; }

.authenticated .admin-enrollment-snapshot { position: relative; flex: 1 1 auto; display: grid; align-content: start; padding: 1rem; }
.authenticated .admin-enrollment-snapshot__total { position: absolute; inset-block-start: 1.1rem; inset-inline-end: 1rem; z-index: 2; display: grid; justify-items: end; gap: .1rem; padding: .65rem .75rem; border: 1px solid #edf0ee; border-radius: .65rem; background: rgba(255,255,255,.92); box-shadow: 0 3px 14px rgba(15,58,38,.045); }
.authenticated .admin-enrollment-snapshot__total strong { color: #101828; font-size: 1.55rem; line-height: 1; }
.authenticated .admin-enrollment-snapshot__total span { color: #667085; font-size: .5rem; }
.authenticated .admin-enrollment-snapshot__visual {
    position: relative;
    display: grid;
    align-items: end;
    block-size: 11.2rem;
    padding: 2.6rem 1rem 1rem;
    border-block-end: 1px solid #e8ece9;
    background: repeating-linear-gradient(to top, transparent 0 2.7rem, #f2f4f3 2.7rem 2.75rem);
}
.authenticated .admin-enrollment-snapshot__axis {
    position: absolute;
    inset: 1rem 1rem 1.25rem;
    pointer-events: none;
}
.authenticated .admin-enrollment-snapshot__axis::before {
    content: "";
    position: absolute;
    inset: auto 0 .8rem;
    block-size: 2px;
    background: linear-gradient(90deg, #9fc4ae, #0f442f);
    transform: skewY(-4deg);
    transform-origin: left center;
}
.authenticated .admin-enrollment-snapshot__axis span {
    position: absolute;
    inset-block-end: .42rem;
    inline-size: .58rem;
    block-size: .58rem;
    border: 2px solid #0f442f;
    border-radius: 50%;
    background: #fff;
}
.authenticated .admin-enrollment-snapshot__axis span:nth-child(1) { inset-inline-start: 2%; }
.authenticated .admin-enrollment-snapshot__axis span:nth-child(2) { inset-inline-start: 34%; }
.authenticated .admin-enrollment-snapshot__axis span:nth-child(3) { inset-inline-start: 66%; }
.authenticated .admin-enrollment-snapshot__axis span:nth-child(4) { inset-inline-end: 1%; }
.authenticated .admin-enrollment-snapshot__points {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    align-items: end;
    gap: .4rem;
    margin: 0;
    padding-block-start: 5.4rem;
}
.authenticated .admin-enrollment-snapshot__points > div {
    display: grid;
    justify-items: center;
    gap: .16rem;
    min-inline-size: 0;
    padding: .42rem .2rem;
    border: 1px solid #edf0ee;
    border-radius: .46rem;
    background: rgba(255,255,255,.94);
}
.authenticated .admin-enrollment-snapshot__points dt {
    overflow: hidden;
    max-inline-size: 100%;
    color: #98a2b3;
    font-size: .46rem;
    font-weight: 650;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.authenticated .admin-enrollment-snapshot__points dd {
    margin: 0;
    color: #344054;
    font-size: .8rem;
    font-weight: 780;
    font-variant-numeric: tabular-nums;
}

.authenticated .admin-command-schedule { display: grid; gap: 0; margin: 0; padding: .35rem .55rem; list-style: none; }
.authenticated .admin-command-schedule li { display: grid; grid-template-columns: 2.8rem minmax(0,1fr); gap: .65rem; min-block-size: 3.4rem; padding: .5rem .35rem; border-block-end: 1px solid #f0f2f1; }
.authenticated .admin-command-schedule li:last-child { border-block-end: 0; }
.authenticated .admin-command-schedule li.is-past { opacity: .6; }
.authenticated .admin-command-schedule time { display: grid; place-content: center; min-block-size: 2.45rem; border-radius: .42rem; color: #356b52; background: #f1f8f4; text-align: center; }
.authenticated .admin-command-schedule time strong { font-size: .64rem; line-height: 1; }
.authenticated .admin-command-schedule time small { margin-block-start: .12rem; font-size: .45rem; font-weight: 750; }
.authenticated .admin-command-schedule li > div > strong { color: #344054; font-size: .64rem; }
.authenticated .admin-command-schedule p { display: flex; flex-wrap: wrap; gap: .3rem; margin: .13rem 0 0; color: #98a2b3; font-size: .52rem; }

.authenticated .admin-command-announcements { display: grid; margin: 0; padding: .35rem .55rem; list-style: none; }
.authenticated .admin-command-announcements li { display: grid; grid-template-columns: 1.8rem minmax(0,1fr); gap: .55rem; min-block-size: 3.4rem; padding: .48rem .35rem; border-block-end: 1px solid #f0f2f1; }
.authenticated .admin-command-announcements li:last-child { border-block-end: 0; }
.authenticated .admin-command-announcements__icon { inline-size: 1.8rem; block-size: 1.8rem; border: 0; color: #b67a12; background: #fff7e6; }
.authenticated .admin-command-announcements li > div { min-inline-size: 0; }
.authenticated .admin-command-announcements strong { display: block; overflow: hidden; color: #344054; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.authenticated .admin-command-announcements p { display: -webkit-box; overflow: hidden; margin: .12rem 0 .18rem; color: #98a2b3; font-size: .52rem; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.authenticated .admin-command-announcements small { display: flex; align-items: center; gap: .3rem; color: #98a2b3; font-size: .47rem; }
.authenticated .admin-announcement-new { color: #2f6a4d; font-weight: 750; }

.authenticated .admin-finance-snapshot { display: grid; gap: 0; padding: .65rem 1rem; }
.authenticated .admin-finance-snapshot > div { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding: .62rem 0; border-block-end: 1px solid #f0f2f1; }
.authenticated .admin-finance-snapshot > div:last-child { border-block-end: 0; }
.authenticated .admin-finance-snapshot span { color: #667085; font-size: .6rem; }
.authenticated .admin-finance-snapshot strong { overflow: hidden; color: #344054; font-size: .72rem; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.authenticated .admin-finance-snapshot__note { margin: 0; padding: 0 1rem .75rem; color: #98a2b3; font-size: .52rem; }

.authenticated .admin-command-actions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .55rem; padding: .8rem; }
.authenticated .admin-command-action { display: grid; place-items: center; align-content: center; gap: .4rem; min-block-size: 5.1rem; padding: .55rem .35rem; border: 1px solid #e7e9e8; border-radius: .62rem; color: #475467; background: #fff; text-align: center; }
.authenticated .admin-command-action:hover,
.authenticated .admin-command-action:focus-visible { border-color: #b8d3c3; color: #245b42; background: #f3f9f5; transform: none; box-shadow: none; }
.authenticated .admin-command-action__icon { inline-size: 1.8rem; block-size: 1.8rem; border: 0; color: #357254; background: transparent; }
.authenticated .admin-command-action strong { font-size: .52rem; line-height: 1.2; }

/* Shared demo chrome stays useful but no longer dominates the ADM-001 dashboard. */
.authenticated.role-admin .demo-app-banner { min-block-size: 2rem; padding-block: .32rem; font-size: .66rem; }

@media (max-width: 82rem) {
    .authenticated .admin-command-center { inline-size: min(100%, 72rem); }
    .authenticated .admin-command-metrics { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .authenticated .admin-command-metric:nth-child(4),
    .authenticated .admin-command-metric:nth-child(5) { min-block-size: 6.4rem; }
    .authenticated .admin-command-glance { grid-template-columns: 10rem minmax(0,1fr); }
    .authenticated .admin-command-glance__all { grid-column: 1 / -1; justify-content: center; margin-block-start: 0; }
}

@media (max-width: 64rem) {
    .authenticated .admin-command-center { inline-size: min(100% - 2rem, 60rem); padding-block-start: 1.2rem; }
    .authenticated .admin-command-hero { grid-template-columns: 1fr; min-block-size: 12.5rem; padding: 1.6rem 2rem; background-position: 58% center; }
    .authenticated .admin-command-hero__motto { display: none; }
    .authenticated .admin-command-columns { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .authenticated .admin-command-column:last-child { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .authenticated .admin-command-column:last-child .admin-command-card--actions { grid-column: 1 / -1; }
}

@media (max-width: 48rem) {
    .authenticated .admin-command-center { inline-size: min(100% - 1.25rem, 42rem); padding-block-start: .8rem; }
    .authenticated .admin-command-hero { min-block-size: 13rem; padding: 1.35rem; background-position: 65% center; }
    .authenticated .admin-command-hero h1 { font-size: clamp(2rem, 10vw, 2.65rem); }
    .authenticated .admin-command-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; }
    .authenticated .admin-command-metric { min-block-size: 6.3rem; padding: .72rem; }
    .authenticated .admin-command-metric:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .authenticated .admin-command-glance { grid-template-columns: 1fr; }
    .authenticated .admin-command-glance__heading { border-inline-end: 0; border-block-end: 1px solid #eceeed; }
    .authenticated .admin-command-glance__heading h2 br { display: none; }
    .authenticated .admin-command-columns,
    .authenticated .admin-command-column:last-child { grid-template-columns: 1fr; }
    .authenticated .admin-command-column:last-child { grid-column: auto; }
    .authenticated .admin-command-column:last-child .admin-command-card--actions { grid-column: auto; }
    .authenticated .admin-command-card--attendance,
    .authenticated .admin-command-card--enrollment-snapshot,
    .authenticated .admin-command-card--admissions,
    .authenticated .admin-command-card--schedule { min-block-size: auto; }
    .authenticated .admin-attendance-ring { inline-size: 10rem; }
}

@media (max-width: 34rem) {
    .authenticated .admin-command-metrics { grid-template-columns: 1fr; }
    .authenticated .admin-command-metric:last-child:nth-child(odd) { grid-column: auto; }
    .authenticated .admin-admissions-row { grid-template-columns: 1.8rem minmax(0,1fr) auto; }
    .authenticated .admin-admissions-row time { display: none; }
    .authenticated .admin-command-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .authenticated .admin-attendance-breakdown { grid-template-columns: 1fr; }
}

@media (forced-colors: active) {
    .authenticated :is(.admin-command-hero,.admin-command-metric,.admin-command-glance,.admin-command-card,.admin-command-action) { border: 1px solid CanvasText; box-shadow: none; }
    .authenticated .admin-attendance-ring { border: .5rem solid Highlight; background: Canvas; }
    .authenticated .admin-attendance-ring::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated :is(.admin-command-glance__item,.admin-command-action) { transition: none; }
}

/* G6 state disclosure: compact, truthful operational notices inside fixed dashboard cards. */
.authenticated .admin-command-card__notice {
    margin: 0;
    padding: .4rem .9rem;
    border-block-start: 1px solid #f0f2f1;
    color: #7a847f;
    background: #fbfcfb;
    font-size: .5rem;
    line-height: 1.35;
}

/* ===========================================================================
   ADM-001 G7 — tenant-aware accents + mobile-density repair (2026-09-07)
   The reference composition remains intact while validated tenant branding
   drives color and dashboard utility icons render without a runtime icon CDN.
   =========================================================================== */
.authenticated .admin-command-hero__demo-link,
.authenticated .admin-command-card__header a,
.authenticated .admin-command-card__footer { color: var(--brand-primary-strong); }
.authenticated .admin-command-hero__motto::after { background: var(--brand-accent); }

.authenticated .admin-command-metric__icon { background: var(--brand-primary); color: var(--brand-on-primary); }
.authenticated .admin-command-metric--teachers .admin-command-metric__icon { background: var(--brand-accent); color: #17203b; }
.authenticated .admin-command-metric--classes .admin-command-metric__icon { background: var(--brand-primary-strong); color: var(--brand-on-primary); }
.authenticated .admin-command-metric--families .admin-command-metric__icon { background: var(--brand-secondary); color: #fff; }
.authenticated .admin-command-metric--finance .admin-command-metric__icon { background: color-mix(in srgb, var(--brand-accent) 78%, #8b6a13); color: #17203b; }
.authenticated .admin-command-metric--enrollment .admin-command-metric__icon { background: color-mix(in srgb, var(--brand-secondary) 78%, var(--brand-primary)); color: #fff; }

.authenticated .admin-command-glance__icon {
    border-color: color-mix(in srgb, var(--brand-primary) 18%, var(--c-surface-border));
    color: var(--brand-primary-strong);
    background: var(--brand-primary-soft);
}
.authenticated .admin-command-glance__item--primary { border-color: color-mix(in srgb, var(--brand-primary-strong) 72%, #101820); }
.authenticated .admin-command-glance__all {
    color: var(--brand-on-primary);
    background: var(--brand-primary-strong);
}
.authenticated .admin-command-glance__all:hover,
.authenticated .admin-command-glance__all:focus-visible { background: color-mix(in srgb, var(--brand-primary-strong) 88%, #000); }

.authenticated .admin-attendance-ring {
    background: conic-gradient(
        var(--brand-primary-strong) 0 var(--present-share, 0%),
        var(--brand-accent) var(--present-share, 0%) 100%
    );
}
.authenticated .status-dot { background: var(--brand-primary-strong); }
.authenticated .status-dot--absent { background: var(--brand-accent); }
.authenticated .admin-command-schedule time { color: var(--brand-primary-strong); background: var(--brand-primary-soft); }
.authenticated .admin-announcement-new { color: var(--brand-primary-strong); }
.authenticated .admin-admissions-row__avatar { color: var(--brand-primary-strong); background: var(--brand-primary-soft); }
.authenticated .admin-admissions-row__status--success { color: var(--brand-primary-strong); background: var(--brand-primary-soft); }
.authenticated .admin-enrollment-snapshot__axis::before { background: linear-gradient(90deg, var(--brand-secondary), var(--brand-primary-strong)); }
.authenticated .admin-enrollment-snapshot__axis span { border-color: var(--brand-primary-strong); }
.authenticated .admin-command-action:hover,
.authenticated .admin-command-action:focus-visible {
    border-color: color-mix(in srgb, var(--brand-primary) 28%, var(--c-surface-border));
    color: var(--brand-primary-strong);
    background: var(--brand-primary-soft);
}
.authenticated .admin-command-action__icon { color: var(--brand-primary-strong); }

/* data-nav-icon masks were originally scoped only to navigation links. ADM-001
   also uses them in operational cards. Give those dashboard icon hosts the same
   mask primitive so Quick Actions / Glance / Announcements never render blank. */
.authenticated :is(
    .admin-command-glance__icon,
    .admin-command-action__icon,
    .admin-command-announcements__icon,
    .admin-command-glance__all [data-nav-icon]
)::before {
    content: "";
    display: block;
    inline-size: 1.05rem;
    block-size: 1.05rem;
    background: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}
.authenticated .admin-command-action__icon::before { inline-size: 1.35rem; block-size: 1.35rem; }
.authenticated .admin-command-announcements__icon {
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: color-mix(in srgb, var(--brand-accent) 72%, #8d5f08);
    background: var(--brand-accent-soft);
}

/* The prior 48rem breakpoint left some Android/Samsung phone viewports in the
   two-column tablet composition. At 56rem and below use the intentional mobile
   hierarchy instead of a tiny desktop grid. */
@media (max-width: 56rem) {
    .authenticated .admin-command-center { inline-size: min(100% - 1.25rem, 42rem); padding-block-start: .8rem; }
    .authenticated .admin-command-hero { min-block-size: 13rem; padding: 1.35rem; background-position: 65% center; }
    .authenticated .admin-command-hero h1 { font-size: clamp(2rem, 8vw, 2.65rem); }
    .authenticated .admin-command-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; }
    .authenticated .admin-command-metric { min-block-size: 6.3rem; padding: .78rem; }
    .authenticated .admin-command-metric:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .authenticated .admin-command-glance { grid-template-columns: 1fr; }
    .authenticated .admin-command-glance__heading { border-inline-end: 0; border-block-end: 1px solid #eceeed; }
    .authenticated .admin-command-glance__all { grid-column: auto; inline-size: calc(100% - 1rem); justify-content: center; margin: .25rem .5rem .6rem; }
    .authenticated .admin-command-columns,
    .authenticated .admin-command-column:last-child { grid-template-columns: 1fr; }
    .authenticated .admin-command-column:last-child { grid-column: auto; }
    .authenticated .admin-command-column:last-child .admin-command-card--actions { grid-column: auto; }
    .authenticated .admin-command-card--attendance,
    .authenticated .admin-command-card--enrollment-snapshot,
    .authenticated .admin-command-card--admissions,
    .authenticated .admin-command-card--schedule { min-block-size: auto; }
    .authenticated .admin-attendance-ring { inline-size: 10rem; }
    .authenticated .admin-command-card__header h2 { font-size: 1rem; }
    .authenticated .admin-command-card__header a,
    .authenticated .admin-command-card__footer { font-size: .68rem; }
    .authenticated .admin-command-empty strong { font-size: .82rem; }
    .authenticated .admin-command-empty p { font-size: .72rem; }
}

@media (max-width: 34rem) {
    .authenticated .admin-command-metrics { grid-template-columns: 1fr; }
    .authenticated .admin-command-metric:last-child:nth-child(odd) { grid-column: auto; }
    .authenticated .admin-command-action strong { font-size: .6rem; }
}

/* Align the dashboard's intentional mobile composition with the global drawer
   mode. This covers mobile browsers that advertise a tablet-like ~980px CSS
   viewport while still using the overlay navigation shell. */
@media (min-width: 56.001rem) and (max-width: 64rem) {
    .authenticated .admin-command-center {
        inline-size: min(100% - 1.5rem, 52rem);
        padding-block-start: .9rem;
    }
    .authenticated .admin-command-hero {
        min-block-size: 13.5rem;
        padding: 1.5rem;
        background-position: 64% center;
    }
    .authenticated .admin-command-hero h1 { font-size: clamp(2.15rem, 5.6vw, 3rem); }
    .authenticated .admin-command-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .authenticated .admin-command-metric:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .authenticated .admin-command-glance { grid-template-columns: 1fr; }
    .authenticated .admin-command-glance__heading { border-inline-end: 0; border-block-end: 1px solid var(--c-surface-border); }
    .authenticated .admin-command-glance__all {
        grid-column: auto;
        inline-size: calc(100% - 1rem);
        justify-content: center;
        margin: .25rem .5rem .6rem;
    }
    .authenticated .admin-command-columns,
    .authenticated .admin-command-column:last-child { grid-template-columns: 1fr; }
    .authenticated .admin-command-column:last-child { grid-column: auto; }
    .authenticated .admin-command-column:last-child .admin-command-card--actions { grid-column: auto; }
    .authenticated .admin-command-card--attendance,
    .authenticated .admin-command-card--enrollment-snapshot,
    .authenticated .admin-command-card--admissions,
    .authenticated .admin-command-card--schedule { min-block-size: auto; }
}
/* ===========================================================================
   ADM-005 — Teachers & Staff directory production translation (2026-09-07)

   Visual structure follows the approved ADM-005 mockup and the Global Shell
   V1.1 contract, but every figure rendered comes from
   AdminStaffDirectoryQueryService-backed canonical data. Colour comes only
   from CON8CT tokens and the tenant branding variables, so a school that
   changes its brand palette or theme preset changes this screen with it.

   The shell (rail, topbar, school context, Ask CON8CT) is untouched here.
   =========================================================================== */
.authenticated .admin-staff-directory {
    --staff-forest: var(--portal-forest, #123d2d);
    --staff-forest-soft: var(--portal-forest-soft, #e9f0eb);
    --staff-gold: var(--portal-gold, #c9a354);
    --staff-gold-soft: var(--portal-gold-soft, #f4ead1);
    --staff-hero-ink: var(--c-ink);
    gap: var(--s5);
    padding-block-start: var(--s4);
}

/* ---- hero -----------------------------------------------------------------
   Layered on top of .school-ops-heading so the page keeps the shared
   operations heading contract while getting the ADM-005 premium band. The
   school crest is the tenant's own logo when branding supplies one, and a
   monogram otherwise, so nothing depends on a single school's assets. */
.authenticated .staff-directory-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, .5fr);
    align-items: end;
    gap: clamp(1rem, 2.5vw, 2.5rem);
    overflow: hidden;
    padding: clamp(1.4rem, 3vw, 2.5rem);
    border: 1px solid color-mix(in srgb, var(--staff-forest) 12%, var(--c-surface-border));
    border-radius: clamp(1rem, 1.8vw, 1.45rem);
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--c-surface) 98%, transparent) 0%,
            color-mix(in srgb, var(--c-surface) 93%, transparent) 40%,
            color-mix(in srgb, var(--c-surface) 66%, transparent) 68%,
            color-mix(in srgb, var(--c-surface) 24%, transparent) 100%),
        url('/images/campus-b4ecd70cd398047bb6bfd40f6719c988.jpg') center / cover no-repeat;
    box-shadow: 0 .9rem 2.4rem rgba(18, 61, 45, .08);
}

/* The shared heading rule paints a short accent bar on the bottom edge. The
   hero has its own border and botanical treatment, so that bar is retired
   here rather than left floating over the photograph. */
.authenticated .staff-directory-hero::before {
    content: none;
}

.authenticated .staff-directory-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    z-index: -1;
    inline-size: min(26rem, 44%);
    opacity: .16;
    background: url('/images/brand/botanical-branch-left-05f48dd425e0f8867e0f6b717781f4cc.png') left center / contain no-repeat;
    mix-blend-mode: multiply;
    pointer-events: none;
}

.authenticated .staff-directory-hero__body {
    position: relative;
    z-index: 1;
    max-inline-size: 46rem;
}

.authenticated .staff-directory-hero__school {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .55rem;
    color: color-mix(in srgb, var(--staff-forest) 82%, var(--c-ink));
    font-size: .8125rem;
    font-weight: 760;
    letter-spacing: .01em;
    text-transform: none;
}

.authenticated .staff-directory-hero__crest {
    display: grid;
    place-items: center;
    inline-size: 2.1rem;
    block-size: 2.1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--staff-gold) 46%, transparent);
    border-radius: .55rem;
    background: color-mix(in srgb, var(--c-surface) 88%, var(--staff-gold-soft));
    color: var(--staff-forest);
    font-size: .8125rem;
    font-weight: 800;
}

.authenticated .staff-directory-hero__crest img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
}

.authenticated .staff-directory-hero h1 {
    margin: 0;
    color: var(--staff-hero-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(1.9rem, 3.6vw, 3rem);
    font-weight: 760;
    letter-spacing: -.03em;
    line-height: 1.06;
    text-wrap: balance;
}

.authenticated .staff-directory-hero__detail {
    max-inline-size: 38rem;
    margin: .85rem 0 0;
    color: color-mix(in srgb, var(--c-text) 84%, var(--c-muted));
    font-size: clamp(.9rem, 1.1vw, 1rem);
    line-height: 1.6;
}

.authenticated .staff-directory-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-block-start: 1.05rem;
}

.authenticated .staff-directory-hero__motto {
    position: relative;
    z-index: 1;
    justify-self: end;
    max-inline-size: 14rem;
    margin: 0;
    padding-inline-start: 1rem;
    padding: .65rem 1rem;
    border-inline-start: .1875rem solid color-mix(in srgb, var(--staff-gold) 82%, transparent);
    border-radius: 0 .6rem .6rem 0;
    background: color-mix(in srgb, var(--c-surface) 82%, transparent);
    color: color-mix(in srgb, var(--staff-forest) 88%, var(--c-ink));
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(.95rem, 1.3vw, 1.15rem);
    font-style: italic;
    line-height: 1.35;
    text-align: end;
}

/* ---- canonical KPI strip -------------------------------------------------
   Auto-fit rather than a fixed column count: a school without the Finance or
   Academics entitlement renders fewer tiles and the row still reads as a
   deliberate composition instead of leaving a gap. */
.authenticated .staff-directory-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr));
    gap: .8rem;
}

.authenticated .staff-directory-kpi {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .8rem;
    padding: .95rem 1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--staff-forest) 10%, var(--c-surface-border));
    border-radius: var(--ops-radius-panel);
    background: color-mix(in srgb, var(--c-surface) 97%, var(--staff-forest-soft));
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .staff-directory-kpi::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    inline-size: .1875rem;
    background: color-mix(in srgb, var(--staff-forest) 42%, transparent);
}

/* An attention tile carries a warmer rule and a bolder figure. The label text
   already says what the number means, so colour is never the only signal. */
.authenticated .staff-directory-kpi--attention {
    border-color: color-mix(in srgb, var(--staff-gold) 42%, var(--c-surface-border));
    background: color-mix(in srgb, var(--c-surface) 94%, var(--staff-gold-soft));
}

.authenticated .staff-directory-kpi--attention::before {
    background: var(--staff-gold);
}

.authenticated .staff-directory-kpi__icon {
    display: grid;
    place-items: center;
    inline-size: 2.6rem;
    block-size: 2.6rem;
    border-radius: .8rem;
    background: color-mix(in srgb, var(--staff-forest-soft) 74%, var(--c-surface));
    color: var(--staff-forest);
}

.authenticated .staff-directory-kpi__icon svg {
    inline-size: 1.3rem;
    block-size: 1.3rem;
    fill: currentColor;
}

.authenticated .staff-directory-kpi__copy {
    display: grid;
    gap: .1rem;
    min-inline-size: 0;
}

.authenticated .staff-directory-kpi__copy > span {
    color: color-mix(in srgb, var(--c-text) 78%, var(--c-muted));
    font-size: .75rem;
    font-weight: 760;
    letter-spacing: .015em;
    text-transform: uppercase;
}

.authenticated .staff-directory-kpi__copy > strong {
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(1.5rem, 2.2vw, 1.95rem);
    font-weight: 780;
    line-height: 1.1;
}

.authenticated .staff-directory-kpi__copy > small {
    color: var(--c-muted);
    font-size: .7188rem;
    line-height: 1.35;
}

/* ---- operational sub-navigation -----------------------------------------
   Real routes are links; entries with no bounded domain behind them are
   inert spans marked aria-disabled and flagged in text, so the tab strip can
   show the intended information architecture without offering dead controls. */
.authenticated .staff-directory-tabs {
    display: grid;
    gap: .55rem;
    padding-block-end: .1rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .staff-directory-tabs__list {
    display: flex;
    gap: .2rem;
    margin: 0;
    padding: 0 .1rem;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: thin;
}

.authenticated .staff-directory-tab {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-block-size: var(--ops-control-height);
    padding: .5rem .6rem;
    border-block-end: .1875rem solid transparent;
    border-radius: var(--ops-radius-control) var(--ops-radius-control) 0 0;
    color: color-mix(in srgb, var(--c-text) 80%, var(--c-muted));
    font-size: .875rem;
    font-weight: 640;
    text-decoration: none;
    white-space: nowrap;
}

.authenticated a.staff-directory-tab:hover,
.authenticated a.staff-directory-tab:focus-visible {
    color: var(--staff-forest);
    background: color-mix(in srgb, var(--staff-forest-soft) 60%, transparent);
}

.authenticated .staff-directory-tab.is-current,
.authenticated .staff-directory-tab[aria-current="page"] {
    color: var(--staff-forest);
    border-block-end-color: var(--staff-forest);
    font-weight: 780;
}

.authenticated .staff-directory-tab--unavailable {
    color: var(--c-muted);
    cursor: not-allowed;
}

.authenticated .staff-directory-tab__icon {
    inline-size: 1.05rem;
    block-size: 1.05rem;
    opacity: .85;
}

.authenticated .staff-directory-tab__flag {
    padding: .1rem .4rem;
    border: 1px solid color-mix(in srgb, var(--c-outline) 26%, transparent);
    border-radius: 99rem;
    color: var(--c-muted);
    font-size: .6563rem;
    font-weight: 780;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.authenticated .staff-directory-tabs__note {
    margin: 0;
    padding-inline: .3rem;
    color: var(--c-muted);
    font-size: .75rem;
    line-height: 1.5;
}

/* ---- workspace -----------------------------------------------------------
   The directory table carries seven columns, so it gets more of the row than
   the shared staff-access proportions allow while the detail rail stays wide
   enough to read a full email address. */
.authenticated .staff-directory-workspace {
    grid-template-columns: minmax(0, 2.05fr) minmax(17.5rem, .74fr);
    align-items: start;
}

.authenticated .staff-directory-list-card {
    display: grid;
    gap: 0;
    padding: 0;
    overflow: hidden;
}

.authenticated .staff-directory-filters {
    display: grid;
    grid-template-columns: minmax(12rem, 1.6fr) repeat(auto-fit, minmax(10rem, .75fr));
    align-items: end;
    gap: .75rem;
    padding: 1rem 1.1rem;
    border-block-end: 1px solid var(--ops-border);
    background: color-mix(in srgb, var(--c-surface-low) 62%, var(--c-surface));
}

.authenticated .staff-directory-filters .form-group {
    margin: 0;
    min-inline-size: 0;
}

.authenticated .staff-directory-filters label {
    font-size: .75rem;
    font-weight: 760;
    letter-spacing: .015em;
    text-transform: uppercase;
}

.authenticated .staff-directory-filters select,
.authenticated .staff-directory-search-control input {
    min-block-size: var(--ops-control-height);
}

.authenticated .staff-directory-search-control {
    position: relative;
}

.authenticated .staff-directory-search-control__icon {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: .7rem;
    inline-size: 1.05rem;
    block-size: 1.05rem;
    color: var(--c-muted);
    transform: translateY(-50%);
    pointer-events: none;
}

.authenticated .staff-directory-search-control__icon svg {
    inline-size: 100%;
    block-size: 100%;
    fill: currentColor;
}

.authenticated .staff-directory-search-control input {
    inline-size: 100%;
    padding-inline-start: 2.25rem;
}

.authenticated .staff-directory-filters__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-self: end;
}

.authenticated .staff-directory-filters__search .form-help {
    margin-block-start: .3rem;
}

.authenticated .staff-directory-results-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .6rem;
    padding: 1rem 1.1rem .25rem;
}

.authenticated .staff-directory-results-heading h2 {
    margin: .1rem 0 0;
    font-size: 1.0625rem;
}

.authenticated .staff-directory-results-heading__count {
    margin: 0;
    color: var(--c-muted);
    font-size: .8125rem;
    font-weight: 700;
}

.authenticated .admin-staff-directory .staff-access-note {
    margin: .35rem 1.1rem .75rem;
}

.authenticated .staff-directory-empty {
    margin: .25rem 1.1rem 1.1rem;
}

/* ---- directory table ---------------------------------------------------- */
.authenticated .staff-directory-table-wrap {
    overflow-x: auto;
    border-block-start: 1px solid var(--ops-border);
}

.authenticated .staff-directory-table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}

.authenticated .staff-directory-table th {
    position: sticky;
    inset-block-start: 0;
    z-index: 1;
    padding: .6rem .75rem;
    background: color-mix(in srgb, var(--c-surface-low) 74%, var(--c-surface));
    border-block-end: 1px solid var(--ops-border);
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-align: start;
    text-transform: uppercase;
    white-space: nowrap;
}

.authenticated .staff-directory-table td {
    padding: .7rem .75rem;
    border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 72%, transparent);
    color: var(--c-text);
    overflow-wrap: normal;
    word-break: normal;
    vertical-align: top;
}

.authenticated .staff-directory-table__status {
    white-space: nowrap;
}

/* Role and the access sentence it implies share one column: as two separate
   columns they restated each other and pushed the table into a scroll. */
.authenticated .staff-directory-role__name {
    display: block;
    color: var(--c-ink);
    font-size: .8125rem;
    font-weight: 760;
    white-space: nowrap;
}

.authenticated .staff-directory-role__access {
    display: block;
    max-inline-size: 10rem;
    margin-block-start: .1rem;
    color: var(--c-muted);
    font-size: .75rem;
    line-height: 1.35;
}

.authenticated .staff-directory-table tbody tr:hover,
.authenticated .staff-directory-table tbody tr:focus-within {
    background: color-mix(in srgb, var(--staff-forest-soft) 46%, transparent);
}

.authenticated .staff-directory-table tbody tr.is-selected {
    background: color-mix(in srgb, var(--staff-forest-soft) 72%, transparent);
    box-shadow: inset .1875rem 0 0 var(--staff-forest);
}

.authenticated .staff-directory-table__person {
    min-inline-size: 12.5rem;
}

/* The flex row lives in this wrapper rather than on the <td>: a table cell
   given `display: flex` stops being a cell and collapses the rest of the row. */
.authenticated .staff-directory-person {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    min-inline-size: 0;
}

.authenticated .staff-directory-avatar {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    inline-size: 2.25rem;
    block-size: 2.25rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--staff-forest) 12%, var(--c-surface));
    color: var(--staff-forest);
    font-weight: 800;
}

.authenticated .staff-directory-avatar--large {
    inline-size: 3.4rem;
    block-size: 3.4rem;
    font-size: 1.25rem;
}

.authenticated .staff-directory-identity {
    display: grid;
    gap: .12rem;
    min-inline-size: 0;
}

.authenticated .staff-directory-identity__name {
    color: var(--c-ink);
    font-size: .9375rem;
    font-weight: 780;
    text-decoration: none;
}

.authenticated .staff-directory-identity__name:hover,
.authenticated .staff-directory-identity__name:focus-visible {
    text-decoration: underline;
}

.authenticated .staff-directory-identity__title {
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-size: .8125rem;
}

.authenticated .staff-directory-identity__email {
    color: var(--c-muted);
    font-size: .75rem;
    overflow-wrap: anywhere;
}

.authenticated .staff-directory-identity__you {
    justify-self: start;
    margin-block-start: .15rem;
}

.authenticated .admin-staff-directory .staff-access-profile-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .5rem;
    margin-block-start: .15rem;
    color: var(--c-muted);
    font-size: .7188rem;
}

.authenticated .admin-staff-directory .staff-access-row__help {
    margin: .15rem 0 0;
    font-size: .7188rem;
}

.authenticated .staff-directory-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: flex-end;
}

.authenticated .staff-directory-row-actions .button {
    padding-inline: .65rem;
    font-size: .75rem;
}

.authenticated .staff-directory-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    padding: .85rem 1.1rem;
    border-block-start: 1px solid var(--ops-border);
}

.authenticated .staff-directory-pagination__status {
    color: var(--c-muted);
    font-size: .8125rem;
    font-weight: 700;
}

/* ---- onboarding / offboarding panel ------------------------------------- */
.authenticated .staff-directory-onboarding {
    scroll-margin-block-start: calc(var(--topbar-height, 4rem) + 1rem);
}

.authenticated .staff-directory-invite-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: .85rem;
    padding: 0;
}

.authenticated .admin-staff-directory .staff-access-invite-card h3 {
    margin: .1rem 0 .3rem;
    font-size: 1rem;
}

/* ---- selected staff detail rail ----------------------------------------- */
.authenticated .staff-directory-aside {
    position: sticky;
    inset-block-start: calc(var(--topbar-height, 4rem) + .75rem);
}

.authenticated .staff-directory-detail {
    display: grid;
    gap: .9rem;
    padding: 1.1rem;
}

.authenticated .staff-directory-detail__identity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: .8rem;
}

.authenticated .staff-directory-detail__identity h2 {
    margin: .1rem 0 .15rem;
    font-size: 1.125rem;
    line-height: 1.2;
}

.authenticated .staff-directory-detail__title {
    margin: 0;
    color: var(--c-muted);
    font-size: .8125rem;
}

.authenticated .staff-directory-detail__close {
    display: grid;
    place-items: center;
    inline-size: 2rem;
    block-size: 2rem;
    border: 1px solid var(--ops-border);
    border-radius: .5rem;
    color: var(--c-muted);
    font-size: 1rem;
    line-height: 1;
    text-decoration: none;
}

.authenticated .staff-directory-detail__close:hover,
.authenticated .staff-directory-detail__close:focus-visible {
    color: var(--c-ink);
    background: var(--c-surface-low);
}

.authenticated .staff-directory-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.authenticated .staff-directory-detail__section {
    display: grid;
    gap: .4rem;
    padding-block-start: .8rem;
    border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 78%, transparent);
}

.authenticated .staff-directory-detail__section h3 {
    margin: 0;
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.authenticated .staff-directory-detail__section p {
    margin: 0;
    font-size: .8125rem;
    line-height: 1.5;
}

.authenticated .staff-directory-detail-list {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.authenticated .staff-directory-detail-list > div {
    display: grid;
    grid-template-columns: minmax(6.5rem, .8fr) minmax(0, 1.2fr);
    gap: .5rem;
    align-items: baseline;
}

.authenticated .staff-directory-detail-list dt {
    color: var(--c-muted);
    font-size: .75rem;
    font-weight: 700;
}

.authenticated .staff-directory-detail-list dd {
    margin: 0;
    font-size: .8125rem;
    overflow-wrap: anywhere;
}

.authenticated .staff-directory-class-list,
.authenticated .staff-directory-history-list {
    display: grid;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .staff-directory-class-list li {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .4rem .55rem;
    border: 1px solid color-mix(in srgb, var(--ops-border) 82%, transparent);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--c-surface-low) 54%, var(--c-surface));
    font-size: .8125rem;
}

.authenticated .staff-directory-class-list__mark {
    inline-size: .95rem;
    block-size: .95rem;
    color: var(--staff-forest);
    opacity: .7;
}

.authenticated .staff-directory-history-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .1rem .5rem;
    font-size: .8125rem;
}

.authenticated .staff-directory-history-list strong {
    color: var(--c-ink);
}

.authenticated .staff-directory-history-list span {
    color: var(--c-muted);
    font-size: .75rem;
}

.authenticated .staff-directory-detail__actions {
    gap: .45rem;
}

.authenticated .staff-directory-detail__actions .button {
    justify-content: center;
    inline-size: 100%;
}

.authenticated .staff-directory-detail-empty {
    display: grid;
    justify-items: start;
    gap: .5rem;
    padding: 1.2rem;
}

.authenticated .staff-directory-detail-empty__mark {
    inline-size: 1.6rem;
    block-size: 1.6rem;
    color: var(--staff-forest);
    opacity: .55;
}

/* The [data-nav-icon] rules in con8ct.css set only a mask-image; the box that
   carries it is declared per icon host. Without this, an icon host outside the
   navigation rail renders as a solid block instead of the glyph. */
.authenticated :is(
    .staff-directory-tab__icon,
    .staff-directory-class-list__mark,
    .staff-directory-detail-empty__mark
)::before {
    content: "";
    display: block;
    inline-size: 100%;
    block-size: 100%;
    background: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.authenticated .staff-directory-detail-empty h2 {
    margin: 0;
    font-size: 1rem;
}

.authenticated .staff-directory-detail-empty p {
    margin: 0;
    font-size: .8125rem;
    line-height: 1.55;
}

/* ---- responsive --------------------------------------------------------- */
@media (max-width: 90rem) {
    .authenticated .staff-directory-hero {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .authenticated .staff-directory-hero__motto {
        justify-self: start;
        max-inline-size: none;
        margin-block-start: 1rem;
        text-align: start;
    }
}

@media (max-width: 64rem) {
    .authenticated .staff-directory-workspace {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .staff-directory-aside {
        position: static;
    }

    .authenticated .staff-directory-hero {
        background-position: 72% center;
    }

    .authenticated .staff-directory-filters {
        grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    }

    .authenticated .staff-directory-filters__search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 48rem) {
    .authenticated .staff-directory-hero {
        padding: 1.2rem;
    }

    .authenticated .staff-directory-hero::after {
        inline-size: 100%;
        opacity: .1;
    }

    .authenticated .staff-directory-kpis {
        grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    }

    .authenticated .staff-directory-filters__actions .button {
        flex: 1 1 8rem;
    }

    /* The table becomes one card per staff member. Every cell keeps its
       column name through data-label so the row is still self-describing. */
    .authenticated .staff-directory-table-wrap {
        overflow: visible;
        padding: .8rem;
        border-block-start: 0;
    }

    .authenticated .staff-directory-table,
    .authenticated .staff-directory-table tbody,
    .authenticated .staff-directory-table tr,
    .authenticated .staff-directory-table td {
        display: block;
        inline-size: 100%;
        min-inline-size: 0;
    }

    .authenticated .staff-directory-table thead {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .authenticated .staff-directory-table tbody {
        display: grid;
        gap: .7rem;
    }

    .authenticated .staff-directory-table tbody tr {
        padding: .75rem;
        border: 1px solid var(--ops-border);
        border-radius: .85rem;
        background: var(--c-surface);
        box-shadow: var(--ops-shadow-surface);
    }

    .authenticated .staff-directory-table tbody tr.is-selected {
        border-color: color-mix(in srgb, var(--staff-forest) 34%, var(--ops-border));
    }

    .authenticated .staff-directory-table td {
        display: grid;
        grid-template-columns: minmax(6.5rem, .7fr) minmax(0, 1.3fr);
        gap: .7rem;
        align-items: baseline;
        padding: .5rem 0;
        border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 70%, transparent);
        text-align: start;
    }

    .authenticated .staff-directory-table td::before {
        content: attr(data-label);
        color: var(--c-muted);
        font-size: .65rem;
        font-weight: 780;
        letter-spacing: .025em;
        text-transform: uppercase;
    }

    .authenticated .staff-directory-table__person,
    .authenticated .staff-directory-table__actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .staff-directory-table__person {
        min-inline-size: 0;
        padding-block-start: 0;
        border-block-start: 0;
    }

    .authenticated .staff-directory-table__status,
    .authenticated .staff-directory-role__name {
        white-space: normal;
    }

    .authenticated .staff-directory-role__access {
        max-inline-size: none;
    }

    .authenticated .staff-directory-table__person::before,
    .authenticated .staff-directory-table__actions::before {
        display: none;
    }

    .authenticated .staff-directory-table__actions {
        padding-block-end: 0;
    }

    .authenticated .staff-directory-row-actions {
        justify-content: stretch;
    }

    .authenticated .staff-directory-row-actions .button,
    .authenticated .staff-directory-row-actions form {
        flex: 1 1 9rem;
    }

    .authenticated .staff-directory-row-actions form .button {
        inline-size: 100%;
    }

    .authenticated .staff-directory-detail__identity {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .staff-directory-detail__close {
        grid-row: 1;
        grid-column: 2;
        justify-self: end;
    }
}

@media (max-width: 40rem) {
    .authenticated .staff-directory-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .staff-directory-kpi {
        grid-template-columns: minmax(0, 1fr);
        gap: .5rem;
    }

    .authenticated .staff-directory-kpi__copy > strong {
        font-size: 1.45rem;
    }

    .authenticated .staff-directory-detail-list > div {
        grid-template-columns: minmax(0, 1fr);
        gap: .1rem;
    }

    .authenticated .staff-directory-pagination {
        justify-content: center;
    }
}

/* ---- resilience --------------------------------------------------------- */
@media (prefers-contrast: more) {
    .authenticated .admin-staff-directory :is(
        .staff-directory-hero,
        .staff-directory-kpi,
        .staff-directory-class-list li,
        .staff-directory-detail__close,
        .staff-directory-tab__flag
    ) {
        border-color: var(--c-outline);
    }

    .authenticated .staff-directory-hero {
        background-image: none;
        background-color: var(--c-surface);
    }

    .authenticated .staff-directory-hero::after {
        display: none;
    }

    .authenticated .staff-directory-table tbody tr.is-selected {
        outline: .125rem solid var(--c-outline);
        outline-offset: -.125rem;
    }
}

@media (forced-colors: active) {
    .authenticated .admin-staff-directory :is(
        .staff-directory-hero,
        .staff-directory-kpi,
        .staff-directory-detail,
        .staff-directory-detail-empty,
        .staff-directory-class-list li,
        .staff-directory-tab__flag
    ) {
        border: 1px solid CanvasText;
        background: Canvas;
    }

    .authenticated .staff-directory-hero {
        background-image: none;
    }

    .authenticated .staff-directory-hero::after,
    .authenticated .staff-directory-kpi::before {
        display: none;
    }

    .authenticated .staff-directory-tab.is-current,
    .authenticated .staff-directory-tab[aria-current="page"] {
        border-block-end-color: CanvasText;
    }

    .authenticated .staff-directory-tab--unavailable {
        color: GrayText;
    }

    .authenticated .staff-directory-table tbody tr.is-selected {
        outline: .125rem solid CanvasText;
        outline-offset: -.125rem;
    }

    .authenticated :is(.staff-directory-tab__icon, .staff-directory-class-list__mark, .staff-directory-detail-empty__mark)::before {
        background: CanvasText;
    }

    .authenticated .staff-directory-hero__motto {
        background: Canvas;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-staff-directory :is(
        .staff-directory-tabs__list,
        .staff-directory-table-wrap,
        .staff-directory-tab,
        .staff-directory-kpi
    ) {
        scroll-behavior: auto;
        transition: none;
    }
}

@media print {
    .authenticated .admin-staff-directory :is(
        .staff-directory-tabs,
        .staff-directory-filters,
        .staff-directory-onboarding,
        .staff-directory-row-actions,
        .staff-directory-pagination,
        .staff-directory-detail__actions,
        .staff-directory-detail__close
    ) {
        display: none;
    }

    .authenticated .staff-directory-hero {
        background: none;
        border: 0;
        box-shadow: none;
    }

    .authenticated .staff-directory-hero::after {
        display: none;
    }

    .authenticated .staff-directory-workspace {
        display: block;
    }

    .authenticated .staff-directory-table-wrap {
        overflow: visible;
    }
}
/* ===========================================================================
   ADM-061 / ADM-062 — Settings workspace production translation (2026-09-07)

   Global Shell V1.1 §5: Settings keeps the global rail and adds an inner
   section rail inside the workspace. Every section shares one hero and one
   nav fragment, so Account, Access & Permissions, School Information and
   Branding read as one workspace even though they keep separate routes.

   §6: the same nav markup becomes a horizontal section switcher below 64rem,
   so Settings never renders two visible sidebars on a tablet or phone.

   Colour comes only from CON8CT and tenant-branding tokens.
   =========================================================================== */
.authenticated .admin-settings-workspace {
    --settings-forest: var(--brand-text, var(--premium-forest));
    --settings-forest-soft: var(--brand-primary-soft);
    --settings-gold: var(--brand-accent);
    --settings-gold-soft: var(--brand-accent-soft);
    gap: var(--s5);
    padding-block-start: var(--s4);
}

/* ---- shared hero -------------------------------------------------------- */
.authenticated .settings-shell-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, .5fr);
    align-items: end;
    gap: clamp(1rem, 2.5vw, 2.5rem);
    overflow: hidden;
    padding: clamp(1.3rem, 2.8vw, 2.25rem);
    border: 1px solid color-mix(in srgb, var(--settings-forest) 12%, var(--c-surface-border));
    border-radius: clamp(1rem, 1.8vw, 1.45rem);
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--c-surface) 98%, transparent) 0%,
            color-mix(in srgb, var(--c-surface) 93%, transparent) 42%,
            color-mix(in srgb, var(--c-surface) 68%, transparent) 70%,
            color-mix(in srgb, var(--c-surface) 26%, transparent) 100%),
        url('/images/campus-b4ecd70cd398047bb6bfd40f6719c988.jpg') center / cover no-repeat;
    box-shadow: 0 .9rem 2.4rem rgba(18, 61, 45, .08);
}

.authenticated .settings-shell-hero::before { content: none; }

.authenticated .settings-shell-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    z-index: -1;
    inline-size: min(24rem, 42%);
    opacity: .15;
    background: url('/images/brand/botanical-branch-left-05f48dd425e0f8867e0f6b717781f4cc.png') left center / contain no-repeat;
    mix-blend-mode: multiply;
    pointer-events: none;
}

.authenticated .settings-shell-hero__body {
    position: relative;
    z-index: 1;
    max-inline-size: 44rem;
}

.authenticated .settings-shell-hero__school {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .5rem;
    color: color-mix(in srgb, var(--settings-forest) 82%, var(--c-ink));
    font-size: .8125rem;
    font-weight: 760;
    text-transform: none;
}

.authenticated .settings-shell-hero__crest {
    display: grid;
    place-items: center;
    inline-size: 2.1rem;
    block-size: 2.1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--settings-gold) 46%, transparent);
    border-radius: .55rem;
    background: color-mix(in srgb, var(--c-surface) 88%, var(--settings-gold-soft));
    color: var(--settings-forest);
    font-size: .8125rem;
    font-weight: 800;
}

.authenticated .settings-shell-hero__crest img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
}

.authenticated .settings-shell-hero h1 {
    margin: 0;
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(1.85rem, 3.4vw, 2.85rem);
    font-weight: 760;
    letter-spacing: -.03em;
    line-height: 1.06;
}

.authenticated .settings-shell-hero__detail {
    max-inline-size: 36rem;
    margin: .75rem 0 0;
    color: color-mix(in srgb, var(--c-text) 84%, var(--c-muted));
    font-size: clamp(.9rem, 1.1vw, 1rem);
    line-height: 1.6;
}

.authenticated .settings-shell-hero__motto {
    position: relative;
    z-index: 1;
    justify-self: end;
    max-inline-size: 14rem;
    margin: 0;
    padding: .65rem 1rem;
    border-inline-start: .1875rem solid color-mix(in srgb, var(--settings-gold) 82%, transparent);
    border-radius: 0 .6rem .6rem 0;
    background: color-mix(in srgb, var(--c-surface) 82%, transparent);
    color: color-mix(in srgb, var(--settings-forest) 88%, var(--c-ink));
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(.95rem, 1.3vw, 1.1rem);
    font-style: italic;
    line-height: 1.35;
    text-align: end;
}

/* ---- inner section rail ------------------------------------------------- */
.authenticated .settings-shell-layout {
    --settings-nav-width: 200px;
    --settings-nav-gap: 20px;
    display: grid;
    grid-template-columns: var(--settings-nav-width) minmax(0, 1fr);
    gap: var(--settings-nav-gap);
    align-items: start;
}

.authenticated .settings-shell-main {
    min-inline-size: 0;
    max-inline-size: 100%;
    overflow-x: clip;
}

.authenticated .settings-shell-nav {
    position: sticky;
    inset-block-start: calc(var(--topbar-height, 4rem) + .75rem);
    display: grid;
    gap: .6rem;
    min-inline-size: 0;
}

.authenticated .settings-shell-nav__list {
    display: grid;
    gap: .15rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-shell-nav__mobile { display: none; }

.authenticated .settings-shell-nav__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .6rem;
    word-break: normal;
    overflow-wrap: normal;
    min-block-size: var(--ops-control-height);
    padding: .55rem .75rem;
    border: 1px solid transparent;
    border-radius: var(--ops-radius-control);
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-size: .875rem;
    font-weight: 640;
    line-height: 1.25;
    text-decoration: none;
}

.authenticated a.settings-shell-nav__item:hover,
.authenticated a.settings-shell-nav__item:focus-visible {
    color: var(--settings-forest);
    background: color-mix(in srgb, var(--settings-forest-soft) 58%, transparent);
    border-color: color-mix(in srgb, var(--settings-forest) 12%, var(--ops-border));
}

.authenticated .settings-shell-nav__item.is-current,
.authenticated .settings-shell-nav__item[aria-current="page"] {
    color: var(--c-ink);
    background: color-mix(in srgb, var(--settings-forest-soft) 82%, var(--c-surface));
    border-color: color-mix(in srgb, var(--settings-forest) 22%, var(--ops-border));
    box-shadow: inset .1875rem 0 0 var(--settings-forest);
    font-weight: 800;
}

.authenticated .settings-shell-nav__item--unavailable {
    color: var(--c-muted);
    cursor: not-allowed;
}

.authenticated .settings-shell-nav__icon {
    flex: 0 0 auto;
    inline-size: 1.1rem;
    block-size: 1.1rem;
    opacity: .85;
}

/* The label is the only unclassed span in the item. Letting it share the first
   line with the icon and wrap internally keeps a long section name from
   pushing the icon onto a line of its own. */
.authenticated .settings-shell-nav__item > span:not([class]) {
    flex: 1 1 6rem;
    min-inline-size: 0;
}

.authenticated .settings-shell-nav__flag {
    flex: 0 0 auto;
    margin-inline-start: auto;
    padding: .1rem .4rem;
    border: 1px solid color-mix(in srgb, var(--c-outline) 26%, transparent);
    border-radius: 99rem;
    color: var(--c-muted);
    font-size: .625rem;
    font-weight: 780;
    letter-spacing: .02em;
    text-transform: uppercase;
    white-space: nowrap;
}

.authenticated .settings-shell-nav__note {
    margin: 0;
    padding-inline: .75rem;
    color: var(--c-muted);
    font-size: .7188rem;
    line-height: 1.5;
}

/* ---- section body ------------------------------------------------------- */
.authenticated .settings-shell-main {
    display: grid;
    gap: var(--ops-page-gap);
    min-inline-size: 0;
    overflow-x: hidden;
}

.authenticated .settings-section-heading {
    display: grid;
    gap: .3rem;
    padding-block-end: .85rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .settings-section-heading h2 {
    margin: 0;
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 740;
    letter-spacing: -.02em;
}

.authenticated .settings-section-heading p {
    margin: 0;
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-size: .9375rem;
    line-height: 1.55;
}

.authenticated .settings-shell-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(17rem, .72fr);
    gap: clamp(.9rem, 1.6vw, 1.5rem);
    align-items: start;
}

.authenticated .settings-shell-column,
.authenticated .settings-shell-rail {
    display: grid;
    gap: .85rem;
    min-inline-size: 0;
}

/* ---- identity card ------------------------------------------------------ */
.authenticated .settings-identity-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem;
}

.authenticated .settings-identity-card__avatar {
    display: grid;
    place-items: center;
    inline-size: 3.6rem;
    block-size: 3.6rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--settings-forest) 12%, var(--c-surface));
    color: var(--settings-forest);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: 1.4rem;
    font-weight: 800;
}

.authenticated .settings-identity-card__body h3 {
    margin: .1rem 0 .2rem;
    font-size: 1.15rem;
    line-height: 1.2;
}

.authenticated .settings-identity-card__email {
    color: var(--c-muted);
    font-size: .8125rem;
    overflow-wrap: anywhere;
}

.authenticated .settings-identity-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-block-start: .55rem;
}

.authenticated .settings-identity-card__meta {
    display: grid;
    gap: .45rem;
    margin: 0;
    justify-items: end;
}

.authenticated .settings-identity-card__meta > div {
    display: grid;
    justify-items: end;
}

.authenticated .settings-identity-card__meta dt {
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 780;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.authenticated .settings-identity-card__meta dd {
    margin: 0;
    color: var(--c-ink);
    font-size: .8125rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ---- setting rows ------------------------------------------------------- */
.authenticated .settings-row {
    display: grid;
    grid-template-columns: minmax(11rem, .8fr) minmax(0, 1.2fr) auto;
    align-items: start;
    gap: 1rem;
    padding: 1.05rem 1.1rem;
}

.authenticated .settings-row__lead {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    min-inline-size: 0;
}

.authenticated .settings-row__icon {
    flex: 0 0 auto;
    inline-size: 1.15rem;
    block-size: 1.15rem;
    margin-block-start: .15rem;
    color: var(--settings-forest);
    opacity: .8;
}

.authenticated .settings-row__lead h3 {
    margin: 0 0 .2rem;
    font-size: .9375rem;
    line-height: 1.3;
}

.authenticated .settings-row__lead p {
    margin: 0;
    color: var(--c-muted);
    font-size: .8125rem;
    line-height: 1.45;
}

.authenticated .settings-row__values {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: .65rem 1.2rem;
    margin: 0;
    min-inline-size: 0;
}

.authenticated .settings-row__values--single {
    grid-template-columns: minmax(0, 1fr);
}

.authenticated .settings-row__values dt {
    color: var(--c-muted);
    font-size: .75rem;
    font-weight: 700;
}

.authenticated .settings-row__values dd {
    margin: .1rem 0 0;
    color: var(--c-ink);
    font-size: .875rem;
    font-weight: 640;
    overflow-wrap: anywhere;
}

.authenticated .settings-row__note {
    grid-column: 1 / -1;
    margin: 0;
    padding-block-start: .6rem;
    border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 72%, transparent);
}

.authenticated .settings-row__action {
    display: flex;
    align-items: flex-start;
}

.authenticated .settings-language-form {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.authenticated .settings-language-form .button[aria-current="true"] {
    color: var(--c-ink);
    background: color-mix(in srgb, var(--settings-forest-soft) 82%, var(--c-surface));
    border-color: color-mix(in srgb, var(--settings-forest) 30%, var(--ops-border));
    font-weight: 800;
}

/* ---- rail cards --------------------------------------------------------- */
.authenticated .settings-rail-card {
    display: grid;
    gap: .6rem;
    padding: 1rem;
}

.authenticated .settings-rail-card__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .4rem;
}

.authenticated .settings-rail-card h3 {
    margin: 0;
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.authenticated .settings-rail-card__link {
    color: var(--settings-forest);
    font-size: .75rem;
    font-weight: 760;
}

.authenticated .settings-rail-card__header > .settings-rail-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: var(--target-min);
    min-block-size: var(--target-min);
}

.authenticated .settings-rail-card__list {
    display: grid;
    gap: .45rem;
    margin: 0;
}

.authenticated .settings-rail-card__list > div {
    display: grid;
    grid-template-columns: minmax(6.5rem, .9fr) minmax(0, 1.1fr);
    gap: .5rem;
    align-items: baseline;
}

.authenticated .settings-rail-card__list dt {
    color: var(--c-muted);
    font-size: .75rem;
    font-weight: 700;
}

.authenticated .settings-rail-card__list dd {
    margin: 0;
    font-size: .8125rem;
    overflow-wrap: anywhere;
}

.authenticated .settings-permission-list {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-permission-list li {
    padding: .15rem .45rem;
    border: 1px solid color-mix(in srgb, var(--ops-border) 84%, transparent);
    border-radius: .35rem;
    background: color-mix(in srgb, var(--c-surface-low) 56%, var(--c-surface));
    color: color-mix(in srgb, var(--c-text) 84%, var(--c-muted));
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .6563rem;
    letter-spacing: .01em;
}

/* ---- tertiary tabs ------------------------------------------------------ */
.authenticated .settings-tabs {
    display: grid;
    gap: .5rem;
    min-inline-size: 0;
    max-inline-size: 100%;
    padding-block-end: .1rem;
    border-block-end: 1px solid var(--ops-border);
}

.authenticated .settings-tabs__list {
    display: flex;
    gap: .2rem;
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    margin: 0;
    padding: 0 .1rem;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: thin;
}

.authenticated .settings-tab {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-block-size: 2.5rem;
    padding: .45rem .65rem;
    border-block-end: .1875rem solid transparent;
    border-radius: var(--ops-radius-control) var(--ops-radius-control) 0 0;
    color: color-mix(in srgb, var(--c-text) 80%, var(--c-muted));
    font-size: .875rem;
    font-weight: 640;
    text-decoration: none;
    white-space: nowrap;
}

.authenticated a.settings-tab:hover,
.authenticated a.settings-tab:focus-visible {
    color: var(--settings-forest);
    background: color-mix(in srgb, var(--settings-forest-soft) 58%, transparent);
}

.authenticated .settings-tab.is-current,
.authenticated .settings-tab[aria-current="page"] {
    color: var(--settings-forest);
    border-block-end-color: var(--settings-forest);
    font-weight: 780;
}

.authenticated .settings-tab--unavailable {
    color: var(--c-muted);
    cursor: not-allowed;
}

.authenticated .settings-tab__flag {
    padding: .1rem .4rem;
    border: 1px solid color-mix(in srgb, var(--c-outline) 26%, transparent);
    border-radius: 99rem;
    font-size: .625rem;
    font-weight: 780;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.authenticated .settings-tabs__note {
    margin: 0;
    padding-inline: .3rem;
    color: var(--c-muted);
    font-size: .75rem;
    line-height: 1.5;
}

/* ---- access KPIs -------------------------------------------------------- */
.authenticated .settings-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
    gap: .7rem;
}

.authenticated .settings-kpi {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
    padding: .85rem .95rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--settings-forest) 10%, var(--c-surface-border));
    border-radius: var(--ops-radius-panel);
    background: color-mix(in srgb, var(--c-surface) 97%, var(--settings-forest-soft));
    box-shadow: var(--ops-shadow-surface);
}

.authenticated .settings-kpi::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    inline-size: .1875rem;
    background: color-mix(in srgb, var(--settings-forest) 42%, transparent);
}

.authenticated .settings-kpi--attention {
    border-color: color-mix(in srgb, var(--settings-gold) 42%, var(--c-surface-border));
    background: color-mix(in srgb, var(--c-surface) 94%, var(--settings-gold-soft));
}

.authenticated .settings-kpi--attention::before { background: var(--settings-gold); }

.authenticated .settings-kpi__icon {
    inline-size: 2.2rem;
    block-size: 2.2rem;
    padding: .5rem;
    border-radius: .7rem;
    background: color-mix(in srgb, var(--settings-forest-soft) 74%, var(--c-surface));
    color: var(--settings-forest);
}

.authenticated .settings-kpi__copy {
    display: grid;
    gap: .05rem;
    min-inline-size: 0;
}

.authenticated .settings-kpi__copy > span {
    color: color-mix(in srgb, var(--c-text) 78%, var(--c-muted));
    font-size: .7188rem;
    font-weight: 760;
    letter-spacing: .015em;
    text-transform: uppercase;
}

.authenticated .settings-kpi__copy > strong {
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: clamp(1.35rem, 1.9vw, 1.7rem);
    font-weight: 780;
    line-height: 1.1;
}

.authenticated .settings-kpi__copy > small {
    color: var(--c-muted);
    font-size: .7188rem;
    line-height: 1.35;
}

/* ---- users index -------------------------------------------------------- */
.authenticated .settings-users-card {
    display: grid;
    gap: 0;
    padding: 0;
    overflow: hidden;
}

.authenticated .settings-users-filters {
    display: grid;
    grid-template-columns: minmax(11rem, 1.5fr) repeat(auto-fit, minmax(9.5rem, .7fr));
    align-items: end;
    gap: .7rem;
    padding: .95rem 1rem;
    border-block-end: 1px solid var(--ops-border);
    background: color-mix(in srgb, var(--c-surface-low) 62%, var(--c-surface));
}

.authenticated .settings-users-filters .form-group {
    margin: 0;
    min-inline-size: 0;
}

.authenticated .settings-users-filters label {
    font-size: .75rem;
    font-weight: 760;
    letter-spacing: .015em;
    text-transform: uppercase;
}

.authenticated .settings-users-filters input,
.authenticated .settings-users-filters select {
    min-block-size: var(--ops-control-height);
    inline-size: 100%;
}

.authenticated .settings-users-filters__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.authenticated .settings-users-filters > .alert {
    grid-column: 1 / -1;
    inline-size: 100%;
}

.authenticated .settings-users-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    padding: .95rem 1rem .5rem;
}

.authenticated .settings-users-heading h3 {
    margin: .1rem 0 0;
    font-size: 1.0625rem;
}

.authenticated .settings-users-heading__count {
    margin: 0;
    color: var(--c-muted);
    font-size: .8125rem;
    font-weight: 700;
}

.authenticated .settings-users-empty { margin: .25rem 1rem 1rem; }

.authenticated .settings-users-table-wrap {
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    contain: inline-size;
    overflow-x: auto;
    border-block-start: 1px solid var(--ops-border);
}

.authenticated .settings-users-card {
    min-inline-size: 0;
    max-inline-size: 100%;
}

.authenticated .settings-users-table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}

.authenticated .settings-users-table th {
    padding: .55rem .75rem;
    background: color-mix(in srgb, var(--c-surface-low) 74%, var(--c-surface));
    border-block-end: 1px solid var(--ops-border);
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-align: start;
    text-transform: uppercase;
    white-space: nowrap;
}

.authenticated .settings-users-table td {
    padding: .65rem .75rem;
    border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 72%, transparent);
    color: var(--c-text);
    overflow-wrap: normal;
    word-break: normal;
    vertical-align: top;
}

.authenticated .settings-users-table tbody tr:hover,
.authenticated .settings-users-table tbody tr:focus-within {
    background: color-mix(in srgb, var(--settings-forest-soft) 46%, transparent);
}

.authenticated .settings-users-table__role,
.authenticated .settings-users-table__status { white-space: nowrap; }

.authenticated .settings-users-table__person { min-inline-size: 13rem; }

/* The flex row lives in this wrapper: a table cell given `display: flex`
   stops being a cell and collapses the rest of the row. */
.authenticated .settings-users-person {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    min-inline-size: 0;
}

.authenticated .settings-users-avatar {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    inline-size: 2.1rem;
    block-size: 2.1rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--settings-forest) 12%, var(--c-surface));
    color: var(--settings-forest);
    font-weight: 800;
}

.authenticated .settings-users-identity {
    display: grid;
    gap: .1rem;
    min-inline-size: 0;
}

.authenticated .settings-users-identity strong {
    color: var(--c-ink);
    font-size: .9375rem;
    font-weight: 760;
}

.authenticated .settings-users-identity__email {
    color: var(--c-muted);
    font-size: .75rem;
    overflow-wrap: anywhere;
}

.authenticated .settings-users-identity__you {
    justify-self: start;
    margin-block-start: .15rem;
}

.authenticated .settings-users-identity .form-help {
    margin: .1rem 0 0;
    font-size: .7188rem;
}

.authenticated .settings-users-table__actions .button {
    padding-inline: .65rem;
    font-size: .75rem;
    white-space: nowrap;
}

.authenticated .settings-users-table__actions .muted { font-size: .75rem; }

.authenticated .settings-users-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .8rem 1rem;
    border-block-start: 1px solid var(--ops-border);
}

.authenticated .settings-users-pagination__status {
    color: var(--c-muted);
    font-size: .8125rem;
    font-weight: 700;
}

/* ---- read-only roles ---------------------------------------------------- */
.authenticated .settings-roles-card {
    scroll-margin-block-start: calc(var(--topbar-height, 4rem) + 1rem);
}

.authenticated .settings-roles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: .8rem;
}

.authenticated .settings-role {
    display: grid;
    gap: .5rem;
    padding: .85rem;
    border: 1px solid color-mix(in srgb, var(--ops-border) 84%, transparent);
    border-radius: var(--ops-radius-surface);
    background: color-mix(in srgb, var(--c-surface-low) 48%, var(--c-surface));
}

.authenticated .settings-role__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .4rem;
}

.authenticated .settings-role__header h4 {
    margin: 0;
    font-size: .9375rem;
}

.authenticated .settings-role__permissions {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-role__permissions li {
    padding: .12rem .4rem;
    border: 1px solid color-mix(in srgb, var(--ops-border) 84%, transparent);
    border-radius: .3rem;
    background: var(--c-surface);
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .625rem;
}

/* ---- access model explainer -------------------------------------------- */
.authenticated .settings-model-steps {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0 0 0 1.1rem;
}

.authenticated .settings-model-steps li {
    display: grid;
    gap: .1rem;
    font-size: .8125rem;
    line-height: 1.45;
}

.authenticated .settings-model-steps strong { color: var(--c-ink); }
.authenticated .settings-model-steps span { color: var(--c-muted); }

.authenticated .settings-lifecycle-list {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-lifecycle-list li {
    display: grid;
    gap: .1rem;
    padding: .5rem .6rem;
    border: 1px solid color-mix(in srgb, var(--ops-border) 84%, transparent);
    border-radius: var(--ops-radius-control);
    background: color-mix(in srgb, var(--c-surface-low) 48%, var(--c-surface));
}

.authenticated .settings-lifecycle-list a {
    color: var(--settings-forest);
    font-size: .8125rem;
    font-weight: 760;
}

.authenticated .settings-lifecycle-list span {
    color: var(--c-muted);
    font-size: .7188rem;
}

/* ---- icon mask primitive ----------------------------------------------- */
/* The [data-nav-icon] rules declare only a mask-image; the box that carries it
   is declared per icon host, scoped to the navigation rail. Settings icon hosts
   need it too or they render as solid blocks. */
.authenticated :is(
    .settings-shell-nav__icon,
    .settings-row__icon,
    .settings-kpi__icon
)::before {
    content: "";
    display: block;
    inline-size: 100%;
    block-size: 100%;
    background: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.authenticated .settings-kpi__icon::before {
    inline-size: 1.2rem;
    block-size: 1.2rem;
    margin: auto;
}

/* ---- responsive --------------------------------------------------------- */
@media (max-width: 90rem) {
    .authenticated .settings-shell-hero {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .authenticated .settings-shell-hero__motto {
        justify-self: start;
        max-inline-size: none;
        margin-block-start: .9rem;
        text-align: start;
    }
}

@media (max-width: 100rem) {
    .authenticated .settings-shell-columns--access {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 76rem) {
    .authenticated .settings-shell-columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 1279px) {
    .authenticated .settings-shell-layout {
        --settings-nav-width: 178px;
        --settings-nav-gap: 15px;
    }
}

@media (max-width: 1023px) {
    .authenticated .settings-shell-layout { --settings-nav-width: 180px; }
}

/* Identity list controls form one compact toolbar when the content column can
   hold it. The export contract stays a full-width note instead of consuming a
   narrow control track. */
@media (min-width: 70.0625rem) {
    .authenticated .settings-users-filters--identity {
        grid-template-columns: minmax(14rem, 1.4fr) repeat(3, minmax(9rem, 1fr));
    }

    .authenticated .settings-users-filters--directory {
        grid-template-columns: minmax(12rem, 1.4fr) repeat(4, minmax(7.5rem, 1fr));
    }

    .authenticated .settings-users-filters--grant {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .authenticated .settings-users-filters--profiles {
        grid-template-columns: minmax(12rem, 1.4fr) repeat(3, minmax(8rem, 1fr));
    }

    .authenticated .settings-users-filters--scope-test {
        grid-template-columns: minmax(15rem, 1.4fr) minmax(10rem, 1fr) minmax(9rem, .8fr) minmax(8rem, .7fr);
    }

    .authenticated .settings-users-filters--identity .settings-users-filters__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .authenticated .settings-users-filters--directory .settings-users-filters__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .authenticated .settings-users-filters--grant > .settings-users-filters__actions {
        grid-column: 1 / -1;
    }

    .authenticated .settings-users-filters--profiles > .settings-users-filters__actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .authenticated .settings-users-filters--scope-test > .settings-users-filters__actions {
        grid-column: 1 / -1;
    }

    .authenticated .settings-users-filters--identity > .settings-users-filters__note {
        grid-column: 1 / -1;
        max-inline-size: 90ch;
        margin: 0;
    }

    .authenticated .admin-settings-workspace--access :is(
        [data-identity-table="users"],
        [data-identity-table="profiles"]
    ) {
        table-layout: fixed;
        min-inline-size: 0;
        inline-size: calc(100% - .5rem);
        margin-inline-end: .5rem;
    }

    .authenticated .admin-settings-workspace--access :is(
        [data-identity-table="users"],
        [data-identity-table="profiles"]
    ) :is(th, td) {
        overflow-wrap: anywhere;
        word-break: normal;
        white-space: normal;
    }

    .authenticated .admin-settings-workspace--access :is(
        [data-identity-table="users"],
        [data-identity-table="profiles"]
    ) td code {
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .authenticated [data-identity-table="users"] .settings-users-table__column-person { inline-size: 14%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-email { inline-size: 20%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-role { inline-size: 10%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-scopes { inline-size: 13%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-status { inline-size: 8%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-accepted { inline-size: 12%; }
    .authenticated [data-identity-table="users"] .settings-users-table__column-actions { inline-size: 23%; }

    .authenticated [data-identity-table="users"] .settings-users-table__email {
        overflow-wrap: break-word;
        word-break: normal;
    }

    .authenticated [data-identity-table="profiles"] :is(th, td):first-child { inline-size: 20%; }
    .authenticated [data-identity-table="profiles"] :is(th, td):nth-child(2),
    .authenticated [data-identity-table="profiles"] :is(th, td):nth-child(3),
    .authenticated [data-identity-table="profiles"] :is(th, td):nth-child(4),
    .authenticated [data-identity-table="profiles"] :is(th, td):nth-child(5) { inline-size: 10%; }
    .authenticated [data-identity-table="profiles"] :is(th, td):nth-child(6) { inline-size: 16%; }
    .authenticated [data-identity-table="profiles"] :is(th, td):last-child { inline-size: 24%; }

    .authenticated .admin-settings-workspace--access :is(
        [data-identity-table="users"],
        [data-identity-table="profiles"]
    ) td:last-child :is(a, button) {
        inline-size: 100%;
        max-inline-size: 100%;
        white-space: normal;
        overflow-wrap: normal;
        word-break: keep-all;
    }
}

@media (min-width: 48.0625rem) {
    .authenticated .admin-settings-workspace--access .settings-users-table[data-identity-table]:not([data-identity-table="users"]) {
        table-layout: auto;
    }

    .authenticated [data-identity-table="users"],
    .authenticated [data-identity-table="profiles"] { min-inline-size: 54rem; }
    .authenticated [data-identity-table="scopes"] { min-inline-size: 52rem; }
    .authenticated [data-identity-table="activity"],
    .authenticated [data-identity-table="roles"] { min-inline-size: 46rem; }
    .authenticated [data-identity-table="grants"] { min-inline-size: 40rem; }
}

/* At laptop widths both navigation rails leave a card-sized content column.
   Switch identity tables to labelled rows before their text becomes narrow. */
@media (min-width: 48.0625rem) and (max-width: 70rem) {
    .authenticated :is(.settings-users-filters--identity, .settings-users-filters--directory, .settings-users-filters--grant, .settings-users-filters--profiles) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated :is(.settings-users-filters--identity, .settings-users-filters--directory, .settings-users-filters--grant, .settings-users-filters--profiles)
    :is(.settings-users-filters__actions, .settings-users-filters__note) {
        grid-column: 1 / -1;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table-wrap {
        contain: none;
        overflow: visible;
        padding: .75rem;
        border-block-start: 0;
    }

    .authenticated .admin-settings-workspace--access :is(
        .settings-users-table,
        .settings-users-table tbody,
        .settings-users-table tr,
        .settings-users-table td
    ) {
        display: block;
        inline-size: 100%;
        min-inline-size: 0;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table :is(colgroup, thead) {
        display: none;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table tbody {
        display: grid;
        gap: .65rem;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table tbody tr {
        padding: .7rem;
        border: 1px solid var(--ops-border);
        border-radius: .8rem;
        background: var(--c-surface);
        box-shadow: var(--ops-shadow-surface);
    }

    .authenticated .admin-settings-workspace--access .settings-users-table td {
        display: grid;
        grid-template-columns: minmax(7rem, .7fr) minmax(0, 1.3fr);
        gap: .65rem;
        align-items: baseline;
        max-inline-size: 100%;
        padding: .45rem 0;
        border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 70%, transparent);
        overflow-wrap: anywhere;
        word-break: break-word;
        white-space: normal;
        text-align: start;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table td > * {
        min-inline-size: 0;
        max-inline-size: 100%;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table td::before {
        content: attr(data-label);
        color: var(--c-muted);
        font-size: .65rem;
        font-weight: 780;
        letter-spacing: .025em;
        text-transform: uppercase;
    }

    .authenticated .admin-settings-workspace--access :is(
        .settings-users-table__person,
        .settings-users-table__actions
    ) {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .admin-settings-workspace--access .settings-users-table__person {
        padding-block-start: 0;
        border-block-start: 0;
    }

    .authenticated .admin-settings-workspace--access :is(
        .settings-users-table__person,
        .settings-users-table__actions
    )::before {
        display: none;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table__actions {
        padding-block-end: 0;
    }

    .authenticated .admin-settings-workspace--access .settings-users-table__actions .button {
        inline-size: 100%;
        min-inline-size: 0;
        justify-content: center;
        white-space: normal;
    }
}

/* One navigation presentation: desktop/tablet links, enhanced phone select.
   Without JavaScript the same server links stay visible and keyboard-usable. */
@media (max-width: 48rem) {
    .authenticated .settings-shell-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-shell-nav { position: static; }

    .authenticated .settings-shell-nav[data-settings-navigation-ready="true"] :is(.settings-shell-nav__list, .settings-shell-nav__note) {
        display: none;
    }

    .authenticated .settings-shell-nav[data-settings-navigation-ready="true"] .settings-shell-nav__mobile:not([hidden]) {
        display: grid;
        gap: .4rem;
    }

    .authenticated .settings-shell-nav__mobile label {
        color: var(--c-muted);
        font-size: .875rem;
        font-weight: 650;
    }

    .authenticated .settings-shell-nav__mobile select {
        inline-size: 100%;
        min-inline-size: 0;
        min-block-size: 44px;
        font-size: 16px;
    }
}

@media (max-width: 48rem) {
    .authenticated .settings-shell-hero {
        padding: 1.15rem;
    }

    .authenticated .settings-shell-hero::after {
        inline-size: 100%;
        opacity: .1;
    }

    .authenticated .settings-identity-card,
    .authenticated .settings-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-identity-card__meta,
    .authenticated .settings-identity-card__meta > div {
        justify-items: start;
    }

    .authenticated .settings-identity-card__meta dd {
        white-space: normal;
    }

    .authenticated .admin-settings-workspace--branding :is(input, select) {
        font-size: 16px;
    }

    .authenticated .settings-row__action .button {
        inline-size: 100%;
        justify-content: center;
    }

    .authenticated .settings-users-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    /* One card per user; every cell keeps its column name via data-label. */
    .authenticated .settings-users-table-wrap {
        overflow: visible;
        padding: .75rem;
        border-block-start: 0;
    }

    .authenticated .settings-users-table,
    .authenticated .settings-users-table tbody,
    .authenticated .settings-users-table tr,
    .authenticated .settings-users-table td {
        display: block;
        inline-size: 100%;
        min-inline-size: 0;
    }

    .authenticated .settings-users-table :is(colgroup, thead) {
        display: none;
    }

    .authenticated .settings-users-table tbody {
        display: grid;
        gap: .65rem;
    }

    .authenticated .settings-users-table tbody tr {
        padding: .7rem;
        border: 1px solid var(--ops-border);
        border-radius: .8rem;
        background: var(--c-surface);
        box-shadow: var(--ops-shadow-surface);
    }

    .authenticated .settings-users-table td,
    .authenticated .settings-users-table td code {
        max-inline-size: 100%;
        overflow-wrap: anywhere;
        word-break: break-word;
        white-space: normal;
    }

    .authenticated .settings-users-table td {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .2rem;
        align-items: baseline;
        padding: .45rem 0;
        border-block-start: 1px solid color-mix(in srgb, var(--ops-border) 70%, transparent);
        text-align: start;
    }

    .authenticated .settings-users-table td > * {
        min-inline-size: 0;
        max-inline-size: 100%;
    }

    .authenticated .settings-users-table td::before {
        content: attr(data-label);
        color: var(--c-muted);
        font-size: .65rem;
        font-weight: 780;
        letter-spacing: .025em;
        text-transform: uppercase;
    }

    .authenticated .settings-users-table__person,
    .authenticated .settings-users-table__actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-users-table__person {
        min-inline-size: 0;
        padding-block-start: 0;
        border-block-start: 0;
    }

    .authenticated .settings-users-table__person::before,
    .authenticated .settings-users-table__actions::before {
        display: none;
    }

    .authenticated .settings-users-table__actions {
        padding-block-end: 0;
    }

    .authenticated .settings-users-table__actions .button {
        inline-size: 100%;
        min-inline-size: 0;
        justify-content: center;
        white-space: normal;
    }

    .authenticated .settings-users-table__role,
    .authenticated .settings-users-table__status {
        white-space: normal;
    }

}

:lang(ko) .authenticated .admin-settings-workspace--access :is(
    .settings-section-heading p,
    .settings-tabs__note,
    .settings-callout p,
    .settings-users-filters__note,
    .settings-users-card > p.form-help,
    .settings-users-filters p.form-help,
    .settings-access-activity__window,
    .settings-model-steps span,
    .settings-model-card > p,
    .settings-kpi__copy small
),
:lang(ko) .authenticated .admin-settings-workspace--account :is(
    .settings-section-heading p,
    .settings-row p,
    .settings-panel p:not(.eyebrow),
    .settings-rail-card p
),
:lang(ko) .authenticated [data-account-security] p {
    word-break: keep-all;
    overflow-wrap: break-word;
}

@media (max-width: 40rem) {
    .authenticated .settings-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .authenticated .settings-kpi {
        grid-template-columns: minmax(0, 1fr);
        gap: .4rem;
    }

    .authenticated .settings-rail-card__list > div {
        grid-template-columns: minmax(0, 1fr);
        gap: .1rem;
    }

    .authenticated .settings-users-pagination {
        justify-content: center;
    }
}

/* ---- resilience --------------------------------------------------------- */
@media (prefers-contrast: more) {
    .authenticated .admin-settings-workspace :is(
        .settings-shell-hero,
        .settings-kpi,
        .settings-role,
        .settings-lifecycle-list li,
        .settings-permission-list li,
        .settings-shell-nav__flag,
        .settings-tab__flag
    ) {
        border-color: var(--c-outline);
    }

    .authenticated .settings-shell-hero {
        background-image: none;
        background-color: var(--c-surface);
    }

    .authenticated .settings-shell-hero::after { display: none; }
}

@media (forced-colors: active) {
    .authenticated .admin-settings-workspace :is(
        .settings-shell-hero,
        .settings-identity-card,
        .settings-row,
        .settings-rail-card,
        .settings-kpi,
        .settings-role,
        .settings-lifecycle-list li,
        .settings-permission-list li,
        .settings-shell-nav__flag,
        .settings-tab__flag
    ) {
        border: 1px solid CanvasText;
        background: Canvas;
    }

    .authenticated .settings-shell-hero { background-image: none; }

    .authenticated .settings-shell-hero::after,
    .authenticated .settings-kpi::before { display: none; }

    .authenticated .settings-shell-nav__item.is-current,
    .authenticated .settings-shell-nav__item[aria-current="page"],
    .authenticated .settings-tab.is-current,
    .authenticated .settings-tab[aria-current="page"] {
        outline: .125rem solid CanvasText;
        outline-offset: -.125rem;
    }

    .authenticated :is(.settings-shell-nav__item--unavailable, .settings-tab--unavailable) {
        color: GrayText;
    }

    .authenticated :is(
        .settings-shell-nav__icon,
        .settings-row__icon,
        .settings-kpi__icon
    )::before {
        background: CanvasText;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .admin-settings-workspace :is(
        .settings-shell-nav__list,
        .settings-tabs__list,
        .settings-users-table-wrap,
        .settings-shell-nav__item,
        .settings-tab
    ) {
        scroll-behavior: auto;
        transition: none;
    }
}

@media print {
    .authenticated .admin-settings-workspace :is(
        .settings-shell-nav,
        .settings-tabs,
        .settings-users-filters,
        .settings-users-pagination,
        .settings-row__action
    ) {
        display: none;
    }

    .authenticated .settings-shell-hero {
        background: none;
        border: 0;
        box-shadow: none;
    }

    .authenticated .settings-shell-hero::after { display: none; }

    .authenticated .settings-shell-layout,
    .authenticated .settings-shell-columns {
        display: block;
    }

    .authenticated .settings-users-table-wrap { overflow: visible; }
}

/* Settings-only nav icons. Extend the rail's icon set in the same mask idiom. */
[data-nav-icon="monitor"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2021h8m-4-5v5%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2021h8m-4-5v5%22%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="upload"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2016V3m-5%205%205-5%205%205M4%2015v6h16v-6%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2016V3m-5%205%205-5%205%205M4%2015v6h16v-6%22%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="palette"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%203a9%209%200%201%200%200%2018c1.7%200%202.6-1%202.6-2.1%200-1.6-1.4-1.8-1.4-3%200-1%20.8-1.8%202-1.8h1.3A4.5%204.5%200%200%200%2021%209.6C21%205.9%2017%203%2012%203Zm-4.6%206a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Zm3-3.2a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Zm6%200a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Z%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%203a9%209%200%201%200%200%2018c1.7%200%202.6-1%202.6-2.1%200-1.6-1.4-1.8-1.4-3%200-1%20.8-1.8%202-1.8h1.3A4.5%204.5%200%200%200%2021%209.6C21%205.9%2017%203%2012%203Zm-4.6%206a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Zm3-3.2a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Zm6%200a1.5%201.5%200%201%201%200%203%201.5%201.5%200%200%201%200-3Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="plug"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M9%202v6H7v3.2A5%205%200%200%200%2011%2016v6h2v-6a5%205%200%200%200%204-4.8V8h-2V2h-2v6h-2V2H9Z%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M9%202v6H7v3.2A5%205%200%200%200%2011%2016v6h2v-6a5%205%200%200%200%204-4.8V8h-2V2h-2v6h-2V2H9Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="shield"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202%204%205v6.2c0%204.9%203.3%209.4%208%2010.8%204.7-1.4%208-5.9%208-10.8V5l-8-3Zm-1%2013.2-3.2-3.2%201.4-1.4%201.8%201.8%204.8-4.8%201.4%201.4-6.2%206.2Z%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202%204%205v6.2c0%204.9%203.3%209.4%208%2010.8%204.7-1.4%208-5.9%208-10.8V5l-8-3Zm-1%2013.2-3.2-3.2%201.4-1.4%201.8%201.8%204.8-4.8%201.4%201.4-6.2%206.2Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="bell"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202a6%206%200%200%200-6%206c0%205-2%206-2%208h16c0-2-2-3-2-8a6%206%200%200%200-6-6Zm-2%2016a2%202%200%200%200%204%200h-4Z%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202a6%206%200%200%200-6%206c0%205-2%206-2%208h16c0-2-2-3-2-8a6%206%200%200%200-6-6Zm-2%2016a2%202%200%200%200%204%200h-4Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-nav-icon="lock"]::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202a5%205%200%200%200-5%205v2H5v13h14V9h-2V7a5%205%200%200%200-5-5Zm0%202a3%203%200%200%201%203%203v2H9V7a3%203%200%200%201%203-3Zm0%208.5a2%202%200%200%201%201%203.7V19h-2v-2.8a2%202%200%200%201%201-3.7Z%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M12%202a5%205%200%200%200-5%205v2H5v13h14V9h-2V7a5%205%200%200%200-5-5Zm0%202a3%203%200%200%201%203%203v2H9V7a3%203%200%200%201%203-3Zm0%208.5a2%202%200%200%201%201%203.7V19h-2v-2.8a2%202%200%200%201%201-3.7Z%27%2F%3E%3C%2Fsvg%3E"); }


/* ===========================================================================
   ADM-070 to ADM-074 — the platform sections of the Settings workspace
   (2026-09-08)

   Four sections that were inert rail entries now have routes, and Branding
   gained a live preview and the Site Builder entry point. They share the shell
   from the ADM-061 layer above and add only what that layer had no need for:
   a panel with a header, a status banner, a definition-style card grid, and the
   one treatment this work needed most — a way to lay out a control CON8CT does
   not have yet without it reading as a control that is merely switched off.

   That is what .settings-panel--muted and .settings-gap-list are for. A muted
   panel is legible and complete but visually recessed, and a gap list is
   explicitly aria-disabled with the reason as body copy rather than a tooltip.
   The alternative — greying out a real-looking form — is the failure mode this
   layer exists to avoid.

   Colour comes only from CON8CT tokens and the tenant's own branding values.
   =========================================================================== */

/* ---- panel: a card with a header row ------------------------------------ */
.authenticated .settings-panel {
    display: flex;
    flex-direction: column;
    gap: var(--s4, 1.25rem);
}

.authenticated .settings-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.authenticated .settings-panel__header h3 {
    margin: .15rem 0 0;
    color: var(--c-ink);
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
    font-size: 1.15rem;
    font-weight: 720;
    letter-spacing: -.015em;
}

.authenticated .settings-panel__header p.muted {
    max-inline-size: 52rem;
    margin: .4rem 0 0;
    font-size: .875rem;
    line-height: 1.6;
}

/* A section CON8CT cannot fill yet. Recessed, never disabled-looking. */
.authenticated .settings-panel--muted {
    border-style: dashed;
    background: color-mix(in srgb, var(--c-surface) 92%, var(--settings-forest-soft, #e9f0eb));
}

/* ---- integrations ------------------------------------------------------- */
.authenticated .settings-integration-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-integration {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding: 1.05rem 1.1rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .9rem;
    background: var(--c-surface);
}

.authenticated .settings-integration.is-connected {
    border-color: color-mix(in srgb, var(--settings-forest) 26%, var(--c-surface-border));
    box-shadow: inset .1875rem 0 0 0 color-mix(in srgb, var(--settings-forest) 55%, transparent);
}

.authenticated .settings-integration__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: .75rem;
}

.authenticated .settings-integration__mark {
    display: grid;
    place-items: center;
    inline-size: 2.4rem;
    block-size: 2.4rem;
    border: 1px solid color-mix(in srgb, var(--settings-gold) 34%, var(--c-surface-border));
    border-radius: .65rem;
    background: color-mix(in srgb, var(--settings-forest-soft) 70%, var(--c-surface));
}

/* One mark, tinted per adapter, instead of a set of third-party logos this
   repository does not have the right to ship. */
.authenticated .settings-integration__mark::before {
    content: "";
    inline-size: 1.1rem;
    block-size: 1.1rem;
    border-radius: .2rem;
    background: color-mix(in srgb, var(--settings-forest) 72%, transparent);
}

.authenticated .settings-integration__mark[data-integration="school-payments"]::before,
.authenticated .settings-integration__mark[data-integration="subscription-billing"]::before {
    border-radius: 50%;
    background: color-mix(in srgb, var(--settings-gold) 82%, transparent);
}

.authenticated .settings-integration__mark[data-integration="public-site"]::before {
    border-radius: 50%;
    background: none;
    box-shadow: inset 0 0 0 .1875rem color-mix(in srgb, var(--settings-forest) 62%, transparent);
}

.authenticated .settings-integration__identity h4 {
    margin: 0;
    color: var(--c-ink);
    font-size: .975rem;
    font-weight: 700;
}

.authenticated .settings-integration__identity p {
    margin: .2rem 0 0;
    font-size: .8125rem;
    line-height: 1.55;
}

.authenticated .settings-integration__category {
    margin: 0;
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.authenticated .settings-integration__facts {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-block-start: .7rem;
    border-block-start: 1px solid color-mix(in srgb, var(--c-surface-border) 70%, transparent);
}

.authenticated .settings-integration__facts > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.authenticated .settings-integration__facts dt {
    color: var(--c-muted);
    font-size: .78rem;
}

.authenticated .settings-integration__facts dd {
    margin: 0;
    color: var(--c-text);
    font-size: .8125rem;
    font-weight: 600;
    text-align: end;
    overflow-wrap: anywhere;
}

.authenticated .settings-integration__action {
    margin-block-start: auto;
    padding-block-start: .25rem;
}

/* ---- planned list ------------------------------------------------------- */
.authenticated .settings-planned-list {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-planned-list > li {
    display: grid;
    grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr) auto;
    align-items: center;
    gap: .85rem;
    padding: .8rem .95rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 80%, transparent);
    border-radius: .7rem;
    background: color-mix(in srgb, var(--c-surface) 78%, transparent);
}

.authenticated .settings-planned-list__identity {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.authenticated .settings-planned-list__identity strong {
    color: var(--c-ink);
    font-size: .9rem;
}

.authenticated .settings-planned-list__category {
    color: var(--c-muted);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.authenticated .settings-planned-list__reason {
    margin: 0;
    color: color-mix(in srgb, var(--c-text) 82%, var(--c-muted));
    font-size: .8125rem;
    line-height: 1.55;
}

/* ---- unavailable rail card ---------------------------------------------- */
.authenticated .settings-unavailable {
    border-style: dashed;
}

.authenticated .settings-unavailable__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.authenticated .settings-unavailable__header h3 {
    margin: 0;
}

/* ---- security posture banner -------------------------------------------- */
.authenticated .settings-posture {
    display: grid;
    grid-template-columns: auto minmax(0, 1.2fr) minmax(0, 1.6fr);
    align-items: center;
    gap: clamp(.9rem, 2vw, 1.75rem);
    padding: clamp(1rem, 2vw, 1.4rem) clamp(1.1rem, 2.2vw, 1.6rem);
    border: 1px solid var(--c-surface-border);
    border-radius: 1rem;
    background: var(--c-surface);
}

.authenticated .settings-posture.is-federated {
    border-color: color-mix(in srgb, var(--settings-forest) 30%, var(--c-surface-border));
    background: linear-gradient(120deg,
        color-mix(in srgb, var(--settings-forest-soft) 82%, var(--c-surface)) 0%,
        var(--c-surface) 62%);
}

.authenticated .settings-posture__icon {
    display: grid;
    place-items: center;
    inline-size: 2.9rem;
    block-size: 2.9rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--settings-forest) 88%, transparent);
}

.authenticated .settings-posture__icon::before {
    background-color: var(--c-surface);
    inline-size: 1.35rem;
    block-size: 1.35rem;
}

.authenticated .settings-posture__body h3 {
    margin: 0;
    color: var(--c-ink);
    font-size: 1.05rem;
    font-weight: 720;
}

.authenticated .settings-posture__body p {
    margin: .3rem 0 0;
    color: color-mix(in srgb, var(--c-text) 84%, var(--c-muted));
    font-size: .875rem;
    line-height: 1.55;
}

.authenticated .settings-posture__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
    gap: .85rem 1.25rem;
    margin: 0;
    padding-inline-start: clamp(0rem, 1.5vw, 1.25rem);
    border-inline-start: 1px solid color-mix(in srgb, var(--c-surface-border) 85%, transparent);
}

.authenticated .settings-posture__facts dt {
    color: var(--c-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.authenticated .settings-posture__facts dd {
    margin: .2rem 0 0;
    color: var(--c-ink);
    font-size: .9rem;
    font-weight: 660;
}

/* ---- small shared pieces ------------------------------------------------ */
.authenticated .settings-row__value-note {
    display: block;
    margin-block-start: .3rem;
    color: var(--c-muted);
    font-size: .78rem;
}

.authenticated .settings-role-counts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-role-counts > li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    padding: .5rem .7rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 78%, transparent);
    border-radius: .55rem;
    font-size: .8125rem;
}

.authenticated .settings-role-counts strong {
    color: var(--c-ink);
    font-weight: 680;
    white-space: nowrap;
}

.authenticated .settings-assurance-list {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-assurance-list > li {
    position: relative;
    padding-inline-start: 1.4rem;
    color: color-mix(in srgb, var(--c-text) 88%, var(--c-muted));
    font-size: .8438rem;
    line-height: 1.6;
}

.authenticated .settings-assurance-list > li::before {
    content: "";
    position: absolute;
    inset-block-start: .55rem;
    inset-inline-start: 0;
    inline-size: .45rem;
    block-size: .45rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--settings-forest) 62%, transparent);
}

/* ---- gap list: a control CON8CT does not have --------------------------- */
.authenticated .settings-gap-list {
    display: grid;
    gap: .6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-gap-list > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: .35rem .9rem;
    padding: .85rem 1rem;
    border: 1px dashed color-mix(in srgb, var(--c-surface-border) 90%, transparent);
    border-radius: .7rem;
    background: color-mix(in srgb, var(--c-surface) 72%, transparent);
}

.authenticated .settings-gap-list > li > strong {
    color: var(--c-ink);
    font-size: .9rem;
    font-weight: 700;
}

.authenticated .settings-gap-list > li > p {
    grid-column: 1 / -1;
    margin: 0;
    color: color-mix(in srgb, var(--c-text) 80%, var(--c-muted));
    font-size: .8125rem;
    line-height: 1.6;
}

.authenticated .settings-gap-list > li > .c-chip {
    grid-row: 1;
    grid-column: 2;
    justify-self: end;
}

/* The same list used to describe the parts of a feature rather than gaps in
   one, so it carries no chip column. */
.authenticated .settings-gap-list--parts > li {
    grid-template-columns: minmax(0, 1fr);
}

/* ---- notification event catalogue --------------------------------------- */
.authenticated .settings-event-groups {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-event-groups > li {
    padding: .9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .8rem;
    background: color-mix(in srgb, var(--c-surface) 80%, transparent);
}

.authenticated .settings-event-groups__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    margin-block-end: .6rem;
}

.authenticated .settings-event-groups__header h4 {
    margin: 0;
    color: var(--c-ink);
    font-size: .925rem;
    font-weight: 700;
}

.authenticated .settings-event-groups__audience {
    color: var(--c-muted);
    font-size: .75rem;
    font-weight: 600;
}

.authenticated .settings-event-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: .35rem .9rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-event-list > li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .6rem;
    padding-block: .3rem;
    border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 55%, transparent);
    font-size: .8125rem;
}

.authenticated .settings-event-list code {
    color: var(--c-muted);
    font-size: .65rem;
    letter-spacing: .02em;
    white-space: nowrap;
}

/* ---- privacy access table ----------------------------------------------- */
.authenticated .settings-privacy-table-wrap {
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .8rem;
}

.authenticated .settings-privacy-table-wrap:focus-visible {
    outline: .1875rem solid var(--brand-focus, var(--settings-forest));
    outline-offset: .15rem;
}

.authenticated .settings-privacy-table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: .8438rem;
}

.authenticated .settings-privacy-table th {
    padding: .7rem .9rem;
    border-block-end: 1px solid var(--c-surface-border);
    background: color-mix(in srgb, var(--settings-forest-soft) 45%, var(--c-surface));
    color: var(--c-muted);
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-align: start;
    text-transform: uppercase;
}

.authenticated .settings-privacy-table td {
    padding: .75rem .9rem;
    border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 55%, transparent);
    vertical-align: top;
}

.authenticated .settings-privacy-table tr:last-child td { border-block-end: 0; }

.authenticated .settings-privacy-table strong {
    display: block;
    color: var(--c-ink);
    font-weight: 680;
}

.authenticated .settings-privacy-table__detail {
    display: block;
    margin-block-start: .15rem;
    color: var(--c-muted);
    font-size: .78rem;
    line-height: 1.5;
}

.authenticated .settings-privacy-roles {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.authenticated .settings-privacy-table code {
    color: var(--c-muted);
    font-size: .68rem;
    white-space: nowrap;
}

/* Below the point where three columns fit, the table becomes stacked rows with
   their header as a label, which is the pattern the other CON8CT data tables
   already use. */
@media (max-width: 46rem) {
    .authenticated .settings-privacy-table thead { display: none; }
    .authenticated .settings-privacy-table,
    .authenticated .settings-privacy-table tbody,
    .authenticated .settings-privacy-table tr,
    .authenticated .settings-privacy-table td { display: block; inline-size: 100%; }
    .authenticated .settings-privacy-table tr {
        padding-block: .5rem;
        border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 60%, transparent);
    }
    .authenticated .settings-privacy-table td { border: 0; padding-block: .35rem; }
    .authenticated .settings-privacy-table td::before {
        content: attr(data-label);
        display: block;
        margin-block-end: .2rem;
        color: var(--c-muted);
        font-size: .68rem;
        font-weight: 750;
        letter-spacing: .06em;
        text-transform: uppercase;
    }
}

/* ---- consent surfaces --------------------------------------------------- */
.authenticated .settings-consent-list {
    display: grid;
    gap: .55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-consent-list > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .85rem;
    padding: .85rem 1rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .7rem;
}

.authenticated .settings-consent-list > li.is-unavailable {
    border-style: dashed;
    background: color-mix(in srgb, var(--c-surface) 70%, transparent);
}

.authenticated .settings-consent-list__identity strong {
    color: var(--c-ink);
    font-size: .9rem;
    font-weight: 680;
}

.authenticated .settings-consent-list__identity p {
    margin: .15rem 0 0;
    color: var(--c-muted);
    font-size: .8125rem;
    line-height: 1.5;
}

/* ---- callout ------------------------------------------------------------ */
.authenticated .settings-callout {
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in srgb, var(--settings-forest) 20%, var(--c-surface-border));
    border-radius: .8rem;
    background: color-mix(in srgb, var(--settings-forest-soft) 55%, var(--c-surface));
}

.authenticated .settings-callout h4 {
    margin: 0 0 .35rem;
    color: var(--c-ink);
    font-size: .925rem;
    font-weight: 700;
}

.authenticated .settings-callout p {
    margin: 0;
    color: color-mix(in srgb, var(--c-text) 86%, var(--c-muted));
    font-size: .8438rem;
    line-height: 1.6;
}

.authenticated .settings-callout__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-block-start: .8rem;
}

/* ---- branding: school card, form, assets, site -------------------------- */
.authenticated .settings-school-card__crest {
    overflow: hidden;
    font-family: var(--font-display, Georgia, "Times New Roman", serif);
}

.authenticated .settings-school-card__crest img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
}

.authenticated .settings-branding-colors {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: 1rem;
}

.authenticated .settings-branding-presets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: 1rem;
}

.authenticated .settings-branding-form__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    padding-block-start: .5rem;
}

.authenticated .settings-branding-form__actions .form-help {
    flex: 1 1 16rem;
    margin: 0;
}

.authenticated .settings-asset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: 1.1rem;
}

.authenticated .settings-asset {
    display: flex;
    flex-direction: column;
    gap: .7rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .8rem;
}

.authenticated .settings-asset h4 {
    margin: 0;
    color: var(--c-ink);
    font-size: .925rem;
    font-weight: 700;
}

.authenticated .settings-asset__preview {
    display: grid;
    place-items: center;
    padding: .9rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 70%, transparent);
    border-radius: .65rem;
}

.authenticated .settings-asset__preview--logo { min-block-size: 6rem; }
.authenticated .settings-asset__preview--favicon { min-block-size: 4.5rem; }

.authenticated .settings-asset__preview img {
    max-inline-size: 100%;
    max-block-size: 5rem;
    object-fit: contain;
}

.authenticated .settings-site-card__facts {
    padding-block-start: .25rem;
}

.authenticated .settings-site-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

/* ---- branding live preview ---------------------------------------------- */
.authenticated .settings-preview__label {
    margin: 1rem 0 .4rem;
    color: var(--c-muted);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.authenticated .settings-preview {
    overflow: hidden;
    border: 1px solid var(--c-surface-border);
    border-radius: .6rem;
    background: var(--c-surface);
    box-shadow: 0 .2rem .6rem rgba(18, 61, 45, .06);
    user-select: none;
}

.authenticated .settings-preview--app {
    display: grid;
    grid-template-columns: 3.2rem minmax(0, 1fr);
    block-size: 9rem;
}

.authenticated .settings-preview__rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: .5rem .35rem;
}

.authenticated .settings-preview__crest {
    inline-size: 1.15rem;
    block-size: 1.15rem;
    border-radius: .25rem;
}

.authenticated .settings-preview__crest--small {
    inline-size: .85rem;
    block-size: .85rem;
    border-radius: .2rem;
}

.authenticated .settings-preview__rail-line {
    inline-size: 1.9rem;
    block-size: .3rem;
    border-radius: .15rem;
    background: rgba(255, 255, 255, .35);
}

.authenticated .settings-preview__body {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding: .55rem;
    background: color-mix(in srgb, var(--c-surface) 88%, #f2f4f3);
}

.authenticated .settings-preview__topbar {
    block-size: .55rem;
    border-radius: .15rem;
    background: var(--c-surface);
    box-shadow: 0 .0625rem .125rem rgba(0, 0, 0, .06);
}

.authenticated .settings-preview__title {
    inline-size: 45%;
    block-size: .5rem;
    border-radius: .15rem;
}

.authenticated .settings-preview__row {
    block-size: .95rem;
    border-radius: .2rem;
    background: var(--c-surface);
    box-shadow: 0 .0625rem .125rem rgba(0, 0, 0, .05);
}

.authenticated .settings-preview__row--short { inline-size: 68%; }

.authenticated .settings-preview__button {
    inline-size: 4rem;
    block-size: .8rem;
    border-radius: .25rem;
}

.authenticated .settings-preview--site { block-size: 10.5rem; }

.authenticated .settings-preview__site-header {
    display: flex;
    align-items: center;
    gap: .3rem;
    padding: .4rem .5rem;
    background: var(--c-surface);
}

.authenticated .settings-preview__nav-line {
    inline-size: 1.4rem;
    block-size: .22rem;
    border-radius: .15rem;
    background: color-mix(in srgb, var(--c-muted) 45%, transparent);
}

.authenticated .settings-preview__site-header .settings-preview__nav-line:first-of-type { margin-inline-start: auto; }

.authenticated .settings-preview__nav-cta {
    inline-size: 1.7rem;
    block-size: .5rem;
    border-radius: .15rem;
}

.authenticated .settings-preview__hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .3rem;
    block-size: 4.6rem;
    padding: .6rem;
}

.authenticated .settings-preview__hero-line {
    inline-size: 68%;
    block-size: .38rem;
    border-radius: .15rem;
    background: rgba(255, 255, 255, .82);
}

.authenticated .settings-preview__hero-line--short { inline-size: 46%; }

.authenticated .settings-preview__hero-cta {
    inline-size: 2.4rem;
    block-size: .6rem;
    margin-block-start: .15rem;
    border-radius: .18rem;
}

.authenticated .settings-preview__site-body {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .35rem;
    padding: .5rem;
    background: var(--c-surface);
}

.authenticated .settings-preview__tile {
    block-size: 2.2rem;
    border-radius: .25rem;
}

.authenticated .settings-preview__swatches {
    display: grid;
    gap: .4rem;
    margin: 1.1rem 0 0;
}

.authenticated .settings-preview__swatches > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.authenticated .settings-preview__swatches dt {
    color: var(--c-muted);
    font-size: .78rem;
}

.authenticated .settings-preview__swatches dd {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
}

.authenticated .settings-preview__swatch {
    inline-size: 1rem;
    block-size: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: .25rem;
}

.authenticated .settings-preview__swatches code {
    color: var(--c-text);
    font-size: .72rem;
}

/* ---- narrow viewports --------------------------------------------------- */
@media (max-width: 64rem) {
    .authenticated .settings-posture {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .settings-posture__facts {
        grid-column: 1 / -1;
        padding-inline-start: 0;
        padding-block-start: .9rem;
        border-inline-start: 0;
        border-block-start: 1px solid color-mix(in srgb, var(--c-surface-border) 85%, transparent);
    }

    .authenticated .settings-planned-list > li {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .authenticated .settings-planned-list__reason {
        grid-column: 1 / -1;
    }
}

@media (max-width: 40rem) {
    .authenticated .settings-consent-list > li {
        grid-template-columns: minmax(0, 1fr);
        justify-items: start;
    }

    .authenticated .settings-integration__head {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .settings-integration__head > .c-chip {
        grid-column: 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .authenticated .settings-integration,
    .authenticated .settings-consent-list > li { transition: none; }
}

/* ---- container-aware settings rows ---------------------------------------
   .settings-row above keys its three tracks off the viewport, which was right
   while every section was a single column. Branding and the four platform
   sections now put a rail beside that column, so at around 1280px the column
   itself is roughly 26rem wide while the window is still "desktop": the middle
   track collapses to zero and the values a row exists to show wrap one
   character per line.

   Keying the stack to the column's own width rather than the window's fixes it
   at every width and leaves the ADM-061 rule untouched, which matters because
   the same row markup is used by sections that have no rail.

   44rem is where the three tracks stop being worth having: the lead is 11rem,
   the action is about 11rem of button, and padding and gaps take 4rem more, so
   below that the middle track has under 12rem left and the values start
   wrapping mid-phrase. Measured, not guessed. */
.authenticated .settings-shell-column {
    container-type: inline-size;
    container-name: settings-column;
}

@container settings-column (max-width: 44rem) {
    .authenticated .settings-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-row__action {
        justify-self: start;
    }

    .authenticated .settings-posture {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .settings-posture__facts {
        grid-column: 1 / -1;
        padding-inline-start: 0;
        padding-block-start: .9rem;
        border-inline-start: 0;
        border-block-start: 1px solid color-mix(in srgb, var(--c-surface-border) 85%, transparent);
    }

    .authenticated .settings-planned-list > li {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .authenticated .settings-planned-list__reason {
        grid-column: 1 / -1;
    }

    .authenticated .settings-consent-list > li {
        grid-template-columns: minmax(0, 1fr);
        justify-items: start;
    }

    .authenticated .settings-integration__head {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .authenticated .settings-integration__head > .c-chip {
        grid-column: 2;
    }

    .authenticated .settings-asset-grid,
    .authenticated .settings-branding-colors,
    .authenticated .settings-branding-presets {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* A status chip is a label, not a paragraph: "Soon" breaking across two lines
   in a narrow rail header reads as a rendering fault. */
.authenticated :is(.settings-panel__header, .settings-unavailable__header, .settings-site-card) > .c-chip,
.authenticated .settings-integration__head > .c-chip,
.authenticated .settings-planned-list > li > .c-chip,
.authenticated .settings-gap-list > li > .c-chip,
.authenticated .settings-event-groups__header .c-chip {
    white-space: nowrap;
}

/* The colour inputs inherit the form layer's full-width rule, which turns a
   swatch into a long black bar. A colour control should look like the thing it
   sets. */
.authenticated .settings-branding-colors input[type="color"] {
    inline-size: 100%;
    max-inline-size: 9rem;
    block-size: 2.6rem;
    padding: .2rem;
    border: 1px solid var(--c-surface-border);
    border-radius: .5rem;
    background: var(--c-surface);
    cursor: pointer;
}

/* ===========================================================================
   ADM-075 — Settings › Audit Log (2026-09-10)

   The log reuses the settings primitives from the layers above; what it needs
   of its own is a five-column event table that stays readable when a school
   has thousands of rows, and a compact feed of the same events for the two
   sections that show a few of them beside their own content.

   The table follows the .settings-privacy-table pattern deliberately, down to
   the stacked-row behaviour at narrow widths, so a school moving between
   Data & Privacy and the Audit Log reads the same object twice rather than
   learning two tables.
   =========================================================================== */

.authenticated .settings-audit-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .8rem;
    background: color-mix(in srgb, var(--settings-forest-soft) 32%, var(--c-surface));
}

.authenticated .settings-audit-filters .form-group {
    margin: 0;
    max-inline-size: 26rem;
}

.authenticated .settings-audit-filters__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

/* ---- event table -------------------------------------------------------- */
.authenticated .settings-audit-table-wrap {
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--c-surface-border) 82%, transparent);
    border-radius: .8rem;
}

.authenticated .settings-audit-table-wrap:focus-visible {
    outline: .1875rem solid var(--brand-focus, var(--settings-forest));
    outline-offset: .15rem;
}

.authenticated .settings-audit-table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: .8438rem;
}

.authenticated .settings-audit-table th {
    padding: .7rem .9rem;
    border-block-end: 1px solid var(--c-surface-border);
    background: color-mix(in srgb, var(--settings-forest-soft) 45%, var(--c-surface));
    color: var(--c-muted);
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-align: start;
    text-transform: uppercase;
    white-space: nowrap;
}

.authenticated .settings-audit-table td {
    padding: .7rem .9rem;
    border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 55%, transparent);
    vertical-align: top;
}

.authenticated .settings-audit-table tbody tr:last-child td { border-block-end: 0; }

.authenticated .settings-audit-table tbody tr:hover {
    background: color-mix(in srgb, var(--settings-forest-soft) 22%, transparent);
}

.authenticated .settings-audit-table strong {
    color: var(--c-ink);
    font-weight: 680;
}

.authenticated .settings-audit-table__when {
    white-space: nowrap;
}

.authenticated .settings-audit-table__when time {
    display: block;
    color: var(--c-ink);
    font-weight: 640;
}

.authenticated .settings-audit-table__time {
    display: block;
    margin-block-start: .1rem;
    color: var(--c-muted);
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
}

.authenticated .settings-audit-table__detail {
    display: block;
    margin-block-start: .15rem;
    color: var(--c-muted);
    font-size: .75rem;
}

/* A subject CON8CT holds only as an identifier: the kind reads as words, the
   identifier as code, so the two are never mistaken for each other. */
.authenticated .settings-audit-table__reference {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .3rem;
}

.authenticated .settings-audit-table code,
.authenticated .settings-audit-feed code {
    color: var(--c-muted);
    font-size: .72rem;
    white-space: nowrap;
}

@media (max-width: 60rem) {
    .authenticated .settings-audit-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-audit-table thead { display: none; }
    .authenticated .settings-audit-table,
    .authenticated .settings-audit-table tbody,
    .authenticated .settings-audit-table tr,
    .authenticated .settings-audit-table td { display: block; inline-size: 100%; }
    .authenticated .settings-audit-table tr {
        padding: .6rem .2rem;
        border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 60%, transparent);
    }
    .authenticated .settings-audit-table td { border: 0; padding-block: .3rem; }
    .authenticated .settings-audit-table td::before {
        content: attr(data-label);
        display: block;
        margin-block-end: .15rem;
        color: var(--c-muted);
        font-size: .68rem;
        font-weight: 750;
        letter-spacing: .06em;
        text-transform: uppercase;
    }
    .authenticated .settings-audit-table__when { white-space: normal; }
    .authenticated .settings-audit-table__when time,
    .authenticated .settings-audit-table__time { display: inline; }
}

/* ---- compact feed ------------------------------------------------------- */
.authenticated .settings-audit-feed {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.authenticated .settings-audit-feed__list {
    display: grid;
    gap: .1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authenticated .settings-audit-feed__list > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: .15rem .9rem;
    padding-block: .55rem;
    border-block-end: 1px solid color-mix(in srgb, var(--c-surface-border) 50%, transparent);
}

.authenticated .settings-audit-feed__list > li:last-child { border-block-end: 0; }

.authenticated .settings-audit-feed__what {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .35rem;
    font-size: .8438rem;
}

.authenticated .settings-audit-feed__what strong {
    color: var(--c-ink);
    font-weight: 660;
}

.authenticated .settings-audit-feed__subject {
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
    color: color-mix(in srgb, var(--c-text) 86%, var(--c-muted));
}

.authenticated .settings-audit-feed__actor {
    grid-column: 1;
    color: var(--c-muted);
    font-size: .78rem;
}

.authenticated .settings-audit-feed__when {
    grid-row: 1;
    grid-column: 2;
    color: var(--c-muted);
    font-size: .75rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

@container settings-column (max-width: 30rem) {
    .authenticated .settings-audit-feed__list > li {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-audit-feed__when {
        grid-row: auto;
        grid-column: 1;
    }
}

/* Premium reusable regions. Callers own authorized data and destinations. */
.authenticated .premium-stack { display: grid; gap: 20px; min-inline-size: 0; color: var(--c-ink); }
.authenticated .premium-cluster { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.authenticated .premium-workbench { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 20px; align-items: start; }
.authenticated .premium-workbench > * { min-inline-size: 0; }
.authenticated .premium-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-block-size: 44px; min-inline-size: 44px; max-inline-size: 100%; padding: 10px 15px; border: 1px solid var(--c-line); border-radius: 9px; background: var(--c-surface); color: var(--c-ink); font: 600 12px/1.4 var(--premium-body-font); text-align: center; text-decoration: none; overflow-wrap: anywhere; cursor: pointer; }
.authenticated .premium-button:hover { background: var(--c-surface-low); border-color: var(--brand-focus); }
.authenticated .premium-button[data-variant="primary"] { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--brand-on-primary); }
.authenticated .premium-button[data-variant="gold"] { background: #f8edc9; border-color: #dfc77e; color: #63501b; }
.authenticated .premium-button[data-variant="danger"] { background: #fff2ee; border-color: #e6c4bc; color: #913c37; }
.authenticated .premium-button[data-variant="text"] { background: transparent; border-color: transparent; text-decoration: underline; text-underline-offset: 3px; }
.authenticated .premium-button:disabled { opacity: .55; cursor: not-allowed; }
.authenticated .premium-button[hidden] { display: none; }
.authenticated :is(.premium-button,.premium-field input,.premium-field select,.premium-field textarea,.premium-scroll):focus-visible { outline: 3px solid var(--brand-focus); outline-offset: 3px; }
.authenticated .premium-hero { display: flex; align-items: center; position: relative; isolation: isolate; overflow: hidden; min-block-size: 206px; border: 1px solid var(--c-line); border-radius: 15px; background: #f5f2e8; }
.authenticated .premium-hero__copy { position: relative; z-index: 2; padding: 27px 30px; max-inline-size: 68%; }
.authenticated .premium-hero h1 { margin: 8px 0 10px; color: var(--premium-forest); font: 700 32px/1.26 var(--font-display); letter-spacing: -1px; overflow-wrap: anywhere; }
.authenticated .premium-hero p { margin: 0; font-size: 12px; line-height: 1.75; color: #52634d; }
.authenticated .premium-hero .premium-eyebrow { font-size: 9px; line-height: 1.55; letter-spacing: 1.6px; text-transform: uppercase; }
.authenticated .premium-hero__scene { position: absolute; inset: 0 0 0 auto; inline-size: 52%; block-size: 100%; object-fit: cover; opacity: .72; mask-image: linear-gradient(to right,transparent,#000 32%); }
.authenticated .premium-hero__mascot { position: absolute; inset: auto 4% -7px auto; block-size: 84%; inline-size: auto; max-inline-size: 32%; object-fit: contain; z-index: 1; }
.authenticated .premium-hero__botanical { position: absolute; inset: auto auto -75px -15px; inline-size: 58px; block-size: 190px; opacity: .27; }
/* Authored hero art treatment, selected by the hero primitive's `variant` slot.
   Geometry is transcribed from the Premium V2 reference `.premium-hero.family` rules. */
.authenticated .premium-hero[data-variant="family"] { min-block-size: 234px; background: var(--premium-hero-family); }
.authenticated .premium-hero[data-variant="family"] .premium-hero__mascot { inset: auto 8% -27px auto; block-size: 109%; max-inline-size: 40%; }
.authenticated .premium-hero[data-variant="family"] .premium-hero__scene { inline-size: 55%; opacity: .52; }
.authenticated .premium-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 14px; }
.authenticated .premium-metric { display: flex; align-items: center; gap: 13px; padding: 19px 17px; min-block-size: 100px; min-inline-size: 0; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 13px; }
.authenticated .premium-metric > div { min-inline-size: 0; }
.authenticated .premium-metric__value { font: 650 27px/1.15 var(--font-display); letter-spacing: -.9px; overflow-wrap: anywhere; }
.authenticated .premium-metric p { margin: 5px 0; font-size: 11px; }
.authenticated .premium-metric small { font-size: 10px; color: var(--c-muted); }
.authenticated .premium-metric__icon { display: grid; place-items: center; flex-shrink: 0; inline-size: 42px; block-size: 44px; border-radius: 12px; background: var(--c-surface-low); }
.authenticated .premium-metric__icon svg { inline-size: 22px; block-size: 22px; }
.authenticated .premium-panel { min-inline-size: 0; border: 1px solid var(--c-line); border-radius: 14px; background: var(--c-surface); box-shadow: 0 4px 18px #183a2605; overflow-wrap: anywhere; }
.authenticated .premium-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 18px 20px; min-block-size: 64px; border-block-end: 1px solid var(--c-line); }
.authenticated .premium-panel__head h2 { margin: 0; font: 700 17px/1.4 var(--font-display); letter-spacing: -.3px; }
.authenticated .premium-panel__body { padding: 20px; min-inline-size: 0; }
.authenticated .premium-panel__body p { margin-block: 0 12px; }

.authenticated :is(.premium-filter,.premium-child-selector,.premium-pagination) { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px; border: 1px solid var(--c-line); border-radius: 13px; background: var(--c-surface); }
.authenticated .premium-pagination { justify-content: space-between; }
.authenticated .premium-scroll { overflow: auto; max-inline-size: 100%; max-block-size: 360px; min-inline-size: 0; border: 1px solid var(--c-line); border-radius: 10px; overscroll-behavior: contain; }
.authenticated .premium-scroll table { inline-size: 100%; min-inline-size: 920px; border-collapse: collapse; }
.authenticated .premium-scroll :is(th,td) { text-align: start; padding: 13px 12px; border-block-end: 1px solid var(--c-line); font-size: 12px; }
.authenticated .premium-scroll th { background: var(--c-surface-low); font-size: 11px; }
.authenticated .premium-board { display: grid; grid-template-columns: repeat(5,220px); gap: 13px; padding: 12px; }
.authenticated .premium-board > section { background: var(--c-surface-low); border: 1px solid var(--c-line); border-radius: 12px; padding: 12px; }
.authenticated .premium-list { margin: 0; padding: 0; list-style: none; }
.authenticated .premium-list li { padding: 14px 0; border-block-end: 1px solid var(--c-line); }
.authenticated .premium-status { display: inline-flex; padding: 4px 9px; border-radius: 5px; font-size: 10px; line-height: 17px; color: #285738; background: #eaf1e6; }
.authenticated .premium-status[data-tone="review"] { color: #806012; background: #faf1d8; }
.authenticated .premium-status[data-tone="error"] { color: #913c37; background: #fbebe8; }
.authenticated .premium-state { padding: 36px 24px; border: 1px dashed var(--c-line); border-radius: 14px; background: var(--c-surface); text-align: center; overflow-wrap: anywhere; }
.authenticated .premium-state h2 { font: 700 19px/1.4 var(--font-display); }
.authenticated .premium-skeleton { block-size: 26px; max-inline-size: 520px; margin: 12px auto; border-radius: 8px; background: var(--c-surface-low); }
.authenticated .premium-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.authenticated .premium-field { display: grid; gap: 7px; min-inline-size: 0; }
.authenticated .premium-field label { font-size: 12px; font-weight: 600; }
.authenticated .premium-field :is(input,select,textarea) { inline-size: 100%; min-inline-size: 0; min-block-size: 44px; padding: 9px 11px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-surface); color: var(--c-ink); font: 400 12px/1.55 var(--premium-body-font); }
.authenticated .premium-field textarea { min-block-size: 104px; resize: vertical; }
.authenticated .premium-field input[type="checkbox"] { inline-size: 44px; block-size: 44px; accent-color: var(--brand-primary); }
.authenticated .premium-field [aria-invalid="true"] { border-color: #913c37; }
.authenticated .premium-field__error { margin: 0; color: #913c37; font-size: 12px; }
.authenticated .premium-dialog { padding: 0; inline-size: 580px; max-inline-size: calc(100% - 30px); max-block-size: 88dvh; overflow: auto; border: 1px solid var(--c-line); border-radius: 15px; background: var(--c-surface); color: var(--c-ink); box-shadow: 0 20px 70px #17331835; }
.authenticated .premium-dialog::backdrop { background: #132b21ad; backdrop-filter: blur(3px); }
.authenticated .premium-dialog[data-kind="drawer"] { inline-size: 420px; block-size: 100dvh; max-block-size: 100dvh; max-inline-size: 100%; margin: 0 0 0 auto; inset: 0; border-radius: 15px 0 0 15px; }
@media (max-width: 1199px) {
    .authenticated .premium-workbench { grid-template-columns: minmax(0,1fr); }
    .authenticated .premium-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .authenticated .premium-hero h1 { font-size: 27px; }
}
@media (min-width: 768px) and (max-width: 1023px) { .authenticated .premium-hero h1 { font-size: 29px; } }
@media (max-width: 767px) {
    .authenticated .premium-hero { min-block-size: 310px; align-items: start; border-radius: 12px; }
    .authenticated .premium-hero__copy { inline-size: 100%; max-inline-size: 100%; padding: 23px 20px; }
    .authenticated .content-workbench--documents .premium-hero { min-block-size: 310px; }
    .authenticated .content-workbench--documents .premium-hero__copy { padding-block-end: 155px; }
    .authenticated .content-workbench--documents .premium-hero__mascot { inset-inline-end: 0; inset-block-end: 0; }
    .authenticated .premium-hero .premium-eyebrow { display: block; font-size: 7px; letter-spacing: 1px; }
    .authenticated .premium-hero h1 { font-size: 25px; line-height: 1.26; letter-spacing: -.7px; }
    .authenticated .premium-hero__scene { inset: auto auto 0 0; inline-size: 52%; block-size: 155px; opacity: .32; mask-image: linear-gradient(to bottom,transparent,#000 30%); }
    .authenticated .premium-hero__mascot { inset: auto -8px -8px auto; inline-size: 155px; block-size: 74%; max-inline-size: 35%; opacity: .95; }
    /* Reference mobile family composition: the scene spans the full hero, the mascot sits on it. */
    .authenticated .premium-hero[data-variant="family"] { min-block-size: 310px; }
    .authenticated .premium-hero[data-variant="family"] .premium-hero__scene { inset: auto auto 0 0; inline-size: 100%; block-size: 155px; opacity: .78; }
    .authenticated .premium-hero[data-variant="family"] .premium-hero__mascot { inset: auto 10px 0 auto; inline-size: 175px; block-size: 160px; max-inline-size: 45%; }
    .authenticated .premium-metrics,.authenticated .premium-form-grid { grid-template-columns: minmax(0,1fr); }
    .authenticated .premium-panel__head,.authenticated .premium-panel__body { padding: 16px; }
    .authenticated .premium-field :is(input,select,textarea) { font-size: 16px; }
    .authenticated .premium-dialog,.authenticated .premium-dialog[data-kind="drawer"] { inline-size: 100%; max-inline-size: 100%; block-size: 100dvh; max-block-size: 100dvh; margin: 0; border-radius: 0; }
}
@media (forced-colors: active) {
    .authenticated :is(.premium-button,.premium-panel,.premium-dialog,.premium-status) { border: 1px solid CanvasText; box-shadow: none; }
}

/* ADM-063 to ADM-067 and SHR-006 — tenant identity administration */
.authenticated .settings-profile-editor {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s4);
}

.authenticated .settings-profile-editor > :is(.alert, .settings-permission-picker, .settings-users-filters__actions, .form-help) {
    grid-column: 1 / -1;
}

.authenticated .settings-profile-editor :is(input, select, textarea) {
    inline-size: 100%;
    min-inline-size: 0;
}

.authenticated .settings-profile-editor textarea {
    min-block-size: 7rem;
    resize: vertical;
}

.authenticated .settings-permission-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
    gap: .65rem;
    margin: 0;
    padding: var(--s4);
    border: 1px solid var(--c-line);
    border-radius: var(--ops-radius-control);
}

.authenticated .settings-permission-picker > label:not([hidden]) {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-inline-size: 0;
    padding: .55rem .65rem;
    border-radius: .5rem;
    background: var(--c-surface-low);
    overflow-wrap: anywhere;
}

.authenticated .settings-permission-picker input {
    inline-size: 1.15rem;
    block-size: 1.15rem;
    flex: 0 0 auto;
    accent-color: var(--settings-forest);
}

@media (max-width: 48rem) {
    .authenticated .settings-profile-editor {
        grid-template-columns: minmax(0, 1fr);
    }

    .authenticated .settings-profile-editor > * {
        grid-column: 1;
    }
}
.identity-workspace {
    --identity-nav-weight: 500;
    --identity-active-weight: 700;
    --identity-profile-help-basis: 20rem;
    --identity-security-action-width: 9rem;
    --identity-title-leading: 1.24;
    --identity-scene-position: 62% 55%;
    --identity-mascot-height: 84%;
    --identity-chevron-size: .375rem;
    --identity-chevron-offset: .125rem;
    --identity-profile-avatar-reserve: 5rem;
    --identity-mobile-art-height: 10rem;
    --identity-hero-body-width: 62%;
    --identity-hero-body-padding: 1.6875rem 1.875rem;
    --identity-hero-line-height: 1.75;
    --identity-eyebrow-tracking: .1rem;
    --identity-mascot-end: 4%;
    --identity-mascot-bottom: -.4375rem;
    --identity-botanical-start: -.9375rem;
    --identity-botanical-bottom: -4.6875rem;
    --identity-botanical-width: 3.625rem;
    --identity-botanical-height: 11.875rem;
    --identity-botanical-opacity: .27;
    --identity-nav-width: 12.5rem;
    --identity-nav-padding: 1.125rem .75rem;
    --identity-nav-item-padding: .625rem;
    --identity-filter-gap: .5625rem;
    --identity-filter-padding: .875rem 1rem;
    --identity-filter-select-width: 7.5rem;
    --identity-filter-search-width: 18rem;
    --identity-sort-width: 14rem;
    --identity-header-padding: .6875rem .8125rem;
    --identity-cell-padding: .8125rem;
    --identity-text-detail-gap: .1875rem;
    --identity-action-height: 2rem;
    --identity-action-padding: .375rem .625rem;
    --identity-action-radius: .5rem;
    --identity-chip-height: 1.5625rem;
    --identity-chip-padding: .25rem .5625rem;
    --identity-chip-gap: .3125rem;
    --identity-chip-dot: .25rem;
    --identity-record-avatar: 2.125rem;
    --identity-group-gap: 1.125rem;
    --identity-group-padding: 1.375rem;
    --identity-group-title-size: 1.1875rem;
    --identity-group-action-padding: .625rem .9375rem;
    --identity-profile-aside: 18.125rem;
    --identity-weight-medium: 600;
    --identity-weight-strong: 650;
    --identity-detail-line-height: 1.5;
    --identity-group-title-leading: 1.4;
    --identity-primary: var(--brand-primary);
    --identity-primary-hover: var(--brand-primary-strong);
    --identity-primary-ink: var(--brand-on-primary);
    --identity-table-heading-size: .625rem;
    --identity-chip-radius: .3125rem;
    --identity-field-height: 2.3125rem;
    --identity-hero-height: 12.875rem;
    --identity-art-width: 52%;
    --identity-mascot-width: 10rem;
    --identity-panel-radius: .875rem;
    --identity-gap: var(--s5);
    --identity-panel-padding: var(--s5);
    --identity-title-size: 1.6875rem;
    --identity-body-size: var(--type-label);
    --identity-label-size: var(--type-label);
    --identity-eyebrow-size: 0.5625rem;
    --identity-hero-paper: #f5f2e8;
    --identity-scene-opacity: .72;
    --identity-control-size: 0.6875rem;
    --identity-tab-height: 2rem;
    --identity-heading-size: 1.0625rem;
    --identity-icon-size: 1.25rem;
    --identity-card-icon-size: 2.75rem;
    --identity-border: 1px solid var(--c-line);
    --identity-panel-shadow: var(--shadow-subtle);
    font-family: var(--premium-body-font);
}
.authenticated .identity-workspace .button.primary { color: var(--identity-primary-ink); background: var(--identity-primary); border-color: var(--identity-primary); }
.authenticated .identity-workspace .button.primary:hover { background: var(--identity-primary-hover); border-color: var(--identity-primary-hover); }
.authenticated .identity-workspace .identity-hero,
.public-page .identity-workspace[data-page="annual-billing"] .identity-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-block-size: var(--identity-hero-height);
    overflow: hidden;
    border: var(--identity-border);
    border-radius: var(--identity-panel-radius);
    background: var(--identity-hero-paper);
    margin: 0;
}
.identity-hero__body { position: relative; z-index: 2; inline-size: var(--identity-hero-body-width); padding: var(--identity-hero-body-padding); }
.identity-hero__body .eyebrow { margin: 0 0 var(--s3); font-size: var(--identity-eyebrow-size); }
.authenticated .identity-hero h1 { margin: 0 0 var(--s3); font-size: var(--identity-title-size); line-height: var(--identity-title-leading); }
.identity-hero__body > p:last-child { margin: 0; color: var(--c-muted); font-size: var(--identity-body-size); line-height: var(--identity-hero-line-height); }
.identity-hero__scene { position: absolute; inset: 0 0 0 auto; inline-size: var(--identity-art-width); mask-image: linear-gradient(to right, transparent, black 30%); }
.identity-hero__scene img { inline-size: 100%; block-size: 100%; object-fit: cover; object-position: var(--identity-scene-position); opacity: var(--identity-scene-opacity); }
.identity-hero__mascot { position: absolute; inset: auto var(--identity-mascot-end) var(--identity-mascot-bottom) auto; inline-size: var(--identity-mascot-width); block-size: var(--identity-mascot-height); object-fit: contain; object-position: bottom; z-index: 1; }
.identity-hero__botanical { position: absolute; inset: auto auto var(--identity-botanical-bottom) var(--identity-botanical-start); inline-size: var(--identity-botanical-width); block-size: var(--identity-botanical-height); object-fit: contain; object-position: right top; opacity: var(--identity-botanical-opacity); }
.identity-settings-eyebrow { display: none; }
.authenticated .identity-workspace .settings-shell-nav { padding: var(--identity-nav-padding); border: var(--identity-border); border-radius: var(--identity-panel-radius); background: var(--c-surface); gap: var(--s3); }
.identity-workspace .identity-settings-eyebrow { display: block; margin: 0; padding: var(--s2); font-size: var(--identity-label-size); }
.authenticated .identity-workspace .settings-shell-nav__item { min-block-size: var(--target-min); padding: var(--identity-nav-item-padding); gap: var(--identity-nav-item-padding); font-size: var(--identity-control-size); font-weight: var(--identity-nav-weight); }
.authenticated .identity-workspace .settings-shell-nav__item.is-current { border-color: transparent; box-shadow: none; background: var(--premium-sage-soft); font-weight: var(--identity-active-weight); }
.authenticated .identity-workspace .settings-shell-main { gap: var(--identity-gap); overflow-x: clip; }
.authenticated .identity-workspace .settings-tabs { margin: 0; padding: var(--s1); border: var(--identity-border); border-radius: var(--r-field); background: var(--c-surface); }
.authenticated .identity-workspace .settings-tabs__list { margin: 0; gap: var(--s1); }
.authenticated .identity-workspace .settings-tab { border: 0; border-radius: var(--s1); padding: var(--s1) var(--s3); font-size: var(--identity-control-size); min-block-size: var(--identity-tab-height); }
.authenticated .identity-workspace .settings-tab.is-current { background: var(--brand-primary); color: var(--brand-on-primary); }
.identity-information { display: flex; align-items: start; gap: var(--s3); padding: var(--s4) var(--s5); border: var(--identity-border); border-radius: var(--r-field); background: var(--premium-sage-soft); font-size: var(--identity-body-size); }
.identity-information > [data-nav-icon] { inline-size: var(--s5); block-size: var(--s5); flex: 0 0 var(--s5); }
.identity-icon { inline-size: var(--identity-icon-size); block-size: var(--identity-icon-size); flex: 0 0 var(--identity-icon-size); }
.identity-information p { margin: var(--s1) 0 0; color: var(--c-muted); }
.authenticated .identity-workspace .identity-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3); border: 0; padding: 0; }
.authenticated .identity-workspace .identity-toolbar h2 { font-family: var(--premium-body-font); font-size: var(--identity-body-size); }
.identity-toolbar > a { flex: 0 1 auto; }
.authenticated .identity-workspace .identity-information + .identity-toolbar { margin-block-start: calc(-1 * var(--identity-gap)); }
.authenticated .identity-workspace .identity-toolbar .button { min-block-size: var(--target-min); padding: var(--s2) var(--s4); font-size: var(--identity-label-size); }
.authenticated .identity-workspace .settings-users-person { gap: var(--s1); }
.authenticated .identity-workspace .settings-users-identity strong { font-size: var(--identity-control-size); }
.authenticated .identity-workspace .settings-users-card,
.authenticated .identity-workspace .settings-panel,
.authenticated .identity-workspace .settings-rail-card { border-radius: var(--identity-panel-radius); box-shadow: var(--identity-panel-shadow); }
.authenticated .identity-workspace .settings-users-heading,
.authenticated .identity-workspace .settings-panel__header { padding: var(--s4) var(--identity-panel-padding); gap: var(--s3); }
.authenticated .identity-workspace .settings-users-heading h2 { font-family: var(--font-display); font-size: var(--identity-heading-size); }
.authenticated .identity-workspace .settings-users-filters { gap: var(--s3); padding: var(--s4); background: var(--c-surface); }
.authenticated .identity-workspace .settings-users-filters label { font-size: var(--identity-label-size); text-transform: none; }
.authenticated .identity-workspace .settings-users-table { font-size: var(--identity-control-size); }
.authenticated .identity-workspace .settings-users-table td { padding-inline: var(--s2); }
.identity-workspace :is(input,select,textarea,button,.button) { font-family: var(--premium-body-font); }
.identity-profile-form :is(input,select) { font-size: var(--identity-label-size); }
.authenticated .identity-workspace [data-identity-table="users"] th:nth-child(5),
.authenticated .identity-workspace [data-identity-table="users"] th:nth-child(5) > a,
.authenticated .identity-workspace [data-identity-table="profiles"] th:nth-child(3),
.authenticated .identity-workspace [data-identity-table="profiles"] th:nth-child(3) > a { white-space: nowrap; word-break: keep-all; overflow-wrap: normal; }
.identity-profile-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); padding: var(--identity-panel-padding); }
.identity-profile-form--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--s8); }
.identity-profile-form > .form-group { margin: 0; min-inline-size: 0; align-self: start; }
.identity-profile-form label { font-size: var(--identity-body-size); font-weight: var(--identity-weight-medium); text-transform: none; }
.identity-profile-form :is(input, select) { inline-size: 100%; min-inline-size: 0; }
.identity-profile-form > .alert { grid-column: 1 / -1; }
.identity-profile-form__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--s4); grid-column: 1 / -1; padding: var(--s5); border-block-start: var(--identity-border); background: var(--c-surface-low); }
.identity-profile-form__footer .form-help { flex: 1 1 var(--identity-profile-help-basis); margin: 0; font-size: var(--identity-label-size); }
.authenticated .identity-workspace .identity-account-columns { grid-template-columns: minmax(0, 1fr); }
.identity-account-editor { padding: 0; }
.identity-profile-summary { display: flex; align-items: center; gap: var(--s4); padding: var(--s6) var(--s8) 0; }
.identity-profile-summary h3, .identity-profile-summary p { margin: 0; }
.identity-profile-summary p { color: var(--c-muted); font-size: var(--identity-label-size); }
.identity-profile-summary > .button { flex: 0 0 auto; white-space: nowrap; word-break: keep-all; }
.identity-profile-summary img { border-radius: var(--r-pill); object-fit: cover; }
.identity-workspace .identity-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; gap: var(--s5); }
.identity-workspace .identity-group-card { align-content: start; padding: var(--s5); border: var(--identity-border); border-radius: var(--identity-panel-radius); background: var(--c-surface); }
.identity-workspace .identity-group-card h4 { font-family: var(--font-display); font-size: var(--identity-group-title-size); margin: 0; }
.identity-workspace .identity-group-card .settings-role__header { display: grid; gap: var(--s2); }
.identity-workspace .identity-group-card > :is(p, .c-chip) { margin: 0; font-size: var(--identity-label-size); }
.identity-group-icon { display: grid; place-items: center; inline-size: var(--identity-card-icon-size); block-size: var(--identity-card-icon-size); border: var(--identity-border); border-radius: var(--r-field); background: var(--premium-sage-soft); }
.identity-group-count { font-size: var(--identity-label-size); color: var(--c-muted); }
.identity-group-members { margin-block-start: 0; }
.identity-group-members > summary { inline-size: fit-content; cursor: pointer; }
.identity-group-create { flex: 0 1 auto; }
.identity-group-create > summary { cursor: pointer; margin-inline: var(--s2); }
.identity-group-create[open] { flex-basis: 100%; }
.identity-group-create form { margin-block-start: var(--s4); border: var(--identity-border); border-radius: var(--r-field); background: var(--c-surface); }
.authenticated .identity-workspace .identity-panel-heading { display: flex; align-items: center; justify-content: start; gap: var(--s3); min-block-size: var(--s12); padding: var(--s5); border-block-end: var(--identity-border); }
.authenticated .identity-workspace .identity-panel-heading :is(h2,h3) { margin: 0; font-family: var(--font-display); font-size: var(--identity-heading-size); }
.identity-workspace [data-account-security] { padding: 0; }
.identity-security-row { padding: var(--s4) var(--s5); border-block-end: var(--identity-border); }
.identity-security-row:last-child { border-block-end: 0; }
.identity-security-row > summary { display: flex; align-items: center; gap: var(--s3); list-style: none; cursor: pointer; }
.identity-security-row__copy { flex: 1; display: grid; gap: var(--s1); min-inline-size: 0; font-size: var(--identity-label-size); }
.identity-security-row__copy > span { color: var(--c-muted); }
.identity-security-row__action { padding: var(--s2) var(--s3); border: var(--identity-border); border-radius: var(--r-field); font-size: var(--identity-label-size); text-align: center; flex: 0 0 var(--identity-security-action-width); }
.identity-security-row[open] > :not(summary) { margin-block-start: var(--s4); }
.authenticated .identity-workspace .settings-users-card > .settings-users-heading { padding: var(--s3) var(--s4); min-block-size: 0; background: var(--c-surface-low); }
.authenticated .identity-workspace .settings-users-card > .settings-users-heading :is(h3,p) { margin: 0; font-family: var(--premium-body-font); font-size: var(--identity-control-size); }
.authenticated .identity-workspace .settings-users-card > .settings-users-heading .eyebrow { font-size: var(--identity-eyebrow-size); }
.authenticated .identity-workspace .settings-users-card > .settings-users-heading > div { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
.authenticated .identity-workspace .settings-users-card > .identity-panel-heading { padding: var(--s5); background: var(--c-surface); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) { display: grid; grid-template-columns: minmax(0,1.4fr) repeat(3,minmax(0,1fr)) minmax(var(--identity-sort-width),1.8fr); gap: var(--s2); padding: var(--s4); align-items: end; }
.authenticated .identity-workspace .settings-users-filters--directory { grid-template-columns: minmax(0,1fr) repeat(4,minmax(var(--identity-filter-select-width),1fr)); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) .form-group { margin: 0; grid-column: auto; min-inline-size: 0; }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) :is(label,input,select,.button) { font-size: var(--identity-control-size); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) :is(input,select,.button) { min-block-size: var(--identity-field-height); padding: var(--s2); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) .settings-users-filters__actions { grid-column: auto; gap: var(--s1); justify-content: end; }
.authenticated .identity-workspace .settings-users-filters__note { grid-column: 1 / -1; margin: 0; font-size: var(--identity-control-size); }
.authenticated .identity-workspace .settings-users-filters--directory .settings-users-filters__actions { grid-column: 1 / -1; }
.identity-workspace .identity-list-notes { padding: var(--s3) var(--s4); border-block-start: var(--identity-border); font-size: var(--identity-control-size); }
.identity-list-notes > p { margin: 0; }
.authenticated .identity-workspace [data-identity-table="users"] .settings-users-table__role,
.authenticated .identity-workspace [data-identity-table="users"] .settings-users-identity strong,
.authenticated .identity-workspace [data-identity-table="users"] td .identity-scope-code { word-break: normal; overflow-wrap: normal; }
.identity-activity-results { padding: 0; overflow: hidden; }
.identity-activity-results > .settings-access-activity__window { padding-inline: var(--s5); }
.authenticated .identity-workspace .identity-activity-results > .settings-panel { border: 0; box-shadow: none; padding: 0; }
.authenticated .identity-workspace .identity-activity-results .settings-panel__header { padding: var(--s2) var(--s4); }
.authenticated .identity-workspace .identity-activity-results .settings-panel__header :is(h3,.eyebrow) { font-family: var(--premium-body-font); font-size: var(--identity-control-size); margin: 0; }
.identity-account-context { border: var(--identity-border); border-radius: var(--identity-panel-radius); padding: var(--s4); }
.identity-account-context > summary { min-block-size: var(--target-min); cursor: pointer; }
.identity-account-context[open] > article { margin-block-start: var(--s4); }
.authenticated .identity-workspace .settings-users-filters--scope-test { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--s6); }
.identity-workspace .settings-users-filters--scope-test .settings-users-filters__actions { grid-column: 1 / -1; padding: var(--s5); background: var(--c-surface-low); border-block-start: var(--identity-border); justify-content: flex-end; }
.identity-workspace:lang(ko) :is(.identity-hero__body, .identity-information, .identity-profile-form__footer, .identity-toolbar) { word-break: keep-all; overflow-wrap: normal; }
.identity-workspace:lang(ko) .identity-group-card > .form-help { word-break: keep-all; overflow-wrap: normal; }
.identity-workspace:lang(ko) :is(.identity-security-row__copy,.identity-security-row__action,[data-testid="scope-test"] .muted,.identity-list-notes) { word-break: keep-all; overflow-wrap: normal; }
.authenticated .dashboard-shell.admin-management-surface.identity-workspace { padding: var(--s5) var(--s6) var(--s8); gap: var(--s5); }
body.authenticated .page-column > #main-content.identity-workspace { padding-block-start: var(--s5); }
.authenticated .identity-workspace .settings-shell-layout { grid-template-columns: var(--identity-nav-width) minmax(0,1fr); gap: var(--s5); }
.identity-hero__body .eyebrow { letter-spacing: var(--identity-eyebrow-tracking); }
.identity-sort-menu { position: relative; }
.authenticated .identity-workspace .settings-users-filters__search > .identity-search-submit { position: absolute; inset: 0 auto 0 0; inline-size: var(--s8); min-block-size: var(--identity-field-height); padding: var(--s2); border: 0; background: transparent; color: var(--c-muted); }
.identity-search-submit svg { inline-size: var(--s4); block-size: var(--s4); }
.identity-sort-menu > summary { display: grid; place-items: center; list-style: none; cursor: pointer; inline-size: var(--s8); min-block-size: var(--identity-field-height); border: var(--identity-border); border-radius: var(--r-field); }
.identity-sort-menu__body { position: absolute; z-index: 5; inset: 100% 0 auto auto; inline-size: var(--identity-sort-width); padding: var(--s4); background: var(--c-surface); border: var(--identity-border); border-radius: var(--r-field); box-shadow: var(--shadow-float); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) { display: flex; flex-wrap: nowrap; gap: var(--identity-filter-gap); padding: var(--identity-filter-padding); align-items: center; }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) > .form-group { flex: 0 0 var(--identity-filter-select-width); }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) > .settings-users-filters__search { flex: 1 1 var(--identity-filter-search-width); position: relative; }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) > .form-group > label { position: absolute; inline-size: 1px; block-size: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.authenticated .identity-workspace .settings-users-filters__search > input[type="search"] { padding-inline-start: var(--s8); background-image: none; }
.authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) :is(input,select,.button) { min-block-size: var(--identity-field-height); }
.authenticated .identity-workspace .settings-users-filters__actions { flex: 0 0 auto; }
.authenticated .identity-workspace .settings-users-filters__actions .button { white-space: nowrap; word-break: keep-all; }
.authenticated .identity-workspace .settings-users-table th { font-size: var(--identity-table-heading-size); font-weight: var(--identity-weight-strong); text-transform: none; letter-spacing: 0; padding: var(--identity-header-padding); color: var(--c-muted); }
.identity-workspace .settings-users-table th a[data-action="sort"]::after { content: ''; display: inline-block; inline-size: var(--identity-chevron-size); block-size: var(--identity-chevron-size); border-inline-end: 1px solid currentColor; border-block-end: 1px solid currentColor; transform: rotate(45deg); margin: 0 0 var(--identity-chevron-offset) var(--identity-chevron-size); }
.identity-workspace .settings-users-table th[aria-sort="descending"] a::after { transform: rotate(225deg); margin-block-end: 0; }
.authenticated .identity-workspace .settings-users-table td { vertical-align: middle; padding: var(--identity-cell-padding); }
.authenticated .identity-workspace [data-identity-table="users"] td { padding-inline: var(--s2); }
.authenticated .identity-workspace .settings-users-table td:first-child > :is(strong,.form-help) { display: block; }
.authenticated .identity-workspace .settings-users-table .form-help { font-size: var(--identity-eyebrow-size); line-height: var(--identity-detail-line-height); margin-block-start: var(--identity-text-detail-gap); }
.authenticated .identity-workspace .settings-users-table :is(.button,button) { min-block-size: var(--identity-action-height); padding: var(--identity-action-padding); font-size: var(--identity-control-size); border-radius: var(--identity-action-radius); }
.authenticated .identity-workspace .c-chip { border: 0; border-radius: var(--identity-chip-radius); min-block-size: var(--identity-chip-height); padding: var(--identity-chip-padding); gap: var(--identity-chip-gap); font-size: var(--identity-table-heading-size); font-weight: var(--identity-weight-strong); }
.identity-workspace .c-chip::before { content: ''; inline-size: var(--identity-chip-dot); block-size: var(--identity-chip-dot); border-radius: 50%; background: currentColor; flex: 0 0 var(--identity-chip-dot); }
.authenticated .identity-workspace :is(.settings-profile-editor,.settings-users-filters--grant) { padding: var(--s5); align-items: start; gap: var(--s4); }
.authenticated .identity-workspace :is(.settings-profile-editor,.settings-users-filters--grant) > .form-group { display: flex; flex-direction: column; align-self: start; gap: var(--s2); margin: 0; }
.authenticated .identity-workspace :is(.settings-profile-editor,.settings-users-filters--grant) > .form-group :is(input,select,textarea) { margin: 0; inline-size: 100%; }
.authenticated .identity-workspace :is(.settings-profile-editor,.settings-users-filters--grant) > .settings-users-filters__actions { grid-column: 1 / -1; padding: var(--s4); background: var(--c-surface-low); border-block-start: var(--identity-border); justify-content: end; }
.identity-profile-summary { flex-wrap: wrap; }
.identity-profile-summary > div { min-inline-size: 0; max-inline-size: calc(100% - var(--identity-profile-avatar-reserve)); }
.identity-profile-summary h3 { overflow-wrap: anywhere; }
.identity-record { display: flex; align-items: center; gap: var(--identity-filter-gap); min-inline-size: 0; }
.identity-record__copy { display: grid; gap: var(--identity-text-detail-gap); min-inline-size: 0; }
.identity-record__copy > strong { font-size: var(--identity-control-size); line-height: var(--identity-detail-line-height); font-weight: var(--identity-weight-medium); }
.identity-record .settings-users-avatar { inline-size: var(--identity-record-avatar); block-size: var(--identity-record-avatar); min-inline-size: var(--identity-record-avatar); flex: 0 0 var(--identity-record-avatar); }
.identity-workspace .identity-group-card { gap: var(--identity-group-gap); padding: var(--identity-group-padding); }
.identity-workspace .identity-group-card h4 { font-size: var(--identity-group-title-size); line-height: var(--identity-group-title-leading); }
.identity-workspace .identity-group-card .settings-role__header { gap: var(--identity-group-gap); }
.identity-workspace .identity-group-card .identity-group-count { margin: 0; line-height: var(--identity-detail-line-height); }
.identity-workspace .identity-group-card > .c-chip { inline-size: fit-content; white-space: normal; word-break: keep-all; }
.identity-workspace .identity-group-members > summary { min-block-size: var(--target-min); padding: var(--identity-group-action-padding); font-size: var(--identity-body-size); }
.identity-workspace .settings-shell-rail .identity-panel-heading { padding: 0; min-block-size: auto; border: 0; }
.identity-workspace[data-page="identity-profile"] > .settings-shell-columns { grid-template-columns: minmax(0,1fr) var(--identity-profile-aside); gap: var(--s5); }
@media (max-width: 1023px) {
    .identity-workspace { --identity-title-size: 1.8125rem; }
    .authenticated .identity-workspace .settings-shell-layout { grid-template-columns: minmax(0,1fr); }
    .identity-workspace[data-page="identity-profile"] > .settings-shell-columns { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 767px) {
    .authenticated .dashboard-shell.admin-management-surface.identity-workspace { padding: var(--s4); }
    body.authenticated .page-column > #main-content.identity-workspace { padding-block-start: var(--s4); }
    .authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) { flex-wrap: wrap; }
    .authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) > .settings-users-filters__search { flex-basis: 100%; }
    .authenticated .identity-workspace .settings-users-table :is(.button,button) { min-block-size: var(--target-min); }
}
@media (max-width: 1279px) {
    .authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .authenticated .identity-workspace .settings-users-filters--directory { flex-wrap: wrap; }
    .authenticated .identity-workspace .settings-users-filters--directory > .settings-users-filters__search { flex-basis: 100%; }
}
@media (max-width: 767px) {
    .identity-workspace { --identity-hero-height: 19.5rem; --identity-title-size: 1.5625rem; }
    .authenticated .identity-workspace .identity-hero,
    .public-page .identity-workspace[data-page="annual-billing"] .identity-hero { align-items: start; }
    .identity-hero__body { inline-size: 100%; padding: var(--s5) var(--s5) var(--identity-mobile-art-height); }
    .identity-hero__scene { inset: auto 0 0; inline-size: 100%; block-size: var(--identity-mobile-art-height); mask-image: linear-gradient(to bottom, transparent, black 35%); }
    .identity-hero__mascot { inset-inline-end: var(--s3); block-size: var(--identity-mobile-art-height); }
    .identity-workspace .identity-settings-eyebrow { display: none; }
    .identity-profile-form--columns,
    .identity-workspace .identity-group-grid,
    .authenticated .identity-workspace .settings-users-filters--scope-test { grid-template-columns: minmax(0, 1fr); padding: var(--s4); }
    .identity-profile-form__footer { padding: var(--s4); }
    .identity-profile-form__footer .button { inline-size: 100%; }
    .authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) { grid-template-columns: minmax(0,1fr); }
    .identity-security-row > summary { flex-wrap: wrap; }
    .identity-security-row__action { flex-basis: 100%; }
    .authenticated .identity-workspace :is(.settings-users-filters--directory,.settings-users-filters--identity,.settings-users-filters--profiles) :is(input,select,.button) { min-block-size: var(--target-min); }
}
@media print {
    body:has(.document-preview) :is(
        .skip-link,
        .role-rail,
        .rail-overlay,
        .topbar,
        .document-preview > .admin-page-heading,
        .document-preview > .premium-hero,
        .document-preview__toolbar,
        .document-preview__actions,
        .document-preview__rail,
        .document-preview__staff-note,
        .app-legal-footer,
        .mobile-nav
    ) {
        display: none;
    }

    body:has(.document-preview) :is(
        .app-shell,
        .page-column,
        .document-preview,
        .document-preview__layout,
        .document-preview__stage
    ) {
        display: block;
        inline-size: 100%;
        max-inline-size: none;
        margin: 0;
        padding: 0;
    }

    body:has(.document-preview) .document-preview__stage {
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    body:has(.document-preview) .document-preview__frame {
        inline-size: 100%;
        block-size: 100vh;
        box-shadow: none;
    }

    body:has(.document-preview) .document-preview__text {
        display: none;
    }
}

/* Task 51 contributor region: requirement-to-document evidence feed. */
.evidence-request-form {
    display: grid;
    grid-template-columns: minmax(10rem, .35fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--s2) var(--s3);
}

.evidence-request-form > label {
    align-self: center;
}

.evidence-request-form > :is(input, textarea) {
    min-inline-size: 0;
    inline-size: 100%;
}

.evidence-request-form > .field-error {
    grid-column: 2;
}

.evidence-request-form > .field-error:empty {
    display: none;
}

.evidence-request-form > button {
    grid-column: 2;
    justify-self: start;
    min-block-size: var(--target-min);
}

.evidence-bindings__list {
    display: grid;
    grid-auto-rows: minmax(min-content, auto);
    gap: var(--s3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.evidence-card {
    min-inline-size: 0;
    padding: var(--s4);
    border: 1px solid var(--c-line);
    border-radius: var(--r-card);
    background: var(--c-surface-low);
    overflow-wrap: anywhere;
}

.evidence-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--s2) var(--s4);
}

.evidence-card__facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
    gap: var(--s3);
    margin-block: var(--s3);
}

.evidence-card__facts div {
    min-inline-size: 0;
}

.evidence-card__facts dt {
    color: var(--c-muted);
    font-size: var(--type-label);
    font-weight: 700;
}

.evidence-card__facts dd {
    margin: var(--s1) 0 0;
    font-weight: 650;
}

@media (max-width: 56rem) {
    .evidence-request-form {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .evidence-request-form > .field-error {
        grid-column: 1;
    }

    .evidence-request-form > button {
        grid-column: 1;
        justify-self: stretch;
    }
}

@media (max-width: 30rem) {
    .evidence-card {
        padding: var(--s3);
    }

    .evidence-card .button {
        inline-size: 100%;
        min-block-size: var(--target-min);
    }
}
