/** Ionic CSS Variables **/
:root {
  --ion-font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif;
  /** primary **/
  --ion-color-primary: #1a6ab5;
  --ion-color-primary-rgb: 26, 106, 181;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #175d9e;
  --ion-color-primary-tint: #3179bc;
  /** secondary **/
  --ion-color-secondary: #0e7490;
  --ion-color-secondary-rgb: 14, 116, 144;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb: 255, 255, 255;
  --ion-color-secondary-shade: #0c677e;
  --ion-color-secondary-tint: #26829b;
  /** tertiary **/
  --ion-color-tertiary: #4f46e5;
  --ion-color-tertiary-rgb: 79, 70, 229;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #453eca;
  --ion-color-tertiary-tint: #6159e8;
  /** success **/
  --ion-color-success: #16a34a;
  --ion-color-success-rgb: 22, 163, 74;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb: 255, 255, 255;
  --ion-color-success-shade: #138f41;
  --ion-color-success-tint: #2dac5c;
  /** warning **/
  --ion-color-warning: #e6b800;
  --ion-color-warning-rgb: 230, 184, 0;
  --ion-color-warning-contrast: #ffffff;
  --ion-color-warning-contrast-rgb: 255, 255, 255;
  --ion-color-warning-shade: #cca300;
  --ion-color-warning-tint: #e9bf1a;
  /** danger **/
  --ion-color-danger: #d03030;
  --ion-color-danger-rgb: 208, 48, 48;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #b82a2a;
  --ion-color-danger-tint: #d84545;
  /** dark **/
  --ion-color-dark: #222428;
  --ion-color-dark-rgb: 34, 34, 34;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb: 255, 255, 255;
  --ion-color-dark-shade: #1e2023;
  --ion-color-dark-tint: #383a3e;
  /** medium **/
  --ion-color-medium: #989aa2;
  --ion-color-medium-rgb: 152, 154, 162;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb: 255, 255, 255;
  --ion-color-medium-shade: #86888f;
  --ion-color-medium-tint: #a2a4ab;
  /** light **/
  --ion-color-light: #f4f5f8;
  --ion-color-light-rgb: 244, 244, 244;
  --ion-color-light-contrast: #000000;
  --ion-color-light-contrast-rgb: 0, 0, 0;
  --ion-color-light-shade: #d7d8da;
  --ion-color-light-tint: #f5f6f9;
  --app-bg: #f2f2f7;
  --app-card-radius: 14px;
  --app-btn-radius: 8px;
  --app-btn-height: 44px;
  --app-shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08);
  --app-shadow-md: 0 2px 10px rgba(0, 0, 0, 0.10);
  --app-shadow-lg: 0 4px 18px rgba(0, 0, 0, 0.13);
  --app-input-border: 1px solid #d1d5db;
  --app-input-radius: 8px;
  --app-input-height: 40px;
}
html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: 0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #3880ff) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;--ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;--ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #5260ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd36f) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;--ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;--ion-color-tint: var(--ion-color-success-tint, #42d77d) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #eb445a) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;--ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #92949c) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #808289) !important;--ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none !important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports(padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports(padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translate3d(0,  0,  0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px rgba(0,0,0,.08)}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px rgba(0,0,0,.08)}.md .menu-content-reveal{box-shadow:4px 0px 16px rgba(0,0,0,.18)}.md .menu-content-push{box-shadow:4px 0px 16px rgba(0,0,0,.18)}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:300ms transform cubic-bezier(0.25, 0.8, 0.5, 1)}@media(prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none !important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}

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:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;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, #3880ff)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}

.ion-hide{display:none !important}.ion-hide-up{display:none !important}.ion-hide-down{display:none !important}@media(min-width: 576px){.ion-hide-sm-up{display:none !important}}@media(max-width: 575.98px){.ion-hide-sm-down{display:none !important}}@media(min-width: 768px){.ion-hide-md-up{display:none !important}}@media(max-width: 767.98px){.ion-hide-md-down{display:none !important}}@media(min-width: 992px){.ion-hide-lg-up{display:none !important}}@media(max-width: 991.98px){.ion-hide-lg-down{display:none !important}}@media(min-width: 1200px){.ion-hide-xl-up{display:none !important}}@media(max-width: 1199.98px){.ion-hide-xl-down{display:none !important}}

.ion-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-self-start{align-self:flex-start !important}.ion-align-self-end{align-self:flex-end !important}.ion-align-self-center{align-self:center !important}.ion-align-self-stretch{align-self:stretch !important}.ion-align-self-baseline{align-self:baseline !important}.ion-align-self-auto{align-self:auto !important}.ion-wrap{flex-wrap:wrap !important}.ion-nowrap{flex-wrap:nowrap !important}.ion-wrap-reverse{flex-wrap:wrap-reverse !important}.ion-justify-content-start{justify-content:flex-start !important}.ion-justify-content-center{justify-content:center !important}.ion-justify-content-end{justify-content:flex-end !important}.ion-justify-content-around{justify-content:space-around !important}.ion-justify-content-between{justify-content:space-between !important}.ion-justify-content-evenly{justify-content:space-evenly !important}.ion-align-items-start{align-items:flex-start !important}.ion-align-items-center{align-items:center !important}.ion-align-items-end{align-items:flex-end !important}.ion-align-items-stretch{align-items:stretch !important}.ion-align-items-baseline{align-items:baseline !important}

@charset "UTF-8";
/*
 * App Global CSS
 * ----------------------------------------------------------------------------
 * Put style rules here that you want to apply globally. These styles are for
 * the entire app and not just one component. Additionally, this file can be
 * used as an entry point to import other CSS/Sass files to be included in the
 * output CSS.
 * For more information on global stylesheets, visit the documentation:
 * https://ionicframework.com/docs/layout/global-stylesheets
 */
/* Core CSS required for Ionic components to work properly */
/* Basic CSS for apps built with Ionic */
/* Optional CSS utils that can be commented out */
body, ion-app {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

ion-header {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22) !important;
}
ion-header::after {
  display: none !important;
}
ion-header ion-toolbar {
  --border-width: 0 !important;
  --min-height: 56px;
}
ion-header ion-title {
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: var(--ion-color-primary-contrast);
}
ion-header ion-back-button,
ion-header ion-menu-button {
  color: inherit;
}

.alert-btn-danger {
  color: var(--ion-color-danger) !important;
  font-weight: 600;
}

.alert-btn-primary {
  color: var(--ion-color-primary) !important;
  font-weight: 600;
}

@keyframes custom-loader-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes custom-loader-slide {
  0% {
    left: -50%;
  }
  100% {
    left: 110%;
  }
}
.app-loading-overlay {
  --backdrop-opacity: 0.35;
}
.app-loading-overlay .loading-wrapper {
  border-radius: 24px !important;
  padding: 36px 32px 28px !important;
  flex-direction: column !important;
  align-items: center !important;
  min-width: 240px !important;
  max-width: 300px !important;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.14) !important;
  background: #ffffff !important;
  gap: 0 !important;
}
.app-loading-overlay .loading-spinner {
  display: none !important;
}
.app-loading-overlay .loading-message {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.custom-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  width: 100%;
}

.custom-loader-spinner {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 4.5px solid #e8edf6;
  border-top-color: var(--ion-color-primary, #3880ff);
  animation: custom-loader-spin 0.75s linear infinite;
  flex-shrink: 0;
}

.custom-loader-bar-track {
  width: 100%;
  height: 3px;
  background: #e8edf6;
  border-radius: 3px;
  overflow: hidden;
  position: relative;
}

.custom-loader-bar-fill {
  position: absolute;
  top: 0;
  left: -50%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, rgba(56, 128, 255, 0.05), var(--ion-color-primary, #3880ff), rgba(56, 128, 255, 0.05));
  border-radius: 3px;
  animation: custom-loader-slide 1.6s ease-in-out infinite;
}

.custom-loader-text {
  font-size: 13px;
  color: #7a8899;
  text-align: center;
  margin: 0;
  padding: 0;
  line-height: 1.5;
  min-height: 1.5em;
}

.close-order-modal-css .modal-wrapper {
  --height: 500px ;
}

.modal-fullscreen {
  --width: 100%;
  --height: 100%;
  --border-radius: 0;
}
.modal-fullscreen::part(content) {
  border-radius: 0;
}

.modal-card {
  --width: 92%;
  --max-width: 680px;
  --height: 82%;
  --border-radius: 16px;
}
.modal-card::part(content) {
  border-radius: 16px;
}

.unsynced-modal {
  --height: 65%;
  --max-height: 85vh;
  --border-radius: 16px;
  --width: 92%;
  --max-width: 600px;
}
.unsynced-modal::part(content) {
  border-radius: 16px;
}

.edit-notification-modal {
  --height: 80%;
  --width: 80%;
  --max-width: 800px;
  --border-radius: 16px;
}
.edit-notification-modal::part(content) {
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.edit-notification-modal ion-header ion-toolbar {
  --border-width: 0;
}
@media (min-width: 1200px) {
  .edit-notification-modal {
    --width: 85%;
    --height: 85%;
    --max-width: 85%;
  }
  .edit-notification-modal::part(content) {
    border-radius: 16px;
  }
}
@media (max-width: 768px) {
  .edit-notification-modal {
    --width: 95%;
    --height: 90%;
  }
  .edit-notification-modal::part(content) {
    border-radius: 16px;
  }
}

.ios .edit-notification-modal {
  --height: 80%;
}
@media (min-width: 1200px) {
  .ios .edit-notification-modal {
    --height: 85%;
  }
}

ion-toast {
  --background: rgba(var(--ion-color-primary-rgb), 0.96);
  --color: #ffffff;
  --border-radius: 12px;
  --box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34);
  --max-width: 92%;
  --min-height: 48px;
}

ion-toast .toast-message {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.15px;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.ios ion-toast,
.md ion-toast {
  --border-width: 1px;
  --border-style: solid;
  --border-color: rgba(255, 255, 255, 0.22);
}

ion-alert {
  --backdrop-opacity: 0.5;
}

ion-alert .alert-wrapper {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(13, 23, 38, 0.25);
  max-width: 340px;
  width: 90vw;
}

ion-alert .alert-head {
  padding: 22px 20px 10px;
  background: #fff;
}

ion-alert .alert-title {
  color: #111827;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.1px;
}

ion-alert .alert-sub-title {
  color: #6b7280;
  margin-top: 4px;
  font-size: 0.88rem;
}

ion-alert .alert-message {
  color: #374151;
  font-size: 0.92rem;
  line-height: 1.5;
  padding: 4px 20px 18px;
  background: #fff;
}

ion-alert .alert-input-group {
  padding: 0 16px 10px;
  background: #fff;
}

ion-alert .alert-input {
  border-radius: 8px;
  border: 1.5px solid #d1d5db;
  padding: 10px 12px;
  font-size: 0.92rem;
  color: #111827;
  background: #f9fafb;
}

ion-alert .alert-button-group {
  display: flex;
  flex-direction: row;
  border-top: 1px solid #e5e7eb;
  padding: 0;
  gap: 0;
}

ion-alert .alert-button {
  flex: 1;
  border-radius: 0;
  min-height: 50px;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.1px;
  color: var(--ion-color-primary);
  background: #fff;
  border-right: 1px solid #e5e7eb;
  text-transform: uppercase;
  text-align: center;
  justify-content: center;
}

ion-alert .alert-button .alert-button-inner {
  justify-content: center;
  text-align: center;
}

ion-alert .alert-button:last-child {
  border-right: none;
}

ion-alert .alert-button.alert-button-role-cancel {
  color: #6b7280;
  font-weight: 500;
  background: #fff;
}

ion-alert .alert-button.alert-button-role-destructive,
.alert-button-danger {
  color: var(--ion-color-danger) !important;
  font-weight: 700 !important;
}

ion-button {
  --border-radius: 8px;
  border-radius: 8px;
  overflow: hidden;
  min-height: var(--app-btn-height, 44px);
  letter-spacing: 0.6px !important;
}

ion-select {
  --placeholder-color: #999;
  --color: #111;
  width: 100%;
}

.select-popover .popover-content {
  --width: 220px;
}

ion-select-option {
  color: #111;
}

ion-button::part(native) {
  border-radius: 8px;
}

/* Force visible cursor in all Ionic inputs/textareas app-wide.
   Ionic internally does caret-color: var(--highlight-color), which becomes
   transparent when --highlight-color-focused is suppressed. */
.native-input,
.native-textarea {
  caret-color: auto !important;
}

ion-button.start-disable,
ion-button.button-disabled,
ion-button.browser-disabled-btn {
  --background: #6b7280 !important;
  --color: #ffffff !important;
  --border-color: transparent !important;
  --box-shadow: none !important;
  --opacity: 1 !important;
}

ion-button.start-enable {
  --border-width: 1px !important;
  --border-style: solid !important;
  --border-color: var(--ion-color-primary) !important;
  --background: var(--ion-color-primary) !important;
  --color: #ffffff !important;
  --border-radius: 8px !important;
  --box-shadow: 0 6px 14px rgba(28, 45, 66, 0.16) !important;
}

ion-badge {
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 14px;
}

.workorders-sort-sheet .action-sheet-button.sort-selected-option {
  background: rgba(var(--ion-color-medium-rgb), 0.2);
  color: var(--ion-color-dark);
  font-weight: 600;
}

.editor-save-alert .alert-wrapper {
  border-radius: 14px;
  overflow: hidden;
  min-width: 260px;
}
.editor-save-alert .alert-head {
  padding-bottom: 6px;
}
.editor-save-alert .alert-message {
  font-size: 13px;
  color: #6b7280;
  padding-top: 0;
  padding-bottom: 12px;
}
.editor-save-alert .alert-button-group {
  display: flex;
  flex-direction: row;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding: 0;
  gap: 0;
}
.editor-save-alert .alert-button-group button {
  flex: 1;
  border-radius: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.editor-save-alert .alert-button-group button:not(:last-child) {
  border-right: 1px solid rgba(0, 0, 0, 0.1);
}
.editor-save-alert .alert-btn-cancel {
  color: #6b7280 !important;
}
.editor-save-alert .alert-btn-secondary {
  color: var(--ion-color-primary) !important;
}
.editor-save-alert .alert-btn-primary {
  color: var(--ion-color-primary) !important;
  font-weight: 700 !important;
}

/* ===================================================================== TMMTX
   The app was laid out for a phone. On the Samsung tablets in the shop it runs
   at 1280x800dp, and at that size the phone layout reads as wrong: a card
   stretched across the whole screen with its value 1500px from its label, a
   placeholder the size of a dinner plate, and the last rows of the order
   sliding under the tab bar.

   Scoped to body.tmmtx so TMMC's devices keep the layout they have. */
body.tmmtx {
  /* Content ran under the bottom tab bar, so the last fields on the order
     screen stayed hidden behind it even scrolled to the end.
     !important because each page sets its own --padding-bottom from its
     component stylesheet; this has to win over all of them, and it is scoped
     to this deployment so it cannot reach TMMC. The value clears a 64px tab
     bar plus the gesture inset below it. */
  /* Reading measure. A label on the far left with its value most of a metre
     away is not a row anybody can scan, so the card stops widening and centres.
     No breakpoint on purpose: min() means a phone or a tablet in portrait is
     unaffected (the card is already narrower than the cap) and every screen
     wider than the cap gets the same treatment. We do not know which tablets
     the shop has, so nothing here is tuned to one of them. */
  /* Inside the card, a field and its value belong together. Ionic's md
     breakpoint puts them in two columns from 768px of *screen*, which on a
     wide tablet leaves a label and its value at opposite ends of the card. */
  /* "No image available" was drawn at full height, pushing the real detail
     below the fold for the sake of a placeholder saying there is nothing to
     see. Every screen that has one, not just the order screen: this element
     is only in the DOM when there are no images at all, so shrinking it can
     never crop a photograph — which is what I wrongly assumed when I first
     limited this to one page. */
  /* Small controls people are expected to hit with a gloved finger. The delete
     button on a photograph was 36px wide and the toolbar's own buttons 38x32 —
     both under the 44 that Android asks for. */
  /* The connection chip in the tab bar carries the sync message during login
     ("[7/12] Maintenance Operation Images…"). It grew with the text and sat
     over the tab beside it. Hold it to its own width and let it ellipsize. */
}
body.tmmtx ion-content {
  --padding-top: 16px !important;
  --padding-start: 16px !important;
  --padding-end: 16px !important;
}
body.tmmtx ion-content {
  --padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
}
body.tmmtx ion-content.assistant-content,
body.tmmtx ion-content.operations-content {
  --padding-bottom: 16px !important;
}
body.tmmtx ion-card.workorder-card,
body.tmmtx ion-card.details-card,
body.tmmtx ion-card.operation-card,
body.tmmtx ion-card.operations-card,
body.tmmtx .operation-layout {
  max-width: min(940px, 100%);
  margin-left: auto;
  margin-right: auto;
}
body.tmmtx .chat-card,
body.tmmtx .quota-exhausted-outer {
  max-width: min(940px, 100%);
  margin-left: auto;
  margin-right: auto;
}
body.tmmtx .composer-row,
body.tmmtx .error-banner {
  width: min(940px, 100%);
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  align-self: center;
}
body.tmmtx .operation-layout > ion-card.operation-card {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  align-self: stretch;
  width: auto;
}
body.tmmtx ion-card ion-col {
  min-width: 0;
}
body.tmmtx .no-image-svg {
  max-height: 150px;
  width: auto;
}
body.tmmtx .image-delete-btn,
body.tmmtx .nav-slide-btn,
body.tmmtx .slide-nav-btn {
  min-width: 44px;
  min-height: 44px;
}
body.tmmtx ion-toolbar ion-button {
  min-width: 44px;
  min-height: 44px;
}
body.tmmtx .conn-text {
  display: inline-block;
  max-width: 128px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
