/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme, legacy, components, utilities;
@layer theme {
  :root, :host {
    --spacing: 4px;
    --tracking-tight: -0.025em;
    --color-canvas: var(--neutral-50);
    --color-surface: var(--neutral-0);
    --color-surface-subtle: var(--brand-50);
    --color-surface-muted: var(--neutral-100);
    --color-fg: var(--neutral-900);
    --color-fg-soft: var(--neutral-700);
    --color-fg-muted: var(--neutral-550);
    --color-fg-accent: var(--brand-900);
    --color-fg-on-accent: var(--neutral-0);
    --color-fg-faint: var(--neutral-300);
    --color-link: var(--brand-800);
    --color-brand: var(--brand-900);
    --color-brand-hover: var(--brand-800);
    --color-fg-on-brand: var(--neutral-0);
    --color-fg-on-brand-soft: var(--brand-100);
    --color-border: var(--neutral-200);
    --color-border-strong: var(--neutral-300);
    --color-control-border: var(--neutral-450);
    --color-control-border-hover: var(--neutral-500);
    --color-focus: var(--brand-700);
    --color-accent: var(--brand-900);
    --color-accent-hover: var(--brand-800);
    --color-accent-pressed: var(--brand-700);
    --color-accent-subtle: var(--brand-100);
    --color-fg-success: var(--green-700);
    --color-success-subtle: var(--green-50);
    --color-fg-warning: var(--amber-700);
    --color-warning-subtle: var(--amber-50);
    --color-fg-danger: var(--red-700);
    --color-danger: var(--red-700);
    --color-danger-hover: var(--red-800);
    --color-danger-subtle: var(--red-50);
    --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-mono: ui-monospace, "SF Mono", Menlo, monospace;
    --text-2xs: 11px;
    --text-xs: 12px;
    --text-sm: 14px;
    --text-base: 15px;
    --text-lg: 17px;
    --text-xl: 20px;
    --text-2xl: 24px;
    --text-3xl: 30px;
    --text-4xl: 36px;
    --text-5xl: 48px;
    --text-6xl: 60px;
    --text-input-touch: 16px;
    --leading-tight: 1.25;
    --leading-normal: 1.5;
    --leading-relaxed: 1.65;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 10px;
    --radius-xl: 14px;
    --radius-pill: 999px;
    --radius-control: var(--radius-lg);
    --radius-card: var(--radius-xl);
    --shadow-xs: 0 1px 2px  rgba(var(--brand-shadow-rgb), 0.04);
    --shadow-sm: 0 1px 3px  rgba(var(--brand-shadow-rgb), 0.06),
               0 1px 2px  rgba(var(--brand-shadow-rgb), 0.04);
    --shadow-md: 0 4px 12px rgba(var(--brand-shadow-rgb), 0.06);
    --shadow-lg: 0 12px 32px rgba(var(--brand-shadow-rgb), 0.08);
    --shadow-appnav: 0 1px 2px rgba(var(--brand-shadow-rgb), 0.06), 0 8px 24px rgba(var(--brand-shadow-rgb), 0.14);
    --shadow-action: 0 6px 18px rgba(var(--brand-shadow-rgb), 0.28);
    --shadow-header: 0 1px 2px rgba(var(--brand-shadow-rgb), 0.10), 0 6px 16px rgba(var(--brand-shadow-rgb), 0.16);
    --breakpoint-sm: 40rem;
    --breakpoint-lg: 64rem;
  }
  :root {
    --brand-950: #0c2b42;
    --brand-900: #10507b;
    --brand-800: #0d4163;
    --brand-700: #0b3551;
    --brand-600: #1b6aa0;
    --brand-500: #2178b3;
    --brand-300: #8cc6ec;
    --brand-100: #dbeefa;
    --brand-50: #f1f7fb;
    --brand-shadow-rgb: 16, 80, 123;
    --neutral-0: #ffffff;
    --neutral-50: #fafbfc;
    --neutral-100: #f3f4f6;
    --neutral-200: #e5e7eb;
    --neutral-300: #d1d5db;
    --neutral-400: #9ca3af;
    --neutral-450: #868e9a;
    --neutral-500: #6b7280;
    --neutral-550: #636b78;
    --neutral-600: #4b5563;
    --neutral-700: #374151;
    --neutral-800: #1f2937;
    --neutral-900: #111827;
    --neutral-950: #030712;
    --night-950: #0b141b;
    --night-900: #121e28;
    --night-800: #1a2b38;
    --night-750: #1f3140;
    --night-700: #243646;
    --night-600: #2f4558;
    --night-550: #3a5163;
    --night-500: #5b7690;
    --night-400: #7590a6;
    --night-300: #93a7b7;
    --night-200: #c2d1dd;
    --night-100: #e8eff5;
    --green-950: #0f2a1f;
    --green-700: #2f7a5a;
    --green-300: #7fd0a5;
    --green-50: #ecf5f0;
    --amber-950: #2e2210;
    --amber-700: #8a5715;
    --amber-300: #e8b86a;
    --amber-50: #fbf3e6;
    --red-950: #3a1616;
    --red-800: #8e2a2a;
    --red-700: #a83232;
    --red-600: #b83636;
    --red-300: #f19c9c;
    --red-50: #fbeded;
    --sheet-head: #e8eef5;
    --sheet-counter: #10507b;
    --sheet-ok: #e2f2d3;
    --sheet-closed: #ffe95c;
    --sheet-school: #f7c6c6;
    --sheet-warn: #fed7aa;
    --sheet-warn-ink: #9a3412;
    --sheet-alert: #fecaca;
    --sheet-alert-ink: #991b1b;
    --sheet-rule: #b9bec3;
    --sheet-rule-day: #3a3f44;
    --tile-sky: #bae6fd;
    --tile-violet: #ddd6fe;
    --tile-mint: #a7f3d0;
    --tile-pink: #fbcfe8;
    --space-0-5: calc(var(--spacing) * 0.5);
    --space-1: calc(var(--spacing) * 1);
    --space-2: calc(var(--spacing) * 2);
    --space-3: calc(var(--spacing) * 3);
    --space-4: calc(var(--spacing) * 4);
    --space-5: calc(var(--spacing) * 5);
    --space-6: calc(var(--spacing) * 6);
    --space-8: calc(var(--spacing) * 8);
    --space-10: calc(var(--spacing) * 10);
    --space-12: calc(var(--spacing) * 12);
    --space-16: calc(var(--spacing) * 16);
    --space-20: calc(var(--spacing) * 20);
    --space-24: calc(var(--spacing) * 24);
    --border-subtle: 1px solid var(--color-border);
    --border-control: 1px solid var(--color-control-border);
    --tap-min: 44px;
    --control-h-sm: 44px;
    --control-h-lg: 56px;
    --chip-h: 32px;
    --icon-sm: 16px;
    --icon-md: 20px;
    --icon-lg: 24px;
    --icon-xl: 32px;
    --icon-stroke: 1.75;
    --outline-w: 2px;
    --indicator-h: 3px;
    --list-icon-box: 32px;
    --empty-icon-box: 56px;
    --avatar: 36px;
    --avatar-sm: 28px;
    --avatar-lg: 44px;
    --switch-w: 44px;
    --switch-h: 26px;
    --switch-knob: 20px;
    --scrollbar-size: 10px;
    --measure: 32em;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --shell-max-w: 900px;
    --solo-max-w: 600px;
    --form-max-w: 640px;
    --doc-max-w: 760px;
    --doc-label-w: 190px;
    --doc-table-min-w: 520px;
    --site-max-w: 1120px;
    --device-w: 280px;
    --device-bezel: var(--neutral-900);
    --doc-frame-h: 640px;
    --header-h: 64px;
    --header-offset: calc(var(--header-h) + var(--safe-top));
    --logo-h: 40px;
    --appnav-item-h: 52px;
    --appnav-pad: var(--space-1);
    --appnav-h-mobile: calc(var(--appnav-item-h) + 2 * var(--appnav-pad) + 2px);
    --appnav-bar-h: calc(var(--tap-min) + 2 * var(--appnav-pad) + 1px);
    --appnav-offset: max(var(--space-3), var(--safe-bottom));
    --appnav-bg: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      --appnav-bg: color-mix(in srgb, var(--color-surface) 92%, transparent);
    }
    --appnav-blur: 20px;
    --appnav-saturate: 180%;
    --header-lift: initial;
    --header-hide: initial;
    --header-dock: initial;
    --header-brand-dx: initial;
    --appnav-dock-left: initial;
    --appnav-dock-right: initial;
    --header-snap: 0s;
    --header-dock-scale: 0.8;
    --appnav-label-max: 8em;
    --badging-col-w: 480px;
    --badging-top-tablet: 40px;
    --badging-top-desk: 56px;
    --badging-pin-h: 72px;
    --badging-hello: 27px;
    --badging-change-w: 44px;
    --badging-change-label-w: 100px;
    --badging-identity-fade: 0.42s;
    --badging-logo-w: 132px;
    --badging-logo-h: 44px;
    --badging-clock: 68px;
    --badging-clock-sm: 52px;
    --badging-tray-h: 96px;
    --badging-tile-min: 52px;
    --badging-tile-icon: 36px;
    --badging-round: 72px;
    --badging-center: 64px;
    --badging-message-w: 112px;
    --badging-dot: 12px;
    --badging-count: 19px;
    --badging-actions-h: 116px;
    --badging-access-w: 260px;
    --badging-lift: 17px;
    --picto-xl: 68px;
    --picto-lg: 58px;
    --picto-eye: 56px;
    --picto-md: 52px;
    --picto-action: 60px;
    --picto-stage-w: 118px;
    --picto-stage-h: 72px;
    --picto-glow: drop-shadow(0 8px 16px rgba(var(--brand-shadow-rgb), 0.14));
    --picto-glow-lift: drop-shadow(0 10px 18px rgba(var(--brand-shadow-rgb), 0.18));
    --picto-particle-glow: 0 0 14px rgba(var(--brand-shadow-rgb), 0.16);
    --unlock-panel-w: 340px;
    --unlock-wordmark-w: 168px;
    --unlock-stage: 96px;
    --unlock-lock: 84px;
    --unlock-veil-in: 0.34s;
    --unlock-arrival-hold: 0.12s;
    --unlock-arrival-fade: 0.45s;
    --unlock-arrival-greet: 0.5s;
    --unlock-arrival-greet-delay: 0.27s;
    --desk-kpi-min: 88px;
    --desk-person-min: 120px;
    --register-aside-w: 320px;
    --popover-w: 420px;
    --tooltip-w: 260px;
    --plan-max-w: 1280px;
    --plan-gutter: var(--space-3);
    --plan-emp-w: 184px;
    --plan-sum-w: 148px;
    --plan-day-min: 120px;
    --plan-cell-min: 72px;
    --plan-axis-head-w: 72px;
    --plan-dot: 20px;
    --plan-half-dot: 16px;
    --plan-mday-min: 64px;
    --plan-mday-av: 18px;
    --prefs-abbr-w: 64px;
    --zone-map-h: 260px;
    --export-frame-h: 260px;
    --zone-pin: 16px;
    --site-dot: 10px;
    --repeat-num-w: 96px;
    --swatch: 30px;
    --suggest-max-h: 240px;
    --option-min: 88px;
    --picker-max-h: 420px;
    --pin-field-min: 180px;
    --modal-sm-w: 360px;
    --modal-w: 600px;
    --modal-wide-w: 760px;
    --modal-gutter: var(--space-3);
    --modal-gutter-x: var(--space-3);
    --modal-gutter-y: var(--space-4);
    --radius-modal: 16px;
    --modal-title: var(--text-xl);
    --modal-veil-mix: 55%;
    --modal-veil-soft-mix: 42%;
    --modal-veil: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil: color-mix(in srgb, var(--neutral-950) var(--modal-veil-mix), transparent);
    }
    --modal-veil-soft: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-soft: color-mix(in srgb, var(--neutral-950) var(--modal-veil-soft-mix), transparent);
    }
    --modal-veil-on-brand: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-on-brand: color-mix(in srgb, var(--neutral-950) var(--modal-veil-mix), var(--color-brand));
    }
    --modal-veil-soft-on-brand: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-soft-on-brand: color-mix(in srgb, var(--neutral-950) var(--modal-veil-soft-mix), var(--color-brand));
    }
    --modal-veil-stacked-on-brand: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-stacked-on-brand: color-mix(in srgb, var(--neutral-950) var(--modal-veil-soft-mix), var(--modal-veil-on-brand));
    }
    --modal-veil-on-canvas: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-on-canvas: color-mix(in srgb, var(--neutral-950) var(--modal-veil-mix), var(--color-canvas));
    }
    --modal-veil-soft-on-canvas: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-soft-on-canvas: color-mix(in srgb, var(--neutral-950) var(--modal-veil-soft-mix), var(--color-canvas));
    }
    --modal-veil-stacked-on-canvas: var(--neutral-950);
    @supports (color: color-mix(in lab, red, red)) {
      --modal-veil-stacked-on-canvas: color-mix(in srgb, var(--neutral-950) var(--modal-veil-soft-mix), var(--modal-veil-on-canvas));
    }
    --modal-cap-min: 8px;
    --modal-cap-h: max(var(--safe-top), var(--modal-cap-min));
    --modal-blur: 2px;
    --modal-drop: 100px;
    --modal-fade: 0.15s;
    --modal-move: 0.3s;
    --confirm-pop: 0.18s;
    --confirm-rise: 8px;
    --toast-w: 720px;
    --toast-in: 0.24s;
    --toast-rise: 12px;
    --ease-out-soft: cubic-bezier(0.22, 1, 0.36, 1);
    --z-raised: 3;
    --z-toolbar: 10;
    --z-header: 20;
    --z-appnav: 30;
    --z-header-docked: 35;
    --z-header-cap: 36;
    --z-dropdown: 40;
    --z-popover: 70;
    --z-modal: 900;
    --z-modal-panel: 910;
    --z-modal-cap: 920;
    --z-cinematic: 980;
    --z-toast: 1000;
    --z-tooltip: 1200;
    --z-session-lock: 2000;
    --duration-fast: 0.12s;
    --duration-base: 0.2s;
    --duration-header: 0.26s;
    --ease-header: cubic-bezier(0, 0, 0.58, 1);
    --press-scale: 0.98;
    --tracking-tight: -0.01em;
    --tracking-caps: 0.04em;
    --disabled-opacity: 0.5;
    --focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-focus);
  }
  @media (min-width: 640px) {
    :root {
      --header-h: 80px;
      --logo-h: 48px;
      --plan-gutter: var(--space-4);
      --plan-emp-w: 136px;
      --plan-sum-w: 116px;
      --plan-mday-min: 96px;
      --plan-mday-av: 24px;
      --modal-gutter-x: var(--space-8);
      --modal-gutter-y: var(--space-12);
      --radius-modal: 22px;
      --export-frame-h: 420px;
      --modal-title: var(--text-2xl);
    }
  }
  @media (min-width: 1024px) {
    :root {
      --plan-emp-w: 184px;
      --plan-sum-w: 148px;
    }
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --color-canvas: var(--night-950);
      --color-surface: var(--night-900);
      --color-surface-subtle: var(--night-800);
      --color-surface-muted: var(--night-750);
      --color-fg: var(--night-100);
      --color-fg-soft: var(--night-200);
      --color-fg-muted: var(--night-300);
      --color-fg-accent: var(--brand-300);
      --color-fg-on-accent: var(--neutral-0);
      --color-fg-faint: var(--night-550);
      --color-link: var(--brand-300);
      --color-brand: var(--brand-950);
      --color-brand-hover: var(--brand-900);
      --color-fg-on-brand: var(--neutral-0);
      --color-fg-on-brand-soft: var(--brand-100);
      --color-border: var(--night-700);
      --color-border-strong: var(--night-600);
      --color-control-border: var(--night-500);
      --color-control-border-hover: var(--night-400);
      --color-focus: var(--brand-300);
      --color-accent: var(--brand-500);
      --color-accent-hover: var(--brand-600);
      --color-accent-pressed: var(--brand-800);
      --color-accent-subtle: var(--brand-950);
      --color-fg-success: var(--green-300);
      --color-success-subtle: var(--green-950);
      --color-fg-warning: var(--amber-300);
      --color-warning-subtle: var(--amber-950);
      --color-fg-danger: var(--red-300);
      --color-danger: var(--red-600);
      --color-danger-hover: var(--red-700);
      --color-danger-subtle: var(--red-950);
    }
  }
  :root[data-theme="dark"] {
    --color-canvas: var(--night-950);
    --color-surface: var(--night-900);
    --color-surface-subtle: var(--night-800);
    --color-surface-muted: var(--night-750);
    --color-fg: var(--night-100);
    --color-fg-soft: var(--night-200);
    --color-fg-muted: var(--night-300);
    --color-fg-accent: var(--brand-300);
    --color-fg-on-accent: var(--neutral-0);
    --color-fg-faint: var(--night-550);
    --color-link: var(--brand-300);
    --color-brand: var(--brand-950);
    --color-brand-hover: var(--brand-900);
    --color-fg-on-brand: var(--neutral-0);
    --color-fg-on-brand-soft: var(--brand-100);
    --color-border: var(--night-700);
    --color-border-strong: var(--night-600);
    --color-control-border: var(--night-500);
    --color-control-border-hover: var(--night-400);
    --color-focus: var(--brand-300);
    --color-accent: var(--brand-500);
    --color-accent-hover: var(--brand-600);
    --color-accent-pressed: var(--brand-800);
    --color-accent-subtle: var(--brand-950);
    --color-fg-success: var(--green-300);
    --color-success-subtle: var(--green-950);
    --color-fg-warning: var(--amber-300);
    --color-warning-subtle: var(--amber-950);
    --color-fg-danger: var(--red-300);
    --color-danger: var(--red-600);
    --color-danger-hover: var(--red-700);
    --color-danger-subtle: var(--red-950);
  }
  @media print {
    .sheet__table .sheet__th, .sheet__table .sheet__th-group, .sheet__table .sheet__total {
      background: var(--sheet-tint) !important;
      print-color-adjust: exact;
    }
    .sheet__table .sheet__total--counter {
      background: var(--sheet-ok) !important;
    }
    .sheet__table .sheet__th--counter, .sheet__table .sheet__th-group--counter {
      background: var(--sheet-counter) !important;
      color: var(--neutral-0) !important;
    }
    .sheet__table .sheet__abs {
      background: var(--sheet-abs) !important;
      @supports (color: color-mix(in lab, red, red)) {
        background: color-mix(in srgb, var(--sheet-abs) 22%, var(--neutral-0)) !important;
      }
      color: var(--sheet-abs) !important;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in srgb, var(--sheet-abs) 55%, var(--neutral-950)) !important;
      }
      print-color-adjust: exact;
    }
    .sheet__table .sheet__row--blank > td, .sheet__table .sheet__row--blank > .sheet__half, .sheet__table .sheet__day--closed, .sheet__legend .sheet__key--closed {
      background: var(--sheet-closed) !important;
      print-color-adjust: exact;
    }
    .sheet__table td.sheet__date--school, .sheet__legend .sheet__key--school {
      background: var(--sheet-school) !important;
      print-color-adjust: exact;
    }
    .sheet__table .sheet__total--warn, .sheet__legend .sheet__key--warn {
      background: var(--sheet-warn) !important;
      color: var(--sheet-warn-ink) !important;
      print-color-adjust: exact;
    }
    .sheet__table .sheet__total--alert, .sheet__legend .sheet__key--alert {
      background: var(--sheet-alert) !important;
      color: var(--sheet-alert-ink) !important;
      print-color-adjust: exact;
    }
  }
}
@layer legacy {
  html {
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    background: #fff;
    color: #666;
  }
  body {
    margin: 0;
  }
  a:active, a:hover {
    outline: 0;
  }
  a {
    color: #1e87f0;
    text-decoration: none;
    cursor: pointer;
  }
  a:hover {
    color: #0f6ecd;
    text-decoration: underline;
  }
  abbr[title] {
    text-decoration: underline dotted;
    -webkit-text-decoration-style: dotted;
  }
  b, strong {
    font-weight: bolder;
  }
  :not(pre)>code, :not(pre)>kbd, :not(pre)>samp {
    font-family: Consolas,monaco,monospace;
    font-size: .875rem;
    color: #f0506e;
    white-space: nowrap;
    padding: 2px 6px;
    background: #f8f8f8;
  }
  em {
    color: #f0506e;
  }
  ins {
    background: #ffd;
    color: #666;
    text-decoration: none;
  }
  mark {
    background: #ffd;
    color: #666;
  }
  q {
    font-style: italic;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sup {
    top: -.5em;
  }
  sub {
    bottom: -.25em;
  }
  audio, canvas, iframe, img, svg, video {
    vertical-align: middle;
  }
  canvas, img, video {
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
  }
  @supports (display:block) {
    svg {
      max-width: 100%;
      height: auto;
      box-sizing: border-box;
    }
  }
  svg:not(:root) {
    overflow: hidden;
  }
  img:not([src]) {
    min-width: 1px;
    visibility: hidden;
  }
  iframe {
    border: 0;
  }
  address, dl, fieldset, figure, ol, p, pre, ul {
    margin: 0 0 20px 0;
  }
  *+address, *+dl, *+fieldset, *+figure, *+ol, *+p, *+pre, *+ul {
    margin-top: 20px;
  }
  h1, h2, h3, h4, h5, h6 {
    margin: 0 0 20px 0;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
    font-weight: 400;
    color: #333;
    text-transform: none;
  }
  *+h1, *+h2, *+h3, *+h4, *+h5, *+h6 {
    margin-top: 40px;
  }
  h1 {
    font-size: 2.23125rem;
    line-height: 1.2;
  }
  h2 {
    font-size: 1.7rem;
    line-height: 1.3;
  }
  h3 {
    font-size: 1.5rem;
    line-height: 1.4;
  }
  h4 {
    font-size: 1.25rem;
    line-height: 1.4;
  }
  h5 {
    font-size: 16px;
    line-height: 1.4;
  }
  h6 {
    font-size: .875rem;
    line-height: 1.4;
  }
  @media (min-width:960px) {
    h1 {
      font-size: 2.625rem;
    }
    h2 {
      font-size: 2rem;
    }
  }
  ol, ul {
    padding-left: 30px;
  }
  ol>li>ol, ol>li>ul, ul>li>ol, ul>li>ul {
    margin: 0;
  }
  dt {
    font-weight: 700;
  }
  dd {
    margin-left: 0;
  }
  hr {
    overflow: visible;
    text-align: inherit;
    margin: 0 0 20px 0;
    border: 0;
    border-top: 1px solid #e5e5e5;
  }
  *+hr {
    margin-top: 20px;
  }
  address {
    font-style: normal;
  }
  blockquote {
    margin: 0 0 20px 0;
    font-size: 1.25rem;
    line-height: 1.5;
    font-style: italic;
    color: #333;
  }
  *+blockquote {
    margin-top: 20px;
  }
  blockquote p:last-of-type {
    margin-bottom: 0;
  }
  blockquote footer {
    margin-top: 10px;
    font-size: .875rem;
    line-height: 1.5;
    color: #666;
  }
  blockquote footer::before {
    content: "— ";
  }
  pre {
    font: 0.875rem/1.5 Consolas,monaco,monospace;
    color: #666;
    -moz-tab-size: 4;
    tab-size: 4;
    overflow: auto;
    padding: 10px;
    border: 1px solid #e5e5e5;
    border-radius: 3px;
    background: #fff;
  }
  pre code {
    font-family: Consolas,monaco,monospace;
  }
  ::selection {
    background: #39f;
    color: #fff;
    text-shadow: none;
  }
  details, main {
    display: block;
  }
  summary {
    display: list-item;
  }
  template {
    display: none;
  }
  [hidden] {
    display: none !important;
  }
  @media print {
    *, ::after, ::before {
      background: 0 0 !important;
      color: #000 !important;
      box-shadow: none !important;
      text-shadow: none !important;
    }
    a, a:visited {
      text-decoration: underline;
    }
    blockquote, pre {
      border: 1px solid #999;
      page-break-inside: avoid;
    }
    thead {
      display: table-header-group;
    }
    img, tr {
      page-break-inside: avoid;
    }
    img {
      max-width: 100% !important;
    }
    h2, h3, p {
      orphans: 3;
      widows: 3;
    }
    h2, h3 {
      page-break-after: avoid;
    }
  }
  /*! Custom css by mh8 - June 2021 */
  @font-face {
    font-family: ProximaNovaThin;
    src: url("font proxima/Proxima Nova Thin.otf") format("opentype");
  }
  @font-face {
    font-family: ProximaNova;
    src: url("font proxima/ProximaNova-Regular.otf") format("opentype");
  }
  @font-face {
    font-family: ProximaNovaAltThin;
    src: url("font proxima/Proxima Nova Alt Thin.otf") format("opentype");
  }
  @font-face {
    font-family: ProximaNovaAltLight;
    src: url("font proxima/Proxima Nova Alt Light.otf") format("opentype");
  }
  html {
    font-family: ProximaNovaAltLight, Arial;
  }
  h1, h2, h3, h4, h5, h6 {
    font-family: ProximaNovaAltLight, Arial;
  }
  #banner-closed {
    position: fixed;
    display: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.5);
    z-index: 2;
    cursor: pointer;
  }
  #banner-closed-text {
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 50px;
    color: white;
    text-align: center;
    transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
  }
  .slideshow {
    margin-top: 4rem;
  }
  .horaires p {
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
  }
  :root {
    --ba-primary: #10507b;
    --ba-primary-dark: #0f4f7a;
    --ba-primary-deep: #0b446a;
    --ba-bg-subtle: #f5f7fb;
    --ba-bg-info: #edf4fa;
    --ba-bg-white: #fff;
    --ba-surface: #fff;
    --ba-surface-subtle: #f8fbff;
    --ba-border: #dbe4ee;
    --ba-border-light: #dde3ea;
    --ba-text-strong: #152033;
    --ba-text-heading: #16304f;
    --ba-text-body: #52607a;
    --ba-text-muted: #5f6b7a;
    --ba-text-soft: #708198;
    --ba-ink-strong: #1f2329;
    --ba-ink-deep: #050608;
    --ba-field-bg: #fff;
    --ba-field-ink: #666;
    --ba-field-border: #e5e5e5;
    --ba-field-focus-border: #1e87f0;
    --ba-field-placeholder: #999;
    --ba-field-disabled-bg: #f8f8f8;
    --ba-field-disabled-ink: #999;
    --ba-field-option-ink: #444;
    --ba-field-label: #333;
    --ba-field-box-border: #ccc;
    --ba-field-box-on: #1e87f0;
    --ba-field-box-on-focus: #0e6dcd;
    --ba-button-ink: #333;
    --ba-button-border: #e5e5e5;
    --ba-button-border-hover: #b2b2b2;
    --ba-button-border-active: #999;
    --ba-button-disabled-ink: #999;
    --ba-button-primary-bg: #1e87f0;
    --ba-button-primary-bg-hover: #0f7ae5;
    --ba-button-primary-bg-active: #0e6dcd;
    --ba-button-secondary-bg: #222;
    --ba-button-secondary-bg-hover: #151515;
    --ba-button-secondary-bg-active: #080808;
    --ba-button-danger-bg: #f0506e;
    --ba-button-danger-bg-hover: #ee395b;
    --ba-button-danger-bg-active: #ec2147;
    --ba-alert-bg: #f8f8f8;
    --ba-alert-ink: #666;
    --ba-alert-primary-bg: #d8eafc;
    --ba-alert-primary-ink: #1e87f0;
    --ba-alert-success-bg: #edfbf6;
    --ba-alert-success-ink: #32d296;
    --ba-alert-warning-bg: #fff6ee;
    --ba-alert-warning-ink: #faa05a;
    --ba-alert-danger-bg: #fef4f6;
    --ba-alert-danger-ink: #f0506e;
    --ba-card-ink: #666;
    --ba-card-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    --ba-util-text-muted: #999;
    --ba-util-text-danger: #f0506e;
    --ba-util-text-meta: #999;
    --ba-util-text-meta-hover: #666;
    --ba-util-label-bg: #1e87f0;
    --ba-util-label-success-bg: #32d296;
    --ba-radius-card: 18px;
    --ba-radius-panel: 14px;
    --ba-radius-control: 12px;
    --ba-radius-pill: 999px;
    --ba-radius-modal: 22px;
    --ba-modal-close-size: 40px;
    --ba-modal-close-inset: 12px;
    --ba-modal-close-icon: 20px;
    --ba-shadow-card: 0 10px 28px rgba(15, 23, 42, 0.08);
    --ba-shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.05);
    --ba-opacity-muted: 0.6;
    --ba-space-1: 6px;
    --ba-space-2: 10px;
    --ba-space-3: 14px;
    --ba-space-4: 18px;
    --ba-font-3xs: 10px;
    --ba-font-2xs: 11px;
    --ba-font-xs: 12px;
    --ba-font-sm: 13px;
    --ba-font-base: 14px;
    --ba-font-lg: 15px;
    --ba-font-xl: 16px;
    --ba-font-2xl: 18px;
    --ba-font-3xl: 20px;
    --ba-font-4xl: 22px;
    --ba-font-5xl: 26px;
    --ba-success: #16a34a;
    --ba-success-bg: #e6f5ec;
    --ba-success-text: #1a6b35;
    --ba-warning-bg: #fff4d6;
    --ba-warning-text: #8a5b00;
    --ba-danger-bg: #fde9ec;
    --ba-danger-text: #9c2236;
    --ba-alert: #d13b54;
    --ba-in-bg: #e8f3ff;
    --ba-in-text: #0f5fd2;
    --ba-out-bg: #eef7ef;
    --ba-out-text: #1d7c3b;
    --ba-z-base: 1;
    --ba-z-content: 2;
    --ba-z-raised: 3;
    --ba-z-navbar: 20;
    --ba-z-notification: 30;
    --ba-z-dropdown: 40;
    --ba-z-jump-nav: 60;
    --ba-z-popover: 70;
    --ba-z-autocomplete: 80;
    --ba-z-modal-overlay: 900;
    --ba-z-modal-panel: 910;
    --ba-z-floating-panel: 980;
    --ba-z-toast: 1000;
    --ba-z-floating-tooltip: 1200;
    --ba-z-session-lock: 2000;
    --ba-shell-max-w: 900px;
    --ba-modal-wide-w: min(760px, calc(100vw - 24px));
    --ba-accountant-preview-h: 420px;
    --ba-navbar-pad: 0px;
    --ba-navbar-h: 80px;
    --ba-navbar-link-pad: 15px;
    --ba-navbar-link-size: .875rem;
    --ba-navbar-link-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --ba-appnav-h: 64px;
    --ba-appnav-top: calc(env(safe-area-inset-top) + var(--ba-navbar-pad) + var(--ba-navbar-h));
    --ba-appnav-space-top: var(--ba-appnav-h);
    --ba-appnav-space-bottom: 0px;
    --ba-primary-tint: #edf4ff;
  }
  @media (max-width: 640px) {
    :root {
      --ba-appnav-h: 58px;
      --ba-appnav-space-top: 0px;
      --ba-appnav-space-bottom: calc(var(--ba-appnav-h) + max(8px, env(safe-area-inset-bottom)));
      --ba-radius-modal: 16px;
      --ba-accountant-preview-h: 260px;
    }
  }
  @media (pointer: coarse) {
    :root {
      --ba-modal-close-size: 44px;
    }
  }
  @media (max-width: 640px) and (pointer: coarse) {
    :root {
      --ba-navbar-pad: 6px;
    }
  }
  html, body {
    margin: 0;
    padding: 0;
    background: var(--ba-primary);
    overflow-x: hidden;
    font-family: ProximaNovaAltLight, ProximaNova, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: var(--ba-font-base);
    text-rendering: optimizeLegibility;
  }
  body, input, button, select, textarea {
    font-family: inherit;
  }
  .ba-alert, .ba-text-small {
    font-weight: 400;
  }
  .ba-modal__dialog, .user-correction-modal__dialog, .pl-modal, .ba-exit-confirm__panel {
    border-radius: var(--ba-radius-modal);
  }
  .ba-modal__dialog > .ba-modal__close, .pl-modal > .pl-modal-x {
    position: sticky;
    top: var(--ba-modal-close-inset);
    right: auto;
    left: auto;
    z-index: var(--ba-z-notification);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--ba-modal-close-size);
    height: var(--ba-modal-close-size);
    margin: 0 0 calc(-1 * var(--ba-modal-close-size)) auto;
    padding: 0;
    border: 1px solid var(--ba-border);
    border-radius: var(--ba-radius-pill);
    background: rgba(255, 255, 255, 0.94);
    color: var(--ba-text-muted);
    font: inherit;
    line-height: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .ba-modal__dialog > .ba-modal__close:hover, .ba-modal__dialog > .ba-modal__close:focus, .ba-modal__dialog > .ba-modal__close:focus-visible, .pl-modal > .pl-modal-x:hover, .pl-modal > .pl-modal-x:focus, .pl-modal > .pl-modal-x:focus-visible {
    border-color: #c9dafc;
    background: var(--ba-surface-subtle);
    color: var(--ba-text-heading);
    box-shadow: 0 10px 22px rgba(16, 80, 123, 0.14);
    outline: none;
  }
  .ba-modal__dialog > .ba-modal__close svg, .pl-modal > .pl-modal-x svg {
    display: block;
    width: var(--ba-modal-close-icon);
    height: var(--ba-modal-close-icon);
  }
  .ba-modal__dialog > .ba-modal__close:first-child + *, .pl-modal > .pl-modal-x:first-child + * {
    margin-top: 0;
  }
  .ba-modal__dialog > .ba-modal__close:first-child ~ .ba-modal__title, .ba-modal__dialog > .ba-modal__close:first-child ~ .user-correction-modal__header, .pl-modal > .pl-modal-x:first-child ~ h3, .pl-modal > .pl-modal-x:first-child ~ .ba-notif-modal__eyebrow {
    padding-right: calc(var(--ba-modal-close-size) + var(--ba-space-2));
  }
  .ba-modal {
    position: fixed;
    inset: 0;
    z-index: var(--ba-z-modal-overlay);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    padding: max(15px, env(safe-area-inset-top)) max(15px, env(safe-area-inset-right)) max(15px, env(safe-area-inset-bottom)) max(15px, env(safe-area-inset-left));
    background: rgba(0, 0, 0, .6);
    opacity: 0;
    transition: opacity .15s linear;
  }
  .ba-modal[hidden] {
    display: none !important;
  }
  .ba-modal--open {
    opacity: 1;
  }
  .ba-modal__dialog {
    position: relative;
    z-index: var(--ba-z-modal-panel);
    box-sizing: border-box;
    margin: 0 auto;
    width: 600px;
    max-width: 100% !important;
    background: var(--ba-bg-white);
    opacity: 0;
    transform: translateY(-100px);
    transition: opacity .2s linear, transform .2s linear;
  }
  .ba-modal--open > .ba-modal__dialog {
    opacity: 1;
    transform: translateY(0);
  }
  .ba-modal__dialog[tabindex="-1"]:focus, .ba-modal__dialog[tabindex="-1"]:focus-visible {
    outline: none;
  }
  .ba-modal__dialog--body {
    padding: 30px;
  }
  .ba-modal__dialog--body > :last-child {
    margin-bottom: 0;
  }
  .ba-modal__title {
    font-size: 2rem;
    line-height: 1.3;
  }
  .ba-modal-page {
    overflow: hidden;
  }
  @media (min-width: 640px) {
    .ba-modal {
      padding: max(50px, env(safe-area-inset-top)) max(30px, env(safe-area-inset-right)) max(50px, env(safe-area-inset-bottom)) max(30px, env(safe-area-inset-left));
    }
  }
  @media (min-width: 960px) {
    .ba-modal {
      padding-right: max(40px, env(safe-area-inset-right));
      padding-left: max(40px, env(safe-area-inset-left));
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ba-modal, .ba-modal__dialog {
      transition: none;
    }
  }
  .ba-toast-container {
    position: fixed;
    top: var(--badgeuse-notification-top, 10px);
    left: 10px;
    right: 10px;
    z-index: var(--ba-z-toast);
    box-sizing: border-box;
  }
  .ba-toast {
    position: relative;
    box-sizing: border-box;
    padding: 15px;
    background: #f8f8f8;
    color: #666;
    font-size: 1.25rem;
    line-height: 1.4;
    cursor: pointer;
    animation: baToastSlideDown .24s cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, transform;
  }
  .ba-toast + .ba-toast {
    margin-top: 10px;
  }
  .ba-toast--primary {
    color: #1e87f0;
  }
  .ba-toast--success {
    color: #32d296;
  }
  .ba-toast--warning {
    color: #faa05a;
  }
  .ba-toast--danger {
    color: #f0506e;
  }
  @keyframes baToastSlideDown {
    from {
      opacity: 0;
      transform: translateY(-12px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ba-toast {
      animation: none;
      will-change: auto;
    }
  }
  .ba-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
  }
  .ba-stack--legacy-grid-spacing, .ba-cluster--legacy-grid-spacing, .ba-formgrid--legacy-grid-spacing {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  .ba-cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
  }
  .ba-cluster--between {
    justify-content: space-between;
  }
  .ba-cluster--end {
    justify-content: flex-end;
  }
  .ba-formgrid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .ba-formgrid__full {
    grid-column: 1 / -1;
  }
  @media (min-width: 640px) {
    .ba-formgrid {
      grid-template-columns: 1fr 1fr;
    }
  }
  .ba-checkbox, .ba-input, .ba-radio, .ba-select, .ba-textarea {
    box-sizing: border-box;
    margin: 0;
    border-radius: 0;
    font: inherit;
  }
  .ba-input {
    overflow: visible;
  }
  .ba-textarea {
    overflow: auto;
  }
  .ba-select {
    text-transform: none;
  }
  .ba-select optgroup {
    font: inherit;
    font-weight: 700;
  }
  .ba-input[type="search"]::-webkit-search-cancel-button, .ba-input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  .ba-input[type="number"]::-webkit-inner-spin-button, .ba-input[type="number"]::-webkit-outer-spin-button {
    height: auto;
  }
  .ba-input, .ba-textarea {
    -webkit-appearance: none;
  }
  .ba-input, .ba-select, .ba-textarea {
    width: 100%;
    max-width: 100%;
    padding: 0 10px;
    border: 1px solid var(--ba-field-border);
    background: var(--ba-field-bg);
    color: var(--ba-field-ink);
    transition: 0.2s ease-in-out;
    transition-property: color, background-color, border;
  }
  .ba-input, .ba-select:not([multiple]):not([size]) {
    display: inline-block;
    height: 40px;
    vertical-align: middle;
  }
  .ba-input:not(input), .ba-select:not(select) {
    line-height: 38px;
  }
  .ba-select[multiple], .ba-select[size], .ba-textarea {
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: top;
  }
  .ba-select[multiple], .ba-select[size] {
    resize: vertical;
  }
  .ba-input:focus, .ba-select:focus, .ba-textarea:focus {
    outline: 0;
    background-color: var(--ba-field-bg);
    color: var(--ba-field-ink);
    border-color: var(--ba-field-focus-border);
  }
  .ba-input:disabled, .ba-select:disabled, .ba-textarea:disabled {
    background-color: var(--ba-field-disabled-bg);
    color: var(--ba-field-disabled-ink);
    border-color: var(--ba-field-border);
  }
  .ba-input::-moz-placeholder, .ba-textarea::-moz-placeholder {
    opacity: 1;
  }
  .ba-input::placeholder, .ba-textarea::placeholder {
    color: var(--ba-field-placeholder);
  }
  .ba-select:not([multiple]):not([size]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 20px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
    background-repeat: no-repeat;
    background-position: 100% 50%;
  }
  .ba-select:not([multiple]):not([size])::-ms-expand {
    display: none;
  }
  .ba-select:not([multiple]):not([size]) option {
    color: var(--ba-field-option-ink);
  }
  .ba-select:not([multiple]):not([size]):disabled {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  }
  .ba-input[list] {
    padding-right: 20px;
    background-repeat: no-repeat;
    background-position: 100% 50%;
  }
  .ba-input[list]:hover, .ba-input[list]:focus {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  }
  .ba-input[list]::-webkit-calendar-picker-indicator {
    display: none;
  }
  .ba-checkbox, .ba-radio {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-top: -4px;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    border: 1px solid var(--ba-field-box-border);
    transition: 0.2s ease-in-out;
    transition-property: background-color, border;
  }
  .ba-radio {
    border-radius: 50%;
  }
  .ba-checkbox:not(:disabled), .ba-radio:not(:disabled) {
    cursor: pointer;
  }
  .ba-checkbox:focus, .ba-radio:focus {
    outline: 0;
    border-color: var(--ba-field-focus-border);
  }
  .ba-checkbox:checked, .ba-checkbox:indeterminate, .ba-radio:checked {
    background-color: var(--ba-field-box-on);
    border-color: transparent;
  }
  .ba-checkbox:checked:focus, .ba-checkbox:indeterminate:focus, .ba-radio:checked:focus {
    background-color: var(--ba-field-box-on-focus);
  }
  .ba-checkbox:disabled, .ba-radio:disabled {
    background-color: var(--ba-field-disabled-bg);
    border-color: var(--ba-field-border);
  }
  .ba-radio:checked {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
  }
  .ba-radio:disabled:checked {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
  }
  .ba-checkbox:checked {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  }
  .ba-checkbox:disabled:checked {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  }
  .ba-checkbox:indeterminate {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
  }
  .ba-checkbox:disabled:indeterminate {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
  }
  .ba-form-label {
    color: var(--ba-field-label);
    font-size: 0.875rem;
  }
  .ba-form-stacked .ba-form-label {
    display: block;
    margin-bottom: 5px;
  }
  .ba-button {
    margin: 0;
    border: none;
    overflow: visible;
    font: inherit;
    font-weight: 400;
    color: inherit;
    -webkit-appearance: none;
    border-radius: 0;
    display: inline-block;
    box-sizing: border-box;
    padding: 0 30px;
    vertical-align: middle;
    font-size: 0.875rem;
    line-height: 38px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: 0.1s ease-in-out;
    transition-property: color, background-color, border-color;
  }
  .ba-button:not(:disabled) {
    cursor: pointer;
  }
  .ba-button:hover {
    text-decoration: none;
  }
  .ba-button:focus {
    outline: 0;
  }
  .ba-button::-moz-focus-inner {
    border: 0;
    padding: 0;
  }
  .ba-button--default {
    background-color: transparent;
    color: var(--ba-button-ink);
    border: 1px solid var(--ba-button-border);
  }
  .ba-button--default:hover, .ba-button--default:focus {
    background-color: transparent;
    color: var(--ba-button-ink);
    border-color: var(--ba-button-border-hover);
  }
  .ba-button--default:active {
    background-color: transparent;
    color: var(--ba-button-ink);
    border-color: var(--ba-button-border-active);
  }
  .ba-button--primary {
    background-color: var(--ba-button-primary-bg);
    color: var(--ba-bg-white);
    border: 1px solid transparent;
  }
  .ba-button--primary:hover, .ba-button--primary:focus {
    background-color: var(--ba-button-primary-bg-hover);
    color: var(--ba-bg-white);
  }
  .ba-button--primary:active {
    background-color: var(--ba-button-primary-bg-active);
    color: var(--ba-bg-white);
  }
  .ba-button--secondary {
    background-color: var(--ba-button-secondary-bg);
    color: var(--ba-bg-white);
    border: 1px solid transparent;
  }
  .ba-button--secondary:hover, .ba-button--secondary:focus {
    background-color: var(--ba-button-secondary-bg-hover);
    color: var(--ba-bg-white);
  }
  .ba-button--secondary:active {
    background-color: var(--ba-button-secondary-bg-active);
    color: var(--ba-bg-white);
  }
  .ba-button--danger {
    background-color: var(--ba-button-danger-bg);
    color: var(--ba-bg-white);
    border: 1px solid transparent;
  }
  .ba-button--danger:hover, .ba-button--danger:focus {
    background-color: var(--ba-button-danger-bg-hover);
    color: var(--ba-bg-white);
  }
  .ba-button--danger:active {
    background-color: var(--ba-button-danger-bg-active);
    color: var(--ba-bg-white);
  }
  .ba-button--danger:disabled, .ba-button--default:disabled, .ba-button--primary:disabled, .ba-button--secondary:disabled {
    background-color: transparent;
    color: var(--ba-button-disabled-ink);
    border-color: var(--ba-button-border);
  }
  .ba-button--small {
    padding: 0 15px;
    line-height: 28px;
    font-size: 0.875rem;
  }
  .ba-button--text {
    position: relative;
    padding: 0;
    line-height: 1.5;
    background: 0 0;
    color: var(--ba-button-ink);
  }
  .ba-button--text::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 100%;
    border-bottom: 1px solid var(--ba-button-ink);
    transition: right 0.3s ease-out;
  }
  .ba-button--text:hover, .ba-button--text:focus {
    color: var(--ba-button-ink);
  }
  .ba-button--text:hover::before, .ba-button--text:focus::before {
    right: 0;
  }
  .ba-button--text:disabled {
    color: var(--ba-button-disabled-ink);
  }
  .ba-button--text:disabled::before {
    display: none;
  }
  .ba-alert {
    position: relative;
    margin-bottom: 20px;
    padding: 15px 29px 15px 15px;
    background: var(--ba-alert-bg);
    color: var(--ba-alert-ink);
  }
  * + .ba-alert {
    margin-top: 20px;
  }
  .ba-alert > :last-child {
    margin-bottom: 0;
  }
  .ba-alert h1, .ba-alert h2, .ba-alert h3, .ba-alert h4, .ba-alert h5, .ba-alert h6 {
    color: inherit;
  }
  .ba-alert a:not([class]), .ba-alert a:not([class]):hover {
    color: inherit;
    text-decoration: underline;
  }
  .ba-alert--primary {
    background: var(--ba-alert-primary-bg);
    color: var(--ba-alert-primary-ink);
  }
  .ba-alert--success {
    background: var(--ba-alert-success-bg);
    color: var(--ba-alert-success-ink);
  }
  .ba-alert--warning {
    background: var(--ba-alert-warning-bg);
    color: var(--ba-alert-warning-ink);
  }
  .ba-alert--danger {
    background: var(--ba-alert-danger-bg);
    color: var(--ba-alert-danger-ink);
  }
  .ba-alert__close {
    position: absolute;
    top: 20px;
    right: 15px;
    color: inherit;
    opacity: 0.4;
  }
  .ba-alert__close:hover, .ba-alert__close:focus {
    color: inherit;
    opacity: 0.8;
  }
  .ba-alert__close:first-child + * {
    margin-top: 0;
  }
  .ba-section {
    display: flow-root;
    box-sizing: border-box;
    padding-top: 1rem;
    padding-bottom: 4rem;
    background: var(--ba-surface);
  }
  .ba-section > :last-child {
    margin-bottom: 0;
  }
  .ba-container {
    display: flow-root;
    box-sizing: content-box;
    max-width: var(--ba-shell-max-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
  }
  .ba-container > :last-child {
    margin-bottom: 0;
  }
  .ba-container > h1 {
    padding-top: 4rem;
  }
  @media (min-width: 640px) {
    .ba-container {
      padding-left: 30px;
      padding-right: 30px;
    }
  }
  @media (min-width: 960px) {
    .ba-container {
      padding-left: 40px;
      padding-right: 40px;
    }
  }
  .ba-card {
    position: relative;
    box-sizing: border-box;
    background: var(--ba-surface);
    color: var(--ba-card-ink);
    box-shadow: var(--ba-card-shadow);
    transition: box-shadow 0.1s ease-in-out;
  }
  .ba-card__body {
    display: flow-root;
    padding: 20px 20px;
  }
  .ba-card__body > :last-child {
    margin-bottom: 0;
  }
  .ba-width-full, .ba-width-auto-sm {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }
  @media (min-width: 640px) {
    .ba-width-auto-sm {
      width: auto;
    }
  }
  .ba-fullscreen-center {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
  }
  .ba-fullscreen-center::before, .ba-fullscreen-center::after {
    display: none;
  }
  .ba-margin {
    margin-bottom: 20px;
  }
  * + .ba-margin {
    margin-top: 20px !important;
  }
  .ba-margin-top {
    margin-top: 20px !important;
  }
  .ba-margin-top-small:not(:where(.ba-toast *)) {
    margin-top: 10px !important;
  }
  .ba-margin-bottom-small {
    margin-bottom: 10px !important;
  }
  .ba-margin-remove {
    margin: 0 !important;
  }
  .ba-text-small {
    font-size: 0.875rem;
    line-height: 1.5;
  }
  .ba-text-large {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .ba-text-center:not(:where(.ba-toast *)) {
    text-align: center !important;
  }
  .ba-text-muted {
    color: var(--ba-util-text-muted) !important;
  }
  .ba-text-danger {
    color: var(--ba-util-text-danger) !important;
  }
  .ba-text-meta {
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--ba-util-text-meta);
  }
  .ba-text-meta a {
    color: var(--ba-util-text-meta);
  }
  .ba-text-meta a:hover {
    color: var(--ba-util-text-meta-hover);
    text-decoration: none;
  }
  .ba-list {
    padding: 0;
    list-style: none;
  }
  .ba-list > * > :last-child {
    margin-bottom: 0;
  }
  .ba-list > * > ul, .ba-list > :nth-child(n + 2) {
    margin-top: 10px;
  }
  .ba-list--bullet > * {
    padding-left: 30px;
  }
  .ba-list--bullet > ::before {
    content: "";
    position: relative;
    left: -30px;
    width: 30px;
    height: 1.5em;
    margin-bottom: -1.5em;
    display: list-item;
    list-style-position: inside;
    text-align: right;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: 50% 50%;
  }
  .ba-h3, .ba-h4 {
    margin: 0 0 20px 0;
  }
  * + .ba-h3, * + .ba-h4 {
    margin-top: 40px;
  }
  .ba-h3 {
    font-size: 1.5rem;
    line-height: 1.4;
  }
  .ba-h4 {
    font-size: 1.25rem;
    line-height: 1.4;
  }
  .ba-label {
    display: inline-block;
    padding: 0 10px;
    background: var(--ba-util-label-bg);
    line-height: 1.5;
    font-size: 0.875rem;
    color: var(--ba-bg-white);
    vertical-align: middle;
    white-space: nowrap;
    border-radius: 2px;
    text-transform: uppercase;
  }
  .ba-label--success {
    background-color: var(--ba-util-label-success-bg);
    color: var(--ba-bg-white);
  }
  .ba-hidden {
    display: none !important;
  }
  .ba-navbar {
    display: flex;
    position: relative;
  }
  .ba-navbar > ::before, .ba-navbar > ::after {
    display: none !important;
  }
  .ba-navbar__center {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-left: auto;
    margin-right: auto;
    position: relative;
  }
  .ba-navbar__nav {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .ba-navbar__nav > li > a {
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    min-height: var(--ba-navbar-h);
    padding: 0 var(--ba-navbar-link-pad);
    font-family: var(--ba-navbar-link-font);
    font-size: var(--ba-navbar-link-size);
    font-weight: 400;
    color: var(--ba-bg-white);
    text-transform: uppercase;
    text-decoration: none;
    transition: .1s ease-in-out;
    transition-property: color, background-color;
  }
  .ba-navbar__nav > li > a:hover, .ba-navbar__nav > li > a:focus, .ba-navbar__nav > li > a:focus-visible, .ba-navbar__nav > li > a:active {
    color: var(--ba-bg-white);
  }
  .ba-navbar__nav > li > a:focus {
    outline: 0;
  }
  .app-navbar-shell {
    position: fixed !important;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    z-index: var(--ba-z-navbar);
  }
  .app-navbar-shell .ba-navbar {
    background: var(--ba-primary);
    padding-top: calc(env(safe-area-inset-top) + var(--ba-navbar-pad));
  }
  .app-navbar-back-button {
    position: absolute;
    top: calc(env(safe-area-inset-top) + 40px);
    left: max(14px, env(safe-area-inset-left));
    z-index: var(--ba-z-content);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: var(--ba-radius-pill);
    background: transparent;
    color: var(--ba-bg-white);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    text-decoration: none;
    transform: translateY(-50%);
    opacity: .92;
    filter: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: opacity .18s ease, filter .18s ease, transform .18s ease;
  }
  .app-navbar-back-button:hover, .app-navbar-back-button:focus-visible {
    opacity: 1;
    color: var(--ba-bg-white);
    text-decoration: none;
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .24));
    transform: translateY(-50%) scale(1.06);
  }
  .app-navbar-back-button:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .86);
    outline-offset: 3px;
  }
  @media (max-width: 640px) {
    .app-navbar-back-button {
      top: calc(env(safe-area-inset-top) + 40px);
      left: max(8px, env(safe-area-inset-left));
      width: 36px;
      height: 36px;
    }
  }
  @media (max-width: 640px) and (pointer: coarse) {
    .app-navbar-back-button {
      top: calc(env(safe-area-inset-top) + 46px);
    }
  }
  .ba-exit-confirm {
    position: fixed;
    inset: 0;
    z-index: var(--ba-z-modal-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--ba-space-4);
  }
  .ba-exit-confirm[hidden] {
    display: none !important;
  }
  .ba-exit-confirm__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .ba-exit-confirm__panel {
    position: relative;
    z-index: var(--ba-z-modal-panel);
    box-sizing: border-box;
    width: min(100%, 360px);
    padding: 22px;
    background: var(--ba-bg-white);
    box-shadow: var(--ba-shadow-card);
    color: var(--ba-text-body);
    animation: baExitConfirmPop .18s ease;
  }
  .ba-exit-confirm__text {
    margin: 0 0 18px;
    font-size: var(--ba-font-xl);
    line-height: 1.4;
    text-align: center;
    color: var(--ba-text-strong);
  }
  .ba-exit-confirm__actions {
    display: flex;
    justify-content: center;
    gap: var(--ba-space-2);
  }
  .ba-exit-confirm .ba-exit-confirm__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 40px;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: var(--ba-radius-control);
    font: inherit;
    font-size: var(--ba-font-base);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
  }
  .ba-exit-confirm .ba-exit-confirm__btn--primary {
    background: var(--ba-primary);
    color: var(--ba-bg-white);
  }
  .ba-exit-confirm .ba-exit-confirm__btn--primary:hover, .ba-exit-confirm .ba-exit-confirm__btn--primary:focus-visible {
    background: var(--ba-primary-dark);
    color: var(--ba-bg-white);
    text-decoration: none;
  }
  .ba-exit-confirm .ba-exit-confirm__btn--ghost {
    background: var(--ba-bg-white);
    border-color: var(--ba-border);
    color: var(--ba-text-body);
  }
  .ba-exit-confirm .ba-exit-confirm__btn--ghost:hover {
    background: var(--ba-surface-subtle);
  }
  .ba-exit-confirm .ba-exit-confirm__btn:focus-visible {
    outline: 2px solid var(--ba-primary);
    outline-offset: 2px;
  }
  @keyframes baExitConfirmPop {
    from {
      opacity: 0;
      transform: translateY(8px) scale(.98);
    }
    to {
      opacity: 1;
      transform: none;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ba-exit-confirm__panel {
      animation: none;
    }
  }
  @media (max-width: 640px) {
    .ba-exit-confirm__actions {
      flex-direction: column-reverse;
    }
    .ba-exit-confirm .ba-exit-confirm__btn {
      width: 100%;
    }
  }
  .badgeuse-wrap {
    padding-top: 110px;
    padding-bottom: 40px;
  }
  @media (max-width: 640px) and (pointer: coarse) {
    .badgeuse-wrap {
      padding-top: 116px;
    }
  }
  .ba-appnav {
    position: fixed;
    top: var(--ba-appnav-top);
    right: 0;
    left: 0;
    z-index: var(--ba-z-navbar);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--ba-appnav-h);
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
    border-bottom: 1px solid var(--ba-border);
    background: var(--ba-bg-subtle);
    box-shadow: var(--ba-shadow-soft);
  }
  .ba-appnav__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--ba-space-2);
    width: 100%;
    max-width: 880px;
  }
  .ba-appnav__item {
    display: inline-flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    gap: var(--ba-space-2);
    min-width: 0;
    min-height: 44px;
    padding: 6px 10px;
    border-radius: var(--ba-radius-panel);
    color: var(--ba-text-body);
    text-decoration: none;
    transition: color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
  }
  .ba-appnav__item:hover, .ba-appnav__item:focus-visible {
    color: var(--ba-primary);
    background: var(--ba-bg-white);
    box-shadow: var(--ba-shadow-soft);
    text-decoration: none;
  }
  .ba-appnav__item:focus-visible {
    outline: 2px solid var(--ba-primary);
    outline-offset: 2px;
  }
  .ba-appnav__item.is-active {
    color: var(--ba-text-heading);
  }
  .ba-appnav__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: var(--ba-primary-tint);
    color: var(--ba-primary);
  }
  .ba-appnav__item.is-active .ba-appnav__icon {
    background: var(--ba-primary);
    color: var(--ba-bg-white);
  }
  .ba-appnav__icon svg {
    display: block;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .ba-appnav__label {
    min-width: 0;
    overflow: hidden;
    font-size: var(--ba-font-xs);
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .ba-appnav ~ .badgeuse-wrap, .ba-appnav ~ * .badgeuse-wrap {
    padding-top: calc(var(--ba-navbar-h) + var(--ba-navbar-pad) + 30px + var(--ba-appnav-space-top));
    padding-bottom: calc(40px + var(--ba-appnav-space-bottom));
  }
  .admin-area .badgeuse-wrap, .history-page .badgeuse-wrap {
    min-height: 100vh;
    min-height: 100dvh;
  }
  @media (max-width: 640px) and (pointer: coarse) {
    .ba-appnav ~ .badgeuse-wrap, .ba-appnav ~ * .badgeuse-wrap {
      padding-top: calc(var(--ba-navbar-h) + var(--ba-navbar-pad) + 30px + var(--ba-appnav-space-top));
    }
  }
  @media (max-width: 640px) {
    .ba-appnav {
      top: auto;
      bottom: 0;
      height: calc(var(--ba-appnav-h) + max(8px, env(safe-area-inset-bottom)));
      padding-top: 4px;
      padding-bottom: max(8px, env(safe-area-inset-bottom));
      border-top: 1px solid var(--ba-border);
      border-bottom: 0;
      box-shadow: 0 -8px 22px rgba(15, 23, 42, 0.08);
    }
    .ba-appnav__inner {
      gap: 2px;
      max-width: none;
    }
    .ba-appnav__item {
      flex: 1 1 0;
      flex-direction: column;
      gap: 2px;
      min-height: 50px;
      padding: 4px 2px;
    }
    .ba-appnav__icon {
      width: 26px;
      height: 26px;
      border-radius: 8px;
    }
    .ba-appnav__icon svg {
      width: 17px;
      height: 17px;
    }
    .ba-appnav__label {
      max-width: 100%;
      font-size: var(--ba-font-3xs);
      letter-spacing: 0.02em;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ba-appnav__item {
      transition: none;
    }
  }
  .ba-icon {
    display: inline-flex;
    flex: none;
    width: 20px;
    height: 20px;
    color: inherit;
    vertical-align: middle;
  }
  .ba-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .admin-area button:not(:where(.ba-notif-pref, .punch-omission, .punch-omission-count)), .admin-area .ba-button {
    font-size: var(--ba-font-sm);
    line-height: 1.3;
    padding: 6px 10px;
    min-height: 34px;
    border-radius: 20px;
    box-sizing: border-box;
  }
  .admin-area .ba-button.ba-button--small {
    font-size: var(--ba-font-xs);
    padding: 4px 8px;
    min-height: 30px;
  }
  @media (max-width: 640px) {
    .admin-area .ba-button, .admin-area button:not(:where(.ba-notif-pref, .punch-omission, .punch-omission-count)) {
      width: auto;
      min-width: 44px;
    }
  }
  .section-disclosure__summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
  }
  .section-disclosure__summary::-webkit-details-marker {
    display: none;
  }
  .section-disclosure__summary::marker {
    display: none;
    content: '';
  }
  code {
    display: inline-block;
    padding: 2px 6px;
    background: #f5f5f5;
    border-radius: 4px;
    font-size: var(--ba-font-xs);
    word-break: break-word;
  }
  .admin-recap-export-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ba-space-2);
    box-sizing: border-box;
    text-transform: uppercase;
    line-height: 38px;
    width: 100%;
    min-height: 54px;
    padding: 0 18px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--ba-ink-strong) 0%, var(--ba-ink-deep) 100%);
    box-shadow: 0 14px 28px rgba(5, 6, 8, 0.28);
    color: var(--ba-bg-white);
    font-size: var(--ba-font-base);
    font-weight: 700;
  }
  .admin-recap-export-button:hover, .admin-recap-export-button:focus-visible {
    color: var(--ba-bg-white);
    transform: translateY(-1px);
    box-shadow: 0 18px 34px rgba(5, 6, 8, 0.34);
  }
  .admin-recap-export-button__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: var(--ba-radius-pill);
    background: rgba(255, 255, 255, 0.18);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  }
  .badgeuse-content-fragment {
    transition: opacity 160ms ease, transform 160ms ease, filter 160ms ease;
  }
  .badgeuse-content-fragment.is-badgeuse-content-loading {
    opacity: 0.48;
    transform: translateY(3px);
    filter: saturate(0.94);
    pointer-events: none;
  }
  .badgeuse-content-fragment.is-badgeuse-content-entering {
    opacity: 0;
    transform: translateY(4px);
  }
  @media (prefers-reduced-motion: reduce) {
    .badgeuse-content-fragment {
      transition: none;
    }
    .badgeuse-content-fragment.is-badgeuse-content-loading, .badgeuse-content-fragment.is-badgeuse-content-entering {
      transform: none;
    }
  }
  .app-navbar-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ba-space-1);
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    color: inherit;
    text-decoration: none;
  }
  .app-navbar-brand:hover, .app-navbar-brand:focus-visible {
    color: inherit;
    text-decoration: none;
  }
  .app-navbar-brand__pictogram {
    position: absolute;
    top: 50%;
    left: 115px;
    width: 24px;
    height: 24px;
    color: var(--ba-bg-white);
    transform: translateY(-50%);
    pointer-events: none;
  }
  .app-navbar-brand__pictogram svg {
    width: 100%;
    height: 100%;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  @media (max-width: 640px) {
    .app-navbar-brand__pictogram {
      left: 62px;
      width: 20px;
      height: 20px;
    }
  }
  .ba-button--primary, .ba-button--primary:not(:disabled):not(.ba-disabled):active {
    background-color: var(--ba-primary);
    border-color: var(--ba-primary);
    color: var(--ba-bg-white);
  }
  .ba-button--primary:hover, .ba-button--primary:focus, .ba-button--primary:focus-visible {
    background-color: var(--ba-primary-dark);
    border-color: var(--ba-primary-dark);
    color: var(--ba-bg-white);
  }
  .app-navbar-brand:focus-visible {
    outline: 2px solid rgba(16, 80, 123, 0.22);
    outline-offset: 2px;
  }
  .muted {
    color: var(--ba-text-muted);
    font-size: var(--ba-font-sm);
    line-height: 1.5;
  }
  .history-custom-form {
    display: flex;
    flex-wrap: wrap;
    column-gap: var(--ba-space-1);
    row-gap: 2px;
    align-items: flex-end;
    margin-top: var(--ba-space-1);
  }
  .history-custom-form label {
    display: flex;
    flex: 0 1 160px;
    flex-direction: column;
    gap: 1px;
    font-size: var(--ba-font-2xs);
    line-height: 1.1;
  }
  .history-custom-form .ba-button {
    margin-top: 4px;
  }
  .history-custom-form .ba-input {
    min-height: 44px;
    height: 44px;
    padding-top: 0;
    padding-bottom: 0;
    box-sizing: border-box;
  }
  .history-custom-form input[type="date"] {
    padding-inline: 8px;
    font-size: var(--ba-font-xl);
    font-weight: 600;
    line-height: 44px;
    text-align: center;
    vertical-align: middle;
  }
  .history-custom-form input[type="date"]::-webkit-date-and-time-value {
    text-align: center;
    min-height: 44px;
  }
  .history-custom-form input[type="date"]::-webkit-datetime-edit {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    line-height: 1;
    padding: 0;
  }
  .history-custom-form input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    width: 100%;
  }
  .history-period-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 120px;
    min-width: 0;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--ba-border-light);
    border-radius: var(--ba-radius-pill);
    background: var(--ba-surface);
    color: #274565;
    font-size: var(--ba-font-xs);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
  }
  .history-period-link.ba-button--primary {
    background: var(--ba-primary);
    border-color: transparent;
    color: var(--ba-bg-white);
  }
  .history-period-link:hover, .history-period-link:focus-visible {
    text-decoration: none;
  }
  .admin-period-calendar-wrap {
    margin-top: var(--ba-space-2);
  }
  .btn-is-loading {
    position: relative;
    color: transparent !important;
    text-shadow: none !important;
    pointer-events: none;
    cursor: progress;
  }
  .btn-is-loading > * {
    visibility: hidden;
  }
  .btn-is-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 18px;
    margin: -9px 0 0 -9px;
    border-radius: var(--ba-radius-pill);
    border: 2px solid var(--ba-primary);
    border-right-color: transparent;
    animation: badgeuseBtnSpin 0.6s linear infinite;
    visibility: visible;
  }
  .btn-is-loading.ba-button--primary::after, .btn-is-loading.is-suggested::after {
    border-color: var(--ba-bg-white);
    border-right-color: transparent;
  }
  @keyframes badgeuseBtnSpin {
    to {
      transform: rotate(360deg);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .btn-is-loading::after {
      animation-duration: 1.6s;
    }
  }
  @media (hover: none), (pointer: coarse) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not(.pin-input), select, textarea, .ba-input:not(.pin-input), .ba-select, .ba-textarea {
      font-size: var(--ba-font-xl);
    }
    .app-navbar-back-button:hover, .app-navbar-back-button:focus-visible {
      transform: translateY(-50%);
    }
  }
  .ba-notif-pref-group {
    display: grid;
    gap: 8px;
    margin-top: var(--ba-space-3);
  }
  .ba-notif-pref-group__legend {
    margin: 4px 2px 0;
    font-size: var(--ba-font-2xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ba-text-muted);
  }
  .ba-notif-pref-group__legend--next {
    margin-top: var(--ba-space-3);
  }
  .ba-notif-pref {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--ba-border);
    border-radius: var(--ba-radius-panel);
    background: var(--ba-surface-subtle);
    color: var(--ba-text-strong);
    text-align: left;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color .18s ease, background .18s ease;
  }
  .ba-notif-pref:hover {
    border-color: var(--ba-primary);
    background: var(--ba-surface);
  }
  .ba-notif-pref:focus-visible {
    border-color: var(--ba-primary);
    background: var(--ba-surface);
    outline: 2px solid var(--ba-primary);
    outline-offset: 2px;
  }
  .ba-notif-pref--device {
    border-color: var(--ba-primary);
  }
  .ba-notif-pref__icon {
    flex: 0 0 auto;
    color: var(--ba-primary);
  }
  .ba-notif-pref__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 auto;
  }
  .ba-notif-pref__title {
    font-size: var(--ba-font-base);
    font-weight: 700;
    line-height: 1.25;
  }
  .ba-notif-pref__hint {
    font-size: var(--ba-font-xs);
    font-weight: 500;
    color: var(--ba-text-muted);
    line-height: 1.3;
  }
  .ba-notif-pref__switch {
    flex: 0 0 auto;
    position: relative;
    width: 44px;
    height: 26px;
    border-radius: var(--ba-radius-pill);
    background: #9aa7b5;
    transition: background .18s ease;
  }
  .ba-notif-pref__knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ba-bg-white);
    box-shadow: 0 1px 3px rgba(15, 23, 42, .3);
    transition: transform .18s ease;
  }
  .ba-notif-pref[aria-pressed="true"] .ba-notif-pref__switch {
    background: var(--ba-primary);
  }
  .ba-notif-pref[aria-pressed="true"] .ba-notif-pref__knob {
    transform: translateX(18px);
  }
  .geofence-map__pin {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin-left: -8px;
    margin-top: -8px;
    border-radius: var(--ba-radius-pill);
    background: var(--ba-danger-text);
    border: 2px solid var(--ba-bg-white);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.25);
    pointer-events: none;
    z-index: var(--ba-z-raised);
  }
  .geofence-map__attribution {
    position: absolute;
    bottom: 2px;
    right: 4px;
    font-size: 9px;
    color: var(--ba-text-muted);
    background: rgba(255, 255, 255, 0.78);
    padding: 0 4px;
    border-radius: 4px;
    pointer-events: none;
    z-index: var(--ba-z-content);
  }
  @media (prefers-reduced-motion: reduce) {
    .app-navbar-back-button {
      transition: none;
    }
  }
  .app-unlock-overlay__stage {
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
  }
  @keyframes app-unlock-breathe {
    0%, 100% {
      transform: scale(1);
      opacity: 1;
    }
    50% {
      transform: scale(0.94);
      opacity: 0.65;
    }
  }
  @keyframes app-unlock-veil {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes app-unlock-land {
    from {
      opacity: 0;
      transform: scale(1.25);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }
  @keyframes app-unlock-hint-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  html[data-ba-session-locked="1"]::before {
    content: '';
    position: fixed;
    inset: 0;
    background: var(--ba-surface);
    z-index: var(--ba-z-session-lock);
  }
}
@layer components {
  @font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/css/fonts/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/css/fonts/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  @font-face {
    font-family: 'Montserrat Alternates';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url('/css/fonts/montserrat-alternates-200-latin.woff2') format('woff2');
  }
  :where(.ui), :where(.ui) *:not(:where(svg, svg *, img, video, canvas, iframe, [data-ui-foreign], [data-ui-foreign] *)), :where(.ui)::before, :where(.ui)::after, :where(.ui) *::before, :where(.ui) *::after {
    all: revert;
  }
  :where(.ui), :where(.ui) *, :where(.ui) *::before, :where(.ui) *::after {
    box-sizing: border-box;
  }
  :where(.ui) {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    font-weight: var(--font-weight-regular);
    font-style: normal;
    line-height: var(--leading-normal);
    letter-spacing: normal;
    text-transform: none;
    text-align: start;
    text-indent: 0;
    white-space: normal;
    word-spacing: normal;
    color: var(--color-fg);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark) {
    :where(.ui):where(:root:not([data-theme="light"]) *) {
      color-scheme: dark;
    }
  }
  :where(.ui):where(:root[data-theme="dark"] *) {
    color-scheme: dark;
  }
  :where(body.ui-page) {
    box-sizing: border-box;
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--color-canvas);
  }
  :where(html:has(> body.ui-page)) {
    background: var(--color-canvas);
  }
  :where(.ui) :where(img, svg) {
    display: block;
    max-width: 100%;
    vertical-align: baseline;
  }
  :where(.ui) :where(svg) {
    fill: none;
    stroke: currentColor;
    stroke-width: var(--icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  :where(.ui) :where(button, input, select, textarea) {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
  }
  :where(.ui) :where(button) {
    cursor: pointer;
    background: none;
    border: 0;
    padding: 0;
  }
  :where(.ui) :where(fieldset) {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
  }
  :where(.ui) :where(legend) {
    padding: 0;
    margin-bottom: var(--space-2);
  }
  :where(.ui)[hidden], :where(.ui) [hidden] {
    display: none !important;
  }
  :where(.ui) [draggable="true"] {
    -webkit-user-drag: element;
    user-select: none;
  }
  :where(.ui) :where(h1, h2, h3, h4) {
    margin: 0;
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-tight);
    letter-spacing: var(--tracking-tight);
  }
  :where(.ui) :where(h1) {
    font-size: var(--text-2xl);
  }
  :where(.ui) :where(h2) {
    font-size: var(--text-xl);
  }
  :where(.ui) :where(h3) {
    font-size: var(--text-lg);
  }
  :where(.ui) :where(h4) {
    font-size: var(--text-base);
  }
  :where(.ui) :where(p, ul, ol, dl, dd, figure) {
    margin: 0;
  }
  :where(.ui) :where(ul, ol) {
    padding: 0;
    list-style: none;
  }
  :where(.ui) :where(p + p) {
    margin-top: var(--space-3);
  }
  :where(.ui) :where(strong) {
    font-weight: var(--font-weight-semibold);
  }
  :where(.ui) :where(small) {
    font-size: var(--text-xs);
  }
  :where(.ui) :where(code) {
    font-family: var(--font-mono);
    font-size: 0.92em;
  }
  :where(.ui) :where(a) {
    color: var(--color-link);
    text-decoration: none;
    text-underline-offset: var(--outline-w);
  }
  @media (hover: hover) {
    :where(.ui) :where(a:hover) {
      text-decoration: underline;
    }
  }
  :where(.ui) :where(:focus) {
    outline: none;
  }
  :where(.ui) :where(:focus-visible) {
    outline: var(--outline-w) solid var(--color-focus);
    outline-offset: var(--outline-w);
    border-radius: var(--radius-sm);
  }
  :where(.ui) :where(button, input, select, textarea, a, summary):focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
  }
  :where(.ui) ::selection {
    background: var(--color-accent-subtle);
    color: var(--color-fg-accent);
  }
  :where(.ui) ::placeholder {
    color: var(--color-fg-muted);
    opacity: 1;
  }
  :where(.ui) :where(input, select, textarea) {
    font-size: var(--text-input-touch);
  }
  @media (min-width: 1024px) {
    :where(.ui) :where(input, select, textarea) {
      font-size: var(--text-base);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    :where(.ui), :where(.ui) *, :where(.ui) *::before, :where(.ui) *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.001ms !important;
      scroll-behavior: auto !important;
    }
  }
  .app-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-header);
    background: var(--color-brand);
    color: var(--color-fg-on-brand);
    padding-top: var(--safe-top);
    transform: translateY(calc(-1 * var(--header-lift)));
  }
  .app-header__inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    column-gap: var(--space-2);
    align-items: center;
    max-width: var(--shell-max-w);
    min-height: var(--header-h);
    margin: 0 auto;
    padding: 0 max(var(--space-4), var(--safe-right)) 0 max(var(--space-4), var(--safe-left));
  }
  .app-header__brand {
    grid-column: 2;
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-min);
    border-radius: var(--radius-md);
    color: var(--color-fg-on-brand);
  }
  .app-header__picto {
    position: absolute;
    top: 50%;
    right: 100%;
    display: inline-flex;
    width: var(--icon-lg);
    height: var(--icon-lg);
    margin-right: var(--space-2);
    transform: translateY(-50%);
  }
  .app-header__picto svg {
    width: var(--icon-lg);
    height: var(--icon-lg);
  }
  .app-header__logo {
    width: auto;
    height: var(--logo-h);
  }
  .app-header__back, .app-header__action {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--tap-min);
    height: var(--tap-min);
    border-radius: var(--radius-md);
    color: var(--color-fg-on-brand);
  }
  .app-header__back {
    grid-column: 1;
    justify-self: start;
    margin-left: calc(-1 * var(--space-3));
  }
  .app-header__actions {
    grid-column: 3;
    justify-self: end;
    display: flex;
    gap: var(--space-1);
    margin-right: calc(-1 * var(--space-3));
  }
  .app-header__back svg, .app-header__action svg {
    width: var(--icon-lg);
    height: var(--icon-lg);
  }
  .app-header__action[aria-current="page"] {
    background: var(--color-brand-hover);
  }
  .app-header__nav {
    display: none;
  }
  @media (min-width: 1024px) {
    .app-header__nav {
      display: flex;
      gap: var(--space-1);
    }
  }
  .app-header__link {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-min);
    padding: 0 var(--space-3);
    border-radius: var(--radius-md);
    color: var(--color-fg-on-brand-soft);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
  }
  .app-header__link[aria-current="page"] {
    color: var(--color-fg-on-brand);
    text-decoration: underline;
    text-decoration-thickness: var(--outline-w);
  }
  .app-header--site .app-header__inner {
    grid-template-columns: auto minmax(0, 1fr);
    max-width: var(--site-max-w);
  }
  .app-header--site .app-header__brand {
    grid-column: 1;
  }
  .app-header--site .app-header__actions {
    grid-column: 2;
    align-items: center;
    gap: var(--space-2);
    margin-right: 0;
  }
  .app-header__cta {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-min);
    padding: 0 var(--space-4);
    border-radius: var(--radius-control);
    background: var(--color-fg-on-brand);
    color: var(--color-brand);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
  }
  .app-header__count {
    position: absolute;
    top: var(--space-1);
    right: var(--space-0-5);
    min-width: var(--space-5);
    padding: 0 var(--space-1);
    border-radius: var(--radius-pill);
    background: var(--color-danger);
    color: var(--color-fg-on-accent);
    font-size: var(--text-2xs);
    font-weight: var(--font-weight-semibold);
    line-height: var(--space-5);
    text-align: center;
    font-variant-numeric: tabular-nums;
  }
  @media (hover: hover) {
    .app-header a:hover {
      text-decoration: none;
    }
    .app-header__back:hover, .app-header__action:hover, .app-header__link:hover {
      background: var(--color-brand-hover);
    }
    .app-header__link:hover {
      color: var(--color-fg-on-brand);
    }
    .app-header__cta:hover {
      background: var(--color-fg-on-brand-soft);
    }
  }
  .app-header a:focus-visible, .app-header button:focus-visible {
    box-shadow: 0 0 0 var(--outline-w) var(--color-fg-on-brand);
  }
  .app-header .app-header__cta:focus-visible {
    box-shadow: 0 0 0 var(--outline-w) var(--color-brand), 0 0 0 calc(2 * var(--outline-w)) var(--color-fg-on-brand);
  }
  .app-header__inner {
    opacity: calc(1 - 1.6 * var(--header-hide));
    clip-path: inset(calc(var(--header-h) * var(--header-hide)) 0 0 0);
  }
  .app-header__brand {
    transform: translateY(calc(-1 * var(--space-2) * var(--header-hide)));
  }
  .app-header.is-scrolled {
    box-shadow: var(--shadow-header);
  }
  :root.is-header-snapping {
    --header-snap: var(--duration-header);
  }
  :root.is-header-snapping .app-header {
    transition: transform var(--duration-header) var(--ease-header), box-shadow var(--duration-base) ease;
  }
  :root.is-header-snapping .app-header__inner {
    transition: opacity var(--duration-header) ease, clip-path var(--duration-header) var(--ease-header);
  }
  :root.is-header-snapping .app-header__brand {
    transition: transform var(--duration-header) var(--ease-header);
  }
  .app-header__ink {
    position: absolute;
    inset: 0;
    background: currentColor;
    opacity: 0;
    pointer-events: none;
    -webkit-mask: url("/img/la-badgeuse-wordmark.png?v=4") center / contain no-repeat;
    mask: url("/img/la-badgeuse-wordmark.png?v=4") center / contain no-repeat;
  }
  .app-header__ink--planning {
    -webkit-mask-image: url("/img/le-planning-wordmark.png?v=2");
    mask-image: url("/img/le-planning-wordmark.png?v=2");
  }
  @media (min-width: 640px) {
    .app-header.is-docked {
      z-index: var(--z-header-docked);
    }
    .app-header.is-docked .app-header__inner {
      transform: translateY(calc((var(--header-h) + var(--appnav-bar-h) - 1px) / 2 * var(--header-dock)));
      pointer-events: none;
    }
    .app-header.is-docked :is(.app-header__back, .app-header__brand, .app-header__actions > *) {
      pointer-events: auto;
    }
    .app-header.is-docked .app-header__brand {
      transform-origin: left center;
      transform: translateX(calc(var(--header-brand-dx) * var(--header-dock))) scale(calc(1 - (1 - var(--header-dock-scale)) * var(--header-dock)));
    }
    .app-header.is-docked :is(.app-header__back, .app-header__brand) {
      color: var(--color-fg-accent);
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in srgb, var(--color-fg-accent) calc(100% * var(--header-dock)), var(--color-fg-on-brand));
      }
    }
    .app-header.is-docked .app-header__action {
      color: var(--color-fg-muted);
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in srgb, var(--color-fg-muted) calc(100% * var(--header-dock)), var(--color-fg-on-brand));
      }
    }
    .app-header.is-docked .app-header__action[aria-current="page"] {
      background: var(--color-accent-subtle);
      @supports (color: color-mix(in lab, red, red)) {
        background: color-mix(in srgb, var(--color-accent-subtle) calc(100% * var(--header-dock)), var(--color-brand-hover));
      }
      color: var(--color-fg-accent);
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in srgb, var(--color-fg-accent) calc(100% * var(--header-dock)), var(--color-fg-on-brand));
      }
    }
    .app-header.is-docked .app-header__logo {
      opacity: calc(1 - var(--header-dock));
    }
    .app-header.is-docked .app-header__ink {
      opacity: var(--header-dock);
    }
    .app-header.is-docked a:focus-visible, .app-header.is-docked button:focus-visible {
      box-shadow: var(--focus-ring);
    }
  }
  @media (min-width: 640px) and (hover: hover) {
    .app-header.is-docked .app-header__back:hover, .app-header.is-docked .app-header__action:hover {
      background: var(--color-accent-subtle);
    }
  }
  @media (max-width: 639.98px) {
    .app-header.is-gone {
      display: none;
    }
  }
  .header-cap {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: var(--z-header-cap);
    height: var(--safe-top);
    background: var(--color-surface);
    pointer-events: none;
    visibility: hidden;
  }
  @media (min-width: 640px) {
    .app-header.is-gone + .header-cap {
      visibility: visible;
    }
  }
  body.ui-page:has(> .app-header) {
    padding-top: var(--header-offset);
  }
  html:has(> body.ui-page > .app-header) {
    scroll-padding-top: var(--header-offset);
  }
  @media screen and (max-width: 639.98px) {
    body.ui-page:has(> .app-header):where(:has(#badgeuse-page)) {
      min-height: calc(100vh + var(--header-h) + var(--space-4));
      min-height: calc(100lvh + var(--header-h) + var(--space-4));
    }
  }
  .appnav {
    position: fixed;
    left: max(var(--space-3), var(--safe-left));
    right: max(var(--space-3), var(--safe-right));
    bottom: var(--appnav-offset);
    z-index: var(--z-appnav);
    padding: var(--appnav-pad);
    border: var(--border-subtle);
    border-radius: var(--radius-pill);
    background: var(--appnav-bg);
    -webkit-backdrop-filter: blur(var(--appnav-blur)) saturate(var(--appnav-saturate));
    backdrop-filter: blur(var(--appnav-blur)) saturate(var(--appnav-saturate));
    box-shadow: var(--shadow-appnav);
  }
  @supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .appnav {
      background: var(--color-surface);
    }
  }
  @media (prefers-reduced-transparency: reduce) {
    .appnav {
      background: var(--color-surface);
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
    }
  }
  .appnav__inner {
    display: flex;
    gap: var(--appnav-pad);
    max-width: var(--shell-max-w);
    margin: 0 auto;
  }
  .appnav__item {
    flex: 1 1 0;
    min-width: 0;
    min-height: var(--appnav-item-h);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-0-5);
    padding: 0 var(--space-0-5);
    border-radius: var(--radius-pill);
    color: var(--color-fg-muted);
    font-size: var(--text-2xs);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    transition: color var(--duration-fast) ease, background-color var(--duration-fast) ease;
  }
  @media (hover: hover) {
    .appnav__item:hover {
      color: var(--color-link);
      text-decoration: none;
    }
  }
  .appnav__item.is-active {
    background: var(--color-accent-subtle);
    color: var(--color-fg-accent);
    font-weight: var(--font-weight-semibold);
  }
  .appnav__icon {
    display: inline-flex;
  }
  .appnav__icon svg {
    width: var(--icon-lg);
    height: var(--icon-lg);
  }
  .appnav__label {
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body.ui-page:has(> .appnav) {
    padding-bottom: calc(var(--appnav-h-mobile) + var(--appnav-offset) + var(--space-4));
  }
  @media (min-width: 640px) {
    .appnav {
      top: var(--header-offset);
      left: 0;
      right: 0;
      bottom: auto;
      padding: var(--appnav-pad) var(--space-4);
      border: 0;
      border-bottom: var(--border-subtle);
      border-radius: 0;
      background: var(--color-surface);
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      box-shadow: none;
    }
    .appnav__inner {
      gap: var(--space-1);
      justify-content: center;
      padding-left: calc(var(--appnav-dock-left) * var(--header-dock));
      padding-right: calc(var(--appnav-dock-right) * var(--header-dock));
    }
    .appnav__item {
      flex: 0 0 auto;
      flex-direction: row;
      gap: var(--space-2);
      min-height: var(--tap-min);
      padding: 0 var(--space-4);
      font-size: var(--text-sm);
    }
    .appnav {
      transform: translateY(calc(-1 * var(--header-lift)));
    }
    .appnav.is-dock-tight.is-docked .appnav__item {
      gap: calc(var(--space-2) * (1 - var(--header-dock)));
    }
    .appnav.is-dock-tight.is-docked .appnav__label {
      max-width: calc(var(--appnav-label-max) * (1 - var(--header-dock)));
      opacity: calc(1 - 2 * var(--header-dock));
    }
    .appnav__icon svg {
      width: var(--icon-md);
      height: var(--icon-md);
    }
    body.ui-page:has(> .appnav) {
      padding-top: calc(var(--header-offset) + var(--appnav-bar-h));
      padding-bottom: 0;
    }
    html:has(> body.ui-page > .appnav) {
      scroll-padding-top: calc(var(--header-offset) + var(--appnav-bar-h));
    }
  }
  .hello {
    display: inline-flex;
    align-items: baseline;
    min-width: 0;
    max-width: 100%;
    color: var(--color-fg-accent);
    font-weight: var(--font-weight-regular);
    letter-spacing: 0;
    line-height: var(--leading-tight);
  }
  .hello__b {
    flex: none;
    display: inline-block;
    width: 1.2727em;
    height: 1.4954em;
    margin-bottom: -0.0919em;
    background: currentColor;
    -webkit-mask: url("/img/la-badgeuse-b.png") left bottom / 100% 100% no-repeat;
    mask: url("/img/la-badgeuse-b.png") left bottom / 100% 100% no-repeat;
  }
  .hello__rest {
    flex: none;
    margin-left: -0.02em;
    font-family: "Montserrat Alternates", var(--font-sans);
    font-weight: 200;
    letter-spacing: -0.1em;
  }
  .hello__name {
    min-width: 0;
    margin-left: 0.32em;
    overflow: hidden;
    color: var(--color-fg);
    font-size: 1.04em;
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--tracking-tight);
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .shell {
    max-width: var(--shell-max-w);
    margin: 0 auto;
    padding: var(--space-5) max(var(--space-4), var(--safe-right)) var(--space-8) max(var(--space-4), var(--safe-left));
  }
  .shell > * + * {
    margin-top: var(--space-5);
  }
  .page-header__eyebrow {
    margin-bottom: var(--space-1);
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
  }
  .page-header__title {
    font-size: var(--text-2xl);
    text-wrap: balance;
  }
  .page-header__sub {
    margin-top: var(--space-1);
    color: var(--color-fg-muted);
    font-size: var(--text-sm);
  }
  .page-header--actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--space-3);
    align-items: center;
  }
  .page-header--actions > :not(.page-header__actions) {
    grid-column: 1;
  }
  .page-header__actions {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    gap: var(--space-2);
  }
  .section-title {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-fg-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-caps);
  }
  .section-title + * {
    margin-top: var(--space-2);
  }
  .subnav {
    display: flex;
    gap: var(--space-5);
    margin-inline: calc(-1 * var(--space-4));
    padding-inline: var(--space-4);
    scroll-padding-inline: var(--space-4);
    border-bottom: var(--border-subtle);
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .subnav::-webkit-scrollbar {
    display: none;
  }
  .subnav__item {
    position: relative;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--tap-min);
    min-height: var(--control-h-sm);
    color: var(--color-fg-muted);
    font-size: var(--text-base);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
    text-decoration: none;
    scroll-snap-align: start;
    transition: color var(--duration-fast) ease;
  }
  @media (hover: hover) {
    .subnav__item:hover {
      color: var(--color-fg);
      text-decoration: none;
    }
  }
  .subnav__item.is-active {
    color: var(--color-fg);
    font-weight: var(--font-weight-semibold);
  }
  .subnav__item.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: var(--indicator-h);
    border-radius: var(--indicator-h);
    background: var(--color-accent);
  }
  .subnav__item:focus-visible {
    border-radius: var(--radius-sm);
    box-shadow: inset 0 0 0 var(--outline-w) var(--color-focus);
  }
  @media (min-width: 640px) {
    .subnav {
      margin-inline: 0;
      padding-inline: 0;
      scroll-padding-inline: 0;
    }
  }
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--tap-min);
    padding: var(--space-2) var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    background: var(--color-accent);
    color: var(--color-fg-on-accent);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) ease;
  }
  .btn:disabled:not([aria-busy="true"]) {
    opacity: var(--disabled-opacity);
    cursor: not-allowed;
  }
  .btn--secondary {
    background: var(--color-surface);
    border-color: var(--color-control-border);
    color: var(--color-fg);
  }
  .btn--ghost {
    background: transparent;
    color: var(--color-link);
  }
  .btn--danger {
    background: var(--color-danger);
  }
  @media (hover: hover) {
    .btn:hover {
      text-decoration: none;
    }
    .btn:not(:disabled):hover {
      background: var(--color-accent-hover);
    }
    .btn--secondary:not(:disabled):hover {
      background: var(--color-canvas);
      border-color: var(--color-control-border-hover);
    }
    .btn--ghost:not(:disabled):hover {
      background: var(--color-surface-subtle);
    }
    .btn--danger:not(:disabled):hover {
      background: var(--color-danger-hover);
    }
  }
  .btn:not(:disabled):active {
    background: var(--color-accent-pressed);
    transform: scale(var(--press-scale));
  }
  .btn--secondary:not(:disabled):active {
    background: var(--color-surface-muted);
  }
  .btn--ghost:not(:disabled):active {
    background: var(--color-accent-subtle);
  }
  .btn--danger:not(:disabled):active {
    background: var(--color-danger-hover);
  }
  .btn--sm {
    min-height: var(--control-h-sm);
    padding: var(--space-1) var(--space-3);
  }
  .btn--lg {
    min-height: var(--control-h-lg);
    padding: var(--space-3) var(--space-6);
    font-size: var(--text-base);
  }
  .btn--block {
    display: flex;
    width: 100%;
  }
  .btn--icon {
    flex: none;
    width: var(--tap-min);
    padding: 0;
  }
  .btn--lg.btn--icon {
    width: var(--control-h-lg);
  }
  .btn svg {
    flex: none;
    width: var(--icon-sm);
    height: var(--icon-sm);
  }
  .btn--icon svg, .btn--lg svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }
  .btn[aria-busy="true"] {
    cursor: progress;
    pointer-events: none;
  }
  .btn[aria-busy="true"]::before {
    content: "";
    flex: none;
    width: var(--icon-sm);
    height: var(--icon-sm);
    border: var(--outline-w) solid currentColor;
    border-right-color: transparent;
    border-radius: var(--radius-pill);
    animation: ui-spin 0.7s linear infinite;
  }
  .btn[aria-busy="true"] svg {
    display: none;
  }
  @keyframes ui-spin {
    to {
      transform: rotate(360deg);
    }
  }
  .btn-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
  }
  .field {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }
  .field + .field, .field + .check, .check + .field {
    margin-top: var(--space-4);
  }
  .field__label {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-fg-soft);
  }
  .field__hint {
    font-size: var(--text-xs);
    color: var(--color-fg-muted);
  }
  .field__error {
    font-size: var(--text-xs);
    color: var(--color-fg-danger);
  }
  .field__control {
    display: flex;
    gap: var(--space-2);
  }
  .field__control .input {
    flex: 1 1 auto;
    min-width: 0;
  }
  .input, .select, .textarea {
    width: 100%;
    min-height: var(--tap-min);
    padding: var(--space-2) var(--space-3);
    border: var(--border-control);
    border-radius: var(--radius-control);
    background: var(--color-surface);
    color: var(--color-fg);
    transition: border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
  }
  .input[type="date"], .input[type="time"] {
    appearance: none;
  }
  .input::-webkit-date-and-time-value {
    text-align: start;
  }
  .select {
    height: var(--tap-min);
  }
  .textarea {
    min-height: calc(var(--control-h-lg) * 1.5);
    resize: vertical;
  }
  @media (hover: hover) {
    .input:hover, .select:hover, .textarea:hover {
      border-color: var(--color-control-border-hover);
    }
  }
  .input:focus-visible, .select:focus-visible, .textarea:focus-visible {
    border-color: var(--color-accent);
  }
  .input[aria-invalid="true"], .select[aria-invalid="true"], .textarea[aria-invalid="true"] {
    border-color: var(--color-fg-danger);
  }
  .input[readonly] {
    background: var(--color-canvas);
    color: var(--color-fg-soft);
  }
  .input:disabled, .select:disabled, .textarea:disabled {
    background: var(--color-surface-muted);
    color: var(--color-fg-muted);
    cursor: not-allowed;
  }
  .input--lg {
    min-height: var(--control-h-lg);
    font-size: var(--text-lg);
  }
  .input--pin {
    text-align: center;
    font-size: var(--text-2xl);
    letter-spacing: 0.4em;
    font-variant-numeric: tabular-nums;
  }
  .check {
    --check-line: calc(var(--text-sm) * var(--leading-normal));
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    min-height: var(--tap-min);
    padding-block: calc((var(--tap-min) - var(--check-line)) / 2);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    color: var(--color-fg-soft);
    cursor: pointer;
  }
  .check input {
    flex: none;
    width: var(--icon-md);
    height: var(--icon-md);
    margin: calc((var(--check-line) - var(--icon-md)) / 2) 0 0;
    accent-color: var(--color-accent);
  }
  .check strong {
    font-weight: var(--font-weight-medium);
    color: var(--color-fg);
  }
  .check__hint {
    display: block;
    color: var(--color-fg-muted);
  }
  .form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-5);
  }
  .switch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    min-height: var(--tap-min);
    padding-block: var(--space-2);
    cursor: pointer;
  }
  .switch__text {
    min-width: 0;
    font-size: var(--text-sm);
    color: var(--color-fg-soft);
  }
  .switch__text strong {
    display: block;
    font-weight: var(--font-weight-medium);
    color: var(--color-fg);
  }
  .switch__hint {
    display: block;
    font-size: var(--text-xs);
    color: var(--color-fg-muted);
  }
  .switch__input, .switch__track {
    position: relative;
    flex: none;
    width: var(--switch-w);
    height: var(--switch-h);
    margin: 0;
    border-radius: var(--radius-pill);
    background: var(--color-control-border);
    transition: background-color var(--duration-base) ease;
  }
  .switch__input {
    appearance: none;
    cursor: pointer;
  }
  .switch__track {
    display: block;
  }
  .switch__input::before, .switch__track::before {
    content: "";
    position: absolute;
    top: calc((var(--switch-h) - var(--switch-knob)) / 2);
    left: calc((var(--switch-h) - var(--switch-knob)) / 2);
    width: var(--switch-knob);
    height: var(--switch-knob);
    border-radius: var(--radius-pill);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
    transition: transform var(--duration-base) ease;
  }
  .switch__input:checked, [aria-pressed="true"] > .switch__track {
    background: var(--color-accent);
  }
  .switch__input:checked::before, [aria-pressed="true"] > .switch__track::before {
    transform: translateX(calc(var(--switch-w) - var(--switch-h)));
  }
  .switch__input:disabled {
    opacity: var(--disabled-opacity);
    cursor: not-allowed;
  }
  .segmented {
    display: flex;
    gap: var(--space-0-5);
    padding: var(--space-0-5);
    border-radius: var(--radius-control);
    background: var(--color-surface-muted);
  }
  .segmented__item {
    flex: 1 1 0;
    min-width: 0;
    min-height: var(--tap-min);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 var(--space-3);
    border-radius: var(--radius-md);
    color: var(--color-fg-soft);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--duration-fast) ease, background-color var(--duration-fast) ease;
    gap: var(--space-2);
  }
  .segmented__item svg {
    flex: none;
    width: var(--icon-sm);
    height: var(--icon-sm);
  }
  @media (hover: hover) {
    .segmented__item:hover {
      color: var(--color-fg);
      text-decoration: none;
    }
  }
  .segmented__item.is-active, .segmented__item[aria-pressed="true"], .segmented__item[aria-selected="true"] {
    background: var(--color-surface);
    color: var(--color-fg-accent);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
  }
  label.segmented__item {
    position: relative;
    cursor: pointer;
    white-space: normal;
    text-align: center;
  }
  .segmented__item > input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .segmented__item:has(> input:checked) {
    background: var(--color-surface);
    color: var(--color-fg-accent);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
  }
  .segmented__item:has(> input:focus-visible) {
    box-shadow: var(--focus-ring), var(--shadow-sm);
  }
  .segmented__item:focus-visible {
    box-shadow: var(--focus-ring), var(--shadow-sm);
  }
  .theme-choice {
    display: grid;
    gap: var(--space-2);
  }
  .theme-choice__options .segmented__item {
    flex-direction: column;
    gap: var(--space-1);
    padding-block: var(--space-2);
  }
  .theme-choice__options .segmented__item svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }
  .theme-choice[aria-busy="true"] .segmented__item {
    cursor: progress;
  }
  .theme-choice__hint {
    color: var(--color-fg-muted);
    font-size: var(--text-sm);
  }
  .theme-choice__status {
    color: var(--color-fg-danger);
    font-size: var(--text-sm);
  }
  .theme-choice__status:empty {
    display: none;
  }
  .card {
    background: var(--color-surface);
    border: var(--border-subtle);
    border-radius: var(--radius-card);
    padding: var(--space-5);
  }
  .card__title {
    font-size: var(--text-lg);
    text-wrap: balance;
  }
  .card__title + * {
    margin-top: var(--space-3);
  }
  .card__footer {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: var(--border-subtle);
  }
  .disclosure {
    padding: 0;
  }
  .disclosure__toggle {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: var(--control-h-lg);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-card);
    cursor: pointer;
    list-style: none;
  }
  .disclosure__toggle::-webkit-details-marker {
    display: none;
  }
  .disclosure__title {
    font-size: var(--text-lg);
  }
  .disclosure__sub {
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-regular);
    color: var(--color-fg-muted);
  }
  .disclosure__chevron {
    display: inline-flex;
    margin-left: auto;
    color: var(--color-fg-faint);
    transition: transform var(--duration-fast) ease;
  }
  .disclosure__chevron svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }
  .disclosure[open] .disclosure__chevron {
    transform: rotate(90deg);
  }
  .disclosure__body {
    padding: 0 var(--space-5) var(--space-5);
  }
  .badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-0-5) var(--space-2);
    border-radius: var(--radius-pill);
    background: var(--color-surface-muted);
    color: var(--color-fg-soft);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    line-height: var(--leading-tight);
    white-space: nowrap;
  }
  .badge svg {
    flex: none;
    width: var(--icon-sm);
    height: var(--icon-sm);
  }
  .badge--success {
    background: var(--color-success-subtle);
    color: var(--color-fg-success);
  }
  .badge--warning {
    background: var(--color-warning-subtle);
    color: var(--color-fg-warning);
  }
  .badge--danger {
    background: var(--color-danger-subtle);
    color: var(--color-fg-danger);
  }
  .badge--info {
    background: var(--color-accent-subtle);
    color: var(--color-fg-accent);
  }
  .alert {
    padding: var(--space-3) var(--space-4);
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    background: var(--color-surface-muted);
    color: var(--color-fg-soft);
    font-size: var(--text-sm);
  }
  .alert__title {
    display: block;
  }
  .alert > p + p, .alert > p + form, .alert > form + form {
    margin-top: var(--space-2);
  }
  .alert--success {
    background: var(--color-success-subtle);
    color: var(--color-fg-success);
  }
  .alert--warning {
    background: var(--color-warning-subtle);
    color: var(--color-fg-warning);
  }
  .alert--danger {
    background: var(--color-danger-subtle);
    color: var(--color-fg-danger);
  }
  .alert--info {
    background: var(--color-surface-subtle);
    color: var(--color-fg-accent);
    border-color: var(--color-accent-subtle);
  }
  .list {
    background: var(--color-surface);
    border: var(--border-subtle);
    border-radius: var(--radius-card);
    overflow: hidden;
  }
  .list > li + li {
    border-top: var(--border-subtle);
  }
  .list__item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    min-height: var(--control-h-lg);
    padding: var(--space-3) var(--space-4);
    color: var(--color-fg);
    text-align: left;
    text-decoration: none;
  }
  @media (hover: hover) {
    a.list__item:hover, button.list__item:hover {
      background: var(--color-surface-subtle);
      text-decoration: none;
    }
  }
  a.list__item:active, button.list__item:active {
    background: var(--color-accent-subtle);
  }
  .list__item--solo {
    border: var(--border-subtle);
    border-radius: var(--radius-card);
    background: var(--color-surface);
  }
  .list__item--danger, .list__item--danger .list__icon {
    color: var(--color-fg-danger);
  }
  .list__item--danger .list__icon {
    background: var(--color-danger-subtle);
  }
  .list__item:focus-visible {
    box-shadow: inset 0 0 0 var(--outline-w) var(--color-focus);
  }
  .list__icon, .icon-tile {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: var(--list-icon-box);
    height: var(--list-icon-box);
    border-radius: var(--radius-md);
    background: var(--color-accent-subtle);
    color: var(--color-fg-accent);
  }
  .list__icon svg, .icon-tile svg, .list__chevron svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }
  .list__text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
  }
  .list__label {
    overflow-wrap: anywhere;
  }
  .list__sub {
    font-size: var(--text-xs);
    color: var(--color-fg-muted);
  }
  .list__meta {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-fg-soft);
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
  }
  .list__chevron {
    flex: none;
    color: var(--color-fg-faint);
  }
  .avatar {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--avatar);
    height: var(--avatar);
    border-radius: var(--radius-pill);
    --avatar-bg: var(--brand-100);
    background: var(--avatar-bg);
    color: var(--neutral-800);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0;
  }
  .avatar--sm {
    width: var(--avatar-sm);
    height: var(--avatar-sm);
    font-size: var(--text-2xs);
  }
  .avatar--lg {
    width: var(--avatar-lg);
    height: var(--avatar-lg);
    font-size: var(--text-sm);
  }
  .kv {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
  }
  .kv dt {
    color: var(--color-fg-muted);
  }
  .kv dd {
    font-variant-numeric: tabular-nums;
  }
  .empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-10) var(--space-4);
    text-align: center;
    color: var(--color-fg-muted);
  }
  .empty > p {
    margin: 0;
  }
  .empty__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--empty-icon-box);
    height: var(--empty-icon-box);
    margin-bottom: var(--space-2);
    border-radius: var(--radius-pill);
    background: var(--color-surface-muted);
    color: var(--color-fg-muted);
  }
  .empty__icon svg {
    width: var(--icon-lg);
    height: var(--icon-lg);
  }
  .empty__title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-fg);
    text-wrap: balance;
  }
  .empty__text {
    max-width: var(--measure);
    font-size: var(--text-sm);
  }
  .empty__action {
    margin-top: var(--space-3);
  }
  .empty--compact {
    align-items: flex-start;
    gap: var(--space-1);
    padding: var(--space-4) 0;
    text-align: left;
  }
  .empty--compact .empty__icon {
    display: none;
  }
  .empty--compact .empty__title {
    font-size: var(--text-base);
  }
  .notif {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: max-content;
    align-content: start;
    gap: var(--space-4);
  }
  .notif__group {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: max-content;
    gap: var(--space-2);
  }
  .notif__legend {
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
  }
  .notif__legend:not(:first-child) {
    margin-top: var(--space-3);
  }
  .notif [data-busy="1"] {
    cursor: progress;
  }
  .modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin: 0;
    padding: 0 max(var(--modal-gutter-x), var(--safe-right)) 0 max(var(--modal-gutter-x), var(--safe-left));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--modal-veil);
  }
  .modal--center {
    padding-block: max(var(--modal-gutter-y), var(--safe-top)) max(var(--modal-gutter-y), var(--safe-bottom));
    background: var(--modal-veil-soft);
    -webkit-backdrop-filter: blur(var(--modal-blur));
    backdrop-filter: blur(var(--modal-blur));
  }
  .install-guide {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding-left: var(--space-5);
    font-size: var(--text-base);
    list-style: decimal;
  }
  .install-guide > li::marker {
    color: var(--color-fg-muted);
    font-weight: var(--font-weight-semibold);
  }
  .install-guide__note {
    margin-top: var(--space-3);
    font-size: var(--text-sm);
    color: var(--color-fg-muted);
  }
  .modal-cap {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: var(--z-modal-cap);
    height: var(--modal-cap-h);
    background: var(--modal-veil-on-brand);
    pointer-events: none;
    visibility: hidden;
  }
  :root:has(.modal.ba-modal--open) .modal-cap {
    visibility: visible;
    transition: visibility 0s linear var(--modal-fade);
  }
  :root:has(.modal.ui:not(.ba-modal):not([hidden])) .modal-cap {
    visibility: visible;
    transition: none;
  }
  :root:has(.modal--center:not([hidden])) .modal-cap {
    background: var(--modal-veil-soft-on-brand);
  }
  :root:has(.modal--center:not([hidden])):has(.modal:not(.modal--center):not([hidden])) .modal-cap {
    background: var(--modal-veil-stacked-on-brand);
  }
  .modal-cap.modal-cap--canvas {
    background: var(--modal-veil-on-canvas);
  }
  :root:has(.modal--center:not([hidden])) .modal-cap.modal-cap--canvas {
    background: var(--modal-veil-soft-on-canvas);
  }
  .app-header.is-gone ~ .modal-cap {
    background: var(--modal-veil-on-canvas);
  }
  :root:has(.modal--center:not([hidden])) .app-header.is-gone ~ .modal-cap {
    background: var(--modal-veil-soft-on-canvas);
  }
  :root:has(.modal--center:not([hidden])):has(.modal:not(.modal--center):not([hidden])) .app-header.is-gone ~ .modal-cap {
    background: var(--modal-veil-stacked-on-canvas);
  }
  .modal__veil {
    position: absolute;
    inset: 0;
  }
  .modal__panel {
    position: relative;
    z-index: var(--z-modal-panel);
    display: flex;
    flex-direction: column;
    flex: none;
    width: min(var(--modal-w), 100%);
    margin-block: max(var(--modal-gutter-y), var(--safe-top)) max(var(--modal-gutter-y), var(--safe-bottom));
    --modal-surface: var(--color-surface);
    --modal-cap-top: 0px;
    --modal-cap-bottom: 0px;
    border-radius: var(--radius-modal);
    background: linear-gradient(var(--modal-surface), var(--modal-surface)) 0 var(--modal-cap-top) / 100% calc(100% - var(--modal-cap-top) - var(--modal-cap-bottom)) no-repeat;
    box-shadow: var(--shadow-lg);
  }
  .modal__panel:has(> .modal__header) {
    --modal-cap-top: var(--radius-modal);
  }
  .modal__panel:has(.modal__footer) {
    --modal-cap-bottom: var(--radius-modal);
  }
  .modal--center > .modal__panel {
    margin-block: auto;
  }
  .modal__panel--sm {
    width: min(var(--modal-sm-w), 100%);
  }
  .modal__panel--wide {
    width: min(var(--modal-wide-w), 100%);
  }
  .modal__panel[tabindex="-1"]:focus, .modal__panel[tabindex="-1"]:focus-visible {
    outline: none;
    box-shadow: var(--shadow-lg);
  }
  .modal__panel--info {
    --modal-surface: var(--color-accent-subtle);
    color: var(--color-fg-accent);
  }
  .modal__header {
    flex: none;
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-5) var(--space-4) var(--space-3) var(--space-5);
    position: sticky;
    top: var(--modal-cap-h);
    z-index: var(--z-raised);
    border-radius: var(--radius-modal) var(--radius-modal) 0 0;
    background: var(--modal-surface);
  }
  .modal__heading {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: var(--space-1);
  }
  .modal__eyebrow {
    margin-bottom: var(--space-1);
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
  }
  .modal__title {
    font-size: var(--modal-title);
    text-wrap: balance;
  }
  .modal__panel--info .modal__title {
    color: inherit;
  }
  .modal__sub {
    margin-top: var(--space-1);
    color: var(--color-fg-muted);
    font-size: var(--text-sm);
  }
  .modal__close {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--tap-min);
    height: var(--tap-min);
    border: var(--border-subtle);
    border-radius: var(--radius-pill);
    background: var(--color-surface);
    color: var(--color-fg-muted);
    box-shadow: var(--shadow-md);
    transition: background-color var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);
  }
  .modal__close svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }
  .modal__close:focus-visible {
    box-shadow: var(--focus-ring), var(--shadow-md);
  }
  @media (hover: hover) {
    .modal__close:hover {
      border-color: var(--color-border-strong);
      background: var(--color-surface-subtle);
      color: var(--color-fg);
    }
  }
  .modal__form {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }
  .modal__header--bar {
    align-items: center;
    padding-block: var(--space-3) var(--space-2);
  }
  .modal__header--bar .modal__heading {
    padding-top: 0;
  }
  .modal__header--bar .modal__eyebrow {
    margin-bottom: 0;
  }
  .modal__lead {
    max-width: var(--measure);
    margin-bottom: var(--space-4);
    color: var(--color-fg-muted);
    font-size: var(--text-sm);
  }
  .modal__body {
    flex: 1 1 auto;
    padding: var(--space-2) var(--space-5) var(--space-5);
    isolation: isolate;
  }
  .modal__body--note p {
    text-align: justify;
    text-align-last: left;
  }
  .modal__panel--dense > .modal__header {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }
  .modal__panel--dense > .modal__body {
    padding-inline: var(--space-3);
  }
  .modal__panel > .modal__close {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    z-index: var(--z-raised);
  }
  .modal__panel > .modal__close + .modal__body {
    padding-top: calc(var(--tap-min) + 2 * var(--space-3));
  }
  .modal__footer {
    flex: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-5) var(--space-4);
    border-top: var(--border-subtle);
    position: sticky;
    bottom: var(--safe-bottom);
    z-index: var(--z-raised);
    border-radius: 0 0 var(--radius-modal) var(--radius-modal);
    background: var(--modal-surface);
  }
  .modal__footer--reversed {
    flex-direction: row-reverse;
    justify-content: flex-start;
  }
  .modal__panel--confirm {
    padding: var(--space-6) var(--space-5) var(--space-5);
    text-align: center;
    animation: modal-confirm-pop var(--confirm-pop) ease;
  }
  .modal__text {
    font-size: var(--text-lg);
    color: var(--color-fg);
    text-wrap: balance;
  }
  .modal__actions {
    display: flex;
    flex-direction: column-reverse;
    gap: var(--space-2);
    margin-top: var(--space-5);
  }
  @keyframes modal-confirm-pop {
    from {
      opacity: 0;
      transform: translateY(var(--confirm-rise)) scale(var(--press-scale));
    }
    to {
      opacity: 1;
      transform: none;
    }
  }
  .modal.ba-modal {
    opacity: 0;
    transition: opacity var(--modal-fade) linear;
  }
  .modal.ba-modal > .modal__panel {
    opacity: 0;
    transform: translateY(calc(-1 * var(--modal-drop)));
    transition: opacity var(--modal-move) linear, transform var(--modal-move) ease-out;
  }
  .modal.ba-modal--open, .modal.ba-modal--open > .modal__panel {
    opacity: 1;
  }
  .modal.ba-modal--open > .modal__panel {
    transform: none;
  }
  @media (max-width: 639.98px) {
    .modal--sheet {
      padding: 0;
    }
    .modal--sheet > .modal__panel {
      width: 100%;
      margin: auto 0 0;
      padding-bottom: var(--safe-bottom);
      border-radius: var(--radius-modal) var(--radius-modal) 0 0;
    }
    .modal--sheet.ba-modal:not(.ba-modal--open) > .modal__panel {
      transform: translateY(var(--modal-drop));
    }
  }
  @media (min-width: 640px) {
    .modal__header {
      padding: var(--space-6) var(--space-5) var(--space-3) var(--space-6);
    }
    .modal__body {
      padding: var(--space-2) var(--space-6) var(--space-6);
    }
    .modal__header--bar {
      padding-block: var(--space-4) var(--space-2);
    }
    .modal__panel--dense > .modal__header {
      padding-left: var(--space-6);
      padding-right: var(--space-5);
    }
    .modal__panel--dense > .modal__body {
      padding-inline: var(--space-6);
    }
    .modal__panel > .modal__close + .modal__body {
      padding-top: calc(var(--tap-min) + 2 * var(--space-3));
    }
    .modal__footer {
      padding: var(--space-3) var(--space-6) var(--space-5);
    }
    .modal__actions {
      flex-direction: row;
      justify-content: center;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .modal.ba-modal, .modal.ba-modal > .modal__panel {
      transition: none;
    }
    .modal__panel--confirm {
      animation: none;
    }
  }
  .ba-toast-container {
    all: revert;
    position: fixed;
    top: calc(var(--header-offset) + var(--space-2));
    right: max(var(--space-3), var(--safe-right));
    left: max(var(--space-3), var(--safe-left));
    z-index: var(--z-toast);
    transform: translateY(calc(-1 * var(--header-lift)));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    pointer-events: none;
  }
  :root.is-header-snapping .ba-toast-container {
    transition: transform var(--duration-header) var(--ease-header);
  }
  .ba-toast, .ba-toast * {
    all: revert;
    box-sizing: border-box;
  }
  .ba-toast {
    width: min(var(--toast-w), 100%);
    padding: var(--space-4);
    border: var(--border-subtle);
    border-radius: var(--radius-control);
    background: var(--color-surface);
    color: var(--color-fg-accent);
    font-family: var(--font-sans);
    font-size: var(--text-lg);
    line-height: var(--leading-normal);
    box-shadow: var(--shadow-lg);
    cursor: pointer;
    pointer-events: auto;
    animation: toast-in var(--toast-in) var(--ease-out-soft);
  }
  .ba-toast--success {
    color: var(--color-fg-success);
  }
  .ba-toast--warning {
    color: var(--color-fg-warning);
  }
  .ba-toast--danger {
    color: var(--color-fg-danger);
  }
  .ba-toast button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--tap-min);
    margin-top: var(--space-3);
    padding: 0 var(--space-5);
    border: 0;
    border-radius: var(--radius-control);
    background: var(--color-accent);
    color: var(--color-fg-on-accent);
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
  }
  @media (hover: hover) {
    .ba-toast button:hover {
      background: var(--color-accent-hover);
    }
  }
  .ba-toast button:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
  }
  @keyframes toast-in {
    from {
      opacity: 0;
      transform: translateY(calc(-1 * var(--toast-rise)));
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .ba-toast {
      animation: none;
    }
  }
  .hint {
    color: var(--color-fg-muted);
  }
  .hint__panel {
    max-width: min(var(--modal-sm-w), calc(100vw - 2 * var(--space-4)));
    padding: var(--space-4);
    border: var(--border-subtle);
    border-radius: var(--radius-card);
    background: var(--color-surface);
    color: var(--color-fg);
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    box-shadow: var(--shadow-lg);
  }
  .hint__text {
    text-wrap: pretty;
  }
  .hint__panel::backdrop {
    background: var(--modal-veil-soft);
  }
  .hint__close {
    margin-top: var(--space-3);
  }
  @supports not selector(:popover-open) {
    .hint, .hint__close {
      display: none;
    }
    .hint__panel {
      padding: var(--space-2) var(--space-3);
      border: 0;
      background: var(--color-surface-subtle);
      color: var(--color-fg-soft);
      box-shadow: none;
    }
  }
  .zone-map {
    position: relative;
    height: var(--zone-map-h);
    border: var(--border-subtle);
    border-radius: var(--radius-control);
    overflow: hidden;
    background: var(--color-surface-muted);
    user-select: none;
  }
  .zone-map__tiles {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: var(--color-surface-muted);
  }
  .zone-map__pin {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: var(--z-raised);
    width: var(--zone-pin);
    height: var(--zone-pin);
    border: var(--outline-w) solid var(--color-surface);
    border-radius: var(--radius-pill);
    background: var(--color-danger);
    box-shadow: var(--shadow-md);
    transform: translate(-50%, -50%);
    pointer-events: none;
  }
  .zone-map__zoom {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    z-index: var(--z-raised);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }
  .zone-map__zoom-btn {
    font-size: var(--text-xl);
    line-height: var(--leading-tight);
  }
  .zone-map__attribution {
    position: absolute;
    right: var(--space-1);
    bottom: var(--space-1);
    z-index: var(--z-raised);
    padding: 0 var(--space-1);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    pointer-events: none;
  }
  .lookup {
    position: relative;
  }
  .suggestions {
    position: absolute;
    top: calc(100% + var(--space-1));
    right: 0;
    left: 0;
    z-index: var(--z-dropdown);
    max-height: var(--suggest-max-h);
    padding: var(--space-1);
    overflow-y: auto;
    border: var(--border-subtle);
    border-radius: var(--radius-control);
    background: var(--color-surface);
    box-shadow: var(--shadow-lg);
  }
  .suggestions > li {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: var(--tap-min);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    cursor: pointer;
  }
  .suggestions > li > strong {
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
    overflow-wrap: anywhere;
  }
  .suggestions > li > span {
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    overflow-wrap: anywhere;
  }
  .suggestions > li.is-active {
    background: var(--color-accent-subtle);
  }
  @media (hover: hover) {
    .suggestions > li:hover {
      background: var(--color-accent-subtle);
    }
  }
  .copy-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    min-width: 0;
  }
  .copy-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: var(--chip-h);
    padding: 0 var(--space-1) 0 var(--space-3);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-fg);
    font: inherit;
    font-size: var(--text-sm);
    line-height: var(--leading-tight);
    text-align: left;
    cursor: copy;
  }
  .copy-chip__label {
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
  }
  .copy-chip__value {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    font-weight: var(--font-weight-semibold);
  }
  .copy-chip__icon {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: var(--icon-lg);
    height: var(--icon-lg);
    border-radius: var(--radius-sm);
    background: var(--color-surface-muted);
    color: var(--color-fg-muted);
  }
  .copy-chip__icon svg {
    width: var(--icon-sm);
    height: var(--icon-sm);
  }
  .copy-chip__icon svg + svg, .copy-chip[data-copied] .copy-chip__icon svg:first-child {
    display: none;
  }
  .copy-chip[data-copied] .copy-chip__icon svg + svg {
    display: block;
  }
  .copy-chip[data-copied] {
    border-color: var(--color-fg-success);
    background: var(--color-success-subtle);
  }
  .copy-chip[data-copied] .copy-chip__icon {
    background: var(--color-fg-success);
    color: var(--color-surface);
  }
  @media (hover: hover) {
    .copy-chip:not(.copy-chip--static):hover {
      border-color: var(--color-accent);
      background: var(--color-surface-subtle);
    }
    .copy-chip:not(.copy-chip--static):hover .copy-chip__icon {
      color: var(--color-link);
    }
  }
  .copy-chip:not(.copy-chip--static):active {
    background: var(--color-accent-subtle);
  }
  .copy-chip--static {
    padding-right: var(--space-3);
    border-style: dashed;
    cursor: default;
  }
  @media (pointer: coarse) {
    .copy-chip {
      min-height: var(--tap-min);
    }
  }
  .title-with-icon {
    display: flex;
    align-items: center;
    gap: var(--space-3);
  }
  .switch > .icon-tile + .switch__text {
    flex: 1 1 auto;
  }
  .manual, .install, .bootstrap, .receipt, .access {
    max-width: var(--solo-max-w);
  }
  .manual__form > * + * {
    margin-top: var(--space-4);
  }
  .manual__when {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
  }
  .manual__when > .field {
    margin-top: 0;
  }
  .manual__legal, .receipt__legal {
    color: var(--color-fg-muted);
    font-size: var(--text-xs);
    text-align: center;
  }
  .install__card > * + * {
    margin-top: var(--space-4);
  }
  .install__status {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
  }
  .install__status > svg {
    flex: none;
    width: var(--icon-sm);
    height: var(--icon-sm);
    margin-top: var(--space-0-5);
  }
  .install__status.install-status--ok {
    border-color: transparent;
    background: var(--color-success-subtle);
    color: var(--color-fg-success);
  }
  .install__status.install-status--warning {
    border-color: transparent;
    background: var(--color-warning-subtle);
    color: var(--color-fg-warning);
  }
  .install__steps {
    display: none;
    padding: var(--space-4);
    border-radius: var(--radius-control);
    background: var(--color-surface-subtle);
  }
  .install__steps.is-active {
    display: block;
  }
  .install__steps--ok {
    background: var(--color-success-subtle);
  }
  .install__steps--warning {
    background: var(--color-warning-subtle);
  }
  .install__steps > * + * {
    margin-top: var(--space-3);
  }
  .install__steps-title {
    font-size: var(--text-base);
    font-weight: var(--font-weight-semibold);
  }
  .install__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-left: var(--space-5);
    list-style: decimal;
  }
  .install__glyph {
    display: inline-block;
    width: var(--icon-sm);
    height: var(--icon-sm);
    vertical-align: text-bottom;
  }
  .install__actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }
  @media (min-width: 640px) {
    .install__actions {
      flex-direction: row;
      justify-content: flex-end;
    }
  }
  .install__secure > * + * {
    margin-top: var(--space-3);
  }
  .bootstrap__card > * + *, .bootstrap__error > * + * {
    margin-top: var(--space-3);
  }
  .bootstrap__env {
    padding-left: var(--space-5);
    list-style: disc;
  }
  .bootstrap__lead {
    color: var(--color-fg-soft);
    font-size: var(--text-sm);
  }
  .bootstrap__actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }
  @media (min-width: 640px) {
    .bootstrap__actions {
      flex-direction: row;
    }
  }
  .receipt__card > * + * {
    margin-top: var(--space-3);
  }
  .receipt__note {
    color: var(--color-fg-muted);
    font-size: var(--text-sm);
  }
  .access__card > p + p {
    margin-top: var(--space-3);
  }
  .access__note {
    color: var(--color-fg-soft);
    font-size: var(--text-sm);
  }
  .access__note + .field {
    margin-top: var(--space-4);
  }
  .receipt__title {
    font-size: var(--text-lg);
    font-weight: var(--font-weight-semibold);
  }
  .receipt__grid {
    font-family: var(--font-mono);
    overflow-x: auto;
  }
  .receipt__values {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .receipt__value-row {
    display: grid;
    gap: var(--space-2);
    padding-block: var(--space-3);
    border-top: var(--border-subtle);
  }
  .receipt__value-row:first-child {
    border-top: 0;
  }
  .receipt__who {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: baseline;
    min-width: 0;
  }
  .receipt__matricule {
    color: var(--color-fg-muted);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
  }
  .receipt__value {
    display: inline-flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }
  .receipt__announced {
    color: var(--color-fg-warning);
    font-size: var(--text-xs);
  }
  .receipt__status {
    color: var(--color-fg-success);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-medium);
  }
  .receipt__status:empty {
    display: none;
  }
  .receipt__list {
    margin: var(--space-2) 0 0;
    padding-left: var(--space-5);
  }
  :root:has(body > .app-header) {
    --ba-navbar-h: var(--header-h);
    --ba-navbar-pad: 0px;
  }
  :root:has(body > .appnav) {
    --ba-appnav-h: var(--appnav-h-mobile);
    --ba-appnav-space-top: 0px;
    --ba-appnav-space-bottom: calc(var(--appnav-h-mobile) + var(--appnav-offset));
  }
  @media (min-width: 640px) {
    :root:has(body > .appnav) {
      --ba-appnav-h: var(--appnav-bar-h);
      --ba-appnav-space-top: var(--appnav-bar-h);
      --ba-appnav-space-bottom: 0px;
    }
  }
}
@layer utilities;
