/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** 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: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-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/@ionic/angular/css/palettes/dark.class.css ***!
  \*************************************************************************************************************************************************************************************************************************************************/
.ion-palette-dark{--ion-color-primary: #4d8dff;--ion-color-primary-rgb: 77, 141, 255;--ion-color-primary-contrast: #000;--ion-color-primary-contrast-rgb: 0, 0, 0;--ion-color-primary-shade: #447ce0;--ion-color-primary-tint: #5f98ff;--ion-color-secondary: #46b1ff;--ion-color-secondary-rgb: 70, 177, 255;--ion-color-secondary-contrast: #000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #3e9ce0;--ion-color-secondary-tint: #59b9ff;--ion-color-tertiary: #8482fb;--ion-color-tertiary-rgb: 132, 130, 251;--ion-color-tertiary-contrast: #000;--ion-color-tertiary-contrast-rgb: 0, 0, 0;--ion-color-tertiary-shade: #7472dd;--ion-color-tertiary-tint: #908ffb;--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: #ffce31;--ion-color-warning-rgb: 255, 206, 49;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0b52b;--ion-color-warning-tint: #ffd346;--ion-color-danger: #f24c58;--ion-color-danger-rgb: 242, 76, 88;--ion-color-danger-contrast: #000;--ion-color-danger-contrast-rgb: 0, 0, 0;--ion-color-danger-shade: #d5434d;--ion-color-danger-tint: #f35e69;--ion-color-light: #222428;--ion-color-light-rgb: 34, 36, 40;--ion-color-light-contrast: #fff;--ion-color-light-contrast-rgb: 255, 255, 255;--ion-color-light-shade: #1e2023;--ion-color-light-tint: #383a3e;--ion-color-medium: #989aa2;--ion-color-medium-rgb: 152, 154, 162;--ion-color-medium-contrast: #000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #86888f;--ion-color-medium-tint: #a2a4ab;--ion-color-dark: #f4f5f8;--ion-color-dark-rgb: 244, 245, 248;--ion-color-dark-contrast: #000;--ion-color-dark-contrast-rgb: 0, 0, 0;--ion-color-dark-shade: #d7d8da;--ion-color-dark-tint: #f5f6f9}.ion-palette-dark.ios{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-background-color-step-50: #0d0d0d;--ion-background-color-step-100: #1a1a1a;--ion-background-color-step-150: #262626;--ion-background-color-step-200: #333333;--ion-background-color-step-250: #404040;--ion-background-color-step-300: #4d4d4d;--ion-background-color-step-350: #595959;--ion-background-color-step-400: #666666;--ion-background-color-step-450: #737373;--ion-background-color-step-500: #808080;--ion-background-color-step-550: #8c8c8c;--ion-background-color-step-600: #999999;--ion-background-color-step-650: #a6a6a6;--ion-background-color-step-700: #b3b3b3;--ion-background-color-step-750: #bfbfbf;--ion-background-color-step-800: #cccccc;--ion-background-color-step-850: #d9d9d9;--ion-background-color-step-900: #e6e6e6;--ion-background-color-step-950: #f2f2f2;--ion-text-color-step-50: #f2f2f2;--ion-text-color-step-100: #e6e6e6;--ion-text-color-step-150: #d9d9d9;--ion-text-color-step-200: #cccccc;--ion-text-color-step-250: #bfbfbf;--ion-text-color-step-300: #b3b3b3;--ion-text-color-step-350: #a6a6a6;--ion-text-color-step-400: #999999;--ion-text-color-step-450: #8c8c8c;--ion-text-color-step-500: #808080;--ion-text-color-step-550: #737373;--ion-text-color-step-600: #666666;--ion-text-color-step-650: #595959;--ion-text-color-step-700: #4d4d4d;--ion-text-color-step-750: #404040;--ion-text-color-step-800: #333333;--ion-text-color-step-850: #262626;--ion-text-color-step-900: #1a1a1a;--ion-text-color-step-950: #0d0d0d;--ion-item-background: #000000;--ion-tab-bar-background-focused: #252525;--ion-card-background: #1c1c1d}.ion-palette-dark.ios ion-modal{--ion-background-color: var(--ion-color-step-100, var(--ion-background-color-step-100));--ion-toolbar-background: var(--ion-color-step-150, var(--ion-background-color-step-150));--ion-toolbar-border-color: var(--ion-color-step-250, var(--ion-background-color-step-250))}.ion-palette-dark.md{--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-background-color-step-50: #1e1e1e;--ion-background-color-step-100: #2a2a2a;--ion-background-color-step-150: #363636;--ion-background-color-step-200: #414141;--ion-background-color-step-250: #4d4d4d;--ion-background-color-step-300: #595959;--ion-background-color-step-350: #656565;--ion-background-color-step-400: #717171;--ion-background-color-step-450: #7d7d7d;--ion-background-color-step-500: #898989;--ion-background-color-step-550: #949494;--ion-background-color-step-600: #a0a0a0;--ion-background-color-step-650: #acacac;--ion-background-color-step-700: #b8b8b8;--ion-background-color-step-750: #c4c4c4;--ion-background-color-step-800: #d0d0d0;--ion-background-color-step-850: #dbdbdb;--ion-background-color-step-900: #e7e7e7;--ion-background-color-step-950: #f3f3f3;--ion-text-color-step-50: #f3f3f3;--ion-text-color-step-100: #e7e7e7;--ion-text-color-step-150: #dbdbdb;--ion-text-color-step-200: #d0d0d0;--ion-text-color-step-250: #c4c4c4;--ion-text-color-step-300: #b8b8b8;--ion-text-color-step-350: #acacac;--ion-text-color-step-400: #a0a0a0;--ion-text-color-step-450: #949494;--ion-text-color-step-500: #898989;--ion-text-color-step-550: #7d7d7d;--ion-text-color-step-600: #717171;--ion-text-color-step-650: #656565;--ion-text-color-step-700: #595959;--ion-text-color-step-750: #4d4d4d;--ion-text-color-step-800: #414141;--ion-text-color-step-850: #363636;--ion-text-color-step-900: #2a2a2a;--ion-text-color-step-950: #1e1e1e;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-tab-bar-background-focused: #353535;--ion-card-background: #1e1e1e}/*# sourceMappingURL=dark.class.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 ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@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
 */
/* Importar configuración centralizada de colores */
/* Variables CSS globales para badges de etiquetas (reutilizables en toda la app) */
/**
 * Variables SCSS para colores de estados y tipos de visitas
 * 
 * Este archivo contiene las variables SCSS correspondientes a la configuración
 * centralizada en colores-visitas.config.ts
 * 
 * Importar este archivo en los componentes que necesiten usar estos colores en SCSS
 */
/**
 * Variables SCSS para colores de Estados de Plan de Negocio.
 * Sincronizadas con colores-plan-negocio.config.ts y con Estado General de Planes (colores-visitas.config.ts).
 *
 * Hex alineados con COLORES_ESTADO_PLANES en colores-visitas.config.ts (gráfico /dashboard).
 * Texto de badge: misma lógica de contraste que las etiquetas del gráfico (#fff / #1a1a1a).
 *
 * Estilos del badge: `_badge-estado-plan.scss` (@use desde componentes).
 */
:root {
  /* Badge etiqueta primario: Formulación, Rubro, etc. (usa color Diseño del plan de negocio) */
  --color-badge-etiqueta-primario: #AFDFB2;
  --color-badge-etiqueta-primario-texto: #092039;
  --color-badge-etiqueta-primario-borde: #AFDFB2;
  /* Badge etiqueta secundario: Unidad operativa, etc. */
  --color-badge-etiqueta-secundario: #e8ecf0;
  --color-badge-etiqueta-secundario-texto: #5f6b7a;
  --color-badge-etiqueta-secundario-borde: #e8ecf0;
}

/* Core CSS required for Ionic components to work properly */
/* Basic CSS for apps built with Ionic */
/* Optional CSS utils that can be commented out */
/**
 * Ionic Dark Mode
 * -----------------------------------------------------
 * For more info, please see:
 * https://ionicframework.com/docs/theming/dark-mode
 */
/* @import "@ionic/angular/css/palettes/dark.always.css"; */
/* @import "@ionic/angular/css/palettes/dark.system.css"; */
/* Botón atrás: solo ícono (iOS muestra "Back" por defecto; respaldo si el config no aplica) */
ion-back-button::part(text) {
  display: none;
}

/**
 * Estilos globales para Content y Footer
 * -----------------------------------------------------
 * Fondos personalizados para tema light y dark
 */
:root,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) {
  --fondo-pagina-principal: #ECF3ED;
  --fondo-tarjeta-exportacion: rgba(255, 255, 255, 0.25);
}

html.ion-palette-dark,
html.dark,
html[color-scheme=dark] {
  --fondo-pagina-principal: #1a2e1a;
  --fondo-tarjeta-exportacion: rgba(255, 255, 255, 0.02);
}

html.pn-standalone ion-split-pane {
  --side-width: 0px !important;
}
html.pn-standalone ion-menu {
  display: none !important;
}
html.pn-standalone ion-header.global-header {
  display: none !important;
}
html.pn-standalone ion-router-outlet.con-header-global ::ng-deep ion-content {
  --padding-top: 0px;
}

html.pn-printing body,
html.pn-printing ion-app,
html.pn-printing ion-router-outlet,
html.pn-printing ion-page,
html.pn-printing ion-content {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  contain: none !important;
  position: static !important;
}
html.pn-printing ion-content::part(scroll) {
  position: static !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  contain: none !important;
}
html.pn-printing ion-content .inner-scroll,
html.pn-printing ion-content .scroll-y,
html.pn-printing ion-content .scroll-x {
  position: static !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  contain: none !important;
}

ion-content {
  --background: #f2f3f5;
}

ion-content:has(app-pie-pagina)::part(scroll) {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

/**
 * Menú lateral: fondo primario (verde/azul) para que siempre se vea el color de la barra.
 * No aplicar al panel de visitas ni al de asesorías especializadas (blanco/oscuro según tema).
 */
ion-menu:not(.visita-panel-menu):not(.actividad-grupal-panel-menu) {
  --background: var(--ion-color-primary) !important;
  background: var(--ion-color-primary) !important;
}

ion-menu:not(.visita-panel-menu):not(.actividad-grupal-panel-menu)::part(container) {
  background: var(--ion-color-primary) !important;
}

ion-menu:not(.visita-panel-menu):not(.actividad-grupal-panel-menu) ion-content {
  --background: var(--ion-color-primary) !important;
  background: var(--ion-color-primary) !important;
}

/**
 * Botón de ayuda (ícono información) - color azul primario en toda la app.
 * Usado en Resumen de Visitas, Caracterización, Dashboard, Visitas, Fichas, etc.
 */
.boton-informacion {
  --color: var(--ion-color-primary);
}
.boton-informacion ion-icon {
  color: var(--ion-color-primary);
}

/**
 * Botón icono para quitar/eliminar archivos adjuntos (filas de registro).
 * Iconografía: trash-outline. Color danger en estado normal y hover.
 */
ion-button.btn-quitar-adjunto,
ion-button.btn-eliminar-archivo-asistencia,
ion-button.btn-quitar-archivo {
  --padding-start: 8px;
  --padding-end: 8px;
  margin: 0;
  --color: var(--ion-color-danger);
  color: var(--ion-color-danger);
}
ion-button.btn-quitar-adjunto:not([disabled]):hover,
ion-button.btn-eliminar-archivo-asistencia:not([disabled]):hover,
ion-button.btn-quitar-archivo:not([disabled]):hover {
  --color: var(--ion-color-danger-shade, var(--ion-color-danger));
  color: var(--ion-color-danger-shade, var(--ion-color-danger));
}

/**
 * "Pseudo breadcrumb" para títulos dentro de Gestión (/gestion/acciones/:id/*)
 * Uso esperado en templates:
 *   <h2 class="titulo-seccion titulo-seccion--breadcrumb">
 *     <a [routerLink]="['/gestion']" class="breadcrumb-back"><ion-icon name="chevron-back-outline"></ion-icon></a>
 *     <a [routerLink]="['/gestion']" class="breadcrumb-home">Gestión</a>
 *     <span class="breadcrumb-sep">/</span>
 *     <ion-icon name="..." class="icono-titulo"></ion-icon>
 *     <span class="breadcrumb-current">Título</span>
 *   </h2>
 */
.titulo-seccion.titulo-seccion--breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  line-height: 1.2;
  /* En breadcrumb, el ícono debe medir lo mismo que el texto (1em). */
}
.titulo-seccion.titulo-seccion--breadcrumb ion-icon.icono-titulo {
  font-size: 1em !important;
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: var(--ion-color-primary);
  text-decoration: none;
  margin-right: 0.05rem;
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back ion-icon {
  font-size: 1.25rem;
  color: var(--ion-color-primary);
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back:hover {
  background: rgba(var(--ion-color-primary-rgb), 0.08);
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--ion-color-primary-tint);
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-home {
  color: var(--ion-color-primary);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 2px;
  font-weight: 600;
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-home:hover, .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-home:focus-visible {
  text-decoration-color: currentColor;
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-sep {
  color: var(--ion-color-medium);
  font-weight: 600;
  margin-inline: 0.1rem;
  -webkit-user-select: none;
          user-select: none;
}
.titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-current {
  font-weight: 700;
}

/* Móvil: ocultar "Gestión /" y compactar layout. */
@media (max-width: 576px) {
  .titulo-seccion.titulo-seccion--breadcrumb {
    gap: 0.35rem;
  }
  .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-home,
  .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-sep {
    display: none !important;
  }
  .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back {
    width: 26px;
    height: 26px;
    border-radius: 8px;
  }
  .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back ion-icon {
    font-size: 1.15rem;
  }
  .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-current {
    /* Evitar cortes raros y mantener buena legibilidad en una línea si cabe */
    word-break: break-word;
  }
}
/* Con sidebar (split-pane visible), ocultar "volver / Gestión / /" para evitar duplicidad visual. */
ion-split-pane.split-pane-visible .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-back,
ion-split-pane.split-pane-visible .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-home,
ion-split-pane.split-pane-visible .titulo-seccion.titulo-seccion--breadcrumb .breadcrumb-sep {
  display: none !important;
}

/**
 * Panel de visitas (segundo ion-menu, side="end", type="overlay"): ancho moderado y fondo sólido.
 * Usar clase y attribute selector para máxima especificidad; overlay cubre el contenido.
 */
/* Panel fuera del split-pane: z-index alto para quedar sobre todo */
ion-menu.visita-panel-menu,
ion-menu[menu-id=visita-panel],
ion-menu[menu-id=visita-panel-offline],
ion-menu[menu-id=ruta-accion-panel] {
  --width: 480px !important;
  --min-width: 400px !important;
  --max-width: 480px !important;
  /* Host transparente para que el backdrop muestre transparencia; solo el container es blanco */
  --background: transparent !important;
  background: transparent !important;
  z-index: 10000 !important;
}

ion-menu.visita-panel-menu::part(container),
ion-menu[menu-id=visita-panel]::part(container),
ion-menu[menu-id=visita-panel-offline]::part(container),
ion-menu[menu-id=ruta-accion-panel]::part(container) {
  background: #ffffff !important;
  min-width: 400px !important;
  width: 480px !important;
  max-width: 480px !important;
  box-shadow: -4px 0 16px rgba(0, 0, 0, 0.12) !important;
}

/* Teléfonos y pantallas pequeñas: panel casi a ancho completo, deja franja para cerrar */
@media (max-width: 576px) {
  ion-menu.visita-panel-menu,
  ion-menu[menu-id=visita-panel],
  ion-menu[menu-id=visita-panel-offline],
  ion-menu[menu-id=ruta-accion-panel] {
    --width: calc(100% - 48px) !important;
    --min-width: 280px !important;
    --max-width: calc(100% - 48px) !important;
  }
  ion-menu.visita-panel-menu::part(container),
  ion-menu[menu-id=visita-panel]::part(container),
  ion-menu[menu-id=visita-panel-offline]::part(container),
  ion-menu[menu-id=ruta-accion-panel]::part(container) {
    min-width: 280px !important;
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
  }
}
@media (min-width: 577px) and (max-width: 768px) {
  ion-menu.visita-panel-menu,
  ion-menu[menu-id=visita-panel],
  ion-menu[menu-id=visita-panel-offline],
  ion-menu[menu-id=ruta-accion-panel] {
    --width: 380px !important;
    --min-width: 300px !important;
    --max-width: calc(100% - 48px) !important;
  }
  ion-menu.visita-panel-menu::part(container),
  ion-menu[menu-id=visita-panel]::part(container),
  ion-menu[menu-id=visita-panel-offline]::part(container),
  ion-menu[menu-id=ruta-accion-panel]::part(container) {
    min-width: 300px !important;
    width: 380px !important;
    max-width: calc(100% - 48px) !important;
  }
}
ion-menu.visita-panel-menu ion-content,
ion-menu[menu-id=visita-panel] ion-content,
ion-menu[menu-id=visita-panel-offline] ion-content,
ion-menu[menu-id=ruta-accion-panel] ion-content {
  --background: #ffffff !important;
  background: #ffffff !important;
  --color: var(--ion-text-color);
  --padding-top: calc(env(safe-area-inset-top, 0px) + var(--sat-floating-panel-extra-top, 0px)) !important;
  --padding-bottom: calc(
      env(safe-area-inset-bottom, 0px) + var(--sat-floating-panel-extra-bottom, 0px)
  ) !important;
}

/* Tema oscuro: host sigue transparente para el backdrop; container y content según paleta Ionic */
html.ion-palette-dark ion-menu.visita-panel-menu,
html.ion-palette-dark ion-menu[menu-id=visita-panel],
html.ion-palette-dark ion-menu[menu-id=visita-panel-offline],
html.ion-palette-dark ion-menu[menu-id=ruta-accion-panel],
html.dark ion-menu.visita-panel-menu,
html.dark ion-menu[menu-id=visita-panel],
html.dark ion-menu[menu-id=visita-panel-offline],
html.dark ion-menu[menu-id=ruta-accion-panel],
html[color-scheme=dark] ion-menu.visita-panel-menu,
html[color-scheme=dark] ion-menu[menu-id=visita-panel],
html[color-scheme=dark] ion-menu[menu-id=visita-panel-offline],
html[color-scheme=dark] ion-menu[menu-id=ruta-accion-panel] {
  --background: transparent !important;
  background: transparent !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu::part(container),
html.ion-palette-dark ion-menu[menu-id=visita-panel]::part(container),
html.ion-palette-dark ion-menu[menu-id=visita-panel-offline]::part(container),
html.ion-palette-dark ion-menu[menu-id=ruta-accion-panel]::part(container),
html.dark ion-menu.visita-panel-menu::part(container),
html.dark ion-menu[menu-id=visita-panel]::part(container),
html.dark ion-menu[menu-id=visita-panel-offline]::part(container),
html.dark ion-menu[menu-id=ruta-accion-panel]::part(container),
html[color-scheme=dark] ion-menu.visita-panel-menu::part(container),
html[color-scheme=dark] ion-menu[menu-id=visita-panel]::part(container),
html[color-scheme=dark] ion-menu[menu-id=visita-panel-offline]::part(container),
html[color-scheme=dark] ion-menu[menu-id=ruta-accion-panel]::part(container) {
  background: #1a1a1a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content,
html.ion-palette-dark ion-menu[menu-id=visita-panel] ion-content,
html.ion-palette-dark ion-menu[menu-id=visita-panel-offline] ion-content,
html.ion-palette-dark ion-menu[menu-id=ruta-accion-panel] ion-content,
html.dark ion-menu.visita-panel-menu ion-content,
html.dark ion-menu[menu-id=visita-panel] ion-content,
html.dark ion-menu[menu-id=visita-panel-offline] ion-content,
html.dark ion-menu[menu-id=ruta-accion-panel] ion-content,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content,
html[color-scheme=dark] ion-menu[menu-id=visita-panel] ion-content,
html[color-scheme=dark] ion-menu[menu-id=visita-panel-offline] ion-content,
html[color-scheme=dark] ion-menu[menu-id=ruta-accion-panel] ion-content {
  --background: #1a1a1a !important;
  background: #1a1a1a !important;
  --padding-top: calc(env(safe-area-inset-top, 0px) + var(--sat-floating-panel-extra-top, 0px)) !important;
  --padding-bottom: calc(
      env(safe-area-inset-bottom, 0px) + var(--sat-floating-panel-extra-bottom, 0px)
  ) !important;
}

/**
 * Menú lateral en modo overlay (pantallas pequeñas)
 * El host de ion-menu cubre toda la pantalla; si tiene fondo opaco tapa el contenido.
 * Hacemos el host transparente para que solo el panel lateral (menu-inner) tenga color
 * y la zona del backdrop deje ver el contenido con transparencia.
 * No aplicar al panel de visitas ni al de asesorías (fondo blanco/oscuro según tema).
 */
ion-menu.menu-type-overlay:not(.visita-panel-menu):not(.actividad-grupal-panel-menu) {
  background: transparent !important;
}

/**
 * Backdrop del menú (capa sobre el contenido al abrir el menú)
 * Transparencia para que se vea el contenido de fondo.
 */
ion-menu::part(backdrop),
ion-menu.menu-type-overlay::part(backdrop) {
  opacity: 0.8 !important;
  background: rgba(0, 0, 0, 0.8) !important;
  --ion-backdrop-color: rgba(0, 0, 0, 0.8);
}

/* Paneles laterales (visitas, offline, hoja de ruta): velo sin doble opacidad; tema claro más suave */
ion-menu.visita-panel-menu::part(backdrop),
ion-menu[menu-id=visita-panel]::part(backdrop),
ion-menu[menu-id=visita-panel-offline]::part(backdrop),
ion-menu[menu-id=ruta-accion-panel]::part(backdrop) {
  opacity: 1 !important;
  background: rgba(0, 0, 0, 0.38) !important;
  --ion-backdrop-color: rgba(0, 0, 0, 0.38);
}

html.ion-palette-dark ion-menu.visita-panel-menu::part(backdrop),
html.ion-palette-dark ion-menu[menu-id=visita-panel]::part(backdrop),
html.ion-palette-dark ion-menu[menu-id=visita-panel-offline]::part(backdrop),
html.ion-palette-dark ion-menu[menu-id=ruta-accion-panel]::part(backdrop),
html.dark ion-menu.visita-panel-menu::part(backdrop),
html.dark ion-menu[menu-id=visita-panel]::part(backdrop),
html.dark ion-menu[menu-id=visita-panel-offline]::part(backdrop),
html.dark ion-menu[menu-id=ruta-accion-panel]::part(backdrop),
html[color-scheme=dark] ion-menu.visita-panel-menu::part(backdrop),
html[color-scheme=dark] ion-menu[menu-id=visita-panel]::part(backdrop),
html[color-scheme=dark] ion-menu[menu-id=visita-panel-offline]::part(backdrop),
html[color-scheme=dark] ion-menu[menu-id=ruta-accion-panel]::part(backdrop) {
  opacity: 1 !important;
  background: rgba(0, 0, 0, 0.62) !important;
  --ion-backdrop-color: rgba(0, 0, 0, 0.62);
}

ion-menu.show-menu {
  --ion-backdrop-color: rgba(0, 0, 0, 0.8);
}

/* Al abrir panel lateral: mantener variable acorde al bloque anterior (no forzar 0.75 legacy) */
ion-menu.visita-panel-menu.show-menu,
ion-menu[menu-id=visita-panel].show-menu,
ion-menu[menu-id=visita-panel-offline].show-menu,
ion-menu[menu-id=ruta-accion-panel].show-menu {
  --ion-backdrop-color: rgba(0, 0, 0, 0.38);
}

html.ion-palette-dark ion-menu.visita-panel-menu.show-menu,
html.ion-palette-dark ion-menu[menu-id=visita-panel].show-menu,
html.ion-palette-dark ion-menu[menu-id=visita-panel-offline].show-menu,
html.ion-palette-dark ion-menu[menu-id=ruta-accion-panel].show-menu,
html.dark ion-menu.visita-panel-menu.show-menu,
html.dark ion-menu[menu-id=visita-panel].show-menu,
html.dark ion-menu[menu-id=visita-panel-offline].show-menu,
html.dark ion-menu[menu-id=ruta-accion-panel].show-menu,
html[color-scheme=dark] ion-menu.visita-panel-menu.show-menu,
html[color-scheme=dark] ion-menu[menu-id=visita-panel].show-menu,
html[color-scheme=dark] ion-menu[menu-id=visita-panel-offline].show-menu,
html[color-scheme=dark] ion-menu[menu-id=ruta-accion-panel].show-menu {
  --ion-backdrop-color: rgba(0, 0, 0, 0.62);
}

/**
 * Popover de acciones en «Ruta del día / Hoja de ruta» (render en overlay global).
 * Fondo explícito como en listas de Visitas; evita listas negras en tema claro.
 */
ion-popover.popover-acciones-hoja-ruta::part(content) {
  background: #ffffff;
}

ion-popover.popover-acciones-hoja-ruta ion-list {
  background: #ffffff;
}

html.ion-palette-dark ion-popover.popover-acciones-hoja-ruta::part(content),
html.dark ion-popover.popover-acciones-hoja-ruta::part(content),
html[color-scheme=dark] ion-popover.popover-acciones-hoja-ruta::part(content) {
  background: #1a1a1a;
}

html.ion-palette-dark ion-popover.popover-acciones-hoja-ruta ion-list,
html.dark ion-popover.popover-acciones-hoja-ruta ion-list,
html[color-scheme=dark] ion-popover.popover-acciones-hoja-ruta ion-list {
  background: #1a1a1a;
}

/** Popover notificaciones solicitudes 48h (overlay global; claro/oscuro). */
ion-popover.popover-notificaciones-48h {
  --width: min(100vw - 24px, 450px);
  --min-width: 310px;
  --max-height: min(70vh, 420px);
  --notif-popover-bg: #ffffff;
  --notif-text-primary: #1a1a1a;
  --notif-text-muted: rgba(26, 26, 26, 0.38);
  --notif-border: rgba(26, 26, 26, 0.12);
}

ion-popover.popover-notificaciones-48h::part(content) {
  background: var(--notif-popover-bg);
}

ion-popover.popover-notificaciones-48h ion-content.popover-notificaciones-48h-content {
  --background: var(--notif-popover-bg);
  scrollbar-gutter: stable;
}

ion-popover.popover-notificaciones-48h ion-content.popover-notificaciones-48h-content,
ion-popover.popover-notificaciones-48h ion-list {
  --background: var(--notif-popover-bg);
  --ion-item-border-color: var(--notif-border);
  background: var(--notif-popover-bg);
}

ion-popover.popover-notificaciones-48h ion-item:not(.item-notif-48h) ion-label {
  color: var(--notif-text-muted);
}

ion-popover.popover-notificaciones-48h ion-list-header.notif-48h-list-header {
  --background: transparent;
  --color: var(--notif-text-primary);
  --min-height: 0;
  min-height: 0;
  font-weight: 400;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--notif-border);
  margin: 0 0 2px;
  padding: 4px 16px 6px;
}

ion-popover.popover-notificaciones-48h ion-list-header.notif-48h-list-header ion-label {
  margin: 0;
  padding: 0;
  font-weight: 400;
  color: var(--notif-text-primary);
  white-space: nowrap;
}

ion-popover.popover-notificaciones-48h ion-item.item-notif-48h {
  --background: transparent;
  --color: var(--notif-text-primary);
  --min-height: 56px;
}

ion-popover.popover-notificaciones-48h ion-item.item-notif-48h ion-label {
  color: var(--notif-text-primary);
}

ion-popover.popover-notificaciones-48h .notif-48h-fila-principal {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

ion-popover.popover-notificaciones-48h .notif-48h-punto-slot {
  width: 12px;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  padding-top: 4px;
}

ion-popover.popover-notificaciones-48h .notif-48h-punto {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

ion-popover.popover-notificaciones-48h .notif-48h-punto--aprobada {
  background: var(--ion-color-success);
}

ion-popover.popover-notificaciones-48h .notif-48h-punto--rechazada {
  background: var(--ion-color-danger);
}

ion-popover.popover-notificaciones-48h .notif-48h-textos {
  flex: 1;
  min-width: 0;
}

ion-popover.popover-notificaciones-48h .notif-48h-titulo {
  font-size: 0.95rem;
  font-weight: 700;
  margin: 0 0 6px;
  color: var(--notif-text-primary);
  line-height: 1.35;
}

ion-popover.popover-notificaciones-48h .notif-48h-fecha {
  margin: 0;
  font-size: 0.75rem;
  color: var(--notif-text-muted);
  font-weight: 400;
  line-height: 1.3;
}

html.ion-palette-dark ion-popover.popover-notificaciones-48h,
html.dark ion-popover.popover-notificaciones-48h,
html[color-scheme=dark] ion-popover.popover-notificaciones-48h {
  --notif-popover-bg: #1a1a1a;
  --notif-text-primary: #fafafa;
  --notif-text-muted: rgba(250, 250, 250, 0.45);
  --notif-border: rgba(255, 255, 255, 0.12);
}

/**
 * Estilos globales para Tarjetas (Cards)
 * -----------------------------------------------------
 * Todas las tarjetas de contenido deben usar ion-card (Ionic) para consistencia.
 * Ver: https://ionicframework.com/docs/api/card
 * Convenciones: docs/CONVENCIONES_DESARROLLO.md (sección Tarjetas).
 *
 * Estilos aplicados:
 * - border-radius: 12px
 * - margin: 0 (puede ser sobrescrito en componentes específicos)
 * - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08)
 */
ion-card {
  --border-radius: 12px;
  border-radius: 12px;
  margin: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/**
 * Formularios – etiquetas y campos estándar
 * -----------------------------------------------------
 * Clases reutilizables para que todos los formularios (Agendar, Registrar Visita, etc.)
 * compartan el mismo estilo de títulos de campo y de inputs.
 */
.form-label-estandar {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ion-color-dark);
  margin-bottom: 4px;
}
.form-label-estandar .required {
  color: var(--ion-color-danger);
  margin-left: 2px;
}

/**
 * Campo etiqueta-valor (caracterización, resumen de visitas, etc.)
 * -----------------------------------------------------
 * Bloque reutilizable: ícono opcional + etiqueta (secundaria) + valor (destacado).
 * Uso: <div class="campo-caract"><span class="campo-icono">...</span><div class="campo-texto"><span class="etiqueta">...</span><span class="valor">...</span></div></div>
 */
.campo-caract {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
  font-size: 0.8125rem;
}
.campo-caract:last-child {
  margin-bottom: 0;
}
.campo-caract .campo-icono {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ion-color-medium);
}
.campo-caract .campo-icono ion-icon {
  font-size: 1.25rem;
}
.campo-caract .campo-texto {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.campo-caract .etiqueta {
  font-size: 0.6rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--ion-color-medium-tint);
  line-height: 1.3;
}
.campo-caract .valor {
  font-size: 0.9375rem;
  font-weight: 600;
  word-break: break-word;
  color: var(--ion-color-dark);
  line-height: 1.4;
}

/**
 * Avatar con iniciales (menú lateral, header, perfil)
 * Aplicado globalmente para que funcione aunque el menú se renderice fuera de app-root.
 */
ion-avatar.avatar-menu {
  border-radius: 50% !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 80px !important;
  height: 80px !important;
  min-width: 80px !important;
  min-height: 80px !important;
  margin: 0 auto 16px !important;
  background: rgba(255, 255, 255, 0.25) !important;
  border: 3px solid rgba(255, 255, 255, 0.4) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
ion-avatar.avatar-menu .avatar-iniciales {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: white !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
}

ion-avatar.header-avatar {
  border-radius: 50% !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  background: rgba(26, 26, 26, 0.15) !important;
  border: 2px solid rgba(26, 26, 26, 0.3) !important;
}
ion-avatar.header-avatar .avatar-iniciales {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
}

@media (max-width: 400px) {
  ion-avatar.header-avatar {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
  }
  ion-avatar.header-avatar .avatar-iniciales {
    font-size: 12px !important;
  }
}
html.ion-palette-dark ion-avatar.header-avatar,
html.dark ion-avatar.header-avatar,
html[color-scheme=dark] ion-avatar.header-avatar {
  background: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}
html.ion-palette-dark ion-avatar.header-avatar .avatar-iniciales,
html.dark ion-avatar.header-avatar .avatar-iniciales,
html[color-scheme=dark] ion-avatar.header-avatar .avatar-iniciales {
  color: #ffffff !important;
}

/**
 * Color global para títulos y encabezados (solo tema claro)
 * -----------------------------------------------------
 * h1, h2, h3, h4 e ion-card-title usan el color corporativo #002A46.
 */
:root,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) {
  /**
   * Autofill (credenciales recordadas por el navegador) – tema claro
   * Evita el fondo amarillo/azul que aplica Chrome y mantiene fondo blanco.
   */
}
:root h1,
:root h2,
:root h3,
:root h4,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) h1,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) h2,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) h3,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) h4 {
  color: #002A46;
}
:root ion-card-title,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) ion-card-title {
  --color: #002A46;
  color: #002A46;
}
:root input:-webkit-autofill,
:root input:-webkit-autofill:hover,
:root input:-webkit-autofill:focus,
:root textarea:-webkit-autofill,
:root textarea:-webkit-autofill:hover,
:root textarea:-webkit-autofill:focus,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) input:-webkit-autofill,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) input:-webkit-autofill:hover,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) input:-webkit-autofill:focus,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) textarea:-webkit-autofill,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) textarea:-webkit-autofill:hover,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) textarea:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #f5f6f8 inset !important;
  -webkit-text-fill-color: #1a1a1a !important;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

/**
 * Color de títulos y ion-card-title en tema oscuro
 * -----------------------------------------------------
 * Texto claro para buena legibilidad sobre fondos oscuros.
 */
html.ion-palette-dark,
html.dark,
html[color-scheme=dark] {
  /**
   * Autofill (credenciales recordadas) – tema oscuro
   * Fondo oscuro para que no se vea el blanco por defecto del navegador.
   */
}
html.ion-palette-dark h1,
html.ion-palette-dark h2,
html.ion-palette-dark h3,
html.ion-palette-dark h4,
html.dark h1,
html.dark h2,
html.dark h3,
html.dark h4,
html[color-scheme=dark] h1,
html[color-scheme=dark] h2,
html[color-scheme=dark] h3,
html[color-scheme=dark] h4 {
  color: #ffffff;
}
html.ion-palette-dark ion-card-title,
html.dark ion-card-title,
html[color-scheme=dark] ion-card-title {
  --color: #ffffff !important;
  color: #ffffff;
}
html.ion-palette-dark .form-label-estandar,
html.dark .form-label-estandar,
html[color-scheme=dark] .form-label-estandar {
  color: #ffffff !important;
}
html.ion-palette-dark input:-webkit-autofill,
html.ion-palette-dark input:-webkit-autofill:hover,
html.ion-palette-dark input:-webkit-autofill:focus,
html.ion-palette-dark textarea:-webkit-autofill,
html.ion-palette-dark textarea:-webkit-autofill:hover,
html.ion-palette-dark textarea:-webkit-autofill:focus,
html.dark input:-webkit-autofill,
html.dark input:-webkit-autofill:hover,
html.dark input:-webkit-autofill:focus,
html.dark textarea:-webkit-autofill,
html.dark textarea:-webkit-autofill:hover,
html.dark textarea:-webkit-autofill:focus,
html[color-scheme=dark] input:-webkit-autofill,
html[color-scheme=dark] input:-webkit-autofill:hover,
html[color-scheme=dark] input:-webkit-autofill:focus,
html[color-scheme=dark] textarea:-webkit-autofill,
html[color-scheme=dark] textarea:-webkit-autofill:hover,
html[color-scheme=dark] textarea:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #2a2a2a inset !important;
  -webkit-text-fill-color: #ffffff !important;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

body.ion-palette-dark ion-card-title,
body.dark ion-card-title {
  --color: #ffffff !important;
  color: #ffffff;
}

html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita {
  /* Formulario Registrar Visita: mismo estilo que Agendar (campos); etiquetas vía ion-label + .form-item */
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-panel,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-panel {
  background: #ffffff !important;
  --ion-background-color: #ffffff !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header {
  background: #f5f5f5 !important;
  border-bottom: 1px solid var(--ion-color-light-shade) !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header h2,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header h2 {
  color: var(--ion-color-dark) !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header .subtitulo,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-header .subtitulo {
  color: var(--ion-color-medium) !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content {
  background: #ffffff !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-footer,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-footer {
  background: #f5f5f5 !important;
  border-top: 1px solid var(--ion-color-light-shade) !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input::part(native),
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select::part(native),
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-input textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-select textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item ion-textarea textarea {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item .file-input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item .file-input {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item .file-input:disabled,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item .file-input:disabled {
  --background: #f3f4f6 !important;
  --ion-background-color: #f3f4f6 !important;
  background: #f3f4f6 !important;
  color: #6b7280 !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select::part(native),
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input::part(native),
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-select textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-input textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-item-usuario-indap ion-textarea textarea {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor::part(container),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor::part(container) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .searchbar-productor input {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .select-container ion-select,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .select-container ion-select {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .select-container ion-select::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .usuario-indap-container .select-container ion-select::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select {
  --padding-start: 10px;
  --padding-end: 10px;
  --padding-top: 10px;
  --padding-bottom: 10px;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  --border-radius: 8px;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  margin-top: 4px;
  width: 100%;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea::part(native),
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea textarea,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select input,
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-textarea textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-select textarea {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
  border-radius: 8px;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button {
  width: 100%;
  margin-top: 4px;
  --color: #1a1a1a !important;
  --border-radius: 8px;
  color: #1a1a1a !important;
  border-radius: 8px !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button::part(native) {
  width: 100%;
  padding: 10px;
  --background: var(--ion-color-light);
  --color: #1a1a1a !important;
  --border-radius: 8px;
  background: var(--ion-color-light);
  color: #1a1a1a !important;
  border-radius: 8px !important;
  text-align: left;
  justify-content: flex-start;
  border: 1px solid #d1d5db !important;
  font-weight: normal;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button button,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .form-registro ion-datetime-button button {
  color: #1a1a1a !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-input input {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-select,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-select {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-select::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-select::part(native) {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native),
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native) {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor {
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  background: #ffffff !important;
  --color: #1a1a1a !important;
  color: #1a1a1a !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container {
  background: #ffffff !important;
  --background: #ffffff !important;
  --ion-background-color: #ffffff !important;
  border: 1px solid #d1d5db !important;
}
html:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input,
body:not(.ion-palette-dark):not(.dark):not([color-scheme=dark]) app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input {
  color: #1a1a1a !important;
  background: transparent !important;
  background-color: transparent !important;
}

.ion-palette-dark ion-content,
.dark ion-content {
  --background: #121212;
}
.ion-palette-dark app-formulario-visita,
.dark app-formulario-visita {
  /* Formulario Registrar Visita en modo oscuro: mismo estilo que Agendar */
}
.ion-palette-dark app-formulario-visita .formulario-panel,
.dark app-formulario-visita .formulario-panel {
  background: #1a1a1a !important;
  --ion-background-color: #1a1a1a !important;
}
.ion-palette-dark app-formulario-visita .formulario-header,
.dark app-formulario-visita .formulario-header {
  background: #2a2a2a !important;
  border-bottom: 1px solid #3a3a3a !important;
}
.ion-palette-dark app-formulario-visita .formulario-header h2,
.dark app-formulario-visita .formulario-header h2 {
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .formulario-header .subtitulo,
.dark app-formulario-visita .formulario-header .subtitulo {
  color: #b0b0b0 !important;
}
.ion-palette-dark app-formulario-visita .formulario-content,
.dark app-formulario-visita .formulario-content {
  background: #1a1a1a !important;
}
.ion-palette-dark app-formulario-visita .formulario-footer,
.dark app-formulario-visita .formulario-footer {
  background: #2a2a2a !important;
  border-top: 1px solid #3a3a3a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input,
.ion-palette-dark app-formulario-visita .form-item ion-select,
.ion-palette-dark app-formulario-visita .form-item ion-textarea,
.dark app-formulario-visita .form-item ion-input,
.dark app-formulario-visita .form-item ion-select,
.dark app-formulario-visita .form-item ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input::part(native),
.ion-palette-dark app-formulario-visita .form-item ion-select::part(native),
.ion-palette-dark app-formulario-visita .form-item ion-textarea::part(native),
.dark app-formulario-visita .form-item ion-input::part(native),
.dark app-formulario-visita .form-item ion-select::part(native),
.dark app-formulario-visita .form-item ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input input,
.ion-palette-dark app-formulario-visita .form-item ion-input textarea,
.ion-palette-dark app-formulario-visita .form-item ion-select input,
.ion-palette-dark app-formulario-visita .form-item ion-select textarea,
.ion-palette-dark app-formulario-visita .form-item ion-textarea input,
.ion-palette-dark app-formulario-visita .form-item ion-textarea textarea,
.dark app-formulario-visita .form-item ion-input input,
.dark app-formulario-visita .form-item ion-input textarea,
.dark app-formulario-visita .form-item ion-select input,
.dark app-formulario-visita .form-item ion-select textarea,
.dark app-formulario-visita .form-item ion-textarea input,
.dark app-formulario-visita .form-item ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-select,
.dark app-formulario-visita .form-item-usuario-indap ion-input,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select::part(native),
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input::part(native),
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-select::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-input::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select textarea,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input textarea,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-select input,
.dark app-formulario-visita .form-item-usuario-indap ion-select textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-input input,
.dark app-formulario-visita .form-item-usuario-indap ion-input textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea input,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea,
.ion-palette-dark app-formulario-visita .form-registro ion-select,
.dark app-formulario-visita .form-registro ion-textarea,
.dark app-formulario-visita .form-registro ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea::part(native),
.ion-palette-dark app-formulario-visita .form-registro ion-select::part(native),
.dark app-formulario-visita .form-registro ion-textarea::part(native),
.dark app-formulario-visita .form-registro ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea input,
.ion-palette-dark app-formulario-visita .form-registro ion-textarea textarea,
.ion-palette-dark app-formulario-visita .form-registro ion-select input,
.ion-palette-dark app-formulario-visita .form-registro ion-select textarea,
.dark app-formulario-visita .form-registro ion-textarea input,
.dark app-formulario-visita .form-registro ion-textarea textarea,
.dark app-formulario-visita .form-registro ion-select input,
.dark app-formulario-visita .form-registro ion-select textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button,
.dark app-formulario-visita .form-registro ion-datetime-button {
  --color: #ffffff !important;
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button::part(native),
.dark app-formulario-visita .form-registro ion-datetime-button::part(native) {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button button,
.dark app-formulario-visita .form-registro ion-datetime-button button {
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor,
.dark app-formulario-visita .usuario-indap-container .searchbar-productor {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(native),
.dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(container),
.dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(container) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor input,
.dark app-formulario-visita .usuario-indap-container .searchbar-productor input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .select-container ion-select,
.dark app-formulario-visita .usuario-indap-container .select-container ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .select-container ion-select::part(native),
.dark app-formulario-visita .usuario-indap-container .select-container ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-input {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-input::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-input input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea,
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea,
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-select,
.dark app-formulario-visita .formulario-content ::ng-deep ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-select::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native) {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark .global-header ion-toolbar,
.dark .global-header ion-toolbar {
  background: rgba(30, 30, 30, 0.85) !important;
  backdrop-filter: blur(30px) saturate(180%);
  -webkit-backdrop-filter: blur(30px) saturate(180%);
  --color: #ffffff !important;
}
.ion-palette-dark .global-header ion-toolbar::before,
.dark .global-header ion-toolbar::before {
  background: rgba(30, 30, 30, 0.85) !important;
  backdrop-filter: blur(30px) saturate(180%);
  -webkit-backdrop-filter: blur(30px) saturate(180%);
}
.ion-palette-dark .global-header ion-title,
.dark .global-header ion-title {
  color: #ffffff;
}
.ion-palette-dark .global-header .menu-toggle-btn,
.dark .global-header .menu-toggle-btn {
  --color: #ffffff;
}
.ion-palette-dark .global-header .menu-toggle-btn ion-icon,
.dark .global-header .menu-toggle-btn ion-icon {
  color: #ffffff;
}
.ion-palette-dark .global-header .menu-toggle-btn:hover,
.dark .global-header .menu-toggle-btn:hover {
  --color: rgba(255, 255, 255, 0.8);
}
.ion-palette-dark .global-header .menu-toggle-btn:hover ion-icon,
.dark .global-header .menu-toggle-btn:hover ion-icon {
  color: rgba(255, 255, 255, 0.8);
}
.ion-palette-dark .global-header .perfil-selector .perfil-select,
.dark .global-header .perfil-selector .perfil-select {
  --color: #ffffff;
  --placeholder-color: #ffffff;
  --placeholder-opacity: 1;
}
.ion-palette-dark .global-header .perfil-selector .perfil-select::part(icon),
.dark .global-header .perfil-selector .perfil-select::part(icon) {
  color: #ffffff;
}
.ion-palette-dark .global-header .perfil-selector .perfil-select::part(text),
.dark .global-header .perfil-selector .perfil-select::part(text) {
  color: #ffffff;
}
.ion-palette-dark .global-header .perfil-selector .perfil-select::part(placeholder),
.dark .global-header .perfil-selector .perfil-select::part(placeholder) {
  color: #ffffff !important;
  opacity: 1;
}
.ion-palette-dark .global-header .perfil-chip,
.dark .global-header .perfil-chip {
  --background: rgba(255, 255, 255, 0.15);
  --color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.ion-palette-dark .global-header .perfil-chip ion-icon,
.dark .global-header .perfil-chip ion-icon {
  color: #ffffff;
}
.ion-palette-dark .global-header .perfil-chip ion-label,
.dark .global-header .perfil-chip ion-label {
  color: #ffffff;
}
.ion-palette-dark .global-header .unidad-operativa-selector .unidad-operativa-select,
.dark .global-header .unidad-operativa-selector .unidad-operativa-select {
  --color: #ffffff;
  --placeholder-color: #ffffff;
  --placeholder-opacity: 1;
}
.ion-palette-dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(icon),
.dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(icon) {
  color: #ffffff;
}
.ion-palette-dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(text),
.dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(text) {
  color: #ffffff;
}
.ion-palette-dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(placeholder),
.dark .global-header .unidad-operativa-selector .unidad-operativa-select::part(placeholder) {
  color: #ffffff !important;
  opacity: 1;
}
.ion-palette-dark .global-header .unidad-operativa-chip,
.dark .global-header .unidad-operativa-chip {
  --background: rgba(255, 255, 255, 0.15);
  --color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.ion-palette-dark .global-header .unidad-operativa-chip ion-icon,
.dark .global-header .unidad-operativa-chip ion-icon {
  color: #ffffff;
}
.ion-palette-dark .global-header .unidad-operativa-chip ion-label,
.dark .global-header .unidad-operativa-chip ion-label {
  color: #ffffff;
}
.ion-palette-dark .global-header .avatar-button .header-avatar,
.dark .global-header .avatar-button .header-avatar {
  background: rgba(255, 255, 255, 0.15);
  border: 2px solid rgba(255, 255, 255, 0.3);
}
.ion-palette-dark .global-header .avatar-button .header-avatar .avatar-iniciales,
.dark .global-header .avatar-button .header-avatar .avatar-iniciales {
  color: #ffffff;
}
.ion-palette-dark .global-header .avatar-button:hover .header-avatar,
.dark .global-header .avatar-button:hover .header-avatar {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.5);
}
.ion-palette-dark .header-dashboard h1,
.dark .header-dashboard h1 {
  color: #ffffff;
}
.ion-palette-dark .header-dashboard .subtitulo-dashboard,
.dark .header-dashboard .subtitulo-dashboard {
  color: rgba(255, 255, 255, 0.7);
}

ion-footer {
  --background: #f2f3f5;
}

.ion-palette-dark ion-footer {
  --background: #1e1e1e;
}

/**
 * Estilos globales para títulos de página
 * -----------------------------------------------------
 * Títulos que aparecen dentro del contenido de cada página
 */
.contenedor-dashboard > h1,
.contenedor-fichas > h1,
.contenedor-pagina > h1,
.contenedor-perfil > h1,
.contenedor-configuracion > h1 {
  font-size: 24px;
  font-weight: 600;
  margin-top: 8px;
  margin-bottom: 24px;
  color: var(--ion-text-color);
}

.titulo-sobre-tarjeta {
  font-size: 24px;
  font-weight: 600;
  margin-top: 8px;
  margin-bottom: 16px;
  color: var(--ion-text-color);
}

.page-title-with-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
  margin-bottom: 24px;
}
.page-title-with-actions h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  color: var(--ion-text-color);
}
.page-title-with-actions .page-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.page-title-with-actions .page-actions ion-button {
  --color: var(--ion-color-primary);
  font-size: 24px;
}

.page-title-with-back {
  display: flex;
  align-items: center;
  margin-top: 8px;
  margin-bottom: 24px;
  gap: 8px;
}
.page-title-with-back .back-button {
  --color: var(--ion-color-primary);
  margin: 0;
  --padding-start: 0;
  --padding-end: 8px;
}
.page-title-with-back .back-button ion-icon {
  font-size: 24px;
}
.page-title-with-back h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  color: var(--ion-text-color);
}

/**
 * Estilos globales para Popovers de Selectores
 * -----------------------------------------------------
 * Diferentes configuraciones según el tipo de contenido:
 * - Compactos: Se ajustan al contenido (años, cantidades, etc.)
 * - Medianos: Para textos medianos (filtros de fecha, opciones)
 * - Expandidos: Para textos largos (unidades operativas)
 */
ion-popover[mode=ios]::part(arrow),
.ios ion-popover::part(arrow) {
  z-index: 1;
}

ion-popover .popover-informacion {
  padding: 12px 16px !important;
  max-width: 280px !important;
}

ion-popover .popover-informacion p {
  margin: 0 !important;
  font-size: 0.875rem !important;
  line-height: 1.4 !important;
  color: var(--ion-text-color) !important;
}

ion-popover:has(.popover-informacion) {
  --height: auto;
  --width: auto;
  --max-width: min(calc(100vw - 24px), 300px);
}

ion-popover:has(.popover-informacion)::part(content) {
  height: auto !important;
  min-height: 0 !important;
}

ion-popover:has(.popover-informacion) .popover-viewport {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
}

ion-popover.popover-acciones-plan {
  --height: auto;
  --width: max-content;
  --max-width: min(calc(100vw - 24px), 300px);
}

ion-popover.popover-acciones-plan::part(content) {
  height: auto !important;
  min-height: 0 !important;
  bottom: auto !important;
  overflow: hidden;
  width: max-content;
  max-width: min(100vw - 24px, 300px);
  align-items: flex-start;
}

ion-popover.popover-acciones-plan .popover-viewport {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
}

ion-popover.popover-acciones-plan ion-list {
  width: max-content;
  max-width: min(100vw - 24px, 300px);
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
}

ion-popover.popover-acciones-plan .popover-categoria {
  padding: 3px 10px 1px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ion-color-step-500, #808080);
  background: var(--ion-color-step-50, #f5f5f5);
  line-height: 1;
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
}

ion-popover.popover-acciones-plan ion-list ion-item {
  --min-height: 36px;
  --padding-start: 10px;
  --padding-end: 10px;
  --inner-padding-top: 0;
  --inner-padding-bottom: 0;
}
ion-popover.popover-acciones-plan ion-list ion-item::part(native) {
  min-height: 36px;
}
ion-popover.popover-acciones-plan ion-list ion-item ion-icon[slot=start] {
  font-size: 16px;
  margin-top: 0;
  margin-bottom: 0;
  margin-inline-end: 8px;
}
ion-popover.popover-acciones-plan ion-list ion-item ion-label {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
}

.ion-palette-dark ion-popover.popover-acciones-plan .popover-categoria,
.dark ion-popover.popover-acciones-plan .popover-categoria {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.45);
}

ion-popover.select-popover ion-select-popover ion-list {
  padding: 8px 0;
}
ion-popover.select-popover ion-select-popover ion-list ion-item {
  --padding-start: 16px;
  --padding-end: 16px;
}
ion-popover.select-popover ion-select-popover ion-list ion-item ion-radio {
  margin-right: 12px;
}
ion-popover.select-popover ion-select-popover ion-list ion-item ion-label {
  font-size: 14px;
  line-height: 1.4;
}

ion-popover.select-popover-compact {
  --width: auto;
  --min-width: 80px;
  --max-width: min(200px, 90vw);
}
ion-popover.select-popover-compact ion-select-popover ion-list {
  padding: 4px 0;
}
ion-popover.select-popover-compact ion-select-popover ion-list ion-item {
  --padding-start: 12px;
  --padding-end: 12px;
  --min-height: 40px;
}
ion-popover.select-popover-compact ion-select-popover ion-list ion-item ion-label {
  white-space: nowrap;
}

ion-popover.select-popover-medium {
  --width: auto;
  --min-width: 140px;
  --max-width: min(280px, 90vw);
}
@media (max-width: 576px) {
  ion-popover.select-popover-medium {
    --max-width: calc(100vw - 32px);
  }
}
ion-popover.select-popover-medium ion-list {
  padding: 4px 0;
}
ion-popover.select-popover-medium ion-list ion-item {
  --padding-start: 14px;
  --padding-end: 14px;
  --min-height: 40px;
}
ion-popover.select-popover-medium ion-list ion-item::part(native) {
  flex-wrap: nowrap;
}
ion-popover.select-popover-medium ion-list ion-item ion-label {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
ion-popover.select-popover-medium ion-list ion-item ion-button {
  flex: 0 0 auto;
  margin-inline-start: 8px;
}
ion-popover.select-popover-medium ion-select-popover ion-list {
  padding: 4px 0;
}
ion-popover.select-popover-medium ion-select-popover ion-list ion-item {
  --padding-start: 14px;
  --padding-end: 14px;
}
ion-popover.select-popover-medium ion-select-popover ion-list ion-item ion-label {
  white-space: nowrap;
}

ion-popover.select-popover-estado-plan-negocio {
  --max-width: min(380px, 94vw);
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-list {
  padding: 6px 0;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-list ion-item {
  --background: transparent;
  --background-hover: rgba(var(--ion-color-primary-rgb), 0.06);
  --background-focused: rgba(var(--ion-color-primary-rgb), 0.08);
  --border-width: 0;
  --inner-padding-end: 12px;
  --min-height: 44px;
  align-items: center;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-list ion-item ion-radio {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-list ion-item ion-label {
  white-space: normal;
  text-overflow: clip;
  overflow: visible;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-item.select-opt-pn-todos ion-radio::part(label) {
  display: inline-block;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.4;
  border: 1px solid #B8A9D4;
  background-color: #B8A9D4;
  color: #092039;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-item.select-opt-pn-diagnostico ion-radio::part(label) {
  display: inline-block;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.4;
  border: 1px solid #14867c;
  background-color: #14867c;
  color: #ffffff;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-item.select-opt-pn-diseno ion-radio::part(label) {
  display: inline-block;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.4;
  border: 1px solid #AFDFB2;
  background-color: #AFDFB2;
  color: #1a1a1a;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-item.select-opt-pn-implementacion ion-radio::part(label) {
  display: inline-block;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.4;
  border: 1px solid #7CA6DD;
  background-color: #7CA6DD;
  color: #1a1a1a;
}
ion-popover.select-popover-estado-plan-negocio ion-select-popover ion-item.select-opt-pn-default ion-radio::part(label) {
  display: inline-block;
  box-sizing: border-box;
  width: fit-content;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: capitalize;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.4;
  border: 1px solid #6b7280;
  background-color: #6b7280;
  color: #ffffff;
}

ion-popover.select-popover-wide {
  --min-width: 320px;
  --max-width: 90vw;
}
@media (min-width: 768px) {
  ion-popover.select-popover-wide {
    --min-width: 400px;
    --max-width: 500px;
  }
}
@media (min-width: 1024px) {
  ion-popover.select-popover-wide {
    --min-width: 450px;
    --max-width: 600px;
  }
}
ion-popover.select-popover-wide ion-select-popover ion-item ion-label {
  white-space: normal;
}

ion-popover.select-popover-wide ion-select-popover ion-item ion-label {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-agendada] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-agendada]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #8EBDEF;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-planificada] ion-label::before, ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-default] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-planificada]::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-default]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #B8A9D4;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-completada] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-completada]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #D8EADD;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-cancelada] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-cancelada]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #F1AA9B;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-estado=estado-reagendada] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-estado=estado-reagendada]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #FAE9C6;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-diagnostico] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-diagnostico]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #14867c;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-diseno-plan-negocio] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-diseno-plan-negocio]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-formulacion] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-formulacion]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-diseno] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-diseno]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #AFDFB2;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-asesoria-base] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-asesoria-base]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-asesoria] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-asesoria]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-implementacion] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-implementacion]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #7CA6DD;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-asesoria-especialistas-individual] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-asesoria-especialistas-individual]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-asesoria-extra] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-asesoria-extra]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-bolsa-visitas] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-bolsa-visitas]::before, ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-bolsa-horas] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-bolsa-horas]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #F5C880;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-encuesta-margen-bruto] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-encuesta-margen-bruto]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #B33771;
  margin-right: 8px;
  vertical-align: middle;
}
ion-popover.select-popover ion-select-popover ion-item[data-tipo=tipo-default] ion-label::before,
ion-popover.select-popover ion-select-popover ion-item ion-label[data-tipo=tipo-default]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #6b7280;
  margin-right: 8px;
  vertical-align: middle;
}

ion-popover.select-popover ion-label[data-estado]::before,
ion-popover.select-popover ion-label[data-tipo]::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
}

ion-popover.select-popover ion-label[data-estado=estado-agendada]::before {
  background-color: #8EBDEF;
}

ion-popover.select-popover ion-label[data-estado=estado-planificada]::before,
ion-popover.select-popover ion-label[data-estado=estado-default]::before {
  background-color: #B8A9D4;
}

ion-popover.select-popover ion-label[data-estado=estado-completada]::before {
  background-color: #D8EADD;
}

ion-popover.select-popover ion-label[data-estado=estado-cancelada]::before {
  background-color: #F1AA9B;
}

ion-popover.select-popover ion-label[data-estado=estado-reagendada]::before {
  background-color: #FAE9C6;
}

ion-popover.select-popover ion-label[data-tipo=tipo-diagnostico]::before {
  background-color: #14867c;
}

ion-popover.select-popover ion-label[data-tipo=tipo-diseno-plan-negocio]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-formulacion]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-diseno]::before {
  background-color: #AFDFB2;
}

ion-popover.select-popover ion-label[data-tipo=tipo-asesoria-base]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-asesoria]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-implementacion]::before {
  background-color: #7CA6DD;
}

ion-popover.select-popover ion-label[data-tipo=tipo-asesoria-especialistas-individual]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-asesoria-extra]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-bolsa-visitas]::before,
ion-popover.select-popover ion-label[data-tipo=tipo-bolsa-horas]::before {
  background-color: #F5C880;
}

ion-popover.select-popover ion-label[data-tipo=tipo-encuesta-margen-bruto]::before {
  background-color: #B33771;
}

ion-popover.select-popover ion-label[data-tipo=tipo-default]::before {
  background-color: #6b7280;
}

ion-popover.unidad-operativa-popover {
  --width: auto;
  --min-width: 350px;
  --max-width: min(550px, 90vw);
  /**
  * Estilos globales para Toasts
  * -----------------------------------------------------
  * Mejora el contraste y visibilidad de los toasts
  */
}
@media (max-width: 576px) {
  ion-popover.unidad-operativa-popover {
    --min-width: 280px;
    --max-width: calc(100vw - 32px);
  }
}
@media (min-width: 577px) and (max-width: 768px) {
  ion-popover.unidad-operativa-popover {
    --min-width: 320px;
    --max-width: min(450px, 85vw);
  }
}
@media (min-width: 769px) {
  ion-popover.unidad-operativa-popover {
    --min-width: 400px;
    --max-width: 550px;
  }
}
ion-popover.unidad-operativa-popover .popover-content {
  width: auto;
  min-width: inherit;
  max-width: inherit;
}
ion-popover.unidad-operativa-popover ion-select-popover ion-item {
  --inner-padding-end: 16px;
}
ion-popover.unidad-operativa-popover ion-select-popover ion-item ion-label {
  white-space: normal;
  line-height: 1.4;
  padding: 8px 0;
}
ion-popover.unidad-operativa-popover ion-toast {
  --box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  font-weight: 500;
}
ion-popover.unidad-operativa-popover ion-toast[color=primary] {
  --background: #3880ff;
  --color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=primary] ion-icon {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=primary] .toast-button {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=warning] {
  --background: #ff9500;
  --color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=warning] ion-icon {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=warning] .toast-button {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=success] {
  --background: #2dd36f;
  --color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=success] ion-icon {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=success] .toast-button {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=danger] {
  --background: #eb445a;
  --color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=danger] ion-icon {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=danger] .toast-button {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=info] {
  --background: #3dc2ff;
  --color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=info] ion-icon {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast[color=info] .toast-button {
  color: #ffffff;
}
ion-popover.unidad-operativa-popover ion-toast ion-icon {
  font-size: 24px;
  margin-right: 8px;
}
ion-popover.unidad-operativa-popover ion-toast .toast-button {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 12px;
}

/**
 * Estilos globales para el panel flotante del formulario de visitas y asesoría especializada
 * (solo dentro de su selector de componente: evita pisar otros overlays, p. ej. dashboard).
 * El formulario se posiciona justo debajo del header global.
 */
app-formulario-visita .formulario-overlay,
app-formulario-actividad-grupal .formulario-overlay,
app-formulario-asistencia-actividad-grupal .formulario-overlay,
app-formulario-resumen-firmado-visita .formulario-overlay {
  position: fixed !important;
  top: 56px !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 1000 !important;
  pointer-events: auto !important;
}

app-formulario-visita .formulario-panel,
app-formulario-actividad-grupal .formulario-panel,
app-formulario-asistencia-actividad-grupal .formulario-panel,
app-formulario-resumen-firmado-visita .formulario-panel {
  position: fixed !important;
  top: 56px !important;
  right: 0 !important;
  height: calc(100vh - 56px) !important;
  z-index: 1001 !important;
  pointer-events: auto !important;
  transform: translateX(100%) !important;
}
app-formulario-visita .formulario-panel.visible,
app-formulario-actividad-grupal .formulario-panel.visible,
app-formulario-asistencia-actividad-grupal .formulario-panel.visible,
app-formulario-resumen-firmado-visita .formulario-panel.visible {
  transform: translateX(0) !important;
}

/**
 * Dashboard: modal «Ver detalle del pendiente» (Pendientes de subir).
 * ion-modal usa la capa de overlays de Ionic y queda por encima del header global (z-index ~1000).
 */
ion-modal.pendiente-detalle-modal {
  --width: min(500px, calc(100% - 60px));
  --min-width: 280px;
  --height: 100%;
  --max-height: 100%;
  --border-radius: 0;
  --box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);
  --backdrop-opacity: 0.45;
}

ion-modal.pendiente-detalle-modal::part(content) {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: var(--width);
  max-width: 100%;
  height: 100%;
  overflow: hidden;
}

.pendiente-detalle-modal-inner {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  /* Misma lógica que ion-menu panel de visitas / formulario: respetar notch y barra inferior nativa */
  padding-top: calc(env(safe-area-inset-top, 0px) + var(--sat-floating-panel-extra-top, 0px));
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--sat-floating-panel-extra-bottom, 0px));
}

ion-modal.pendiente-detalle-modal .formulario-contenido-menu {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  background: #ffffff;
}

ion-modal.pendiente-detalle-modal .formulario-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--ion-color-light-shade);
  background: #f5f5f5;
  position: relative;
  flex-shrink: 0;
}

ion-modal.pendiente-detalle-modal .formulario-header .header-main-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding-right: 40px;
}

ion-modal.pendiente-detalle-modal .formulario-header .header-titulos {
  flex: 1;
}

ion-modal.pendiente-detalle-modal .formulario-header h2 {
  margin: 0 0 8px 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ion-color-dark);
}

ion-modal.pendiente-detalle-modal .formulario-header .subtitulo {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ion-color-medium);
}

ion-modal.pendiente-detalle-modal .formulario-header .btn-cerrar {
  position: absolute;
  top: 16px;
  right: 16px;
  --color: var(--ion-color-medium);
  margin: 0;
  width: 36px;
  height: 36px;
}

ion-modal.pendiente-detalle-modal .formulario-header .btn-cerrar:hover {
  --color: var(--ion-color-dark);
}

ion-modal.pendiente-detalle-modal .formulario-content.pendiente-detalle-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 24px;
  -webkit-overflow-scrolling: touch;
  background: #ffffff;
}

ion-modal.pendiente-detalle-modal .vista-detalles .valor.valor-texto-largo {
  white-space: pre-wrap;
}

ion-modal.pendiente-detalle-modal .pendiente-detalle-id-local {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.8125rem;
  font-weight: 500;
  word-break: break-all;
}

/* Footer «Cerrar» — mismo patrón que formulario-visita en acción ver-detalles */
ion-modal.pendiente-detalle-modal .formulario-footer {
  padding: 20px 24px;
  border-top: 1px solid var(--ion-color-light-shade);
  background: #f5f5f5;
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-shrink: 0;
}

ion-modal.pendiente-detalle-modal .formulario-footer ion-button {
  margin: 0;
  min-width: 120px;
}

ion-modal.pendiente-detalle-modal .formulario-footer ion-button[fill=outline] {
  --border-width: 1px;
  --border-color: var(--ion-color-medium);
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-contenido-menu,
html.dark ion-modal.pendiente-detalle-modal .formulario-contenido-menu,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-contenido-menu {
  background: #1a1a1a;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-header,
html.dark ion-modal.pendiente-detalle-modal .formulario-header,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-header {
  background: #2a2a2a !important;
  border-bottom: 1px solid #3a3a3a !important;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-header h2,
html.dark ion-modal.pendiente-detalle-modal .formulario-header h2,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-header h2 {
  color: #ffffff !important;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-header .subtitulo,
html.dark ion-modal.pendiente-detalle-modal .formulario-header .subtitulo,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-header .subtitulo {
  color: #b0b0b0 !important;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-content.pendiente-detalle-scroll,
html.dark ion-modal.pendiente-detalle-modal .formulario-content.pendiente-detalle-scroll,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-content.pendiente-detalle-scroll {
  background: #1a1a1a !important;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .campo-caract .valor,
html.dark ion-modal.pendiente-detalle-modal .campo-caract .valor,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .campo-caract .valor {
  color: #ffffff;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .campo-caract .etiqueta,
html.dark ion-modal.pendiente-detalle-modal .campo-caract .etiqueta,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .campo-caract .etiqueta {
  color: var(--ion-color-medium-tint);
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .campo-caract .campo-icono,
html.dark ion-modal.pendiente-detalle-modal .campo-caract .campo-icono,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .campo-caract .campo-icono {
  color: #9ca3af;
}

html.ion-palette-dark ion-modal.pendiente-detalle-modal .formulario-footer,
html.dark ion-modal.pendiente-detalle-modal .formulario-footer,
html[color-scheme=dark] ion-modal.pendiente-detalle-modal .formulario-footer {
  background: #2a2a2a !important;
  border-top: 1px solid #3a3a3a !important;
}

/** Evita scroll del body con overlay de pantalla completa en el navegador. */
body.grafico-fullscreen-activo {
  overflow: hidden;
}

/** Overlay CSS dentro del navegador (no Fullscreen API del SO). */
.grafico-pantalla-completa-root.grafico-overlay-activo {
  position: fixed;
  inset: 0;
  z-index: 20000;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--ion-background-color, #ffffff);
  padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
}

.grafico-pantalla-completa-root.grafico-overlay-activo ion-card,
.grafico-pantalla-completa-root.grafico-overlay-activo .tarjeta-grafico {
  flex: 1;
  min-height: 0;
  height: 100%;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
}

.grafico-pantalla-completa-root.grafico-overlay-activo ion-card-content,
.grafico-pantalla-completa-root.grafico-overlay-activo .cuerpo-grafico {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-contenedor,
.grafico-pantalla-completa-root.grafico-overlay-activo .canvas-wrapper {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: static;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-body--activo {
  flex: 1;
  min-height: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  overflow: hidden;
  gap: 0;
}

/** Gráfico: ocupa el ancho restante a la izquierda. */
.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-contenido,
.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-canvas-host.grafico-fullscreen-contenido {
  order: 1;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  position: relative;
  overflow: hidden;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-contenido canvas,
.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-canvas-host.grafico-fullscreen-contenido canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/** Host del componente tabla (evita que flex lo encoja a ~95px). */
.grafico-pantalla-completa-root.grafico-overlay-activo app-grafico-fullscreen-tabla {
  order: 2;
  flex: 0 0 clamp(260px, 36vw, 400px);
  width: clamp(260px, 36vw, 400px);
  min-width: 260px;
  max-width: 400px;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid var(--ion-color-light-shade);
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: auto;
  padding: 8px 12px 12px;
  background: var(--ion-background-color, #ffffff);
  box-sizing: border-box;
}

/** Pantalla pequeña: tabla debajo del gráfico. */
@media (max-width: 767px) {
  .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-body--activo {
    flex-direction: column;
  }
  .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-contenido,
  .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-canvas-host.grafico-fullscreen-contenido {
    flex: 1 1 auto;
    min-height: 200px;
  }
  .grafico-pantalla-completa-root.grafico-overlay-activo app-grafico-fullscreen-tabla {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 38vh;
    border-left: none;
    border-top: 1px solid var(--ion-color-light-shade);
  }
}
html.ion-palette-dark .grafico-pantalla-completa-root.grafico-overlay-activo,
html.dark .grafico-pantalla-completa-root.grafico-overlay-activo,
html[color-scheme=dark] .grafico-pantalla-completa-root.grafico-overlay-activo {
  background: #1e1e1e;
}

html.ion-palette-dark .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla,
html.dark .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla,
html[color-scheme=dark] .grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla {
  background: #1e1e1e;
  border-color: #3a3a3a;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla .tabla-responsive {
  width: 100%;
  overflow-x: auto;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  table-layout: fixed;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla thead th {
  text-align: left;
  padding: 6px 4px;
  font-weight: 600;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--ion-color-medium-shade);
  background: var(--ion-color-light);
  border-bottom: 1px solid var(--ion-color-light-shade);
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
  vertical-align: bottom;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla thead th.ion-text-center {
  text-align: center;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .grafico-fullscreen-tabla tbody td {
  padding: 6px 4px;
  border-bottom: 1px solid var(--ion-color-light);
  color: var(--ion-color-dark);
  vertical-align: middle;
  overflow-wrap: break-word;
  word-break: break-word;
}

/**
 * Dashboard: modal pantalla completa para gráficos (evolución visitas, estado planes).
 * ion-modal cubre el viewport y queda por encima del header global.
 * @deprecated Los gráficos usan overlay CSS (.grafico-modo-pantalla-completa); se mantiene por compatibilidad.
 */
ion-modal.grafico-fullscreen-modal {
  --width: 100%;
  --height: 100%;
  --max-width: 100%;
  --max-height: 100%;
  --border-radius: 0;
  --box-shadow: none;
  --backdrop-opacity: 0.45;
}

ion-modal.grafico-fullscreen-modal::part(content) {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.grafico-fullscreen-inner {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  background: #ffffff;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

ion-modal.grafico-fullscreen-modal .formulario-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--ion-color-light-shade);
  background: #f5f5f5;
  position: relative;
  flex-shrink: 0;
}

ion-modal.grafico-fullscreen-modal .formulario-header .header-main-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

ion-modal.grafico-fullscreen-modal .formulario-header .header-titulos {
  flex: 1;
  min-width: 0;
}

ion-modal.grafico-fullscreen-modal .formulario-header h2 {
  margin: 0 0 4px 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ion-color-dark);
}

ion-modal.grafico-fullscreen-modal .formulario-header .subtitulo {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ion-color-medium);
}

ion-modal.grafico-fullscreen-modal .formulario-header .header-acciones {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  margin-left: auto;
}

ion-modal.grafico-fullscreen-modal .formulario-header .select-periodo-modal {
  --background: var(--ion-color-light);
  --border-radius: 6px;
  --padding-start: 12px;
  --padding-end: 8px;
  min-height: 36px;
  font-size: 0.875rem;
  font-weight: 500;
}

ion-modal.grafico-fullscreen-modal .formulario-header .btn-cerrar {
  position: static;
  --color: var(--ion-color-medium);
  margin: 0;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

ion-modal.grafico-fullscreen-modal .formulario-header .btn-cerrar:hover {
  --color: var(--ion-color-dark);
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-contenido {
  flex: 1 1 55%;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 8px 12px 12px;
  position: relative;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-contenido canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla {
  flex: 0 1 45%;
  min-height: 0;
  max-height: 40vh;
  overflow: auto;
  border-top: 1px solid var(--ion-color-light-shade);
  padding: 8px 12px 12px;
  background: var(--ion-background-color, #ffffff);
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla .tabla-responsive {
  width: 100%;
  overflow-x: auto;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  table-layout: fixed;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla thead th {
  text-align: left;
  padding: 6px 4px;
  font-weight: 600;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--ion-color-medium-shade);
  background: var(--ion-color-light);
  border-bottom: 1px solid var(--ion-color-light-shade);
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
  vertical-align: bottom;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla thead th.ion-text-center {
  text-align: center;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--ion-color-light);
  color: var(--ion-color-dark);
  vertical-align: middle;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody td.ion-text-center {
  text-align: center;
}

ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody tr:last-child td {
  border-bottom: none;
}

@media (min-width: 768px) {
  ion-modal.grafico-fullscreen-modal .grafico-fullscreen-body {
    flex-direction: row;
  }
  ion-modal.grafico-fullscreen-modal .grafico-fullscreen-contenido {
    flex: 1 1 60%;
    min-height: 0;
  }
  ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla {
    flex: 0 0 40%;
    max-width: 420px;
    max-height: none;
    border-top: none;
    border-left: 1px solid var(--ion-color-light-shade);
  }
}
html.ion-palette-dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-inner,
html.dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-inner,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .grafico-fullscreen-inner {
  background: #1e1e1e;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .formulario-header,
html.dark ion-modal.grafico-fullscreen-modal .formulario-header,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .formulario-header {
  background: #2a2a2a;
  border-bottom-color: #3a3a3a;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .formulario-header h2,
html.dark ion-modal.grafico-fullscreen-modal .formulario-header h2,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .formulario-header h2 {
  color: #f3f4f6;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .formulario-header .subtitulo,
html.dark ion-modal.grafico-fullscreen-modal .formulario-header .subtitulo,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .formulario-header .subtitulo {
  color: #9ca3af;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla,
html.dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla {
  background: #1e1e1e;
  border-color: #3a3a3a;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla thead th,
html.dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla thead th,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla thead th {
  background: #2a2a2a;
  color: #9ca3af;
  border-bottom-color: #3a3a3a;
}

html.ion-palette-dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody td,
html.dark ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody td,
html[color-scheme=dark] ion-modal.grafico-fullscreen-modal .grafico-fullscreen-tabla tbody td {
  color: #f3f4f6;
  border-bottom-color: #3a3a3a;
}

/** Popovers en overlay de gráficos a pantalla completa: por encima del overlay (z-index 20000). */
ion-popover.select-popover-grafico-fullscreen,
ion-popover.popover-grafico-fullscreen {
  --z-index: 40000;
  z-index: 40000 !important;
}

.grafico-pantalla-completa-root.grafico-overlay-activo ion-card-header,
.grafico-pantalla-completa-root.grafico-overlay-activo .header-grafico {
  overflow: visible;
  position: relative;
  z-index: 2;
}

.grafico-pantalla-completa-root.grafico-overlay-activo .selector-periodo,
.grafico-pantalla-completa-root.grafico-overlay-activo .acciones-header {
  overflow: visible;
  position: relative;
  z-index: 3;
}

/**
 * Menú lateral «Ruta del día» (panel de acciones + registrar visita offline):
 * layout flex + scroll + footer anclado y colores alineados a ion-modal.pendiente-detalle-modal.
 * El contenido no va dentro de .formulario-panel, por eso los estilos por host-context del formulario-visita no aplican aquí.
 */
ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill {
  --overflow: hidden;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill::part(scroll) {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  /* ion-content pinta el fondo en la capa interna; sin esto puede verse negro con --overflow: hidden + flex */
  background: #ffffff;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill app-panel-accion-hoja-ruta,
ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill app-formulario-registrar-visita-offline {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-contenido-menu {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  background: #ffffff;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--ion-color-light-shade, #e0e0e0);
  background: #f5f5f5;
  position: relative;
  flex-shrink: 0;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .header-main-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding-right: 40px;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .header-titulos {
  flex: 1;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header h2 {
  margin: 0 0 8px 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--ion-color-dark);
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .subtitulo {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ion-color-medium);
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .btn-cerrar {
  position: absolute;
  top: 16px;
  right: 16px;
  --color: var(--ion-color-medium);
  margin: 0;
  width: 36px;
  height: 36px;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .btn-cerrar:hover {
  --color: var(--ion-color-dark);
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-content.ruta-accion-panel-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 24px;
  -webkit-overflow-scrolling: touch;
  background: #ffffff;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .vista-detalles .valor.valor-texto-largo {
  white-space: pre-wrap;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer {
  padding: 20px 24px;
  border-top: 1px solid var(--ion-color-light-shade, #e0e0e0);
  background: #f5f5f5;
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
  flex-shrink: 0;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer ion-button {
  margin: 0;
  min-width: 120px;
  min-height: 44px;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer ion-button[fill=outline] {
  --border-width: 1px;
  --border-color: var(--ion-color-medium);
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 16px;
  color: var(--ion-color-medium);
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .loading-container ion-spinner {
  width: 48px;
  height: 48px;
  margin-bottom: 12px;
}

ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .loading-container p {
  margin: 0;
  font-size: 0.875rem;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-contenido-menu,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-contenido-menu,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-contenido-menu {
  background: #1a1a1a;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header {
  background: #2a2a2a !important;
  border-bottom: 1px solid #3a3a3a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header h2,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header h2,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header h2 {
  color: #ffffff !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .subtitulo,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .subtitulo,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-header .subtitulo {
  color: #b0b0b0 !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-content.ruta-accion-panel-scroll,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-content.ruta-accion-panel-scroll,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-content.ruta-accion-panel-scroll {
  background: #1a1a1a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill::part(scroll),
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill::part(scroll),
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill::part(scroll) {
  background: #1a1a1a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-panel-accion-hoja-ruta,
html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-formulario-registrar-visita-offline,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-panel-accion-hoja-ruta,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-formulario-registrar-visita-offline,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-panel-accion-hoja-ruta,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill > app-formulario-registrar-visita-offline {
  background: #1a1a1a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .valor,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .valor,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .valor {
  color: #ffffff;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .etiqueta,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .etiqueta,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .etiqueta {
  color: var(--ion-color-medium-tint);
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .campo-icono,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .campo-icono,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .campo-caract .campo-icono {
  color: #9ca3af;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .formulario-footer {
  background: #2a2a2a !important;
  border-top: 1px solid #3a3a3a !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial {
  color: #b0b0b0;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial p,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial p,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial p {
  color: #d1d5db;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial ion-icon,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial ion-icon,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial ion-icon {
  color: var(--ion-color-medium-tint);
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial-error ion-icon,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial-error ion-icon,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .estado-historial-error ion-icon {
  color: var(--ion-color-danger-tint, #ff6b6b);
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-titulo,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-titulo,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-titulo {
  color: #f3f4f6 !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-etiqueta,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-etiqueta,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-etiqueta {
  color: #9ca3af !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-pct,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-pct,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-pct {
  color: #f3f4f6 !important;
}

html.ion-palette-dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-barra-wrap,
html.dark ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-barra-wrap,
html[color-scheme=dark] ion-menu.visita-panel-menu ion-content.panel-hoja-ruta-ion-fill .plan-avance-barra-wrap {
  background: #3a3a3a;
}

/**
 * Estilos globales para mejorar legibilidad en formulario-visita
 * Usar ::ng-deep para penetrar shadow DOM de Ionic
 */
.formulario-content ::ng-deep ion-input:not([readonly]):not([disabled]) {
  --color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-input:not([readonly]):not([disabled]) input {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-textarea:not([readonly]):not([disabled]) {
  --color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-textarea:not([readonly]):not([disabled]) textarea {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-select:not([disabled]) {
  --color: #1a1a1a !important;
  --placeholder-opacity: 1;
  --placeholder-color: #1a1a1a;
}
.formulario-content ::ng-deep ion-select:not([disabled])::part(text) {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-select:not([disabled])::part(placeholder) {
  color: #1a1a1a !important;
  opacity: 1;
}
.formulario-content ::ng-deep ion-datetime-button:not([disabled]) {
  --color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-datetime-button:not([disabled])::part(native) {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-input[readonly],
.formulario-content ::ng-deep ion-input[disabled] {
  --background: #f0f0f0 !important;
  --color: #1a1a1a !important;
  background: #f0f0f0 !important;
  border: 1px solid #e0e0e0 !important;
}
.formulario-content ::ng-deep ion-input[readonly] input,
.formulario-content ::ng-deep ion-input[disabled] input {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-textarea[readonly],
.formulario-content ::ng-deep ion-textarea[disabled] {
  --background: #f0f0f0 !important;
  --color: #1a1a1a !important;
  background: #f0f0f0 !important;
  border: 1px solid #e0e0e0 !important;
}
.formulario-content ::ng-deep ion-textarea[readonly] textarea,
.formulario-content ::ng-deep ion-textarea[disabled] textarea {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-select[disabled] {
  --background: #f0f0f0 !important;
  --color: #1a1a1a !important;
  background: #f0f0f0 !important;
  border: 1px solid #e0e0e0 !important;
}
.formulario-content ::ng-deep ion-select[disabled]::part(text) {
  color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-datetime-button[disabled] {
  --background: #f0f0f0 !important;
  --color: #1a1a1a !important;
}
.formulario-content ::ng-deep ion-datetime-button[disabled]::part(native) {
  background: #f0f0f0 !important;
  color: #1a1a1a !important;
  border: 1px solid #e0e0e0 !important;
}

.ion-palette-dark app-formulario-visita,
.dark app-formulario-visita {
  /* Formulario Registrar Visita en modo oscuro: mismo estilo que Agendar */
}
.ion-palette-dark app-formulario-visita .formulario-panel,
.dark app-formulario-visita .formulario-panel {
  background: #1a1a1a !important;
  --ion-background-color: #1a1a1a !important;
}
.ion-palette-dark app-formulario-visita .formulario-header,
.dark app-formulario-visita .formulario-header {
  background: #2a2a2a !important;
  border-bottom: 1px solid #3a3a3a !important;
}
.ion-palette-dark app-formulario-visita .formulario-header h2,
.dark app-formulario-visita .formulario-header h2 {
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .formulario-header .subtitulo,
.dark app-formulario-visita .formulario-header .subtitulo {
  color: #b0b0b0 !important;
}
.ion-palette-dark app-formulario-visita .formulario-content,
.dark app-formulario-visita .formulario-content {
  background: #1a1a1a !important;
}
.ion-palette-dark app-formulario-visita .formulario-footer,
.dark app-formulario-visita .formulario-footer {
  background: #2a2a2a !important;
  border-top: 1px solid #3a3a3a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input,
.ion-palette-dark app-formulario-visita .form-item ion-select,
.ion-palette-dark app-formulario-visita .form-item ion-textarea,
.dark app-formulario-visita .form-item ion-input,
.dark app-formulario-visita .form-item ion-select,
.dark app-formulario-visita .form-item ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input::part(native),
.ion-palette-dark app-formulario-visita .form-item ion-select::part(native),
.ion-palette-dark app-formulario-visita .form-item ion-textarea::part(native),
.dark app-formulario-visita .form-item ion-input::part(native),
.dark app-formulario-visita .form-item ion-select::part(native),
.dark app-formulario-visita .form-item ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item ion-input input,
.ion-palette-dark app-formulario-visita .form-item ion-input textarea,
.ion-palette-dark app-formulario-visita .form-item ion-select input,
.ion-palette-dark app-formulario-visita .form-item ion-select textarea,
.ion-palette-dark app-formulario-visita .form-item ion-textarea input,
.ion-palette-dark app-formulario-visita .form-item ion-textarea textarea,
.dark app-formulario-visita .form-item ion-input input,
.dark app-formulario-visita .form-item ion-input textarea,
.dark app-formulario-visita .form-item ion-select input,
.dark app-formulario-visita .form-item ion-select textarea,
.dark app-formulario-visita .form-item ion-textarea input,
.dark app-formulario-visita .form-item ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-select,
.dark app-formulario-visita .form-item-usuario-indap ion-input,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select::part(native),
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input::part(native),
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-select::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-input::part(native),
.dark app-formulario-visita .form-item-usuario-indap ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-select textarea,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-input textarea,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea input,
.ion-palette-dark app-formulario-visita .form-item-usuario-indap ion-textarea textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-select input,
.dark app-formulario-visita .form-item-usuario-indap ion-select textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-input input,
.dark app-formulario-visita .form-item-usuario-indap ion-input textarea,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea input,
.dark app-formulario-visita .form-item-usuario-indap ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea,
.ion-palette-dark app-formulario-visita .form-registro ion-select,
.dark app-formulario-visita .form-registro ion-textarea,
.dark app-formulario-visita .form-registro ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea::part(native),
.ion-palette-dark app-formulario-visita .form-registro ion-select::part(native),
.dark app-formulario-visita .form-registro ion-textarea::part(native),
.dark app-formulario-visita .form-registro ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-textarea input,
.ion-palette-dark app-formulario-visita .form-registro ion-textarea textarea,
.ion-palette-dark app-formulario-visita .form-registro ion-select input,
.ion-palette-dark app-formulario-visita .form-registro ion-select textarea,
.dark app-formulario-visita .form-registro ion-textarea input,
.dark app-formulario-visita .form-registro ion-textarea textarea,
.dark app-formulario-visita .form-registro ion-select input,
.dark app-formulario-visita .form-registro ion-select textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button,
.dark app-formulario-visita .form-registro ion-datetime-button {
  --color: #ffffff !important;
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button::part(native),
.dark app-formulario-visita .form-registro ion-datetime-button::part(native) {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .form-registro ion-datetime-button button,
.dark app-formulario-visita .form-registro ion-datetime-button button {
  color: #ffffff !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor,
.dark app-formulario-visita .usuario-indap-container .searchbar-productor {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(native),
.dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(container),
.dark app-formulario-visita .usuario-indap-container .searchbar-productor::part(container) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .searchbar-productor input,
.dark app-formulario-visita .usuario-indap-container .searchbar-productor input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .select-container ion-select,
.dark app-formulario-visita .usuario-indap-container .select-container ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .usuario-indap-container .select-container ion-select::part(native),
.dark app-formulario-visita .usuario-indap-container .select-container ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-input {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-input::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-input input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-input input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea,
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea,
.dark app-formulario-visita .formulario-content ::ng-deep ion-textarea textarea {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-select,
.dark app-formulario-visita .formulario-content ::ng-deep ion-select {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-select::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-select::part(native) {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native),
.dark app-formulario-visita .formulario-content ::ng-deep ion-datetime-button::part(native) {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor {
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  background: #2a2a2a !important;
  --color: #ffffff !important;
  color: #ffffff !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input-container {
  background: #2a2a2a !important;
  --background: #2a2a2a !important;
  --ion-background-color: #2a2a2a !important;
  border: 1px solid #4a4a4a !important;
}
.ion-palette-dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input,
.dark app-formulario-visita .formulario-content ::ng-deep ion-searchbar.searchbar-productor .searchbar-input {
  color: #ffffff !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Visor in-app de adjuntos (PDF/imagen) en Capacitor nativo */
.adjunto-visor-inapp {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  background: #111;
  padding-top: env(safe-area-inset-top, 0);
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.adjunto-visor-inapp-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 8px 12px;
  background: var(--ion-toolbar-background, #fff);
  border-bottom: 1px solid var(--ion-border-color, #ddd);
  flex-shrink: 0;
  flex-wrap: wrap;
}

.adjunto-visor-inapp-acciones {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.adjunto-visor-inapp-titulo {
  flex: 1;
  min-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ion-text-color, #222);
}

.adjunto-visor-inapp-descargar,
.adjunto-visor-inapp-abrir-externo {
  flex-shrink: 0;
  border: 1px solid var(--ion-color-primary, #3880ff);
  border-radius: 8px;
  padding: 8px 12px;
  background: transparent;
  color: var(--ion-color-primary, #3880ff);
  font-size: 0.875rem;
  font-weight: 600;
}

.adjunto-visor-inapp-cerrar {
  flex-shrink: 0;
  border: none;
  border-radius: 8px;
  padding: 8px 14px;
  background: var(--ion-color-primary, #3880ff);
  color: var(--ion-color-primary-contrast, #fff);
  font-size: 0.875rem;
  font-weight: 600;
}

.adjunto-visor-inapp-contenido {
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a1a1a;
  overflow: auto;
}

.adjunto-visor-inapp-imagen {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.adjunto-visor-inapp-pdf-scroll {
  width: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  background: #525659;
}

.adjunto-visor-inapp-pdf-pagina {
  display: block;
  max-width: 100%;
  height: auto;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.adjunto-visor-inapp-sin-preview {
  max-width: 90%;
  margin: 0;
  padding: 16px;
  text-align: center;
  line-height: 1.5;
  color: #f0f0f0;
  font-size: 0.95rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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 ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


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