/* ==========================================================================
   Skillzway design tokens — shared by the public website and the admin portal.
   Every colour, size and shadow used in sz-public.css / sz-admin.css comes from here.
   Bootstrap 5.3 is themed by re-pointing its CSS variables at these tokens.
   ========================================================================== */

:root {
  /* ---- Brand palette ----------------------------------------------------
     Academic navy + warm gold on white and cream. Token names are kept from
     earlier versions so every component re-themes from here: "navy"/"blue" =
     navy roles, "teal" = the gold accent. */
  --sz-navy-950: #081634;   /* deepest navy — top bar, footer, stats band */
  --sz-navy-900: #0d2352;   /* navy — headings, primary buttons */
  --sz-navy-800: #142e66;
  --sz-navy-700: #1d3b7c;
  --sz-navy-600: #2a4b92;

  --sz-blue-700: #081a40;   /* primary hover */
  --sz-blue-600: #0d2352;   /* primary — 14:1 on white */
  --sz-blue-500: #1d3b7c;
  --sz-blue-300: #c5cee0;   /* strong rule */
  --sz-blue-100: #e3e8f2;   /* subtle fill */
  --sz-blue-50:  #f2f5fa;   /* faint fill */

  --sz-teal-600: #946515;   /* gold text on white — 4.8:1 */
  --sz-teal-500: #c4922e;   /* gold fill, large display text */
  --sz-teal-400: #dcaf55;   /* gold on navy */
  --sz-teal-100: #f5e8cc;
  --sz-teal-50:  #fbf6ea;

  /* ---- Accent roles used by the homepage hero, offerings stripe and key offerings.
     The website's colour themes (sz-themes.css) change these together with the navy and gold scales. */
  --sz-accent-soft: #f3d27a;   /* light gold on navy */
  --sz-highlight:   #1f5fe0;   /* highlighted words, active menu item, links in cards */
  --sz-highlight-2: #1ea0ff;   /* lighter end of the "Enquire Now" gradient */
  --sz-eyebrow:     #4a2fd4;   /* small section labels ("OUR KEY OFFERINGS") */
  --sz-glow:        #23c8ef;   /* glowing border of the offerings stripe */
  --sz-glow-soft:   #8fe6f7;   /* icons on the stripe */
  --sz-cta-1:       #ffd640;   /* bright call-to-action button, top */
  --sz-cta-2:       #f6b800;   /* bright call-to-action button, bottom; active slide dot */

  /* ---- Neutrals ------------------------------------------------------------ */
  --sz-ink-900: #15203a;    /* body text */
  --sz-ink-700: #303b55;
  --sz-ink-600: #47526b;    /* secondary text */
  --sz-ink-500: #5f6a80;    /* muted text — 5.4:1 */
  --sz-ink-400: #9aa3b5;
  --sz-ink-300: #cbd1dc;
  --sz-ink-200: #e2e6ed;    /* hairline rules */
  --sz-ink-100: #eef1f5;
  --sz-paper:   #ffffff;    /* cards, menus, forms (stay white in every theme) */
  --sz-page-bg: #ffffff;    /* page background behind the sections; tinted by the colour themes */
  --sz-paper-2: #f8f5ee;    /* section tint — warm cream */
  --sz-paper-3: #efe8d9;

  /* ---- Status ---------------------------------------------------------------- */
  --sz-success-700: #1f6b45;  --sz-success-100: #dfeee4;  --sz-success-500: #2f8f5e;
  --sz-warning-700: #835a05;  --sz-warning-100: #f8ecd0;  --sz-warning-500: #c98f12;
  --sz-danger-700:  #a3231b;  --sz-danger-100:  #f7e0dc;  --sz-danger-500:  #c8352a;
  --sz-info-700:    #1d3b7c;  --sz-info-100:    #e3e8f2;
  --sz-neutral-700: #47526b;  --sz-neutral-100: #eef1f5;
  /* ---- Branch themes (admin category chips) — earthy, low-chroma -------- */
  --sz-theme-mech:     #2b4a6f;
  --sz-theme-civil:    #3f6b4f;
  --sz-theme-elec:     #9a6a12;
  --sz-theme-program:  #5b4a7a;
  --sz-theme-code:     #3a362f;
  --sz-theme-data:     #2f6670;
  --sz-theme-creative: #9a3f4a;

  /* ---- Typography --------------------------------------------------------
     Display: Source Serif 4 (bold headlines). UI/body/labels: Inter. */
  --sz-font-display: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sz-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --sz-font-ui: var(--sz-font-body);
  --sz-font-mono: var(--sz-font-body);   /* small labels use the body face */

  /* fluid type scale: phone → desktop */
  --sz-fs-display: clamp(2.9rem, 1.6rem + 5.6vw, 6rem);
  --sz-fs-h1: clamp(2.5rem, 1.7rem + 3.4vw, 4.25rem);
  --sz-fs-h2: clamp(2.05rem, 1.55rem + 2.1vw, 3.25rem);
  --sz-fs-h3: clamp(1.15rem, 1.1rem + .25vw, 1.3rem);
  --sz-fs-h4: 1.05rem;
  --sz-fs-lead: clamp(1.05rem, 1rem + .25vw, 1.2rem);
  --sz-fs-body: 1rem;
  --sz-fs-sm: .875rem;
  --sz-fs-xs: .78rem;

  --sz-lh-tight: 1.02;
  --sz-lh-snug: 1.3;
  --sz-lh-body: 1.6;
  --sz-tracking-tight: -.015em;
  --sz-tracking-caps: .08em;
  /* ---- Spacing (4px base) ----------------------------------------------- */
  --sz-space-1: .25rem;  --sz-space-2: .5rem;   --sz-space-3: .75rem;
  --sz-space-4: 1rem;    --sz-space-5: 1.25rem; --sz-space-6: 1.5rem;
  --sz-space-8: 2rem;    --sz-space-10: 2.5rem; --sz-space-12: 3rem;
  --sz-space-16: 4rem;
  --sz-section-y: clamp(3.5rem, 2.2rem + 5.5vw, 7rem);
  --sz-gutter: 1rem;               /* phone side gutter */
  --sz-container: 1240px;

  /* ---- Shape & depth (restrained: small radii, soft layered shadows) ---- */
  --sz-radius-xs: 3px;
  --sz-radius-sm: 5px;
  --sz-radius: 8px;
  --sz-radius-lg: 10px;
  --sz-radius-pill: 999px;

  --sz-shadow-1: 0 1px 2px rgba(13, 35, 82, .06);
  --sz-shadow-2: 0 1px 2px rgba(13, 35, 82, .05), 0 14px 32px -16px rgba(13, 35, 82, .22);
  --sz-shadow-3: 0 2px 6px rgba(13, 35, 82, .06), 0 30px 60px -24px rgba(13, 35, 82, .3);
  --sz-ring: 0 0 0 3px rgba(196, 146, 46, .3);
  --sz-focus: 2px solid var(--sz-navy-700);

  /* ---- Motion ----------------------------------------------------------- */
  --sz-ease: cubic-bezier(.2, .7, .2, 1);
  --sz-dur-1: 120ms;
  --sz-dur-2: 220ms;
  --sz-dur-3: 420ms;

  /* ---- Layers ----------------------------------------------------------- */
  --sz-z-nav: 1030;
  --sz-z-actionbar: 1035;

  /* ---- Bootstrap 5.3 theme mapping -------------------------------------- */
  --bs-primary: var(--sz-blue-600);
  --bs-primary-rgb: 13, 35, 82;
  --bs-primary-text-emphasis: var(--sz-blue-700);
  --bs-primary-bg-subtle: var(--sz-blue-50);
  --bs-primary-border-subtle: var(--sz-blue-100);
  --bs-secondary-color: var(--sz-ink-600);
  --bs-body-font-family: var(--sz-font-body);
  --bs-body-font-size: var(--sz-fs-body);
  --bs-body-line-height: var(--sz-lh-body);
  --bs-body-color: var(--sz-ink-900);
  --bs-body-color-rgb: 21, 32, 58;
  --bs-body-bg: var(--sz-paper);
  --bs-emphasis-color: var(--sz-navy-900);
  --bs-heading-color: var(--sz-navy-900);
  --bs-link-color: var(--sz-navy-700);
  --bs-link-color-rgb: 29, 59, 124;
  --bs-link-hover-color: var(--sz-teal-600);
  --bs-link-hover-color-rgb: 148, 101, 21;
  --bs-border-color: var(--sz-ink-200);
  --bs-border-radius: var(--sz-radius-sm);
  --bs-border-radius-lg: var(--sz-radius);
  --bs-border-radius-sm: var(--sz-radius-xs);
  --bs-focus-ring-color: rgba(196, 146, 46, .3);
  --bs-success: var(--sz-success-500);
  --bs-danger: var(--sz-danger-500);
  --bs-warning: var(--sz-warning-500);
}

/* ==========================================================================
   Shared foundations
   ========================================================================== */

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  background: var(--sz-paper);
  color: var(--sz-ink-900);
  font-feature-settings: "ss01", "tnum" 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Large headlines in the serif; smaller headings in the sans for precision. */
h1, h2, .sz-display {
  font-family: var(--sz-font-display);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--bs-heading-color);
}
h3, h4, h5, h6 {
  font-family: var(--sz-font-body);
  font-weight: 600;
  letter-spacing: -.012em;
  color: var(--bs-heading-color);
}
h1 { font-size: var(--sz-fs-h1); line-height: var(--sz-lh-tight); }
h2 { font-size: var(--sz-fs-h2); line-height: 1.05; }
h3 { font-size: var(--sz-fs-h3); line-height: var(--sz-lh-snug); }
h4 { font-size: var(--sz-fs-h4); line-height: var(--sz-lh-snug); }
h1 em, h2 em, .sz-display em { font-style: normal; color: var(--sz-teal-500); }

.sz-display { font-size: var(--sz-fs-display); line-height: .98; letter-spacing: -.02em; }
.sz-lead { font-size: var(--sz-fs-lead); line-height: 1.6; color: var(--sz-ink-600); }
.sz-mono { font-family: var(--sz-font-mono); }
.sz-muted { color: var(--sz-ink-500) !important; }
.text-wrap-balance { text-wrap: balance; }
.text-wrap-pretty { text-wrap: pretty; }

::selection { background: var(--sz-teal-100); color: var(--sz-navy-900); }

/* Visible, consistent keyboard focus everywhere (mouse clicks stay clean). */
:focus { outline: none; }
:focus-visible { outline: var(--sz-focus); outline-offset: 2px; border-radius: var(--sz-radius-xs); }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: var(--sz-focus); outline-offset: 2px; box-shadow: none; }

.sz-skip-link {
  position: absolute; left: var(--sz-space-4); top: -100px; z-index: 2000;
  background: var(--sz-navy-900); color: #fff; padding: .75rem 1rem; border-radius: var(--sz-radius-sm);
  font-weight: 600; text-decoration: none;
}
.sz-skip-link:focus { top: var(--sz-space-4); }

/* ---- Buttons ---------------------------------------------------------- */
.btn {
  --bs-btn-font-family: var(--sz-font-body);
  --bs-btn-font-weight: 500;
  --bs-btn-padding-x: 1.15rem;
  --bs-btn-padding-y: .62rem;
  --bs-btn-border-radius: var(--sz-radius-sm);
  --bs-btn-font-size: .94rem;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  letter-spacing: -.005em;
  transition: background-color var(--sz-dur-1) var(--sz-ease), border-color var(--sz-dur-1) var(--sz-ease),
              color var(--sz-dur-1) var(--sz-ease), box-shadow var(--sz-dur-2) var(--sz-ease), transform var(--sz-dur-1) var(--sz-ease);
}
.btn:active { transform: translateY(1px); }
.btn-lg { --bs-btn-padding-x: 1.5rem; --bs-btn-padding-y: .85rem; --bs-btn-font-size: 1rem; --bs-btn-border-radius: var(--sz-radius-sm); }
.btn-sm { --bs-btn-padding-x: .8rem; --bs-btn-padding-y: .4rem; --bs-btn-font-size: .84rem; gap: .35rem; }
/* Touch screens: every button meets the 44px minimum target, even "small" ones. */
@media (pointer: coarse), (max-width: 767.98px) { .btn, .btn-sm { min-height: 2.75rem; } }

.btn-primary {
  --bs-btn-bg: var(--sz-blue-600); --bs-btn-border-color: var(--sz-blue-600);
  --bs-btn-hover-bg: var(--sz-blue-700); --bs-btn-hover-border-color: var(--sz-blue-700);
  --bs-btn-active-bg: var(--sz-blue-700); --bs-btn-active-border-color: var(--sz-blue-700);
  --bs-btn-disabled-bg: var(--sz-ink-400); --bs-btn-disabled-border-color: var(--sz-ink-400);
}

.btn-accent {
  --bs-btn-color: #fff; --bs-btn-bg: var(--sz-teal-500); --bs-btn-border-color: var(--sz-teal-500);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--sz-teal-600); --bs-btn-hover-border-color: var(--sz-teal-600);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #7d5512; --bs-btn-active-border-color: #7d5512;
}

.btn-navy {
  --bs-btn-color: #fff; --bs-btn-bg: var(--sz-navy-900); --bs-btn-border-color: var(--sz-navy-900);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--sz-navy-700); --bs-btn-hover-border-color: var(--sz-navy-700);
  --bs-btn-active-bg: var(--sz-navy-800); --bs-btn-active-color: #fff;
}

.btn-outline-primary {
  --bs-btn-color: var(--sz-blue-600); --bs-btn-border-color: var(--sz-blue-100); --bs-btn-bg: var(--sz-paper);
  --bs-btn-hover-color: var(--sz-blue-700); --bs-btn-hover-bg: var(--sz-blue-50); --bs-btn-hover-border-color: var(--sz-blue-300);
  --bs-btn-active-color: var(--sz-blue-700); --bs-btn-active-bg: var(--sz-blue-100); --bs-btn-active-border-color: var(--sz-blue-300);
}

.btn-outline-neutral {
  --bs-btn-color: var(--sz-ink-900); --bs-btn-border-color: var(--sz-ink-300); --bs-btn-bg: transparent;
  --bs-btn-hover-color: var(--sz-navy-900); --bs-btn-hover-bg: var(--sz-paper-2); --bs-btn-hover-border-color: var(--sz-ink-300);
  --bs-btn-active-color: var(--sz-navy-900); --bs-btn-active-bg: var(--sz-paper-3); --bs-btn-active-border-color: var(--sz-ink-300);
}

.btn-ghost-light {
  --bs-btn-color: #fff; --bs-btn-bg: rgba(255,255,255,.06); --bs-btn-border-color: rgba(255,255,255,.22);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: rgba(255,255,255,.12); --bs-btn-hover-border-color: rgba(255,255,255,.4);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: rgba(255,255,255,.16);
}

.btn-whatsapp {
  --bs-btn-color: #fff; --bs-btn-bg: #1e7a4c; --bs-btn-border-color: #1e7a4c;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #17633d; --bs-btn-hover-border-color: #17633d;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #124f31;
}

.btn-link-arrow {
  display: inline-flex; align-items: center; gap: .45rem; font-weight: 500; text-decoration: none; color: var(--sz-ink-900);
  border-bottom: 1px solid var(--sz-ink-300); padding-bottom: .15rem;
}
.btn-link-arrow:hover { color: var(--sz-teal-600); border-color: currentColor; }
.btn-link-arrow .bi { transition: transform var(--sz-dur-2) var(--sz-ease); }
.btn-link-arrow:hover .bi { transform: translateX(3px); }

/* ---- Status badges (shared by public + admin) ------------------------- */
.sz-badge {
  --sz-badge-fg: var(--sz-neutral-700); --sz-badge-bg: var(--sz-neutral-100); --sz-badge-dot: var(--sz-ink-400);
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .26rem .6rem .26rem .5rem; border-radius: var(--sz-radius-pill);
  font-size: var(--sz-fs-xs); font-weight: 650; line-height: 1.2; white-space: nowrap;
  color: var(--sz-badge-fg); background: var(--sz-badge-bg);
}
.sz-badge::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: var(--sz-badge-dot); flex: none; }
.sz-badge--plain::before { display: none; }
.sz-badge--open, .sz-badge--published, .sz-badge--converted, .sz-badge--active
  { --sz-badge-fg: var(--sz-success-700); --sz-badge-bg: var(--sz-success-100); --sz-badge-dot: var(--sz-success-500); }
.sz-badge--warn, .sz-badge--follow_up, .sz-badge--scheduled, .sz-badge--upcoming
  { --sz-badge-fg: var(--sz-warning-700); --sz-badge-bg: var(--sz-warning-100); --sz-badge-dot: var(--sz-warning-500); }
.sz-badge--full, .sz-badge--cancelled, .sz-badge--not_interested, .sz-badge--overdue
  { --sz-badge-fg: var(--sz-danger-700); --sz-badge-bg: var(--sz-danger-100); --sz-badge-dot: var(--sz-danger-500); }
.sz-badge--new, .sz-badge--contacted, .sz-badge--in_progress, .sz-badge--interested
  { --sz-badge-fg: var(--sz-info-700); --sz-badge-bg: var(--sz-info-100); --sz-badge-dot: var(--sz-blue-600); }
.sz-badge--closed, .sz-badge--draft, .sz-badge--archived, .sz-badge--completed, .sz-badge--inactive
  { --sz-badge-fg: var(--sz-neutral-700); --sz-badge-bg: var(--sz-neutral-100); --sz-badge-dot: var(--sz-ink-400); }
.sz-badge--open::before, .sz-badge--new::before { box-shadow: 0 0 0 3px rgba(22, 163, 74, .18); }
.sz-badge--new::before { box-shadow: 0 0 0 3px rgba(36, 83, 230, .18); }

/* ---- Chips (technology tags) ------------------------------------------ */
.sz-chip {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .18rem .5rem; border-radius: var(--sz-radius-xs);
  font-family: var(--sz-font-mono); font-size: .72rem; font-weight: 500; line-height: 1.4; letter-spacing: -.01em;
  color: var(--sz-ink-600); background: transparent; border: 1px solid var(--sz-ink-200);
}
.sz-chip--more { color: var(--sz-ink-500); background: transparent; border-style: dashed; }

/* ---- Forms ------------------------------------------------------------ */
.form-label { font-weight: 600; font-size: var(--sz-fs-sm); color: var(--sz-ink-700); margin-bottom: .4rem; }
.form-label .sz-req { color: var(--sz-danger-500); margin-left: .15rem; }
.form-control, .form-select {
  min-height: 2.875rem; /* 46px — comfortable touch target */
  border-color: var(--sz-ink-300); border-radius: var(--sz-radius-sm); color: var(--sz-ink-900);
  transition: border-color var(--sz-dur-1) var(--sz-ease), box-shadow var(--sz-dur-1) var(--sz-ease);
}
.form-control::placeholder { color: var(--sz-ink-400); }
.form-control:hover, .form-select:hover { border-color: var(--sz-ink-400); }
.form-control:focus, .form-select:focus { border-color: var(--sz-ink-700); box-shadow: var(--sz-ring); }
textarea.form-control { min-height: 7rem; }
.form-text { color: var(--sz-ink-500); font-size: var(--sz-fs-xs); }
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--sz-danger-500); background-image: none; padding-right: .75rem; }
.invalid-feedback { color: var(--sz-danger-700); font-weight: 500; font-size: var(--sz-fs-xs); }
.invalid-feedback::before { content: "\F33A"; font-family: "bootstrap-icons"; margin-right: .3rem; vertical-align: -1px; }
.form-check-input:checked { background-color: var(--sz-navy-900); border-color: var(--sz-navy-900); }
.form-check-input:focus { box-shadow: var(--sz-ring); border-color: var(--sz-blue-500); }
.form-switch .form-check-input { width: 2.4em; height: 1.3em; margin-top: .15em; }

/* ---- Alerts ----------------------------------------------------------- */
.sz-alert {
  display: flex; gap: .75rem; align-items: flex-start;
  padding: .9rem 1rem; border-radius: var(--sz-radius); border: 1px solid; font-size: var(--sz-fs-sm);
}
.sz-alert > .bi { font-size: 1.1rem; line-height: 1.3; flex: none; }
.sz-alert strong { display: block; font-weight: 650; }
.sz-alert--success { color: var(--sz-success-700); background: #f1fbf5; border-color: #bfe9cf; }
.sz-alert--error   { color: var(--sz-danger-700);  background: #fff5f4; border-color: #f7c8c3; }
.sz-alert--info    { color: var(--sz-info-700);    background: var(--sz-blue-50); border-color: var(--sz-blue-100); }
.sz-alert--warning { color: var(--sz-warning-700); background: #fffaf0; border-color: #f6dca5; }

/* ---- Empty state ------------------------------------------------------ */
.sz-empty {
  text-align: center; padding: var(--sz-space-12) var(--sz-space-6);
  border: 1px dashed var(--sz-ink-300); border-radius: var(--sz-radius-lg); background: var(--sz-paper);
}
.sz-empty__icon {
  width: 3.5rem; height: 3.5rem; margin: 0 auto var(--sz-space-4); display: grid; place-items: center;
  border-radius: var(--sz-radius); background: var(--sz-blue-50); color: var(--sz-blue-600); font-size: 1.5rem;
}
.sz-empty p { color: var(--sz-ink-500); max-width: 26rem; margin: 0 auto var(--sz-space-5); font-size: var(--sz-fs-sm); }
.sz-empty .sz-empty__title { font-family: var(--sz-font-display); font-size: 1.125rem; font-weight: 700; color: var(--sz-navy-900); margin-bottom: .35rem; max-width: none; }

/* ---- Pagination ------------------------------------------------------- */
.pagination {
  --bs-pagination-color: var(--sz-ink-700); --bs-pagination-border-color: var(--sz-ink-200);
  --bs-pagination-hover-color: var(--sz-navy-900); --bs-pagination-hover-bg: var(--sz-paper-2);
  --bs-pagination-active-bg: var(--sz-navy-900); --bs-pagination-active-border-color: var(--sz-navy-900);
  --bs-pagination-focus-box-shadow: var(--sz-ring); --bs-pagination-border-radius: var(--sz-radius-sm);
  --bs-pagination-padding-x: .85rem; --bs-pagination-padding-y: .5rem; gap: .35rem;
}
.pagination .page-link { border-radius: var(--sz-radius-sm) !important; font-weight: 600; font-size: var(--sz-fs-sm); min-width: 2.5rem; text-align: center; }

/* ---- Breadcrumb ------------------------------------------------------- */
.breadcrumb { --bs-breadcrumb-divider: "›"; --bs-breadcrumb-item-padding-x: .5rem; font-size: var(--sz-fs-sm); margin: 0; }
.breadcrumb a { color: inherit; text-decoration: none; opacity: .8; display: inline-block; padding-block: .3rem; } /* ≥24px tap height (WCAG 2.2 target size) */
.breadcrumb { align-items: center; }
@media (pointer: coarse) { .pagination .page-link { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; } }
.breadcrumb a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb-item.active { color: inherit; opacity: 1; font-weight: 600; }

/* ---- Modal ------------------------------------------------------------ */
.modal { --bs-modal-border-radius: var(--sz-radius-lg); --bs-modal-border-width: 0; --bs-modal-box-shadow: var(--sz-shadow-3); }
.modal-header { border-bottom: 0; padding-bottom: 0; }
.modal-footer { border-top: 0; padding-top: 0; }
.modal-backdrop { --bs-backdrop-bg: var(--sz-navy-950); --bs-backdrop-opacity: .55; }

/* ---- Dropdown --------------------------------------------------------- */
.dropdown-menu {
  --bs-dropdown-border-color: var(--sz-ink-200); --bs-dropdown-border-radius: var(--sz-radius);
  --bs-dropdown-box-shadow: var(--sz-shadow-3); --bs-dropdown-link-hover-bg: var(--sz-paper-2);
  --bs-dropdown-link-active-bg: var(--sz-blue-50); --bs-dropdown-link-active-color: var(--sz-blue-700);
  --bs-dropdown-item-padding-y: .5rem; --bs-dropdown-font-size: var(--sz-fs-sm);
  box-shadow: var(--bs-dropdown-box-shadow); padding: .4rem;
}
.dropdown-item { border-radius: var(--sz-radius-sm); display: flex; align-items: center; gap: .6rem; font-weight: 500; }
.dropdown-item .bi { color: var(--sz-ink-500); }
.dropdown-item.text-danger .bi { color: inherit; }

/* ---- Utilities -------------------------------------------------------- */
.sz-visually-hidden-focusable:not(:focus) { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; }
.sz-stack > * + * { margin-top: var(--sz-space-4); }

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

/* Even line lengths on multi-line headings */
h1, h2, h3, .sz-display { text-wrap: balance; }

