@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-ext-400-italic-acf553fc81d4bff483f8092d53162c3d.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-400-italic-efee2d080d7bebdd2e0aeb2e030813a0.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: 'Lato';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-ext-700-italic-b716274bfcfd6d52a53d963ad4cd0928.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-700-italic-865e46af816320c9f32234e8968558d0.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: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-ext-400-normal-633f8feda2188d767d2396652da17377.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-400-normal-e1b3b5908c9cf23dfb2b9c52b9a023ab.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: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-ext-700-normal-33c906549bd61edf700e9a28132f25f8.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/lato/lato-latin-700-normal-de69cf9e514df447d1b0bb16f49d2457.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;
}
:root { --app-font-family: Lato, "Segoe UI", Arial, sans-serif; --bs-body-font-family: var(--app-font-family); }
body { font-family: var(--app-font-family); }
/* Shared screen palette. Printed documents retain a white paper background. */
:root { color-scheme: light; }
.theme-control { display: inline-flex; align-items: center; gap: 6px; margin: 0; font: 600 12px/1.4 Lato, 'Segoe UI', sans-serif; color: #42516a; white-space: nowrap; }
.theme-segments { display: inline-flex; align-items: center; gap: 3px; padding: 4px; background: #edf1f7; border: 1px solid #dce3ed; border-radius: 24px; }
.theme-control .theme-segment { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; min-height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #637083; cursor: pointer; transition: background-color .15s, color .15s, box-shadow .15s; }
.theme-control .theme-segment svg { width: 17px; height: 17px; }
.theme-control .theme-segment:hover { background: #dce6f5; color: #1351b4; }
.theme-control .theme-segment[aria-pressed=true] { background: #fff; color: #1351b4; box-shadow: 0 1px 5px #18365c26; }
.theme-control .theme-segment:focus-visible { outline: 3px solid #c2850c; outline-offset: 2px; }
html[data-theme=dark] .theme-segments { background: #111c2a; border-color: #3e5069; }
html[data-theme=dark] .theme-control .theme-segment { color: #b1bfd2; }
html[data-theme=dark] .theme-control .theme-segment:hover { color: #d7e7ff; background: #263e60; }
html[data-theme=dark] .theme-control .theme-segment[aria-pressed=true] { background: #304e76; color: #e1edff; box-shadow: 0 1px 5px #0004; }
@media (prefers-reduced-motion: reduce) { .theme-control .theme-segment { transition: none; } }
.theme-control-fallback { position: fixed; right: 16px; top: 16px; z-index: 1040; padding: 5px 10px; background: #fff; border: 1px solid #c5cfdd; border-radius: 8px; }
html[data-theme=dark] { color-scheme: dark; --night-bg: #101722; --night-panel: #192332; --night-raised: #212e40; --night-border: #3e5069; --night-text: #e5ecf5; --night-muted: #b1bfd2; --night-link: #9fc5ff;
  --bs-body-bg: #101722; --bs-body-color: #e5ecf5; --bs-secondary-color: #b1bfd2; --bs-tertiary-color: #b1bfd2; --bs-border-color: #3e5069; --bs-tertiary-bg: #212e40; --bs-secondary-bg: #212e40; --bs-emphasis-color: #f3f6fc; --bs-link-color: #9fc5ff; --bs-link-hover-color: #c5ddff; }
html[data-theme=dark] body { background: var(--night-bg) !important; color: var(--night-text) !important; }
html[data-theme=dark] .admin-shell { --admin-border: var(--night-border); --admin-muted: var(--night-muted); --admin-blue: var(--night-link); --admin-navy: #c5ddff; }
html[data-theme=dark] .public-home { --home-ink: var(--night-text); --home-muted: var(--night-muted); --home-border: var(--night-border); --home-blue: var(--night-link); --home-navy: #c5ddff; }
html[data-theme=dark] :is(h1,h2,h3,h4,h5,h6,legend,label,dt,dd) { color: var(--night-text); }
html[data-theme=dark] :is(a,.text-primary,.text-info,.link-primary) { color: var(--night-link); }
html[data-theme=dark] a:hover { color: #c5ddff; }
html[data-theme=dark] :is(.text-muted,.text-secondary,.text-body-secondary,.text-black-50,.small.text-muted) { color: var(--night-muted) !important; }
html[data-theme=dark] :is(.text-dark,.text-black,.text-body) { color: var(--night-text) !important; }
html[data-theme=dark] :is(.bg-white,.bg-light,.bg-body,.bg-body-tertiary) { background-color: var(--night-panel) !important; }
html[data-theme=dark] :is(.card,.card-header,.card-footer,.modal-content,.modal-header,.modal-footer,.offcanvas,.dropdown-menu,.list-group-item,.accordion-item,.accordion-button,.popover,.breadcrumb) { background-color: var(--night-panel) !important; color: var(--night-text) !important; border-color: var(--night-border) !important; }
html[data-theme=dark] :is(.dropdown-item,.dropdown-header,.offcanvas-title,.modal-title,.card-title,.form-label,.form-check-label) { color: var(--night-text) !important; }
html[data-theme=dark] :is(.dropdown-item:hover,.dropdown-item:focus,.list-group-item-action:hover,.accordion-button:not(.collapsed)) { background: var(--night-raised) !important; color: var(--night-link) !important; }
html[data-theme=dark] :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]),select,textarea,.form-control,.form-select,.ts-control,.ts-dropdown,.ts-dropdown-content,.choices__inner,.choices__list--dropdown) { background-color: #111c2a !important; color: var(--night-text) !important; border-color: #61748e !important; }
html[data-theme=dark] :is(input,textarea)::placeholder { color: #a3b2c7 !important; opacity: 1; }
html[data-theme=dark] :is(input:disabled,select:disabled,textarea:disabled,input[readonly]) { background-color: #263244 !important; color: var(--night-muted) !important; }
html[data-theme=dark] .form-floating > label::after { background: transparent !important; }
html[data-theme=dark] .form-floating > input::placeholder { color: transparent !important; }
html[data-theme=dark] .breadcrumb :is(.breadcrumb-item,a,i,span) { color: var(--night-link) !important; }
html[data-theme=dark] .breadcrumb .breadcrumb-item.active { color: var(--night-text) !important; }
html[data-theme=dark] :is(.ts-control .item,.ts-dropdown .option,.ts-dropdown .no-results) { color: var(--night-text) !important; }
html[data-theme=dark] :is(.ts-dropdown .active,.ts-control > .item,.choices__item--selectable.is-highlighted) { background: #263e60 !important; color: #d7e7ff !important; }
html[data-theme=dark] :is(.form-control:focus,.form-select:focus) { border-color: var(--night-link) !important; }
html[data-theme=dark] :is(.form-control[aria-invalid=true],.is-invalid) { border-color: #ff9696 !important; }
html[data-theme=dark] .table { --bs-table-bg: var(--night-panel); --bs-table-color: var(--night-text); --bs-table-striped-bg: #1e2b3c; --bs-table-striped-color: var(--night-text); --bs-table-hover-bg: #26384f; --bs-table-hover-color: var(--night-text); --bs-table-border-color: var(--night-border); color: var(--night-text); }
html[data-theme=dark] :is(.table-light,.table-primary,.table-dark) { --bs-table-bg: #25354a; --bs-table-color: var(--night-text); --bs-table-border-color: var(--night-border); }
html[data-theme=dark] :is(.table th,.table td,.dt-info,.dt-length,.dt-search,.dataTables_info) { color: var(--night-text) !important; }
html[data-theme=dark] .page-link { background: var(--night-panel); color: var(--night-link); border-color: var(--night-border); }
html[data-theme=dark] .page-item.active .page-link { background: #245da6; color: #fff; }
html[data-theme=dark] :is(.btn-primary,.admin-register-action,.action-button:not(.secondary),.primary-service) { background: #245da6 !important; border-color: #7eb2fb !important; color: #fff !important; }
html[data-theme=dark] :is(.btn-primary:hover,.admin-register-action:hover,.action-button:not(.secondary):hover,.primary-service:hover) { background: #2c6cbd !important; color: #fff !important; }
html[data-theme=dark] :is(.btn-outline-primary,.btn-outline-info,.btn-light,.action-button.secondary) { color: var(--night-link) !important; border-color: #7498c8 !important; background: transparent !important; }
html[data-theme=dark] :is(.btn-outline-danger,.cancel-button,.text-danger,.invalid-feedback) { color: #ffabab !important; }
html[data-theme=dark] .btn-outline-danger { border-color: #d77980; }
html[data-theme=dark] .btn-outline-danger:hover { background: #6b2934; color: #fff !important; }
html[data-theme=dark] .btn-outline-primary:hover { background: #263e60 !important; }
html[data-theme=dark] .btn-close { filter: invert(1) grayscale(1) brightness(1.7); }
html[data-theme=dark] :is(.alert-info,.inline-note,.logout-notice,.result-success) { background: #1c3551 !important; color: #d2e6ff !important; border-color: #668fc3 !important; }
html[data-theme=dark] :is(.alert-warning,.caps-lock-notice,.equipment-mode.demo) { background: #44371f !important; color: #ffe0a0 !important; border-color: #a8894e !important; }
html[data-theme=dark] :is(.alert-danger,.form-alert,.login-feedback,.result-error) { background: #462831 !important; color: #ffbabc !important; border-color: #c77f86 !important; }
html[data-theme=dark] :is(.alert-success,.success-symbol,.status-completed,.equipment-status.connected) { background: #1d3c31 !important; color: #a5e2bc !important; border-color: #629e79 !important; }
html[data-theme=dark] .swal2-popup { background: var(--night-panel); color: var(--night-text); border: 1px solid var(--night-border); }
html[data-theme=dark] :is(.swal2-title,.swal2-html-container,.swal2-input-label) { color: var(--night-text); }
html[data-theme=dark] .swal2-validation-message { background: #462831; color: #ffbabc; }
html[data-theme=dark] .swal2-loader { border-color: var(--night-link) transparent; }
/* Fixed navigation, dashboard, detail screens and reception. */
html[data-theme=dark] .admin-shell :is(.admin-topbar,.admin-sidebar,.admin-icon-button,.admin-date,.dashboard-panel,.dashboard-metric,.compact-metrics,.visit-panel,.equipment-card,.equipment-tool,.suggestions-list,.employee-summary) { background: var(--night-panel) !important; color: var(--night-text); border-color: var(--night-border); }
html[data-theme=dark] .admin-shell :is(.admin-brand,.admin-user-button,.admin-page-heading h1,.dashboard-panel-heading h2,.dashboard-metric strong,.turnstile-collapse,.detail-field dd,.employee-summary h2,.employee-collapse,.visit-panel-heading h2,.visit-subheading h3,.equipment-name,.fc-list-event-title a) { color: var(--night-text) !important; }
html[data-theme=dark] .admin-shell .admin-nav .nav-link { color: #c1cfe2 !important; }
html[data-theme=dark] .admin-shell :is(.admin-nav .nav-link.active,.admin-nav .nav-link:hover,.admin-icon-button:hover,.admin-avatar,.visit-section-icon,.detail-avatar,.employee-avatar,.equipment-icon,.turnstile-heading-icon,.visitor-type.existing) { background: #263e60 !important; color: var(--night-link) !important; }
html[data-theme=dark] .admin-shell :is(.sidebar-heading,.nav-section-label,.sidebar-footer,.admin-nav .nav-link > .bi,.detail-field dt,.visit-field-hint,.optional-label,.visitor-type,.equipment-number,.equipment-capability,.turnstile-summary,.employee-summary p,.employee-photo-field small) { color: var(--night-muted) !important; }
html[data-theme=dark] :is(.detail-field dd:empty::after,.visit-registration label) { color: var(--night-muted); }
html[data-theme=dark] :is(.detail-status,.equipment-mode,.equipment-status,.visitor-type) { background: #263e60 !important; color: #c5ddff !important; }
html[data-theme=dark] :is(.employee-status,.detail-status[data-status=COMPLETED],.detail-status[data-status=IN_PERSON]) { background: #1d3c31 !important; color: #a5e2bc !important; }
html[data-theme=dark] :is(.employee-status.is-inactive,.detail-status[data-status=NO_SHOW],.detail-status[data-status=CANCELED],.status-canceled) { background: #462831 !important; color: #ffbabc !important; }
html[data-theme=dark] .admin-shell .fc { --fc-border-color: var(--night-border); --fc-page-bg-color: var(--night-panel); --fc-neutral-bg-color: #212e40; --fc-neutral-text-color: var(--night-muted); --fc-today-bg-color: #213653; --fc-list-event-hover-bg-color: #26384f; --fc-button-bg-color: #245da6; --fc-button-border-color: #7498c8; --fc-button-hover-bg-color: #2c6cbd; --fc-button-active-bg-color: #174478; }
html[data-theme=dark] .admin-shell :is(.fc-list-empty,.fc-list-day-cushion) { background: var(--night-raised) !important; color: var(--night-text) !important; }
/* Public portal, booking, consultation and sign-in. */
html[data-theme=dark] .public-home :is(.site-header,.service-card:not(.primary-service),.booking-panel,.login-card,.appointment-result,.empty-results,.cancel-dialog,.site-footer) { background: var(--night-panel) !important; color: var(--night-text); border-color: var(--night-border); }
html[data-theme=dark] .public-home :is(.institutional-bar,.welcome,.stepper,.booking-help,.review-summary,.result-card-actions,.help-section,.faq-section) { background: var(--night-raised) !important; border-color: var(--night-border); }
html[data-theme=dark] .public-home :is(.utility-content > span,.welcome-copy > p,.booking-help li,.help-divider p,.login-intro > p,.public-service-note p,.result-details .created-date,.lookup-placeholder,.stepper li) { color: var(--night-muted); }
html[data-theme=dark] .public-home :is(.service-icon,.login-icon,.empty-symbol,.appointment-status,.stepper .completed .step-badge) { background: #263e60; color: var(--night-link); }
html[data-theme=dark] .public-home :is(.confirmation-panel h2,.success-symbol) { color: #a5e2bc; }
html[data-theme=dark] .public-home .primary-service :is(strong,span) { color: #fff; }
html[data-theme=dark] :is(.qr-code,#qrcode) { background: #fff; padding: 8px; box-sizing: content-box; border-radius: 4px; }
html[data-theme=dark] dialog { background: var(--night-panel); color: var(--night-text); border-color: var(--night-border); }
html[data-theme=dark] dialog::backdrop { background: #000a; }
html[data-theme=dark] .public-home :is(.offline-notice,.help-card,#cancelDialog) { background: var(--night-panel) !important; color: var(--night-text); border-color: var(--night-border); }
html[data-theme=dark] .public-home :is(.support-section,.preparation-note,.step-number) { background: var(--night-raised); }
html[data-theme=dark] .public-home :is(.faq-answer,.preparation-note p) { color: var(--night-muted); }
html[data-theme=dark] .public-home .action-button.danger { background: #a83242 !important; border-color: #f19aa6 !important; }
html[data-theme=dark] .public-home .cancel-symbol { background: #462831; color: #ffbabc; }
html[data-theme=dark] .visit-registration :is(.visit-form-actions,.photo-frame,.photo-frame > span,.camera-placeholder,#suggestions) { background: var(--night-panel) !important; color: var(--night-muted); border-color: var(--night-border); }
html[data-theme=dark] .visit-registration :is(.visit-button:not(.primary),#suggestions button) { background: var(--night-raised); color: var(--night-link); border-color: var(--night-border); }
html[data-theme=dark] .visit-registration .visit-button.primary { background: #245da6; border-color: #7eb2fb; color: #fff; }
html[data-theme=dark] .visit-registration :is(.visit-message,[aria-invalid=true]) { border-color: #ff9696 !important; }
html[data-theme=dark] .visit-registration .visit-message { background: #462831; color: #ffbabc; }
html[data-theme=dark] .visit-registration :is(.visit-intro,.photo-caption,.visit-cancel,.visit-subheading p) { color: var(--night-muted); }
html[data-theme=dark] .admin-shell #calendar { --fc-border-color: var(--night-border); --fc-today-bg-color: #213653; --fc-button-bg-color: #245da6; --fc-button-border-color: #7498c8; --fc-button-text-color: #fff; --fc-button-hover-bg-color: #2c6cbd; --fc-button-active-bg-color: #174478; }
html[data-theme=dark] .admin-shell .fc :is(a,.fc-toolbar-title,.fc-timegrid-slot-label) { color: var(--night-text); }
html[data-theme=dark] .admin-shell :is(.admin-notification,.notifications-empty strong) { color: var(--night-text); }
html[data-theme=dark] .admin-shell .admin-notification.unread { background: #263e60; }
html[data-theme=dark] img[src$="/user-default.png"] { background: #e5ecf5; padding: 6px; border-radius: 8px; }
html[data-theme=dark] .theme-control { color: var(--night-muted); }
html[data-theme=dark] .theme-control-fallback { background: var(--night-panel); border-color: var(--night-border); }
@media (max-width: 575px) { .theme-control > span { display: none; } .theme-segments { gap: 1px; padding: 3px; } .theme-control .theme-segment { width: 28px; height: 32px; flex-basis: 28px; } .admin-shell .admin-topbar-actions { gap: 6px; } .admin-shell .admin-topbar-inner { gap: 8px; } }
@media print { .theme-control, .theme-control-fallback { display: none !important; } html[data-theme=dark] body { background: #fff !important; color: #000 !important; } }
