:root {
    --amsms-navy: #1E3A5F;
    --amsms-sky: #4A90E2;
    --amsms-white: #F8FAFC;
    --amsms-gray: #E5E7EB;
    --amsms-green: #22C55E;
    --amsms-amber: #F59E0B;
    --amsms-red: #EF4444;
    --amsms-ink: #0f172a;
    --amsms-muted: #4b5563;
    --amsms-text-secondary: #334155;
    --amsms-surface: rgba(255, 255, 255, 0.84);
    --amsms-surface-strong: #ffffff;
    --amsms-border: rgba(30, 58, 95, 0.12);
    --amsms-shadow: 0 20px 60px rgba(15, 23, 42, 0.12);
    --amsms-radius-xl: 28px;
    --amsms-radius-lg: 20px;
    --amsms-radius-md: 14px;
    --amsms-radius-sm: 10px;
    --amsms-max-width: 1180px;
    --workspace-sidebar-width: clamp(256px, 19vw, 292px);
    --workspace-shell-gap: 16px;
    --workspace-shell-padding-x: 24px;
    --workspace-shell-padding-y: 24px;
    --workspace-sidebar-padding: 18px;
    --workspace-sidebar-gap: 14px;
    --workspace-nav-gap: 8px;
    --workspace-nav-item-padding: 11px 12px;
    --workspace-nav-icon-size: 18px;
    --workspace-topbar-padding: 14px 18px;
    --workspace-topbar-gap: 14px;
    --workspace-status-gap: 10px;
    --workspace-status-padding: 0 4px;
    --workspace-content-gap: 16px;
    --workspace-stack-gap: 16px;
    --workspace-panel-head-padding: 14px 18px;
    --workspace-panel-body-padding: 16px 18px;
    --workspace-card-radius: 22px;
    --workspace-metric-radius: 18px;
    --workspace-table-radius: 18px;
    --workspace-content-max-width: none;
    --workspace-section-gap: 12px;
    --workspace-sidebar-text: rgba(248, 250, 252, 0.96);
    --workspace-sidebar-subtext: rgba(248, 250, 252, 0.84);
}

* {
    box-sizing: border-box;
}

html {
    background:
        radial-gradient(circle at top left, rgba(74, 144, 226, 0.16), transparent 38%),
        radial-gradient(circle at top right, rgba(30, 58, 95, 0.14), transparent 36%),
        linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);
    color: var(--amsms-ink);
}

body {
    margin: 0;
    font-family: "Avenir Next", "Segoe UI", "Trebuchet MS", sans-serif;
    line-height: 1.5;
    color: var(--amsms-ink);
    min-height: 100vh;
    background:
        radial-gradient(circle at 15% 20%, rgba(74, 144, 226, 0.12), transparent 18%),
        radial-gradient(circle at 85% 5%, rgba(34, 197, 94, 0.08), transparent 14%),
        linear-gradient(180deg, #fbfdff 0%, #f4f8fc 100%);
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    display: block;
}

button,
input,
textarea,
select {
    font: inherit;
}

button,
[role="button"],
a.button,
.workspace-nav-link,
.portal-child-chip,
.portal-child-card,
.portal-exam-card,
.portal-option {
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
}

:focus-visible {
    outline: 3px solid rgba(74, 144, 226, 0.28);
    outline-offset: 2px;
}

.page-shell {
    width: min(var(--amsms-max-width), calc(100% - 32px));
    margin: 0 auto;
    padding: 24px 0 56px;
}

.page-shell.page-shell--workspace,
.workspace-host {
    width: 100%;
    max-width: none;
    margin: 0;
    min-height: 100vh;
    padding: var(--workspace-shell-padding-y) var(--workspace-shell-padding-x) 56px;
}

.page-shell.page-shell--workspace > .workspace-root,
.workspace-host > .workspace-root {
    width: 100%;
    min-height: calc(100vh - 80px);
}

.workspace-host {
    display: block;
}

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--amsms-ink);
}

p,
li {
    color: var(--amsms-text-secondary);
}

label {
    color: var(--amsms-ink);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--amsms-navy), var(--amsms-sky));
    box-shadow: 0 16px 28px rgba(30, 58, 95, 0.22);
}

.brand-copy {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.brand-copy small {
    color: var(--amsms-muted);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nav-links,
.action-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.95fr);
    gap: 28px;
    align-items: stretch;
    margin-bottom: 28px;
}

.hero-panel,
.surface-panel,
.card,
.form-card,
.message-card,
.status-card,
.pricing-card,
.hero-visual,
.hero-stat {
    background: var(--amsms-surface);
    backdrop-filter: blur(18px);
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-xl);
    box-shadow: var(--amsms-shadow);
}

.hero-panel {
    padding: 38px;
    overflow: hidden;
    position: relative;
}

.hero-panel::after {
    content: "";
    position: absolute;
    inset: auto -12% -42% auto;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(74, 144, 226, 0.18), transparent 70%);
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    color: var(--amsms-navy);
    background: rgba(74, 144, 226, 0.12);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.hero h1 {
    margin: 18px 0 16px;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: 0.98;
    letter-spacing: -0.04em;
}

.hero p {
    margin: 0;
    color: var(--amsms-text-secondary);
    font-size: 1.08rem;
    max-width: 60ch;
}

.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.button {
    appearance: none;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    padding: 13px 18px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, color 160ms ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-primary {
    background: linear-gradient(145deg, var(--amsms-navy), #274d80);
    color: white;
    box-shadow: 0 16px 32px rgba(30, 58, 95, 0.18);
}

.button-secondary {
    background: rgba(30, 58, 95, 0.06);
    color: var(--amsms-navy);
}

.button-static {
    cursor: default;
    pointer-events: none;
    opacity: 0.82;
}

.button-ghost {
    background: transparent;
    color: var(--amsms-navy);
    border: 1px solid var(--amsms-border);
}

.hero-visual {
    padding: 22px;
    display: grid;
    gap: 14px;
    align-content: start;
}

.hero-stat {
    padding: 18px;
    border-radius: var(--amsms-radius-lg);
    background: rgba(255, 255, 255, 0.72);
}

.hero-stat strong {
    display: block;
    font-size: 1.2rem;
    margin-bottom: 4px;
}

.hero-stat span {
    color: var(--amsms-text-secondary);
    font-size: 0.95rem;
}

.hero-stat--accent {
    background: linear-gradient(145deg, rgba(30, 58, 95, 0.08), rgba(74, 144, 226, 0.12));
}

.section {
    margin-top: 28px;
}

.section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.section-head h2,
.section-head h3 {
    margin: 0;
    font-size: clamp(1.5rem, 2vw, 2rem);
    letter-spacing: -0.02em;
}

.section-head p {
    margin: 0;
    color: var(--amsms-text-secondary);
    max-width: 60ch;
}

.pricing-grid,
.grid-2,
.grid-3 {
    display: grid;
    gap: 16px;
}

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

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

.pricing-card,
.card,
.form-card,
.status-card,
.message-card {
    padding: 22px;
}

.pricing-card {
    position: relative;
    overflow: hidden;
}

.pricing-card.is-selected {
    border: 1px solid rgba(74, 144, 226, 0.45);
    box-shadow: 0 20px 45px rgba(74, 144, 226, 0.14);
}

.pricing-card h3,
.card h3,
.status-card h3,
.message-card h3 {
    margin: 0 0 8px;
    font-size: 1.2rem;
}

.pricing-meta {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 16px 0 10px;
}

.pricing-amount {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.pricing-cycle {
    color: var(--amsms-muted);
    font-size: 0.95rem;
}

.pricing-description,
.helper,
.muted {
    color: var(--amsms-muted);
}

.pricing-card p,
.card p,
.form-card p,
.status-card p,
.message-card p,
.surface-panel p,
.workspace-panel p,
.workspace-empty p,
.workspace-state p {
    color: var(--amsms-text-secondary);
}

.pricing-list,
.checklist,
.meta-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}

.pricing-list li,
.checklist li,
.meta-list li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.pricing-list li::before,
.checklist li::before,
.meta-list li::before {
    content: "";
    width: 10px;
    height: 10px;
    margin-top: 6px;
    border-radius: 999px;
    background: var(--amsms-sky);
    flex: 0 0 auto;
}

.surface-panel {
    padding: 22px;
}

.form-layout {
    display: grid;
    gap: 16px;
}

.school-edit-form {
    gap: 18px;
}

.school-edit-section {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 20px;
    background: rgba(248, 250, 252, 0.84);
}

.school-edit-section-head {
    display: grid;
    gap: 4px;
}

.school-edit-section-head strong {
    color: var(--amsms-navy);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.school-edit-section-head p {
    margin: 0;
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.school-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.school-filter-form {
    display: grid;
    gap: 0;
}

.school-filters-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.school-filters-search {
    min-width: 0;
}

.school-edit-field--full {
    grid-column: 1 / -1;
}

.school-filter-form .field-label,
.school-edit-form .field-label {
    display: grid;
    gap: 8px;
    align-content: start;
}

.school-filter-form .field-label > span,
.school-edit-form .field-label > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 0.94rem;
    color: var(--amsms-ink);
}

.school-edit-form .field-required {
    color: var(--amsms-red);
    font-weight: 900;
}

.school-filter-form .field-label input,
.school-filter-form .field-label select,
.school-filter-form .field-label textarea,
.school-edit-form .field-label input,
.school-edit-form .field-label select,
.school-edit-form .field-label textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: var(--amsms-radius-md);
    background: rgba(255, 255, 255, 0.92);
    color: var(--amsms-ink);
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.school-filter-form .field-label input,
.school-filter-form .field-label select {
    appearance: auto;
}

.school-filter-form .field-label input::placeholder {
    color: rgba(71, 85, 105, 0.82);
}

.school-filter-form .field-label input:focus,
.school-filter-form .field-label select:focus,
.school-filter-form .field-label textarea:focus,
.school-edit-form .field-label input:focus,
.school-edit-form .field-label select:focus,
.school-edit-form .field-label textarea:focus {
    border-color: rgba(74, 144, 226, 0.6);
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.12);
}

.school-filters-head-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.school-filters-head-actions .muted {
    max-width: 34ch;
    text-align: right;
}

.field {
    display: grid;
    gap: 8px;
}

.field label {
    font-weight: 700;
    font-size: 0.95rem;
}

.field span,
.field small,
.field .field-hint {
    color: var(--amsms-text-secondary);
}

.field span {
    color: var(--amsms-ink);
}

.field input,
.field textarea,
.field select {
    width: 100%;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: rgba(255, 255, 255, 0.92);
    color: var(--amsms-ink);
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
    border-color: rgba(74, 144, 226, 0.6);
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.12);
}

.field input::placeholder,
.field textarea::placeholder,
.portal-inline-form input::placeholder,
.portal-cbt-form input::placeholder {
    color: rgba(71, 85, 105, 0.82);
}

.field input:disabled,
.field textarea:disabled,
.field select:disabled,
.portal-inline-form input:disabled,
.portal-cbt-form input:disabled {
    cursor: not-allowed;
    opacity: 0.84;
    background: rgba(229, 231, 235, 0.42);
    color: rgba(71, 85, 105, 0.9);
}

.field input[aria-invalid="true"],
.field textarea[aria-invalid="true"],
.field select[aria-invalid="true"] {
    border-color: rgba(239, 68, 68, 0.56);
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.1);
}

.field textarea,
.settings-form textarea {
    min-height: 120px;
    resize: vertical;
}

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

.field input[type="file"] {
    padding: 10px 12px;
}

.module-checkbox-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.module-checkbox {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 14px;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    padding: 16px 16px 15px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.84);
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background-color 160ms ease;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.module-checkbox:hover {
    border-color: rgba(74, 144, 226, 0.4);
    box-shadow: 0 14px 26px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}

.module-checkbox.is-selected,
.module-checkbox:has(input:checked) {
    border-color: rgba(74, 144, 226, 0.5);
    background: linear-gradient(180deg, rgba(74, 144, 226, 0.1), rgba(255, 255, 255, 0.96));
    box-shadow: 0 18px 32px rgba(30, 58, 95, 0.09);
}

.module-checkbox:focus-within {
    outline: 3px solid rgba(74, 144, 226, 0.14);
    outline-offset: 2px;
}

.module-checkbox input {
    margin: 2px 0 0;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    accent-color: var(--amsms-sky);
}

.module-checkbox-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.module-checkbox strong {
    font-size: 0.98rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.module-checkbox small {
    color: var(--amsms-text-secondary);
    font-size: 0.82rem;
    line-height: 1.35;
    word-break: break-word;
}

.sms-provider-catalog-note {
    display: grid;
    gap: 8px;
}

.sms-provider-field-editor {
    display: grid;
    gap: 16px;
}

.sms-provider-field-list {
    display: grid;
    gap: 14px;
}

.sms-provider-field-row {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.76);
}

.sms-provider-field-row-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.sms-provider-field-row-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.sms-provider-field-required {
    min-width: min(420px, 100%);
    flex: 1 1 320px;
}

.sms-provider-field-required .toggle-row {
    margin: 0;
}

.sms-provider-field-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex: 0 0 auto;
}

.workspace-panel-note {
    display: block;
    margin-top: 12px;
    color: var(--amsms-text-secondary);
    font-size: 0.88rem;
    line-height: 1.45;
}

.status-box,
.alert-box,
.empty-state,
.loading-state {
    border-radius: var(--amsms-radius-lg);
    padding: 16px 18px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(248, 250, 252, 0.92);
    color: var(--amsms-text-secondary);
}

.status-box {
    margin-top: 16px;
    color: var(--amsms-text-secondary);
}

.verification-code {
    display: inline-flex;
    align-items: center;
    margin-top: 10px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.08);
    border: 1px dashed rgba(30, 58, 95, 0.18);
    color: var(--amsms-navy);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    font-family: var(--amsms-mono, 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace);
}

.alert-box {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.alert-box.is-error {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.18);
}

.alert-box.is-success {
    background: rgba(34, 197, 94, 0.08);
    border-color: rgba(34, 197, 94, 0.18);
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    background: rgba(30, 58, 95, 0.1);
    color: #17324f;
}

.badge.success {
    background: rgba(34, 197, 94, 0.14);
    color: #14532d;
}

.badge.warning {
    background: rgba(245, 158, 11, 0.16);
    color: #92400e;
}

.badge.error {
    background: rgba(239, 68, 68, 0.14);
    color: #991b1b;
}

.skeleton-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.skeleton {
    min-height: 204px;
    border-radius: var(--amsms-radius-xl);
    background:
        linear-gradient(90deg, rgba(229, 231, 235, 0.55) 25%, rgba(248, 250, 252, 0.8) 37%, rgba(229, 231, 235, 0.55) 63%);
    background-size: 400% 100%;
    animation: shimmer 1.5s ease infinite;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

@keyframes shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: 0 0; }
}

.footer-note {
    margin-top: 22px;
    color: var(--amsms-text-secondary);
    font-size: 0.95rem;
}

.page-title {
    margin: 0 0 8px;
    font-size: clamp(2rem, 3vw, 2.7rem);
    letter-spacing: -0.03em;
}

.page-copy {
    margin: 0;
    color: var(--amsms-text-secondary);
    max-width: 62ch;
}

.inline-links {
    display: inline-flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.stack {
    display: grid;
    gap: 12px;
}

.status-label {
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.status-value {
    font-weight: 700;
}

.small-surface {
    margin-top: 16px;
    display: grid;
    gap: 12px;
}

.lockup {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lockup strong {
    font-size: 1rem;
}

.onboarding-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: start;
}

.onboarding-side,
.onboarding-main {
    min-height: 100%;
}

.stepper-list {
    display: grid;
    gap: 12px;
}

.stepper-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.7);
}

.stepper-item.is-current {
    border-color: rgba(74, 144, 226, 0.4);
    background: rgba(74, 144, 226, 0.08);
}

.stepper-item.is-complete {
    background: rgba(34, 197, 94, 0.08);
    border-color: rgba(34, 197, 94, 0.2);
}

.stepper-index {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: var(--amsms-navy);
    background: rgba(30, 58, 95, 0.08);
    flex: 0 0 auto;
}

.stepper-item.is-current .stepper-index {
    background: rgba(74, 144, 226, 0.18);
}

.stepper-item.is-complete .stepper-index {
    background: rgba(34, 197, 94, 0.16);
}

.stepper-copy {
    display: grid;
    gap: 2px;
}

.stepper-copy strong {
    font-size: 0.98rem;
}

.stepper-copy span {
    color: var(--amsms-muted);
    font-size: 0.9rem;
}

.summary-list {
    display: grid;
    gap: 10px;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.summary-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.summary-label {
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.summary-value {
    font-weight: 700;
    text-align: right;
}

.wizard-main {
    display: grid;
    gap: 18px;
}

.onboarding-overview {
    display: grid;
    gap: 12px;
}

.workspace-shell {
    display: grid;
    grid-template-columns: var(--workspace-sidebar-width) minmax(0, 1fr);
    gap: var(--workspace-shell-gap);
    align-items: start;
    min-height: calc(100vh - 48px);
}

.workspace-shell--compact-nav {
    align-items: start;
}

.workspace-shell--loading,
.workspace-shell--status {
    grid-template-columns: 1fr;
    min-height: auto;
}

.workspace-state,
.workspace-empty {
    max-width: 760px;
    margin: 28px auto 0;
    display: grid;
    gap: 12px;
    background: var(--amsms-surface);
    backdrop-filter: blur(18px);
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-xl);
    box-shadow: var(--amsms-shadow);
    padding: 28px;
}

.workspace-state--restricted {
    width: min(100%, 880px);
    max-width: 880px;
}

.workspace-state h1,
.workspace-empty h3 {
    margin: 0;
}

.workspace-state-hero {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.workspace-state-icon--restricted {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
}

.workspace-state-subcopy {
    margin-top: -2px;
}

.restricted-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 6px;
}

.school-restricted-page {
    min-height: calc(100vh - 120px);
    display: grid;
    place-items: center;
    padding: 24px 0 40px;
}

.school-restricted-page .workspace-state {
    margin: 0;
}

.workspace-sidebar {
    position: sticky;
    top: var(--workspace-shell-padding-y);
    display: flex;
    flex-direction: column;
    gap: var(--workspace-sidebar-gap);
    padding: var(--workspace-sidebar-padding);
    border-radius: var(--amsms-radius-xl);
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.98), rgba(30, 58, 95, 0.92));
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 20px 52px rgba(15, 23, 42, 0.24);
    min-width: 0;
    height: calc(100vh - (var(--workspace-shell-padding-y) * 2));
    overflow: hidden;
}

.workspace-sidebar--compact {
    align-self: start;
}

.workspace-brand {
    color: #ffffff;
}

.workspace-brand .brand-copy small {
    color: var(--workspace-sidebar-subtext);
}

.workspace-brand .brand-copy strong {
    color: #ffffff;
}

.workspace-sidebar-copy {
    display: grid;
    gap: 8px;
}

.workspace-sidebar-copy h1 {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.25;
    color: #ffffff;
}

.workspace-sidebar-copy p {
    margin: 0;
    color: var(--workspace-sidebar-subtext);
    font-size: 0.92rem;
    line-height: 1.45;
}

.workspace-nav {
    display: grid;
    gap: var(--workspace-nav-gap);
}

.workspace-nav--compact {
    gap: 6px;
}

.workspace-sidebar-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
    margin-right: -4px;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(248, 250, 252, 0.32) transparent;
}

.workspace-sidebar-body::-webkit-scrollbar {
    width: 8px;
}

.workspace-sidebar-body::-webkit-scrollbar-track {
    background: transparent;
}

.workspace-sidebar-body::-webkit-scrollbar-thumb {
    background: rgba(248, 250, 252, 0.24);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: content-box;
}

.workspace-sidebar-body::-webkit-scrollbar-thumb:hover {
    background: rgba(248, 250, 252, 0.34);
    border: 2px solid transparent;
    background-clip: content-box;
}

.workspace-nav-link {
    display: grid;
    grid-template-columns: var(--workspace-nav-icon-size) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: var(--workspace-nav-item-padding);
    border-radius: 14px;
    color: var(--workspace-sidebar-text);
    font-weight: 700;
    line-height: 1.25;
    transition: background-color 160ms ease, transform 160ms ease, color 160ms ease;
}

.workspace-nav-link:hover {
    transform: translateX(1px);
    background: rgba(255, 255, 255, 0.08);
}

.workspace-nav-link.is-active {
    background: linear-gradient(145deg, rgba(74, 144, 226, 0.24), rgba(74, 144, 226, 0.18));
    color: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.workspace-nav-icon {
    width: var(--workspace-nav-icon-size);
    height: var(--workspace-nav-icon-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 0.8rem;
    flex: 0 0 auto;
    color: #ffffff;
}

.workspace-nav-icon svg,
.workspace-state-icon svg,
.workspace-avatar-chevron svg,
.workspace-avatar-menu-icon svg,
.button svg,
a.button svg {
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
}

.workspace-nav-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.workspace-nav-copy strong {
    font-size: 0.94rem;
}

.workspace-nav-copy small {
    color: var(--workspace-sidebar-subtext);
    font-size: 0.82rem;
}

.workspace-sidebar-footer {
    display: grid;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.workspace-sidebar--compact .workspace-sidebar-footer {
    margin-top: 4px;
}

.workspace-user-card {
    display: grid;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.workspace-user-card strong {
    font-size: 0.98rem;
}

.workspace-user-card small {
    color: var(--workspace-sidebar-subtext);
}

.workspace-mobile-home {
    display: none;
}

.workspace-main {
    display: grid;
    gap: 16px;
    min-width: 0;
    align-self: start;
}

.workspace-topbar {
    position: sticky;
    top: var(--workspace-shell-padding-y);
    z-index: 20;
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--workspace-topbar-gap);
    padding: var(--workspace-topbar-padding);
    border-radius: var(--amsms-radius-xl);
    background: var(--amsms-surface);
    backdrop-filter: blur(18px);
    border: 1px solid var(--amsms-border);
    box-shadow: var(--amsms-shadow);
}

.workspace-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    overflow-x: auto;
    padding: 8px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(248, 250, 252, 0.82);
    backdrop-filter: blur(12px);
    scrollbar-gutter: stable;
}

.workspace-tab {
    appearance: none;
    border: 1px solid transparent;
    background: transparent;
    color: var(--amsms-text-secondary);
    border-radius: 14px;
    padding: 10px 14px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.1;
}

.workspace-tab:hover {
    background: rgba(74, 144, 226, 0.08);
    color: var(--amsms-navy);
}

.workspace-tab.is-active {
    background: linear-gradient(145deg, rgba(30, 58, 95, 0.95), rgba(74, 144, 226, 0.92));
    color: #f8fafc;
    border-color: rgba(30, 58, 95, 0.12);
    box-shadow: 0 12px 24px rgba(30, 58, 95, 0.16);
}

.workspace-tabs[role="tablist"] {
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.28) transparent;
}

.workspace-tabs::-webkit-scrollbar {
    height: 8px;
}

.workspace-tabs::-webkit-scrollbar-track {
    background: transparent;
}

.workspace-tabs::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.24);
    border-radius: 999px;
}

.workspace-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    padding: 20px;
}

.workspace-modal[hidden] {
    display: none;
}

.workspace-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.48);
    backdrop-filter: blur(4px);
}

.workspace-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 700px);
    max-height: min(88vh, 920px);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    background: var(--amsms-surface-strong);
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 26px;
    box-shadow: 0 32px 96px rgba(15, 23, 42, 0.28);
}

.workspace-modal-dialog--sm {
    width: min(100%, 480px);
}

.workspace-modal-dialog--md {
    width: min(100%, 700px);
}

.workspace-modal-dialog--lg {
    width: min(100%, 1040px);
}

.workspace-modal-head,
.workspace-modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px;
    border-color: rgba(30, 58, 95, 0.08);
}

.workspace-modal-head {
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.workspace-modal-head h3 {
    margin: 0;
    font-size: 1.16rem;
}

.workspace-modal-body {
    padding: clamp(16px, 2vw, 24px);
    overflow: auto;
    overscroll-behavior: contain;
    min-width: 0;
}

.workspace-suggestion-box {
    display: grid;
    gap: 14px;
    padding: 16px;
    margin-bottom: 18px;
    border: 1px solid rgba(74, 144, 226, 0.16);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(74, 144, 226, 0.06), rgba(255, 255, 255, 0.78));
}

.workspace-suggestion-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.workspace-suggestion-head strong {
    display: block;
    color: var(--amsms-navy);
    font-size: 0.98rem;
    font-weight: 900;
}

.workspace-suggestion-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
    line-height: 1.45;
}

.workspace-suggestion-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.workspace-suggestion-chip {
    appearance: none;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(255, 255, 255, 0.92);
    color: var(--amsms-navy);
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 800;
    font-size: 0.92rem;
    line-height: 1;
    cursor: pointer;
    transition: transform 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.workspace-suggestion-chip:hover,
.workspace-suggestion-chip:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(74, 144, 226, 0.38);
    box-shadow: 0 10px 20px rgba(30, 58, 95, 0.08);
    outline: none;
}

.workspace-suggestion-chip.is-selected {
    background: rgba(74, 144, 226, 0.12);
    border-color: rgba(74, 144, 226, 0.48);
    color: var(--amsms-blue);
}

.workspace-modal-footer {
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    justify-content: flex-end;
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 1));
    backdrop-filter: blur(10px);
}

.messaging-launch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 14px;
}

.messaging-launch-card {
    display: grid;
    gap: 8px;
    min-width: 0;
    min-height: 100%;
    padding: 18px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.72));
}

.messaging-launch-card strong {
    color: var(--amsms-navy);
    font-size: 0.98rem;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.messaging-launch-card p {
    margin: 0;
    color: var(--amsms-text-secondary);
    line-height: 1.55;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.messaging-launch-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
}

.messaging-modal-summary {
    margin-bottom: 16px;
}

.messaging-modal-section {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 18px;
    background: rgba(248, 250, 252, 0.7);
    min-width: 0;
}

.messaging-modal-section + .messaging-modal-section {
    margin-top: 16px;
}

.messaging-modal-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.messaging-modal-section-head strong {
    display: block;
    color: var(--amsms-navy);
    font-size: 0.98rem;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.messaging-modal-section-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
    max-width: 72ch;
}

.messaging-message-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.messaging-message-body {
    padding: 14px 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.9);
    color: var(--amsms-ink);
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-height: 340px;
    overflow: auto;
}

.messaging-delivery-error {
    color: var(--amsms-red);
    font-weight: 700;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.messaging-attempt-history {
    display: grid;
    gap: 12px;
}

.messaging-attempt-card {
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.76);
    overflow: hidden;
}

.messaging-attempt-card summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
    flex-wrap: wrap;
}

.messaging-attempt-card summary::-webkit-details-marker {
    display: none;
}

.messaging-attempt-card summary strong {
    color: var(--amsms-navy);
    font-weight: 900;
}

.messaging-attempt-card summary small {
    color: var(--amsms-text-secondary);
}

.messaging-attempt-card[open] summary {
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(74, 144, 226, 0.04);
}

.messaging-attempt-card-body {
    display: grid;
    gap: 10px;
    padding: 14px 16px 16px;
}

.messaging-attempt-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 14px;
    background: rgba(248, 250, 252, 0.8);
    min-width: 0;
}

.messaging-attempt-row strong {
    color: var(--amsms-ink);
}

.messaging-attempt-row p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.icon-button {
    appearance: none;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(255, 255, 255, 0.88);
    color: var(--amsms-navy);
    border-radius: 14px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    cursor: pointer;
    line-height: 1;
}

.icon-button:hover {
    background: rgba(74, 144, 226, 0.08);
    border-color: rgba(74, 144, 226, 0.2);
}

.icon-button--ghost {
    background: transparent;
}

.icon-button--danger {
    color: var(--amsms-red);
}

.icon-button.button-primary {
    background: linear-gradient(145deg, var(--amsms-navy), #274d80);
    color: #ffffff;
    border-color: rgba(30, 58, 95, 0.16);
    box-shadow: 0 12px 24px rgba(30, 58, 95, 0.16);
}

.icon-button.button-secondary {
    background: rgba(30, 58, 95, 0.06);
    color: var(--amsms-navy);
}

.icon-button.button-ghost {
    background: transparent;
    color: var(--amsms-navy);
}

.icon-button.button-primary:hover,
.icon-button.button-secondary:hover,
.icon-button.button-ghost:hover {
    transform: translateY(-1px);
}

.icon-button-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.icon-button-text {
    font-size: 0.92rem;
}

.table-actions .icon-button {
    padding: 8px 10px;
    border-radius: 12px;
}

.table-actions .icon-button-text {
    font-size: 0.84rem;
}

.table-actions .icon-button-icon {
    width: 16px;
    height: 16px;
}

.workspace-topbar-copy {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.workspace-topbar-copy h2 {
    margin: 0;
    font-size: clamp(1.3rem, 1.85vw, 1.9rem);
    letter-spacing: -0.025em;
    line-height: 1.12;
}

.workspace-topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: end;
}

.workspace-avatar-shell {
    position: relative;
    display: inline-flex;
}

.workspace-avatar-button {
    appearance: none;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(248, 250, 252, 0.98);
    color: var(--amsms-ink);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px 8px 8px;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.08);
}

.workspace-avatar-button:hover {
    transform: translateY(-1px);
}

.workspace-avatar-button:focus-visible {
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.16);
}

.workspace-avatar-initials {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, var(--amsms-navy), var(--amsms-sky));
    color: #ffffff;
    font-weight: 800;
    letter-spacing: 0.03em;
    flex: 0 0 auto;
}

.workspace-avatar-copy {
    display: grid;
    gap: 1px;
    text-align: left;
    min-width: 0;
}

.workspace-avatar-copy strong {
    font-size: 0.92rem;
    line-height: 1.15;
}

.workspace-avatar-copy small {
    color: var(--amsms-text-secondary);
    font-size: 0.78rem;
    line-height: 1.1;
}

.workspace-avatar-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--amsms-text-secondary);
    margin-left: 2px;
}

.workspace-avatar-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: min(280px, 80vw);
    display: grid;
    gap: 8px;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 44px rgba(15, 23, 42, 0.16);
    z-index: 30;
}

.workspace-avatar-shell.is-open .workspace-avatar-menu {
    display: grid;
}

.workspace-avatar-menu[hidden] {
    display: none;
}

.workspace-avatar-menu-link {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--amsms-ink);
    width: 100%;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px 12px;
    border-radius: 14px;
    text-align: left;
}

.workspace-avatar-menu-link:hover,
.workspace-avatar-menu-link:focus-visible {
    background: rgba(74, 144, 226, 0.08);
}

.workspace-avatar-menu-link--button {
    cursor: pointer;
}

.workspace-avatar-menu-icon {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--amsms-navy);
}

.workspace-avatar-menu-link strong,
.workspace-avatar-menu-link small {
    display: block;
}

.workspace-avatar-menu-link strong {
    font-size: 0.94rem;
}

.workspace-avatar-menu-link small {
    color: var(--amsms-text-secondary);
    font-size: 0.8rem;
}

.workspace-state-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(74, 144, 226, 0.12);
    color: var(--amsms-navy);
}

.workspace-status {
    display: flex;
    align-items: center;
    gap: var(--workspace-status-gap);
    flex-wrap: wrap;
    padding: var(--workspace-status-padding);
    min-height: 24px;
    margin-top: -6px;
}

.workspace-page-meta-item {
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.workspace-content {
    display: grid;
    gap: var(--workspace-content-gap);
    max-width: var(--workspace-content-max-width);
    width: 100%;
}

.workspace-content > .workspace-root {
    width: 100%;
    min-width: 0;
}

.workspace-panel {
    background: var(--amsms-surface);
    backdrop-filter: blur(18px);
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-xl);
    box-shadow: var(--amsms-shadow);
    overflow: hidden;
}

.workspace-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: var(--workspace-panel-head-padding);
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.workspace-panel-head-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.workspace-panel-body {
    padding: var(--workspace-panel-body-padding);
}

.workspace-panel-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.76);
}

.workspace-stack {
    display: grid;
    gap: var(--workspace-stack-gap);
}

.portal-child-selector {
    margin-bottom: 18px;
}

.portal-child-chip,
.portal-exam-card,
.portal-child-card {
    text-align: left;
    min-width: 0;
}

.portal-child-chip,
.portal-exam-card,
.portal-child-card,
.portal-option {
    appearance: none;
    cursor: pointer;
}

.portal-child-chip.is-active,
.portal-child-card.is-active,
.portal-exam-card.is-active {
    background: rgba(74, 144, 226, 0.14);
    border-color: rgba(74, 144, 226, 0.45);
}

.portal-child-grid,
.portal-exam-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.portal-inbox-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.portal-inbox-card {
    display: grid;
    gap: 12px;
    align-content: start;
    min-width: 0;
    cursor: pointer;
}

.portal-inbox-card.is-unread {
    border-color: rgba(74, 144, 226, 0.32);
    background: linear-gradient(180deg, rgba(74, 144, 226, 0.05), rgba(255, 255, 255, 0.88));
}

.portal-inbox-card.is-archived {
    opacity: 0.82;
}

.portal-inbox-card:hover {
    transform: translateY(-1px);
}

.portal-inbox-card:focus-within {
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.14);
}

.portal-inbox-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.portal-inbox-card-head strong {
    display: block;
    font-size: 1.02rem;
}

.portal-inbox-card-head p {
    margin: 4px 0 0;
    color: var(--amsms-muted);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.portal-inbox-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.portal-inbox-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.portal-inline-form {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) auto;
    margin-top: 14px;
    align-items: end;
}

.portal-inline-form label {
    display: grid;
    gap: 6px;
    color: var(--amsms-ink);
    font-weight: 600;
}

.portal-inline-form input,
.portal-cbt-form input,
.settings-form input,
.settings-form select,
.settings-form textarea,
.field input,
.field textarea,
.field select {
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-md);
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.9);
    color: var(--amsms-ink);
}

.portal-question {
    margin: 0 0 18px;
    padding: 18px;
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-lg);
    background: rgba(255, 255, 255, 0.72);
}

.portal-question legend {
    font-weight: 700;
    margin-bottom: 12px;
}

.portal-option-list {
    display: grid;
    gap: 10px;
}

.portal-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--amsms-border);
    border-radius: var(--amsms-radius-md);
    background: rgba(255, 255, 255, 0.8);
}

.portal-child-card,
.portal-exam-card {
    display: grid;
    gap: 8px;
    align-content: start;
}

.portal-child-card strong,
.portal-exam-card strong {
    font-size: 1.02rem;
}

.portal-child-card p,
.portal-exam-card p {
    margin: 0;
    color: var(--amsms-muted);
}

.portal-child-card:hover,
.portal-exam-card:hover,
.portal-child-chip:hover,
.portal-option:hover,
.workspace-nav-link:hover,
.button:hover {
    transform: translateY(-1px);
}

.portal-child-card:focus-visible,
.portal-exam-card:focus-visible,
.portal-child-chip:focus-visible,
.portal-option:focus-visible,
.workspace-nav-link:focus-visible,
.button:focus-visible {
    box-shadow: 0 0 0 4px rgba(74, 144, 226, 0.14);
}

.settings-shell {
    display: grid;
    gap: 16px;
}

.settings-page {
    gap: 16px;
}

.settings-form {
    display: grid;
    gap: 18px;
}

.settings-grid {
    display: grid;
    gap: 16px;
}

.settings-grid--profile,
.settings-grid--branding,
.settings-grid--academics,
.settings-grid--finance,
.settings-grid--messaging,
.settings-grid--results,
.settings-grid--cbt {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.settings-grid--messaging-gateway {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.settings-profile-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    padding: 20px;
}

.settings-profile-header__main,
.settings-profile-header__status {
    display: grid;
    gap: 10px;
}

.settings-profile-header__main h3 {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
}

.settings-profile-header__main p,
.settings-profile-header__status p {
    margin: 0;
    color: var(--amsms-text-secondary);
}

.settings-profile-kicker {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--amsms-primary);
}

.settings-profile-meta {
    margin-top: 4px;
}

.settings-profile-header__status {
    min-width: 220px;
    max-width: 280px;
    padding: 16px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.settings-profile-sections {
    display: grid;
    gap: 16px;
}

.settings-profile-section {
    display: grid;
    gap: 16px;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.74);
}

.settings-profile-section-head h4 {
    margin: 0;
    font-size: 1.02rem;
}

.settings-profile-section-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.settings-profile-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
}

.settings-profile-grid .field {
    min-width: 0;
}

.settings-field--span-12 {
    grid-column: span 12;
}

.settings-field--span-6 {
    grid-column: span 6;
}

.settings-field--span-4 {
    grid-column: span 4;
}

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

.settings-provider-selector,
.settings-provider-options,
.settings-provider-fields {
    grid-column: 1 / -1;
}

.field-required {
    color: var(--amsms-danger);
    font-weight: 800;
}

.settings-branding-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.settings-branding-grid--colors {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-branding-grid--report {
    grid-template-columns: 1fr;
}

.settings-branding-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.settings-branding-section {
    display: grid;
    gap: 16px;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.76);
}

.settings-branding-section-head {
    display: grid;
    gap: 4px;
}

.settings-branding-section-head h4 {
    margin: 0;
    font-size: 1.02rem;
}

.settings-branding-section-head p {
    margin: 0;
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.settings-branding-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 20px;
}

.settings-branding-intro-copy {
    display: grid;
    gap: 10px;
}

.settings-branding-intro-copy h3 {
    margin: 0;
    font-size: clamp(1.4rem, 2vw, 1.9rem);
    line-height: 1.15;
}

.settings-branding-intro-copy p {
    margin: 0;
    color: var(--amsms-text-secondary);
}

.settings-branding-intro-preview {
    min-width: min(100%, 360px);
}

.branding-preview-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.82);
}

.branding-preview-logo {
    display: grid;
    place-items: center;
    min-height: 88px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(248, 250, 252, 0.88);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.branding-preview-logo img {
    width: 100%;
    max-width: 140px;
    max-height: 72px;
    object-fit: contain;
}

.branding-preview-copy {
    display: grid;
    gap: 4px;
}

.branding-preview-copy strong {
    color: var(--amsms-navy);
    font-size: 1rem;
}

.branding-preview-copy span,
.branding-preview-copy small {
    color: var(--amsms-text-secondary);
}

.branding-preview-swatches {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.branding-preview-swatch {
    width: 72px;
    height: 28px;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.branding-color-field {
    min-width: 0;
}

.branding-color-control {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 52px;
    gap: 10px;
    align-items: center;
}

.branding-color-picker {
    width: 56px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: 14px;
    background: white;
    cursor: pointer;
}

.branding-color-input {
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
}

.branding-color-swatch {
    height: 48px;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.12);
}

.branding-asset-card {
    display: grid;
    gap: 14px;
}

.branding-asset-preview {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(248, 250, 252, 0.84);
}

.branding-asset-preview--favicon .branding-asset-visual img {
    max-width: 72px;
    max-height: 72px;
}

.branding-asset-preview--marked-for-removal {
    opacity: 0.92;
    background: rgba(255, 251, 235, 0.82);
}

.branding-asset-visual {
    display: grid;
    place-items: center;
    min-height: 104px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.84);
    overflow: hidden;
}

.branding-asset-visual img {
    display: block;
    max-width: 180px;
    max-height: 96px;
    object-fit: contain;
}

.branding-asset-placeholder {
    display: grid;
    gap: 6px;
    justify-items: start;
    width: 100%;
    padding: 18px;
    color: var(--amsms-text-secondary);
}

.branding-asset-placeholder strong {
    color: var(--amsms-navy);
    font-size: 0.98rem;
}

.branding-asset-placeholder p {
    margin: 0;
}

.branding-asset-placeholder--small {
    padding: 14px;
}

.branding-asset-meta {
    display: grid;
    gap: 4px;
}

.branding-asset-meta strong {
    color: var(--amsms-navy);
}

.branding-asset-meta p {
    margin: 0;
    color: var(--amsms-text-secondary);
}

.branding-upload-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.branding-upload-button {
    position: relative;
    overflow: hidden;
}

.branding-file-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.branding-upload-name {
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.branding-asset-actions {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.toggle-row--disabled {
    opacity: 0.55;
}

.toggle-row--disabled input {
    cursor: not-allowed;
}

.branding-asset-actions .form-note {
    margin-top: 0;
}

.settings-branding-slot {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.72);
}

.settings-branding-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.settings-branding-head h4 {
    margin: 0;
    font-size: 1.08rem;
}

.settings-branding-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
}

.settings-branding-current {
    min-height: 112px;
}

.settings-branding-current .workspace-empty,
.settings-branding-current .asset-preview {
    height: 100%;
}

.asset-preview {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.82);
}

.asset-preview img {
    width: 72px;
    height: 72px;
    border-radius: 16px;
    object-fit: cover;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: white;
}

.asset-preview strong,
.asset-preview small {
    display: block;
}

.asset-preview small {
    color: var(--amsms-text-secondary);
}

.settings-toggle-stack {
    display: grid;
    gap: 10px;
}

.settings-stack {
    display: grid;
    gap: 16px;
}

.toggle-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.76);
    cursor: pointer;
}

.toggle-row--compact {
    padding: 10px 12px;
}

.toggle-row input {
    margin-top: 2px;
}

.toggle-row strong {
    display: block;
}

.toggle-row small {
    display: block;
    color: var(--amsms-text-secondary);
}

.settings-checklist {
    display: grid;
    gap: 8px;
}

.checkbox-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.72);
}

.settings-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.settings-actions--split {
    justify-content: space-between;
    align-items: center;
    padding-top: 8px;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.settings-actions--split .button {
    width: auto;
}

.settings-callout {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.76);
}

.settings-callout strong {
    display: block;
    font-size: 1rem;
}

.settings-callout p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
}

.settings-callout--wallet {
    align-content: start;
}

.settings-callout--billing {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.settings-callout--mode {
    grid-column: 1 / -1;
}

.settings-callout--info {
    border-color: rgba(74, 144, 226, 0.22);
    background: rgba(239, 246, 255, 0.92);
}

.settings-callout--error {
    border-color: rgba(239, 68, 68, 0.22);
    background: rgba(254, 242, 242, 0.92);
}

.settings-callout--warning {
    border-color: rgba(245, 158, 11, 0.22);
    background: rgba(255, 251, 235, 0.95);
}

.workspace-feedback {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(255, 255, 255, 0.84);
}

.workspace-feedback p {
    margin: 0;
    color: var(--amsms-text-secondary);
}

.workspace-feedback--success {
    border-color: rgba(34, 197, 94, 0.2);
}

.workspace-feedback--error {
    border-color: rgba(239, 68, 68, 0.2);
}

.workspace-feedback--warning {
    border-color: rgba(245, 158, 11, 0.2);
}

.timetable-page {
    display: grid;
    gap: 18px;
}

.timetable-page .workspace-panel-body {
    display: grid;
    gap: 18px;
}

.timetable-page .settings-grid--timetable {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.timetable-page .settings-grid--timetable .field,
.timetable-page .settings-grid--timetable .toggle-row {
    min-width: 0;
}

.timetable-day-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.timetable-toggle-row {
    min-height: 100%;
}

.timetable-slot {
    display: grid;
    gap: 6px;
    min-height: 118px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.84);
}

.timetable-slot--lesson {
    align-content: start;
}

.timetable-slot--blocked {
    align-content: center;
    text-align: center;
    background: rgba(248, 250, 252, 0.82);
}

.timetable-slot--missing {
    justify-content: center;
    align-items: center;
}

.timetable-slot strong {
    color: var(--amsms-navy);
    font-size: 0.96rem;
    font-weight: 900;
}

.timetable-slot span,
.timetable-slot small {
    color: var(--amsms-text-secondary);
    line-height: 1.35;
}

.timetable-slot-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
}

.timetable-page .workspace-panel-card {
    overflow: hidden;
}

.timetable-page .settings-callout {
    gap: 8px;
}

.timetable-page .settings-callout p {
    margin: 0;
}

.timetable-page .table-shell {
    overflow: auto;
}

.timetable-day-label {
    display: grid;
    gap: 2px;
}

.timetable-day-label strong {
    font-size: 0.96rem;
}

.timetable-page .data-table td {
    vertical-align: top;
}

.school-created-date {
    display: inline-block;
    white-space: nowrap;
    min-width: 5ch;
}

.school-profile-page {
    display: grid;
    gap: 16px;
}

.school-profile-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: var(--workspace-panel-body-padding);
}

.school-profile-hero-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.school-profile-hero h2 {
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.school-profile-slug {
    margin: 0;
    color: var(--amsms-text-secondary);
    font-size: 0.98rem;
    font-weight: 700;
    word-break: break-word;
}

.school-profile-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.school-profile-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

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

.school-profile-card-body {
    display: grid;
    gap: 0;
    padding: var(--workspace-panel-body-padding);
}

.school-profile-row {
    display: grid;
    grid-template-columns: minmax(140px, 0.95fr) minmax(0, 1.35fr);
    gap: 16px;
    padding: 11px 0;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.school-profile-row:first-child {
    border-top: 0;
    padding-top: 0;
}

.school-profile-row-label {
    color: var(--amsms-text-secondary);
    font-weight: 700;
}

.school-profile-row-value {
    color: var(--amsms-ink);
    word-break: break-word;
}

.school-profile-row-value .muted {
    color: var(--amsms-text-secondary);
}

.school-profile-row-value .badge {
    display: inline-flex;
    vertical-align: middle;
}

.school-profile-usage .workspace-panel-body {
    padding-top: 8px;
}

.school-profile-usage .metric-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.school-profile-usage .metric-card {
    min-height: 100px;
}

.school-profile-usage .metric-value {
    font-size: 1.56rem;
}

.school-profile-timeline {
    display: grid;
    gap: 0;
}

.chip-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.chip-row--wrap {
    align-items: flex-start;
}

.settings-method-title {
    display: grid;
    gap: 2px;
}

.settings-method-title small {
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
    word-break: break-word;
}

.settings-method-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    color: var(--amsms-text-secondary);
}

.settings-method-meta span {
    display: inline-flex;
    align-items: center;
}

.chip {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(74, 144, 226, 0.12);
    border: 1px solid rgba(74, 144, 226, 0.18);
    color: var(--amsms-navy);
    font-weight: 700;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.table-actions .button {
    padding: 9px 12px;
    font-size: 0.88rem;
}

.button-small {
    padding: 8px 12px;
    font-size: 0.86rem;
}

.form-note {
    color: var(--amsms-text-secondary);
    font-size: 0.92rem;
    margin-top: -2px;
}

.form-error {
    margin: 0;
    color: var(--amsms-red);
    font-size: 0.9rem;
    font-weight: 700;
}

.platform-gateway-intro-panel {
    overflow: hidden;
}

.platform-gateway-intro {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}

.platform-gateway-intro-icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(74, 144, 226, 0.12);
    color: var(--amsms-navy);
    flex: 0 0 auto;
}

.platform-gateway-intro-icon-svg {
    width: 24px;
    height: 24px;
}

.platform-gateway-intro-copy {
    flex: 1 1 320px;
    display: grid;
    gap: 12px;
    min-width: 0;
}

.platform-gateway-intro-copy-text {
    margin: 0;
    max-width: 76ch;
    color: var(--amsms-text-secondary);
}

.gateway-status-badges {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.platform-gateway-empty-state ol {
    margin: 10px 0 0 20px;
    padding: 0;
    color: var(--amsms-text-secondary);
}

.platform-gateway-form {
    display: grid;
    gap: 18px;
}

.platform-gateway-form-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-gateway-section {
    display: grid;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.76);
    min-width: 0;
}

.platform-gateway-section--wide {
    grid-column: 1 / -1;
}

.platform-gateway-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.platform-gateway-section-head strong {
    display: block;
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.platform-gateway-section-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
    max-width: 72ch;
}

.platform-gateway-section-body {
    display: grid;
    gap: 14px;
}

.platform-gateway-grid-2 {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-gateway-grid-3 {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.platform-gateway-secret-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-gateway-secret-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(248, 250, 252, 0.82);
    min-width: 0;
}

.platform-gateway-secret-card .form-note {
    margin-top: 0;
}

.platform-gateway-policy-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.platform-gateway-policy-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(248, 250, 252, 0.82);
    min-width: 0;
}

.platform-gateway-policy-card .toggle-row {
    min-height: 100%;
}

.platform-gateway-summary-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.platform-gateway-summary-item {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(248, 250, 252, 0.84);
}

.billing-preview-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
    margin-top: 16px;
}

.billing-preview-card {
    display: grid;
    gap: 12px;
    width: 100%;
}

.billing-preview-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
    font-size: 0.9rem;
}

.billing-preview-table .data-table {
    min-width: 620px;
}

.billing-preview-table .data-table th:last-child,
.billing-preview-table .data-table td:last-child {
    white-space: nowrap;
}

.billing-filters-form {
    display: grid;
    gap: 14px;
    margin-bottom: 16px;
}

.billing-filters-grid {
    display: grid;
    gap: 14px 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.billing-filters-search {
    grid-column: 1 / -1;
}

.billing-filters-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.billing-filters-note {
    max-width: 42ch;
}

.billing-filters-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.billing-filters-buttons .button {
    min-width: 0;
}

.billing-empty-row td {
    background: rgba(248, 250, 252, 0.58);
}

.billing-empty-cell,
.billing-empty-inline {
    display: grid;
    gap: 4px;
    padding: 18px 16px;
    color: var(--amsms-text-secondary);
}

.billing-empty-cell strong,
.billing-empty-inline strong {
    color: var(--amsms-ink);
    font-size: 0.98rem;
}

.platform-gateway-summary-item span {
    color: var(--amsms-text-secondary);
    font-size: 0.88rem;
}

.platform-gateway-summary-item strong {
    color: var(--amsms-ink);
    font-size: 1rem;
}

.platform-gateway-validation {
    margin-bottom: 2px;
}

.platform-gateway-validation-list {
    margin: 0;
    padding-left: 20px;
    display: grid;
    gap: 6px;
}

.platform-gateway-actions {
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    padding-top: 16px;
}

.platform-gateway-actions .button {
    min-width: 180px;
}

.workspace-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--workspace-section-gap);
    margin-bottom: 12px;
}

.workspace-section-head h3 {
    margin: 0;
    font-size: 1.24rem;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.workspace-section-head p {
    margin: 4px 0 0;
    color: var(--amsms-text-secondary);
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.metric-card {
    padding: 16px;
    border-radius: var(--workspace-metric-radius);
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(255, 255, 255, 0.84);
    display: grid;
    gap: 8px;
    min-height: 112px;
}

.metric-label {
    color: var(--amsms-text-secondary);
    font-size: 0.86rem;
    font-weight: 600;
}

.metric-value {
    font-size: 1.42rem;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.metric-note {
    margin: 0;
    color: var(--amsms-text-secondary);
    font-size: 0.88rem;
}

.table-shell {
    overflow: auto;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: var(--workspace-table-radius);
    background: rgba(255, 255, 255, 0.72);
    -webkit-overflow-scrolling: touch;
}

.data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 680px;
}

.data-table th,
.data-table td {
    padding: 12px 12px;
    text-align: left;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    vertical-align: top;
    line-height: 1.45;
    color: var(--amsms-text-secondary);
}

.data-table th {
    color: var(--amsms-ink);
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    background: rgba(248, 250, 252, 0.96);
    position: sticky;
    top: 0;
    z-index: 1;
    font-weight: 800;
}

.data-table tbody tr:nth-child(odd) {
    background: rgba(248, 250, 252, 0.58);
}

.data-table tbody tr:hover {
    background: rgba(74, 144, 226, 0.04);
}

.workspace-empty {
    border-style: dashed;
    padding: 20px 22px;
}

.workspace-empty h3 {
    font-size: 1.18rem;
}

.workspace-empty p,
.workspace-state p {
    margin: 0;
    color: var(--amsms-text-secondary);
}

.exam-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.exam-question-list,
.exam-card-list {
    display: grid;
    gap: 12px;
}

.exam-question-card,
.exam-result-card,
.exam-batch-card,
.exam-cbt-card {
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.84);
    padding: 16px;
    display: grid;
    gap: 12px;
}

.exam-question-options {
    display: grid;
    gap: 8px;
}

.exam-option-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.72);
}

.exam-timer {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    color: var(--amsms-navy);
}

.exam-split {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: 16px;
}

@media (max-width: 960px) {
    .hero,
    .grid-2,
    .grid-3,
    .pricing-grid,
    .onboarding-layout,
    .skeleton-grid {
        grid-template-columns: 1fr;
    }

    .topbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .workspace-shell {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .workspace-sidebar {
        position: static;
        height: auto;
        overflow: visible;
    }

    .workspace-sidebar-body {
        overflow: visible;
        padding-right: 0;
        margin-right: 0;
    }

    .workspace-shell--compact-nav {
        align-items: stretch;
    }

    .workspace-sidebar--compact .workspace-sidebar-footer {
        margin-top: 0;
    }

    .workspace-topbar,
    .workspace-section-head,
    .workspace-panel-head,
    .settings-branding-head,
    .workspace-topbar-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .school-filters-head-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .school-filters-head-actions .muted {
        text-align: left;
    }

    .workspace-panel-head-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .exam-split {
        grid-template-columns: 1fr;
    }

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

    .sms-provider-field-row-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .timetable-page .settings-grid--timetable {
        grid-template-columns: 1fr;
    }

    .school-edit-grid {
        grid-template-columns: 1fr;
    }

    .messaging-launch-grid {
        grid-template-columns: 1fr;
    }

    .messaging-attempt-row {
        flex-direction: column;
    }

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

    .school-filters-search {
        grid-column: 1 / -1;
    }

    .school-profile-grid {
        grid-template-columns: 1fr;
    }

    .school-profile-hero {
        flex-direction: column;
    }

    .school-profile-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 640px) {
    .page-shell {
        width: min(100% - 20px, var(--amsms-max-width));
        padding-top: 16px;
    }

    .page-shell.page-shell--workspace,
    .workspace-host {
        width: 100%;
        max-width: none;
        margin: 0;
        min-height: 100vh;
        --workspace-shell-padding-x: 16px;
        --workspace-shell-padding-y: 16px;
        padding: var(--workspace-shell-padding-y) var(--workspace-shell-padding-x) 32px;
    }

    .hero-panel,
    .surface-panel,
    .card,
    .form-card,
    .status-card,
    .pricing-card,
    .message-card {
        padding: 18px;
        border-radius: 18px;
    }

    .hero h1 {
        font-size: 2.4rem;
    }

    .hero-actions,
    .nav-links,
    .action-row {
        width: 100%;
    }

    .button {
        width: 100%;
    }

    .workspace-panel-body,
    .workspace-topbar,
    .workspace-sidebar,
    .workspace-state,
    .workspace-empty {
        padding-left: 16px;
        padding-right: 16px;
    }

    .workspace-panel-head {
        padding: 16px;
    }

    .settings-branding-head,
    .settings-actions,
    .portal-inline-form,
    .workspace-topbar-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .settings-profile-header,
    .settings-actions--split {
        flex-direction: column;
        align-items: stretch;
    }

    .settings-branding-intro,
    .branding-asset-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .restricted-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .settings-actions .button {
        width: 100%;
    }

    .settings-field--span-12,
    .settings-field--span-6,
    .settings-field--span-4 {
        grid-column: 1 / -1;
    }

    .settings-profile-grid {
        grid-template-columns: 1fr;
    }

    .settings-branding-sections,
    .settings-branding-grid--colors,
    .settings-branding-grid--report {
        grid-template-columns: 1fr;
    }

    .branding-color-control {
        grid-template-columns: 56px minmax(0, 1fr);
    }

    .branding-color-swatch {
        grid-column: 1 / -1;
        height: 16px;
    }

    .platform-gateway-form-grid,
    .platform-gateway-grid-2,
    .platform-gateway-grid-3,
    .platform-gateway-secret-grid,
    .platform-gateway-policy-grid,
    .platform-gateway-summary-grid,
    .billing-preview-grid,
    .billing-filters-grid {
        grid-template-columns: 1fr;
    }

    .billing-preview-table .data-table {
        min-width: 560px;
    }

    .billing-filters-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .billing-filters-buttons {
        width: 100%;
    }

    .platform-gateway-actions .button {
        width: 100%;
        min-width: 0;
    }

    .portal-inline-form {
        grid-template-columns: 1fr;
    }

    .school-filters-grid {
        grid-template-columns: 1fr;
    }

    .school-filters-search {
        grid-column: auto;
    }

    .school-filters-head-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .school-filters-head-actions .button {
        width: auto;
    }

    .module-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .sms-provider-field-row-grid {
        grid-template-columns: 1fr;
    }

    .school-edit-grid {
        grid-template-columns: 1fr;
    }

    .school-profile-grid {
        grid-template-columns: 1fr;
    }

    .school-profile-row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .school-profile-card-body {
        padding: 16px;
    }

    .portal-child-grid,
    .portal-exam-grid,
    .metric-grid,
    .settings-branding-grid,
    .billing-preview-grid {
        grid-template-columns: 1fr;
    }

    .billing-preview-table .data-table {
        min-width: 560px;
    }

    .table-shell {
        border-radius: 16px;
    }

    .data-table {
        min-width: 600px;
    }

    .workspace-mobile-home {
        display: inline-flex;
    }

    .workspace-avatar-copy {
        display: none;
    }

    .workspace-avatar-shell {
        width: 100%;
    }

    .workspace-avatar-button {
        width: 100%;
        justify-content: space-between;
    }

    .workspace-avatar-menu {
        width: min(260px, calc(100vw - 32px));
    }
}
