@charset "UTF-8";

/* src/theme/variables.scss */
:root {
  --ion-color-primary: #C17F5B;
  --ion-color-primary-rgb:
    193,
    127,
    91;
  --ion-color-primary-contrast: #FFFFFF;
  --ion-color-primary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-primary-shade: #AA7050;
  --ion-color-primary-tint: #C78C6B;
  --ion-color-secondary: #7B2CBF;
  --ion-color-secondary-rgb:
    123,
    44,
    191;
  --ion-color-secondary-contrast: #ffffff;
  --ion-color-secondary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-secondary-shade: #6C27A8;
  --ion-color-secondary-tint: #8841C5;
  --ion-color-tertiary: #2D6A4F;
  --ion-color-tertiary-rgb:
    45,
    106,
    79;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-tertiary-shade: #285E46;
  --ion-color-tertiary-tint: #427661;
  --ion-color-success: #27AE60;
  --ion-color-success-rgb:
    39,
    174,
    96;
  --ion-color-success-contrast: #ffffff;
  --ion-color-success-contrast-rgb:
    255,
    255,
    255;
  --ion-color-success-shade: #229954;
  --ion-color-success-tint: #3DBB70;
  --ion-color-warning: #F39C12;
  --ion-color-warning-rgb:
    243,
    156,
    18;
  --ion-color-warning-contrast: #000000;
  --ion-color-warning-contrast-rgb:
    0,
    0,
    0;
  --ion-color-warning-shade: #D68910;
  --ion-color-warning-tint: #F5A623;
  --ion-color-danger: #C0392B;
  --ion-color-danger-rgb:
    192,
    57,
    43;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb:
    255,
    255,
    255;
  --ion-color-danger-shade: #A93226;
  --ion-color-danger-tint: #C74940;
  --ion-color-dark: #222428;
  --ion-color-dark-rgb:
    34,
    36,
    40;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb:
    255,
    255,
    255;
  --ion-color-dark-shade: #1e2023;
  --ion-color-dark-tint: #383a3e;
  --ion-color-medium: #92949c;
  --ion-color-medium-rgb:
    146,
    148,
    156;
  --ion-color-medium-contrast: #ffffff;
  --ion-color-medium-contrast-rgb:
    255,
    255,
    255;
  --ion-color-medium-shade: #808289;
  --ion-color-medium-tint: #9d9fa6;
  --ion-color-light: #f4f5f8;
  --ion-color-light-rgb:
    244,
    245,
    248;
  --ion-color-light-contrast: #000000;
  --ion-color-light-contrast-rgb:
    0,
    0,
    0;
  --ion-color-light-shade: #d7d8da;
  --ion-color-light-tint: #f5f6f9;
  --ion-background-color: #F8F5F0;
  --ion-background-color-rgb:
    248,
    245,
    240;
}
@media (prefers-color-scheme: dark) {
  body {
    --ion-color-primary: #B8936F;
    --ion-color-primary-rgb:
      184,
      147,
      111;
    --ion-color-primary-contrast: #FFFFFF;
    --ion-color-primary-contrast-rgb:
      255,
      255,
      255;
    --ion-color-primary-shade: #A18262;
    --ion-color-primary-tint: #BF9D7D;
    --ion-color-secondary: #3e4b51;
    --ion-color-secondary-rgb:
      62,
      75,
      81;
    --ion-color-secondary-contrast: #ffffff;
    --ion-color-secondary-contrast-rgb:
      255,
      255,
      255;
    --ion-color-secondary-shade: #374247;
    --ion-color-secondary-tint: #515d62;
    --ion-color-tertiary: #52796F;
    --ion-color-tertiary-rgb:
      82,
      121,
      111;
    --ion-color-tertiary-contrast: #ffffff;
    --ion-color-tertiary-contrast-rgb:
      255,
      255,
      255;
    --ion-color-tertiary-shade: #476A61;
    --ion-color-tertiary-tint: #63897D;
    --ion-color-success: #27AE60;
    --ion-color-success-rgb:
      39,
      174,
      96;
    --ion-color-success-contrast: #ffffff;
    --ion-color-success-contrast-rgb:
      255,
      255,
      255;
    --ion-color-success-shade: #229954;
    --ion-color-success-tint: #3DBB70;
    --ion-color-warning: #F39C12;
    --ion-color-warning-rgb:
      243,
      156,
      18;
    --ion-color-warning-contrast: #000000;
    --ion-color-warning-contrast-rgb:
      0,
      0,
      0;
    --ion-color-warning-shade: #D68910;
    --ion-color-warning-tint: #F5A623;
    --ion-color-danger: #C0392B;
    --ion-color-danger-rgb:
      192,
      57,
      43;
    --ion-color-danger-contrast: #ffffff;
    --ion-color-danger-contrast-rgb:
      255,
      255,
      255;
    --ion-color-danger-shade: #A93226;
    --ion-color-danger-tint: #C74940;
    --ion-color-light: #222428;
    --ion-color-light-rgb:
      34,
      36,
      40;
    --ion-color-light-contrast: #ffffff;
    --ion-color-light-contrast-rgb:
      255,
      255,
      255;
    --ion-color-light-shade: #1e2023;
    --ion-color-light-tint: #383a3e;
    --ion-color-medium: #7F8C8D;
    --ion-color-medium-rgb:
      127,
      140,
      141;
    --ion-color-medium-contrast: #ffffff;
    --ion-color-medium-contrast-rgb:
      255,
      255,
      255;
    --ion-color-medium-shade: #6F7B7C;
    --ion-color-medium-tint: #8C9899;
    --ion-color-dark: #f4f5f8;
    --ion-color-dark-rgb:
      244,
      245,
      248;
    --ion-color-dark-contrast: #000000;
    --ion-color-dark-contrast-rgb:
      0,
      0,
      0;
    --ion-color-dark-shade: #d7d8da;
    --ion-color-dark-tint: #f5f6f9;
  }
  .ios body {
    --ion-background-color: #0F0D0B;
    --ion-background-color-rgb:
      15,
      13,
      11;
    --ion-text-color: #F8F5F0;
    --ion-text-color-rgb:
      248,
      245,
      240;
    --ion-color-step-50: #1B1916;
    --ion-color-step-100: #262422;
    --ion-color-step-150: #32302D;
    --ion-color-step-200: #3E3B39;
    --ion-color-step-250: #494744;
    --ion-color-step-300: #555250;
    --ion-color-step-350: #615E5B;
    --ion-color-step-400: #6C6967;
    --ion-color-step-450: #787572;
    --ion-color-step-500: #84817E;
    --ion-color-step-550: #8F8D8A;
    --ion-color-step-600: #9B9895;
    --ion-color-step-650: #A7A4A1;
    --ion-color-step-700: #B2B0AD;
    --ion-color-step-750: #BEBCB9;
    --ion-color-step-800: #CAC7C4;
    --ion-color-step-850: #D5D3D0;
    --ion-color-step-900: #E1DEDB;
    --ion-color-step-950: #EDEAE7;
    --ion-item-background: #1A1816;
    --ion-toolbar-background: #22201C;
    --ion-tab-bar-background: #22201C;
    --ion-card-background: #1A1816;
  }
  .ios ion-modal {
    --ion-toolbar-background: var(--ion-color-step-150);
    --ion-toolbar-border-color: var(--ion-color-step-250);
  }
  .md body {
    --ion-background-color: #0F0D0B;
    --ion-background-color-rgb:
      15,
      13,
      11;
    --ion-text-color: #F8F5F0;
    --ion-text-color-rgb:
      248,
      245,
      240;
    --ion-border-color: rgba(193, 127, 91, 0.20);
    --ion-color-step-50: #1B1916;
    --ion-color-step-100: #262422;
    --ion-color-step-150: #32302D;
    --ion-color-step-200: #3E3B39;
    --ion-color-step-250: #494744;
    --ion-color-step-300: #555250;
    --ion-color-step-350: #615E5B;
    --ion-color-step-400: #6C6967;
    --ion-color-step-450: #787572;
    --ion-color-step-500: #84817E;
    --ion-color-step-550: #8F8D8A;
    --ion-color-step-600: #9B9895;
    --ion-color-step-650: #A7A4A1;
    --ion-color-step-700: #B2B0AD;
    --ion-color-step-750: #BEBCB9;
    --ion-color-step-800: #CAC7C4;
    --ion-color-step-850: #D5D3D0;
    --ion-color-step-900: #E1DEDB;
    --ion-color-step-950: #EDEAE7;
    --ion-item-background: #1A1816;
    --ion-toolbar-background: #22201C;
    --ion-tab-bar-background: #22201C;
    --ion-card-background: #1A1816;
  }
}
html {
  --ion-dynamic-font: var(--ion-default-dynamic-font);
}

/* src/tinymce-styles/prose.css */
.re-prose,
.mce-content-body.re-prose {
  font-family:
    "Literata",
    "Georgia",
    "Times New Roman",
    serif;
  font-size: 1rem;
  line-height: 1.68;
  font-feature-settings: "kern" 1, "liga" 1;
  letter-spacing: 0.01em;
}
.re-prose p,
.mce-content-body.re-prose p {
  margin: 0 0 0.55em;
  line-height: inherit;
}
.re-prose p:last-child,
.mce-content-body.re-prose p:last-child {
  margin-bottom: 0;
}
.re-prose ul,
.re-prose ol,
.mce-content-body.re-prose ul,
.mce-content-body.re-prose ol {
  margin: 0 0 0.55em;
  padding-inline-start: 1.25rem;
  line-height: inherit;
}
.re-prose i,
.mce-content-body.re-prose i {
  color: #6c27a8 !important;
  font-style: italic;
}
.re-prose b,
.re-prose strong,
.mce-content-body.re-prose b,
.mce-content-body.re-prose strong {
  color: #aa7050 !important;
  font-family:
    "Crimson Pro",
    "Crimson Text",
    Georgia,
    "Times New Roman",
    serif;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.mce-content-body.re-prose--mini {
  padding: 0.5rem 0.625rem;
  padding-top: 10px;
}
@media (prefers-color-scheme: dark) {
  .re-prose i,
  .mce-content-body.re-prose i {
    color: #f5a623 !important;
  }
  .re-prose b,
  .re-prose strong,
  .mce-content-body.re-prose b,
  .mce-content-body.re-prose strong {
    color: #bf9d7d !important;
  }
}

/* src/tinymce-styles/extensions.css */
.re-speech,
[data-speech] {
  display: block;
  margin: 0.5em 0;
  padding: 0em 0.4em;
  border-left: 3px solid rgba(82, 121, 111, 0.72);
  border-radius: 0 8px 8px 0;
  background: rgba(82, 121, 111, 0.16);
  box-shadow: inset 0 0 0 1px rgba(82, 121, 111, 0.14);
  font-family:
    "SF Mono",
    Monaco,
    "Inconsolata",
    "Fira Code",
    "Courier New",
    monospace;
  font-size: 0.92em;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}
.re-speech:first-child,
[data-speech]:first-child {
  margin-top: 0;
}
.re-speech:last-child,
[data-speech]:last-child {
  margin-bottom: 0;
}
[data-quotation]:not([data-quotation=""]) {
  background: rgba(82, 121, 111, 0.15);
  border-bottom: 1px solid rgba(82, 121, 111, 0.4);
}
[data-operation] {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.18em 0.6em 0.18em 0.45em;
  border-radius: 9999px;
  border: 1px solid rgba(193, 127, 91, 0.32);
  background: rgba(193, 127, 91, 0.09);
  cursor: pointer;
  white-space: nowrap;
  vertical-align: middle;
  font-size: 0.875em;
  line-height: 1.5;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease;
  -webkit-user-select: none;
  user-select: none;
  margin: 0 0.1em;
}
[data-operation]:hover {
  background: rgba(193, 127, 91, 0.17);
  border-color: rgba(193, 127, 91, 0.52);
  box-shadow: 0 1px 6px rgba(193, 127, 91, 0.18);
}
[data-operation]:active {
  background: rgba(193, 127, 91, 0.24);
  box-shadow: none;
}
[data-operation] > svg {
  height: 1em;
  width: 1em;
  vertical-align: middle;
  fill: rgba(193, 127, 91, 0.85);
  flex-shrink: 0;
}
.op-chip__body {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3em;
}
.op-chip__name {
  font-weight: 600;
  letter-spacing: 0.01em;
  font-family: inherit;
  color: inherit;
}
.op-chip__char {
  font-size: 0.82em;
  font-style: italic;
  opacity: 0.62;
  font-family: inherit;
  color: inherit;
}
[data-operation-result] strong.result {
  display: inline-flex;
  align-items: center;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: normal;
  color: inherit;
}
.op-chip__result {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6em;
  padding: 0 0.38em;
  height: 1.5em;
  border-radius: 9999px;
  background: rgba(74, 157, 143, 0.18);
  border: 1px solid rgba(74, 157, 143, 0.36);
  font-weight: 700;
  font-size: 0.8em;
  color: #2a8c7a;
  margin-left: 0.3em;
  font-style: normal;
  font-family:
    "SF Mono",
    Monaco,
    "Fira Code",
    "Courier New",
    monospace;
  letter-spacing: 0;
}
.op-chip__result--success {
  background: rgba(39, 174, 96, 0.16);
  border-color: rgba(39, 174, 96, 0.36);
  color: #1d8a49;
}
.op-chip__result--fail {
  background: rgba(192, 57, 43, 0.16);
  border-color: rgba(192, 57, 43, 0.36);
  color: #b03020;
}
.op-chip__result--success svg,
.op-chip__result--fail svg {
  height: 1.05em;
  width: 1.05em;
  flex-shrink: 0;
  vertical-align: middle;
  fill: currentColor;
}
@media (prefers-color-scheme: dark) {
  .re-speech,
  [data-speech] {
    border-left-color: rgba(94, 194, 177, 0.55);
    background: rgba(74, 157, 143, 0.18);
    box-shadow: inset 0 0 0 1px rgba(74, 157, 143, 0.2);
  }
  [data-operation] {
    border-color: rgba(193, 127, 91, 0.28);
    background: rgba(193, 127, 91, 0.07);
  }
  [data-operation]:hover {
    background: rgba(193, 127, 91, 0.14);
    border-color: rgba(193, 127, 91, 0.48);
    box-shadow: 0 1px 8px rgba(193, 127, 91, 0.22);
  }
  [data-operation] > svg {
    fill: rgba(193, 127, 91, 0.9);
  }
  .op-chip__result {
    background: rgba(74, 157, 143, 0.14);
    border-color: rgba(74, 157, 143, 0.28);
    color: #5ec2b1;
  }
  .op-chip__result--success {
    background: rgba(39, 174, 96, 0.14);
    border-color: rgba(39, 174, 96, 0.3);
    color: #45c87a;
  }
  .op-chip__result--fail {
    background: rgba(192, 57, 43, 0.14);
    border-color: rgba(192, 57, 43, 0.3);
    color: #e05a47;
  }
}

/* src/global.scss */
:root {
  --ion-color-primary: #0054e9;
  --ion-color-primary-rgb:
    0,
    84,
    233;
  --ion-color-primary-contrast: #fff;
  --ion-color-primary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-primary-shade: #004acd;
  --ion-color-primary-tint: #1a65eb;
  --ion-color-secondary: #0163aa;
  --ion-color-secondary-rgb:
    1,
    99,
    170;
  --ion-color-secondary-contrast: #fff;
  --ion-color-secondary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-secondary-shade: #015796;
  --ion-color-secondary-tint: #1a73b3;
  --ion-color-tertiary: #6030ff;
  --ion-color-tertiary-rgb:
    96,
    48,
    255;
  --ion-color-tertiary-contrast: #fff;
  --ion-color-tertiary-contrast-rgb:
    255,
    255,
    255;
  --ion-color-tertiary-shade: #542ae0;
  --ion-color-tertiary-tint: #7045ff;
  --ion-color-success: #2dd55b;
  --ion-color-success-rgb:
    45,
    213,
    91;
  --ion-color-success-contrast: #000;
  --ion-color-success-contrast-rgb:
    0,
    0,
    0;
  --ion-color-success-shade: #28bb50;
  --ion-color-success-tint: #42d96b;
  --ion-color-warning: #ffc409;
  --ion-color-warning-rgb:
    255,
    196,
    9;
  --ion-color-warning-contrast: #000;
  --ion-color-warning-contrast-rgb:
    0,
    0,
    0;
  --ion-color-warning-shade: #e0ac08;
  --ion-color-warning-tint: #ffca22;
  --ion-color-danger: #c5000f;
  --ion-color-danger-rgb:
    197,
    0,
    15;
  --ion-color-danger-contrast: #fff;
  --ion-color-danger-contrast-rgb:
    255,
    255,
    255;
  --ion-color-danger-shade: #ad000d;
  --ion-color-danger-tint: #cb1a27;
  --ion-color-light: #f4f5f8;
  --ion-color-light-rgb:
    244,
    245,
    248;
  --ion-color-light-contrast: #000;
  --ion-color-light-contrast-rgb:
    0,
    0,
    0;
  --ion-color-light-shade: #d7d8da;
  --ion-color-light-tint: #f5f6f9;
  --ion-color-medium: #636469;
  --ion-color-medium-rgb:
    99,
    100,
    105;
  --ion-color-medium-contrast: #fff;
  --ion-color-medium-contrast-rgb:
    255,
    255,
    255;
  --ion-color-medium-shade: #57585c;
  --ion-color-medium-tint: #737478;
  --ion-color-dark: #222428;
  --ion-color-dark-rgb:
    34,
    36,
    40;
  --ion-color-dark-contrast: #fff;
  --ion-color-dark-contrast-rgb:
    255,
    255,
    255;
  --ion-color-dark-shade: #1e2023;
  --ion-color-dark-tint: #383a3e;
}
html.ios {
  --ion-default-font:
    -apple-system,
    BlinkMacSystemFont,
    "Helvetica Neue",
    "Roboto",
    sans-serif;
}
html.md {
  --ion-default-font:
    "Roboto",
    "Helvetica Neue",
    sans-serif;
}
html {
  --ion-dynamic-font: -apple-system-body;
  --ion-font-family: var(--ion-default-font);
}
body {
  background: var(--ion-background-color);
  color: var(--ion-text-color);
}
body.backdrop-no-scroll {
  overflow: hidden;
}
html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,
html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,
html.ios ion-modal ion-footer ion-toolbar:first-of-type {
  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, #0054e9) !important;
  --ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;
  --ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;
  --ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important;
}
.ion-color-secondary {
  --ion-color-base: var(--ion-color-secondary, #0163aa) !important;
  --ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;
  --ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;
  --ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important;
}
.ion-color-tertiary {
  --ion-color-base: var(--ion-color-tertiary, #6030ff) !important;
  --ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;
  --ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;
  --ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important;
}
.ion-color-success {
  --ion-color-base: var(--ion-color-success, #2dd55b) !important;
  --ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;
  --ion-color-contrast: var(--ion-color-success-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;
  --ion-color-tint: var(--ion-color-success-tint, #42d96b) !important;
}
.ion-color-warning {
  --ion-color-base: var(--ion-color-warning, #ffc409) !important;
  --ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;
  --ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;
  --ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important;
}
.ion-color-danger {
  --ion-color-base: var(--ion-color-danger, #c5000f) !important;
  --ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;
  --ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;
  --ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important;
}
.ion-color-light {
  --ion-color-base: var(--ion-color-light, #f4f5f8) !important;
  --ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;
  --ion-color-contrast: var(--ion-color-light-contrast, #000) !important;
  --ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;
  --ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;
  --ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important;
}
.ion-color-medium {
  --ion-color-base: var(--ion-color-medium, #636469) !important;
  --ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;
  --ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;
  --ion-color-tint: var(--ion-color-medium-tint, #737478) !important;
}
.ion-color-dark {
  --ion-color-base: var(--ion-color-dark, #222428) !important;
  --ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;
  --ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;
  --ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;
  --ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;
  --ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important;
}
.ion-page {
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: flex;
  position: absolute;
  flex-direction: column;
  justify-content: space-between;
  contain: layout size style;
  z-index: 0;
}
ion-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, 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 {
    transition: none !important;
  }
}
ion-accordion.accordion-expanding > [slot=header] .ion-accordion-toggle-icon,
ion-accordion.accordion-expanded > [slot=header] .ion-accordion-toggle-icon {
  transform: rotate(180deg);
}
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-previous ion-item[slot=header] {
  --border-width: 0px;
  --inner-border-width: 0px;
}
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanding:first-of-type,
ion-accordion-group.accordion-group-expand-inset.md > ion-accordion.accordion-expanded:first-of-type {
  margin-top: 0;
}
ion-input input::-webkit-date-and-time-value {
  text-align: start;
}
.ion-datetime-button-overlay {
  --width: fit-content;
  --height: fit-content;
}
.ion-datetime-button-overlay ion-datetime.datetime-grid {
  width: 320px;
  min-height: 320px;
}
[ion-last-focus],
header[tabindex="-1"]:focus,
[role=banner][tabindex="-1"]:focus,
main[tabindex="-1"]:focus,
[role=main][tabindex="-1"]:focus,
h1[tabindex="-1"]:focus,
[role=heading][aria-level="1"][tabindex="-1"]:focus {
  outline: none;
}
.popover-viewport:has(> ion-content) {
  overflow: hidden;
}
@supports not selector(:has(> ion-content)) {
  .popover-viewport {
    overflow: hidden;
  }
}
audio,
canvas,
progress,
video {
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
b,
strong {
  font-weight: bold;
}
img {
  max-width: 100%;
}
hr {
  height: 1px;
  border-width: 0;
  box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
label,
input,
select,
textarea {
  font-family: inherit;
  line-height: normal;
}
textarea {
  overflow: auto;
  height: auto;
  font: inherit;
  color: inherit;
}
textarea::placeholder {
  padding-left: 2px;
}
form,
input,
optgroup,
select {
  margin: 0;
  font: inherit;
  color: inherit;
}
html input[type=button],
input[type=reset],
input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}
a,
a div,
a span,
a ion-icon,
a ion-label,
button,
button div,
button span,
button ion-icon,
button ion-label,
.ion-tappable,
[tappable],
[tappable] div,
[tappable] span,
[tappable] ion-icon,
[tappable] ion-label,
input,
textarea {
  touch-action: manipulation;
}
a ion-label,
button ion-label {
  pointer-events: none;
}
button {
  padding: 0;
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-style: inherit;
  font-variant: inherit;
  line-height: 1;
  text-transform: none;
  cursor: pointer;
  -webkit-appearance: button;
}
[tappable] {
  cursor: pointer;
}
a[disabled],
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
html {
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
html: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, #0054e9);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 16px;
  margin-bottom: 10px;
  font-weight: 500;
  line-height: 1.2;
}
h1 {
  margin-top: 20px;
  font-size: 1.625rem;
}
h2 {
  margin-top: 18px;
  font-size: 1.5rem;
}
h3 {
  font-size: 1.375rem;
}
h4 {
  font-size: 1.25rem;
}
h5 {
  font-size: 1.125rem;
}
h6 {
  font-size: 1rem;
}
small {
  font-size: 75%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
.ion-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);
  -webkit-padding-start: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
  -webkit-padding-end: 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);
  -webkit-padding-start: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
}
.ion-padding-end {
  --padding-end: var(--ion-padding, 16px);
  -webkit-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);
  -webkit-padding-start: var(--ion-padding, 16px);
  padding-inline-start: var(--ion-padding, 16px);
  -webkit-padding-end: 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);
  -webkit-margin-start: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
  -webkit-margin-end: 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);
  -webkit-margin-start: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
}
.ion-margin-end {
  --margin-end: var(--ion-margin, 16px);
  -webkit-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);
  -webkit-margin-start: var(--ion-margin, 16px);
  margin-inline-start: var(--ion-margin, 16px);
  -webkit-margin-end: 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;
}
re-message re-supabase-image,
re-message .image-placeholder {
  display: block;
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  background:
    linear-gradient(
      135deg,
      #2a2a2e,
      #1a1a1d);
}
re-message re-supabase-image img,
re-message .image-placeholder img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 16/9;
  min-height: 150px;
  max-height: 400px;
}
re-message re-supabase-image:not(:has(img[src])),
re-message .image-placeholder:not(:has(img[src])) {
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}
re-message re-supabase-image:not(:has(img[src]))::after,
re-message .image-placeholder:not(:has(img[src]))::after {
  content: "\1f5bc\fe0f";
  font-size: 3rem;
  opacity: 0.3;
}
.tox,
.tox *:not(.tox-tbtn--active):not(.tox-tbtn--enabled) {
  border: none !important;
  background-color: transparent !important;
  fill: var(--ion-text-color);
  color: var(--ion-text-color);
}
.tox .tox-tbtn--active,
.tox .tox-tbtn--enabled,
.tox .tox-tbtn--enabled:focus,
.tox .tox-tbtn--enabled:hover {
  background: var(--ion-color-tertiary) !important;
}
.tox .tox-icon svg {
  height: 24px;
  width: 24px;
}
.tox .tox-edit-area::before {
  border: none !important;
}
.editor-mini .tox.tox-tinymce:not(.tox-edit-focus) .tox-editor-header {
  height: 0;
  padding: 0;
  padding-top: 0;
  overflow: hidden;
  background: transparent;
}
.editor-mini .tox-edit-area__iframe {
  background: var(--app-composer-surface, var(--ion-color-light)) !important;
}
.editor-full {
  position: relative;
  height: 100%;
}
.editor-full > .tox {
  height: 100% !important;
}
.backdrop-opacity {
  --backdrop-opacity: 0.8;
}
.\!flex {
  display: flex !important;
}
:root {
  --color-warrior: #C0392B;
  --color-mage: #7B2CBF;
  --color-rogue: #34495E;
  --color-cleric: #F39C12;
  --color-ranger: #27AE60;
  --color-system: #7F8C8D;
  --color-narrator: #C17F5B;
  --color-player: #3498DB;
  --color-npc: #E67E22;
  --color-online: #27AE60;
  --color-away: #F39C12;
  --color-offline: #7F8C8D;
  --color-surface: #ffffff;
  --color-surface-variant: #f4f5f8;
  --color-outline: #d7d8da;
  --color-outline-variant: #e5e7eb;
}
@media (prefers-color-scheme: dark) {
  body {
    --color-surface: #252529;
    --color-surface-variant: #2D2D35;
    --color-outline: #3D3D44;
    --color-outline-variant: #36363C;
  }
}
:root {
  --font-primary:
    "Source Sans 3",
    "Source Sans Pro",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --font-heading:
    "Crimson Pro",
    "Crimson Text",
    Georgia,
    "Times New Roman",
    serif;
  --font-message:
    "Literata",
    "Georgia",
    "Times New Roman",
    serif;
  --font-mono:
    "SF Mono",
    Monaco,
    "Inconsolata",
    "Fira Code",
    "Courier New",
    monospace;
  --text-display: 3rem;
  --text-h1: 2rem;
  --text-h2: 1.5rem;
  --text-h3: 1.25rem;
  --text-body: 1rem;
  --text-small: 0.875rem;
  --text-caption: 0.75rem;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.62;
  --line-height-loose: 2;
  --line-height-message: 1.68;
  --line-height-prose: var(--line-height-message);
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.025em;
}
:root {
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --z-base: 0;
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
}
:root {
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.2);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.3);
  --shadow-xl: 0 12px 32px rgba(0, 0, 0, 0.4);
  --glow-primary: 0 0 12px rgba(193, 127, 91, 0.40), 0 0 24px rgba(193, 127, 91, 0.20);
  --glow-secondary: 0 0 12px rgba(230, 126, 34, 0.4), 0 0 24px rgba(230, 126, 34, 0.2);
  --glow-success: 0 0 12px rgba(39, 174, 96, 0.4), 0 0 24px rgba(39, 174, 96, 0.2);
  --transition-fast: 0.1s ease;
  --transition-base: 0.2s ease;
  --transition-slow: 0.3s ease;
  --transition-slower: 0.5s ease;
  --backdrop-blur: blur(8px);
  --backdrop-opacity: 0.8;
}
@media (prefers-color-scheme: dark) {
  body {
    --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
    --shadow-xl: 0 12px 32px rgba(0, 0, 0, 0.6);
    --glow-primary: 0 0 12px rgba(193, 127, 91, 0.50), 0 0 24px rgba(193, 127, 91, 0.30);
    --glow-secondary: 0 0 12px rgba(230, 126, 34, 0.5), 0 0 24px rgba(230, 126, 34, 0.3);
  }
}
@keyframes pulse-glow {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
@keyframes slide-in-right {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes slide-out-left {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0;
  }
}
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
:root {
  --re-list-row-radius: 14px;
  --re-list-row-bg: #faf7f2;
  --re-list-row-border-color: rgba(193, 127, 91, 0.18);
  --re-list-row-border-active: rgba(193, 127, 91, 0.38);
  --re-list-row-bg-dark: #1a1816;
  --re-list-row-gap: 0.5rem;
  --re-list-row-padding-block: 0.65rem;
  --re-list-row-padding-inline: 0.75rem;
  --re-list-row-form-padding-block: 0.5rem;
}
@media (prefers-color-scheme: dark) {
  :root {
    --re-list-row-border-color: rgba(193, 127, 91, 0.28);
    --re-list-row-border-active: rgba(193, 127, 91, 0.38);
  }
}
:root {
  --app-theme-color: #F8F5F0;
  --app-content-scroll-bg:
    radial-gradient(
      
      ellipse 130% 70% at 50% -15%,
      rgba(var(--ion-color-primary-rgb), 0.12),
      transparent 52% ),
    radial-gradient(
      
      ellipse 90% 55% at 100% 100%,
      rgba(var(--ion-color-secondary-rgb), 0.06),
      transparent 50% ),
    linear-gradient(
      
      185deg,
      #f3ede4 0%,
      var(--ion-background-color) 42%,
      #ebe4d9 100% );
  --app-toolbar-tint-bg:
    linear-gradient(
      
      180deg,
      rgba(248, 245, 240, 0.96) 0%,
      rgba(248, 245, 240, 0.88) 100% );
  --app-toolbar-tint-border: rgba(var(--ion-color-primary-rgb), 0.22);
  --app-composer-surface: var(--ion-color-light);
  --app-composer-border: rgba(var(--ion-color-primary-rgb), 0.2);
  --app-composer-inset: inset 0 1px 0 rgba(255, 255, 255, 0.65), inset 0 -1px 0 rgba(var(--ion-color-primary-rgb), 0.08);
  --app-composer-shadow: 0 2px 10px rgba(62, 39, 35, 0.08);
}
@media (prefers-color-scheme: dark) {
  body {
    --app-theme-color: #1A1A1D;
    --app-content-scroll-bg:
      radial-gradient(
        
        ellipse 120% 65% at 50% 0%,
        rgba(var(--ion-color-primary-rgb), 0.18),
        transparent 55% ),
      radial-gradient(
        
        ellipse 80% 50% at 0% 100%,
        rgba(var(--ion-color-secondary-rgb), 0.12),
        transparent 48% ),
      linear-gradient(
        
        195deg,
        #141418 0%,
        var(--ion-background-color) 50%,
        #121215 100% );
    --app-toolbar-tint-bg:
      linear-gradient(
        
        180deg,
        rgba(26, 26, 29, 0.96) 0%,
        rgba(26, 26, 29, 0.9) 100% );
    --app-toolbar-tint-border: rgba(var(--ion-color-primary-rgb), 0.28);
    --app-composer-surface: #222428;
    --app-composer-border: rgba(var(--ion-color-primary-rgb), 0.25);
    --app-composer-inset: inset 0 1px 0 rgba(255, 255, 255, 0.06), inset 0 -1px 0 rgba(0, 0, 0, 0.35);
    --app-composer-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
  }
}
ion-header ion-toolbar ion-title {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.03em;
}
ion-content ion-header[collapse=condense] {
  box-shadow: none;
}
ion-content ion-header[collapse=condense] ion-toolbar {
  --background: transparent;
  --border-width: 0;
  --color: var(--ion-color-primary-shade);
  --padding-top: 0.25rem;
  --padding-bottom: 0.25rem;
}
ion-content ion-header[collapse=condense] ion-toolbar ion-title[size=large] {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.025em;
}
@media (prefers-color-scheme: dark) {
  ion-content ion-header[collapse=condense] ion-toolbar {
    --color: var(--ion-color-primary-tint);
  }
}
ion-list-header {
  --background: transparent;
  --border-width: 0;
  --inner-border-width: 0;
  --color: rgba(var(--ion-text-color-rgb), 0.78);
  min-height: auto;
  align-items: center;
  padding-inline-start: max(1rem, var(--ion-safe-area-left, 0px));
  padding-inline-end: max(1rem, var(--ion-safe-area-right, 0px));
  padding-block: 1rem 0.5rem;
  margin: 0 0 0.75rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
  font-family: var(--font-primary);
  font-size: var(--text-small);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  line-height: var(--line-height-tight);
  text-transform: none;
}
ion-list-header:not(:first-child) {
  margin: 1rem 0 0.75rem;
  padding-top: 1.125rem;
}
ion-list-header[color] {
  --background: transparent;
  --color: rgba(var(--ion-text-color-rgb), 0.78);
  background: transparent;
  color: rgba(var(--ion-text-color-rgb), 0.78);
}
@media (prefers-color-scheme: dark) {
  ion-list-header {
    --color: rgba(var(--ion-text-color-rgb), 0.72);
    border-bottom-color: rgba(var(--ion-color-primary-rgb), 0.22);
  }
  ion-list-header[color] {
    --color: rgba(var(--ion-text-color-rgb), 0.72);
    color: rgba(var(--ion-text-color-rgb), 0.72);
  }
}
ion-list {
  --background: transparent;
  background: transparent;
  padding: 0;
}
ion-item {
  --background: transparent;
  --border-radius: 0;
  --background-activated: rgba(var(--ion-color-primary-rgb), 0.08);
  --background-focused: rgba(var(--ion-color-primary-rgb), 0.06);
  --background-hover: rgba(var(--ion-color-primary-rgb), 0.04);
  --border-color: rgba(var(--ion-color-primary-rgb), 0.14);
  --detail-icon-color: rgba(var(--ion-color-primary-rgb), 0.5);
  --detail-icon-opacity: 1;
}
ion-item-divider {
  --background: transparent;
  --padding-start: 1rem;
  --padding-end: 1rem;
  --inner-padding-end: 0;
  --inner-padding-start: 0;
  margin: 0;
  min-height: auto;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
  padding-top: 0.75rem;
  padding-bottom: 0.875rem;
}
ion-item-divider:not(:first-child) {
  margin-top: 0.5rem;
  padding-top: 1rem;
}
ion-item-divider ion-label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
@media (prefers-color-scheme: dark) {
  ion-item {
    --background: transparent;
    --background-activated: rgba(193, 127, 91, 0.1);
    --background-focused: rgba(193, 127, 91, 0.08);
    --background-hover: rgba(193, 127, 91, 0.06);
    --border-color: rgba(193, 127, 91, 0.16);
    --detail-icon-color: rgba(193, 127, 91, 0.55);
  }
  ion-item-divider {
    border-bottom-color: rgba(193, 127, 91, 0.2);
  }
}
.re-hub-scroll {
  --padding-start: max(0.75rem, var(--ion-safe-area-left, 0px));
  --padding-end: max(0.75rem, var(--ion-safe-area-right, 0px));
  --padding-top: 0.75rem;
  --padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
}
.re-hub-scroll ion-list,
.re-card-list {
  padding: 0;
  background: transparent;
}
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio)),
.re-card-list ion-item,
ion-list.re-card-list ion-item {
  --re-list-row-ring: var(--re-list-row-border-color);
  --background: var(--re-list-row-bg);
  --border-radius: var(--re-list-row-radius);
  --inner-border-radius: var(--re-list-row-radius);
  --border-width: 0 !important;
  --border-style: solid;
  --border-color: var(--re-list-row-border-color);
  --inner-border-width: 0 !important;
  --inner-box-shadow: none !important;
  --background-hover: var(--re-list-row-bg);
  --background-activated: var(--re-list-row-bg);
  --background-focused: var(--re-list-row-bg);
  --background-hover-opacity: 0 !important;
  --background-activated-opacity: 0 !important;
  --background-focused-opacity: 0 !important;
  --ripple-color: transparent;
  --color-activated: inherit;
  --color-hover: inherit;
  --color-focused: inherit;
  --padding-top: var(--re-list-row-padding-block);
  --padding-bottom: var(--re-list-row-padding-block);
  --padding-start: var(--re-list-row-padding-inline);
  --padding-end: var(--re-list-row-padding-inline);
  margin-bottom: var(--re-list-row-gap);
  border: none !important;
  box-shadow: none !important;
  filter: none;
  overflow: hidden;
}
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio)):hover,
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio)).ion-activated,
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio)).ion-focused,
.re-card-list ion-item:hover,
.re-card-list ion-item.ion-activated,
.re-card-list ion-item.ion-focused,
ion-list.re-card-list ion-item:hover,
ion-list.re-card-list ion-item.ion-activated,
ion-list.re-card-list ion-item.ion-focused {
  --re-list-row-ring: var(--re-list-row-border-active);
}
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio))::part(native),
.re-card-list ion-item::part(native),
ion-list.re-card-list ion-item::part(native) {
  border: none !important;
  border-radius: var(--re-list-row-radius);
  box-shadow: inset 0 0 0 1px var(--re-list-row-ring) !important;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 0.22s ease;
}
.re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio))[detail=true],
.re-card-list ion-item[detail=true],
ion-list.re-card-list ion-item[detail=true] {
  --detail-icon-opacity: 0.5;
  --detail-icon-color: var(--ion-color-medium);
  --detail-icon-font-size: 0.95rem;
}
ion-list.re-card-list.list-lines-none ion-item.item-lines-default,
ion-list.re-card-list.list-ios-lines-none ion-item.item-lines-default,
.re-hub-scroll ion-list.list-lines-none ion-item.item-lines-default,
.re-hub-scroll ion-list.list-ios-lines-none ion-item.item-lines-default {
  --border-width: 0 !important;
  --inner-border-width: 0 !important;
  --inner-box-shadow: none !important;
}
.re-card-list ion-item:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio) {
  --min-height: auto;
  --padding-top: var(--re-list-row-form-padding-block);
  --padding-bottom: var(--re-list-row-form-padding-block);
}
.re-card-list ion-item:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio) ion-input,
.re-card-list ion-item:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio) ion-select,
.re-card-list ion-item:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio) ion-textarea {
  width: 100%;
}
.re-card-list ion-item:has(ion-radio),
.re-card-list ion-item:has(ion-checkbox) {
  --padding-top: var(--re-list-row-padding-block);
  --padding-bottom: var(--re-list-row-padding-block);
}
ion-accordion > ion-item,
.re-hub-scroll ion-accordion > ion-item,
.re-card-list ion-accordion > ion-item {
  --border-radius: 0;
}
.re-list-row-title {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-body);
  margin: 0;
  color: var(--ion-text-color);
}
.re-list-row-note {
  display: block;
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--ion-color-medium);
}
.re-list-row-avatar {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  background: rgba(193, 127, 91, 0.14);
  color: #d49670;
}
.re-list-row-avatar--amber {
  background: rgba(243, 156, 18, 0.12);
  color: #f7c46b;
}
.re-card-list ion-avatar,
.re-hub-scroll .re-card-list ion-avatar {
  --border-radius: 11px;
  width: 40px;
  height: 40px;
}
.re-card-list ion-avatar img,
.re-hub-scroll .re-card-list ion-avatar img {
  border-radius: 11px;
}
@media (prefers-color-scheme: dark) {
  .re-hub-scroll ion-item:not(:has(ion-input, ion-select, ion-textarea, ion-toggle, ion-range, ion-checkbox, ion-radio)),
  .re-card-list ion-item,
  ion-list.re-card-list ion-item {
    --background: var(--re-list-row-bg-dark);
    --background-hover: var(--re-list-row-bg-dark);
    --background-activated: var(--re-list-row-bg-dark);
    --background-focused: var(--re-list-row-bg-dark);
  }
}
.re-elevated-card {
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.18);
}
@media (prefers-color-scheme: dark) {
  .re-elevated-card {
    border-color: rgba(var(--ion-color-primary-rgb), 0.28);
    box-shadow: var(--shadow-md);
  }
}
.re-elevated-card.active {
  border-color: rgba(var(--ion-color-primary-rgb), 0.45);
  box-shadow: 0 0 0 1px rgba(var(--ion-color-primary-rgb), 0.2);
}
.re-create-scroll.re-hub-scroll {
  --padding-top: 1.125rem;
}
.re-create-shell {
  max-width: 28rem;
  margin-inline: auto;
}
.re-create-shell > ion-card.re-elevated-card {
  margin-inline: 0;
  width: 100%;
}
.re-create-card ion-card-content {
  padding-block: 1.125rem 1rem;
}
.re-create-lead {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: rgba(var(--ion-text-color-rgb), 0.86);
  text-wrap: balance;
}
.re-create-card .re-create-lead {
  margin: 0 0 1.125rem;
  padding-bottom: 1.125rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
}
@media (prefers-color-scheme: dark) {
  .re-create-lead {
    color: rgba(var(--ion-text-color-rgb), 0.8);
  }
  .re-create-card .re-create-lead {
    border-bottom-color: rgba(var(--ion-color-primary-rgb), 0.22);
  }
}
.re-create-field {
  display: block;
  padding-block: 0.25rem 0;
}
.re-create-field ion-input {
  width: 100%;
}
.re-primary-action-footer ion-toolbar {
  --padding-start: 1rem;
  --padding-end: 1rem;
  --padding-top: 0.5rem;
  --padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
}
.re-primary-action-footer ion-button {
  margin: 0;
}
.re-primary-action-scroll {
  --padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
}
.re-settings-scroll.re-hub-scroll {
  --padding-bottom: calc(6rem + env(safe-area-inset-bottom, 0px));
}
.re-settings-block {
  margin-bottom: 1.35rem;
}
.re-settings-section-heading {
  margin: 0 0 0.625rem;
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-primary-shade);
}
.re-settings-card.re-elevated-card {
  --background: rgba(var(--ion-background-color-rgb), 0.78);
  margin-inline: 0;
  margin-bottom: 0;
  width: 100%;
}
@media (prefers-color-scheme: dark) {
  .re-settings-card.re-elevated-card {
    --background: rgba(40, 40, 44, 0.92);
  }
}
.re-settings-card ion-card-header {
  padding-block: 0.75rem 0.25rem;
}
.re-settings-card ion-card-title {
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 600;
  color: rgba(var(--ion-text-color-rgb), 0.92);
}
.re-settings-card ion-card-content {
  padding-block: 0.25rem 1rem 1rem;
}
.re-settings-actions {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-top: 1.25rem;
  padding-bottom: 0.25rem;
}
.re-settings-actions ion-button {
  margin: 0;
}
.re-segment-wrap {
  padding: 0.65rem 0.75rem 0.85rem;
  position: sticky;
  top: 0;
  z-index: 2;
  background: transparent;
}
.re-segment {
  margin-inline: auto;
  max-width: 22rem;
  --background: var(--re-list-row-bg);
  border-radius: var(--re-list-row-radius);
  padding: 3px;
  box-shadow: inset 0 0 0 1px var(--re-list-row-border-color);
}
.re-segment ion-segment-button {
  --indicator-height: 0;
  --border-radius: calc(var(--re-list-row-radius) - 3px);
  --padding-top: 0.5rem;
  --padding-bottom: 0.5rem;
  min-height: 2.5rem;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: var(--text-small);
  letter-spacing: 0.02em;
  text-transform: none;
  --color: var(--ion-color-medium);
  --color-checked: var(--ion-color-primary-shade);
  --background-checked: rgba(var(--ion-color-primary-rgb), 0.12);
  --background-hover: rgba(var(--ion-color-primary-rgb), 0.06);
}
.re-segment--wide,
.re-segment--inline {
  max-width: none;
  margin-inline: 0;
}
.re-segment--tabs {
  max-width: none;
  margin-inline: 0;
  --background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
}
.re-segment--tabs ion-segment-button {
  --indicator-color: var(--ion-color-primary);
  --indicator-height: 2px;
  --indicator-box-shadow: none;
  --border-radius: 0;
  --padding-top: 0.65rem;
  --padding-bottom: 0.65rem;
  min-height: 2.75rem;
  --color: rgba(var(--ion-text-color-rgb), 0.52);
  --color-checked: var(--ion-color-primary-shade);
  --background-checked: transparent;
  --background-hover: rgba(var(--ion-color-primary-rgb), 0.05);
}
ion-toolbar .re-segment--tabs {
  border-bottom: none;
}
@media (prefers-color-scheme: dark) {
  .re-segment {
    --background: var(--re-list-row-bg-dark);
  }
  .re-segment ion-segment-button {
    --color: rgba(var(--ion-text-color-rgb), 0.52);
    --color-checked: var(--ion-color-primary-tint);
    --background-checked: rgba(var(--ion-color-primary-rgb), 0.16);
    --background-hover: rgba(var(--ion-color-primary-rgb), 0.1);
  }
  .re-segment--tabs {
    border-bottom-color: rgba(var(--ion-color-primary-rgb), 0.22);
  }
  .re-segment--tabs ion-segment-button {
    --color-checked: var(--ion-color-primary-tint);
  }
}
.re-tab-hub__shell {
  min-height: 100%;
}
@media (min-width: 992px) {
  ion-content.re-tab-hub {
    --padding-top: 1.25rem;
    --padding-bottom: 2rem;
    --padding-start: max(1.5rem, var(--ion-safe-area-left, 0px));
    --padding-end: max(1.5rem, var(--ion-safe-area-right, 0px));
  }
  .re-tab-hub__shell {
    max-width: 1120px;
    margin-inline: auto;
    padding-bottom: 1rem;
  }
  .re-tab-hub .re-segment-wrap {
    max-width: 22rem;
    margin: 0 0 1.25rem;
  }
  .re-tab-hub .re-card-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 0;
  }
  .re-tab-hub .re-card-list ion-item {
    margin-bottom: 0;
    --min-height: 5.25rem;
    --padding-top: 1rem;
    --padding-bottom: 1rem;
    --padding-start: 1rem;
    --padding-end: 0.85rem;
    --detail-icon-opacity: 0.35;
  }
  .re-tab-hub .re-card-list ion-item::part(native) {
    transition: box-shadow 0.22s ease, transform 0.18s ease;
  }
  .re-tab-hub .re-card-list ion-item:hover::part(native) {
    transform: translateY(-2px);
    box-shadow: inset 0 0 0 1px var(--re-list-row-border-active), var(--shadow-sm, 0 4px 14px rgba(62, 39, 35, 0.1)) !important;
  }
  .re-tab-hub .re-list-row-avatar {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    font-size: 1.05rem;
  }
  .re-tab-hub .re-list-row-title {
    font-size: 1rem;
    line-height: 1.3;
  }
  .re-tab-hub .stories-empty,
  .re-tab-hub .characters-empty {
    min-height: min(40vh, 22rem);
    padding-bottom: 2rem;
  }
}
@media (min-width: 1280px) {
  .re-tab-hub .re-card-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
}
.legacy-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.82rem;
  color: var(--ion-color-medium);
  background: rgba(var(--ion-color-warning-rgb), 0.08);
  border-bottom: 1px solid rgba(var(--ion-color-warning-rgb), 0.2);
  padding: 0.75rem 1rem;
}
.legacy-banner ion-icon {
  flex-shrink: 0;
  font-size: 1rem;
  color: var(--ion-color-warning);
  margin-top: 0.05em;
}
.lg-hero {
  position: relative;
  padding: 2rem 1.25rem 1.75rem;
  text-align: center;
  overflow: hidden;
}
.lg-hero-orb {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    radial-gradient(
      ellipse 130% 85% at 50% 0%,
      rgba(123, 44, 191, 0.13),
      transparent 65%);
  pointer-events: none;
}
@media (prefers-color-scheme: dark) {
  .lg-hero-orb {
    background:
      radial-gradient(
        ellipse 130% 85% at 50% 0%,
        rgba(123, 44, 191, 0.22),
        transparent 65%);
  }
}
.lg-avatar {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 1.1rem;
  border-radius: 50%;
  border: 2.5px solid rgba(var(--ion-color-secondary-rgb), 0.4);
  box-shadow: 0 0 0 4px rgba(var(--ion-color-secondary-rgb), 0.1);
}
.lg-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lg-hero-fields {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 360px;
  margin: 0 auto;
}
.lg-name-input {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0.2rem;
  --padding-bottom: 0.2rem;
  --background: transparent;
  --border-style: none;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  color: var(--ion-text-color);
  letter-spacing: 0.02em;
}
.lg-name-input::part(native) {
  text-align: center;
}
.lg-origine-input {
  --padding-start: 0;
  --padding-end: 0;
  --background: transparent;
  --border-style: none;
  font-size: 0.9rem;
  color: var(--ion-color-medium);
  text-align: center;
}
.lg-origine-input::part(native) {
  text-align: center;
}
.lg-new-hint {
  position: relative;
  font-size: 0.78rem;
  color: var(--ion-color-medium);
  margin-top: 1rem;
  font-style: italic;
}
.lg-section {
  padding: 0 1rem 0.75rem;
}
.lg-section-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
  margin: 0 0.25rem 0.55rem;
}
.lg-stats-row--characteristics {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 640px) {
  .lg-stats-row--characteristics {
    grid-template-columns: repeat(2, 1fr);
  }
}
.lg-stats-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.lg-stat-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border-radius: 16px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.18);
  padding: 0.9rem 0.5rem 0.7rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.lg-stat-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-secondary);
}
.lg-stat-controls {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.lg-step-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(var(--ion-color-secondary-rgb), 0.45);
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  color: var(--ion-color-secondary);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}
.lg-step-btn:not(:disabled):active {
  background: rgba(var(--ion-color-secondary-rgb), 0.22);
}
.lg-step-btn:disabled {
  opacity: 0.3;
  cursor: default;
}
.lg-stat-value {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 700;
  min-width: 2.4rem;
  text-align: center;
  line-height: 1;
  color: var(--ion-text-color);
}
.lg-pool-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border-radius: 16px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.18);
  padding: 0.9rem 1rem 0.8rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.lg-pool-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.65rem;
}
.lg-pool-values {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.lg-pool-track {
  height: 8px;
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.lg-pool-fill {
  height: 100%;
  border-radius: 99px;
  background:
    linear-gradient(
      90deg,
      rgba(var(--ion-color-secondary-rgb), 0.9),
      rgba(var(--ion-color-secondary-rgb), 0.6));
  transition: width 0.25s ease;
}
.lg-pool-fill--low {
  background:
    linear-gradient(
      90deg,
      #e55353,
      #e57c53);
}
.lg-pool-controls {
  display: flex;
  gap: 0.65rem;
}
.lg-pool-controls .lg-pool-btn {
  flex: 1;
  min-height: 44px;
  font-size: 1rem;
  font-weight: 600;
  --padding-top: 0.65rem;
  --padding-bottom: 0.65rem;
}
.lg-text-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border-radius: 16px;
  border: 1px solid var(--ion-color-step-100, rgba(0, 0, 0, 0.08));
  padding: 0.1rem 0.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.lg-textarea {
  --padding-start: 0.25rem;
  --padding-end: 0.25rem;
  --background: transparent;
  font-size: 0.95rem;
}
.lg-inventory-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border-radius: 16px;
  border: 1px solid var(--ion-color-step-100, rgba(0, 0, 0, 0.08));
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.lg-inventory-list {
  background: transparent;
  padding: 0;
}
.lg-inventory-item {
  --background: transparent;
  --padding-start: 1rem;
  --inner-padding-end: 0.5rem;
  --border-color: var(--ion-color-step-100, rgba(0, 0, 0, 0.07));
}
.lg-item-name {
  font-size: 0.95rem;
  font-weight: 500;
  margin-bottom: 0.15rem;
}
.lg-item-note {
  font-size: 0.8rem;
  color: var(--ion-color-medium);
  white-space: normal;
}
.lg-empty-hint {
  font-size: 0.85rem;
  color: var(--ion-color-medium);
  text-align: center;
  padding: 1.25rem 1rem;
  margin: 0;
}
.lg-add-item-btn {
  width: 100%;
  --color: var(--ion-color-secondary);
  font-size: 0.9rem;
}
.re-sheet-modal {
  --backdrop-opacity: 0.72;
  --width: min(28rem, calc(100vw - 1.5rem));
  --height: min(34rem, calc(100vh - 2rem));
  --border-radius: 16px;
  --box-shadow: var(--shadow-xl);
}
.re-sheet-modal--nav {
  --height: min(44rem, calc(100vh - 1.5rem));
}
.re-sheet-modal__content {
  --padding-top: 0.75rem;
  --padding-start: max(1rem, var(--ion-safe-area-left, 0px));
  --padding-end: max(1rem, var(--ion-safe-area-right, 0px));
  --padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
}
.re-sheet-modal__hint {
  margin: 0 0 0.85rem;
  padding-inline: 0.15rem;
  font-size: var(--text-small);
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.58);
}
.re-sheet-modal__card {
  margin: 0;
  width: 100%;
  --background: var(--re-list-row-bg);
  border: 1px solid var(--re-list-row-border-color);
  box-shadow: none;
}
.re-sheet-modal__card ion-card-content {
  padding: 0.85rem 0.9rem 0.9rem;
}
.re-sheet-modal__field + .re-sheet-modal__field {
  margin-top: 0.35rem;
}
.re-sheet-modal__field ion-input,
.re-sheet-modal__field ion-select {
  width: 100%;
  --background: transparent;
}
.re-sheet-modal__actions {
  display: flex;
  gap: 0.5rem;
  padding: 0 1rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
}
.re-sheet-modal__actions ion-button {
  margin: 0;
  flex: 1;
}
.re-sheet-modal__confirm-body {
  margin: 0;
  padding: 0.25rem 0.15rem 0.5rem;
  font-size: var(--text-small);
  line-height: 1.55;
  color: rgba(var(--ion-text-color-rgb), 0.72);
}
@media (prefers-color-scheme: dark) {
  .re-sheet-modal__card {
    --background: var(--re-list-row-bg-dark);
  }
}
.re-sheet-hero {
  position: relative;
  padding: 1.75rem 1rem 1.25rem;
  text-align: center;
  overflow: hidden;
}
.re-sheet-hero__orb {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    radial-gradient(
      ellipse 130% 85% at 50% 0%,
      rgba(var(--ion-color-primary-rgb), 0.1),
      transparent 65%);
  pointer-events: none;
}
@media (prefers-color-scheme: dark) {
  .re-sheet-hero__orb {
    background:
      radial-gradient(
        ellipse 130% 85% at 50% 0%,
        rgba(var(--ion-color-primary-rgb), 0.18),
        transparent 65%);
  }
}
.re-sheet-hero__avatar {
  position: relative;
  width: 72px;
  height: 72px;
  margin: 0 auto 0.9rem;
  border-radius: 50%;
  border: 2px solid rgba(var(--ion-color-primary-rgb), 0.28);
  box-shadow: 0 0 0 4px rgba(var(--ion-color-primary-rgb), 0.08);
}
.re-sheet-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.re-sheet-hero__name {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0.15rem;
  --padding-bottom: 0.15rem;
  --background: transparent;
  --border-style: none;
  position: relative;
  max-width: 20rem;
  margin: 0 auto;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.02em;
  color: var(--ion-text-color);
}
.re-sheet-hero__name::part(native) {
  text-align: center;
}
.re-sheet-hero__name-text {
  position: relative;
  margin: 0;
  max-width: 20rem;
  margin-inline: auto;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: var(--ion-text-color);
  word-break: break-word;
}
.re-sheet-hero__name-text--placeholder {
  color: rgba(var(--ion-text-color-rgb), 0.45);
  font-weight: 600;
}
.re-sheet-sticky {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--ion-background-color);
}
.re-sheet-tabs-bar {
  display: flex;
  align-items: stretch;
  gap: 0.25rem;
  padding-inline: 0.5rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
}
.re-sheet-tabs-bar .re-segment--tabs {
  flex: 1;
  min-width: 0;
  border-bottom: none;
}
.re-sheet-tabs-actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding-inline-end: 0.15rem;
}
.re-sheet-tabs-actions ion-button {
  --padding-start: 0.35rem;
  --padding-end: 0.35rem;
  margin: 0;
}
.re-sheet-content {
  padding: 0.75rem 1rem calc(1rem + env(safe-area-inset-bottom, 0px));
}
.re-sheet-page-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
}
.re-sheet-page-title h2 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-primary-shade);
}
.re-sheet-page-title ion-button {
  margin: 0;
  flex-shrink: 0;
}
@media (prefers-color-scheme: dark) {
  .re-sheet-page-title h2 {
    color: var(--ion-color-primary-tint);
  }
}
.re-sheet-group {
  background: var(--re-list-row-bg);
  border: 1px solid var(--re-list-row-border-color);
  border-radius: var(--re-list-row-radius);
  margin-bottom: 0.75rem;
  overflow: hidden;
}
.re-sheet-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 0.85rem 0.65rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.1);
}
.re-sheet-group__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(var(--ion-text-color-rgb), 0.88);
  min-width: 0;
  word-break: break-word;
}
.re-sheet-group__actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.re-sheet-group__actions ion-button {
  margin: 0;
}
.re-sheet-group__body {
  padding: 0;
}
.re-sheet-units {
  display: flex;
  flex-direction: column;
}
.re-sheet-unit-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid rgba(var(--ion-color-primary-rgb), 0.1);
}
.re-sheet-unit-row--last {
  border-bottom: none;
}
.re-sheet-unit-row--stacked {
  align-items: flex-start;
}
.re-sheet-unit-row--stacked .re-sheet-unit-row__actions {
  padding-top: 0.2rem;
}
.re-sheet-unit-row--link {
  width: 100%;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: start;
  font: inherit;
  color: inherit;
  justify-content: space-between;
}
.re-sheet-unit-row--link:active {
  background: rgba(var(--ion-color-primary-rgb), 0.06);
}
.re-sheet-unit-row--link .re-sheet-unit__label {
  flex: 1;
  min-width: 0;
}
.re-sheet-unit-row__content {
  flex: 1;
  min-width: 0;
}
.re-sheet-unit-row__actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.1rem;
  padding-inline-start: 0.25rem;
  border-inline-start: 1px solid rgba(var(--ion-color-primary-rgb), 0.12);
}
.re-sheet-unit-row__actions ion-button {
  margin: 0;
  --padding-start: 0.35rem;
  --padding-end: 0.35rem;
}
.re-sheet-unit-row__chevron {
  flex-shrink: 0;
  font-size: 1.1rem;
  color: rgba(var(--ion-color-primary-rgb), 0.45);
}
.re-sheet-unit {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  width: 100%;
  min-width: 0;
}
.re-sheet-unit--inline {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.re-sheet-unit__label {
  flex: 1;
  min-width: 0;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  font-weight: 600;
  line-height: 1.35;
  color: rgba(var(--ion-text-color-rgb), 0.82);
}
.re-sheet-unit__control {
  flex-shrink: 0;
  min-width: 0;
}
.re-sheet-unit--inline .re-sheet-unit__control {
  width: auto;
  min-width: 4.75rem;
  max-width: 42%;
}
.re-sheet-unit:not(.re-sheet-unit--inline) .re-sheet-unit__control {
  width: 100%;
}
.re-sheet-unit-input,
.re-sheet-unit-textarea {
  --background: transparent;
  --border-width: 0;
  --border-style: none;
  --highlight-color-focused: var(--ion-color-primary);
  --highlight-height: 1px;
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--ion-text-color);
}
.re-sheet-unit-input::part(native),
.re-sheet-unit-input::part(container),
.re-sheet-unit-input::part(textarea),
.re-sheet-unit-textarea::part(native),
.re-sheet-unit-textarea::part(container),
.re-sheet-unit-textarea::part(textarea) {
  background: transparent;
}
.re-sheet-unit-input {
  text-align: end;
}
.re-sheet-unit-input--full {
  text-align: start;
}
.re-sheet-unit-textarea {
  width: 100%;
  line-height: 1.45;
}
.re-sheet-value-btn {
  --color: var(--ion-color-primary-shade);
  --padding-start: 0.75rem;
  --padding-end: 0.75rem;
  --padding-top: 0.4rem;
  --padding-bottom: 0.4rem;
  margin: 0;
  min-height: 2.1rem;
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: 999px;
  background: rgba(var(--ion-color-primary-rgb), 0.1);
}
.re-sheet-value-readonly {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 2.1rem;
  padding: 0;
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: 600;
  color: rgba(var(--ion-text-color-rgb), 0.82);
  word-break: break-word;
  text-align: end;
}
@media (prefers-color-scheme: dark) {
  .re-sheet-group {
    background: var(--re-list-row-bg-dark);
    border-color: var(--re-list-row-border-color);
  }
  .re-sheet-unit-row {
    border-bottom-color: rgba(var(--ion-color-primary-rgb), 0.16);
  }
  .re-sheet-unit-row__actions {
    border-inline-start-color: rgba(var(--ion-color-primary-rgb), 0.18);
  }
  .re-sheet-value-btn {
    --color: var(--ion-color-primary-tint);
    background: rgba(var(--ion-color-primary-rgb), 0.14);
  }
}
.re-sheet-nested {
  margin: 0.35rem 0.85rem 0.85rem;
  padding: 0.35rem 0 0;
  border-radius: calc(var(--re-list-row-radius) - 4px);
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.12);
  background: rgba(var(--ion-background-color-rgb), 0.55);
}
.re-sheet-nested__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.35rem 0.75rem 0.5rem;
}
.re-sheet-nested__header h3 {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  font-weight: 600;
  color: rgba(var(--ion-text-color-rgb), 0.78);
}
.re-sheet-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.re-sheet-actions ion-button {
  margin: 0;
}
.re-sheet-actions--inline {
  flex-direction: row;
  flex-wrap: wrap;
}
.re-sheet-actions--inline ion-button {
  flex: 1 1 calc(50% - 0.25rem);
  min-width: 8rem;
}
.re-sheet-operation {
  background: var(--re-list-row-bg);
  border: 1px solid var(--re-list-row-border-color);
  border-radius: var(--re-list-row-radius);
  margin-bottom: 0.75rem;
  overflow: hidden;
}
.re-sheet-operation__header {
  padding: 0.85rem 0.85rem 0.5rem;
}
.re-sheet-operation__header h2 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(var(--ion-text-color-rgb), 0.9);
}
.re-sheet-operation__body {
  padding: 0 0.85rem 0.85rem;
  min-height: 4rem;
}
.re-sheet-operation__footer {
  display: flex;
  border-top: 1px solid rgba(var(--ion-color-primary-rgb), 0.1);
}
.re-sheet-operation__footer ion-button {
  margin: 0;
  flex: 1;
}
@media (prefers-color-scheme: dark) {
  .re-sheet-operation {
    background: var(--re-list-row-bg-dark);
  }
  .re-sheet-nested {
    background: rgba(var(--ion-background-color-rgb), 0.35);
    border-color: rgba(var(--ion-color-primary-rgb), 0.18);
  }
}
.re-sheet-actions {
  padding: 0.65rem 0.85rem 0.85rem;
}
.re-sheet-nested .re-sheet-actions {
  padding-top: 0.35rem;
}
:host {
  display: block;
}
.sel-modal__content {
  --padding-top: 0.75rem;
  --padding-start: max(1rem, var(--ion-safe-area-left, 0px));
  --padding-end: max(1rem, var(--ion-safe-area-right, 0px));
  --padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
}
.sel-modal__content.re-hub-scroll:has(+ .sel-modal__footer) {
  --padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
}
.sel-modal__lead,
.sel-modal__crumbs {
  margin: 0 0 1rem;
  padding-inline: 0.15rem;
}
.sel-modal__lead {
  font-size: var(--text-small);
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.58);
}
.sel-modal__crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.4rem;
  font-size: 0.78rem;
  line-height: 1.4;
}
.sel-modal__crumb {
  color: rgba(var(--ion-text-color-rgb), 0.55);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sel-modal__crumb--current {
  color: var(--ion-color-primary-shade);
  font-weight: 600;
}
.sel-modal__crumb-sep {
  color: rgba(var(--ion-text-color-rgb), 0.28);
}
.sel-modal__section + .sel-modal__section {
  margin-top: 0.35rem;
}
.sel-modal__section ion-list-header {
  margin-bottom: 0.5rem;
}
.sel-modal__section-hint,
.sel-modal__section .sel-modal__section-hint {
  margin: 0;
  padding: 0.25rem 0.15rem 0.75rem;
  font-size: var(--text-small);
  line-height: 1.45;
  color: rgba(var(--ion-text-color-rgb), 0.52);
}
.sel-modal__list {
  padding-top: 0;
}
.sel-modal__item {
  --min-height: 3.1rem;
}
.sel-modal__checkbox {
  margin-inline-end: 0.15rem;
}
.sel-modal__item[detail] {
  --detail-icon-color: rgba(var(--ion-color-primary-rgb), 0.5);
  --detail-icon-opacity: 1;
}
.sel-modal__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 8rem;
  padding: 1.5rem 1rem;
  border-radius: var(--re-list-row-radius);
  border: 1px dashed rgba(var(--ion-color-primary-rgb), 0.18);
  background: rgba(var(--ion-background-color-rgb), 0.45);
}
.sel-modal__empty-title {
  margin: 0;
  font-size: var(--text-small);
  line-height: 1.45;
  color: rgba(var(--ion-text-color-rgb), 0.55);
}
.sel-modal__count {
  margin-inline-start: 0.35rem;
  font-weight: 600;
  opacity: 0.85;
}
@media (prefers-color-scheme: dark) {
  .sel-modal__crumb--current {
    color: var(--ion-color-primary-tint);
  }
  .sel-modal__empty {
    background: rgba(var(--ion-background-color-rgb), 0.28);
    border-color: rgba(var(--ion-color-primary-rgb), 0.24);
  }
}
:host {
  --rr-chat-row-radius: 14px;
  --rr-chat-row-margin-inline: 0.75rem;
  --rr-chat-row-gap: 0.625rem;
  --rr-chat-accent-border: 3px;
  --rr-chat-row-other-bg:
    linear-gradient(
      
      135deg,
      rgba(52, 152, 219, 0.14),
      rgba(var(--ion-color-secondary-rgb), 0.1) );
  --rr-chat-row-other-border: rgba(var(--ion-color-primary-rgb), 0.35);
  --rr-chat-row-me-bg:
    linear-gradient(
      
      160deg,
      rgba(255, 255, 255, 0.55),
      rgba(var(--ion-background-color-rgb), 0.98) );
  --rr-chat-row-me-border: rgba(var(--ion-color-tertiary-rgb), 0.45);
  --rr-chat-sliding-bg: transparent;
  --rr-chat-fab-shadow: 0 4px 14px rgba(var(--ion-color-secondary-rgb), 0.35), 0 0 0 1px rgba(255, 255, 255, 0.35) inset;
}
@media (prefers-color-scheme: dark) {
  :host {
    --rr-chat-row-other-bg:
      linear-gradient(
        
        135deg,
        rgba(52, 152, 219, 0.12),
        rgba(var(--ion-color-secondary-rgb), 0.14) );
    --rr-chat-row-other-border: rgba(var(--ion-color-primary-rgb), 0.4);
    --rr-chat-row-me-bg:
      linear-gradient(
        
        165deg,
        rgba(40, 40, 44, 0.97),
        rgba(var(--ion-background-color-rgb), 1) );
    --rr-chat-row-me-border: rgba(var(--ion-color-tertiary-rgb), 0.5);
    --rr-chat-fab-shadow: 0 4px 18px rgba(var(--ion-color-secondary-rgb), 0.45), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  }
}
:host > ion-content.rr-chat-skin {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 1rem;
  --padding-bottom: calc(2.75rem + env(safe-area-inset-bottom, 0px));
}
ion-footer {
  box-shadow: none;
}
ion-footer ion-toolbar {
  --background: transparent;
  --border: none;
  --border-width: 0;
}
.fabScroll {
  transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
  transform: scale(1);
  opacity: 1;
  z-index: 1;
  right: calc(1rem + var(--ion-safe-area-right, 0px));
}
.fabScroll ion-fab-button {
  --box-shadow: var(--rr-chat-fab-shadow);
  --border-width: 1px;
  --border-color: rgba(var(--ion-color-secondary-contrast-rgb), 0.25);
  --border-style: solid;
}
.hidden-fab {
  opacity: 0;
  transform: scale(0);
  transform-origin: center;
  z-index: -1;
}
ion-backdrop {
  opacity: 0.6;
}
re-chat-content {
  position: relative;
  z-index: 1;
}
.master-fab {
  position: fixed;
  bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  left: 50%;
  z-index: 500;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background:
    linear-gradient(
      145deg,
      var(--ion-color-primary),
      var(--ion-color-primary-shade));
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3), var(--glow-primary, 0 0 20px rgba(var(--ion-color-primary-rgb), 0.35));
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  animation: master-fab-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both, master-fab-float 3.2s ease-in-out 0.45s infinite;
}
.master-fab ion-icon {
  font-size: 1.75rem;
  color: var(--ion-color-primary-contrast);
}
.master-fab__ring {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border-radius: 50%;
  border: 2px solid rgba(var(--ion-color-primary-rgb), 0.55);
  animation: master-sonar 2.2s ease-out infinite;
}
.master-fab__ring--2 {
  animation-delay: -1.1s;
}
@keyframes master-fab-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(20px) scale(0.55);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1);
  }
}
@keyframes master-fab-float {
  0%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(-7px);
  }
}
@keyframes master-sonar {
  0% {
    transform: scale(1);
    opacity: 0.75;
  }
  100% {
    transform: scale(2.4);
    opacity: 0;
  }
}
.master-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background:
    radial-gradient(
      ellipse 90% 60% at 50% 35%,
      rgba(var(--ion-color-primary-rgb), 0.18),
      transparent 65%),
    rgba(var(--ion-background-color-rgb), 0.82);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  animation: master-overlay-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.master-overlay__card {
  position: relative;
  background:
    linear-gradient(
      160deg,
      rgba(var(--ion-color-primary-rgb), 0.08) 0%,
      rgba(var(--ion-background-color-rgb), 0.95) 60%,
      rgba(var(--ion-color-secondary-rgb), 0.06) 100%);
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.28);
  border-radius: 24px;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.07) inset,
    0 8px 40px rgba(0, 0, 0, 0.28),
    var(--glow-primary, 0 0 24px rgba(var(--ion-color-primary-rgb), 0.2));
  padding: 2.5rem 2rem 2rem;
  text-align: center;
  max-width: 360px;
  width: 100%;
  overflow: visible;
}
.master-overlay__orb-ring {
  position: absolute;
  top: -2rem;
  right: -2rem;
  bottom: -2rem;
  left: -2rem;
  pointer-events: none;
}
.master-overlay__orb {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(var(--ion-color-primary-rgb), 0.7);
  box-shadow: 0 0 8px 2px rgba(var(--ion-color-primary-rgb), 0.4);
  top: 50%;
  left: 50%;
  animation: master-orbit 4.5s linear infinite;
  transform-origin: -60px 0;
}
.master-overlay__orb--2 {
  background: rgba(var(--ion-color-secondary-rgb), 0.6);
  box-shadow: 0 0 8px 2px rgba(var(--ion-color-secondary-rgb), 0.35);
  animation-duration: 6s;
  animation-delay: -2s;
  transform-origin: -80px 0;
  width: 6px;
  height: 6px;
}
.master-overlay__orb--3 {
  background: rgba(var(--ion-color-tertiary-rgb), 0.5);
  box-shadow: 0 0 6px 1px rgba(var(--ion-color-tertiary-rgb), 0.3);
  animation-duration: 3.8s;
  animation-delay: -1.3s;
  transform-origin: -50px 0;
  width: 5px;
  height: 5px;
}
.master-overlay__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(var(--ion-color-primary-rgb), 0.22),
      rgba(var(--ion-color-primary-rgb), 0.06));
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.3);
  margin: 0 auto 1.25rem;
  animation: master-float 3.2s ease-in-out infinite;
}
.master-overlay__icon ion-icon {
  font-size: 2.5rem;
  color: var(--ion-color-primary);
  filter: drop-shadow(0 0 10px rgba(var(--ion-color-primary-rgb), 0.6));
}
.master-overlay__title {
  font-family: var(--font-heading, inherit);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--ion-color-primary);
  margin: 0 0 0.75rem;
  line-height: 1.3;
}
.master-overlay__body {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ion-color-medium);
  margin: 0 0 1.25rem;
}
.master-overlay__steps {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin: 0 0 1.75rem;
}
.master-overlay__step {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(var(--ion-color-medium-rgb), 0.35);
  transition: background 0.3s ease, transform 0.3s ease;
}
.master-overlay__step--active {
  background: rgba(var(--ion-color-primary-rgb), 0.9);
  transform: scale(1.4);
  box-shadow: 0 0 8px rgba(var(--ion-color-primary-rgb), 0.5);
}
.master-overlay__step--completed {
  background: rgba(var(--ion-color-primary-rgb), 0.5);
}
.master-overlay__dismiss {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  background: transparent;
  border: 1px solid rgba(var(--ion-color-medium-rgb), 0.3);
  border-radius: 999px;
  padding: 0.55rem 1.5rem;
  cursor: pointer;
  color: var(--ion-color-medium);
  font-size: 0.85rem;
  font-weight: 500;
  transition: border-color 0.2s ease, color 0.2s ease;
  width: 100%;
}
.master-overlay__dismiss:active {
  border-color: rgba(var(--ion-color-medium-rgb), 0.6);
  color: var(--ion-text-color);
}
.master-overlay__dismiss-note {
  font-size: 0.7rem;
  opacity: 0.65;
  font-weight: 400;
}
@keyframes master-overlay-in {
  from {
    opacity: 0;
    backdrop-filter: blur(0px);
    -webkit-backdrop-filter: blur(0px);
  }
  to {
    opacity: 1;
    backdrop-filter: blur(14px) saturate(1.2);
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
  }
}
@keyframes master-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}
@keyframes master-orbit {
  from {
    transform: rotate(0deg) translateX(60px) rotate(0deg);
  }
  to {
    transform: rotate(360deg) translateX(60px) rotate(-360deg);
  }
}
re-virtual-scroll-viewport {
  animation: rr-chat-fade-in 180ms ease-out both;
}
.chat-setup-shell {
  display: block;
  width: 100%;
  min-height: calc(100dvh - 5rem);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  animation: rr-chat-fade-in 220ms ease-out both;
}
.chat-setup-overlay {
  position: sticky;
  bottom: 0;
  z-index: 4;
  width: 100%;
  padding: 0.5rem 0 calc(0.35rem + env(safe-area-inset-bottom, 0px));
  background:
    linear-gradient(
      to top,
      var(--ion-background-color) 70%,
      rgba(var(--ion-background-color-rgb), 0.92) 88%,
      transparent);
  border-top: 1px solid rgba(var(--ion-color-medium-rgb), 0.12);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  animation: rr-chat-fade-in 220ms ease-out both;
}
.chat-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem 2.5rem;
  min-height: 60vh;
  animation: rr-chat-fade-in 220ms ease-out both;
}
.chat-empty__icon {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  background: rgba(var(--ion-color-primary-rgb), 0.1);
  color: var(--ion-color-primary);
}
.chat-empty__icon ion-icon {
  font-size: 1.75rem;
}
.chat-empty__icon--ai {
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  color: var(--ion-color-secondary);
}
.chat-empty__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 600;
  color: rgba(var(--ion-text-color-rgb), 0.8);
}
.chat-empty__hint {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  line-height: 1.55;
  color: rgba(var(--ion-text-color-rgb), 0.5);
  max-width: 22rem;
}
.chat-empty__cta {
  margin-top: 1.75rem;
}
.chat-empty--wait {
  gap: 0.35rem;
}
.chat-empty__loader {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  color: var(--ion-color-secondary);
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.18), 0 8px 24px rgba(var(--ion-color-secondary-rgb), 0.12);
}
.chat-empty__loader ion-spinner {
  width: 2rem;
  height: 2rem;
}
.chat-empty__progress {
  margin: 0.35rem 0 0;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-secondary);
}
@keyframes rr-chat-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.defer-spinner {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 2rem 0;
}
[slot=topLoader],
[slot=bottomLoader] {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 1rem 0;
  width: 100%;
}
[slot=footer] {
  width: 100%;
}
.master-invite {
  width: 100%;
  padding: 0.35rem var(--rr-chat-row-margin-inline, 0.75rem) 1.5rem;
  box-sizing: border-box;
}
.master-invite__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  width: 100%;
  max-width: 22rem;
  margin: 0 auto;
  padding: 1rem 1.05rem 0.95rem;
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.28);
  border-radius: var(--rr-chat-row-radius, 14px);
  background:
    linear-gradient(
      145deg,
      rgba(var(--ion-color-primary-rgb), 0.14),
      rgba(var(--ion-color-secondary-rgb), 0.1));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07), 0 4px 18px rgba(62, 39, 35, 0.07);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  animation: rr-chat-fade-in 280ms ease-out both;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.12s ease;
}
.master-invite__card:hover,
.master-invite__card:focus-visible {
  border-color: rgba(var(--ion-color-primary-rgb), 0.42);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 6px 22px rgba(var(--ion-color-primary-rgb), 0.12);
  outline: none;
}
.master-invite__card:active {
  transform: scale(0.985);
}
.master-invite__header {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.master-invite__badge {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--ion-color-secondary-rgb), 0.16);
  color: var(--ion-color-secondary-tint, var(--ion-color-secondary));
  box-shadow: 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.2);
}
.master-invite__badge ion-icon {
  font-size: 1.05rem;
}
.master-invite__label {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ion-color-primary);
}
.master-invite__hint {
  margin: 0;
  font-size: var(--text-small);
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.76);
}
.master-invite__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.15rem;
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.22);
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.master-invite__action ion-icon {
  flex-shrink: 0;
  font-size: 1rem;
  opacity: 0.65;
  color: var(--ion-color-secondary-tint, var(--ion-color-secondary));
}
@media (prefers-color-scheme: dark) {
  .master-invite__card {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 4px 18px rgba(0, 0, 0, 0.22);
  }
  .master-invite__card:hover,
  .master-invite__card:focus-visible {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06), 0 6px 22px rgba(0, 0, 0, 0.28);
  }
}
:host {
  display: block;
  position: relative;
}
ion-title {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-primary-shade);
}
.chatName {
  display: block;
  margin-top: 0.15rem;
  font-family: var(--font-primary);
  font-size: var(--text-small, 0.875rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ion-color-secondary);
  opacity: 0.92;
}
.impersonate-banner,
.impersonate-prompt {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  padding: 0.4rem 0.5rem 0.4rem 0.4rem;
  border-radius: 12px;
  min-height: calc(0.8rem + 36px);
  box-sizing: border-box;
}
.impersonate-banner {
  background: var(--app-composer-surface, var(--ion-color-light));
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.4);
  box-shadow: inset 4px 0 0 0 var(--ion-color-secondary), var(--app-composer-shadow, 0 2px 10px rgba(62, 39, 35, 0.08));
}
.impersonate-banner__avatar {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border: 2px solid rgba(var(--ion-color-secondary-rgb), 0.45);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.impersonate-banner__avatar img {
  object-fit: cover;
}
.impersonate-banner__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  line-height: 1.2;
}
.impersonate-banner__label {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
  font-weight: 500;
}
.impersonate-banner__name {
  font-family: var(--font-heading, inherit);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ion-text-color);
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.impersonate-banner__action {
  flex: 0 0 auto;
  margin: 0;
  --padding-start: 0.35rem;
  --padding-end: 0.35rem;
}
.impersonate-banner__action ion-icon {
  font-size: 1.25rem;
}
.impersonate-prompt {
  width: 100%;
  background: var(--app-composer-surface, var(--ion-color-light));
  border: 1px dashed rgba(var(--ion-color-primary-rgb), 0.35);
  box-shadow: var(--app-composer-shadow, 0 2px 10px rgba(62, 39, 35, 0.08));
  color: var(--ion-color-primary);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.impersonate-prompt:hover,
.impersonate-prompt:focus-visible {
  background: rgba(var(--ion-color-primary-rgb), 0.06);
  border-color: rgba(var(--ion-color-primary-rgb), 0.55);
  outline: none;
}
.impersonate-prompt__icon {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  opacity: 0.85;
}
.impersonate-prompt__label {
  flex: 1;
  min-width: 0;
  font-size: 0.95rem;
  font-weight: 700;
  font-family: var(--font-heading, inherit);
  letter-spacing: 0.01em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.impersonate-prompt__chevron {
  flex: 0 0 auto;
  font-size: 1.25rem;
  opacity: 0.55;
}
.toolbar {
  display: flex;
  gap: 0.5rem;
  flex-direction: column;
}
.toolbar .toolbar-content {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
}
.toolbar .edit-area {
  flex: 1;
  overflow: hidden;
  background: var(--app-composer-surface, var(--ion-color-light));
  border: 1px solid var(--app-composer-border, rgba(var(--ion-color-primary-rgb), 0.2));
  border-radius: 1rem;
  position: relative;
  box-shadow: var(--app-composer-inset, inset 0 1px 0 rgba(255, 255, 255, 0.5)), var(--app-composer-shadow, 0 2px 10px rgba(62, 39, 35, 0.08));
}
.toolbar .edit-area > img {
  max-height: 150px;
  width: 100%;
  object-fit: cover;
}
.toolbar .text-area {
  flex: 1;
  flex-direction: column;
  display: flex;
}
.toolbar ion-textarea {
  flex: 1;
  max-height: 200px;
  overflow: auto;
}
.toolbar ion-textarea::-webkit-scrollbar {
  display: none;
}
.toolbar .sendButton {
  aspect-ratio: 1/1;
  flex: 0;
}
.composer-quote {
  display: flex;
  align-items: flex-start;
  gap: 0.25rem;
  margin: 0.5rem 0.625rem 0.35rem;
  padding: 0.5rem 0.35rem 0.5rem 0.55rem;
  border-radius: 10px;
  background: var(--ion-background-color);
  border: 1px solid var(--app-composer-border, rgba(var(--ion-color-primary-rgb), 0.2));
  box-shadow: inset 3px 0 0 0 var(--ion-color-primary);
}
.composer-quote__body {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.composer-quote__author {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-primary);
  margin-bottom: 0.15rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.composer-quote__text {
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--ion-color-medium-shade);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.composer-quote__dismiss {
  flex: 0 0 auto;
  margin: -0.15rem -0.1rem 0 0;
  --padding-start: 0.25rem;
  --padding-end: 0.25rem;
}
.composer-quote__dismiss ion-icon {
  font-size: 1.15rem;
}
@media (prefers-color-scheme: dark) {
  .composer-quote {
    background: var(--ion-color-step-150);
    border-color: var(--ion-color-step-250);
  }
}
.text-area-container {
  display: flex;
  flex-direction: column;
  --transition-duration: 0.2s;
}
.text-area-container ion-textarea {
  flex: 1;
}
.text-area-container .second-actions {
  flex: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: transform var(--transition-duration) ease;
}
@keyframes hideAn {
  from {
    transform: scale(1);
    display: flex;
  }
  to {
    transform: scale(0);
    display: none;
  }
}
@keyframes showAn {
  from {
    transform: scale(0);
  }
  to {
    transform: scale(1);
  }
}
.text-area-container .second-actions:not(.hiddenAction) {
  animation-name: showAn;
  animation-duration: 0s;
  animation-fill-mode: forwards;
}
.text-area-container .second-actions.hiddenAction {
  animation-name: hideAn;
  animation-duration: 0s;
  animation-fill-mode: forwards;
  transform: scale(0);
}
.text-area-container .second-actions.animatedActions {
  animation-duration: var(--transition-duration);
}
.footer-master-fab--loading {
  opacity: 0.92;
}
.footer-master-fab-spinner {
  width: 1.35rem;
  height: 1.35rem;
  color: var(--ion-color-secondary-contrast, #fff);
  pointer-events: none;
}
.fabActions {
  position: relative;
  align-self: flex-end;
  margin-bottom: 0.25rem;
}
:host {
  display: block;
  background: transparent;
}
ion-item::before {
  width: 100vw;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.7s ease-in-out;
  content: "";
  z-index: -1;
}
:host-context(.highlight) ion-item::before {
  z-index: 2;
  opacity: 0.14;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(var(--ion-color-warning-rgb), 0.35),
      transparent);
  transition: opacity 0s linear;
}
.message-row {
  margin: 0 var(--rr-chat-row-margin-inline, 0.75rem) var(--rr-chat-row-gap, 0.625rem);
  border-radius: var(--rr-chat-row-radius, 14px);
  background: var(--rr-chat-sliding-bg, transparent);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.06));
  -webkit-user-select: none;
  user-select: none;
}
.masterMessage {
  cursor: context-menu;
  -webkit-user-select: none;
  user-select: none;
}
ion-item {
  --padding-top: 0;
  --padding-bottom: 1rem;
  --padding-start: 1rem;
  --padding-end: 1rem;
  --inner-padding-end: 0.25rem;
  --border-width: 0;
  --inner-border-width: 0;
  --background: var( --rr-chat-row-other-bg, linear-gradient( 135deg, rgba(52, 152, 219, 0.14), rgba(var(--ion-color-secondary-rgb), 0.1) ) );
  --border-radius: var(--rr-chat-row-radius, 14px);
  --inner-border-radius: var(--rr-chat-row-radius, 14px);
  --ripple-color: rgba(var(--ion-color-primary-rgb), 0.12);
}
ion-item.me {
  --background: var( --rr-chat-row-me-bg, linear-gradient( 160deg, rgba(255, 255, 255, 0.55), rgba(var(--ion-background-color-rgb), 0.98) ) );
  --padding-end: 1.25rem;
  --inner-padding-end: 1rem;
}
ion-item:not(.me):not(.impersonate)::part(native) {
  border: 0;
  box-shadow: inset var(--rr-chat-accent-border, 3px) 0 0 0 var(--rr-chat-row-other-border, rgba(var(--ion-color-primary-rgb), 0.35)), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
ion-item.me::part(native) {
  border: 0;
  box-shadow: inset var(--rr-chat-accent-border, 3px) 0 0 0 var(--rr-chat-row-me-border, rgba(var(--ion-color-tertiary-rgb), 0.45)), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
@media (prefers-color-scheme: dark) {
  ion-item:not(.me):not(.impersonate)::part(native) {
    box-shadow: inset var(--rr-chat-accent-border, 3px) 0 0 0 var(--rr-chat-row-other-border, rgba(var(--ion-color-primary-rgb), 0.35)), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  }
  ion-item.me::part(native) {
    box-shadow: inset var(--rr-chat-accent-border, 3px) 0 0 0 var(--rr-chat-row-me-border, rgba(var(--ion-color-tertiary-rgb), 0.45)), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  }
  ion-item.impersonate::part(native) {
    box-shadow:
      inset 4px 0 0 0 var(--ion-color-secondary),
      inset 0 0 20px rgba(var(--ion-color-secondary-rgb), 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.05);
  }
}
ion-item.show-user-info {
  --padding-top: 0.5rem;
}
.avatar-slot {
  width: 44px;
  align-self: flex-start;
}
.avatar {
  aspect-ratio: 1/1;
  border-radius: 12px;
  width: 44px;
  overflow: hidden;
  border: 2px solid rgba(var(--ion-color-primary-rgb), 0.45);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12), 0 2px 8px rgba(0, 0, 0, 0.12);
}
.avatar img {
  background-color: rgba(var(--ion-color-medium-rgb), 0.35);
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.username {
  width: 100%;
  display: flex;
  flex-direction: column;
  margin: 0 0 0.5rem 0;
}
.username b {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--ion-color-primary-shade);
}
ion-item.impersonate::part(native) {
  border: 0;
  box-shadow:
    inset 4px 0 0 0 var(--ion-color-secondary),
    inset 0 0 20px rgba(var(--ion-color-secondary-rgb), 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.newMessagesBaloon {
  display: grid;
  align-items: flex-start;
  padding: 0.5rem 1.25rem 0.75rem;
  grid-template-columns: auto;
  justify-items: center;
}
.newMessages {
  background:
    linear-gradient(
      145deg,
      rgba(var(--ion-color-warning-rgb), 0.18),
      rgba(var(--ion-color-primary-rgb), 0.1));
  border: 1px solid rgba(var(--ion-color-warning-rgb), 0.35);
  padding: 0.625rem 1rem;
  border-radius: var(--rr-chat-row-radius, 14px);
  font-size: var(--text-small, 0.875rem);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.06));
}
.masterMessageBaloon {
  display: grid;
  align-items: flex-start;
  padding: 0.5rem var(--rr-chat-row-margin-inline, 0.75rem);
  grid-template-columns: auto;
}
.masterMessage {
  width: 100%;
  background:
    linear-gradient(
      145deg,
      rgba(var(--ion-color-primary-rgb), 0.16),
      rgba(var(--ion-color-secondary-rgb), 0.12));
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.32);
  border-radius: var(--rr-chat-row-radius, 14px);
  padding: 0.75rem 0.875rem;
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-primary-rgb), 0.1), var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.06));
}
.masterMessageLabel {
  margin: 0 0 0.4rem 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-family: var(--font-heading);
  color: var(--ion-color-primary);
}
.masterSectionLabel {
  margin: 0 0 0.35rem 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: var(--font-heading);
  opacity: 0.55;
}
.masterSheetUpdateRecap {
  margin-top: 0.75rem;
  padding: 0.5rem 0.625rem;
  border-radius: 10px;
  background: rgba(var(--ion-color-success-rgb), 0.08);
  border: 1px solid rgba(var(--ion-color-success-rgb), 0.28);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.masterSheetUpdateRecap-character {
  margin: 0.25rem 0 0 0;
  font-size: 0.9rem;
}
.masterSheetUpdateRecap-row {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.4;
}
.masterSheetUpdateRecap-label {
  font-weight: 600;
}
.masterSheetUpdateRecap-before {
  opacity: 0.75;
  text-decoration: line-through;
  margin: 0 0.2rem;
}
.masterSheetUpdateRecap-arrow {
  margin: 0 0.25rem;
  opacity: 0.6;
}
.masterSheetUpdateRecap-after {
  font-weight: 700;
  color: var(--ion-color-success-shade, var(--ion-color-success));
}
.masterSheetUpdateRecap-skipped {
  margin: 0;
  font-size: 0.75rem;
  opacity: 0.65;
  font-style: italic;
}
.masterSceneGateRolls {
  margin-top: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.masterSceneGateRoll {
  padding: 0.5rem 0.625rem;
  border-radius: 10px;
  background: rgba(var(--ion-background-color-rgb), 0.55);
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.22);
}
.masterSceneGateRoll-title {
  margin: 0 0 0.25rem 0;
  font-size: 0.95rem;
  font-weight: 600;
  font-family: var(--font-heading);
}
.masterSceneGateRoll-desc {
  margin: 0 0 0.5rem 0;
  font-size: 0.8rem;
  line-height: 1.35;
  opacity: 0.9;
}
.masterSuggestedMessages {
  margin-top: 0.5rem;
  display: flex;
}
.masterSuggestedMessagesBtn {
  --padding-start: 0.25rem;
  --padding-end: 0.5rem;
  font-size: 0.78rem;
  opacity: 0.7;
}
.masterSuggestedMessages--prominent {
  margin-top: 0.875rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(var(--ion-color-secondary-rgb), 0.22);
  flex-direction: column;
  gap: 0.625rem;
  padding: 0.75rem 0.625rem 0.625rem;
  border-radius: 12px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.28);
  background:
    linear-gradient(
      165deg,
      rgba(var(--ion-color-secondary-rgb), 0.14) 0%,
      rgba(var(--ion-color-secondary-rgb), 0.05) 100%);
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.08), 0 4px 18px rgba(var(--ion-color-secondary-rgb), 0.1);
}
.masterSuggestedMessages__header {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-bottom: 0.15rem;
}
.masterSuggestedMessages__label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: var(--font-heading);
  color: var(--ion-color-secondary);
}
.masterSuggestedMessages__label ion-icon {
  font-size: 1rem;
  flex-shrink: 0;
}
.masterSuggestedMessages__hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--ion-color-medium-shade, rgba(var(--ion-text-color-rgb), 0.72));
}
.masterSuggestedMessages__group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.masterSuggestedMessages__char {
  margin: 0.15rem 0 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: var(--font-heading);
  opacity: 0.6;
}
.masterSuggestedChoice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  width: 100%;
  text-align: left;
  padding: 0.75rem 0.875rem;
  border-radius: 12px;
  border: 1.5px solid rgba(var(--ion-color-secondary-rgb), 0.35);
  background: rgba(var(--ion-background-color-rgb), 0.72);
  color: var(--ion-text-color);
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    transform 0.1s ease,
    box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.masterSuggestedChoice:hover {
  border-color: var(--ion-color-secondary);
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  box-shadow: 0 2px 12px rgba(var(--ion-color-secondary-rgb), 0.14);
}
.masterSuggestedChoice:active {
  transform: scale(0.99);
  background: rgba(var(--ion-color-secondary-rgb), 0.16);
}
.masterSuggestedChoice__header {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
}
.masterSuggestedChoice__label {
  flex: 1;
  font-size: 0.92rem;
  font-weight: 700;
  font-family: var(--font-heading);
  color: var(--ion-color-secondary);
  line-height: 1.3;
}
.masterSuggestedChoice__roll {
  flex-shrink: 0;
  font-size: 1.05rem;
  color: var(--ion-color-secondary);
}
.masterSuggestedChoice__preview {
  font-size: 0.84rem;
  line-height: 1.45;
  opacity: 0.88;
  white-space: pre-wrap;
  word-break: break-word;
}
.masterSuggestedChoice__roll-desc {
  display: block;
  width: 100%;
  margin-top: 0.15rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(var(--ion-color-secondary-rgb), 0.18);
  font-size: 0.78rem;
  line-height: 1.4;
  opacity: 0.72;
  white-space: pre-wrap;
  word-break: break-word;
  font-style: italic;
}
.masterSuggestedActions {
  margin-top: 0.875rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(var(--ion-color-primary-rgb), 0.18);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.masterSuggestedActionsLabel {
  margin: 0 0 0.25rem 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: var(--font-heading);
  opacity: 0.55;
}
.message-footer {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.25s ease, opacity 0.25s ease;
}
.message-footer.has-content {
  max-height: 1.5rem;
  opacity: 1;
}
.message-footer-inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}
.updatedMessage {
  margin: 0;
  font-size: 0.75rem;
  opacity: 0.7;
}
.messagePending {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ion-color-medium);
  font-size: 0.85rem;
}
.quote {
  background:
    linear-gradient(
      180deg,
      rgba(var(--ion-color-primary-rgb), 0.1),
      rgba(var(--ion-color-medium-rgb), 0.25));
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.2);
  padding: 0.5rem 0.625rem;
  border-radius: 10px;
  transition: background 0.1s ease, border-color 0.1s ease;
  display: grid;
  margin-top: 1rem;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.06);
}
.quote .quote-content {
  word-break: break-word;
  overflow: hidden;
  text-overflow: ellipsis;
}
.quote .quote-content > p {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.quote:active {
  background:
    linear-gradient(
      180deg,
      rgba(var(--ion-color-primary-rgb), 0.16),
      rgba(var(--ion-color-medium-rgb), 0.38));
  border-color: rgba(var(--ion-color-primary-rgb), 0.3);
}
.message-inner-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
.bookmark {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  overflow: hidden;
  padding: 1rem 1.25rem;
  margin: 0 var(--rr-chat-row-margin-inline, 0.75rem);
  gap: 1rem;
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ion-color-primary-shade);
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.bookmark::before,
.bookmark::after {
  content: "";
  height: 2px;
  display: inline-block;
  position: relative;
  vertical-align: middle;
  flex: 1;
  max-width: 40%;
  border-radius: 2px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(var(--ion-color-secondary-rgb), 0.85),
      transparent);
  box-shadow: 0 0 10px rgba(var(--ion-color-secondary-rgb), 0.25);
}
re-message-content .preview {
  max-height: 4.5rem;
}
.re-modal-editor--desktop {
  --backdrop-opacity: 0.78;
  --width: min(44rem, calc(100vw - 2.5rem));
  --height: min(40rem, calc(100vh - 3rem));
  --border-radius: 18px;
  --box-shadow: var(--shadow-xl);
}
.quote {
  background:
    linear-gradient(
      180deg,
      rgba(var(--ion-color-primary-rgb), 0.12),
      rgba(var(--ion-color-medium-rgb), 0.35));
  border: 1px solid rgba(var(--ion-color-primary-rgb), 0.18);
  padding: 0.5rem 0.625rem;
  border-radius: 10px;
  transition: background 0.1s ease, border-color 0.1s ease;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  margin: 0.5rem 0;
}
.quote .quote-text {
  white-space: nowrap;
  word-break: break-word;
  overflow: hidden;
  text-overflow: ellipsis;
}
.quote .quote-content {
  overflow: hidden;
  flex: 1;
}
.modal-editor-content {
  --background: var(--app-theme-color, var(--ion-background-color));
}
.modal-editor-body {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.modal-editor-field {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 0.75rem 1rem 1rem;
}
.modal-editor__header-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.modal-editor__persona-chip {
  max-width: min(12rem, 34vw);
  margin: 0;
  cursor: pointer;
  flex-shrink: 1;
  min-width: 0;
}
.modal-editor__persona-chip ion-icon {
  font-size: 1rem;
  color: var(--ion-color-medium);
  flex-shrink: 0;
}
.modal-editor__persona-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.modal-editor__footer ion-toolbar {
  --padding-start: 1rem;
  --padding-end: 1rem;
  --padding-top: 0.5rem;
  --padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px));
}
.modal-editor-image {
  padding: 0.75rem 1rem 0;
}
:host ::ng-deep .editor-full {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
:host ::ng-deep .editor-full .tox-tinymce {
  flex: 1;
  min-height: 0;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--app-theme-color, var(--ion-background-color)) !important;
}
:host ::ng-deep .editor-full .tox-editor-container {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
:host ::ng-deep .editor-full .tox-editor-header {
  flex-shrink: 0;
}
:host ::ng-deep .editor-full .tox-sidebar-wrap,
:host ::ng-deep .editor-full .tox-edit-area {
  flex: 1;
  min-height: 0;
  background: var(--app-theme-color, var(--ion-background-color)) !important;
}
:host ::ng-deep .editor-full .tox-edit-area__iframe {
  background: var(--app-theme-color, var(--ion-background-color)) !important;
}
@media (min-width: 992px) {
  .re-modal-editor--desktop .modal-editor-field {
    padding: 0.5rem 1.25rem 1rem;
  }
}
@media (prefers-color-scheme: dark) {
  .re-modal-editor--desktop {
    --box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);
  }
}
ion-content[scrollY=false] {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
  --background: transparent;
}
ion-menu.story-sidebar {
  --background: transparent;
  border-inline-end: 1px solid rgba(var(--ion-color-primary-rgb), 0.14);
}
ion-menu.story-sidebar ion-content.story-sidebar__scroll {
  --background: rgba(var(--ion-background-color-rgb), 0.94);
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: 0;
}
ion-menu.story-sidebar ion-content.story-sidebar__scroll::part(scroll) {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.story-sidebar__header {
  position: relative;
  padding: 1.25rem 1rem 1rem;
  overflow: hidden;
}
.story-sidebar__orb {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    radial-gradient(
      ellipse 120% 80% at 50% 0%,
      rgba(193, 127, 91, 0.12),
      transparent 70%);
  pointer-events: none;
}
.story-sidebar__header--ai .story-sidebar__orb {
  background:
    radial-gradient(
      ellipse 120% 80% at 50% 0%,
      rgba(123, 44, 191, 0.12),
      transparent 70%);
}
.story-sidebar__header-top {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.story-sidebar__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.story-sidebar__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-warning);
  background: rgba(243, 156, 18, 0.1);
  border: 1px solid rgba(243, 156, 18, 0.26);
  padding: 0.18em 0.65em;
  border-radius: 99px;
}
.story-sidebar__badge ion-icon {
  font-size: 0.72rem;
}
.story-sidebar__badge--ai {
  color: var(--ion-color-secondary);
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  border-color: rgba(var(--ion-color-secondary-rgb), 0.28);
  letter-spacing: 0.06em;
}
.story-sidebar__settings {
  --padding-start: 0.25rem;
  --padding-end: 0.25rem;
  margin: -0.15rem -0.25rem 0 0;
  color: var(--ion-color-medium);
}
.story-sidebar__title {
  position: relative;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  margin: 0;
  background:
    linear-gradient(
      135deg,
      #d49670 0%,
      #f39c12 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.story-sidebar__divider {
  width: 40px;
  height: 2px;
  background:
    linear-gradient(
      90deg,
      #c17f5b,
      #f39c12);
  border-radius: 99px;
  margin-top: 0.85rem;
}
.story-sidebar__section {
  padding: 0.5rem 0.75rem 0.25rem;
}
.story-sidebar__section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}
.story-sidebar__label {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
  margin: 0;
  padding-inline: 0.25rem;
}
.story-sidebar__add-room {
  --padding-start: 0.3rem;
  --padding-end: 0.3rem;
  margin: 0;
  height: 1.75rem;
  color: var(--ion-color-primary);
}
.story-sidebar__nav {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.story-sidebar__nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 0.6rem;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.story-sidebar__nav-item:hover {
  background: rgba(var(--ion-color-primary-rgb), 0.06);
}
.story-sidebar__nav-item.active {
  background: rgba(var(--ion-color-primary-rgb), 0.1);
  border-color: rgba(var(--ion-color-primary-rgb), 0.32);
}
.story-sidebar__nav-item.active .story-sidebar__nav-title {
  color: #d49670;
}
.story-sidebar__nav-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.story-sidebar__nav-icon ion-icon {
  font-size: 1.05rem;
}
.story-sidebar__nav-icon--bronze {
  background: rgba(193, 127, 91, 0.14);
  color: #d49670;
}
.story-sidebar__nav-icon--amber {
  background: rgba(243, 156, 18, 0.12);
  color: #f7c46b;
}
.story-sidebar__nav-icon--ai {
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  color: var(--ion-color-secondary);
}
.story-sidebar__nav-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.story-sidebar__nav-title {
  font-family: var(--font-heading);
  font-size: 0.84rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-text-color);
}
.story-sidebar__nav-desc {
  font-size: 0.68rem;
  color: var(--ion-color-medium);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.story-sidebar__footer {
  margin-top: auto;
  padding: 0.75rem 0.75rem 1.25rem;
  border-top: 1px solid rgba(var(--ion-color-primary-rgb), 0.12);
}
.story-sidebar__home {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.6rem;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ion-color-medium);
  text-decoration: none;
  transition: color 0.15s ease, background 0.15s ease;
}
.story-sidebar__home ion-icon {
  font-size: 1rem;
}
.story-sidebar__home:hover {
  color: var(--ion-text-color);
  background: rgba(var(--ion-color-primary-rgb), 0.06);
}
@media (prefers-color-scheme: dark) {
  ion-menu.story-sidebar {
    border-inline-end-color: rgba(var(--ion-color-primary-rgb), 0.22);
  }
  ion-menu.story-sidebar ion-content.story-sidebar__scroll {
    --background: rgba(22, 20, 18, 0.96);
  }
  .story-sidebar__orb {
    background:
      radial-gradient(
        ellipse 120% 80% at 50% 0%,
        rgba(193, 127, 91, 0.16),
        transparent 70%);
  }
  .story-sidebar__header--ai .story-sidebar__orb {
    background:
      radial-gradient(
        ellipse 120% 80% at 50% 0%,
        rgba(123, 44, 191, 0.18),
        transparent 70%);
  }
  .story-sidebar__footer {
    border-top-color: rgba(var(--ion-color-primary-rgb), 0.2);
  }
}
.re-create-section-label {
  margin: 0 0 0.75rem;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  color: rgba(var(--ion-text-color-rgb), 0.6);
  text-transform: uppercase;
}
.re-mode-card {
  position: relative;
  border-radius: 14px;
  border: 1.5px solid rgba(var(--ion-text-color-rgb), 0.12);
  background: rgba(var(--ion-background-color-rgb), 0.75);
  box-shadow: var(--shadow-sm);
  margin-bottom: 0.75rem;
  overflow: hidden;
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease;
  -webkit-tap-highlight-color: transparent;
}
.re-mode-card--ai {
  border-color: rgba(var(--ion-color-secondary-rgb), 0.35);
  background: rgba(var(--ion-background-color-rgb), 0.85);
}
.re-mode-card--selected {
  border-color: var(--ion-color-secondary);
  box-shadow: 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.25), var(--shadow-sm);
}
.re-mode-card--standard.re-mode-card--selected {
  border-color: var(--ion-color-primary);
  box-shadow: 0 0 0 1px rgba(var(--ion-color-primary-rgb), 0.25), var(--shadow-sm);
}
@media (prefers-color-scheme: dark) {
  .re-mode-card {
    background: rgba(40, 40, 44, 0.88);
    border-color: rgba(var(--ion-text-color-rgb), 0.15);
  }
  .re-mode-card--ai {
    border-color: rgba(var(--ion-color-secondary-rgb), 0.4);
    background: rgba(50, 38, 62, 0.7);
  }
  .re-mode-card--selected {
    box-shadow: 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.3), var(--shadow-md);
  }
  .re-mode-card--standard.re-mode-card--selected {
    box-shadow: 0 0 0 1px rgba(var(--ion-color-primary-rgb), 0.3), var(--shadow-md);
  }
}
.re-mode-card__badge {
  display: inline-block;
  margin: 0.875rem 0.875rem 0;
  padding: 0.175rem 0.6rem;
  border-radius: 99px;
  background: var(--ion-color-secondary);
  color: var(--ion-color-secondary-contrast);
  font-family: var(--font-primary);
  font-size: 0.68rem;
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.re-mode-card__body {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 0.875rem;
}
.re-mode-card--ai .re-mode-card__body {
  padding-top: 0.625rem;
}
.re-mode-card__icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.re-mode-card__icon ion-icon {
  font-size: 1.35rem;
}
.re-mode-card__icon--ai {
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  color: var(--ion-color-secondary);
}
.re-mode-card__icon--standard {
  background: rgba(var(--ion-color-primary-rgb), 0.1);
  color: var(--ion-color-primary);
}
.re-mode-card__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.re-mode-card__title {
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 600;
  letter-spacing: 0.015em;
  color: rgba(var(--ion-text-color-rgb), 0.95);
}
.re-mode-card__desc {
  font-family: var(--font-primary);
  font-size: var(--text-small);
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.65);
}
.re-mode-card__check {
  flex-shrink: 0;
  font-size: 1.35rem;
  color: var(--ion-color-secondary);
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.re-mode-card--standard .re-mode-card__check {
  color: var(--ion-color-primary);
}
.re-mode-card__check--visible {
  opacity: 1;
  transform: scale(1);
}
.re-create-name-card {
  margin-top: 0.25rem;
}
.re-create-lead--ai {
  margin: 1rem 0 0;
  font-family: var(--font-primary);
  font-size: var(--text-small);
  line-height: 1.55;
  color: rgba(var(--ion-text-color-rgb), 0.72);
}
.re-create-setup {
  max-width: 42rem;
  margin: 0 auto;
}
:host {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.re-create-preferences-scroll {
  --padding-top: 0;
  --padding-bottom: 0;
  --padding-start: 0;
  --padding-end: 0;
  flex: 1 1 auto;
}
.re-create-preferences-scroll::part(scroll) {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.re-create-preferences-shell {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  width: 100%;
}
:host {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.re-story-setup-scroll {
  --padding-top: 0;
  --padding-bottom: 0;
  --padding-start: 0;
  --padding-end: 0;
  flex: 1 1 auto;
}
.re-story-setup-scroll::part(scroll) {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.re-story-setup-shell {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  width: 100%;
  max-width: 42rem;
  margin: 0 auto;
}
.re-story-setup-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  flex: 1;
  padding: 2rem 1.25rem;
  text-align: center;
}
.re-story-setup-error ion-icon {
  font-size: 2.5rem;
  color: var(--ion-color-warning);
}
.re-story-setup-error h2 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.15rem;
}
.re-story-setup-error p {
  margin: 0;
  color: var(--ion-color-medium);
  max-width: 22rem;
}
:host {
  display: block;
  width: 100%;
  min-height: 100%;
}
.ssw {
  --ssw-max: 40rem;
  --ssw-pad-x: clamp(1rem, 4vw, 1.5rem);
  --ssw-card-bg: var( --ion-card-background, rgba(var(--ion-background-color-rgb), 0.92) );
  --ssw-card-border: rgba(var(--ion-color-secondary-rgb), 0.16);
  --ssw-card-shadow: 0 4px 24px rgba(62, 39, 35, 0.06);
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: var(--ssw-max);
  min-height: calc(100dvh - 5.5rem);
  margin: 0 auto;
  box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
  .ssw {
    --ssw-card-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
    --ssw-card-border: rgba(var(--ion-color-secondary-rgb), 0.22);
  }
}
.ssw__header {
  position: relative;
  flex-shrink: 0;
  padding: 1.25rem var(--ssw-pad-x) 1rem;
  overflow: hidden;
}
.ssw__header-glow {
  position: absolute;
  inset: -20% 0 auto;
  height: 140%;
  background:
    radial-gradient(
      ellipse 90% 70% at 50% 0%,
      rgba(123, 44, 191, 0.16),
      transparent 68%);
  pointer-events: none;
}
.ssw__header-top {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  margin-bottom: 1.25rem;
}
.ssw__header:not(:has(.ssw-stepper)) .ssw__header-top {
  margin-bottom: 0;
}
.ssw__badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 14px;
  background: rgba(var(--ion-color-secondary-rgb), 0.14);
  color: var(--ion-color-secondary);
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.22), 0 4px 14px rgba(var(--ion-color-secondary-rgb), 0.12);
}
.ssw__badge ion-icon {
  font-size: 1.35rem;
}
.ssw__header-copy {
  min-width: 0;
  text-align: left;
}
.ssw__title {
  margin: 0 0 0.3rem;
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 3.5vw, 1.45rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--ion-text-color);
}
.ssw__subtitle {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.58);
}
.ssw-stepper {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ssw-stepper__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  text-align: center;
}
.ssw-stepper__dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  color: rgba(var(--ion-text-color-rgb), 0.45);
  background: rgba(var(--ion-color-medium-rgb), 0.12);
  border: 1.5px solid rgba(var(--ion-color-medium-rgb), 0.2);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}
.ssw-stepper__dot ion-icon {
  font-size: 1.1rem;
}
.ssw-stepper__label {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.02em;
  color: rgba(var(--ion-text-color-rgb), 0.42);
  padding: 0 0.15rem;
}
.ssw-stepper__item--current .ssw-stepper__dot {
  color: var(--ion-color-secondary-contrast, #fff);
  background: var(--ion-color-secondary);
  border-color: var(--ion-color-secondary);
  transform: scale(1.06);
  box-shadow: 0 4px 14px rgba(var(--ion-color-secondary-rgb), 0.35);
}
.ssw-stepper__item--current .ssw-stepper__label {
  color: var(--ion-color-secondary);
}
.ssw-stepper__item--done .ssw-stepper__dot {
  color: var(--ion-color-secondary);
  background: rgba(var(--ion-color-secondary-rgb), 0.14);
  border-color: rgba(var(--ion-color-secondary-rgb), 0.45);
}
.ssw-stepper__item--done .ssw-stepper__label {
  color: rgba(var(--ion-text-color-rgb), 0.55);
}
.ssw__scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0.25rem var(--ssw-pad-x) 1.25rem;
  -webkit-overflow-scrolling: touch;
}
.ssw__cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ssw-card {
  padding: 1.15rem 1.15rem 1.25rem;
  border-radius: 18px;
  background: var(--ssw-card-bg);
  border: 1px solid var(--ssw-card-border);
  box-shadow: var(--ssw-card-shadow);
}
.ssw-card__title {
  margin: 0 0 1rem;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ion-color-primary-shade, var(--ion-color-primary));
}
.ssw-card__hint {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: rgba(var(--ion-text-color-rgb), 0.55);
}
.ssw-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 1rem;
}
.ssw-field:last-child {
  margin-bottom: 0;
}
.ssw-field--spaced {
  margin-top: 1rem;
}
.ssw-field__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--ion-text-color-rgb), 0.52);
}
.ssw-select {
  width: 100%;
  max-width: 100%;
  min-height: 3.25rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.2);
  background: rgba(var(--ion-color-secondary-rgb), 0.05);
  --padding-start: 1rem;
  --padding-end: 1rem;
  --padding-top: 0.9rem;
  --padding-bottom: 0.9rem;
  --placeholder-color: rgba(var(--ion-text-color-rgb), 0.45);
  font-size: 0.95rem;
  box-sizing: border-box;
}
.ssw-text-card {
  border-radius: 14px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.18);
  background: rgba(var(--ion-color-secondary-rgb), 0.04);
  padding: 0.65rem 0.85rem;
}
.ssw-textarea {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0.15rem;
  --padding-bottom: 0.15rem;
  --background: transparent;
  font-size: 0.95rem;
  line-height: 1.5;
  min-height: 3.5rem;
}
.ssw-slider-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-top: 0.25rem;
}
@media (min-width: 520px) {
  .ssw-slider-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.ssw-slider-card {
  padding: 0.95rem 1rem 0.65rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.16);
  background: rgba(var(--ion-color-secondary-rgb), 0.04);
}
.ssw-slider-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.ssw-slider-card__head .ssw-field__label {
  margin: 0;
}
.ssw-slider-card__value {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ion-color-secondary);
}
.ssw-slider-card__ends {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.15rem;
  font-size: 0.72rem;
  color: rgba(var(--ion-text-color-rgb), 0.48);
}
.ssw-slider-card ion-range {
  --bar-height: 7px;
  --bar-border-radius: 99px;
  --knob-size: 22px;
  --height: 40px;
  padding: 0.15rem 0.35rem 0;
}
.ssw-mode-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 32rem) {
  .ssw-mode-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.ssw-mode-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1.5px solid rgba(var(--ion-color-secondary-rgb), 0.22);
  background: transparent;
  color: var(--ion-text-color);
  text-align: left;
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    transform 0.1s ease;
}
.ssw-mode-card:active {
  transform: scale(0.99);
}
.ssw-mode-card--selected {
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  border-color: var(--ion-color-secondary);
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.18), 0 4px 16px rgba(var(--ion-color-secondary-rgb), 0.1);
}
.ssw-mode-card__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ion-color-secondary);
}
.ssw-mode-card__desc {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--ion-color-medium-shade, rgba(var(--ion-text-color-rgb), 0.72));
}
.ssw-mode-card--selected .ssw-mode-card__desc {
  color: var(--ion-text-color);
}
.ssw-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.ssw-chip {
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1.5px solid rgba(var(--ion-color-secondary-rgb), 0.22);
  background: transparent;
  color: var(--ion-text-color);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    transform 0.1s ease;
}
.ssw-chip:active:not(:disabled) {
  transform: scale(0.98);
}
.ssw-chip--selected {
  background: rgba(var(--ion-color-secondary-rgb), 0.16);
  border-color: var(--ion-color-secondary);
  color: var(--ion-color-secondary);
  font-weight: 600;
}
.ssw-chip:disabled:not(.ssw-chip--selected) {
  opacity: 0.4;
  cursor: not-allowed;
}
.ssw-check {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 2.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.16);
  background: rgba(var(--ion-color-secondary-rgb), 0.04);
  cursor: pointer;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--ion-text-color);
}
.ssw-check ion-checkbox {
  flex-shrink: 0;
  --size: 1.35rem;
}
.ssw-step-panel {
  padding: 0.25rem 0 0.5rem;
}
.ssw-step-panel__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
}
.ssw-step-panel__lead {
  margin: 0 0 1.35rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: rgba(var(--ion-text-color-rgb), 0.58);
}
.ssw-character-hero {
  position: relative;
  text-align: center;
  padding: 2.25rem 1.5rem 2rem;
  margin-bottom: 1rem;
  border-radius: 20px;
  background: var(--ssw-card-bg);
  border: 1px solid var(--ssw-card-border);
  box-shadow: var(--ssw-card-shadow);
  overflow: hidden;
}
.ssw-character-hero__ring {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(var(--ion-color-secondary-rgb), 0.18),
      transparent 58%);
  pointer-events: none;
}
.ssw-character-hero__name {
  position: relative;
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 5vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
}
.ssw-character-hero__status {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.65rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ion-color-success);
}
.ssw-character-hero__status ion-icon {
  font-size: 1.1rem;
}
.ssw-character-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  padding: 2.5rem 1.5rem;
  border-radius: 20px;
  background: var(--ssw-card-bg);
  border: 1px dashed rgba(var(--ion-color-secondary-rgb), 0.28);
}
.ssw-character-empty__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  color: var(--ion-color-secondary);
}
.ssw-character-empty__icon ion-icon {
  font-size: 1.75rem;
}
.ssw-character-empty__text {
  margin: 0;
  max-width: 18rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: rgba(var(--ion-text-color-rgb), 0.58);
}
.ssw-secondary-action {
  margin-top: 0.25rem;
  --border-width: 1.5px;
}
.ssw-review {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ssw-review__section {
  padding: 1.1rem 1.15rem;
  border-radius: 18px;
  background: var(--ssw-card-bg);
  border: 1px solid var(--ssw-card-border);
  box-shadow: var(--ssw-card-shadow);
}
.ssw-review__heading {
  margin: 0 0 0.85rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-secondary);
}
.ssw-review__grid {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}
.ssw-review__row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 38%) 1fr;
  gap: 0.65rem;
  align-items: start;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(var(--ion-color-medium-rgb), 0.12);
}
.ssw-review__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.ssw-review__row dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  color: rgba(var(--ion-text-color-rgb), 0.5);
}
.ssw-review__row dd {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ion-text-color);
}
.ssw-review__characters {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.ssw-review__characters li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: rgba(var(--ion-color-secondary-rgb), 0.05);
}
.ssw-review__char-name {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.95rem;
}
.ssw-review__char-owner {
  font-size: 0.8rem;
  color: rgba(var(--ion-text-color-rgb), 0.52);
  text-align: right;
}
.ssw-review__empty {
  justify-content: center;
  color: rgba(var(--ion-text-color-rgb), 0.45);
  background: transparent;
}
.ssw__footer {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.85rem var(--ssw-pad-x) calc(0.85rem + env(safe-area-inset-bottom, 0px));
  background:
    linear-gradient(
      to top,
      var(--ion-background-color) 72%,
      rgba(var(--ion-background-color-rgb), 0.94) 88%,
      transparent);
  border-top: 1px solid rgba(var(--ion-color-medium-rgb), 0.14);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.ssw__footer-back {
  align-self: flex-start;
  margin: 0 0 0 -0.35rem;
}
.ssw__footer-primary {
  margin: 0;
  min-height: 3rem;
  font-weight: 600;
  --box-shadow: 0 6px 20px rgba(var(--ion-color-secondary-rgb), 0.28);
}
.ssw--compact {
  min-height: auto;
  max-height: min(70dvh, 36rem);
}
:host.ssw-page-host {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  width: 100%;
}
.ssw--page {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  max-height: 100%;
}
.ssw--page .ssw__scroll {
  min-height: 0;
}
.ssw--bare .ssw__scroll {
  padding-top: 0.75rem;
}
.ssw--compact .ssw__header {
  padding-top: 0.75rem;
}
.ssw--compact .ssw__scroll {
  max-height: min(50dvh, 24rem);
}
.ssw-setting-preview {
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid var(--ssw-card-border);
  background: var(--ssw-card-bg);
}
.ssw-setting-preview__title {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(var(--ion-text-color-rgb), 0.62);
}
.ssw-setting-preview__body {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  white-space: pre-wrap;
  color: rgba(var(--ion-text-color-rgb), 0.88);
}
.ssw-step-panel--wait {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 2rem;
  gap: 0.75rem;
}
.ssw-setting-wait__loader {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 0.25rem;
  border-radius: 50%;
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  box-shadow: inset 0 0 0 1px rgba(var(--ion-color-secondary-rgb), 0.18), 0 8px 24px rgba(var(--ion-color-secondary-rgb), 0.12);
}
.ssw-setting-wait__loader ion-spinner {
  width: 2rem;
  height: 2rem;
}
.ssw-setting-wait__progress {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-color-secondary);
}
:host {
  display: block;
}
.legal-page {
  --background: var(--ion-background-color);
}
.legal-shell {
  max-width: 720px;
  margin: 0 auto;
  padding: 1.5rem 1rem 4rem;
}
.legal-body {
  color: var(--ion-text-color);
  line-height: 1.65;
  font-size: 1rem;
}
.legal-body h1 {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  line-height: 1.25;
}
.legal-body h2 {
  font-size: 1.35rem;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}
.legal-body h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}
.legal-body p {
  margin-bottom: 0.75rem;
}
.legal-body ul,
.legal-body ol {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}
.legal-body li {
  margin-bottom: 0.35rem;
}
.legal-body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}
.legal-body th,
.legal-body td {
  border: 1px solid var(--ion-color-medium-tint);
  padding: 0.5rem;
  text-align: left;
  vertical-align: top;
}
.legal-body th {
  background: var(--ion-color-light);
  font-weight: 600;
}
.legal-body code {
  background: var(--ion-color-light);
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    monospace;
  font-size: 0.9em;
}
.legal-body blockquote {
  border-left: 4px solid var(--ion-color-primary);
  margin: 1rem 0;
  padding: 0.5rem 1rem;
  background: var(--ion-color-light);
  font-style: italic;
}
.legal-body hr {
  border: none;
  border-top: 1px solid var(--ion-color-medium-tint);
  margin: 2rem 0;
}
.legal-loading {
  display: flex;
  justify-content: center;
  padding: 4rem 0;
}
ion-content {
  --padding-start: 0;
  --padding-end: 0;
  --padding-top: 0;
  --padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
}
.story-hero {
  position: relative;
  padding: 2.5rem 1.25rem 2rem;
  text-align: center;
  overflow: hidden;
}
.story-hero-orb {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background:
    radial-gradient(
      ellipse 130% 85% at 50% 0%,
      rgba(193, 127, 91, 0.14),
      transparent 65%);
  pointer-events: none;
}
.story-hero-badges {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
  position: relative;
}
.story-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ion-color-warning);
  background: rgba(243, 156, 18, 0.1);
  border: 1px solid rgba(243, 156, 18, 0.28);
  padding: 0.22em 0.85em;
  border-radius: 99px;
}
.story-hero-badge ion-icon {
  font-size: 0.8rem;
}
.story-hero-badge--ai {
  color: var(--ion-color-secondary);
  background: rgba(var(--ion-color-secondary-rgb), 0.1);
  border-color: rgba(var(--ion-color-secondary-rgb), 0.32);
  letter-spacing: 0.08em;
}
.story-hero--ai .story-hero-orb {
  background:
    radial-gradient(
      ellipse 130% 85% at 50% 0%,
      rgba(123, 44, 191, 0.13),
      transparent 65%);
}
@media (prefers-color-scheme: dark) {
  .story-hero--ai .story-hero-orb {
    background:
      radial-gradient(
        ellipse 130% 85% at 50% 0%,
        rgba(123, 44, 191, 0.2),
        transparent 65%);
  }
}
.story-hero-title {
  position: relative;
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 6vw, 2.8rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.15;
  margin: 0;
  background:
    linear-gradient(
      135deg,
      #D49670 0%,
      #F39C12 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.story-hero-divider {
  width: 48px;
  height: 2px;
  background:
    linear-gradient(
      90deg,
      #C17F5B,
      #F39C12);
  border-radius: 99px;
  margin: 1.25rem auto 0;
}
.section-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
  padding: 0 1.25rem;
  margin: 0 0 0.6rem;
}
.nav-section {
  padding-top: 0.25rem;
  padding-bottom: 0.5rem;
  padding-inline: max(0.25rem, var(--ion-safe-area-left, 0px));
}
.nav-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 0 0.6rem;
}
.nav-card {
  margin: 0.4rem !important;
}
.nav-card ion-card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.55rem;
  padding: 1rem 0.6rem !important;
}
.nav-card-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-card-icon ion-icon {
  font-size: 1.3rem;
}
.nav-card-icon--bronze {
  background: rgba(193, 127, 91, 0.14);
  color: #D49670;
}
.nav-card-icon--amber {
  background: rgba(243, 156, 18, 0.12);
  color: #F7C46B;
}
.nav-card-icon--ai {
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  color: var(--ion-color-secondary);
}
.nav-card-title {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ion-text-color);
  margin: 0;
}
.nav-card-desc {
  font-size: 0.7rem;
  color: var(--ion-color-medium);
  margin: 0;
  line-height: 1.3;
}
ion-card.nav-card.active {
  border-color: rgba(193, 127, 91, 0.42) !important;
}
ion-card.nav-card.active .nav-card-title {
  color: #D49670;
}
.chats-section {
  margin-top: 1.25rem;
  padding-inline: max(0.5rem, var(--ion-safe-area-left, 0px));
}
.chats-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
  padding-inline: 0.75rem;
}
.chats-section__head .section-label {
  padding: 0;
  margin: 0;
}
.chats-section__add {
  --padding-start: 0.35rem;
  --padding-end: 0.35rem;
  margin: 0;
  height: 1.85rem;
  color: var(--ion-color-primary);
}
ion-card.nav-card {
  --background: rgba(var(--ion-background-color-rgb), 0.78);
}
@media (prefers-color-scheme: dark) {
  .story-hero-orb {
    background:
      radial-gradient(
        ellipse 130% 85% at 50% 0%,
        rgba(193, 127, 91, 0.18),
        transparent 65%);
  }
  ion-card.nav-card {
    --background: rgba(26, 24, 22, 0.90);
  }
}
.lgl-rules-page {
  --padding-top: 1rem;
  --padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
  --padding-start: max(0.5rem, var(--ion-safe-area-left, 0px));
  --padding-end: max(0.5rem, var(--ion-safe-area-right, 0px));
}
.lgl-rules {
  padding: 0 0.75rem;
}
.lgl-rules-header {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 1rem;
}
.lgl-rules-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--ion-color-secondary-rgb), 0.12);
  color: var(--ion-color-secondary);
}
.lgl-rules-icon ion-icon {
  font-size: 1.25rem;
}
.lgl-rules-title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
  color: var(--ion-text-color);
}
.lgl-rules-tagline {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--ion-color-medium);
  margin: 0;
}
.lgl-stats-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}
@media (min-width: 480px) {
  .lgl-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 720px) {
  .lgl-stats-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.lgl-stat-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.18);
  border-radius: 14px;
  padding: 0.75rem 0.85rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.lgl-stat-name {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ion-color-secondary);
  margin-bottom: 0.25rem;
}
.lgl-stat-formula {
  display: block;
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ion-text-color);
  margin-bottom: 0.35rem;
}
.lgl-stat-desc {
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ion-color-medium);
  margin: 0;
}
.lgl-init-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--ion-color-medium);
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: rgba(var(--ion-color-secondary-rgb), 0.06);
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.12);
}
.lgl-init-hint ion-icon {
  flex-shrink: 0;
  font-size: 0.95rem;
  margin-top: 0.05rem;
  color: var(--ion-color-secondary);
}
.lgl-accordion {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.14);
  background: var(--ion-card-background, var(--ion-background-color));
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.lgl-accordion-header {
  --background: transparent;
  --padding-start: 1rem;
  --inner-padding-end: 1rem;
}
.lgl-accordion-header h3 {
  font-size: 0.9rem;
  font-weight: 600;
  margin: 0 0 0.15rem;
}
.lgl-accordion-header p {
  font-size: 0.78rem;
  color: var(--ion-color-medium);
  margin: 0;
}
.lgl-accordion-body {
  padding: 0 1rem 0.85rem;
}
.lgl-table {
  margin: 0;
}
.lgl-table-row {
  display: grid;
  grid-template-columns: 3.5rem 1fr;
  gap: 0.65rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--ion-color-step-100, rgba(0, 0, 0, 0.07));
}
.lgl-table-row:last-child {
  border-bottom: none;
}
.lgl-table-row dt {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ion-color-secondary);
}
.lgl-table-row dd {
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--ion-text-color);
  margin: 0;
}
.lgl-bullets {
  margin: 0;
  padding-left: 1.1rem;
}
.lgl-bullets li {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--ion-text-color);
  margin-bottom: 0.35rem;
}
.lgl-bullets li:last-child {
  margin-bottom: 0;
}
.lgl-operations {
  margin-top: 1rem;
}
.lgl-operations-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
  margin: 0 0 0.55rem 0.25rem;
}
.lgl-operations-label ion-icon {
  font-size: 0.85rem;
  color: var(--ion-color-secondary);
}
.lgl-operations-list {
  display: grid;
  gap: 0.55rem;
}
.lgl-operation-card {
  background: var(--ion-card-background, var(--ion-background-color));
  border: 1px solid rgba(var(--ion-color-secondary-rgb), 0.14);
  border-radius: 12px;
  padding: 0.7rem 0.85rem;
}
.lgl-operation-name {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.lgl-operation-name ion-icon {
  font-size: 0.95rem;
  color: var(--ion-color-secondary);
}
.lgl-operation-desc {
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ion-color-medium);
  margin: 0.25rem 0 0;
}
@media (prefers-color-scheme: dark) {
  .lgl-stat-card,
  .lgl-accordion,
  .lgl-operation-card {
    --background: rgba(26, 24, 22, 0.9);
  }
}
:host {
  display: block;
}
.chats-list__list {
  padding: 0 0.75rem;
}
.chats-list:not(.chats-list--compact) .chats-list__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
}
.chats-list:not(.chats-list--compact) .chats-list__list ion-item {
  margin-bottom: 0;
}
@media (min-width: 576px) {
  .chats-list:not(.chats-list--compact) .chats-list__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    padding-inline: 1rem;
  }
}
.chats-list--compact .chats-list__list {
  padding: 0;
}
.chats-list--compact .chats-list__list ion-item {
  margin-bottom: 0.3rem;
}
.chats-list--compact .re-list-row-note {
  display: none;
}
.chats-list--compact .re-list-row-title {
  font-size: 0.84rem;
}
.chats-list--compact .re-list-row-avatar {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  font-size: 0.9rem;
}
.chats-list--compact ion-item {
  --padding-top: 0.55rem;
  --padding-bottom: 0.55rem;
  --padding-start: 0.6rem;
  --padding-end: 0.6rem;
}
ion-item.chats-list__item--active {
  --re-list-row-ring: var(--re-list-row-border-active);
  --detail-icon-opacity: 1;
  --detail-icon-color: #d49670;
}
ion-item.chats-list__item--active .re-list-row-avatar {
  background: rgba(var(--ion-color-primary-rgb), 0.22);
  color: #d49670;
}
ion-item.chats-list__item--active .re-list-row-title {
  color: #d49670;
}
.chats-list__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.45rem;
  padding: 2rem 1.5rem 2.5rem;
}
.chats-list__empty-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(193, 127, 91, 0.12);
  color: #d49670;
}
.chats-list__empty-icon ion-icon {
  font-size: 1.5rem;
}
.chats-list__empty-title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.chats-list__empty-hint {
  margin: 0;
  max-width: 18rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--ion-color-medium);
}
.templates-page {
  --padding-bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
}
.templates-page__count {
  margin: 0.85rem 1rem 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ion-color-medium);
}
.templates-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.55rem;
  min-height: min(46vh, 24rem);
  padding: 2.5rem 1.5rem 2rem;
}
.templates-empty__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(193, 127, 91, 0.12);
  color: #d49670;
}
.templates-empty__icon ion-icon {
  font-size: 1.65rem;
}
.templates-empty__title {
  margin: 0.35rem 0 0;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.templates-empty__hint {
  margin: 0;
  max-width: 19rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--ion-color-medium);
}
re-like-template-button {
  margin-inline-end: -0.35rem;
}
:host {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: clip;
  --or-radius: 0.5rem;
  --or-gap: 0.5rem;
  --or-node-pad-x: 0.65rem;
  --or-node-pad-y: 0.5rem;
  --or-font-badge: 0.65rem;
  --or-font-body: 0.9375rem;
}
:host(.or--density-compact) {
  --or-gap: 0.35rem;
  --or-node-pad-x: 0.5rem;
  --or-node-pad-y: 0.35rem;
  --or-font-badge: 0.6rem;
  --or-font-body: 0.875rem;
}
:host(.or--drill) {
  max-width: min(36rem, 100%);
  margin-inline: auto;
}
:host(.or--compact) {
  display: block;
}
:host(.or--comfortable) {
  display: block;
}
.or-inner {
  display: flex;
  flex-direction: column;
  gap: var(--or-gap);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
:host(.or--drill) .or-inner {
  align-items: stretch;
}
.or-overview {
  padding: var(--or-node-pad-y) var(--or-node-pad-x);
  border-radius: var(--or-radius);
  border: 1px solid var(--ion-color-step-150, rgba(0, 0, 0, 0.08));
  background: var(--ion-color-step-50, rgba(0, 0, 0, 0.03));
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.or-overview__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
}
.or-overview__label {
  font-size: var(--or-font-badge);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  flex: 1 1 auto;
  min-width: 0;
}
.or-overview__eye {
  flex: 0 0 auto;
  margin: 0;
  --padding-start: 0.25rem;
  --padding-end: 0.25rem;
}
.or-overview-popover {
  --max-height: min(70vh, 22rem);
}
.or-overview__popover-text {
  margin: 0;
  font-size: var(--or-font-body);
  line-height: 1.5;
  font-weight: 500;
  color: var(--ion-text-color);
  word-break: break-word;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.or-fragment-root {
  display: block;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.or-node {
  border: 1px solid var(--ion-color-step-200, rgba(0, 0, 0, 0.1));
  border-radius: var(--or-radius);
  background: var(--ion-background-color);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  padding: var(--or-node-pad-y) var(--or-node-pad-x);
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}
.or-surface--alt,
.or-node--alt {
  background: var(--ion-color-step-50, rgba(0, 0, 0, 0.03));
}
.or-node__row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  min-width: 0;
  width: 100%;
  min-height: 2.75rem;
}
.or-node__badge {
  flex: 0 0 auto;
  align-self: center;
  font-size: var(--or-font-badge);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  min-width: 3.25rem;
  text-align: start;
}
.or-node__body {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--or-font-body);
  align-self: center;
}
.or-node__body--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.or-node__body--grow {
  flex: 1 1 auto;
  min-width: 0;
}
.or-node__hint {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ion-color-medium, var(--ion-color-medium-shade));
  margin-inline-start: 0.25rem;
}
.or-node__icon {
  color: var(--ion-color-primary);
  font-size: 1.125rem;
}
.or-node__fullscreen {
  flex: 0 0 auto;
  align-self: center;
  margin-inline-start: auto;
}
.or-node--tight .or-node__row {
  width: fit-content;
  max-width: 100%;
}
:host(.or--drill) .or-node--tight .or-node__row {
  margin-inline: auto;
}
.or-node__children {
  margin-top: var(--or-gap);
  padding-inline-start: 0.35rem;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.or-node__children--flush {
  margin-top: 0;
  padding-inline-start: 0;
  border-inline-start: none;
}
.or-node__children .or-node {
  border: none;
  box-shadow: none;
}
.or-nested-truncated {
  margin: 0;
  padding: 0.5rem 0.35rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  font-weight: 500;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  border-radius: calc(var(--or-radius) * 0.75);
  background: var(--ion-color-step-50, rgba(0, 0, 0, 0.04));
  border: 1px dashed var(--ion-color-step-200, rgba(0, 0, 0, 0.12));
}
.or-collapse {
  margin-top: var(--or-gap);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border-radius: var(--or-radius);
  overflow: hidden;
  border: 1px solid var(--ion-color-step-150, rgba(0, 0, 0, 0.1));
  background: var(--ion-color-step-50, rgba(0, 0, 0, 0.04));
}
.or-collapse ion-accordion {
  --border-color: transparent;
}
.or-collapse__trigger {
  --background: transparent;
  --min-height: 3.25rem;
  --padding-start: var(--or-node-pad-x);
  --padding-end: var(--or-node-pad-x);
  --inner-padding-end: 0.25rem;
}
.or-collapse__trigger-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  width: 100%;
  margin: 0;
}
.or-collapse__trigger-title {
  font-size: var(--or-font-badge);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
.or-collapse__trigger-hint {
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ion-text-color);
  white-space: normal;
  word-break: break-word;
}
.or-collapse__panel {
  padding: var(--or-node-pad-y) var(--or-node-pad-x);
  background: var(--ion-background-color);
  border-top: 1px solid var(--ion-color-step-150, rgba(0, 0, 0, 0.08));
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: clip;
}
.or-node--group {
  padding-bottom: var(--or-node-pad-y);
}
.or-math__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem 0.75rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: var(--or-gap);
  overflow: hidden;
}
@media (max-width: 520px) {
  .or-math__grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }
  .or-math__operator {
    justify-self: center;
  }
}
.or-math__operand {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.or-math__operator {
  text-align: center;
  font-size: 1.375rem;
  font-weight: 800;
}
.or-conditional {
  display: flex;
  flex-direction: column;
  gap: var(--or-gap);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: var(--or-gap);
  overflow: hidden;
}
.or-conditional__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.35rem 0.75rem;
  min-width: 0;
}
.or-conditional__branch {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.or-fragments.or-group,
.or-group {
  border: 1px solid var(--ion-color-step-200, rgba(0, 0, 0, 0.1));
  border-radius: var(--or-radius);
}
.or-group.or-group--alt {
  background: var(--ion-color-step-50, rgba(0, 0, 0, 0.03));
}
.or-name {
  font-weight: 700;
  color: var(--ion-color-primary-shade, var(--ion-color-primary));
}
.or-arrow {
  margin-inline: 0.125rem;
  font-weight: 600;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
.or-result {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--ion-text-color);
}
.or-literal {
  font-weight: 600;
  color: var(--ion-text-color);
}
.or-keyword {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  letter-spacing: 0.03em;
  flex-shrink: 0;
  min-width: 2.75rem;
}
.or-operator {
  color: var(--ion-text-color);
}
.or-ref-prev {
  font-weight: 700;
  color: var(--ion-color-primary-shade, var(--ion-color-primary));
}
.or-popover-body {
  font-size: 0.9375rem;
  line-height: 1.45;
  word-break: break-word;
}
.or-context-list ion-item {
  --min-height: 2.75rem;
}
.or-drill-modal {
  --padding-bottom: max(var(--ion-safe-area-bottom, 0px), 1rem);
}
:host {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.od-content {
  flex: 1 1 0;
  min-height: 0;
  --padding-start: 0.75rem;
  --padding-end: 0.75rem;
  --padding-bottom: calc( 1.25rem + env(safe-area-inset-bottom, 0px) + 12px );
}
.od-stack {
  max-width: 36rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-block: 0.5rem 0;
}
.od-card,
.od-hero-card {
  margin: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}
.od-hero-card ion-card-content {
  padding-block: 1rem 1.25rem;
}
.od-hero-caption {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: capitalize;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  text-align: center;
}
.od-result-value {
  margin: 0;
  text-align: center;
  font-size: clamp(2rem, 10vw, 3.25rem);
  font-weight: 800;
  line-height: 1.1;
  word-break: break-all;
  color: var(--ion-color-primary);
}
.od-result-boolean {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.od-result-icon {
  font-size: 4rem;
  width: 1em;
  height: 1em;
}
.od-result-boolean-label {
  margin: 0;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.od-card ion-card-header {
  padding-bottom: 0.25rem;
}
.od-card ion-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ion-color-primary);
}
.od-expression {
  width: 100%;
  min-width: 0;
  padding: 0.25rem 0;
}
.od-detail-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding-block: 0.5rem;
  border-bottom: 1px solid var(--ion-color-step-150, var(--ion-border-color));
}
.od-detail-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.od-detail-row:first-child {
  padding-top: 0;
}
.od-detail-name {
  font-weight: 700;
  text-transform: capitalize;
  color: var(--ion-color-primary);
}
.od-detail-value {
  font-size: 0.9375rem;
  color: var(--ion-text-color);
  text-align: end;
  flex: 1;
  min-width: 0;
}
.od-stat-block {
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--ion-color-step-150, var(--ion-border-color));
}
.od-stat-block:first-child {
  padding-top: 0;
}
.od-stat-block:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.od-stat-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 700;
  text-transform: capitalize;
  color: var(--ion-color-primary);
}
.od-stat-rows {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.od-stat-row {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.od-stat-key {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
.od-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  align-items: center;
}
.od-chip {
  margin: 0;
  height: auto;
  min-height: 1.75rem;
  padding-inline: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  --background: var(--ion-color-step-100, var(--ion-color-light));
  --color: var(--ion-text-color);
}
.od-chip--accent {
  --background: color-mix( in srgb, var(--ion-color-primary) 18%, var(--ion-background-color) );
  --color: var(--ion-color-primary-shade, var(--ion-color-primary));
}
.od-chip--result {
  --background: color-mix( in srgb, var(--ion-color-primary) 28%, var(--ion-background-color) );
  --color: var(--ion-color-primary-shade, var(--ion-color-primary));
  font-weight: 700;
}
.re-roll-modal {
  --backdrop-opacity: 0.72;
}
@media (min-width: 992px) {
  .re-roll-modal {
    --width: min(36rem, calc(100vw - 2rem));
    --height: min(42rem, calc(100vh - 3rem));
    --border-radius: 16px;
    --box-shadow: var(--shadow-xl);
  }
}
.so-content {
  --padding-start: 0;
  --padding-end: 0;
}
swiper-container {
  width: 100%;
  height: 100%;
}
.so-slide {
  width: 100%;
  height: 100%;
  overflow: auto;
  box-sizing: border-box;
  padding: 0.5rem max(0.75rem, var(--ion-safe-area-right, 0px)) 0.75rem max(0.75rem, var(--ion-safe-area-left, 0px));
}
.so-slide:not(.so-slide--footer) > * {
  box-sizing: border-box;
  width: 100%;
  max-width: 36rem;
  margin-inline: auto;
}
.so-slide--footer {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  padding-inline: 1rem;
}
.so-progress-toolbar {
  --min-height: 2rem;
  --padding-top: 0;
  --padding-bottom: 0.35rem;
}
.so-progress-note {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 0.75rem;
  padding-inline: 0.75rem;
}
.so-empty {
  padding: 2rem 1rem;
  text-align: center;
}
.so-empty-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--ion-text-color);
}
.so-empty-note {
  display: block;
  font-size: 0.875rem;
  line-height: 1.45;
}
.so-complete {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 1rem;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: 0.25rem 0 1.25rem;
  box-sizing: border-box;
}
.so-complete-summary {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.875rem;
  min-height: min(38vh, 15rem);
  padding: 1.5rem 1.35rem 1.5rem;
  border-radius: 14px;
  border: 1px solid var(--ion-color-step-150, var(--ion-border-color));
  background: var(--ion-item-background, var(--ion-background-color, transparent));
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
}
.so-complete-kicker {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ion-color-primary);
}
.so-complete-title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--ion-text-color);
}
.so-complete-meta {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.875rem;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
.so-complete-meta ion-icon {
  font-size: 1.1rem;
  opacity: 0.9;
}
.so-complete-choices {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
  margin: 0.25rem 0 0;
  padding: 0.85rem 0 0;
  list-style: none;
  border-top: 1px solid var(--ion-color-step-100, var(--ion-border-color));
}
.so-complete-choice {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  padding: 0.55rem 0.85rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--ion-color-primary) 9%, var(--ion-background-color));
  border: 1px solid color-mix(in srgb, var(--ion-color-primary) 18%, var(--ion-border-color));
  text-align: center;
}
.so-complete-choice-label {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
  line-height: 1.2;
}
.so-complete-choice-value {
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ion-text-color);
  word-break: break-word;
}
.so-complete-hint {
  display: block;
  text-align: center;
  font-size: 0.8125rem;
  line-height: 1.45;
  padding-inline: 0.5rem;
}
.so-complete-btn {
  margin: 0;
  --border-radius: 12px;
  font-weight: 700;
  min-height: 3rem;
}
.so-preset {
  padding: 0.75rem 1rem 1rem;
}
.so-preset-heading {
  margin: 0 0 0.625rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ion-text-color);
}
.so-preset-note {
  display: block;
  font-size: 0.875rem;
  line-height: 1.4;
}
.so-insert {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  padding: 0.5rem 1rem 0.75rem;
}
.so-insert-header {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.so-insert-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ion-text-color);
}
.so-insert-progress,
.so-insert-phase,
.so-insert-hint,
.so-insert-tab-hint {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.so-insert-hint {
  margin-bottom: 0.25rem;
}
.so-insert-tab-hint {
  margin: 0;
  color: var(--ion-color-medium-shade, var(--ion-color-medium));
}
.so-insert-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.so-insert-list {
  margin: 0;
}
.so-insert-list ion-item {
  margin-bottom: 0;
}
.so-insert-list ion-input {
  width: 100%;
}
.so-insert-btn {
  margin: 0;
  --border-radius: 12px;
  font-weight: 700;
  min-height: 2.75rem;
}
.so-insert-btn--secondary {
  font-weight: 600;
}
.card-checkbox {
  display: block;
}
.card-checkbox::part(container) {
  display: none;
}
.card-checkbox::part(label) {
  margin: 0;
  width: 100%;
}
.card-checkbox.checkbox-checked ion-card {
  outline: 3px solid var(--ion-color-primary);
}
:host {
  display: block;
}
.cs-header {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.5rem 1rem 0.75rem;
}
.cs-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ion-text-color);
}
.cs-subtitle {
  display: block;
  font-size: 0.875rem;
  line-height: 1.4;
}
.cs-hint {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.so-list {
  margin: 0;
}
*,
::before,
::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}
*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
}
::before,
::after {
  --tw-content: "";
}
html,
:host {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  font-family:
    ui-sans-serif,
    system-ui,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol",
    "Noto Color Emoji";
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
}
body {
  margin: 0;
  line-height: inherit;
}
hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}
abbr:where([title]) {
  text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
a {
  color: inherit;
  text-decoration: inherit;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    "Liberation Mono",
    "Courier New",
    monospace;
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-size: 1em;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
button,
select {
  text-transform: none;
}
button,
input:where([type=button]),
input:where([type=reset]),
input:where([type=submit]) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
:-moz-focusring {
  outline: auto;
}
:-moz-ui-invalid {
  box-shadow: none;
}
progress {
  vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
summary {
  display: list-item;
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
  padding: 0;
}
legend {
  padding: 0;
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
dialog {
  padding: 0;
}
textarea {
  resize: vertical;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}
button,
[role=button] {
  cursor: pointer;
}
:disabled {
  cursor: default;
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}
img,
video {
  max-width: 100%;
  height: auto;
}
[hidden] {
  display: none;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
}
.left-0 {
  left: 0px;
}
.right-0 {
  right: 0px;
}
.right-2 {
  right: 0.5rem;
}
.right-4 {
  right: 1rem;
}
.top-0 {
  top: 0px;
}
.top-2 {
  top: 0.5rem;
}
.m-0 {
  margin: 0px;
}
.m-2 {
  margin: 0.5rem;
}
.mx-0 {
  margin-left: 0px;
  margin-right: 0px;
}
.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.ml-4 {
  margin-left: 1rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.block {
  display: block;
}
.inline {
  display: inline;
}
.\!flex {
  display: flex !important;
}
.flex {
  display: flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.contents {
  display: contents;
}
.hidden {
  display: none;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.max-h-\[30\%\] {
  max-height: 30%;
}
.max-h-full {
  max-height: 100%;
}
.min-h-20 {
  min-height: 5rem;
}
.w-1\/2 {
  width: 50%;
}
.w-\[calc\(50\%-1rem\)\] {
  width: calc(50% - 1rem);
}
.w-full {
  width: 100%;
}
.min-w-0 {
  min-width: 0px;
}
.max-w-60 {
  max-width: 15rem;
}
.max-w-sm {
  max-width: 24rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-\[0\] {
  flex: 0;
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.resize {
  resize: both;
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.flex-wrap {
  flex-wrap: wrap;
}
.place-content-center {
  place-content: center;
}
.justify-center {
  justify-content: center;
}
.justify-stretch {
  justify-content: stretch;
}
.gap-y-4 {
  row-gap: 1rem;
}
.overflow-hidden {
  overflow: hidden;
}
.text-ellipsis {
  text-overflow: ellipsis;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.rounded {
  border-radius: 0.25rem;
}
.object-cover {
  object-fit: cover;
}
.p-0 {
  padding: 0px;
}
.p-2 {
  padding: 0.5rem;
}
.p-4 {
  padding: 1rem;
}
.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.pb-0 {
  padding-bottom: 0px;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.text-center {
  text-align: center;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
}
.opacity-50 {
  opacity: 0.5;
}
.outline {
  outline-style: solid;
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition {
  transition-property:
    color,
    background-color,
    border-color,
    text-decoration-color,
    fill,
    stroke,
    opacity,
    box-shadow,
    transform,
    filter,
    backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.contain-content {
  contain: content;
}
body {
  font-family: var(--font-primary);
  font-size: var(--text-body);
  line-height: var(--line-height-relaxed);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  line-height: var(--line-height-tight);
}
h1 {
  font-size: var(--text-h1);
  font-weight: var(--font-weight-bold);
}
h2 {
  font-size: var(--text-h2);
  font-weight: var(--font-weight-semibold);
}
h3 {
  font-size: var(--text-h3);
  font-weight: var(--font-weight-semibold);
}
ion-header ion-toolbar {
  --background: var(--app-toolbar-tint-bg);
  --min-height: 3.5rem;
}
ion-header ion-toolbar:not(:last-of-type) {
  --border-width: 0 0 1px 0;
  --border-style: solid;
  --border-color: var(--app-toolbar-tint-border);
}
ion-header ion-toolbar:last-of-type {
  --border-width: 0;
  --border-style: none;
}
ion-content {
  --background: var( --app-content-scroll-bg, var(--ion-background-color) );
}
ion-card {
  border-radius: 20px;
}
@media (prefers-color-scheme: dark) {
  ion-card {
    --background: var(--ion-card-background, #1A1816);
    border-radius: 20px;
    border: 1px solid rgba(193, 127, 91, 0.18);
    box-shadow: 0 4px 28px rgba(0, 0, 0, 0.55), 0 1px 0 rgba(255, 255, 255, 0.03) inset;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
  }
  ion-card:hover,
  ion-card:focus-within {
    border-color: rgba(193, 127, 91, 0.38);
    box-shadow:
      0 6px 36px rgba(0, 0, 0, 0.65),
      0 0 20px rgba(193, 127, 91, 0.12),
      0 1px 0 rgba(255, 255, 255, 0.05) inset;
  }
  ion-card-header,
  ion-card-content {
    --background: transparent;
  }
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
@media (prefers-color-scheme: dark) {
  .dark\:text-blue-500 {
    --tw-text-opacity: 1;
    color: rgb(59 130 246 / var(--tw-text-opacity));
  }
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
