@font-face {
  font-family: 'Source Sans 3';
  src: url('vendor/fonts/source-sans-3/SourceSans3-Variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('vendor/fonts/source-sans-3/SourceSans3-Italic-Variable.ttf') format('truetype');
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
}

body.app-theme {
  --session-mint: #7fcfc6;
  --session-secondary: #58615e;
  --primary-color: #7fcfc6;
  --primary-dark: #29403c;
  --primary-light: #e3f3ef;
  --text-main: #1a1a1f;
  --text-muted: #58615e;
  --glass-border: #d7ddda;
  --glass-bg: #f7f6f4;
  --glass-strong: #e3f3ef;
  background: #f1f0ee;
  background-image: none;
  color: #1a1a1f;
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
}
body.app-theme::before { background: transparent; background-image: none; }
body.app-theme :where(h1, h2, h3, h4, p, label, span, small, div, section, main, aside, header, form, fieldset, legend, a, button, input, select, textarea, th, td, li) {
  font-family: inherit;
  letter-spacing: 0;
}
body.app-theme :where(h1, h2, h3, h4) {
  color: #29403c;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
body.app-theme h1 { font-size: 28px; font-weight: 400; }
body.app-theme h2 { font-size: 24px; font-weight: 400; }
body.app-theme h3 { font-size: 20px; font-weight: 600; }
body.app-theme :where(a, .register-link p, .label) { color: #306d62; }
body.app-theme :where(.container, .content, .aa-content, .aa-layout, .layout) {
  background: transparent;
  box-shadow: none;
}
body.app-theme :where(.card, .wrapper, .aa-card-toolbar, .aa-detail-card) {
  background: transparent;
  color: #1a1a1f;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.app-theme :where(.card-header, .aa-card-head, .two-fa-header, .panel-header) {
  background: #e3f3ef;
  color: #29403c;
  border-color: #c9ded6;
  box-shadow: none;
}
body.app-theme :where(.header, .sidebar) {
  background: #f7f6f4;
  color: #29403c;
  border-color: #d7ddda;
}
body.app-theme :is(.menu-item.active, .menu-item:hover) {
  background: #e3f3ef;
  color: #29403c;
  border-color: #7fcfc6;
}
body.app-theme :where(.app-header, .ribbon-menu) {
  background: #fff;
  border-color: #d7ddda;
  box-shadow: none;
}
body.app-theme .ribbon-menu .nav-link { color: #29403c !important; }
body.app-theme .ribbon-menu .nav-link:hover { background: #e3f3ef; }
body.app-theme .hamburger-icon span { background: #29403c; }
body.app-theme :where(input:not([type='checkbox']):not([type='radio']):not([type='hidden']), select, textarea) {
  background: #fff;
  color: #1a1a1f;
  border: 1px solid #c5d0ca;
  border-radius: 8px;
  font-size: 16px;
  box-shadow: none;
}
body.app-theme .input-box input,
body.app-theme .input-box select {
  padding-right: 45px;
  background: #fff;
  color: #1a1a1f;
  border: 1px solid #c5d0ca;
  border-radius: 8px;
  box-shadow: none;
}
body.app-theme .field input,
body.app-theme .field select,
body.app-theme .aa-field select {
  background: #fff;
  color: #1a1a1f;
  border: 1px solid #c5d0ca;
  border-radius: 8px;
}
body.app-theme :where(input, textarea)::placeholder { color: #68746d; opacity: 1; }
body.app-theme :where(input[type='checkbox'], input[type='radio']) { accent-color: #29403c; }
body.app-theme .input-box i { color: #527b70; }
body.app-theme :where(.btn, .btn-primary, .btn-danger, .aa-btn, .close-page-btn, .resend-invitation) {
  background: #7fcfc6;
  color: #29403c;
  border: 1px solid transparent;
  border-radius: 999px;
  min-height: 44px;
  height: auto;
  padding: 10px 20px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
  box-shadow: none;
}
body.app-theme :where(.btn, .btn-primary, .aa-btn):hover {
  background: #a0ded5;
  color: #29403c;
  box-shadow: none;
}
body.app-theme :where(.aa-btn-secondary, .panel-actions .btn:not(.primary), .close-page-btn) {
  background: #fff;
  border-color: #c5d0ca;
  color: #29403c;
}
body.app-theme :where(.btn-danger, .aa-btn-danger) {
  background: #f7e3df;
  color: #823e34;
  border-color: #e7c7bf;
}
body.app-theme :where(button, input, select):disabled {
  background: #e1e4e1;
  color: #656d68;
  box-shadow: none;
}
body.app-theme :where(.panel, .modal-content, .two-fa-card) {
  background: #fff;
  color: #1a1a1f;
  border: 1px solid #d7ddda;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(41, 64, 60, .12);
}
body.app-theme #twoFAOverlay { background: rgba(41, 64, 60, .35); }
body.app-theme .two-fa-card .btn-primary { background: #7fcfc6; color: #29403c; }
body.app-theme .btn.primary,
body.app-theme .btn.primary:hover {
  background: #7fcfc6;
  color: #29403c;
  border-color: transparent;
}
body.app-theme .aa-user-item-active,
body.app-theme .aa-user-item:hover {
  background: #e3f3ef;
  border-color: #7fcfc6;
  color: #29403c;
}
body.app-theme .aa-current-box { border-radius: 6px; }
body.app-theme .menu-item.close-menu-item {
  background: #fff;
  color: #29403c;
  border: 1px solid #c5d0ca;
}
body.app-theme :where(.panel-body, .modal-body, .modal-header, .modal-footer) {
  background: transparent;
  color: #1a1a1f;
  border-color: #d7ddda;
}
body.app-theme :where(.err, .error, .error-box, .error-text, .alert-danger, .alert-error, .flash-error, .aa-status.error) {
  background: #f7e3df;
  color: #823e34;
  border-color: #e7c7bf;
}
body.app-theme :where(.success, .success-msg, .alert-success, .flash-success, .aa-status.success) {
  background: #e3f3ef;
  color: #29403c;
  border-color: #bddbd3;
}
body.app-theme :where(.alert-info, .aa-current-box, .aa-role-badge, .password-requirements) {
  background: #eaf0ed;
  color: #405f54;
  border-color: #c9ded6;
}
body.app-theme :where(.password-invalid, .password-requirements.invalid) { color: #823e34; }
body.app-theme .data-table { background: #fff; color: #1a1a1f; }
body.app-theme .data-table th { background: #e3f3ef; color: #29403c; }
body.app-theme .data-table td,
body.app-theme .data-table th { border-color: #d7ddda; }
body.app-theme .data-table tbody tr:nth-child(even) { background: #f7f6f4; }
body.app-theme .data-table tbody tr:hover { background: #edf6f1; }
body.app-theme :where(.aa-users-card, .aa-user-item) {
  background: #fff;
  color: #1a1a1f;
  border-color: #d7ddda;
  border-radius: 6px;
  box-shadow: none;
}
body.app-theme :where(button, input, select, textarea, a, [tabindex]):focus-visible {
  outline: 2px solid #29403c;
  outline-offset: 3px;
}
body.app-theme.app-login .login-container,
body.app-theme .register-container { overflow-y: auto; }

body.session-refresh :is(#sessionBookingOverlay, #bookingFormOverlay, #quotaExhaustedOverlay) {
  background: rgba(41, 64, 60, .35) !important;
  color: #1a1a1f;
  font-family: 'Source Sans 3', sans-serif;
}
body.session-refresh :is(#sessionBookingOverlay, #bookingFormOverlay, #quotaExhaustedOverlay) > div {
  background: #f1f0ee !important;
  border: 1px solid #d7ddda;
  border-radius: 8px !important;
}
body.session-refresh :is(#sessionBookingOverlay, #bookingFormOverlay, #quotaExhaustedOverlay) :is(h2, h3, h4) {
  color: #29403c !important;
  font-weight: 600;
}
body.session-refresh :is(#tenantStatusSection, #userListContainer) {
  background: #fff !important;
  border-color: #d7ddda !important;
  border-radius: 6px !important;
}
body.session-refresh :is(#sessionBookingOverlay, #bookingFormOverlay, #quotaExhaustedOverlay) button {
  background: #7fcfc6 !important;
  color: #29403c !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: inherit;
  white-space: normal;
  overflow-wrap: anywhere;
}
body.session-refresh :is(#closeBookingOverlay, #cancelBookingBtn, #quotaLogoutBtn) {
  background: #fff !important;
  border: 1px solid #c5d0ca !important;
}
body.session-refresh :is(#decrementSessions, #incrementSessions) {
  background: #fff !important;
  border: 1px solid #c5d0ca !important;
  flex: 0 0 48px;
  padding: 0;
}
body.session-refresh #userListContainer > div {
  background: #fff !important;
  border-color: #c9ded6 !important;
}
body.session-refresh :is(#currentUserSessions, #bookedUserSessions, #totalTenantSessions, #sessionCount) {
  color: #29403c !important;
}
body.session-refresh :is(#sessionBookingOverlay, #bookingFormOverlay, #quotaExhaustedOverlay) button:disabled {
  background: #e1e4e1 !important;
  color: #656d68 !important;
}

body.app-theme.auth-forest {
  background: #29403c;
  color: #fff;
}
body.auth-forest :is(.login-container, .register-container)::before {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-radial-gradient(circle at 50% 50%, transparent 0 79px, rgba(127, 207, 198, .16) 79px 80px, transparent 80px 160px);
  pointer-events: none;
}
body.auth-forest :is(.login-container, .register-container) {
  justify-content: flex-start;
  padding: max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));
}
body.auth-forest .register-container { padding-top: calc(60px + max(24px, env(safe-area-inset-top))); }
body.auth-forest :is(.card, .wrapper) {
  flex: 0 0 auto;
  margin-block: auto;
  width: 100%;
  max-width: 420px;
}
body.auth-forest .wrapper { padding: 24px 16px; }
body.auth-forest .auth-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  color: #7fcfc6;
}
body.auth-forest .auth-brand img { width: 80px; height: 80px; object-fit: contain; }
body.auth-forest .auth-brand span { font-size: 14px; font-weight: 700; }
body.auth-forest :is(.card, .wrapper) h1 {
  color: #fff;
  font-size: 28px;
  font-weight: 300;
  margin-bottom: 24px;
  text-align: center;
}
body.auth-forest :is(.forgot-password-link, .login-link, .register-link) :is(a, p) { color: #a7ded7; }
body.auth-forest .password-requirements {
  background: transparent;
  color: #d3e2dd;
}
body.auth-forest .input-box { height: 56px; margin-block: 20px; }
body.auth-forest .password-field { margin-block: 20px; }
body.auth-forest .password-input-box { margin: 0; }
body.auth-forest .input-box input.password-invalid { border-color: #b42318; }
body.auth-forest :is(.card, .wrapper) :is(button, input, select, a):focus-visible {
  outline-color: #a7ded7;
}
body.auth-forest #twoFAOverlay {
  overflow-y: auto;
  justify-content: flex-start;
  padding-block: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-bottom));
}
body.auth-forest .two-fa-card { flex: 0 0 auto; margin-block: auto; }

.desktop-shell { display: none; }
.desktop-menu-dialog {
  box-sizing: border-box;
  position: fixed;
  inset: 72px 0 44px;
  margin: 0;
  width: 100%;
  max-width: none;
  height: calc(100dvh - 116px);
  max-height: none;
  padding: 0;
  border: 0;
  border-block: 1px solid #d7ddda;
  background: #f1f0ee;
  color: #1a1a1f;
  font: 16px/1.6 'Source Sans 3', sans-serif;
}
.desktop-menu-dialog[open] { display: flex; flex-direction: column; }
.desktop-menu-dialog::backdrop { background: rgba(41, 64, 60, .28); }
.desktop-dialog-toolbar {
  display: flex;
  box-sizing: border-box;
  flex: 0 0 72px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 32px;
  background: #fff;
  border-bottom: 1px solid #d7ddda;
}
.desktop-dialog-toolbar h2 { margin: 0; font-size: 20px; font-weight: 600; color: #29403c; }
.desktop-dialog-toolbar button,
.desktop-shell button {
  font: 600 15px/1.4 'Source Sans 3', sans-serif;
  color: #29403c;
  background: transparent;
  border: 0;
  padding: 10px 12px;
  min-height: 44px;
  cursor: pointer;
}
.desktop-dialog-toolbar button { background: #e3f3ef; border-radius: 6px; }
.desktop-shell button:hover { background: #e3f3ef; border-radius: 6px; }
.desktop-shell button:focus-visible,
.desktop-menu-dialog button:focus-visible { outline: 2px solid #29403c; outline-offset: 2px; }
.desktop-dialog-content { flex: 1; min-height: 0; overflow: auto; }
.desktop-dialog-content iframe { display: block; width: 100%; height: 100%; border: 0; }
.desktop-imprint { max-width: 760px; margin: 40px auto; padding: 0 32px; }
.desktop-imprint dt { color: #29403c; font-weight: 600; }
.desktop-imprint dd { margin: 0 0 24px; color: #58615e; }
.desktop-overlay-content {
  position: static !important;
  inset: auto !important;
  background: transparent !important;
  padding: 32px !important;
}
.desktop-overlay-content > div {
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  max-height: none !important;
  background: #fff !important;
  color: #1a1a1f;
  border-radius: 8px !important;
}
.desktop-booking-panel { position: absolute !important; inset: 72px 0 0 !important; }
.desktop-booking-panel > div { max-width: 600px !important; }
html.desktop-management {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  overflow: auto !important;
  background: #f1f0ee;
}
html.desktop-management body {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  min-height: 100vh !important;
  max-width: none !important;
  transform: none !important;
  overflow: auto !important;
  padding: 24px 32px !important;
}
.desktop-management :is(.deputy-header, .ribbon-menu, .ribbon-menu-overlay, .close-page-btn) { display: none !important; }
.desktop-management :is(.layout, .aa-layout, .container) {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 16px 0;
}
.desktop-management .sidebar { margin-top: 0; }
.desktop-management .layout { flex-direction: row; align-items: flex-start; gap: 24px; }
.desktop-management .sidebar { flex: 0 0 200px; width: 200px; }
.desktop-management .content { min-width: 0; }
.desktop-management .aa-grid { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr); gap: 24px; }
.desktop-management .aa-users-list { max-height: 65vh; }
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  html.has-desktop-shell {
    background-color: #29403c;
    background-image: repeating-radial-gradient(circle at 50% 52%, transparent 0 159px, rgba(127, 207, 198, .1) 159px 160px, transparent 160px 320px), linear-gradient(135deg, #203632, #29403c 55%, #35544c);
  }
  html.has-desktop-shell body.session-refresh {
    --vh: calc((100dvh - 148px) / 100);
    --vw: min(100vw, calc((100dvh - 148px) * .5625));
    --overlay-btn-side: calc(var(--vw) / 100);
    top: calc(50% + 14px) !important;
    width: var(--vw) !important;
    height: calc(100dvh - 148px) !important;
    border-radius: 32px;
    overflow: hidden;
    box-shadow: 0 20px 56px rgba(0, 0, 0, .22), 0 0 0 1px rgba(167, 222, 215, .28);
  }
  .has-desktop-shell .desktop-shell { display: block; font-family: 'Source Sans 3', sans-serif; }
  .has-desktop-shell #mobileOverlay,
  .has-desktop-shell #mobileOverlay .intro-video {
    width: 100%;
    height: 100%;
  }
  .has-desktop-shell #mobileOverlay .intro-video {
    object-fit: contain;
    object-position: center;
  }
  .has-desktop-shell body.session-refresh :is(#sfb-overlay-submit, #sdd-overlay-select, #sdd-overlay-submit, #sair-overlay-pretext, #sair-radios, #sair-overlay-submit, .spj-buttons) {
    width: 80% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .has-desktop-shell body.session-refresh :is(#langOverlay, #phaseJumpOverlay, #quotaExhaustedOverlay, #bookingFormOverlay) > div {
    max-width: 100%;
    box-sizing: border-box;
  }
  .desktop-site-header, .desktop-site-footer {
    position: fixed;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    background: #29403c;
    color: #fff;
    z-index: 400000;
    box-sizing: border-box;
  }
  .desktop-site-header { top: 0; height: 72px; padding: 10px 24px; gap: 24px; border-bottom: 1px solid rgba(167, 222, 215, .28); }
  .desktop-site-header img { width: auto; height: 40px; }
  .desktop-site-header nav { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; overflow-x: auto; }
  .desktop-site-header nav button { flex: 0 0 auto; white-space: nowrap; }
  .desktop-site-header nav button:first-child { margin-left: auto; }
  .desktop-site-footer { bottom: 0; height: 44px; padding: 0 24px; justify-content: flex-end; border-top: 1px solid rgba(167, 222, 215, .28); }
  .desktop-shell button { color: #fff; }
  .desktop-shell button:hover { background: rgba(127, 207, 198, .14); }
  .desktop-shell button:focus-visible { outline-color: #a7ded7; }
  .has-desktop-shell .deputy-header .header-right { visibility: hidden; }
}