: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}}

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}

*{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}

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}

.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)}

.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}}}

.ion-text-center{text-align:center !important}.ion-text-justify{text-align:justify !important}.ion-text-start{text-align:start !important}.ion-text-end{text-align:end !important}.ion-text-left{text-align:left !important}.ion-text-right{text-align:right !important}.ion-text-nowrap{white-space:nowrap !important}.ion-text-wrap{white-space:normal !important}@media(min-width: 576px){.ion-text-sm-center{text-align:center !important}.ion-text-sm-justify{text-align:justify !important}.ion-text-sm-start{text-align:start !important}.ion-text-sm-end{text-align:end !important}.ion-text-sm-left{text-align:left !important}.ion-text-sm-right{text-align:right !important}.ion-text-sm-nowrap{white-space:nowrap !important}.ion-text-sm-wrap{white-space:normal !important}}@media(min-width: 768px){.ion-text-md-center{text-align:center !important}.ion-text-md-justify{text-align:justify !important}.ion-text-md-start{text-align:start !important}.ion-text-md-end{text-align:end !important}.ion-text-md-left{text-align:left !important}.ion-text-md-right{text-align:right !important}.ion-text-md-nowrap{white-space:nowrap !important}.ion-text-md-wrap{white-space:normal !important}}@media(min-width: 992px){.ion-text-lg-center{text-align:center !important}.ion-text-lg-justify{text-align:justify !important}.ion-text-lg-start{text-align:start !important}.ion-text-lg-end{text-align:end !important}.ion-text-lg-left{text-align:left !important}.ion-text-lg-right{text-align:right !important}.ion-text-lg-nowrap{white-space:nowrap !important}.ion-text-lg-wrap{white-space:normal !important}}@media(min-width: 1200px){.ion-text-xl-center{text-align:center !important}.ion-text-xl-justify{text-align:justify !important}.ion-text-xl-start{text-align:start !important}.ion-text-xl-end{text-align:end !important}.ion-text-xl-left{text-align:left !important}.ion-text-xl-right{text-align:right !important}.ion-text-xl-nowrap{white-space:nowrap !important}.ion-text-xl-wrap{white-space:normal !important}}

.ion-text-uppercase{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}}

.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}}

/* Google Sans – primary font for body and numeric (replaces Futurism + AppNumeric) */
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-MediumItalic.ttf') format('truetype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-SemiBoldItalic.ttf') format('truetype');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Google Sans';
  src: url('/assets/fonts/GoogleSans-BoldItalic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

:root{--ios26-floating-safe-area-top: max(10px, var(--ion-safe-area-top, 0px));--ios26-floating-safe-area-bottom: max(10px, calc(var(--ion-safe-area-bottom, 0px) - 12px));--ios26-activated-transition-duration: 140ms;--ios26-glass-background-rgb: 255, 255, 255;--ios26-glass-box-shadow-color-rgb: 220, 220, 220;--ios26-glass-border-color-rgb: 255, 255, 255;--ios26-button-color-selected-rgb: 16, 16, 16;--ios26-menu-width: 360px;--ios26-content-box-shadow-rgb: var(--ion-color-base-rgb, var(--ion-background-color-rgb, 255, 255, 255));--ion-color-primary-brightness: rgb(var(--ion-color-primary-brightness-rgb));--ion-color-secondary-brightness: rgb(var(--ion-color-secondary-brightness-rgb));--ion-color-tertiary-brightness: rgb(var(--ion-color-tertiary-brightness-rgb));--ion-color-success-brightness: rgb(var(--ion-color-success-brightness-rgb));--ion-color-warning-brightness: rgb(var(--ion-color-warning-brightness-rgb));--ion-color-danger-brightness: rgb(var(--ion-color-danger-brightness-rgb));--ion-color-light-brightness: rgb(var(--ion-color-light-brightness-rgb));--ion-color-medium-brightness: rgb(var(--ion-color-medium-brightness-rgb));--ion-color-dark-brightness: rgb(var(--ion-color-dark-brightness-rgb))}

ion-header.ios:not(.ios26-disabled).header-translucent .header-background,ion-header.ios:not(.ios26-disabled).header-translucent .footer-background,ion-footer.ios:not(.ios26-disabled).footer-translucent .header-background,ion-footer.ios:not(.ios26-disabled).footer-translucent .footer-background{-webkit-backdrop-filter:none;backdrop-filter:none}ion-header.ios:not(.ios26-disabled).header-translucent ion-toolbar,ion-footer.ios:not(.ios26-disabled).footer-translucent ion-toolbar{--border-width: 0;--background: transparent;--opacity: 1}ion-header.ios:not(.ios26-disabled).header-translucent ion-toolbar::part(background),ion-footer.ios:not(.ios26-disabled).footer-translucent ion-toolbar::part(background){--opacity: 0}ion-header.ios:not(.ios26-disabled).header-translucent ion-toolbar ion-title,ion-footer.ios:not(.ios26-disabled).footer-translucent ion-toolbar ion-title{filter:blur(0);transform:translateY(0)}ion-header.ios:not(.ios26-disabled).header-collapse-main ion-toolbar.in-toolbar ion-title{transition:all .5s ease-in-out}ion-header.ios:not(.ios26-disabled).header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,ion-header.ios:not(.ios26-disabled).header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{filter:blur(2px);transform:translateY(8px)}ion-header.ios:not(.ios26-disabled):not(.header-transitioning).header-translucent::before,ion-header.ios:not(.ios26-disabled):not(.header-transitioning).header-translucent::after,ion-content.ios:not(.ios26-disabled)::part(background)::before,ion-content.ios:not(.ios26-disabled)::part(background)::after{content:"";position:absolute;width:100%;pointer-events:none;z-index:1}ion-header.ios:not(.ios26-disabled).header-translucent::before{z-index:2;top:0;height:var(--ion-safe-area-top)}ion-header.ios:not(.ios26-disabled).header-translucent::after{z-index:2;top:0;height:100%;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);mask-image:linear-gradient(rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);-webkit-mask-composite:source-in, xor;mask-composite:intersect}.ion-page:has(>ion-header.header-translucent)>ion-content::part(background)::before{z-index:2;top:0;height:var(--offset-top, 0px);background:linear-gradient(in oklab, rgba(var(--ios26-content-box-shadow-rgb), 0.5) 20%, rgba(var(--ios26-content-box-shadow-rgb), 0) 100%);box-shadow:inset 0 var(--offset-top, 0px) 16px -32px rgba(var(--ios26-content-box-shadow-rgb), 0.6)}ion-content::part(background)::after{z-index:2;bottom:0;height:calc(60px + var(--ios26-floating-safe-area-bottom));background:linear-gradient(in oklab, rgba(var(--ios26-content-box-shadow-rgb), 0) 0%, rgba(var(--ios26-content-box-shadow-rgb), 0.8) 50%, rgba(var(--ios26-content-box-shadow-rgb), 0.8) 100%)}.ion-page:has(>ion-footer:not(.footer-translucent)) ion-content::part(background)::after{content:none}ion-action-sheet.ios:not(.ios26-disabled){--backdrop-opacity: 0.2;--color: var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-wrapper{padding-bottom:0;bottom:var(--ios26-floating-safe-area-bottom)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container{background:rgba(var(--ios26-glass-background-rgb), 0.6667);-webkit-backdrop-filter:blur(8px) saturate(360%);backdrop-filter:blur(8px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform 200ms ease}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container:has(.ion-activated){transform:scale(1.016);background:rgba(var(--ios26-glass-background-rgb), 0.6667);-webkit-backdrop-filter:blur(8px) saturate(360%);backdrop-filter:blur(8px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container{margin:0 12px;border-radius:32px}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-title,ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-has-sub-title{background:none}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-title{padding-top:8px}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group{background:rgba(0,0,0,0)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button{--button-background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.065)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button.ion-activated{--button-background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.022)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button::after{content:none}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button:not(.action-sheet-destructive):not(.action-sheet-selected){--button-color: var(--ion-text-color, #000);--button-color-hover: var(--ion-text-color, #000);--button-color-activated: var(--ion-text-color, #000)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button.action-sheet-destructive{--button-color: var(--ion-color-danger, #c5000f);--button-color-hover: var(--ion-color-danger, #c5000f)}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button{font-weight:550}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button.action-sheet-cancel{margin-top:auto;font-weight:550}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button{border-radius:32px;padding:0 14px;min-height:52px}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button span.action-sheet-button-inner{font-size:1rem}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button span.action-sheet-button-inner ion-icon{font-size:1.2rem}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container .action-sheet-group button:not(:last-child){margin-bottom:8px}ion-action-sheet.ios:not(.ios26-disabled) .action-sheet-container button.action-sheet-cancel{margin-top:12px}ion-action-sheet.ios.select-action-sheet:not(.ios26-disabled) .action-sheet-container .action-sheet-group button.action-sheet-cancel{display:none}ion-alert.ios:not(.ios26-disabled){--min-width: 280px;--backdrop-opacity: 0.2;--max-width: 322px;transition:transform 200ms ease}ion-alert.ios:not(.ios26-disabled):has(.ion-activated){transform:scale(1.016)}ion-alert.ios:not(.ios26-disabled) .alert-wrapper{background:rgba(var(--ios26-glass-background-rgb), 0.6667);-webkit-backdrop-filter:blur(8px) saturate(360%);backdrop-filter:blur(8px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-alert.ios:not(.ios26-disabled) .alert-wrapper:has(.ion-activated){background:rgba(var(--ios26-glass-background-rgb), 0.6667);-webkit-backdrop-filter:blur(8px) saturate(360%);backdrop-filter:blur(8px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-alert.ios:not(.ios26-disabled) .alert-wrapper{border-radius:32px}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-head,ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-message{text-align:left;margin-left:14px;margin-right:14px}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-message{font-size:.98rem;line-height:1.2rem;color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-radio-group{padding:0;margin-bottom:12px}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-radio-group button{padding:0 8px}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group{padding:0 8px 12px;gap:8px 0}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group .alert-button{transition:background .2s ease;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.065)}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group .alert-button.ion-activated{background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.022)}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group .alert-button{border:none;border-radius:32px;margin:0 6px;min-width:calc(50% - 12px);height:48px}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group .alert-button:not(.alert-button-role-destructive){color:var(--ion-text-color, #000)}ion-alert.ios:not(.ios26-disabled) .alert-wrapper .alert-button-group .alert-button{font-weight:550}ion-alert.ios:not(.ios26-disabled) .alert-wrapper button.action-sheet-cancel{margin-top:12px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:25px;overflow:hidden}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):not(:has(.ion-activated)):hover{opacity:.72}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)){transition:transform var(--ios26-activated-transition-duration) ease-out !important;z-index:0}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated){z-index:5;box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 8px -4px rgba(var(--ios26-glass-box-shadow-color-rgb), 0.92);transform:scale(1.32) translateZ(0);-webkit-transform:scale(1.32) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(:not(.button-has-icon-only):not(.back-button-has-icon-only)),ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(ion-button:nth-child(n+2)){transform:scale(1.25) translateZ(0);-webkit-transform:scale(1.25) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-small){transform:scale(1.18) translateZ(0);-webkit-transform:scale(1.18) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-small):has(:not(.button-has-icon-only):not(.back-button-has-icon-only)),ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-small):has(ion-button:nth-child(n+2)){transform:scale(1.12) translateZ(0);-webkit-transform:scale(1.12) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-large){transform:scale(1.22) translateZ(0);-webkit-transform:scale(1.22) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-large):has(:not(.button-has-icon-only):not(.back-button-has-icon-only)),ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(.ion-activated):has(.button-large):has(ion-button:nth-child(n+2)){transform:scale(1.12) translateZ(0);-webkit-transform:scale(1.12) translateZ(0)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)):has(ion-button:not(.ios26-disabled).button-clear.button-large){border-radius:30px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear{transform:none;font-weight:500}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.button-small{min-height:22px;--padding-top: 1px;--padding-bottom: 1px;--padding-start: 0.5em;--padding-end: 0.5em}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.button-default::part(native){min-height:42px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.button-default{--padding-top: 16px;--padding-bottom: 16px;--padding-start: 1em;--padding-end: 1em}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.button-large{min-height:60px;--padding-top: 17px;--padding-start: 1em;--padding-end: 1em;--padding-bottom: 17px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear{color:rgb(var(--ion-text-color-rgb, 0, 0, 0))}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.ion-color{color:rgb(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)))}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.ion-activated{color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.ion-activated.ion-color{color:rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.1)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear:not(.button-disabled){opacity:1}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.ion-activated{--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear.ion-activated.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.1)}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled).button-clear::part(native){box-shadow:none !important;border:none !important;background:rgba(0,0,0,0) !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-button:not(.ios26-disabled){margin:0}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button:not(.button-clear),ion-menu-button.menu-button-hidden)) ion-menu-button:not(.ios26-disabled){width:44px;height:44px;padding:2px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button.button-clear)) ion-button{margin:0 6px}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button.button-clear)) ion-button:first-child{margin-left:0}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button.button-clear)) ion-button:last-child{margin-right:0}ion-buttons.ios:not(.ios26-disabled):not(:has(ion-back-button,ion-button.button-clear)) ion-button:only-child{margin:0}ion-button.ios:not(.ios26-disabled){max-height:inherit;z-index:0}ion-button.ios:not(.ios26-disabled).ion-activated{z-index:10}ion-button.ios:not(.ios26-disabled){transition:transform var(--ios26-activated-transition-duration) ease-out,color 50ms ease}ion-button.ios:not(.ios26-disabled).in-toolbar:not(.ion-color):not(.in-toolbar-color)::part(native){color:inherit}ion-button.ios:not(.ios26-disabled):not(.ios26-disabled):hover,ion-button.ios:not(.ios26-disabled):not(.ios26-disabled):active,ion-button.ios:not(.ios26-disabled):not(.ios26-disabled).ion-activated{will-change:transform}ion-button.ios:not(.ios26-disabled):not(.ios26-disabled):not(:hover):not(:active):not(.ion-activated){will-change:auto}ion-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large){font-size:1.05rem}ion-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only)::part(native){padding:0 12px;min-height:44px}ion-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only) ion-icon[slot=start]{margin-inline-start:-0.15em;margin-inline-end:.15em}ion-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only) ion-icon[slot=end]{margin-inline-start:.15em;margin-inline-end:-0.15em}ion-button.ios:not(.ios26-disabled):not(.button-round){--border-radius: 24px}ion-button.ios:not(.ios26-disabled):not(.button-round).button-large{--border-radius: 30px}ion-button.ios:not(.ios26-disabled).button-solid[type=submit],ion-button.ios:not(.ios26-disabled).button-solid.button-submit{--color: var(--ion-color-primary-brightness, var(--ion-color-contrast));--color-activated: var(--ion-color-primary-brightness);--border-color: var(--ion-color-primary-brightness, transparent);--background-activated: var(--ion-color-primary-shade, #004acd);--background-focused: var(--ion-color-primary-shade, #004acd);--background-hover: var(--ion-color-primary-tint, #1a65eb);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-primary,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-primary{--color: var(--ion-color-primary-brightness, var(--ion-color-primary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-primary-brightness);--border-color: var(--ion-color-primary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-secondary,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-secondary{--color: var(--ion-color-secondary-brightness, var(--ion-color-secondary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-secondary-brightness);--border-color: var(--ion-color-secondary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-tertiary,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-tertiary{--color: var(--ion-color-tertiary-brightness, var(--ion-color-tertiary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-tertiary-brightness);--border-color: var(--ion-color-tertiary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-success,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-success{--color: var(--ion-color-success-brightness, var(--ion-color-success-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-success-brightness);--border-color: var(--ion-color-success-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-warning,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-warning{--color: var(--ion-color-warning-brightness, var(--ion-color-warning-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-warning-brightness);--border-color: var(--ion-color-warning-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-danger,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-danger{--color: var(--ion-color-danger-brightness, var(--ion-color-danger-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-danger-brightness);--border-color: var(--ion-color-danger-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-light,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-light{--color: var(--ion-color-light-brightness, var(--ion-color-light-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-light-brightness);--border-color: var(--ion-color-light-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-medium,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-medium{--color: var(--ion-color-medium-brightness, var(--ion-color-medium-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-medium-brightness);--border-color: var(--ion-color-medium-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-dark,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-dark{--color: var(--ion-color-dark-brightness, var(--ion-color-dark-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-dark-brightness);--border-color: var(--ion-color-dark-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-button.ios:not(.ios26-disabled).button-solid[type=submit],ion-button.ios:not(.ios26-disabled).button-solid.button-submit{--background-color: #fff;--background-activated-opacity: 1}ion-button.ios:not(.ios26-disabled).button-solid[type=submit]:not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large),ion-button.ios:not(.ios26-disabled).button-solid.button-submit:not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large){min-height:44px}ion-button.ios:not(.ios26-disabled).button-solid[type=submit]::part(native),ion-button.ios:not(.ios26-disabled).button-solid.button-submit::part(native){position:relative;color:var(--color);z-index:0}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated{--border-width: 0.78px}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated::part(native),ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated::part(native){box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 8px -4px rgba(var(--ios26-glass-box-shadow-color-rgb), 0.92);color:var(--color-activated)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated::part(native)::before,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated::part(native)::before{content:"";z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;border-radius:inherit;pointer-events:none;-webkit-backdrop-filter:brightness(144%);backdrop-filter:brightness(144%)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only,ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only{transform:scale(1.32)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only.button-small,ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only.button-small,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only.button-small,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only.button-small{transform:scale(1.18)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only.button-large,ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only.button-large,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only.button-large,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only.button-large{transform:scale(1.22)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only),ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only){transform:scale(1.25)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small{transform:scale(1.12)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large{transform:scale(1.12)}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].button-disabled,ion-button.ios:not(.ios26-disabled).button-solid.button-submit.button-disabled{opacity:1}ion-button.ios:not(.ios26-disabled).button-solid[type=submit].button-disabled::part(native),ion-button.ios:not(.ios26-disabled).button-solid.button-submit.button-disabled::part(native){background:var(--ion-background-color-step-200, #cccccc);color:#fff;border:none}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear){--background-hover: transparent;--background-activated: transparent}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large){min-height:44px}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear)::part(native){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;color:var(--color)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.button-disabled){opacity:1}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.ion-activated):hover{opacity:.72}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear){--color: rgb(var(--ion-text-color-rgb, 0, 0, 0))}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 1)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated{--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.1)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only,ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only{transform:scale(1.32)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only.button-small,ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only.button-small{transform:scale(1.18)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only.button-large,ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only.button-large{transform:scale(1.22)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only){transform:scale(1.25)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small{transform:scale(1.12)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large{transform:scale(1.12)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated::part(native){opacity:1}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).button-disabled{opacity:1;--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5)}ion-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).button-disabled.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.5)}ion-button.ios:not(.ios26-disabled).button-has-icon-only:not(.button-small):not(.button-large)::part(native),ion-button.ios:not(.ios26-disabled).back-button-has-icon-only:not(.button-small):not(.button-large)::part(native){width:44px;height:44px;padding:2px}ion-button.ios:not(.ios26-disabled).button-has-icon-only ion-icon,ion-button.ios:not(.ios26-disabled).back-button-has-icon-only ion-icon{font-size:1.4rem}ion-button.ios:not(.ios26-disabled).button-has-icon-only ion-icon[name=close-outline],ion-button.ios:not(.ios26-disabled).back-button-has-icon-only ion-icon[name=close-outline]{font-size:2rem}ion-back-button.ios:not(.ios26-disabled){max-height:inherit;z-index:0}ion-back-button.ios:not(.ios26-disabled).ion-activated{z-index:10}ion-back-button.ios:not(.ios26-disabled){transition:transform var(--ios26-activated-transition-duration) ease-out,color 50ms ease}ion-back-button.ios:not(.ios26-disabled).in-toolbar:not(.ion-color):not(.in-toolbar-color)::part(native){color:inherit}ion-back-button.ios:not(.ios26-disabled):not(.ios26-disabled):hover,ion-back-button.ios:not(.ios26-disabled):not(.ios26-disabled):active,ion-back-button.ios:not(.ios26-disabled):not(.ios26-disabled).ion-activated{will-change:transform}ion-back-button.ios:not(.ios26-disabled):not(.ios26-disabled):not(:hover):not(:active):not(.ion-activated){will-change:auto}ion-back-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large){font-size:1.05rem}ion-back-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only)::part(native){padding:0 12px;min-height:44px}ion-back-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only) ion-icon[slot=start]{margin-inline-start:-0.15em;margin-inline-end:.15em}ion-back-button.ios:not(.ios26-disabled):not(.button-small):not(.button-large):not(.button-has-icon-only):not(.back-button-has-icon-only) ion-icon[slot=end]{margin-inline-start:.15em;margin-inline-end:-0.15em}ion-back-button.ios:not(.ios26-disabled):not(.button-round){--border-radius: 24px}ion-back-button.ios:not(.ios26-disabled):not(.button-round).button-large{--border-radius: 30px}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit],ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit{--color: var(--ion-color-primary-brightness, var(--ion-color-contrast));--color-activated: var(--ion-color-primary-brightness);--border-color: var(--ion-color-primary-brightness, transparent);--background-activated: var(--ion-color-primary-shade, #004acd);--background-focused: var(--ion-color-primary-shade, #004acd);--background-hover: var(--ion-color-primary-tint, #1a65eb);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-primary,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-primary{--color: var(--ion-color-primary-brightness, var(--ion-color-primary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-primary-brightness);--border-color: var(--ion-color-primary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-secondary,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-secondary{--color: var(--ion-color-secondary-brightness, var(--ion-color-secondary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-secondary-brightness);--border-color: var(--ion-color-secondary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-tertiary,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-tertiary{--color: var(--ion-color-tertiary-brightness, var(--ion-color-tertiary-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-tertiary-brightness);--border-color: var(--ion-color-tertiary-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-success,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-success{--color: var(--ion-color-success-brightness, var(--ion-color-success-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-success-brightness);--border-color: var(--ion-color-success-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-warning,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-warning{--color: var(--ion-color-warning-brightness, var(--ion-color-warning-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-warning-brightness);--border-color: var(--ion-color-warning-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-danger,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-danger{--color: var(--ion-color-danger-brightness, var(--ion-color-danger-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-danger-brightness);--border-color: var(--ion-color-danger-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-light,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-light{--color: var(--ion-color-light-brightness, var(--ion-color-light-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-light-brightness);--border-color: var(--ion-color-light-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-medium,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-medium{--color: var(--ion-color-medium-brightness, var(--ion-color-medium-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-medium-brightness);--border-color: var(--ion-color-medium-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-color-dark,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-color-dark{--color: var(--ion-color-dark-brightness, var(--ion-color-dark-contrast, var(--ion-color-contrast)));--color-activated: var(--ion-color-dark-brightness);--border-color: var(--ion-color-dark-brightness, transparent);--border-width: 0.5px;--border-style: solid}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit],ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit{--background-color: #fff;--background-activated-opacity: 1}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit]:not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large),ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit:not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large){min-height:44px}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit]::part(native),ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit::part(native){position:relative;color:var(--color);z-index:0}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated{--border-width: 0.78px}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated::part(native),ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated::part(native){box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 8px -4px rgba(var(--ios26-glass-box-shadow-color-rgb), 0.92);color:var(--color-activated)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated::part(native)::before,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated::part(native)::before{content:"";z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;border-radius:inherit;pointer-events:none;-webkit-backdrop-filter:brightness(144%);backdrop-filter:brightness(144%)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only,ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only{transform:scale(1.32)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only.button-small,ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only.button-small,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only.button-small,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only.button-small{transform:scale(1.18)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.button-has-icon-only.button-large,ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated.ion-activated.back-button-has-icon-only.button-large,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.button-has-icon-only.button-large,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated.ion-activated.back-button-has-icon-only.button-large{transform:scale(1.22)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only),ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only){transform:scale(1.25)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small{transform:scale(1.12)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large{transform:scale(1.12)}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].button-disabled,ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.button-disabled{opacity:1}ion-back-button.ios:not(.ios26-disabled).button-solid[type=submit].button-disabled::part(native),ion-back-button.ios:not(.ios26-disabled).button-solid.button-submit.button-disabled::part(native){background:var(--ion-background-color-step-200, #cccccc);color:#fff;border:none}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear){--background-hover: transparent;--background-activated: transparent}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.button-has-icon-only):not(.back-button-has-icon-only):not(.button-small):not(.button-large){min-height:44px}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear)::part(native){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;color:var(--color)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.button-disabled){opacity:1}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear):not(.ion-activated):hover{opacity:.72}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear){--color: rgb(var(--ion-text-color-rgb, 0, 0, 0))}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 1)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated{--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.1)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only,ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only{transform:scale(1.32)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only.button-small,ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only.button-small{transform:scale(1.18)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.button-has-icon-only.button-large,ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated.ion-activated.back-button-has-icon-only.button-large{transform:scale(1.22)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only){transform:scale(1.25)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-small{transform:scale(1.12)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated:not(.button-has-icon-only):not(.back-button-has-icon-only).button-large{transform:scale(1.12)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).ion-activated::part(native){opacity:1}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).button-disabled{opacity:1;--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5)}ion-back-button.ios:not(.ios26-disabled):not(.button-solid):not(.button-outline):not(.button-clear).button-disabled.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.5)}ion-back-button.ios:not(.ios26-disabled).button-has-icon-only:not(.button-small):not(.button-large)::part(native),ion-back-button.ios:not(.ios26-disabled).back-button-has-icon-only:not(.button-small):not(.button-large)::part(native){width:44px;height:44px;padding:2px}ion-back-button.ios:not(.ios26-disabled).button-has-icon-only ion-icon,ion-back-button.ios:not(.ios26-disabled).back-button-has-icon-only ion-icon{font-size:1.4rem}ion-back-button.ios:not(.ios26-disabled).button-has-icon-only ion-icon[name=close-outline],ion-back-button.ios:not(.ios26-disabled).back-button-has-icon-only ion-icon[name=close-outline]{font-size:2rem}ion-card.ios:not(.ios26-disabled){border-radius:24px}ion-card.ios:not(.ios26-disabled) ion-list ion-item{--padding-start: 0}.ios:not(.ios26-disabled) .ion-page:has(ion-header.header-translucent) ion-content:has(.ion-content-scroll-host){--padding-top: calc(var(--offset-top) * -1)}.ios:not(.ios26-disabled) .ion-page:has(ion-header.header-translucent) ion-content:has(.ion-content-scroll-host)>*:not(.ion-content-scroll-host){transform:translateY(var(--offset-top))}.ios:not(.ios26-disabled) .ion-page:has(ion-header.header-translucent) ion-content:has(.ion-content-scroll-host) .ion-content-scroll-host{padding-top:var(--offset-top)}.ios:not(.ios26-disabled) .ion-page:not(:has(ion-footer)) ion-content .ion-content-scroll-host{margin-bottom:calc((60px + var(--ios26-floating-safe-area-bottom))*-1);padding-bottom:calc(60px + var(--ios26-floating-safe-area-bottom))}.ios:not(.ios26-disabled) ion-content:not(:has(.ion-content-scroll-host)){--padding-bottom: calc(60px + var(--ios26-floating-safe-area-bottom))}ion-datetime.ios:not(.ios26-disabled){background:rgba(var(--ios26-glass-background-rgb), 0.6667);-webkit-backdrop-filter:blur(8px) saturate(360%);backdrop-filter:blur(8px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:24px;--wheel-highlight-background: transparent;--wheel-highlight-border-radius: 24px}ion-fab.ios:not(.ios26-disabled) ion-fab-button{--transition: var(--ios26-activated-transition-duration) transform cubic-bezier(0.25, 1.11, 0.78, 1.59), var(--ios26-activated-transition-duration) color ease;--background-activated-opacity: 0;--background-focused-opacity: 0;--background-hover-opacity: 0;--color: rgb(var(--ion-text-color-rgb, 0, 0, 0));width:61px;height:61px}ion-fab.ios:not(.ios26-disabled) ion-fab-button.fab-button-in-list,ion-fab.ios:not(.ios26-disabled) ion-fab-button.fab-button-small{width:48px;height:48px}ion-fab.ios:not(.ios26-disabled) ion-fab-button.ion-activated{--color: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}ion-fab.ios:not(.ios26-disabled) ion-fab-button.ion-activated::part(native){transform:scale(1.2) translateZ(0);-webkit-transform:scale(1.2) translateZ(0)}ion-fab.ios:not(.ios26-disabled) ion-fab-button.ion-activated.fab-button-large::part(native){transform:scale(1.12) translateZ(0);-webkit-transform:scale(1.12) translateZ(0)}ion-fab.ios:not(.ios26-disabled) ion-fab-button.ion-activated.fab-button-small::part(native){transform:scale(1.18) translateZ(0);-webkit-transform:scale(1.18) translateZ(0)}ion-fab.ios:not(.ios26-disabled) ion-fab-button.ion-activated.ion-color{--color: rgba(var(--ion-color-base-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.1)}ion-fab.ios:not(.ios26-disabled) ion-fab-button::part(native){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-fab.ios:not(.ios26-disabled).fab-vertical-top{top:var(--ios26-floating-safe-area-top)}ion-fab.ios:not(.ios26-disabled).fab-vertical-bottom{bottom:var(--ios26-floating-safe-area-bottom)}ion-fab.ios:not(.ios26-disabled).fab-horizontal-start{left:calc(16px + var(--ion-safe-area-left, 0px))}ion-fab.ios:not(.ios26-disabled).fab-horizontal-end{right:calc(16px + var(--ion-safe-area-right, 0px))}ion-fab.ios:not(.ios26-disabled):has(.fab-button-small).fab-horizontal-start{left:calc(10px + var(--ion-safe-area-left, 0px))}ion-fab.ios:not(.ios26-disabled):has(.fab-button-small).fab-horizontal-end{right:calc(10px + var(--ion-safe-area-right, 0px))}ion-list.ios:not(.ios26-disabled) ion-item{--background-hover-opacity: 0;--background-focused-opacity: 0}ion-list.list-inset.ios:not(.ios26-disabled){background:rgba(0,0,0,0)}ion-list.list-inset.ios:not(.ios26-disabled) ion-list-header{display:flex;align-items:center}ion-list.list-inset.ios:not(.ios26-disabled) ion-list-header ion-label{font-size:.9rem;margin:8px 4px 4px;color:var(--ion-color-medium-tint)}ion-list.list-inset.ios:not(.ios26-disabled) ion-list-header ion-button{margin-top:8px}ion-list.list-inset.ios:not(.ios26-disabled) ion-list-header ion-note{font-size:.9rem;margin:8px 16px 4px 0}ion-list.list-inset.ios:not(.ios26-disabled) ion-item-group.header-item-group>ion-item>ion-label{width:100%;text-align:center;padding:32px 16px 16px;transform:translateX(5px)}ion-list.list-inset.ios:not(.ios26-disabled) ion-item-group.header-item-group>ion-item>ion-label ion-header.header-collapse-condense>ion-toolbar{--min-height: 0;visibility:hidden}ion-list.list-inset.ios:not(.ios26-disabled) ion-item-group.header-item-group>ion-item>ion-label ion-icon{font-size:2.8rem;color:#fff;border-radius:20%;padding:6px}ion-list.list-inset.ios:not(.ios26-disabled) ion-item-group.header-item-group>ion-item>ion-label h2{font-size:1.2rem;font-weight:bold;margin-top:8px}ion-list.list-inset.ios:not(.ios26-disabled) ion-item-group.header-item-group>ion-item>ion-label ion-text{font-size:.9rem}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)):not(:first-of-type){margin-top:16px}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item ion-text[slot=end]{padding-left:8px}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item.item-disabled{opacity:1}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item.item-disabled>*{opacity:.4}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item.item-disabled::part(detail-icon){opacity:.1}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item ion-button[slot=end].ion-align-self-end{transform:translateY(-7px)}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item ion-button[slot=end] ion-icon[slot=icon-only]{font-size:1.2rem !important;transform:translateY(4px)}ion-list.list-inset.ios:not(.ios26-disabled)>ion-note{color:var(--ion-color-medium-tint);font-size:.9rem;display:block;margin:8px calc(20px + var(--ion-safe-area-right)) 8px calc(20px + var(--ion-safe-area-left))}ion-list.list-inset.ios:not(.ios26-disabled) ion-radio-group,ion-list.list-inset.ios:not(.ios26-disabled) ion-reorder-group{display:block}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)){border-radius:24px;overflow:hidden}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item{--inner-padding-end: 0}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item::part(native){padding-right:calc(var(--ion-safe-area-right, 0px) + 18px)}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item{--min-height: 52px}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item>ion-input[labelplacement=floating]{transition:transform 200ms ease}ion-list.list-inset.ios:not(.ios26-disabled) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group):not(:is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group) :is(ion-item-group,ion-reorder-group,ion-accordion-group,ion-radio-group)) ion-item>ion-input[labelplacement=floating]:not(.label-floating){transform:translateY(-2px)}ion-loading.ios:not(.ios26-disabled){--backdrop-opacity: 0.2}ion-loading.ios:not(.ios26-disabled) .loading-wrapper{background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:24px;padding-inline-start:24px;padding-inline-end:24px}ion-split-pane.ios:not(.ios26-disabled){--side-max-width: var(--ios26-menu-width)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios26-disabled){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-left, 0px)) - 60px - 12px - var(--ios26-menu-width))}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios26-disabled):has(:nth-child(5)){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-left, 0px)) - var(--ios26-menu-width))}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar{--padding-start: calc(var(--ios26-menu-width) + 4px)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-left:calc(90px + var(--ios26-menu-width))}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content{--padding-start: var(--ios26-menu-width)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-footer ion-toolbar{--padding-start: var(--ios26-menu-width)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-tab-bar.ios:not(.ios26-disabled)[slot=bottom]{left:calc(16px + var(--ion-safe-area-left, 0px) + var(--ios26-menu-width))}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar{--padding-end: calc(var(--ios26-menu-width) + 4px)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-right:calc(90px + var(--ios26-menu-width))}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios26-disabled).menu-side-end) .split-pane-main ion-content{--padding-end: var(--ios26-menu-width)}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios26-disabled).menu-side-end) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios26-disabled).menu-side-end) .split-pane-main ion-footer ion-toolbar{--padding-end: var(--ios26-menu-width)}ion-menu.ios:not(.ios26-disabled){--border: none;--background: transparent;--max-width: var(--ios26-menu-width);position:absolute;top:0;z-index:999}ion-menu.ios:not(.ios26-disabled).menu-side-start{left:0}ion-menu.ios:not(.ios26-disabled).menu-side-end{left:calc(100vw - var(--ios26-menu-width))}ion-menu.ios:not(.ios26-disabled)::part(backdrop){display:none}ion-menu.ios:not(.ios26-disabled) ion-content{--background: transparent;--ios26-content-box-shadow-rgb: transparent}ion-menu.ios:not(.ios26-disabled) ion-content::part(scroll){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:calc(var(--ios26-floating-safe-area-top) + 6px) calc(16px + var(--ion-safe-area-right)) var(--ios26-floating-safe-area-bottom) calc(12px + var(--ion-safe-area-left));border-radius:24px}ion-modal.ios:not(.ios26-disabled){--backdrop-opacity: 0.2}ion-modal.ios:not(.ios26-disabled)::part(handle){width:80px}ion-modal.ios:not(.ios26-disabled) ion-toolbar{padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left)}ion-modal.ios:not(.ios26-disabled).modal-sheet ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 4px);padding-left:calc(var(--ion-safe-area-left) + 4px)}ion-modal.ios:not(.ios26-disabled):has(.ion-delegate-host):has(ion-datetime){--border-radius: 24px;--ion-background-color: transparent}ion-modal.ios:not(.ios26-disabled).modal-sheet{--border-radius: 30px}ion-modal.ios:not(.ios26-disabled).modal-sheet::part(content){background:rgba(var(--ios26-glass-background-rgb), 1);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-popover.ios:not(.ios26-disabled){--backdrop-opacity: 0.2}ion-popover.ios:not(.ios26-disabled)::part(arrow){display:none}ion-popover.ios:not(.ios26-disabled)::part(content){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:24px;padding:0}ion-popover.ios:not(.ios26-disabled) ion-select-popover ion-list{background:rgba(0,0,0,0)}ion-popover.ios:not(.ios26-disabled) ion-select-popover ion-list ion-item{--background: transparent}ion-popover.ios:not(.ios26-disabled) ion-select-popover ion-list ion-item:last-of-type{--border-width: 0px;--show-full-highlight: 0;--inner-border-width: 0px;--show-inset-highlight: 0}ion-range.ios:not(.ios26-disabled){--knob-size: 20px;--knob-border-radius: 24px}ion-range.ios:not(.ios26-disabled).range-label-placement-start::part(label){margin-inline:0 24px}ion-range.ios:not(.ios26-disabled).range-label-placement-end::part(label){margin-inline:24px 0}ion-range.ios:not(.ios26-disabled) [slot=start]{margin-inline:0 24px}ion-range.ios:not(.ios26-disabled) [slot=end]{margin-inline:24px 0}ion-range.ios:not(.ios26-disabled)::part(knob){width:38px;margin-inline-start:-8px;transition:transform 300ms ease}ion-range.ios:not(.ios26-disabled).range-pressed::part(knob){transform:scale(1.4, 1.6) translateX(-3.8px) translateZ(0);-webkit-transform:scale(1.4, 1.6) translateX(-3.8px) translateZ(0);background:rgba(var(--ios26-glass-background-rgb), 0.1);-webkit-backdrop-filter:blur(0.5px) saturate(120%);backdrop-filter:blur(0.5px) saturate(120%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:inset 0 8px 8px -8px var(--bar-background),inset 0 -8px 8px -8px var(--bar-background),inset 8px 0 8px -8px var(--bar-background),inset -8px 0 8px -8px var(--bar-background)}ion-modal.ios ion-searchbar:not(.ios26-disabled) .searchbar-input-container input.searchbar-input{-webkit-backdrop-filter:none;backdrop-filter:none}ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic){min-height:60px;padding:0}ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) ion-icon.searchbar-search-icon{inset-inline-start:12px}ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container{margin:0 8px 0 16px;align-self:center;justify-self:center}ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container input.searchbar-input{min-height:44px;background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:20px;padding-inline-start:2.4rem !important}ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container .searchbar-clear-button{padding-inline-end:2rem}ion-toolbar.ios:not(.ios26-disabled):has(ion-searchbar.searchbar-classic.ios:not(.ios26-disabled)){--min-height: auto !important}ion-searchbar.ios:not(.ios26-disabled).searchbar-classic{padding-bottom:12px;min-height:auto}ion-searchbar.ios:not(.ios26-disabled).searchbar-classic input.searchbar-input{border-radius:999px;height:44px;font-size:.98rem;padding-inline-start:38px !important;background:rgba(var(--ion-color-contrast-rgb), 0.078)}ion-searchbar.ios:not(.ios26-disabled).searchbar-classic ion-icon.searchbar-search-icon{inset-inline-start:12px;width:1.18rem}ion-searchbar.ios:not(.ios26-disabled).searchbar-classic button.searchbar-clear-button{right:8px}ion-segment.ios:not(.ios26-disabled){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;min-height:48px;border-radius:25px;transition:transform var(--ios26-activated-transition-duration) ease-out}ion-segment.ios:not(.ios26-disabled).segment-activated,ion-segment.ios:not(.ios26-disabled):has(ion-segment-button.ion-activated){will-change:transform}ion-segment.ios:not(.ios26-disabled):not(.segment-activated):not(:has(ion-segment-button.ion-activated)){will-change:auto}ion-segment.ios:not(.ios26-disabled).in-toolbar-color:not(.in-segment-color) ion-segment-button:not(.segment-button-checked)::part(native){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 1) !important}ion-segment.ios:not(.ios26-disabled):not(.ios26-enable-gesture).segment-activated{transform:scale(1.1) translateZ(0);-webkit-transform:scale(1.1) translateZ(0)}ion-segment.ios:not(.ios26-disabled):not(.ios26-enable-gesture).segment-activated ion-segment-button{transition:transform 100ms ease-out}ion-segment.ios:not(.ios26-disabled):not(.ios26-enable-gesture).segment-activated ion-segment-button.segment-button-checked::part(native){transform:scale(1.08) translateZ(0);-webkit-transform:scale(1.08) translateZ(0)}ion-segment.ios:not(.ios26-disabled):not(.ios26-enable-gesture).segment-activated ion-segment-button::part(indicator-background){position:relative;z-index:1;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0);transform:scale(1.1) translateZ(0);-webkit-transform:scale(1.1) translateZ(0);transform-origin:center center}ion-segment.ios:not(.ios26-disabled).ios26-enable-gesture:has(ion-segment-button.ion-activated){transform:scale(1.1) translateZ(0);-webkit-transform:scale(1.1) translateZ(0)}ion-segment.ios:not(.ios26-disabled).ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button{transition:transform 100ms ease-out}ion-segment.ios:not(.ios26-disabled).ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button.segment-button-checked::part(native){transform:scale(1.08) translateZ(0);-webkit-transform:scale(1.08) translateZ(0)}ion-segment.ios:not(.ios26-disabled).ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button::part(indicator-background){position:relative;z-index:1;transform:scale(1.1) translateZ(0);-webkit-transform:scale(1.1) translateZ(0);transform-origin:center center}ion-segment.ios:not(.ios26-disabled).ios26-enable-gesture.ios26-animated ion-segment-button::part(indicator-background){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0)}ion-segment.ios:not(.ios26-disabled).segment-expand{min-height:24px;width:calc(100% - var(--ion-safe-area-left, 0) - var(--ion-safe-area-left, 0) - 24px)}ion-segment.ios:not(.ios26-disabled).segment-expand.segment-activated{transform:scale(1)}ion-segment.ios:not(.ios26-disabled).segment-expand.segment-activated ion-segment-button.segment-button-checked::part(native){transform:scale(1)}ion-segment.ios:not(.ios26-disabled).segment-expand ion-segment-button{min-height:24px}ion-segment.ios:not(.ios26-disabled).segment-expand.ios26-enable-gesture:has(ion-segment-button.ion-activated){transform:scale(1) translateZ(0);-webkit-transform:scale(1) translateZ(0)}ion-segment.ios:not(.ios26-disabled).segment-expand.ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button{transition:none}ion-segment.ios:not(.ios26-disabled).segment-expand.ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button.segment-button-checked::part(native){transform:scale(1) translateZ(0);-webkit-transform:scale(1) translateZ(0)}ion-segment.ios:not(.ios26-disabled).segment-expand.ios26-enable-gesture:has(ion-segment-button.ion-activated) ion-segment-button::part(indicator-background){position:relative;z-index:1;transform:scale(1) translateZ(0);-webkit-transform:scale(1) translateZ(0);transform-origin:center center}ion-segment.ios:not(.ios26-disabled).segment-expand.ios26-enable-gesture.ios26-animated ion-segment-button::part(indicator-background){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0)}ion-segment-button.ios:not(.ios26-disabled){--border-width: 0;--ion-color-base: var(--ion-text-color, #000);--padding-start: 8px;--padding-end: 8px;min-width:60px;margin:3px 2px;font-size:14.5px}ion-segment-button.ios:not(.ios26-disabled)::part(indicator-background){border-radius:25px;box-shadow:none;transition:background .2s ease;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.06)}ion-segment-button.ios:not(.ios26-disabled).ion-cloned-element::part(native){border-radius:25px;background:rgba(var(--ios26-glass-background-rgb), 1);-webkit-backdrop-filter:blur(0) saturate(104%);backdrop-filter:blur(0) saturate(104%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:rgba(0,0,0,0);height:100%}ion-segment-button.ios:not(.ios26-disabled).ion-cloned-element{color:var(--color-selected, var(--ion-color-primary, #0054e9));pointer-events:none;position:absolute;left:0;top:-3.25px;transform-origin:center center}ion-segment-button.ios:not(.ios26-disabled).ion-cloned-element>*{visibility:hidden}ion-tab-bar.ios:not(.ios26-disabled){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:2;border-radius:40px;--color: rgb(var(--ion-text-color-rgb, 0, 0, 0))}ion-tab-bar.ios:not(.ios26-disabled)[slot=top]{position:absolute;top:var(--ios26-floating-safe-area-top);right:calc(16px + var(--ion-safe-area-right, 0px))}ion-tab-bar.ios:not(.ios26-disabled)[slot=bottom]{position:absolute;bottom:var(--ios26-floating-safe-area-bottom);left:calc(16px + var(--ion-safe-area-left, 0px))}ion-tab-bar.ios:not(.ios26-disabled){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-left, 0px)) - 60px - 12px);max-width:474px;min-height:56px}ion-tab-bar.ios:not(.ios26-disabled):has(:nth-child(5)){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-left, 0px)));max-width:546px}ion-tab-bar.ios:not(.ios26-disabled){padding:2px 2px;transition:transform var(--ios26-activated-transition-duration) ease-out}ion-tab-bar.ios:not(.ios26-disabled):has(ion-tab-button.ion-activated){will-change:transform;transform:scale(1.038) translateZ(0);-webkit-transform:scale(1.038) translateZ(0)}ion-tab-bar.ios:not(.ios26-disabled):not(:has(ion-tab-button.ion-activated)){will-change:auto}ion-tab-bar.ios:not(.ios26-disabled):has(ion-tab-button.ion-activated) ion-tab-button.tab-selected:not(.ion-activated){--color-selected: rgb(var(--ion-text-color-rgb, 0, 0, 0))}ion-tab-bar.ios:not(.ios26-disabled).ios26-enable-gesture.ios26-animated ion-tab-button.tab-selected::part(native){background:rgba(var(--ios26-button-color-selected-rgb), 0)}ion-tab-bar.ios:not(.ios26-disabled).ios26-enable-gesture.ios26-animated ion-tab-button.ion-activated ion-label,ion-tab-bar.ios:not(.ios26-disabled).ios26-enable-gesture.ios26-animated ion-tab-button.ion-activated ion-icon{filter:brightness(100%)}ion-tab-button.ios:not(.ios26-disabled) ion-icon{font-size:26px}ion-tab-button.ios:not(.ios26-disabled) ion-label,ion-tab-button.ios:not(.ios26-disabled) ion-icon{transition:filter var(--ios26-activated-transition-duration) ease,color var(--ios26-activated-transition-duration) ease}ion-tab-button.ios:not(.ios26-disabled){background:rgba(var(--ios26-glass-background-rgb), 0);height:auto;transition:transform var(--ios26-activated-transition-duration) ease}ion-tab-button.ios:not(.ios26-disabled)::part(native){overflow:visible;min-height:56px;border-radius:32px}ion-tab-button.ios:not(.ios26-disabled).ion-activated{transform:scale(1.1);position:relative;color:var(--color-selected)}ion-tab-button.ios:not(.ios26-disabled).ion-activated ion-label,ion-tab-button.ios:not(.ios26-disabled).ion-activated ion-icon{filter:brightness(104%)}ion-tab-button.ios:not(.ios26-disabled).tab-selected::part(native){background:rgba(var(--ios26-button-color-selected-rgb), 0.095);transition:background var(--ios26-activated-transition-duration) ease}ion-tab-button.ios:not(.ios26-disabled).ion-cloned-element::part(native){background:rgba(var(--ios26-glass-background-rgb), 0);-webkit-backdrop-filter:blur(0) saturate(104%);backdrop-filter:blur(0) saturate(104%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}ion-tab-button.ios:not(.ios26-disabled).ion-cloned-element{pointer-events:none;position:absolute;left:0;top:0;transform-origin:center}ion-tab-button.ios:not(.ios26-disabled).ion-cloned-element>*{visibility:hidden}ion-toast.ios:not(.ios26-disabled){--background: transparent;--start: 16px;--end: 16px}ion-toast.ios:not(.ios26-disabled)::part(container){background:rgba(var(--ios26-glass-background-rgb), 0.72);-webkit-backdrop-filter:blur(2px) saturate(360%);backdrop-filter:blur(2px) saturate(360%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:24px}ion-item.ios:not(.ios26-disabled) ion-toggle.ios:not(.ios26-disabled).toggle-checked.toggle-activated::part(track){transform-origin:left;transform:scaleX(0.894) translateZ(0);-webkit-transform:scaleX(0.894) translateZ(0)}ion-item.ios:not(.ios26-disabled) ion-toggle.ios:not(.ios26-disabled).toggle-activated::part(handle){transform:scale(1.4, 1.6) translateX(-5.7px) translateZ(0);-webkit-transform:scale(1.4, 1.6) translateX(-5.7px) translateZ(0)}ion-toggle.ios:not(.ios26-disabled){--handle-width: 38px;--handle-height: 24px;--handle-max-width: none;--handle-max-height: none}ion-toggle.ios:not(.ios26-disabled).ion-color{--track-background: rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23)}ion-toggle.ios:not(.ios26-disabled):not(.ion-color){--track-background: rgba(var(--ion-color-contrast-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.23)}ion-toggle.ios:not(.ios26-disabled)::part(track){overflow:visible;width:64px;height:28px;transition:transform 280ms ease}ion-toggle.ios:not(.ios26-disabled).toggle-activated:not(.toggle-checked)::part(handle){transform:translateX(-4px) scale(1.4, 1.6) translateZ(0);-webkit-transform:translateX(-4px) scale(1.4, 1.6) translateZ(0)}ion-toggle.ios:not(.ios26-disabled).toggle-activated.toggle-checked::part(handle){transform:scale(1.4, 1.6) translateZ(0)}ion-toggle.ios:not(.ios26-disabled).toggle-activated::part(handle){transform:scale(1.4, 1.6) translateZ(0);-webkit-transform:scale(1.4, 1.6) translateZ(0);background:rgba(var(--ios26-glass-background-rgb), 0.1);-webkit-backdrop-filter:blur(0.5px) saturate(120%);backdrop-filter:blur(0.5px) saturate(120%);box-shadow:inset 0 0 8px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.2),0 0 10px 0 rgba(var(--ios26-glass-box-shadow-color-rgb), 0.82);border-top:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-right:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.8);border-bottom:.5px solid rgba(var(--ios26-glass-border-color-rgb), 1);border-left:.5px solid rgba(var(--ios26-glass-border-color-rgb), 0.6);transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform 280ms,width 120ms ease-in-out 80ms,left 110ms ease-in-out 80ms,right 110ms ease-in-out 80ms;box-shadow:inset 0 0 8px 0 var(--track-background)}ion-toggle.ios:not(.ios26-disabled).ion-color.toggle-checked.toggle-activated::part(handle){box-shadow:inset 0 8px 8px -8px var(--ion-color-base),inset 8px 0 8px -8px var(--track-background),inset 8px 0 8px -8px var(--track-background),inset -8px 0 8px -8px var(--ion-color-base)}ion-toggle.ios:not(.ios26-disabled).toggle-checked.toggle-activated::part(handle){box-shadow:inset 0 8px 8px -8px var(--track-background-checked),inset 8px 0 8px -8px var(--track-background),inset 8px 0 8px -8px var(--track-background),inset -8px 0 8px -8px var(--track-background-checked)}ion-header.ios:not(.ios26-disabled) ion-toolbar:not(.ios26-disabled):first-of-type{padding-top:max(var(--ion-safe-area-top) - 12px,4px)}ion-modal.ios:not(.ios26-disabled).modal-card ion-header.ios:not(.ios26-disabled) ion-toolbar.ios:not(.ios26-disabled):first-of-type,ion-modal.ios:not(.ios26-disabled).modal-sheet ion-header.ios:not(.ios26-disabled) ion-toolbar.ios:not(.ios26-disabled):first-of-type{padding-top:6px}ion-header.ios.header-collapse-condense:not(.ios26-disabled) ion-toolbar:not(.ios26-disabled):first-of-type{padding-top:0}ion-toolbar.ios:not(.toolbar-title-large):not(.ios26-disabled):not(:has(ion-segment.segment-expand)){--min-height: 68px}ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar *[slot=start],ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar *[slot=end]{align-self:center}ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar:has(ion-buttons[slot=start]) ion-buttons[slot=start]{margin-right:6px}ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar:has(ion-buttons[slot=start]) ion-searchbar.ios:not(.ios26-disabled) .searchbar-input-container{margin:0 12px 0 6px}ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar:has(ion-buttons[slot=end]) ion-buttons[slot=end]{margin-left:6px}ion-toolbar.ios:not(.ios26-disabled).toolbar-searchbar:has(ion-buttons[slot=end]) ion-searchbar.ios:not(.ios26-disabled) .searchbar-input-container{margin:0 6px 0 12px}ion-header.ios:not(.ios26-disabled) ion-buttons,ion-footer.ios:not(.ios26-disabled) ion-buttons{margin-left:12px;margin-right:12px}ion-header.ios:not(.ios26-disabled) ion-back-button,ion-footer.ios:not(.ios26-disabled) ion-back-button{margin-left:12px;margin-right:12px}ion-header.ios:not(.ios26-disabled) ion-toolbar ion-buttons ion-back-button,ion-footer.ios:not(.ios26-disabled) ion-toolbar ion-buttons ion-back-button{margin-left:0;margin-right:0}

ion-buttons.md ion-button.md:not(.ios26-disabled).button-default{--color: initial;--background: transparent;--background-activated: transparent;--background-focused: transparent;--background-hover: transparent}

@charset "UTF-8";
/**
 * iOS26-ONLY mode: ONLY Ionic base + iOS26 library.
 * No global.scss, no variables, no design-tokens, no theme overrides.
 * Use: ionic serve --configuration=ios26-only
 *
 * Proves Student Modal V2 works 1:1 with the library.
 */
/* iOS26-required token for solid primary buttons */
:root {
  --ion-color-primary-brightness: #96FEFF;
  --ion-color-primary-brightness-rgb: 150, 254, 255;
}

/* iOS data detectors: Safari/WKWebView auto-wraps dates, phone numbers and
 * addresses in <a x-apple-data-detectors> and paints them iOS-link-blue, so
 * black text "sometimes" turns blue on real devices (never in desktop browsers,
 * which don't run detectors). The format-detection meta in index.html suppresses
 * most of it; this is defense-in-depth for anything that still slips through. */
a[x-apple-data-detectors],
a[x-apple-data-detectors] * {
  color: inherit !important;
  text-decoration: none !important;
  -webkit-text-fill-color: inherit !important;
  font-weight: inherit !important;
  pointer-events: none;
}

/* iOS WKWebView paints the DEFAULT text color of native interactive / form
 * elements (<button>, <a>, <input>, <select>, <textarea>) with the system
 * accent (blue) on real devices, while desktop WebKit/Chrome render them with
 * the normal/black UA default. So ANY button or link that doesn't set its own
 * `color` looks black in dev and turns blue ONLY on a real phone — the exact
 * "it's a different color on my device" bug. This is the same reset normalize.css
 * ships (`color: inherit` on form elements); we add -webkit-text-fill-color
 * because iOS paints interactive text through that property specifically.
 *
 * Low specificity, no !important: this is only the DEFAULT. Any component that
 * declares its own color (e.g. .filter-chip-active) still wins. Adding this once
 * here means a new uncolored button can never silently go blue on device again. */
button,
input,
select,
textarea,
optgroup,
a:not([x-apple-data-detectors]) {
  color: inherit;
  -webkit-text-fill-color: inherit;
}

/* Header back-arrow direction: show RTL arrow in RTL, LTR arrow in LTR */
.back-arrow--rtl {
  display: none;
}

.back-arrow--ltr {
  display: flex;
}

[dir=rtl] .back-arrow--rtl {
  display: flex;
}

[dir=rtl] .back-arrow--ltr {
  display: none;
}

/* Lock text size to the app's own definitions, never the device's system
 * font-size / accessibility setting. The Android fix lives in MainActivity
 * (WebView textZoom = 100); this is the web-side guard against WebKit's
 * automatic text-inflation algorithm on both platforms. */
html,
body {
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

/**
 * Design Tokens — Single source of truth for UI system.
 * Reference: student-modal-v2, tab-settings.
 * No hardcoded px values in components after this file.
 */
/* Restored color scheme — from commit 326808087617709c7300ad60a22826b3e90afa68 */
/* Palette — coolors.co/3970f1-ffdd00-ff7d00-ff0044-23e373-8f00ff
 * brand   = Royal Blue      #3970f1
 * success = Malachite       #23e373
 * danger  = Hot Fuchsia     #ff0044
 * warning = Vivid Tangerine #ff7d00  (Bright Gold #ffdd00 is the spare accent)
 * purple  = Violet Ray      #8f00ff
 * neutral = gray (kept — no palette equivalent) */
:root {
  /* ----- Semantic color scheme (restored) — use these in UI ----- */
  --brand-50: #f5f8fe;
  --brand-100: #e7eefd;
  --brand-200: #cedbfc;
  --brand-300: #b0c6f9;
  --brand-400: #88a9f7;
  --brand-500: #3970f1;
  --brand-600: #2e5ac1;
  --brand-700: #25499d;
  --brand-800: #1d3879;
  --brand-900: #112248;
  --success-50: #f4fef8;
  --success-100: #e5fcee;
  --success-200: #c8f8dc;
  --success-300: #a7f4c7;
  --success-400: #7beeab;
  --success-500: #23e373;
  --success-600: #1cb65c;
  --success-700: #17944b;
  --success-800: #12723a;
  --success-900: #0b4423;
  --danger-50: #fff2f6;
  --danger-100: #ffe0e9;
  --danger-200: #ffbfd0;
  --danger-300: #ff99b4;
  --danger-400: #ff668f;
  --danger-500: #ff0044;
  --danger-600: #cc0036;
  --danger-700: #a6002c;
  --danger-800: #800022;
  --danger-900: #4d0014;
  --warning-50: #fff9f2;
  --warning-100: #ffefe0;
  --warning-200: #ffdfbf;
  --warning-300: #ffcb99;
  --warning-400: #ffb166;
  --warning-500: #ff7d00;
  --warning-600: #cc6400;
  --warning-700: #a65100;
  --warning-800: #803f00;
  --warning-900: #4d2600;
  --purple-50: #f9f2ff;
  --purple-100: #f2e0ff;
  --purple-200: #e3bfff;
  --purple-300: #d299ff;
  --purple-400: #bc66ff;
  --purple-500: #8f00ff;
  --purple-600: #7200cc;
  --purple-700: #5d00a6;
  --purple-800: #480080;
  --purple-900: #2b004d;
  --neutral-50: #f5f5f6;
  --neutral-100: #e8e8e8;
  --neutral-200: #ceced0;
  --neutral-300: #b1b1b4;
  --neutral-400: #8a8a8e;
  --neutral-500: #3c3c43;
  --neutral-600: #303036;
  --neutral-700: #27272c;
  --neutral-800: #1e1e22;
  --neutral-900: #121214;
  --color-brand: var(--brand-500);
  --color-success: var(--success-500);
  --color-danger: var(--danger-500);
  --color-warning: var(--warning-500);
  --color-purple: var(--purple-500);
  --color-info: var(--brand-500);
  --text-primary: #1c1c1e;
  --text-secondary: var(--neutral-600);
  --text-muted: rgba(60, 60, 67, 0.65);
  --color-brand-tint: rgba(57, 112, 241, 0.1);
  --color-success-tint: rgba(35, 227, 115, 0.1);
  --color-danger-tint: rgba(255, 0, 68, 0.1);
  --color-purple-tint: rgba(143, 0, 255, 0.1);
  --color-neutral-tint: rgba(60, 60, 67, 0.10);
  /* ----- Ionic native color variables — mapped to our palette -----
   * Ionic's own components (selected tab button, ion-button color="primary",
   * ion-toggle, ion-checkbox, ion-spinner, ion-segment, ion-router-link, focus
   * rings, etc.) read these `--ion-color-*` vars. Without this block Ionic falls
   * back to its stock #3880ff blue / #2dd36f green / etc. and silently ignores
   * our palette. Derived from the bases above so they always stay in sync. */
  --ion-color-primary: #3970f1;
  --ion-color-primary-rgb: 57, 112, 241;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #3263d4;
  --ion-color-primary-tint: #4d7ef2;
  --ion-color-success: #23e373;
  --ion-color-success-rgb: 35, 227, 115;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #1fc865;
  --ion-color-success-tint: #39e681;
  --ion-color-warning: #ff7d00;
  --ion-color-warning-rgb: 255, 125, 0;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb: 0, 0, 0;
  --ion-color-warning-shade: #e06e00;
  --ion-color-warning-tint: #ff8a1a;
  --ion-color-danger: #ff0044;
  --ion-color-danger-rgb: 255, 0, 68;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #e0003c;
  --ion-color-danger-tint: #ff1a57;
  /* Secondary — mapped to brand purple so Ionic components using color="secondary"
   * (and gradients referencing --ion-color-secondary) stay on-brand. Without this,
   * Ionic falls back to its stock secondary #3dc2ff (off-brand cyan). */
  --ion-color-secondary: #8f00ff;
  --ion-color-secondary-rgb: 143, 0, 255;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #7e00e0;
  --ion-color-secondary-tint: #9a1aff;
  /* ----- End restored color scheme ----- */
  /* Background */
  --app-bg-page: #f2f2f7;
  --app-bg-card: #ffffff;
  /* Card — unified primitive (single visual across the entire app).
   * Use --app-card-radius / --app-card-border / --app-card-shadow for any new code.
   * The -sm and -lg aliases below are kept so existing consumers continue to work,
   * but they all resolve to the same canonical value — every card looks identical. */
  --app-card-radius: 24px;
  --app-card-border: 1px solid #e0e0e0;
  --app-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  /* Card aliases — visually identical, kept for backwards compatibility */
  --app-card-radius-lg: var(--app-card-radius);
  --app-card-radius-sm: var(--app-card-radius);
  --app-card-border-lg: var(--app-card-border);
  --app-card-border-sm: var(--app-card-border);
  /* Specialized radii — distinct surfaces, NOT cards */
  --app-card-radius-md: 12px; /* warning callouts (e.g. documents-warning-card) */
  --app-card-radius-xs: 6px; /* license plate inner wrapper */
  --app-radius-pill: 999px;
  /* Form field */
  --app-field-height: 48px;
  --app-field-radius: 15px;
  --app-field-border: 1px solid #e0e0e0;
  --app-field-padding-inline: 12px;
  --app-field-placeholder-color: #6b6b6b;
  /* Button — unified across the app (Atmos DS parity).
   * NOTE: wide action buttons are pill-shaped (999px) + 2rem side padding via the
   * global rule in ios26-overrides.scss ("Wide action buttons" block) — that wins
   * over --app-btn-radius for ion-button. This token now mainly drives non-button
   * surfaces (dropzone, file rows, etc.) and stays for backwards compatibility.
   * `--app-btn-height` applies to block / action buttons.
   * Circular icon buttons (.header-icon-btn) are exempt — they keep their own 999px. */
  --app-btn-radius: 1rem; /* = 16px; every blue action button shares this curve */
  --app-btn-height: 50px;
  --app-btn-height-sm: 40px;
  --app-btn-padding-inline: 20px;
  /* Row (card rows, accordion headers, settings items) */
  --app-row-height: 60px;
  --app-row-height-sm: 36px;
  --app-row-padding-inline: 16px;
  /* Spacing */
  --app-spacing-2: 2px;
  --app-spacing-xs: 4px;
  --app-spacing-6: 6px;
  --app-spacing-sm: 8px;
  --app-spacing-md: 10px;
  --app-spacing-lg: 12px;
  --app-spacing-14: 14px;
  --app-spacing-xl: 16px;
  --app-spacing-2xl: 24px;
  --app-spacing-3xl: 32px;
  --app-spacing-20: 20px;
  /* Content / layout */
  --app-content-padding-inline: 12px;
  --app-content-padding-top: 32px;
  /* Card-to-card gap — consistent spacing between cards everywhere. */
  --app-card-gap: var(--app-spacing-lg);
  /* Field gap — consistent spacing between form fields app-wide. */
  --app-field-gap: var(--app-spacing-sm);
  /* Section title — consistent spacing above titles between card groups.
   * 3xl (32px): roomier than 2xl so sub-headers aren't cramped. */
  --app-section-title-spacing: var(--app-spacing-3xl);
  --app-list-inset-margin: 8px;
  --app-accordion-content-padding-bottom: var(--app-spacing-lg);
  /* Safe area — tab pages */
  --app-safe-area-bottom-offset: 80px;
  /* Interaction — hover/active */
  --app-card-hover-bg: rgba(0, 0, 0, 0.03);
  --app-card-active-bg: rgba(0, 0, 0, 0.06);
  --app-card-active-border: rgba(0, 0, 0, 0.08);
  --app-card-active-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
  /* === TYPOGRAPHY — Atmos DS scale === */
  /* Size scale (10 steps) */
  --app-text-large-title: 60px;
  --app-text-title-1: 48px;
  --app-text-title-2: 36px;
  --app-text-title-3: 30px;
  --app-text-headline: 24px;
  --app-text-subhead: 20px;
  --app-text-body-lg: 18px;
  --app-text-body: 16px;
  --app-text-footnote: 14px;
  --app-text-caption: 12px;
  /* Weights */
  --app-weight-light: 300;
  --app-weight-normal: 400;
  --app-weight-medium: 500;
  --app-weight-semibold: 600;
  --app-weight-bold: 700;
  /* Line heights */
  --app-lh-tight: 1.1;
  --app-lh-snug: 1.25;
  --app-lh-normal: 1.4;
  --app-lh-relaxed: 1.55;
  /* Letter spacing */
  --app-ls-tight: -0.02em;
  --app-ls-snug: -0.01em;
  --app-ls-normal: 0;
  --app-ls-wide: 0.01em;
  /* Icon slot sizes */
  --app-icon-slot-size: 28px;
  --app-chevron-slot-size: 24px;
  --app-icon-size-primary: 22px;
  /* Header icon button — 44px touch target (accessibility) */
  --app-header-icon-btn-size: 44px;
  /* Accent tile — finance row category colors (colored rounded square) */
  --app-accent-purple: #8f00ff;
  /* Warning card — student-modal-v2 documents-warning-card */
  --app-warning-bg: #fff8e6;
  --app-warning-border: #ffd54f;
  --app-warning-text: #5c4a00;
}

/* === Hebrew / RTL ===
 * Project uses system-ui for Hebrew (renders cleanly on all target
 * platforms). To switch to a custom Hebrew font in the future, import
 * the font file's @font-face and add the family name first in the stack.
 */
:lang(he),
[dir=rtl] {
  font-family: system-ui, -apple-system, sans-serif;
}

/* Canonical car card — the single source of truth for the vehicle card shown
 * across the app (רכבים list, student modal, event creation). It is intentionally
 * global (not a component's scoped styles) so every screen renders it 1:1 and it
 * can never drift again.
 *
 * Usage (identical everywhere — the only variation is the optional [showDates]
 * on the plate, used by the רכבים list alone):
 *
 *   <app-card variant="sm" class="car-card">
 *     <div class="car-card__band" [style.background-color]="car.color"></div>
 *     <div class="car-card__body">
 *       <app-license-plate class="car-card__plate" [car]="car"></app-license-plate>
 *     </div>
 *   </app-card>
 *
 * app-card variant="sm" supplies the white rounded background + overflow:hidden,
 * so the band is full-bleed and clipped to the card's rounded top corners.
 */
.car-card__band {
  /* A thin colored accent line at the very top of the card (not a hero block) —
     restrained/premium. No DS token for this hairline-band height. */
  height: 4px;
}

.car-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--app-spacing-md);
  /* Roomy white area beneath the band; matches the רכבים card proportions. */
  min-height: 112px;
  padding-inline: var(--app-row-padding-inline);
  padding-block: var(--app-spacing-sm);
}

.car-card__plate {
  /* The band is now a thin accent line, so the plate sits in the white body
     beneath it with a little breathing room (no straddle). */
  margin-top: var(--app-spacing-sm);
}

/**
 * Shared structural styles for finance list pages (documents, revenues,
 * expenses, …). Generic, page-agnostic chrome only: the dual-toolbar header
 * alignment, the search wrap + clear button, the filter button host/badge,
 * and the month-sectioned card list. Page-specific row/card styles stay in
 * each page's own stylesheet.
 *
 * Extracted verbatim from documents.scss so every finance list page shares
 * one source of truth. Values/tokens are unchanged.
 */
/* Override iOS26 glass clip on ion-buttons so the filter badge can extend outside */
ion-buttons.ion-buttons-allow-overflow {
  overflow: visible !important;
}

.filter-btn-host {
  position: relative;
  display: inline-flex;
}
.filter-btn-host .filter-badge {
  position: absolute;
  top: -2px;
  inset-inline-end: -2px;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--app-color-brand, var(--ion-color-primary));
  pointer-events: none;
  z-index: 10;
}
.filter-btn-host .filter-badge--dot {
  min-width: 10px;
  width: 10px;
  height: 10px;
  padding: 0;
}

.finance-search-wrap {
  position: relative;
}

.finance-search-clear {
  position: absolute;
  top: 50%;
  inset-inline-end: var(--app-spacing-2xl);
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--app-field-placeholder-color);
  z-index: 1;
}

.finance-list {
  display: flex;
  flex-direction: column;
  gap: var(--app-card-gap);
}

.month-header {
  display: flex;
  align-items: center;
  gap: var(--app-spacing-sm);
  padding: var(--app-spacing-md) var(--app-spacing-xs) var(--app-spacing-xs);
  background: var(--app-page-background, var(--ion-background-color));
}

/* Month-count chip: circular for single digits, expands to a rounded pill for larger counts. */
.month-header app-info-pill {
  min-width: 24px;
  height: 24px;
  padding-block: 0;
  padding-inline: var(--app-spacing-xs);
  justify-content: center;
}

/* Form field containers — consistent 8px gap app-wide */
[class$=-fields] {
  gap: var(--app-field-gap) !important;
}

/* Form validation — invalid field border (danger) + reduced gap between field and error */
.form-error,
.user-details-form-error {
  display: block;
  font-size: var(--app-text-footnote);
  margin-block-start: var(--app-spacing-2) !important;
}

/* Raw ion-item with error: danger border when followed by form-error */
ion-item:has(+ ion-text.form-error),
ion-item:has(+ .form-error) {
  border-color: var(--ion-color-danger);
}

/* Section sub-header — the ONE canonical caption for every in-page group header.
 * Use: <app-text variant="footnote" weight="bold" class="app-section-header">TEXT</app-text>
 * 14px bold (footnote), 32px above / 16px below, 0 for the first element in page flow.
 *
 * CRITICAL: app-text sets :host{display:contents} (host has no box) and forces its
 * inner element to margin:0 — so margins on the .app-section-header HOST are inert.
 * The `app-text.app-section-header` rule below (type+class specificity beats the
 * component's :host) promotes the host to a real block box so these margins render.
 * Without it every value here is silently ignored. */
.app-section-header {
  display: block;
  margin-block-start: var(--app-section-title-spacing); /* 32px above */
  margin-block-end: var(--app-spacing-xl); /* 16px below */
  padding-block: 0;
}

app-text.app-section-header {
  display: block;
}

.app-page-layout__inner > :first-child .app-section-header {
  margin-block-start: 0;
}

/* Inside a flex field-group (any `*-fields` container, forced to an 8px gap) the
 * host's margin ADDS to the gap instead of collapsing with the layout owl-gap —
 * so trim both margins by the 8px gap to keep the totals equal everywhere:
 * 8px gap + 24px = 32px above, 8px gap + 8px = 16px below. */
[class$=-fields] .app-section-header {
  margin-block-start: var(--app-spacing-2xl); /* 8 + 24 = 32 above */
  margin-block-end: var(--app-spacing-sm); /* 8 + 8 = 16 below */
}

/* Settings toggle row — entire row clickable, no yes/no text. Use with ion-item.
 * Feedback via app-card/app-settings-item; no global hover blocks here. */
ion-item.settings-toggle-row {
  cursor: pointer;
  --min-height: var(--app-row-height);
  min-height: var(--app-row-height);
}
ion-item.settings-toggle-row ion-toggle {
  slot: end;
}

/* Header icon button — TRUE circle, 44px touch target, centered content */
.header-icon-btn {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  width: var(--app-header-icon-btn-size);
  height: var(--app-header-icon-btn-size);
  min-width: var(--app-header-icon-btn-size);
  min-height: var(--app-header-icon-btn-size);
  aspect-ratio: 1/1;
  flex-shrink: 0; /* never let a flex toolbar squash the width → keeps it a square, not an ellipse */
  /* Round the Ionic shadow-DOM .button-native directly. Relying on host
   * border-radius + overflow:hidden to clip the native button is unreliable on
   * iOS WebKit (shadow-DOM/stacking-context descendants escape the clip) — that
   * is what turned the circle into an ellipse on real devices. */
  --border-radius: 50%;
  border-radius: 999px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: transform 120ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Press grow — consistent iOS26 feedback for every circular header icon button
   (close ×, confirm ✓, plus, back, calendar chevrons). */
.header-icon-btn:active,
.header-icon-btn.ion-activated {
  transform: scale(1.12);
}

/* Add tone — solid brand-green circle for the "+" header button.
 * Fills the 44px circle background and uses a white icon. */
.header-icon-btn.tone-add {
  --background: var(--color-success);
  --background-hover: var(--color-success);
  --background-activated: var(--color-success);
  --background-focused: var(--color-success);
  --color: #fff;
  color: #fff;
}

.header-icon-btn.tone-add app-icon,
.header-icon-btn.tone-add ion-icon {
  color: #fff;
}

/* Page layout: ion-content with app-page-layout gets page background */
ion-content:has(app-page-layout) {
  --background: var(--app-bg-page);
}

/* Button — single app-wide standard for WIDE action buttons.
 * Every ion-button EXCEPT icon circles (.header-icon-btn / icon-only),
 * text/link buttons (.button-clear), and compact controls (.button-small) is:
 *   1. maximally rounded (pill, 999px)
 *   2. padded 2rem around the label
 *   3. solid (Ionic default; outline variants are flipped at the call site)
 *   4. bold (font-weight 700)
 *   5. min-height 65px — matches the agreed reference button (availability
 *      "מחיקה"). Set on ::part(native) with !important because the iOS26 theme
 *      hard-codes `min-height: 44px` there, which otherwise collapses
 *      expand="block" buttons (content-width buttons happened to render 65px).
 *
 * Two mechanisms, deliberately:
 *   • Radius — host `--border-radius`; the ::part(native) reads it. (Proven: the
 *     old `var(--app-btn-radius)` here was what rendered the 16px curve.)
 *   • Padding — MUST be on ::part(native) with !important. The iOS26 theme library
 *     hard-codes `padding: 0 12px` on that part, which beats the host --padding-*
 *     vars; only a higher-priority ::part rule (!important) wins. */
ion-button:not(.header-icon-btn):not(.button-has-icon-only):not(.button-clear):not(.button-small) {
  --border-radius: 999px;
  font-weight: 700;
  font-size: 18px;
}

ion-button:not(.header-icon-btn):not(.button-has-icon-only):not(.button-clear):not(.button-small)::part(native) {
  border-radius: 999px !important;
  padding-inline: 2rem !important;
  min-height: 65px !important;
}

/* Wide-button LABEL — match the confirm-dialog reference 1:1 for every wide
 * button, regardless of the per-call <app-text variant/weight>. Three fixes:
 *   • color/-webkit-text-fill-color: inherit — the label inherits the button's
 *     white contrast colour. text-fill-color is the one that actually paints the
 *     glyph in iOS WKWebView; without it the label stays page-dark on device
 *     (the "black text on a coloured button" bug — see ios_webview_gotchas).
 *   • font-weight 700 / font-size 18px — the host rule above is overridden by
 *     app-text's own variant/weight (higher specificity), so it must be forced
 *     on the projected label itself.
 * app-icon already uses fill: currentColor, so it tracks this colour too. */
ion-button:not(.header-icon-btn):not(.button-has-icon-only):not(.button-clear):not(.button-small) app-text > * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}

/* Card primitive — for ion-accordion, ion-card (when AppCard wrapper not used).
 * Uses unified --app-card-* tokens; produces identical visual to <app-card>. */
ion-accordion.app-card-lg,
ion-card.app-card-lg {
  background-color: var(--app-bg-card);
  border: var(--app-card-border);
  border-radius: var(--app-card-radius);
  box-shadow: var(--app-card-shadow);
}

/* Required for ionic2-calendar: Swiper hides overflow so only 1 slide (month/week/day) is visible */
/**
 * Swiper 11.2.10
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: June 28, 2025
 */
/* FONT_START */
@font-face {
  font-family: "swiper-icons";
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA");
  font-weight: 400;
  font-style: normal;
}
/* FONT_END */
:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}

:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}

.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}

.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}

.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}

.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-horizontal {
  touch-action: pan-y;
}

.swiper-vertical {
  touch-action: pan-x;
}

.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}

.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}

.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}

.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}

.swiper-3d {
  perspective: 1200px;
}

.swiper-3d .swiper-slide,
.swiper-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}

/* CSS Mode */
.swiper-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  /* For Firefox */
  -ms-overflow-style: none;
  /* For Internet Explorer and Edge */
}

.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}

.swiper-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}

.swiper-css-mode.swiper-horizontal > .swiper-wrapper {
  scroll-snap-type: x mandatory;
}

.swiper-css-mode.swiper-vertical > .swiper-wrapper {
  scroll-snap-type: y mandatory;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
  scroll-snap-type: none;
}

.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: none;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper::before {
  content: "";
  flex-shrink: 0;
  order: 9999;
}

.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: center center;
  scroll-snap-stop: always;
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
  margin-inline-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
  height: 100%;
  min-height: 1px;
  width: var(--swiper-centered-offset-after);
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
  margin-block-start: var(--swiper-centered-offset-before);
}

.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {
  width: 100%;
  min-width: 1px;
  height: var(--swiper-centered-offset-after);
}

/* Slide styles start */
/* 3D Shadows */
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}

.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, 0.15);
}

.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}

.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
  animation: swiper-preloader-spin 1s infinite linear;
}

.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}

.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}

@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */
/**
 * iOS26 library. Per README: import at top of main CSS file.
 * md-remove-ios-class-effect: required for fill=default (ion-button[fill=default]).
 */
/**
 * iOS26 overrides — global only.
 * Student Modal V2 styles in student-modal-v2.page.scss (component-scoped).
 */
/* Accordion cards: normalize border-radius — no first/last/group-edge overrides */
ion-accordion.app-card-lg,
ion-accordion.app-card-lg:first-child,
ion-accordion.app-card-lg:last-child,
ion-accordion.app-card-lg:first-of-type,
ion-accordion.app-card-lg:last-of-type,
ion-accordion.app-card-lg.accordion-previous,
ion-accordion.app-card-lg.accordion-next {
  border-radius: var(--app-card-radius-lg) !important;
}

/* ion-accordion-group inside list-inset: use same radius for group (no different first/last) */
ion-list.list-inset ion-accordion-group {
  border-radius: var(--app-card-radius-lg) !important;
}

/* Student Modal V2: allow shadows to render (modal clips by default) */
ion-modal.student-modal-v2 {
  --overflow: visible;
  contain: none; /* override paint containment that clips shadows */
}

/* Event Modal (fullscreen): same as student-modal-v2 */
ion-modal.event-modal {
  --overflow: visible;
  contain: none;
}

/* Car select popover: wider so car details don't trim */
ion-popover.car-select-popover {
  --width: min(380px, calc(100vw - 48px));
  --min-width: 280px;
}
ion-popover.car-select-popover ion-list {
  min-width: 100%;
}
ion-popover.car-select-popover ion-item {
  --inner-padding-end: 0;
}
ion-popover.car-select-popover ion-label {
  white-space: normal;
  text-overflow: clip;
  overflow: visible;
}

/* Searchable picker sheet: hide ion-item detail chevrons */
app-searchable-picker-sheet ion-item,
ion-modal.searchable-picker-sheet-modal ion-item {
  --detail-icon-opacity: 0 !important;
  --detail-icon-font-size: 0 !important;
}

app-searchable-picker-sheet ion-item::part(detail-icon),
ion-modal.searchable-picker-sheet-modal ion-item::part(detail-icon) {
  display: none !important;
}

/* License filter sheet: hide ion-item detail chevrons */
app-license-filter-sheet ion-item,
ion-modal.license-sheet-modal ion-item {
  --detail-icon-opacity: 0 !important;
  --detail-icon-font-size: 0 !important;
}

app-license-filter-sheet ion-item::part(detail-icon),
ion-modal.license-sheet-modal ion-item::part(detail-icon) {
  display: none !important;
}

app-license-filter-sheet .detail-arrow-slot,
ion-modal.license-sheet-modal .detail-arrow-slot {
  display: none !important;
}

/* Close/back icon-only buttons: smaller icon (override iOS26 2rem) */
ion-button.ios:not(.ios26-disabled).button-has-icon-only ion-icon[name=close-outline],
ion-button.ios:not(.ios26-disabled).back-button-has-icon-only ion-icon[name=close-outline] {
  font-size: 1.5rem;
}

/* Labels in clickable filter/action rows: neutral color (prevent blue iOS link styling) */
.filter-row ion-label,
.expense-invoice-row ion-label {
  color: var(--text-primary, var(--ion-text-color, #1c1c1e));
}

/* ion-checkbox: thinner unchecked border across the entire app (default iOS is 0.125rem / 2px) */
ion-checkbox {
  --border-width: 1px;
}

/* Page title (ion-title): bold, tight typography per design spec */
ion-title {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.5px;
}

/* iOS-mode ion-title reserves a fixed 90px gutter on EACH side (centered,
 * position:absolute, width:100%) regardless of the actual button footprint.
 * Our header buttons are 44px circles (~56px with spacing), so the default
 * 90px clips the title prematurely and leaves dead space before the X/✓.
 * Tighten the reserved gutter to match the real button width — text now uses
 * that recovered ~34px/side, while the centering and ellipsis safety remain. */
ion-title.ios {
  padding-inline-start: 56px;
  padding-inline-end: 56px;
}

/* iOS26 glass — refine for light-page backgrounds.
 * Library defaults: white border (invisible on white) + heavy gray shadow.
 * Real iOS26 on light: subtle dark hairline border + minimal shadow.
 * Targets: header clear-button wrappers AND searchbar input. */
ion-buttons.ios:not(.ios26-disabled):has(ion-button.button-clear):not(:has(ion-back-button, ion-button:not(.button-clear), ion-menu-button.menu-button-hidden)) {
  border-top-color: rgba(0, 0, 0, 0.1) !important;
  border-inline-end-color: rgba(0, 0, 0, 0.08) !important;
  border-bottom-color: rgba(0, 0, 0, 0.1) !important;
  border-inline-start-color: rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04) !important;
}

ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container input.searchbar-input {
  border-top-color: rgba(0, 0, 0, 0.1) !important;
  border-inline-end-color: rgba(0, 0, 0, 0.08) !important;
  border-bottom-color: rgba(0, 0, 0, 0.1) !important;
  border-inline-start-color: rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04) !important;
  font-size: 0.875rem !important;
}

/* Global overlay backdrop — white-tinted blur instead of dark dim.
 * Matches DS pattern from Modal/Drawer/ConfirmDialog: backdrop-blur-[50px] bg-white/30.
 *
 * Shadow DOM caveat:
 *  - `ion-popover`, `ion-modal`, `ion-picker` use Shadow DOM, so their inner
 *    `<ion-backdrop>` is encapsulated and unreachable via the `ion-backdrop`
 *    selector from outside. We MUST style it via `::part(backdrop)`.
 *  - `ion-alert`, `ion-action-sheet`, `ion-loading` render in Light DOM, so
 *    the global `ion-backdrop` selector reaches them directly.
 *
 * Why opacity:1 + semi-transparent bg:
 *  - At full element opacity, `backdrop-filter` renders at full strength.
 *    A non-opaque `background-color` then lets the blurred backdrop show
 *    through the white wash — tint + blur, not one or the other.
 *  - The iOS26 library sets `--backdrop-opacity: 0.2` on each host, so we
 *    override per host (the variable inherits into the shadow ion-backdrop).
 *  - No `opacity` override and no CSS `transition` — the iOS26 library's
 *    enter/leave animations drive the fade. Overriding breaks smoothness. */
ion-popover,
ion-modal,
ion-alert,
ion-action-sheet,
ion-loading,
ion-picker,
ion-picker-legacy {
  --backdrop-opacity: 1 !important;
  --ion-backdrop-color: transparent !important;
}

/* Shadow-DOM overlays — reach the encapsulated backdrop via ::part(backdrop).
 * ion-popover is intentionally excluded: lightweight selects/dropdowns should
 * not frost the page behind them. */
ion-modal::part(backdrop),
ion-picker::part(backdrop),
ion-picker-legacy::part(backdrop) {
  background-color: rgba(255, 255, 255, 0.3) !important;
  backdrop-filter: blur(40px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
}

/* Popover (selects/dropdowns): no blur — keep the page clearly visible. */
ion-popover::part(backdrop) {
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Light-DOM overlays — alert, action-sheet render ion-backdrop directly. */
ion-backdrop {
  background-color: rgba(255, 255, 255, 0.3) !important;
  backdrop-filter: blur(40px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
}

/* Loading: no blur — show the page plainly while the spinner card floats. */
ion-loading ion-backdrop {
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Date picker: text field below calendar — uses design tokens */
app-date-picker .date-text-field {
  --background: var(--app-bg-card);
  --border-width: 0;
  --padding-start: var(--app-field-padding-inline);
  --padding-end: var(--app-field-padding-inline);
  --inner-padding-end: 0;
  --min-height: var(--app-field-height);
  --border-radius: var(--app-field-radius);
  border: var(--app-field-border);
  border-radius: var(--app-field-radius);
  margin: var(--app-spacing-lg) 0 0;
  padding: 0;
  align-items: center;
  transition: border-color 0.2s ease;
}
app-date-picker .date-text-field:focus-within, app-date-picker .date-text-field:has(ion-input.ion-focused) {
  border-color: var(--ion-color-primary);
}
app-date-picker .date-text-field ion-input {
  --background: transparent;
  --padding-start: 0;
  --padding-end: 0;
  --placeholder-color: var(--app-field-placeholder-color);
  --placeholder-opacity: 1;
  font-size: var(--app-text-body);
  text-align: start;
  flex: 1;
  min-width: 0;
  --highlight-color-focused: var(--ion-color-primary);
  --highlight-color-valid: var(--ion-color-primary);
  caret-color: var(--ion-color-primary);
}
app-date-picker .date-text-field ion-input .input-wrapper {
  padding: 0 0.2rem;
  display: flex;
  align-items: center;
}
app-date-picker .date-text-field ion-button[slot=end] {
  --color: var(--ion-color-primary);
  margin: 0;
  min-height: 36px;
}

/* Date picker popover: roomy, centered, flat (avoids card-on-card stacking) */
ion-popover.date-picker-popover {
  /* Responsive: shrink on narrow screens, cap at 380px on wide screens */
  --width: min(380px, calc(100vw - 70px));
  --max-width: min(420px, calc(100vw - 70px));
  overflow: visible;
  /* Force center on screen (overrides RTL/anchor positioning) */
}
ion-popover.date-picker-popover::part(content) {
  left: 50% !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  padding: 24px !important;
  /* Flatten: no glass, minimal shadow, subtle border (reduces card-on-card feel) */
  background: #ffffff !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  border-radius: 16px !important;
  /* Prevent corners from being clipped on narrow screens */
  overflow: visible !important;
}
ion-popover.date-picker-popover app-date-picker ion-col {
  padding: 4px 8px;
}
ion-popover.date-picker-popover ion-datetime {
  /* Flatten: solid white, no glass/shadow (calendar blends with popover) */
  --background: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  min-width: min(320px, 100%);
}

/* ion-select alert overlay: RTL + DS typography */
ion-alert.select-rtl {
  dir: rtl;
  /* Title is context — smaller than options */
  /* Options are focus — larger than title */
}
ion-alert.select-rtl .alert-head,
ion-alert.select-rtl .alert-title {
  text-align: right !important;
}
ion-alert.select-rtl .alert-title {
  font-size: var(--app-text-body);
  font-weight: var(--app-weight-semibold);
  color: var(--ion-color-medium-shade);
}
ion-alert.select-rtl .alert-sub-title {
  font-size: var(--app-text-footnote);
  color: var(--ion-color-medium);
}
ion-alert.select-rtl .alert-radio-label,
ion-alert.select-rtl .alert-checkbox-label,
ion-alert.select-rtl .alert-button {
  font-size: var(--app-text-body-lg);
}

/* General confirm/message alert: RTL header + body alignment */
ion-alert.alert-rtl {
  dir: rtl;
}
ion-alert.alert-rtl .alert-head,
ion-alert.alert-rtl .alert-title,
ion-alert.alert-rtl .alert-sub-title,
ion-alert.alert-rtl .alert-message {
  text-align: right !important;
}

/* ion-select popover interface: DS typography */
ion-popover::part(content) {
  --app-popover-typography: 1;
}
ion-popover ion-select-popover ion-list-header,
ion-popover ion-select-popover ion-label {
  font-size: var(--app-text-body);
  font-weight: var(--app-weight-semibold);
  color: var(--ion-color-medium-shade);
}
ion-popover ion-select-popover ion-item ion-label {
  font-size: var(--app-text-body-lg);
  font-weight: var(--app-weight-normal);
  color: var(--ion-text-color);
}

/* RTL alerts: stacked buttons, line breaks, cancel in danger color */
ion-alert.alert-rtl {
  direction: rtl;
}
ion-alert.alert-rtl .alert-head,
ion-alert.alert-rtl .alert-title,
ion-alert.alert-rtl .alert-message {
  text-align: right !important;
}
ion-alert.alert-rtl .alert-message {
  white-space: pre-line;
}
ion-alert.alert-rtl .alert-button-group {
  flex-direction: column;
}
ion-alert.alert-rtl .alert-button-group button[role=cancel],
ion-alert.alert-rtl .alert-button-group button.cancel-button,
ion-alert.alert-rtl .alert-button-danger {
  color: var(--ion-color-danger) !important;
}

/* Unsaved-changes confirmation: calmer hierarchy for an older audience.
   Safe action is visually primary; destructive action is subtle (text-only red). */
ion-alert.alert-unsaved-changes {
  /* Safe action: primary visual weight. Overrides the inherited
     .alert-rtl rule that would otherwise color cancel buttons red. */
  /* Destructive action: red text, neutral background — never the dominant control. */
}
ion-alert.alert-unsaved-changes .alert-message {
  font-size: var(--app-text-body-lg);
  line-height: 1.5;
  color: var(--ion-text-color);
  padding-top: var(--app-spacing-md);
  padding-bottom: var(--app-spacing-xl);
}
ion-alert.alert-unsaved-changes .alert-button-group {
  gap: var(--app-spacing-sm);
  padding: var(--app-spacing-sm) 0;
}
ion-alert.alert-unsaved-changes .alert-button {
  min-height: 52px;
  font-size: var(--app-text-body-lg);
}
ion-alert.alert-unsaved-changes .alert-button-group .alert-button-safe {
  color: var(--ion-color-primary) !important;
  font-weight: var(--app-weight-semibold);
}
ion-alert.alert-unsaved-changes .alert-button-group .alert-button-danger {
  font-weight: var(--app-weight-normal);
}

/* Toast: Atmos DS Toaster ported to ion-toast.
 * DS variants: success #23e373 / error #ff0044 / warning #ff7d00 / info #3970f1
 *
 * Important: iOS26 theme applies `glass-background` to ion-toast::part(container)
 * (translucent white 72% + backdrop-filter) which washes the brand color.
 * We override `background` on ::part(container) directly and disable the blur
 * so the solid DS color shows through. Shadow is tinted per variant so the
 * colored pill doesn't sit on a flat black bruise. */
ion-toast.toast-ios26 {
  --border-radius: 20px;
  --padding-top: 12px;
  --padding-bottom: 12px;
  --padding-start: 16px;
  --padding-end: 16px;
  --min-height: 48px;
  --color: #ffffff;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.35;
  /* Success — green */
  /* Error — red */
  /* Warning — yellow, dark text */
  /* Info — blue, white text (royal blue is dark enough for white) */
}
ion-toast.toast-ios26::part(container) {
  border-radius: 20px !important;
  border: none !important;
  overflow: hidden;
  cursor: pointer;
  gap: 10px;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
ion-toast.toast-ios26::part(message) {
  font-weight: 500;
}
ion-toast.toast-ios26::part(icon) {
  width: 20px;
  height: 20px;
  margin-inline-end: 4px;
  flex-shrink: 0;
}
ion-toast.toast-ios26.toast-success {
  --color: #ffffff;
}
ion-toast.toast-ios26.toast-success::part(container) {
  background: #23e373 !important;
  box-shadow: 0 10px 28px rgba(35, 227, 115, 0.45), 0 2px 6px rgba(35, 227, 115, 0.25) !important;
}
ion-toast.toast-ios26.toast-success::part(icon) {
  color: #ffffff;
}
ion-toast.toast-ios26.toast-error {
  --color: #ffffff;
}
ion-toast.toast-ios26.toast-error::part(container) {
  background: #ff0044 !important;
  box-shadow: 0 10px 28px rgba(255, 0, 68, 0.45), 0 2px 6px rgba(255, 0, 68, 0.25) !important;
}
ion-toast.toast-ios26.toast-error::part(icon) {
  color: #ffffff;
}
ion-toast.toast-ios26.toast-warning {
  --color: #1F242C;
}
ion-toast.toast-ios26.toast-warning::part(container) {
  background: #ff7d00 !important;
  box-shadow: 0 10px 28px rgba(255, 125, 0, 0.45), 0 2px 6px rgba(255, 125, 0, 0.25) !important;
}
ion-toast.toast-ios26.toast-warning::part(icon) {
  color: #1F242C;
}
ion-toast.toast-ios26.toast-info {
  --color: #ffffff;
}
ion-toast.toast-ios26.toast-info::part(container) {
  background: #3970f1 !important;
  box-shadow: 0 10px 28px rgba(57, 112, 241, 0.45), 0 2px 6px rgba(57, 112, 241, 0.25) !important;
}
ion-toast.toast-ios26.toast-info::part(icon) {
  color: #ffffff;
}

/* Tab bar: hide when user toggles via More actions (hide-on-landscape class).
 * Slide-down + fade exit (instead of display:none) so the bar and the floating
 * voice circle disappear together with one shared animation. Keep the keyword/
 * duration in sync with .ai-voice-container in voice-command-fab.component.scss. */
ion-tab-bar.ios26-glass-tabs[slot=bottom] {
  transition: transform 280ms ease, opacity 280ms ease, visibility 0s linear 0s;
}

ion-tab-bar.hide-on-landscape {
  transform: translateY(140%) !important;
  opacity: 0 !important;
  pointer-events: none;
  visibility: hidden;
  transition: transform 280ms ease, opacity 280ms ease, visibility 0s linear 280ms;
}

/* Calendar landscape wide mode (driven by sharedData.calendarWideMode). The bar's
   tab buttons + glass disappear so the teacher gets a full-height grid, but — unlike
   hide-on-landscape — the bar element stays painted (NO opacity:0 / transform /
   visibility:hidden). The voice FAB lives inside the bar and is trapped in its
   opacity/transform group; hiding only the chrome lets the circle survive, and it is
   then re-anchored to the bottom-left corner (see voice-command-fab.component.scss). */
ion-tab-bar.ios26-glass-tabs[slot=bottom].wide-fab-mode {
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  pointer-events: none;
  /* The FAB inside is re-anchored with position:fixed (viewport-relative) so its bottom
     and left gaps can be made identical. That only works if NO ancestor is a containing
     block for fixed — neutralise every trigger the theme sets on the bar: the wide-
     viewport centring transform, the activated-state will-change/transform, and the
     glass backdrop-filter (already none above). */
  transform: none !important;
  -webkit-transform: none !important;
  will-change: auto !important;
  filter: none !important;
}

ion-tab-bar.wide-fab-mode .ios26-indicator,
ion-tab-bar.wide-fab-mode ion-tab-button,
ion-tab-bar.wide-fab-mode .tab-fab-slot {
  display: none !important;
}

/* Tab bar: center on desktop/wide viewports.
 * The ios26 theme anchors the bottom tab bar at left:16px with max-width:546px,
 * which leaves it stuck against the left edge on wide screens. Override to center. */
@media (min-width: 768px) {
  ion-tab-bar.ios26-glass-tabs[slot=bottom] {
    left: 50% !important;
    transform: translateX(-50%) translateZ(0) !important;
  }
  ion-tab-bar.ios26-glass-tabs[slot=bottom]:has(ion-tab-button.ion-activated) {
    transform: translateX(-50%) scale(1.038) translateZ(0) !important;
  }
  /* Hidden state on wide viewports must keep the centering translate. */
  ion-tab-bar.ios26-glass-tabs[slot=bottom].hide-on-landscape {
    transform: translateX(-50%) translateY(140%) !important;
  }
}
/* ============================================================
   Liquid-glass tab bar — ported 1:1 from the "Apple Liquid glass
   switcher" CodePen (Den Dionigi). We reuse the existing JS-driven
   --ind-x / --ind-w positioning (computed in tabs.page.ts); only the
   GLASS LOOK + the slide/squish animation are new — the original's
   theme color-swapping between options is intentionally NOT ported.
   NOTE: the original's liquid refraction (backdrop-filter: url(#switcher),
   an feDisplacementMap) was REMOVED. Its scale is in objectBoundingBox
   units, so the displacement is proportional to the element size — the map
   was authored for the CodePen's fixed 244×70 switcher, and on our wider
   343×60 tab bar it warped the (12%-opaque) backdrop into a "ghost second
   bar". It is also a no-op in WKWebView/Safari (iOS ignores url() in
   backdrop-filter), so it can never look right 1:1 on our geometry. What
   sells the glass — blur+saturate + the box-shadow bezel + the sliding
   bubble — is kept and is identical on desktop and device.
   The voice-command FAB in the center slot is untouched.
   ============================================================ */
ion-tab-bar.ios26-glass-tabs[slot=bottom] {
  /* Glass-render primitives — single (light) set, no theme swap.
     These are structural light/shadow reflex values, not brand colors. */
  --c-glass: #bbbbbc;
  --c-light: #fff;
  --c-dark: #000;
  --glass-reflex-light: 1;
  --glass-reflex-dark: 1;
  --saturation: 150%;
  background-color: color-mix(in srgb, var(--c-glass) 12%, transparent) !important;
  backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  -webkit-backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  border: none !important;
  border-radius: 99em !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), transparent), inset 1.8px 3px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent), inset -2px -2px 0px -2px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent), inset -3px -8px 1px -6px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent), inset -0.3px -1px 4px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 12%), transparent), inset -1.5px 2.5px 0px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 0px 3px 4px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 2px -6.5px 1px -4px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent), 0px 1px 5px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent), 0px 6px 16px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 8%), transparent) !important;
}

/* The moving glass bubble — the empty <div class="ios26-indicator"> that until
   now had no styling at all. Positioned via the already-computed --ind-x/--ind-w. */
ion-tab-bar.ios26-glass-tabs .ios26-indicator {
  position: absolute;
  left: 0;
  top: 4px;
  height: calc(100% - 10px);
  width: var(--ind-w, 64px);
  border-radius: 99em;
  z-index: 0;
  pointer-events: none;
  transform: translateX(var(--ind-x, 4px));
  transform-origin: var(--ind-origin-x, 50%) 50%;
  background-color: color-mix(in srgb, var(--c-glass) 36%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), transparent), inset 2px 1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent), inset -1.5px -1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent), inset -2px -6px 1px -5px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent), inset -1px 2px 3px -1px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 0px -4px 1px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent), 0px 3px 6px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 8%), transparent);
  transition: transform 400ms cubic-bezier(1, 0, 0.4, 1), width 400ms cubic-bezier(1, 0, 0.4, 1), background-color 400ms cubic-bezier(1, 0, 0.4, 1), box-shadow 400ms cubic-bezier(1, 0, 0.4, 1);
}

/* Tab buttons (and the FAB) ride above the bubble. */
ion-tab-bar.ios26-glass-tabs ion-tab-button {
  position: relative;
  z-index: 1;
}

/* Suppress the theme's OWN selected-tab highlight so ONLY our liquid-glass bubble
   marks the active tab (otherwise there are two stacked highlights). The theme paints
   `ion-tab-button.ios:not(.ios26-disabled).tab-selected::part(native){background:rgba(var(--ios26-button-color-selected-rgb), 0.095)}`
   — to win we need at least its specificity, so the extra .ios26-glass-tabs ancestor
   class (+ !important) is required; a plain ::part(native) override loses. */
ion-tab-bar.ios26-glass-tabs ion-tab-button:not(.ios26-disabled).tab-selected::part(native) {
  background: transparent !important;
}

/* During a REAL tap the theme spawns a decorative clone of the button for a "pop"
   animation. Per the theme's utils.js `cloneElement`, that clone is
   `<ion-tab-button class="ion-cloned-element">` appended to **document.body** —
   OUTSIDE our bar — so a bar-scoped override can't reach it, and its glass pill
   shows up as a SECOND bubble while pressing. We don't need the theme's pop (our
   own bubble already animates), so hide the clone outright. This MUST be global
   (the clone lives in <body>) and !important to beat the inline `display` the
   theme toggles on the clone while animating. Only tab-button clones are hidden;
   ion-segment-button clones elsewhere are untouched. */
ion-tab-button.ion-cloned-element {
  display: none !important;
}

/* Squish-on-move: tabs.page.ts flips [c-option] to the active tab index on each
   change. A DISTINCT animation-name per index guarantees the keyframes re-fire
   on every move (the same mechanism as the original's per-option name swap).
   The stretch direction follows --ind-origin-x (set in TS from travel direction). */
ion-tab-bar.ios26-glass-tabs[c-option="0"] .ios26-indicator {
  animation: ios26IndSquish0 440ms ease;
}

ion-tab-bar.ios26-glass-tabs[c-option="1"] .ios26-indicator {
  animation: ios26IndSquish1 440ms ease;
}

ion-tab-bar.ios26-glass-tabs[c-option="2"] .ios26-indicator {
  animation: ios26IndSquish2 440ms ease;
}

ion-tab-bar.ios26-glass-tabs[c-option="3"] .ios26-indicator {
  animation: ios26IndSquish3 440ms ease;
}

@keyframes ios26IndSquish0 {
  0% {
    scale: 1 1;
  }
  50% {
    scale: 1.1 1;
  }
  100% {
    scale: 1 1;
  }
}
@keyframes ios26IndSquish1 {
  0% {
    scale: 1 1;
  }
  50% {
    scale: 1.2 1;
  }
  100% {
    scale: 1 1;
  }
}
@keyframes ios26IndSquish2 {
  0% {
    scale: 1 1;
  }
  50% {
    scale: 1.2 1;
  }
  100% {
    scale: 1 1;
  }
}
@keyframes ios26IndSquish3 {
  0% {
    scale: 1 1;
  }
  50% {
    scale: 1.1 1;
  }
  100% {
    scale: 1 1;
  }
}
/* ============================================================
   HEADER — the SAME iOS26 liquid glass as the bottom tab bar.
   Ports the tab-bar glass material up to ion-header so the top
   bar reads as the same glass surface as the bottom one:
     • whole bar  → tab-bar glass (12% tint, blur 8 / saturate 150,
       10-layer reflex bezel). Stays rectangular — it's a top bar,
       NOT a pill, so no 99em radius.
     • each header circle button → the selected-tab BUBBLE glass.
       Neutral (clear) buttons get the full gray-36% bubble; colored
       buttons (confirm ✓ / add +) KEEP their fill and only gain the
       glossy bezel — no color change.
   Baseline being overridden: the external @rdlabo/ionic-theme-ios26
   leaves the toolbar transparent (--background:transparent,
   ::part(background) --opacity:0, faint progressive ::after blur) and
   paints a FLAT glass pill on clear-only ion-buttons CONTAINERS. We
   replace both with the liquid-glass primitives below. The verbose
   ancestor chains (+ !important) exist only to out-specify that
   theme's long :not()/:has() selectors — same tactic as the
   .ios26-glass-tabs ::part(native) override above.
   ============================================================ */
/* Reusable reflex primitives (identical to the tab bar's). */
/* Header-button glass bezel — SYMMETRIC. The tab-bubble's bezel uses diagonal
   offsets (top-left light, bottom-right dark) tuned for a WIDE pill; on a 44px
   circle those directional offsets read as lopsided/non-round. So this version
   uses only an even edge ring + a vertical-only sheen/shade (left↔right
   symmetric → the circle stays perfectly round) and no diagonal drop. The soft
   lift shadow lives on the host instead (see .header-icon-btn rule below),
   because the host's overflow:hidden would clip an outset shadow on ::part. */
/* Directional pill bezel — IDENTICAL to the header circle button's bezel
   (.header-icon-btn, layers 1-6), just on a pill instead of a circle. The user
   wants the search field to read as the SAME control as the button beside it,
   one-to-one: same solid #e9e9e9 rim (layer 1), same 5 reflex layers. Only the
   button's OUTER drop shadow (its layer 7) is omitted, because the search-row
   button drops its shadow too (see the ion-toolbar:has(ion-searchbar) rule
   below) — so search field and search-row button end up pixel-identical chrome. */
/* --- 1. The whole header — ONE continuous glass pane --- */
/* Glass that ONLY reveals on scroll. At rest (top of page, nothing behind the
   bar) it reads as part of the page: NO always-on tint, NO bezel/separator
   lines — just blur+saturate, so the blur frosts whatever scrolls UNDER the
   header and, with nothing behind it, the page shows straight through.
   CRITICAL: apply the filter to ion-header's single `.header-background`
   element — NOT to each `ion-toolbar::part(background)`. A header can stack two
   toolbars (title + search); per-toolbar filters create TWO glass panes with a
   visible seam where they meet. `.header-background` spans the entire header
   behind ALL toolbars, so it's one seamless surface. The toolbar parts stay
   transparent (theme default --opacity:0), letting this single pane show
   through. Scoped to .header-translucent to (a) match the theme rule we're
   overriding for source-order priority and (b) leave the calendar's bespoke
   .app-header-glass header to its own handling. */
ion-header.ios:not(.ios26-disabled).header-translucent .header-background {
  background: transparent !important;
  backdrop-filter: blur(8px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(150%) !important;
  border: none !important;
  box-shadow: none !important;
}

/* --- 2. Header circle buttons → Aaron Iker "liquid glass" button, ported --- */
/* Drop the theme's flat container pill: each button carries its own glass, so
   the wrapper must be inert (else pill-around-button). The long ancestor chain
   out-specifies the theme's clear-only container glass AND the light-bg border
   refinement in ios26-overrides.scss. */
ion-header.ios:not(.ios26-disabled) ion-buttons.ios:not(.ios26-disabled):has(.header-icon-btn) {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

/* COMMON glass scaffolding for EVERY header circle button (neutral + colored).
   The rich layers (diagonal sheen + conic-gradient refraction rim) need REAL
   pseudo-elements, which ion-button's ::part(native) cannot host — so they live
   on the button HOST, with the native part made transparent and lifted above
   them to carry the icon. Only the host's base fill differs per tone (below).
   Angles are static: touch has no hover, matching the original's
   (hover:none)/(pointer:coarse) fallback. */
ion-header.ios:not(.ios26-disabled) .header-icon-btn {
  --c-glass: #bbbbbc;
  --c-light: #fff;
  --c-dark: #000;
  --glass-reflex-light: 1;
  --glass-reflex-dark: 1;
  --saturation: 150%;
  position: relative;
  overflow: hidden; /* clips the fill to the circle */
  /* THE EXACT bottom-bar indicator glass — same 36% fill (per-tone below), same
     backdrop blur the bar gives the indicator, same 7-layer reflex bezel. Proven
     to look perfect as a circle (the user circularised the real .ios26-indicator).
     No conic rim, no diagonal sheen, no matte experiments — just the indicator. */
  backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  -webkit-backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), #e9e9e9), inset 2px 1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent), inset -1.5px -1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent), inset -2px -6px 1px -5px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent), inset -1px 2px 3px -1px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 0px -4px 1px -2px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 10%), transparent), 0px 3px 6px 0px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 8%), transparent) !important;
}

/* native part: transparent, above the pseudo layers, holds the icon */
ion-header.ios:not(.ios26-disabled) .header-icon-btn::part(native) {
  background: transparent !important;
  position: relative;
  z-index: 1;
}

/* Per-tone base fill on the HOST (shows through the transparent native). */
/* Neutral (clear): a LIGHTER glass than the tab-bar indicator. The indicator
   uses #bbbbbc 36% because it floats over darker content; the header button sits
   over the light page, where that mid-gray reads as a heavy "gray bubble" and
   the white bezel highlights pop harshly. Lightening the fill to #ececec lets
   the white reflex layers blend into a soft, even, complete glass rim — a clean
   glass circle, not a bubble. (Verified live in DevTools.) */
ion-header.ios:not(.ios26-disabled) .header-icon-btn.button-clear:not(.tone-add):not(.button-submit) {
  background-color: color-mix(in srgb, #ececec 36%, transparent) !important;
}

/* Add (+ , green) — solid brand fill kept (no glass; see colored-button rule below). */
ion-header.ios:not(.ios26-disabled) .header-icon-btn.tone-add {
  background-color: var(--color-success) !important;
}

/* Confirm (✓ , primary blue) — solid brand fill kept. The theme's
   `button-submit.ion-color-primary` rule sets BOTH the checkmark and a 0.5px
   border to `--ion-color-primary-brightness` (a light cyan tint of the brand
   blue) — the exact icon-cyan + border-cyan to kill. Override those theme
   custom-props at the source: white checkmark, zero border. */
ion-header.ios:not(.ios26-disabled) .header-icon-btn.button-submit {
  background-color: var(--ion-color-primary) !important;
  --color: #fff !important;
  --border-width: 0 !important;
  --border-color: transparent !important;
}

/* COLORED header buttons (confirm ✓ blue, add + green) → NO glass effect.
   Unlike the neutral/clear buttons (back, search, filter, chevron) which KEEP
   the iOS26 liquid-glass bezel, the colored ones are flat solid discs: their
   opaque brand fill makes the inherited backdrop-blur invisible anyway, and the
   shared .header-icon-btn reflex bezel only reads as an unwanted light halo/ring
   over the color. So strip both the backdrop-filter and the 7-layer reflex
   bezel, leaving just a soft neutral lift shadow + a white icon. */
ion-header.ios:not(.ios26-disabled) .header-icon-btn.tone-add,
ion-header.ios:not(.ios26-disabled) .header-icon-btn.button-submit {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: 0 3px 6px 0 color-mix(in srgb, #000 10%, transparent) !important;
}

ion-header.ios:not(.ios26-disabled) .header-icon-btn.tone-add::part(native),
ion-header.ios:not(.ios26-disabled) .header-icon-btn.tone-add ion-icon,
ion-header.ios:not(.ios26-disabled) .header-icon-btn.button-submit::part(native),
ion-header.ios:not(.ios26-disabled) .header-icon-btn.button-submit ion-icon {
  color: #fff !important;
}

/* --- 3. The search field → the SAME glass as the header circle button next to
   it, one-to-one (per user: search fields must not "compete" with the buttons
   around them). Same #ececec 36% fill, same #e9e9e9-rimmed reflex bezel, same
   blur — just a pill instead of a circle. The long ancestor chain out-specifies
   the border/box-shadow refinement for searchbars in ios26-overrides.scss. */
ion-header.ios:not(.ios26-disabled) ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container input.searchbar-input {
  --c-glass: #bbbbbc;
  --c-light: #fff;
  --c-dark: #000;
  --glass-reflex-light: 1;
  --glass-reflex-dark: 1;
  --saturation: 150%;
  /* Soften the inner reflex: layer 5 (top-inner) becomes a faint WHITE glow
     instead of a black shade. The bezel's layer 6 (bottom-inner) is the only
     dark accent now, and it's a soft #373737 rather than pure black — so the
     field reads as light, glassy and calm, never embossed. */
  --c-dark: #ffffff;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), #e9e9e9), inset 2px 1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent), inset -1.5px -1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent), inset -2px -6px 1px -5px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent), inset -1px 2px 3px -1px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 0px -4px 1px -2px color-mix(in srgb, #373737 calc(var(--glass-reflex-dark) * 10%), transparent) !important;
  background: color-mix(in srgb, #ececec 36%, transparent) !important;
  backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  -webkit-backdrop-filter: blur(8px) saturate(var(--saturation)) !important;
  border: none !important;
}

/* Placeholder dissolves on focus — fades + blurs almost to nothing, so entering
   the field feels like a real transition into it. */
ion-header.ios:not(.ios26-disabled) ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container input.searchbar-input::placeholder {
  transition: opacity 220ms ease, filter 220ms ease;
}

ion-header.ios:not(.ios26-disabled) ion-searchbar.ios:not(.ios26-disabled):not(.searchbar-classic) .searchbar-input-container input.searchbar-input:focus::placeholder {
  opacity: 0.1 !important;
  filter: blur(2.5px);
}

/* Search-row buttons (e.g. the filter toggle beside the searchbar) = the EXACT
   same glass as the search field next to them, one-to-one (per user). So they
   take the field's bezel verbatim — the directional pill bezel (no outer lift,
   keeping them secondary to the title-bar +/chevron which retain their lift) and
   the same --c-dark:#ffffff softening (white top-inner glow, #373737 bottom).
   Scoped to the toolbar that holds the searchbar; wins over the .header-icon-btn
   host shadow above via the extra ion-toolbar:has(ion-searchbar) ancestor. */
ion-header.ios:not(.ios26-disabled) ion-toolbar:has(ion-searchbar) .header-icon-btn {
  --c-dark: #ffffff;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 10%), #e9e9e9), inset 2px 1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 90%), transparent), inset -1.5px -1px 0px -1px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 80%), transparent), inset -2px -6px 1px -5px color-mix(in srgb, var(--c-light) calc(var(--glass-reflex-light) * 60%), transparent), inset -1px 2px 3px -1px color-mix(in srgb, var(--c-dark) calc(var(--glass-reflex-dark) * 20%), transparent), inset 0px -4px 1px -2px color-mix(in srgb, #373737 calc(var(--glass-reflex-dark) * 10%), transparent) !important;
}

/* Validation alert modal — centered, RTL, warning icons (replaces ion-alert for student validation) */
ion-modal.validation-alert-modal {
  --width: min(90vw, 360px);
  --height: auto;
  --max-height: 80vh;
  --border-radius: var(--app-card-radius-sm, 15px);
  --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
ion-modal.validation-alert-modal .modal-wrapper {
  position: absolute;
  display: block;
}
ion-modal.validation-alert-modal ion-content {
  --background: var(--ion-background-color);
}

/* Date-range picker modal — centered, auto-height white card (our DatePickerPage in
   range mode). Mirrors validation-alert-modal sizing. */
ion-modal.date-range-modal {
  --width: min(92vw, 380px);
  --height: auto;
  --max-height: 90vh;
  --border-radius: var(--app-card-radius-sm, 15px);
  --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
ion-modal.date-range-modal .modal-wrapper, ion-modal.date-range-modal::part(content) {
  position: absolute;
  display: block;
}

/* Branded confirm dialog — centered alert-style modal. The white card + soft shadow
   live inside the component; the modal frame itself is transparent so the floating
   icon badge can overflow above the card (overflow:visible). Replaces ion-alert for
   all yes/no & delete confirmations. */
ion-modal.confirm-dialog-modal {
  --width: min(88vw, 340px);
  --height: auto;
  --max-height: 90vh;
  --background: transparent;
  --box-shadow: none;
  --border-radius: 0;
}
ion-modal.confirm-dialog-modal .modal-wrapper, ion-modal.confirm-dialog-modal::part(content) {
  position: absolute;
  display: block;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  contain: none;
}

/* Action sheet: ביטול without icon, danger color */
ion-action-sheet .action-sheet-cancel-danger {
  color: var(--ion-color-danger) !important;
}
ion-action-sheet .action-sheet-cancel-danger ion-icon {
  display: none;
}

/* ionic2-calendar: fix weekview (7 columns) and monthview (6×7 grid) layout.
 * Library uses ViewEncapsulation.None; styles must be global.
 * Scoped to .calendar-body-wrap so only tab-calendar is affected. */
.calendar-body-wrap {
  /* Height chain: container → view hosts → swipers */
  /* Month view: flex column so calendar grid + event detail stack, and the
     whole thing scrolls vertically. The grid (.swiper-wrapper) sits on top at its
     natural height; the selected-day event list flows below it. Together they
     exceed the fixed 100% height, so .monthview-swiper is the vertical scroller.
     overflow-x stays hidden so the horizontal month-pager slides remain clipped. */
  /* Event list below the calendar grid. flex:0 0 auto + overflow:visible so it
     takes its FULL natural height (every event) and lets the .monthview-swiper
     scroller reach them. Previously flex:1 1 auto + overflow:hidden capped it to
     the leftover space and clipped the rest — and there was no inner scroller,
     because our custom <app-selected-events-list> replaces the library's
     .event-detail-container ion-list that the rule below was written for. */
  /* Week view: 7 day columns + time column, position context for scroll area */
  /* שבועי בלבד: שורת הימים (התאריכים) נשארת קבועה בראש אזור הגלילה, בעוד
     שורת "כל היום" + רשת השעות נגללות מתחתיה. הסלקטור הוא דווקא table.weekview-header
     (ולא .weekview-header סתם) כי גם תאי ה-th נושאים את אותה מחלקה.
     רקע אטום + z-index גבוה מ-"כל היום" (2) כדי שהתוכן הנגלל לא יציץ מאחורי השורה. */
  /* מצב רחב לרוחב (תצוגה שבועית): ההאדר מוסתר (host .calendar-wide), אז שורת הימים
     ה-sticky יושבת ב-top של אזור הגלילה. להוסיף safe-area כדי שלא תיחתך מאחורי
     המגרעת/שעון-המצב בסיבוב המכשיר לרוחב. */
  /* האירועים (שעות + "כל היום") חייבים להישאר מתחת לשורת הימים ה-sticky
     כשגוללים — אחרת הם מטפסים ומכסים אותה. */
  /* Hour column fixed; 7 day columns share remaining width via table-layout:fixed */
  /* Day-view height chain (week-view's equivalents are defined above): the slide
     and its swiper slides must stretch full height so the slide-container can be
     the scroll viewport. */
  /* === "כל היום" (all-day) row scrolls WITH the hours — week + day === */
  /* The library keeps the day-header + .weekview-allday-table in normal flow at
     the top of the slide-container, then lays the hours inside
     .weekview-normal-event-container (position:absolute; inset:0; margin-top:87px)
     whose inner .scroll-content (overflow-y:auto) is the ONLY scroller — so the
     all-day row stays pinned while the hours scroll under it.
     To make the whole view (header + all-day + hours) scroll as one unit (like
     month view), move the scroll up to the slide-container and let the hours flow
     in normal layout instead of being an absolute inner-scroller.
     Trade-off: the library's [scrollToHour] auto-scroll-to-current-hour no longer
     fires on open (it targets the now-non-scrolling inner .scroll-content). */
  /* Current time line — floating overlay (position updates on scroll).
     Shared by day + week views (week spans all day columns). */
}
.calendar-body-wrap .monthview-container,
.calendar-body-wrap .weekview-container,
.calendar-body-wrap .dayview-container {
  display: block !important;
  height: 100% !important;
  min-height: 320px;
}
.calendar-body-wrap monthview,
.calendar-body-wrap weekview,
.calendar-body-wrap dayview {
  display: block !important;
  height: 100% !important;
}
.calendar-body-wrap .monthview-swiper,
.calendar-body-wrap .weekview-swiper,
.calendar-body-wrap .dayview-swiper {
  height: 100% !important;
  min-height: 320px;
}
.calendar-body-wrap .monthview-swiper {
  display: flex !important;
  flex-direction: column !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.calendar-body-wrap .monthview-swiper .swiper-wrapper {
  flex: 0 0 auto !important;
  height: auto !important;
}
.calendar-body-wrap .monthview-swiper .swiper-slide {
  height: auto !important;
}
.calendar-body-wrap .monthview-swiper .monthview-event-detail-wrap {
  flex: 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
}
.calendar-body-wrap .monthview-swiper .monthview-event-detail-wrap .event-detail-container,
.calendar-body-wrap .monthview-swiper .monthview-event-detail-wrap ion-list.event-detail-container {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  --background: transparent;
}
.calendar-body-wrap .monthview-datetable {
  width: 100% !important;
  table-layout: fixed !important;
}
.calendar-body-wrap .monthview-datetable td,
.calendar-body-wrap .monthview-datetable th {
  min-height: 36px !important;
  vertical-align: middle !important;
}
.calendar-body-wrap .weekview-slide-container {
  position: relative !important;
  height: 100% !important;
  min-height: 350px;
}
.calendar-body-wrap .weekview-swiper .swiper-wrapper,
.calendar-body-wrap .weekview-swiper .swiper-slide {
  height: 100% !important;
}
.calendar-body-wrap .weekview-header,
.calendar-body-wrap .weekview-normal-event-table,
.calendar-body-wrap .weekview-allday-content-table {
  table-layout: fixed !important;
  width: 100% !important;
}
.calendar-body-wrap table.weekview-header {
  position: sticky !important;
  top: 0;
  z-index: 50;
  /* רקע אטום נדרש כדי שהשעות הנגללות לא יציצו מאחורי השורה, אבל בצבע רקע
     העמוד (לא הלבן של app-bg-card) כדי שהשורה תתמזג עם הרשת/ההאדר במקום
     להיראות כקופסה לבנה נפרדת. */
  background: var(--app-bg-page);
}
@media (orientation: landscape) {
  .calendar-body-wrap .calendar-wide table.weekview-header {
    top: env(safe-area-inset-top) !important;
  }
}
.calendar-body-wrap .weekview-allday-table,
.calendar-body-wrap .weekview-normal-event-container,
.calendar-body-wrap .weekview-normal-event-container .calendar-event {
  z-index: 1 !important;
}
.calendar-body-wrap .weekview-header th.calendar-hour-column,
.calendar-body-wrap .weekview-normal-event-table td.calendar-hour-column {
  width: 50px !important;
  min-width: 50px !important;
}
.calendar-body-wrap .dayview-slide-container {
  position: relative !important;
  height: 100% !important;
  min-height: 350px;
}
.calendar-body-wrap .dayview-swiper .swiper-wrapper,
.calendar-body-wrap .dayview-swiper .swiper-slide {
  height: 100% !important;
}
.calendar-body-wrap .weekview-slide-container,
.calendar-body-wrap .dayview-slide-container {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  /* Trailing tab-bar clearance is provided by the existing .scroll-content
     padding-bottom rule in calendar.page.scss. */
}
.calendar-body-wrap .weekview-normal-event-container,
.calendar-body-wrap .dayview-normal-event-container {
  position: relative !important;
  inset: auto !important;
  margin-top: 0 !important;
  overflow: visible !important;
  height: auto !important;
  /* iOS WebKit renders this container as display:inline (block on desktop Chrome),
     which makes it a ZERO-WIDTH containing block: clientWidth=0, so the absolutely
     positioned current-time overlay/line (left:0;right:0 OR width:100%) collapse to
     width:0 and never paint — confirmed via on-device WebKit inspector. Forcing
     block restores a real-width containing block so the line spans the full column. */
  display: block !important;
}
.calendar-body-wrap .weekview-normal-event-container .scroll-content,
.calendar-body-wrap .dayview-normal-event-container .scroll-content {
  overflow: visible !important;
  height: auto !important;
}
.calendar-body-wrap .calendar-current-time-overlay {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  pointer-events: none;
  z-index: 1000;
}
.calendar-body-wrap .calendar-current-time-line {
  position: absolute;
  left: 0;
  right: 0;
  top: -1px; /* center the 2px line on the overlay's y-position */
  height: 2px;
  background: var(--color-danger) !important;
  display: flex;
  align-items: center;
  pointer-events: none;
  z-index: 1000;
  transform: translateZ(0);
}
.calendar-body-wrap .calendar-current-time-bubble {
  position: absolute;
  inset-inline-start: 0;
  top: 50%;
  transform: translateY(-50%);
  background: var(--color-danger) !important;
  color: white !important;
  font-size: var(--app-text-footnote);
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 999px;
  white-space: nowrap;
  z-index: 1001;
}

/* === Ionic primitive typography alignment === */
ion-label {
  font-size: var(--app-text-body);
  line-height: var(--app-lh-normal);
}

ion-label[slot=end],
ion-note {
  font-size: var(--app-text-footnote);
  color: var(--ion-color-medium);
}

/* Tab bar labels: iOS native uses ~11px, override the global 16px ion-label */
ion-tab-button ion-label {
  font-size: 11px;
  line-height: var(--app-lh-tight);
}
