/* Shared geometry comes after component skins. No fixed text height or clipping. */
:root {
  --control-inset: max(1em, calc(var(--radius-md) + .25rem));
  --item-inset: max(.875em, calc(var(--radius-sm) + .25rem));
  --card-inset: max(1rem, calc(var(--radius-lg) * .55 + .5rem));
  --small-card-inset: max(1rem, calc(var(--radius-md) * .55 + .5rem));
  --section-gap: clamp(20px, 2vw, 32px);
  --shell-gap: clamp(16px, 2vw, 28px);
}

/* The page canvas, navigation and content are separate surfaces. */
.portal-shell {
  grid-template-columns: 244px minmax(0, 1fr);
  align-items: start;
  gap: var(--shell-gap);
  padding: var(--shell-gap);
  max-width: 1840px;
  margin-inline: auto;
}
.portal-shell > .sidebar {
  top: calc(74px + var(--shell-gap));
  height: auto;
  max-height: calc(100dvh - 74px - var(--shell-gap) - var(--shell-gap));
  padding: 16px 12px;
  border: 1px solid var(--border);
}
.workspace { padding: 8px 0 24px; }
.portal-page { max-width: 1360px; }
.portal-page > .panel + .panel,
.portal-page > .panel + section,
.portal-page > section + .panel { margin-block-start: var(--section-gap); }
.admin-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--section-gap); align-content: start; }
.admin-section > :is(.panel,.compact-disclosure,.section-heading) { margin-block: 0; }
.admin-section > :empty:not(input):not(textarea):not(select) { display: none; }
.disclosure-content > .compact-disclosure + .compact-disclosure,
.content-panel > .compact-disclosure + .compact-disclosure,
.compact-disclosure + .panel,
.panel + .compact-disclosure { margin-block-start: 20px; }
.page-heading { padding-block: 10px 22px; }
.page-heading h1 { font-weight: 800; letter-spacing: -.04em; }
.sidebar .user-summary { background: transparent; border-bottom: 1px solid var(--border); border-radius: 0; margin-bottom: 12px; padding: 8px 10px 20px; }
.sidebar-heading { padding-bottom: 8px; }
.sidebar .navigation { gap: 8px; }
.sidebar .navigation-footer { margin-top: 18px; padding-top: 18px; }

@media (max-width: 1100px) and (min-width: 701px) {
  .portal-shell { grid-template-columns: 218px minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .portal-shell { grid-template-columns: minmax(0, 1fr); padding: 16px 12px 32px; }
  .portal-shell > .sidebar { top: 0; max-height: 100dvh; height: 100dvh; }
  .workspace { padding: 0; }
}

/* Text and grid children must be able to shrink before a word is wrapped. */
:where(.portal-shell, .auth-view, dialog) :where(h1,h2,h3,h4,p,span,strong,small,a,label,legend) {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
:where(.portal-shell, .auth-view, dialog) :where(h1,h2,h3,h4) { line-height: 1.3; }
:is(.form-grid,.form-stack,.admin-grid,.resource-card-list,.resource-admin-list,
    .club-choice-grid,.achievement-list,.kpi-grid,.portfolio-summary,.group-management-list,
    .student-dossier-grid,.dossier-filters,.appearance-control-grid,.connected-dialog-body) > * {
  min-inline-size: 0;
  max-inline-size: 100%;
}

/* Summary labels share an inset and reserve their own space for the arrow. */
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history) > summary {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .3em .75em;
  min-inline-size: 0;
  max-inline-size: 100%;
  min-block-size: 44px;
  block-size: auto;
  padding: .75em calc(var(--control-inset) + 1.5em) .75em var(--control-inset);
  border-radius: inherit;
  line-height: 1.45;
  text-align: start;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  list-style: none;
  cursor: pointer;
}
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history) > summary > * {
  min-inline-size: 0;
  max-inline-size: 100%;
  white-space: normal;
}
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history) > summary::marker { content: ''; }
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history) > summary::-webkit-details-marker { display: none; }
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history) > summary::after {
  content: '';
  position: absolute;
  inset-inline-end: var(--control-inset);
  inset-inline-start: auto;
  top: 50%;
  width: .55em;
  height: .55em;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: translateY(-70%) rotate(45deg);
  flex: none;
  pointer-events: none;
}
:is(.compact-disclosure,.directory-disclosure,.group-department-disclosure,.section-menu,.department-disclosure,.action-menu,
    .session-disclosure,.disclosure-panel,.dossier-download-panel,
    .profile-extra-fields,.achievement-extra-fields,.deadline-cycle-history,
    .review-assignment-control,.review-feedback-history)[open] > summary::after {
  transform: translateY(-20%) rotate(225deg);
}
.section-menu, .department-disclosure { border-radius: var(--radius-md); }
.action-menu { border-radius: var(--radius-sm); }
.department-disclosure > summary { align-items: flex-start; justify-content: center; min-block-size: 82px; }
.disclosure-panel > summary > span:first-child { flex: 1 1 12rem; }
.disclosure-panel { overflow: visible; }
.disclosure-content { padding-inline: var(--control-inset); padding-block-end: var(--control-inset); }
:is(.compact-disclosure,.disclosure-panel,.dossier-download-panel,.profile-extra-fields,
    .achievement-extra-fields,.session-disclosure)[open] > summary {
  border-end-start-radius: 0;
  border-end-end-radius: 0;
}
.compact-disclosure[open] > summary { border-block-end: 1px solid var(--border); }

/* Existing forms and generated details have different children; inset each safely. */
.compact-disclosure > :not(summary) {
  margin-inline: var(--control-inset);
  max-inline-size: calc(100% - var(--control-inset) - var(--control-inset));
  min-inline-size: 0;
}
.compact-disclosure > summary + :not(summary) { margin-block-start: 1em; }
.compact-disclosure > :last-child:not(summary) { margin-block-end: var(--control-inset); }
.compact-disclosure > :is(.form-grid,.form-stack,.smtp-advanced-fields,.appearance-color-grid) { padding: 0; }
.compact-disclosure > .form-stack { margin-block-start: 1em; }
.appearance-custom-colors > p { padding: 0; }
.compact-disclosure > :has(> .club-roster-table) { overflow-x: auto; }
.compact-disclosure .ocr-full-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.session-disclosure { padding: 0; }
.session-disclosure > :not(summary) {
  margin-inline: var(--control-inset);
  max-inline-size: calc(100% - var(--control-inset) - var(--control-inset));
}
.session-disclosure > :last-child:not(summary) { margin-block-end: var(--control-inset); }
.session-disclosure > summary small { line-height: 1.45; }

/* Card padding follows the corner setting, so text stays clear of curved corners. */
.portal-shell .panel:not(.disclosure-panel):not(.sidebar),
:is(.appearance-live-preview,.student-dossier-card) { padding: var(--card-inset); }
:is(.achievement-card,.kpi-card,.resource-card,.resource-admin-card,.club-choice-card,
    .club-member-row,.content-group,.lifecycle-card,.recycle-card,.position-card,
    .queue-item:not(.session-disclosure),.criterion-choice,.my-curator-card,
    .portfolio-explorer-metrics > div) { padding: var(--small-card-inset); }
:is(.panel,.achievement-card,.resource-card,.club-choice-card,.queue-item,
    .position-card,.announcement-card,.student-dossier-card,.content-group) {
  min-inline-size: 0;
  overflow-wrap: anywhere;
}
:is(.panel-heading,.panel-subheading-actions,.resource-card-heading,.achievement-heading,
    .evidence-preview-heading,.evidence-upload-heading,.queue-item-heading) {
  gap: .75rem 1rem;
  min-inline-size: 0;
}
:is(.panel-heading,.panel-subheading-actions,.resource-card-heading,.achievement-heading,
    .evidence-preview-heading,.evidence-upload-heading,.queue-item-heading) > :is(div,span,strong) {
  min-inline-size: 0;
  max-inline-size: 100%;
}
:is(.panel-heading,.resource-card-heading,.achievement-heading) > div:first-child { flex: 1 1 12rem; }
.resource-card-heading { flex-wrap: wrap; }
:is(.resource-card,.club-choice-card) > :is(.resource-card-actions,.form-actions) { margin-block-start: auto; }
:is(.club-term-panel,.connected-group-view,.group-summary) { overflow-wrap: anywhere; }
.admin-section > .compact-disclosure { margin-block: 0; }
.admin-section > .section-heading { margin-block-start: 0; }

/* Labels remain whole; action rows stretch together and wrap when space runs out. */
.button {
  gap: .5em;
  block-size: auto;
  min-block-size: 44px;
  padding: .65em var(--item-inset);
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.button > :is(span,strong,small) { min-inline-size: 0; max-inline-size: 100%; }
.button > .ui-icon, .navigation .ui-icon { flex-shrink: 0; }
:is(.form-actions,.achievement-actions,.resource-card-actions,.queue-actions,
    .review-actions,.recycle-actions,.rollover-actions,.account-security-actions,
    .history-export-card-actions,.confirmation-dialog-actions,.inline-links) {
  flex-wrap: wrap;
  align-items: stretch;
  gap: .625rem;
}
:is(.form-actions,.achievement-actions,.resource-card-actions,.queue-actions,
    .review-actions,.recycle-actions,.rollover-actions,.account-security-actions,
    .history-export-card-actions,.confirmation-dialog-actions) > :is(button,a,label) {
  min-inline-size: 0;
  max-inline-size: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(.tag,.status-badge,.account-state-badge,.evidence-uploaded-badge) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-inline-size: 100%;
  min-inline-size: 0;
  block-size: auto;
  padding: .4em .8em;
  line-height: 1.45;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}
.user-summary strong { overflow: visible; white-space: normal; text-overflow: clip; line-height: 1.4; }
.user-summary { padding: var(--small-card-inset); }
.navigation a, .navigation-group-toggle { line-height: 1.45; white-space: normal; }
.navigation-link-main, .navigation-group-toggle > span { min-inline-size: 0; overflow-wrap: anywhere; }
.brand-copy strong { white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }

/* Campus workspace: open canvas, a horizontal navigation bar and distinct sections. */
:root[data-palette="college"] {
  --bg: #f2f3f7; --surface: #ffffff; --surface-soft: #f5f6fa;
  --surface-strong: #e9ecf4; --surface-muted: #e9ecf4; --text: #171c2c;
  --muted: #596278; --border: #ced3df; --primary: #354ed0;
  --primary-strong: #293fae; --primary-action: #354ed0;
  --primary-action-strong: #293fae; --primary-soft: #e9edff; --teal: #087f83;
}
:root[data-palette="college"][data-effective-theme="dark"] {
  --bg: #10131c; --surface: #1a1e2c; --surface-soft: #24293b;
  --surface-strong: #2d354a; --surface-muted: #2d354a; --text: #ffffff;
  --muted: #b9c2d8; --border: #414b63; --primary: #b3c1ff;
  --primary-strong: #d1d9ff; --primary-action: #435cdb;
  --primary-action-strong: #354ab7; --primary-soft: #2a3555; --teal: #88e6c8;
}
.topbar { background: var(--surface); backdrop-filter: none; }
.brand-mark { box-shadow: none; }
.portal-page { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--section-gap); align-content: start; }
.portal-page > :is(.panel,.page-heading,.section-menu,.admin-grid,.kpi-grid,.portfolio-layout,.review-layout,.portfolio-profile-layout) { margin-block: 0; }
.page-heading { border-bottom: 0 !important; padding-block: 8px 4px !important; }
.page-heading h1 { line-height: 1.13; }
.page-heading p:not(.eyebrow) { font-size: calc(16px * var(--font-scale)); }
.eyebrow { letter-spacing: .12em; font-size: calc(12px * var(--font-scale)); }
.portal-shell :is(.panel,.student-dossier-card,.achievement-card,.resource-card,.club-choice-card) {
  border-radius: var(--radius-lg);
  box-shadow: 0 4px 18px rgb(15 23 42 / .035);
}
.panel-heading { align-items: start; margin-block-end: 24px; }
.panel-heading h2 { font-size: calc(22px * var(--font-scale)); letter-spacing: -.025em; }
.panel-heading p { font-size: calc(14px * var(--font-scale)); }
.disclosure-content { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; padding-block-start: 20px; }
.disclosure-content > :is(.panel,.compact-disclosure,.club-term-panel,.panel-subheading,h3,p) { margin-block: 0; }
.compact-disclosure + .compact-disclosure { margin-block-start: 20px; }
.section-stack,.club-term-panel { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; align-content: start; }
:is(.section-stack,.club-term-panel) > * { min-width: 0; margin-block: 0; }
:is(.section-stack,.club-term-panel) > .compact-disclosure { margin-block: 0; }
:is(.section-stack,.club-term-panel) > div:empty { display: none; }
.admin-section > :is(.panel,.compact-disclosure,.section-heading) { margin-block: 0; }
.compact-disclosure { background: var(--surface); }
.compact-disclosure > summary { color: var(--text); font-weight: 650; }
.compact-disclosure > summary:hover { background: var(--surface-soft); }
.compact-disclosure[open] > summary { background: var(--surface-soft); }
.section-menu { max-width: 460px; }
.section-menu > summary { min-height: 48px; }
.portal-breadcrumbs { margin-bottom: 16px; font-size: calc(14px * var(--font-scale)); }
.portal-breadcrumbs .button { min-height: 36px; padding-block: .35em; }
.button { font-weight: 650; }
.button-primary { box-shadow: none; }
.tag,.status-badge { border-radius: var(--radius-sm); }
.kpi-card > span { font-size: calc(14px * var(--font-scale)); }
.kpi-card > strong { font-size: calc(32px * var(--font-scale)); letter-spacing: -.04em; }
.student-dossier-card { row-gap: 16px; }
.student-dossier-card .dossier-filling { grid-column: 1/-1; }
.student-dossier-card p { font-size: calc(14px * var(--font-scale)); line-height: 1.5; }
.resource-card,.achievement-card { line-height: 1.6; }
.resource-card-list,.resource-admin-list,.club-choice-grid,.student-dossier-grid { gap: 24px; }
.dashboard-hero { box-shadow: none; border-radius: var(--radius-lg); padding: clamp(20px,3vw,36px); }
.dashboard-hero h2 { letter-spacing: -.04em; }
.dashboard-metrics article { background: var(--surface); padding: 20px; }

@media (min-width: 1001px) {
  .portal-shell { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 22px 32px 40px; }
  .portal-shell > .sidebar { position: relative; top: auto; z-index: 18; display: grid; gap: 14px; height: auto; max-height: none; overflow: visible; padding: 16px 20px; }
  .sidebar-heading { display: none; }
  .sidebar .user-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0 4px; border: 0; }
  .sidebar .user-summary span { margin: 0; }
  .sidebar .navigation { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
  .sidebar .navigation > :is(a,section) { width: auto; flex: 0 1 auto; }
  .sidebar .navigation a,.sidebar .navigation-group-toggle { min-height: 44px; padding: 10px 12px; font-size: calc(14px * var(--font-scale)); }
  .sidebar .navigation a strong { font-size: inherit; }
  .sidebar .navigation-group { position: relative; }
  .sidebar .navigation-submenu { position: absolute; left: 0; top: calc(100% + 10px); z-index: 30; min-width: 260px; max-width: 340px; width: max-content; max-height: 65vh; overflow: auto; padding: 8px; margin: 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 14px 36px rgb(0 0 0 / .18); }
  .sidebar :is(#staff-navigation-group, #management-navigation-group) .navigation-submenu { left: auto; right: 0; }
  .sidebar .navigation-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 0 auto; padding: 0; border: 0; }
  .sidebar .navigation-footer > a { width: auto; }
  .sidebar .navigation > .navigation-link > .ui-icon,
  .sidebar .navigation-group-toggle > .ui-icon:first-child { display: none; }
  .sidebar .sidebar-theme-control { width: 156px; padding: 0; margin: 0; }
  .sidebar .sidebar-theme-control > span { display: none; }
  .sidebar .navigation-submenu a { width: 100%; }
  .navigation-group-toggle[aria-expanded="true"] { background: var(--primary-soft); }
  .sidebar .navigation-chevron { transform: rotate(90deg); }
  .sidebar .navigation-group-toggle[aria-expanded="true"] .navigation-chevron { transform: rotate(270deg); }
  .workspace { padding: 0; }
}

/* Personalisation is a workbench; changing a control never removes the preview. */
.appearance-form { font-family: inherit; gap: 24px; }
.appearance-workbench { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,1fr); gap: 32px; align-items: start; }
.appearance-controls { min-width: 0; }
.appearance-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; margin-bottom: 24px; border-radius: var(--radius-md); background: var(--surface-soft); }
.appearance-tabs button { flex: 1 1 auto; border: 0; border-radius: var(--radius-sm); padding: 11px 14px; min-height: 44px; background: transparent; color: var(--muted); font-weight: 650; font-size: calc(14px * var(--font-scale)); }
.appearance-tabs button[aria-selected="true"] { background: var(--surface); color: var(--primary-strong); box-shadow: 0 2px 6px rgb(15 23 42 / .08); }
.appearance-pane { display: grid; gap: 24px; align-content: start; }
.appearance-pane > :is(.appearance-fieldset,.appearance-control-grid,.compact-disclosure,p) { margin-block: 0; }
.appearance-presets { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.appearance-presets button { display: grid; gap: 5px; padding: 10px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--text); text-align: start; cursor: pointer; }
.appearance-presets button:hover { border-color: var(--primary); }
.appearance-presets strong { font-size: calc(14px * var(--font-scale)); }
.appearance-presets small { font-size: calc(12px * var(--font-scale)); line-height: 1.4; color: var(--muted); }
.preset-sample { display: block; height: 48px; border-radius: var(--radius-sm); margin-bottom: 4px; }
.preset-neon { background: linear-gradient(125deg,#151825 0 55%,#b7f76b 55% 78%,#a99aff 78%); }
.preset-studio { background: linear-gradient(125deg,#eef0f8 0 55%,#6654d9 55% 78%,#adb8fa 78%); }
.preset-sea { background: linear-gradient(125deg,#e1f3f1 0 55%,#087f83 55% 78%,#5de0c0 78%); }
.appearance-palette-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.appearance-palette-card { grid-template-columns: 18px minmax(0,1fr); min-height: 88px; gap: 10px; background: var(--surface); }
.appearance-palette-card .appearance-swatches { display: none; }
.appearance-palette-card small { font-size: calc(12px * var(--font-scale)); }
.appearance-fieldset > legend,.appearance-field > span { color: var(--text); font-size: calc(14px * var(--font-scale)); margin-bottom: 10px; }
.appearance-control-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: start; }
.appearance-contrast-control { grid-column: 1/-1; padding: 14px; }
.appearance-control-grid label { display: grid; gap: 8px; }
.appearance-control-grid label > span,.appearance-pane > label > span { font-size: calc(14px * var(--font-scale)); font-weight: 600; }
.appearance-control-grid input[type="color"] { width: 100%; min-height: 48px; padding: 6px; }
.appearance-color-grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
.appearance-color-grid label { font-size: calc(14px * var(--font-scale)); }
.appearance-preview-wrap { display: grid; gap: 20px; position: sticky; top: 100px; padding: 22px; border-radius: var(--radius-lg); background: var(--bg); min-width: 0; }
.appearance-preview-label { margin: 0; font-size: calc(14px * var(--font-scale)); color: var(--muted); }
.appearance-live-preview { min-width: 0; box-shadow: none; }
.appearance-live-preview h3 { font-size: calc(26px * var(--font-scale)); letter-spacing: -.03em; margin: 12px 0; }
.appearance-live-preview p { font-size: calc(16px * var(--font-scale)); line-height: 1.6; }
.appearance-live-preview .eyebrow { font-size: calc(12px * var(--font-scale)); }
.appearance-type-sample { padding-block: 16px; border-top: 1px solid var(--border); }
.appearance-button-sample { width: 100%; text-align: center; cursor: default; }
.appearance-preview-disclosure { margin: 0 !important; }
.appearance-savebar { display: grid; gap: 14px; padding-top: 22px; border-top: 1px solid var(--border); }
.appearance-savebar .autosave-status { margin: 0; font-size: calc(14px * var(--font-scale)); }
.appearance-actions { gap: 12px; }
.appearance-actions #appearance-reset { margin-left: auto; }
.appearance-panel .section-note { font-size: calc(14px * var(--font-scale)); line-height: 1.55; }
@media (max-width: 1100px) {
  .appearance-workbench { grid-template-columns: minmax(0,1fr); }
  .appearance-preview-wrap { position: static; grid-template-columns: minmax(0,1fr); }
  .appearance-preview-label { grid-column: 1/-1; }
}
@media (max-width: 640px) {
  .appearance-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .appearance-control-grid { grid-template-columns: minmax(0,1fr); }
  .appearance-presets { grid-template-columns: minmax(0,1fr); }
  .appearance-presets button { grid-template-columns: 72px minmax(0,1fr); align-items: center; }
  .preset-sample { grid-row: span 2; height: 60px; margin: 0; }
  .appearance-preview-wrap { padding: 0; background: transparent; }
  .appearance-live-preview h3 { font-size: calc(22px * var(--font-scale)); hyphens: auto; }
  .appearance-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .appearance-actions #appearance-reset { margin-left: 0; }
  .appearance-palette-options { grid-template-columns: minmax(0,1fr); }
}
:root[data-high-contrast="true"] :is(.panel,.student-dossier-card,.appearance-preview-wrap) { box-shadow: none; }
:root[data-high-contrast="true"][data-palette] { --muted: var(--text); --border: color-mix(in srgb,var(--text) 65%,var(--bg)); }

@media (max-width: 640px) {
  .portal-shell .panel:not(.disclosure-panel):not(.sidebar) { padding: var(--small-card-inset); }
  .student-dossier-grid, .dossier-directory-search { grid-template-columns: minmax(0,1fr); }
  .student-dossier-identity { align-items: flex-start; flex-wrap: wrap; }
  .student-dossier-identity > :not(.dossier-portrait) { flex: 1 1 12rem; min-inline-size: 0; }
  .department-disclosure > summary { min-block-size: 64px; }
}

/* 0.35: compact page chrome, with independent spacing for actual content. */
.portal-shell { align-content:start; }
.workspace { width:100%; max-width:1360px; margin-inline:auto; }
.portal-page { width:100%; }
.portal-breadcrumbs[hidden] { display:none; }
.portal-breadcrumbs { margin:0 0 12px; }
.portal-page { row-gap:20px; }
.portal-page > .page-heading { padding:0!important; }
.portal-page > .page-heading .eyebrow { display:none; }
.portal-page > .page-heading h1 { font-size:clamp(calc(26px * var(--font-scale)),3vw,calc(32px * var(--font-scale)));line-height:1.2; }
.portal-page > .page-heading p:not(.eyebrow) { margin-top:4px; font-size:calc(14px * var(--font-scale)); }
.portal-page > .home-announcements { margin:0; min-width:0; }
.home-announcements > h2 { margin:0 0 12px; font-size:calc(20px * var(--font-scale)); }
.home-announcements.is-empty > details { margin:0; }
.home-announcements.is-empty > details > summary { font-size:calc(14px * var(--font-scale));min-height:44px;padding-block:10px; }
.home-announcements > [hidden] { display:none; }
#dashboard-content:empty { display:none; }
@media(min-width:1001px) {
  .topbar { min-height:64px; padding-block:8px; }
  .brand-mark { width:44px;height:44px; }
  .portal-shell { gap:18px; padding:14px 24px 32px; }
  .portal-shell > .sidebar { gap:4px;padding:10px 12px; }
  .sidebar .user-summary { padding:0 8px; }
  .sidebar .navigation { gap:4px; }
  .sidebar .navigation a,.sidebar .navigation-group-toggle { padding:8px; min-height:44px; }
  .sidebar .navigation-footer { gap:4px; }
  .sidebar .sidebar-theme-control { width:168px; }
}
@media(max-width:1000px) {
  .portal-shell { padding-top:12px; }
  .portal-page { row-gap:16px; }
  .portal-breadcrumbs { gap:6px;margin-bottom:12px; }
}

/* 0.37: keep appearance actions within reach without covering form controls. */
.appearance-actions { position:sticky; bottom:0; z-index:5; padding:12px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); box-shadow:0 -6px 18px rgb(0 0 0 / .06); }
.appearance-form :is(input,select,button) { scroll-margin-block:110px; }
@media(min-width:1000px) { .appearance-preview-wrap { position:sticky; top:110px; align-self:start; } }
@media(max-width:700px) { .dossier-filters { grid-template-columns:minmax(0,1fr); }.dossier-export-form .form-actions { display:flex; flex-wrap:wrap; gap:10px; }.dossier-export-form .form-actions > button { flex:1 1 130px; } }
/* Dialog close actions must never split a word or shrink behind the heading. */
dialog :is(.evidence-preview-heading,.panel-heading) > .button { flex:0 0 auto; min-width:max-content; white-space:nowrap; }
dialog :is(.evidence-preview-heading,.panel-heading) > div { min-width:0; }

/* 0.40.6: labels move to the next row as a unit, without narrowing the arrows. */
.topbar { flex-wrap:wrap; }
.topbar-brand-group { flex:1 1 14rem; }
.topbar-actions { min-width:0; max-width:100%; margin-inline-start:auto; flex-wrap:wrap; justify-content:flex-end; }
.topbar-actions > :is(button,.notification-center,.connection-status) { flex-shrink:0; }
.topbar .brand-copy strong { white-space:normal; overflow-wrap:normal; }
.topbar .brand-copy small { white-space:normal; overflow-wrap:anywhere; }
.sidebar .navigation-chevron { flex:0 0 17px; }
.sidebar .sidebar-theme-control select { min-height:44px; padding-inline-end:2.5em; }
.section-menu > summary { border-radius:var(--radius-md); }
.section-menu > nav.section-navigation { margin-inline:0; border:1px solid var(--border); border-radius:var(--radius-md); }

/* Surface corners follow the saved setting, including a value of zero. */
:root :is(.command-dialog,.name-parts-fields,.club-photo-picker,.score-entry,.toast) { border-radius:var(--radius-md); }
:root :is(.skip-link,.notification-filters button,.toast-dismiss,.command-result,.calendar-event,
    .photo-bank-item,.club-photo-gallery > a,.file-dropzone,.tag,.status-badge,
    .account-state-badge,.evidence-uploaded-badge,.security-status,.history-export-status,
    .review-evidence-tabs button,.external-link-host,.welcome-preview-features span,
    .mail-setup-steps span,.access-gate > span) { border-radius:var(--radius-sm); }
:root .admin-shortcuts > a > .ui-icon,
:root .quick-action > .ui-icon,
:root .global-search-button kbd { border-radius:var(--radius-sm); }
:root :is(.portfolio-stage-track,.portfolio-progress-track,.dossier-filling-bar progress) { border-radius:var(--radius-sm); }
:root .dossier-filling-bar progress::-webkit-progress-value { border-radius:var(--radius-sm); }
:root .dossier-filling-bar progress::-moz-progress-bar { border-radius:var(--radius-sm); }

@media(min-width:1001px) {
  .sidebar .navigation { --navigation-control-height:max(44px,calc(20px + 20.3px * var(--font-scale))); align-items:center; gap:6px; }
  .sidebar .navigation > :is(a,section) { flex:0 0 auto; }
  .sidebar .navigation > .navigation-link,
  .sidebar .navigation .navigation-group-toggle { min-height:var(--navigation-control-height); height:auto; padding:10px 12px; }
  .sidebar .navigation > .navigation-link > span,
  .sidebar .navigation-group-toggle > span { white-space:nowrap; overflow-wrap:normal; }
  .sidebar .navigation-footer { flex:1 0 auto; align-items:stretch; justify-content:flex-end; gap:6px; margin:0; }
  .sidebar .navigation .navigation-footer > a { min-height:var(--navigation-control-height); padding:10px 12px; }
  .sidebar .navigation-footer > a > span { white-space:nowrap; overflow-wrap:normal; }
  .sidebar .sidebar-theme-control { width:max(190px,calc(190px * var(--font-scale))); align-content:center; }
  .sidebar .sidebar-theme-control select { min-height:var(--navigation-control-height); padding-block:9px; line-height:1.45; }
}
@media(max-width:480px) {
  .topbar .topbar-brand-group { flex-basis:100%; }
  .topbar .topbar-actions { width:100%; }
  .topbar .brand-copy { display:grid; }
  .topbar .brand-copy strong { white-space:normal; overflow-wrap:anywhere; }
}
@media(max-width:760px) {
  .topbar .topbar-actions > :is(.button,.notification-center),
  .topbar .icon-button,.topbar .mobile-menu-button { min-height:44px; }
  .topbar .mobile-menu-button { width:44px; }
  .topbar .topbar-actions .manual-refresh-button { width:44px; min-width:44px; padding:7px; }
}

/* Directory identities, contacts and collapsed lists share the page geometry. */
.account-directory-card { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:.75rem; row-gap:.4rem; }
.account-directory-card > .queue-item-heading { grid-column:1; grid-row:1; align-items:center; min-width:0; }
.account-directory-card > .queue-actions { grid-column:2; grid-row:1 / span 2; align-self:start; margin:0; }
.account-directory-card > .account-lifecycle-note { grid-column:1 / -1; margin:.25rem 0 0; }
.account-directory-card .account-heading-identity { flex:1 1 18rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .75rem; }
.account-directory-card .account-name-link { flex:0 1 auto; color:var(--primary); min-width:0; font-size:calc(16px * var(--font-scale)); line-height:1.5; font-weight:650; }
.account-directory-card .account-group-link { flex:0 1 auto; min-width:0; max-width:100%; color:var(--primary); display:inline-flex; align-items:center; min-height:36px; padding:.3em .7em; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-soft); text-decoration:none; font-size:calc(13px * var(--font-scale)); }
.account-directory-card .account-contacts { grid-column:1; grid-row:2; display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1rem; margin:0; min-width:0; font-size:calc(14px * var(--font-scale)); }
.account-directory-card .account-contacts > * { color:var(--primary); min-width:0; overflow-wrap:anywhere; }
.directory-disclosure { min-width:0; padding:0; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); }
.directory-disclosure > summary { background:var(--surface-soft); }
.directory-disclosure > :not(summary) { margin:1rem; min-width:0; max-width:calc(100% - 2rem); }
.directory-load-status { color:var(--muted); font-size:calc(14px * var(--font-scale)); }
.directory-load-status:empty { display:none; }
.registration-name-error { display:block; color:var(--red); line-height:1.5; overflow-wrap:anywhere; }
.registration-name-error[hidden] { display:none; }
#registration-form input[aria-invalid="true"] { border-color:var(--red); }
.group-department-disclosure { border-radius:inherit; }
.group-department-summary { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1rem; background:var(--surface-soft); }
.group-department-summary > strong { flex:1 1 12rem; min-width:0; }
.group-department-summary > .count-label { flex:0 0 auto; }
.group-roster-text { min-height:250px; width:100%; padding:1rem; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text; }
.group-manager .group-department-block { border-radius:var(--radius-md); }
.group-manager .group-department-heading { align-items:center; flex-direction:row; }
.group-manager .group-department-heading > :is(.context-action-menu,button) { flex-shrink:0; }
.group-manager .group-import-preview-row { border-radius:var(--radius-sm); }
@media(max-width:640px) {
  .account-directory-card .account-heading-identity { align-items:flex-start; }
  .directory-disclosure > :not(summary) { margin:.75rem; max-width:calc(100% - 1.5rem); }
}
