/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/core.css ***!
  \**********************************************************************************************************************************************************************************************************************************/
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-font-family: var(--ion-default-font);
}

body {
  background: var(--ion-background-color);
}

body.backdrop-no-scroll {
  overflow: hidden;
}

/**
 * Card style modal needs additional padding on the
 * top of the header. We accomplish this by targeting
 * the first toolbar in the header.
 * Footer also needs this. We do not adjust the bottom
 * padding though because of the safe area.
 */
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;
}

/**
* Card style modal needs additional padding on the
* bottom of the header. We accomplish this by targeting
* the last toolbar in the header.
*/
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;
}

/**
* Add padding on the left and right
* of toolbars while accounting for
* safe area values when in landscape.
*/
html.ios ion-modal ion-toolbar {
  padding-right: calc(var(--ion-safe-area-right) + 8px);
  padding-left: calc(var(--ion-safe-area-left) + 8px);
}

/**
 * Card style modal on iPadOS
 * should only have backdrop on first instance.
 */
@media screen and (min-width: 768px) {
  html.ios ion-modal.modal-card:first-of-type {
    --backdrop-opacity: 0.18;
  }
}
/**
 * Subsequent modals should not have a backdrop/box shadow
 * as it will cause the screen to appear to get progressively
 * darker. With Ionic 6, declarative modals made it
 * possible to have multiple non-presented modals in the DOM,
 * so we could no longer rely on ion-modal:first-of-type.
 * Here we disable the opacity/box-shadow for every modal
 * that comes after the first presented modal.
 *
 * Note: ion-modal:not(.overlay-hidden):first-of-type
 * does not match the first modal to not have
 * the .overlay-hidden class, it will match the
 * first modal in general only if it does not
 * have the .overlay-hidden class.
 * The :nth-child() pseudo-class has support
 * for selectors which would help us here. At the
 * time of writing it does not have great cross browser
 * support.
 *
 * Note 2: This should only apply to non-card and
 * non-sheet modals. Card and sheet modals have their
 * own criteria for displaying backdrops/box shadows.
 *
 * Do not use :not(.overlay-hidden) in place of
 * .show-modal because that triggers a memory
 * leak in Blink: https://bugs.chromium.org/p/chromium/issues/detail?id=1418768
 */
ion-modal.modal-default.show-modal ~ ion-modal.modal-default {
  --backdrop-opacity: 0;
  --box-shadow: none;
}

/**
 * This works around a bug in WebKit where the
 * content will overflow outside of the bottom border
 * radius when re-painting. As long as a single
 * border radius value is set on .ion-page, this
 * issue does not happen. We set the top left radius
 * here because the top left corner will always have a
 * radius no matter the platform.
 * This behavior only applies to card modals.
 */
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;
  overflow: hidden;
  z-index: 0;
}

/**
 * When making custom dialogs, using
 * ion-content is not required. As a result,
 * some developers may wish to have dialogs
 * that are automatically sized by the browser.
 * These changes allow certain dimension values
 * such as fit-content to work correctly.
 */
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 {
  /* stylelint-disable-next-line declaration-no-important */
  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: constant(safe-area-inset-top)) {
  html {
    --ion-safe-area-top: constant(safe-area-inset-top);
    --ion-safe-area-bottom: constant(safe-area-inset-bottom);
    --ion-safe-area-left: constant(safe-area-inset-left);
    --ion-safe-area-right: constant(safe-area-inset-right);
  }
}
@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;
}

.ios .menu-content-reveal {
  box-shadow: -8px 0 42px rgba(0, 0, 0, 0.08);
}

[dir=rtl].ios .menu-content-reveal {
  box-shadow: 8px 0 42px rgba(0, 0, 0, 0.08);
}

.md .menu-content-reveal {
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
}

.md .menu-content-push {
  box-shadow: 4px 0px 16px rgba(0, 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 {
    /* stylelint-disable declaration-no-important */
    transition: none !important;
  }
}
/**
 * The > [slot="header"] selector ensures that we do
 * not modify toggle icons for any nested accordions. The state
 * of one accordion should not affect any accordions inside
 * of a nested accordion group.
 */
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;
}

/**
 * The .ion-datetime-button-overlay class contains
 * styles that allow any modal/popover to be
 * sized according to the dimensions of the datetime
 * when used with ion-datetime-button.
 */
.ion-datetime-button-overlay {
  --width: fit-content;
  --height: fit-content;
}

/**
 * The grid variant can scale down when inline.
 * When used in a `fit-content` overlay, this causes
 * the overlay to shrink when the month/year picker is open.
 * Explicitly setting the dimensions lets us have a consistently
 * sized grid interface.
 */
.ion-datetime-button-overlay ion-datetime.datetime-grid {
  width: 320px;
  min-height: 320px;
}

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

/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/normalize.css ***!
  \***************************************************************************************************************************************************************************************************************************************/
audio,
canvas,
progress,
video {
  vertical-align: baseline;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

b,
strong {
  font-weight: bold;
}

img {
  max-width: 100%;
}

hr {
  height: 1px;
  border-width: 0;
  box-sizing: content-box;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

label,
input,
select,
textarea {
  font-family: inherit;
  line-height: normal;
}

textarea {
  overflow: auto;
  height: auto;
  font: inherit;
  color: inherit;
}

textarea::placeholder {
  padding-left: 2px;
}

form,
input,
optgroup,
select {
  margin: 0;
  font: inherit;
  color: inherit;
}

html input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}

a,
a div,
a span,
a ion-icon,
a ion-label,
button,
button div,
button span,
button ion-icon,
button ion-label,
.ion-tappable,
[tappable],
[tappable] div,
[tappable] span,
[tappable] ion-icon,
[tappable] ion-label,
input,
textarea {
  touch-action: manipulation;
}

a ion-label,
button ion-label {
  pointer-events: none;
}

button {
  padding: 0;
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-style: inherit;
  font-variant: inherit;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
  -webkit-appearance: button;
}

[tappable] {
  cursor: pointer;
}

a[disabled],
button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

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

/*!***************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/structure.css ***!
  \***************************************************************************************************************************************************************************************************************************************/
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

html {
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html: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%;
  /**
   * Because body has position: fixed,
   * it should be promoted to its own
   * layer.
   *
   * WebKit does not always promote
   * the body to its own layer on page
   * load in Ionic apps. Once scrolling on
   * ion-content starts, WebKit will promote
   * body. Unfortunately, this causes a re-paint
   * which results in scrolling being halted
   * until the next user gesture.
   *
   * This impacts the Custom Elements build.
   * The lazy loaded build causes the browser to
   * re-paint during hydration which causes WebKit
   * to promote body to its own layer.
   * In the CE Build, this hydration does not
   * happen, so the additional re-paint does not occur.
   */
  transform: translateZ(0);
  text-rendering: optimizeLegibility;
  overflow: hidden;
  touch-action: manipulation;
  -webkit-user-drag: none;
  -ms-content-zooming: none;
  word-wrap: break-word;
  overscroll-behavior-y: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

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

/*!****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/typography.css ***!
  \****************************************************************************************************************************************************************************************************************************************/
html {
  font-family: var(--ion-font-family);
}

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: 26px;
}

h2 {
  margin-top: 18px;
  font-size: 24px;
}

h3 {
  font-size: 22px;
}

h4 {
  font-size: 20px;
}

h5 {
  font-size: 18px;
}

h6 {
  font-size: 16px;
}

small {
  font-size: 75%;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

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

/*!*************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/display.css ***!
  \*************************************************************************************************************************************************************************************************************************************/
.ion-hide {
  display: none !important;
}

.ion-hide-up {
  display: none !important;
}

.ion-hide-down {
  display: none !important;
}

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

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

/*!*************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/padding.css ***!
  \*************************************************************************************************************************************************************************************************************************************/
.ion-no-padding {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.ion-padding {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
  padding-inline-end: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}

.ion-padding-top {
  --padding-top: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
}

.ion-padding-start {
  --padding-start: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
}

.ion-padding-end {
  --padding-end: var(--ion-padding, 16px);
  padding-inline-end: var(--ion-padding, 16px);
}

.ion-padding-bottom {
  --padding-bottom: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}

.ion-padding-vertical {
  --padding-top: var(--ion-padding, 16px);
  --padding-bottom: var(--ion-padding, 16px);
  padding-top: var(--ion-padding, 16px);
  padding-bottom: var(--ion-padding, 16px);
}

.ion-padding-horizontal {
  --padding-start: var(--ion-padding, 16px);
  --padding-end: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
  padding-inline-end: var(--ion-padding, 16px);
}

.ion-no-margin {
  --margin-start: 0;
  --margin-end: 0;
  --margin-top: 0;
  --margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.ion-margin {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
  margin-inline-end: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}

.ion-margin-top {
  --margin-top: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
}

.ion-margin-start {
  --margin-start: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
}

.ion-margin-end {
  --margin-end: var(--ion-margin, 16px);
  margin-inline-end: var(--ion-margin, 16px);
}

.ion-margin-bottom {
  --margin-bottom: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}

.ion-margin-vertical {
  --margin-top: var(--ion-margin, 16px);
  --margin-bottom: var(--ion-margin, 16px);
  margin-top: var(--ion-margin, 16px);
  margin-bottom: var(--ion-margin, 16px);
}

.ion-margin-horizontal {
  --margin-start: var(--ion-margin, 16px);
  --margin-end: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
  margin-inline-end: var(--ion-margin, 16px);
}

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

/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/float-elements.css ***!
  \********************************************************************************************************************************************************************************************************************************************/
.ion-float-left {
  float: left !important;
}

.ion-float-right {
  float: right !important;
}

.ion-float-start {
  float: left !important;
}
:host-context([dir=rtl]) .ion-float-start {
  float: right !important;
}

[dir=rtl] .ion-float-start {
  float: right !important;
}

@supports selector(:dir(rtl)) {
  .ion-float-start:dir(rtl) {
    float: right !important;
  }
}

.ion-float-end {
  float: right !important;
}
:host-context([dir=rtl]) .ion-float-end {
  float: left !important;
}

[dir=rtl] .ion-float-end {
  float: left !important;
}

@supports selector(:dir(rtl)) {
  .ion-float-end:dir(rtl) {
    float: left !important;
  }
}

@media (min-width: 576px) {
  .ion-float-sm-left {
    float: left !important;
  }

  .ion-float-sm-right {
    float: right !important;
  }

  .ion-float-sm-start {
    float: left !important;
  }
  :host-context([dir=rtl]) .ion-float-sm-start {
    float: right !important;
  }

  [dir=rtl] .ion-float-sm-start {
    float: right !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-sm-start:dir(rtl) {
      float: right !important;
    }
  }

  .ion-float-sm-end {
    float: right !important;
  }
  :host-context([dir=rtl]) .ion-float-sm-end {
    float: left !important;
  }

  [dir=rtl] .ion-float-sm-end {
    float: left !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-sm-end:dir(rtl) {
      float: left !important;
    }
  }
}
@media (min-width: 768px) {
  .ion-float-md-left {
    float: left !important;
  }

  .ion-float-md-right {
    float: right !important;
  }

  .ion-float-md-start {
    float: left !important;
  }
  :host-context([dir=rtl]) .ion-float-md-start {
    float: right !important;
  }

  [dir=rtl] .ion-float-md-start {
    float: right !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-md-start:dir(rtl) {
      float: right !important;
    }
  }

  .ion-float-md-end {
    float: right !important;
  }
  :host-context([dir=rtl]) .ion-float-md-end {
    float: left !important;
  }

  [dir=rtl] .ion-float-md-end {
    float: left !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-md-end:dir(rtl) {
      float: left !important;
    }
  }
}
@media (min-width: 992px) {
  .ion-float-lg-left {
    float: left !important;
  }

  .ion-float-lg-right {
    float: right !important;
  }

  .ion-float-lg-start {
    float: left !important;
  }
  :host-context([dir=rtl]) .ion-float-lg-start {
    float: right !important;
  }

  [dir=rtl] .ion-float-lg-start {
    float: right !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-lg-start:dir(rtl) {
      float: right !important;
    }
  }

  .ion-float-lg-end {
    float: right !important;
  }
  :host-context([dir=rtl]) .ion-float-lg-end {
    float: left !important;
  }

  [dir=rtl] .ion-float-lg-end {
    float: left !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-lg-end:dir(rtl) {
      float: left !important;
    }
  }
}
@media (min-width: 1200px) {
  .ion-float-xl-left {
    float: left !important;
  }

  .ion-float-xl-right {
    float: right !important;
  }

  .ion-float-xl-start {
    float: left !important;
  }
  :host-context([dir=rtl]) .ion-float-xl-start {
    float: right !important;
  }

  [dir=rtl] .ion-float-xl-start {
    float: right !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-xl-start:dir(rtl) {
      float: right !important;
    }
  }

  .ion-float-xl-end {
    float: right !important;
  }
  :host-context([dir=rtl]) .ion-float-xl-end {
    float: left !important;
  }

  [dir=rtl] .ion-float-xl-end {
    float: left !important;
  }

  @supports selector(:dir(rtl)) {
    .ion-float-xl-end:dir(rtl) {
      float: left !important;
    }
  }
}

/*# sourceMappingURL=float-elements.css.map */

/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/text-alignment.css ***!
  \********************************************************************************************************************************************************************************************************************************************/
.ion-text-center {
  text-align: center !important;
}

.ion-text-justify {
  text-align: justify !important;
}

.ion-text-start {
  text-align: start !important;
}

.ion-text-end {
  text-align: end !important;
}

.ion-text-left {
  text-align: left !important;
}

.ion-text-right {
  text-align: right !important;
}

.ion-text-nowrap {
  white-space: nowrap !important;
}

.ion-text-wrap {
  white-space: normal !important;
}

@media (min-width: 576px) {
  .ion-text-sm-center {
    text-align: center !important;
  }

  .ion-text-sm-justify {
    text-align: justify !important;
  }

  .ion-text-sm-start {
    text-align: start !important;
  }

  .ion-text-sm-end {
    text-align: end !important;
  }

  .ion-text-sm-left {
    text-align: left !important;
  }

  .ion-text-sm-right {
    text-align: right !important;
  }

  .ion-text-sm-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-sm-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-center {
    text-align: center !important;
  }

  .ion-text-md-justify {
    text-align: justify !important;
  }

  .ion-text-md-start {
    text-align: start !important;
  }

  .ion-text-md-end {
    text-align: end !important;
  }

  .ion-text-md-left {
    text-align: left !important;
  }

  .ion-text-md-right {
    text-align: right !important;
  }

  .ion-text-md-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-md-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-center {
    text-align: center !important;
  }

  .ion-text-lg-justify {
    text-align: justify !important;
  }

  .ion-text-lg-start {
    text-align: start !important;
  }

  .ion-text-lg-end {
    text-align: end !important;
  }

  .ion-text-lg-left {
    text-align: left !important;
  }

  .ion-text-lg-right {
    text-align: right !important;
  }

  .ion-text-lg-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-lg-wrap {
    white-space: normal !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-center {
    text-align: center !important;
  }

  .ion-text-xl-justify {
    text-align: justify !important;
  }

  .ion-text-xl-start {
    text-align: start !important;
  }

  .ion-text-xl-end {
    text-align: end !important;
  }

  .ion-text-xl-left {
    text-align: left !important;
  }

  .ion-text-xl-right {
    text-align: right !important;
  }

  .ion-text-xl-nowrap {
    white-space: nowrap !important;
  }

  .ion-text-xl-wrap {
    white-space: normal !important;
  }
}

/*# sourceMappingURL=text-alignment.css.map */

/*!*************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/text-transformation.css ***!
  \*************************************************************************************************************************************************************************************************************************************************/
.ion-text-uppercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: uppercase !important;
}

.ion-text-lowercase {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: lowercase !important;
}

.ion-text-capitalize {
  /* stylelint-disable-next-line declaration-no-important */
  text-transform: capitalize !important;
}

@media (min-width: 576px) {
  .ion-text-sm-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-sm-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-sm-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 768px) {
  .ion-text-md-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-md-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-md-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 992px) {
  .ion-text-lg-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-lg-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-lg-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}
@media (min-width: 1200px) {
  .ion-text-xl-uppercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: uppercase !important;
  }

  .ion-text-xl-lowercase {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: lowercase !important;
  }

  .ion-text-xl-capitalize {
    /* stylelint-disable-next-line declaration-no-important */
    text-transform: capitalize !important;
  }
}

/*# sourceMappingURL=text-transformation.css.map */

/*!****************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/@ionic/angular/css/flex-utils.css ***!
  \****************************************************************************************************************************************************************************************************************************************/
.ion-align-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;
}

/*# sourceMappingURL=flex-utils.css.map */

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/global.scss?ngGlobalStyle ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*
 * 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 */
/* Social Media Inspired App Background Theme */
body {
  background: var(--app-background-gradient);
  background-attachment: fixed;
  background-size: 400% 400%;
  animation: socialGradientShift 15s ease infinite;
}

ion-app {
  background: transparent;
}

ion-content {
  --background: transparent;
  /* Shared public-page navigation */
}
ion-content::part(background) {
  background: transparent;
}
ion-content ion-popover.source-import-batch-popover {
  --background: #ffffff;
  --color: #1f2937;
}
ion-content ion-popover.source-import-batch-popover::part(content) {
  background: #ffffff;
  border: 1px solid #d7dbea;
  border-radius: 12px;
  box-shadow: 0 14px 35px rgba(31, 41, 55, 0.2);
}
ion-content ion-popover.source-import-batch-popover ion-list {
  background: #ffffff;
  padding: 8px;
}
ion-content ion-popover.source-import-batch-popover ion-item {
  --background: #ffffff;
  --color: #1f2937;
  --inner-border-width: 0;
  border-radius: 8px;
  font-weight: 600;
}
ion-content ion-popover.source-import-batch-popover ion-item:hover {
  --background: #f1efff;
}
ion-content ion-popover.source-import-batch-popover ion-radio {
  --color: #98a2b3;
  --color-checked: #5b4bc4;
}
ion-content ion-popover.admin-content-select-popover {
  --background: #ffffff;
  --color: #2d3436;
}
ion-content ion-popover.admin-content-select-popover::part(content) {
  background: #ffffff;
  border: 1px solid #d7dbea;
  border-radius: 12px;
  box-shadow: 0 14px 35px rgba(31, 41, 55, 0.2);
}
ion-content ion-popover.admin-content-select-popover ion-list {
  background: #ffffff;
  padding: 8px;
}
ion-content ion-popover.admin-content-select-popover ion-item {
  --background: #ffffff;
  --color: #2d3436;
  --inner-border-width: 0;
  border-radius: 8px;
  font-weight: 600;
}
ion-content ion-popover.admin-content-select-popover ion-item:hover,
ion-content ion-popover.admin-content-select-popover ion-item.item-radio-checked {
  --background: #f1efff;
  --color: #5746c7;
}
ion-content ion-popover.admin-content-select-popover ion-radio {
  --color: #98a2b3;
  --color-checked: #5b4bc4;
}
ion-content .public-toolbar {
  --background: color-mix(in srgb, var(--app-surface-color, #fff) 88%, transparent);
  --border-width: 0;
  --min-height: 68px;
  border-bottom: 1px solid color-mix(in srgb, var(--app-soft-border, #e2e8f0) 70%, transparent);
  box-shadow: 0 8px 28px rgba(35, 29, 67, 0.06);
  -webkit-backdrop-filter: blur(18px);
          backdrop-filter: blur(18px);
  padding: 0 14px;
}
ion-content .public-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--app-heading-color, #182338);
  text-decoration: none;
}
ion-content .public-brand-mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  background: var(--app-primary-gradient);
  box-shadow: 0 7px 18px rgba(139, 92, 246, 0.28);
  color: #fff;
  transform: rotate(-8deg);
}
ion-content .public-brand-mark ion-icon {
  font-size: 19px;
  transform: rotate(8deg);
}
ion-content .public-brand-name {
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -0.04em;
}
ion-content .public-brand-name strong {
  background: var(--app-primary-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-weight: 850;
}
ion-content .public-sign-in-button {
  --background: var(--cyber-gradient);
  --background-hover: var(--app-accent-gradient);
  --background-activated: var(--app-accent-gradient);
  --color: #ffffff;
  --border-radius: var(--border-radius-medium);
  --padding-start: 16px;
  --padding-end: 13px;
  --box-shadow: var(--shadow-cyber);
  background: var(--cyber-gradient);
  border-radius: var(--border-radius-medium);
  color: #ffffff;
  min-height: 38px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: none;
  transition: transform var(--animation-fast) ease, box-shadow var(--animation-fast) ease;
}
ion-content .public-sign-in-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-cyber), 0 8px 25px rgba(139, 92, 246, 0.4);
}
ion-content .public-sign-in-button::part(native) {
  color: #ffffff;
  -webkit-text-fill-color: #ffffff;
}
ion-content .public-sign-in-button ion-icon {
  margin-left: 7px;
  color: #ffffff;
  font-size: 15px;
}
@media (max-width: 480px) {
  ion-content .public-toolbar {
    padding: 0 8px;
  }
  ion-content .public-brand-name {
    font-size: 17px;
  }
  ion-content .public-sign-in-button {
    --padding-start: 13px;
    --padding-end: 11px;
  }
}
@media (max-width: 767px) {
  ion-content .public-toolbar .public-brand {
    display: none;
  }
}

/* Social Media Gradient Animation */
@keyframes socialGradientShift {
  0% {
    background-position: 0% 50%;
  }
  25% {
    background-position: 100% 50%;
  }
  50% {
    background-position: 100% 100%;
  }
  75% {
    background-position: 0% 100%;
  }
  100% {
    background-position: 0% 50%;
  }
}
/* Page-specific backgrounds for variety */
.home-page-background {
  background: var(--social-home-gradient);
  background-size: 400% 400%;
  animation: socialGradientShift 20s ease infinite;
}

.profile-page-background {
  background: var(--social-profile-gradient);
  background-size: 400% 400%;
  animation: socialGradientShift 18s ease infinite;
}

.gallery-page-background {
  background: var(--social-gallery-gradient);
  background-size: 400% 400%;
  animation: socialGradientShift 22s ease infinite;
}

/* Floating elements for social media feel */
.social-bg-elements {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}
.social-bg-elements::before {
  content: "";
  position: absolute;
  top: 10%;
  left: 10%;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(0, 245, 255, 0.15), rgba(139, 92, 246, 0.1), transparent);
  border-radius: 50%;
  animation: floatSlow 12s ease-in-out infinite;
  filter: blur(2px);
}
.social-bg-elements::after {
  content: "";
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(236, 72, 153, 0.15), rgba(255, 107, 53, 0.1), transparent);
  border-radius: 50%;
  animation: floatSlow 15s ease-in-out infinite reverse;
  filter: blur(2px);
}

/* Additional floating elements */
.social-bg-elements .floating-orb-1 {
  position: absolute;
  top: 60%;
  left: 5%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(132, 204, 22, 0.12), transparent);
  border-radius: 50%;
  animation: floatSlow 18s ease-in-out infinite;
  filter: blur(1px);
}
.social-bg-elements .floating-orb-2 {
  position: absolute;
  top: 30%;
  right: 10%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255, 107, 53, 0.12), transparent);
  border-radius: 50%;
  animation: floatSlow 20s ease-in-out infinite reverse;
  filter: blur(1px);
}
.social-bg-elements .floating-orb-3 {
  position: absolute;
  bottom: 50%;
  left: 70%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(0, 245, 255, 0.08), transparent);
  border-radius: 50%;
  animation: floatSlow 14s ease-in-out infinite;
  filter: blur(1px);
}

@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0px) rotate(0deg) scale(1);
    opacity: 0.3;
  }
  50% {
    transform: translateY(-30px) rotate(180deg) scale(1.1);
    opacity: 0.6;
  }
}
.full-screen-modal {
  --height: 100%;
}

.button-xxl {
  width: 90%;
}

.button-xl {
  width: 70%;
  padding-top: 8px;
  padding-bottom: 8px;
}

.button-l {
  width: 32%;
  padding-top: 4px;
  padding-bottom: 4px;
}

.button-s {
  width: auto;
  height: 36px;
  margin: 0 4px;
}

.button-xs {
  width: 20%;
  padding: 4px;
}

.dot-circle {
  border: 5px dashed var(--ion-color-secondary);
  border-radius: 50%;
}

.gradient-button {
  background: var(--cyber-gradient);
  color: white;
  border-radius: var(--border-radius-medium);
  font-size: 12px;
  font-weight: bold;
  box-shadow: var(--shadow-cyber);
  text-transform: none;
  --background: transparent;
  --box-shadow: none;
  transition: all var(--animation-fast) ease;
}
.gradient-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-cyber), 0 8px 25px rgba(139, 92, 246, 0.4);
}

.image-card {
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease-in-out;
}

.image-card img {
  border-radius: 12px;
}

.custom-alert {
  --backdrop-opacity: 0.7;
  --background: rgba(255, 255, 255, 0.9);
  color: var(--ion-color-primary);
}
.custom-alert .alert-message {
  font-size: 18px;
  font-weight: 400;
  color: var(--ion-color-primary);
  text-align: center;
  margin-bottom: 16px;
  padding: 0 16px;
  line-height: 1.5;
  text-transform: none !important;
  font-family: "Poppins", sans-serif;
  font-style: normal;
}
.custom-alert .custom-alert .alert-title {
  font-size: 22px;
  font-weight: bold;
  color: #1e1e1e;
}
.custom-alert .alert-button-group {
  justify-content: center;
}
.custom-alert .custom-input-long {
  min-height: 80px;
  font-size: 16px;
  padding: 10px;
  border-radius: 6px;
  background-color: #fff;
  color: black;
}
.custom-alert .custom-input {
  min-height: 20px;
  font-size: 16px;
  background-color: #fff;
  color: black;
}

.buy-coins-alert-button {
  color: var(--ion-color-primary) !important;
  text-transform: none !important;
  font-weight: 600 !important;
}

.watch-ads-alert-button {
  color: var(--ion-adwatch-text-color) !important;
  font-weight: 400 !important;
  text-transform: none !important;
}

.infinite-loading-toast .loading-wrapper {
  border-radius: 10px;
  background: #323232;
  color: var(--ion-color-primary);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  max-width: 220px;
}

.content-with-banner {
  margin-bottom: var(--ad-margin-bottom, 60px);
}

.transparent-modal {
  --background: transparent;
  color: var(--ion-color-primary);
}

.semi-transparent-modal {
  --backdrop-opacity: 0.5 !important;
  --background: transparent;
  color: var(--ion-color-primary);
}

.wrap-height-modal .modal-wrapper,
.wrap-height-modal .ion-modal {
  align-self: flex-start;
  height: auto;
  max-height: 90vh;
  border-radius: 12px;
}

.wrap-height-modal::part(content) {
  height: auto !important;
}

/* Modern App Global Utilities */
/* Glass Morphism Components */
.glass-card {
  background: var(--glass-background);
  -webkit-backdrop-filter: var(--glass-backdrop-filter);
          backdrop-filter: var(--glass-backdrop-filter);
  border-radius: var(--border-radius-large);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
}

.glass-card-small {
  background: var(--glass-background);
  -webkit-backdrop-filter: var(--glass-backdrop-filter);
          backdrop-filter: var(--glass-backdrop-filter);
  border-radius: var(--border-radius-medium);
  border: 1px solid var(--glass-border);
  box-shadow: var(--shadow-small);
}

/* Gradient Backgrounds */
.gradient-primary {
  background: var(--app-primary-gradient);
}

.gradient-secondary {
  background: var(--app-secondary-gradient);
}

.gradient-trending {
  background: var(--trending-gradient);
}

/* Animated Text */
.text-gradient-animated {
  background: var(--app-accent-gradient);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: gradientShift 3s ease-in-out infinite;
}

@keyframes gradientShift {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}
/* Floating Animations */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
}
@keyframes heroFloat {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-20px) rotate(5deg);
  }
}
@keyframes trendingPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}
.float-animation {
  animation: float 6s ease-in-out infinite;
}

.hero-float-animation {
  animation: heroFloat 8s ease-in-out infinite;
}

.trending-pulse-animation {
  animation: trendingPulse 4s ease-in-out infinite;
}

/* Hover Effects */
.hover-lift {
  transition: all var(--animation-fast) ease;
}
.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-large);
}

.hover-lift-small {
  transition: all var(--animation-fast) ease;
}
.hover-lift-small:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

.hover-scale {
  transition: transform var(--animation-fast) ease;
}
.hover-scale:hover {
  transform: scale(1.05);
}

/* Text Styles */
.text-shadow-soft {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.text-shadow-strong {
  text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Icon Containers */
.icon-container-round {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-small);
}

.icon-container-rounded {
  width: 40px;
  height: 40px;
  border-radius: var(--border-radius-small);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-small);
}

/* Modern Trendy Colors & Utilities */
/* Neon Color Classes */
.text-neon-cyan {
  color: var(--neon-cyan);
}

.text-electric-purple {
  color: var(--electric-purple);
}

.text-vibrant-orange {
  color: var(--vibrant-orange);
}

.text-lime-green {
  color: var(--lime-green);
}

.text-hot-pink {
  color: var(--hot-pink);
}

.bg-neon-cyan {
  background-color: var(--neon-cyan);
}

.bg-electric-purple {
  background-color: var(--electric-purple);
}

.bg-vibrant-orange {
  background-color: var(--vibrant-orange);
}

.bg-lime-green {
  background-color: var(--lime-green);
}

.bg-hot-pink {
  background-color: var(--hot-pink);
}

/* Gradient Classes */
.gradient-cyber {
  background: var(--cyber-gradient);
}

.gradient-neon {
  background: var(--neon-gradient);
}

.gradient-sunset {
  background: var(--sunset-gradient);
}

.gradient-ocean {
  background: var(--ocean-gradient);
}

.gradient-rainbow {
  background: var(--rainbow-gradient);
}

/* Social Media Gradient Classes */
.gradient-instagram {
  background: var(--instagram-gradient);
}

.gradient-tiktok {
  background: var(--tiktok-gradient);
}

.gradient-discord {
  background: var(--discord-gradient);
}

.gradient-social-home {
  background: var(--social-home-gradient);
}

.gradient-social-profile {
  background: var(--social-profile-gradient);
}

.gradient-social-gallery {
  background: var(--social-gallery-gradient);
}

/* Shadow Classes */
.shadow-neon {
  box-shadow: var(--shadow-neon);
}

.shadow-cyber {
  box-shadow: var(--shadow-cyber);
}

.shadow-coral {
  box-shadow: var(--shadow-coral);
}

/* Modern Button Variants */
.btn-cyber {
  background: var(--cyber-gradient);
  color: white;
  border: 1px solid var(--electric-purple);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--shadow-cyber);
  transition: all var(--animation-fast) ease;
}
.btn-cyber:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-cyber), 0 8px 25px rgba(139, 92, 246, 0.4);
}

.btn-neon {
  background: var(--neon-gradient);
  color: var(--dark-surface);
  border: 1px solid var(--neon-cyan);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--shadow-neon);
  transition: all var(--animation-fast) ease;
}
.btn-neon:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-neon), 0 8px 25px rgba(0, 245, 255, 0.4);
}

.btn-coral {
  background: var(--sunset-gradient);
  color: white;
  border: 1px solid var(--vibrant-orange);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--shadow-coral);
  transition: all var(--animation-fast) ease;
}
.btn-coral:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-coral), 0 8px 25px rgba(255, 120, 73, 0.4);
}

/* Category Colors - Updated with Modern Palette */
.category-nature {
  background: linear-gradient(135deg, var(--lime-green), #4CAF50);
}

.category-portrait {
  background: linear-gradient(135deg, var(--vibrant-orange), var(--hot-pink));
}

.category-art {
  background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink));
}

.category-vintage {
  background: linear-gradient(135deg, #8B7355, #A0896B);
}

.category-modern {
  background: linear-gradient(135deg, var(--neon-cyan), var(--electric-purple));
}

.category-fantasy {
  background: linear-gradient(135deg, var(--electric-purple), var(--hot-pink));
}

.category-animal {
  background: linear-gradient(135deg, var(--vibrant-orange), var(--lime-green));
}

.category-architecture {
  background: linear-gradient(135deg, #64748B, var(--neon-cyan));
}

.category-food {
  background: linear-gradient(135deg, var(--vibrant-orange), #FFC107);
}

.category-travel {
  background: linear-gradient(135deg, var(--neon-cyan), var(--electric-purple));
}

/* Trending Badge */
.trending-badge {
  background: var(--neon-gradient);
  color: var(--dark-surface);
  padding: 4px 8px;
  border-radius: var(--border-radius-small);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: var(--shadow-neon);
  animation: trendingPulse 3s ease-in-out infinite;
}

/* Cyber Text Effect */
.text-cyber {
  color: var(--neon-cyan);
  text-shadow: 0 0 5px var(--neon-cyan), 0 0 10px var(--neon-cyan), 0 0 20px var(--neon-cyan);
}

.text-neon-glow {
  color: var(--electric-purple);
  text-shadow: 0 0 5px var(--electric-purple), 0 0 10px var(--electric-purple), 0 0 15px var(--electric-purple);
}

/* Interactive Elements */
.interactive-card {
  background: var(--glass-background);
  -webkit-backdrop-filter: var(--glass-backdrop-filter);
          backdrop-filter: var(--glass-backdrop-filter);
  border: 1px solid var(--glass-border);
  border-radius: var(--border-radius-large);
  transition: all var(--animation-fast) ease;
  cursor: pointer;
}
.interactive-card:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: var(--shadow-cyber);
  border-color: var(--electric-purple);
}
.interactive-card:active {
  transform: translateY(-2px) scale(1.01);
}

/* Social Media Style Content Containers */
.social-content-card {
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border-radius: var(--border-radius-large);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  transition: all var(--animation-fast) ease;
}
.social-content-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.social-feed-item {
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  border-radius: var(--border-radius-medium);
  border: 1px solid rgba(255, 255, 255, 0.25);
  margin-bottom: 16px;
  padding: 16px;
  transition: all var(--animation-fast) ease;
}
.social-feed-item:hover {
  background: rgba(255, 255, 255, 0.98);
  transform: translateY(-1px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

/* Story-style containers */
.story-container {
  background: var(--instagram-gradient);
  border-radius: 50%;
  padding: 3px;
  transition: all var(--animation-fast) ease;
}
.story-container:hover {
  transform: scale(1.05);
  box-shadow: 0 0 20px rgba(240, 148, 51, 0.4);
}
.story-container .story-inner {
  background: white;
  border-radius: 50%;
  padding: 2px;
}
.story-container .story-inner img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Loading Animation */
@keyframes neonPulse {
  0%, 100% {
    box-shadow: 0 0 5px var(--neon-cyan), 0 0 10px var(--neon-cyan);
    border-color: var(--neon-cyan);
  }
  50% {
    box-shadow: 0 0 20px var(--neon-cyan), 0 0 30px var(--neon-cyan);
    border-color: transparent;
  }
}
.loading-neon {
  animation: neonPulse 2s ease-in-out infinite;
}

/* Modern Toast Notifications */
/* Enhanced Modern Toast Styles for Component Usage 
 * Usage: Add 'modern-toast' class and optionally 'toast-success', 'toast-danger', or 'toast-warning'
 * Example: cssClass: 'modern-toast toast-success'
 */
.modern-toast {
  --color: #2d3748;
  --border-radius: 16px;
  --box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.3);
  margin: 16px;
  font-weight: 500;
  font-size: 14px;
}
.modern-toast .toast-message {
  padding: 2px 0;
}
.modern-toast .toast-close-btn {
  --color: #718096;
  font-size: 18px;
}
.modern-toast .toast-close-btn:hover {
  --color: #4a5568;
}
.modern-toast.toast-success {
  --background: linear-gradient(135deg, rgba(72, 187, 120, 0.95), rgba(56, 178, 172, 0.95));
  --color: white;
  border: 1px solid rgba(72, 187, 120, 0.3);
}
.modern-toast.toast-success .toast-close-btn {
  --color: rgba(255, 255, 255, 0.8);
}
.modern-toast.toast-success .toast-close-btn:hover {
  --color: white;
}
.modern-toast.toast-danger {
  --background: linear-gradient(135deg, rgba(245, 101, 101, 0.95), rgba(237, 137, 54, 0.95));
  --color: white;
  border: 1px solid rgba(245, 101, 101, 0.3);
}
.modern-toast.toast-danger .toast-close-btn {
  --color: rgba(255, 255, 255, 0.8);
}
.modern-toast.toast-danger .toast-close-btn:hover {
  --color: white;
}
.modern-toast.toast-warning {
  --background: linear-gradient(135deg, rgba(237, 137, 54, 0.95), rgba(245, 158, 11, 0.95));
  --color: white;
  border: 1px solid rgba(237, 137, 54, 0.3);
}
.modern-toast.toast-warning .toast-close-btn {
  --color: rgba(255, 255, 255, 0.8);
}
.modern-toast.toast-warning .toast-close-btn:hover {
  --color: white;
}

/* Toast animations */
@keyframes toastSlideIn {
  from {
    transform: translateY(-100px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes successPulse {
  0%, 100% {
    transform: translateY(-50%) scale(1);
    filter: drop-shadow(0 0 12px var(--lime-green));
  }
  50% {
    transform: translateY(-50%) scale(1.1);
    filter: drop-shadow(0 0 20px var(--lime-green));
  }
}
@keyframes errorShake {
  0%, 100% {
    transform: translateY(-50%) translateX(0);
  }
  25% {
    transform: translateY(-50%) translateX(-3px);
  }
  75% {
    transform: translateY(-50%) translateX(3px);
  }
}
@keyframes infoPulse {
  0%, 100% {
    transform: translateY(-50%) scale(1);
    filter: drop-shadow(0 0 12px var(--neon-cyan));
  }
  50% {
    transform: translateY(-50%) scale(1.05);
    filter: drop-shadow(0 0 18px var(--neon-cyan));
  }
}
@keyframes warningBounce {
  0%, 100% {
    transform: translateY(-50%) scale(1);
  }
  50% {
    transform: translateY(-55%) scale(1.1);
  }
}
/* Responsive Utilities */
@media (max-width: 768px) {
  .hide-on-mobile {
    display: none !important;
  }
  .modern-toast {
    --max-width: calc(100vw - 32px);
    --margin-start: 16px;
    --margin-end: 16px;
  }
}
@media (min-width: 769px) {
  .hide-on-desktop {
    display: none !important;
  }
}
/* Image Picker Modal Global Styles */
.image-picker-modal {
  --background: transparent;
  --backdrop-opacity: 0;
  --width: 100%;
  --height: 100%;
  --min-width: auto;
  --min-height: auto;
  --max-width: 100%;
  --max-height: 100%;
  --border-radius: 0;
  --box-shadow: none;
  /* Ensure modal content is properly positioned */
}
.image-picker-modal .modal-wrapper {
  background: transparent;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.image-picker-modal ion-backdrop {
  display: none;
}
.image-picker-modal .modal-wrapper > * {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ========================================
   COMMON COMPONENT STYLES - GENERALIZED
   ======================================== */
/* Common App Showcase Layout */
.app-showcase {
  --background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 50%, #16213e 100%);
  background: var(--background);
  position: relative;
  overflow-x: hidden;
  min-height: 100vh;
}

/* Common Fixed Header */
.app-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, transparent 100%);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  padding: 20px;
}
.app-header .header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 100%;
}
.app-header .header-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(139, 92, 246, 0.2);
  border: 1px solid rgba(139, 92, 246, 0.3);
  border-radius: 20px;
  padding: 8px 16px;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}
.app-header .header-badge .badge-icon {
  font-size: 18px;
  color: #a855f7;
  animation: sparkle 2s ease-in-out infinite;
}
.app-header .header-badge span {
  color: white;
  font-size: 14px;
  font-weight: 500;
}
.app-header .close-action {
  display: flex;
  align-items: center;
}
.app-header .close-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 20px;
  transition: all 0.3s ease;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}
.app-header .close-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.05);
}

/* Common Main Content Layout */
.app-main-content {
  padding: 20px 20px 180px 20px; /* Bottom padding for action panel */
  overflow-y: auto;
  max-height: calc(100vh - 80px); /* Account for header */
}
.app-main-content .content-wrapper {
  max-width: 500px;
  margin: 0 auto;
}

/* Common Global Toast System */
.app-toast {
  position: fixed;
  top: 20px;
  left: 20px;
  right: 20px;
  max-width: 400px;
  margin: 0 auto;
  transform: translateY(-100px);
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 9999; /* Highest z-index to appear above everything */
}
.app-toast.show {
  transform: translateY(0);
  opacity: 1;
}
.app-toast .toast-container {
  background: rgba(0, 0, 0, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.app-toast .toast-icon {
  font-size: 20px;
  flex-shrink: 0;
}
.app-toast .toast-icon ion-icon[name=checkmark-circle] {
  color: #10b981;
}
.app-toast .toast-icon ion-icon[name=alert-circle] {
  color: #f59e0b;
}
.app-toast .toast-icon ion-icon[name=information-circle] {
  color: #3b82f6;
}
.app-toast .toast-content {
  flex: 1;
}
.app-toast .toast-message {
  color: white;
  font-size: 14px;
  font-weight: 500;
  margin: 0;
}
.app-toast .toast-dismiss {
  background: rgba(255, 255, 255, 0.1);
  border: none;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.app-toast .toast-dismiss:hover {
  background: rgba(255, 255, 255, 0.2);
  color: white;
}

/* Common Action Panel */
.app-action-panel {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.9) 100%);
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  padding: 20px;
  z-index: 1000;
}
.app-action-panel .action-content {
  max-width: 500px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.app-action-panel .primary-actions {
  display: flex;
  gap: 12px;
}
.app-action-panel .action-btn {
  position: relative;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  padding: 16px 20px;
  color: white;
  font-weight: 500;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  overflow: hidden;
  flex: 1;
}
.app-action-panel .action-btn:not(:disabled):hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
}
.app-action-panel .action-btn:disabled {
  opacity: 0.6;
}
.app-action-panel .action-btn .btn-background {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.app-action-panel .action-btn:hover .btn-background {
  opacity: 1;
}
.app-action-panel .action-btn .btn-content {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 2;
}
.app-action-panel .action-btn .btn-content ion-icon {
  font-size: 20px;
}
.app-action-panel .action-btn .btn-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.app-action-panel .action-btn .btn-title {
  font-size: 14px;
  font-weight: 600;
}
.app-action-panel .action-btn .btn-subtitle {
  font-size: 11px;
  opacity: 0.7;
}
.app-action-panel .action-btn.download-btn {
  border-color: rgba(59, 130, 246, 0.3);
}
.app-action-panel .action-btn.download-btn .btn-background {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.3), rgba(147, 197, 253, 0.3));
}
.app-action-panel .action-btn.download-btn:hover {
  box-shadow: 0 15px 35px rgba(59, 130, 246, 0.4);
}
.app-action-panel .action-btn.share-btn {
  border-color: rgba(16, 185, 129, 0.3);
}
.app-action-panel .action-btn.share-btn .btn-background {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.3), rgba(52, 211, 153, 0.3));
}
.app-action-panel .action-btn.share-btn:hover {
  box-shadow: 0 15px 35px rgba(16, 185, 129, 0.4);
}
.app-action-panel .secondary-actions {
  display: flex;
  justify-content: center;
  gap: 24px;
}
.app-action-panel .secondary-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 500;
  transition: all 0.3s ease;
}
.app-action-panel .secondary-btn:hover {
  color: white;
  transform: translateY(-2px);
}
.app-action-panel .secondary-btn ion-icon {
  font-size: 18px;
}

/* Common Feedback System */
.app-feedback-section {
  margin-top: 20px;
  padding: 20px 16px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-align: center;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s ease;
}
.app-feedback-section.show {
  opacity: 1;
  transform: translateY(0);
}
.app-feedback-section .feedback-header {
  margin-bottom: 16px;
}
.app-feedback-section .feedback-header h4 {
  font-size: 16px;
  font-weight: 600;
  color: white;
  margin: 0 0 4px 0;
  background: linear-gradient(45deg, #667eea, #764ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.app-feedback-section .feedback-header p {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  margin: 0;
}
.app-feedback-section .feedback-options {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}
.app-feedback-section .feedback-options .feedback-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  min-width: 70px;
  flex: 1;
  max-width: 90px;
}
.app-feedback-section .feedback-options .feedback-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}
.app-feedback-section .feedback-options .feedback-btn.selected {
  background: linear-gradient(45deg, #667eea, #764ba2);
  border-color: rgba(255, 255, 255, 0.5);
  transform: scale(1.05);
}
.app-feedback-section .feedback-options .feedback-btn ion-icon {
  font-size: 18px;
  color: white;
}
.app-feedback-section .feedback-options .feedback-btn span {
  font-size: 10px;
  color: white;
  font-weight: 500;
  text-align: center;
  line-height: 1.2;
}
.app-feedback-section .feedback-options .feedback-btn.excellent:hover {
  border-color: #f43f5e;
  background: rgba(244, 63, 94, 0.2);
}
.app-feedback-section .feedback-options .feedback-btn.good:hover {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.2);
}
.app-feedback-section .feedback-options .feedback-btn.okay:hover {
  border-color: #f59e0b;
  background: rgba(245, 158, 11, 0.2);
}

/* Feedback Thanks Section */
.app-feedback-thanks {
  margin-top: 20px;
  padding: 16px 20px;
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(20px);
          backdrop-filter: blur(20px);
  text-align: center;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s ease;
}
.app-feedback-thanks.show {
  opacity: 1;
  transform: translateY(0);
}
.app-feedback-thanks .thanks-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.app-feedback-thanks .thanks-content .thanks-icon {
  font-size: 24px;
  color: #22c55e;
  animation: celebrateIcon 0.6s ease-out;
  flex-shrink: 0;
}
.app-feedback-thanks .thanks-content .text-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.app-feedback-thanks .thanks-content .text-content h4 {
  font-size: 14px;
  font-weight: 600;
  color: #22c55e;
  margin: 0 0 2px 0;
}
.app-feedback-thanks .thanks-content .text-content p {
  font-size: 11px;
  color: rgba(34, 197, 94, 0.8);
  margin: 0;
  line-height: 1.3;
}

/* Common Animations */
@keyframes sparkle {
  0%, 100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
  50% {
    transform: scale(1.2) rotate(180deg);
    opacity: 0.8;
  }
}
@keyframes celebrateIcon {
  0% {
    transform: scale(0.5) rotate(-180deg);
    opacity: 0;
  }
  50% {
    transform: scale(1.2) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}
/* Mobile Responsive Common Styles */
@media (max-width: 768px) {
  .app-main-content {
    padding: 15px 15px 160px 15px;
  }
  .app-header {
    padding: 15px;
  }
  .app-header .header-badge {
    padding: 6px 12px;
  }
  .app-header .header-badge span {
    font-size: 12px;
  }
  .app-feedback-section {
    margin-top: 15px;
    padding: 16px 12px;
  }
  .app-feedback-section .feedback-header h4 {
    font-size: 14px;
  }
  .app-feedback-section .feedback-options .feedback-btn {
    padding: 8px 6px;
    min-width: 60px;
    max-width: 80px;
  }
  .app-feedback-section .feedback-options .feedback-btn ion-icon {
    font-size: 16px;
  }
  .app-feedback-section .feedback-options .feedback-btn span {
    font-size: 9px;
  }
  .app-feedback-thanks {
    margin-top: 15px;
    padding: 12px 16px;
  }
  .app-feedback-thanks .thanks-content {
    gap: 8px;
  }
  .app-feedback-thanks .thanks-content .thanks-icon {
    font-size: 20px;
  }
  .app-feedback-thanks .thanks-content .text-content h4 {
    font-size: 12px;
  }
  .app-feedback-thanks .thanks-content .text-content p {
    font-size: 10px;
  }
  .app-action-panel .action-btn {
    padding: 14px 16px;
  }
  .app-action-panel .action-btn .btn-title {
    font-size: 13px;
  }
  .app-action-panel .action-btn .btn-subtitle {
    font-size: 10px;
  }
  .app-action-panel .secondary-actions {
    gap: 16px;
  }
  .app-action-panel .secondary-btn {
    font-size: 13px;
  }
}
/* Modern Alert Styles */
.modern-alert {
  --backdrop-opacity: 0.6;
}
.modern-alert .alert-wrapper {
  --background: rgba(30, 30, 60, 0.95);
  --color: #ffffff;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}
.modern-alert .alert-head {
  padding: 20px 20px 0;
}
.modern-alert .alert-head .alert-title {
  font-size: 18px;
  font-weight: 700;
  color: #ffffff;
}
.modern-alert .alert-message {
  padding: 16px 20px 20px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.4;
}
.modern-alert .alert-button-group {
  padding: 0 20px 20px;
}
.modern-alert .alert-button-group .alert-button {
  border-radius: 8px;
  font-weight: 600;
  text-transform: none;
  margin: 0 4px;
}
.modern-alert .alert-button-group .alert-button.alert-button-cancel {
  --color: rgba(255, 255, 255, 0.7);
  --background: transparent;
  --border-color: rgba(255, 255, 255, 0.3);
}
.modern-alert .alert-button-group .alert-button.alert-button-primary {
  --color: #ffffff;
  --background: linear-gradient(135deg, #8b5cf6, #3b82f6);
  --border-color: transparent;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].rules[0].oneOf[0].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[6].rules[1].use[0]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].rules[1].use[1]!./src/theme/variables.scss?ngGlobalStyle ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --ion-color-gradient-start: #8a2be2;
  --ion-color-gradient-end: #d63384;
  --ion-button-shadow: rgba(255, 20, 147, 0.4);
  --ion-adwatch-text-color: #3e3d3d;
  --divider-color: #E0E0E0;
  --ion-color-white: #FFF5F5;
  --ion-border-color: #ffffff;
  --neon-cyan: #00f5ff;
  --electric-purple: #8b5cf6;
  --vibrant-orange: #ff6b35;
  --lime-green: #84cc16;
  --hot-pink: #ec4899;
  --deep-blue: #1e40af;
  --warm-coral: #ff7849;
  --electric-teal: #14b8a6;
  --app-primary-gradient: linear-gradient(135deg, #8b5cf6 0%, #ec4899 50%, #00f5ff 100%);
  --app-secondary-gradient: linear-gradient(135deg, #14b8a6 0%, #84cc16 100%);
  --app-accent-gradient: linear-gradient(45deg, #ff6b35, #ec4899, #8b5cf6, #00f5ff);
  --cyber-gradient: linear-gradient(135deg, #00f5ff 0%, #8b5cf6 50%, #ec4899 100%);
  --neon-gradient: linear-gradient(135deg, #84cc16 0%, #00f5ff 100%);
  --sunset-gradient: linear-gradient(135deg, #ff6b35 0%, #ec4899 50%, #8b5cf6 100%);
  --ocean-gradient: linear-gradient(135deg, #1e40af 0%, #14b8a6 50%, #00f5ff 100%);
  --app-background-gradient: linear-gradient(
    45deg,
    #0f0f23 0%,
    #1a1a2e 25%,
    #16213e 50%,
    #1a1a2e 75%,
    #0f0f23 100%
  );
  --social-home-gradient: linear-gradient(
    135deg,
    #667eea 0%,
    #764ba2 25%,
    #f093fb 50%,
    #f5576c 75%,
    #4facfe 100%
  );
  --social-profile-gradient: linear-gradient(
    225deg,
    #ff9a9e 0%,
    #fecfef 25%,
    #fecfef 50%,
    #fad0c4 75%,
    #ff9a9e 100%
  );
  --social-gallery-gradient: linear-gradient(
    315deg,
    #a8edea 0%,
    #fed6e3 25%,
    #d299c2 50%,
    #fef9d7 75%,
    #a8edea 100%
  );
  --instagram-gradient: linear-gradient(
    45deg,
    #f09433 0%,
    #e6683c 25%,
    #dc2743 50%,
    #cc2366 75%,
    #bc1888 100%
  );
  --tiktok-gradient: linear-gradient(
    135deg,
    #ff0050 0%,
    #25f4ee 50%,
    #000000 100%
  );
  --discord-gradient: linear-gradient(
    135deg,
    #5865f2 0%,
    #3c45a5 50%,
    #1e2761 100%
  );
  --glass-background: rgba(255, 255, 255, 0.12);
  --glass-background-strong: rgba(255, 255, 255, 0.18);
  --glass-border: rgba(255, 255, 255, 0.25);
  --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  --glass-backdrop-filter: blur(24px);
  --trending-gradient: var(--cyber-gradient);
  --trending-shadow: 0 8px 32px rgba(0, 245, 255, 0.3);
  --trending-glow: rgba(0, 245, 255, 0.2);
  --text-primary-light: #ffffff;
  --text-secondary-light: rgba(255, 255, 255, 0.92);
  --text-tertiary-light: rgba(255, 255, 255, 0.75);
  --text-accent: var(--neon-cyan);
  --text-accent-alt: var(--hot-pink);
  --app-surface-color: #ffffff;
  --app-surface-muted: #f8fafc;
  --app-heading-color: #182338;
  --app-body-text: #596579;
  --app-muted-text: #7a8495;
  --app-soft-border: #e2e8f0;
  --app-accent-color: #4169b2;
  --app-control-background: var(--app-surface-color);
  --app-control-text: var(--app-heading-color);
  --app-control-border: var(--app-soft-border);
  --app-control-selected-text: #ffffff;
  --radial-overlay-light: radial-gradient(circle, rgba(255, 255, 255, 0.18) 0%, transparent 65%);
  --radial-overlay-accent: radial-gradient(circle, rgba(0, 245, 255, 0.15) 0%, transparent 50%);
  --radial-overlay-neon: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 60%);
  --radial-overlay-coral: radial-gradient(circle, rgba(255, 120, 73, 0.18) 0%, transparent 55%);
  --border-radius-small: 12px;
  --border-radius-medium: 16px;
  --border-radius-large: 20px;
  --border-radius-xl: 24px;
  --shadow-small: 0 4px 12px rgba(0, 0, 0, 0.15);
  --shadow-medium: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-large: 0 16px 40px rgba(0, 0, 0, 0.18);
  --shadow-neon: 0 0 20px rgba(0, 245, 255, 0.3), 0 8px 32px rgba(0, 0, 0, 0.2);
  --shadow-cyber: 0 0 25px rgba(139, 92, 246, 0.4), 0 8px 32px rgba(0, 0, 0, 0.15);
  --shadow-coral: 0 0 18px rgba(255, 120, 73, 0.3), 0 8px 32px rgba(0, 0, 0, 0.12);
  --animation-fast: 0.3s;
  --animation-medium: 0.5s;
  --animation-slow: 0.8s;
}

.theme-light {
  --ion-background-color: #FAFAFA;
  --ion-text-color: #000000;
  --ion-color-primary: #8a2be2;
  --ion-color-secondary: #d63384;
  --ion-color-tertiary: #ff79c6;
  --background-light: #FAFAFA;
  --card-background: #F5F5F5;
  --app-surface-color: #ffffff;
  --app-surface-muted: #f8fafc;
  --app-heading-color: #182338;
  --app-body-text: #596579;
  --app-muted-text: #7a8495;
  --app-soft-border: #e2e8f0;
  --app-accent-color: #4169b2;
  --app-control-background: var(--app-surface-color);
  --app-control-text: var(--app-heading-color);
  --app-control-border: var(--app-soft-border);
  --app-control-selected-text: #ffffff;
}

.theme-dark {
  --ion-background-color: #292828;
  --ion-text-color: #FAFAFA;
  --ion-color-primary: #8a2be2;
  --ion-color-secondary: #d63384;
  --ion-color-tertiary: #ff79c6;
  --background-light: #292828;
  --card-background: #1c1c1d;
  --app-surface-color: #1c1c1d;
  --app-surface-muted: #252526;
  --app-heading-color: #fafafa;
  --app-body-text: #d0d4dc;
  --app-muted-text: #aeb6c4;
  --app-soft-border: #3b404a;
  --app-accent-color: #8db5ff;
  --app-control-background: var(--app-surface-color);
  --app-control-text: var(--app-heading-color);
  --app-control-border: var(--app-soft-border);
  --app-control-selected-text: #ffffff;
  --image-card-shadow: rgba(255, 0, 255, 0.3);
  --ion-tab-bar-background: #1c1c1d;
  --ion-border-color: #FAFAFA;
}

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