/*
 * Fitz Design System 3.0
 * Source of truth for visual tokens and shared UI behavior.
 * Page-specific compatibility rules are isolated in design-system-legacy.css.
 */
@import url("./design-system-legacy.css?v=20261002ds3final");

@font-face {
  font-family: "Pretendard Variable";
  src: url("../fonts/PretendardVariable.woff2") format("woff2-variations");
  font-weight: 45 920;
  font-style: normal;
  font-display: optional;
}

:root {
  /* Brand and neutral colors */
  --ds-color-brand: var(--fitz-brand-primary, #5b2de8);
  --ds-color-brand-strong: var(--fitz-brand-primary-hover, #4b22cb);
  --ds-color-brand-soft: var(--fitz-brand-primary-soft, #f2eefc);
  --ds-color-brand-tint: var(--fitz-brand-tint, #f7f4fe);
  --ds-color-on-brand: #fff;
  --ds-color-canvas: var(--fitz-color-canvas, #f8f7fb);
  --ds-color-surface: var(--fitz-color-surface, #fff);
  --ds-color-surface-subtle: var(--fitz-color-subtle, #f4f1f8);
  --ds-color-text: var(--fitz-color-text, #292334);
  --ds-color-text-secondary: var(--fitz-color-secondary, #51485f);
  --ds-color-text-muted: var(--fitz-color-muted, #71677f);
  --ds-color-text-quiet: var(--fitz-color-quiet, #8c8398);
  --ds-color-border: var(--fitz-color-border, #e4dfec);
  --ds-color-border-strong: var(--fitz-color-border-strong, #c9bfdc);
  --ds-color-disabled: var(--fitz-color-disabled, #eeebf2);
  --ds-color-success: #168453;
  --ds-color-success-soft: #edf8f2;
  --ds-color-warning: #a65b08;
  --ds-color-warning-soft: #fff7e8;
  --ds-color-danger: #b42318;
  --ds-color-danger-soft: #fff0f2;
  --ds-color-info: #3b5ccc;
  --ds-color-info-soft: #eef2ff;
  --ds-color-scrim: rgb(28 24 36 / 46%);
  /* Brand gradients are reserved for marketing artwork, never for product CTAs. */
  --ds-gradient-brand-art: linear-gradient(135deg, #25123f 0%, var(--ds-color-brand-strong) 48%, #7445f5 100%);
  --ds-shadow-brand-soft: 0 4px 12px rgb(91 45 232 / 16%);

  /* Typography */
  --ds-font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", "Malgun Gothic", sans-serif;
  --ds-font-page-title: 24px;
  --ds-line-page-title: 32px;
  --ds-font-section-title: 18px;
  --ds-line-section-title: 26px;
  --ds-font-item-title: 15px;
  --ds-line-item-title: 23px;
  --ds-font-body: 15px;
  --ds-line-body: 23px;
  --ds-font-action: 15px;
  --ds-line-action: 23px;
  --ds-font-input: 16px;
  --ds-line-input: 24px;
  --ds-font-label: 14px;
  --ds-line-label: 21px;
  --ds-font-supporting: 13px;
  --ds-line-supporting: 20px;
  --ds-font-navigation: 12px;
  --ds-line-navigation: 16px;
  --ds-weight-regular: 400;
  --ds-weight-medium: 500;
  --ds-weight-semibold: 600;
  --ds-weight-bold: 700;
  --ds-letter-title: -.03em;
  --ds-letter-section: -.02em;

  /* Spacing: 4px base grid */
  --ds-space-0: 0;
  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-5: 20px;
  --ds-space-6: 24px;
  --ds-space-8: 32px;
  --ds-space-10: 40px;
  --ds-space-12: 48px;

  /* Shape, controls and layout */
  --ds-radius-sm: 8px;
  --ds-radius-md: 12px;
  --ds-radius-lg: 16px;
  --ds-radius-card: 20px;
  --ds-radius-sheet: 24px;
  --ds-radius-pill: 999px;
  --ds-size-control: 44px;
  --ds-size-search-chip: 32px;
  --ds-size-action: 52px;
  --ds-size-header: 56px;
  --ds-size-list-row: 60px;
  --ds-size-list-row-compact: 44px;
  --ds-list-row-compact-padding-block: 6px;
  --ds-size-wheel-row: 40px;
  --ds-size-wheel-viewport: calc(var(--ds-size-wheel-row) * 5);
  --ds-font-wheel-item: 16px;
  --ds-line-wheel-item: 24px;
  --ds-font-wheel-selected: 22px;
  --ds-line-wheel-selected: 30px;
  --ds-size-footer-nav: 72px;
  --ds-page-max: 760px;
  --ds-page-padding: 16px;
  --ds-page-padding-wide: 24px;
  --ds-shadow-card: 0 2px 8px rgb(37 35 51 / 3%);
  --ds-shadow-overlay: 0 18px 48px rgb(28 24 36 / 18%);
  --ds-focus-ring: 0 0 0 3px rgb(91 45 232 / 24%);
  --ds-transition-fast: 140ms ease;
  --ds-transition-base: 200ms ease;
  --ds-z-header: 100;
  --ds-z-footer: 110;
  --ds-z-overlay: 1000;
  --ds-z-toast: 1100;
  --ds-z-alert: 13000;

  /* Backward-compatible aliases */
  --ds-font: var(--ds-font-family);
  --ds-bg: var(--ds-color-canvas);
  --ds-surface: var(--ds-color-surface);
  --ds-text: var(--ds-color-text);
  --ds-muted: var(--ds-color-text-muted);
  --ds-border: var(--ds-color-border);
  --ds-primary: var(--ds-color-brand);
  --ds-pressed: var(--ds-color-brand-strong);
  --ds-soft: var(--ds-color-brand-soft);
  --ds-success: var(--ds-color-success);
  --ds-warning: var(--ds-color-warning);
  --ds-danger: var(--ds-color-danger);
  --ds-title: var(--ds-font-page-title);
  --ds-section: var(--ds-font-section-title);
  --ds-body: var(--ds-font-body);
  --ds-input: var(--ds-font-input);
  --ds-caption: var(--ds-font-supporting);
  --ds-control: var(--ds-size-control);
  --ds-action: var(--ds-size-action);
  --ds-radius: var(--ds-radius-md);
  --ds-card-radius: var(--ds-radius-card);
  --ds-gap: var(--ds-space-4);
  --ds-decision: var(--ds-font-label);
  --ds-field-label: var(--ds-font-label);
  --signup-height-row: var(--ds-size-wheel-row);
  --ds-type-page-title: var(--ds-font-page-title);
  --ds-type-section-title: var(--ds-font-section-title);
  --ds-type-item-title: var(--ds-font-item-title);
  --ds-type-body: var(--ds-font-body);
  --ds-type-action: var(--ds-font-action);
  --ds-type-input: var(--ds-font-input);
  --ds-type-label: var(--ds-font-label);
  --ds-type-supporting: var(--ds-font-supporting);
  --ds-type-navigation: var(--ds-font-navigation);
}

/* Foundation */
html {
  color-scheme: only light;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

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

body {
  margin: 0;
  background: var(--ds-color-canvas);
  color: var(--ds-color-text);
  font-family: var(--ds-font-family) !important;
  font-size: var(--ds-font-body) !important;
  font-weight: var(--ds-weight-regular);
  line-height: var(--ds-line-body) !important;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body :where(button, input, select, textarea) { font: inherit; }
body :where(h1, h2, h3, h4, p, a, span, strong, em, small, label, legend, div, section, article, li, dt, dd, th, td, button, input, select, textarea, summary) { font-family: var(--ds-font-family) !important; }
body :where(img, svg, video) { max-width: 100%; }
body :where(h1, h2, h3, h4, p, ul, ol, dl, dd) { margin-block-start: 0; }
body :where(h1, h2, h3, h4) { color: var(--ds-color-text); word-break: keep-all; overflow-wrap: anywhere; }
body :where(p, li, dd, td) { overflow-wrap: anywhere; }
body :where(a) { color: inherit; text-underline-offset: 3px; }

/* Semantic typography */
body :where(h1, .fitz-type-page-title, .page-title, .settings-title, .auth-title, .home-hero-title, .profile-title, .my-profile-title, .payment-title, .notice-title, .weekly-match-title) {
  font-size: var(--ds-font-page-title) !important;
  font-weight: var(--ds-weight-bold) !important;
  line-height: var(--ds-line-page-title) !important;
  letter-spacing: var(--ds-letter-title) !important;
}

body :where(h2, .fitz-type-section-title, .section-title, .home-section-title, .profile-section-title, .my-profile-section-title, .settings-section-title, .lm-dialog-title, .fitz-select-dialog-title, .match-sheet-title) {
  font-size: var(--ds-font-section-title) !important;
  font-weight: var(--ds-weight-bold) !important;
  line-height: var(--ds-line-section-title) !important;
  letter-spacing: var(--ds-letter-section) !important;
}

body :where(h3, h4, .fitz-type-item-title, .settings-row-title, .menu-hub-row-title, .notice-item-title, .payment-history-title, .match-stage-title, .home-status-title) {
  font-size: var(--ds-font-item-title) !important;
  font-weight: var(--ds-weight-semibold) !important;
  line-height: var(--ds-line-item-title) !important;
}

body :where(.fitz-type-body, p, li, dd, td, .detail-value, .my-profile-value, .verified-profile-value) {
  font-size: var(--ds-font-body) !important;
  line-height: var(--ds-line-body) !important;
}

body :where(.fitz-type-label, label, legend, .label, .control-label, .profile-label, .my-profile-label, .detail-label, .section-label) {
  font-size: var(--ds-font-label) !important;
  font-weight: var(--ds-weight-medium) !important;
  line-height: var(--ds-line-label) !important;
}

body :where(.fitz-type-supporting, small, .small, .caption, .form-text, .help-block, .text-muted, .description, .microcopy, .meta, .notice-date, .textarea-meta) {
  font-size: var(--ds-font-supporting) !important;
  line-height: var(--ds-line-supporting) !important;
}

.fitz-type-page-title, .fitz-type-section-title, .fitz-type-item-title,
.fitz-type-body, .fitz-type-label, .fitz-type-supporting { margin: 0; }

/* Page and layout primitives */
.fitz-page { width: min(100%, var(--ds-page-max)); margin-inline: auto; padding: var(--ds-space-4) var(--ds-page-padding) var(--ds-space-8); }
.fitz-stack { display: flex; flex-direction: column; gap: var(--ds-space-4); }
.fitz-stack--sm { gap: var(--ds-space-2); }
.fitz-stack--lg { gap: var(--ds-space-6); }
.fitz-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-2); }
.fitz-grid { display: grid; gap: var(--ds-space-4); }
.fitz-divider { width: 100%; height: 1px; margin: 0; border: 0; background: var(--ds-color-border); }

/* Actions */
/* Explicit components are also available to views outside the legacy adapters. */
.fitz-button--block { width: 100%; }
body :where(.btn, .button, .primary-button, .secondary-button, .cta-button, .admin-btn, .notice-button, .friend-link-button, .match-sheet-button, .region-complete-button, .signup-mode-submit, .member-mode-submit, .profile-disclosure-submit, .fitz-button) {
  display: inline-flex;
  min-height: var(--ds-size-control) !important;
  align-items: center;
  justify-content: center;
  gap: var(--ds-space-2);
  padding: 10px var(--ds-space-4);
  border: 1px solid transparent;
  border-radius: var(--ds-radius-md) !important;
  font-size: var(--ds-font-action) !important;
  font-weight: var(--ds-weight-semibold) !important;
  line-height: var(--ds-line-action) !important;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
  box-shadow: none !important;
  transition: color var(--ds-transition-fast), background-color var(--ds-transition-fast), border-color var(--ds-transition-fast), transform var(--ds-transition-fast);
}

body :where(.btn-primary, .primary-button, .cta-button, .signup-mode-submit, .member-mode-submit, .profile-disclosure-submit, .fitz-button--primary) {
  min-height: var(--ds-size-action) !important;
  border-color: transparent !important;
  background: var(--ds-color-brand) !important;
  color: #fff !important;
  box-shadow: none !important;
}

body :where(.btn-primary, .primary-button, .cta-button, .signup-mode-submit, .member-mode-submit, .profile-disclosure-submit, .fitz-button--primary):not(:disabled):hover { border-color: transparent !important; background: var(--ds-color-brand-strong) !important; transform: none; }
body :where(.btn-primary, .primary-button, .cta-button, .signup-mode-submit, .member-mode-submit, .profile-disclosure-submit, .fitz-button--primary):not(:disabled):active { background: var(--ds-color-brand-strong) !important; transform: none; }
body :where(.btn-secondary, .btn-outline, .secondary-button, .fitz-button--secondary) { border-color: var(--ds-color-border) !important; background: var(--ds-color-surface) !important; color: var(--ds-color-text) !important; }
body :where(.btn-link, .fitz-button--tertiary) { border-color: transparent !important; background: transparent !important; color: var(--ds-color-brand) !important; }
body :where(.btn-danger, .fitz-button--danger) { border-color: var(--ds-color-danger) !important; background: var(--ds-color-danger) !important; color: #fff !important; }

body :where(button, [role="button"], summary) { min-height: var(--ds-size-control); }
body :where(button, .btn, [role="button"]):disabled,
body :where(button, .btn, [role="button"])[aria-disabled="true"] {
  border-color: var(--ds-color-border) !important;
  background: var(--ds-color-disabled) !important;
  color: var(--ds-color-text-muted) !important;
  -webkit-text-fill-color: var(--ds-color-text-muted) !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

.fitz-icon-button,
body :where(.region-picker-close, .profile-region-close, .signup-simple-select-close, .signup-education-close, .signup-height-close) {
  display: inline-flex;
  width: var(--ds-size-control);
  height: var(--ds-size-control);
  min-width: var(--ds-size-control);
  min-height: var(--ds-size-control);
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: var(--ds-radius-md);
  background: transparent;
  color: var(--ds-color-text-muted);
}
.fitz-icon-button svg { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.fitz-icon-button--danger { background: var(--ds-color-danger-soft); color: var(--ds-color-danger); }
.fitz-icon-button--danger:not(:disabled):hover { background: #ffe1e5; color: var(--ds-color-danger); }
.fitz-icon-button--danger:not(:disabled):active { background: #ffd4da; }

/* Square photo tiles: four visible items on mobile, horizontal overflow after that. */
.fitz-photo-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(96px,max(72px,calc((100% - 24px) / 4)));
  gap: 8px;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.fitz-photo-grid::-webkit-scrollbar { display: none; }
.fitz-photo-tile {
  position: relative;
  box-sizing: border-box;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ds-color-border);
  border-radius: var(--ds-radius-md);
  background: var(--ds-color-brand-tint);
}
.fitz-photo-tile img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fitz-photo-tile--add {
  display: grid;
  min-width: 72px;
  min-height: 72px;
  place-items: center;
  border-style: dashed;
  color: var(--ds-color-brand);
  text-decoration: none;
}
.fitz-photo-tile--add svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.fitz-photo-tile--add:hover { border-color: var(--ds-color-brand); background: var(--ds-color-brand-soft); }
.fitz-photo-tile--add:focus-visible { outline: 2px solid var(--ds-color-brand); outline-offset: 2px; }

/* Form controls */
.fitz-input { display: block; width: 100%; min-width: 0; }
body .fitz-input,
body :where(input:not([type]), input[type="text"], input[type="number"], input[type="tel"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="date"], select, textarea, .fitz-select-trigger) {
  min-height: var(--ds-size-control) !important;
  max-width: 100%;
  border: 1px solid var(--ds-color-border);
  border-radius: var(--ds-radius-md) !important;
  background: var(--ds-color-surface);
  color: var(--ds-color-text);
  font-size: var(--ds-font-input) !important;
  font-weight: var(--ds-weight-regular) !important;
  line-height: var(--ds-line-input) !important;
  box-shadow: none !important;
}

body :where(input:not([type]), input[type="text"], input[type="number"], input[type="tel"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="date"], select) { padding: 9px 12px; }
body textarea { min-height: 112px; padding: 12px; resize: vertical; }
body :where(input, textarea)::placeholder { color: var(--ds-color-text-quiet); opacity: 1; }
body :where(input, select, textarea):disabled { background: var(--ds-color-surface-subtle); color: var(--ds-color-text-muted); }
body :where(input, select, textarea)[aria-invalid="true"], body :where(input, select, textarea).is-invalid { border-color: var(--ds-color-danger) !important; }
body :where(input[type="checkbox"], input[type="radio"], input[type="range"]) { accent-color: var(--ds-color-brand); }

.fitz-field { display: grid; gap: var(--ds-space-2); }
.fitz-field__label { color: var(--ds-color-text-secondary); font-size: var(--ds-font-label); font-weight: var(--ds-weight-medium); line-height: var(--ds-line-label); }
.fitz-field__help { margin: 0; color: var(--ds-color-text-muted); font-size: var(--ds-font-supporting); line-height: var(--ds-line-supporting); }
.fitz-field__error { margin: 0; color: var(--ds-color-danger); font-size: var(--ds-font-supporting); font-weight: var(--ds-weight-medium); line-height: var(--ds-line-supporting); }

/* Dual range */
.fitz-dual-range {
  --range-start: 0%;
  --range-end: 100%;
  position: relative;
  min-height: 72px;
  padding-inline: var(--ds-space-2);
}
.fitz-dual-range .dual-range-values { display: flex; min-height: 28px; align-items: center; color: var(--ds-color-text); }
.fitz-dual-range .dual-range-values strong { font-size: var(--ds-font-body); font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-body); }
.fitz-dual-range .dual-range-track,
.fitz-dual-range .dual-range-progress { position: absolute; right: var(--ds-space-2); left: var(--ds-space-2); top: 48px; height: 6px; border-radius: var(--ds-radius-pill); }
.fitz-dual-range .dual-range-track { background: var(--ds-color-border-strong); }
.fitz-dual-range .dual-range-progress { top: 0; right: calc(100% - var(--range-end)); left: var(--range-start); background: var(--ds-color-brand); }
.fitz-dual-range input[type="range"] { position: absolute; z-index: 2; top: 28px; right: 0; left: 0; width: 100%; height: var(--ds-size-control); margin: 0; padding: 0; appearance: none; -webkit-appearance: none; background: transparent; pointer-events: none; }
.fitz-dual-range input[type="range"]::-webkit-slider-runnable-track { height: 6px; background: transparent; }
.fitz-dual-range input[type="range"]::-moz-range-track { height: 6px; background: transparent; }
.fitz-dual-range input[type="range"]::-webkit-slider-thumb { width: 22px; height: 22px; margin-top: -8px; border: 3px solid var(--ds-color-brand); border-radius: 50%; background: var(--ds-color-surface); box-shadow: var(--ds-shadow-brand-soft); cursor: grab; pointer-events: auto; appearance: none; -webkit-appearance: none; }
.fitz-dual-range input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 3px solid var(--ds-color-brand); border-radius: 50%; background: var(--ds-color-surface); box-shadow: var(--ds-shadow-brand-soft); cursor: grab; pointer-events: auto; }
.fitz-dual-range input[type="range"]:focus-visible::-webkit-slider-thumb { outline: 4px solid rgb(91 45 232 / 22%); outline-offset: 2px; }
.fitz-dual-range input[type="range"]:focus-visible::-moz-range-thumb { outline: 4px solid rgb(91 45 232 / 22%); outline-offset: 2px; }

/* Choice controls */
body :where(.preference-chip, .choice-square, .user-directory-chip, .match-directory-chip, .fitz-choice) {
  display: inline-flex;
  min-height: var(--ds-size-control) !important;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border: 1px solid var(--ds-color-border) !important;
  border-radius: var(--ds-radius-md) !important;
  background: var(--ds-color-surface) !important;
  color: var(--ds-color-text-secondary) !important;
  font-size: var(--ds-font-label) !important;
  font-weight: var(--ds-weight-medium) !important;
  line-height: var(--ds-line-label) !important;
  text-align: center;
}

body :where(.btn-check, .product-option input, .signup-mode-radio, .member-mode-radio, .introduction-option-input):checked + :where(.preference-chip, .choice-square, .product-card, .signup-mode-option, .member-mode-option, .introduction-option, .fitz-choice),
body :where(.user-directory-chip, .match-directory-chip).is-selected,
body :where(.user-directory-chip, .match-directory-chip).is-active {
  border-color: var(--ds-color-brand) !important;
  background: var(--ds-color-brand-soft) !important;
  color: var(--ds-color-brand-strong) !important;
  box-shadow: inset 0 0 0 1px var(--ds-color-brand) !important;
}

/* Surfaces, cards and lists */
body :where(.card, .panel, .well, .settings-list, .gear-settings-list, .notification-settings-card, .inquiry-card, .payment-card, .report-card, .friend-card, .document-card, .my-profile-card, .match-card, .notice-card, .product-card, .fitz-card) {
  border: 1px solid var(--ds-color-border);
  border-radius: var(--ds-radius-card) !important;
  background: var(--ds-color-surface);
  box-shadow: var(--ds-shadow-card) !important;
}

.fitz-card { padding: var(--ds-space-4); }
.fitz-card--flat { border-color: transparent; box-shadow: none !important; }
.fitz-list { overflow: hidden; margin: 0; padding: 0; list-style: none; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-lg); background: var(--ds-color-surface); }
.fitz-list__item { display: flex; min-height: var(--ds-size-list-row); align-items: center; gap: var(--ds-space-3); padding: 10px var(--ds-space-4); border-bottom: 1px solid var(--ds-color-border); }
.fitz-list--compact .fitz-list__item { min-height: var(--ds-size-list-row-compact); padding-block: var(--ds-list-row-compact-padding-block); }
.fitz-list--undivided .fitz-list__item { border-bottom: 0; }
.fitz-list__item:last-child { border-bottom: 0; }
body :where(.settings-row, .gear-settings-row, .notification-setting-row, .menu-hub-row, .growth-action) { min-height: 60px; gap: var(--ds-space-3); }

/* Canonical read-only profile sections used by My Profile and weekly matches. */
.fitz-profile-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: var(--ds-space-3);
  overflow: visible;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.fitz-profile-card {
  min-width: 0;
  margin: 0;
  padding: var(--ds-space-4);
  border: 0;
  border-radius: var(--ds-radius-lg);
  background: var(--ds-color-surface);
  box-shadow: none;
}
.fitz-profile-card__heading,
.fitz-profile-card .my-profile-section-heading {
  display: flex;
  min-height: var(--ds-size-control);
  align-items: center;
  gap: var(--ds-space-2);
  margin: 0 0 var(--ds-space-1);
}
.fitz-profile-card__title,
.fitz-profile-card .my-profile-section-title {
  margin: 0;
  color: var(--ds-color-text);
  font-size: var(--ds-font-section-title) !important;
  font-weight: var(--ds-weight-semibold) !important;
  line-height: var(--ds-line-section-title) !important;
  letter-spacing: var(--ds-letter-section) !important;
}
.fitz-profile-card__icon,
.fitz-profile-card .my-profile-section-icon {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: var(--ds-color-brand-soft);
  color: var(--ds-color-brand);
}
.fitz-profile-card__icon svg,
.fitz-profile-card .my-profile-section-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}
.fitz-profile-card .my-profile-section-copy {
  display: flex;
  min-width: 0;
  min-height: 34px;
  align-items: center;
}
.fitz-profile-list.fitz-list {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.fitz-profile-list > :where(.fitz-profile-row, .my-profile-row) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: var(--ds-space-2);
  min-height: var(--ds-size-list-row-compact);
  padding: var(--ds-list-row-compact-padding-block) 0;
  border: 0;
  background: transparent;
}
.fitz-profile-row__content { display: contents; }
/* Shared profile information typography. Legacy row names remain adapters only;
   both My Profile and Weekly Match resolve to these design-system tokens. */
body .fitz-profile-list :where(.fitz-profile-row__label, .my-profile-label, .match-line .label) {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-space-1);
  color: var(--ds-color-text-muted);
  font-size: var(--ds-font-label) !important;
  font-weight: var(--ds-weight-medium) !important;
  line-height: var(--ds-line-label) !important;
  word-break: keep-all;
}
body .fitz-profile-list :where(.fitz-profile-row__value, .my-profile-value, .match-line .value) {
  min-width: 0;
  color: var(--ds-color-text);
  font-size: var(--ds-font-body) !important;
  font-weight: var(--ds-weight-bold) !important;
  line-height: var(--ds-line-body) !important;
  overflow-wrap: anywhere;
  text-align: right;
  word-break: keep-all;
}
.fitz-profile-row__chevron {
  display: block;
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-top: 1.75px solid currentcolor;
  border-right: 1.75px solid currentcolor;
  transform: rotate(45deg);
  transform-origin: center;
}
.fitz-profile-card--intro .fitz-profile-row {
  grid-template-columns: minmax(0, 1fr);
}
body .fitz-profile-card--intro .fitz-profile-row__value {
  width: 100%;
  justify-self: stretch;
  text-align: left;
  white-space: normal;
}
/* Member form minimum text sizing must not enlarge the profile component. */
body.fitz-member-app #form .fitz-profile-card__title {
  font-weight: var(--ds-weight-semibold) !important;
}
body.fitz-member-app #form .fitz-profile-list .fitz-profile-row__label {
  font-size: var(--ds-font-label) !important;
}
@media (max-width: 340px) {
  .fitz-profile-list > :where(.fitz-profile-row, .my-profile-row) {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ds-space-1);
  }
  .fitz-profile-row__value,
  .fitz-profile-list :where(.my-profile-value, .match-line .value) { text-align: left; }
}

/* Badges and statuses */
body :where(.badge, .status, .verification-badge, .verified-mark, .match-stage-badge, .match-status-badge, .fitz-badge) {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  gap: var(--ds-space-1);
  padding: 2px 8px;
  border-radius: var(--ds-radius-pill);
  background: var(--ds-color-brand-soft);
  color: var(--ds-color-brand-strong);
  font-size: var(--ds-font-supporting) !important;
  font-weight: var(--ds-weight-semibold) !important;
  line-height: var(--ds-line-supporting) !important;
}
.fitz-badge--success { background: var(--ds-color-success-soft); color: var(--ds-color-success); }
.fitz-badge--warning { background: var(--ds-color-warning-soft); color: var(--ds-color-warning); }
.fitz-badge--danger { background: var(--ds-color-danger-soft); color: var(--ds-color-danger); }
.fitz-badge--neutral { background: var(--ds-color-surface-subtle); color: var(--ds-color-text-muted); }

/* Canonical compact verification indicator. Geometry stays identical for links and text. */
body :where(.fitz-verification-badge, .my-profile-verification-badge) {
  display: inline-flex;
  box-sizing: border-box;
  min-width: 42px;
  width: auto;
  height: 18px;
  min-height: 18px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  align-self: center;
  gap: 2px;
  padding: 0 6px;
  border: 1px solid transparent;
  border-radius: var(--ds-radius-pill);
  font-size: 10px !important;
  font-weight: var(--ds-weight-bold) !important;
  line-height: 1 !important;
  letter-spacing: -.02em;
  text-decoration: none !important;
  white-space: nowrap;
}
body :where(.fitz-verification-badge, .my-profile-verification-badge).is-verified {
  border-color: transparent;
  background: var(--ds-color-brand-soft);
  color: var(--ds-color-brand);
}
body :where(.fitz-verification-badge, .my-profile-verification-badge).is-available {
  border-color: var(--ds-color-border);
  background: var(--ds-color-surface);
  color: var(--ds-color-text-quiet);
}
body a:where(.fitz-verification-badge, .my-profile-verification-badge) {
  position: relative;
  z-index: 2;
  cursor: pointer;
}
body a:where(.fitz-verification-badge, .my-profile-verification-badge)::after {
  position: absolute;
  inset: -13px -4px;
  content: "";
}
body a:where(.fitz-verification-badge, .my-profile-verification-badge):hover {
  border-color: var(--ds-color-brand);
  color: var(--ds-color-brand);
}
body a:where(.fitz-verification-badge, .my-profile-verification-badge):focus-visible {
  outline: 2px solid var(--ds-color-brand);
  outline-offset: 3px;
}

/* Profile disclosure action: vector lock avoids platform-dependent emoji rendering. */
body .fitz-profile-disclosure-link {
  display: inline-flex;
  min-height: var(--ds-size-control);
  align-items: center;
  justify-content: flex-end;
  gap: var(--ds-space-1);
  color: var(--ds-color-brand);
  font-size: var(--ds-font-supporting) !important;
  font-weight: var(--ds-weight-semibold) !important;
  line-height: var(--ds-line-supporting) !important;
  text-align: right;
  text-decoration: none;
  white-space: nowrap;
}
body .fitz-profile-disclosure-link:hover {
  color: var(--ds-color-brand-strong);
}
body .fitz-profile-disclosure-link:focus-visible {
  border-radius: var(--ds-radius-sm);
  outline: 2px solid var(--ds-color-brand);
  outline-offset: 2px;
}
.fitz-profile-disclosure-lock {
  display: inline-grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border-radius: 6px;
  background: var(--ds-color-brand-soft);
  color: var(--ds-color-brand);
}
.fitz-profile-disclosure-lock svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentcolor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Feedback */
body :where(.alert, .inquiry-alert, .payment-alert, .introduction-settings-alert, .menu-hub-alert, .member-mode-alert, .fitz-alert) {
  padding: var(--ds-space-3) var(--ds-space-4);
  border: 1px solid var(--ds-color-border);
  border-radius: var(--ds-radius-md);
  background: var(--ds-color-surface);
  color: var(--ds-color-text);
  font-size: var(--ds-font-body);
  line-height: var(--ds-line-body);
}
.fitz-alert--success { border-color: color-mix(in srgb, var(--ds-color-success) 28%, white); background: var(--ds-color-success-soft); color: var(--ds-color-success); }
.fitz-alert--warning { border-color: color-mix(in srgb, var(--ds-color-warning) 28%, white); background: var(--ds-color-warning-soft); color: var(--ds-color-warning); }
.fitz-alert--danger { border-color: color-mix(in srgb, var(--ds-color-danger) 28%, white); background: var(--ds-color-danger-soft); color: var(--ds-color-danger); }
.fitz-alert--info { border-color: color-mix(in srgb, var(--ds-color-info) 24%, white); background: var(--ds-color-info-soft); color: var(--ds-color-info); }

/* Dialogs and bottom sheets */
body :where(.lm-dialog-overlay, .modal-backdrop, .region-picker-backdrop, .profile-region-backdrop, .signup-simple-select-backdrop, .signup-education-backdrop, .signup-height-picker-backdrop, .fitz-backdrop) {
  background: var(--ds-color-scrim) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

body :where(.lm-dialog, .modal-content, .home-sheet, .growth-sheet, .region-picker-sheet, .profile-region-sheet, .signup-simple-select-sheet, .signup-education-sheet, .signup-height-sheet, .fitz-dialog) {
  border: 0;
  border-radius: var(--ds-radius-card) !important;
  background: var(--ds-color-surface);
  color: var(--ds-color-text);
  box-shadow: var(--ds-shadow-overlay) !important;
}

body :where(.region-picker-sheet, .profile-region-sheet, .signup-simple-select-sheet, .signup-education-sheet, .signup-height-sheet, .fitz-sheet) {
  border-radius: var(--ds-radius-sheet) var(--ds-radius-sheet) 0 0 !important;
}

.fitz-dialog__header, .fitz-sheet__header { display: grid; min-height: 64px; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; padding: 10px var(--ds-space-3); border-bottom: 1px solid var(--ds-color-border); }
.fitz-dialog__body, .fitz-sheet__body { padding: var(--ds-space-4); }
.fitz-dialog__actions, .fitz-sheet__actions { display: flex; gap: var(--ds-space-2); padding: var(--ds-space-3) var(--ds-space-4) max(var(--ds-space-3), env(safe-area-inset-bottom)); border-top: 1px solid var(--ds-color-border); background: var(--ds-color-surface); }

/* Canonical alert dialog. window.alert, loveAlert and loveConfirm all render this component. */
body.fitz-alert-open { overflow: hidden !important; overscroll-behavior: none; }
.fitz-alert-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--ds-z-alert);
  display: flex;
  visibility: hidden;
  align-items: center;
  justify-content: center;
  padding: var(--ds-space-4);
  background: var(--ds-color-scrim);
  opacity: 0;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: opacity var(--ds-transition-fast), visibility 0s linear 140ms;
}
.fitz-alert-overlay.is-visible { visibility: visible; opacity: 1; transition-delay: 0s; }
html body .fitz-alert-dialog {
  position: relative;
  overflow: auto;
  width: min(360px, 100%);
  box-sizing: border-box;
  max-height: calc(100dvh - 32px);
  padding: var(--ds-space-12) var(--ds-space-6) var(--ds-space-5);
  border: 0;
  border-radius: var(--ds-radius-card) !important;
  background: var(--ds-color-surface);
  color: var(--ds-color-text);
  box-shadow: var(--ds-shadow-overlay) !important;
  opacity: 0;
  transform: translateY(8px) scale(.98);
  transition: opacity var(--ds-transition-fast), transform var(--ds-transition-fast);
}
.fitz-alert-overlay.is-visible .fitz-alert-dialog { opacity: 1; transform: none; }
.fitz-alert-dialog__close {
  position: absolute;
  top: var(--ds-space-2);
  right: var(--ds-space-2);
  width: var(--ds-size-control);
  height: var(--ds-size-control);
  padding: 0;
  border: 0;
  border-radius: var(--ds-radius-pill);
  background: transparent;
  color: var(--ds-color-text-muted);
  cursor: pointer;
}
.fitz-alert-dialog__close::before,
.fitz-alert-dialog__close::after { content: ""; position: absolute; top: 21px; left: 14px; width: 16px; height: 2px; border-radius: var(--ds-radius-pill); background: currentcolor; }
.fitz-alert-dialog__close::before { transform: rotate(45deg); }
.fitz-alert-dialog__close::after { transform: rotate(-45deg); }
.fitz-alert-dialog__close:is(:hover,:active) { background: var(--ds-color-surface-subtle); color: var(--ds-color-text-secondary); }
.fitz-alert-dialog__head { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: start; gap: var(--ds-space-4); padding-right: var(--ds-space-6); }
.fitz-alert-dialog__icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: var(--ds-radius-pill); background: var(--ds-color-info-soft); color: var(--ds-color-info); font-size: 22px; font-weight: var(--ds-weight-bold); line-height: 1; }
.fitz-alert-dialog__icon::before { content: "i"; }
.fitz-alert-dialog__icon--warning { background: var(--ds-color-surface-subtle); color: var(--ds-color-text-muted); }
.fitz-alert-dialog__icon--warning::before,
.fitz-alert-dialog__icon--error::before,
.fitz-alert-dialog__icon--danger::before { content: "!"; }
.fitz-alert-dialog__icon--error,
.fitz-alert-dialog__icon--danger { background: var(--ds-color-danger-soft); color: var(--ds-color-danger); }
.fitz-alert-dialog__icon--question { background: var(--ds-color-brand-soft); color: var(--ds-color-brand); }
.fitz-alert-dialog__icon--question::before { content: "?"; }
.fitz-alert-dialog__icon--success { background: var(--ds-color-success-soft); color: var(--ds-color-success); }
.fitz-alert-dialog__icon--success::before { content: ""; width: 17px; height: 9px; border-bottom: 3px solid currentcolor; border-left: 3px solid currentcolor; transform: translateY(-2px) rotate(-45deg); }
.fitz-alert-dialog__icon--celebration { background: linear-gradient(145deg, #fff0f5, var(--ds-color-brand-soft)); color: #d53c74; }
.fitz-alert-dialog__icon--celebration::before { content: "\2665"; }
.fitz-alert-dialog__copy { min-width: 0; }
html body .fitz-alert-dialog .fitz-alert-dialog__title { margin: 0; padding: 0; color: var(--ds-color-text); font-size: var(--ds-font-input) !important; font-weight: var(--ds-weight-bold) !important; line-height: var(--ds-line-input) !important; letter-spacing: var(--ds-letter-section); overflow-wrap: anywhere; word-break: keep-all; }
html body .fitz-alert-dialog .fitz-alert-dialog__message { margin: var(--ds-space-2) 0 0; color: var(--ds-color-text-muted); font-size: var(--ds-font-label) !important; font-weight: var(--ds-weight-regular); line-height: var(--ds-line-label) !important; white-space: pre-line; overflow-wrap: anywhere; word-break: keep-all; }
.fitz-alert-dialog__actions { display: flex; gap: var(--ds-space-2); margin-top: var(--ds-space-6); }
.fitz-alert-dialog__actions .fitz-alert-dialog__button[hidden] { display: none !important; }
html body .fitz-alert-dialog .fitz-alert-dialog__button { min-width: 0; min-height: var(--ds-size-control); flex: 1 1 0; white-space: normal; overflow-wrap: anywhere; }
html body .fitz-alert-dialog .fitz-alert-dialog__button--primary { background: var(--ds-color-brand) !important; box-shadow: none !important; border-radius: var(--ds-radius-md) !important; }
html body .fitz-alert-dialog:not(.fitz-alert-dialog--danger) .fitz-alert-dialog__button--primary:hover { background: var(--ds-color-brand-strong) !important; }
html body .fitz-alert-dialog .fitz-alert-dialog__button:not(.fitz-alert-dialog__button--primary) { border-radius: var(--ds-radius-md) !important; }
html body .fitz-alert-dialog--alert { width: min(328px, 100%); padding: var(--ds-space-4) var(--ds-space-5); text-align: left; }
.fitz-alert-dialog--alert .fitz-alert-dialog__close { display: none; }
.fitz-alert-dialog--alert .fitz-alert-dialog__head { grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 10px; padding-right: 0; }
.fitz-alert-dialog--alert .fitz-alert-dialog__icon { width: 24px; height: 24px; border-radius: var(--ds-radius-sm); font-size: 14px; }
.fitz-alert-dialog--alert .fitz-alert-dialog__copy { width: 100%; }
html body .fitz-alert-dialog--alert .fitz-alert-dialog__title { font-size: var(--ds-font-body) !important; font-weight: var(--ds-weight-semibold) !important; line-height: var(--ds-line-body) !important; }
.fitz-alert-dialog--alert .fitz-alert-dialog__actions { margin-top: var(--ds-space-3); }
.fitz-alert-dialog--alert .fitz-alert-dialog__button { min-height: var(--ds-size-touch) !important; }
.fitz-alert-dialog--alert .fitz-alert-dialog__button--primary { flex-basis: 100%; width: 100%; }
html body .fitz-alert-dialog--danger .fitz-alert-dialog__button--primary { border-color: var(--ds-color-danger) !important; background: var(--ds-color-danger) !important; }

@media (max-width: 359px) {
  html body .fitz-alert-dialog { padding: var(--ds-space-12) var(--ds-space-5) var(--ds-space-5); }
  .fitz-alert-dialog__actions { margin-top: var(--ds-space-5); }
  html body .fitz-alert-dialog--alert { padding: var(--ds-space-4); }
  .fitz-alert-dialog--alert .fitz-alert-dialog__actions { margin-top: var(--ds-space-3); }
}

/* Canonical Profile edit sheet. Every Profile editor uses this shell and behavior contract. */
html.fitz-sheet-scroll-lock,
html.fitz-sheet-scroll-lock body {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}
html.fitz-sheet-scroll-lock body {
  position: fixed !important;
  top: var(--fitz-sheet-scroll-y, 0) !important;
  left: var(--fitz-sheet-scroll-x, 0) !important;
  width: 100% !important;
}
[data-fitz-sheet-host] { overscroll-behavior: none; }
[data-fitz-sheet-host] > :where(.fitz-backdrop, .profile-region-backdrop, .signup-simple-select-backdrop, .signup-education-picker-backdrop, .signup-height-picker-backdrop, .ds-live-backdrop) { touch-action: none; }
body .profile-edit-sheet {
  display: flex !important;
  box-sizing: border-box;
  width: min(100%, 560px) !important;
  max-width: 560px !important;
  max-height: min(92dvh, 760px) !important;
  flex-direction: column;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: var(--ds-radius-sheet) var(--ds-radius-sheet) 0 0 !important;
  background: var(--ds-color-surface) !important;
  color: var(--ds-color-text);
  box-shadow: var(--ds-shadow-overlay) !important;
  overflow: hidden !important;
  overscroll-behavior: contain;
  transform: translateY(24px);
  transition: transform var(--ds-transition-base);
}
dialog.profile-edit-sheet:not([open]) { display: none !important; }
dialog.profile-edit-sheet {
  position: fixed;
  inset: auto 0 0 !important;
  margin: 0 auto !important;
}
dialog.profile-edit-sheet::backdrop {
  background: var(--ds-color-scrim);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
[data-fitz-sheet-host].is-open > .profile-edit-sheet,
[data-fitz-sheet-host][aria-hidden="false"] > .profile-edit-sheet,
dialog.profile-edit-sheet[open] { transform: translateY(0); }
body .profile-edit-sheet > .fitz-sheet__handle {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 28px;
  min-height: 28px;
  flex: 0 0 28px;
  background: var(--ds-color-surface);
  cursor: grab;
  touch-action: none;
}
body .profile-edit-sheet > .fitz-sheet__handle::after {
  position: absolute;
  top: 10px;
  left: 50%;
  width: 38px;
  height: 4px;
  border-radius: var(--ds-radius-pill);
  background: #dedbe4;
  content: "";
  transform: translateX(-50%);
}
body .profile-edit-sheet > .fitz-sheet__header {
  min-height: 60px;
  flex: 0 0 auto;
  padding: 4px var(--ds-space-4) 8px;
  background: var(--ds-color-surface);
  touch-action: none;
}
body .profile-edit-sheet > .fitz-sheet__header > :is(h2, .h2) {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  color: var(--ds-color-text);
  font-size: var(--ds-font-section-title);
  font-weight: var(--ds-weight-bold);
  line-height: var(--ds-line-section-title);
  text-align: center;
}
body .profile-edit-sheet > .fitz-sheet__header > .fitz-icon-button {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}
body .profile-edit-sheet > .fitz-sheet__header > .fitz-sheet__reset {
  grid-column: 1;
  grid-row: 1;
  min-width: 44px;
  min-height: 44px;
  justify-self: start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ds-color-brand);
  font: inherit;
  font-size: var(--ds-font-supporting);
  font-weight: var(--ds-weight-bold);
  cursor: pointer;
}
body .profile-edit-sheet > .fitz-sheet__body {
  min-height: 0;
  flex: 1 1 auto;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}
body .profile-edit-sheet > .fitz-sheet__actions {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  margin-top: auto;
}
body .profile-edit-sheet > .fitz-sheet__actions--stack { flex-direction: column; }
body .profile-edit-sheet :where(.fitz-sheet__body, .fitz-wheel-picker__viewport) { overscroll-behavior: contain; }

/* Canonical iframe-backed Profile edit sheet. My Profile and the catalog use the same shell. */
body .fitz-profile-editor-sheet {
  position: fixed;
  inset: auto 0 var(--profile-sheet-inset, 0px) !important;
  max-height: min(var(--profile-sheet-viewport, 100dvh), 760px) !important;
  margin: 0 auto !important;
}
body .fitz-profile-editor-sheet::backdrop {
  background: rgba(35, 27, 52, .18) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
body .fitz-profile-editor-sheet.is-swipe-closing::backdrop {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body .fitz-profile-editor-sheet__body {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 0 !important;
  overflow: hidden !important;
}
body .fitz-profile-editor-sheet iframe {
  display: block;
  width: 100%;
  height: min(520px, calc(var(--profile-sheet-viewport, 100dvh) - 116px));
  min-height: 0;
  border: 0;
}
body .fitz-profile-editor-sheet.is-measuring:not(.is-size-ready) { opacity: 0; pointer-events: none; }
body .fitz-profile-editor-sheet:not(.is-direct-picker-host) iframe { flex: 1 1 auto; background: var(--ds-color-surface); }
body .fitz-profile-editor-sheet.is-direct-picker-host {
  inset: 0 !important;
  width: 100%;
  height: var(--profile-sheet-viewport, 100dvh);
  max-width: 560px;
  max-height: none !important;
  margin: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  overflow: hidden !important;
}
body .fitz-profile-editor-sheet.is-direct-picker-host > :is(.fitz-sheet__handle, .fitz-sheet__header) { display: none !important; }
body .fitz-profile-editor-sheet.is-direct-picker-host .fitz-profile-editor-sheet__body { height: 100%; flex: 1 1 100%; }
body .fitz-profile-editor-sheet.is-direct-picker-host iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body .fitz-profile-editor-sheet.is-direct-picker-host .fitz-profile-editor-sheet__body > [role="status"] {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
}
body .fitz-profile-editor-sheet.is-direct-picker-host[data-direct-picker-key="height"] {
  inset: auto 0 var(--profile-sheet-inset, 0px) !important;
  height: min(var(--profile-compact-picker-height, 310px), var(--profile-sheet-viewport, 100dvh));
  max-height: var(--profile-sheet-viewport, 100dvh) !important;
  margin: 0 auto !important;
  border-radius: var(--ds-radius-sheet) var(--ds-radius-sheet) 0 0 !important;
}
body .fitz-profile-editor-sheet.is-direct-picker-host[data-direct-picker-key="height"] iframe { height: 100%; }
@media (prefers-reduced-motion: reduce) {
  [data-fitz-sheet-swipe] { transition: none !important; }
}

/* Canonical Profile photo editor. The catalog and every photo registration flow use this component. */
.fitz-profile-photo-editor-host {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
  box-sizing: border-box;
  align-items: flex-end;
  justify-content: center;
  padding-top: var(--ds-space-4);
  overflow: hidden;
  background: var(--ds-color-scrim);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.fitz-profile-photo-editor-host[aria-hidden="false"] { display: flex; }
body .fitz-profile-photo-editor-sheet { max-height: min(92dvh, 720px) !important; }
body .fitz-profile-photo-editor-sheet > .fitz-sheet__body { padding-block: var(--ds-space-3); }
.fitz-profile-photo-editor { display: grid; width: 100%; min-width: 0; align-content: start; gap: var(--ds-space-2); }
.fitz-profile-photo-editor__preview {
  position: relative;
  display: grid;
  overflow: hidden;
  width: min(44vw, 176px);
  aspect-ratio: 4 / 5;
  place-items: center;
  justify-self: center;
  border-radius: var(--ds-radius-md);
  background: var(--ds-color-text);
}
.fitz-profile-photo-editor__canvas,
.fitz-profile-photo-editor__placeholder { display: block; width: 100%; height: 100%; }
.fitz-profile-photo-editor__canvas { touch-action: none; cursor: move; }
.fitz-profile-photo-editor__placeholder { display: grid; place-items: center; background: linear-gradient(145deg, #cfc0ff, var(--ds-color-brand)); color: var(--ds-color-on-brand); font-size: 72px; font-weight: var(--ds-weight-bold); }
.fitz-profile-photo-editor__frame { position: absolute; inset: var(--ds-space-2); border: 2px solid rgb(255 255 255 / 92%); border-radius: calc(var(--ds-radius-md) - 2px); box-shadow: 0 0 0 160px rgb(20 12 36 / 26%); pointer-events: none; }
.fitz-profile-photo-editor__year { display: grid; min-width: 0; gap: var(--ds-space-1); }
.fitz-profile-photo-editor__year .fitz-wheel-picker { height: calc(var(--ds-size-wheel-row) * 3); }
.fitz-profile-photo-editor__year .fitz-wheel-picker__selection { top: var(--ds-size-wheel-row); }
.fitz-profile-photo-editor__year .fitz-wheel-picker__viewport { height: calc(var(--ds-size-wheel-row) * 3); padding-block: var(--ds-size-wheel-row); }
.fitz-profile-photo-editor__label { margin: 0; color: var(--ds-color-text-secondary); font-size: var(--ds-font-supporting); font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-supporting); text-align: center; }
.fitz-profile-photo-editor__message { min-height: 18px; margin: 0; color: var(--ds-color-text-muted); font-size: var(--ds-font-navigation); font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-navigation); text-align: center; }
.fitz-profile-photo-editor__message.is-error { color: var(--ds-color-danger); }
.fitz-profile-photo-editor-sheet > .fitz-sheet__actions > .fitz-button { min-width: 0; flex: 1 1 0; }
.fitz-profile-photo-editor-sheet > .fitz-sheet__actions > #cancelPhotoCrop { flex-basis: 34%; }
.fitz-profile-photo-editor-sheet > .fitz-sheet__actions > #savePhotoCrop { flex-grow: 2; }

@media (max-height: 620px) {
  .fitz-profile-photo-editor__preview { width: min(36vw, 144px); }
}

/* Canonical region picker content for every Profile edit sheet. */
.fitz-region-picker[hidden] { display: none !important; }
.fitz-region-picker { position: fixed; inset: 0; z-index: 2400; display: flex; align-items: flex-end; justify-content: center; }
.fitz-region-picker > .fitz-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: var(--ds-color-scrim); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); touch-action: none; }
body .fitz-region-sheet { height: min(92dvh, 760px) !important; }
body .fitz-region-sheet > .fitz-region-picker__body { padding: 12px var(--ds-space-4) var(--ds-space-2); }
.fitz-region-picker__section + .fitz-region-picker__section,
.fitz-region-picker__selected + .fitz-region-picker__section { margin-top: var(--ds-space-3); }
.fitz-region-picker__section-title,
.fitz-region-picker__heading { margin: 0 0 var(--ds-space-2); color: var(--ds-color-text-secondary); font-size: var(--ds-font-supporting); font-weight: var(--ds-weight-bold); line-height: var(--ds-line-supporting); }
.fitz-region-picker__heading { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-space-3); }
.fitz-region-picker__heading h3 { margin: 0; color: var(--ds-color-text); font: inherit; }
.fitz-region-picker__heading span { color: var(--ds-color-text-muted); font-size: var(--ds-font-navigation); }
.fitz-region-picker__province-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-2); margin: 0; padding: 0; }
.fitz-region-picker__province-list::-webkit-scrollbar { display: none; }
.fitz-region-picker__district-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ds-space-2); align-items: start; }
.fitz-region-picker__main { display: grid; gap: var(--ds-space-6); }
.fitz-region-picker__main .fitz-region-picker__section + .fitz-region-picker__section { margin-top: 0; }
body .fitz-region-picker__main .fitz-region-picker__chip,
body .fitz-region-picker__district-list .fitz-region-picker__chip,
body .fitz-region-picker__province-list .fitz-region-picker__chip { width: 100%; height: var(--ds-size-control); min-height: var(--ds-size-control); min-width: 0; padding: var(--ds-space-1); border-radius: var(--ds-radius-sm); background: var(--ds-color-surface); color: var(--ds-color-text-secondary); border-color: var(--ds-color-border); }
body .fitz-region-picker__chip::after { display: none; }
body .fitz-region-picker__chip:is(.is-selected,[aria-selected="true"],[aria-pressed="true"]) { background: var(--ds-color-brand); border-color: var(--ds-color-brand); color: var(--ds-color-on-brand); }
body .fitz-region-sheet > .fitz-region-picker__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.fitz-region-picker__main + .fitz-region-picker__summary { margin-top: var(--ds-space-5); padding: var(--ds-space-3); background: var(--ds-color-brand-tint); border-radius: var(--ds-radius-md); }
.fitz-region-picker__selected-list { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; }
.fitz-region-picker__selected-chip { display: inline-flex; min-width: 0; min-height: var(--ds-size-control); align-items: center; justify-content: center; gap: 5px; margin: 0; padding: 6px 10px; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-pill); background: var(--ds-color-surface); color: var(--ds-color-text-secondary); font: inherit; font-size: var(--ds-font-supporting) !important; font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-supporting); text-align: center; white-space: nowrap; cursor: pointer; }
/* Canonical compact selection badge. Region pickers use this shared component. */
.fitz-select-badge,
.fitz-region-picker__chip { position: relative; display: inline-flex; width: auto; max-width: 100%; min-width: 44px; height: 24px; min-height: 24px; align-items: center; justify-content: center; margin: 0; padding: 2px 8px; border: 1px solid var(--ds-color-border-strong); border-radius: var(--ds-radius-pill); background: var(--ds-color-brand-tint); color: var(--ds-color-brand-strong); font: inherit; font-size: var(--ds-font-navigation) !important; font-weight: var(--ds-weight-medium); line-height: var(--ds-line-navigation); text-align: center; white-space: nowrap; cursor: pointer; }
/* The visual badge stays compact while the touch target remains 44px high. */
:is(.fitz-select-badge,.fitz-region-picker__chip)::after { content: ""; position: absolute; inset: -10px 0; }
.fitz-region-picker__province { flex: 0 0 auto; padding-inline: 8px; }
:is(.fitz-select-badge,.fitz-region-picker__chip):is(.is-selected,[aria-selected="true"],[aria-pressed="true"]) { border-color: var(--ds-color-brand); background: var(--ds-color-brand); color: var(--ds-color-on-brand) !important; }
.fitz-region-picker__province.has-selection:not([aria-selected="true"]) { border-color: var(--ds-color-border-strong); background: var(--ds-color-brand-tint); color: var(--ds-color-brand); }
:is(.fitz-select-badge,.fitz-region-picker__chip):disabled { border-color: var(--ds-color-border); background: var(--ds-color-disabled); color: var(--ds-color-text-quiet); cursor: not-allowed; }
.fitz-region-picker__selected-chip { border-color: var(--ds-color-border-strong); background: var(--ds-color-brand-soft); color: var(--ds-color-brand); }
.fitz-region-picker__empty,
.fitz-region-picker__note { width: 100%; margin: 0; color: var(--ds-color-text-muted); font-size: var(--ds-font-body); line-height: var(--ds-line-body); }
.fitz-region-picker__summary { min-height: 20px; margin: 0 2px var(--ds-space-2); color: var(--ds-color-text-muted); font-size: var(--ds-font-label); font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-body); }
.fitz-region-picker__summary strong { color: var(--ds-color-brand); font-weight: var(--ds-weight-bold); }
.fitz-region-sheet > .fitz-sheet__actions > .fitz-button { flex: 1 1 auto; }
.fitz-region-picker [data-profile-region-close].is-initial-focus,
.fitz-region-picker [data-profile-region-close].is-initial-focus:focus,
.fitz-region-picker [data-profile-region-close].is-initial-focus:focus-visible,
.fitz-region-picker button.fitz-region-picker__province.is-initial-focus,
.fitz-region-picker button.fitz-region-picker__province.is-initial-focus:focus,
.fitz-region-picker button.fitz-region-picker__province.is-initial-focus:focus-visible { outline: 0 !important; box-shadow: none !important; }

@media (min-width: 769px) {
  .fitz-region-picker { padding: 28px 28px 0; }
}

/* Canonical five-row wheel picker. The original Profile height wheel is the visual source of truth. */
.fitz-wheel-picker { position: relative; width: 100%; max-width: 360px; height: var(--ds-size-wheel-viewport); margin-inline: auto; overflow: hidden; border: 0; border-radius: var(--ds-radius-md); background: var(--ds-color-surface); box-shadow: none; }
.fitz-wheel-picker__selection { position: absolute; z-index: 0; top: calc(var(--ds-size-wheel-row) * 2); right: 2px; left: 2px; height: var(--ds-size-wheel-row); border: 1px solid rgb(91 45 232 / 18%); border-radius: calc(var(--ds-radius-md) - 2px); background: var(--ds-color-brand-soft); pointer-events: none; }
.fitz-wheel-picker__viewport { position: relative; z-index: 1; box-sizing: border-box; height: var(--ds-size-wheel-viewport); padding-block: calc(var(--ds-size-wheel-row) * 2); overflow-y: auto; overscroll-behavior: contain; scroll-snap-type: y mandatory; scrollbar-width: none; touch-action: pan-y; border-radius: var(--ds-radius-md); }
.fitz-wheel-picker__viewport::-webkit-scrollbar { display: none; }
.fitz-wheel-picker__viewport:focus-visible { outline: 0 !important; box-shadow: none; }
.fitz-wheel-picker__viewport.is-metadata-locked { overflow-y: hidden; touch-action: none; }
.fitz-wheel-picker__viewport.is-metadata-locked .fitz-wheel-picker__option { pointer-events: none; cursor: default; }
.fitz-wheel-picker__option { position: relative; display: flex; box-sizing: border-box; width: 100%; min-height: var(--ds-size-wheel-row); height: var(--ds-size-wheel-row); align-items: center; justify-content: center; padding-inline: calc(var(--ds-space-8) + var(--ds-space-2)); scroll-margin-block: 0; scroll-snap-align: center; border: 0; background: transparent; color: var(--ds-color-text-quiet); font: inherit; font-size: var(--ds-font-wheel-item); font-weight: var(--ds-weight-medium); line-height: var(--ds-line-wheel-item); text-align: center; cursor: pointer; user-select: none; opacity: .72; transition: color var(--ds-transition-fast), font-size var(--ds-transition-fast), font-weight var(--ds-transition-fast), opacity var(--ds-transition-fast); }
.fitz-wheel-picker__option[aria-selected="true"] { color: var(--ds-color-brand); font-size: var(--ds-font-wheel-selected); font-weight: var(--ds-weight-bold); line-height: var(--ds-line-wheel-selected); opacity: 1; }
.fitz-wheel-picker__option[aria-selected="true"]::after { position: absolute; right: var(--ds-space-4); content: "\2713"; color: var(--ds-color-brand); font-size: var(--ds-font-section-title); font-weight: var(--ds-weight-bold); line-height: 1; }
.fitz-wheel-picker__unit { visibility: hidden; margin-left: 2px; font-size: .62em; font-weight: var(--ds-weight-bold); line-height: 1; }
.fitz-wheel-picker__option[aria-selected="true"] .fitz-wheel-picker__unit { visibility: visible; }

/* Canonical single-choice content used by Profile edit sheets and its catalog. */
.fitz-profile-choice-list { display: grid; overflow: hidden; width: 100%; gap: 0; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-lg); background: var(--ds-color-surface); }
.fitz-profile-choice-list button { display: flex; width: 100%; min-height: 54px; align-items: center; justify-content: space-between; gap: var(--ds-space-3); padding: 8px 14px; border: 0; border-radius: 0; background: var(--ds-color-surface); color: var(--ds-color-text); font: inherit; text-align: left; }
.fitz-profile-choice-list button i { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; border: 1px solid var(--ds-color-border-strong); border-radius: 50%; color: transparent; font-style: normal; line-height: 1; }
.fitz-profile-choice-list button:is(.is-selected,[aria-pressed="true"]) { color: var(--ds-color-brand); font-weight: var(--ds-weight-bold); }
.fitz-profile-choice-list button:is(.is-selected,[aria-pressed="true"]) i { border-color: var(--ds-color-brand); background: var(--ds-color-brand); color: var(--ds-color-on-brand); }
.fitz-profile-choice-sheet > .fitz-sheet__body { padding: var(--ds-space-3) var(--ds-space-4); }
.fitz-profile-choice-sheet .fitz-profile-choice-list { border-color: var(--ds-color-border); }

/* Canonical catalog search used by signup, Profile edit sheets and its catalog. */
.fitz-profile-search-field { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.fitz-profile-search-field:focus-within { z-index: 3; }
body .fitz-profile-search__input { display: block; box-sizing: border-box; width: 100% !important; height: auto !important; min-height: var(--ds-size-control) !important; padding: 9px 12px !important; border: 1px solid var(--ds-color-border) !important; border-radius: var(--ds-radius-md) !important; background: var(--ds-color-surface) !important; color: var(--ds-color-text) !important; font-size: var(--ds-font-input) !important; font-weight: var(--ds-weight-regular) !important; line-height: var(--ds-line-input) !important; box-shadow: none !important; }
body .fitz-profile-search__input:is(:focus,:focus-visible) { outline: 0 !important; box-shadow: none !important; }
body .fitz-profile-search__input:is(:focus,:focus-visible):not([aria-invalid="true"]) { border-color: var(--ds-color-border) !important; }
body .fitz-profile-search__input[aria-invalid="true"] { border-color: var(--ds-color-danger) !important; }
.fitz-profile-search__panel { position: relative; z-index: 1; top: auto; right: auto; left: auto; display: flex; overflow: hidden; width: 100%; max-height: none; flex-direction: column; gap: 0; margin-top: var(--ds-space-2); padding: var(--ds-space-2) 0; border: 0; border-radius: 0; background: var(--ds-color-surface); box-shadow: none; }
.fitz-profile-search__panel[hidden], .fitz-profile-search__state[hidden], .fitz-profile-search__list[hidden] { display: none !important; }
.fitz-profile-search__state { flex: 0 0 auto; margin: 0; padding: var(--ds-space-2) var(--ds-space-2) var(--ds-space-1); color: var(--ds-color-text-muted); font-size: var(--ds-font-navigation); line-height: var(--ds-line-navigation); }
.fitz-profile-search__panel.has-results .fitz-profile-search__state { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.fitz-profile-search__list { overflow: auto; min-height: 0; max-height: var(--fitz-profile-search-panel-height, 300px); overscroll-behavior: contain; }
.fitz-profile-search__results { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 6px; padding-block: 6px; }
.fitz-profile-search__option { position: relative; display: inline-flex; width: auto; max-width: 100%; min-width: var(--ds-size-control); min-height: var(--ds-size-search-chip); align-items: center; justify-content: center; padding: 6px 10px; border: 1px solid var(--ds-color-border-strong); border-radius: var(--ds-radius-pill); background: var(--ds-color-brand-tint); color: var(--ds-color-brand-strong); font: inherit; line-height: var(--ds-line-navigation); text-align: center; }
/* A compact visible chip retains a non-overlapping 44px touch target. */
.fitz-profile-search__option::after { content: ""; position: absolute; inset: -7px -1px; }
.fitz-profile-search__option:is(:hover,:focus-visible,.is-active,[aria-selected="true"]) { border-color: var(--ds-color-brand); outline: none; background: var(--ds-color-brand); color: var(--ds-color-on-brand); }
.fitz-profile-search__option strong { overflow: hidden; font-size: var(--ds-font-navigation) !important; font-weight: var(--ds-weight-medium); line-height: var(--ds-line-navigation) !important; text-overflow: ellipsis; white-space: nowrap; }
.fitz-profile-search__direct { width: 100%; min-height: 48px; flex: 0 0 auto; margin-top: var(--ds-space-2); padding: var(--ds-space-2) var(--ds-space-3); border: 1px solid var(--ds-color-brand); border-radius: var(--ds-radius-md); background: var(--ds-color-surface); color: var(--ds-color-brand); font: inherit; font-weight: var(--ds-weight-bold); }
.profile-scope-embedded.profile-catalog-search-keyboard-open .fitz-profile-search__list { max-height: min(196px, var(--fitz-profile-search-panel-height, 196px)); }
.profile-scope-embedded.profile-catalog-search-keyboard-open .container.user-info-page { padding-bottom: var(--ds-space-4) !important; }
.profile-scope-embedded.profile-catalog-search-keyboard-open #form#form.profile-scope-form .sticky-save-bar { display: none !important; }
.fitz-profile-choice-list button:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--ds-color-brand); outline-offset: -2px; }
.fitz-profile-consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; padding: 14px; border: 1px solid var(--ds-color-border); border-radius: var(--ds-radius-md); background: var(--ds-color-surface); }
.fitz-profile-consent input { width: 20px; height: 20px; flex: 0 0 auto; margin: 1px 0 0; }
.fitz-profile-consent span { display: grid; gap: 3px; min-width: 0; }
.fitz-profile-consent small { color: var(--ds-color-text-muted); }

/* Navigation */
body .navbar { min-height: var(--ds-size-header); border-bottom: 1px solid var(--ds-color-border); background: var(--ds-color-surface); box-shadow: none; }
body:is(.fitz-member-app, .fitz-admin-app) > .navbar .nav-inner { min-height: var(--ds-size-header); padding-block: var(--ds-space-1); }
html.fitz-login-root { scroll-padding-top: var(--fitz-app-header-bottom, 57px) !important; }
body.fitz-member-app .footer-nav { min-height: var(--ds-size-footer-nav); border-top: 1px solid var(--ds-color-border); background: var(--ds-color-surface); box-shadow: none; }
body.fitz-member-app .footer-nav a { min-width: var(--ds-size-control); min-height: var(--ds-size-control); color: var(--ds-color-text-muted); font-size: var(--ds-font-navigation) !important; font-weight: var(--ds-weight-medium); line-height: var(--ds-line-navigation) !important; }
body.fitz-member-app .footer-nav a.active { color: var(--ds-color-brand); font-weight: var(--ds-weight-semibold); }

/* Tables */
.fitz-table { width: 100%; border-collapse: collapse; border-spacing: 0; background: var(--ds-color-surface); }
.fitz-table :where(th, td) { padding: 10px var(--ds-space-3); border-bottom: 1px solid var(--ds-color-border); text-align: left; vertical-align: top; }
.fitz-table th { color: var(--ds-color-text-secondary); font-size: var(--ds-font-label); font-weight: var(--ds-weight-semibold); line-height: var(--ds-line-label); }
.fitz-table td { color: var(--ds-color-text); font-size: var(--ds-font-body); line-height: var(--ds-line-body); }

/* Empty, loading and progress states */
.fitz-empty { display: grid; min-height: 160px; place-items: center; gap: var(--ds-space-2); padding: var(--ds-space-6); color: var(--ds-color-text-muted); text-align: center; }
.fitz-progress { overflow: hidden; width: 100%; height: 6px; border-radius: var(--ds-radius-pill); background: var(--ds-color-disabled); }
.fitz-progress > span { display: block; width: var(--fitz-progress, 0%); height: 100%; border-radius: inherit; background: var(--ds-color-brand); transition: width var(--ds-transition-base); }
.fitz-skeleton { border-radius: var(--ds-radius-sm); background: linear-gradient(90deg, var(--ds-color-surface-subtle) 25%, var(--ds-color-disabled) 50%, var(--ds-color-surface-subtle) 75%); background-size: 200% 100%; animation: fitz-skeleton 1.2s linear infinite; }
@keyframes fitz-skeleton { to { background-position-x: -200%; } }

/* Sticky action area */
body :where(.sticky-save-bar, .match-sticky-save, .fitz-action-dock) { border-top: 1px solid var(--ds-color-border); background: var(--ds-color-surface); box-shadow: none; }

/* Focus, validation and selection */
body :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--ds-color-brand) !important;
  outline-offset: 2px !important;
  box-shadow: var(--ds-focus-ring);
}
body :where(.btn-check, .product-option input, .signup-mode-radio, .member-mode-radio, .introduction-option-input):focus-visible + * { outline: 2px solid var(--ds-color-brand) !important; outline-offset: 2px !important; }
body :where([aria-current="page"], [aria-selected="true"]) { color: var(--ds-color-brand); }

/* Utilities */
.fitz-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.fitz-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fitz-break { overflow-wrap: anywhere; word-break: break-word; }
.fitz-full-width { width: 100%; }

@media (max-width: 359px) {
  :root { --ds-page-padding: 14px; }
  .fitz-page { padding-inline: var(--ds-page-padding); }
  .fitz-dialog__actions, .fitz-sheet__actions { padding-inline: var(--ds-space-3); }
}

@media (min-width: 768px) {
  :root { --ds-page-padding: var(--ds-page-padding-wide); }
  .fitz-page { padding-top: var(--ds-space-6); }
  .fitz-card { padding: var(--ds-space-5); }
}

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

@media (forced-colors: active) {
  body :where(.btn, .fitz-button, input, select, textarea, .fitz-card, .fitz-list, .fitz-dialog, .fitz-sheet) { border: 1px solid CanvasText !important; }
  body :where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid Highlight !important; }
  body .fitz-profile-search__input:focus-visible { outline: 3px solid Highlight !important; }
}

@media print {
  body { background: #fff !important; color: #000 !important; }
  body :where(.navbar, .footer-nav, .sticky-save-bar, .match-sticky-save, .fitz-action-dock) { display: none !important; }
  body :where(.card, .panel, .fitz-card) { border-color: #bbb !important; box-shadow: none !important; }
}
