/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].rules[1].use[1]!./src/global.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap);
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].rules[1].use[1]!./src/global.scss (1) ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap);
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].rules[1].use[1]!./src/theme/variables.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/** Ionic CSS Variables **/
:root {
  --ion-font-family: "Inter";
  --ion-font-family-condensed: "Inter Tight";
  /** primary **/
  --ion-color-primary: #3880ff;
  --ion-color-primary-rgb: 56, 128, 255;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #3171e0;
  --ion-color-primary-tint: #4c8dff;
  /** secondary **/
  --ion-color-secondary: #3dc2ff;
  --ion-color-secondary-rgb: 61, 194, 255;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #36abe0;
  --ion-color-secondary-tint: #50c8ff;
  /** tertiary **/
  --ion-color-tertiary: #5260ff;
  --ion-color-tertiary-rgb: 82, 96, 255;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #4854e0;
  --ion-color-tertiary-tint: #6370ff;
  /** success **/
  --ion-color-success: #2dd36f;
  --ion-color-success-rgb: 45, 211, 111;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #28ba62;
  --ion-color-success-tint: #42d77d;
  /** warning **/
  --ion-color-warning: #ffc409;
  --ion-color-warning-rgb: 255, 196, 9;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb: 0, 0, 0;
  --ion-color-warning-shade: #e0ac08;
  --ion-color-warning-tint: #ffca22;
  /** danger **/
  --ion-color-danger: #eb445a;
  --ion-color-danger-rgb: 235, 68, 90;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #cf3c4f;
  --ion-color-danger-tint: #ed576b;
  /** dark **/
  --ion-color-dark: #222428;
  --ion-color-dark-rgb: 34, 36, 40;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb: 255, 255, 255;
  --ion-color-dark-shade: #1e2023;
  --ion-color-dark-tint: #383a3e;
  /** medium **/
  --ion-color-medium: #a6a9b3;
  --ion-color-medium-rgb: 146, 148, 156;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb: 255, 255, 255;
  --ion-color-medium-shade: #808289;
  --ion-color-medium-tint: #9d9fa6;
  /** light **/
  --ion-color-light: #f4f5f8;
  --ion-color-light-rgb: 244, 245, 248;
  --ion-color-light-contrast: #000000;
  --ion-color-light-contrast-rgb: 0, 0, 0;
  --ion-color-light-shade: #d7d8da;
  --ion-color-light-tint: #f5f6f9;
  --ion-border-color: #DADADA;
  --ion-color-favorite: #ee80ff;
  /** Custom **/
  --academy-color-bg: #fdfdfd;
  --academy-color-primary: #3880ff;
  --ion-card-color: #fdfdfd;
  --ion-background-color: #f4f5f8;
  --ion-background-color-rgb: 252, 252, 252;
  --ion-border-radius: 16px;
  --ion-background-image-light: url(https://firebasestorage.googleapis.com/v0/b/hackyourhuman.appspot.com/o/backgrounds%2FAfter_Noon%403x.jpg?alt=media&token=bfb661a6-367d-4564-9665-8201d1813914) no-repeat center center / cover;
  --ion-background-image-dark: url(https://firebasestorage.googleapis.com/v0/b/hackyourhuman.appspot.com/o/backgrounds%2FNight%403x.jpg?alt=media&token=7c72064a-4371-4b4a-a728-58b444caac20) no-repeat center center / cover;
  --app-card-shadow: var(--elevation-1);
  --ion-box-shadow: var(--app-card-shadow);
  /* Material-like elevation tokens (light mode) */
  --elevation-1: 0 1px 2px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.10);
  --elevation-2: 0 4px 10px rgba(0,0,0,0.10), 0 2px 4px rgba(0,0,0,0.08);
  --elevation-3: 0 8px 20px rgba(0,0,0,0.12), 0 6px 10px rgba(0,0,0,0.10);
  --elevation-4: 0 12px 32px rgba(0,0,0,0.14), 0 8px 12px rgba(0,0,0,0.10);
  /* Card shadow aliases for convenience (light mode) */
  --card-shadow-sm: var(--elevation-1);
  --card-shadow-md: var(--elevation-2);
  --card-shadow-lg: var(--elevation-3);
  --card-shadow-xl: var(--elevation-4);
}
@media (prefers-color-scheme: dark) {
  /*
   * Dark Colors
   * -------------------------------------------
   */
  body {
    --ion-color-primary: #428cff;
    --ion-color-primary-rgb: 66, 140, 255;
    --ion-color-primary-contrast: #ffffff;
    --ion-color-primary-contrast-rgb: 255, 255, 255;
    --ion-color-primary-shade: #3a7be0;
    --ion-color-primary-tint: #5598ff;
    --ion-color-secondary: #50c8ff;
    --ion-color-secondary-rgb: 80, 200, 255;
    --ion-color-secondary-contrast: #ffffff;
    --ion-color-secondary-contrast-rgb: 255, 255, 255;
    --ion-color-secondary-shade: #46b0e0;
    --ion-color-secondary-tint: #62ceff;
    --ion-color-tertiary: #6a64ff;
    --ion-color-tertiary-rgb: 106, 100, 255;
    --ion-color-tertiary-contrast: #ffffff;
    --ion-color-tertiary-contrast-rgb: 255, 255, 255;
    --ion-color-tertiary-shade: #5d58e0;
    --ion-color-tertiary-tint: #7974ff;
    --ion-color-success: #2fdf75;
    --ion-color-success-rgb: 47, 223, 117;
    --ion-color-success-contrast: #000000;
    --ion-color-success-contrast-rgb: 0, 0, 0;
    --ion-color-success-shade: #29c467;
    --ion-color-success-tint: #44e283;
    --ion-color-warning: #ffd534;
    --ion-color-warning-rgb: 255, 213, 52;
    --ion-color-warning-contrast: #000000;
    --ion-color-warning-contrast-rgb: 0, 0, 0;
    --ion-color-warning-shade: #e0bb2e;
    --ion-color-warning-tint: #ffd948;
    --ion-color-danger: #ff4961;
    --ion-color-danger-rgb: 255, 73, 97;
    --ion-color-danger-contrast: #ffffff;
    --ion-color-danger-contrast-rgb: 255, 255, 255;
    --ion-color-danger-shade: #e04055;
    --ion-color-danger-tint: #ff5b71;
    --ion-color-dark: #f4f5f8;
    --ion-color-dark-rgb: 244, 245, 248;
    --ion-color-dark-contrast: #000000;
    --ion-color-dark-contrast-rgb: 0, 0, 0;
    --ion-color-dark-shade: #d7d8da;
    --ion-color-dark-tint: #f5f6f9;
    --ion-color-medium: #707279;
    --ion-color-medium-rgb: 152, 154, 162;
    --ion-color-medium-contrast: #000000;
    --ion-color-medium-contrast-rgb: 0, 0, 0;
    --ion-color-medium-shade: #86888f;
    --ion-color-medium-tint: #a2a4ab;
    --ion-color-light: #222428;
    --ion-color-light-rgb: 34, 36, 40;
    --ion-color-light-contrast: #ffffff;
    --ion-color-light-contrast-rgb: 255, 255, 255;
    --ion-color-light-shade: #1e2023;
    --ion-color-light-tint: #383a3e;
  }

  /*
   * iOS Dark Theme
   * -------------------------------------------
   */
  .ios body {
    --ion-card-color: #0c0c0c;
    --ion-background-color: #121212;
    --ion-background-color-rgb: 13, 13, 13;
    --ion-text-color: #ffffff;
    --ion-text-color-rgb: 255, 255, 255;
    --ion-color-step-50: #0d0d0d;
    --ion-color-step-100: #1a1a1a;
    --ion-color-step-150: #262626;
    --ion-color-step-200: #333333;
    --ion-color-step-250: #404040;
    --ion-color-step-300: #4d4d4d;
    --ion-color-step-350: #595959;
    --ion-color-step-400: #666666;
    --ion-color-step-450: #737373;
    --ion-color-step-500: #808080;
    --ion-color-step-550: #8c8c8c;
    --ion-color-step-600: #999999;
    --ion-color-step-650: #a6a6a6;
    --ion-color-step-700: #b3b3b3;
    --ion-color-step-750: #bfbfbf;
    --ion-color-step-800: #cccccc;
    --ion-color-step-850: #d9d9d9;
    --ion-color-step-900: #e6e6e6;
    --ion-color-step-950: #f2f2f2;
    --ion-toolbar-background: #0d0d0d;
    --ion-item-background: #000000;
    /* Dark mode card shadow override (slightly tighter + higher alpha) */
    --app-card-shadow: 0 2px 6px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.35);
    /* Material-like elevation tokens (dark iOS) */
    --elevation-1: 0 1px 2px rgba(0,0,0,0.60), 0 1px 3px rgba(0,0,0,0.40);
    --elevation-2: 0 2px 6px rgba(0,0,0,0.60), 0 2px 4px rgba(0,0,0,0.40);
    --elevation-3: 0 6px 12px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.40);
    --elevation-4: 0 10px 20px rgba(0,0,0,0.50), 0 3px 12px rgba(0,0,0,0.35);
    /* Card shadow aliases for convenience (dark iOS) */
    --card-shadow-sm: var(--elevation-1);
    --card-shadow-md: var(--elevation-2);
    --card-shadow-lg: var(--elevation-3);
    --card-shadow-xl: var(--elevation-4);
  }

  /*
   * Material Design Dark Theme
   * -------------------------------------------
   */
  .md body {
    --ion-card-color: #0c0c0c;
    --ion-background-color: #121212;
    --ion-background-color-rgb: 18, 18, 18;
    --ion-text-color: #ffffff;
    --ion-text-color-rgb: 255, 255, 255;
    --ion-border-color: #222222;
    --ion-color-step-50: #1e1e1e;
    --ion-color-step-100: #2a2a2a;
    --ion-color-step-150: #363636;
    --ion-color-step-200: #414141;
    --ion-color-step-250: #4d4d4d;
    --ion-color-step-300: #595959;
    --ion-color-step-350: #656565;
    --ion-color-step-400: #717171;
    --ion-color-step-450: #7d7d7d;
    --ion-color-step-500: #898989;
    --ion-color-step-550: #949494;
    --ion-color-step-600: #a0a0a0;
    --ion-color-step-650: #acacac;
    --ion-color-step-700: #b8b8b8;
    --ion-color-step-750: #c4c4c4;
    --ion-color-step-800: #d0d0d0;
    --ion-color-step-850: #dbdbdb;
    --ion-color-step-900: #e7e7e7;
    --ion-color-step-950: #f3f3f3;
    --ion-item-background: #1e1e1e;
    --ion-toolbar-background: #1f1f1f;
    --ion-tab-bar-background: #1f1f1f;
    /* Dark mode card shadow override (Material variant) */
    --app-card-shadow: 0 2px 6px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.35);
    /* Material-like elevation tokens (dark MD) */
    --elevation-1: 0 1px 2px rgba(0,0,0,0.60), 0 1px 3px rgba(0,0,0,0.40);
    --elevation-2: 0 2px 6px rgba(0,0,0,0.60), 0 2px 4px rgba(0,0,0,0.40);
    --elevation-3: 0 6px 12px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.40);
    --elevation-4: 0 10px 20px rgba(0,0,0,0.50), 0 3px 12px rgba(0,0,0,0.35);
    /* Card shadow aliases for convenience (dark MD) */
    --card-shadow-sm: var(--elevation-1);
    --card-shadow-md: var(--elevation-2);
    --card-shadow-lg: var(--elevation-3);
    --card-shadow-xl: var(--elevation-4);
  }
}
/* Apply the unified card shadow token */
ion-card {
  --box-shadow: var(--app-card-shadow);
}
/* Default brand placeholder: actual brand files replace this via Angular fileReplacements. */
/* Keep this file intentionally minimal to avoid lint errors. */
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].rules[0].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].rules[1].use[1]!./src/global.scss (2) ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/*
 * App Global CSS
 * ----------------------------------------------------------------------------
 * Put style rules here that you want to apply globally. These styles are for
 * the entire app and not just one component. Additionally, this file can be
 * used as an entry point to import other CSS/Sass files to be included in the
 * output CSS.
 * For more information on global stylesheets, visit the documentation:
 * https://ionicframework.com/docs/layout/global-stylesheets
 */
/* Core CSS required for Ionic components to work properly */
html.ios {
  --ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif;
}
html.md {
  --ion-default-font: "Roboto", "Helvetica Neue", sans-serif;
}
html {
  --ion-font-family: var(--ion-default-font);
}
body {
  background: var(--ion-background-color);
}
body.backdrop-no-scroll {
  overflow: hidden;
}
/**
 * Card style modal needs additional padding on the
 * top of the header. We accomplish this by targeting
 * the first toolbar in the header.
 * Footer also needs this. We do not adjust the bottom
 * padding though because of the safe area.
 */
html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,
html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,
html.ios ion-modal ion-footer ion-toolbar:first-of-type {
  padding-top: 6px;
}
/**
* Card style modal needs additional padding on the
* bottom of the header. We accomplish this by targeting
* the last toolbar in the header.
*/
html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,
html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {
  padding-bottom: 6px;
}
/**
* Add padding on the left and right
* of toolbars while accounting for
* safe area values when in landscape.
*/
html.ios ion-modal ion-toolbar {
  padding-right: calc(var(--ion-safe-area-right) + 8px);
  padding-left: calc(var(--ion-safe-area-left) + 8px);
}
/**
 * Card style modal on iPadOS
 * should only have backdrop on first instance.
 */
@media screen and (min-width: 768px) {
  html.ios ion-modal.modal-card:first-of-type {
    --backdrop-opacity: 0.18;
  }
}
/**
 * Subsequent modals should not have a backdrop/box shadow
 * as it will cause the screen to appear to get progressively
 * darker. With Ionic 6, declarative modals made it
 * possible to have multiple non-presented modals in the DOM,
 * so we could no longer rely on ion-modal:first-of-type.
 * Here we disable the opacity/box-shadow for every modal
 * that comes after the first presented modal.
 *
 * Note: ion-modal:not(.overlay-hidden):first-of-type
 * does not match the first modal to not have
 * the .overlay-hidden class, it will match the
 * first modal in general only if it does not
 * have the .overlay-hidden class.
 * The :nth-child() pseudo-class has support
 * for selectors which would help us here. At the
 * time of writing it does not have great cross browser
 * support.
 *
 * Note 2: This should only apply to non-card and
 * non-sheet modals. Card and sheet modals have their
 * own criteria for displaying backdrops/box shadows.
 */
ion-modal.modal-default:not(.overlay-hidden) ~ ion-modal.modal-default {
  --backdrop-opacity: 0;
  --box-shadow: none;
}
/**
 * This works around a bug in WebKit where the
 * content will overflow outside of the bottom border
 * radius when re-painting. As long as a single
 * border radius value is set on .ion-page, this
 * issue does not happen. We set the top left radius
 * here because the top left corner will always have a
 * radius no matter the platform.
 * This behavior only applies to card modals.
 */
html.ios ion-modal.modal-card .ion-page {
  border-top-left-radius: var(--border-radius);
}
.ion-color-primary {
  --ion-color-base: var(--ion-color-primary, #3880ff) !important;
  --ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;
  --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;
  --ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important;
}
.ion-color-secondary {
  --ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;
  --ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;
  --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;
  --ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important;
}
.ion-color-tertiary {
  --ion-color-base: var(--ion-color-tertiary, #5260ff) !important;
  --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;
  --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;
  --ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important;
}
.ion-color-success {
  --ion-color-base: var(--ion-color-success, #2dd36f) !important;
  --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;
  --ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;
  --ion-color-tint: var(--ion-color-success-tint, #42d77d) !important;
}
.ion-color-warning {
  --ion-color-base: var(--ion-color-warning, #ffc409) !important;
  --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;
  --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;
  --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;
}
.ion-color-danger {
  --ion-color-base: var(--ion-color-danger, #eb445a) !important;
  --ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;
  --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;
  --ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important;
}
.ion-color-light {
  --ion-color-base: var(--ion-color-light, #f4f5f8) !important;
  --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;
  --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;
  --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;
}
.ion-color-medium {
  --ion-color-base: var(--ion-color-medium, #92949c) !important;
  --ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;
  --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-medium-shade, #808289) !important;
  --ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important;
}
.ion-color-dark {
  --ion-color-base: var(--ion-color-dark, #222428) !important;
  --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;
  --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;
  --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;
}
.ion-page {
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  position: absolute;
  flex-direction: column;
  justify-content: space-between;
  contain: layout size style;
  overflow: hidden;
  z-index: 0;
}
.split-pane-visible > .ion-page.split-pane-main {
  position: relative;
}
ion-route,
ion-route-redirect,
ion-router,
ion-select-option,
ion-nav-controller,
ion-menu-controller,
ion-action-sheet-controller,
ion-alert-controller,
ion-loading-controller,
ion-modal-controller,
ion-picker-controller,
ion-popover-controller,
ion-toast-controller,
.ion-page-hidden,
[hidden] {
  /* stylelint-disable-next-line declaration-no-important */
  display: none !important;
}
.ion-page-invisible {
  opacity: 0;
}
.can-go-back > ion-header ion-back-button {
  display: block;
}
html.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {
  --ion-statusbar-padding: 20px;
}
@supports (padding-top: 20px) {
  html {
    --ion-safe-area-top: var(--ion-statusbar-padding);
  }
}
@supports (padding-top: constant(safe-area-inset-top)) {
  html {
    --ion-safe-area-top: constant(safe-area-inset-top);
    --ion-safe-area-bottom: constant(safe-area-inset-bottom);
    --ion-safe-area-left: constant(safe-area-inset-left);
    --ion-safe-area-right: constant(safe-area-inset-right);
  }
}
@supports (padding-top: env(safe-area-inset-top)) {
  html {
    --ion-safe-area-top: env(safe-area-inset-top);
    --ion-safe-area-bottom: env(safe-area-inset-bottom);
    --ion-safe-area-left: env(safe-area-inset-left);
    --ion-safe-area-right: env(safe-area-inset-right);
  }
}
ion-card.ion-color .ion-inherit-color,
ion-card-header.ion-color .ion-inherit-color {
  color: inherit;
}
.menu-content {
  transform: translate3d(0,  0,  0);
}
.menu-content-open {
  cursor: pointer;
  touch-action: manipulation;
  pointer-events: none;
}
.ios .menu-content-reveal {
  box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);
}
[dir=rtl].ios .menu-content-reveal {
  box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);
}
.md .menu-content-reveal {
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
}
.md .menu-content-push {
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
}
ion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}
ion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}
ion-accordion-group > ion-accordion:last-of-type ion-item[slot=header] {
  --border-width: 0px;
}
ion-accordion.accordion-animated > [slot=header] .ion-accordion-toggle-icon {
  transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);
}
@media (prefers-reduced-motion: reduce) {
  ion-accordion .ion-accordion-toggle-icon {
    /* stylelint-disable declaration-no-important */
    transition: none !important;
  }
}
/**
 * The > [slot="header"] selector ensures that we do
 * not modify toggle icons for any nested accordions. The state
 * of one accordion should not affect any accordions inside
 * of a nested accordion group.
 */
ion-accordion.accordion-expanding > [slot=header] .ion-accordion-toggle-icon,
ion-accordion.accordion-expanded > [slot=header] .ion-accordion-toggle-icon {
  transform: rotate(180deg);
}
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=header] {
  --border-width: 0px;
  --inner-border-width: 0px;
}
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {
  margin-top: 0;
}
ion-input input::-webkit-date-and-time-value {
  text-align: start;
}
/* Basic CSS for apps built with Ionic */
audio,
canvas,
progress,
video {
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
b,
strong {
  font-weight: bold;
}
img {
  max-width: 100%;
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  height: 1px;
  border-width: 0;
  box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
label,
input,
select,
textarea {
  font-family: inherit;
  line-height: normal;
}
textarea {
  overflow: auto;
  height: auto;
  font: inherit;
  color: inherit;
}
textarea::-moz-placeholder {
  padding-left: 2px;
}
textarea::placeholder {
  padding-left: 2px;
}
form,
input,
optgroup,
select {
  margin: 0;
  font: inherit;
  color: inherit;
}
html input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}
a,
a div,
a span,
a ion-icon,
a ion-label,
button,
button div,
button span,
button ion-icon,
button ion-label,
.ion-tappable,
[tappable],
[tappable] div,
[tappable] span,
[tappable] ion-icon,
[tappable] ion-label,
input,
textarea {
  touch-action: manipulation;
}
a ion-label,
button ion-label {
  pointer-events: none;
}
button {
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-style: inherit;
  font-feature-settings: inherit;
  font-variant: inherit;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
  -webkit-appearance: button;
}
[tappable] {
  cursor: pointer;
}
a[disabled],
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input[type=checkbox],
input[type=radio] {
  padding: 0;
  box-sizing: border-box;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
html {
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}
html:not(.hydrated) body {
  display: none;
}
html.ion-ce body {
  display: block;
}
html.plt-pwa {
  height: 100vh;
}
body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  position: fixed;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  text-rendering: optimizeLegibility;
  overflow: hidden;
  touch-action: manipulation;
  -webkit-user-drag: none;
  -ms-content-zooming: none;
  word-wrap: break-word;
  overscroll-behavior-y: none;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
          text-size-adjust: none;
}
html {
  font-family: var(--ion-default-font);
  font-family: var(--ion-font-family);
}
a {
  background-color: transparent;
  color: #3880ff;
  color: var(--ion-color-primary, #3880ff);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 16px;
  margin-bottom: 10px;
  font-weight: 500;
  line-height: 1.2;
}
h1 {
  margin-top: 20px;
  font-size: 26px;
}
h2 {
  margin-top: 18px;
  font-size: 24px;
}
h3 {
  font-size: 22px;
}
h4 {
  font-size: 20px;
}
h5 {
  font-size: 18px;
}
h6 {
  font-size: 16px;
}
small {
  font-size: 75%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
.ion-hide {
  display: none !important;
}
.ion-hide-up {
  display: none !important;
}
.ion-hide-down {
  display: none !important;
}
@media (min-width: 576px) {
  .ion-hide-sm-up {
    display: none !important;
  }
}
@media (max-width: 575.98px) {
  .ion-hide-sm-down {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .ion-hide-md-up {
    display: none !important;
  }
}
@media (max-width: 767.98px) {
  .ion-hide-md-down {
    display: none !important;
  }
}
@media (min-width: 992px) {
  .ion-hide-lg-up {
    display: none !important;
  }
}
@media (max-width: 991.98px) {
  .ion-hide-lg-down {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .ion-hide-xl-up {
    display: none !important;
  }
}
@media (max-width: 1199.98px) {
  .ion-hide-xl-down {
    display: none !important;
  }
}
/* Optional CSS utils that can be commented out */
.ion-no-padding {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.ion-padding {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-left: 16px;
  padding-left: var(--ion-padding, 16px);
  padding-right: 16px;
  padding-right: var(--ion-padding, 16px);
  padding-top: 16px;
  padding-top: var(--ion-padding, 16px);
  padding-bottom: 16px;
  padding-bottom: var(--ion-padding, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-padding {
    padding-left: unset;
    padding-right: unset;
    -webkit-padding-start: 16px;
    -webkit-padding-start: var(--ion-padding, 16px);
    padding-inline-start: 16px;
    padding-inline-start: var(--ion-padding, 16px);
    -webkit-padding-end: 16px;
    -webkit-padding-end: var(--ion-padding, 16px);
    padding-inline-end: 16px;
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-padding-top {
  --padding-top: var(--ion-padding, 16px);
  padding-top: 16px;
  padding-top: var(--ion-padding, 16px);
}
.ion-padding-start {
  --padding-start: var(--ion-padding, 16px);
  padding-left: 16px;
  padding-left: var(--ion-padding, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-padding-start {
    padding-left: unset;
    -webkit-padding-start: 16px;
    -webkit-padding-start: var(--ion-padding, 16px);
    padding-inline-start: 16px;
    padding-inline-start: var(--ion-padding, 16px);
  }
}
.ion-padding-end {
  --padding-end: var(--ion-padding, 16px);
  padding-right: 16px;
  padding-right: var(--ion-padding, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-padding-end {
    padding-right: unset;
    -webkit-padding-end: 16px;
    -webkit-padding-end: var(--ion-padding, 16px);
    padding-inline-end: 16px;
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-padding-bottom {
  --padding-bottom: var(--ion-padding, 16px);
  padding-bottom: 16px;
  padding-bottom: var(--ion-padding, 16px);
}
.ion-padding-vertical {
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-top: 16px;
  padding-top: var(--ion-padding, 16px);
  padding-bottom: 16px;
  padding-bottom: var(--ion-padding, 16px);
}
.ion-padding-horizontal {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  padding-left: 16px;
  padding-left: var(--ion-padding, 16px);
  padding-right: 16px;
  padding-right: var(--ion-padding, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-padding-horizontal {
    padding-left: unset;
    padding-right: unset;
    -webkit-padding-start: 16px;
    -webkit-padding-start: var(--ion-padding, 16px);
    padding-inline-start: 16px;
    padding-inline-start: var(--ion-padding, 16px);
    -webkit-padding-end: 16px;
    -webkit-padding-end: var(--ion-padding, 16px);
    padding-inline-end: 16px;
    padding-inline-end: var(--ion-padding, 16px);
  }
}
.ion-no-margin {
  --margin-start: 0;
  --margin-end: 0;
  --margin-top: 0;
  --margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}
.ion-margin {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-left: 16px;
  margin-left: var(--ion-margin, 16px);
  margin-right: 16px;
  margin-right: var(--ion-margin, 16px);
  margin-top: 16px;
  margin-top: var(--ion-margin, 16px);
  margin-bottom: 16px;
  margin-bottom: var(--ion-margin, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-margin {
    margin-left: unset;
    margin-right: unset;
    -webkit-margin-start: 16px;
    -webkit-margin-start: var(--ion-margin, 16px);
    margin-inline-start: 16px;
    margin-inline-start: var(--ion-margin, 16px);
    -webkit-margin-end: 16px;
    -webkit-margin-end: var(--ion-margin, 16px);
    margin-inline-end: 16px;
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-margin-top {
  --margin-top: var(--ion-margin, 16px);
  margin-top: 16px;
  margin-top: var(--ion-margin, 16px);
}
.ion-margin-start {
  --margin-start: var(--ion-margin, 16px);
  margin-left: 16px;
  margin-left: var(--ion-margin, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-margin-start {
    margin-left: unset;
    -webkit-margin-start: 16px;
    -webkit-margin-start: var(--ion-margin, 16px);
    margin-inline-start: 16px;
    margin-inline-start: var(--ion-margin, 16px);
  }
}
.ion-margin-end {
  --margin-end: var(--ion-margin, 16px);
  margin-right: 16px;
  margin-right: var(--ion-margin, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-margin-end {
    margin-right: unset;
    -webkit-margin-end: 16px;
    -webkit-margin-end: var(--ion-margin, 16px);
    margin-inline-end: 16px;
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-margin-bottom {
  --margin-bottom: var(--ion-margin, 16px);
  margin-bottom: 16px;
  margin-bottom: var(--ion-margin, 16px);
}
.ion-margin-vertical {
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-top: 16px;
  margin-top: var(--ion-margin, 16px);
  margin-bottom: 16px;
  margin-bottom: var(--ion-margin, 16px);
}
.ion-margin-horizontal {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  margin-left: 16px;
  margin-left: var(--ion-margin, 16px);
  margin-right: 16px;
  margin-right: var(--ion-margin, 16px);
}
@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
  .ion-margin-horizontal {
    margin-left: unset;
    margin-right: unset;
    -webkit-margin-start: 16px;
    -webkit-margin-start: var(--ion-margin, 16px);
    margin-inline-start: 16px;
    margin-inline-start: var(--ion-margin, 16px);
    -webkit-margin-end: 16px;
    -webkit-margin-end: var(--ion-margin, 16px);
    margin-inline-end: 16px;
    margin-inline-end: var(--ion-margin, 16px);
  }
}
.ion-float-left {
  float: left !important;
}
.ion-float-right {
  float: right !important;
}
.ion-float-start {
  float: left !important;
}
[dir=rtl] .ion-float-start, :host-context([dir=rtl]) .ion-float-start {
  float: right !important;
}
.ion-float-end {
  float: right !important;
}
[dir=rtl] .ion-float-end, :host-context([dir=rtl]) .ion-float-end {
  float: left !important;
}
@media (min-width: 576px) {
  .ion-float-sm-left {
    float: left !important;
  }

  .ion-float-sm-right {
    float: right !important;
  }

  .ion-float-sm-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-sm-start, :host-context([dir=rtl]) .ion-float-sm-start {
    float: right !important;
  }

  .ion-float-sm-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-sm-end, :host-context([dir=rtl]) .ion-float-sm-end {
    float: left !important;
  }
}
@media (min-width: 768px) {
  .ion-float-md-left {
    float: left !important;
  }

  .ion-float-md-right {
    float: right !important;
  }

  .ion-float-md-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-md-start, :host-context([dir=rtl]) .ion-float-md-start {
    float: right !important;
  }

  .ion-float-md-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-md-end, :host-context([dir=rtl]) .ion-float-md-end {
    float: left !important;
  }
}
@media (min-width: 992px) {
  .ion-float-lg-left {
    float: left !important;
  }

  .ion-float-lg-right {
    float: right !important;
  }

  .ion-float-lg-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-lg-start, :host-context([dir=rtl]) .ion-float-lg-start {
    float: right !important;
  }

  .ion-float-lg-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-lg-end, :host-context([dir=rtl]) .ion-float-lg-end {
    float: left !important;
  }
}
@media (min-width: 1200px) {
  .ion-float-xl-left {
    float: left !important;
  }

  .ion-float-xl-right {
    float: right !important;
  }

  .ion-float-xl-start {
    float: left !important;
  }
  [dir=rtl] .ion-float-xl-start, :host-context([dir=rtl]) .ion-float-xl-start {
    float: right !important;
  }

  .ion-float-xl-end {
    float: right !important;
  }
  [dir=rtl] .ion-float-xl-end, :host-context([dir=rtl]) .ion-float-xl-end {
    float: left !important;
  }
}
.ion-text-center {
  text-align: center !important;
}
.ion-text-justify {
  text-align: justify !important;
}
.ion-text-start {
  text-align: start !important;
}
.ion-text-end {
  text-align: end !important;
}
.ion-text-left {
  text-align: left !important;
}
.ion-text-right {
  text-align: right !important;
}
.ion-text-nowrap {
  white-space: nowrap !important;
}
.ion-text-wrap {
  white-space: normal !important;
}
@media (min-width: 576px) {
  .ion-text-sm-center {
    text-align: center !important;
  }

  .ion-text-sm-justify {
    text-align: justify !important;
  }

  .ion-text-sm-start {
    text-align: start !important;
  }

  .ion-text-sm-end {
    text-align: end !important;
  }

  .ion-text-sm-left {
    text-align: left !important;
  }

  .ion-text-sm-right {
    text-align: right !important;
  }

  .ion-text-sm-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-sm-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-center {
    text-align: center !important;
  }

  .ion-text-md-justify {
    text-align: justify !important;
  }

  .ion-text-md-start {
    text-align: start !important;
  }

  .ion-text-md-end {
    text-align: end !important;
  }

  .ion-text-md-left {
    text-align: left !important;
  }

  .ion-text-md-right {
    text-align: right !important;
  }

  .ion-text-md-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-md-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-center {
    text-align: center !important;
  }

  .ion-text-lg-justify {
    text-align: justify !important;
  }

  .ion-text-lg-start {
    text-align: start !important;
  }

  .ion-text-lg-end {
    text-align: end !important;
  }

  .ion-text-lg-left {
    text-align: left !important;
  }

  .ion-text-lg-right {
    text-align: right !important;
  }

  .ion-text-lg-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-lg-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-center {
    text-align: center !important;
  }

  .ion-text-xl-justify {
    text-align: justify !important;
  }

  .ion-text-xl-start {
    text-align: start !important;
  }

  .ion-text-xl-end {
    text-align: end !important;
  }

  .ion-text-xl-left {
    text-align: left !important;
  }

  .ion-text-xl-right {
    text-align: right !important;
  }

  .ion-text-xl-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-xl-wrap {
    white-space: normal !important;
  }
}
.ion-text-uppercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: uppercase !important;
}
.ion-text-lowercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: lowercase !important;
}
.ion-text-capitalize {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: capitalize !important;
}
@media (min-width: 576px) {
  .ion-text-sm-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-sm-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-sm-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-md-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-md-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-lg-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-lg-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-xl-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-xl-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
.ion-align-self-start {
  align-self: flex-start !important;
}
.ion-align-self-end {
  align-self: flex-end !important;
}
.ion-align-self-center {
  align-self: center !important;
}
.ion-align-self-stretch {
  align-self: stretch !important;
}
.ion-align-self-baseline {
  align-self: baseline !important;
}
.ion-align-self-auto {
  align-self: auto !important;
}
.ion-wrap {
  flex-wrap: wrap !important;
}
.ion-nowrap {
  flex-wrap: nowrap !important;
}
.ion-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
.ion-justify-content-start {
  justify-content: flex-start !important;
}
.ion-justify-content-center {
  justify-content: center !important;
}
.ion-justify-content-end {
  justify-content: flex-end !important;
}
.ion-justify-content-around {
  justify-content: space-around !important;
}
.ion-justify-content-between {
  justify-content: space-between !important;
}
.ion-justify-content-evenly {
  justify-content: space-evenly !important;
}
.ion-align-items-start {
  align-items: flex-start !important;
}
.ion-align-items-center {
  align-items: center !important;
}
.ion-align-items-end {
  align-items: flex-end !important;
}
.ion-align-items-stretch {
  align-items: stretch !important;
}
.ion-align-items-baseline {
  align-items: baseline !important;
}
@font-face {
  font-family: "swiper-icons";
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");
  font-weight: 400;
  font-style: normal;
}
:root {
  --swiper-theme-color: #007aff;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}
.swiper-pointer-events {
  touch-action: pan-y;
}
.swiper-pointer-events.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
/* 3D Effects */
.swiper-3d, .swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper,
.swiper-3d .swiper-slide,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, 0.15);
}
.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* CSS Mode */
.swiper-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  /* For Firefox */
  -ms-overflow-style: none;
  /* For Internet Explorer and Edge */
}
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}
.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
  scroll-snap-type: x mandatory;
}
.swiper-vertical.swiper-css-mode > .swiper-wrapper {
  scroll-snap-type: y mandatory;
}
.swiper-centered > .swiper-wrapper::before {
  content: "";
  flex-shrink: 0;
  order: 9999;
}
.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
  -webkit-margin-start: var(--swiper-centered-offset-before);
          margin-inline-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
  height: 100%;
  width: var(--swiper-centered-offset-after);
}
.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
  -webkit-margin-before: var(--swiper-centered-offset-before);
          margin-block-start: var(--swiper-centered-offset-before);
}
.swiper-centered.swiper-vertical > .swiper-wrapper::before {
  width: 100%;
  height: var(--swiper-centered-offset-after);
}
.swiper-centered > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: center center;
}
.swiper {
  --bullet-background: var(--ion-color-step-200, #cccccc);
  --bullet-background-active: var(--ion-color-primary, #3880ff);
  --progress-bar-background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.25);
  --progress-bar-background-active: var(--ion-color-primary-shade, #3171e0);
  --scroll-bar-background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);
  --scroll-bar-background-active: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5);
  /**
   * @prop --bullet-background: Background of the pagination bullets
   * @prop --bullet-background-active: Background of the active pagination bullet
   *
   * @prop --progress-bar-background: Background of the pagination progress-bar
   * @prop --progress-bar-background-active: Background of the active pagination progress-bar
   *
   * @prop --scroll-bar-background: Background of the pagination scroll-bar
   * @prop --scroll-bar-background-active: Background of the active pagination scroll-bar
   */
  display: block;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.swiper .swiper-pagination-bullet {
  background: var(--bullet-background);
}
.swiper .swiper-pagination-bullet-active {
  background: var(--bullet-background-active);
}
.swiper .swiper-pagination-progressbar {
  background: var(--progress-bar-background);
}
.swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: var(--progress-bar-background-active);
}
.swiper .swiper-scrollbar {
  background: var(--scroll-bar-background);
}
.swiper .swiper-scrollbar-drag {
  background: var(--scroll-bar-background-active);
}
.swiper .slide-zoom {
  display: block;
  width: 100%;
  text-align: center;
}
.swiper .swiper-slide {
  display: flex;
  position: relative;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 18px;
  text-align: center;
  box-sizing: border-box;
}
.swiper .swiper-slide img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
}
/*# sourceMappingURL=ionic-swiper.css.map */
:root {
  /*
  --swiper-pagination-color: var(--swiper-theme-color);
  --swiper-pagination-bullet-size: 8px;
  --swiper-pagination-bullet-width: 8px;
  --swiper-pagination-bullet-height: 8px;
  --swiper-pagination-bullet-inactive-color: #000;
  --swiper-pagination-bullet-inactive-opacity: 0.2;
  --swiper-pagination-bullet-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 4px;
  --swiper-pagination-bullet-vertical-gap: 6px;
  */
}
.swiper-pagination {
  position: absolute;
  text-align: center;
  transition: 300ms opacity;
  transform: translate3d(0, 0, 0);
  z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: 10px;
  left: 0;
  width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transform: scale(0.33);
  position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  transform: scale(0.33);
}
.swiper-pagination-bullet {
  width: 8px;
  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
  height: 8px;
  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
  display: inline-block;
  border-radius: 50%;
  background: #000;
  background: var(--swiper-pagination-bullet-inactive-color, #000);
  opacity: 0.2;
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
}
button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}
.swiper-pagination-bullet:only-child {
  display: none !important;
}
.swiper-pagination-bullet-active {
  opacity: 1;
  opacity: var(--swiper-pagination-bullet-opacity, 1);
  background: var(--swiper-theme-color);
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
}
.swiper-vertical > .swiper-pagination-bullets,
.swiper-pagination-vertical.swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  transform: translate3d(0px, -50%, 0);
}
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 6px 0;
  margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
  display: block;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  transition: 200ms transform, 200ms top;
}
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 4px;
  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms left;
}
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms right;
}
/* Progress */
.swiper-pagination-progressbar {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: var(--swiper-theme-color);
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  transform: scale(0);
  transform-origin: left top;
}
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  transform-origin: right top;
}
.swiper-horizontal > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-horizontal, .swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}
.swiper-vertical > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-vertical, .swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}
.swiper-pagination-lock {
  display: none;
}
:root {
  --swiper-navigation-size:44px;
}
.swiper-button-next, .swiper-button-prev {
  position: absolute;
  top: 50%;
  width: calc(44px / 44 * 27);
  width: calc(var(--swiper-navigation-size) / 44 * 27);
  height: 44px;
  height: var(--swiper-navigation-size);
  margin-top: calc(0px - 44px / 2);
  margin-top: calc(0px - var(--swiper-navigation-size) / 2);
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-theme-color);
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}
.swiper-button-next:after, .swiper-button-prev:after {
  font-family: swiper-icons;
  font-size: 44px;
  font-size: var(--swiper-navigation-size);
  text-transform: none !important;
  letter-spacing: 0;
  text-transform: none;
  font-feature-settings: normal, ;
  font-variant: normal;
  font-variant: initial;
  line-height: 1;
}
.swiper-button-prev, .swiper-rtl .swiper-button-next {
  left: 10px;
  right: auto;
}
.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after {
  content: "prev";
}
.swiper-button-next, .swiper-rtl .swiper-button-prev {
  right: 10px;
  left: auto;
}
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
  content: "next";
}
.swiper-button-lock {
  display: none;
}
/*
  Buttons: respect global border radius token
  Ensures all ion-buttons use --ion-border-radius (or player override) for consistency.
*/
ion-button {
  --border-radius: var(--player-border-radius, var(--ion-border-radius));
}
/* If shape="round" is used, still respect the token instead of forcing full pill */
ion-button[shape=round] {
  --border-radius: var(--player-border-radius, var(--ion-border-radius));
}
/* Form styles */
/* Soft Form styles
   Usage options:
   - Add class="form-soft" to a container (ion-card-content, modal body, etc.)
   - Or @include soft-form() inside any selector in component-level SCSS
*/
/* Utility class for global use */
.form-soft ion-list {
  background: transparent;
  margin: 0;
  padding: 0;
}
.form-soft ion-item {
  --background: var(--ion-color-step-100, #f2f2f7);
  --min-height: 60px;
  --padding-start: 12px;
  --inner-padding-end: 12px;
  --inner-border-width: 0;
  border-radius: 12px;
  margin-top: 6px;
  box-shadow: inset 0 0 0 1px #e9e9ee;
  box-shadow: inset 0 0 0 1px var(--ion-color-step-150, #e9e9ee);
}
.form-soft ion-item ion-label[position=stacked] {
  color: var(--ion-color-medium);
  font-weight: 600;
}
.form-soft ion-item ion-input,
.form-soft ion-item ion-textarea,
.form-soft ion-item ion-select {
  --padding-top: 10px;
  --padding-bottom: 10px;
  --padding-start: 2px;
  --padding-end: 2px;
  --placeholder-color: var(--ion-color-medium, #6B7280);
  color: #222;
  color: var(--ion-text-color, #222);
}
@media (prefers-color-scheme: dark) {
  .form-soft ion-item {
    --background: var(--ion-color-step-50, #1f1f1f);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  }
  .form-soft ion-item ion-input,
.form-soft ion-item ion-textarea,
.form-soft ion-item ion-select {
    --placeholder-color: var(--ion-color-medium, #9ca3af);
    color: #e5e7eb;
    color: var(--ion-text-color, #e5e7eb);
  }
}
html {
  height: 100%;
}
.ordered-elements {
  position: relative;
  display: flex;
  flex-direction: column;
  /* Default order */
  /* Only affect direct children so nested layouts keep their own styles */
}
.ordered-elements > * {
  flex: 0 0 auto;
  /* Don't stretch or shrink children unexpectedly */
  width: 100%;
  /* Preserve full-width block behavior for sections */
  min-width: 0;
  /* Prevent overflow issues with flex children */
}
.ordered-elements.reverse {
  flex-direction: column-reverse;
  /* Reverse only the first-level children */
}
.align-center {
  display: flex;
  align-items: center;
}
.overlay {
  background: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  z-index: 999;
  opacity: 1;
  transition: all 0.7s ease;
  pointer-events: none;
  position: fixed;
}
.overlay-story {
  background: rgba(0, 0, 0, 0);
}
.overlay-loading-fade-in {
  background: rgba(0, 0, 0, 0.99);
}
.overlay-finished-loading {
  background: rgba(0, 0, 0, 0) !important;
}
.foreground {
  z-index: 999999;
}
.ion-text-left {
  text-align: left;
}
.capitalize {
  text-transform: capitalize;
}
.italic {
  font-style: italic;
}
app-questions app-questions-slider {
  height: 100%;
}
app-onboarding .swiper-pagination.swiper-pagination-bullets, app-questions .swiper-pagination.swiper-pagination-bullets {
  bottom: 80px;
}
.has-skip-button app-onboarding .swiper-pagination.swiper-pagination-bullets, .has-skip-button app-questions .swiper-pagination.swiper-pagination-bullets {
  bottom: 150px;
}
.medium-icon {
  font-size: 32pt;
}
.large-icon {
  font-size: 64pt;
}
.xlarge-icon .icon span {
  font-size: 128px !important;
  line-height: 128px !important;
}
/*

COLORS

debug colors, should make a static class
Deep purple = (delete) #AD0272
light purple (request) = #c6a0f0
light blue (success) = #a0bef0
blue (success plus) = #3880ff
light green (fresh) = #a0f0bc


Pleasant colors
76c4ae bewitched tree
7ce0f9 glass-gall
d3d2b5 brain sand
e1ceb1 magic powder

*/
.academy-color-primary {
  --ion-color-base: var(--academy-color-primary, #3880ff) !important;
  --ion-color-base-rgb: var(--academy-color-primary-rgb, 56, 128, 255) !important;
  --ion-color-contrast: var(--academy-color-primary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--academy-color-primary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--academy-color-primary-shade, #3171e0) !important;
  --ion-color-tint: var(--academy-color-primary-tint, #4c8dff) !important;
}
ion-progress-bar {
  --background: var(--ion-color-light);
  --progress-background: var(--academy-color-primary, var(--ion-color-primary, #3880ff));
  height: 8px;
  border-radius: 4px;
}
@media (min-width: 576px) {
  .hidden-sm-up {
    display: none !important;
  }
}
@media (max-width: 767px) {
  .hidden-sm-down {
    display: none !important;
  }
}
.size-medium {
  max-width: 256px;
  max-height: 256px;
}
.size-large {
  max-width: 512px;
  max-height: 512px;
}
.relative {
  position: relative;
  width: 100%;
}
:root {
  --default-notch-inset: 24px;
  --default-status-bar-inset: 24px;
  --multiplier: 1.2;
  /* Define the multiplier as a variable */
  --safe-area-inset-top-iphone-test: 47px;
  /* used for testing */
}
.notch-safe {
  padding: 24px;
  padding: var(--default-notch-inset);
  padding: calc(1.2 * env(safe-area-inset-top, 24px)) calc(1.2 * env(safe-area-inset-right, 24px)) calc(1.2 * env(safe-area-inset-bottom, 24px)) calc(1.2 * env(safe-area-inset-left, 24px));
  padding: calc(var(--multiplier) * env(safe-area-inset-top, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-right, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-bottom, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-left, var(--default-notch-inset)));
  /* Notch -> iOS 11.2+ */
}
.notch-safe-absolute {
  margin: 24px;
  margin: var(--default-notch-inset);
  margin: calc(1.2 * env(safe-area-inset-top, 24px)) calc(1.2 * env(safe-area-inset-right, 24px)) calc(1.2 * env(safe-area-inset-bottom, 24px)) calc(1.2 * env(safe-area-inset-left, 24px));
  margin: calc(var(--multiplier) * env(safe-area-inset-top, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-right, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-bottom, var(--default-notch-inset))) calc(var(--multiplier) * env(safe-area-inset-left, var(--default-notch-inset)));
  /* Notch -> iOS 11.2+ */
}
.program-wrapper .content .notch-safe {
  padding: 24px;
  padding: var(--default-notch-inset);
  padding: calc(var(0.5) * env(safe-area-inset-top, 24px)) calc(var(0.5) * env(safe-area-inset-right, 24px)) calc(var(0.5) * env(safe-area-inset-bottom, 24px)) calc(var(0.5) * env(safe-area-inset-left, 24px));
  padding: calc(var(0.5) * env(safe-area-inset-top, var(--default-notch-inset))) calc(var(0.5) * env(safe-area-inset-right, var(--default-notch-inset))) calc(var(0.5) * env(safe-area-inset-bottom, var(--default-notch-inset))) calc(var(0.5) * env(safe-area-inset-left, var(--default-notch-inset)));
  /* Notch -> iOS 11.2+ */
}
/* NOTCH SAFE ADJUSTMENTS TESTING */
/* START: TESTING Safe area for devices with notches */
/* Comment out the following styles before production */
/* END: TESTING Safe area for devices with notches */
.content {
  padding-top: 32px;
}
.status-bar-overlays-web-view .status-bar-overlay-inset {
  padding-top: 24px;
  padding-top: var(--default-status-bar-inset);
}
.status-bar-overlays-web-view .status-bar-overlay-inset-absolute {
  margin-top: 24px;
  margin-top: var(--default-status-bar-inset);
}
.ion-padding-small {
  padding: 8px;
}
.ion-padding-large {
  padding: 40px !important;
  padding: var(--ion-padding, 40px) !important;
}
.ion-margin-sides {
  margin: 0 16px !important;
}
.ion-margin-large {
  margin: 40px !important;
}
.ion-margin-small {
  margin: 8px;
}
.ion-margin-right {
  margin-right: 16px !important;
}
.ion-margin-bottom-large {
  margin-bottom: 40px !important;
}
.ion-margin-auto {
  margin: auto !important;
}
.ion-padding-bottom-large {
  --padding-bottom: var(--ion-padding, 40px) !important;
  padding-bottom: 40px !important;
  padding-bottom: var(--ion-padding, 40px) !important;
}
.ion-padding-bottom-xlarge {
  --padding-bottom: 120px !important;
  padding-bottom: 120px !important;
}
.ion-padding-top {
  padding-top: 16px !important;
  padding-top: var(--ion-padding, 16px) !important;
}
.ion-padding-top-24 {
  padding-top: 24px !important;
}
.ion-padding-left {
  padding-left: 16px !important;
  padding-left: var(--ion-padding, 16px) !important;
}
.ion-padding-sides {
  padding-left: 16px !important;
  padding-left: var(--ion-padding, 16px) !important;
  padding-right: 16px !important;
  padding-right: var(--ion-padding, 16px) !important;
}
.ion-padding-top-large {
  --padding-top: var(--ion-padding, 40px) !important;
  padding-top: 40px !important;
  padding-top: var(--ion-padding, 40px) !important;
}
.ion-padding-top-xlarge {
  --padding-top: var(--ion-padding, 80px) !important;
  padding-top: 80px !important;
  padding-top: var(--ion-padding, 80px) !important;
}
.ion-padding-vertical {
  --padding-bottom: var(--ion-padding, 40px) !important;
  padding-bottom: 40px !important;
  padding-bottom: var(--ion-padding, 40px) !important;
  --padding-top: var(--ion-padding, 40px) !important;
  padding-top: 40px !important;
  padding-top: var(--ion-padding, 40px) !important;
}
.ion-padding-vertical-small {
  --padding-bottom: 24px !important;
  padding-bottom: 24px !important;
  --padding-top: 24px !important;
  padding-top: 24px !important;
}
.ion-padding.no-padding-top {
  padding-top: 0 !important;
}
.ion-margin-vertical-small {
  --margin-bottom: 24px !important;
  margin-bottom: 24px !important;
  --margin-top: 24px !important;
  margin-top: 24px !important;
}
.center-self {
  margin: auto;
}
.ion-background-cover {
  background-size: cover;
}
ion-button.academy-color-primary {
  --ion-color-base: var(--player-color-primary) !important;
}
.swatch-color-primary {
  background: var(--ion-color-primary);
  background: var(--player-color-primary, var(--ion-color-primary));
  width: 80px;
  height: 80px;
}
:not(.text-block):not(p).medium {
  background: #a6a9b3;
  background: var(--player-color-medium, #a6a9b3);
}
:not(.text-block):not(p).danger {
  background: #F50B0B;
  background: var(--player-color-danger, #F50B0B);
}
:not(.text-block):not(p).warn, :not(.text-block):not(p).warning {
  background: #EFAF0A;
  background: var(--player-color-warn, #EFAF0A);
}
:not(.text-block):not(p).today {
  border: 1px solid #ffffff;
  outline: 3px solid black;
  background-color: #d51111;
}
:not(.text-block):not(p).success {
  background: #50D615;
  background: var(--player-color-success, #50D615);
}
:not(.text-block):not(p).exceptional {
  background: #2a8403 !important;
  background: var(--player-color-exceptional, #2a8403) !important;
}
.text-block.medium,
p.medium,
h1.medium, h2.medium, h3.medium, h4.medium, h5.medium, h6.medium,
tr.medium {
  color: #a6a9b3;
  color: var(--player-color-medium, #a6a9b3);
}
.text-block.danger,
p.danger,
h1.danger, h2.danger, h3.danger, h4.danger, h5.danger, h6.danger,
tr.danger {
  color: #F50B0B;
  color: var(--player-color-danger, #F50B0B);
}
.text-block.warn, .text-block.warning,
p.warn,
p.warning,
h1.warn,
h1.warning, h2.warn, h2.warning, h3.warn, h3.warning, h4.warn, h4.warning, h5.warn, h5.warning, h6.warn, h6.warning,
tr.warn,
tr.warning {
  color: #EFAF0A;
  color: var(--player-color-warn, #EFAF0A);
}
.text-block.success,
p.success,
h1.success, h2.success, h3.success, h4.success, h5.success, h6.success,
tr.success {
  color: #50D615;
  color: var(--player-color-success, #50D615);
}
.text-block.exceptional,
p.exceptional,
h1.exceptional, h2.exceptional, h3.exceptional, h4.exceptional, h5.exceptional, h6.exceptional,
tr.exceptional {
  color: #2a8403 !important;
  color: var(--player-color-exceptional, #2a8403) !important;
}
.text-block.light,
p.light,
h1.light, h2.light, h3.light, h4.light, h5.light, h6.light,
tr.light {
  color: #f6f8fc;
  color: var(--ion-color-light, #f6f8fc);
}
.text-block.medium,
p.medium,
h1.medium, h2.medium, h3.medium, h4.medium, h5.medium, h6.medium,
tr.medium {
  color: #2f2f2f;
  color: var(--ion-color-medium, #2f2f2f);
}
.text-block.primary,
p.primary,
h1.primary, h2.primary, h3.primary, h4.primary, h5.primary, h6.primary,
tr.primary {
  color: #0054e9;
  color: var(--ion-color-primary, #0054e9);
}
.color-primary {
  color: var(--ion-color-primary), #3880ff !important;
  color: var(--player-color-primary, var(--ion-color-primary), #3880ff) !important;
}
.background-card {
  background: #FFF;
  background: var(--ion-card-color, #FFF);
}
.background-clear {
  --background: transparent;
  background: transparent;
}
.background-dark h1, .background-dark h2, .background-dark p {
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.background-position-center {
  background-position: center;
}
.text-primary-contrast {
  color: var(--ion-color-primary-contrast);
}
.children-with-separators span {
  border-left: 1px solid;
  padding-left: 8px;
  margin-left: 8px;
}
.children-with-separators span:first-child {
  border-left: none;
  padding-left: 0;
  margin-left: 0;
}
.children-with-separators span.minor {
  opacity: 0.3;
}
ion-menu {
  --side-max-width: 200px;
}
.active {
  --background: var(--ion-color-light);
  --color: var(--ion-color-light-contrast);
}
ion-footer {
  z-index: 999999999;
  background: var(--ion-card-color);
}
.logo-wrapper {
  max-width: 120px;
  margin: auto;
}
.logo-wrapper .dark {
  display: none;
}
.logo-centered img {
  margin: auto;
}
.cover-image-max-height {
  max-height: 400px;
  overflow: hidden;
}
@media only screen and (max-width: 768px) {
  .logo-wrapper {
    max-width: 80px;
    margin-top: 10px;
  }
  .logo-wrapper.ion-margin-bottom-large {
    margin-bottom: 20px !important;
  }
}
.image-upload-row {
  display: flex;
  align-items: center;
  grid-gap: 8px;
  gap: 8px;
  flex-wrap: wrap;
}
.image-upload-row ion-input {
  flex: 1;
}
.image-preview {
  margin-top: 8px;
  display: flex;
  justify-content: center;
}
.image-preview img {
  width: 100%;
  max-width: 150px;
  /* Adjust this size for desktop as needed */
  height: auto;
  border-radius: 8px;
  border: 1px solid #ccc;
}
.image-preview {
  position: relative;
  width: 100%;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 8px;
  cursor: pointer;
}
.image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.image-preview.empty {
  border: 2px dashed var(--ion-color-medium);
  background-color: var(--ion-color-light);
}
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--ion-color-medium);
  font-size: 14px;
}
.empty-state ion-icon {
  font-size: 30px;
  margin-bottom: 5px;
}
.edit-overlay {
  position: absolute;
  bottom: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  grid-gap: 5px;
  gap: 5px;
  background: rgba(0, 0, 0, 0.6);
  padding: 4px 8px;
  border-radius: 4px;
  color: white;
  font-size: 12px;
  pointer-events: none;
}
.image-preview .close-icon {
  position: absolute;
  top: 5px;
  right: 5px;
  font-size: 20px;
  color: red;
  display: none;
  cursor: pointer;
  z-index: 3;
}
.image-preview:hover .close-icon {
  display: block;
  /* Show on hover */
}
.color-swatch {
  width: 24px;
  height: 24px;
  border: 1px solid #666;
  border-radius: 4px;
}
.color-picker-row {
  display: flex;
  align-items: center;
  grid-gap: 8px;
  gap: 8px;
}
.color-picker-row ion-input {
  flex: 1;
}
.color-swatch {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  border: 1px solid #ccc;
}
.badge {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 3px;
}
ion-thumbnail,
ion-avatar {
  position: relative;
}
ion-thumbnail .badge,
ion-avatar .badge {
  position: absolute;
  right: 0;
  margin: 0;
  transform: translateX(50%);
  width: 12px;
  height: 12px;
}
.use-academy-branding ion-fab > ion-fab-button {
  --background: var(--player-color-primary, var(--ion-color-primary, #3880ff));
}
.transparent-fabs ion-fab > ion-fab-button {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --background: transparent;
  --color: var(--player-color-primary, var(--ion-color-primary, #3880ff));
  --border-color: var(--player-color-primary, var(--ion-color-primary, #3880ff));
  --box-shadow: none;
}
.fab-horizontal-end,
.fab-horizontal-start {
  position: fixed;
}
.relative-fab-container {
  position: relative;
}
ion-fab.relative-fab {
  position: absolute;
  bottom: 16px;
  right: 16px;
}
.relative-fab-add ion-fab {
  position: absolute;
  bottom: 16px;
  left: 16px;
}
/* FAB POSITIONING FIX
 FOR STATUS BAR OVERLAY ON IPHONE AND ANDROID
 StatusBar.setOverlaysWebView({ overlay: true }) */
.fab-vertical-top {
  top: max(10px, 24px);
  top: max(10px, var(--default-notch-inset));
  top: max(10px, 1.1 * env(safe-area-inset-top, 24px));
  top: max(10px, 1.1 * env(safe-area-inset-top, var(--default-notch-inset)));
}
.box-shadow {
  box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
}
.card-corner-button {
  float: right;
  padding: 16px;
}
.card-with-button ion-card-title {
  display: inline-block;
  padding: 16px;
}
.ion-card {
  background: #FFF;
  background: var(--ion-card-color, #FFF);
  --background: var(--ion-card-color, #FFF);
  margin: 10px;
  border-radius: 16px;
  border-radius: var(--ion-border-radius, var(--player-border-radius, 16px));
  box-shadow: var(--app-card-shadow);
}
.calendar-day.calendar-day-active::after {
  border: 1px solid #3880ff;
  border: 1px solid var(--player-color-primary, #3880ff);
  background: #3880ff;
  background: var(--player-color-primary, #3880ff);
}
.calendar {
  text-align: center;
}
.calendar.calendar-full-width {
  width: 100%;
}
.calendar.calendar-full-width .chip {
  width: 56px;
  height: 56px;
  font-size: 18px;
}
@media only screen and (max-width: 768px) {
  .calendar.calendar-full-width .chip {
    width: 32px;
    height: 32px;
  }
}
.chip {
  background-color: #F50B0B;
  background-color: var(--player-color-danger, #F50B0B);
  border-radius: 50%;
  width: 32px;
  height: 32px;
  color: #FFF;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2px;
}
.chip.success {
  background-color: #50D615;
  background-color: var(--player-color-success, #50D615);
}
.chip.warn {
  background-color: #EFAF0A;
  background-color: var(--player-color-warn, #EFAF0A);
}
.chip.danger {
  background-color: #F50B0B;
  background-color: var(--player-color-danger, #F50B0B);
}
.chip.future, .chip.past {
  cursor: default !important;
  background-color: #DDD !important;
}
.chip.future span, .chip.past span {
  opacity: 0.7;
}
.chip.next-month {
  cursor: default !important;
}
.chip.next-month span {
  display: none;
}
.chip.not-my-academy {
  opacity: 0.4;
  filter: grayscale(60%);
}
.chip .primary-value {
  display: block;
}
.chip .secondary-value {
  display: none;
}
.chip:hover {
  cursor: pointer;
  font-size: 9px;
  z-index: 69;
}
.chip:hover.success {
  background-color: #3a9811 !important;
}
.chip:hover.exceptional {
  background-color: #206203 !important;
}
.chip:hover.warn {
  background-color: #b58508 !important;
}
.chip:hover.danger {
  background-color: #b00808 !important;
}
.chip:hover.future, .chip:hover.past {
  background-color: #DDD !important;
}
.chip:hover .primary-value {
  display: none;
}
.chip:hover .secondary-value {
  display: block;
  font-weight: bold;
}
@media (prefers-color-scheme: dark) {
  .chip.future, .chip.past {
    background-color: #202020;
  }
}
.tooltip-wrapper + .tooltip-wrapper {
  margin-top: 10px;
}
.tooltip-wrapper {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.tooltip {
  position: relative;
}
.tooltip::before {
  position: absolute;
  content: " ";
  background-color: #010101;
  width: 15px;
  height: 15px;
  z-index: 500;
  opacity: 0;
  transition: all cubic-bezier(0.17, 0.67, 0.5, 0.71) 100ms;
  pointer-events: none;
}
.tooltip::after {
  content: attr(data-tooltip-text);
  white-space: nowrap;
  background-color: #010101;
  border-radius: 5px;
  color: white;
  position: absolute;
  text-align: center;
  z-index: 555;
  opacity: 0;
  transition: all cubic-bezier(0.17, 0.67, 0.5, 0.71) 100ms;
  pointer-events: none;
  height: 30px;
  display: flex;
  align-items: center;
  padding: 0 0.5555555556rem;
}
.tooltip:hover::before, .tooltip:hover::after {
  opacity: 1;
}
.tooltip.t-top::before {
  top: 0;
  left: 50%;
  transform: translate(-50%, 0) rotate(45deg);
}
.tooltip.t-top::after {
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.tooltip.t-top:hover::before {
  transform: translate(-50%, calc(-100% - 5px)) rotate(45deg);
}
.tooltip.t-top:hover::after {
  transform: translate(-50%, calc(-100% - 10px));
}
tooltip.t-left::before {
  top: 25%;
  left: 0;
  transform: translate(0, 0%) rotate(45deg);
}
.tooltip.t-left::after {
  top: 0;
  left: 0;
}
.tooltip.t-left:hover::before {
  transform: translate(calc(-100% - 5px)) rotate(45deg);
}
.tooltip.t-left:hover::after {
  transform: translate(calc(-100% - 10px));
}
.tooltip.t-right::before {
  top: 25%;
  right: 0;
  transform: translate(0, 0%) rotate(45deg);
}
.tooltip.t-right::after {
  top: 0;
  right: 0;
}
.tooltip.t-right:hover::before {
  transform: translate(calc(100% + 5px)) rotate(45deg);
}
.tooltip.t-right:hover::after {
  transform: translate(calc(100% + 10px));
}
.tooltip.t-bottom::before {
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0) rotate(45deg);
}
.tooltip.t-bottom::after {
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.tooltip.t-bottom:hover::before {
  transform: translate(-50%, calc(100% + 5px)) rotate(45deg);
}
.tooltip.t-bottom:hover::after {
  transform: translate(-50%, calc(100% + 10px));
}
.videoResponsive {
  padding-bottom: 56.25%;
  height: 0;
  position: relative;
  padding-top: 30px;
  overflow: hidden;
}
.videoResponsive iframe,
.videoResponsive object,
.videoResponsive embed {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
@media (prefers-color-scheme: dark) {
  .logo-wrapper .light {
    display: none;
  }
  .logo-wrapper .dark {
    display: block;
  }

  div.card {
    background: var(--ion-card-color);
  }

  ion-card.ion-activatable:not(.ion-color) {
    background: rgba(var(--ion-background-color-rgb), 0.9);
  }

  app-program-preview .programWeek ion-list {
    background: var(--ion-background-color);
  }
}
@media (prefers-color-scheme: light) {
  .logo-wrapper .light {
    display: block;
  }
  .logo-wrapper .dark {
    display: none;
  }

  ion-content {
    --ion-background-color:#f4f5f8;
  }

  ion-menu ion-content {
    --ion-background-color:#fff;
  }

  .inputs-filled ion-item {
    --background: var(--ion-card-color, #FFF);
  }

  div.card {
    background: #FFF;
    background: var(--ion-card-color, #FFF);
  }

  ion-card.ion-activatable:not(.ion-color) {
    background: rgba(var(--ion-background-color-rgb), 0.8);
  }

  app-program-preview .programWeeks ion-list {
    background: #FFF;
    background: var(--ion-card-color, #FFF);
  }

  ion-radio-group ion-item {
    --background:#f4f5f8;
  }
}
.academy {
  /* Only brand buttons that explicitly declare a color */
}
.academy ion-button.ion-color {
  --border-color: var(--academy-color-primary);
  --ion-color-base: var(--academy-color-primary) !important;
}
.academy ion-button.ion-color.button-has-icon-only {
  --color: var(--academy-color-primary);
}
.academy .button-solid {
  --background: var(--academy-color-primary, #3880ff);
  --color: var(--player-color-primary-contrast, #fff);
}
/*
.player {
  ion-button {
    // --color: var(--academy-color-primary);
    --border-color: var(--academy-color-primary);
    --ion-color-base: var(--academy-color-primary) !important;
    &.button-has-icon-only {
      --color: var(--academy-color-primary);
    }
  }
*/
.academy .masthead ion-button.button-has-icon-only,
.player .masthead ion-button.button-has-icon-only,
ion-button.button-primary-contrast {
  --color: var(--player-color-primary-contrast, #fff) !important;
}
.use-academy-branding h1,
.use-academy-branding h2,
.use-academy-branding h3,
.use-academy-branding h4,
.use-academy-branding h5,
.use-academy-branding p,
.use-academy-branding .text {
  color: #000;
  color: var(--ion-text-color, #000);
}
.use-academy-branding.dark-background h1,
.use-academy-branding.dark-background h2,
.use-academy-branding.dark-background h3,
.use-academy-branding.dark-background h4,
.use-academy-branding.dark-background h5,
.use-academy-branding.dark-background p,
.use-academy-branding.dark-background .text {
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
ion-content.player {
  --background: var(--player-color-bg, var(--ion-background-color));
}
app-program-builder-player-preview .player .player-content,
.player-bg {
  background: var(--ion-background-color);
  background: var(--player-color-bg, var(--ion-background-color));
}
@media (prefers-color-scheme: dark) {
  app-program-builder-player-preview .player .player-content,
.player-bg {
    background: var(--ion-background-color);
    background: var(--player-color-bg-darkMode, var(--ion-background-color));
  }
}
ion-content.player .page-content {
  --background: var(--ion-background-color);
}
.bgImage,
.program-background {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}
.bgDarken {
  background-color: #0005;
  background-blend-mode: darken;
}
.player .program-background {
  position: fixed;
  opacity: 0.3;
}
.program-bottom-fade {
  background: linear-gradient(0deg, rgba(var(--ion-background-color-rgb), 1) 0%, rgba(var(--ion-background-color-rgb), 0) 100%);
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 120px;
  z-index: 100;
  pointer-events: none;
}
.program-bottom-fade-large {
  background: linear-gradient(0deg, rgba(var(--ion-background-color-rgb), 1) 0%, rgba(var(--ion-background-color-rgb), 1) 60%, rgba(var(--ion-background-color-rgb), 0) 100%);
  height: 130px;
}
.dark-background .program-bottom-fade {
  --custom-gradient-color: var(--enrollment-screen-background-color, #F00);
  background: var(--custom-gradient-color);
  -webkit-mask-image: linear-gradient(0deg, black 0%, rgba(0, 0, 0, 0.7) 60%, rgba(0, 0, 0, 0.5) 80%, rgba(0, 0, 0, 0) 100%);
          mask-image: linear-gradient(0deg, black 0%, rgba(0, 0, 0, 0.7) 60%, rgba(0, 0, 0, 0.5) 80%, rgba(0, 0, 0, 0) 100%);
}
.program-builder app-questions-slider .player {
  position: relative;
}
.program-builder .program-bottom-fade {
  position: absolute;
}
.program-wrapper {
  z-index: 2;
  display: block;
  position: relative;
  z-index: 1;
}
.top-left-controls {
  position: absolute;
  top: 0;
  right: 0;
}
.vertical-align {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
}
.vertical-align .question {
  text-align: center;
  width: 100%;
}
.header-with-buttons {
  display: flex;
  padding: 8px;
}
.round-edges,
.inherit-border-radius {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
  overflow: hidden;
}
ion-popover:has(app-habit-activated-popover)::part(content) {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.footer {
  background: var(--ion-card-color);
  padding: 8px;
}
.footer-bar {
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 99999;
}
.footer-bar-fixed {
  position: fixed;
  bottom: 0;
  width: 100%;
  padding-bottom: 0px;
  z-index: 99999;
  background: var(--ion-background-color);
}
.footer-spacer,
.spacer {
  height: 90px;
}
.achievement-cstm-popover .popover-viewport {
  overflow: unset;
}
.achievement-popover {
  --background: var(--player-color-primary, #50D615);
  color: #FFF;
  color: var(--player-color-light, #FFF);
}
.achievement-popover .achievement h1 {
  font-size: 42px;
}
.achievement-popover .achievement p {
  font-size: 22px;
}
.achievement-popover .achievement .fineprint {
  font-size: 18px;
}
.achievement-popover .achievement ion-button {
  --color: var(--player-color-light, #FFF);
  --border-color: var(--player-color-primary, #FFF);
}
.achievement-cstm-popover .achievement {
  display: flex;
  max-height: 95%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  grid-gap: 8px;
  gap: 8px;
}
.achievement-cstm-popover .achievement .vertical-align {
  position: unset;
  top: unset;
  transform: unset;
}
.achievement-cstm-popover .achievement .footer-bar {
  position: unset;
  bottom: unset;
}
.unselected-card {
  background: var(--ion-background-color);
  color: var(--player-color-medium);
  box-shadow: none;
  border-width: 1px;
  border-style: solid;
  border-color: var(--player-color-light);
}
.player {
  /*
    Only apply brand colors to buttons that explicitly opt into Ionic's color system (have .ion-color).
    This prevents all buttons from being colored by default and restores Ionic's neutral defaults
    unless a color is specified via [color] (which adds the .ion-color class).
  */
}
.player .back-button {
  top: 16px;
  left: 16px;
  position: absolute;
}
.player .section-title {
  font-weight: 800;
  font-family: var(--ion-font-family-condensed);
  padding: 24px 16px 0 16px;
}
.player .header {
  padding: 24px 16px 0 16px;
  font-size: 16px;
  text-transform: uppercase;
  font-weight: 100;
  margin: 0;
}
.player .header-with-button {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.player .page-center {
  background: transparent;
}
.player ion-card {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.player ion-item.rounded-input {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.player ion-item-sliding {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.player app-activities-feed ion-label.ios {
  font-size: 14px;
}
.player ion-button.ion-color:not(.ion-color-warning, .ion-color-danger, .light-background) {
  --color: var(--ion-text-color);
  --border-color: var(--player-color-primary, var(--ion-color-primary));
  --ion-color-base: var(--player-color-primary, var(--academy-color-primary)) !important;
  --border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.player ion-button.ion-color:not(.ion-color-warning, .ion-color-danger, .light-background).button-solid {
  --color: var(--ion-color-primary-contrast);
  --background: var(--player-color-primary, var(--ion-color-primary));
}
.player ion-button.ion-color:not(.ion-color-warning, .ion-color-danger, .light-background).button-outline {
  --color: var(--player-color-primary, var(--ion-color-primary));
}
.player ion-button.overlay-video {
  --color: var(--ion-color-primary-contrast);
}
.player .dark-background ion-button.ion-color {
  --border-color: var(--ion-color-primary-contrast);
  --color: var(--ion-color-primary-contrast);
}
.player .dark-background ion-button.ion-color.button-outline {
  --color: var(--ion-color-primary-contrast);
  --border-color: var(--ion-color-primary-contrast);
}
.player .dark-background ion-button.ion-color h1,
.player .dark-background ion-button.ion-color p {
  color: var(--ion-color-primary-contrast);
}
.player:not(.hasAlerts) .habit-grid.overlapMasthead {
  margin-top: -3em;
}
.player.hasAlerts .overlapMasthead {
  margin-top: 0em !important;
}
.player app-habits-feed .icon,
.player .habit-feed .icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
}
.player .habit-grid.square-grid .icon {
  width: 100%;
  height: 100%;
}
.player app-habits-feed .icon img {
  width: 100%;
}
.player .completed-today {
  opacity: 0.6;
}
.player .completed-today ion-label {
  text-decoration: line-through;
}
.player .completed-today img {
  content: url("/assets/icons/complete.svg");
}
.player .active,
.player .highlighted-card {
  background: #000;
  background: var(--player-color-primary, #000);
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.player .active ion-card-title,
.player .active ion-card-subtitle,
.player .highlighted-card ion-card-title,
.player .highlighted-card ion-card-subtitle {
  color: var(--player-color-dark);
}
.player .active ion-img,
.player .highlighted-card ion-img {
  filter: invert(1) brightness(2) saturate(0);
}
.player .questions.dark-background h1, .player .questions.dark-background p {
  color: #FFF;
  color: var(--ion-text-color, var(--player-color-primary-contrast, #FFF));
}
.player .questions .equipmentItems ion-card-content {
  display: flex;
  justify-content: center;
  flex-direction: column;
}
.player .questions ion-slide h1 {
  margin: 20px;
}
.player .questions ion-card {
  color: var(--player-color-medium);
  box-shadow: none;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  margin: 10px;
}
.player .questions ion-card.ion-activatable {
  opacity: 0.9;
}
.player .questions ion-card.active {
  opacity: 1;
}
.player .questions ion-card ion-card-content {
  flex-grow: 3;
  -webkit-padding-start: 32px;
          padding-inline-start: 32px;
  padding-top: 16px;
  padding-bottom: 16px;
  -webkit-padding-end: 16px;
          padding-inline-end: 16px;
}
.player .questions ion-card ion-card-content.ios {
  padding: 8px 32px;
}
.player .questions ion-card ion-card-content ion-card-title {
  font-size: 20px;
}
.player .questions ion-card .card-check-box {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
.player .questions ion-card .card-check-box ion-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  opacity: 0.2;
}
.player .questions ion-card .card-check-box .card-content {
  text-align: left;
  align-self: center;
}
.player .questions ion-card ion-card-title,
.player .questions ion-card ion-card-subtitle {
  color: var(--player-color-medium);
}
.player .questions .active,
.player .questions .highlighted-card {
  background: var(--ion-card-color);
  --color: var(--ion-text-color);
  opacity: 1;
  border-color: var(--ion-color-light);
  box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
}
.player .questions .active .card-check-box ion-icon,
.player .questions .highlighted-card .card-check-box ion-icon {
  opacity: 1;
  fill: #2dd36f;
  fill: var(--player-color-success, var(--ion-color-success, #2dd36f));
}
.player .questions .active ion-card-title,
.player .questions .active ion-card-subtitle,
.player .questions .highlighted-card ion-card-title,
.player .questions .highlighted-card ion-card-subtitle {
  color: var(--player-color-dark);
}
.player .questions .notifications div {
  width: 100%;
}
.player .questions .notifications ion-card .card-content {
  text-align: center;
}
.player .categories {
  display: flex;
}
.player .categories div {
  border-radius: 4px;
  padding: 8px;
  margin: 8px;
}
.player .swiper-pagination-bullet {
  background: var(--player-color-light);
  opacity: 0.4;
}
.player .swiper-pagination-bullet-active {
  background: var(--ion-color-primary);
  background: var(--player-color-primary, var(--ion-color-primary));
  opacity: 0.8 !important;
}
.player .avatar-wrapper {
  height: 200px;
  max-height: 200px;
  margin: 40px;
}
.player .avatar {
  width: auto;
  float: left;
}
.player .add-activity {
  min-width: 56px;
}
.player app-biometric-select .overlay,
.player app-biometric-select-v1 .overlay {
  background: rgba(0, 0, 0, 0.6);
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 999;
  opacity: 0;
  transition: all 0.7s ease;
  -webkit-backdrop-filter: blur(7px);
          backdrop-filter: blur(7px);
  pointer-events: none;
  position: fixed;
}
.player app-biometric-select .overlay-heads-up,
.player app-biometric-select-v1 .overlay-heads-up {
  position: absolute;
  top: 0;
  width: 100%;
  color: var(--ion-text-color);
  left: 0;
  display: block;
  z-index: 9999999999;
  text-align: center;
  font-weight: 100 !important;
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
  position: fixed;
}
.player .biometric {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9999;
  background: var(--ion-background-color);
  background: var(--player-color-bg, var(--ion-background-color));
  width: 100%;
  box-shadow: 1px 1px 24px #00000070;
  transform: translateY(0%);
  transition: all 1s ease;
  max-height: 60%;
  overflow-y: scroll;
}
.player .biometric .logo-wrapper {
  max-width: 180px;
}
.player .biometric.show-multiple {
  max-height: 100%;
  top: 0;
  text-align: center;
}
.player .biometric.show-multiple .question {
  width: 100%;
}
.player .biometric .question {
  line-height: 36px;
  font-size: 18px;
  padding-top: 8px;
  font-weight: 700;
  cursor: pointer;
}
.player .biometric .icon {
  height: 40px;
  width: 40px;
  margin: auto;
}
.player .biometric .value {
  font-size: 24px;
  text-align: center;
}
.player .biometric .swiper-slide {
  flex-direction: column;
}
.player .biometric ion-card {
  margin: 0 4px;
  height: 64px;
  display: grid;
  align-items: center;
  width: 90%;
}
.player .biometric.stool ion-card {
  margin: 4px;
}
.player .biometric .biometric-values .value::after {
  content: "—";
  padding-left: 8px;
}
.player .biometric .biometric-values ion-card {
  margin-bottom: 8px;
  align-self: center;
}
.player .biometric .biometric-values p {
  -webkit-margin-before: 0.5em;
          margin-block-start: 0.5em;
  -webkit-margin-after: 0.5em;
          margin-block-end: 0.5em;
  font-size: 10px;
}
.player .biometric .biometric-vertical-layout ion-card {
  height: auto;
}
.player .biometric .biometric-vertical-layout p {
  font-size: 16px;
  padding-right: 8px;
}
.player .biometric .biometric-vertical-layout ion-card-content {
  padding: 4px 40px;
  justify-content: normal;
}
.player .biometric ion-card-content {
  padding: 4px;
}
.player .biometric .drag-shelf {
  height: 4px;
  background: #ccc;
  width: 64px;
  border-radius: 4px;
  position: absolute;
  left: 50%;
  top: 4px;
  transform: translateX(-50%);
  cursor: pointer;
}
.player .biometric h1.biometric-name {
  font-size: 14px;
  padding-left: 4px;
  margin-top: 8px;
  margin-bottom: 8px;
  font-weight: lighter;
}
.player .biometric .thank-you-screen .vertical-align {
  padding: 0 16px;
}
.player .biometric .thank-you-screen ion-icon {
  font-size: 64px;
}
.player .biometric .thank-you-screen h1 {
  font-size: 42px;
}
.player .biometric .thank-you-screen p {
  font-size: 22px;
}
.player .biometric .thank-you-screen .fineprint {
  font-size: 16px;
}
.player .biometric ion-slides.center-content .swiper-wrapper {
  justify-content: center;
}
@media (prefers-color-scheme: dark) {
  .player .biometric {
    background: var(--ion-background-color);
    background: var(--player-color-bg-darkMode, var(--ion-background-color));
  }
  .player .biometric ion-card {
    background: var(--ion-background-color);
    background: var(--player-card-darkMode, var(--ion-background-color));
  }
  .player .questions .active ion-card-title,
.player .questions .active ion-card-subtitle,
.player .questions .highlighted-card ion-card-title,
.player .questions .highlighted-card ion-card-subtitle {
    color: var(--ion-text-color);
  }
}
.player .achievement-popover {
  --background: var(--player-color-success, #50D615);
  color: #FFF;
  color: var(--player-color-light, #FFF);
}
.player .achievement {
  --background: var(--player-color-success, #50D615);
  color: #FFF;
  color: var(--player-color-light, #FFF);
}
.player .experience-points {
  padding: 8px;
  text-align: center;
  margin: auto;
  width: 80%;
  border-radius: var(--ion-border-radius);
}
.player .habit .head {
  min-height: 220px;
}
.player .habit ion-img {
  height: 160px;
  width: auto;
  float: left;
  margin-top: 24px;
}
.player .habit .sessions,
.player .habit .copy {
  padding: 10px;
  width: 100%;
  border-radius: 4px;
}
.player .habit .sessions {
  float: right;
  font-size: 18px;
  font-weight: bold;
  padding: 8px 16px;
}
.player .programTile {
  margin: 40px auto 10px;
}
.player .end-quote {
  margin-top: 40px;
  margin-bottom: 120px;
}
.player .end-quote p {
  font-size: 24px;
  font-weight: 100;
  margin: 0;
}
.player .end-element {
  margin-bottom: 120px;
}
@media only screen and (max-width: 768px) {
  .player .end-quote {
    margin-top: 8px;
    margin-bottom: 16px;
  }
}
.biometrics-open app-biometric-select .overlay,
.biometrics-open app-biometric-select-v1 .overlay,
.biometrics-maximized app-biometric-select .overlay,
.biometrics-maximized app-biometric-select-v1 .overlay {
  display: block;
  opacity: 1;
  pointer-events: all;
}
.biometrics-open app-biometric-select .overlay-heads-up,
.biometrics-open app-biometric-select-v1 .overlay-heads-up,
.biometrics-maximized app-biometric-select .overlay-heads-up,
.biometrics-maximized app-biometric-select-v1 .overlay-heads-up {
  opacity: 0.4;
}
.biometrics-open app-biometric-select .overlay-heads-up.show-multiple,
.biometrics-open app-biometric-select-v1 .overlay-heads-up.show-multiple,
.biometrics-maximized app-biometric-select .overlay-heads-up.show-multiple,
.biometrics-maximized app-biometric-select-v1 .overlay-heads-up.show-multiple {
  display: none;
}
.biometrics-maximized ion-router-outlet {
  z-index: 100000 !important;
}
.biometric-fab {
  display: none;
}
.biometrics-minimized .biometric-fab {
  position: fixed;
  bottom: 8px;
  right: 8px;
  border-radius: 50%;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.06);
  cursor: pointer;
  width: 64px;
  height: 64px;
  display: block;
  background: #fff;
  z-index: 9999;
}
.scrolled-down .biometric {
  transform: translateY(100%);
  transition: all 1s ease;
}
.scrolled-down.biometrics-maximized .biometric {
  transform: translateY(0%);
  transition: all 1s ease;
}
.biometrics-minimized .biometric {
  transform: translateY(100%);
  transition: all 1s ease;
}
body:not(.biometrics-minimized) .last-element {
  padding-bottom: 200px;
}
.biometrics-open .fab-vertical-bottom,
.biometrics-open .fab-vertical-top,
.biometrics-open .developer-bar,
.biometrics-maximized .fab-vertical-bottom,
.biometrics-maximized .fab-vertical-top,
.biometrics-maximized .developer-bar {
  display: none;
}
/* When biometrics full view is open, hide tabs and the player header */
body.biometrics-full-view {
  /* Hide only the tab bar (keep router outlet/content visible) */
  /* Hide headers (toolbar) while full view is open */
  /* Also hide the non-tabs top-right controls container */
}
body.biometrics-full-view ion-tab-bar {
  display: none !important;
}
body.biometrics-full-view ion-header {
  display: none !important;
}
body.biometrics-full-view app-program-player .top-right {
  display: none !important;
}
/* Fallback: when legacy hide-tabs class is used, also hide header/controls */
body.hide-tabs app-program-player ion-header {
  display: none !important;
}
body.hide-tabs app-program-player .top-right {
  display: none !important;
}
/* STRONGER TAB HIDE (fallback when Ionic shadow DOM styles override display) */
body.hide-tabs ion-tab-bar,
body.hide-tabs ion-tabs ion-tab-bar,
body.hide-tabs ion-app ion-tab-bar {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
/* In case the tab bar reserves space via height */
body.hide-tabs ion-tab-bar {
  height: 0 !important;
}
/* If ion-tabs wrapper itself imposes layout, neutralize */
body.hide-tabs ion-tabs {
  padding-bottom: 0 !important;
}
.programTile:not(.without-hover) {
  cursor: pointer;
  box-shadow: 0px 6px 8px 0px rgba(2, 2, 2, 0.12);
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  width: 320px;
  height: 320px;
  /* Ensure all text within program tiles stays white regardless of other global typography rules */
}
.programTile:not(.without-hover) .bgImage {
  position: absolute;
}
.programTile:not(.without-hover) .enrolled .bgImage {
  opacity: 0.5;
}
.programTile:not(.without-hover) .content {
  z-index: 2;
  position: relative;
  color: #FFF;
  padding: 16px;
  background: rgba(0, 0, 0, 0.3);
  height: 100%;
  text-align: center;
}
.programTile:not(.without-hover) .content *,
.programTile:not(.without-hover) .title,
.programTile:not(.without-hover) .description,
.programTile:not(.without-hover) .equipment,
.programTile:not(.without-hover) .duration,
.programTile:not(.without-hover) .price,
.programTile:not(.without-hover) .cta .button {
  color: #fff !important;
}
.programTile:not(.without-hover) .price {
  opacity: 0;
}
.programTile:not(.without-hover) .description {
  opacity: 0;
  margin: 0;
}
.programTile:not(.without-hover) .level {
  background-color: #24c069;
  background-color: var(--player-color-primary, #24c069);
  display: inline-block;
  padding: 4px 8px;
  margin: 8px;
  border-radius: 4px;
  text-transform: uppercase;
  font-size: 12px;
}
.programTile:not(.without-hover) .level-badge {
  display: inline-block;
  padding: 4px 8px;
  margin: 8px;
  border-radius: 4px;
  text-transform: uppercase;
  font-size: 12px;
}
.programTile:not(.without-hover) .cta {
  opacity: 0;
  position: absolute;
  bottom: 30px;
  left: 0;
  width: 100%;
  text-align: center;
}
.programTile:not(.without-hover) .button {
  background-color: #24c069;
  background-color: var(--player-color-primary, #24c069);
  display: inline-block;
  padding: 16px;
  border-radius: 8px;
  cursor: pointer;
  text-transform: uppercase;
  font-weight: bold;
  color: #FFF;
}
.programTile:not(.without-hover) .title {
  font-size: 26px;
  font-weight: 900;
  padding: 0 30px;
  margin: 98px auto 0;
  text-align: center;
  line-height: 32px;
  letter-spacing: -0.5px;
  text-decoration: none;
  display: block;
  position: relative;
}
.programTile:not(.without-hover) .equipment {
  color: #fff;
  opacity: 0.65;
  font-size: 13px;
  font-weight: 600;
  position: absolute;
  bottom: 25px;
  left: 30px;
  line-height: 18px;
  letter-spacing: -0.3px;
  text-transform: uppercase;
}
.programTile:not(.without-hover) .duration {
  color: #fff;
  opacity: 0.65;
  font-size: 13px;
  font-weight: 600;
  position: absolute;
  bottom: 25px;
  right: 30px;
  text-align: center;
  line-height: 20px;
  letter-spacing: -0.3px;
}
.programTile:not(.without-hover) .duration .dur {
  font-size: 28px;
  display: block;
  font-weight: 900;
}
.programTile:not(.without-hover) * {
  transition: all 0.25s ease !important;
}
.programTile:not(.without-hover) :hover .content, .programTile:not(.without-hover) .hover .content {
  background: rgba(0, 0, 0, 0.6);
}
.programTile:not(.without-hover) :hover .description, .programTile:not(.without-hover) :hover .cta, .programTile:not(.without-hover) :hover .price, .programTile:not(.without-hover) .hover .description, .programTile:not(.without-hover) .hover .cta, .programTile:not(.without-hover) .hover .price {
  opacity: 1;
}
.programTile:not(.without-hover) :hover .level, .programTile:not(.without-hover) :hover .level-badge, .programTile:not(.without-hover) .hover .level, .programTile:not(.without-hover) .hover .level-badge {
  opacity: 0;
  height: 0;
  padding: 0;
  margin: 0;
}
.programTile:not(.without-hover) :hover .equipment, .programTile:not(.without-hover) :hover .duration, .programTile:not(.without-hover) .hover .equipment, .programTile:not(.without-hover) .hover .duration {
  opacity: 0;
}
.programTile:not(.without-hover) :hover .title, .programTile:not(.without-hover) .hover .title {
  font-size: 19px;
  margin-top: 25px;
  padding: 0 60px;
  line-height: 24px;
}
.experiencePoints {
  text-align: center;
  font-size: 18px;
}
.disabled {
  opacity: 0.3;
}
.hidden {
  display: none !important;
}
.player-mobile-preview .notifications-manage {
  max-width: 600px;
  margin: auto;
}
.notifications-manage .questions ion-card ion-card-content {
  flex-grow: 3;
  -webkit-padding-start: 10px;
          padding-inline-start: 10px;
  padding-top: 10px;
  padding-bottom: 10px;
  -webkit-padding-end: 10px;
          padding-inline-end: 10px;
}
.notifications-manage ion-button.button-solid {
  --color: var(--ion-color-primary-contrast, #fff);
  --background: var(--ion-color-primary, #3880ff);
  --ion-color-base: var(--ion-color-primary, #3880ff) !important;
}
.messages {
  display: flex;
  flex-direction: column-reverse;
}
.messages .message {
  padding: 8px;
  align-self: flex-start;
  max-width: 680px;
}
.messages .message > div {
  background: var(--ion-card-color);
  color: var(--ion-text-color);
  border-radius: 16px;
  padding: 8px;
  display: flex;
  justify-content: space-between;
}
.messages .message.my-reply {
  align-self: flex-end;
}
.messages .message.my-reply > div {
  flex-direction: row-reverse;
}
.messages .message ion-label {
  padding: 0 24px;
}
.messages .message ion-avatar {
  flex-shrink: 0;
}
.messages .message .author {
  font-weight: 100;
}
@media (prefers-color-scheme: dark) {
  ion-content.player {
    --background: var(--ion-background-color);
  }

  app-program-builder-player-preview .player-content {
    background: var(--ion-background-color);
  }

  .player ion-button {
    --color: var(--player-color-light);
  }
  .player ion-button.button-solid {
    --color: var(--player-color-light);
    --border-color: var(--player-color-light);
  }
  .player ion-button.button-outline {
    --color: var(--player-color-light);
  }
  .player .active,
.player .highlighted-card {
    background-color: #FFF !important;
    background-color: var(--player-color-primary, #FFF) !important;
    color: #000;
    color: var(--player-color-light, #000);
  }

  .invertIconsInDarkMode app-habit-icon,
.invertIconsInDarkMode .card > .icon,
.invertIconsInDarkMode ion-item > .icon,
.invertIconsInDarkMode img.icon,
.invertIconsInDarkMode ion-card > .icon,
.invertIconsInDarkMode ion-thumbnail > .icon {
    filter: invert(1) brightness(2) saturate(0);
  }

  .invertIconsInDarkMode ion-img,
.invertIconsInDarkMode ion-img.icon,
.invertIconsInDarkMode ion-thumbnail,
.mood ion-img.icon,
.stool ion-img.icon,
.biometric ion-img.icon,
.player .biometric .icon {
    filter: invert(1) brightness(2) saturate(0);
  }

  .stool ion-img.icon {
    mix-blend-mode: color-dodge;
  }
}
@media only screen and (min-width: 768px) {
  body.player-mobile-preview {
    background: #667075;
  }

  .player-mobile-preview app-program {
    z-index: 101;
    max-width: 480px;
    max-height: 900px;
    margin: auto;
    border-radius: 8px;
    box-shadow: 0px 4px 16px #444;
  }

  .player-main-content {
    max-width: 800px;
    margin: auto;
  }
}
.expandable_section {
  position: relative;
  min-width: 288px;
  margin: 8px;
  padding: 0;
  z-index: 999;
  background: var(--ion-card-color);
  border: 1px solid var(--ion-border-color);
  border-radius: 4px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.06);
}
.expandable_section.fixed_width {
  max-width: 960px;
}
.expandable_section .expandable_section_header {
  padding: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.expandable_section .expandable_section_header h2 {
  flex-grow: 1;
  margin-left: 24px;
  margin-top: 16px;
  margin-bottom: 16px;
  text-transform: capitalize;
}
.expandable_section .expandable_section_header ion-icon {
  font-size: 40px;
}
.expandable_section .expandable_section_header .actions {
  opacity: 0.5;
}
.expandable_section .expandable_section_progress {
  background-color: var(--ion-color-light);
  height: 4px;
  width: 100%;
}
.expandable_section .expandable_section_progress span {
  width: 0%;
  height: 100%;
  background-color: var(--ion-color-success);
  display: block;
}
.expandable_section.expanded .section_total_progress {
  display: none;
}
.expandable_section .expandable_section_content {
  padding-bottom: 40px;
}
.expandable_section_progress {
  background-color: #DDD;
  background-color: var(--ion-color-light, #DDD);
  height: 4px;
  width: 100%;
  margin-top: 8px;
  border-radius: 4px;
  overflow: hidden;
}
.expandable_section_progress span {
  width: 0%;
  height: 100%;
  background-color: var(--ion-color-medium);
  display: block;
}
.categoryStat {
  background: var(--ion-color-step-300);
  border-radius: var(--ion-border-radius);
  margin: 16px;
}
.categoryStat span {
  background-color: var(--ion-color-dark);
}
.mainStat {
  margin: 8px 8px 24px 8px;
}
.mainStat .expandable_section_progress {
  height: 8px;
}
.stat {
  padding: 4px;
  margin: 8px;
}
.dashboard .search-bar-with-buttons,
.global .search-bar-with-buttons,
.page .search-bar-with-buttons {
  display: flex;
  align-items: center;
}
.dashboard .search-bar-with-buttons .inline-button,
.global .search-bar-with-buttons .inline-button,
.page .search-bar-with-buttons .inline-button {
  margin-left: 8px;
}
.force-light-mode {
  --color: black;
}
.force-light-mode p,
.force-light-mode ion-item,
.force-light-mode h1 {
  color: #000;
}
.force-light-mode ion-item {
  --background: #fff;
  --color: #fff;
  --border-color: #d9d9d9;
}
.force-light-mode ion-item:hover {
  --background: #f2f2f2;
}
ion-card {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
  box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
  box-shadow: var(--app-card-shadow, rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px);
}
ion-card:not(.ion-color) {
  --background: var(--ion-card-color);
  --color: var(--ion-text-color);
}
.wrapper,
.card-padded,
.card-wrapper ion-card {
  margin: 10px !important;
}
ion-card.poster {
  padding: 0 !important;
  position: relative;
}
ion-card.poster ion-card-title {
  position: absolute;
  bottom: 16px;
  left: 16px;
  color: #fff;
  font-size: 18px;
  text-shadow: 1px 1px 1px black;
  line-height: 16px;
}
@media only screen and (min-width: 768px) {
  ion-card.poster ion-card-title {
    font-size: 24px;
  }
}
ion-card.empty {
  margin: 16px !important;
}
@media (prefers-color-scheme: dark) {
  .cards .card:not(.highlighted-card) {
    background: var(--ion-background-color);
    background: var(--player-card-darkMode, var(--ion-background-color));
    color: var(--ion-text-color);
    box-shadow: 1px 1px 8px rgba(49, 13, 0, 0.7);
  }
  .cards .card:not(.highlighted-card).card-ignore-shadow {
    box-shadow: inherit;
  }
  .cards ion-img {
    background: #494949;
  }
}
@media (prefers-color-scheme: light) {
  .cards .card:not(.highlighted-card) {
    background: rgba(var(--ion-background-color-rgb), 0.99);
    color: var(--ion-text-color);
    box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
  }
  .cards ion-img {
    background: #c4c4c4;
  }
}
.card {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.cards .card {
  display: flex;
  flex-direction: column;
  margin: 10px;
  overflow: hidden;
  cursor: pointer;
}
.cards .card .category {
  text-transform: capitalize;
}
.cards .card .category ion-badge, .cards .card .category ion-button {
  float: right;
}
.cards .card .subcategory,
.cards .card .category {
  text-transform: capitalize;
}
.cards .card h1 {
  margin-top: 8px;
  margin-left: 0;
  margin-right: 0;
  font-size: 28px;
  flex-grow: 1;
}
.cards .card-image {
  min-width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  height: 220px;
}
.cards ion-img {
  width: 300px;
  min-width: 300px;
  max-width: 300px;
}
.cards .card-content {
  margin: 24px;
}
app-habits-feed .cards .card h1 {
  margin: 8px;
  font-size: 28px;
  font-weight: normal;
  letter-spacing: 0.02em;
}
.cards-col .card {
  flex-direction: column;
  flex-grow: 1;
  height: calc(100% - 20px);
}
.cards-col .card-add {
  background: rgba(var(--ion-background-color-rgb), 0.3);
  border: 9px solid rgba(255, 255, 255, 0.2);
}
.cards-col .card-add .card-content {
  margin: auto;
}
.cards-col ion-slide {
  height: auto;
}
.cards-categories .card {
  max-width: 600px;
  margin: 24px auto;
}
.cards-categories .card h1 {
  color: #FFF;
  margin: 8px;
  font-size: 40px;
  text-shadow: 1px 1px 5px #000;
  font-weight: bolder;
  text-transform: uppercase;
}
@media only screen and (max-width: 576px) {
  ion-card {
    margin: 8px;
  }

  .cards .card {
    margin: 12px;
    flex-direction: column;
    width: 90vw;
    max-width: 370px;
  }
  .cards .card-image {
    width: 100%;
    height: 200px;
  }
  .cards ion-img {
    width: 100px;
    min-width: 100px;
    max-width: 100px;
  }
  .cards .card-content {
    margin: 16px;
  }

  .cards-categories .card {
    margin: 8px;
    flex-direction: column;
  }
  .cards-categories .card h1 {
    padding: 8px;
  }
  .cards-categories .card-image {
    width: 100%;
    height: 160px;
  }
  .cards-categories .card-content {
    margin: 8px;
  }
}
@media only screen and (max-width: 768px) {
  .dashboard ion-card {
    margin-left: 4px;
    margin-right: 4px;
  }
  .dashboard ion-card ion-card-content {
    padding-left: 0;
    padding-right: 0;
  }
  .dashboard ion-card ion-card-content ion-badge {
    margin-left: 2px;
  }
}
@media only screen and (min-width: 992px) {
  .cards-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
  }
  .cards-grid .card {
    flex-basis: 300px;
  }
}
/* CARD MODS */
.highlighted-card {
  background-color: var(--ion-color-primary);
  background: var(--ion-color-primary);
  color: #FFF;
  color: var(--ion-color-primary-contrast, #FFF);
}
.highlighted-card.danger,
.highlighted-card.danger ion-card-header {
  background-color: var(--ion-color-danger);
}
.highlighted-card ion-icon {
  color: #fff;
}
.highlighted-card ion-card-header {
  background-color: var(--ion-color-primary);
}
.highlighted-card ion-card-subtitle {
  color: #FFF;
}
.highlighted-card ion-card-title {
  color: #FFF;
}
.highlighted-card ion-card-content {
  color: #FFF;
}
ion-card.notification {
  background: var(--ion-color-warning);
}
ion-card.notification[color=success] {
  background: #0f0;
  background: var(--ion-color-success, #0f0);
}
ion-card.notification ion-card-title {
  font-size: 18px;
  font-weight: 400;
  opacity: 0.7;
  line-height: 140%;
}
.card-color-primary {
  background-color: var(--ion-color-primary) !important;
}
.card-color-success {
  background-color: var(--ion-color-success) !important;
}
.card-color-warning {
  background-color: var(--ion-color-warning) !important;
}
.card-color-danger {
  background-color: var(--ion-color-danger) !important;
}
/* POPOVERS */
.medium-popover::part(backdrop) {
  background-color: var(--ion-color-primary);
  background-color: var(--player-color-primary, var(--ion-color-primary));
}
.medium-popover::part(content) {
  width: 350px;
  margin: auto;
  border-radius: var(--ion-border-radius);
}
.large-popover,
.shareAcademyPopover {
  --ion-backdrop-color: var(--player-color-primary, var(--ion-color-primary));
}
.large-popover::part(content),
.shareAcademyPopover::part(content) {
  width: 95%;
  max-width: 500px;
  margin: auto;
}
.xlarge-popover::part(backdrop) {
  background-color: var(--ion-color-primary);
  background-color: var(--player-color-primary, var(--ion-color-primary));
}
.xlarge-popover::part(content) {
  width: 95%;
  max-width: 1200px;
  margin: auto;
  height: 95%;
  max-height: 95%;
}
.full-popover::part(content) {
  width: 98vw;
  height: 95%;
  max-height: 95%;
}
.popover-fixed-vertical::part(content) {
  width: 95%;
  height: 95%;
  max-height: 95%;
}
.fullscreen::part(backdrop) {
  background-color: var(--ion-color-primary);
  background-color: var(--player-color-primary, var(--ion-color-primary));
}
.fullscreen::part(content) {
  width: 100%;
  height: 100%;
  max-height: 100%;
  max-width: calc(100% - 24px);
  border-radius: 0;
}
/* Ion Select ALERT interface: widen and wrap option labels */
ion-alert.wide-select-alert {
  /* Try supported CSS vars first */
  --max-width: 96vw;
  --width: min(96vw, 640px);
}
/* Some Ionic versions support part selectors for inner pieces */
ion-alert.wide-select-alert::part(content) {
  max-width: 96vw;
  width: min(96vw, 640px);
}
/* Allow long radio labels inside the alert to wrap */
ion-alert.wide-select-alert::part(radio-label),
ion-alert.wide-select-alert::part(message),
ion-alert.wide-select-alert::part(header) {
  white-space: normal;
}
/* Ensure the options list can grow and scroll if needed */
ion-alert.wide-select-alert::part(radio-group) {
  max-height: 60vh;
  overflow: auto;
}
.full-screen-modal {
  --width: 100%;
  --height: 100%;
  --border-radius: 0;
  --margin: 0;
}
.popover_close {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  z-index: 999999;
  display: grid;
  align-items: center;
  cursor: pointer;
  transition: all 0.2s;
  opacity: 0.7;
  color: var(--ion-text-color);
  background: rgba(255, 255, 255, 0.2);
  border-bottom-left-radius: var(--ion-border-radius);
  border-radius: var(--ion-border-radius);
}
.popover_close_overlaps_image {
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.popover_close:hover {
  opacity: 1;
}
.popover_close span {
  text-align: center;
  font-weight: bold;
}
.popover_more,
.popover_like {
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 48px;
  z-index: 999999;
  display: grid;
  align-items: center;
  cursor: pointer;
  color: var(--ion-text-color);
  background: var(--ion-background-color);
}
.popover_more {
  left: unset;
  right: 0;
}
.popover_more ion-icon,
.popover_like ion-icon {
  margin: auto;
}
.popover-content {
  overflow: visible !important;
}
.popover-viewport {
  overflow: scroll;
}
.popover-viewport .masthead {
  position: relative;
}
.popover-viewport .masthead h1 {
  position: absolute;
  z-index: 9;
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.popover-viewport .masthead img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}
.popover-viewport .masthead p {
  position: absolute;
  bottom: 0;
  background: rgba(65, 60, 60, 0.3);
  margin: 0;
  padding: 16px 10px;
  font-size: 14px;
  margin: 8px;
  text-shadow: 1px 1px 1px #403f3f;
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.popover-with-footer .popover-viewport {
  height: 100%;
  padding-bottom: 80px;
  white-space: pre-line;
}
.popover-footer {
  position: absolute;
  bottom: 0;
  background: var(--ion-background-color);
  width: 100%;
}
.button_top_right {
  top: 8px;
  right: 8px;
  width: auto;
}
.dialog .dialog-header {
  padding: 16px;
  background-color: var(--ion-color-primary);
}
.dialog .dialog-header .dialog-title {
  padding: 8px;
  color: var(--ion-color-primary-contrast);
}
.dialog .billing-title p {
  color: var(--ion-color-primary);
}
.dialog .billing-body .billing-freefeatures {
  background-color: rgba(var(--ion-color-success), 0.25);
  font-size: 12px;
  color: var(--ion-color-success);
}
.dialog .billing-body .billing-freefeatures .billing-freefeatures-title {
  font-weight: bold;
}
app-player-add {
  border-radius: var(--ion-border-radius);
}
.subcategories ion-segment {
  display: flex;
  flex-wrap: wrap;
}
/* OTHER JAMBALAYA */
.shadow {
  box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
}
/* Fix issue on home/academy-landing-video topbar top shadow visible */
.notch-safe > .header-with-buttons.shadow {
  box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 4px 5px 0px;
}
ion-note.ios {
  font-size: 12px;
}
.has-round-edges ion-note.md.hydrated {
  padding-right: 8px;
  padding-top: 8px;
}
ion-note[slot=helper] {
  color: var(--ion-color-medium);
  font-size: 12px;
  margin-top: 4px;
}
ion-item {
  width: 100%;
}
ion-item > p {
  text-transform: capitalize;
}
.item-with-properties > span:not(:first-child):before {
  content: " · ";
}
.link {
  text-decoration: underline;
  cursor: pointer;
}
.page-center {
  max-width: 600px;
  margin: auto;
}
.page-center-lg,
.page-center-large {
  max-width: 960px;
  margin: auto;
}
.center-vertical,
.vertical-center {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  max-width: 520px;
  margin: auto;
}
.vertical-center-flex {
  display: flex;
  align-items: center;
  height: 100%;
}
.vertical-center-flex .vertical-center-inner {
  margin: auto;
  max-width: 100%;
}
.horizontal-center {
  justify-content: center;
}
.flex-columns {
  display: flex;
  flex-direction: column;
}
.flex-rows {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.flex-column {
  display: flex;
  flex-direction: column;
}
.flex-row {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.flex-row-center {
  align-items: center;
}
.flex-grow {
  flex-grow: 2;
}
.flex-start {
  justify-content: flex-start;
}
.flex-space-around {
  justify-content: space-around;
}
.flex-space-evenly {
  justify-content: space-evenly;
}
.flex-equal-width > div {
  flex: 1;
}
.ion-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.ion-column {
  box-sizing: border-box;
  width: 100%;
  padding: 10px;
  flex: 1;
}
@media (min-width: 768px) {
  /* For tablets and larger screens */
  .ion-column {
    width: 48%;
    /* Two columns with a small gap */
  }
}
.height-100,
.full-height .fill-height,
.ion-full-height {
  height: 100%;
  min-height: 100%;
  background-size: cover;
}
.onboarding-questions-scroll-custom {
  max-height: -webkit-fit-content;
  max-height: -moz-fit-content;
  max-height: fit-content;
  overflow-y: auto;
}
.height-fit-content {
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}
.height-80vh {
  height: 80vh !important;
}
.height-300 {
  height: 300px !important;
}
.height-240 {
  height: 240px !important;
}
.width-100 {
  width: 100%;
}
.full-width {
  width: 90%;
  max-width: 400px;
}
.full-width-100 {
  width: 100%;
  max-width: 500px;
}
@media only screen and (max-width: 768px) {
  .full-width-sm-down {
    width: 100%;
    max-width: 500px;
  }
}
.max-width-md {
  max-width: 576px;
}
@media (min-width: 1500px) {
  .max-width-md {
    max-width: 768px;
  }
}
.block {
  display: block;
}
.scrollable-x {
  overflow-x: scroll;
}
.scrollable-y,
.scrollable-y app-program-preview {
  overflow-y: scroll;
}
.clickable {
  cursor: pointer;
}
.inactive {
  pointer-events: none;
}
.transparent {
  background: transparent !important;
  --background: transparent !important;
  box-shadow: none;
}
ion-list {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
ion-list.transparent {
  background-color: transparent !important;
}
ion-list.transparent ion-item {
  background-color: transparent;
  --background: transparent !important;
  --ion-item-background: transparent !important;
}
ion-list.transparent-list {
  background-color: transparent !important;
}
.blur {
  -webkit-backdrop-filter: blur(15px);
  /* For Safari/WebKit */
  backdrop-filter: blur(15px);
  /* Standard */
  filter: blur(15px);
  /* Fallback for unsupported browsers */
  transform: translate3d(0, 0, 0);
  /* Force 3D acceleration */
}
.absolute {
  position: absolute;
}
.faded {
  opacity: 0.4;
}
.academy-primary-color {
  background-color: var(--academy-color-primary);
}
.truncate-cell {
  white-space: nowrap;
  max-width: 100px;
  overflow: hidden;
  text-overflow: ellipsis;
}
table.dataTable {
  width: 100%;
  background-color: #FFFFFF;
  border-collapse: collapse;
  border-width: 2px;
  border-color: var(--ion-color-primary);
  border-style: solid;
  color: #000000;
}
table.dataTable.compact {
  font-size: 10px;
}
table.dataTable td,
table.dataTable th {
  border-width: 2px;
  border-color: var(--ion-color-medium);
  border-style: solid;
  padding: 5px;
}
table.dataTable td {
  max-width: 180px;
  overflow: hidden;
  white-space: nowrap;
}
table.dataTable thead {
  background-color: var(--ion-color-medium);
  color: #FFF;
}
table.dataTable tr.highlight {
  background-color: rgba(var(--ion-color-primary-rgb), 0.25);
}
table.dataTable tr.duplicate {
  background-color: rgba(var(--ion-color-danger-rgb), 0.25);
}
table.dataTable tr.corrupt {
  background-color: rgba(var(--ion-color-warning-rgb), 0.25);
}
.activity-card {
  max-width: 800px;
  margin: 0 auto;
}
.activity-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}
.activity-table th, .activity-table td {
  padding: 12px;
  border-bottom: 1px solid #ddd;
}
.activity-table th {
  background-color: var(--ion-color-light);
  font-weight: bold;
}
.activity-table tr:hover {
  background-color: var(--ion-color-light-tint);
}
@media (prefers-color-scheme: dark) {
  table.dataTable {
    background-color: var(--ion-background-color);
    background-color: var(--player-card-darkMode, var(--ion-background-color));
    color: #FFF;
    color: var(--program-color-light, #FFF);
  }
}
/* DIVIDER LINE (labeled) */
.divider {
  width: 100%;
  padding: 20px 0;
}
.divider div {
  background-color: #000;
  opacity: 0.1;
  width: 50%;
  height: 1px;
  margin: auto;
}
.divider-labeled {
  position: relative;
}
.divider-labeled div {
  position: absolute;
  top: 50%;
  width: 100%;
  background-color: #d9d9d9;
  height: 1px;
  transform: translateY(-50%);
}
.divider-labeled span {
  display: block;
  margin: 8px auto;
  width: 4em;
  background-color: #fff;
  padding: 16px 8px;
  text-align: center;
  position: relative;
}
@media only screen and (max-width: 576px) {
  .vertical-center:not(.vertical-centered-forced) {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    transition: none;
    transform: none;
  }
}
.text-large {
  font-size: 32px;
}
#vetrically-centered-container,
.vetrically-centered-container {
  text-align: center;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
#vetrically-centered-container strong,
.vetrically-centered-container strong {
  font-size: 20px;
  line-height: 26px;
}
#vetrically-centered-container p,
.vetrically-centered-container p {
  font-size: 16px;
  line-height: 22px;
  color: #8c8c8c;
}
#vetrically-centered-container a,
.vetrically-centered-container a {
  text-decoration: none;
}
.editable-section {
  position: relative;
  cursor: pointer;
  overflow: hidden;
  border: 2px solid transparent;
  /* Placeholder border to ensure smooth outline transition */
  transition: border-color 0.3s ease;
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
  min-height: 40px;
}
.editable-section.masthead {
  border-radius: 8px 8px 0 0;
  border-radius: var(--player-border-radius, 8px) var(--player-border-radius, 8px) 0 0;
}
.editable-section::before {
  content: "";
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  border: 4px dashed transparent;
  border-radius: inherit;
  /* Match the parent’s border radius */
  transition: border-color 0.3s ease;
  pointer-events: none;
  /* Ensure this pseudo-element doesn't block clicks */
}
.editable-section:hover::before {
  border-color: #d9dee7;
  /* Change this to your desired color on hover */
}
.editable-section::after {
  content: "Click to edit";
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform: translate(-50%, 50%);
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 4px 8px;
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
  font-size: 0.875rem;
  opacity: 0.001;
  pointer-events: none;
  transition: background-color 0.3s ease, opacity 0.3s ease;
  /* Smooth text visibility change */
  z-index: 9999;
}
.editable-section-swippable::after {
  content: "Click or swipe";
}
.click-to-select-program::after {
  content: "Select program";
  text-align: center;
  display: block;
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
}
.click-to-add-video::after {
  content: "Click to add video";
}
.inner-container:hover .click-to-preview::after {
  content: "Click to preview story";
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform: translate(-50%, 50%);
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 4px 8px;
}
.editable-section-small::after {
  content: "";
  background-color: transparent;
}
.featured-program .programTile.editable-section::after,
.overlapMastheadWrapper .masthead.editable-section::after {
  bottom: 3.5em;
}
.editable-section.top-label::after {
  bottom: auto;
  /* Disable bottom positioning */
  top: 10px;
  /* Position at the top */
}
.editable-section .bgImage {
  transition: transform 0.3s ease;
  /* Smooth zoom in and out */
}
.editable-section:hover {
  border-color: transparent;
}
.editable-section:hover .bgImage .editable-section.swiper-slide:hover {
  transform: scale(1.05);
  /* Slight zoom effect on hover */
}
.editable-section:hover::after {
  background-color: rgba(0, 0, 0, 0.85);
  /* Darken the tooltip on hover */
  opacity: 1;
  /* Increase text visibility */
}
.editable-section-small:hover::after {
  background-color: transparent;
}
.player-mobile-preview .programTile.preview-tile {
  width: 447px !important;
  height: 447px !important;
}
.block {
  display: block;
}
.program.programTile.editable-section {
  border-width: 0;
  margin: 0;
  width: 100% !important;
}
.program.programTile.editable-section:hover .bgImage:after {
  position: absolute;
  top: -1px;
  bottom: -1px;
  left: -1px;
  right: -1px;
  border: 4px dashed #d9dee7;
  content: "";
  z-index: 5;
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
.player-mobile-preview .featured-program .programTile {
  margin: 0 auto;
}
.onboarding-slides ion-slide.editable-section {
  border-width: 0;
}
.onboarding-slides ion-slide.editable-section::before {
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
  z-index: 9999;
}
ion-item-sliding.editable-section-swippable:hover::before {
  border: 4px dashed #d9dee7;
  z-index: 11;
  border-radius: var(--ion-border-radius);
  border-radius: var(--player-border-radius, var(--ion-border-radius));
}
@media (prefers-color-scheme: light) {
  ion-item-sliding.editable-section-swippable:hover::before {
    border-color: #d9dee7;
  }
}
.editable-section-only-clickable {
  border-radius: 0;
}
.programWeek {
  border-radius: 4px;
  padding: 4px 0 0 0;
}
.programWeek.card {
  margin-bottom: 16px;
}
.programWeek.week {
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  display: grid;
  grid-column-gap: 10px;
  grid-row-gap: 10px;
}
.programWeek ion-card-header {
  padding: 8px;
}
.programWeek ion-card-content,
.programWeek .card-content-md {
  padding: 4px;
}
.programWeek .dayOfWeek {
  margin: 0;
  height: 100%;
  width: 100%;
  background: var(--ion-card-color);
}
.programWeek .dayOfWeek ion-item {
  --color: var(--ion-text-color);
  border-radius: 8px;
  margin-top: 8px;
  --inner-padding-end: 0;
}
.programWeek .dayOfWeek ion-item ion-note {
  --color: var(--ion-text-color);
}
.programWeek .dayOfWeek .button {
  --padding-end: 0.2em;
  --padding-start: 0.2em;
  margin-left: 0;
  --color: var(--ion-color-primary-contrast);
}
.programWeek .habitTypeColored .strength,
.programWeek .habitTypeColored .workout {
  --background: #d3a0f0;
}
.programWeek .habitTypeColored .restday {
  --background: lightgray;
}
.programWeek .habitTypeColored .nutrition {
  --background: #498e66;
}
.programWeek .habitTypeColored .habit {
  --background: #f6e9c8;
  border: 1px solid #d39c0c;
}
.programWeek .habitTypeColored .solution {
  --background: #d27e9f;
}
.programWeek .habitTypeColored .file {
  --background: #a2968b;
}
.programWeek .habitTypeColored .photo {
  --background: #554f7b;
}
.programWeek .habitTypeColored .updateMeasurements {
  --background: #5e4961;
}
.programWeek .habitTypeColored .corrupt {
  --background: #d20000 !important;
}
app-program-select .programWeek app-habit-icon {
  max-width: 40px;
  height: 40px;
  width: 40px;
}
.programDetails .programWeek .programWeek {
  padding: 40px 0 40px 0;
}
.programWeek.slides {
  padding: 0;
}
.programWeek.slides ion-card.dayOfWeek {
  margin-left: 10px;
}
@media only screen and (max-width: 768px) {
  .programWeek.week {
    grid-template-columns: 1fr;
    display: grid;
    grid-column-gap: 10px;
  }
}
.programs .program-image {
  width: 100%;
  height: 100%;
  background-size: cover;
}
@media only screen and (max-width: 768px) {
  .programs .programs-row {
    flex-direction: column-reverse;
  }
  .programs .program-image {
    height: 200px;
  }
}
.events .cards {
  display: flex;
}
.events .cards .event {
  width: 33%;
  color: #FFF;
  text-shadow: 1px 1px 8px rgba(0, 0, 0, 0.5), 1px 1px 1px rgba(0, 0, 0, 0.5);
  margin: 1%;
  min-height: 300px;
  background-size: cover;
  overflow: hidden;
  border-radius: 8px;
  cursor: pointer;
}
.events .cards .event .event_note {
  margin-bottom: 8px;
  margin-top: 0;
}
@media only screen and (max-width: 768px) {
  .events .cards {
    flex-direction: column;
  }
  .events .cards .event {
    width: 98%;
  }
}
.event {
  font-weight: 700;
  position: relative;
}
.event .event_inner {
  margin: 40px;
  z-index: 999;
  position: relative;
}
.event .event_days {
  font-size: 24px;
  font-weight: 800;
}
.event .event_month {
  font-size: 11px;
  font-weight: 100;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.event .event_note {
  font-size: 12px;
  font-weight: 800;
  background: var(--academy-color-primary);
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  text-shadow: none;
  text-transform: uppercase;
  margin: 8px 0;
  color: #FFF;
}
.event .event_name {
  font-size: 28px;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.event .event_location {
  font-size: 20px;
  font-weight: 100;
  margin-bottom: 6px;
}
.event .event_description {
  font-size: 14px;
  font-weight: 100;
}
.centered-controls {
  text-align: center;
}
.remaining {
  font-size: 64px;
  display: none;
}
.units {
  text-transform: uppercase;
  font-weight: 100;
  font-size: 12px;
  display: none;
}
.circular-chart {
  display: block;
  margin: 10px auto;
  max-width: 80%;
  max-height: 250px;
}
.circle {
  stroke: #4CC790;
  fill: none;
  stroke-width: 2.8;
  stroke-linecap: round;
  -webkit-animation: progress 1s ease-out forwards;
          animation: progress 1s ease-out forwards;
}
@-webkit-keyframes progress {
  0% {
    stroke-dasharray: 0 100;
  }
}
@keyframes progress {
  0% {
    stroke-dasharray: 0 100;
  }
}
#svg circle {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1s linear;
  stroke: #e7e7e7;
  stroke-width: 1em;
}
#svg #bar {
  stroke: #3880ff;
  stroke: var(--player-color-primary, #3880ff);
}
#counter {
  display: block;
  height: 200px;
  width: 200px;
  margin: 2em auto;
  box-shadow: 0 0 1em black;
  border-radius: 100%;
  position: relative;
}
#counter:after {
  position: absolute;
  display: block;
  height: 160px;
  width: 160px;
  left: 50%;
  top: 50%;
  box-shadow: inset 0 0 1em black;
  content: attr(data-pct) "s";
  margin-top: -80px;
  margin-left: -80px;
  border-radius: 100%;
  line-height: 160px;
  font-size: 2em;
  text-shadow: 0 0 0.5em black;
  text-align: center;
}
#counter.percent:after {
  content: attr(data-pct) "";
}
.strikethrough {
  text-decoration: line-through;
}
.small-counter #svg circle {
  stroke-width: 10px;
}
#counter.small-counter {
  height: 100px;
  width: 100px;
  box-shadow: none;
  margin: 0em auto;
}
#counter.small-counter:after {
  height: 100px;
  width: 100px;
  left: 0;
  top: 0;
  box-shadow: none;
  margin-top: 0;
  margin-left: 0;
  line-height: 100px;
  font-size: 1.4em;
  text-shadow: none;
}
@media (prefers-color-scheme: dark) {
  #svg circle {
    stroke: #696969;
  }
}
.xlarge-values .label {
  opacity: 0.5;
  font-size: 14px;
  text-align: center;
  overflow-wrap: normal;
}
.xlarge-values .value {
  font-size: 36px;
  text-align: center;
}
@media only screen and (max-width: 576px) {
  .xlarge-values .value {
    font-size: 24px;
  }
}
.units {
  text-align: center;
}
.phase {
  padding-bottom: 24px;
  display: inline-flex;
  width: 100%;
  justify-content: space-around;
  margin-top: 24px;
}
.phase > div {
  display: flex;
  flex-direction: column;
}
.phase.flex-direction-column-reverse > div {
  flex-direction: column-reverse;
}
.liteprint {
  opacity: 0.7;
}
.fineprint {
  opacity: 0.6;
  font-size: 12px;
}
ion-menu .finerprint {
  padding-left: 70px !important;
}
.finerprint {
  opacity: 0.3;
  font-size: 14px;
  font-weight: lighter;
}
.ooops ion-img,
.loading ion-img {
  max-width: 490px;
  margin: auto;
  mix-blend-mode: darken;
}
:root {
  --platform-color: mediumvioletred;
}
.global ion-toolbar, .globalion-footer ion-button {
  --background: black;
  --color: var(--platform-color);
}
.global ion-item,
.global ion-icon,
.global p {
  color: mediumvioletred !important;
  color: var(--platform-color) !important;
}
ion-item.admin,
.admin ion-icon,
.admin ion-note {
  color: mediumvioletred;
  color: var(--platform-color);
}
.activity-completed-indicator {
  width: 24px;
  height: 24px;
  font-size: 9px;
  display: block;
  border-radius: 50%;
  border: 2px solid #F2F2F2;
  margin-left: 32px;
  top: 0px;
  z-index: 1;
}
.activity-completed-indicator.activity-completed {
  border: 2px solid #3880ff;
  border: 2px solid var(--player-color-primary, #3880ff);
  background: #3880ff;
  background: var(--player-color-primary, #3880ff);
}
.activity-completed-indicator.activity-completed span {
  color: #FFF;
  color: var(--player-color-primary-contrast, #FFF);
  text-align: center;
  display: block;
}
app-habits-feed app-habit-icon,
app-habits-feed .card > .icon,
.habit-feed app-habit-icon,
.habit-feed .card > .icon,
app-habits-feed-preview app-habit-icon,
app-habits-feed-preview .card > .icon,
app-program-builder-player-preview app-habit-icon,
app-program-builder-player-preview .card > .icon {
  padding-left: 16px;
  padding-top: 0px;
}
app-habits-feed ion-item > .icon,
.habit-feed ion-item > .icon,
app-habits-feed-preview ion-item > .icon,
app-program-builder-player-preview ion-item > .icon {
  margin-left: 16px;
}
.activity-check-list app-habit-icon,
.activity-check-list .card > .icon {
  padding-left: 24px;
  padding-top: 0px;
}
.activity-check-list .activity-completed-indicator {
  width: 24px;
  height: 24px;
  font-size: 13px;
  line-height: 20px;
  margin: 12px;
  text-align: center;
}
.activity-check-list.show-completed-count-badge .activity-completed-indicator {
  margin: 16px;
}
.activity-check-list.show-completed-count-badge app-habit-icon,
.activity-check-list.show-completed-count-badge .card > .icon {
  padding-left: 0;
}
.activity-completed-indicator.activity-completed-single::after {
  content: "✓";
  color: #FFF;
  font-size: 18px;
  line-height: 18px;
  padding-left: 2px;
}
app-habits-feed .grid-view .activity-completed-indicator {
  position: absolute;
}
app-habits-feed .grid-view app-habit-icon,
app-habits-feed .grid-view .card > .icon {
  padding-top: 16px;
}
.grid-view .activity-check-list app-habit-icon,
.grid-view .activity-check-list .card > .icon {
  padding-top: 16px;
}
app-habits-feed .activity-check-list ion-item > .icon {
  margin-left: 48px;
}
.program-builder .player-view .featured-program .programTile {
  top: 0 !important;
}
.program-builder .player-view .programDetails {
  padding: 0 20px;
  margin: 100px 0 !important;
}
.program-builder .player-view app-questions-slider .questions-slides-wrapper {
  overflow: visible;
}
.program-builder .player-view app-questions-slider .questions-slides-wrapper.ion-padding-bottom-xlarge {
  padding-bottom: 0 !important;
}
.program-builder .player-view app-questions-slider .questions-slides-wrapper .force-scrolling {
  overflow: visible;
}
.program-builder .player-view .footer-bar {
  position: relative !important;
}
.program-builder .outer-container {
  height: auto !important;
}
ion-spinner.largeSpinner {
  width: 100px;
  height: 100px;
}
@-webkit-keyframes confetti {
  0% {
    transform: translateY(-100vh) rotate(0deg);
  }
  100% {
    transform: translateY(100vh) rotate(360deg);
  }
}
@keyframes confetti {
  0% {
    transform: translateY(-100vh) rotate(0deg);
  }
  100% {
    transform: translateY(100vh) rotate(360deg);
  }
}
.confetti {
  position: fixed;
  top: 0;
  left: 0;
  width: 10px;
  height: 10px;
  background-color: #ff0;
  -webkit-animation: confetti 2s linear forwards;
          animation: confetti 2s linear forwards;
  z-index: 1000;
}
@-webkit-keyframes explode-outwards {
  0% {
    transform: translate(0, 0) scale(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translate(var(--x), var(--y)) scale(1) rotate(360deg);
    opacity: 0;
  }
}
@keyframes explode-outwards {
  0% {
    transform: translate(0, 0) scale(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translate(var(--x), var(--y)) scale(1) rotate(360deg);
    opacity: 0;
  }
}
.confetti-piece {
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: #ff0;
  /* Yellow color for confetti */
  -webkit-animation: explode-outwards 1s ease-out forwards;
          animation: explode-outwards 1s ease-out forwards;
  z-index: 1000;
  pointer-events: none;
}
.hidden-until-hover:hover .hidden {
  display: block !important;
}
.developer-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  display: flex;
  justify-content: center;
}
.developer-bar .dev-property {
  background-color: #3880ff;
  background-color: var(--ion-color-primary, #3880ff);
  color: #FFF;
  color: var(--ion-color-primary-contrast, #FFF);
  text-align: center;
  padding: 4px;
  font-size: 8px;
}
.developer-bar .dev-property-secondary {
  background-color: #3dc2ff;
  background-color: var(--ion-color-secondary, #3dc2ff);
}
.developer-bar .dev-property-tertiary {
  background-color: #5260ff;
  background-color: var(--ion-color-tertiary, #5260ff);
}
.developer-bar .dev-property-warning {
  background-color: #ffc409;
  background-color: var(--ion-color-warning, #ffc409);
}
.developer-bar .dev-property-danger {
  background-color: #ff3d6a;
  background-color: var(--ion-color-danger, #ff3d6a);
}
.debug-values {
  border-bottom: 4px solid #ccc;
}
.debug-values > div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #ccc;
  padding: 8px 0;
}
.debug-values > div .label {
  opacity: 0.5;
  font-size: 14px;
}
.debug-values > div .value {
  font-weight: bold;
}
.enable-developer-mode {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 80px;
  height: 80px;
}
.enable-developer-mode-in-story {
  position: absolute;
  width: 160px;
  height: 60px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.developer-mode-button {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 48px;
  height: 48px;
}
.developer-mode-enabled .enable-developer-mode {
  background: yellow;
  opacity: 0.2;
}
.coder_debug_info p {
  background: black;
  color: #4eff00;
}
.debug-json-component .key,
.debug-json-component .indent {
  color: blue;
}
.debug-json-component .highlight {
  color: red !important;
}
.debug-json-component .key::after {
  content: ": ";
  display: contents;
}
.background-red {
  background: red !important;
}
.background-green {
  background: green !important;
}
ion-popover [popover]:not(:popover-open):not(dialog[open]) {
  display: contents;
}

/*# sourceMappingURL=styles.css.map*/