{"version":3,"file":"static/css/main.30c9193e.css","mappings":"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yCE,iCAAkC,CAClC,kCAAmC,CGFnC,sBAAuB,CAEvB,wBAAyB,CAEzB,oBAAqB,CAIrB,8EAAsB,CAvCtB,WAAY,CH2OZ,QGlPgB,CAQhB,eAAgB,CAFhB,cAAe,CA4Bf,eAAgB,CAUhB,0BAA2B,CHsM3B,SGjPiB,CAEjB,cAAe,CA6Bf,iCAAkC,CAIlC,yBAA0B,CAN1B,uDAAwB,CAzBxB,UC2BF,CCvCA,KACE,kCC9BF,CDiCA,EACE,wBAA6B,CAC7B,oDC9BF,CDiCA,kBAQE,eAxC6B,CA0C7B,eAvC6B,CL6Q7B,kBK1O4B,CLyO5B,eMpQF,CDkCA,GAGE,cA1C6B,CLyQ7B,eMhQF,CDoCA,GAGE,cA7C6B,CLsQ7B,eM5PF,CDsCA,GACE,cCpCF,CDuCA,GACE,cCpCF,CDuCA,GACE,cCpCF,CDuCA,GACE,cCpCF,CD2CA,cAHE,aC5BF,CD+BA,QAME,aAAc,CAJd,iBAAkB,CAMlB,sBCvCF,CD0CA,IACE,SCvCF,CD0CA,IACE,aCvCF,CC9CA,gBACE,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,kBAAmB,CPoQnB,SQ/QF,CDgBA,aACE,wCACA,sCACA,sCACA,yCP2PA,YO9QQ,CP8QR,+BQpQF,CRsOM,4FACE,aAQE,0BOzPA,CPyPA,6COzPA,CP2PA,wBO3PA,CP2PA,2CO3PA,CPmPE,eAGA,gBAMF,uBO5PA,CP4PA,0CO5PA,CP0PA,yBO1PA,CP0PA,4CQvOR,CACF,CDIA,iBACE,sCPoPA,gBO7QQ,CP6QR,mCQpPF,CDKA,mBACE,wCP6ME,iBO5OM,CP4ON,oCQ/MJ,CRmNM,4FACE,mBAQE,0BOzPA,CPyPA,6COzPA,CPmPE,eAOF,yBO1PA,CP0PA,4CQvNR,CACF,CDAA,iBACE,sCPwME,kBO7OM,CP6ON,qCQpMJ,CRuMM,4FACE,iBAUE,wBO3PA,CP2PA,2CO3PA,CPsPE,gBAMF,uBO5PA,CP4PA,0CQ7MR,CACF,CDNA,oBACE,wCCUF,CDLA,0CP8NE,mBO9QQ,CP8QR,sCQnNF,CDXA,sBACE,sCACA,yCP2NA,gBO7QQ,CP6QR,mCQlNF,CDJA,wBACE,wCACA,sCPmLE,iBO5OM,CP4ON,oCO5OM,CP6ON,kBO7OM,CP6ON,qCQ5KJ,CR+KM,4FACE,wBAQE,0BOzPA,CPyPA,6COzPA,CP2PA,wBO3PA,CP2PA,2CO3PA,CPmPE,eAGA,gBAMF,uBO5PA,CP4PA,0CO5PA,CP0PA,yBO1PA,CP0PA,4CQhLR,CACF,CDTA,eACE,gBAAiB,CACjB,cAAe,CACf,cAAe,CACf,iBAAkB,CPwMlB,QQxLF,CDXA,YACE,sCACA,oCACA,oCACA,uCP+LA,WO7QO,CP6QP,6BQ7KF,CR+IM,4FACE,YAQE,yBOxPD,CPwPC,2COxPD,CP0PC,uBO1PD,CP0PC,yCO1PD,CPkPG,cAGA,eAMF,sBO3PD,CP2PC,wCO3PD,CPyPC,wBOzPD,CPyPC,0CQhJR,CACF,CDvBA,gBACE,oCPwLA,eO5QO,CP4QP,iCQ7JF,CDtBA,kBACE,sCPiJE,gBO3OK,CP2OL,kCQxHJ,CR4HM,4FACE,kBAQE,yBOxPD,CPwPC,2COxPD,CPkPG,cAOF,wBOzPD,CPyPC,0CQhIR,CACF,CD3BA,gBACE,oCP4IE,iBO5OK,CP4OL,mCQ7GJ,CRgHM,4FACE,gBAUE,uBO1PD,CP0PC,yCO1PD,CPqPG,eAMF,sBO3PD,CP2PC,wCQtHR,CACF,CDjCA,mBACE,sCCqCF,CDhCA,wCPkKE,kBO7QO,CP6QP,oCQ5HF,CDtCA,qBACE,oCACA,uCP+JA,eO5QO,CP4QP,iCQ3HF,CD/BA,uBACE,sCACA,oCPuHE,gBO3OK,CP2OL,kCO3OK,CP4OL,iBO5OK,CP4OL,mCQrFJ,CRwFM,4FACE,uBAQE,yBOxPD,CPwPC,2COxPD,CP0PC,uBO1PD,CP0PC,yCO1PD,CPkPG,cAGA,eAMF,sBO3PD,CP2PC,wCO3PD,CPyPC,wBOzPD,CPyPC,0CQzFR,CACF,CC9JI,gBTmaE,oBU/aN,CDgBI,iBT+ZE,qBU3aN,CDgBI,iBT6YE,oBUzZN,CV4LW,qEAgOL,qBUzZN,CDaI,eTgZE,qBUzZN,CVqLW,iEAuOL,oBUzZN,CV4GI,yBSlHA,mBTmaE,oBUxZJ,CDPE,oBT+ZE,qBUpZJ,CDPE,oBT6YE,oBUlYJ,CVqKS,2EAgOL,qBUlYJ,CDVE,kBTgZE,qBUlYJ,CV8JS,uEAuOL,oBUlYJ,CACF,CVoFI,yBSlHA,mBTmaE,oBUjYJ,CD9BE,oBT+ZE,qBU7XJ,CD9BE,oBT6YE,oBU3WJ,CV8IS,2EAgOL,qBU3WJ,CDjCE,kBTgZE,qBU3WJ,CVuIS,uEAuOL,oBU3WJ,CACF,CV6DI,yBSlHA,mBTmaE,oBU1WJ,CDrDE,oBT+ZE,qBUtWJ,CDrDE,oBT6YE,oBUpVJ,CVuHS,2EAgOL,qBUpVJ,CDxDE,kBTgZE,qBUpVJ,CVgHS,uEAuOL,oBUpVJ,CACF,CVsCI,0BSlHA,mBTmaE,oBUnVJ,CD5EE,oBT+ZE,qBU/UJ,CD5EE,oBT6YE,oBU7TJ,CVgGS,2EAgOL,qBU7TJ,CD/EE,kBTgZE,qBU7TJ,CVyFS,uEAuOL,oBU7TJ,CACF,CCnGI,iBACE,2BCbN,CDgBI,kBACE,4BCbN,CDgBI,gBACE,0BCbN,CDgBI,cACE,wBCbN,CDgBI,eACE,yBCbN,CDgBI,gBACE,0BCbN,CDgBI,iBACE,4BCbN,CDgBI,eACE,4BCbN,CZkGI,yBWlHA,oBACE,2BCoBJ,CDjBE,qBACE,4BCoBJ,CDjBE,mBACE,0BCoBJ,CDjBE,iBACE,wBCoBJ,CDjBE,kBACE,yBCoBJ,CDjBE,mBACE,0BCoBJ,CDjBE,oBACE,4BCoBJ,CDjBE,kBACE,4BCoBJ,CACF,CZgEI,yBWlHA,oBACE,2BCqDJ,CDlDE,qBACE,4BCqDJ,CDlDE,mBACE,0BCqDJ,CDlDE,iBACE,wBCqDJ,CDlDE,kBACE,yBCqDJ,CDlDE,mBACE,0BCqDJ,CDlDE,oBACE,4BCqDJ,CDlDE,kBACE,4BCqDJ,CACF,CZ+BI,yBWlHA,oBACE,2BCsFJ,CDnFE,qBACE,4BCsFJ,CDnFE,mBACE,0BCsFJ,CDnFE,iBACE,wBCsFJ,CDnFE,kBACE,yBCsFJ,CDnFE,mBACE,0BCsFJ,CDnFE,oBACE,4BCsFJ,CDnFE,kBACE,4BCsFJ,CACF,CZFI,0BWlHA,oBACE,2BCuHJ,CDpHE,qBACE,4BCuHJ,CDpHE,mBACE,0BCuHJ,CDpHE,iBACE,wBCuHJ,CDpHE,kBACE,yBCuHJ,CDpHE,mBACE,0BCuHJ,CDpHE,oBACE,4BCuHJ,CDpHE,kBACE,4BCuHJ,CACF,CCrJI,oBAEE,kCCbN,CDgBI,oBAEE,kCCbN,CDgBI,qBAEE,mCCbN,CdmHI,yBalHA,uBAEE,kCCGJ,CDAE,uBAEE,kCCGJ,CDAE,wBAEE,mCCGJ,CACF,CdkGI,yBalHA,uBAEE,kCCmBJ,CDhBE,uBAEE,kCCmBJ,CDhBE,wBAEE,mCCmBJ,CACF,CdkFI,yBalHA,uBAEE,kCCmCJ,CDhCE,uBAEE,kCCmCJ,CDhCE,wBAEE,mCCmCJ,CACF,CdkEI,0BalHA,uBAEE,kCCmDJ,CDhDE,uBAEE,kCCmDJ,CDhDE,wBAEE,mCCmDJ,CACF,CCtEA,sBACE,+BCPF,CDUA,oBACE,6BCPF,CDUA,uBACE,2BCPF,CDUA,wBACE,4BCPF,CDUA,yBACE,6BCPF,CDUA,qBACE,yBCPF,CDcA,UACE,wBCXF,CDcA,YACE,0BCXF,CDcA,kBACE,gCCXF,CDkBA,2BACE,oCCfF,CDkBA,4BACE,gCCfF,CDkBA,yBACE,kCCfF,CDkBA,4BACE,sCCfF,CDkBA,6BACE,uCCfF,CDkBA,4BACE,sCCfF,CDsBA,uBACE,gCCnBF,CDsBA,wBACE,4BCnBF,CDsBA,qBACE,8BCnBF,CDsBA,yBACE,6BCnBF,CDsBA,0BACE,8BCnBF,CCnDI,sCACE,sBClBN,ClBsHI,yBiB7GA,gBACE,sBCLJ,CACF,ClByJI,4BiB9IA,kBACE,sBCRJ,CACF,ClB2GI,yBiB7GA,gBACE,sBCKJ,CACF,ClB+II,4BiB9IA,kBACE,sBCEJ,CACF,ClBiGI,yBiB7GA,gBACE,sBCeJ,CACF,ClBqII,4BiB9IA,kBACE,sBCYJ,CACF,ClBuFI,0BiB7GA,gBACE,sBCyBJ,CACF,ClB2HI,6BiB9IA,kBACE,sBCsBJ,CACF,CC/CA,MAEE,8BAA+B,CAE/B,2BAA4B,CAC7B,iCAAkC,CAClC,iCAAqC,CACrC,4CAA6C,CAC7C,iCAAkC,CAClC,gCAAiC,CAEjC,6BAA8B,CAC9B,iCAAkC,CAClC,mCAAuC,CACvC,8CAA+C,CAC/C,mCAAoC,CACpC,kCAAmC,CAEnC,yBAA6B,CAC7B,kCAAmC,CACnC,kCAAsC,CACtC,uCAAwC,CACxC,kCAAmC,CACnC,iCACD,CAEA,oCAsDE,wBACE,8BAA+B,CAE/B,2BAA4B,CAC5B,iCAAkC,CAClC,iCAAqC,CACrC,4CAA6C,CAC7C,iCAAkC,CAClC,gCAAiC,CAEjC,6BAA8B,CAC9B,iCAAkC,CAClC,mCAAuC,CACvC,8CAA+C,CAC/C,mCAAoC,CACpC,kCAAmC,CAEnC,yBAA6B,CAC7B,kCAAmC,CACnC,kCAAsC,CACtC,uCAAwC,CACxC,kCAAmC,CACnC,iCACF,CACF,CCvGA,eACI,UAAc,CACd,cACJ,CAEA,WACI,gBACJ,CAIA,WACI,YACJ","sources":["../node_modules/@ionic/react/src/css/core.scss","../node_modules/@ionic/react/css/core.css","../node_modules/@ionic/react/src/themes/ionic.mixins.scss","../node_modules/@ionic/react/src/css/normalize.scss","../node_modules/@ionic/react/css/normalize.css","../node_modules/@ionic/react/src/css/structure.scss","../node_modules/@ionic/react/css/structure.css","../node_modules/@ionic/react/src/css/typography.scss","../node_modules/@ionic/react/css/typography.css","../node_modules/@ionic/react/src/css/padding.scss","../node_modules/@ionic/react/css/padding.css","../node_modules/@ionic/react/src/css/float-elements.scss","../node_modules/@ionic/react/css/float-elements.css","../node_modules/@ionic/react/src/css/text-alignment.scss","../node_modules/@ionic/react/css/text-alignment.css","../node_modules/@ionic/react/src/css/text-transformation.scss","../node_modules/@ionic/react/css/text-transformation.css","../node_modules/@ionic/react/src/css/flex-utils.scss","../node_modules/@ionic/react/css/flex-utils.css","../node_modules/@ionic/react/src/css/display.scss","../node_modules/@ionic/react/css/display.css","theme/variables.css","pages/styles/styles.css"],"sourcesContent":["@import \"../themes/ionic.skip-warns.scss\";\n@import \"../themes/ionic.globals\";\n@import \"../components/menu/menu.ios.vars\";\n@import \"../components/menu/menu.md.vars\";\n\n// Ionic Font Family\n// --------------------------------------------------\n\nhtml.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n// Modal - Card Style\n// --------------------------------------------------\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n */\nion-modal.modal-default:not(.overlay-hidden) ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n// Ionic Colors\n// --------------------------------------------------\n// Generates the color classes and variables based on the\n// colors map\n\n@mixin generate-color($color-name) {\n $value: map-get($colors, $color-name);\n\n $base: map-get($value, base);\n $contrast: map-get($value, contrast);\n $shade: map-get($value, shade);\n $tint: map-get($value, tint);\n\n --ion-color-base: var(--ion-color-#{$color-name}, #{$base}) !important;\n --ion-color-base-rgb: var(--ion-color-#{$color-name}-rgb, #{color-to-rgb-list($base)}) !important;\n --ion-color-contrast: var(--ion-color-#{$color-name}-contrast, #{$contrast}) !important;\n --ion-color-contrast-rgb: var(--ion-color-#{$color-name}-contrast-rgb, #{color-to-rgb-list($contrast)}) !important;\n --ion-color-shade: var(--ion-color-#{$color-name}-shade, #{$shade}) !important;\n --ion-color-tint: var(--ion-color-#{$color-name}-tint, #{$tint}) !important;\n}\n\n@each $color-name, $value in $colors {\n .ion-color-#{$color-name} {\n @include generate-color($color-name);\n }\n}\n\n\n// Page Container Structure\n// --------------------------------------------------\n\n.ion-page {\n @include position(0, 0, 0, 0);\n\n display: flex;\n position: absolute;\n\n flex-direction: column;\n justify-content: space-between;\n\n contain: layout size style;\n overflow: hidden;\n z-index: $z-index-page-container;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal .ion-page:not(ion-nav .ion-page) {\n position: relative;\n\n contain: layout style;\n\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden,\n[hidden] {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\n\n// Ionic Safe Margins\n// --------------------------------------------------\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n\n// TODO: remove once Safari 11.2 is no longer supported\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\n\n\n// Global Card Styles\n// --------------------------------------------------\n\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n\n// Menu Styles\n// --------------------------------------------------\n\n.menu-content {\n @include transform(translate3d(0, 0, 0));\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n\n // the containing element itself should be clickable but\n // everything inside of it should not clickable when menu is open\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal;\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: $menu-ios-box-shadow-reveal-rtl;\n}\n\n.ios .menu-content-push {\n box-shadow: $menu-ios-box-shadow-push;\n}\n\n.md .menu-content-reveal {\n box-shadow: $menu-md-box-shadow;\n}\n\n.md .menu-content-push {\n box-shadow: $menu-md-box-shadow;\n}\n\n// Accordion Styles\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=\"header\"] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=\"header\"] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=\"header\"] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=\"header\"] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=\"header\"] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\n// Safari/iOS 15 changes the appearance of input[type=\"date\"].\n// For backwards compatibility from Ionic 5/Safari 14 designs,\n// we override the appearance only when using within an ion-input.\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\n}\n","html.ios {\n --ion-default-font: -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Roboto\", sans-serif;\n}\n\nhtml.md {\n --ion-default-font: \"Roboto\", \"Helvetica Neue\", sans-serif;\n}\n\nhtml {\n --ion-font-family: var(--ion-default-font);\n}\n\nbody {\n background: var(--ion-background-color);\n}\n\nbody.backdrop-no-scroll {\n overflow: hidden;\n}\n\n/**\n * Card style modal needs additional padding on the\n * top of the header. We accomplish this by targeting\n * the first toolbar in the header.\n * Footer also needs this. We do not adjust the bottom\n * padding though because of the safe area.\n */\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,\nhtml.ios ion-modal ion-footer ion-toolbar:first-of-type {\n padding-top: 6px;\n}\n\n/**\n* Card style modal needs additional padding on the\n* bottom of the header. We accomplish this by targeting\n* the last toolbar in the header.\n*/\nhtml.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,\nhtml.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type {\n padding-bottom: 6px;\n}\n\n/**\n* Add padding on the left and right\n* of toolbars while accounting for\n* safe area values when in landscape.\n*/\nhtml.ios ion-modal ion-toolbar {\n padding-right: calc(var(--ion-safe-area-right) + 8px);\n padding-left: calc(var(--ion-safe-area-left) + 8px);\n}\n\n/**\n * Card style modal on iPadOS\n * should only have backdrop on first instance.\n */\n@media screen and (min-width: 768px) {\n html.ios ion-modal.modal-card:first-of-type {\n --backdrop-opacity: 0.18;\n }\n}\n/**\n * Subsequent modals should not have a backdrop/box shadow\n * as it will cause the screen to appear to get progressively\n * darker. With Ionic 6, declarative modals made it\n * possible to have multiple non-presented modals in the DOM,\n * so we could no longer rely on ion-modal:first-of-type.\n * Here we disable the opacity/box-shadow for every modal\n * that comes after the first presented modal.\n *\n * Note: ion-modal:not(.overlay-hidden):first-of-type\n * does not match the first modal to not have\n * the .overlay-hidden class, it will match the\n * first modal in general only if it does not\n * have the .overlay-hidden class.\n * The :nth-child() pseudo-class has support\n * for selectors which would help us here. At the\n * time of writing it does not have great cross browser\n * support.\n *\n * Note 2: This should only apply to non-card and\n * non-sheet modals. Card and sheet modals have their\n * own criteria for displaying backdrops/box shadows.\n */\nion-modal.modal-default:not(.overlay-hidden) ~ ion-modal.modal-default {\n --backdrop-opacity: 0;\n --box-shadow: none;\n}\n\n/**\n * This works around a bug in WebKit where the\n * content will overflow outside of the bottom border\n * radius when re-painting. As long as a single\n * border radius value is set on .ion-page, this\n * issue does not happen. We set the top left radius\n * here because the top left corner will always have a\n * radius no matter the platform.\n * This behavior only applies to card modals.\n */\nhtml.ios ion-modal.modal-card .ion-page {\n border-top-left-radius: var(--border-radius);\n}\n\n.ion-color-primary {\n --ion-color-base: var(--ion-color-primary, #3880ff) !important;\n --ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;\n --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;\n --ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important;\n}\n\n.ion-color-secondary {\n --ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;\n --ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;\n --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;\n --ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important;\n}\n\n.ion-color-tertiary {\n --ion-color-base: var(--ion-color-tertiary, #5260ff) !important;\n --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;\n --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;\n --ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important;\n}\n\n.ion-color-success {\n --ion-color-base: var(--ion-color-success, #2dd36f) !important;\n --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;\n --ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;\n --ion-color-tint: var(--ion-color-success-tint, #42d77d) !important;\n}\n\n.ion-color-warning {\n --ion-color-base: var(--ion-color-warning, #ffc409) !important;\n --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;\n --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;\n --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;\n}\n\n.ion-color-danger {\n --ion-color-base: var(--ion-color-danger, #eb445a) !important;\n --ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;\n --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;\n --ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important;\n}\n\n.ion-color-light {\n --ion-color-base: var(--ion-color-light, #f4f5f8) !important;\n --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;\n --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;\n --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;\n --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;\n --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;\n}\n\n.ion-color-medium {\n --ion-color-base: var(--ion-color-medium, #92949c) !important;\n --ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;\n --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-medium-shade, #808289) !important;\n --ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important;\n}\n\n.ion-color-dark {\n --ion-color-base: var(--ion-color-dark, #222428) !important;\n --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;\n --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;\n --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;\n --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;\n --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;\n}\n\n.ion-page {\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n position: absolute;\n flex-direction: column;\n justify-content: space-between;\n contain: layout size style;\n overflow: hidden;\n z-index: 0;\n}\n\n/**\n * When making custom dialogs, using\n * ion-content is not required. As a result,\n * some developers may wish to have dialogs\n * that are automatically sized by the browser.\n * These changes allow certain dimension values\n * such as fit-content to work correctly.\n */\nion-modal .ion-page:not(ion-nav .ion-page) {\n position: relative;\n contain: layout style;\n height: 100%;\n}\n\n.split-pane-visible > .ion-page.split-pane-main {\n position: relative;\n}\n\nion-route,\nion-route-redirect,\nion-router,\nion-select-option,\nion-nav-controller,\nion-menu-controller,\nion-action-sheet-controller,\nion-alert-controller,\nion-loading-controller,\nion-modal-controller,\nion-picker-controller,\nion-popover-controller,\nion-toast-controller,\n.ion-page-hidden,\n[hidden] {\n /* stylelint-disable-next-line declaration-no-important */\n display: none !important;\n}\n\n.ion-page-invisible {\n opacity: 0;\n}\n\n.can-go-back > ion-header ion-back-button {\n display: block;\n}\n\nhtml.plt-ios.plt-hybrid, html.plt-ios.plt-pwa {\n --ion-statusbar-padding: 20px;\n}\n\n@supports (padding-top: 20px) {\n html {\n --ion-safe-area-top: var(--ion-statusbar-padding);\n }\n}\n@supports (padding-top: constant(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: constant(safe-area-inset-top);\n --ion-safe-area-bottom: constant(safe-area-inset-bottom);\n --ion-safe-area-left: constant(safe-area-inset-left);\n --ion-safe-area-right: constant(safe-area-inset-right);\n }\n}\n@supports (padding-top: env(safe-area-inset-top)) {\n html {\n --ion-safe-area-top: env(safe-area-inset-top);\n --ion-safe-area-bottom: env(safe-area-inset-bottom);\n --ion-safe-area-left: env(safe-area-inset-left);\n --ion-safe-area-right: env(safe-area-inset-right);\n }\n}\nion-card.ion-color .ion-inherit-color,\nion-card-header.ion-color .ion-inherit-color {\n color: inherit;\n}\n\n.menu-content {\n transform: translate3d(0, 0, 0);\n}\n\n.menu-content-open {\n cursor: pointer;\n touch-action: manipulation;\n pointer-events: none;\n}\n\n.ios .menu-content-reveal {\n box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);\n}\n\n[dir=rtl].ios .menu-content-reveal {\n box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);\n}\n\n.md .menu-content-reveal {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n\n.md .menu-content-push {\n box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);\n}\n\nion-accordion-group.accordion-group-expand-inset > ion-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n\nion-accordion-group.accordion-group-expand-inset > ion-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n}\n\nion-accordion-group > ion-accordion:last-of-type ion-item[slot=header] {\n --border-width: 0px;\n}\n\nion-accordion.accordion-animated > [slot=header] .ion-accordion-toggle-icon {\n transition: 300ms transform cubic-bezier(0.25, 0.8, 0.5, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n ion-accordion .ion-accordion-toggle-icon {\n /* stylelint-disable declaration-no-important */\n transition: none !important;\n }\n}\n/**\n * The > [slot=\"header\"] selector ensures that we do\n * not modify toggle icons for any nested accordions. The state\n * of one accordion should not affect any accordions inside\n * of a nested accordion group.\n */\nion-accordion.accordion-expanding > [slot=header] .ion-accordion-toggle-icon,\nion-accordion.accordion-expanded > [slot=header] .ion-accordion-toggle-icon {\n transform: rotate(180deg);\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=header] {\n --border-width: 0px;\n --inner-border-width: 0px;\n}\n\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,\nion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {\n margin-top: 0;\n}\n\nion-input input::-webkit-date-and-time-value {\n text-align: start;\n}\n\n/**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime\n * when used with ion-datetime-button.\n */\n.ion-datetime-button-overlay {\n --width: fit-content;\n --height: fit-content;\n}\n\n/**\n * The grid variant can scale down when inline.\n * When used in a `fit-content` overlay, this causes\n * the overlay to shrink when the month/year picker is open.\n * Explicitly setting the dimensions lets us have a consistently\n * sized grid interface.\n */\n.ion-datetime-button-overlay ion-datetime.datetime-grid {\n width: 320px;\n min-height: 320px;\n}\n\n","@import \"./ionic.deprecation\";\n\n@mixin input-cover() {\n @include position(0, null, null, 0);\n @include margin(0);\n\n position: absolute;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background: transparent;\n cursor: pointer;\n\n appearance: none;\n outline: none;\n\n &::-moz-focus-inner {\n border: 0;\n }\n}\n\n@mixin visually-hidden() {\n position: absolute;\n\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: 100%;\n\n margin: 0;\n padding: 0;\n\n border: 0;\n outline: 0;\n clip: rect(0 0 0 0);\n\n opacity: 0;\n overflow: hidden;\n\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n@mixin text-inherit() {\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n}\n\n@mixin button-state() {\n @include position(0, 0, 0, 0);\n\n position: absolute;\n\n content: \"\";\n\n opacity: 0;\n}\n\n// Font smoothing\n// --------------------------------------------------\n\n@mixin font-smoothing() {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n}\n\n// Get the key from a map based on the index\n@function index-to-key($map, $index) {\n $keys: map-keys($map);\n\n @return nth($keys, $index);\n}\n\n\n// Breakpoint Mixins\n// ---------------------------------------------------------------------------------\n\n// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$screen-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// ---------------------------------------------------------------------------------\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $screen-breakpoints) {\n $min: map-get($breakpoints, $name);\n\n @return if($name != index-to-key($breakpoints, 1), $min, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $screen-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $screen-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $screen-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Maximum breakpoint width. Null for the smallest (first) breakpoint.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n//\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\t// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\t// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $screen-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $screen-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n\n// Text Direction - ltr / rtl\n//\n// CSS defaults to use the ltr css, and adds [dir=rtl] selectors\n// to override ltr defaults.\n// ----------------------------------------------------------\n\n@mixin multi-dir() {\n @content;\n\n // $root: #{&};\n // @at-root [dir] {\n // #{$root} {\n // @content;\n // }\n // }\n}\n\n@mixin rtl() {\n $root: #{&};\n\n @at-root #{add-root-selector($root, \"[dir=rtl]\")} {\n @content;\n }\n}\n\n@mixin ltr() {\n @content;\n}\n\n\n// SVG Background Image Mixin\n// @param {string} $svg\n// ----------------------------------------------------------\n@mixin svg-background-image($svg, $flip-rtl: false) {\n $url: url-encode($svg);\n $viewBox: str-split(str-extract($svg, \"viewBox='\", \"'\"), \" \");\n\n @if $flip-rtl != true or $viewBox == null {\n @include multi-dir() {\n background-image: url(\"data:image/svg+xml;charset=utf-8,#{$url}\");\n }\n } @else {\n $transform: \"transform='translate(#{nth($viewBox, 3)}, 0) scale(-1, 1)'\";\n $flipped-url: $svg;\n $flipped-url: str-replace($flipped-url, \"