/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./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 ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap);
/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/core.css ***!
  \**********************************************************************************************************************************************************************************************************************************/
:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}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-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-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,html.ios ion-footer.modal-footer-moving 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,html.ios .modal-footer-moving 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, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !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, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !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, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 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, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !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, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !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, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !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, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !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, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !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-page.ion-page-overlay-passthrough{pointer-events:none}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}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.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/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/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%;text-size-adjust:100%}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;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/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, #0054e9)}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/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}}.ion-display-none{display:none !important}@media(min-width: 576px){.ion-display-sm-none{display:none !important}}@media(min-width: 768px){.ion-display-md-none{display:none !important}}@media(min-width: 992px){.ion-display-lg-none{display:none !important}}@media(min-width: 1200px){.ion-display-xl-none{display:none !important}}.ion-display-inline{display:inline !important}@media(min-width: 576px){.ion-display-sm-inline{display:inline !important}}@media(min-width: 768px){.ion-display-md-inline{display:inline !important}}@media(min-width: 992px){.ion-display-lg-inline{display:inline !important}}@media(min-width: 1200px){.ion-display-xl-inline{display:inline !important}}.ion-display-inline-block{display:inline-block !important}@media(min-width: 576px){.ion-display-sm-inline-block{display:inline-block !important}}@media(min-width: 768px){.ion-display-md-inline-block{display:inline-block !important}}@media(min-width: 992px){.ion-display-lg-inline-block{display:inline-block !important}}@media(min-width: 1200px){.ion-display-xl-inline-block{display:inline-block !important}}.ion-display-block{display:block !important}@media(min-width: 576px){.ion-display-sm-block{display:block !important}}@media(min-width: 768px){.ion-display-md-block{display:block !important}}@media(min-width: 992px){.ion-display-lg-block{display:block !important}}@media(min-width: 1200px){.ion-display-xl-block{display:block !important}}.ion-display-flex{display:flex !important}@media(min-width: 576px){.ion-display-sm-flex{display:flex !important}}@media(min-width: 768px){.ion-display-md-flex{display:flex !important}}@media(min-width: 992px){.ion-display-lg-flex{display:flex !important}}@media(min-width: 1200px){.ion-display-xl-flex{display:flex !important}}.ion-display-inline-flex{display:inline-flex !important}@media(min-width: 576px){.ion-display-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.ion-display-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.ion-display-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.ion-display-xl-inline-flex{display:inline-flex !important}}.ion-display-grid{display:grid !important}@media(min-width: 576px){.ion-display-sm-grid{display:grid !important}}@media(min-width: 768px){.ion-display-md-grid{display:grid !important}}@media(min-width: 992px){.ion-display-lg-grid{display:grid !important}}@media(min-width: 1200px){.ion-display-xl-grid{display:grid !important}}.ion-display-inline-grid{display:inline-grid !important}@media(min-width: 576px){.ion-display-sm-inline-grid{display:inline-grid !important}}@media(min-width: 768px){.ion-display-md-inline-grid{display:inline-grid !important}}@media(min-width: 992px){.ion-display-lg-inline-grid{display:inline-grid !important}}@media(min-width: 1200px){.ion-display-xl-inline-grid{display:inline-grid !important}}.ion-display-table{display:table !important}@media(min-width: 576px){.ion-display-sm-table{display:table !important}}@media(min-width: 768px){.ion-display-md-table{display:table !important}}@media(min-width: 992px){.ion-display-lg-table{display:table !important}}@media(min-width: 1200px){.ion-display-xl-table{display:table !important}}.ion-display-table-cell{display:table-cell !important}@media(min-width: 576px){.ion-display-sm-table-cell{display:table-cell !important}}@media(min-width: 768px){.ion-display-md-table-cell{display:table-cell !important}}@media(min-width: 992px){.ion-display-lg-table-cell{display:table-cell !important}}@media(min-width: 1200px){.ion-display-xl-table-cell{display:table-cell !important}}.ion-display-table-row{display:table-row !important}@media(min-width: 576px){.ion-display-sm-table-row{display:table-row !important}}@media(min-width: 768px){.ion-display-md-table-row{display:table-row !important}}@media(min-width: 992px){.ion-display-lg-table-row{display:table-row !important}}@media(min-width: 1200px){.ion-display-xl-table-row{display:table-row !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/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);padding-inline-start: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);padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--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);padding-inline-start: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);margin-inline-start: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);margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--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);margin-inline-start: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/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/float-elements.css ***!
  \********************************************************************************************************************************************************************************************************************************************/
.ion-float-left{float:left !important}.ion-float-right{float:right !important}.ion-float-start{float:left !important}:host-context([dir=rtl]) .ion-float-start{float:right !important}[dir=rtl] .ion-float-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right !important}}.ion-float-end{float:right !important}:host-context([dir=rtl]) .ion-float-end{float:left !important}[dir=rtl] .ion-float-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){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}:host-context([dir=rtl]) .ion-float-sm-start{float:right !important}[dir=rtl] .ion-float-sm-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right !important}}.ion-float-sm-end{float:right !important}:host-context([dir=rtl]) .ion-float-sm-end{float:left !important}[dir=rtl] .ion-float-sm-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){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}:host-context([dir=rtl]) .ion-float-md-start{float:right !important}[dir=rtl] .ion-float-md-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right !important}}.ion-float-md-end{float:right !important}:host-context([dir=rtl]) .ion-float-md-end{float:left !important}[dir=rtl] .ion-float-md-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){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}:host-context([dir=rtl]) .ion-float-lg-start{float:right !important}[dir=rtl] .ion-float-lg-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right !important}}.ion-float-lg-end{float:right !important}:host-context([dir=rtl]) .ion-float-lg-end{float:left !important}[dir=rtl] .ion-float-lg-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){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}:host-context([dir=rtl]) .ion-float-xl-start{float:right !important}[dir=rtl] .ion-float-xl-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right !important}}.ion-float-xl-end{float:right !important}:host-context([dir=rtl]) .ion-float-xl-end{float:left !important}[dir=rtl] .ion-float-xl-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left !important}}}/*# sourceMappingURL=float-elements.css.map */

/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./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/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/text-transformation.css ***!
  \*************************************************************************************************************************************************************************************************************************************************/
.ion-text-uppercase{text-transform:uppercase !important}.ion-text-lowercase{text-transform:lowercase !important}.ion-text-capitalize{text-transform:capitalize !important}@media(min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase !important}.ion-text-sm-lowercase{text-transform:lowercase !important}.ion-text-sm-capitalize{text-transform:capitalize !important}}@media(min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase !important}.ion-text-md-lowercase{text-transform:lowercase !important}.ion-text-md-capitalize{text-transform:capitalize !important}}@media(min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase !important}.ion-text-lg-lowercase{text-transform:lowercase !important}.ion-text-lg-capitalize{text-transform:capitalize !important}}@media(min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase !important}.ion-text-xl-lowercase{text-transform:lowercase !important}.ion-text-xl-capitalize{text-transform:capitalize !important}}/*# sourceMappingURL=text-transformation.css.map */

/*!****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./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-content-start{align-content:flex-start !important}.ion-align-content-end{align-content:flex-end !important}.ion-align-content-center{align-content:center !important}.ion-align-content-between{align-content:space-between !important}.ion-align-content-around{align-content:space-around !important}.ion-align-content-stretch{align-content:stretch !important}@media(min-width: 576px){.ion-align-content-sm-start{align-content:flex-start !important}.ion-align-content-sm-end{align-content:flex-end !important}.ion-align-content-sm-center{align-content:center !important}.ion-align-content-sm-between{align-content:space-between !important}.ion-align-content-sm-around{align-content:space-around !important}.ion-align-content-sm-stretch{align-content:stretch !important}}@media(min-width: 768px){.ion-align-content-md-start{align-content:flex-start !important}.ion-align-content-md-end{align-content:flex-end !important}.ion-align-content-md-center{align-content:center !important}.ion-align-content-md-between{align-content:space-between !important}.ion-align-content-md-around{align-content:space-around !important}.ion-align-content-md-stretch{align-content:stretch !important}}@media(min-width: 992px){.ion-align-content-lg-start{align-content:flex-start !important}.ion-align-content-lg-end{align-content:flex-end !important}.ion-align-content-lg-center{align-content:center !important}.ion-align-content-lg-between{align-content:space-between !important}.ion-align-content-lg-around{align-content:space-around !important}.ion-align-content-lg-stretch{align-content:stretch !important}}@media(min-width: 1200px){.ion-align-content-xl-start{align-content:flex-start !important}.ion-align-content-xl-end{align-content:flex-end !important}.ion-align-content-xl-center{align-content:center !important}.ion-align-content-xl-between{align-content:space-between !important}.ion-align-content-xl-around{align-content:space-around !important}.ion-align-content-xl-stretch{align-content:stretch !important}}.ion-align-items-start{align-items:start !important}.ion-align-items-end{align-items:end !important}.ion-align-items-center{align-items:center !important}.ion-align-items-stretch{align-items:stretch !important}.ion-align-items-baseline{align-items:baseline !important}@media(min-width: 576px){.ion-align-items-sm-start{align-items:start !important}.ion-align-items-sm-end{align-items:end !important}.ion-align-items-sm-center{align-items:center !important}.ion-align-items-sm-stretch{align-items:stretch !important}.ion-align-items-sm-baseline{align-items:baseline !important}}@media(min-width: 768px){.ion-align-items-md-start{align-items:start !important}.ion-align-items-md-end{align-items:end !important}.ion-align-items-md-center{align-items:center !important}.ion-align-items-md-stretch{align-items:stretch !important}.ion-align-items-md-baseline{align-items:baseline !important}}@media(min-width: 992px){.ion-align-items-lg-start{align-items:start !important}.ion-align-items-lg-end{align-items:end !important}.ion-align-items-lg-center{align-items:center !important}.ion-align-items-lg-stretch{align-items:stretch !important}.ion-align-items-lg-baseline{align-items:baseline !important}}@media(min-width: 1200px){.ion-align-items-xl-start{align-items:start !important}.ion-align-items-xl-end{align-items:end !important}.ion-align-items-xl-center{align-items:center !important}.ion-align-items-xl-stretch{align-items:stretch !important}.ion-align-items-xl-baseline{align-items:baseline !important}}.ion-align-self-start{align-self:start !important}.ion-align-self-end{align-self: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}@media(min-width: 576px){.ion-align-self-sm-start{align-self:start !important}.ion-align-self-sm-end{align-self:end !important}.ion-align-self-sm-center{align-self:center !important}.ion-align-self-sm-stretch{align-self:stretch !important}.ion-align-self-sm-baseline{align-self:baseline !important}.ion-align-self-sm-auto{align-self:auto !important}}@media(min-width: 768px){.ion-align-self-md-start{align-self:start !important}.ion-align-self-md-end{align-self:end !important}.ion-align-self-md-center{align-self:center !important}.ion-align-self-md-stretch{align-self:stretch !important}.ion-align-self-md-baseline{align-self:baseline !important}.ion-align-self-md-auto{align-self:auto !important}}@media(min-width: 992px){.ion-align-self-lg-start{align-self:start !important}.ion-align-self-lg-end{align-self:end !important}.ion-align-self-lg-center{align-self:center !important}.ion-align-self-lg-stretch{align-self:stretch !important}.ion-align-self-lg-baseline{align-self:baseline !important}.ion-align-self-lg-auto{align-self:auto !important}}@media(min-width: 1200px){.ion-align-self-xl-start{align-self:start !important}.ion-align-self-xl-end{align-self:end !important}.ion-align-self-xl-center{align-self:center !important}.ion-align-self-xl-stretch{align-self:stretch !important}.ion-align-self-xl-baseline{align-self:baseline !important}.ion-align-self-xl-auto{align-self:auto !important}}.ion-justify-content-start{justify-content:flex-start !important}.ion-justify-content-end{justify-content:flex-end !important}.ion-justify-content-center{justify-content:center !important}.ion-justify-content-between{justify-content:space-between !important}.ion-justify-content-around{justify-content:space-around !important}.ion-justify-content-evenly{justify-content:space-evenly !important}@media(min-width: 576px){.ion-justify-content-sm-start{justify-content:flex-start !important}.ion-justify-content-sm-end{justify-content:flex-end !important}.ion-justify-content-sm-center{justify-content:center !important}.ion-justify-content-sm-between{justify-content:space-between !important}.ion-justify-content-sm-around{justify-content:space-around !important}.ion-justify-content-sm-evenly{justify-content:space-evenly !important}}@media(min-width: 768px){.ion-justify-content-md-start{justify-content:flex-start !important}.ion-justify-content-md-end{justify-content:flex-end !important}.ion-justify-content-md-center{justify-content:center !important}.ion-justify-content-md-between{justify-content:space-between !important}.ion-justify-content-md-around{justify-content:space-around !important}.ion-justify-content-md-evenly{justify-content:space-evenly !important}}@media(min-width: 992px){.ion-justify-content-lg-start{justify-content:flex-start !important}.ion-justify-content-lg-end{justify-content:flex-end !important}.ion-justify-content-lg-center{justify-content:center !important}.ion-justify-content-lg-between{justify-content:space-between !important}.ion-justify-content-lg-around{justify-content:space-around !important}.ion-justify-content-lg-evenly{justify-content:space-evenly !important}}@media(min-width: 1200px){.ion-justify-content-xl-start{justify-content:flex-start !important}.ion-justify-content-xl-end{justify-content:flex-end !important}.ion-justify-content-xl-center{justify-content:center !important}.ion-justify-content-xl-between{justify-content:space-between !important}.ion-justify-content-xl-around{justify-content:space-around !important}.ion-justify-content-xl-evenly{justify-content:space-evenly !important}}.ion-flex-row{flex-direction:row !important}.ion-flex-row-reverse{flex-direction:row-reverse !important}.ion-flex-column{flex-direction:column !important}.ion-flex-column-reverse{flex-direction:column-reverse !important}@media(min-width: 576px){.ion-flex-sm-row{flex-direction:row !important}.ion-flex-sm-row-reverse{flex-direction:row-reverse !important}.ion-flex-sm-column{flex-direction:column !important}.ion-flex-sm-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 768px){.ion-flex-md-row{flex-direction:row !important}.ion-flex-md-row-reverse{flex-direction:row-reverse !important}.ion-flex-md-column{flex-direction:column !important}.ion-flex-md-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 992px){.ion-flex-lg-row{flex-direction:row !important}.ion-flex-lg-row-reverse{flex-direction:row-reverse !important}.ion-flex-lg-column{flex-direction:column !important}.ion-flex-lg-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-row{flex-direction:row !important}.ion-flex-xl-row-reverse{flex-direction:row-reverse !important}.ion-flex-xl-column{flex-direction:column !important}.ion-flex-xl-column-reverse{flex-direction:column-reverse !important}}.ion-wrap{flex-wrap:wrap !important}.ion-nowrap{flex-wrap:nowrap !important}.ion-wrap-reverse{flex-wrap:wrap-reverse !important}.ion-flex-wrap{flex-wrap:wrap !important}.ion-flex-nowrap{flex-wrap:nowrap !important}.ion-flex-wrap-reverse{flex-wrap:wrap-reverse !important}@media(min-width: 576px){.ion-flex-sm-wrap{flex-wrap:wrap !important}.ion-flex-sm-nowrap{flex-wrap:nowrap !important}.ion-flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 768px){.ion-flex-md-wrap{flex-wrap:wrap !important}.ion-flex-md-nowrap{flex-wrap:nowrap !important}.ion-flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 992px){.ion-flex-lg-wrap{flex-wrap:wrap !important}.ion-flex-lg-nowrap{flex-wrap:nowrap !important}.ion-flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-wrap{flex-wrap:wrap !important}.ion-flex-xl-nowrap{flex-wrap:nowrap !important}.ion-flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}}.ion-flex-1{flex:1 !important}.ion-flex-auto{flex:auto !important}.ion-flex-initial{flex:initial !important}.ion-flex-none{flex:none !important}@media(min-width: 576px){.ion-flex-sm-1{flex:1 !important}.ion-flex-sm-auto{flex:auto !important}.ion-flex-sm-initial{flex:initial !important}.ion-flex-sm-none{flex:none !important}}@media(min-width: 768px){.ion-flex-md-1{flex:1 !important}.ion-flex-md-auto{flex:auto !important}.ion-flex-md-initial{flex:initial !important}.ion-flex-md-none{flex:none !important}}@media(min-width: 992px){.ion-flex-lg-1{flex:1 !important}.ion-flex-lg-auto{flex:auto !important}.ion-flex-lg-initial{flex:initial !important}.ion-flex-lg-none{flex:none !important}}@media(min-width: 1200px){.ion-flex-xl-1{flex:1 !important}.ion-flex-xl-auto{flex:auto !important}.ion-flex-xl-initial{flex:initial !important}.ion-flex-xl-none{flex:none !important}}.ion-flex-grow-0{flex-grow:0 !important}.ion-flex-grow-1{flex-grow:1 !important}.ion-flex-shrink-0{flex-shrink:0 !important}.ion-flex-shrink-1{flex-shrink:1 !important}@media(min-width: 576px){.ion-flex-sm-grow-0{flex-grow:0 !important}.ion-flex-sm-grow-1{flex-grow:1 !important}.ion-flex-sm-shrink-0{flex-shrink:0 !important}.ion-flex-sm-shrink-1{flex-shrink:1 !important}}@media(min-width: 768px){.ion-flex-md-grow-0{flex-grow:0 !important}.ion-flex-md-grow-1{flex-grow:1 !important}.ion-flex-md-shrink-0{flex-shrink:0 !important}.ion-flex-md-shrink-1{flex-shrink:1 !important}}@media(min-width: 992px){.ion-flex-lg-grow-0{flex-grow:0 !important}.ion-flex-lg-grow-1{flex-grow:1 !important}.ion-flex-lg-shrink-0{flex-shrink:0 !important}.ion-flex-lg-shrink-1{flex-shrink:1 !important}}@media(min-width: 1200px){.ion-flex-xl-grow-0{flex-grow:0 !important}.ion-flex-xl-grow-1{flex-grow:1 !important}.ion-flex-xl-shrink-0{flex-shrink:0 !important}.ion-flex-xl-shrink-1{flex-shrink:1 !important}}.ion-order-first{order:-1 !important}.ion-order-0{order:0 !important}.ion-order-1{order:1 !important}.ion-order-2{order:2 !important}.ion-order-3{order:3 !important}.ion-order-4{order:4 !important}.ion-order-5{order:5 !important}.ion-order-6{order:6 !important}.ion-order-7{order:7 !important}.ion-order-8{order:8 !important}.ion-order-9{order:9 !important}.ion-order-10{order:10 !important}.ion-order-11{order:11 !important}.ion-order-12{order:12 !important}.ion-order-last{order:13 !important}@media(min-width: 576px){.ion-order-sm-first{order:-1 !important}.ion-order-sm-0{order:0 !important}.ion-order-sm-1{order:1 !important}.ion-order-sm-2{order:2 !important}.ion-order-sm-3{order:3 !important}.ion-order-sm-4{order:4 !important}.ion-order-sm-5{order:5 !important}.ion-order-sm-6{order:6 !important}.ion-order-sm-7{order:7 !important}.ion-order-sm-8{order:8 !important}.ion-order-sm-9{order:9 !important}.ion-order-sm-10{order:10 !important}.ion-order-sm-11{order:11 !important}.ion-order-sm-12{order:12 !important}.ion-order-sm-last{order:13 !important}}@media(min-width: 768px){.ion-order-md-first{order:-1 !important}.ion-order-md-0{order:0 !important}.ion-order-md-1{order:1 !important}.ion-order-md-2{order:2 !important}.ion-order-md-3{order:3 !important}.ion-order-md-4{order:4 !important}.ion-order-md-5{order:5 !important}.ion-order-md-6{order:6 !important}.ion-order-md-7{order:7 !important}.ion-order-md-8{order:8 !important}.ion-order-md-9{order:9 !important}.ion-order-md-10{order:10 !important}.ion-order-md-11{order:11 !important}.ion-order-md-12{order:12 !important}.ion-order-md-last{order:13 !important}}@media(min-width: 992px){.ion-order-lg-first{order:-1 !important}.ion-order-lg-0{order:0 !important}.ion-order-lg-1{order:1 !important}.ion-order-lg-2{order:2 !important}.ion-order-lg-3{order:3 !important}.ion-order-lg-4{order:4 !important}.ion-order-lg-5{order:5 !important}.ion-order-lg-6{order:6 !important}.ion-order-lg-7{order:7 !important}.ion-order-lg-8{order:8 !important}.ion-order-lg-9{order:9 !important}.ion-order-lg-10{order:10 !important}.ion-order-lg-11{order:11 !important}.ion-order-lg-12{order:12 !important}.ion-order-lg-last{order:13 !important}}@media(min-width: 1200px){.ion-order-xl-first{order:-1 !important}.ion-order-xl-0{order:0 !important}.ion-order-xl-1{order:1 !important}.ion-order-xl-2{order:2 !important}.ion-order-xl-3{order:3 !important}.ion-order-xl-4{order:4 !important}.ion-order-xl-5{order:5 !important}.ion-order-xl-6{order:6 !important}.ion-order-xl-7{order:7 !important}.ion-order-xl-8{order:8 !important}.ion-order-xl-9{order:9 !important}.ion-order-xl-10{order:10 !important}.ion-order-xl-11{order:11 !important}.ion-order-xl-12{order:12 !important}.ion-order-xl-last{order:13 !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/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 (1) ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@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 */
/*
 * Contenedor "fluido" del shell web/desktop (equivalente a `.container-fluid`
 * de Bootstrap 4): en vez de un `max-width` fijo centrado con mucho margen
 * gris a los lados en monitores anchos, el contenido ocupa TODO el ancho
 * disponible y solo deja un "gutter" lateral que crece/decrece con el
 * viewport (`clamp()`, no un breakpoint fijo).
 *
 * Variables CSS (no SCSS) a propósito: se definen UNA sola vez aquí en
 * `global.scss` (hoja no scopeada por componente) y se consumen con `var()`
 * tanto en `.main-app-content` (más abajo, en este archivo) como en
 * `web-topbar.component.scss` — evita que ambos archivos dupliquen los
 * mismos números mágicos (antes `1400px` / `48px` repetidos en 2 lugares) y
 * permite ajustar el layout completo cambiando un solo valor.
 *
 * - `--gq-shell-max-width: none` → sin tope; si en monitores ultra-anchos
 *   (ej. 4K/5K) se ve demasiado estirado, basta con poner acá un valor
 *   (ej. `1800px`) para volver a limitarlo, sin tocar los archivos que lo
 *   consumen.
 * - `--gq-shell-gutter-x`: margen lateral fluido, calibrado para dar ~150px
 *   en 1920px (valor que ya se validó visualmente) y escalar
 *   PROPORCIONALMENTE hacia abajo/arriba en el resto de tamaños:
 *
 *     1024px → ~80px   1366px → ~107px   1440px → ~112px
 *     1920px → ~150px  2560px → ~200px (techo; 4K+ no sigue creciendo)
 *
 *   `clamp(MIN, PREFERIDO, MAX)` exige MIN ≤ MAX — si el mínimo es mayor
 *   que el máximo (ej. `clamp(150px, 4.5vw, 96px)`, error previo) el
 *   navegador siempre devuelve el mínimo: deja de ser responsive y queda
 *   fijo en TODOS los tamaños de escritorio, incluido 1024px donde 150px
 *   por lado es demasiado. `7.8vw` es la pendiente que pasa por (1920,150);
 *   el piso (56px) solo protege ventanas angostas cerca del breakpoint
 *   ($bp-desktop: 1024px) y el techo (200px) evita que en 4K/5K
 *   (3840px+) el margen crezca sin límite.
 */
:root {
  --gq-shell-max-width: none;
  --gq-shell-gutter-x: clamp(56px, 7.8vw, 200px);
}

/* src/global.scss (o el .scss del componente) */
.safe-area-top {
  padding-top: env(safe-area-inset-top);
  /* iOS moderno */
  padding-top: constant(safe-area-inset-top);
  /* iOS antiguo */
}

ion-content.safe {
  --padding-top: env(safe-area-inset-top);
  --padding-bottom: env(safe-area-inset-bottom);
}

/* Estilos para modal CrediQ - ajustado a la base */
ion-modal.crediq-modal {
  --width: 90%;
  --max-width: 600px;
  --height: 90%;
  --border-radius: 16px;
  --box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --backdrop-opacity: 0.78 !important;
}

ion-modal.crediq-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.9) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Calendario citas — modal a pantalla completa */
ion-modal.calendar-modal-fullscreen {
  --width: 100%;
  --max-width: 100%;
  --height: 100%;
  --max-height: 100%;
  --border-radius: 0;
  --box-shadow: none;
}
ion-modal.calendar-modal-fullscreen::part(content) {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  border-radius: 0;
  overflow: hidden;
  padding-top: env(safe-area-inset-top);
  padding-top: constant(safe-area-inset-top);
  box-sizing: border-box;
}
ion-modal.calendar-modal-fullscreen::part(backdrop) {
  background: rgba(15, 23, 42, 0.55);
}

/* Basic CSS for apps built with Ionic */
/* Optional CSS utils that can be commented out */
/* Importar configuración específica para Android */
/* 
 * Configuración específica para Android para prevenir escalado automático de fuentes
 * Este archivo se importa en global.scss
 */
/* Deshabilitar escalado automático de fuentes en Android */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  * {
    -webkit-text-size-adjust: none !important;
    text-size-adjust: none !important;
    font-size: inherit !important;
  }
  html {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    font-size: 16px !important;
  }
  body {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    font-size: 16px !important;
  }
}
/* Configuración específica para WebView de Android */
.android-webview {
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
  font-size: 16px !important;
}

/* Forzar tamaños específicos para elementos de Ionic en Android */
ion-app {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-page {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

/* Configuración para todos los elementos de texto */
p, span, div, h1, h2, h3, h4, h5, h6, a, button, input, textarea, select {
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
  font-size: inherit !important;
}

/* Configuración específica para elementos de formulario */
ion-item {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-card {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-toolbar {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

/* Configuración para modales y popovers */
ion-modal, ion-popover {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

/* Configuración para alertas y toasts */
ion-alert, ion-toast {
  font-size: 16px !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

/* BLOQUEO DE ORIENTACIÓN HORIZONTAL - REMOVIDO */
/* El bloque de orientación horizontal ha sido removido para permitir 
   rotación libre del dispositivo y evitar alerts molestos */
/* Importar configuración para Safe Area y Edge-to-Edge */
/**
 * Zonas seguras (notch, Dynamic Island, indicador de inicio, bordes curvos).
 * Requiere `viewport-fit=cover` en el meta viewport (index.html).
 *
 * Nota: en algunos WebView Android `env(safe-area-inset-*)` puede ser 0 hasta que
 * la capa nativa use `WindowInsets` / edge-to-edge correctamente; no anular padding
 * con estilos globales `!important` (evitar el antiguo CSS de modo inmersivo).
 */
:root {
  --gq-safe-top: env(safe-area-inset-top, 0px);
  --gq-safe-bottom: env(safe-area-inset-bottom, 0px);
  --gq-safe-left: env(safe-area-inset-left, 0px);
  --gq-safe-right: env(safe-area-inset-right, 0px);
}

/* Toasts superiores (banner con variantes error | success | warn | info) */
/**
 * Toasts de aplicación (UtilsService.showToast)
 * Posición superior, banner con icono circular y texto blanco.
 * El margen desde el borde superior: variable `--app-toast-gap` en el host `ion-toast`
 * (por defecto 130px + safe area vía `top`).
 */
ion-toast.app-toast {
  --app-toast-gap: 130px;
  --border-radius: 10px;
  --border-width: 0;
  --box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
  --max-width: min(560px, calc(100vw - 32px));
  --start: 16px;
  --end: 16px;
  --button-color: #ffffff;
  top: calc(env(safe-area-inset-top, 0px) + var(--app-toast-gap, 130px)) !important;
  height: calc(100vh - env(safe-area-inset-top, 0px) - var(--app-toast-gap, 130px)) !important;
  font-size: 13px;
  font-weight: 500;
}

ion-toast.app-toast::part(container) {
  align-items: center;
}

/**
 * `part="icon"` en Ionic 8 es el propio `<ion-icon class="toast-icon">` (sin div envoltorio).
 * Ionic aplica `.toast-icon { font-size: 1.4em }` vía shadow — fijamos px para encaje estable.
 * `display: grid` + `place-items` centra el SVG dentro del círculo.
 */
ion-toast.app-toast::part(icon) {
  display: grid;
  place-items: center;
  place-content: center;
  align-self: center;
  flex-shrink: 0;
  box-sizing: border-box;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  margin-inline-start: 14px;
  margin-inline-end: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.24);
  color: #ffffff;
  line-height: 1;
  font-size: 22px !important;
  pointer-events: none;
}

ion-toast.app-toast::part(message) {
  font-size: 13px;
  color: #ffffff;
  font-weight: 500;
  line-height: 1.4;
  padding-block: 4px;
}

/* Variantes (fondo + contraste; el texto es siempre blanco en el mock) */
ion-toast.app-toast.app-toast--error {
  --background: var(--gq-red, #d34d38);
  --color: #ffffff;
}

ion-toast.app-toast.app-toast--success {
  --background: var(--gq-green, #56bc52);
  --color: #ffffff;
}

ion-toast.app-toast.app-toast--warn {
  --background: #d97706;
  --color: #ffffff;
}

ion-toast.app-toast.app-toast--info {
  --background: #3f63d5;
  --color: #ffffff;
}

/**
 * Tipografía label/valor en widgets.
 * Escalas: sm 10/15 · mid 12/14 · lg 14/16 (label/valor px).
 * Hijos: `.gq-widget-lbl` / `.gq-widget-val` o BEM `__lbl` / `__val` (`*=` por `ng-star-inserted`).
 */
.gq-labels-sm .gq-widget-lbl,
.gq-labels-sm [class*=__lbl],
.labels-sm .gq-widget-lbl,
.labels-sm [class*=__lbl] {
  font-size: var(--gq-widget-lbl-sm) !important;
  color: var(--gq-text-secondary, #798499) !important;
}
.gq-labels-sm .gq-widget-val,
.gq-labels-sm [class*=__val],
.labels-sm .gq-widget-val,
.labels-sm [class*=__val] {
  font-size: var(--gq-widget-val-sm) !important;
}
.gq-labels-sm .gq-widget-val *,
.gq-labels-sm [class*=__val] *,
.labels-sm .gq-widget-val *,
.labels-sm [class*=__val] * {
  font-size: inherit !important;
  font-weight: inherit;
}

.gq-labels-mid .gq-widget-lbl,
.gq-labels-mid [class*=__lbl],
.labels-mid .gq-widget-lbl,
.labels-mid [class*=__lbl] {
  font-size: var(--gq-widget-lbl-mid) !important;
  color: var(--gq-text-secondary, #798499) !important;
}
.gq-labels-mid .gq-widget-val,
.gq-labels-mid [class*=__val],
.labels-mid .gq-widget-val,
.labels-mid [class*=__val] {
  font-size: var(--gq-widget-val-mid) !important;
}
.gq-labels-mid .gq-widget-val *,
.gq-labels-mid [class*=__val] *,
.labels-mid .gq-widget-val *,
.labels-mid [class*=__val] * {
  font-size: inherit !important;
  font-weight: inherit;
}

.gq-labels-lg .gq-widget-lbl,
.gq-labels-lg [class*=__lbl],
.labels-lg .gq-widget-lbl,
.labels-lg [class*=__lbl] {
  font-size: var(--gq-widget-lbl-lg) !important;
  color: var(--gq-text-secondary, #798499) !important;
}
.gq-labels-lg .gq-widget-val,
.gq-labels-lg [class*=__val],
.labels-lg .gq-widget-val,
.labels-lg [class*=__val] {
  font-size: var(--gq-widget-val-lg) !important;
}
.gq-labels-lg .gq-widget-val *,
.gq-labels-lg [class*=__val] *,
.labels-lg .gq-widget-val *,
.labels-lg [class*=__val] * {
  font-size: inherit !important;
  font-weight: inherit;
}

/**
 * Contenedor tarjeta global (misma línea visual que `viewer-cars` / `.detail-card`):
 * fondo blanco, sombra suave, bordes redondeados. Envolver contenido en `<div class="card-elements">`.
 */
.card-elements {
  display: block;
  width: 100%;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 24px rgba(28, 36, 48, 0.08);
  box-sizing: border-box;
  padding: 14px;
}

/**
 * Ionic Dark Mode
 * -----------------------------------------------------
 * For more info, please see:
 * https://ionicframework.com/docs/theming/dark-mode
 * 
 * Modo oscuro deshabilitado - siempre usar modo claro
 */
/* @import "@ionic/angular/css/palettes/dark.always.css"; */
/* @import "@ionic/angular/css/palettes/dark.class.css"; */
/* @import "@ionic/angular/css/palettes/dark.system.css"; */
.poppins-thin {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: normal;
}

.poppins-extralight {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: normal;
}

.poppins-light {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

.poppins-black {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.poppins-thin-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 100;
  font-style: italic;
}

.poppins-extralight-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  font-style: italic;
}

.poppins-light-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.poppins-regular-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.poppins-medium-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.poppins-semibold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: italic;
}

.poppins-bold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.poppins-extrabold-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: italic;
}

.poppins-black-italic {
  font-family: "Poppins", sans-serif;
  font-weight: 900;
  font-style: italic;
}

.custom-popover-class {
  --width: 90%;
  --max-width: 600px;
  --border-radius: 140px;
  --box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  --background: #fff;
}
.custom-popover-class::part(content) {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  max-height: 85vh !important;
  overflow-y: auto !important;
}
.custom-popover-class .popover-content {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: "Inter", sans-serif;
}

ion-popover.popover-limite-velocidad.custom-popover-class {
  --width: auto;
  --max-width: min(368px, calc(100vw - 32px));
  --min-width: 0;
  --border-radius: 20px;
  --background: #ffffff;
  --box-shadow: 0 10px 40px rgba(15, 23, 42, 0.12);
}

ion-popover.popover-limite-velocidad.custom-popover-class::part(content) {
  width: fit-content !important;
  max-width: min(368px, 100vw - 32px) !important;
  overflow: hidden !important;
  background: #ffffff !important;
  border-radius: 20px !important;
}

ion-popover.popover-limite-velocidad.custom-popover-class .popover-content {
  padding: 0 !important;
  gap: 0;
}

/* Smart Q / Grupo Q — contacto 24/7: caja tipo `gq-modal-confirm` (no radio 140px del popover genérico). */
ion-popover.popover-sq-contacto247.custom-popover-class {
  --width: min(92vw, 400px);
  --max-width: 400px;
  --min-width: 0;
  --border-radius: 14px;
  --background: #ffffff;
  --box-shadow: 0 10px 40px rgba(15, 23, 42, 0.14);
}

ion-popover.popover-sq-contacto247.custom-popover-class::part(content) {
  width: min(92vw, 400px) !important;
  max-width: min(400px, 100vw - 24px) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #ffffff !important;
}

ion-popover.popover-sq-contacto247.custom-popover-class .popover-content {
  padding: 0 !important;
  gap: 0;
}

ion-popover.custom-popover-class::part(content) {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}

/* ====================================== */
/* CLASES DE COLOR GRUPOQ */
/* ====================================== */
.ion-color-primary {
  --ion-color-base: var(--ion-color-primary);
  --ion-color-base-rgb: var(--ion-color-primary-rgb);
  --ion-color-contrast: var(--ion-color-primary-contrast);
  --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb);
  --ion-color-shade: var(--ion-color-primary-shade);
  --ion-color-tint: var(--ion-color-primary-tint);
}

.ion-color-gpblue {
  --ion-color-base: var(--ion-color-gpblue);
  --ion-color-base-rgb: var(--ion-color-gpblue-rgb);
  --ion-color-contrast: var(--ion-color-gpblue-contrast);
  --ion-color-contrast-rgb: var(--ion-color-gpblue-contrast-rgb);
  --ion-color-shade: var(--ion-color-gpblue-shade);
  --ion-color-tint: var(--ion-color-gpblue-tint);
}

.ion-color-gpred {
  --ion-color-base: var(--ion-color-gpred);
  --ion-color-base-rgb: var(--ion-color-gpred-rgb);
  --ion-color-contrast: var(--ion-color-gpred-contrast);
  --ion-color-contrast-rgb: var(--ion-color-gpred-contrast-rgb);
  --ion-color-shade: var(--ion-color-gpred-shade);
  --ion-color-tint: var(--ion-color-gpred-tint);
}

.pop-header {
  background-color: var(--ion-color-gpblue) !important;
  color: white !important;
}

ion-modal {
  --width: 90%;
  --border-radius: 16px;
  --box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --backdrop-opacity: 0.62 !important;
}

ion-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.88) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* iOS: Ionic anula el backdrop en `.modal-card` (móvil); forzamos visibilidad en modales GQ. */
@media screen and (max-width: 767px) {
  ion-modal.modal-card.gq-modal-confirm,
  ion-modal.modal-card.gq-memb-adic-password-modal,
  ion-modal.modal-card.gq-memb-adic-add-modal,
  ion-modal.modal-card.crediq-modal,
  ion-modal.modal-card.crediq-select-card-sheet,
  ion-modal.modal-card.crediq-estado-cuenta-modal {
    --backdrop-opacity: 0.78 !important;
  }
  ion-modal.modal-card.gq-modal-confirm::part(backdrop),
  ion-modal.modal-card.gq-memb-adic-password-modal::part(backdrop),
  ion-modal.modal-card.gq-memb-adic-add-modal::part(backdrop),
  ion-modal.modal-card.crediq-modal::part(backdrop),
  ion-modal.modal-card.crediq-select-card-sheet::part(backdrop),
  ion-modal.modal-card.crediq-estado-cuenta-modal::part(backdrop) {
    pointer-events: auto !important;
    opacity: 1 !important;
    background-color: rgba(15, 23, 42, 0.9) !important;
  }
}
/* Tablet: Ionic también desactiva el backdrop en `.modal-card`. */
@media screen and (min-width: 768px) {
  ion-modal.modal-card.gq-modal-confirm,
  ion-modal.modal-card.gq-memb-adic-password-modal,
  ion-modal.modal-card.gq-memb-adic-add-modal,
  ion-modal.modal-card.crediq-modal,
  ion-modal.modal-card.crediq-select-card-sheet,
  ion-modal.modal-card.crediq-estado-cuenta-modal {
    --backdrop-opacity: 0.78 !important;
  }
  ion-modal.modal-card.gq-modal-confirm::part(backdrop),
  ion-modal.modal-card.gq-memb-adic-password-modal::part(backdrop),
  ion-modal.modal-card.gq-memb-adic-add-modal::part(backdrop),
  ion-modal.modal-card.crediq-modal::part(backdrop),
  ion-modal.modal-card.crediq-select-card-sheet::part(backdrop),
  ion-modal.modal-card.crediq-estado-cuenta-modal::part(backdrop) {
    pointer-events: auto !important;
    opacity: 1 !important;
    background-color: rgba(15, 23, 42, 0.9) !important;
  }
}
/** Modal agregar membresía adicional: fullscreen en mobile; flotante en desktop (ver media abajo). */
ion-modal.gq-memb-adic-add-modal {
  --width: 100vw !important;
  --max-width: 100vw !important;
  --min-width: 100vw !important;
  --height: 100% !important;
  --max-height: 100% !important;
  --border-radius: 0 !important;
  --box-shadow: none !important;
  --backdrop-opacity: 0.72 !important;
}

ion-modal.gq-memb-adic-add-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.92) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-memb-adic-add-modal::part(content) {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/** Modal cambiar contraseña: fullscreen en mobile; flotante en desktop (ver media abajo). */
ion-modal.gq-cambiar-contrasena-modal {
  --width: 100vw !important;
  --max-width: 100vw !important;
  --min-width: 100vw !important;
  --height: 100% !important;
  --max-height: 100% !important;
  --border-radius: 0 !important;
  --box-shadow: none !important;
  --backdrop-opacity: 0.72 !important;
}

ion-modal.gq-cambiar-contrasena-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.92) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-cambiar-contrasena-modal::part(content) {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/** Modal compacto: verificación de contraseña antes de agregar membresía adicional. */
ion-modal.gq-memb-adic-password-modal {
  --width: min(400px, 92vw);
  --max-width: min(400px, 92vw);
  --height: auto;
  --max-height: 90vh;
  --border-radius: 18px;
  --box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
  --backdrop-opacity: 0.82 !important;
}

ion-modal.gq-memb-adic-password-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.92) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-memb-adic-password-modal::part(content) {
  border-radius: 18px;
  overflow: hidden;
}

/** Modal web: membresía en tarjeta horizontal (topbar → ModalController). */
ion-modal.gq-membresia-modal {
  --width: min(640px, 90vw) !important;
  --max-width: min(640px, 90vw) !important;
  /* Solo el alto de la tarjeta (ratio 85.6/53.98 ≈ 0.6306), sin marco extra. */
  --height: min(calc(min(640px, 90vw) * 0.6306), 85vh) !important;
  --max-height: 85vh !important;
  --border-radius: 16px !important;
  --box-shadow: none !important;
  --background: transparent !important;
  --backdrop-opacity: 1 !important;
}

ion-modal.gq-membresia-modal::part(backdrop) {
  background-color: rgba(0, 0, 0, 0.78) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-membresia-modal::part(content) {
  width: min(640px, 90vw) !important;
  max-width: min(640px, 90vw) !important;
  height: min(min(640px, 90vw) * 0.6306, 85vh) !important;
  max-height: 85vh !important;
  margin: auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
  border: none !important;
}

/* Anula fondos blancos por defecto de Ionic dentro del modal de membresía. */
ion-modal.gq-membresia-modal app-grupoq-membresia,
ion-modal.gq-membresia-modal ion-content {
  background: transparent !important;
  --background: transparent !important;
}

/**
 * Modal web centrado (Ayuda → FAQs / soporte / términos, etc.).
 * No usa `fullscreen-modal`: tarjeta limitada en viewport con backdrop
 * oscuro, mismo lenguaje que `gq-membresia-modal`.
 */
ion-modal.gq-web-modal {
  --width: min(720px, 92vw) !important;
  --max-width: min(720px, 92vw) !important;
  --height: min(820px, 88vh) !important;
  --max-height: 88vh !important;
  --border-radius: 16px !important;
  --box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  --background: #ffffff !important;
  --backdrop-opacity: 1 !important;
}

ion-modal.gq-web-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.45) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-web-modal::part(content) {
  width: min(720px, 92vw) !important;
  max-width: min(720px, 92vw) !important;
  height: min(820px, 88vh) !important;
  max-height: 88vh !important;
  margin: auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  overflow: hidden !important;
  border: none !important;
}

ion-modal.gq-web-modal ion-page {
  --background: #ffffff;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

ion-modal.gq-web-modal.gq-web-modal--faqs ion-toolbar.gq-faq-toolbar {
  --background: #f6f7fb !important;
  --color: #1a1f26 !important;
  --border-width: 0 !important;
}

ion-modal.gq-web-modal.gq-web-modal--soporte ion-toolbar.gq-soporte-toolbar {
  --background: #f6f7fb !important;
  --color: #1a1f26 !important;
  --border-width: 0 !important;
}

ion-modal.gq-web-modal.gq-web-modal--terminos ion-toolbar.gq-tyc-toolbar {
  --background: #f8f9fa !important;
  --color: #222529 !important;
  --border-width: 0 !important;
}

/**
 * Familia de modales de autenticación web (login / activar / recuperar)
 * abiertos desde la landing. Compactos al contenido (`--height: auto`),
 * centrados, con el mismo radio/sombra que el resto de modales flotantes.
 * `gq-login-modal` se mantiene como alias por compatibilidad.
 *
 * `ion-content` por defecto es absolute/fill y colapsa el `--height: auto`
 * del modal a 0; por eso forzamos `position: relative` + `::part(scroll)`
 * relativo para que el alto lo dicte el formulario.
 */
ion-modal.gq-auth-modal,
ion-modal.gq-login-modal {
  --width: min(400px, 92vw) !important;
  --max-width: min(400px, 92vw) !important;
  --height: auto !important;
  --max-height: min(90vh, 720px) !important;
  --border-radius: 16px !important;
  --box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  --background: #ffffff !important;
  --backdrop-opacity: 1 !important;
}

ion-modal.gq-auth-modal::part(backdrop),
ion-modal.gq-login-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.45) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-auth-modal::part(content),
ion-modal.gq-login-modal::part(content) {
  width: min(400px, 92vw) !important;
  max-width: min(400px, 92vw) !important;
  height: auto !important;
  max-height: min(90vh, 720px) !important;
  margin: auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  overflow: hidden !important;
  border: none !important;
  position: relative !important;
  display: block !important;
  contain: content !important;
}

ion-modal.gq-auth-modal app-login,
ion-modal.gq-auth-modal app-grupoq-activar-cuenta,
ion-modal.gq-auth-modal app-grupoq-recuperar-clave,
ion-modal.gq-login-modal app-login,
ion-modal.gq-login-modal app-grupoq-activar-cuenta,
ion-modal.gq-login-modal app-grupoq-recuperar-clave {
  display: block;
  height: auto;
  background: #ffffff;
}

ion-modal.gq-auth-modal ion-content,
ion-modal.gq-login-modal ion-content {
  --background: #ffffff;
  --overflow: hidden;
  --offset-bottom: auto !important;
  --offset-top: 0px !important;
  background: #ffffff;
  position: relative !important;
  contain: none !important;
  display: block !important;
  height: auto !important;
  max-height: min(90vh, 720px);
  flex: none !important;
}

ion-modal.gq-auth-modal ion-content::part(scroll),
ion-modal.gq-login-modal ion-content::part(scroll) {
  position: relative !important;
  contain: none !important;
  height: auto !important;
  max-height: min(90vh, 720px);
  overflow: auto !important;
}

/**
 * Stack auth (login → activar / recuperar): el modal inferior se oculta
 * para no dejar un “marco” gris más alto detrás del hijo compacto.
 * El backdrop del padre sigue atenuando la landing; el del hijo es neutro.
 */
ion-modal.gq-auth-modal.show-modal:has(~ ion-modal.gq-auth-modal.show-modal) {
  pointer-events: none;
}
ion-modal.gq-auth-modal.show-modal:has(~ ion-modal.gq-auth-modal.show-modal)::part(content) {
  opacity: 0 !important;
  transform: scale(0.96) !important;
  transition: opacity 280ms cubic-bezier(0.32, 0.72, 0, 1), transform 280ms cubic-bezier(0.32, 0.72, 0, 1);
}

ion-modal.gq-auth-modal.show-modal ~ ion-modal.gq-auth-modal.show-modal {
  --backdrop-opacity: 0.01 !important;
}
ion-modal.gq-auth-modal.show-modal ~ ion-modal.gq-auth-modal.show-modal::part(backdrop) {
  background-color: transparent !important;
  opacity: 0.01 !important;
  pointer-events: none !important;
}

ion-modal.fullscreen-modal {
  --width: 100vw !important;
  --max-width: 100vw !important;
  --min-width: 100vw !important;
  --height: 100vh !important;
  --max-height: 100vh !important;
  --border-radius: 0 !important;
  --box-shadow: none !important;
}
ion-modal.fullscreen-modal::part(content) {
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 100vw !important;
  height: 100vh !important;
  max-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
}
ion-modal.fullscreen-modal .modal-wrapper {
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 100vw !important;
  height: 100vh !important;
  max-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
}
ion-modal.fullscreen-modal app-cap-browser {
  width: 100vw !important;
  max-width: 100vw !important;
  min-width: 100vw !important;
  height: 100vh !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
ion-modal.fullscreen-modal::part(backdrop) {
  background: rgb(209, 213, 219);
  opacity: 1;
}
ion-modal.fullscreen-modal ion-toolbar {
  --background: var(--ion-color-primary);
  --color: white;
}

/**
 * Web/desktop (≥ $bp-desktop): fullscreen / calendar pasan a tarjeta
 * flotante centrada — misma línea que `gq-web-modal`. Mobile no cambia.
 * `gq-memb-adic-add-modal` y `gq-cambiar-contrasena-modal` tienen override
 * propio más angosto (~500px) más abajo.
 */
@media (min-width: 1024px) {
  ion-modal.fullscreen-modal,
  ion-modal.calendar-modal-fullscreen {
    --width: min(720px, 92vw) !important;
    --max-width: min(720px, 92vw) !important;
    --min-width: 0 !important;
    --height: min(820px, 88vh) !important;
    --max-height: 88vh !important;
    --border-radius: 16px !important;
    --box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
    --background: #ffffff !important;
    --backdrop-opacity: 1 !important;
  }
  ion-modal.fullscreen-modal::part(backdrop),
  ion-modal.calendar-modal-fullscreen::part(backdrop) {
    background-color: rgba(15, 23, 42, 0.45) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  ion-modal.fullscreen-modal::part(content),
  ion-modal.calendar-modal-fullscreen::part(content) {
    width: min(720px, 92vw) !important;
    max-width: min(720px, 92vw) !important;
    min-width: 0 !important;
    height: min(820px, 88vh) !important;
    max-height: 88vh !important;
    margin: auto !important;
    padding: 0 !important;
    padding-top: 0 !important;
    border-radius: 16px !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    overflow: hidden !important;
    background: #ffffff !important;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
    border: none !important;
  }
  ion-modal.fullscreen-modal .modal-wrapper,
  ion-modal.calendar-modal-fullscreen .modal-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 16px !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    background: #ffffff !important;
  }
  ion-modal.fullscreen-modal ion-page,
  ion-modal.calendar-modal-fullscreen ion-page {
    --background: #ffffff;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }
  ion-modal.fullscreen-modal app-cap-browser,
  ion-modal.calendar-modal-fullscreen app-cap-browser {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /**
   * Formularios de cuenta (membresía adicional / cambiar contraseña):
   * tarjeta angosta ~500px, acorde al contenido.
   */
  ion-modal.gq-memb-adic-add-modal,
  ion-modal.gq-cambiar-contrasena-modal {
    --width: min(500px, 92vw) !important;
    --max-width: min(500px, 92vw) !important;
    --min-width: 0 !important;
    --height: min(640px, 88vh) !important;
    --max-height: 88vh !important;
    --border-radius: 16px !important;
    --box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
    --background: #ffffff !important;
    --backdrop-opacity: 1 !important;
  }
  ion-modal.gq-memb-adic-add-modal::part(backdrop),
  ion-modal.gq-cambiar-contrasena-modal::part(backdrop) {
    background-color: rgba(15, 23, 42, 0.45) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  ion-modal.gq-memb-adic-add-modal::part(content),
  ion-modal.gq-cambiar-contrasena-modal::part(content) {
    width: min(500px, 92vw) !important;
    max-width: min(500px, 92vw) !important;
    min-width: 0 !important;
    height: min(640px, 88vh) !important;
    max-height: 88vh !important;
    margin: auto !important;
    padding: 0 !important;
    border-radius: 16px !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    overflow: hidden !important;
    background: #ffffff !important;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
    border: none !important;
  }
  ion-modal.gq-memb-adic-add-modal .modal-wrapper,
  ion-modal.gq-cambiar-contrasena-modal .modal-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    border-radius: 16px !important;
    background: #ffffff !important;
  }
  ion-modal.gq-memb-adic-add-modal ion-page,
  ion-modal.gq-cambiar-contrasena-modal ion-page {
    --background: #ffffff;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }
}
/**
 * Selector fecha de nacimiento: cuadro compacto centrado (no sheet ancho).
 * Vive en body vía ion-modal; estilos globales necesarios.
 */
ion-modal.birthdate-modal {
  --width: min(340px, 92vw) !important;
  --max-width: min(340px, 92vw) !important;
  --min-width: 0 !important;
  --height: min(300px, 70vh) !important;
  --max-height: 70vh !important;
  --border-radius: 16px !important;
  --box-shadow: 0 12px 40px rgba(15, 23, 42, 0.2) !important;
  --background: #ffffff !important;
  --backdrop-opacity: 1 !important;
}

ion-modal.birthdate-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.45) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.birthdate-modal::part(content) {
  width: min(340px, 92vw) !important;
  max-width: min(340px, 92vw) !important;
  height: min(300px, 70vh) !important;
  max-height: 70vh !important;
  margin: auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.2) !important;
  border: none !important;
}

ion-modal.birthdate-modal ion-page {
  --background: #ffffff;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

ion-modal.fullscreen-modal.fullscreen-modal--faqs {
  --background: #ffffff;
}
ion-modal.fullscreen-modal.fullscreen-modal--faqs::part(content) {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--faqs .modal-wrapper {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--faqs ion-page {
  --background: #ffffff;
  background: #ffffff;
}
ion-modal.fullscreen-modal.fullscreen-modal--faqs ion-toolbar.gq-faq-toolbar {
  --background: #f6f7fb !important;
  --color: #1a1f26 !important;
  --border-width: 0 !important;
}

ion-modal.fullscreen-modal.fullscreen-modal--soporte {
  --background: #ffffff;
}
ion-modal.fullscreen-modal.fullscreen-modal--soporte::part(content) {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--soporte .modal-wrapper {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--soporte ion-page {
  --background: #ffffff;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
ion-modal.fullscreen-modal.fullscreen-modal--soporte ion-toolbar.gq-soporte-toolbar {
  --background: #f6f7fb !important;
  --color: #1a1f26 !important;
  --border-width: 0 !important;
}

ion-modal.fullscreen-modal.fullscreen-modal--terminos {
  --background: transparent;
  --border-radius: 16px 16px 0 0 !important;
  --box-shadow: none !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--terminos::part(content) {
  background: #ffffff !important;
  border-radius: 16px 16px 0 0 !important;
  overflow: hidden !important;
  box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.12);
}
ion-modal.fullscreen-modal.fullscreen-modal--terminos .modal-wrapper {
  background: transparent !important;
  border-radius: 16px 16px 0 0 !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--terminos ion-page {
  --background: #ffffff;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
ion-modal.fullscreen-modal.fullscreen-modal--terminos ion-toolbar.gq-tyc-toolbar {
  --background: #f8f9fa !important;
  --color: #222529 !important;
  --border-width: 0 !important;
}

ion-modal.fullscreen-modal.fullscreen-modal--aseguradora {
  --background: #ffffff;
}
ion-modal.fullscreen-modal.fullscreen-modal--aseguradora::part(content) {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--aseguradora .modal-wrapper {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal.fullscreen-modal--aseguradora ion-page {
  --background: #ffffff;
  background: #ffffff;
}
ion-modal.fullscreen-modal.fullscreen-modal--aseguradora ion-toolbar.gq-aseguradora__toolbar {
  --background: #f5f6f8;
  --color: #1a1a1a;
}

/* Smart Q — modal «Configurar alertas»: ítems compactos + labels 14px */
ion-modal.fullscreen-modal--sq-alertas-config .gq-selection-sheet__context {
  font-size: 16px !important;
  font-weight: bold !important;
}
ion-modal.fullscreen-modal--sq-alertas-config ion-item.gq-selection-sheet__item {
  --min-height: 0 !important;
  --padding-top: 0;
  --padding-bottom: 0;
  --inner-padding-top: 0;
  --inner-padding-bottom: 0;
  min-height: 0 !important;
  margin: 0 !important;
}
ion-modal.fullscreen-modal--sq-alertas-config ion-item.gq-selection-sheet__item::part(native) {
  min-height: 0 !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  align-items: center;
}
ion-modal.fullscreen-modal--sq-alertas-config .gq-selection-sheet__checkbox {
  margin-inline-end: 10px;
  --size: 20px;
}
ion-modal.fullscreen-modal--sq-alertas-config .gq-selection-sheet__label,
ion-modal.fullscreen-modal--sq-alertas-config ion-label.gq-selection-sheet__label {
  font-size: 14px !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}
ion-modal.fullscreen-modal--sq-alertas-config .gq-selection-sheet__foot-btn {
  font-size: 14px !important;
}

ion-modal.custom-dialog-class::part(content),
ion-popover.custom-dialog-class::part(content) {
  border-radius: 16px !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  background: #fff;
}

/* Modal fullscreen «Datos del conductor» — nueva cita GrupoQ */
ion-modal.fullscreen-modal--fec-conductor {
  --background: #ffffff;
}
ion-modal.fullscreen-modal--fec-conductor::part(content) {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal--fec-conductor .modal-wrapper {
  background: #ffffff !important;
}
ion-modal.fullscreen-modal--fec-conductor ion-page {
  --background: #ffffff;
  background: #ffffff;
}

ion-popover.custom-popover-class:not([reference]):not([event])::part(content),
ion-popover.custom-popover-class::part(content) {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}

ion-app.ios ion-radio-group ion-radio {
  --color: #757575;
  --color-checked: var(--ion-color-primary);
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  margin: 0;
}

ion-app.ios ion-radio-group ion-radio::part(container) {
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  box-sizing: border-box;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

ion-radio.sc-ion-select-popover-ios,
ion-radio.sc-ion-select-popover-md,
.sc-ion-select-popover-ios ion-radio,
.sc-ion-select-popover-md ion-radio {
  width: unset !important;
  height: unset !important;
  min-width: unset !important;
  min-height: unset !important;
  margin: unset !important;
}

ion-radio.sc-ion-select-popover-ios::part(container),
ion-radio.sc-ion-select-popover-md::part(container),
.sc-ion-select-popover-ios ion-radio::part(container),
.sc-ion-select-popover-md ion-radio::part(container) {
  width: unset !important;
  height: unset !important;
  min-width: unset !important;
  min-height: unset !important;
}

ion-select {
  --width: 95% !important;
  max-width: 95% !important;
}

/* Estilos de `ion-alert` (AlertController): `src/theme/gq-ion-alert.scss` (import al final de `variables.scss`). */
.modal-wrapper,
.popover-content,
.alert-wrapper,
.toast-wrapper {
  border-radius: 4px !important;
  overflow: hidden !important;
}

ion-modal.welcome-guide-fullscreen {
  --width: 100% !important;
  --height: 100% !important;
  --max-width: 100% !important;
  --max-height: 100% !important;
  --border-radius: 0 !important;
  --box-shadow: none !important;
  --backdrop-opacity: 1 !important;
}
ion-modal.welcome-guide-fullscreen::part(content) {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
ion-modal.welcome-guide-fullscreen::part(backdrop) {
  background: rgba(0, 0, 0, 0.5) !important;
  opacity: 1 !important;
}

* {
  font-family: var(--gq-font-family, "Nunito", sans-serif) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-size: inherit !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

/* Prevenir que el sistema modifique el tamaño de fuente */
/* Misma base que `ion-content` (#f6f7fb): evita que en modo edge-to-edge / viewport-fit=cover
 * se vea blanco o contenido “tapando” la zona de status bar cuando hay overscroll o fullscreen. */
html {
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
  font-size: var(--gq-font-root, clamp(15px, 4.2vw + 1px, 17px)) !important;
  background-color: #f6f7fb !important;
}

body {
  font-family: var(--gq-font-family, "Nunito", sans-serif);
  font-optical-sizing: auto;
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
  font-size: 1em !important;
  background-color: #f6f7fb !important;
  margin: 0;
  min-height: 100vh;
  min-height: -webkit-fill-available;
  --ion-text-color: var(--gq-text-primary, #222529);
  color: var(--gq-text-primary, #222529) !important;
}

/* Forzar tamaños de fuente específicos para elementos clave */
ion-app {
  font-family: var(--ion-font-family, "Nunito", sans-serif);
  background-color: #f6f7fb !important;
  min-height: 100vh;
  min-height: -webkit-fill-available;
  --ion-text-color: var(--gq-text-primary, #222529);
  /* Permitir scroll natural */
}

/* Configuración específica para ion-content: hereda escala fluida del documento */
ion-content {
  font-size: 1em !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
  --background: #f6f7fb !important;
  background-color: #f6f7fb !important;
  --ion-text-color: var(--gq-text-primary, #222529);
  --color: var(--gq-text-primary, #222529);
  color: var(--gq-text-primary, #222529);
}

/**
 * Texto oscuro global (Figma #222529).
 * Los hex fijos (#000, #1c1c1e…) en SCSS de componentes siguen ganando hasta migrarlos a `var(--gq-text-primary)`.
 */
ion-label,
ion-text,
ion-title,
ion-list-header,
ion-card-title,
ion-card-subtitle,
ion-item h1,
ion-item h2,
ion-item h3,
ion-item h4,
ion-item h5,
ion-item h6,
ion-item p,
h1,
h2,
h3,
h4,
h5,
h6,
p,
strong,
b {
  color: var(--gq-text-primary, #222529);
}

strong,
b,
.font-weight-bold {
  color: inherit;
}

.gq-text-primary {
  color: var(--gq-text-primary, #222529) !important;
}

.gq-text-secondary {
  color: var(--gq-text-secondary, #798499) !important;
}

/* No forzar texto oscuro sobre superficies con color de marca explícito */
.gq-blue ion-label,
.gq-blue ion-text,
.gq-blue ion-title,
.gq-blue strong,
.gq-blue b,
.gq-blue h1,
.gq-blue h2,
.gq-blue h3,
.gq-blue h4,
.gq-blue h5,
.gq-blue h6,
.gq-blue p,
.gq-header.gq-blue ion-label,
.gq-header.gq-blue ion-text,
.gq-header.gq-blue ion-title,
.gq-header.gq-blue strong,
.gq-header.gq-blue b,
.gq-header.gq-blue h1,
.gq-header.gq-blue h2,
.gq-header.gq-blue h3,
.gq-header.gq-blue h4,
.gq-header.gq-blue h5,
.gq-header.gq-blue h6,
.gq-header.gq-blue p,
.hm-car-header ion-label,
.hm-car-header ion-text,
.hm-car-header ion-title,
.hm-car-header strong,
.hm-car-header b,
.hm-car-header h1,
.hm-car-header h2,
.hm-car-header h3,
.hm-car-header h4,
.hm-car-header h5,
.hm-car-header h6,
.hm-car-header p,
ion-button ion-label,
ion-button ion-text,
ion-button ion-title,
ion-button strong,
ion-button b,
ion-button h1,
ion-button h2,
ion-button h3,
ion-button h4,
ion-button h5,
ion-button h6,
ion-button p,
ion-tab-button ion-label,
ion-tab-button ion-text,
ion-tab-button ion-title,
ion-tab-button strong,
ion-tab-button b,
ion-tab-button h1,
ion-tab-button h2,
ion-tab-button h3,
ion-tab-button h4,
ion-tab-button h5,
ion-tab-button h6,
ion-tab-button p,
.ion-color-primary ion-label,
.ion-color-primary ion-text,
.ion-color-primary ion-title,
.ion-color-primary strong,
.ion-color-primary b,
.ion-color-primary h1,
.ion-color-primary h2,
.ion-color-primary h3,
.ion-color-primary h4,
.ion-color-primary h5,
.ion-color-primary h6,
.ion-color-primary p,
.ion-color-secondary ion-label,
.ion-color-secondary ion-text,
.ion-color-secondary ion-title,
.ion-color-secondary strong,
.ion-color-secondary b,
.ion-color-secondary h1,
.ion-color-secondary h2,
.ion-color-secondary h3,
.ion-color-secondary h4,
.ion-color-secondary h5,
.ion-color-secondary h6,
.ion-color-secondary p,
.ion-color-gpblue ion-label,
.ion-color-gpblue ion-text,
.ion-color-gpblue ion-title,
.ion-color-gpblue strong,
.ion-color-gpblue b,
.ion-color-gpblue h1,
.ion-color-gpblue h2,
.ion-color-gpblue h3,
.ion-color-gpblue h4,
.ion-color-gpblue h5,
.ion-color-gpblue h6,
.ion-color-gpblue p,
.ion-color-gptitle ion-label,
.ion-color-gptitle ion-text,
.ion-color-gptitle ion-title,
.ion-color-gptitle strong,
.ion-color-gptitle b,
.ion-color-gptitle h1,
.ion-color-gptitle h2,
.ion-color-gptitle h3,
.ion-color-gptitle h4,
.ion-color-gptitle h5,
.ion-color-gptitle h6,
.ion-color-gptitle p,
.ion-color-gpred ion-label,
.ion-color-gpred ion-text,
.ion-color-gpred ion-title,
.ion-color-gpred strong,
.ion-color-gpred b,
.ion-color-gpred h1,
.ion-color-gpred h2,
.ion-color-gpred h3,
.ion-color-gpred h4,
.ion-color-gpred h5,
.ion-color-gpred h6,
.ion-color-gpred p,
.ion-color-gpbase ion-label,
.ion-color-gpbase ion-text,
.ion-color-gpbase ion-title,
.ion-color-gpbase strong,
.ion-color-gpbase b,
.ion-color-gpbase h1,
.ion-color-gpbase h2,
.ion-color-gpbase h3,
.ion-color-gpbase h4,
.ion-color-gpbase h5,
.ion-color-gpbase h6,
.ion-color-gpbase p,
.ion-color-gp-base ion-label,
.ion-color-gp-base ion-text,
.ion-color-gp-base ion-title,
.ion-color-gp-base strong,
.ion-color-gp-base b,
.ion-color-gp-base h1,
.ion-color-gp-base h2,
.ion-color-gp-base h3,
.ion-color-gp-base h4,
.ion-color-gp-base h5,
.ion-color-gp-base h6,
.ion-color-gp-base p,
.ion-color-danger ion-label,
.ion-color-danger ion-text,
.ion-color-danger ion-title,
.ion-color-danger strong,
.ion-color-danger b,
.ion-color-danger h1,
.ion-color-danger h2,
.ion-color-danger h3,
.ion-color-danger h4,
.ion-color-danger h5,
.ion-color-danger h6,
.ion-color-danger p,
.ion-color-success ion-label,
.ion-color-success ion-text,
.ion-color-success ion-title,
.ion-color-success strong,
.ion-color-success b,
.ion-color-success h1,
.ion-color-success h2,
.ion-color-success h3,
.ion-color-success h4,
.ion-color-success h5,
.ion-color-success h6,
.ion-color-success p,
.ion-color-warning ion-label,
.ion-color-warning ion-text,
.ion-color-warning ion-title,
.ion-color-warning strong,
.ion-color-warning b,
.ion-color-warning h1,
.ion-color-warning h2,
.ion-color-warning h3,
.ion-color-warning h4,
.ion-color-warning h5,
.ion-color-warning h6,
.ion-color-warning p {
  color: inherit;
}

ion-button {
  font-size: 1em !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-label {
  font-size: 1em !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-input {
  font-size: 1em !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-text {
  font-size: 1em !important;
  -webkit-text-size-adjust: none !important;
  text-size-adjust: none !important;
}

ion-list {
  width: 100% !important;
}

/* Jerarquía tipográfica opcional (tokens en `variables.scss` → `--gq-text-*`) */
.gq-text-xs {
  font-size: var(--gq-text-xs) !important;
}

.gq-text-sm {
  font-size: var(--gq-text-sm) !important;
}

.gq-text-body {
  font-size: var(--gq-text-body) !important;
}

.gq-text-md {
  font-size: var(--gq-text-md) !important;
}

.gq-text-lg {
  font-size: var(--gq-text-lg) !important;
}

.gq-text-xl {
  font-size: var(--gq-text-xl) !important;
}

.gq-text-title {
  font-size: var(--gq-text-title) !important;
}

.gq-text-display {
  font-size: var(--gq-text-display) !important;
}

ion-button {
  --border-radius: 100px !important;
  --min-height: var(--gq-button-height, 41px) !important;
  min-height: var(--gq-button-height, 41px) !important;
  height: var(--gq-button-height, 41px) !important;
  max-height: var(--gq-button-height, 41px) !important;
  text-transform: none !important;
}

/**
 * Altura fija GQ (41px) — usar cuando un botón pierda la altura global
 * o en `<button type="button">` / enlaces con forma de botón.
 * Ej.: `<button type="button" class="gq-btn-h-41">` o `<ion-button class="gq-btn-h-41">`.
 */
button.gq-btn-h-41,
a.gq-btn-h-41,
[role=button].gq-btn-h-41 {
  box-sizing: border-box !important;
  min-height: var(--gq-button-height, 41px) !important;
  height: var(--gq-button-height, 41px) !important;
  max-height: var(--gq-button-height, 41px) !important;
}

ion-button.gq-btn-h-41 {
  --min-height: var(--gq-button-height, 41px) !important;
  min-height: var(--gq-button-height, 41px) !important;
  height: var(--gq-button-height, 41px) !important;
  max-height: var(--gq-button-height, 41px) !important;
}

.contenedor-flex {
  display: flex;
  height: 100%;
}

.justify-content-center {
  justify-content: center;
}

.justify-content-start {
  justify-content: flex-start;
}

.justify-content-end {
  justify-content: flex-end;
}

.align-items-center {
  align-items: center;
}

.align-items-start {
  align-items: flex-start;
}

.align-items-end {
  align-items: flex-end;
}

.justify-content-between {
  justify-content: space-between;
}

.login-logo {
  margin: 0 auto;
  border-radius: 10px;
}

.img {
  border: none !important;
}

.cursor-pointer {
  cursor: pointer !important;
}

.font-weight-bold {
  font-weight: bold !important;
}

/* Clases para botones y bordes - Migradas desde app base */
.btn-outline-complement {
  --border-width: 0;
  --border-style: none;
  --border-radius: 10px;
  --background: transparent;
  --box-shadow: none;
  height: 45px;
}

.btn-radius {
  --border-radius: 20px !important;
}
.btn-radius .button-native {
  border-radius: 20px !important;
  --border-radius: 20px !important;
}

.border-bt {
  border-bottom: none;
  color: var(--ion-color-gptitle);
  font-size: 14px;
  cursor: pointer;
  display: inline-block;
  text-decoration: none;
}

input:-webkit-autofill,
input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #f6f7fb inset;
  -webkit-text-fill-color: #333;
}

ion-input input:-webkit-autofill {
  background-color: #f6f7fb !important;
  -webkit-box-shadow: 0 0 0px 1000px #f6f7fb inset !important;
  -webkit-text-fill-color: black !important;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

.input-base-app-gq {
  --background: #f6f7fb;
  border: 1px solid #05144f !important;
  border-radius: 10px !important;
  padding: 5px !important;
  text-align: center !important;
  --highlight-height: 0px !important;
  --bottom-border-width: 0px !important;
}

.input-error-app-gq {
  --background: #f6f7fb;
  border: 1px solid var(--gq-red, #d34d38) !important;
  border-radius: 10px !important;
  padding: 5px !important;
  text-align: center !important;
  --highlight-height: 0px !important;
  --bottom-border-width: 0px !important;
}

.fz-icon-app-gq {
  font-size: 25px !important;
}

.general-spinner .loading-wrapper {
  background-color: white !important;
  background: white !important; /* iOS WebKit a veces ignora solo background-color */
  background-clip: padding-box;
  border-radius: 50%;
  opacity: 1 !important;
  transform: translateZ(0); /* fuerza capa propia en iOS para que pinte el fondo */
}
.general-spinner .loading-content {
  width: 200px;
  text-align: center;
  color: white;
  font-size: 20px;
  margin-top: 160px;
  margin-left: -50px;
}
.general-spinner .loading-content img {
  width: 120px;
}

.general-spinner .loading-wrapper {
  box-shadow: none !important;
  /* Eliminar sombra */
  background-color: white !important; /* fondo sólido en iOS */
  background-image: url('preloader.gif') !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  content: "" !important;
  display: block !important;
  width: 150px !important;
  height: 150px !important;
  margin: 0 auto !important;
  background-clip: padding-box;
  transform: translateZ(0);
}

.general-spinner .loading-message {
  text-align: center !important;
  /* Centra el mensaje si lo necesitas */
}

.gq-titulos {
  font-weight: bold !important;
  font-size: 1.2em;
}

.gq-red {
  background-color: var(--gq-red, #d34d38) !important;
  color: white !important;
}

/* Clases de fuente DIN (igual a la base) */
.text-DIN {
  font-family: var(--gq-font-family, "Nunito", sans-serif) !important;
}

.fsz-12 {
  font-size: 1.2rem !important;
}

.text-gq-red {
  color: var(--gq-red, #d34d38) !important;
}

.btn-gq-red {
  --background: var(--gq-red, #d34d38) !important;
  --color: white !important;
}

.gq-purple {
  background-color: #05144f !important;
  color: white !important;
}

.text-gq-purple {
  color: #05144f !important;
}

.btn-gq-purple {
  --background: #05144f !important;
  --color: white !important;
}

.gq-blue {
  background-color: var(--ion-color-gpblue) !important;
  color: white !important;
}

.text-gq-blue {
  color: var(--ion-color-gpblue) !important;
}

.btn-gq-blue {
  --background: var(--ion-color-gpblue) !important;
  --color: white !important;
}

.gq-gray {
  background-color: #999999 !important;
  color: white !important;
}

.text-gq-gray {
  color: #999999 !important;
}

.alert-info {
  background-color: #d1ecf1;
  border: 1px solid #bee5eb;
  border-radius: 5px;
  color: #05144f;
}

/**
 * Header MiGrupoQ (home): colapsar columna central del `ion-toolbar` (título vacío).
 * Debe ir en global: el `::part(content)` debe ganar a estilos del shadow de Ionic sin depender del encapsulado del componente.
 */
ion-header.gq-header.hm-header--surface:not(.gq-blue):not(.gq-light):not(.gq-simple) ion-toolbar.gq-toolbar::part(content) {
  flex: 0 0 0 !important;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  flex-basis: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  opacity: 0;
  pointer-events: none;
}

ion-header.gq-header.hm-header--surface:not(.gq-blue):not(.gq-light):not(.gq-simple) ion-toolbar.gq-toolbar ion-buttons[slot=end] {
  align-items: center !important;
}

/** Header `simple` (p. ej. detalle beneficio): centrar back + título en el shadow del toolbar */
ion-header.gq-header.gq-simple ion-toolbar.gq-toolbar.gq-toolbar--simple::part(content) {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
  min-height: 0 !important;
}

ion-header.gq-header.gq-simple ion-toolbar.gq-toolbar.gq-toolbar--simple .gq-simple-back {
  align-self: center !important;
  --min-height: 0 !important;
  min-height: 0 !important;
}

/* Configuración para el sidebar/menú lateral */
ion-menu {
  /* Asegurar que el sidebar esté sobre todo */
  z-index: 9999 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
}

/* Configuración para el contenido del sidebar */
ion-menu ion-content {
  /* Asegurar que el contenido del sidebar sea visible y clickeable */
  z-index: 10000 !important;
  position: relative !important;
  pointer-events: auto !important;
}

/* Configuración para los elementos dentro del sidebar */
ion-menu ion-list,
ion-menu ion-item,
ion-menu ion-button,
ion-menu ion-select {
  /* Asegurar que todos los elementos sean clickeables */
  pointer-events: auto !important;
  z-index: 10001 !important;
  position: relative !important;
}

/* Configuración para el backdrop del sidebar */
ion-menu::part(backdrop) {
  /* Hacer el backdrop completamente transparente */
  background: transparent !important;
  opacity: 0 !important;
  z-index: 9998 !important;
  pointer-events: none !important;
}

.ion-margin-top-gq {
  margin-top: 0px !important;
  /* Altura estándar del header */
}

html.is-android .ion-margin-top-gq {
  /* Header height (70px) + safe area inset top (notch/island) */
  margin-top: calc(70px + env(safe-area-inset-top)) !important;
  margin-top: calc(70px + constant(safe-area-inset-top)) !important; /* iOS antiguo */
}

html.is-ios .ion-margin-top-gq {
  /* Header height (70px) + safe area inset top (notch/island) */
  margin-top: calc(70px + env(safe-area-inset-top)) !important;
  margin-top: calc(70px + constant(safe-area-inset-top)) !important; /* iOS antiguo */
}

/**
 * Footer sin sombra ni borde de elevación (Ionic MD aplica box-shadow al toolbar).
 * Uso: <ion-footer class="gq-ion-footer--flat">...</ion-footer>
 */
ion-footer.gq-ion-footer--flat {
  box-shadow: none !important;
}

ion-footer.gq-ion-footer--flat ion-toolbar {
  --box-shadow: none !important;
  box-shadow: none !important;
  --border-width: 0 !important;
  border-width: 0 !important;
}

/* filepath: /Users/antuan/Documents/desarrollo/cronos/gq_app_2025/src/global.scss */
#main-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  /* Safe Area removido - se manejará por componentes individuales si es necesario */
  min-height: 100vh;
  min-height: -webkit-fill-available;
  /* Permitir scroll natural */
  /* Barra inferior global (app-gq-app-bottom-nav): altura ítem + safe area para ion-content */
  --gq-app-bottom-nav-height: 72px;
  --gq-app-bottom-nav-pad-bottom: calc(
    var(--gq-app-bottom-nav-height) + env(safe-area-inset-bottom, 0px)
  );
  /* Agrupa la barra "Volver" (solo desktop) + el outlet (antes ambos eran
   * hijos directos de `.main-app-content`; se separaron para poder ubicar,
   * al lado, el sidebar `app-viewer-cars` en desktop — ver
   * `.main-app-content--with-vehicle`). */
  /* Beneficios cercanos: mapa full-bleed (sin gutters laterales del shell). */
  /* Barra inferior: ancho completo del viewport (el contenedor usa align-items: center) */
}
#main-content .main-app-content {
  max-width: 550px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  /* Asegurar que el contenido respete las safe areas */
  padding-top: 0;
  padding-bottom: 0;
}
#main-content .main-app-content__page {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
#main-content .main-app-content__outlet {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  /* `ion-router-outlet`/`.ion-page` usan `position: absolute; top:0; left:0`
   * (comportamiento estándar de Ionic para transiciones de página). Sin un
   * ancestro posicionado, ese `top:0` se resuelve contra el viewport y no
   * contra este contenedor; en mobile no se nota (este es el primer hijo
   * del shell, ya empieza en y:0), pero en desktop `app-web-topbar` pasa a
   * ser el primer hijo y esto hacía que la página se dibujara encima de la
   * topbar en vez de debajo. `position: relative` acota el `top:0` a este
   * contenedor en ambos casos.
   */
  position: relative;
}
#main-content ion-content {
  --padding-bottom: var(--gq-app-bottom-nav-pad-bottom);
  /* Laterales: curva del cristal + un mínimo visual (evita contenido pegado al borde) */
  --padding-start: max(12px, env(safe-area-inset-left, 0px));
  --padding-end: max(12px, env(safe-area-inset-right, 0px));
}
#main-content.main-content--no-bottom-nav ion-content {
  --padding-bottom: env(safe-area-inset-bottom, 0px);
  --padding-start: max(12px, env(safe-area-inset-left, 0px));
  --padding-end: max(12px, env(safe-area-inset-right, 0px));
}
#main-content ion-content.gq-ben-cercanos-content, #main-content.main-content--no-bottom-nav ion-content.gq-ben-cercanos-content {
  --padding: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  --padding-start: 0;
  --padding-end: 0;
}
#main-content app-gq-app-bottom-nav {
  align-self: stretch;
  width: 100%;
  max-width: none;
}
@media (min-width: 1024px) {
  #main-content {
    /*
     * Mismo "contenedor visual fluido" (ver `--gq-shell-max-width` /
     * `--gq-shell-gutter-x` arriba en este archivo) para TODAS las pantallas
     * en desktop, tengan o no el sidebar de vehículo — así una pantalla
     * "ancho completo" (ej. beneficios, membresía) ocupa el mismo espacio
     * que ocuparían las 2 columnas juntas, en vez de estirarse borde a
     * borde del viewport SIN gutter.
     */
    /*
     * Pantallas con "núcleo" persistente (ver `resolveShowWebVehicleContext`
     * en `admin-route-chrome.ts`): mismo grid 2 columnas que usa `Home`
     * (selector de vehículo sticky | contenido de la pantalla), para que la
     * experiencia se sienta continua al navegar entre ambas.
     */
    /*
     * Botón "Volver" + título del shell web (ver `showWebBackBar` en
     * `admin.component.ts`): único control de retroceso disponible en
     * desktop, ya que el header por página (`header-modern`, que sí lo
     * trae) se oculta ahí.
     */
    /* Misma huella que `.main-app-content__back-btn` en Inicio (sin fake UI). */
    /*
     * Web/desktop: el header (por página) y el bottom-nav mobile se ocultan
     * dentro del shell admin; los reemplaza `app-web-topbar`, componente
     * EXCLUSIVO para web (logo + menú + perfil en una sola fila), sin tocar
     * `header-modern` ni `gq-app-bottom-nav` (siguen intactos para mobile).
     */
    /* `app-web-topbar` se oculta a sí mismo en mobile (ver su propio :host);
     * acá solo se asegura que quede primero en el flex del shell. */
    /*
     * ROLLBACK: se intentó unificar TODO en blanco (canvas + tarjetas), pero
     * sin contraste entre ambos las tarjetas (`.detail-card`, `.card-elements`)
     * quedaban "flotando" sin marco visible. Diseño definitivo (ver imagen de
     * referencia): el canvas de fondo se queda gris `#f6f7fb` — el mismo tono
     * mobile por defecto (regla global `ion-content` más arriba en este
     * archivo, y `html`/`body`/`ion-app`, sin overrides aquí) — y son las
     * tarjetas individuales las que se "enmarcan" en blanco con una sombra
     * sutil (ver esas reglas), logrando el look profesional de la referencia
     * en vez de forzar blanco parejo en toda la superficie.
     */
    /*
     * Marco blanco a nivel de shell para TODAS las páginas del outlet (ver
     * imagen de referencia): mismo criterio que `.detail-card` /
     * `.card-elements` (sombra suave + borde muy sutil sobre el canvas gris),
     * pero aplicado una sola vez acá en vez de tocar cada página (~50
     * archivos) para que Talleres, Emergencia, Beneficios, etc. luzcan tan
     * "enmarcadas" como el visor y los widgets de Home.
     *
     * `:not(:has(.home-layout))` excluye a Home: ya construye su propio
     * grid de 2 tarjetas (`.home-layout__viewer` / `.home-layout__widgets`,
     * cada una con su marco propio en `home.component.scss`); envolverlas
     * además en este marco exterior las anidaría dos veces (tarjeta dentro
     * de tarjeta) y encerraría las miniaturas de vehículo —que deben flotar
     * libres sobre el gris, no dentro de una tarjeta blanca.
     *
     * `:not(:has(.gq-ayuda-layout))` excluye Ayuda: en desktop la ficha
     * blanca es solo el bloque de contenido (~600px centrado); el marco
     * full-height del outlet dejaba media pantalla vacía.
     *
     * `overflow: hidden` recorta las esquinas del `ion-content` interno
     * (blanco o gris según la página) a este `border-radius`, sin necesidad
     * de tocar cada componente. `position: relative` ya está declarado en
     * la regla base de `.main-app-content__outlet` (necesario para
     * `ion-router-outlet`) y no se repite acá.
     */
    /*
     * Páginas con `ion-footer` fijo (nueva cotización, citas, crediq…):
     * en mobile usan wrappers con `min-height: 100dvh` para llenar la
     * pantalla. En desktop el alto lo define `.main-app-content__outlet`
     * (más bajo que el viewport por topbar + padding); ese `100dvh` gana
     * sobre `max-height: 100%` (en CSS min-height > max-height ⇒ gana
     * min-height) y empuja el footer debajo del outlet, donde
     * `overflow: hidden` del marco lo recorta. Forzamos a que la página
     * y su wrapper quepan en el outlet y el footer quede visible.
     */
  }
  #main-content .main-app-content {
    max-width: var(--gq-shell-max-width);
    width: 100%;
    margin: 0 auto;
    /* Separación topbar → contenido: antes 24px + clamp(24–56px) se
     * sentía excesivo en web; se compacta sin pegar el contenido. */
    margin-top: 0px;
    padding: clamp(0px, 1.2vw, 16px) var(--gq-shell-gutter-x);
  }
  #main-content .main-app-content--with-vehicle {
    display: grid;
    /*
     * Grid 50/50 real (como un grid de 12 columnas: 6 para el visor, 6
     * para el contenido) en vez de `minmax(340px, 480px) 1fr`: ese `1fr`
     * hacía que la columna de contenido se quedara con TODO el espacio
     * restante después de un visor topado a 480px como máximo — en
     * pantallas anchas (ej. 1920px) el visor quedaba angosto y fijo
     * mientras el contenido se estiraba mucho más. Con `minmax(340px,
     * 1fr) minmax(340px, 1fr)` ambas columnas reciben la MISMA fracción
     * del espacio disponible (reparto 50/50 real, escala junto con el
     * viewport) y el `340px` solo actúa como piso de seguridad en
     * pantallas desktop angostas (~1024px), no como tope.
     */
    grid-template-columns: minmax(340px, 1fr) minmax(340px, 1fr);
    /* Fila única = 100% del alto ya asignado por `flex: 1 1 auto` (arriba):
     * `ion-router-outlet`/`.ion-page` son `position: absolute` y no aportan
     * alto propio, así que sin esta fila explícita + `stretch` la columna
     * del outlet colapsaba a 0px (contenido de la página invisible). */
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    gap: 40px;
  }
  #main-content .main-app-content__vehicle-sidebar {
    /*
     * ROLLBACK: se intentó igualar el alto de esta tarjeta con el de
     * `.main-app-content__outlet` (`align-self: stretch` + `.detail-card`
     * con `flex: 1 1 auto`), pero el resultado se veía raro —la tarjeta
     * del vehículo estirándose mucho más allá de su contenido natural—.
     * Vuelve a quedar acotada a su propio contenido, con `position:
     * sticky` para que se mantenga visible mientras el contenido de la
     * derecha es más largo que la pantalla.
     *
     * `top: 0` (no un valor > 0): con `position: sticky`, un `top` mayor
     * que la distancia natural al tope de `ion-content` fuerza esa
     * distancia mínima incluso en scroll 0. Con varias miniaturas ese
     * desplazamiento quedaba oculto bajo la fila de avatares, pero con
     * un solo vehículo (sin `.thumb-row`, ver `viewer-cars.component.html`)
     * el `.detail-card` queda pegado arriba y el corrimiento se hacía
     * visible frente a `.main-app-content__outlet` (columna derecha, sin
     * sticky). `top: 0` conserva el "quedarse visible al hacer scroll"
     * sin introducir ese offset artificial (ver mismo fix en
     * `home.component.scss`).
     */
    position: sticky;
    top: 0;
    min-width: 0;
    align-self: start;
  }
  #main-content .main-app-content__page-toolbar {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  }
  #main-content .main-app-content__back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--ion-color-primary, #3f63d5);
    border-radius: 50%;
    background: #ffffff;
    color: var(--ion-color-primary, #3f63d5);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.15s ease, color 0.15s ease;
  }
  #main-content .main-app-content__back-btn ion-icon {
    font-size: 18px;
  }
  #main-content .main-app-content__back-btn:hover {
    background: rgba(63, 99, 213, 0.06);
  }
  #main-content .main-app-content__back-btn:active {
    background: var(--ion-color-primary, #3f63d5);
    color: #ffffff;
  }
  #main-content .main-app-content__back-spacer {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    visibility: hidden;
    pointer-events: none;
  }
  #main-content .main-app-content__page-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--gq-text-primary, #222529);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    text-transform: capitalize;
    margin-left: auto;
  }
  #main-content .main-app-content ion-header.gq-header {
    display: none !important;
  }
  #main-content app-gq-app-bottom-nav {
    display: none !important;
  }
  #main-content app-web-topbar {
    order: -1;
    align-self: stretch;
    width: 100%;
  }
  #main-content ion-content {
    --padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  #main-content .main-app-content__outlet:not(:has(.home-layout)):not(:has(.gq-ayuda-layout)) {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.06);
    overflow: hidden;
  }
  #main-content .main-app-content__outlet .ion-page {
    overflow: hidden !important;
  }
  #main-content .main-app-content__outlet .ion-page > div:has(> ion-footer),
  #main-content .main-app-content__outlet .ion-page > section:has(> ion-footer) {
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  #main-content .main-app-content__outlet .ion-page > div:has(> ion-footer) > ion-content,
  #main-content .main-app-content__outlet .ion-page > section:has(> ion-footer) > ion-content,
  #main-content .main-app-content__outlet .ion-page:has(> ion-footer) > ion-content {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }
  #main-content .main-app-content__outlet .ion-page ion-footer {
    flex-shrink: 0 !important;
  }
}

.buttonCss {
  --width: 90% !important;
  --max-width: 90% !important;
}
.buttonCss::part(content) {
  width: 90% !important;
  max-width: 90% !important;
}
.buttonCss .alert-wrapper {
  width: 90% !important;
  max-width: 90% !important;
  border-radius: 4px !important;
  overflow: hidden !important;
}
.buttonCss .alert-wrapper .alert-head {
  border-radius: 4px 4px 0 0 !important;
  overflow: hidden !important;
}
.buttonCss .alert-wrapper .alert-head .alert-sub-title {
  color: white !important;
}
.buttonCss .alert-wrapper .alert-message {
  overflow: hidden !important;
  padding-top: 20px !important;
  margin-top: 10px !important;
}
.buttonCss .alert-wrapper .alert-button-group {
  overflow: hidden !important;
  border-radius: 0 0 4px 4px !important;
}
.buttonCss .alert-wrapper .alert-button-group .alert-button {
  font-size: 14px !important;
  --font-size: 14px !important;
}
.buttonCss .alert-wrapper .alert-button-group .alert-button .button-inner {
  font-size: 14px !important;
}

app-swiper-cars .swiper-pagination-bullet {
  opacity: 1 !important;
  background-color: #999999 !important;
  background: #999999 !important;
  --background: #999999 !important;
  --background-color: #999999 !important;
  width: 12px !important;
  height: 12px !important;
  margin: 0 4px !important;
  border-radius: 50% !important;
}

app-swiper-cars .swiper-pagination-bullet:not(.swiper-pagination-bullet-active) {
  background-color: #999999 !important;
  background: #999999 !important;
  --background: #999999 !important;
  --background-color: #999999 !important;
  opacity: 1 !important;
}

app-swiper-cars .swiper-pagination-bullet-active {
  background-color: var(--ion-color-gpblue) !important;
  background: var(--ion-color-gpblue) !important;
  --background: var(--ion-color-gpblue) !important;
  --background-color: var(--ion-color-gpblue) !important;
  opacity: 1 !important;
  width: 24px !important;
  height: 12px !important;
  border-radius: 6px !important;
  width: 8px !important;
  height: 8px !important;
}

app-cards-navigation .content-card {
  color: #fff !important;
}
app-cards-navigation .content-card * {
  color: #fff !important;
  --color: #fff !important;
}
app-cards-navigation .content-card ion-text,
app-cards-navigation .content-card span,
app-cards-navigation .content-card b,
app-cards-navigation .content-card p,
app-cards-navigation .content-card div {
  color: #fff !important;
  --color: #fff !important;
}
app-cards-navigation .content-card .text-DIN,
app-cards-navigation .content-card .text-white {
  color: #fff !important;
}

/* Estilo para popover de detalles de préstamo (CrediQ) */
.my-custom-popover {
  --max-height: 85vh;
  --height: auto;
  --width: 95%;
  --max-width: 500px;
  --border-radius: 20px;
  /* Asegurar que el popover esté centrado */
  --offset-x: 0;
  --offset-y: 0;
}

.my-custom-popover::part(content) {
  border-radius: 20px;
  overflow-y: auto;
  max-height: 85vh;
  /* Centrar verticalmente y horizontalmente de forma absoluta */
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  /* Asegurar que no haya offsets adicionales */
  inset: auto !important;
  /* Asegurar que el popover respete los límites del viewport */
  max-width: 95vw;
  max-height: 85vh;
  /* Asegurar que el contenido sea scrollable si es necesario */
  overflow-y: auto;
  overflow-x: hidden;
}

/* Popover selección de tarjeta (CrediQ pago): mismo ancho que el resto de modales, sobre todo en iOS */
ion-popover.select-card-popover-floating {
  --width: 95%;
  --max-width: 95vw;
  --max-height: 85vh;
  --height: auto;
  --offset-x: 0;
  --offset-y: 0;
}

ion-popover.select-card-popover-floating::part(content) {
  width: 95% !important;
  max-width: 95vw !important;
  max-height: 85vh !important;
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  inset: auto !important;
  border-radius: 0;
  overflow: hidden;
  overflow-y: auto;
}

.loading-general {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

.logo-menu {
  margin-top: 25px !important;
}

/* MiGrupoQ — modales de confirmación (clase `gq-modal-confirm` en ion-modal; ver .cursor/rules)
 * `fit-content`: evita altura 0 cuando el hijo no es ion-content (card con div raíz). */
ion-modal.gq-modal-confirm {
  --width: min(92vw, 400px);
  --max-width: 400px;
  --height: fit-content;
  --max-height: min(92vh, 720px);
  --border-radius: 14px;
  --backdrop-opacity: 0.82 !important;
}

ion-modal.gq-modal-confirm::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.92) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-modal-confirm::part(content) {
  border-radius: 14px;
  overflow: auto;
}

/* Modal flotante — solicitar estado de cuenta Credi Q (esquinas más redondeadas) */
ion-modal.crediq-estado-cuenta-modal {
  --border-radius: 20px;
}

ion-modal.crediq-estado-cuenta-modal::part(content) {
  border-radius: 20px;
}

/* CrediQ — sheet inferior selección de tarjeta (pago).
 * El layout del pie lo gestiona Ionic si `expandToScroll: false` + `ion-footer` (ver ion-modal). */
ion-modal.crediq-select-card-sheet {
  --backdrop-opacity: 0.82 !important;
  --border-radius: 20px 20px 0 0;
  --width: 100%;
}

ion-modal.crediq-select-card-sheet::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.92) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.crediq-select-card-sheet::part(content) {
  border-radius: 20px 20px 0 0;
}

.gq-modal-confirm__panel {
  padding: 20px 18px 18px;
  text-align: center;
  background: #fff;
}

.gq-modal-confirm__title {
  margin: 0 0 14px;
  font-family: var(--ion-font-family, "Nunito", sans-serif);
  font-size: var(--gq-text-title, 1.25rem) !important;
  font-weight: bold !important;
  color: #3f63d5;
  line-height: 1.35;
}

.gq-modal-confirm__body {
  margin: 0 0 22px;
  font-size: var(--gq-text-sm, 0.875rem);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.45;
}

.gq-modal-confirm__highlight {
  font-weight: 600;
  color: #1a1a1a;
}

/* Confirmar generación cotización servicontratos (lista + resumen) */
.gq-modal-confirm__panel--cot-servi {
  padding-bottom: 12px;
}

.gq-modal-confirm__panel--cot-servi .gq-modal-confirm__title {
  margin-bottom: 6px;
}

.gq-modal-cot-servi-root {
  display: block;
  box-sizing: border-box;
  max-height: inherit;
}

.gq-modal-cot-servi__sub {
  margin: 0 0 18px;
  font-size: 15px;
  font-weight: 400;
  color: #1a1f26;
  text-align: center;
  line-height: 1.35;
}

.gq-modal-cot-servi__block {
  text-align: left;
  margin-bottom: 20px;
}

.gq-modal-cot-servi__lbl {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 400;
  color: #798499;
}

.gq-modal-cot-servi__pkg-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
  max-height: min(40vh, 220px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.gq-modal-cot-servi__pkg {
  height: 35px;
  min-height: 35px;
  padding: 0 15px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-radius: 999px;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
}

.gq-modal-cot-servi__pkg-name,
.gq-modal-cot-servi__pkg-price {
  font-size: 12px !important;
  font-weight: 700;
  color: #222529;
  line-height: 1.3;
}

.gq-modal-cot-servi__pkg-name {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gq-modal-cot-servi__pkg-price {
  flex-shrink: 0;
  margin-left: 8px;
  white-space: nowrap;
}

/* Resumen: mismos tokens que `.gq-nc-summary` en nueva cotización servicontratos */
.gq-modal-cot-servi__summary {
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid #eceef2;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gq-modal-cot-servi__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}

.gq-modal-cot-servi__row-lbl,
.gq-modal-cot-servi__row-val {
  color: #222529 !important;
  font-weight: 400 !important;
}

.gq-modal-cot-servi__row:not(.gq-modal-cot-servi__row--total) .gq-modal-cot-servi__row-lbl,
.gq-modal-cot-servi__row:not(.gq-modal-cot-servi__row--total) .gq-modal-cot-servi__row-val {
  font-size: 16px !important;
  font-weight: 400;
  line-height: 1.3;
}

.gq-modal-cot-servi__row-val {
  flex-shrink: 0;
  min-width: 7.5rem;
  text-align: left;
}

.gq-modal-cot-servi__row--total .gq-modal-cot-servi__row-lbl,
.gq-modal-cot-servi__row--total .gq-modal-cot-servi__row-val {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #222529 !important;
  line-height: 1.25;
}

.gq-modal-cot-servi__note {
  margin: 4px 0 0;
  font-size: 14px !important;
  font-weight: 400;
  color: #222529 !important;
  line-height: 1.35;
}

.gq-modal-confirm__actions {
  display: flex;
  gap: 10px;
  justify-content: stretch;
}

.gq-modal-confirm__actions--single {
  justify-content: flex-end;
}

.gq-modal-confirm__actions--single .gq-modal-confirm__btn {
  flex: 0 1 auto;
  min-width: min(100%, 160px);
}

.gq-modal-confirm__btn {
  flex: 1;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  border: 2px solid transparent;
  transition: opacity 0.15s ease;
}

.gq-modal-confirm__btn:active {
  opacity: 0.88;
}

.gq-modal-confirm__btn--outline {
  background: #fff;
  border-color: #3f63d5;
  color: #3f63d5;
}

.gq-modal-confirm__btn--solid {
  background: var(--ion-color-gpblue, #3f63d5);
  border-color: var(--ion-color-gpblue, #3f63d5);
  color: #fff;
}

.gq-modal-confirm__btn--danger {
  background: var(--gq-red, #d34d38);
  border-color: var(--gq-red, #d34d38);
  color: #fff;
}

/**
 * Action sheet oscuro (Aseguradora). Host: variables Ionic; hijos: ion-action-sheet
 * usa encapsulado «scoped» (no shadow), así que podemos anular márgenes/padding del layout iOS.
 */
ion-action-sheet.gq-action-sheet--aseguradora-dark {
  --background: #2c2e33;
  --backdrop-opacity: 0.72 !important;
  --color: #ffffff;
  --button-color: #ffffff;
  --button-background: transparent;
  --button-background-activated: rgba(255, 255, 255, 0.14);
  --button-background-activated-opacity: 1;
  --button-background-selected: rgba(255, 255, 255, 0.08);
  --button-background-selected-opacity: 1;
  --button-background-hover: rgba(255, 255, 255, 0.08);
  --button-background-hover-opacity: 1;
  --button-color-disabled: rgba(255, 255, 255, 0.45);
  --width: 100%;
  --max-width: 100%;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark .action-sheet-container {
  padding-inline: 0;
  -webkit-padding-start: 0;
  -webkit-padding-end: 0;
  padding-left: 0;
  padding-right: 0;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark .action-sheet-group:first-child {
  margin-top: 0;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark .action-sheet-group:last-child {
  margin-bottom: 0;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark .action-sheet-group {
  border-radius: 0 !important;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark .action-sheet-button {
  box-sizing: border-box;
  min-height: 44px;
  height: 44px;
  padding-top: 0;
  padding-bottom: 0;
}

/**
 * Alcance beneficios: panel semitransparente + backdrop más claro (contenido visible detrás).
 * No altera `gq-action-sheet--aseguradora-dark` usado en CrediQ / aseguradora.
 */
ion-action-sheet.gq-action-sheet--aseguradora-dark.gq-action-sheet--beneficios-alcance {
  --background: rgba(44, 46, 51, 0.78);
  --backdrop-opacity: 0.45 !important;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark.gq-action-sheet--beneficios-alcance .action-sheet-container {
  background: rgba(44, 46, 51, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

ion-action-sheet.gq-action-sheet--aseguradora-dark.gq-action-sheet--beneficios-alcance .action-sheet-group {
  background: transparent;
}

ion-action-sheet.gq-action-sheet--aseguradora-dark.gq-action-sheet--beneficios-alcance .action-sheet-button {
  font-weight: 700;
}

span,
p,
small,
ion-text {
  font-size: 12px !important;
}

button,
ion-button,
[role=button],
a {
  font-weight: bold !important;
  font-size: 14px !important;
  text-transform: none !important;
}

button,
ion-button,
[role=button],
span {
  font-weight: bold !important;
  font-size: 16px !important;
  text-transform: none !important;
}

/** Modal favoritos beneficios: compacto al contenido. */
ion-modal.gq-ben-favoritos-modal {
  --width: min(480px, 92vw) !important;
  --max-width: min(480px, 92vw) !important;
  --height: auto !important;
  --max-height: min(85vh, 720px) !important;
  --border-radius: 16px !important;
  --box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  --background: #ffffff !important;
  --backdrop-opacity: 1 !important;
}

ion-modal.gq-ben-favoritos-modal::part(backdrop) {
  background-color: rgba(15, 23, 42, 0.45) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

ion-modal.gq-ben-favoritos-modal::part(content) {
  width: min(480px, 92vw) !important;
  max-width: min(480px, 92vw) !important;
  height: auto !important;
  max-height: min(85vh, 720px) !important;
  margin: auto !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18) !important;
  overflow: hidden !important;
  border: none !important;
  position: relative !important;
  display: block !important;
  contain: content !important;
}

ion-modal.gq-ben-favoritos-modal app-grupoq-beneficios-favoritos-modal {
  display: flex;
  flex-direction: column;
  height: auto;
  max-height: min(85vh, 720px);
  background: #ffffff;
}

ion-modal.gq-ben-favoritos-modal ion-toolbar {
  --background: #ffffff !important;
  --color: #222529 !important;
  --border-width: 0;
}

ion-modal.gq-ben-favoritos-modal ion-content {
  --background: #ffffff;
  --overflow: hidden;
  --offset-bottom: auto !important;
  --offset-top: 0px !important;
  background: #ffffff;
  position: relative !important;
  contain: none !important;
  display: block !important;
  height: auto !important;
  max-height: min(85vh - 52px, 668px);
  flex: none !important;
}

ion-modal.gq-ben-favoritos-modal ion-content::part(scroll) {
  position: relative !important;
  contain: none !important;
  height: auto !important;
  max-height: min(85vh - 52px, 668px);
  overflow: auto !important;
}

.gq-labels-sm span,
.gq-labels-sm p,
.gq-labels-sm small,
.gq-labels-sm ion-text,
.gq-labels-mid span,
.gq-labels-mid p,
.gq-labels-mid small,
.gq-labels-mid ion-text,
.gq-labels-lg span,
.gq-labels-lg p,
.gq-labels-lg small,
.gq-labels-lg ion-text,
.labels-sm span,
.labels-sm p,
.labels-sm small,
.labels-sm ion-text,
.labels-mid span,
.labels-mid p,
.labels-mid small,
.labels-mid ion-text,
.labels-lg span,
.labels-lg p,
.labels-lg small,
.labels-lg ion-text {
  font-size: inherit !important;
}

/* Smart Q — panel comandos: excepción altura/tipografía (no 41px global) */
.sq-comandos-wrap button.sq-comandos-row__btn,
button.sq-comandos-row__btn {
  box-sizing: border-box !important;
  min-height: 28px !important;
  height: 28px !important;
  max-height: 28px !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

/**
 * Menús action-sheet → popover en web desktop (`ActionMenuService`).
 * Lista oscura compacta anclada al trigger (país, alcance, aseguradora, CrediQ, redes).
 */
ion-popover.gq-action-menu-popover {
  --width: auto;
  --max-width: min(320px, 92vw);
  --min-width: 220px;
  --box-shadow: none;
  --backdrop-opacity: 0.35;
  --background: transparent;
}

ion-popover.gq-action-menu-popover::part(content) {
  background: transparent;
  box-shadow: none;
  border-radius: 12px;
  overflow: visible;
  margin-top: 6px;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./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 ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
:root {
  /** Primario de marca (mismo tono que gpblue / gp-base) */
  --ion-color-primary: #3f63d5;
  --ion-color-primary-rgb: 63, 99, 213;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #3657bc;
  --ion-color-primary-tint: #5c79dd;
  --ion-color-secondary: #0163aa;
  --ion-color-secondary-rgb: 1, 99, 170;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #015796;
  --ion-color-secondary-tint: #1a73b3;
  --ion-color-tertiary: #6030ff;
  --ion-color-tertiary-rgb: 96, 48, 255;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #542ae0;
  --ion-color-tertiary-tint: #7045ff;
  /** Verde único de marca (éxito, desbloquear, positivo) */
  --gq-green: #56bc52;
  --gq-green-rgb: 86, 188, 82;
  --ion-color-success: #56bc52;
  --ion-color-success-rgb: 86, 188, 82;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #4ca548;
  --ion-color-success-tint: #6fc36b;
  --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;
  /** Rojo único de marca (errores, danger, gpred, destructivo) */
  --gq-red: #d34d38;
  --gq-red-rgb: 211, 77, 56;
  --ion-color-danger: #d34d38;
  --ion-color-danger-rgb: 211, 77, 56;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #ba4431;
  --ion-color-danger-tint: #d75f4c;
  --ion-color-light: #f6f8fc;
  --ion-color-light-rgb: 246, 248, 252;
  --ion-color-light-contrast: #000000;
  --ion-color-light-contrast-rgb: 0, 0, 0;
  --ion-color-light-shade: #d8dade;
  --ion-color-light-tint: #f7f9fc;
  --ion-color-medium: #5f5f5f;
  --ion-color-medium-rgb: 95, 95, 95;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb: 255, 255, 255;
  --ion-color-medium-shade: #545454;
  --ion-color-medium-tint: #6f6f6f;
  --ion-color-dark: #2f2f2f;
  --ion-color-dark-rgb: 47, 47, 47;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb: 255, 255, 255;
  --ion-color-dark-shade: #292929;
  --ion-color-dark-tint: #444444;
  --ion-color-uni: #003891;
  --ion-color-uni-rgb: 0, 56, 145;
  --ion-color-uni-contrast: #ffffff;
  --ion-color-uni-contrast-rgb: 255, 255, 255;
  --ion-color-uni-shade: #003180;
  --ion-color-uni-tint: #1a4c9c;
  /** GQ Base (primario) **/
  --ion-color-gp-base: #3f63d5;
  --ion-color-gp-base-rgb: 63, 99, 213;
  --ion-color-gp-base-contrast: #ffffff;
  --ion-color-gp-base-contrast-rgb: 255, 255, 255;
  --ion-color-gp-base-shade: #3657bc;
  --ion-color-gp-base-tint: #5c79dd;
  /** GQ Base (alias gpbase) **/
  --ion-color-gpbase: #3f63d5;
  --ion-color-gpbase-rgb: 63, 99, 213;
  --ion-color-gpbase-contrast: #ffffff;
  --ion-color-gpbase-contrast-rgb: 255, 255, 255;
  --ion-color-gpbase-shade: #3657bc;
  --ion-color-gpbase-tint: #5c79dd;
  --ion-color-gpred: #d34d38;
  --ion-color-gpred-rgb: 211, 77, 56;
  --ion-color-gpred-contrast: #ffffff;
  --ion-color-gpred-contrast-rgb: 255, 255, 255;
  --ion-color-gpred-shade: #ba4431;
  --ion-color-gpred-tint: #d75f4c;
  --ion-color-gptitle: #05144f;
  --ion-color-gptitle-rgb: 5, 20, 79;
  --ion-color-gptitle-contrast: #ffffff;
  --ion-color-gptitle-contrast-rgb: 255, 255, 255;
  --ion-color-gptitle-shade: #041246;
  --ion-color-gptitle-tint: #1e2c61;
  --ion-color-gpblue: #3f63d5;
  --ion-color-gpblue-rgb: 63, 99, 213;
  --ion-color-gpblue-contrast: #ffffff;
  --ion-color-gpblue-contrast-rgb: 255, 255, 255;
  --ion-color-gpblue-shade: #3657bc;
  --ion-color-gpblue-tint: #5c79dd;
  /**
   * Texto oscuro principal (cuerpo, labels, negritas).
   * Usar `var(--gq-text-primary)` en SCSS o `color="gptext"` en plantillas Ionic.
   */
  --gq-text-primary: #222529;
  --gq-text-primary-rgb: 34, 37, 41;
  /** Texto secundario / labels (gris marca) */
  --gq-text-secondary: #798499;
  --gq-text-secondary-rgb: 121, 132, 153;
  --ion-text-color: #222529;
  --ion-text-color-rgb: 34, 37, 41;
  --ion-color-gptext: #222529;
  --ion-color-gptext-rgb: 34, 37, 41;
  --ion-color-gptext-contrast: #ffffff;
  --ion-color-gptext-contrast-rgb: 255, 255, 255;
  --ion-color-gptext-shade: #1e2125;
  --ion-color-gptext-tint: #383b3f;
  /** Familia tipográfica global */
  --ion-font-family: "Nunito", sans-serif;
  --gq-font-family: "Nunito", sans-serif;
  /**
   * Tipografía fluida MiGrupoQ
   * - `--gq-font-root`: escala el texto base en móvil angosto sin romper desktop.
   * - Resto de tokens en `rem` respecto al root (útil en plantillas y SCSS).
   * - Clases utilidad: `.gq-text-xs` … `.gq-text-display` en `global.scss`.
   */
  --gq-font-root-min: 15px;
  --gq-font-root-max: 17px;
  --gq-font-root: clamp(
    var(--gq-font-root-min),
    4.2vw + 1px,
    var(--gq-font-root-max)
  );
  --gq-text-xs: clamp(0.6875rem, 0.62rem + 0.25vw, 0.75rem);
  --gq-text-sm: clamp(0.8125rem, 0.74rem + 0.3vw, 0.875rem);
  --gq-text-body: 1rem;
  --gq-text-md: clamp(1rem, 0.94rem + 0.25vw, 1.0625rem);
  --gq-text-lg: clamp(1.0625rem, 1rem + 0.35vw, 1.125rem);
  --gq-text-xl: clamp(1.125rem, 1.02rem + 0.45vw, 1.25rem);
  --gq-text-title: clamp(1.25rem, 1.08rem + 0.55vw, 1.375rem);
  --gq-text-display: clamp(1.375rem, 1.15rem + 0.75vw, 1.5rem);
  /** Altura estándar botones / CTAs (sistema GQ) */
  --gq-button-height: 41px;
  /** Widgets: pares label / valor (contenedor `.gq-labels-sm|mid|lg`) */
  --gq-widget-lbl-sm: 10px;
  --gq-widget-val-sm: 15px;
  --gq-widget-lbl-mid: 12px;
  --gq-widget-val-mid: 14px;
  --gq-widget-lbl-lg: 14px;
  --gq-widget-val-lg: 16px;
}

/* ====================================== */
/* CLASES DE COLOR DE REFERENCIA GRUPOQ */
/* ====================================== */
.ion-color-gptitle {
  --ion-color-base: var(--ion-color-gptitle) !important;
  --ion-color-base-rgb: var(--ion-color-gptitle-rgb) !important;
  --ion-color-contrast: var(--ion-color-gptitle-contrast) !important;
  --ion-color-contrast-rgb: var(--ion-color-gptitle-contrast-rgb) !important;
  --ion-color-shade: var(--ion-color-gptitle-shade) !important;
  --ion-color-tint: var(--ion-color-gptitle-tint) !important;
}

.ion-color-gp-base {
  --ion-color-base: var(--ion-color-gp-base);
  --ion-color-base-rgb: var(--ion-color-gp-base-rgb);
  --ion-color-contrast: var(--ion-color-gp-base-contrast);
  --ion-color-contrast-rgb: var(--ion-color-gp-base-contrast-rgb);
  --ion-color-shade: var(--ion-color-gp-base-shade);
  --ion-color-tint: var(--ion-color-gp-base-tint);
}

.ion-color-gpbase {
  --ion-color-base: var(--ion-color-gpbase);
  --ion-color-base-rgb: var(--ion-color-gpbase-rgb);
  --ion-color-contrast: var(--ion-color-gpbase-contrast);
  --ion-color-contrast-rgb: var(--ion-color-gpbase-contrast-rgb);
  --ion-color-shade: var(--ion-color-gpbase-shade);
  --ion-color-tint: var(--ion-color-gpbase-tint);
}

.ion-color-cardsmainnavigation {
  --ion-color-base: var(--ion-color-gpblue) !important;
  --ion-color-base-rgb: var(--ion-color-gpblue-rgb) !important;
  --ion-color-contrast: var(--ion-color-gpblue-contrast) !important;
  --ion-color-contrast-rgb: var(--ion-color-gpblue-contrast-rgb) !important;
  --ion-color-shade: var(--ion-color-gpblue-shade) !important;
  --ion-color-tint: var(--ion-color-gpblue-tint) !important;
}

.ion-color-gptext {
  --ion-color-base: var(--ion-color-gptext);
  --ion-color-base-rgb: var(--ion-color-gptext-rgb);
  --ion-color-contrast: var(--ion-color-gptext-contrast);
  --ion-color-contrast-rgb: var(--ion-color-gptext-contrast-rgb);
  --ion-color-shade: var(--ion-color-gptext-shade);
  --ion-color-tint: var(--ion-color-gptext-tint);
}

/* ion-alert — un solo lugar (tokens + reglas); carga al final para sobreescribir `global.scss` */
/**
 * Estándar visual único para `ion-alert` (AlertController / cssClass en alerts).
 *
 * Tokens: ajusta aquí radios, anchos y colores; el resto del archivo los consume
 * para mantener coherencia con modales GQ (`gq-modal-confirm`) sin tocar TS.
 *
 * Carga: importar al final de la cadena de estilos (p. ej. al final de `variables.scss`)
 * para poder sobreescribir reglas que sigan viviendo en `global.scss`.
 */
:root {
  --gq-ion-alert-width-pct: 90%;
  --gq-ion-alert-radius: 12px;
  --gq-ion-alert-radius-tight: 4px;
  --gq-ion-alert-head-bg: var(--ion-color-gpblue, #3f63d5);
  --gq-ion-alert-head-title-color: #ffffff;
  --gq-ion-alert-message-color: #666666;
  --gq-ion-alert-button-color: var(--ion-color-gpblue, #3f63d5);
}

/* Ancho host MD (alert genérico) */
.sc-ion-alert-md-h {
  --max-width: var(--gq-ion-alert-width-pct) !important;
  --width: var(--gq-ion-alert-width-pct) !important;
  --border-radius: var(--gq-ion-alert-radius-tight) !important;
}

ion-alert.buttonCss {
  --width: var(--gq-ion-alert-width-pct) !important;
  --max-width: var(--gq-ion-alert-width-pct) !important;
}
ion-alert.buttonCss::part(content) {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
}

ion-alert.custom-alert-class::part(content) {
  border-radius: var(--gq-ion-alert-radius-tight) !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  background: #fff;
  overflow: hidden !important;
  font-size: 14px !important;
}

/* Cabecera / cuerpo / pie genéricos dentro del shadow del alert */
.alert-head {
  background-color: var(--ion-color-gpblue) !important;
  border-radius: var(--gq-ion-alert-radius-tight) var(--gq-ion-alert-radius-tight) 0 0 !important;
  overflow: hidden !important;
  font-size: 20px !important;
}
.alert-head .alert-title {
  color: var(--gq-ion-alert-head-title-color) !important;
  font-size: 20px !important;
}
.alert-head .alert-sub-title {
  color: var(--gq-ion-alert-head-title-color) !important;
  font-size: 16px !important;
}

.alert-message {
  overflow: hidden !important;
}

.alert-button-group {
  overflow: hidden !important;
  border-radius: 0 0 var(--gq-ion-alert-radius-tight) var(--gq-ion-alert-radius-tight) !important;
}

.alert-wrapper {
  background-color: #fff !important;
  font-size: 20px !important;
  border-radius: var(--gq-ion-alert-radius-tight) !important;
  overflow: hidden !important;
}

/* Misma especificidad que antes en `variables.scss` (`:root .alert-app`) */
:root .alert-app {
  padding-left: 10px;
  padding-right: 10px;
}

:root .alert-app .alert-head {
  background-color: var(--gq-ion-alert-head-bg);
  padding: 16px 20px;
  border-top-left-radius: var(--gq-ion-alert-radius);
  border-top-right-radius: var(--gq-ion-alert-radius);
  min-width: 400px;
  width: 100%;
}
:root .alert-app .alert-head .alert-title {
  font-size: 20px;
  color: var(--gq-ion-alert-head-title-color);
  font-weight: bold;
}
:root .alert-app .alert-head .alert-sub-title {
  font-size: 14px;
  color: var(--gq-ion-alert-head-title-color);
}

:root .alert-app .alert-wrapper {
  border-radius: var(--gq-ion-alert-radius);
  overflow: hidden;
  width: 95% !important;
  max-width: 95% !important;
  min-height: auto;
}

:root .alert-app .alert-message {
  margin-top: 20px;
  margin-bottom: 20px;
  padding: 0 20px;
  font-size: 16px;
  color: var(--gq-ion-alert-message-color) !important;
  text-align: left !important;
  line-height: 1.6;
  min-height: 80px;
}

:root .alert-app .alert-button-group {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 20px 20px 20px;
  margin-top: 10px;
}

:root .alert-app .alert-button {
  color: var(--gq-ion-alert-button-color) !important;
  font-weight: 500;
  text-transform: uppercase;
  font-size: 14px;
  min-width: auto;
  padding: 0 8px;
}

:root .alert-app .alert-button.alert-button-role-cancel {
  color: var(--gq-ion-alert-button-color) !important;
}

/* Refinados en `global.scss` — se mantienen aquí para un solo sitio */
.alert-app .alert-wrapper {
  border-radius: var(--gq-ion-alert-radius-tight) !important;
  overflow: hidden !important;
}
.alert-app .alert-head {
  border-radius: var(--gq-ion-alert-radius-tight) var(--gq-ion-alert-radius-tight) 0 0 !important;
  overflow: hidden !important;
}
.alert-app .alert-message {
  overflow: hidden !important;
}
.alert-app .alert-button-group {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 16px 16px 16px;
  overflow: hidden !important;
}
.alert-app .alert-button {
  color: var(--ion-color-gpblue) !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  font-size: 14px !important;
  min-width: auto !important;
  padding: 0 8px !important;
  background: transparent !important;
  border: none !important;
}
.alert-app .alert-button.alert-button-role-cancel {
  color: var(--ion-color-gpblue) !important;
}
.alert-app .alert-button-inner {
  color: var(--ion-color-gpblue) !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
}

ion-alert.alert-app {
  --border-radius: var(--gq-ion-alert-radius-tight) !important;
}
ion-alert.alert-app::part(content) {
  border-radius: var(--gq-ion-alert-radius-tight) !important;
  overflow: hidden !important;
}
ion-alert.alert-app .alert-wrapper {
  border-radius: var(--gq-ion-alert-radius-tight) !important;
  overflow: hidden !important;
}
ion-alert.alert-app .alert-head {
  border-radius: var(--gq-ion-alert-radius-tight) var(--gq-ion-alert-radius-tight) 0 0 !important;
  overflow: hidden !important;
}
ion-alert.alert-app .alert-message {
  overflow: hidden !important;
}
ion-alert.alert-app .alert-button-group {
  overflow: hidden !important;
  border-radius: 0 0 var(--gq-ion-alert-radius-tight) var(--gq-ion-alert-radius-tight) !important;
}

/* Push (HTML en mensaje) */
.push-notification-alert .alert-wrapper {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
  --width: var(--gq-ion-alert-width-pct) !important;
  --max-width: var(--gq-ion-alert-width-pct) !important;
  max-height: 80vh !important;
  overflow-y: auto !important;
}
.push-notification-alert .alert-message {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  max-height: 60vh !important;
  overflow-y: auto !important;
}
.push-notification-alert .alert-message .push-notification-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 40px;
  font-size: 16px;
  color: var(--ion-color-gpblue);
  font-weight: 500;
}
.push-notification-alert .alert-message .push-notification-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.push-notification-alert .alert-message .push-notification-content .push-notification-image-container {
  width: 100%;
  max-width: 100%;
  min-height: 200px;
  max-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f5f5;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}
.push-notification-alert .alert-message .push-notification-content .push-notification-image-container .push-notification-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.push-notification-alert .alert-message .push-notification-content .push-notification-image-container .push-notification-spinner .spinner-loader {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(var(--ion-color-gpblue-rgb, 0, 134, 255), 0.2);
  border-top-color: var(--ion-color-gpblue);
  border-radius: 50%;
  animation: gq-ion-alert-spin 1s linear infinite;
}
.push-notification-alert .alert-message .push-notification-content .push-notification-image-container .push-notification-image {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: contain;
  border-radius: 8px;
  display: block;
  margin: 0 auto;
}
.push-notification-alert .alert-message .push-notification-content .push-notification-body {
  margin: 0;
  font-size: 16px;
  color: var(--gq-ion-alert-message-color);
  line-height: 1.6;
  text-align: left;
  word-wrap: break-word;
}

@keyframes gq-ion-alert-spin {
  to {
    transform: rotate(360deg);
  }
}
ion-alert.push-notification-alert {
  --width: var(--gq-ion-alert-width-pct) !important;
  --max-width: var(--gq-ion-alert-width-pct) !important;
}
ion-alert.push-notification-alert::part(content) {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
}

/* Versión / logout programado: ancho y mensaje con saltos de línea */
.version-alert .alert-wrapper,
.logout-alert .alert-wrapper {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
  --width: var(--gq-ion-alert-width-pct) !important;
  --max-width: var(--gq-ion-alert-width-pct) !important;
  max-height: 80vh !important;
  overflow-y: auto !important;
}
.version-alert .alert-message,
.logout-alert .alert-message {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  max-height: 60vh !important;
  overflow-y: auto !important;
  white-space: pre-line !important;
  word-wrap: break-word !important;
  text-align: left !important;
  font-size: 16px !important;
  color: var(--gq-ion-alert-message-color) !important;
  line-height: 1.6 !important;
}

/* Versión (`VersionService`): mismo lenguaje visual que `gq-modal-confirm` (global.scss) —
 * panel blanco, título primario bold, cuerpo #1a1a1a, botones pill 44px. */
.version-alert .alert-wrapper {
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.12) !important;
}
.version-alert .alert-head {
  background: #fff !important;
  border-radius: 0 !important;
  padding: 20px 18px 0 !important;
  margin: 0 !important;
  border: none !important;
  box-sizing: border-box !important;
}
.version-alert .alert-head .alert-title {
  margin: 0 0 14px !important;
  font-family: var(--ion-font-family, "Poppins", "Lato", sans-serif) !important;
  font-size: 20px !important;
  font-weight: bold !important;
  line-height: 1.35 !important;
  text-align: center !important;
  color: var(--ion-color-gpblue, #3f63d5) !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}
.version-alert .alert-head .alert-sub-title {
  margin: 0 0 12px !important;
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-align: center !important;
  color: #1a1a1a !important;
  white-space: normal !important;
}
.version-alert .alert-message {
  margin: 0 0 22px !important;
  padding: 0 18px !important;
  background: #fff !important;
  border: none !important;
  box-sizing: border-box !important;
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-align: center !important;
  color: #1a1a1a !important;
  white-space: pre-line !important;
  word-wrap: break-word !important;
  max-height: min(52vh, 360px) !important;
  overflow-y: auto !important;
}
.version-alert .alert-button-group {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 18px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  background: #fff !important;
  border: none !important;
  border-radius: 0 !important;
}
.version-alert .alert-button {
  flex: 1 1 120px !important;
  margin: 0 !important;
  min-height: 44px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  border: 2px solid transparent !important;
  text-transform: none !important;
  font-family: inherit !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: opacity 0.15s ease !important;
  -webkit-tap-highlight-color: transparent !important;
  /* Centrado vertical real del label (Ionic usa .alert-button-inner con layout propio). */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
.version-alert .alert-button .alert-button-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  line-height: 1.3 !important;
}
.version-alert .alert-button.version-update-button,
.version-alert .alert-button:not(.alert-button-role-cancel) {
  background: var(--ion-color-gpblue, #3f63d5) !important;
  border-color: var(--ion-color-gpblue, #3f63d5) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.version-alert .alert-button.version-update-button .alert-button-inner,
.version-alert .alert-button:not(.alert-button-role-cancel) .alert-button-inner {
  color: #fff !important;
  text-transform: none !important;
  font-weight: 600 !important;
  white-space: normal !important;
  text-align: center !important;
}
.version-alert .alert-button.alert-button-role-cancel {
  flex: 1 1 120px !important;
  background: #fff !important;
  border: 2px solid var(--ion-color-gpblue, #3f63d5) !important;
  color: var(--ion-color-gpblue, #3f63d5) !important;
  box-shadow: none !important;
}
.version-alert .alert-button.alert-button-role-cancel .alert-button-inner {
  color: var(--ion-color-gpblue, #3f63d5) !important;
}
.version-alert .alert-button:active {
  opacity: 0.88 !important;
  filter: none !important;
}

/* Un solo CTA: ancho completo como confirm de una sola acción. */
.version-alert .alert-button-group .alert-button:only-child {
  flex: 1 1 100% !important;
  min-width: 0 !important;
}

ion-alert.version-alert {
  --width: min(92vw, 400px) !important;
  --max-width: 400px !important;
}
ion-alert.version-alert::part(content) {
  width: min(92vw, 400px) !important;
  max-width: 400px !important;
  border-radius: 14px !important;
}

/* Logout programado: mismo ancho que otros alerts GQ (no estilo `version-alert`). */
ion-alert.logout-alert {
  --width: var(--gq-ion-alert-width-pct) !important;
  --max-width: var(--gq-ion-alert-width-pct) !important;
}
ion-alert.logout-alert::part(content) {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
}

.alert-checkbox-group {
  max-height: 100% !important;
  max-width: 90%;
}

.alert-radio-group,
.alert-checkbox-group {
  max-height: 268px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-width: thin !important;
  scrollbar-color: #888 #f1f1f1 !important;
}
.alert-radio-group::-webkit-scrollbar,
.alert-checkbox-group::-webkit-scrollbar {
  width: 8px !important;
}
.alert-radio-group::-webkit-scrollbar-track,
.alert-checkbox-group::-webkit-scrollbar-track {
  background: #f1f1f1 !important;
  border-radius: 4px !important;
}
.alert-radio-group::-webkit-scrollbar-thumb,
.alert-checkbox-group::-webkit-scrollbar-thumb {
  background: #888 !important;
  border-radius: 4px !important;
}
.alert-radio-group::-webkit-scrollbar-thumb:hover,
.alert-checkbox-group::-webkit-scrollbar-thumb:hover {
  background: #555 !important;
}

.custom-alert-class .alert-wrapper {
  width: var(--gq-ion-alert-width-pct) !important;
  max-width: var(--gq-ion-alert-width-pct) !important;
}
.custom-alert-class .alert-input-group {
  position: relative;
}
.custom-alert-class .alert-input-group .alert-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.custom-alert-class .alert-input-group .alert-input-wrapper input {
  padding-right: 40px !important;
}

ion-alert.select-scrollable-overlay .alert-wrapper {
  --max-width: var(--gq-ion-alert-width-pct) !important;
  width: var(--gq-ion-alert-width-pct) !important;
  max-height: 85vh !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
}

ion-alert.select-scrollable-overlay .alert-checkbox-group,
ion-alert.select-scrollable-overlay .alert-radio-group {
  max-height: calc(85vh - 120px) !important;
  overflow-y: auto !important;
}

ion-alert.select-scrollable-overlay .alert-button-group {
  margin-top: auto !important;
}

ion-alert.select-scrollable-overlay.alert-app .alert-head {
  background-color: var(--ion-color-gpblue, #3f63d5) !important;
}

ion-alert.select-scrollable-overlay.alert-app .alert-button-group {
  padding: 0 12px 12px !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

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