/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/theme/variables.scss?ngGlobalStyle ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/** 
 * Core Ionic CSS Variables 
 * These variables define the base colors and styles for the app
 */
:root {
  /** Color palette - primary colors **/
  --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;
  --ion-color-secondary: #12b886;
  --ion-color-secondary-rgb: 18, 184, 134;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #10a276;
  --ion-color-secondary-tint: #2ac092;
  --ion-color-tertiary: #7044ff;
  --ion-color-tertiary-rgb: 112, 68, 255;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #633ce0;
  --ion-color-tertiary-tint: #7e57ff;
  /** Color palette - feedback colors **/
  --ion-color-success: #10dc60;
  --ion-color-success-rgb: 16, 220, 96;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #0ec254;
  --ion-color-success-tint: #28e070;
  --ion-color-warning: #ffce00;
  --ion-color-warning-rgb: 255, 206, 0;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb: 0, 0, 0;
  --ion-color-warning-shade: #e0b500;
  --ion-color-warning-tint: #ffd31a;
  --ion-color-danger: #f04141;
  --ion-color-danger-rgb: 240, 65, 65;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #d33939;
  --ion-color-danger-tint: #f25454;
  /** Color palette - neutral colors **/
  --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;
  --ion-color-medium: #989aa2;
  --ion-color-medium-rgb: 152, 154, 162;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb: 255, 255, 255;
  --ion-color-medium-shade: #86888f;
  --ion-color-medium-tint: #a2a4ab;
  --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;
  /** Special use case colors **/
  --ion-color-favorite: #ff5596;
  --ion-color-favorite-rgb: 255, 85, 150;
  --ion-color-favorite-contrast: #ffffff;
  --ion-color-favorite-contrast-rgb: 255, 255, 255;
  --ion-color-favorite-shade: #e04b84;
  --ion-color-favorite-tint: #ff66a1;
  --ion-color-trusted: #00c2d8;
  --ion-color-trusted-rgb: 0, 194, 216;
  --ion-color-trusted-contrast: #ffffff;
  --ion-color-trusted-contrast-rgb: 255, 255, 255;
  --ion-color-trusted-shade: #00abbe;
  --ion-color-trusted-tint: #1ac8dc;
  /** 
   * App-specific variables 
   * These variables are used throughout the app for consistent theming
   */
  --ion-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
                     Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --ion-headline-font-weight: 600;
  /** App structure **/
  --app-background-color: #f8f9fa;
  --app-text-color: #333333;
  --app-text-color-secondary: #666666;
  --app-border-color: rgba(0, 0, 0, 0.08);
  --app-padding: 16px;
  --app-margin: 16px;
  /** Card styles **/
  --app-card-background: #ffffff;
  --ion-card-border-radius: 12px;
  --ion-card-margin: 12px;
  --ion-card-padding: 16px;
  --ion-card-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  /** Buttons and inputs **/
  --ion-button-border-radius: 8px;
  --ion-button-height: 44px;
  --ion-item-border-radius: 8px;
  /** Animation durations **/
  --app-transition-duration-fast: 0.2s;
  --app-transition-duration: 0.3s;
  --app-transition-timing: ease;
  --ion-animation-duration-fast: 0.2s;
  --ion-animation-duration-normal: 0.3s;
  --ion-animation-duration-slow: 0.5s;
  /** 
   * Responsive Breakpoints
   * These variables define the breakpoints for responsive design
   */
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --container-sm: 540px;
  --container-md: 720px;
  --container-lg: 960px;
  --container-xl: 1140px;
  --container-xxl: 1400px;
}

/* ============================
   Base Element Styles
   ============================ */
body {
  --ion-background-color: var(--app-background-color);
  --ion-text-color: var(--app-text-color);
  font-family: var(--ion-font-family);
}

ion-card {
  border-radius: var(--ion-card-border-radius);
  box-shadow: var(--ion-card-box-shadow);
  margin: var(--ion-card-margin);
  padding: var(--ion-card-padding);
  background: var(--app-card-background);
  overflow: hidden;
}

ion-button {
  --border-radius: var(--ion-button-border-radius);
  font-weight: 500;
  letter-spacing: 0.2px;
  text-transform: none;
  transition: all var(--app-transition-duration) var(--app-transition-timing);
}

ion-input, ion-textarea, ion-select {
  --padding-start: 16px;
  --padding-end: 16px;
  --padding-top: 12px;
  --padding-bottom: 12px;
  --border-radius: var(--ion-item-border-radius);
  --background: var(--ion-color-light);
  margin-bottom: 12px;
}

ion-item {
  --padding-start: 16px;
  --padding-end: 16px;
  --inner-padding-end: 0;
  --background: transparent;
  --border-color: var(--app-border-color);
}

ion-segment {
  --background: transparent;
}
ion-segment ion-segment-button {
  --border-radius: 8px;
  --padding-top: 6px;
  --padding-bottom: 6px;
  --margin-top: 8px;
  --margin-bottom: 8px;
  text-transform: none;
  font-weight: 500;
  letter-spacing: 0;
}

ion-badge {
  border-radius: 12px;
  padding: 4px 8px;
  font-weight: 500;
}

/* ============================
   Light theme
   ============================ */
.theme-light {
  --app-background-color: #f8f9fa;
  --app-card-background: #ffffff;
  --app-card-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  --app-text-color: #333333;
  --app-text-color-secondary: #666666;
  --app-border-color: rgba(0, 0, 0, 0.08);
}

/* ============================
   Dark theme
   ============================ */
.theme-dark {
  /* System colors */
  --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;
  /* Inverted light and dark */
  --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: #989aa2;
  --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;
  /* App theme specific colors */
  --app-background-color: #121212;
  --app-card-background: #1e1e1e;
  --app-card-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  --app-text-color: #f4f4f4;
  --app-text-color-secondary: #b0b0b0;
  --app-border-color: rgba(255, 255, 255, 0.08);
}

/* ============================
   Apple-inspired theme
   ============================ */
.theme-apple {
  /* Colors */
  --ion-color-primary: #0071e3; /* Apple's blue */
  --ion-color-primary-rgb: 0, 113, 227;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #0062c4;
  --ion-color-primary-tint: #1a7fe6;
  --ion-color-secondary: #5e5ce6; /* Apple's purple */
  --ion-color-secondary-rgb: 94, 92, 230;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #5351ca;
  --ion-color-secondary-tint: #6e6ce9;
  --ion-color-tertiary: #ff2d55; /* Apple's pink */
  --ion-color-tertiary-rgb: 255, 45, 85;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #e0274b;
  --ion-color-tertiary-tint: #ff4267;
  --ion-color-success: #34c759; /* Apple's green */
  --ion-color-success-rgb: 52, 199, 89;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #2eaf4e;
  --ion-color-success-tint: #48cd6a;
  --ion-color-warning: #ff9500; /* Apple's orange */
  --ion-color-warning-rgb: 255, 149, 0;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb: 0, 0, 0;
  --ion-color-warning-shade: #e08300;
  --ion-color-warning-tint: #ffa01a;
  --ion-color-danger: #ff3b30; /* Apple's red */
  --ion-color-danger-rgb: 255, 59, 48;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #e0342a;
  --ion-color-danger-tint: #ff4f45;
  /* App theme overrides */
  --app-background-color: #f5f5f7;
  --app-background-image: url("/assets/themes/apple-bg.svg");
  --app-card-background: #ffffff;
  --app-card-border-radius: 16px;
  --ion-card-border-radius: 16px;
  --app-card-box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  --ion-card-box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  --app-text-color: #1d1d1f;
  --app-text-color-secondary: #86868b;
  --app-border-color: rgba(0, 0, 0, 0.05);
  --app-padding: 20px;
  --app-margin: 20px;
  --app-transition-duration: 0.4s;
  --app-transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
  /* Element overrides */
  --ion-button-border-radius: 20px;
  /* Specific element styles */
}
.theme-apple ion-content {
  --background: var(--app-background-color) var(--app-background-image) no-repeat center center / cover fixed;
}
.theme-apple ion-toolbar {
  --background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ============================
   System theme (uses prefers-color-scheme)
   ============================ */
@media (prefers-color-scheme: dark) {
  body:not(.theme-light):not(.theme-apple):not(.theme-dark) {
    /* Import dark theme variables for system dark mode */
    --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: #989aa2;
    --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;
    /* App theme specific colors */
    --app-background-color: #121212;
    --app-card-background: #1e1e1e;
    --app-card-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    --app-text-color: #f4f4f4;
    --app-text-color-secondary: #b0b0b0;
    --app-border-color: rgba(255, 255, 255, 0.08);
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/core.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************/
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-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}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}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}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: 0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}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;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.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{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: 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;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px rgba(0,0,0,.08)}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px rgba(0,0,0,.08)}.md .menu-content-reveal{box-shadow:4px 0px 16px rgba(0,0,0,.18)}.md .menu-content-push{box-shadow:4px 0px 16px rgba(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{transition:none !important}}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}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}/*# sourceMappingURL=core.css.map */

/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/normalize.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/
audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:bold}img{max-width:100%}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::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{padding:0;border:0;border-radius:0;font-family:inherit;font-style: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=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}/*# sourceMappingURL=normalize.css.map */

/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/structure.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/
*{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%;transform:translateZ(0);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}/*# sourceMappingURL=structure.css.map */

/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/typography.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************/
html{font-family:var(--ion-font-family)}@supports(-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;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:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}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}/*# sourceMappingURL=typography.css.map */

/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/display.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************/
.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}}/*# sourceMappingURL=display.css.map */

/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/padding.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************/
.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);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 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);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}/*# sourceMappingURL=padding.css.map */

/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/text-alignment.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************/
.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}}/*# sourceMappingURL=text-alignment.css.map */

/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/flex-utils.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************/
.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}/*# sourceMappingURL=flex-utils.css.map */

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/global.scss?ngGlobalStyle ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*
 * 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.
 */
/* Core CSS required for Ionic components to work properly */
/* Optional CSS utils - kept the most frequently used ones */
/* Force light mode and prevent dark mode */
:root {
  color-scheme: light;
}

/* Override Ionic dark mode detection */
@media (prefers-color-scheme: dark) {
  :root {
    --ion-color-primary: var(--ion-color-primary);
    --ion-color-secondary: var(--ion-color-secondary);
    /* Maintain light theme even in dark mode */
  }
}
/* Base styles */
body {
  background-color: var(--app-background-color);
  color: var(--ion-color-dark);
  font-family: var(--ion-font-family);
}

.ios {
  --ion-background-color: var(--app-background-color);
  --ion-background-color-rgb: 248, 249, 252;
  --ion-text-color: var(--ion-color-dark);
  --ion-text-color-rgb: 34, 36, 40;
}

/* ============================
   Flex utility classes
   ============================ */
.flex {
  display: flex;
}

.flex-column {
  display: flex;
  flex-direction: column;
}

.flex-row {
  display: flex;
  flex-direction: row;
}

.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.flex-around {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.flex-grow {
  flex-grow: 1;
}

/* ============================
   Typography
   ============================ */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  font-weight: var(--ion-headline-font-weight);
  letter-spacing: -0.5px;
}

h1 {
  font-size: 28px;
  margin-bottom: 16px;
}

h2 {
  font-size: 24px;
  margin-bottom: 14px;
}

h3 {
  font-size: 20px;
  margin-bottom: 12px;
}

h4 {
  font-size: 18px;
  margin-bottom: 10px;
}

p {
  margin-top: 0;
  margin-bottom: 12px;
  line-height: 1.5;
}

/* ============================
   Ionic Component Overrides
   ============================ */
/* Card styles */
ion-card {
  border-radius: var(--ion-card-border-radius);
  margin: var(--ion-card-margin);
  box-shadow: var(--ion-card-box-shadow) !important;
  overflow: hidden;
  transition: transform var(--app-transition-duration-fast);
}
ion-card.interactive:active {
  transform: scale(0.98);
}

ion-card-header {
  padding: 16px 16px 8px 16px !important;
}

ion-card-title {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--ion-color-dark) !important;
}

ion-card-subtitle {
  font-size: 14px !important;
  color: var(--ion-color-medium) !important;
}

ion-card-content {
  padding: 8px 16px 16px 16px !important;
}

/* Button styles */
ion-button {
  --border-radius: var(--ion-button-border-radius);
  --box-shadow: 0 4px 10px rgba(var(--ion-color-primary-rgb), 0.2);
  font-weight: 500 !important;
  letter-spacing: 0.5px !important;
  text-transform: none !important;
  transition: opacity var(--app-transition-duration-fast), transform var(--app-transition-duration-fast) !important;
  height: var(--ion-button-height) !important;
  /* Icon-only buttons */
}
ion-button.button-solid {
  --box-shadow: 0 4px 10px rgba(var(--ion-color-primary-rgb), 0.3);
  --background: var(--ion-color-primary) !important;
  --color: white !important;
}
ion-button.button-solid:hover {
  --box-shadow: 0 6px 15px rgba(var(--ion-color-primary-rgb), 0.4);
}
ion-button.button-solid.ion-color-secondary {
  --box-shadow: 0 4px 10px rgba(var(--ion-color-secondary-rgb), 0.3);
  --background: var(--ion-color-secondary) !important;
  --color: white !important;
}
ion-button.button-solid.ion-color-secondary:hover {
  --box-shadow: 0 6px 15px rgba(var(--ion-color-secondary-rgb), 0.4);
}
ion-button.button-clear, ion-button.button-outline {
  font-weight: 600 !important;
  --opacity: 1 !important;
  --color-hover: var(--ion-color-primary-shade) !important;
}
ion-button.button-clear.ion-color-secondary, ion-button.button-outline.ion-color-secondary {
  --color-hover: var(--ion-color-secondary-shade) !important;
}
ion-button:active {
  --opacity: 0.8 !important;
  transform: scale(0.98) !important;
}
ion-button[fill=clear][size=small], ion-button[fill=clear].icon-only {
  --padding-start: 6px;
  --padding-end: 6px;
  --background-hover: rgba(var(--ion-color-primary-rgb), 0.08) !important;
  --background-activated: rgba(var(--ion-color-primary-rgb), 0.12) !important;
}

/* Form styles */
ion-item {
  --padding-start: 16px;
  --padding-end: 16px;
  --padding-top: 12px;
  --padding-bottom: 12px;
  --background: transparent !important;
  --border-color: rgba(0, 0, 0, 0.05);
  --highlight-color-focused: var(--ion-color-primary) !important;
  --highlight-height: 2px !important;
  margin-bottom: 8px !important;
}
ion-item.item-interactive {
  --ripple-color: var(--ion-color-primary-tint);
}

ion-label {
  font-weight: 500 !important;
  font-size: 16px !important;
}

ion-input, ion-textarea, ion-select {
  --padding-start: 16px;
  --padding-end: 16px;
  border-radius: 8px;
  font-size: 16px !important;
}
ion-input.has-focus, ion-textarea.has-focus, ion-select.has-focus {
  --background: rgba(var(--ion-color-primary-rgb), 0.05);
}

ion-toggle {
  --background: #ddd !important;
  --background-checked: var(--ion-color-primary) !important;
  --handle-background: #fff !important;
  --handle-background-checked: #fff !important;
}

/* List styles */
ion-list {
  background: transparent;
  padding: 8px 0;
}

ion-list-header {
  padding-top: 16px !important;
  padding-bottom: 8px !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: var(--ion-color-medium) !important;
  font-weight: 600 !important;
}

/* Segment styles */
ion-segment {
  background: white !important;
  padding: 4px !important;
  border-radius: 8px !important;
  margin: 16px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05) !important;
}

ion-segment-button {
  --color: var(--ion-color-medium) !important;
  --color-checked: var(--ion-color-primary) !important;
  --indicator-color: var(--ion-color-primary) !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 14px !important;
}

/* Toolbar styles */
ion-toolbar {
  --background: var(--ion-color-primary) !important;
  --color: var(--ion-color-primary-contrast) !important;
  --border-color: transparent !important;
  --padding-top: 8px !important;
  --padding-bottom: 8px !important;
  --padding-start: 16px !important;
  --padding-end: 16px !important;
}

ion-header ion-toolbar:first-of-type {
  padding-top: env(safe-area-inset-top);
}

ion-back-button {
  --color: white !important;
  --icon-font-size: 24px !important;
  --icon-font-weight: bold !important;
  --background-hover: rgba(255, 255, 255, 0.1) !important;
  --background-focused: rgba(255, 255, 255, 0.2) !important;
  --background-hover-opacity: 0.3 !important;
  --border-radius: 50% !important;
  --padding-start: 8px !important;
  --padding-end: 8px !important;
  --icon-margin-top: 2px !important;
  --icon-margin-bottom: 2px !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
}

ion-toolbar[color=secondary] ion-back-button,
ion-toolbar[color=medium] ion-back-button,
ion-toolbar[color=light] ion-back-button {
  --color: var(--ion-color-dark) !important;
  text-shadow: none !important;
}

/* UI Elements */
ion-avatar {
  --border-radius: 50% !important;
  border: 2px solid white !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

ion-badge {
  padding: 4px 8px !important;
  border-radius: 12px !important;
  font-weight: 500 !important;
  font-size: 12px !important;
}

ion-icon {
  --ionicon-stroke-width: 2.5px !important;
}

/* ============================
   Animation utilities
   ============================ */
.animate-fade-in {
  animation: fadeIn var(--ion-animation-duration-normal) ease-in-out;
}

.animate-slide-up {
  animation: slideUp var(--ion-animation-duration-normal) ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
/* ============================
   Modal styles
   ============================ */
ion-modal {
  --max-width: 400px;
  --border-radius: 16px;
  --backdrop-opacity: 0.3;
  --box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
ion-modal ion-header::after {
  display: none;
}
@media (max-width: 768px) {
  ion-modal {
    --width: 100%;
    --height: 100%;
    --border-radius: 16px 16px 0 0;
  }
}
ion-modal ion-content {
  --padding-top: 16px;
  --padding-bottom: 16px;
}

/* ============================
   Safety components
   ============================ */
ion-fab-button.safety-fab {
  --background: var(--ion-color-danger);
  --color: var(--ion-color-danger-contrast);
  --box-shadow: 0 4px 16px rgba(var(--ion-color-danger-rgb), 0.2);
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  --border-radius: 50%;
}
ion-fab-button.safety-fab ion-icon {
  font-size: 24px;
}

.ios .safety-fab {
  padding-bottom: env(safe-area-inset-bottom);
}

.safety-page ion-header.header-md::after {
  display: none;
}
.safety-page ion-toolbar {
  --min-height: 56px;
  --padding-top: env(safe-area-inset-top);
  --padding-start: 8px;
  --padding-end: 8px;
}

/* Hide tab bar on specific pages - mobile only */
@media (max-width: 767px) {
  app-pickup ion-tab-bar,
  app-drop-off ion-tab-bar {
    display: none !important;
  }
}
/* ============================
   Common UI patterns
   ============================ */
.error-message {
  color: var(--ion-color-danger);
  font-size: 12px;
  margin-left: 16px;
  margin-top: 4px;
  margin-bottom: 8px;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
}
.empty-state ion-icon {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.7;
}
.empty-state h2 {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--ion-color-dark);
}
.empty-state p {
  font-size: 16px;
  line-height: 1.5;
  color: var(--ion-color-medium);
  margin-bottom: 24px;
}

.verification-status {
  display: flex;
  align-items: center;
}
.verification-status ion-icon {
  margin-right: 6px;
}
.verification-status ion-icon.verified {
  color: var(--ion-color-success);
}
.verification-status ion-icon.pending {
  color: var(--ion-color-warning);
}
.verification-status ion-icon.not-verified {
  color: var(--ion-color-medium);
}
.verification-status span {
  font-size: 14px;
}

/* ============================
   Ride component styles
   ============================ */
.ride-card {
  margin: 16px 8px;
  border-radius: var(--ion-card-border-radius);
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}
.ride-card:active {
  transform: scale(0.98);
}
.ride-card .ride-header {
  padding: 16px;
  background-color: rgba(var(--ion-color-light-rgb), 0.7);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ride-card .ride-locations {
  padding: 16px;
}
.ride-card .ride-locations .location {
  display: flex;
  align-items: center;
  margin-bottom: 12px;
}
.ride-card .ride-locations .location ion-icon {
  margin-right: 12px;
  font-size: 20px;
}
.ride-card .ride-locations .location p {
  margin: 0;
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ride-card .ride-locations .location-connector {
  width: 2px;
  height: 24px;
  background-color: rgba(var(--ion-color-medium-rgb), 0.3);
  margin-left: 10px;
  margin-bottom: 12px;
}
.ride-card .ride-details {
  padding: 0 16px 16px;
  display: flex;
  flex-wrap: wrap;
}
.ride-card .ride-details .detail {
  display: flex;
  align-items: center;
  margin-right: 16px;
  margin-bottom: 8px;
}
.ride-card .ride-details .detail ion-icon {
  margin-right: 6px;
  color: var(--ion-color-medium);
}
.ride-card .ride-details .detail span {
  font-size: 14px;
  color: var(--ion-color-medium);
}
.ride-card .ride-actions {
  padding: 12px 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.ride-card .ride-actions ion-button {
  margin: 0;
  flex: 1;
}

/* Fix for ride-details positioning issues */
ion-app ion-router-outlet app-ride-details {
  position: absolute !important;
  width: 100vw !important;
  height: 100vh !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 100 !important; /* Ensures it's above other elements */
}

/* Fix for ride-details page positioning */
app-ride-details {
  display: flex;
  flex-direction: column;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  contain: layout size style;
  z-index: 0;
  overflow: hidden;
}

ion-app.ion-page app-ride-details ion-header,
ion-app.ion-page app-ride-details ion-content,
ion-app.ion-page app-ride-details ion-footer {
  position: relative;
  contain: layout size style;
}

/* ============================
   Platform-specific styles
   ============================ */
.ios ion-header ion-toolbar:first-of-type {
  --padding-top: calc(env(safe-area-inset-top) + 8px);
}
.ios ion-footer {
  padding-bottom: env(safe-area-inset-bottom);
}

/* ============================
   Page transitions
   ============================ */
ion-router-outlet.page-transition ion-page.ion-page-invisible {
  opacity: 0;
}

.ios ion-nav .ion-page.page-transition-forward, .ios ion-router-outlet .ion-page.page-transition-forward, .md ion-nav .ion-page.page-transition-forward, .md ion-router-outlet .ion-page.page-transition-forward {
  animation: pageTransitionForward 0.3s ease-in-out;
}
.ios ion-nav .ion-page.page-transition-backward, .ios ion-router-outlet .ion-page.page-transition-backward, .md ion-nav .ion-page.page-transition-backward, .md ion-router-outlet .ion-page.page-transition-backward {
  animation: pageTransitionBackward 0.3s ease-in-out;
}

@keyframes pageTransitionForward {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes pageTransitionBackward {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
/* ============================
   Dialog styles
   ============================ */
.confirmation-dialog-modal {
  --width: 90%;
  --max-width: 400px;
  --height: auto;
  --border-radius: 12px;
  --backdrop-opacity: 0.5;
}

/* ============================
   Tab bar improvements
   ============================ */
ion-tab-bar.custom-tab-bar {
  background: var(--ion-color-light) !important;
}
ion-tab-bar.custom-tab-bar ion-tab-button:active {
  background-color: rgba(var(--ion-color-primary-rgb), 0.08);
}

/* Import desktop responsive styles */
/**
 * Desktop Responsive Styles
 * 
 * This file contains responsive styles for desktop and larger screens.
 * It follows the mobile-first approach with styles being applied at specified breakpoints.
 */
/* ============================
   Desktop Responsive Styles - Content Layout
   ============================ */
@media (min-width: 768px) {
  ion-header ion-toolbar ion-title {
    font-size: 22px;
  }
  ion-header ion-segment {
    max-width: 80%;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .content-container, .desktop-container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .content-container, .desktop-container {
    max-width: 90%;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  .content-container, .desktop-container {
    max-width: 1100px;
  }
}
@media (min-width: 768px) and (min-width: 1200px) {
  .content-container, .desktop-container {
    max-width: 1300px;
  }
}
@media (min-width: 768px) {
  .ride-cards,
  .available-rides,
  .current-rides-container,
  .history-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    width: 100%;
    padding: 16px;
  }
  .empty-rides-container,
  .empty-state {
    min-height: 500px;
    height: auto;
    padding: 64px 32px;
  }
  .empty-rides-container .empty-rides-content,
  .empty-state .empty-rides-content {
    max-width: 500px;
    margin: 0 auto;
  }
  ion-button.desktop-fixed-width {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }
  .hide-sm {
    display: inline !important;
  }
  .ride-card {
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.3s ease;
    width: 100% !important;
    margin: 0 !important;
    min-width: unset;
    min-height: 220px;
    display: flex;
    flex-direction: column;
  }
  .ride-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  }
  .ride-card .ride-footer {
    margin-top: auto;
  }
  .ride-card .ride-locations {
    flex-grow: 1;
  }
  .rides-section {
    margin-bottom: 30px;
  }
  ion-card {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  ion-card ion-card-content {
    height: 100%;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
  }
  ion-card.ride-card {
    border: none;
    border-left: 4px solid var(--ion-color-primary);
  }
  ion-content {
    --padding-start: 16px;
    --padding-end: 16px;
    --padding-top: 16px;
    --padding-bottom: 16px;
  }
  .loading-container ion-spinner {
    width: 64px;
    height: 64px;
  }
  .loading-container p {
    font-size: 18px;
  }
  .ride-cards {
    width: 100%;
    margin: 0;
  }
  .section-title {
    font-size: 22px;
    margin-bottom: 16px;
    margin-top: 8px;
  }
  .desktop-form {
    max-width: 600px;
    margin: 0 auto;
  }
  .desktop-form ion-item {
    --padding-start: 20px;
    --padding-end: 20px;
    --inner-padding-end: 16px;
  }
  .desktop-form ion-button {
    height: 52px;
    font-size: 16px;
    max-width: 400px;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block;
  }
  .form-columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
  }
  ion-card.desktop-card {
    margin: 20px;
    border-radius: 16px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s, box-shadow 0.2s;
  }
  ion-card.desktop-card ion-card-header {
    padding: 20px 20px 12px;
  }
  ion-card.desktop-card ion-card-content {
    padding: 12px 20px 20px;
  }
  ion-card.desktop-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
  }
  .card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
    padding: 16px;
  }
  .desktop-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
  }
  .desktop-sidebar {
    position: sticky;
    top: 16px;
  }
  .calendar-list {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
  }
  .calendar-list .calendar-item {
    flex: 1 1 calc(50% - 16px);
    min-width: 250px;
  }
  .events-display-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
  }
  h1 {
    font-size: 32px;
    margin-bottom: 20px;
  }
  h2 {
    font-size: 28px;
    margin-bottom: 18px;
  }
  h3 {
    font-size: 24px;
    margin-bottom: 16px;
  }
  h4 {
    font-size: 20px;
    margin-bottom: 14px;
  }
  .desktop-text-center {
    text-align: center;
  }
  .desktop-heading {
    margin-bottom: 32px;
    text-align: center;
  }
  .desktop-only {
    display: block;
  }
  .mobile-only {
    display: none;
  }
  .desktop-padding {
    padding: 24px;
  }
  .desktop-margin {
    margin: 24px;
  }
  .desktop-flex-row {
    display: flex;
    flex-direction: row;
  }
  .desktop-flex-column {
    display: flex;
    flex-direction: column;
  }
  ion-split-pane {
    --side-max-width: 280px;
  }
  ion-split-pane ion-menu ion-toolbar {
    --color: white;
  }
  ion-split-pane #main-content ion-content {
    --padding-start: 24px;
    --padding-end: 24px;
  }
}
@media (min-width: 992px) {
  ion-segment {
    max-width: 70% !important;
  }
  .ride-cards,
  .available-rides,
  .current-rides-container,
  .history-container {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
  }
  .content-container, .desktop-container {
    padding-left: 24px;
    padding-right: 24px;
  }
  .empty-rides-container,
  .empty-state {
    padding: 80px 48px;
  }
  .empty-rides-container ion-icon,
  .empty-state ion-icon {
    font-size: 80px;
  }
  .empty-rides-container h2, .empty-rides-container h3,
  .empty-state h2,
  .empty-state h3 {
    font-size: 28px;
  }
  .empty-rides-container p,
  .empty-state p {
    font-size: 18px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .ride-card:hover .ride-actions {
    opacity: 1;
  }
  .ride-card .ride-actions {
    opacity: 0.7;
    transition: opacity 0.2s ease;
  }
  .desktop-nav {
    display: flex !important;
  }
  .desktop-action-bar {
    display: flex;
    justify-content: center;
    padding: 16px;
    gap: 16px;
    background-color: rgba(var(--ion-color-light-rgb), 0.8);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    margin: 0 auto 24px;
    max-width: 800px;
  }
  .desktop-action-bar ion-button {
    flex: 1;
    max-width: 200px;
    margin: 0 8px;
  }
  .desktop-action-bar ion-button ion-icon {
    margin-right: 8px;
  }
  ion-split-pane {
    --side-width: 280px;
    --side-max-width: 300px;
  }
  .desktop-header {
    --background: rgba(255, 255, 255, 0.95);
    --border-color: transparent;
    --box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
}
@media (min-width: 1200px) {
  .ride-cards,
  .available-rides,
  .current-rides-container,
  .history-container {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
  }
  .content-container, .desktop-container {
    padding-left: 32px;
    padding-right: 32px;
  }
  ion-split-pane {
    --side-max-width: 320px;
  }
}
/* ============================
   Desktop Modal Improvements
   ============================ */
ion-modal.desktop-modal {
  --width: 80%;
  --max-width: 800px;
  --height: auto;
  --max-height: 80%;
  --border-radius: 16px;
  --box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
}
ion-modal.desktop-modal .modal-wrapper {
  border-radius: var(--border-radius);
}

.calendar-import-modal {
  --width: 80%;
  --max-width: 900px;
  --height: auto;
  --max-height: 80%;
}

/* ============================
   Desktop Hover Effects
   ============================ */
@media (hover: hover) {
  ion-button:hover {
    opacity: 0.9;
  }
  ion-item.item-interactive:hover {
    --background: rgba(var(--ion-color-primary-rgb), 0.04);
  }
  .interactive-item:hover {
    background-color: rgba(var(--ion-color-primary-rgb), 0.06);
  }
  ion-fab-button:hover {
    --box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  }
  ion-card.interactive:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  }
  .hover-highlight:hover {
    background-color: rgba(var(--ion-color-primary-rgb), 0.08);
  }
}
/* ============================
   Print Styles
   ============================ */
@media print {
  ion-header,
  ion-footer,
  ion-fab,
  .no-print {
    display: none !important;
  }
  ion-content {
    --padding: 0;
    margin: 0;
  }
  .ride-card {
    page-break-inside: avoid;
    border: 1px solid #ddd;
    box-shadow: none !important;
    margin: 16px 0;
  }
}
/* ============================
   Calendar import related styles
   ============================ */
.calendar-list {
  margin: 16px 0;
}

.calendar-item {
  border-radius: 8px;
  margin-bottom: 8px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.calendar-item.selected {
  border-color: var(--ion-color-primary);
  background-color: rgba(var(--ion-color-primary-rgb), 0.08);
}

.calendar-icon {
  font-size: 20px;
  margin-right: 12px;
}

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