/* Global interaction and layout helpers extracted from templates. */

:root {
  --site-page-bg: #eaf3f6;
  --site-surface-bg: #fffdf7;
  --site-text: #173044;
  --site-muted-text: #607884;
  --site-line: #bfd0da;
  --site-header-bg: #172f42;
  --site-header-nav-bg: #172f42;
  --site-header-nav-border: #315c73;
  --site-header-text: #f5fbfd;
  --site-header-muted: #b9d3df;
  --site-header-link: #d6e6ed;
  --site-header-accent: #41b7db;
  --site-header-avatar: #1676a8;
  --site-header-overlay-top: rgba(7, 23, 34, .08);
  --site-header-overlay-mid: rgba(7, 23, 34, .30);
  --site-header-overlay-bottom: rgba(7, 23, 34, .50);
  --site-footer-bg: #102839;
  --site-footer-text: #d6e3e9;
  --ink: var(--site-text, #172f42);
  --forest: var(--ui-text, #244e65);
  --cream: var(--site-page-bg, #edf3f6);
  --paper: var(--site-surface-bg, #fffdf7);
  --moss: var(--site-header-muted, #b8d3df);
  --rust: var(--ui-rust, #c95d48);
  --line: color-mix(in srgb, var(--site-text, #172f42) 17%, transparent);
  --installer-border: var(--ui-border-color, #c8d5dc);
  --installer-border-strong: var(--ui-border-strong, #9eb9c5);
  --installer-muted: var(--ui-muted, #506a76);
  --installer-info-bg: var(--ui-info-bg, #e4eff3);
  --installer-empty-bg: var(--ui-empty-bg, #f7fbfc);
  --installer-header-bg: var(--site-header-bg, #172f42);
  --installer-footer-bg: var(--site-footer-bg, #102839);
  --installer-footer-text: var(--site-footer-text, #d6e3e9);
  --ui-space-1: 4px;
  --ui-space-2: 8px;
  --ui-space-3: 12px;
  --ui-space-4: 16px;
  --ui-space-5: 20px;
  --ui-space-6: 24px;
  --ui-section-gap: 18px;
  --ui-field-gap: 10px;
  --ui-control-height: var(--form-control-height, 40px);
  --ui-control-padding-x: 12px;
  --ui-control-radius: 3px;
  --ui-button-gap: 8px;
  --ui-button-min-width: 0;
  --ui-button-padding-x: 12px;
  --ui-button-font-weight: 800;
  --ui-button-disabled-opacity: .52;
  --ui-icon-button-size: 36px;
  --ui-panel-radius: 6px;
  --ui-panel-padding: clamp(16px, 2vw, 24px);
  --ui-card-padding: 14px;
  --ui-action-card-padding: clamp(16px, 2vw, 24px);
  --ui-action-card-min-height: 116px;
  --ui-metric-padding: 14px;
  --ui-metric-min-height: 86px;
  --ui-metric-value-size: 30px;
  --ui-detail-min: 280px;
  --ui-settings-min: 320px;
  --ui-table-row-min: 220px;
  --ui-disclosure-summary-padding: 13px 14px;
  --ui-filter-padding: 12px;
  --ui-empty-padding: 18px;
  --ui-modal-radius: 8px;
  --ui-alert-padding: 12px 14px;
  --ui-border-color: var(--site-line, #bfd0da);
  --ui-border-strong: #9eb9c5;
  --ui-border-soft: #d4e1e6;
  --ui-border-subtle: #cbd9df;
  --ui-surface: var(--site-surface-bg, #fffdf7);
  --ui-surface-elevated: var(--site-surface-elevated, var(--ui-surface));
  --ui-input-bg: #fff;
  --ui-text: var(--site-text, #173044);
  --ui-inverse-text: #fff;
  --ui-muted: var(--site-muted-text, #607884);
  --ui-accent-text: #2d5368;
  --ui-content-text: #506a76;
  --ui-accent: #1676a8;
  --ui-accent-hover: #125d84;
  --ui-rust: #c95d48;
  --ui-danger: #b35243;
  --ui-danger-hover: #943e33;
  --ui-warning: #c99945;
  --ui-success: #287048;
  --ui-info-bg: #edf6f8;
  --ui-filter-bg: #f5fafb;
  --ui-empty-bg: #f7fbfc;
  --ui-page-soft-bg: #f4f8f9;
  --ui-chip-bg: #e4eff3;
  --ui-active-bg: #dfeef2;
  --ui-control-hover-bg: #eef6f8;
  --ui-success-bg: #eefaf4;
  --ui-warning-bg: #fff8e9;
  --ui-warning-text: #7b541b;
  --ui-danger-bg: #fff1ed;
  --ui-disabled-bg: #f4f4f4;
  --ui-disabled-text: #aaa;
  --ui-neutral-border: #cfcfcf;
  --ui-booking-available-bg: #e8f5e9;
  --ui-booking-available-border: #72b778;
  --ui-booking-limited-bg: #fff5d6;
  --ui-booking-limited-border: #d5a13a;
  --ui-booking-unavailable-bg: var(--ui-disabled-bg);
  --ui-booking-unavailable-border: var(--ui-neutral-border);
  --ui-booking-unavailable-text: var(--ui-disabled-text);
  --ui-pdf-icon-page-bg: #edf7fa;
  --ui-pdf-icon-fold: #dcebf1;
  --ui-pdf-icon-mark: var(--ui-rust, #c95d48);
  --ui-note-bg: #fff8f5;
  --ui-note-border: #deded1;
  --ui-note-text: #65746c;
  --ui-code-bg: #edf3f6;
  --ui-row-hover-bg: var(--ui-info-bg, #edf6f8);
  --ui-status-radius: 999px;
  --ui-progress-height: 12px;
  --ui-progress-bg: var(--ui-input-bg, #fff);
  --ui-progress-track-border: #9eb9c5;
  --ui-editor-gap: 12px;
  --ui-editor-padding: var(--ui-card-padding, 14px);
  --ui-editor-toolbar-gap: 6px;
  --ui-editor-toolbar-padding: 6px;
  --ui-editor-toolbar-bg: var(--ui-filter-bg, #f5fafb);
  --ui-editor-canvas-bg: var(--ui-input-bg, #fff);
  --ui-editor-control-size: var(--ui-icon-button-size, 36px);
  --ui-editor-inline-control-size: 32px;
  --ui-editor-min-height: 120px;
  --ui-editor-preview-min-height: 84px;
  --ui-editor-note-padding: 10px 11px;
  --ui-media-stage-bg: #0f1c24;
  --ui-media-player-bg: #020506;
  --ui-media-control-bg: rgba(10, 23, 32, .72);
  --ui-media-control-border: rgba(255, 255, 255, .42);
  --ui-media-control-text: #fff;
  --ui-media-control-track: rgba(255, 255, 255, .42);
  --ui-media-control-track-soft: rgba(255, 255, 255, .28);
  --ui-lightbox-overlay: rgba(6, 18, 26, .88);
  --ui-crop-mask: rgba(0, 0, 0, .42);
  --ui-crop-guide: rgba(255, 255, 255, .62);
  --ui-home-art-bg: var(--site-header-bg, #172f42);
  --ui-home-art-text: #f6ecd3;
  --ui-home-art-accent: var(--site-header-accent, #41b7db);
  --ui-home-art-line: var(--site-footer-text, #d6e3e9);
  --ui-overlay: rgba(8, 24, 34, .58);
  --ui-shadow-card: 0 8px 22px rgba(23, 47, 66, .08);
  --ui-shadow-soft: 0 12px 30px rgba(23, 47, 66, .18);
  --ui-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--ui-accent, #1676a8) 22%, transparent);
  --ui-shadow-modal: 0 24px 70px rgba(0, 0, 0, .28);
  --ui-shadow-dropdown: 0 12px 28px rgba(23, 47, 66, .16);
  --ui-shadow-popover: 0 18px 36px rgba(23, 47, 66, .14);
  --ui-z-popover: 32000;
  --ui-z-header: 30000;
  --ui-z-modal: 80000;
  --ui-z-notice: 90000;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--site-page-bg, #eaf3f6);
  color: var(--site-text, #173044);
}

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

strong,
b {
  font-weight: 900;
}

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

.site-header {
  position: relative;
  z-index: 30000;
  background-color: var(--site-header-bg, #172f42) !important;
  border-color: var(--site-header-nav-border, #315c73) !important;
  color: var(--site-header-text, #f5fbfd);
}

:where(
  .courses-intro p,
  .announcements-intro p,
  .history-hero p,
  .auth-card p,
  .account-hero p,
  .messages-hero p,
  .practice-hero p,
  .course-hero p,
  .node-hero p,
  .cms-page-body p,
  .cms-content-text,
  .site-footer-columns p,
  .site-footer-columns li
) {
  font-size: var(--ui-body-font-size, 15px);
}

:where(
  .hint,
  .crumb,
  .empty,
  .muted,
  small,
  .cms-media-preview-note,
  .site-footer-top,
  .table-card small,
  .global-upload-progress p
):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--ui-small-font-size, 12px);
}

:where(
  button,
  .primary,
  .quiet-button,
  .danger-button,
  .mode-pill,
  .node-open,
  .site-footer-button,
  .language-option,
  .language-modal-trigger,
  input,
  select,
  textarea
):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--ui-control-font-size, 12px);
}

:where(
  .courses-page,
  .announcements-page,
  .history-page,
  .auth-page,
  .account-page,
  .messages-page,
  .practice-page,
  .course-page,
  .node-page,
  .cms-page-shell
) {
  padding-top: var(--ui-section-spacing, 64px);
}

/* Core page templates formerly provided by the legacy site layer. */
.hero {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  min-height: var(--ui-hero-min-height, 540px);
}

.hero-copy {
  min-width: 0;
  padding: var(--ui-hero-padding-y, clamp(70px, 9vw, 132px)) var(--ui-page-padding-x, clamp(25px, 7vw, 117px));
}

.hero-copy > p:not(.eyebrow) {
  max-width: var(--ui-copy-measure, 420px);
  margin: 27px 0 32px;
  color: var(--ui-content-text, #506a76);
  line-height: 1.85;
}

.hero-art {
  position: relative;
  min-height: var(--ui-hero-min-height, 540px);
  overflow: hidden;
  background: var(--ui-home-art-bg, #172f42);
  color: var(--ui-home-art-text, #f6ecd3);
}

.main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(42px, 8vw, 115px);
  padding: 75px var(--ui-page-padding-x, clamp(24px, 6vw, 92px));
  background: var(--ui-surface, #fffdf7);
}

.course-list,
.notices {
  margin-top: 23px;
  border-top: 1px solid var(--ui-border-color, #bfd0da);
}

.course-row {
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr) 16px;
  gap: 8px;
  align-items: center;
  min-height: 65px;
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

.course-row > span,
.course-row i,
.notices i,
.round,
.tree-item > span,
.child-list a span,
.child-list a i {
  color: var(--ui-accent, #1676a8);
}

.course-row b,
.resource-row b,
.announcement-row b {
  display: block;
}

.course-row small {
  display: block;
  margin-top: 4px;
}

.notice-board {
  border-left: 1px solid var(--ui-border-color, #bfd0da);
  padding-left: clamp(31px, 4vw, 63px);
}

.section-line {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--ui-space-3, 12px);
}

.round {
  display: grid;
  place-items: center;
  width: var(--ui-icon-button-size, 36px);
  height: var(--ui-icon-button-size, 36px);
  border: 1px solid var(--ui-accent, #1676a8);
  border-radius: var(--ui-status-radius, 999px);
}

.notices article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 16px;
  gap: 12px;
  padding: 16px 0;
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

.notices p,
.announcement-row p {
  margin: 0;
  color: var(--ui-content-text, #506a76);
  line-height: 1.55;
}

.empty {
  color: var(--ui-muted, #607884);
  line-height: 1.7;
}

.mode-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0 var(--ui-page-padding-x, clamp(24px, 6vw, 92px));
  background: var(--ui-filter-bg, #f5fafb);
}

.mode-strip article {
  min-height: 220px;
  padding: 42px clamp(20px, 4vw, 55px) 42px 0;
  border-right: 1px solid var(--ui-border-color, #bfd0da);
}

.mode-strip article + article {
  padding-left: clamp(20px, 4vw, 55px);
}

.mode-strip article:last-child {
  border-right: 0;
}

.mode-strip p {
  max-width: 260px;
  color: var(--ui-content-text, #506a76);
  line-height: 1.7;
}

.home-section {
  padding: 72px var(--ui-page-padding-x, clamp(24px, 7vw, 112px));
  background: var(--ui-surface, #fffdf7);
}

.home-section:nth-of-type(even) {
  background: var(--site-page-bg, #eaf3f6);
}

.home-section-head {
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-6, 24px);
  align-items: flex-end;
  max-width: 1240px;
  margin: 0 auto 27px;
}

.home-section-head p:not(.eyebrow) {
  max-width: 570px;
  margin: 10px 0 0;
  color: var(--ui-muted, #607884);
  line-height: 1.7;
}

.course-cards,
.course-directory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-4, 16px);
  max-width: 1240px;
  margin-inline: auto;
}

.home-course-card,
.directory-course-card {
  display: flex;
  min-width: 0;
  min-height: 250px;
  flex-direction: column;
  padding: var(--ui-panel-padding, 24px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-empty-bg, #f7fbfc);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-card, 0 8px 22px rgba(23, 47, 66, .08));
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.directory-course-card {
  min-height: 290px;
  background: var(--ui-surface, #fffdf7);
}

.home-course-card:hover,
.directory-course-card:hover {
  border-color: color-mix(in srgb, var(--ui-accent, #1676a8) 34%, var(--ui-border-color, #bfd0da));
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
  transform: translateY(-3px);
}

.course-mark,
.directory-course-top span,
.course-node .node-symbol {
  color: var(--ui-accent, #1676a8);
}

.directory-course-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3, 12px);
}

.home-course-card h3,
.directory-course-card h2 {
  margin: 18px 0 9px;
}

.home-course-card p,
.directory-course-card p {
  margin: 0;
  color: var(--ui-muted, #607884);
  line-height: 1.7;
}

.home-course-card b,
.directory-course-card strong {
  margin-top: auto;
  padding-top: 20px;
  color: var(--ui-accent, #1676a8);
}

.home-learning-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--ui-space-4, 16px);
  align-items: center;
  max-width: 1240px;
  margin: 16px auto 0;
  padding: var(--ui-space-4, 16px) var(--ui-space-5, 20px);
  background: var(--site-header-bg, #172f42);
  color: var(--ui-inverse-text, #fff);
}

.home-learning-card span {
  color: var(--site-header-accent, #41b7db);
}

.home-learning-card small {
  color: var(--site-header-muted, #b9d3df);
}

.home-modes {
  padding-left: var(--ui-page-padding-x, clamp(24px, 7vw, 112px));
  padding-right: var(--ui-page-padding-x, clamp(24px, 7vw, 112px));
}

.home-promo {
  display: grid;
  gap: 30px;
  max-width: 1240px;
  margin: 56px auto;
  padding: clamp(28px, 5vw, 62px);
  background: var(--site-header-bg, #172f42);
  color: var(--ui-inverse-text, #fff);
}

.home-promo.with-image {
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.1fr);
}

.home-promo img {
  width: 100%;
  height: 100%;
  max-height: 360px;
  object-fit: cover;
}

.home-promo p:not(.eyebrow) {
  max-width: 620px;
  color: var(--site-footer-text, #d6e3e9);
  line-height: 1.8;
}

.courses-page {
  width: min(100%, 1260px);
  margin-inline: auto;
  padding: 65px clamp(24px, 7vw, 100px) 88px;
}

.courses-intro {
  max-width: 660px;
  margin-bottom: 44px;
}

.courses-intro > p:not(.eyebrow) {
  margin: 16px 0 0;
  color: var(--ui-muted, #607884);
  line-height: 1.8;
}

.course-progress {
  margin-top: auto;
  padding-top: 18px;
}

.course-progress i {
  display: block;
  height: 6px;
  background: var(--ui-border-color, #bfd0da);
}

.course-progress i b {
  display: block;
  height: 100%;
  background: var(--ui-accent, #1676a8);
}

.course-progress small {
  display: block;
  margin-top: 7px;
}

.course-detail-progress {
  margin-top: 20px;
}

:where(.course-detail-progress):not(.ui-action-row) {
  display: flex;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
}

.course-detail-progress span {
  padding: 6px 9px;
  background: var(--ui-filter-bg, #f5fafb);
  color: var(--ui-accent-text, #2d5368);
}

.course-tree {
  margin-top: 35px;
}

.course-node {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: var(--ui-space-3, 12px);
  align-items: center;
  padding: 18px 0;
  border-top: 1px solid var(--ui-border-color, #bfd0da);
}

.course-node.depth-1 {
  margin-left: 28px;
}

.course-node.depth-2 {
  margin-left: 56px;
}

.course-node.depth-3 {
  margin-left: 84px;
}

.course-node small {
  display: block;
}

.course-node b {
  display: block;
  margin-top: 3px;
}

.course-node p {
  margin: 5px 0 0;
  color: var(--ui-muted, #607884);
  line-height: 1.5;
}

.node-title-link {
  display: block;
}

.node-title-link:hover b,
.notice-link:hover h3 {
  color: var(--ui-accent, #1676a8);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.notice-link {
  display: block;
}

.notice-link:hover article {
  background: var(--ui-empty-bg, #f7fbfc);
}

.narrow-page {
  min-height: calc(100vh - 158px);
  padding: 88px 24px;
  background: var(--site-page-bg, #eaf3f6);
}

.auth-card {
  width: min(100%, 450px);
  margin: auto;
  padding: 43px;
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
}

.auth-card form {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  margin-top: 28px;
}

.auth-card label,
.editor-form label {
  display: block;
}

.course-page,
.node-page {
  width: min(100%, 1260px);
  margin-inline: auto;
  padding: 60px var(--ui-page-padding-x, clamp(24px, 7vw, 115px)) 82px;
}

.admin-page {
  width: min(100%, 1420px);
  margin-inline: auto;
  padding: 60px var(--ui-page-padding-x, clamp(24px, 7vw, 115px)) 82px;
}

.crumb {
  margin: 0 0 43px;
  color: var(--ui-muted, #607884);
}

.crumb a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.course-heading,
.node-heading {
  max-width: 730px;
}

.course-heading > p:not(.eyebrow),
.node-heading > p:not(.eyebrow),
.admin-hero p:not(.eyebrow),
.admin-title p {
  color: var(--ui-muted, #607884);
  line-height: 1.8;
}

.resource-panel {
  margin-top: 41px;
  padding: var(--ui-panel-padding, 24px);
  border-left: 4px solid var(--ui-accent, #1676a8);
  background: var(--ui-info-bg, #edf6f8);
}

.resource-panel a:not(.primary):not(.quiet-button):not(.ui-button) {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 14px;
  padding: 11px 0;
  border-top: 1px solid var(--ui-border-color, #bfd0da);
  color: var(--ui-accent-text, #2d5368);
}

.resource-panel a span {
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  padding: 3px 5px;
}

.resource-panel a span:last-child,
.resource-panel a b {
  margin-left: auto;
  color: var(--ui-accent, #1676a8);
}

.tree-panel,
.child-list {
  margin-top: 45px;
  padding: var(--ui-panel-padding, 24px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
}

.tree-item {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  min-height: 47px;
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

.tree-item.depth-1 {
  padding-left: 28px;
}

.tree-item.depth-2 {
  padding-left: 56px;
}

.tree-item.depth-3 {
  padding-left: 84px;
}

.child-list a {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) 20px;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

.admin-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ui-space-5, 20px);
  padding: clamp(32px, 5vw, 50px) clamp(24px, 5vw, 70px);
  background: var(--ui-filter-bg, #f5fafb);
}

.stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--ui-filter-bg, #f5fafb);
}

.stats article {
  padding: 25px clamp(25px, 5vw, 70px);
  border-top: 1px solid var(--ui-border-color, #bfd0da);
  border-right: 1px solid var(--ui-border-color, #bfd0da);
}

.stats article:last-child {
  border-right: 0;
}

.stats b,
.admin-actions span,
.admin-actions i,
.manager-list i {
  color: var(--ui-accent, #1676a8);
}

.admin-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 47px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
}

.admin-actions a {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 16px;
  gap: 8px;
  padding: 26px;
  border-right: 1px solid var(--ui-border-color, #bfd0da);
}

.admin-actions a:last-child {
  border-right: 0;
}

.manager-list {
  margin-top: 43px;
  padding: var(--ui-panel-padding, 24px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
}

.manager-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 15px;
  gap: 12px;
  align-items: center;
  min-height: 45px;
  border-top: 1px solid var(--ui-border-color, #bfd0da);
}

.admin-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--ui-space-5, 20px);
  margin-bottom: 36px;
}

.admin-grid {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
  gap: var(--ui-section-gap, 28px);
}

.editor-form,
.table-card {
  padding: var(--ui-panel-padding, 24px);
}

.announcement-row,
.resource-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

.resource-row {
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
}

.resource-row > span {
  border: 1px solid var(--ui-border-color, #bfd0da);
  padding: 6px;
}

.node-form {
  display: grid;
  grid-template-columns: 1.25fr .8fr 1fr 58px auto auto;
  gap: 6px;
  align-items: center;
  margin-top: 11px;
}

.node-form input,
.node-form select {
  min-width: 0;
}

@media (max-width: 820px) {
  .hero,
  .main-grid,
  .mode-strip,
  .admin-actions,
  .admin-grid {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    min-height: 440px;
    padding: 72px 26px 55px;
  }

  .hero-art {
    min-height: 330px;
  }

  .main-grid {
    padding: 52px 25px;
    gap: 52px;
  }

  .notice-board {
    padding-left: 0;
    border-left: 0;
  }

  .mode-strip {
    padding: 0 25px;
  }

  .mode-strip article,
  .mode-strip article + article {
    min-height: auto;
    padding: 27px 0;
    border-right: 0;
    border-bottom: 1px solid var(--ui-border-color, #bfd0da);
  }

  .course-page,
  .node-page,
  .admin-page {
    padding: 40px 25px 58px;
  }

  .admin-hero,
  .admin-title {
    align-items: flex-end;
    flex-flow: row wrap;
  }

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

  .admin-actions a {
    border-right: 0;
    border-bottom: 1px solid var(--ui-border-color, #bfd0da);
  }

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

  .node-form input:first-child,
  .node-form .check {
    grid-column: 1 / -1;
  }
}

@media (max-width: 450px) {
  .stats {
    grid-template-columns: 1fr;
  }

  .stats article {
    border-right: 0;
  }

  .resource-panel {
    padding: 18px;
  }
}

.site-header .brand i {
  color: var(--site-header-muted, #b9d3df);
}

.site-header nav a,
.site-header .underlined,
.site-header .link-button {
  color: var(--site-header-link, #d6e6ed);
}

.site-header nav a:hover,
.site-header .underlined:hover,
.site-header .link-button:hover {
  color: var(--site-header-accent, #41b7db);
}

.site-header .avatar {
  background: var(--site-header-avatar, #1676a8);
}

.menu-toggle {
  display: none;
  color: var(--site-header-text, #f5fbfd);
}

.site-header .brand {
  min-width: 0;
  overflow: visible;
  align-items: center;
}

.site-header .brand img {
  display: block;
  width: auto;
  height: auto;
  max-width: clamp(48px, 12vw, 170px);
  object-fit: contain;
  flex: 0 1 auto;
}

.site-header .brand .brand-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
  text-overflow: ellipsis;
  line-height: 1.28;
  padding-top: 2px;
}

.site-header .brand-title,
.site-header .brand-tagline {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.site-header .brand.no-tagline {
  align-items: center;
}

.site-header .brand.no-tagline .brand-copy {
  display: flex;
  align-items: center;
  padding-top: 0;
}

.site-header .header-menu {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.site-header .header-menu nav {
  min-width: 0;
  flex-wrap: wrap;
  row-gap: 8px;
}

.site-header .header-menu nav .inline-form,
.site-header .header-menu nav .nav-inline-form {
  display: inline-flex;
  margin: 0;
}

.site-header .header-menu nav .link-button {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.site-header .header-menu nav a,
.site-header .account a,
.site-header .link-button {
  overflow-wrap: anywhere;
}

.site-header.has-header-banner {
  --header-x: clamp(24px, 6vw, 92px);
  position: relative;
  isolation: isolate;
  min-height: var(--site-home-header-height, clamp(640px, 58vw, 1080px));
  height: auto !important;
  padding: clamp(34px, 5vw, 78px) var(--header-x) 0;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 0;
  border: 0;
  overflow: hidden;
  background-color: var(--site-header-bg, #172f42);
  background-image: none;
  color: var(--ui-inverse-text, #fff);
}

.site-header.has-header-banner::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background-color: var(--site-header-bg, #172f42);
  background-image: linear-gradient(180deg, var(--site-header-overlay-top, rgba(8, 16, 22, .08)), var(--site-header-overlay-mid, rgba(8, 16, 22, .28)) 48%, var(--site-header-overlay-bottom, rgba(8, 16, 22, .48))), var(--header-banner-image);
  background-position: var(--header-banner-position, center);
  background-size: cover;
  background-repeat: no-repeat;
  transform: translateZ(0);
  will-change: transform;
}

.site-home-banner-fixed {
  display: none;
}

body.home-banner-cover {
  background: var(--site-page-bg, #eaf3f6);
}

body.home-banner-cover .site-home-banner-fixed {
  display: block;
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  height: var(--site-home-header-height, clamp(640px, 58vw, 1080px));
  pointer-events: none;
  background-color: var(--site-header-bg, #172f42);
  background-image: linear-gradient(180deg, var(--site-header-overlay-top, rgba(8, 16, 22, .08)), var(--site-header-overlay-mid, rgba(8, 16, 22, .28)) 48%, var(--site-header-overlay-bottom, rgba(8, 16, 22, .48))), var(--header-banner-image);
  background-position: var(--header-banner-position, center center);
  background-size: cover;
  background-repeat: no-repeat;
  transform: translateZ(0);
  will-change: transform;
}

body.home-banner-cover .site-header.has-header-banner.header-banner-large {
  background-color: transparent !important;
}

body.home-banner-cover .site-header.has-header-banner.header-banner-large::before {
  background-color: transparent !important;
  background-image: none !important;
}

body.home-banner-cover > main,
body.home-banner-cover > .site-footer {
  position: relative;
  z-index: 1;
}

body.home-banner-cover > main {
  background: var(--site-page-bg, #eaf3f6);
}

.site-header.has-header-banner > * {
  position: relative;
  z-index: 1;
}

.site-header.has-header-banner.header-banner-small {
  min-height: var(--site-inner-header-height, clamp(520px, 42vw, 820px));
  grid-template-rows: minmax(120px, 1fr) auto;
  padding-top: clamp(24px, 4vw, 52px);
}

.site-header.has-header-banner.header-banner-small .brand {
  margin-bottom: clamp(22px, 3.5vw, 42px);
}

.site-header.has-header-banner.header-banner-small .brand img,
.site-header.has-header-banner.header-banner-small .brand b {
  max-width: clamp(62px, 7vw, 96px);
  max-height: clamp(62px, 7vw, 96px);
}

.site-header.has-header-banner.header-banner-small .brand .brand-copy {
  font-size: var(--site-inner-brand-name-size, clamp(24px, 3vw, 42px)) !important;
}

.site-header.has-header-banner.header-banner-small .brand i {
  font-size: var(--site-inner-brand-tagline-size, clamp(14px, 1.55vw, 22px)) !important;
}

.site-header.has-header-banner .brand {
  align-self: end;
  max-width: min(980px, 100%);
  margin: 0 0 clamp(32px, 5vw, 58px);
  gap: clamp(18px, 2.5vw, 30px);
  color: var(--ui-inverse-text, #fff);
  text-shadow: 0 3px 18px color-mix(in srgb, var(--ui-media-player-bg, #020506) 35%, transparent);
}

.site-header.has-header-banner .brand img {
  max-width: clamp(78px, 9vw, 125px);
  max-height: clamp(78px, 9vw, 125px);
  background: var(--ui-input-bg, #fff);
  box-shadow: 0 12px 34px color-mix(in srgb, var(--ui-media-player-bg, #020506) 20%, transparent);
}

.site-header.has-header-banner .brand b {
  display: grid;
  place-items: center;
  width: clamp(78px, 9vw, 125px);
  height: clamp(78px, 9vw, 125px);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  text-shadow: none;
}

.site-header.has-header-banner .brand .brand-copy {
  overflow: visible;
  color: var(--ui-inverse-text, #fff);
  text-overflow: clip;
  white-space: normal;
  font-size: var(--site-home-brand-name-size, clamp(34px, 4.1vw, 58px)) !important;
  line-height: 1.08;
  letter-spacing: 0;
}

.site-header.has-header-banner .brand i {
  color: var(--ui-inverse-text, #fff);
  font-family: inherit;
  font-size: var(--site-home-brand-tagline-size, clamp(18px, 2.1vw, 30px)) !important;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0;
}

.brand-line-mobile {
  display: none;
}

.brand-line-mobile > span {
  display: block;
}

.site-header.has-header-banner .header-menu {
  width: calc(100% + var(--header-x) * 2);
  min-width: 0;
  margin: 0 calc(var(--header-x) * -1);
  padding: 22px var(--header-x) 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px clamp(18px, 3vw, 46px);
  align-items: center;
  background: var(--site-header-nav-bg, #172f42);
  box-shadow: 0 -1px 0 color-mix(in srgb, var(--ui-inverse-text, #fff) 8%, transparent);
}

.site-header.has-header-banner .header-menu nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px clamp(26px, 4vw, 58px);
  margin: 0;
}

.site-header.has-header-banner .header-menu nav a,
.site-header.has-header-banner .header-menu nav .link-button,
.site-header.has-header-banner .account a,
.site-header.has-header-banner .link-button {
  color: var(--site-header-link, #f6f6f6);
  font-size: 14px;
  font-weight: 900;
  text-decoration-color: color-mix(in srgb, var(--ui-inverse-text, #fff) 45%, transparent);
}

.site-header.has-header-banner .header-menu nav a:hover,
.site-header.has-header-banner .account a:hover,
.site-header.has-header-banner .link-button:hover {
  color: var(--ui-inverse-text, #fff);
}

.site-header.has-header-banner .account {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.language-modal-trigger {
  flex: 0 0 auto;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center !important;
  gap: 8px;
  padding: 7px 11px !important;
  border: 1px solid color-mix(in srgb, var(--ui-inverse-text, #fff) 38%, transparent);
  background: color-mix(in srgb, var(--ui-input-bg, #fff) 95%, transparent);
  color: var(--ui-text, #173044);
  cursor: pointer;
  text-decoration: none !important;
}

.language-modal-trigger span:not(.language-modal-icon) {
  color: var(--ui-muted, #607884);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .06em;
}

.language-modal-trigger b {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}

.language-modal-icon {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ui-chip-bg, #e4eff3);
  color: var(--ui-accent, #1676a8);
  font-size: 12px;
  font-weight: 900;
}

.language-modal {
  position: fixed;
  z-index: 50000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  background: var(--ui-overlay, rgba(8, 24, 34, .62));
}

.language-modal[hidden] {
  display: none !important;
}

body.language-modal-open {
  overflow: hidden;
}

body.aural-dialog-open {
  overflow: hidden;
}

.language-modal-shell {
  width: min(420px, 100%);
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-modal, 0 24px 70px rgba(0, 0, 0, .3));
}

.language-modal-shell header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--ui-border-soft, #d4e1e6);
}

.language-modal-shell h2 {
  margin: 0;
  color: var(--ui-text, #173044);
  font-size: 18px;
}

.language-modal-shell header button {
  width: 52px;
  min-height: 52px;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  display: inline-grid;
  place-items: center;
  padding: 0;
  font-family: var(--ui-font, var(--sans));
  font-size: 44px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.language-modal-shell header button,
.message-toast button,
.flash-close {
  font-size: 0 !important;
}

.language-modal-shell header button::before,
.message-toast button::before,
.flash-close::before {
  content: "×";
  font-family: var(--ui-font, var(--sans));
  font-size: 32px;
  font-weight: 900;
  line-height: 1;
}

.message-toast button::before,
.flash-close::before {
  font-size: 28px;
}

.aural-dialog {
  position: fixed;
  inset: 0;
  z-index: 80000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: var(--ui-overlay, rgba(8, 24, 34, .58));
  backdrop-filter: blur(2px);
}

.aural-dialog-card {
  width: min(460px, 100%);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-modal-radius, 8px);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-modal, 0 24px 70px rgba(0, 0, 0, .28));
  color: var(--ui-text, #173044);
  padding: 20px;
}

.aural-dialog-card h2 {
  margin: 0;
  color: var(--ui-text, #173044);
  font-family: var(--type-font-display, var(--serif));
  font-size: min(22px, var(--type-section-title-size, 22px));
  font-weight: var(--type-section-title-weight, 800);
  line-height: 1.2;
}

.aural-dialog-card p {
  margin: 12px 0 0;
  color: var(--ui-muted, #607884);
  font-size: var(--type-content-font-size, 15px);
  font-weight: var(--type-content-weight, 500);
  line-height: var(--type-content-line-height, 1.65);
  white-space: pre-wrap;
}

.aural-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

.aural-dialog-button {
  min-width: 96px;
  min-height: 42px;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  border-radius: var(--ui-modal-radius, 8px);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  cursor: pointer;
  font-family: var(--type-font-ui, var(--ui-font, var(--sans)));
  font-size: var(--type-form-control-size, var(--ui-control-font-size, 13px));
  font-weight: 800;
}

.aural-dialog-button:hover,
.aural-dialog-button:focus-visible {
  border-color: var(--ui-accent, #1676a8);
  outline: none;
}

.aural-dialog-button.is-primary {
  border-color: var(--ui-accent, #1676a8);
  background: var(--ui-accent, #1676a8);
  color: var(--ui-inverse-text, #fff);
}

.aural-dialog-button.is-danger {
  border-color: var(--ui-danger, #b35243);
  background: var(--ui-danger, #b35243);
  color: var(--ui-inverse-text, #fff);
}

.aural-dialog-button.is-secondary {
  background: var(--ui-filter-bg, #f5f9fa);
}

.global-upload-progress {
  display: grid;
  gap: var(--ui-space-2, 8px);
  margin-top: var(--ui-space-4, 16px);
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-info-bg, #edf6f8);
}

.global-upload-progress[hidden] {
  display: none !important;
}

.global-upload-track {
  height: var(--ui-progress-height, 12px);
  border: 1px solid var(--ui-progress-track-border, #9eb9c5);
  border-radius: var(--ui-status-radius, 999px);
  background: var(--ui-progress-bg, #fff);
  overflow: hidden;
}

.global-upload-track span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--ui-accent, #1676a8);
  transition: width .18s ease;
}

.global-upload-progress.is-processing .global-upload-track span {
  width: 100%;
  background: linear-gradient(90deg, var(--ui-accent, #1676a8), var(--ui-success, #35a37d), var(--ui-accent, #1676a8));
  background-size: 220% 100%;
  animation: upload-progress-pulse 1.2s linear infinite;
}

.global-upload-progress.is-error {
  border-color: color-mix(in srgb, var(--ui-danger, #b35243) 42%, var(--ui-border-color, #bfd0da));
  background: var(--ui-danger-bg, #fbe7e2);
}

.global-upload-progress p {
  margin: 0;
  color: var(--ui-text, #294957);
  font-size: var(--type-helper-font-size, var(--ui-small-font-size, 12px));
  font-weight: 800;
  line-height: 1.5;
}

@keyframes upload-progress-pulse {
  from { background-position: 0 0; }
  to { background-position: 220% 0; }
}

.language-modal-options {
  display: grid;
  gap: 7px;
  padding: 12px;
}

.aural-inline-icon,
.aural-icon-chip {
  display: inline-flex;
  width: 1.2em;
  min-width: 1.2em;
  height: 1.2em;
  align-items: center;
  justify-content: center;
  vertical-align: -0.12em;
  line-height: 1;
}

.aural-inline-icon i,
.aural-icon-chip i {
  font-size: 1em;
  line-height: 1;
}

.aural-icon-chip {
  margin: 0 0.08em;
  color: inherit;
  user-select: none;
}

.aural-icon-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px;
  gap: 8px;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

.aural-icon-editable {
  min-width: 0;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  font: inherit;
  font-size: max(16px, 1em);
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  outline: none;
}

.aural-icon-editable:empty::before {
  content: attr(data-placeholder);
  color: var(--ui-muted, #607884);
}

.aural-icon-editable:focus {
  border-color: var(--ui-accent, #1676a8);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-accent, #1676a8) 14%, transparent);
}

.aural-icon-field.is-invalid .aural-icon-editable {
  border-color: var(--ui-danger, #b35243);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-danger, #b35243) 14%, transparent);
}

.aural-icon-insert {
  display: inline-grid;
  min-width: 42px;
  min-height: 42px;
  place-items: center;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  cursor: pointer;
}

.aural-icon-insert:hover,
.aural-icon-insert:focus-visible {
  border-color: var(--ui-accent, #1676a8);
  color: var(--ui-accent, #1676a8);
  outline: none;
}

body.aural-icon-modal-open {
  overflow: hidden;
}

.aural-icon-modal {
  position: fixed;
  inset: 0;
  z-index: 250;
  display: grid;
  place-items: center;
  padding: 18px;
  background: color-mix(in srgb, var(--ui-overlay, rgba(8, 24, 34, .58)) 80%, transparent);
}

.aural-icon-modal[hidden] {
  display: none !important;
}

.aural-icon-modal-shell {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  width: min(920px, 100%);
  max-height: min(720px, calc(100vh - 36px));
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-modal, 0 24px 70px rgba(0, 0, 0, .28));
}

.aural-icon-modal-shell header,
.aural-icon-search-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--ui-border-soft, #d4e1e6);
}

.aural-icon-modal-shell header {
  justify-content: space-between;
}

.aural-icon-modal-shell h2 {
  margin: 0;
  color: var(--ui-text, #173044);
  font-size: 18px;
}

.aural-icon-modal-shell [data-icon-close] {
  width: 42px;
  min-height: 42px;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  font-size: 0;
  cursor: pointer;
}

.aural-icon-modal-shell [data-icon-close]::before {
  content: "×";
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
}

.aural-icon-search-row input,
.aural-icon-search-row select {
  min-height: 42px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  font: 700 14px/1.4 inherit;
}

.aural-icon-search-row input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 9px 11px;
}

.aural-icon-search-row select {
  width: 128px;
  padding: 0 10px;
}

.aural-icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 8px;
  min-height: 0;
  padding: 12px;
  overflow: auto;
}

.aural-icon-choice {
  display: grid;
  gap: 6px;
  min-height: 98px;
  align-content: center;
  justify-items: center;
  padding: 10px 8px;
  border: 1px solid var(--ui-border-soft, #d4e1e6);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  cursor: pointer;
  text-align: center;
}

.aural-icon-choice:hover,
.aural-icon-choice:focus-visible {
  border-color: var(--ui-accent, #1676a8);
  background: var(--ui-info-bg, #edf6f8);
  outline: none;
}

.aural-icon-choice i {
  font-size: 24px;
}

.aural-icon-choice span,
.aural-icon-choice small {
  max-width: 100%;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

.aural-icon-choice span {
  color: var(--ui-text, #173044);
  font-size: 12px;
  font-weight: 800;
}

.aural-icon-choice small {
  color: var(--ui-muted, #607884);
  font-size: 11px;
  font-weight: 700;
}

.aural-icon-empty {
  margin: 0;
  padding: 0 16px 16px;
  color: var(--ui-muted, #607884);
  font-weight: 800;
}

@media (max-width: 820px) {
  .site-header.has-header-banner {
    --header-x: 0px;
    --mobile-hero-height: clamp(420px, var(--site-home-mobile-banner-fluid-height, 140vw), 660px);
    position: relative;
    overflow: hidden;
    min-height: calc(var(--mobile-hero-height) + 46px) !important;
    height: auto !important;
    padding: 0;
    grid-template-columns: 1fr !important;
    grid-template-rows: var(--mobile-hero-height) auto auto !important;
    align-content: start;
    align-items: stretch;
    background-attachment: scroll;
    background-image: none !important;
  }

  .site-header.has-header-banner.header-banner-small {
    --mobile-hero-height: clamp(170px, var(--site-inner-mobile-banner-fluid-height, 50vw), 260px);
    min-height: calc(var(--mobile-hero-height) + 46px) !important;
    height: auto !important;
    padding-top: 0 !important;
  }

  .site-header.has-header-banner::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0 0 auto;
    height: var(--mobile-hero-height);
    background-color: var(--site-header-bg, #172f42);
    background-image: linear-gradient(180deg, var(--site-header-overlay-top, rgba(8, 16, 22, .08)), var(--site-header-overlay-mid, rgba(8, 16, 22, .28)) 48%, var(--site-header-overlay-bottom, rgba(8, 16, 22, .48))), var(--header-banner-mobile-image, var(--header-banner-image));
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  body.home-banner-cover .site-home-banner-fixed {
    height: clamp(420px, var(--site-home-mobile-banner-fluid-height, 140vw), 660px);
    background-image: linear-gradient(180deg, var(--site-header-overlay-top, rgba(8, 16, 22, .08)), var(--site-header-overlay-mid, rgba(8, 16, 22, .28)) 48%, var(--site-header-overlay-bottom, rgba(8, 16, 22, .48))), var(--header-banner-mobile-image, var(--header-banner-image));
    background-position: var(--header-banner-mobile-position, center center);
  }

  .site-header.has-header-banner > * {
    position: relative;
    z-index: 1;
  }

  .site-header.has-header-banner .brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end;
    align-items: center;
    justify-items: start;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 clamp(24px, 8vw, 44px) clamp(46px, 10vw, 78px);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(12px, 4vw, 22px);
  }

  .site-header.has-header-banner.header-banner-small .brand {
    margin-bottom: 0 !important;
    align-items: center;
  }

  .site-header.has-header-banner .brand img,
  .site-header.has-header-banner .brand b {
    grid-column: 1;
    align-self: center;
    justify-self: start;
    width: clamp(66px, 19vw, 104px);
    max-width: clamp(66px, 19vw, 104px);
    height: clamp(66px, 19vw, 104px);
    max-height: clamp(66px, 19vw, 104px);
    flex: 0 0 auto;
  }

  .site-header.has-header-banner .brand .brand-copy {
    grid-column: 2;
    align-self: center;
    justify-self: start;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
    width: auto;
    padding-top: 0 !important;
    font-size: var(--site-home-mobile-brand-name-size, clamp(22px, 7vw, 42px)) !important;
    letter-spacing: 0;
    overflow: visible;
    transform: none !important;
  }

  .site-header.has-header-banner .brand-title,
  .site-header.has-header-banner .brand-tagline {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-break: anywhere;
    hyphens: auto;
    transform-origin: left center;
  }

  .site-header .brand-title.has-mobile-lines .brand-line-default,
  .site-header .brand-tagline.has-mobile-lines .brand-line-default {
    display: none;
  }

  .site-header .brand-title.has-mobile-lines .brand-line-mobile,
  .site-header .brand-tagline.has-mobile-lines .brand-line-mobile {
    display: block;
  }

  .site-header.has-header-banner .brand i {
    display: block;
    font-size: var(--site-home-mobile-brand-tagline-size, clamp(13px, 3.2vw, 22px)) !important;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-break: anywhere;
    hyphens: auto;
  }

  .site-header.has-header-banner.header-banner-small .brand .brand-copy {
    font-size: var(--site-inner-mobile-brand-name-size, clamp(19px, 5.8vw, 34px)) !important;
  }

  .site-header.has-header-banner.header-banner-small .brand i {
    font-size: var(--site-inner-mobile-brand-tagline-size, clamp(12px, 3vw, 18px)) !important;
  }

  .site-header.has-header-banner .menu-toggle {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100%;
    min-height: 46px;
    height: 46px;
    display: inline-flex;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: var(--site-header-nav-bg, #172f42);
    color: var(--ui-inverse-text, #fff);
    font-size: 15px;
    font-weight: 900;
    align-items: center;
  }

  .site-header .menu-toggle {
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.1 !important;
  }

  .site-header.has-header-banner .header-menu {
    grid-column: 1 !important;
    grid-row: 3 !important;
    width: 100%;
    margin: 0;
    padding: 0 24px 22px;
    display: none;
    grid-template-columns: 1fr;
    gap: 0;
    background: var(--site-header-nav-bg, #172f42);
  }

  .site-header.has-header-banner .header-menu.is-open {
    display: grid;
  }

  .site-header.has-header-banner .header-menu nav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .site-header.has-header-banner .header-menu nav a,
  .site-header.has-header-banner .header-menu nav .link-button,
  .site-header.has-header-banner .account .underlined,
  .site-header.has-header-banner .account .link-button {
    display: block;
    width: 100%;
    padding: 10px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--site-header-link, #d6e6ed) 16%, transparent);
    text-align: left;
  }

  .site-header.has-header-banner .header-menu nav .inline-form,
  .site-header.has-header-banner .header-menu nav .nav-inline-form {
    display: block;
    width: 100%;
  }

  .site-header.has-header-banner .header-menu nav .nav-inline-form .link-button {
    width: 100%;
    text-align: left;
  }

  .site-header.has-header-banner .language-switcher {
    padding: 10px 0;
  }

  .site-header.has-header-banner .account {
    display: grid;
    gap: 0;
    padding: 0;
    width: 100%;
    justify-self: stretch;
    justify-items: stretch !important;
    align-items: stretch !important;
  }

  .site-header.has-header-banner .account,
  .site-header.has-header-banner .account .underlined,
  .site-header.has-header-banner .account .link-button,
  .site-header.has-header-banner .account .inline-form {
    width: 100%;
    text-align: left !important;
    justify-content: flex-start !important;
    justify-items: stretch !important;
    justify-self: stretch !important;
  }

  .site-header.has-header-banner .account .avatar {
    display: none;
  }

  .site-header.has-header-banner .language-modal-trigger {
    width: 100%;
    justify-content: flex-start !important;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--site-header-link, #d6e6ed) 16%, transparent);
    background: transparent;
    color: var(--site-header-link, #f6f6f6);
  }

  .site-header.has-header-banner .language-modal-trigger span:not(.language-modal-icon),
  .site-header.has-header-banner .language-modal-trigger b {
    color: var(--site-header-link, #f6f6f6);
  }
}

@media (max-width: 820px) {
  .site-header .menu-toggle {
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
    align-items: center !important;
  }

  .site-header .header-menu {
    padding-top: 0 !important;
    padding-bottom: 22px !important;
  }

  .site-header .header-menu nav a,
  .site-header .header-menu nav .link-button,
  .site-header .account .underlined,
  .site-header .account .link-button,
  .site-header .account .inline-form,
  .site-header .language-modal-trigger {
    width: 100% !important;
    min-height: 0 !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    line-height: 1.35 !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }

  .site-header .header-menu nav .inline-form,
  .site-header .header-menu nav .nav-inline-form,
  .site-header .account .inline-form {
    display: block !important;
    width: 100% !important;
    justify-self: stretch !important;
  }

  .site-header .account {
    justify-self: stretch !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
  }

  .site-header:not(.has-header-banner) .menu-toggle {
    width: 100%;
    min-height: 46px !important;
    height: 46px !important;
    display: inline-flex;
    justify-content: center;
    border-radius: 0;
    font-size: 15px;
    font-weight: 900;
  }

  .site-header:not(.has-header-banner) .header-menu {
    padding-top: 0 !important;
    padding-bottom: 22px !important;
    gap: 0 !important;
  }

  .site-header:not(.has-header-banner) .header-menu nav a,
  .site-header:not(.has-header-banner) .header-menu nav .link-button,
  .site-header:not(.has-header-banner) .account .underlined,
  .site-header:not(.has-header-banner) .account .link-button,
  .site-header:not(.has-header-banner) .language-modal-trigger {
    display: block;
    width: 100%;
    min-height: 0;
    padding: 10px 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--site-header-link, #d6e6ed) 16%, transparent);
    line-height: 1.35;
    text-align: left !important;
    justify-content: flex-start !important;
    justify-self: stretch !important;
  }

  .site-header:not(.has-header-banner) .account,
  .site-header:not(.has-header-banner) .account .inline-form {
    width: 100%;
    justify-self: stretch !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
  }

  .site-header:not(.has-header-banner) .brand {
    align-items: center;
    gap: 10px;
  }

  .site-header:not(.has-header-banner) .brand img,
  .site-header:not(.has-header-banner) .brand b {
    max-width: clamp(42px, 16vw, 76px);
    max-height: clamp(42px, 16vw, 76px);
  }

  .site-header:not(.has-header-banner) .brand .brand-copy {
    align-self: center;
    min-width: 0;
    max-width: 100%;
    padding-top: 0 !important;
    overflow: visible;
    letter-spacing: 0;
    line-height: 1.2;
    transform: none !important;
  }

  .site-header:not(.has-header-banner) .brand-title,
  .site-header:not(.has-header-banner) .brand-tagline {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-break: anywhere;
    transform-origin: left center;
  }

  .site-header:not(.has-header-banner) .brand i {
    display: block;
  }

  .site-header .header-menu nav a,
  .site-header .header-menu nav .link-button,
  .site-header .account .underlined,
  .site-header .account .link-button,
  .site-header .language-modal-trigger {
    min-height: 0 !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    line-height: 1.35 !important;
  }

  .site-header .header-menu .language-modal-trigger {
    width: 100%;
    justify-content: flex-start !important;
    margin-top: 0;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--site-header-nav-border, #315c73) 30%, transparent);
    background: transparent;
    color: var(--site-header-link, #d6e6ed);
  }

  .site-header .header-menu .language-modal-trigger span:not(.language-modal-icon),
  .site-header .header-menu .language-modal-trigger b {
    color: var(--site-header-link, #d6e6ed);
  }

  .site-header:not(.has-header-banner) .header-menu,
  .site-header:not(.has-header-banner) .account {
    width: 100%;
    justify-self: stretch;
    justify-items: stretch !important;
    align-items: stretch !important;
  }

  .site-header:not(.has-header-banner) .account,
  .site-header:not(.has-header-banner) .account .underlined,
  .site-header:not(.has-header-banner) .account .link-button,
  .site-header:not(.has-header-banner) .account .inline-form {
    width: 100%;
    text-align: left !important;
    justify-content: flex-start !important;
    justify-items: stretch !important;
    justify-self: stretch !important;
  }
}

@media (max-width: 820px) {
  .site-header .menu-toggle,
  .site-header.has-header-banner .menu-toggle,
  .site-header.has-header-banner.header-banner-small .menu-toggle,
  .site-header:not(.has-header-banner) .menu-toggle {
    box-sizing: border-box !important;
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1.1 !important;
  }

  .site-header .header-menu,
  .site-header.has-header-banner .header-menu,
  .site-header.has-header-banner.header-banner-small .header-menu,
  .site-header:not(.has-header-banner) .header-menu {
    padding-top: 0 !important;
  }

  body.header-banner-small .site-header.has-header-banner,
  .site-header.has-header-banner.header-banner-small {
    min-height: calc(var(--mobile-hero-height) + 46px) !important;
    height: auto !important;
    grid-template-rows: var(--mobile-hero-height) minmax(0, 46px) 0 !important;
    align-content: start !important;
  }

  body.header-banner-small.site-menu-is-open .site-header.has-header-banner,
  body.site-menu-is-open .site-header.has-header-banner.header-banner-small {
    grid-template-rows: var(--mobile-hero-height) minmax(0, 46px) auto !important;
  }

  body.header-banner-small .site-header.has-header-banner .menu-toggle,
  .site-header.has-header-banner.header-banner-small .menu-toggle {
    max-height: 46px !important;
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
    align-self: stretch;
    overflow: hidden !important;
  }

  body.header-banner-small .site-header.has-header-banner .header-menu,
  .site-header.has-header-banner.header-banner-small .header-menu {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
  }

  body.header-banner-small .site-header.has-header-banner .header-menu.is-open,
  .site-header.has-header-banner.header-banner-small .header-menu.is-open {
    display: grid !important;
    height: auto !important;
    max-height: none !important;
    padding: 0 24px 22px !important;
    overflow: visible !important;
  }

  body.header-banner-small .site-header.has-header-banner .header-menu:not(.is-open),
  .site-header.has-header-banner.header-banner-small .header-menu:not(.is-open) {
    display: none !important;
  }
}

@media (max-width: 480px) {
  .site-header.has-header-banner .brand {
    padding-left: clamp(18px, 7vw, 34px);
    padding-right: clamp(18px, 7vw, 34px);
    gap: clamp(10px, 3vw, 14px);
  }

  .site-header.has-header-banner .brand img,
  .site-header.has-header-banner .brand b {
    width: clamp(58px, 18vw, 82px);
    max-width: clamp(58px, 18vw, 82px);
    height: clamp(58px, 18vw, 82px);
    max-height: clamp(58px, 18vw, 82px);
  }

  .site-header.has-header-banner .brand .brand-copy {
    font-size: var(--site-home-compact-mobile-brand-name-size, clamp(17px, 6vw, 28px)) !important;
  }

  .site-header.has-header-banner .brand i {
    font-size: var(--site-home-compact-mobile-brand-tagline-size, clamp(11px, 3.6vw, 16px)) !important;
  }

  .site-header.has-header-banner.header-banner-small .brand .brand-copy {
    font-size: var(--site-inner-compact-mobile-brand-name-size, clamp(17px, 5.5vw, 26px)) !important;
  }

  .site-header.has-header-banner.header-banner-small .brand i {
    font-size: var(--site-inner-compact-mobile-brand-tagline-size, clamp(11px, 3.4vw, 15px)) !important;
  }
}

@media (max-width: 820px) {
  body.header-banner-small .site-header.has-header-banner.header-banner-small,
  .site-header.has-header-banner.header-banner-small {
    padding-top: 0 !important;
    grid-template-rows: var(--mobile-hero-height) 46px 0 !important;
  }

  body.header-banner-small.site-menu-is-open .site-header.has-header-banner.header-banner-small,
  body.site-menu-is-open .site-header.has-header-banner.header-banner-small {
    grid-template-rows: var(--mobile-hero-height) 46px auto !important;
  }

  body.header-banner-small .site-header.has-header-banner.header-banner-small::before,
  .site-header.has-header-banner.header-banner-small::before {
    height: var(--mobile-hero-height) !important;
  }

  body.header-banner-small .site-header.has-header-banner.header-banner-small .brand,
  .site-header.has-header-banner.header-banner-small .brand {
    margin-bottom: 0 !important;
    padding-bottom: clamp(46px, 10vw, 78px) !important;
  }

  body.header-banner-small .site-header.has-header-banner.header-banner-small .menu-toggle,
  .site-header.has-header-banner.header-banner-small .menu-toggle {
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
  }
}

.header-mode-immersive .header-menu.is-stuck {
  position: fixed;
  z-index: 41000;
  top: 0;
  left: 0;
  right: 0;
  width: 100% !important;
  margin: 0 !important;
  padding-left: var(--header-x, clamp(24px, 6vw, 92px));
  padding-right: var(--header-x, clamp(24px, 6vw, 92px));
}

body.header-menu-is-stuck .site-header.has-header-banner {
  padding-bottom: var(--stuck-header-menu-height, 0px);
}

body.header-menu-is-stuck .cms-wp-editor-topbar {
  top: var(--stuck-header-menu-height, 0px);
  z-index: 40500;
}

.language-switcher {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
}

.language-switcher summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 11px;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  cursor: pointer;
  list-style: none;
}

.language-switcher summary::-webkit-details-marker {
  display: none;
}

.language-switcher summary::after {
  content: "⌄";
  color: var(--ui-content-text, #506a76);
  font-size: 12px;
}

.language-switcher[open] summary::after {
  transform: rotate(180deg);
}

@media (min-width: 821px) {
  .site-header .menu-toggle,
  .site-header.has-header-banner .menu-toggle,
  .site-header.has-header-banner.header-banner-small .menu-toggle,
  .site-header:not(.has-header-banner) .menu-toggle {
    display: none !important;
  }
}

.language-switcher summary span {
  color: var(--ui-muted, #607884);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
}

.language-switcher summary b {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}

.language-popover {
  position: absolute;
  z-index: 120;
  top: calc(100% + 8px);
  right: 0;
  width: min(280px, calc(100vw - 32px));
  padding: 7px;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
}

.language-popover form {
  margin: 0;
}

.language-option {
  width: 100%;
  min-height: 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  color: var(--ui-text, #173044);
  text-align: left;
  cursor: pointer;
}

.language-option:hover,
.language-option:focus-visible,
.language-option[aria-current="true"] {
  background: var(--ui-control-hover-bg, #eef6f8);
}

.language-option b {
  font-size: 12px;
  overflow-wrap: anywhere;
}

.language-option small {
  color: var(--ui-muted, #607884);
  font-size: 10px;
  font-weight: 800;
}

.back-to-top {
  position: fixed !important;
  z-index: 20000 !important;
  right: calc(18px + env(safe-area-inset-right)) !important;
  bottom: calc(18px + var(--back-to-top-footer-offset, 0px) + env(safe-area-inset-bottom)) !important;
  display: inline-grid;
  place-items: center;
  width: 42px;
  min-width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0 !important;
  border: 1px solid var(--ui-border-color, #bfd0da) !important;
  border-radius: 50% !important;
  background: var(--ui-surface, #fffdf7) !important;
  color: var(--ui-accent, #1676a8) !important;
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18)) !important;
  font-size: 20px !important;
  font-weight: 800;
  line-height: 1 !important;
  cursor: pointer;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  border-color: var(--ui-accent, #1676a8) !important;
  background: var(--ui-accent, #1676a8) !important;
  color: var(--ui-inverse-text, #fff) !important;
}

.back-to-top[hidden] {
  display: none !important;
}

@media (max-width: 820px) {
  .site-header .header-menu .language-switcher {
    width: 100%;
    flex-basis: auto;
    padding: 11px 7px;
    border-bottom: 1px solid color-mix(in srgb, var(--site-header-nav-border, #315c73) 30%, transparent);
  }

  .site-header .header-menu .language-switcher summary {
    width: 100%;
    min-height: 42px;
    justify-content: space-between;
  }

  .site-header .header-menu .language-popover {
    position: static;
    width: 100%;
    margin-top: 8px;
    box-shadow: none;
  }
}

.message-count {
  font-weight: 800;
  color: var(--ui-danger, #b35243);
}

.message-count[hidden],
.message-toast[hidden] {
  display: none;
}

.flash-stack {
  position: fixed;
  z-index: 90000;
  top: calc(env(safe-area-inset-top, 0px) + 16px);
  right: 22px;
  width: min(420px, calc(100vw - 44px));
  display: grid;
  gap: 10px;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  pointer-events: none;
}

.flash {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0 !important;
  max-width: none !important;
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
  pointer-events: auto;
}

.flash-message {
  flex: 1 1 auto;
  min-width: 0;
}

.flash-countdown,
.message-toast-countdown {
  color: var(--ui-muted, #607884);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
  white-space: nowrap;
}

.flash-countdown {
  flex: 0 0 auto;
  margin-top: 5px;
}

.flash-countdown[hidden],
.message-toast-countdown[hidden] {
  display: none !important;
}

.flash-close {
  display: inline-grid;
  place-items: center;
  width: 34px;
  min-width: 34px;
  height: 34px;
  border: 1px solid transparent;
  background: transparent;
  color: inherit;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.message-toast {
  position: fixed;
  z-index: 90010;
  top: calc(env(safe-area-inset-top, 0px) + 16px);
  right: 22px;
  max-width: min(360px, calc(100vw - 32px));
  padding: 16px 18px;
  background: var(--ui-surface, #fffdf7);
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
  color: var(--ui-text, #173044);
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
}

.flash-stack ~ .message-toast {
  top: calc(env(safe-area-inset-top, 0px) + 104px);
}

.message-toast b {
  display: block;
  margin: 0 28px 5px 0;
  font: 700 19px var(--serif);
}

.message-toast p {
  margin: 0 0 12px;
  color: var(--ui-content-text, #506a76);
  font-size: 12px;
  line-height: 1.65;
}

.message-toast-countdown {
  display: block;
  margin: -4px 0 10px;
}

.message-toast a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 10px;
  background: var(--ui-accent, #1676a8);
  color: var(--ui-inverse-text, #fff);
  font-size: 12px;
}

.message-toast button {
  position: absolute;
  right: 10px;
  top: 9px;
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ui-content-text, #506a76);
  cursor: pointer;
}

@media (max-width: 820px) {
  .flash-stack {
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    left: auto;
    right: 14px;
    width: auto;
    max-width: calc(100vw - 28px);
    transform: none;
  }

  .message-toast {
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    left: auto;
    right: 14px;
    width: min(360px, calc(100vw - 28px));
    max-width: none;
    transform: none;
  }

  .flash-stack ~ .message-toast {
    top: calc(env(safe-area-inset-top, 0px) + 100px);
  }
}

.rich-site-footer {
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 22px;
  align-items: stretch !important;
  justify-content: stretch !important;
  padding: 30px clamp(24px, 6vw, 92px) !important;
  background: var(--site-header-bg, #102839) !important;
  color: var(--site-header-link, #d6e3e9) !important;
  letter-spacing: 0 !important;
}

.site-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding-bottom: 18px;
  border-bottom: 1px solid color-mix(in srgb, var(--site-header-link, #d6e3e9) 20%, transparent);
}

.site-footer-tagline {
  justify-self: end;
  text-align: right;
}

.site-footer-copyright,
.site-footer-tagline {
  max-width: 100%;
  color: var(--site-header-link, #d6e3e9);
  font-size: 1em;
  font-weight: 800;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.site-footer-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 70px);
}

.site-footer-columns section {
  min-width: 0;
}

.site-footer-columns h2,
.site-footer-columns h3,
.site-footer-columns h4 {
  margin: 0 0 10px;
  color: var(--ui-inverse-text, #fff);
  font-family: var(--sans);
  font-size: 1.15em;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0;
}

.site-footer-columns p,
.site-footer-columns li {
  margin: 0 0 9px;
  color: var(--site-header-muted, #b9d3df);
  font-size: .95em;
  line-height: 1.75;
}

.site-footer-columns ul,
.site-footer-columns ol {
  margin: 0 0 10px 1.3em;
  padding: 0;
}

.site-footer-columns hr {
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--site-header-link, #d6e3e9) 18%, transparent);
  margin: 14px 0;
}

.site-footer-button {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb, var(--site-header-link, #d6e3e9) 55%, transparent);
  color: var(--ui-inverse-text, #fff);
  font-weight: 900;
}

.admin-action-group {
  margin-top: 42px;
}

.admin-action-group > h2 {
  margin-bottom: 16px;
}

.planned-actions {
  background: var(--ui-filter-bg, #f5fafb);
}

.planned-card {
  border-radius: 0;
  border-width: 0 1px 0 0;
  box-shadow: none;
}

.planned-card span {
  color: var(--ui-muted, #607884);
}

.planned-card b {
  color: var(--ui-text, #173044);
  font-size: var(--type-card-title-size, 13px);
}

.planned-card p {
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.5;
}

.planned-card i {
  border-color: var(--ui-border-color, #bfd0da);
  color: var(--ui-muted, #607884);
}

@media (max-width: 820px) {
  .planned-card {
    border-right: 0;
    border-bottom: 1px solid var(--ui-border-color, #bfd0da);
  }
}

:where(input:not([type]),
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
input[type="week"]) {
  box-sizing: border-box !important;
  min-height: var(--form-control-height, 40px) !important;
  height: var(--form-control-height, 40px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1.2 !important;
}

:where(select:not([multiple]), .select-menu, .sibling-menu, .attempt-sibling-menu, .ui-menu) {
  min-height: var(--form-control-height, 40px) !important;
}

select[hidden],
select[data-appearance-media-select][hidden],
select[data-appearance-media-select],
select[data-appearance-media-select] + .select-menu,
select[data-media-library-select],
select[data-media-library-select] + .select-menu,
select[data-cms-editor-field-type="media"],
select[data-cms-editor-field-type="galleryMedia"],
select[data-cms-editor-field-type="media"] + .select-menu,
select[data-cms-editor-field-type="galleryMedia"] + .select-menu,
.select-menu[hidden] {
  display: none !important;
}

:where(select:not([multiple]),
.select-menu summary,
.sibling-menu summary,
.attempt-sibling-menu summary,
.ui-menu summary) {
  box-sizing: border-box !important;
  min-height: var(--form-control-height, 40px) !important;
  height: var(--form-control-height, 40px) !important;
  display: flex !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1.2 !important;
}

select[hidden],
select[data-appearance-media-select][hidden],
select[data-appearance-media-select],
select[data-appearance-media-select] + .select-menu,
select[data-media-library-select],
select[data-media-library-select] + .select-menu,
select[data-cms-editor-field-type="media"],
select[data-cms-editor-field-type="galleryMedia"],
select[data-cms-editor-field-type="media"] + .select-menu,
select[data-cms-editor-field-type="galleryMedia"] + .select-menu,
.select-menu[hidden] {
  display: none !important;
}

:where(.select-menu summary, .sibling-menu summary, .attempt-sibling-menu summary, .ui-menu summary) {
  justify-content: space-between;
}

.custom-select-source {
  display: none !important;
}

.select-menu {
  position: relative;
}

.select-menu summary {
  cursor: pointer;
  user-select: none;
}

.select-menu summary::-webkit-details-marker {
  display: none;
}

.select-menu-options {
  position: absolute;
  z-index: 32000;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  display: grid;
  min-width: max(100%, 180px);
  max-height: min(320px, 45vh);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
}

.select-menu-options button {
  width: 100%;
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid var(--ui-border-soft, #d4e1e6);
  background: transparent;
  color: var(--ui-text, #173044);
  text-align: left;
  cursor: pointer;
}

.select-menu-options button:last-child {
  border-bottom: 0;
}

.select-menu-options button:hover,
.select-menu-options button.selected {
  background: var(--ui-control-hover-bg, #eef6f8);
}

.country-region-combobox {
  position: relative;
  width: 100%;
}

.country-region-combobox input {
  width: 100%;
}

.country-region-options {
  position: absolute;
  z-index: 32000;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  display: grid;
  max-height: min(320px, 45vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  background: var(--ui-surface, #fffdf7);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
}

.country-region-options[hidden] {
  display: none !important;
}

.country-region-options button {
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid var(--ui-border-soft, #d4e1e6);
  background: transparent;
  color: var(--ui-text, #173044);
  text-align: left;
  cursor: pointer;
}

.country-region-options button:last-child {
  border-bottom: 0;
}

.country-region-options button:hover,
.country-region-options button.selected {
  background: var(--ui-control-hover-bg, #eef6f8);
}

.country-region-more {
  display: block;
  padding: 8px 12px;
  color: var(--ui-muted, #607884);
  font-size: 12px;
  font-weight: 800;
  background: var(--ui-page-soft-bg, #f4f8f9);
}

.country-region-hint {
  margin: 5px 0 0;
  color: var(--ui-muted, #607884);
  font-size: 12px;
  line-height: 1.5;
}

.country-region-empty {
  display: block;
  padding: 10px 12px;
  color: var(--ui-danger, #b35243);
  font-size: 12px;
  font-weight: 800;
  background: var(--ui-note-bg, #fff8f5);
}

:where(textarea, input[type="file"], input[type="range"], input[type="color"]) {
  height: auto !important;
}

.range-control {
  display: grid !important;
  grid-template-columns: minmax(110px, 1fr) minmax(72px, 96px);
  gap: 9px;
  align-items: center;
  width: 100%;
  margin-top: 6px;
}

.range-control input[type="range"] {
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--ui-accent, #1676a8);
}

.range-control input[type="number"] {
  width: 100% !important;
  margin: 0 !important;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.pdf-resource-panel {
  display: grid;
  gap: var(--ui-section-gap, 18px);
}

.pdf-resource-card {
  display: grid;
  gap: var(--ui-space-3, 12px);
  margin-top: var(--ui-space-3, 12px);
  padding: var(--ui-card-padding, 14px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
}

.pdf-resource-card header {
  display: flex;
  align-items: center;
  gap: var(--ui-field-gap, 10px);
  min-width: 0;
  margin-bottom: 0;
}

.pdf-resource-card h3 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--ui-text, #173044);
  font-size: var(--type-card-title-size, 15px);
  line-height: 1.4;
}

.pdf-resource-card iframe {
  display: block;
  width: 100%;
  height: min(72vh, 720px);
  min-height: 420px;
  border: 1px solid var(--ui-border-subtle, #cbd9df);
  background: var(--ui-input-bg, #fff);
}

.pdf-resource-card p {
  margin: 0;
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.6;
}

.pdf-resource-actions {
  margin-top: 10px;
}

:where(.pdf-resource-actions):not(.ui-action-row) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.pdf-resource-actions p {
  flex: 1;
  margin: 0 !important;
}

.resource-panel .pdf-resource-card .pdf-resource-actions .quiet-button {
  margin: 0;
}

.pdf-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 34px;
  height: 42px;
  border: 2px solid var(--ui-accent, #1676a8);
  border-radius: 4px;
  background: linear-gradient(180deg, var(--ui-input-bg, #fff), var(--ui-pdf-icon-page-bg, #edf7fa));
  box-shadow: inset 0 -9px 0 var(--ui-pdf-icon-fold, #dcebf1);
  font-size: 0;
  line-height: 0;
}

.pdf-resource-card header .pdf-icon,
.resource-edit-card summary .pdf-icon,
.course-resource-list .pdf-icon {
  display: inline-block;
  padding: 0;
  border: 2px solid var(--ui-accent, #1676a8);
  color: transparent;
  font: 0/0 var(--sans);
}

.pdf-icon::before {
  content: "";
  position: absolute;
  right: -2px;
  top: -2px;
  width: 13px;
  height: 13px;
  background: linear-gradient(135deg, var(--ui-pdf-icon-fold, #dcebf1) 0 48%, var(--ui-accent, #1676a8) 49% 62%, transparent 63%);
  border-top-right-radius: 3px;
}

.pdf-icon::after {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  top: 18px;
  height: 2px;
  background: var(--ui-pdf-icon-mark, #c95d48);
  box-shadow: 0 6px 0 var(--ui-pdf-icon-mark, #c95d48), 0 12px 0 var(--ui-border-strong, #9eb9c5);
}

.language-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 22px;
}

.language-notes article {
  padding: 18px;
  background: var(--ui-surface, #fffdf7);
  border: 1px solid var(--ui-note-border, #deded1);
}

.language-notes b {
  display: block;
  color: var(--ui-text, #173044);
  font-size: 13px;
}

.language-notes p {
  margin: 7px 0 0;
  color: var(--ui-note-text, #65746c);
  font-size: 11px;
  line-height: 1.65;
}

.language-notes code {
  padding: 1px 4px;
  background: var(--ui-code-bg, #edf3f6);
  color: var(--ui-accent, #1676a8);
}

.language-form h2 + .language-grid,
.language-form h2 + .hint + .language-row {
  margin-top: 14px;
}

.language-grid {
  display: grid;
  gap: var(--ui-field-gap, 10px);
}

.language-grid-head,
.language-row {
  display: grid;
  grid-template-columns: 72px minmax(105px, .8fr) minmax(160px, 1fr) minmax(150px, 1fr) minmax(150px, 1fr) 78px minmax(130px, .85fr);
  gap: var(--ui-field-gap, 10px);
  align-items: end;
}

.language-grid-head {
  padding: 0 3px;
  color: var(--ui-muted, #607884);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
}

.language-row {
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-empty-bg, #f7fbfc));
}

.language-row label {
  margin-top: 0;
}

.language-default {
  align-self: center;
  color: var(--ui-text, #173044);
  font-size: 12px;
  font-weight: 800;
}

.language-checks {
  display: grid;
  gap: 6px;
  align-self: center;
}

.language-order-controls {
  display: inline-flex;
  gap: 6px;
  align-self: center;
}

.language-order-controls button {
  width: 34px;
  height: 34px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  font-weight: 800;
  cursor: pointer;
}

.language-order-controls button:disabled {
  opacity: .42;
  cursor: not-allowed;
}

.language-checks .check {
  margin-top: 0 !important;
}

.new-language-row {
  background: var(--ui-surface, #fffdf7);
}

@media (max-width: 1100px) {
  .language-notes {
    grid-template-columns: 1fr;
  }

  .language-grid-head {
    display: none;
  }

  .language-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .language-default,
  .language-order-controls,
  .language-checks {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .language-row {
    grid-template-columns: 1fr;
  }
}

.pdf-resource-card header small {
  color: var(--ui-muted, #607884);
  font-size: 10px;
  white-space: nowrap;
}

.pdf-resource-card.locked {
  border-style: dashed;
  background: var(--ui-page-soft-bg, #f4f8f9);
}

.pdf-locked-message {
  padding: 20px;
  border: 1px solid var(--ui-border-subtle, #cbd9df);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-accent-text, #2d5368);
}

.pdf-locked-message b {
  display: block;
  color: var(--ui-text, #173044);
  font-size: 15px;
}

.pdf-locked-message p {
  margin: 7px 0 0 !important;
  color: var(--ui-muted, #607884);
  font-size: 12px;
}

.pdf-locked-message div {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.resource-panel .pdf-locked-message a {
  margin: 0;
  border-top: 0;
}

@media (max-width: 640px) {
  .rich-site-footer {
    gap: 18px;
    padding: 24px 25px !important;
  }

  .site-footer-top {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .site-footer-copyright,
  .site-footer-tagline {
    justify-self: start;
    text-align: left;
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .site-footer-top > span {
    max-width: 100%;
    overflow-x: auto;
  }

  .site-footer-columns {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .flash-stack {
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    right: 14px;
    width: min(420px, calc(100vw - 28px));
  }

  .message-toast {
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    left: auto;
    right: 14px;
    width: min(360px, calc(100vw - 28px));
    max-width: none;
    transform: none;
  }

  .flash-stack ~ .message-toast {
    top: calc(env(safe-area-inset-top, 0px) + 100px);
  }

  .pdf-resource-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .resource-panel .pdf-resource-card .pdf-resource-actions .quiet-button {
    width: 100%;
    justify-content: center;
  }

  .pdf-resource-card header {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .pdf-resource-card header small {
    grid-column: 2;
    white-space: normal;
  }

  .pdf-resource-card iframe {
    height: 62vh;
    min-height: 320px;
  }

  .pdf-locked-message {
    padding: 16px;
  }
}

@media (max-width: 420px) {
  .range-control {
    grid-template-columns: 1fr minmax(64px, 82px);
    gap: 7px;
  }
}

.booking-page {
  width: min(1180px, calc(100vw - 48px));
  margin: 0 auto;
  padding-top: var(--ui-section-spacing, 64px);
  padding-bottom: 72px;
}

.booking-page .booking-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 28px;
  align-items: start;
}

.booking-title-block,
.booking-form-section,
.booking-summary-panel,
.booking-confirmation-card,
.booking-admin-section {
  border: 1px solid var(--line, #e5e2dc);
  background: var(--surface, #fff);
  border-radius: 8px;
  padding: 24px;
}

.booking-title-block span,
.booking-confirm-head span,
.booking-admin-request-main span {
  display: inline-block;
  color: var(--ui-muted, var(--muted, #777));
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 800;
  text-transform: uppercase;
}

.booking-form,
.booking-form-section,
.booking-summary-panel dl,
.booking-confirm-list,
.booking-admin-request-list,
.booking-payment-list {
  display: grid;
  gap: 16px;
}

.booking-flow {
  gap: 20px;
}

.booking-section-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.booking-section-head > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: var(--text, #222);
  color: var(--surface, #fff);
  font-weight: 900;
}

.booking-section-head h2,
.booking-section-head p {
  margin: 0;
}

.booking-duration-control {
  max-width: 240px;
}

.booking-grid,
.booking-admin-grid {
  display: grid;
  gap: 14px;
}

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

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

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

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

.booking-date-hints,
.booking-admin-tabs,
.booking-admin-checks,
.booking-status-row,
.booking-confirm-actions,
.booking-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.booking-date-hints span,
.booking-status-row span,
.booking-card-meta span {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 800;
}

.booking-package-directory-head {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.booking-package-directory-head h2,
.booking-package-directory-head p {
  margin: 0;
}

.booking-package-directory-head p {
  color: var(--muted, #777);
}

.booking-package-card {
  cursor: default;
}

.booking-payment-kind-list,
.booking-package-choice-list {
  margin-bottom: 12px;
}

.booking-package-choice-list .booking-choice small + small {
  margin-top: 6px;
}

.booking-calendar-shell {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 14px;
  background: var(--surface, #fff);
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--bg, #f7f4ef));
}

.booking-availability-area {
  display: grid;
  gap: 16px;
}

.booking-calendar-toolbar {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
  text-align: center;
}

.booking-calendar-toolbar .quiet-button {
  min-width: 0;
  width: 42px;
  height: 38px;
  padding: 0;
  font-size: 24px;
  line-height: 1;
}

.booking-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.booking-calendar-weekday,
.booking-calendar-empty,
.booking-calendar-day {
  min-height: 42px;
}

.booking-calendar-weekday {
  display: grid;
  place-items: center;
  color: var(--muted, #777);
  font-size: 12px;
  font-weight: 900;
}

.booking-calendar-day {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--text, #222);
  font-weight: 900;
  cursor: pointer;
}

.booking-calendar-day.is-available {
  border-color: var(--ui-booking-available-border, #72b778);
  background: var(--ui-booking-available-bg, #e8f5e9);
}

.booking-calendar-day.is-limited {
  border-color: var(--ui-booking-limited-border, #d5a13a);
  background: var(--ui-booking-limited-bg, #fff5d6);
}

.booking-calendar-day.is-unavailable {
  color: var(--ui-booking-unavailable-text, #aaa);
  background: var(--ui-booking-unavailable-bg, #f4f4f4);
  cursor: not-allowed;
}

.booking-calendar-day.is-selected {
  border-color: var(--text, #222);
  background: var(--text, #222);
  color: var(--surface, #fff);
}

.booking-calendar-legend,
.booking-time-slot-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.booking-calendar-legend {
  margin-top: 12px;
}

.booking-calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted, #777);
  font-size: 12px;
  font-weight: 800;
}

.booking-calendar-legend i {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 999px;
  border: 1px solid var(--line, #e5e2dc);
}

.booking-calendar-legend .available { background: var(--ui-booking-available-bg, #e8f5e9); border-color: var(--ui-booking-available-border, #72b778); }
.booking-calendar-legend .limited { background: var(--ui-booking-limited-bg, #fff5d6); border-color: var(--ui-booking-limited-border, #d5a13a); }
.booking-calendar-legend .unavailable { background: var(--ui-booking-unavailable-bg, #f4f4f4); border-color: var(--ui-booking-unavailable-border, #cfcfcf); }

.booking-slot-panel {
  display: grid;
  gap: 10px;
}

.booking-slot-panel h3 {
  margin: 0;
}

.booking-slot-button {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  background: var(--surface, #fff);
  padding: 10px 12px;
  color: var(--text, #222);
  font-weight: 900;
  cursor: pointer;
}

.booking-slot-button.is-selected {
  border-color: var(--text, #222);
  background: var(--text, #222);
  color: var(--surface, #fff);
}

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

.booking-choice-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-items: stretch;
}

.booking-choice {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 14px;
}

.booking-choice-grid .booking-choice {
  height: 100%;
}

.booking-choice small,
.booking-confirm-list small,
.account-booking-list small {
  display: block;
  color: var(--muted, #777);
  font-size: 12px;
  margin-top: 3px;
}

.booking-lesson-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 14px;
}

.booking-lesson-group {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 16px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface, #fff) 96%, var(--bg, #f7f4ef)), var(--surface, #fff));
  box-shadow: var(--ui-shadow-card, 0 8px 22px rgba(23, 47, 66, .08));
}

.booking-lesson-group-wide {
  grid-column: 1 / -1;
}

.booking-lesson-group-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.booking-lesson-group-head span {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text, #222) 88%, #1676a8);
  color: var(--surface, #fff);
  font-size: 11px;
  font-weight: 900;
}

.booking-lesson-group h3 {
  margin: 0;
  font-size: 15px;
  line-height: 1.25;
}

.booking-lesson-group label {
  min-width: 0;
}

.booking-lesson-group input,
.booking-lesson-group select,
.booking-lesson-group textarea {
  background: color-mix(in srgb, var(--surface, #fff) 96%, var(--bg, #f7f4ef));
}

.booking-textarea-grid textarea {
  min-height: 104px;
  resize: vertical;
}

.booking-summary-panel {
  position: sticky;
  top: 24px;
}

.booking-mobile-submit-panel {
  display: none;
}

.booking-summary-total {
  display: block;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1;
  margin-bottom: 4px;
}

.booking-live-summary > small {
  display: block;
  color: var(--muted, #777);
  font-weight: 800;
  margin-bottom: 16px;
}

.booking-summary-panel dl div,
.booking-confirm-list div {
  display: grid;
  grid-template-columns: minmax(110px, 160px) minmax(0, 1fr);
  gap: 12px;
  border-bottom: 1px solid var(--line, #e5e2dc);
  padding-bottom: 12px;
}

.booking-summary-panel dt,
.booking-confirm-list dt {
  color: var(--muted, #777);
  font-weight: 800;
}

.booking-confirm-info {
  border-top: 1px solid var(--line, #e5e2dc);
  margin-top: 20px;
  padding-top: 18px;
}

.booking-admin-calendar-feed {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 14px;
  margin: 0 0 18px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--bg, #f7f4ef));
}

.booking-admin-calendar-feed h2,
.booking-admin-calendar-feed p {
  margin: 0;
}

.booking-admin-calendar-feed p {
  color: var(--muted, #777);
  font-size: 13px;
  line-height: 1.65;
}

:where(.booking-admin-calendar-actions):not(.ui-action-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.booking-admin-calendar-feed input[readonly] {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.booking-submit-button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.booking-admin-tabs {
  margin: 18px 0;
}

:where(.booking-admin-tabs a):not(.quiet-button) {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 999px;
  padding: 8px 13px;
  text-decoration: none;
  font-weight: 800;
}

:where(.booking-admin-tabs a.is-active):not(.ui-button--active):not(.quiet-button) {
  background: var(--text, #222);
  border-color: var(--text, #222);
  color: var(--surface, #fff);
}

.booking-admin-page .booking-admin-section {
  margin-top: 24px;
}

.booking-admin-section-headline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.booking-admin-section-headline h2 {
  margin: 0;
}

.booking-admin-section-headline span {
  color: var(--muted, #777);
  font-size: 13px;
  font-weight: 800;
}

.booking-admin-filter-form {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(5, minmax(130px, 1fr)) auto;
  gap: var(--ui-field-gap, 10px);
  align-items: end;
  margin-bottom: 18px;
  padding: var(--ui-filter-padding, 12px);
  border: 1px solid var(--ui-border-color, var(--line, #e5e2dc));
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-filter-bg, color-mix(in srgb, var(--surface, #fff) 90%, var(--bg, #f7f4ef)));
}

.booking-admin-filter-form label {
  min-width: 0;
}

:where(.booking-admin-filter-actions):not(.ui-filter-actions) {
  display: flex;
  gap: var(--ui-space-2, 8px);
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.booking-admin-pagination {
  margin-top: 18px;
}

:where(.booking-admin-pagination):not(.ui-action-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

:where(.booking-admin-pagination a):not(.quiet-button) {
  min-width: 38px;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 8px 11px;
  text-decoration: none;
  font-weight: 900;
}

:where(.booking-admin-pagination a.is-active):not(.ui-button--active):not(.quiet-button) {
  border-color: var(--text, #222);
  background: var(--text, #222);
  color: var(--surface, #fff);
}

.booking-admin-pagination a.is-disabled {
  opacity: .45;
  pointer-events: none;
}

.booking-admin-page .editor-form,
.booking-course-editor {
  display: grid;
  gap: 16px;
}

.booking-admin-subsection {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 16px;
  background: var(--surface, #fff);
  background: color-mix(in srgb, var(--surface, #fff) 86%, var(--bg, #f7f4ef));
}

.booking-admin-subsection-head {
  margin-bottom: 12px;
}

:where(.booking-admin-subsection-head):not(.ui-action-row) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.booking-admin-subsection-head h3,
.booking-admin-subsection-head p {
  margin: 0;
}

.booking-admin-subsection-head p,
.booking-admin-section .hint {
  color: var(--muted, #777);
  font-size: 13px;
}

:where(.booking-row-list:not(.ui-list), .booking-exception-list:not(.ui-list), .booking-exception-slots:not(.ui-list)) {
  display: grid;
  gap: 10px;
}

.booking-edit-row {
  display: grid;
  gap: 10px;
  align-items: end;
  padding: 12px;
}

:where(.booking-edit-row):not(.ui-row-card):not(.ui-list-row) {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  background: var(--surface, #fff);
}

.booking-item-row {
  grid-template-columns: auto minmax(170px, 1.1fr) minmax(210px, 1.4fr) auto auto;
}

.booking-tier-row {
  grid-template-columns: repeat(3, minmax(86px, .7fr)) minmax(140px, 1fr) minmax(74px, .45fr) auto;
}

.booking-member-row {
  grid-template-columns: minmax(210px, 1.35fr) minmax(150px, 1fr) minmax(180px, 1.1fr) auto auto;
}

.booking-package-overview {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  color: var(--muted, #777);
  font-size: 13px;
}

.booking-package-adjust-form {
  margin-top: 14px;
}

.booking-package-ledger {
  margin-top: 16px;
}

.booking-edit-row .quiet-button,
.booking-time-row .quiet-button {
  align-self: end;
  white-space: nowrap;
}

.booking-sort-controls {
  display: grid;
  grid-template-columns: 34px;
  gap: 4px;
  align-self: stretch;
}

.booking-sort-controls button {
  width: 34px;
  min-width: 0;
  min-height: 30px;
  padding: 0;
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 6px;
  background: var(--surface, #fff);
  color: var(--text, #222);
  cursor: pointer;
}

.booking-drag-handle {
  cursor: grab;
  font-weight: 900;
}

.booking-edit-row.is-dragging {
  opacity: .55;
}

.booking-admin-request {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 480px);
  gap: var(--ui-section-gap, 18px);
  border: 1px solid var(--ui-border-color, var(--line, #e5e2dc));
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-card-padding, 14px);
  background: var(--ui-surface-elevated, var(--surface, #fff));
}

.booking-admin-state-form {
  display: grid;
  gap: var(--ui-field-gap, 10px);
}

.booking-weekday-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 14px 0;
}

.booking-weekday-grid article {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 12px;
  background: var(--surface, #fff);
}

.booking-weekday-grid article .booking-row-list {
  --ui-list-gap: 7px;
}

:where(.booking-weekday-grid article .booking-row-list):not(.ui-list) {
  display: grid;
  gap: 7px;
}

.booking-weekday-head {
  margin-bottom: 10px;
}

:where(.booking-weekday-head):not(.ui-action-row) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.booking-weekday-head b {
  white-space: nowrap;
}

.booking-time-row {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr) auto;
  gap: 7px;
  align-items: center;
}

.booking-time-row .booking-time-input {
  width: 100%;
  min-width: 0;
}

.booking-weekday-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}

.booking-weekday-checks label {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 999px;
  padding: 6px 10px;
  background: var(--surface, #fff);
  font-size: 13px;
  font-weight: 700;
}

:where(.booking-exception-row):not(.ui-section-card) {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  padding: 14px;
  background: var(--surface, #fff);
}

.booking-exception-row > .quiet-button {
  margin-top: 10px;
}

.aural-rich-field {
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 8px;
  background: var(--surface, #fff);
  overflow: hidden;
}

.aural-rich-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 7px;
  border-bottom: 1px solid var(--line, #e5e2dc);
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--bg, #f7f4ef));
}

.aural-rich-button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 30px;
  min-width: 0;
  padding: 0;
  border: 1px solid var(--line, #e5e2dc);
  border-radius: 6px;
  background: var(--surface, #fff);
  color: var(--text, #222);
  cursor: pointer;
}

.aural-rich-editable {
  min-height: 120px;
  padding: 12px;
  outline: none;
  line-height: 1.7;
}

.aural-rich-editable:empty::before {
  content: attr(data-placeholder);
  color: var(--muted, #777);
}

.booking-rich-output {
  line-height: 1.7;
}

.booking-rich-output :first-child {
  margin-top: 0;
}

.booking-rich-output :last-child {
  margin-bottom: 0;
}

.booking-detail-head,
.booking-admin-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-section-gap, 18px);
  align-items: start;
}

.booking-detail-head span {
  display: inline-block;
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 900;
  letter-spacing: 0;
}

.booking-detail-head h2,
.booking-detail-head p {
  margin: 0;
}

.booking-admin-detail-state {
  margin: var(--ui-section-gap, 18px) 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr);
  gap: var(--ui-card-padding, 14px);
}

.booking-admin-detail-state > :first-child {
  grid-row: span 2;
}

.booking-admin-detail-state h3 {
  margin: 0 0 10px;
}

:where(.booking-detail-actions):not(.ui-action-row):not(.ui-detail-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2, 8px);
  align-items: center;
}

.booking-detail-actions form {
  margin: 0;
}

.booking-admin-inline-link {
  margin-top: 6px;
}

.booking-admin-detail-grid {
  grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr);
}

.booking-admin-log {
  margin-top: var(--ui-section-gap, 18px);
}

.booking-admin-log ol {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.booking-admin-log li {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-space-3, 12px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

.booking-admin-log span {
  display: block;
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  margin-top: 3px;
}

.booking-admin-notifications,
.booking-admin-note-history {
  margin-top: var(--ui-section-gap, 18px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-card-padding, 14px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

.booking-admin-resend-form {
  margin: 0;
}

:where(.booking-admin-resend-form):not(.ui-action-row) {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
}

.booking-admin-resend-form select {
  min-width: 180px;
}

.booking-admin-notification-log,
.booking-admin-note-history ol {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.booking-admin-notification-log li,
.booking-admin-note-history li {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-space-3, 12px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
}

.booking-admin-notification-log li > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-field-gap, 10px);
}

.booking-admin-notification-log p,
.booking-admin-notification-log small,
.booking-admin-notification-log em,
.booking-admin-note-history p {
  display: block;
  margin: 5px 0 0;
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.65;
}

.booking-admin-notification-log em {
  color: var(--ui-danger, #b35243);
  font-style: normal;
}

.booking-admin-log-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 3px 9px;
  border: 1px solid color-mix(in srgb, var(--ui-accent, #1676a8) 25%, var(--ui-border-color, #bfd0da));
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-accent, #1676a8);
  font-size: var(--type-badge-size, 11px);
  font-weight: var(--type-badge-weight, 900);
  white-space: nowrap;
}

.booking-admin-log-badge.is-danger {
  border-color: color-mix(in srgb, var(--ui-danger, #b35243) 40%, var(--ui-border-color, #bfd0da));
  background: var(--ui-danger-bg, #fff1ed);
  color: var(--ui-danger, #b35243);
}

.booking-admin-log-badge.is-muted {
  border-color: color-mix(in srgb, var(--ui-warning, #c99945) 34%, var(--ui-border-color, #bfd0da));
  background: var(--ui-warning-bg, #fff8e9);
  color: var(--ui-warning-text, #7b541b);
}

.booking-template-group {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-space-3, 12px);
  background: var(--ui-empty-bg, #f7fbfc);
  color: var(--ui-text, #173044);
}

.booking-template-group h4 {
  margin: 0;
}

.booking-admin-course,
.booking-admin-create,
.booking-payment-row {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  margin-top: var(--ui-card-padding, 14px);
  padding: var(--ui-space-4, 16px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

.booking-admin-course summary,
.booking-admin-create summary {
  cursor: pointer;
  font-weight: 800;
  display: flex;
  justify-content: space-between;
  gap: var(--ui-space-3, 12px);
}

.account-booking-list {
  display: grid;
  gap: var(--ui-field-gap, 10px);
}

.account-booking-list a {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  padding: var(--ui-space-3, 12px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
  text-decoration: none;
}

.account-booking-list span {
  display: block;
  margin-top: 4px;
}

@media (max-width: 980px) {
  .booking-page .booking-detail-layout,
  .booking-admin-request,
  .booking-lesson-details {
    grid-template-columns: 1fr;
  }

  .booking-summary-panel {
    position: static;
  }

  .booking-submit-button-desktop {
    display: none;
  }

  .booking-mobile-submit-panel {
    display: grid;
    gap: 10px;
  }

  .booking-submit-button-mobile {
    width: 100%;
  }

  .booking-admin-grid.five,
  .booking-admin-grid.four,
  .booking-admin-grid.three,
  .booking-grid.three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .booking-admin-filter-actions {
    justify-content: flex-start;
  }

  .booking-item-row,
  .booking-tier-row,
  .booking-member-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-weekday-grid {
    grid-template-columns: 1fr;
  }

  .booking-admin-detail-grid,
  .booking-detail-head,
  .booking-admin-detail-state {
    grid-template-columns: 1fr;
  }

  .booking-admin-detail-state > :first-child {
    grid-row: auto;
  }
}

@media (max-width: 640px) {
  .booking-page {
    width: min(100% - 28px, 1180px);
    padding-top: 34px;
  }

  .booking-grid.two,
  .booking-grid.three,
  .booking-admin-grid.two,
  .booking-admin-grid.three,
  .booking-admin-grid.four,
  .booking-admin-grid.five,
  .booking-admin-filter-form,
  .booking-item-row,
  .booking-tier-row,
  .booking-section-head,
  .booking-weekday-grid,
  .booking-summary-panel dl div,
  .booking-confirm-list div {
    grid-template-columns: 1fr;
  }

  .booking-section-head > span {
    width: 30px;
    height: 30px;
  }

  .booking-admin-subsection-head,
  .booking-weekday-head,
  .booking-admin-course summary,
  .booking-admin-create summary {
    align-items: center;
    flex-flow: row wrap;
  }

  .booking-admin-resend-form,
  .booking-admin-notification-log li > div {
    align-items: center;
    flex-flow: row wrap;
  }

  .booking-admin-resend-form select,
  .booking-admin-resend-form button,
  .booking-admin-calendar-actions .quiet-button {
    width: auto;
  }

  .booking-time-row {
    grid-template-columns: 1fr auto 1fr;
  }

  .booking-time-row .quiet-button {
    grid-column: 1 / -1;
  }
}

/* Core UI compatibility layer. Keep this near the end so shared tokens win over
   older page-specific defaults while specialized lab tools keep their own shell. */
/* Runtime typography and spacing consumers. The PHP layout now only emits the
   custom properties; these static rules apply those tokens across the system. */
body {
  font-family: var(--type-font-primary, var(--sans));
  font-size: var(--ui-base-font-size);
  font-weight: var(--type-content-weight, 500);
}

.site-header {
  height: auto;
  --mobile-brand-row: 96px;
}

.site-header .brand img {
  max-height: 72px;
}

.site-header .brand .brand-copy {
  font-family: var(--site-brand-font-family);
  font-size: 20px;
  font-weight: var(--site-banner-brand-name-weight);
}

.site-header .brand i {
  font-family: var(--site-brand-font-family);
  font-size: 14px;
  font-weight: var(--site-banner-brand-tagline-weight);
}

.site-header .header-menu nav a,
.site-header .header-menu nav .link-button,
.site-header .account .underlined,
.site-header .account .link-button,
.site-header .language-modal-trigger {
  font-family: var(--site-header-nav-font-family);
  font-size: var(--site-banner-nav-size) !important;
  font-weight: var(--site-banner-nav-weight) !important;
}

.site-header .menu-toggle {
  font-family: var(--site-header-nav-font-family) !important;
  font-size: var(--site-mobile-menu-size, 15px) !important;
  font-weight: var(--site-mobile-menu-weight, 900) !important;
}

.site-header .brand.no-tagline .brand-copy {
  min-height: 72px;
}

.site-header.has-header-banner .brand .brand-copy {
  font-family: var(--site-brand-font-family) !important;
  font-weight: var(--site-banner-brand-name-weight) !important;
}

.site-header.has-header-banner .brand i {
  font-family: var(--site-brand-font-family) !important;
  font-weight: var(--site-banner-brand-tagline-weight) !important;
}

.site-header.has-header-banner .header-menu nav a,
.site-header.has-header-banner .header-menu nav .link-button,
.site-header.has-header-banner .account .underlined,
.site-header.has-header-banner .account .link-button,
.site-header.has-header-banner .language-modal-trigger {
  font-family: var(--site-header-nav-font-family) !important;
  font-size: var(--site-banner-nav-size) !important;
  font-weight: var(--site-banner-nav-weight) !important;
}

.site-footer {
  font-family: var(--site-footer-font-family);
  font-size: var(--site-footer-text-size);
}

.site-footer-copyright {
  font-family: var(--site-footer-font-family);
  font-size: var(--site-footer-copyright-size) !important;
  font-weight: var(--site-footer-copyright-weight) !important;
}

.site-footer-tagline {
  font-family: var(--site-footer-font-family);
  font-size: var(--site-footer-tagline-size) !important;
  font-weight: var(--site-footer-tagline-weight) !important;
}

body :where(h1, h2, h3):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  zoom: var(--ui-heading-scale, 1) !important;
}

body :where(.hero h1, .courses-intro h1, .announcements-intro h1, .history-hero h1, .auth-card h1, .account-hero h1, .messages-heading h1, .practice-hero h1, .course-hero h1, .node-hero h1, .course-heading h1, .node-heading h1, .cms-page-head h1, .post-detail-head h1, .posts-categories h1, .admin-hero h1, .admin-title h1):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-display, var(--serif)) !important;
  font-size: clamp(32px, 5.5vw, var(--type-page-title-size, 58px)) !important;
  font-weight: var(--type-page-title-weight, 700) !important;
  line-height: 1.06 !important;
}

body :where(h2, .home-section-head h2, .announcement-feed h2, .message-compose h2, .message-inbox h2, .message-detail h2, .post-attachments h2, .post-comments h2, .editor-form h2, .table-card h2, .resource-panel h2, .manager-list h2):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-display, var(--serif)) !important;
  font-size: clamp(18px, 3.2vw, var(--type-section-title-size, 30px)) !important;
  font-weight: var(--type-section-title-weight, 700) !important;
  line-height: 1.16 !important;
}

body :where(.course-row b, .notices h3, .directory-course-card b, .course-node b, .tree-item b, .child-list b, .resource-row b, .announcement-row b, .history-record b, .attempt-record b, .message-row b, .message-conversation b, .planned-card b, .admin-actions b, .manager-list a b, .post-card h2, .post-card h3, .post-detail h2, .post-selected-media-item b, .media-asset-main b, .navigation-row b):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-card-title-size, 13px) !important;
  font-weight: var(--type-card-title-weight, 800) !important;
  line-height: 1.25 !important;
}

body :where(p, li, dd, td, blockquote, figcaption, .attempt-description, .attempt-side p, .attempt-side li):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-content-font-size, var(--ui-body-font-size, 15px)) !important;
  font-weight: var(--type-content-weight, 500);
  line-height: var(--type-content-line-height, 1.8) !important;
}

body :where(th):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-content-font-size, var(--ui-body-font-size, 15px)) !important;
  line-height: var(--type-content-line-height, 1.8) !important;
}

body :where(small, .hint, .crumb, .empty, .muted, .eyebrow, time, .cms-media-preview-note, .global-upload-progress p, .site-footer-top, .table-card small, .course-row small, .notices small, .message-row small, .history-record small, .attempt-record small):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-helper-font-size, var(--ui-small-font-size, 12px)) !important;
  font-weight: var(--type-helper-weight, 500);
}

body :where(.message-count, .flag, .translation-status, .mode-pill, .message-row i, .resource-row i, .course-resource-list small, .planned-card i, .admin-post-metrics span, .post-analytics-row span, .status-line):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-badge-size, 10px) !important;
  font-weight: var(--type-badge-weight, 800) !important;
  line-height: 1.35 !important;
}

body :where(label, .editor-form label, .auth-card label, .message-compose label, .form-card label, .studio-panel label, .course-editor label, .node-editor label, .course-resource-form label):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-form-label-size, 11px) !important;
  font-weight: var(--type-form-label-weight, 800) !important;
}

body :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, [contenteditable="true"]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-ui, var(--type-font-primary, var(--sans))) !important;
  font-size: var(--type-form-control-size, var(--ui-control-font-size, 12px)) !important;
  font-weight: var(--type-form-control-weight, 500) !important;
}

body :where(.cms-wp-title-field, .cms-wp-title-field textarea, .cms-wp-title-field input, .cms-wp-title-field .aural-icon-field, .cms-wp-title-field .aural-icon-editable):not(.score-question-lab *):not(.touch-score-lab *) {
  font-family: var(--type-font-display, var(--serif)) !important;
  font-size: clamp(32px, 5.5vw, var(--type-page-title-size, 58px)) !important;
  font-weight: var(--type-page-title-weight, 700) !important;
  line-height: 1.06 !important;
}

body :where(button:not(.menu-toggle):not(.play-hotspot):not(.attempt-tab):not(.studio-tab):not(.link-button):not(.back-to-top):not(.sq-preview-play-button):not(.attempt-play-button):not(.score-anchor-drag-button):not(.cms-gallery-dot):not(.flash-close):not(.message-toast-close):not([data-language-modal-close]), .primary, .quiet-button, .danger-button, .node-open, .site-footer-button, .language-option, .language-modal-trigger, .select-menu summary, .select-menu-options button, [role="button"]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-ui, var(--type-font-primary, var(--sans))) !important;
  font-size: var(--type-button-size, var(--ui-control-font-size, 12px)) !important;
  font-weight: var(--type-button-weight, 800) !important;
}

body :where(.posts-categories a, .post-category-chips a):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-ui, var(--type-font-primary, var(--sans))) !important;
  font-size: var(--type-post-category-button-size, var(--ui-control-font-size, 12px)) !important;
  font-weight: var(--type-post-category-button-weight, 800) !important;
}

body :where(.cms-page-body, .cms-content-text, .post-body, .announcement-body):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-cms-body-size, var(--type-content-font-size, 15px)) !important;
  font-weight: var(--type-cms-body-weight, 500) !important;
  line-height: var(--type-content-line-height, 1.8) !important;
}

body :where(.cms-content-heading, .cms-content-gallery h2):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-display, var(--serif)) !important;
  font-size: var(--type-cms-heading-size, 30px) !important;
  font-weight: var(--type-cms-heading-weight, var(--type-section-title-weight, 700)) !important;
}

body :where(.cms-content-heading--3):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: max(16px, calc(var(--type-cms-heading-size, 30px) - 5px)) !important;
}

body :where(.cms-content-heading--4):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: max(14px, calc(var(--type-cms-heading-size, 30px) - 9px)) !important;
}

body :where(.cms-content-quote p, .post-detail-excerpt):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-cms-quote-size, 22px) !important;
  font-weight: var(--type-cms-quote-weight, 500) !important;
}

body :where(.message-row b, .message-conversation b):not(.score-question-lab *):not(.touch-score-lab *) {
  font-size: var(--type-message-title-size, 12px) !important;
  font-weight: var(--type-message-title-weight, 800) !important;
}

body :where(.message-conversation p, .message-compose p, .message-detail p, .message-inbox p):not(.score-question-lab *):not(.touch-score-lab *) {
  font-size: var(--type-message-body-size, 12px) !important;
  font-weight: var(--type-message-body-weight, 500) !important;
  line-height: var(--type-message-body-line-height, 1.65) !important;
}

body :where(.message-toast b, .flash span) {
  font-size: var(--type-notice-title-size, 19px) !important;
  font-weight: var(--type-notice-title-weight, 700) !important;
}

body :where(.message-toast p, .message-toast a, .flash) {
  font-size: var(--type-notice-body-size, 12px) !important;
  font-weight: var(--type-notice-body-weight, 500) !important;
  line-height: var(--type-notice-body-line-height, 1.65) !important;
}

body :where(.aural-dialog-card h2) {
  font-size: var(--type-dialog-title-size, 22px) !important;
  font-weight: var(--type-dialog-title-weight, 800) !important;
}

body :where(.aural-dialog-card p) {
  font-size: var(--type-dialog-body-size, 15px) !important;
  font-weight: var(--type-dialog-body-weight, 500) !important;
  line-height: var(--type-dialog-body-line-height, 1.65) !important;
}

body :where(.aural-dialog-button) {
  font-size: var(--type-dialog-button-size, 12px) !important;
  font-weight: var(--type-dialog-button-weight, 800) !important;
}

body :where(.mail-preview-body h4) {
  font-family: var(--type-font-primary, var(--sans)) !important;
  font-size: var(--type-email-title-size, 32px) !important;
  font-weight: var(--type-email-title-weight, 800) !important;
}

body :where(.mail-preview-body p, .mail-preview-detail) {
  font-size: var(--type-email-body-size, 15px) !important;
  font-weight: var(--type-email-body-weight, 500) !important;
}

body :where(.mail-preview-brand, .mail-preview-eye, .mail-preview-footer) {
  font-size: var(--type-email-helper-size, 12px) !important;
  font-weight: var(--type-email-helper-weight, 800) !important;
}

body :where(.mail-preview-button) {
  font-size: var(--type-email-button-size, 14px) !important;
  font-weight: var(--type-email-button-weight, 700) !important;
}

body :where(.attempt-top h1, .exercise-board-head h2, .panel-head h2, .sight-start-dialog h2, .attempt-side h2):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-family: var(--type-font-display, var(--serif)) !important;
  font-size: var(--type-tool-title-size, 29px) !important;
  font-weight: var(--type-tool-title-weight, var(--type-section-title-weight, 700)) !important;
}

body :where(.touch-grid label, .symbol-grid label, .audio-render-panel label, .score-draft-panel label):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-tool-label-size, 11px) !important;
  font-weight: var(--type-tool-label-weight, 800) !important;
}

body :where(.attempt-page .mode-pill, .attempt-tab, .studio-tab, .attempt-tabs button):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-size: var(--type-tool-control-size, 12px) !important;
  font-weight: var(--type-tool-control-weight, 800) !important;
}

/* Page shell spacing is canonicalized in ui-foundation.css. */

body .touch-score-lab :where(h1, h2, h3),
body .score-question-lab :where(h1, h2, h3) {
  zoom: 1 !important;
}

@media (max-width: 820px) {
  body :where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, [contenteditable="true"]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
    font-size: max(16px, var(--type-form-control-size, var(--ui-control-font-size, 12px))) !important;
  }
}

@media (max-width: 640px) {
  .site-header {
    height: auto;
    min-height: 96px;
  }

  .site-header .brand img {
    max-width: 86px;
    max-height: 54px;
  }

  .site-header .brand .brand-copy {
    font-size: 18px;
    letter-spacing: 0;
    transform: translateY(3px);
  }

  .site-header .brand i {
    font-size: 14px;
  }

  .site-header .brand.no-tagline .brand-copy {
    min-height: 54px;
  }
}

body :where(.admin-page-shell, .admin-page):not(.score-question-lab):not(.touch-score-lab) {
  width: min(100% - clamp(32px, 8vw, 120px), 1420px);
  margin-inline: auto;
}

:where(.admin-page-head, .admin-title):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ui-space-5, 20px);
  margin-bottom: clamp(22px, 3vw, 36px);
}

:where(.admin-page-head > div, .admin-title > div):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
}

:where(.admin-page-head h1, .admin-title h1):not(.score-question-lab *):not(.touch-score-lab *) {
  letter-spacing: 0;
}

:where(.admin-page-head p, .admin-title p):not(.score-question-lab *):not(.touch-score-lab *) {
  max-width: 760px;
  color: var(--ui-muted, #607884);
}

.admin-action-row,
:where(.action-row, .panel-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
}

:where(.ui-panel, .admin-panel, .editor-form, .table-card, .studio-panel, .form-card):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-color: var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .12));
}

:where(.ui-panel):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-panel-padding, 20px);
}

:where(.ui-panel-stack):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ui-section-gap, 18px);
  min-width: 0;
}

:where(.ui-section-card, .ui-row-card):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

:where(.ui-section-card):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-card-padding, 14px);
}

:where(.ui-list):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-list-gap, var(--ui-field-gap, 10px));
  min-width: 0;
}

:where(.ui-list--divided):not(.score-question-lab *):not(.touch-score-lab *) {
  gap: 0;
}

:where(.ui-list-row):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

:where(a.ui-list-row):not(.score-question-lab *):not(.touch-score-lab *) {
  color: inherit;
  text-decoration: none;
}

:where(.ui-list-row--flat):not(.score-question-lab *):not(.touch-score-lab *) {
  border-width: 0 0 1px;
  border-radius: 0;
  border-color: var(--ui-row-divider-color, var(--ui-border-color, #bfd0da));
  background: transparent;
  box-shadow: none;
}

:where(.ui-list-row--flat:last-child):not(.score-question-lab *):not(.touch-score-lab *) {
  border-bottom: 0;
}

:where(.ui-row-main):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
}

:where(.ui-row-title):not(.score-question-lab *):not(.touch-score-lab *) {
  display: block;
  color: var(--ui-text, #173044);
  font-size: var(--type-card-title-size, 13px);
  font-weight: var(--type-card-title-weight, 800);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

:where(.ui-row-meta, .ui-row-copy):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, var(--ui-small-font-size, 12px));
  line-height: 1.5;
}

:where(.ui-row-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
  min-width: 0;
}

:where(.ui-row-avatar):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  place-items: center;
  width: var(--ui-avatar-size, 34px);
  height: var(--ui-avatar-size, 34px);
  border-radius: 50%;
  background: color-mix(in srgb, var(--ui-accent, #1676a8) 14%, var(--ui-surface-elevated, #fffdf7));
  color: var(--ui-accent, #1676a8);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 800;
}

:where(.ui-metric-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
  gap: var(--ui-field-gap, 10px);
  min-width: 0;
}

:where(.ui-metric-grid--framed):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-filter-bg, #f5fafb);
}

:where(.ui-metric-card):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: var(--ui-metric-min-height, 86px);
  gap: var(--ui-space-1, 4px);
  padding: var(--ui-metric-padding, 14px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: color-mix(in srgb, var(--ui-surface-elevated, #fffdf7) 82%, var(--ui-input-bg, #fff) 18%);
  color: var(--ui-text, #173044);
}

:where(.ui-metric-value):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-text, #173044);
  font-size: var(--type-metric-value-size, var(--ui-metric-value-size, 30px));
  font-weight: var(--type-metric-value-weight, 900);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

:where(.ui-metric-label):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, var(--ui-small-font-size, 12px));
  font-weight: var(--type-helper-weight, 800);
  line-height: 1.35;
}

:where(.ui-summary-card, .ui-detail-panel):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
}

:where(.ui-summary-card):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-panel-padding, 20px);
}

:where(.ui-summary-card--inverse):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--site-header-nav-border, #315c73) 72%, transparent);
  background: var(--site-header-bg, #172f42);
  color: var(--site-header-text, #f5fbfd);
}

:where(.ui-summary-card--inverse .ui-row-title, .ui-summary-card--inverse .ui-summary-kicker):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--site-header-text, #f5fbfd);
}

:where(.ui-summary-card--inverse .ui-row-copy, .ui-summary-card--inverse .ui-row-meta):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--site-header-muted, #b9d3df);
}

:where(.ui-summary-kicker):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-block;
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 900;
  line-height: 1.35;
}

:where(.ui-detail-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--ui-detail-min, 280px), 100%), 1fr));
  gap: var(--ui-section-gap, 18px);
  align-items: start;
  min-width: 0;
}

:where(.ui-detail-grid--balanced):not(.score-question-lab *):not(.touch-score-lab *) {
  grid-template-columns: minmax(0, 1fr) minmax(min(280px, 100%), .85fr);
}

:where(.ui-detail-grid--state):not(.score-question-lab *):not(.touch-score-lab *) {
  grid-template-columns: minmax(0, 1fr) minmax(min(260px, 100%), .7fr);
}

:where(.ui-detail-grid--state > :first-child):not(.score-question-lab *):not(.touch-score-lab *) {
  grid-row: span 2;
}

:where(.ui-detail-panel):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-card-padding, 14px);
}

:where(.ui-detail-panel > :first-child):not(.score-question-lab *):not(.touch-score-lab *) {
  margin-top: 0;
}

:where(.ui-detail-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
  min-width: 0;
}

:where(.ui-action-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: var(--ui-space-3, 12px);
  min-width: 0;
}

:where(.ui-action-card, .planned-card):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: minmax(24px, auto) minmax(0, 1fr) auto;
  align-items: start;
  min-width: 0;
  min-height: var(--ui-action-card-min-height, 116px);
  gap: var(--ui-space-2, 8px);
  padding: var(--ui-action-card-padding, 20px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-muted, #607884);
  text-decoration: none;
  box-shadow: var(--ui-shadow-card, 0 8px 22px rgba(23, 47, 66, .08));
  transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

:where(a.ui-action-card:hover, a.planned-card:hover):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-accent, #1676a8) 36%, var(--ui-border-color, #bfd0da));
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
  transform: translateY(-1px);
}

:where(.ui-action-card-number, .planned-card > span):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-muted, #607884);
  font-family: var(--type-font-display, var(--serif, serif));
  font-size: var(--type-action-number-size, 18px);
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

:where(.ui-action-card-icon, .planned-card > i):not(.score-question-lab *):not(.touch-score-lab *) {
  align-self: start;
  padding: 3px 7px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  color: var(--ui-muted, #607884);
  font-size: var(--type-badge-size, 10px);
  font-style: normal;
  font-weight: var(--type-badge-weight, 800);
  line-height: 1.35;
  white-space: nowrap;
}

:where(.ui-action-card .ui-row-copy, .planned-card p):not(.score-question-lab *):not(.touch-score-lab *) {
  margin: var(--ui-space-1, 4px) 0 0;
}

:where(.ui-table-card):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
  padding: var(--ui-panel-padding, 20px);
}

:where(.ui-table-head):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3, 12px);
  flex-wrap: wrap;
  min-width: 0;
  margin-bottom: var(--ui-card-padding, 14px);
}

:where(.ui-table-head > :is(h2, h3)):not(.score-question-lab *):not(.touch-score-lab *) {
  margin: 0;
}

:where(.ui-record-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--ui-table-row-min, 220px), 100%), 1fr));
  gap: var(--ui-field-gap, 10px);
  min-width: 0;
}

:where(.ui-settings-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--ui-settings-min, 320px), 100%), 1fr));
  gap: var(--ui-section-gap, 18px);
  align-items: start;
  min-width: 0;
}

:where(.ui-settings-form):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  align-content: start;
  min-width: 0;
}

:where(.ui-settings-form > :is(h2, h3)):not(.score-question-lab *):not(.touch-score-lab *) {
  margin-bottom: var(--ui-space-1, 4px);
}

:where(.ui-setting-group):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-field-gap, 10px);
  min-width: 0;
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-empty-bg, #f7fbfc);
  color: var(--ui-text, #173044);
}

:where(.ui-disclosure):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface-elevated, var(--ui-surface, #fffdf7));
  color: var(--ui-text, #173044);
  overflow: hidden;
}

:where(.ui-disclosure + .ui-disclosure):not(.score-question-lab *):not(.touch-score-lab *) {
  margin-top: var(--ui-field-gap, 10px);
}

:where(.ui-disclosure > summary, .ui-disclosure-summary):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
  align-items: center;
  min-width: 0;
  padding: var(--ui-disclosure-summary-padding, 13px 14px);
  list-style: none;
  cursor: pointer;
  color: var(--ui-text, #173044);
  font-size: var(--type-card-title-size, 13px);
  font-weight: var(--type-card-title-weight, 800);
}

.ui-disclosure > summary::-webkit-details-marker,
.ui-disclosure-summary::-webkit-details-marker {
  display: none;
}

:where(.ui-disclosure[open] > summary, .ui-disclosure[open] > .ui-disclosure-summary):not(.score-question-lab *):not(.touch-score-lab *) {
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-filter-bg, #f5fafb);
}

:where(.ui-disclosure-body):not(.score-question-lab *):not(.touch-score-lab *) {
  padding: var(--ui-card-padding, 14px);
}

:where(.ui-disclosure > .editor-form.ui-disclosure-body, .ui-disclosure > form.ui-disclosure-body):not(.score-question-lab *):not(.touch-score-lab *) {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

:where(.ui-disclosure-summary-main):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
}

:where(.ui-disclosure-summary-meta):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: var(--type-helper-weight, 800);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

:where(.ui-menu) {
  position: relative;
  min-width: 0;
}

:where(.ui-menu > summary, .ui-menu-summary) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2, 8px);
  min-height: var(--ui-control-height, 40px);
  padding: 0 var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: var(--type-helper-weight, 800);
  line-height: 1.2;
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.ui-menu > summary::-webkit-details-marker,
.ui-menu-summary::-webkit-details-marker {
  display: none;
}

.ui-menu > summary::after,
.ui-menu-summary::after {
  content: "⌄";
  color: var(--ui-accent, #1676a8);
  font-size: 13px;
  font-weight: 900;
}

:where(.ui-menu-list) {
  position: absolute;
  z-index: var(--ui-z-dropdown, 12000);
  right: 0;
  min-width: min(260px, calc(100vw - 36px));
  max-height: min(280px, calc(100vh - 120px));
  overflow: auto;
  border: 1px solid var(--ui-border-strong, #9eb9c5);
  border-radius: 0 0 var(--ui-panel-radius, 6px) var(--ui-panel-radius, 6px);
  background: var(--ui-input-bg, #fff);
  box-shadow: var(--ui-shadow-dropdown, 0 12px 28px rgba(23, 47, 66, .16));
}

:where(.ui-menu-list a) {
  display: block;
  padding: var(--ui-field-gap, 10px);
  border-top: 1px solid var(--ui-border-color, #bfd0da);
  color: var(--ui-text, #173044);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

:where(.ui-menu-list a[aria-current="page"]) {
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-accent, #1676a8);
  font-weight: 800;
}

:where(.ui-inline-panel) {
  position: relative;
  min-width: 0;
}

:where(.ui-inline-panel > summary, .ui-inline-panel-summary) {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 900;
  list-style: none;
  cursor: pointer;
}

.ui-inline-panel > summary::-webkit-details-marker,
.ui-inline-panel-summary::-webkit-details-marker {
  display: none;
}

:where(.ui-inline-panel[open] > summary, .ui-inline-panel[open] > .ui-inline-panel-summary) {
  border-color: var(--ui-border-strong, #9eb9c5);
  background: var(--ui-filter-bg, #f5fafb);
}

:where(.ui-inline-panel-body) {
  position: absolute;
  z-index: var(--ui-z-popover, 7000);
  top: calc(100% + var(--ui-space-2, 8px));
  width: min(360px, calc(100vw - 36px));
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
}

:where(.ui-lab-panel) {
  min-width: 0;
  border-color: var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background-color: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
}

:where(.ui-lab-summary) {
  min-width: 0;
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.ui-lab-summary::-webkit-details-marker {
  display: none;
}

:where(.ui-lab-body) {
  min-width: 0;
}

:where(.ui-field-grid):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-field-gap, 10px);
}

:where(.ui-field-grid--2):not(.score-question-lab *):not(.touch-score-lab *) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-grid,
.admin-content-grid {
  align-items: start;
}

body.aural-modal-open {
  overflow: hidden;
}

:where(.aural-modal, .aural-dialog, .language-modal, .aural-icon-modal):not(.score-question-lab *):not(.touch-score-lab *) {
  z-index: var(--ui-z-modal, 80000);
  background: var(--ui-overlay, rgba(8, 24, 34, .58));
}

:where(.aural-modal-surface, .aural-dialog-card, .language-modal-shell, .aural-icon-modal-shell):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-modal-radius, 8px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-modal, 0 24px 70px rgba(0, 0, 0, .28));
}

:where(.ui-toolbar, .ui-action-row, .ui-modal-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
  min-width: 0;
}

:where(.ui-action-row--end, .ui-modal-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  justify-content: flex-end;
}

:where(.ui-action-row--between):not(.score-question-lab *):not(.touch-score-lab *) {
  justify-content: space-between;
}

:where(.ui-action-row--field):not(.score-question-lab *):not(.touch-score-lab *) {
  align-items: flex-start;
}

:where(.ui-toolbar--surface, .ui-toolbar--floating):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-surface, #fffdf7);
}

:where(.ui-toolbar--floating):not(.score-question-lab *):not(.touch-score-lab *) {
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .12));
}

:where(.ui-toolbar-separator):not(.score-question-lab *):not(.touch-score-lab *) {
  flex: 0 0 1px;
  align-self: stretch;
  min-height: 24px;
  background: var(--ui-border-color, #bfd0da);
}

:where(.ui-icon-button):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-grid;
  place-items: center;
  width: var(--ui-icon-button-size, 36px);
  min-width: var(--ui-icon-button-size, 36px);
  min-height: var(--ui-icon-button-size, 36px);
  padding: 0 !important;
}

:where(.ui-help, .hint, .muted, .empty):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  color: var(--ui-muted, #607884);
}

:where(.ui-form-stack):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-field-gap, 10px);
}

:where(.form-pair, .pair):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-field-gap, 10px);
  min-width: 0;
}

@media (max-width: 560px) {
  :where(.form-pair, .pair):not(.score-question-lab *):not(.touch-score-lab *) {
    grid-template-columns: 1fr;
  }
}

:where(.ui-field):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-space-2, 8px);
  min-width: 0;
}

:where(.ui-field > span, .ui-field-label):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-text, #173044);
  font-size: var(--type-label-size, 12px);
  font-weight: 800;
  line-height: 1.35;
}

:where(.ui-field > input, .ui-field > select, .ui-field > textarea, .ui-form-stack input, .ui-form-stack select, .ui-form-stack textarea):not(.score-question-lab *):not(.touch-score-lab *) {
  width: 100%;
}

:where(.ui-check, .check, .check-row, .cms-editorjs-tool-check):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-space-2, 8px);
  min-width: 0;
}

:where(
  .ui-check input[type="checkbox"],
  .ui-check input[type="radio"],
  .check input[type="checkbox"],
  .check input[type="radio"],
  .check-row input[type="checkbox"],
  .check-row input[type="radio"],
  .cms-editorjs-tool-check input[type="checkbox"],
  .cms-editorjs-tool-check input[type="radio"]
):not(.score-question-lab *):not(.touch-score-lab *) {
  flex: 0 0 auto;
  accent-color: var(--ui-accent, #1676a8);
}

:where(.ui-status, .ui-badge, .translation-status, .booking-admin-log-badge, .cms-page-status, .cms-page-list-status, .history-kept, .self-label, .node-status):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: var(--ui-status-height, 24px);
  gap: var(--ui-space-1, 4px);
  padding: 3px 9px;
  border: 1px solid color-mix(in srgb, var(--ui-accent, #1676a8) 25%, var(--ui-border-color, #bfd0da));
  border-radius: var(--ui-status-radius, 999px);
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-accent, #1676a8);
  font-size: var(--type-badge-size, 10px);
  font-weight: var(--type-badge-weight, 800);
  line-height: 1.35;
  white-space: nowrap;
}

:where(.ui-status.is-success, .ui-status.is-ok, .ui-badge.is-success, .ui-badge.is-ok, .translation-status.is-translated, .booking-admin-log-badge.is-ok, .node-status.live):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-success, #287048) 34%, var(--ui-border-color, #bfd0da));
  background: var(--ui-success-bg, #eefaf4);
  color: var(--ui-success, #287048);
}

:where(.ui-status.is-warning, .ui-status.is-muted, .ui-badge.is-warning, .ui-badge.is-muted, .translation-status.is-missing, .booking-admin-log-badge.is-muted):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-warning, #c99945) 34%, var(--ui-border-color, #bfd0da));
  background: var(--ui-warning-bg, #fff8e9);
  color: var(--ui-warning-text, #7b541b);
}

:where(.ui-status.is-danger, .ui-status.is-error, .ui-badge.is-danger, .ui-badge.is-error, .booking-admin-log-badge.is-danger):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-danger, #b35243) 40%, var(--ui-border-color, #bfd0da));
  background: var(--ui-danger-bg, #fff1ed);
  color: var(--ui-danger, #b35243);
}

:where(.message-count, .flag):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  color: var(--ui-danger, #b35243);
  font-weight: var(--type-badge-weight, 800);
}

:where(.ui-filter-bar):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: flex-end;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
  min-width: 0;
  padding: var(--ui-filter-padding, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-filter-bg, #f5fafb);
  color: var(--ui-text, #173044);
}

:where(form.ui-filter-bar):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  align-items: end;
}

:where(.ui-filter-bar label):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
}

:where(.ui-filter-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
}

:where(.ui-bulk-bar):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
  min-width: 0;
  padding: var(--ui-filter-padding, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-filter-bg, #f5fafb);
  color: var(--ui-text, #173044);
}

:where(.ui-empty-state):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  margin: 0;
  padding: var(--ui-empty-padding, 18px);
  border: 1px dashed var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-empty-bg, #f7fbfc);
  color: var(--ui-muted, #607884);
  line-height: 1.65;
}

:where(.ui-progress, .global-upload-progress, .cms-editorjs-upload-progress, .cms-media-modal-import-progress, .backup-restore-progress):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-space-2, 8px);
  padding: var(--ui-space-3, 12px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-text, #173044);
}

:where(.ui-progress, .global-upload-progress, .cms-editorjs-upload-progress, .cms-media-modal-import-progress, .backup-restore-progress)[hidden] {
  display: none !important;
}

:where(.ui-progress-track, .global-upload-track, .backup-progress-track, .cms-editorjs-upload-progress > div, .cms-media-modal-import-progress > div):not(.score-question-lab *):not(.touch-score-lab *) {
  height: var(--ui-progress-height, 12px);
  border: 1px solid var(--ui-progress-track-border, #9eb9c5);
  border-radius: var(--ui-status-radius, 999px);
  background: var(--ui-progress-bg, #fff);
  overflow: hidden;
}

:where(.ui-progress-bar, .global-upload-track span, .backup-progress-track span, .cms-editorjs-upload-progress span, .cms-media-modal-import-progress span):not(.score-question-lab *):not(.touch-score-lab *) {
  display: block;
  width: 0;
  height: 100%;
  background: var(--ui-accent, #1676a8);
  transition: width .18s ease;
}

:where(.ui-progress.is-processing .ui-progress-bar, .global-upload-progress.is-processing .global-upload-track span, .backup-restore-progress.is-processing .backup-progress-track span):not(.score-question-lab *):not(.touch-score-lab *) {
  width: 100%;
  background: linear-gradient(90deg, var(--ui-accent, #1676a8), var(--ui-success, #35a37d), var(--ui-accent, #1676a8));
  background-size: 220% 100%;
  animation: upload-progress-pulse 1.2s linear infinite;
}

:where(.ui-progress.is-error, .global-upload-progress.is-error, .cms-editorjs-upload-progress.is-error, .cms-media-modal-import-progress.is-error, .backup-restore-progress.is-error):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-danger, #b35243) 42%, var(--ui-border-color, #bfd0da));
  background: var(--ui-danger-bg, #fff1ed);
}

:where(.ui-progress.is-success, .backup-restore-progress.is-success):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: color-mix(in srgb, var(--ui-success, #287048) 38%, var(--ui-border-color, #bfd0da));
  background: var(--ui-success-bg, #eefaf4);
}

:where(.ui-progress-status, .global-upload-progress p, .cms-editorjs-upload-progress p, .cms-media-modal-import-progress p, .backup-restore-progress p):not(.score-question-lab *):not(.touch-score-lab *) {
  margin: 0;
  color: var(--ui-text, #294957);
  font-size: var(--type-helper-font-size, var(--ui-small-font-size, 12px));
  font-weight: 800;
  line-height: 1.5;
}

:where(
  .ui-button,
  .primary,
  .primary-blue,
  .quiet-button,
  .secondary-button,
  .danger-button,
  .danger,
  .save-btn,
  .add-btn,
  .delete-btn,
  .mode-pill,
  .cms-content-button,
  .node-open,
  .site-footer-button,
  .language-option,
  .language-modal-trigger,
  .aural-dialog-button,
  .aural-icon-insert,
  .aural-icon-choice,
  .select-menu summary,
  .select-menu-options button,
  button.primary,
  input[type="submit"]
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  box-sizing: border-box !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-button-gap, 8px);
  min-width: var(--ui-button-min-width, 0);
  min-height: var(--ui-control-height, 40px) !important;
  padding-inline: var(--ui-button-padding-x, 12px);
  border-radius: var(--ui-control-radius, 3px) !important;
  font-family: var(--type-font-ui, var(--ui-font, var(--sans))) !important;
  font-weight: var(--ui-button-font-weight, 800);
  line-height: 1.2 !important;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}

:where(.ui-button--primary, .primary, .primary-blue, .save-btn, .add-btn, button.primary, input[type="submit"], .aural-dialog-button.is-primary):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  border: 1px solid var(--ui-accent, #1676a8);
  background: var(--ui-accent, #1676a8);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-button--primary, .primary, .primary-blue, .save-btn, .add-btn, button.primary, input[type="submit"], .aural-dialog-button.is-primary):not(.score-question-lab *):not(.touch-score-lab *):hover,
:where(.ui-button--primary, .primary, .primary-blue, .save-btn, .add-btn, button.primary, input[type="submit"], .aural-dialog-button.is-primary):not(.score-question-lab *):not(.touch-score-lab *):focus-visible {
  border-color: var(--ui-accent-hover, #125d84);
  background: var(--ui-accent-hover, #125d84);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-button--quiet, .ui-button--secondary, .quiet-button, .secondary-button, .mode-pill, .aural-dialog-button.is-secondary, .language-option, .aural-icon-insert):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
}

:where(.ui-button--quiet, .ui-button--secondary, .quiet-button, .secondary-button, .mode-pill, .aural-dialog-button.is-secondary, .language-option, .aural-icon-insert):not(.score-question-lab *):not(.touch-score-lab *):hover,
:where(.ui-button--quiet, .ui-button--secondary, .quiet-button, .secondary-button, .mode-pill, .aural-dialog-button.is-secondary, .language-option, .aural-icon-insert):not(.score-question-lab *):not(.touch-score-lab *):focus-visible {
  border-color: var(--ui-accent, #1676a8);
  color: var(--ui-accent, #1676a8);
}

:where(.ui-button--danger, .danger, .danger-button, .delete-btn, .aural-dialog-button.is-danger):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-danger, #b35243);
  background: var(--ui-danger, #b35243);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-button--danger, .danger, .danger-button, .delete-btn, .aural-dialog-button.is-danger):not(.score-question-lab *):not(.touch-score-lab *):hover,
:where(.ui-button--danger, .danger, .danger-button, .delete-btn, .aural-dialog-button.is-danger):not(.score-question-lab *):not(.touch-score-lab *):focus-visible {
  border-color: var(--ui-danger-hover, #943e33);
  background: var(--ui-danger-hover, #943e33);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-button--link, .cms-content-button):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  border: 1px solid var(--ui-accent, #1676a8);
  background: var(--ui-accent, #1676a8);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-button.is-active, .ui-button--active, .quiet-button.active, .mode-pill.active):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  border-color: var(--ui-accent, #1676a8);
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-accent, #1676a8);
}

:where(
  .ui-button:disabled,
  .ui-button[aria-disabled="true"],
  .primary:disabled,
  .quiet-button:disabled,
  .danger-button:disabled,
  .danger:disabled,
  .save-btn:disabled,
  .add-btn:disabled,
  .delete-btn:disabled,
  .is-disabled
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  opacity: var(--ui-button-disabled-opacity, .52);
  cursor: not-allowed;
  pointer-events: none;
}

:where(.ui-button.is-loading):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  cursor: progress;
}

:where(.mode-pill:not(button):not(a)):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *) {
  cursor: default;
}

:where(.ui-alert, .notice, .notice-card, .translation-notice):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  padding: var(--ui-alert-padding, 12px 14px);
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-left: 4px solid var(--ui-accent, #1676a8);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-info-bg, #edf6f8);
  color: var(--ui-text, #173044);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.6;
}

:where(.ui-alert.is-success, .notice.success, .flash.success):not(.score-question-lab *):not(.touch-score-lab *) {
  border-left-color: var(--ui-success, #287048);
  background: var(--ui-success-bg, #eefaf4);
}

:where(.ui-alert.is-warning, .notice.warning, .translation-notice, .flash.warning):not(.score-question-lab *):not(.touch-score-lab *) {
  border-left-color: var(--ui-warning, #c99945);
  background: var(--ui-warning-bg, #fff8e9);
}

:where(.ui-alert.is-danger, .ui-alert.is-error, .notice.error, .flash.error):not(.score-question-lab *):not(.touch-score-lab *) {
  border-left-color: var(--ui-danger, #b35243);
  background: var(--ui-danger-bg, #fff1ed);
}

:where(.ui-toast, .message-toast, .flash):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
}

:where(.ui-toast-close, .flash-close, .message-toast button, .language-modal-shell header button):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-grid;
  place-items: center;
  width: var(--ui-icon-button-size, 36px);
  min-width: var(--ui-icon-button-size, 36px);
  min-height: var(--ui-icon-button-size, 36px);
  padding: 0 !important;
  border-radius: var(--ui-control-radius, 3px);
}

:where(.ui-modal, .aural-modal, .language-modal):not(.score-question-lab *):not(.touch-score-lab *) {
  z-index: var(--ui-z-modal, 80000);
  background: var(--ui-overlay, rgba(8, 24, 34, .58));
}

:where(.ui-modal-surface, .aural-modal-surface, .aural-dialog-card, .language-modal-shell):not(.score-question-lab *):not(.touch-score-lab *) {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-modal-radius, 8px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-modal, 0 24px 70px rgba(0, 0, 0, .28));
}

:where(.ui-modal-actions, .aural-dialog-actions):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-space-2, 8px);
  flex-wrap: wrap;
}

:where(.ui-popover, .ui-inline-panel-body, .select-menu-options, .ui-menu-list):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-popover, 0 18px 36px rgba(23, 47, 66, .14));
}

:where(.ui-editor-panel, .ui-rich-field, .aural-rich-field):not(.score-question-lab *):not(.touch-score-lab *) {
  min-width: 0;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
}

:where(.ui-editor-panel):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: var(--ui-editor-gap, 12px);
  padding: var(--ui-editor-padding, 14px);
}

:where(.ui-rich-field, .aural-rich-field):not(.score-question-lab *):not(.touch-score-lab *) {
  display: grid;
  gap: 0;
  overflow: hidden;
}

:where(.ui-editor-toolbar, .ui-rich-toolbar, .aural-rich-toolbar):not(.score-question-lab *):not(.touch-score-lab *) {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-editor-toolbar-gap, 6px);
  min-width: 0;
  padding: var(--ui-editor-toolbar-padding, 6px);
  border-color: var(--ui-border-color, #bfd0da);
  background: var(--ui-editor-toolbar-bg, var(--ui-filter-bg, #f5fafb));
  color: var(--ui-text, #173044);
}

:where(.ui-rich-toolbar, .aural-rich-toolbar):not(.score-question-lab *):not(.touch-score-lab *) {
  border-bottom: 1px solid var(--ui-border-color, #bfd0da);
}

:where(.ui-editor-control, .ui-rich-button, .aural-rich-button):not(.score-question-lab *):not(.touch-score-lab *) {
  display: inline-grid;
  place-items: center;
  width: var(--ui-editor-control-size, 36px);
  min-width: var(--ui-editor-control-size, 36px);
  min-height: var(--ui-editor-control-size, 36px);
  padding: 0 !important;
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-input-bg, #fff);
  color: var(--ui-text, #173044);
  font-size: var(--type-helper-font-size, 12px);
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

:where(.ui-editor-control:hover, .ui-editor-control:focus-visible, .ui-rich-button:hover, .ui-rich-button:focus-visible, .aural-rich-button:hover, .aural-rich-button:focus-visible):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: var(--ui-accent, #1676a8);
  color: var(--ui-accent, #1676a8);
}

:where(.ui-editor-control[aria-pressed="true"], .ui-editor-control.is-active, .ui-rich-button[aria-pressed="true"], .ui-rich-button.is-active, .aural-rich-button[aria-pressed="true"], .aural-rich-button.is-active):not(.score-question-lab *):not(.touch-score-lab *) {
  border-color: var(--ui-accent, #1676a8);
  background: var(--ui-accent, #1676a8);
  color: var(--ui-inverse-text, #fff);
}

:where(.ui-rich-editable, .aural-rich-editable):not(.score-question-lab *):not(.touch-score-lab *) {
  min-height: var(--ui-editor-min-height, 120px);
  padding: var(--ui-editor-padding, 14px);
  background: var(--ui-editor-canvas-bg, #fff);
  color: var(--ui-text, #173044);
  font-size: var(--type-form-control-size, var(--ui-control-font-size, 12px));
  line-height: 1.7;
  outline: 0;
  overflow-wrap: anywhere;
}

:where(.ui-rich-editable:empty::before, .aural-rich-editable:empty::before):not(.score-question-lab *):not(.touch-score-lab *) {
  color: var(--ui-muted, #607884);
}

:where(.ui-editor-empty, .ui-editor-note, .ui-editor-media-summary):not(.score-question-lab *):not(.touch-score-lab *) {
  margin: 0;
  padding: var(--ui-editor-note-padding, 10px 11px);
  border: 1px dashed var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-empty-bg, #f7fbfc);
  color: var(--ui-muted, #607884);
  font-size: var(--type-helper-font-size, 12px);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

:where(
  input:not([type]),
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select,
  textarea,
  [contenteditable="true"],
  .aural-icon-editable,
  .select-menu summary
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  border-color: var(--ui-border-color, #bfd0da) !important;
  border-radius: var(--ui-control-radius, 3px) !important;
  background-color: var(--ui-input-bg, #fff) !important;
  color: var(--ui-text, #173044) !important;
}

:where(
  input:not([type]),
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select:not([multiple]),
  textarea,
  .select-menu summary,
  .sibling-menu summary,
  .attempt-sibling-menu summary,
  .ui-menu > summary,
  .ui-menu-summary
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  min-height: var(--form-control-height, var(--ui-control-height, 40px)) !important;
  margin: 0;
  padding: 0 var(--ui-control-padding-x, 12px) !important;
  border: 1px solid var(--ui-border-color, #bfd0da) !important;
  border-radius: var(--ui-control-radius, 3px) !important;
  background-color: var(--ui-input-bg, #fff) !important;
  color: var(--ui-text, #173044) !important;
  box-shadow: none !important;
  font-family: var(--type-font-ui, var(--type-font-primary, var(--sans))) !important;
  font-size: var(--type-form-control-size, var(--ui-control-font-size, 12px)) !important;
  font-weight: var(--type-form-control-weight, 500) !important;
  line-height: 1.2 !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease;
}

:where(
  input:not([type]),
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select:not([multiple]),
  .select-menu summary,
  .sibling-menu summary,
  .attempt-sibling-menu summary,
  .ui-menu > summary,
  .ui-menu-summary
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  height: var(--form-control-height, var(--ui-control-height, 40px)) !important;
}

:where(textarea):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  height: auto !important;
  min-height: var(--ui-textarea-min-height, 96px) !important;
  padding: 10px var(--ui-control-padding-x, 12px) !important;
  line-height: 1.55 !important;
  resize: vertical;
}

:where(select:not([multiple])):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  padding-right: calc(var(--ui-control-padding-x, 12px) + 24px) !important;
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%) !important;
  background-position:
    right 18px center,
    right 12px center !important;
  background-repeat: no-repeat !important;
  background-size: 6px 6px, 6px 6px !important;
}

:where(.select-menu, .sibling-menu, .attempt-sibling-menu, .ui-menu):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  position: relative;
  min-width: 0;
}

:where(.select-menu summary, .sibling-menu summary, .attempt-sibling-menu summary, .ui-menu > summary, .ui-menu-summary):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--ui-space-2, 8px);
  overflow: hidden;
  list-style: none !important;
  cursor: pointer;
  user-select: none;
}

:where(.select-menu summary):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  width: 100%;
}

.select-menu summary:not(.score-question-lab *):not(.touch-score-lab *)::-webkit-details-marker,
.sibling-menu summary:not(.score-question-lab *):not(.touch-score-lab *)::-webkit-details-marker,
.attempt-sibling-menu summary:not(.score-question-lab *):not(.touch-score-lab *)::-webkit-details-marker,
.ui-menu > summary:not(.score-question-lab *):not(.touch-score-lab *)::-webkit-details-marker,
.ui-menu-summary:not(.score-question-lab *):not(.touch-score-lab *)::-webkit-details-marker {
  display: none;
}

:where(.select-menu summary, .sibling-menu summary, .attempt-sibling-menu summary, .ui-menu > summary, .ui-menu-summary):not(.score-question-lab *):not(.touch-score-lab *)::after {
  content: "" !important;
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  margin-left: auto !important;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  opacity: .72;
  transform: translateY(-2px) rotate(45deg);
}

:where(.select-menu[open] summary, .sibling-menu[open] summary, .attempt-sibling-menu[open] summary, .ui-menu[open] > summary, .ui-menu[open] .ui-menu-summary):not(.score-question-lab *):not(.touch-score-lab *)::after {
  transform: translateY(2px) rotate(225deg);
}

input:not([type]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="text"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="email"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="password"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="number"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="search"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="tel"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
input[type="url"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder,
textarea:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::placeholder {
  color: var(--ui-muted, #607884);
  opacity: .62;
}

:where(
  input:not([type]):focus,
  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="password"]:focus,
  input[type="number"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="url"]:focus,
  input[type="date"]:focus,
  input[type="datetime-local"]:focus,
  input[type="time"]:focus,
  input[type="month"]:focus,
  input[type="week"]:focus,
  select:not([multiple]):focus,
  textarea:focus,
  .select-menu[open] summary,
  .sibling-menu[open] summary,
  .attempt-sibling-menu[open] summary,
  .ui-menu[open] > summary,
  .ui-menu[open] .ui-menu-summary
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  outline: 0 !important;
  border-color: var(--ui-accent, #1676a8) !important;
  box-shadow: var(--ui-shadow-focus, 0 0 0 3px color-mix(in srgb, var(--ui-accent, #1676a8) 22%, transparent)) !important;
}

:where(
  input:not([type]):disabled,
  input[type="text"]:disabled,
  input[type="email"]:disabled,
  input[type="password"]:disabled,
  input[type="number"]:disabled,
  input[type="search"]:disabled,
  input[type="tel"]:disabled,
  input[type="url"]:disabled,
  input[type="date"]:disabled,
  input[type="datetime-local"]:disabled,
  input[type="time"]:disabled,
  input[type="month"]:disabled,
  input[type="week"]:disabled,
  select:not([multiple]):disabled,
  textarea:disabled
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  background-color: var(--ui-disabled-bg, var(--ui-empty-bg, #f7fbfc)) !important;
  color: var(--ui-muted, #607884) !important;
  cursor: not-allowed;
  opacity: 1;
}

input[type="search"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-search-decoration,
input[type="search"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

input[type="date"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-calendar-picker-indicator,
input[type="datetime-local"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-calendar-picker-indicator,
input[type="time"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-calendar-picker-indicator,
input[type="month"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-calendar-picker-indicator,
input[type="week"]:not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *)::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: .72;
}

:where(.select-menu-options, .country-region-options, .ui-menu-list):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  z-index: var(--ui-z-dropdown, 32000) !important;
  max-height: min(320px, 45vh) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  border: 1px solid var(--ui-border-color, #bfd0da) !important;
  border-radius: var(--ui-panel-radius, 6px) !important;
  background: var(--ui-input-bg, #fff) !important;
  color: var(--ui-text, #173044) !important;
  box-shadow: var(--ui-shadow-dropdown, 0 12px 28px rgba(23, 47, 66, .16)) !important;
}

:where(.select-menu-options, .country-region-options):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  top: calc(100% + 4px) !important;
  min-width: max(100%, 180px) !important;
}

:where(.select-menu-options button, .country-region-options button, .ui-menu-list a):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  display: flex !important;
  align-items: center;
  width: 100%;
  min-height: var(--form-control-height, var(--ui-control-height, 40px)) !important;
  padding: 0 var(--ui-control-padding-x, 12px) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--ui-border-soft, #d4e1e6) !important;
  background: transparent !important;
  color: var(--ui-text, #173044) !important;
  font-family: var(--type-font-ui, var(--type-font-primary, var(--sans))) !important;
  font-size: var(--type-form-control-size, var(--ui-control-font-size, 12px)) !important;
  font-weight: var(--type-form-control-weight, 500) !important;
  line-height: 1.2 !important;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}

:where(.select-menu-options button:last-child, .country-region-options button:last-child, .ui-menu-list a:last-child):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  border-bottom: 0 !important;
}

:where(.select-menu-options button:hover, .select-menu-options button.selected, .country-region-options button:hover, .country-region-options button.selected, .ui-menu-list a:hover, .ui-menu-list a[aria-current="page"]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  background: var(--ui-control-hover-bg, #eef6f8) !important;
  color: var(--ui-accent-text, var(--ui-text, #173044)) !important;
}

:where(.select-menu-options button.selected, .country-region-options button.selected, .ui-menu-list a[aria-current="page"]):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):not(.cms-video-player-wrap *) {
  font-weight: var(--type-form-control-active-weight, 800) !important;
}

:where(
  button,
  a,
  input,
  select,
  textarea,
  summary,
  [contenteditable="true"],
  [role="button"]
):not(.score-question-lab *):not(.touch-score-lab *):not(.video-js *):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ui-accent, #1676a8) 24%, transparent);
  outline-offset: 2px;
}

.aural-notification-stack,
.flash-stack {
  z-index: var(--ui-z-notice, 90000);
}

.aural-notification,
.flash,
.message-toast {
  border: 1px solid var(--ui-border-color, #bfd0da);
  border-radius: var(--ui-panel-radius, 6px);
  background: var(--ui-surface, #fffdf7);
  color: var(--ui-text, #173044);
  box-shadow: var(--ui-shadow-soft, 0 12px 30px rgba(23, 47, 66, .18));
}

.flash.success {
  border-left: 4px solid var(--ui-success, #287048);
  background: var(--ui-success-bg, #eefaf4);
}

.flash.warning {
  border-left: 4px solid var(--ui-warning, #c99945);
  background: var(--ui-warning-bg, #fff8e9);
}

.flash.error {
  border-left: 4px solid var(--ui-danger, #b35243);
  background: var(--ui-danger-bg, #fff1ed);
}

.message-toast a {
  border-radius: var(--ui-control-radius, 3px);
  background: var(--ui-accent, #1676a8);
}

@media (max-width: 820px) {
  body :where(.admin-page-shell, .admin-page):not(.score-question-lab):not(.touch-score-lab) {
    width: min(100% - 28px, 1420px);
  }

  :where(.admin-page-head, .admin-title):not(.score-question-lab *):not(.touch-score-lab *) {
    align-items: flex-end;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .admin-title-actions,
  .admin-action-row {
    display: flex;
    flex-flow: row wrap;
    width: auto;
  }

  .admin-title-actions > *,
  .admin-action-row > * {
    width: auto;
  }
}

@media (max-width: 380px) {
  .menu-toggle-text {
    display: none;
  }
}
