.authored-character-depth-modal { --width: min(880px, 96vw); --height: min(92vh, 940px); }
.authored-character-depth-intro { margin-top: 0; opacity: .82; }
.authored-character-depth-field { margin-top: .35rem; }
.authored-character-depth-error { color: var(--ion-color-danger); margin: 1rem 0; }
.story-orchestrator-modal {
  --width: min(760px, 94vw);
  --height: min(820px, 92vh);
  --border-radius: 18px;
}

.story-orchestrator-content {
  --padding-bottom: 28px;
}

.story-orchestrator-warning {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--ion-color-warning, #ffc409);
  border-radius: 12px;
  background: color-mix(in srgb, var(--ion-color-warning, #ffc409) 10%, transparent);
  margin-bottom: 16px;
}

.story-orchestrator-warning ion-icon {
  flex: 0 0 auto;
  font-size: 22px;
  margin-top: 2px;
}

.story-orchestrator-warning p {
  margin: 4px 0 0;
  line-height: 1.45;
}

.story-orchestrator-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.story-orchestrator-error {
  padding: 12px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--ion-color-danger, #eb445a) 12%, transparent);
  color: var(--ion-color-danger-shade, #cf3c4f);
  margin-bottom: 12px;
}

.story-orchestrator-card {
  padding: 16px;
  border: 1px solid var(--ion-color-step-200, rgba(127, 127, 127, 0.25));
  border-radius: 14px;
  background: var(--ion-item-background, transparent);
}

.story-orchestrator-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.story-orchestrator-meta span {
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--ion-color-step-100, rgba(127, 127, 127, 0.12));
  font-size: 0.78rem;
}

.story-orchestrator-card section + section {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--ion-color-step-150, rgba(127, 127, 127, 0.16));
}

.story-orchestrator-card h3 {
  margin: 0 0 5px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ion-color-medium, #92949c);
}

.story-orchestrator-card p {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.5;
}

.story-orchestrator-card code {
  overflow-wrap: anywhere;
}
.campaign-planner-modal {
  --width: min(980px, 96vw);
  --height: min(92vh, 980px);
}

.campaign-planner-content {
  --padding-bottom: 32px;
}

.campaign-planner-warning,
.campaign-planner-toolbar,
.campaign-goal-list article,
.campaign-arc,
.campaign-twist {
  border: 1px solid var(--ion-color-step-200, rgba(128, 128, 128, 0.28));
  border-radius: 12px;
}

.campaign-planner-warning {
  display: flex;
  gap: 12px;
  padding: 14px;
  margin-bottom: 14px;
}

.campaign-planner-warning ion-icon {
  font-size: 22px;
  flex: 0 0 auto;
}

.campaign-planner-warning p,
.campaign-planner-sections p {
  margin: 6px 0;
}

.campaign-planner-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  margin-bottom: 16px;
}

.campaign-planner-error,
.campaign-planner-pending {
  padding: 10px 12px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--ion-color-warning) 12%, transparent);
}

.campaign-planner-sections {
  display: grid;
  gap: 20px;
}

.campaign-planner-sections h2 {
  margin: 0 0 10px;
  font-size: 1rem;
}

.campaign-planner-sections pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 0;
  padding: 12px;
  border-radius: 10px;
  background: var(--ion-color-step-50, rgba(128, 128, 128, 0.08));
  font-family: inherit;
}

.campaign-goal-list,
.campaign-arc-list {
  display: grid;
  gap: 10px;
}

.campaign-goal-list article,
.campaign-arc,
.campaign-twist {
  padding: 12px;
}

.campaign-goal-list header,
.campaign-arc header,
.campaign-twist header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

.campaign-goal-list header span,
.campaign-arc header span,
.campaign-twist header span {
  font-size: 0.78rem;
  opacity: 0.72;
  white-space: nowrap;
}

.campaign-goal-list small {
  display: block;
  margin-top: 8px;
  opacity: 0.82;
}

.campaign-arc details {
  margin-top: 10px;
}

.campaign-twist + .campaign-twist {
  margin-top: 10px;
}

@media (max-width: 640px) {
  .campaign-planner-toolbar,
  .campaign-goal-list header,
  .campaign-arc header,
  .campaign-twist header {
    align-items: flex-start;
    flex-direction: column;
  }
}
.scenario-story-goals-content {
  --padding-bottom: 2rem;
}

.scenario-story-goals-intro,
.scenario-story-goals-empty {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--ion-color-step-200, #d7d7d7);
  border-radius: 12px;
}

.scenario-story-goals-intro p,
.scenario-story-goals-empty span,
.scenario-story-goal-card p {
  margin: 0;
}

.scenario-story-goals-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 1rem 0;
}

.scenario-story-goal-list {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}

.scenario-story-goal-card {
  overflow: hidden;
  border: 1px solid var(--ion-color-step-200, #d7d7d7);
  border-radius: 14px;
}

.scenario-story-goal-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem 0.35rem 1rem;
}

.scenario-story-goal-strength-note {
  display: block;
  padding: 0.4rem 1rem 0.9rem;
}

.scenario-story-goals-error {
  margin: 0.75rem 0;
  padding: 0.75rem;
  border-radius: 10px;
  background: rgba(var(--ion-color-danger-rgb), 0.1);
  color: var(--ion-color-danger);
}

@media (max-width: 640px) {
  .scenario-story-goals-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
}
.scenario-world-modal { --width: min(920px, 96vw); --height: min(92vh, 980px); }
.scenario-world-content { --padding-bottom: 32px; }
.scenario-world-intro { margin-bottom: 16px; padding: 14px 16px; border: 1px solid var(--ion-color-medium-tint); border-radius: 12px; }
.scenario-world-intro p { margin: 6px 0 0; line-height: 1.45; }
.scenario-world-error { margin: 10px 0; padding: 10px 12px; border-radius: 8px; background: rgba(var(--ion-color-danger-rgb), .12); color: var(--ion-color-danger); }
.scenario-world-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0; }
.scenario-world-list { display: grid; gap: 14px; margin-bottom: 18px; }
.scenario-world-card { border: 1px solid var(--ion-color-medium-tint); border-radius: 12px; overflow: hidden; background: var(--ion-card-background, var(--ion-background-color)); }
.scenario-world-card > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px 4px 16px; }
.scenario-world-card > header > div { display: flex; }
.scenario-world-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 620px) { .scenario-world-grid { grid-template-columns: 1fr; } .scenario-world-toolbar { align-items: flex-start; flex-direction: column; } }
.living-world-modal { --width: min(980px, 96vw); --height: min(94vh, 1020px); }
.living-world-warning { display: flex; gap: 12px; padding: 14px; border: 1px solid var(--ion-color-warning); border-radius: 12px; margin-bottom: 14px; }
.living-world-warning ion-icon { font-size: 24px; flex: 0 0 auto; }
.living-world-warning p { margin: 4px 0 0; }
.living-world-toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.living-world-error { padding: 10px 12px; border-radius: 8px; background: rgba(var(--ion-color-danger-rgb), .12); color: var(--ion-color-danger); margin-bottom: 12px; }
.living-world-pulse { padding: 12px 14px; border: 1px solid var(--ion-color-medium-tint); border-radius: 12px; margin-bottom: 18px; }
.living-world-pulse h2, .living-world-content section > h2 { margin: 0 0 10px; font-size: 1.05rem; }
.living-world-stats { display: flex; gap: 14px; flex-wrap: wrap; }
.living-world-list { display: grid; gap: 12px; margin-bottom: 20px; }
.living-world-card { padding: 12px 14px; border: 1px solid var(--ion-color-medium-tint); border-radius: 12px; }
.living-world-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.living-world-card header span { font-size: .75rem; opacity: .7; text-transform: uppercase; }
.living-world-card h3 { margin: 3px 0 0; }
.living-world-badges { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.living-world-badges span { padding: 3px 7px; border: 1px solid var(--ion-color-medium-tint); border-radius: 999px; }
.living-world-events { display: grid; gap: 8px; }
.living-world-events > div { padding: 10px 12px; border-left: 3px solid var(--ion-color-medium); background: rgba(var(--ion-color-medium-rgb), .08); }
.living-world-events p { margin: 5px 0 0; }
@media (max-width: 620px) { .living-world-card header { flex-direction: column; } .living-world-badges { justify-content: flex-start; } }
.story-character-core-modal { --width: min(920px, 96vw); --height: min(90vh, 900px); }
.story-character-core-content { --background: var(--ion-background-color); }
.story-character-core-warning { display: flex; gap: .75rem; padding: .9rem; margin-bottom: 1rem; border: 1px solid var(--ion-color-warning); border-radius: 12px; }
.story-character-core-warning p { margin: .2rem 0 0; opacity: .82; }
.story-character-core-error { margin: 1rem 0; color: var(--ion-color-danger); }
.story-character-core-list { display: grid; gap: 1rem; margin-top: 1rem; }
.story-character-core-card { border: 1px solid color-mix(in srgb, var(--ion-text-color) 16%, transparent); border-radius: 14px; padding: 1rem; }
.story-character-core-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; margin-bottom: .8rem; }
.story-character-core-card h2, .story-character-core-card h3 { margin: 0; }
.story-character-core-card small { opacity: .7; overflow-wrap: anywhere; }
.story-character-core-field { margin-top: .7rem; }
.story-character-core-field p { margin: .2rem 0 0; white-space: pre-wrap; }
.story-character-development { margin-top: .65rem; padding: .65rem; border-radius: 10px; background: color-mix(in srgb, var(--ion-text-color) 6%, transparent); }
.story-character-development small { display: block; margin-top: .15rem; }
.story-character-development p { margin: .35rem 0 0; }
@media (max-width: 640px) { .story-character-core-card header { flex-direction: column; } }
.story-consequence-modal { --width: min(900px, 96vw); --height: min(90vh, 960px); }
.story-consequence-content { --padding-bottom: 2rem; }
.story-consequence-warning { display: flex; gap: .75rem; padding: .9rem; border: 1px solid var(--ion-color-warning); border-radius: 12px; margin-bottom: 1rem; }
.story-consequence-warning p { margin: .25rem 0 0; opacity: .8; }
.story-consequence-toolbar { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.story-consequence-error { padding: .75rem; border-radius: 10px; background: rgba(var(--ion-color-danger-rgb), .12); margin-bottom: 1rem; }
.story-consequence-list { display: grid; gap: 1rem; }
.story-consequence-card { border: 1px solid var(--ion-color-step-200); border-radius: 14px; padding: 1rem; background: var(--ion-item-background, var(--ion-background-color)); }
.story-consequence-card header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.story-consequence-card header span { font-size: .78rem; opacity: .72; text-transform: uppercase; }
.story-consequence-card h2 { margin: .25rem 0 .5rem; font-size: 1.1rem; }
.story-consequence-card h3 { margin: .8rem 0 .25rem; font-size: .86rem; text-transform: uppercase; opacity: .75; }
.story-consequence-card p { margin: .2rem 0; white-space: pre-wrap; }
.story-consequence-card small, .story-consequence-card code { opacity: .72; overflow-wrap: anywhere; }
.story-consequence-card ul, .story-consequence-card ol { margin: .35rem 0 0; padding-left: 1.25rem; }
.story-consequence-badges { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
.story-consequence-badges span { padding: .2rem .5rem; border: 1px solid var(--ion-color-step-300); border-radius: 999px; }
.story-journal2 {
  display: grid;
  gap: 14px;
  color: var(--ion-text-color, #f4f4f5);
}

.story-journal2-toolbar,
.story-journal2-progress,
.story-journal2-tabs,
.story-journal2-filter-row,
.story-journal2-search,
.story-journal2-actions,
.story-journal2-context,
.story-journal2-links,
.story-journal2-event-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.story-journal2-toolbar { justify-content: space-between; align-items: flex-start; }
.story-journal2-toolbar h3 { margin: 2px 0 0; font-size: 1.25rem; }
.story-journal2-kicker { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; opacity: .62; }
.story-journal2-actions { flex-wrap: wrap; justify-content: flex-end; }
.story-journal2 button { cursor: pointer; }
.story-journal2 button:disabled { cursor: default; opacity: .55; }

.story-journal2-actions button,
.story-journal2-search button,
.story-journal2-more,
.story-journal2-filter-row button,
.story-journal2-links button {
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  border-radius: 999px;
  padding: 7px 11px;
  background: color-mix(in srgb, currentColor 7%, transparent);
  color: inherit;
}
.story-journal2-actions .danger-soft { border-color: color-mix(in srgb, #f97373 45%, transparent); }

.story-journal2-progress {
  justify-content: space-between;
  padding: 8px 10px;
  border-radius: 10px;
  background: color-mix(in srgb, currentColor 5%, transparent);
  font-size: .82rem;
}
.story-journal2-progress .status-ready { color: #8be6a5; }
.story-journal2-progress .status-working { color: #ffd280; }

.story-journal2-tabs {
  overflow-x: auto;
  padding-bottom: 2px;
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}
.story-journal2-tabs button {
  flex: 0 0 auto;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 9px 12px;
  background: transparent;
  color: inherit;
  opacity: .66;
}
.story-journal2-tabs button.active { opacity: 1; border-bottom-color: currentColor; }

.story-journal2-message,
.story-journal2-empty {
  padding: 12px;
  border-radius: 10px;
  background: color-mix(in srgb, currentColor 6%, transparent);
}

.story-journal2-hero,
.story-journal2-card,
.story-journal2-chapter,
.story-journal2-event,
.story-journal2-thread {
  border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, currentColor 4%, transparent);
}
.story-journal2-hero { padding: 18px; }
.story-journal2-hero p { margin: 8px 0 0; font-size: 1.02rem; line-height: 1.55; }
.story-journal2-card { padding: 14px; }
.story-journal2-card h4 { margin: 0 0 10px; }
.story-journal2-card p { line-height: 1.45; }
.story-journal2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.story-journal2-mini { display: grid; gap: 3px; padding: 8px 0; border-top: 1px solid color-mix(in srgb, currentColor 8%, transparent); }
.story-journal2-mini:first-of-type { border-top: 0; }
.story-journal2-mini span, .story-journal2 .muted { opacity: .7; }

.story-journal2-chapters { display: grid; gap: 10px; }
.story-journal2-chapter { overflow: hidden; }
.story-journal2-chapter-head {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border: 0;
  padding: 13px 14px;
  text-align: left;
  background: transparent;
  color: inherit;
}
.story-journal2-chapter-head > span:last-child { opacity: .6; font-size: .8rem; white-space: nowrap; }
.story-journal2-chapter-body { padding: 0 14px 14px; }
.story-journal2-recap { margin: 0 0 12px; opacity: .82; line-height: 1.5; }
.story-journal2-chapter-section { margin-top: 14px; }
.story-journal2-chapter-section h5 { margin: 0 0 8px; font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; opacity: .65; }

.story-journal2-timeline,
.story-journal2-threads { display: grid; gap: 10px; }
.story-journal2-search { align-items: stretch; }
.story-journal2-search input {
  min-width: 0;
  flex: 1;
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  border-radius: 999px;
  padding: 9px 13px;
  background: color-mix(in srgb, currentColor 5%, transparent);
  color: inherit;
}
.story-journal2-filter-row { flex-wrap: wrap; }
.story-journal2-filter-row button { padding: 5px 9px; opacity: .65; }
.story-journal2-filter-row button.active { opacity: 1; background: color-mix(in srgb, currentColor 14%, transparent); }

.story-journal2-event,
.story-journal2-thread { padding: 12px; }
.story-journal2-event.compact,
.story-journal2-thread.compact { padding: 9px 0; border: 0; border-radius: 0; background: transparent; border-top: 1px solid color-mix(in srgb, currentColor 8%, transparent); }
.story-journal2-event.compact:first-child,
.story-journal2-thread.compact:first-child { border-top: 0; }
.story-journal2-event p,
.story-journal2-thread p { margin: 5px 0; line-height: 1.45; }
.story-journal2-event-meta { flex-wrap: wrap; margin-bottom: 5px; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; opacity: .55; }
.story-journal2-context { flex-wrap: wrap; font-size: .78rem; opacity: .68; }
.story-journal2-links { flex-wrap: wrap; margin-top: 8px; }
.story-journal2-links button { padding: 3px 8px; font-size: .75rem; }
.story-journal2-thread small { display: block; margin-top: 7px; opacity: .55; }
.story-journal2-more { justify-self: center; margin: 4px 0; }

@media (max-width: 720px) {
  .story-journal2-toolbar { display: grid; }
  .story-journal2-actions { justify-content: flex-start; }
  .story-journal2-grid { grid-template-columns: 1fr; }
  .story-journal2-chapter-head { align-items: flex-start; }
  .story-journal2-search { flex-wrap: wrap; }
  .story-journal2-search input { flex-basis: 100%; }
}
/* M53 keeps Home.tsx stable: the componentized quick-action group supplies the Journal 2 launcher,
   while this selector retires only the legacy M21 Home-owned trigger. */
.story-quick-actions > ion-button[aria-label="Åbn Story Journal"]:not([data-story-journal2="true"]) {
  display: none;
}

.story-journal2-modal::part(content) {
  width: min(1080px, 96vw);
  height: min(900px, 94vh);
}

.story-journal2-modal-content {
  --padding-bottom: 24px;
}
.npc-goals-modal { --width: min(960px, 96vw); --height: 92vh; }
.npc-goals-content { --padding-bottom: 32px; }
.npc-goals-warning { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; margin-bottom: 12px; border: 1px solid var(--ion-color-warning); border-radius: 12px; background: color-mix(in srgb, var(--ion-color-warning) 9%, transparent); }
.npc-goals-warning ion-icon { font-size: 22px; flex: 0 0 auto; margin-top: 2px; }
.npc-goals-warning p { margin: 4px 0 0; opacity: .82; }
.npc-goals-toolbar { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.npc-goals-error { padding: 12px; margin-bottom: 12px; border-radius: 10px; background: color-mix(in srgb, var(--ion-color-danger) 12%, transparent); color: var(--ion-color-danger); }
.npc-goal-list { display: grid; gap: 16px; }
.npc-goal-card { padding: 16px; border: 1px solid var(--ion-color-step-200, #d8d8d8); border-radius: 14px; background: var(--ion-card-background, var(--ion-background-color)); box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.npc-goal-card > header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.npc-goal-card h2 { margin: 3px 0 0; font-size: 1.15rem; }
.npc-goal-card h3 { margin: 16px 0 8px; font-size: .95rem; }
.npc-goal-card p { margin: 4px 0 8px; line-height: 1.45; }
.npc-goal-owner { font-size: .82rem; opacity: .72; }
.npc-goal-badges { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.npc-goal-badges span, .npc-goal-step-heading span { padding: 3px 7px; border-radius: 999px; background: var(--ion-color-step-100, #eee); font-size: .72rem; }
.npc-goal-field { --padding-start: 0; --inner-padding-end: 0; margin-top: 6px; }
.npc-goal-rule-list, .npc-goal-step-list { display: grid; gap: 8px; }
.npc-goal-rule, .npc-goal-step { padding: 10px 12px; border: 1px solid var(--ion-color-step-150, #e4e4e4); border-radius: 10px; }
.npc-goal-rule-heading, .npc-goal-step-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.npc-goal-rule-heading span { font-size: .75rem; opacity: .68; }
.npc-goal-condition { display: grid; grid-template-columns: 24px 1fr; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ion-color-step-100, #eee); }
.npc-goal-condition-state { font-size: 1.05rem; line-height: 1.35; opacity: .65; }
.npc-goal-condition.is-satisfied .npc-goal-condition-state { color: var(--ion-color-success); opacity: 1; }
.npc-goal-condition small { display: block; margin-top: 2px; opacity: .68; }
.npc-goal-condition p { margin-top: 5px; font-size: .86rem; }
.npc-goal-step.is-complete { border-color: color-mix(in srgb, var(--ion-color-success) 45%, var(--ion-color-step-150, #e4e4e4)); }
@media (max-width: 640px) {
  .npc-goals-modal { --width: 100%; --height: 100%; }
  .npc-goal-card > header { flex-direction: column; }
  .npc-goal-badges { justify-content: flex-start; }
}
.story-quality-selector {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--ion-color-step-200, rgba(127, 127, 127, 0.24));
  border-radius: 12px;
  background: var(--ion-item-background, transparent);
}

.story-quality-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}

.story-quality-heading p {
  margin: 4px 0 0;
  font-size: 0.86rem;
  line-height: 1.4;
  color: var(--ion-color-medium, #92949c);
}

.story-quality-heading span {
  font-size: 0.78rem;
  color: var(--ion-color-medium, #92949c);
}

.story-quality-selector label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.story-quality-selector select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--ion-color-step-250, rgba(127, 127, 127, 0.3));
  border-radius: 9px;
  background: var(--ion-background-color, #fff);
  color: var(--ion-text-color, #000);
}

.story-quality-help {
  margin-top: 8px;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--ion-color-medium, #92949c);
}

.story-quality-error {
  margin-top: 8px;
  font-size: 0.82rem;
  color: var(--ion-color-danger, #eb445a);
}
.story-runtime-diagnostics {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--ion-color-step-200, rgba(127, 127, 127, 0.2));
  font-size: 0.86rem;
}

.story-runtime-heading-row,
.story-runtime-maintenance-summary,
.story-runtime-actions,
.story-runtime-row,
.story-runtime-details > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.story-runtime-title {
  font-weight: 700;
}

.story-runtime-subtitle,
.story-runtime-muted,
.story-runtime-db-note,
.story-runtime-row small {
  color: var(--ion-color-medium);
  font-size: 0.76rem;
}

.story-runtime-health {
  border-radius: 999px;
  padding: 3px 8px;
  border: 1px solid currentColor;
  white-space: nowrap;
  font-size: 0.75rem;
}

.story-runtime-health-healthy { color: var(--ion-color-success); }
.story-runtime-health-working { color: var(--ion-color-primary); }
.story-runtime-health-behind,
.story-runtime-health-needs_rebuild { color: var(--ion-color-warning); }
.story-runtime-health-failed { color: var(--ion-color-danger); }
.story-runtime-health-unknown { color: var(--ion-color-medium); }

.story-runtime-grid {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.story-runtime-row {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) auto minmax(90px, auto);
  padding: 7px 0;
  border-bottom: 1px solid var(--ion-color-step-150, rgba(127, 127, 127, 0.12));
}

.story-runtime-row strong {
  font-variant-numeric: tabular-nums;
}

.story-runtime-maintenance,
.story-runtime-details {
  margin-top: 10px;
}

.story-runtime-section-label {
  margin-bottom: 5px;
  font-weight: 600;
}

.story-runtime-stage-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 5px;
  color: var(--ion-color-medium);
  font-size: 0.76rem;
}

.story-runtime-db-note {
  margin-top: 8px;
}

.story-runtime-error {
  margin-top: 8px;
  color: var(--ion-color-danger);
}

.story-runtime-details {
  display: grid;
  gap: 5px;
  padding: 9px;
  border-radius: 8px;
  background: var(--ion-color-step-50, rgba(127, 127, 127, 0.06));
}

.story-runtime-repair {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--ion-color-step-150, rgba(127, 127, 127, 0.12));
}

.story-runtime-repair-grid {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.story-runtime-repair-card {
  padding: 9px;
  border: 1px solid var(--ion-color-step-200, rgba(127, 127, 127, 0.2));
  border-radius: 8px;
  background: var(--ion-color-step-50, rgba(127, 127, 127, 0.06));
}

.story-runtime-repair-card > strong {
  display: block;
}

.story-runtime-repair-card p {
  margin: 5px 0 0;
  color: var(--ion-color-medium);
  font-size: 0.76rem;
  line-height: 1.35;
}

.story-runtime-repair-status {
  margin-top: 3px;
  color: var(--ion-color-medium);
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
}

.story-runtime-repair-actions {
  margin-top: 8px;
}

.story-runtime-repair-actions button,
.story-runtime-actions button {
  border: 1px solid var(--ion-color-step-300, rgba(127, 127, 127, 0.3));
  border-radius: 7px;
  padding: 6px 10px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.story-runtime-repair-actions button:disabled,
.story-runtime-actions button:disabled {
  opacity: 0.55;
  cursor: default;
}

.story-runtime-repair-running,
.story-runtime-repair-success {
  margin-top: 8px;
  font-size: 0.78rem;
}

.story-runtime-repair-running {
  color: var(--ion-color-primary);
}

.story-runtime-repair-success {
  color: var(--ion-color-success);
}

.story-runtime-actions {
  justify-content: flex-start;
  margin-top: 10px;
}

@media (max-width: 640px) {
  .story-runtime-row {
    grid-template-columns: 1fr auto;
  }

  .story-runtime-row small {
    grid-column: 1 / -1;
  }
}
.chat-content {
  --background: var(--ion-background-color, #f7f7f8);
}

.chat-shell {
  width: min(100%, 760px);
  min-height: 100%;
  margin: 0 auto;
  padding: 28px 18px 36px;
}

.connection-status {
  display: flex;
  align-items: center;
  gap: 7px;
  padding-right: 16px;
  font-size: 0.78rem;
  opacity: 0.72;
}

.connection-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ion-color-success, #2dd36f);
}

.empty-state {
  max-width: 440px;
  margin: 18vh auto 0;
  text-align: center;
  color: var(--ion-color-medium-shade, #666);
}

.empty-state-mark {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 18px;
  border-radius: 18px;
  background: var(--ion-color-primary, #3880ff);
  color: white;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.empty-state h1 {
  margin: 0 0 10px;
  color: var(--ion-text-color, #1f1f1f);
  font-size: 1.45rem;
}

.empty-state p {
  margin: 0;
  line-height: 1.55;
}

.message-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.message-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 86%;
}

.message-row.user {
  align-self: flex-end;
  align-items: flex-end;
}

.message-row.assistant {
  align-self: flex-start;
  align-items: flex-start;
}

.message-label {
  padding: 0 4px;
  font-size: 0.72rem;
  font-weight: 650;
  opacity: 0.55;
}

.message-bubble {
  padding: 12px 15px;
  border-radius: 18px;
  line-height: 1.48;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.message-row.user .message-bubble {
  border-bottom-right-radius: 5px;
  background: var(--ion-color-primary, #3880ff);
  color: var(--ion-color-primary-contrast, #fff);
}

.message-row.assistant .message-bubble {
  border-bottom-left-radius: 5px;
  background: var(--ion-card-background, #fff);
  color: var(--ion-text-color, #1f1f1f);
  box-shadow: 0 1px 5px rgb(0 0 0 / 8%);
}

.typing-indicator {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 6px;
  vertical-align: middle;
}

.typing-indicator span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.45;
  animation: typing-pulse 1s infinite ease-in-out;
}

.typing-indicator span:nth-child(2) {
  animation-delay: 0.12s;
}

.typing-indicator span:nth-child(3) {
  animation-delay: 0.24s;
}

@keyframes typing-pulse {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.35; }
  30% { transform: translateY(-3px); opacity: 0.85; }
}

.chat-error {
  margin: 20px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--ion-color-danger, #eb445a) 12%, transparent);
  color: var(--ion-color-danger, #eb445a);
  font-size: 0.86rem;
}

.composer-footer {
  background: var(--ion-background-color, #f7f7f8);
  border-top: 1px solid rgb(127 127 127 / 16%);
}

.composer-shell {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 10px 14px calc(10px + var(--ion-safe-area-bottom, 0px));
}

.message-input {
  --background: var(--ion-card-background, #fff);
  --border-radius: 20px;
  --padding-start: 14px;
  --padding-end: 14px;
  --padding-top: 10px;
  --padding-bottom: 10px;
  min-height: 44px;
  max-height: 140px;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 20px;
  overflow-y: auto;
}

.send-button {
  width: 44px;
  height: 44px;
  margin: 0;
  flex: 0 0 44px;
}

@media (max-width: 520px) {
  .chat-shell {
    padding-inline: 12px;
  }

  .message-row {
    max-width: 91%;
  }

  .connection-status {
    max-width: 130px;
    font-size: 0.7rem;
  }
}

.status-separator {
  opacity: 0.45;
}

.stop-button {
  --border-radius: 999px;
}

.roleplay-menu {
  --background: var(--ion-background-color, #f7f7f8);
}

.menu-actions {
  padding: 14px 12px 4px;
}

.roleplay-menu ion-list-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-weight: 700;
}

.menu-section-header {
  margin-top: 22px !important;
}

.menu-item-active {
  --background: color-mix(in srgb, var(--ion-color-primary, #3880ff) 12%, transparent);
}

.roleplay-menu ion-item h2 {
  font-size: 0.95rem;
  font-weight: 650;
}

.roleplay-menu ion-item p {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.editor-content {
  --background: var(--ion-background-color, #f7f7f8);
}

.editor-intro {
  max-width: 680px;
  margin: 8px auto 18px;
  color: var(--ion-color-medium-shade, #666);
  line-height: 1.5;
}

.editor-content > ion-list,
.editor-content > ion-button {
  width: min(100%, 680px);
  margin-inline: auto;
}

.loading-note {
  margin-top: 12px;
  text-align: center;
  color: var(--ion-color-medium, #92949c);
  font-size: 0.85rem;
}

.empty-state ion-button {
  margin-top: 18px;
}

@media (max-width: 700px) {
  .connection-status .status-separator,
  .connection-status span:nth-of-type(3) {
    display: none;
  }
}

.conversation-controls {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin: -8px 0 18px;
}

.conversation-controls ion-select {
  min-width: 180px;
  max-width: 280px;
  --padding-start: 12px;
  --padding-end: 12px;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 12px;
  background: var(--ion-card-background, #fff);
}

.conversation-controls .story-snapshot-control {
  min-width: 180px;
  max-width: 280px;
  --padding-start: 12px;
  --inner-padding-end: 12px;
  --background: var(--ion-card-background, #fff);
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 12px;
}

.story-snapshot-control ion-label > span {
  display: block;
  font-size: 0.78rem;
  opacity: 0.68;
}

.story-snapshot-control ion-label p {
  margin-top: 3px;
  font-weight: 650;
}

.message-meta-row {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 28px;
}

.message-row.user .message-meta-row {
  flex-direction: row-reverse;
}

.message-actions {
  display: flex;
  align-items: center;
  opacity: 0.55;
  transition: opacity 120ms ease-in-out;
}

.message-row:hover .message-actions,
.message-actions:focus-within {
  opacity: 1;
}

.message-actions ion-button {
  width: 28px;
  height: 28px;
  min-height: 28px;
  margin: 0;
  --padding-start: 4px;
  --padding-end: 4px;
}

.edited-note {
  padding: 0 5px;
  font-size: 0.68rem;
  opacity: 0.45;
}

.composer-shell {
  align-items: flex-end;
}

.continue-button {
  min-height: 44px;
  margin: 0;
  flex: 0 0 auto;
  --border-radius: 16px;
}

@media (max-width: 620px) {
  .continue-button {
    width: 44px;
    --padding-start: 0;
    --padding-end: 0;
  }

  .continue-button ion-icon {
    margin: 0;
  }

  .continue-button-text {
    display: none;
  }

  .conversation-controls ion-select,
  .conversation-controls .story-snapshot-control {
    width: 100%;
    max-width: none;
  }

  .message-actions {
    opacity: 0.8;
  }
}


.prompt-preview-button {
  min-height: 52px;
  margin: 0;
  --border-radius: 12px;
}

.prompt-preview-content {
  --background: var(--ion-background-color, #f7f7f8);
}

.prompt-preview-list {
  width: min(100%, 900px);
  margin: 0 auto 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.prompt-preview-message {
  overflow: hidden;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 14px;
  background: var(--ion-card-background, #fff);
}

.prompt-preview-role {
  padding: 8px 12px;
  border-bottom: 1px solid rgb(127 127 127 / 15%);
  font-size: 0.75rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.65;
}

.prompt-preview-message pre {
  margin: 0;
  padding: 14px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.82rem;
  line-height: 1.5;
}

@media (max-width: 620px) {
  .conversation-controls {
    justify-content: stretch;
  }

  .conversation-controls ion-select {
    flex: 1 1 100%;
    width: 100%;
    max-width: none;
  }

  .prompt-preview-button {
    width: 100%;
  }
}

.memory-button {
  flex: 0 0 auto;
}

.memory-content {
  --padding-bottom: 32px;
}

.memory-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.summary-card {
  border: 1px solid var(--ion-color-step-150, #d7d8da);
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 20px;
  background: var(--ion-item-background, transparent);
}

.summary-card pre {
  margin: 10px 0 0;
  white-space: pre-wrap;
  font: inherit;
  line-height: 1.5;
}

.memory-section-heading {
  font-weight: 700;
  margin: 12px 0 8px;
}

.memory-meta {
  margin-top: 6px;
  font-size: 0.78rem;
  opacity: 0.7;
}

.memory-inactive {
  opacity: 0.55;
}


.audio-activation-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 12px 0;
  font-size: 0.85rem;
}

.audio-activation-banner span {
  opacity: 0.8;
}

/* Milestone 11: structured messages */
.message-segments {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.message-segment {
  white-space: pre-wrap;
}

.segment-action {
  opacity: 0.9;
}

.segment-dialogue-line {
  display: block;
}

.inline-dialogue-action {
  font-style: normal;
}

.segment-thought,
.thought-segment {
  font-style: italic;
  opacity: 0.78;
}

.composer-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 8px 14px 0;
}

.composer-mode-switch {
  display: flex;
  gap: 6px;
}

.advanced-composer {
  display: flex;
  flex-direction: column;
  gap: 9px;
  width: min(100%, 760px);
  max-height: 44vh;
  overflow-y: auto;
  margin: 0 auto;
  padding: 8px 14px 4px;
}

.editor-segment-composer {
  max-height: none;
  padding-inline: 0;
}

.composer-segment {
  padding: 6px 8px 5px;
  border: 1px solid rgb(127 127 127 / 20%);
  border-radius: 12px;
  background: var(--ion-card-background, #fff);
}

.composer-segment ion-textarea {
  --padding-top: 3px;
  --padding-bottom: 3px;
  --padding-start: 2px;
  --padding-end: 2px;
  min-height: 34px;
}

.composer-segment-speech {
  border-left: 4px solid var(--ion-color-primary, #3880ff);
}

.composer-segment-action {
  border-left: 4px solid var(--ion-color-secondary, #3dc2ff);
}

.composer-segment-thought {
  border-left: 4px solid var(--ion-color-tertiary, #5260ff);
}

.composer-segment-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  min-height: 40px;
}

.composer-segment-header ion-select {
  min-width: 96px;
  flex: 1 1 auto;
  font-weight: 650;
}

.segment-order-actions {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: 0;
  margin-left: auto;
}

.segment-control-button {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  --padding-start: 8px;
  --padding-end: 8px;
}

.segment-control-button ion-icon {
  font-size: 21px;
}

.segment-add-actions,
.edit-order-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}

.segment-add-actions {
  padding-bottom: 4px;
}

.advanced-message-summary {
  flex: 1 1 auto;
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  color: var(--ion-color-medium-shade, #666);
  border: 1px dashed rgb(127 127 127 / 25%);
  border-radius: 14px;
  font-size: 0.85rem;
}

/* The old 44px icon-only rule hid the useful Send label on some platforms. */
.send-button {
  width: auto;
  min-width: 82px;
  height: 44px;
  margin: 0;
  flex: 0 0 auto;
  --border-radius: 22px;
}

@media (max-width: 560px) {
  .composer-shell {
    gap: 7px;
  }

  .continue-button-text {
    display: none;
  }

  .continue-button {
    min-width: 44px;
  }

  .send-button {
    min-width: 74px;
  }
}


.conversation-delete-button {
  min-width: 44px;
  min-height: 44px;
  margin-inline-start: 6px;
}

.conversation-delete-button ion-icon {
  font-size: 1.15rem;
}

/* Milestone 12: manual responder controls for group conversations. */

.group-composer-shell {
  flex-wrap: wrap;
}

.group-composer-shell .group-reply-buttons {
  flex: 1 0 100%;
}
.group-reply-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  max-width: 100%;
}

.group-character-reply {
  margin: 0;
}

@media (max-width: 640px) {
  .group-reply-buttons {
    width: 100%;
  }

  .group-character-reply {
    flex: 1 1 auto;
    min-width: 96px;
  }
}

/* Milestone 12.1: explicit author selection in Advanced Composer. */
.advanced-author-select {
  --background: transparent;
  --padding-start: 8px;
  --inner-padding-end: 8px;
  border: 1px solid rgb(127 127 127 / 22%);
  border-radius: 12px;
}

.advanced-author-select ion-select {
  width: 100%;
  font-weight: 650;
}

/* Milestone 12.2: directed character relationships editor. */
.character-relationships-editor {
  margin: 14px 0 18px;
}

.relationship-editor-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.relationship-editor-heading h3 {
  margin: 0 0 4px;
  font-size: 1rem;
}

.relationship-editor-heading p {
  margin: 0;
  color: var(--ion-color-medium-shade, #666);
  font-size: 0.86rem;
}

.relationship-editor-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid rgb(127 127 127 / 22%);
  border-radius: 14px;
  background: var(--ion-card-background, #fff);
}

.relationship-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
}

.relationship-card-header ion-select {
  flex: 1 1 auto;
}

.relationship-card-header ion-button {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
}


.account-universe-panel {
  margin: 8px 10px 14px;
  padding: 8px;
  border: 1px solid var(--ion-color-step-150, #d7d8da);
  border-radius: 12px;
}

.universe-actions {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  padding: 4px 8px;
}

.story-state-button {
  white-space: nowrap;
}

.story-state-content {
  --padding-bottom: 32px;
}

.story-state-sections {
  display: grid;
  gap: 14px;
  padding-bottom: 24px;
}

.story-state-meta {
  color: var(--ion-color-medium);
  font-size: 0.85rem;
}

.story-state-sections .summary-card p {
  margin: 8px 0;
  white-space: pre-wrap;
}

/* Milestone 14.2: semantic Storytelling segments */
.story-narration-segment {
  line-height: 1.55;
}

.story-speech-segment {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-inline-start: 10px;
  border-inline-start: 2px solid var(--ion-color-medium);
}

.story-speaker-name {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  opacity: 0.75;
}

.story-choice-segment {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 8px 10px;
  border: 1px solid var(--ion-color-medium);
  border-radius: 10px;
}

.story-choice-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.68;
}

.story-input-segment {
  line-height: 1.45;
}

/* Milestone 14.3: clickable story choices */
.story-choice-current {
  border-style: solid;
}

.story-choice-button {
  width: 100%;
  border: 0;
  padding: 7px 9px;
  border-radius: 8px;
  background: var(--ion-color-light);
  color: var(--ion-text-color);
  text-align: start;
  font: inherit;
  cursor: pointer;
}

.story-choice-button:hover:not(:disabled),
.story-choice-button:focus-visible:not(:disabled) {
  background: var(--ion-color-light-shade);
  outline: 2px solid var(--ion-color-primary);
  outline-offset: 1px;
}

.story-choice-button:disabled {
  cursor: default;
  opacity: 0.55;
}

.story-choice-history {
  opacity: 0.82;
}

/* Milestone 16: Storytelling Experience */
.story-state-toolbar {
  flex-wrap: wrap;
  gap: 8px;
}

.story-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.story-overview-card,
.context-budget-card,
.story-detail-card,
.inventory-card,
.story-edit-card {
  border: 1px solid var(--ion-color-step-200, rgba(127, 127, 127, 0.24));
  border-radius: 12px;
  background: var(--ion-card-background, var(--ion-background-color));
}

.story-overview-card {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px;
}

.story-overview-label {
  color: var(--ion-color-medium);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.inventory-grid,
.story-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}

.inventory-card,
.story-detail-card {
  padding: 12px;
}

.inventory-card p,
.story-detail-card p {
  margin: 7px 0;
  white-space: pre-wrap;
}

.inventory-key {
  border-width: 2px;
  border-color: var(--ion-color-warning);
}

.inventory-important {
  border-color: var(--ion-color-primary-tint);
}

.inventory-card-heading,
.story-detail-heading,
.story-edit-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.story-badge {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--ion-color-light);
  color: var(--ion-color-medium-shade);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.inventory-meta,
.inventory-acquired {
  color: var(--ion-color-medium);
  font-size: 0.8rem;
  margin-top: 4px;
}

.inventory-hook {
  margin-top: 8px;
  padding: 8px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--ion-color-warning) 12%, transparent);
  font-size: 0.85rem;
}

.story-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.story-chip {
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--ion-color-light);
  font-size: 0.76rem;
}

.quest-completed,
.hook-resolved {
  opacity: 0.76;
}

.quest-failed {
  border-color: var(--ion-color-danger-tint);
}

.current-location-card {
  border-width: 2px;
  border-color: var(--ion-color-primary);
}

.story-state-editor {
  display: grid;
  gap: 16px;
  padding-bottom: 32px;
}

.story-edit-section {
  display: grid;
  gap: 10px;
}

.story-edit-card {
  display: grid;
  gap: 8px;
  padding: 10px;
}

.story-edit-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

.context-inspector {
  display: grid;
  gap: 14px;
}

.context-budget-card {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.context-budget-over {
  border-color: var(--ion-color-danger);
}

.context-budget-meter {
  width: 100%;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--ion-color-light);
}

.context-budget-fill {
  height: 100%;
  background: var(--ion-color-primary);
  border-radius: inherit;
}

.context-budget-summary {
  color: var(--ion-color-medium-shade);
  font-size: 0.84rem;
}

.context-component-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 7px;
}

.context-component {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 8px;
  background: var(--ion-color-light);
  font-size: 0.8rem;
}

@media (max-width: 520px) {
  .story-edit-row {
    grid-template-columns: 1fr;
  }
}

/* M16.0.1: player-facing Storytelling HUD */
.story-quick-actions {
  align-items: center;
}

.story-quick-button {
  --padding-start: 8px;
  --padding-end: 8px;
  min-width: 40px;
  min-height: 36px;
  margin: 0;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 12px;
}

.story-quick-button ion-icon {
  font-size: 1.25rem;
}

.story-player-modal::part(content) {
  max-width: 760px;
}

.story-player-panel {
  display: grid;
  gap: 16px;
  width: min(100%, 720px);
  margin: 0 auto;
  padding-bottom: 24px;
}

.story-player-summary {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 2px 2px 4px;
}

.story-player-summary span,
.story-player-empty span {
  color: var(--ion-color-medium);
  font-size: 0.86rem;
}

.story-player-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 40px 18px;
  text-align: center;
}

.story-player-empty ion-icon {
  font-size: 2.2rem;
  color: var(--ion-color-medium);
}

.story-player-card {
  border-radius: 14px;
  box-shadow: 0 8px 22px rgb(0 0 0 / 6%);
}

.story-player-inventory-grid {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.quest-player-panel {
  gap: 20px;
}

.quest-player-section {
  display: grid;
  gap: 9px;
}

.quest-player-heading {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  color: var(--ion-color-medium-shade);
}

.quest-player-main .story-player-card {
  border-width: 2px;
  border-color: var(--ion-color-primary);
}

.quest-progress {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--ion-color-primary) 8%, transparent);
  font-size: 0.87rem;
}

.quest-history-list {
  display: grid;
  gap: 6px;
}

.quest-history-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 9px;
  background: var(--ion-color-light);
  font-size: 0.84rem;
}

.quest-history-item span:last-child {
  color: var(--ion-color-medium);
  white-space: nowrap;
}

/* M16.1: generated story images */
.story-badge-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.inventory-item-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: 11px;
  margin-bottom: 10px;
  background: var(--ion-color-light);
}

.story-asset-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.story-asset-placeholder {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  min-height: 140px;
  text-align: center;
  color: var(--ion-color-medium);
  background: color-mix(in srgb, var(--ion-color-light) 72%, transparent);
}

.story-asset-placeholder ion-icon {
  font-size: 1.8rem;
}

.story-gallery-modal::part(content) {
  max-width: 1120px;
}

.story-gallery-shell {
  display: grid;
  gap: 26px;
  width: min(100%, 1080px);
  margin: 0 auto;
  padding-bottom: 32px;
}

.story-gallery-section {
  display: grid;
  gap: 10px;
}

.story-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.story-gallery-npc-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.story-gallery-card {
  overflow: hidden;
  border: 1px solid rgb(127 127 127 / 24%);
  border-radius: 15px;
  background: var(--ion-card-background, var(--ion-background-color));
  box-shadow: 0 9px 26px rgb(0 0 0 / 7%);
}

.story-gallery-card-body {
  display: grid;
  gap: 7px;
  padding: 12px;
}

.story-gallery-card-body p {
  margin: 0;
  line-height: 1.45;
}

.story-gallery-image {
  width: 100%;
  object-fit: cover;
  display: block;
  background: var(--ion-color-light);
}

.story-gallery-image-npc {
  aspect-ratio: 3 / 4;
}

.story-gallery-image-item,
.story-gallery-image-map {
  aspect-ratio: 1 / 1;
}

.story-gallery-image-location,
.story-gallery-image-map {
  aspect-ratio: 3 / 2;
}

.story-gallery-current-location {
  border-width: 2px;
  border-color: var(--ion-color-primary);
}

.story-gallery-current-location .story-gallery-image-location {
  max-height: 560px;
}

.story-visual-description {
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--ion-color-light);
  font-size: 0.82rem;
  line-height: 1.4;
}

@media (max-width: 620px) {
  .story-gallery-grid,
  .story-gallery-npc-grid {
    grid-template-columns: 1fr;
  }
}

/* M16.1.3: compact chat header, inline settings and story visuals. */
.conversation-settings-toggle {
  width: 44px;
  height: 44px;
  margin-inline-end: 4px;
  --border-radius: 12px;
}

.conversation-settings-toggle.settings-open {
  --background: color-mix(in srgb, var(--ion-color-primary, #3880ff) 14%, transparent);
  color: var(--ion-color-primary, #3880ff);
}

.conversation-settings-panel {
  display: grid;
  gap: 14px;
  margin: -6px 0 24px;
  padding: 14px;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ion-card-background, #fff) 92%, transparent);
  box-shadow: 0 8px 26px rgb(0 0 0 / 5%);
}

.agent-status-panel {
  display: grid;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgb(127 127 127 / 16%);
}

.agent-status-heading {
  font-size: 0.76rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  opacity: 0.62;
}

.agent-status-items {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.agent-status-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid rgb(127 127 127 / 16%);
  border-radius: 999px;
  font-size: 0.76rem;
  line-height: 1.2;
  background: color-mix(in srgb, var(--ion-background-color) 84%, transparent);
}

.agent-status-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: var(--ion-color-medium, #92949c);
}

.agent-status-dot.online { background: var(--ion-color-success, #2dd36f); }
.agent-status-dot.warning { background: var(--ion-color-warning, #ffc409); }
.agent-status-dot.offline { background: var(--ion-color-danger, #eb445a); }

.conversation-settings-panel .conversation-controls {
  display: grid;
  gap: 12px;
  margin: 0;
}

.conversation-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.conversation-control-grid ion-select,
.conversation-control-grid .story-snapshot-control {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
}

.conversation-control-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.conversation-control-actions ion-button {
  min-height: 42px;
  margin: 0;
  --border-radius: 11px;
}

.conversation-starting-situation {
  max-width: 680px;
  margin: 0 auto 22px;
  padding: 0 4px 18px;
  border-bottom: 1px solid rgb(127 127 127 / 18%);
}

.conversation-starting-label {
  margin-bottom: 6px;
  font-size: 0.72rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.55;
}

.conversation-starting-situation p {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.58;
  color: color-mix(in srgb, var(--ion-text-color, #1f1f1f) 88%, transparent);
}

.chat-jump-row {
  display: flex;
  width: 100%;
}

.chat-jump-row-top {
  justify-content: flex-end;
  margin: -8px 0 16px;
}

.chat-jump-row-bottom {
  justify-content: center;
  margin: 20px 0 0;
}

.chat-jump-link {
  appearance: none;
  border: 0;
  padding: 4px 2px;
  background: transparent;
  color: var(--ion-color-primary, #3880ff);
  font: inherit;
  font-size: 0.82rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.chat-jump-link:hover,
.chat-jump-link:focus-visible {
  text-decoration-thickness: 2px;
}

.story-message-assets {
  display: grid;
  gap: 3px;
  margin: -12px -15px 12px;
  width: calc(100% + 30px);
  overflow: hidden;
  border-radius: 18px 18px 10px 10px;
  background: color-mix(in srgb, var(--ion-color-dark, #222) 8%, transparent);
  white-space: normal;
}

.story-message-assets.multiple,
.story-message-assets.paired-portraits,
.story-message-assets.paired-landscapes {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Mixed formats use a deliberate hero + companion composition instead of two equal cells.
   A landscape/map sets the scene; the portrait/item is the supporting visual. */
.story-message-assets.hero-companion {
  grid-template-columns: minmax(0, 1.8fr) minmax(170px, 0.72fr);
  align-items: stretch;
}

.story-message-assets.hero-companion .story-message-asset-hero,
.story-message-assets.hero-companion .story-message-asset-companion {
  min-height: 0;
}

.story-message-assets.hero-companion .story-message-asset-hero .story-message-asset-image {
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image-item {
  object-fit: contain;
}

.story-message-asset {
  min-width: 0;
  overflow: hidden;
  background: var(--ion-color-light, #f4f5f8);
}

.story-message-asset-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.story-message-assets.multiple .story-message-asset-image-npc,
.story-message-assets.paired-portraits .story-message-asset-image-npc { aspect-ratio: 3 / 4; }
.story-message-assets.multiple .story-message-asset-image-item { aspect-ratio: 1 / 1; }
.story-message-assets.multiple .story-message-asset-image-location,
.story-message-assets.multiple .story-message-asset-image-map,
.story-message-assets.paired-landscapes .story-message-asset-image-location,
.story-message-assets.paired-landscapes .story-message-asset-image-map { aspect-ratio: 3 / 2; }

.story-message-assets.single .story-message-asset-npc,
.story-message-assets.single .story-message-asset-item {
  width: min(100%, 380px);
  margin-inline: auto;
}

/* Group responders are a horizontally scrollable strip on every screen size. Character
   names stay visible; the old mobile icon-only rule is intentionally overridden here. */
.group-composer-shell .group-reply-buttons,
.group-reply-buttons {
  display: flex;
  flex-wrap: nowrap;
  gap: 7px;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  align-items: center;
  padding: 2px 1px 7px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.group-reply-buttons .group-character-reply {
  flex: 0 0 auto;
  width: auto;
  min-width: max-content;
  margin: 0;
  --padding-start: 12px;
  --padding-end: 14px;
}

.group-reply-buttons .continue-button-text {
  display: inline !important;
  white-space: nowrap;
}

.group-reply-buttons .group-character-reply ion-icon {
  margin-inline-end: 6px;
}

@media (max-width: 620px) {
  .conversation-settings-panel {
    margin-top: -12px;
    padding: 12px;
  }

  .agent-status-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .agent-status-item {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .conversation-control-grid {
    grid-template-columns: 1fr;
  }

  .conversation-control-actions {
    justify-content: stretch;
  }

  .conversation-control-actions ion-button {
    flex: 1 1 auto;
  }

  .conversation-starting-situation {
    margin-bottom: 18px;
  }

  .story-message-assets.multiple,
  .story-message-assets.paired-portraits,
  .story-message-assets.paired-landscapes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .story-message-assets.hero-companion {
    grid-template-columns: 1fr;
    background: transparent;
    gap: 8px;
  }

  .story-message-assets.hero-companion .story-message-asset-hero {
    width: 100%;
  }

  .story-message-assets.hero-companion .story-message-asset-companion {
    width: min(62%, 280px);
    justify-self: center;
    border-radius: 12px;
  }

  .story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image {
    height: auto;
  }

  .story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image-npc {
    aspect-ratio: 3 / 4;
  }

  .story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image-item {
    aspect-ratio: 1 / 1;
  }

  .group-reply-buttons .group-character-reply {
    min-width: max-content;
  }
}

@media (max-width: 340px) {
  .agent-status-items,
  .story-message-assets.multiple,
  .story-message-assets.paired-portraits,
  .story-message-assets.paired-landscapes {
    grid-template-columns: 1fr;
  }
}

/* M17.1 manual Roleplay image generation */
.composer-media-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
}

.roleplay-image-choice-list {
  width: min(100%, 620px);
  margin: 16px auto 12px;
  display: grid;
  gap: 9px;
}

.roleplay-image-choice-list ion-button {
  margin: 0;
  min-height: 46px;
  --border-radius: 12px;
  text-transform: none;
  font-weight: 650;
}

.roleplay-image-progress {
  width: min(100%, 620px);
  margin: 12px auto;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid color-mix(in srgb, var(--ion-color-primary, #3880ff) 45%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--ion-color-primary, #3880ff) 9%, transparent);
}

.roleplay-image-note {
  display: block;
  width: min(100%, 620px);
  margin: 12px auto 30px;
  line-height: 1.5;
}

/* Roleplay character snapshots share portrait proportions with Story NPC portraits;
   Roleplay scene/area snapshots share the landscape treatment with Story locations. */
.story-message-assets.multiple .story-message-asset-image-rp_character,
.story-message-assets.paired-portraits .story-message-asset-image-rp_character {
  aspect-ratio: 3 / 4;
}

.story-message-assets.multiple .story-message-asset-image-rp_scene_people,
.story-message-assets.multiple .story-message-asset-image-rp_scene_empty,
.story-message-assets.multiple .story-message-asset-image-rp_area,
.story-message-assets.paired-landscapes .story-message-asset-image-rp_scene_people,
.story-message-assets.paired-landscapes .story-message-asset-image-rp_scene_empty,
.story-message-assets.paired-landscapes .story-message-asset-image-rp_area {
  aspect-ratio: 3 / 2;
}

.story-message-assets.single .story-message-asset-rp_character {
  width: min(100%, 380px);
  margin-inline: auto;
}

.story-message-assets.hero-companion .story-message-asset-companion .story-message-asset-image-rp_character {
  aspect-ratio: 3 / 4;
}

@media (max-width: 620px) {
  .composer-toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .composer-media-actions {
    gap: 5px;
  }

  .composer-media-actions ion-button {
    margin-inline: 0;
  }
}

/* ========================================================================== */
/* M17.3 – Story Master visual redesign                                       */
/* ========================================================================== */

.story-master-page,
.story-master-menu {
  --story-panel: linear-gradient(155deg, rgba(15, 33, 53, 0.98), rgba(7, 18, 31, 0.98));
  --story-panel-hover: linear-gradient(155deg, rgba(20, 43, 68, 0.98), rgba(9, 24, 40, 0.98));
}

.story-master-header {
  box-shadow: 0 1px 0 rgba(75, 143, 205, 0.22), 0 12px 28px rgba(0, 0, 0, 0.18);
}

.story-master-toolbar {
  --background: linear-gradient(180deg, rgba(9, 23, 38, 0.98), rgba(5, 15, 26, 0.98));
  --color: var(--story-text);
  --border-color: rgba(60, 126, 187, 0.32);
  min-height: 56px;
}

.story-master-toolbar ion-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 650;
  letter-spacing: 0.018em;
}

.story-master-toolbar ion-menu-button,
.story-master-toolbar ion-button {
  --color: #d8e8fb;
}

.story-master-toolbar ion-menu-button:hover,
.story-master-toolbar ion-button:hover {
  --color: var(--story-gold-soft);
}

.menu-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--story-gold-soft);
  font-family: Georgia, 'Times New Roman', serif;
  letter-spacing: 0.025em;
}

.menu-brand img {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.34);
}

/* ---------- Navigation drawer ---------- */
.story-master-menu::part(container) {
  border-right: 1px solid rgba(59, 126, 189, 0.38);
  background: var(--story-bg-1);
  box-shadow: 18px 0 50px rgba(0, 0, 0, 0.4);
}

.roleplay-menu {
  --background:
    radial-gradient(circle at 0 0, rgba(45, 103, 160, 0.13), transparent 24rem),
    linear-gradient(180deg, #081522, #06101b 72%);
}

.account-universe-panel {
  margin: 14px 12px 10px;
  padding: 9px;
  border: 1px solid rgba(61, 128, 190, 0.42);
  border-radius: 15px;
  background: var(--story-panel);
  box-shadow: var(--story-panel-shadow);
}

.account-universe-panel ion-item {
  --background: transparent;
  --border-color: rgba(62, 119, 173, 0.18);
}

.account-universe-panel ion-item:first-child strong {
  color: var(--story-gold-soft);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1rem;
}

.universe-actions {
  gap: 5px;
}

.universe-actions ion-button {
  --border-radius: 9px;
}

.menu-actions {
  padding: 8px 12px 2px;
}

.menu-actions ion-button {
  min-height: 44px;
  --border-radius: 10px;
  --background: linear-gradient(180deg, #268cff, #1762ba);
  --box-shadow: 0 7px 19px rgba(20, 105, 190, 0.25);
}

.roleplay-menu ion-list {
  background: transparent;
  padding: 6px 7px 24px;
}

.roleplay-menu ion-list-header {
  min-height: 42px;
  margin-top: 14px;
  padding-inline: 10px 6px;
  color: var(--story-gold-soft);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1rem;
  letter-spacing: 0.015em;
}

.roleplay-menu ion-list-header ion-icon {
  color: var(--story-gold);
}

.roleplay-menu ion-item {
  --background: transparent;
  --background-hover: rgba(41, 91, 137, 0.16);
  --border-color: transparent;
  margin: 3px 5px;
  border: 1px solid transparent;
  border-radius: 10px;
  overflow: hidden;
}

.roleplay-menu ion-item h2 {
  color: #e8f1fb;
}

.roleplay-menu ion-item p,
.roleplay-menu ion-note {
  color: #8397ae;
}

.menu-item-active {
  --background: rgba(30, 91, 151, 0.2) !important;
  border-color: rgba(63, 146, 255, 0.42) !important;
  box-shadow: inset 3px 0 var(--story-blue), 0 5px 18px rgba(0, 0, 0, 0.12);
}

/* ---------- Main canvas ---------- */
.chat-content {
  --background:
    radial-gradient(circle at 14% 0%, rgba(36, 90, 142, 0.12), transparent 30rem),
    radial-gradient(circle at 93% 88%, rgba(24, 67, 109, 0.13), transparent 34rem),
    linear-gradient(180deg, #07111d 0%, #050c15 100%);
}

.chat-shell {
  width: min(100%, 940px);
  padding: 30px 20px 42px;
}

.conversation-settings-toggle {
  --border-radius: 11px;
}

.conversation-settings-toggle.settings-open {
  --background: rgba(63, 146, 255, 0.14);
  --color: var(--story-gold-soft);
  box-shadow: inset 0 0 0 1px rgba(63, 146, 255, 0.4);
}

.conversation-settings-panel {
  margin: -4px 0 26px;
  padding: 16px;
  border: 1px solid rgba(63, 137, 201, 0.45);
  border-radius: 15px;
  background: var(--story-panel);
  box-shadow: var(--story-panel-shadow);
}

.agent-status-panel {
  border-bottom-color: rgba(70, 128, 183, 0.24);
}

.agent-status-heading,
.conversation-starting-label {
  color: var(--story-gold);
  opacity: 1;
}

.agent-status-items {
  gap: 8px;
}

.agent-status-item {
  border-color: rgba(67, 128, 184, 0.3);
  background: rgba(5, 16, 27, 0.5);
  color: #afbed0;
}

.conversation-control-grid ion-select,
.conversation-control-grid .story-snapshot-control {
  border-color: rgba(65, 133, 194, 0.36);
  background: rgba(6, 17, 29, 0.58);
}

.conversation-control-actions ion-button {
  --border-color: rgba(69, 145, 220, 0.72);
  --color: #74b7ff;
}

.conversation-starting-situation {
  max-width: 780px;
  margin: 0 auto 26px;
  padding: 16px 18px 17px;
  border: 1px solid rgba(66, 131, 190, 0.3);
  border-left: 3px solid var(--story-gold);
  border-radius: 11px;
  background: linear-gradient(105deg, rgba(20, 42, 65, 0.75), rgba(7, 18, 31, 0.72));
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.conversation-starting-situation p {
  color: #cbd8e6;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 0.98rem;
}

.chat-jump-link {
  color: #7fbaff;
  text-decoration-color: rgba(127, 186, 255, 0.52);
}

/* ---------- Empty state ---------- */
.empty-state {
  color: var(--story-muted);
}

.empty-state-mark {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  padding: 0;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

.empty-state-mark img {
  width: 100%;
  height: 100%;
  display: block;
}

.empty-state h1 {
  color: var(--story-gold-soft);
  font-family: Georgia, 'Times New Roman', serif;
  letter-spacing: 0.02em;
}

/* ---------- Conversation ---------- */
.message-list {
  gap: 24px;
}

.message-row {
  max-width: 88%;
}

.message-label {
  color: #9db1c8;
  opacity: 0.78;
  font-weight: 720;
}

.message-row.assistant .message-label {
  color: var(--story-gold-soft);
}

.message-bubble {
  border: 1px solid rgba(58, 120, 177, 0.24);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
}

.message-row.assistant .message-bubble {
  background: linear-gradient(150deg, rgba(18, 37, 59, 0.98), rgba(9, 23, 38, 0.98));
  color: #e7eff8;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16), inset 0 1px rgba(255, 255, 255, 0.018);
}

.message-row.user .message-bubble {
  border-color: rgba(81, 161, 244, 0.44);
  background: linear-gradient(150deg, #145caa, #0f417a);
  color: #f4f8ff;
  box-shadow: 0 10px 26px rgba(4, 50, 98, 0.23);
}

.message-actions ion-button {
  --color: #7f9fbd;
}

.story-speech-segment {
  border-inline-start-color: rgba(230, 184, 93, 0.65);
}

.story-speaker-name {
  color: var(--story-gold-soft);
  opacity: 0.95;
}

.story-choice-segment {
  border-color: rgba(63, 146, 255, 0.4);
  background: rgba(10, 30, 49, 0.44);
}

.story-choice-label {
  color: var(--story-gold);
  opacity: 0.9;
}

.story-choice-button {
  border: 1px solid rgba(62, 139, 211, 0.28);
  background: linear-gradient(145deg, rgba(19, 44, 70, 0.95), rgba(10, 29, 48, 0.95));
  color: #eaf3fe;
}

.story-choice-button:hover:not(:disabled),
.story-choice-button:focus-visible:not(:disabled) {
  background: linear-gradient(145deg, rgba(25, 59, 93, 0.98), rgba(12, 37, 61, 0.98));
}

/* ---------- Generated images ---------- */
.story-message-assets {
  background: #07111d;
  border-bottom: 1px solid rgba(66, 132, 192, 0.22);
}

.story-message-asset {
  background: #07111d;
}

.story-gallery-card,
.story-player-card,
.inventory-card,
.story-detail-card,
.story-overview-card,
.context-budget-card,
.story-edit-card,
.relationship-editor-card,
.summary-card,
.prompt-preview-message {
  border-color: rgba(61, 126, 186, 0.38);
  background: var(--story-panel);
  box-shadow: var(--story-panel-shadow);
}

.story-gallery-card:hover,
.story-player-card:hover,
.inventory-card:hover,
.story-detail-card:hover {
  border-color: rgba(78, 157, 231, 0.52);
}

.story-gallery-card-body strong,
.inventory-card-heading strong,
.story-detail-heading strong,
.story-edit-heading strong {
  color: var(--story-gold-soft);
}

.story-visual-description,
.inventory-hook,
.quest-progress,
.context-component,
.story-chip,
.story-badge,
.quest-history-item {
  background: rgba(21, 48, 75, 0.6);
  color: #b8c9da;
}

/* ---------- Editors and tools ---------- */
.editor-content,
.prompt-preview-content,
.memory-content,
.story-state-content {
  --background:
    radial-gradient(circle at 100% 0%, rgba(36, 87, 138, 0.11), transparent 28rem),
    var(--story-bg-1);
}

.editor-intro {
  color: #93a7bd;
}

.editor-content > ion-list,
.editor-content ion-list[inset] {
  border: 1px solid rgba(60, 124, 184, 0.4);
  border-radius: 15px;
  background: var(--story-panel);
  box-shadow: var(--story-panel-shadow);
  overflow: hidden;
}

.editor-content ion-item,
.memory-content ion-item,
.story-state-content ion-item {
  --background: rgba(8, 21, 35, 0.35);
  --border-color: rgba(68, 128, 183, 0.2);
}

.editor-content ion-list-header,
.memory-content ion-list-header,
.story-state-content ion-list-header {
  color: var(--story-gold-soft);
  font-family: Georgia, 'Times New Roman', serif;
}

.prompt-preview-role,
.quest-player-heading,
.story-overview-label,
.agent-status-heading,
.conversation-starting-label {
  letter-spacing: 0.09em;
}

.prompt-preview-role {
  color: var(--story-gold-soft);
  border-bottom-color: rgba(66, 128, 184, 0.25);
}

.prompt-preview-message pre {
  color: #c9d6e4;
}

/* ---------- Composer ---------- */
.composer-footer {
  background: rgba(5, 13, 23, 0.94);
  border-top: 1px solid rgba(62, 128, 188, 0.28);
  box-shadow: 0 -14px 38px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(16px);
}

.composer-toolbar,
.advanced-composer,
.composer-shell {
  width: min(100%, 940px);
}

.composer-toolbar {
  padding-top: 10px;
}

.composer-mode-switch ion-button,
.composer-media-actions ion-button,
.story-quick-button,
.continue-button,
.group-character-reply {
  --border-color: rgba(66, 145, 220, 0.72);
  --color: #86c2ff;
  --background-hover: rgba(63, 146, 255, 0.09);
}

.message-input {
  --background: rgba(8, 22, 37, 0.88);
  --color: #eef5ff;
  --placeholder-color: #72859a;
  border-color: rgba(64, 131, 192, 0.38);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.015);
}

.send-button:not(.stop-button) {
  --background: linear-gradient(180deg, #268cff, #1762ba);
  --box-shadow: 0 7px 20px rgba(20, 106, 193, 0.24);
}

.composer-segment,
.advanced-author-select,
.advanced-message-summary {
  border-color: rgba(64, 131, 192, 0.35);
  background: rgba(8, 22, 37, 0.82);
}

/* ---------- Roleplay image chooser ---------- */
.roleplay-image-choice-list ion-button {
  --border-color: rgba(67, 145, 218, 0.58);
  --color: #dcecff;
  --background: linear-gradient(145deg, rgba(16, 39, 63, 0.96), rgba(8, 23, 39, 0.96));
}

.roleplay-image-choice-list ion-button:hover {
  --background: linear-gradient(145deg, rgba(24, 55, 86, 0.98), rgba(11, 32, 53, 0.98));
}

.roleplay-image-progress {
  border-color: rgba(63, 146, 255, 0.48);
  background: rgba(26, 77, 125, 0.18);
}

/* ---------- Modal / page headings ---------- */
ion-modal ion-title,
.editor-content h1,
.editor-content h2,
.story-state-content h2,
.memory-content h2,
.story-gallery-shell h2,
.story-player-panel h2 {
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--story-gold-soft);
}

/* ---------- Mobile ---------- */
@media (max-width: 620px) {
  .chat-shell {
    padding-inline: 12px;
  }

  .message-row {
    max-width: 94%;
  }

  .conversation-settings-panel {
    border-radius: 12px;
  }

  .conversation-starting-situation {
    padding: 13px 14px 14px;
  }

  .story-master-toolbar ion-title {
    font-size: 1rem;
  }

  .menu-brand img {
    width: 29px;
    height: 29px;
  }
}

/* M18 – Context Intelligence 2.0 inspector */
.context-retrieval-card {
  border: 1px solid var(--sm-border, rgba(76, 151, 255, 0.34));
  border-radius: 16px;
  background: rgba(7, 17, 29, 0.72);
  padding: 16px;
  display: grid;
  gap: 14px;
}

.context-retrieval-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  color: var(--ion-color-medium);
  font-size: 0.88rem;
}

.context-retrieval-status {
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.context-retrieval-status.is-online { color: var(--ion-color-success); }
.context-retrieval-status.is-fallback { color: var(--ion-color-warning); }

.context-retrieval-query {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 10px;
}

.context-retrieval-query summary {
  cursor: pointer;
  color: var(--sm-gold, #d9b45c);
  font-weight: 700;
}

.context-retrieval-query pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 10px 0 0;
  font-size: 0.78rem;
  color: var(--ion-color-medium);
}

.context-retrieval-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.context-retrieval-subtitle {
  margin-bottom: 7px;
  color: var(--sm-gold, #d9b45c);
  font-weight: 800;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.context-retrieval-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 8px 10px;
  margin-bottom: 6px;
  background: rgba(255, 255, 255, 0.025);
}

.context-retrieval-item > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.context-retrieval-item strong {
  overflow-wrap: anywhere;
  font-size: 0.82rem;
}

.context-retrieval-item span {
  color: var(--ion-color-medium);
  font-size: 0.72rem;
}

.context-retrieval-item > span:last-child {
  color: var(--ion-color-primary);
  font-weight: 800;
  font-size: 0.82rem;
}

@media (max-width: 720px) {
  .context-retrieval-columns { grid-template-columns: 1fr; }
}

/* M20 Story Character Sheet */
.character-sheet-panel {
  gap: 20px;
}

.character-sheet-toolbar {
  flex-wrap: wrap;
}

.character-sheet-section {
  display: grid;
  gap: 9px;
}

.character-sheet-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.character-sheet-edit-section {
  padding: 12px;
  border: 1px solid var(--ion-color-light-shade);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ion-background-color) 92%, var(--ion-color-light));
}

.condition-severe,
.condition-critical {
  border-color: var(--ion-color-danger-tint);
}

.condition-moderate {
  border-color: var(--ion-color-warning-tint);
}

/* M20.2: older history is immutable; keep the lock visible but quiet. */
.message-actions-locked {
  min-width: 28px;
  justify-content: center;
  opacity: 0.35;
  padding: 0 6px;
}

.message-actions-locked ion-icon {
  font-size: 15px;
}

/* M21 Story Journal / Chapters / Timeline */
.story-journal-panel {
  display: grid;
  gap: 1rem;
}

.story-journal-status {
  margin-bottom: 0;
}

.story-journal-chapters {
  display: grid;
  gap: 1rem;
}

.story-journal-chapter {
  border: 1px solid var(--ion-color-step-200, #d7d8da);
  border-radius: 14px;
  padding: 1rem;
  background: var(--ion-card-background, var(--ion-background-color, #fff));
}

.story-journal-chapter-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .55rem;
}

.story-journal-chapter-heading h3 {
  margin: .1rem 0 0;
  font-size: 1.05rem;
}

.story-journal-kicker {
  display: block;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .62;
}

.story-journal-summary {
  margin: 0 0 .85rem;
  line-height: 1.5;
  opacity: .86;
}

.story-journal-events {
  display: grid;
  gap: .7rem;
}

.story-journal-event {
  border-left: 3px solid var(--ion-color-step-300, #b7b7b7);
  padding: .15rem 0 .15rem .85rem;
}

.story-journal-event.journal-important,
.story-journal-event.journal-key {
  border-left-width: 4px;
}

.story-journal-event p {
  margin: .35rem 0 .25rem;
  line-height: 1.45;
}

.story-journal-meta {
  font-size: .8rem;
  opacity: .62;
}

.story-journal-actions {
  display: grid;
  gap: .45rem;
  justify-items: start;
}

@media (min-width: 760px) {
  .story-journal-modal {
    --width: min(900px, 92vw);
    --height: min(860px, 90vh);
  }
}

/* M22: Narrative Quest System */
.quest-mode-item {
  --background: color-mix(in srgb, var(--ion-color-primary) 5%, var(--ion-background-color));
  border-radius: 12px;
}

.quest-mode-note {
  display: block;
  margin: -10px 4px 2px;
  font-size: .78rem;
}

.quest-heading-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.quest-step-list {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.quest-step {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 9px;
  background: var(--ion-color-light);
  font-size: .84rem;
}

.quest-step.completed {
  opacity: .7;
}

.quest-step-marker {
  flex: 0 0 auto;
  font-weight: 800;
}

.quest-step div {
  display: grid;
  gap: 2px;
}

.quest-step div span,
.quest-history-outcome {
  color: var(--ion-color-medium-shade);
  font-size: .8rem;
}

.quest-reward {
  margin-top: 9px;
  font-size: .86rem;
}

.quest-history-item > div {
  display: grid;
  gap: 2px;
}

.quest-editor-shell {
  width: min(100%, 980px);
  margin: 18px auto 24px;
  display: grid;
  gap: 14px;
}

.quest-editor-title-row,
.quest-editor-card-head,
.quest-editor-rule-title,
.quest-editor-group-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.quest-editor-title-row h2 {
  margin: 0 0 4px;
  font-size: 1.08rem;
}

.quest-editor-card {
  border: 1px solid var(--ion-color-step-200, #d7d8da);
  border-radius: 16px;
  padding: 14px;
  background: var(--ion-card-background, var(--ion-background-color));
  box-shadow: 0 8px 24px rgb(0 0 0 / 5%);
}

.quest-editor-card-head {
  align-items: center;
  margin-bottom: 8px;
}

.quest-editor-card-head > div {
  display: flex;
  align-items: center;
  gap: 4px;
}

.quest-editor-rule-section {
  display: grid;
  gap: 9px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid var(--ion-color-step-150, #e6e6e6);
}

.quest-editor-rule-title > div {
  display: grid;
  gap: 2px;
}

.quest-editor-rule-title ion-note {
  font-size: .76rem;
}

.quest-editor-condition-group,
.quest-editor-step {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid var(--ion-color-step-150, #e6e6e6);
  border-radius: 12px;
  background: color-mix(in srgb, var(--ion-color-light) 45%, transparent);
}

.quest-editor-condition {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--ion-color-step-150, #e6e6e6);
}

.story-player-empty.compact {
  padding: 22px 16px;
}

@media (max-width: 640px) {
  .quest-editor-title-row,
  .quest-editor-rule-title,
  .quest-editor-group-head {
    flex-direction: column;
  }

  .quest-editor-title-row ion-button,
  .quest-editor-rule-title ion-button {
    align-self: stretch;
  }
}

/* M22: authored quests need more horizontal space than the legacy scenario form. */
@media (min-width: 900px) {
  .scenario-editor-modal {
    --width: min(1100px, 94vw);
    --height: 92vh;
  }
}

.quest-mode-readonly {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 0.95rem;
}

/* M23: Story Dynamic Relationships */
.relationship-player-panel {
  gap: 18px;
}

.relationship-card-list,
.relationship-inspector {
  display: grid;
  gap: 12px;
}

.relationship-card,
.relationship-admin-card {
  display: grid;
  gap: 10px;
}

.relationship-direction {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.82rem;
  color: var(--ion-color-medium);
}

.relationship-direction strong {
  color: var(--ion-text-color);
}

.relationship-subsection {
  display: grid;
  gap: 5px;
  padding-top: 8px;
  border-top: 1px solid rgb(127 127 127 / 14%);
}

.relationship-subsection > span,
.relationship-admin-meta {
  color: var(--ion-color-medium);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.relationship-subsection ul {
  margin: 0;
  padding-left: 18px;
}

.relationship-subsection li {
  margin: 3px 0;
  line-height: 1.45;
}

.relationship-event-list {
  display: grid;
  gap: 6px;
}

.relationship-event-list > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 7px 9px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--ion-color-primary) 6%, transparent);
}

.relationship-event-list small {
  color: var(--ion-color-medium);
}

.relationship-inspector-switch {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 12px;
}

.relationship-inspector {
  padding-top: 4px;
}

.relationship-admin-card {
  border-color: color-mix(in srgb, var(--ion-color-warning) 38%, transparent);
}

.relationship-admin-card ion-input,
.relationship-admin-card ion-textarea,
.relationship-admin-card ion-select {
  --padding-start: 10px;
  --padding-end: 10px;
}

.relationship-admin-meta {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

.relationship-admin-details {
  padding: 9px 10px;
  border-radius: 9px;
  background: rgb(0 0 0 / 10%);
  font-size: 0.82rem;
}

.relationship-admin-details summary {
  cursor: pointer;
  font-weight: 700;
}

.relationship-admin-details > div {
  margin-top: 9px;
}

.relationship-admin-details ul {
  margin: 5px 0 0;
  padding-left: 18px;
}

.relationship-admin-details small {
  color: var(--ion-color-medium);
}

/* M24: Persistent World Geography & Location Graph */
.story-world-panel,
.world-inspector,
.world-inspector-list,
.world-admin-fields,
.world-connection-editor {
  display: grid;
  gap: 12px;
}

.world-current-location {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--ion-color-primary) 38%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ion-color-primary) 8%, transparent);
}

.world-current-location ion-icon {
  flex: 0 0 auto;
  font-size: 1.45rem;
  color: var(--ion-color-primary);
}

.world-current-location > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.world-current-location span,
.world-current-location small,
.world-path,
.world-aliases,
.world-state-line,
.world-admin-card summary span,
.world-admin-connections span,
.world-admin-connections small {
  color: var(--ion-color-medium);
  font-size: .78rem;
}

.world-search {
  border: 1px solid rgb(127 127 127 / 16%);
  border-radius: 12px;
  --padding-start: 10px;
  --padding-end: 10px;
}

.world-location-list {
  display: grid;
  gap: 10px;
}

.world-location-card {
  display: grid;
  gap: 8px;
  transition: border-color .16s ease, background .16s ease;
}

.world-location-card.is-current {
  border-color: color-mix(in srgb, var(--ion-color-primary) 48%, transparent);
  background: color-mix(in srgb, var(--ion-color-primary) 5%, var(--ion-card-background, var(--ion-background-color)));
}

.world-location-card .story-detail-heading > div:first-child {
  display: grid;
  gap: 2px;
}

.world-location-card .story-detail-heading small {
  color: var(--ion-color-medium);
  font-weight: 500;
}

.world-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.world-path {
  overflow-wrap: anywhere;
}

.world-state-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

.world-aliases {
  font-style: italic;
}

.world-connection-list,
.world-admin-connections {
  display: grid;
  gap: 7px;
}

.world-connection-list > div {
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  border-radius: 9px;
  background: color-mix(in srgb, var(--ion-color-primary) 5%, transparent);
}

.world-connection-list small,
.world-connection-list span {
  color: var(--ion-color-medium);
  font-size: .78rem;
}

.world-history-details {
  padding-top: 5px;
  font-size: .82rem;
}

.world-history-details summary,
.world-admin-card > summary {
  cursor: pointer;
  font-weight: 700;
}

.world-history-details ul {
  margin: 7px 0 0;
  padding-left: 18px;
}

.world-inspector {
  padding-top: 4px;
}

.world-admin-card {
  border-color: color-mix(in srgb, var(--ion-color-warning) 30%, transparent);
  overflow: hidden;
}

.world-admin-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 2px 10px;
}

.world-admin-card > summary span {
  font-weight: 500;
  text-align: right;
}

.world-admin-fields ion-input,
.world-admin-fields ion-textarea,
.world-admin-fields ion-select,
.world-connection-editor ion-input,
.world-connection-editor ion-textarea,
.world-connection-editor ion-select {
  --padding-start: 10px;
  --padding-end: 10px;
}

.world-toggle-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.world-merge-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  padding-top: 9px;
  border-top: 1px solid rgb(127 127 127 / 14%);
}

.world-connection-editor {
  margin-top: 8px;
  padding: 12px;
  border: 1px solid rgb(127 127 127 / 18%);
  border-radius: 14px;
}

.world-connection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.world-admin-connections > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgb(0 0 0 / 8%);
}

.world-admin-connections > div > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

@media (max-width: 640px) {
  .world-location-card {
    margin-left: 0 !important;
  }

  .world-connection-grid,
  .world-merge-row {
    grid-template-columns: 1fr;
  }

  .world-admin-card > summary {
    align-items: flex-start;
    flex-direction: column;
  }
}
.universe-doctor-content {
  --background: var(--ion-background-color);
}

.universe-doctor-shell {
  width: min(1100px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 56px;
}

.universe-doctor-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.universe-doctor-hero h1 {
  margin: 4px 0 8px;
  font-size: clamp(1.9rem, 4vw, 3rem);
  line-height: 1.05;
}

.universe-doctor-hero p {
  max-width: 720px;
  margin: 0;
  color: var(--ion-color-medium);
  line-height: 1.55;
}

.universe-doctor-kicker {
  display: block;
  color: var(--ion-color-primary);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.universe-doctor-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.universe-doctor-busy-label {
  margin-left: 8px;
}

.universe-doctor-error {
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--ion-color-danger) 50%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ion-color-danger) 10%, transparent);
  color: var(--ion-color-danger);
  white-space: pre-line;
}

.universe-doctor-loading,
.universe-doctor-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 140px;
  color: var(--ion-color-medium);
}

.universe-doctor-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr)) minmax(220px, 1.5fr);
  gap: 12px;
  margin-bottom: 14px;
}

.doctor-stat,
.doctor-ai-state,
.universe-doctor-start-state,
.doctor-finding {
  border: 1px solid color-mix(in srgb, var(--ion-color-medium) 22%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ion-card-background, var(--ion-background-color)) 94%, var(--ion-color-light));
}

.doctor-stat {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 16px;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.doctor-stat strong {
  font-size: 1.85rem;
}

.doctor-stat span {
  color: var(--ion-color-medium);
  font-size: .86rem;
}

.doctor-stat.selected {
  outline: 2px solid currentColor;
  outline-offset: 1px;
}

.doctor-stat.error { color: var(--ion-color-danger); }
.doctor-stat.warning { color: var(--ion-color-warning-shade); }
.doctor-stat.suggestion { color: var(--ion-color-primary); }

.doctor-ai-state {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 16px;
}

.doctor-ai-state > span {
  color: var(--ion-color-medium);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.doctor-ai-state small {
  color: var(--ion-color-medium);
}

.doctor-ai-state.failed strong { color: var(--ion-color-danger); }
.doctor-ai-state.stale strong { color: var(--ion-color-warning-shade); }
.doctor-ai-state.current strong { color: var(--ion-color-success); }

.universe-doctor-start-state {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: baseline;
  margin-bottom: 18px;
  padding: 14px 16px;
}

.universe-doctor-start-state.ready {
  border-color: color-mix(in srgb, var(--ion-color-success) 45%, transparent);
}

.universe-doctor-start-state.blocked {
  border-color: color-mix(in srgb, var(--ion-color-danger) 45%, transparent);
}

.universe-doctor-start-state.ready strong { color: var(--ion-color-success); }
.universe-doctor-start-state.blocked strong { color: var(--ion-color-danger); }
.universe-doctor-start-state span { color: var(--ion-color-medium); }

.universe-doctor-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 8px 0 16px;
}

.universe-doctor-findings {
  display: grid;
  gap: 12px;
}

.doctor-finding {
  padding: 18px;
}

.doctor-finding.error { border-left: 4px solid var(--ion-color-danger); }
.doctor-finding.warning { border-left: 4px solid var(--ion-color-warning); }
.doctor-finding.suggestion { border-left: 4px solid var(--ion-color-primary); }

.doctor-finding-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.doctor-finding-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.doctor-finding-badges > span,
.doctor-finding-topline code {
  color: var(--ion-color-medium);
  font-size: .74rem;
}

.doctor-finding h2 {
  margin: 12px 0 6px;
  font-size: 1.08rem;
}

.doctor-finding p {
  margin: 0 0 12px;
  color: var(--ion-color-medium);
  line-height: 1.5;
}

.doctor-recommendation {
  line-height: 1.5;
}

@media (max-width: 760px) {
  .universe-doctor-shell {
    width: min(100% - 24px, 1100px);
    padding-top: 18px;
  }

  .universe-doctor-hero {
    flex-direction: column;
  }

  .universe-doctor-actions {
    width: 100%;
  }

  .universe-doctor-actions ion-button {
    flex: 1;
  }

  .universe-doctor-summary {
    grid-template-columns: repeat(3, 1fr);
  }

  .doctor-ai-state {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  .universe-doctor-summary {
    grid-template-columns: 1fr;
  }

  .doctor-ai-state {
    grid-column: auto;
  }

  .doctor-finding-topline {
    align-items: flex-start;
    flex-direction: column;
  }
}
:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: 0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none !important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports(padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports(padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translate3d(0,  0,  0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px rgba(0,0,0,.08)}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px rgba(0,0,0,.08)}.md .menu-content-reveal{box-shadow:4px 0px 16px rgba(0,0,0,.18)}.md .menu-content-push{box-shadow:4px 0px 16px rgba(0,0,0,.18)}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:300ms transform cubic-bezier(0.25, 0.8, 0.5, 1)}@media(prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none !important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}/*# sourceMappingURL=core.css.map */
audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:bold}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*# sourceMappingURL=normalize.css.map */
*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}/*# sourceMappingURL=structure.css.map */
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}/*# sourceMappingURL=typography.css.map */
.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)}/*# sourceMappingURL=padding.css.map */
.ion-float-left{float:left !important}.ion-float-right{float:right !important}.ion-float-start{float:left !important}:host-context([dir=rtl]) .ion-float-start{float:right !important}[dir=rtl] .ion-float-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right !important}}.ion-float-end{float:right !important}:host-context([dir=rtl]) .ion-float-end{float:left !important}[dir=rtl] .ion-float-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left !important}}@media(min-width: 576px){.ion-float-sm-left{float:left !important}.ion-float-sm-right{float:right !important}.ion-float-sm-start{float:left !important}:host-context([dir=rtl]) .ion-float-sm-start{float:right !important}[dir=rtl] .ion-float-sm-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right !important}}.ion-float-sm-end{float:right !important}:host-context([dir=rtl]) .ion-float-sm-end{float:left !important}[dir=rtl] .ion-float-sm-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left !important}}}@media(min-width: 768px){.ion-float-md-left{float:left !important}.ion-float-md-right{float:right !important}.ion-float-md-start{float:left !important}:host-context([dir=rtl]) .ion-float-md-start{float:right !important}[dir=rtl] .ion-float-md-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right !important}}.ion-float-md-end{float:right !important}:host-context([dir=rtl]) .ion-float-md-end{float:left !important}[dir=rtl] .ion-float-md-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left !important}}}@media(min-width: 992px){.ion-float-lg-left{float:left !important}.ion-float-lg-right{float:right !important}.ion-float-lg-start{float:left !important}:host-context([dir=rtl]) .ion-float-lg-start{float:right !important}[dir=rtl] .ion-float-lg-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right !important}}.ion-float-lg-end{float:right !important}:host-context([dir=rtl]) .ion-float-lg-end{float:left !important}[dir=rtl] .ion-float-lg-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left !important}}}@media(min-width: 1200px){.ion-float-xl-left{float:left !important}.ion-float-xl-right{float:right !important}.ion-float-xl-start{float:left !important}:host-context([dir=rtl]) .ion-float-xl-start{float:right !important}[dir=rtl] .ion-float-xl-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right !important}}.ion-float-xl-end{float:right !important}:host-context([dir=rtl]) .ion-float-xl-end{float:left !important}[dir=rtl] .ion-float-xl-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left !important}}}/*# sourceMappingURL=float-elements.css.map */
.ion-text-center{text-align:center !important}.ion-text-justify{text-align:justify !important}.ion-text-start{text-align:start !important}.ion-text-end{text-align:end !important}.ion-text-left{text-align:left !important}.ion-text-right{text-align:right !important}.ion-text-nowrap{white-space:nowrap !important}.ion-text-wrap{white-space:normal !important}@media(min-width: 576px){.ion-text-sm-center{text-align:center !important}.ion-text-sm-justify{text-align:justify !important}.ion-text-sm-start{text-align:start !important}.ion-text-sm-end{text-align:end !important}.ion-text-sm-left{text-align:left !important}.ion-text-sm-right{text-align:right !important}.ion-text-sm-nowrap{white-space:nowrap !important}.ion-text-sm-wrap{white-space:normal !important}}@media(min-width: 768px){.ion-text-md-center{text-align:center !important}.ion-text-md-justify{text-align:justify !important}.ion-text-md-start{text-align:start !important}.ion-text-md-end{text-align:end !important}.ion-text-md-left{text-align:left !important}.ion-text-md-right{text-align:right !important}.ion-text-md-nowrap{white-space:nowrap !important}.ion-text-md-wrap{white-space:normal !important}}@media(min-width: 992px){.ion-text-lg-center{text-align:center !important}.ion-text-lg-justify{text-align:justify !important}.ion-text-lg-start{text-align:start !important}.ion-text-lg-end{text-align:end !important}.ion-text-lg-left{text-align:left !important}.ion-text-lg-right{text-align:right !important}.ion-text-lg-nowrap{white-space:nowrap !important}.ion-text-lg-wrap{white-space:normal !important}}@media(min-width: 1200px){.ion-text-xl-center{text-align:center !important}.ion-text-xl-justify{text-align:justify !important}.ion-text-xl-start{text-align:start !important}.ion-text-xl-end{text-align:end !important}.ion-text-xl-left{text-align:left !important}.ion-text-xl-right{text-align:right !important}.ion-text-xl-nowrap{white-space:nowrap !important}.ion-text-xl-wrap{white-space:normal !important}}/*# sourceMappingURL=text-alignment.css.map */
.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}}/*# sourceMappingURL=text-transformation.css.map */
.ion-align-content-start{align-content:flex-start !important}.ion-align-content-end{align-content:flex-end !important}.ion-align-content-center{align-content:center !important}.ion-align-content-between{align-content:space-between !important}.ion-align-content-around{align-content:space-around !important}.ion-align-content-stretch{align-content:stretch !important}@media(min-width: 576px){.ion-align-content-sm-start{align-content:flex-start !important}.ion-align-content-sm-end{align-content:flex-end !important}.ion-align-content-sm-center{align-content:center !important}.ion-align-content-sm-between{align-content:space-between !important}.ion-align-content-sm-around{align-content:space-around !important}.ion-align-content-sm-stretch{align-content:stretch !important}}@media(min-width: 768px){.ion-align-content-md-start{align-content:flex-start !important}.ion-align-content-md-end{align-content:flex-end !important}.ion-align-content-md-center{align-content:center !important}.ion-align-content-md-between{align-content:space-between !important}.ion-align-content-md-around{align-content:space-around !important}.ion-align-content-md-stretch{align-content:stretch !important}}@media(min-width: 992px){.ion-align-content-lg-start{align-content:flex-start !important}.ion-align-content-lg-end{align-content:flex-end !important}.ion-align-content-lg-center{align-content:center !important}.ion-align-content-lg-between{align-content:space-between !important}.ion-align-content-lg-around{align-content:space-around !important}.ion-align-content-lg-stretch{align-content:stretch !important}}@media(min-width: 1200px){.ion-align-content-xl-start{align-content:flex-start !important}.ion-align-content-xl-end{align-content:flex-end !important}.ion-align-content-xl-center{align-content:center !important}.ion-align-content-xl-between{align-content:space-between !important}.ion-align-content-xl-around{align-content:space-around !important}.ion-align-content-xl-stretch{align-content:stretch !important}}.ion-align-items-start{align-items:start !important}.ion-align-items-end{align-items:end !important}.ion-align-items-center{align-items:center !important}.ion-align-items-stretch{align-items:stretch !important}.ion-align-items-baseline{align-items:baseline !important}@media(min-width: 576px){.ion-align-items-sm-start{align-items:start !important}.ion-align-items-sm-end{align-items:end !important}.ion-align-items-sm-center{align-items:center !important}.ion-align-items-sm-stretch{align-items:stretch !important}.ion-align-items-sm-baseline{align-items:baseline !important}}@media(min-width: 768px){.ion-align-items-md-start{align-items:start !important}.ion-align-items-md-end{align-items:end !important}.ion-align-items-md-center{align-items:center !important}.ion-align-items-md-stretch{align-items:stretch !important}.ion-align-items-md-baseline{align-items:baseline !important}}@media(min-width: 992px){.ion-align-items-lg-start{align-items:start !important}.ion-align-items-lg-end{align-items:end !important}.ion-align-items-lg-center{align-items:center !important}.ion-align-items-lg-stretch{align-items:stretch !important}.ion-align-items-lg-baseline{align-items:baseline !important}}@media(min-width: 1200px){.ion-align-items-xl-start{align-items:start !important}.ion-align-items-xl-end{align-items:end !important}.ion-align-items-xl-center{align-items:center !important}.ion-align-items-xl-stretch{align-items:stretch !important}.ion-align-items-xl-baseline{align-items:baseline !important}}.ion-align-self-start{align-self:start !important}.ion-align-self-end{align-self:end !important}.ion-align-self-center{align-self:center !important}.ion-align-self-stretch{align-self:stretch !important}.ion-align-self-baseline{align-self:baseline !important}.ion-align-self-auto{align-self:auto !important}@media(min-width: 576px){.ion-align-self-sm-start{align-self:start !important}.ion-align-self-sm-end{align-self:end !important}.ion-align-self-sm-center{align-self:center !important}.ion-align-self-sm-stretch{align-self:stretch !important}.ion-align-self-sm-baseline{align-self:baseline !important}.ion-align-self-sm-auto{align-self:auto !important}}@media(min-width: 768px){.ion-align-self-md-start{align-self:start !important}.ion-align-self-md-end{align-self:end !important}.ion-align-self-md-center{align-self:center !important}.ion-align-self-md-stretch{align-self:stretch !important}.ion-align-self-md-baseline{align-self:baseline !important}.ion-align-self-md-auto{align-self:auto !important}}@media(min-width: 992px){.ion-align-self-lg-start{align-self:start !important}.ion-align-self-lg-end{align-self:end !important}.ion-align-self-lg-center{align-self:center !important}.ion-align-self-lg-stretch{align-self:stretch !important}.ion-align-self-lg-baseline{align-self:baseline !important}.ion-align-self-lg-auto{align-self:auto !important}}@media(min-width: 1200px){.ion-align-self-xl-start{align-self:start !important}.ion-align-self-xl-end{align-self:end !important}.ion-align-self-xl-center{align-self:center !important}.ion-align-self-xl-stretch{align-self:stretch !important}.ion-align-self-xl-baseline{align-self:baseline !important}.ion-align-self-xl-auto{align-self:auto !important}}.ion-justify-content-start{justify-content:flex-start !important}.ion-justify-content-end{justify-content:flex-end !important}.ion-justify-content-center{justify-content:center !important}.ion-justify-content-between{justify-content:space-between !important}.ion-justify-content-around{justify-content:space-around !important}.ion-justify-content-evenly{justify-content:space-evenly !important}@media(min-width: 576px){.ion-justify-content-sm-start{justify-content:flex-start !important}.ion-justify-content-sm-end{justify-content:flex-end !important}.ion-justify-content-sm-center{justify-content:center !important}.ion-justify-content-sm-between{justify-content:space-between !important}.ion-justify-content-sm-around{justify-content:space-around !important}.ion-justify-content-sm-evenly{justify-content:space-evenly !important}}@media(min-width: 768px){.ion-justify-content-md-start{justify-content:flex-start !important}.ion-justify-content-md-end{justify-content:flex-end !important}.ion-justify-content-md-center{justify-content:center !important}.ion-justify-content-md-between{justify-content:space-between !important}.ion-justify-content-md-around{justify-content:space-around !important}.ion-justify-content-md-evenly{justify-content:space-evenly !important}}@media(min-width: 992px){.ion-justify-content-lg-start{justify-content:flex-start !important}.ion-justify-content-lg-end{justify-content:flex-end !important}.ion-justify-content-lg-center{justify-content:center !important}.ion-justify-content-lg-between{justify-content:space-between !important}.ion-justify-content-lg-around{justify-content:space-around !important}.ion-justify-content-lg-evenly{justify-content:space-evenly !important}}@media(min-width: 1200px){.ion-justify-content-xl-start{justify-content:flex-start !important}.ion-justify-content-xl-end{justify-content:flex-end !important}.ion-justify-content-xl-center{justify-content:center !important}.ion-justify-content-xl-between{justify-content:space-between !important}.ion-justify-content-xl-around{justify-content:space-around !important}.ion-justify-content-xl-evenly{justify-content:space-evenly !important}}.ion-flex-row{flex-direction:row !important}.ion-flex-row-reverse{flex-direction:row-reverse !important}.ion-flex-column{flex-direction:column !important}.ion-flex-column-reverse{flex-direction:column-reverse !important}@media(min-width: 576px){.ion-flex-sm-row{flex-direction:row !important}.ion-flex-sm-row-reverse{flex-direction:row-reverse !important}.ion-flex-sm-column{flex-direction:column !important}.ion-flex-sm-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 768px){.ion-flex-md-row{flex-direction:row !important}.ion-flex-md-row-reverse{flex-direction:row-reverse !important}.ion-flex-md-column{flex-direction:column !important}.ion-flex-md-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 992px){.ion-flex-lg-row{flex-direction:row !important}.ion-flex-lg-row-reverse{flex-direction:row-reverse !important}.ion-flex-lg-column{flex-direction:column !important}.ion-flex-lg-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-row{flex-direction:row !important}.ion-flex-xl-row-reverse{flex-direction:row-reverse !important}.ion-flex-xl-column{flex-direction:column !important}.ion-flex-xl-column-reverse{flex-direction:column-reverse !important}}.ion-wrap{flex-wrap:wrap !important}.ion-nowrap{flex-wrap:nowrap !important}.ion-wrap-reverse{flex-wrap:wrap-reverse !important}.ion-flex-wrap{flex-wrap:wrap !important}.ion-flex-nowrap{flex-wrap:nowrap !important}.ion-flex-wrap-reverse{flex-wrap:wrap-reverse !important}@media(min-width: 576px){.ion-flex-sm-wrap{flex-wrap:wrap !important}.ion-flex-sm-nowrap{flex-wrap:nowrap !important}.ion-flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 768px){.ion-flex-md-wrap{flex-wrap:wrap !important}.ion-flex-md-nowrap{flex-wrap:nowrap !important}.ion-flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 992px){.ion-flex-lg-wrap{flex-wrap:wrap !important}.ion-flex-lg-nowrap{flex-wrap:nowrap !important}.ion-flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-wrap{flex-wrap:wrap !important}.ion-flex-xl-nowrap{flex-wrap:nowrap !important}.ion-flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}}.ion-flex-1{flex:1 !important}.ion-flex-auto{flex:auto !important}.ion-flex-initial{flex:initial !important}.ion-flex-none{flex:none !important}@media(min-width: 576px){.ion-flex-sm-1{flex:1 !important}.ion-flex-sm-auto{flex:auto !important}.ion-flex-sm-initial{flex:initial !important}.ion-flex-sm-none{flex:none !important}}@media(min-width: 768px){.ion-flex-md-1{flex:1 !important}.ion-flex-md-auto{flex:auto !important}.ion-flex-md-initial{flex:initial !important}.ion-flex-md-none{flex:none !important}}@media(min-width: 992px){.ion-flex-lg-1{flex:1 !important}.ion-flex-lg-auto{flex:auto !important}.ion-flex-lg-initial{flex:initial !important}.ion-flex-lg-none{flex:none !important}}@media(min-width: 1200px){.ion-flex-xl-1{flex:1 !important}.ion-flex-xl-auto{flex:auto !important}.ion-flex-xl-initial{flex:initial !important}.ion-flex-xl-none{flex:none !important}}.ion-flex-grow-0{flex-grow:0 !important}.ion-flex-grow-1{flex-grow:1 !important}.ion-flex-shrink-0{flex-shrink:0 !important}.ion-flex-shrink-1{flex-shrink:1 !important}@media(min-width: 576px){.ion-flex-sm-grow-0{flex-grow:0 !important}.ion-flex-sm-grow-1{flex-grow:1 !important}.ion-flex-sm-shrink-0{flex-shrink:0 !important}.ion-flex-sm-shrink-1{flex-shrink:1 !important}}@media(min-width: 768px){.ion-flex-md-grow-0{flex-grow:0 !important}.ion-flex-md-grow-1{flex-grow:1 !important}.ion-flex-md-shrink-0{flex-shrink:0 !important}.ion-flex-md-shrink-1{flex-shrink:1 !important}}@media(min-width: 992px){.ion-flex-lg-grow-0{flex-grow:0 !important}.ion-flex-lg-grow-1{flex-grow:1 !important}.ion-flex-lg-shrink-0{flex-shrink:0 !important}.ion-flex-lg-shrink-1{flex-shrink:1 !important}}@media(min-width: 1200px){.ion-flex-xl-grow-0{flex-grow:0 !important}.ion-flex-xl-grow-1{flex-grow:1 !important}.ion-flex-xl-shrink-0{flex-shrink:0 !important}.ion-flex-xl-shrink-1{flex-shrink:1 !important}}.ion-order-first{order:-1 !important}.ion-order-0{order:0 !important}.ion-order-1{order:1 !important}.ion-order-2{order:2 !important}.ion-order-3{order:3 !important}.ion-order-4{order:4 !important}.ion-order-5{order:5 !important}.ion-order-6{order:6 !important}.ion-order-7{order:7 !important}.ion-order-8{order:8 !important}.ion-order-9{order:9 !important}.ion-order-10{order:10 !important}.ion-order-11{order:11 !important}.ion-order-12{order:12 !important}.ion-order-last{order:13 !important}@media(min-width: 576px){.ion-order-sm-first{order:-1 !important}.ion-order-sm-0{order:0 !important}.ion-order-sm-1{order:1 !important}.ion-order-sm-2{order:2 !important}.ion-order-sm-3{order:3 !important}.ion-order-sm-4{order:4 !important}.ion-order-sm-5{order:5 !important}.ion-order-sm-6{order:6 !important}.ion-order-sm-7{order:7 !important}.ion-order-sm-8{order:8 !important}.ion-order-sm-9{order:9 !important}.ion-order-sm-10{order:10 !important}.ion-order-sm-11{order:11 !important}.ion-order-sm-12{order:12 !important}.ion-order-sm-last{order:13 !important}}@media(min-width: 768px){.ion-order-md-first{order:-1 !important}.ion-order-md-0{order:0 !important}.ion-order-md-1{order:1 !important}.ion-order-md-2{order:2 !important}.ion-order-md-3{order:3 !important}.ion-order-md-4{order:4 !important}.ion-order-md-5{order:5 !important}.ion-order-md-6{order:6 !important}.ion-order-md-7{order:7 !important}.ion-order-md-8{order:8 !important}.ion-order-md-9{order:9 !important}.ion-order-md-10{order:10 !important}.ion-order-md-11{order:11 !important}.ion-order-md-12{order:12 !important}.ion-order-md-last{order:13 !important}}@media(min-width: 992px){.ion-order-lg-first{order:-1 !important}.ion-order-lg-0{order:0 !important}.ion-order-lg-1{order:1 !important}.ion-order-lg-2{order:2 !important}.ion-order-lg-3{order:3 !important}.ion-order-lg-4{order:4 !important}.ion-order-lg-5{order:5 !important}.ion-order-lg-6{order:6 !important}.ion-order-lg-7{order:7 !important}.ion-order-lg-8{order:8 !important}.ion-order-lg-9{order:9 !important}.ion-order-lg-10{order:10 !important}.ion-order-lg-11{order:11 !important}.ion-order-lg-12{order:12 !important}.ion-order-lg-last{order:13 !important}}@media(min-width: 1200px){.ion-order-xl-first{order:-1 !important}.ion-order-xl-0{order:0 !important}.ion-order-xl-1{order:1 !important}.ion-order-xl-2{order:2 !important}.ion-order-xl-3{order:3 !important}.ion-order-xl-4{order:4 !important}.ion-order-xl-5{order:5 !important}.ion-order-xl-6{order:6 !important}.ion-order-xl-7{order:7 !important}.ion-order-xl-8{order:8 !important}.ion-order-xl-9{order:9 !important}.ion-order-xl-10{order:10 !important}.ion-order-xl-11{order:11 !important}.ion-order-xl-12{order:12 !important}.ion-order-xl-last{order:13 !important}}/*# sourceMappingURL=flex-utils.css.map */
.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-display-none{display:none !important}@media(min-width: 576px){.ion-display-sm-none{display:none !important}}@media(min-width: 768px){.ion-display-md-none{display:none !important}}@media(min-width: 992px){.ion-display-lg-none{display:none !important}}@media(min-width: 1200px){.ion-display-xl-none{display:none !important}}.ion-display-inline{display:inline !important}@media(min-width: 576px){.ion-display-sm-inline{display:inline !important}}@media(min-width: 768px){.ion-display-md-inline{display:inline !important}}@media(min-width: 992px){.ion-display-lg-inline{display:inline !important}}@media(min-width: 1200px){.ion-display-xl-inline{display:inline !important}}.ion-display-inline-block{display:inline-block !important}@media(min-width: 576px){.ion-display-sm-inline-block{display:inline-block !important}}@media(min-width: 768px){.ion-display-md-inline-block{display:inline-block !important}}@media(min-width: 992px){.ion-display-lg-inline-block{display:inline-block !important}}@media(min-width: 1200px){.ion-display-xl-inline-block{display:inline-block !important}}.ion-display-block{display:block !important}@media(min-width: 576px){.ion-display-sm-block{display:block !important}}@media(min-width: 768px){.ion-display-md-block{display:block !important}}@media(min-width: 992px){.ion-display-lg-block{display:block !important}}@media(min-width: 1200px){.ion-display-xl-block{display:block !important}}.ion-display-flex{display:flex !important}@media(min-width: 576px){.ion-display-sm-flex{display:flex !important}}@media(min-width: 768px){.ion-display-md-flex{display:flex !important}}@media(min-width: 992px){.ion-display-lg-flex{display:flex !important}}@media(min-width: 1200px){.ion-display-xl-flex{display:flex !important}}.ion-display-inline-flex{display:inline-flex !important}@media(min-width: 576px){.ion-display-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.ion-display-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.ion-display-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.ion-display-xl-inline-flex{display:inline-flex !important}}.ion-display-grid{display:grid !important}@media(min-width: 576px){.ion-display-sm-grid{display:grid !important}}@media(min-width: 768px){.ion-display-md-grid{display:grid !important}}@media(min-width: 992px){.ion-display-lg-grid{display:grid !important}}@media(min-width: 1200px){.ion-display-xl-grid{display:grid !important}}.ion-display-inline-grid{display:inline-grid !important}@media(min-width: 576px){.ion-display-sm-inline-grid{display:inline-grid !important}}@media(min-width: 768px){.ion-display-md-inline-grid{display:inline-grid !important}}@media(min-width: 992px){.ion-display-lg-inline-grid{display:inline-grid !important}}@media(min-width: 1200px){.ion-display-xl-inline-grid{display:inline-grid !important}}.ion-display-table{display:table !important}@media(min-width: 576px){.ion-display-sm-table{display:table !important}}@media(min-width: 768px){.ion-display-md-table{display:table !important}}@media(min-width: 992px){.ion-display-lg-table{display:table !important}}@media(min-width: 1200px){.ion-display-xl-table{display:table !important}}.ion-display-table-cell{display:table-cell !important}@media(min-width: 576px){.ion-display-sm-table-cell{display:table-cell !important}}@media(min-width: 768px){.ion-display-md-table-cell{display:table-cell !important}}@media(min-width: 992px){.ion-display-lg-table-cell{display:table-cell !important}}@media(min-width: 1200px){.ion-display-xl-table-cell{display:table-cell !important}}.ion-display-table-row{display:table-row !important}@media(min-width: 576px){.ion-display-sm-table-row{display:table-row !important}}@media(min-width: 768px){.ion-display-md-table-row{display:table-row !important}}@media(min-width: 992px){.ion-display-lg-table-row{display:table-row !important}}@media(min-width: 1200px){.ion-display-xl-table-row{display:table-row !important}}/*# sourceMappingURL=display.css.map */
@media(prefers-color-scheme: dark){:root{--ion-color-primary: #4d8dff;--ion-color-primary-rgb: 77, 141, 255;--ion-color-primary-contrast: #000;--ion-color-primary-contrast-rgb: 0, 0, 0;--ion-color-primary-shade: #447ce0;--ion-color-primary-tint: #5f98ff;--ion-color-secondary: #46b1ff;--ion-color-secondary-rgb: 70, 177, 255;--ion-color-secondary-contrast: #000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #3e9ce0;--ion-color-secondary-tint: #59b9ff;--ion-color-tertiary: #8482fb;--ion-color-tertiary-rgb: 132, 130, 251;--ion-color-tertiary-contrast: #000;--ion-color-tertiary-contrast-rgb: 0, 0, 0;--ion-color-tertiary-shade: #7472dd;--ion-color-tertiary-tint: #908ffb;--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: #ffce31;--ion-color-warning-rgb: 255, 206, 49;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0b52b;--ion-color-warning-tint: #ffd346;--ion-color-danger: #f24c58;--ion-color-danger-rgb: 242, 76, 88;--ion-color-danger-contrast: #000;--ion-color-danger-contrast-rgb: 0, 0, 0;--ion-color-danger-shade: #d5434d;--ion-color-danger-tint: #f35e69;--ion-color-light: #222428;--ion-color-light-rgb: 34, 36, 40;--ion-color-light-contrast: #fff;--ion-color-light-contrast-rgb: 255, 255, 255;--ion-color-light-shade: #1e2023;--ion-color-light-tint: #383a3e;--ion-color-medium: #989aa2;--ion-color-medium-rgb: 152, 154, 162;--ion-color-medium-contrast: #000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #86888f;--ion-color-medium-tint: #a2a4ab;--ion-color-dark: #f4f5f8;--ion-color-dark-rgb: 244, 245, 248;--ion-color-dark-contrast: #000;--ion-color-dark-contrast-rgb: 0, 0, 0;--ion-color-dark-shade: #d7d8da;--ion-color-dark-tint: #f5f6f9}:root.ios{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-background-color-step-50: #0d0d0d;--ion-background-color-step-100: #1a1a1a;--ion-background-color-step-150: #262626;--ion-background-color-step-200: #333333;--ion-background-color-step-250: #404040;--ion-background-color-step-300: #4d4d4d;--ion-background-color-step-350: #595959;--ion-background-color-step-400: #666666;--ion-background-color-step-450: #737373;--ion-background-color-step-500: #808080;--ion-background-color-step-550: #8c8c8c;--ion-background-color-step-600: #999999;--ion-background-color-step-650: #a6a6a6;--ion-background-color-step-700: #b3b3b3;--ion-background-color-step-750: #bfbfbf;--ion-background-color-step-800: #cccccc;--ion-background-color-step-850: #d9d9d9;--ion-background-color-step-900: #e6e6e6;--ion-background-color-step-950: #f2f2f2;--ion-text-color-step-50: #f2f2f2;--ion-text-color-step-100: #e6e6e6;--ion-text-color-step-150: #d9d9d9;--ion-text-color-step-200: #cccccc;--ion-text-color-step-250: #bfbfbf;--ion-text-color-step-300: #b3b3b3;--ion-text-color-step-350: #a6a6a6;--ion-text-color-step-400: #999999;--ion-text-color-step-450: #8c8c8c;--ion-text-color-step-500: #808080;--ion-text-color-step-550: #737373;--ion-text-color-step-600: #666666;--ion-text-color-step-650: #595959;--ion-text-color-step-700: #4d4d4d;--ion-text-color-step-750: #404040;--ion-text-color-step-800: #333333;--ion-text-color-step-850: #262626;--ion-text-color-step-900: #1a1a1a;--ion-text-color-step-950: #0d0d0d;--ion-item-background: #000000;--ion-tab-bar-background-focused: #252525;--ion-card-background: #1c1c1d}:root.ios ion-modal{--ion-background-color: var(--ion-color-step-100, var(--ion-background-color-step-100));--ion-toolbar-background: var(--ion-color-step-150, var(--ion-background-color-step-150));--ion-toolbar-border-color: var(--ion-color-step-250, var(--ion-background-color-step-250))}:root.md{--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-background-color-step-50: #1e1e1e;--ion-background-color-step-100: #2a2a2a;--ion-background-color-step-150: #363636;--ion-background-color-step-200: #414141;--ion-background-color-step-250: #4d4d4d;--ion-background-color-step-300: #595959;--ion-background-color-step-350: #656565;--ion-background-color-step-400: #717171;--ion-background-color-step-450: #7d7d7d;--ion-background-color-step-500: #898989;--ion-background-color-step-550: #949494;--ion-background-color-step-600: #a0a0a0;--ion-background-color-step-650: #acacac;--ion-background-color-step-700: #b8b8b8;--ion-background-color-step-750: #c4c4c4;--ion-background-color-step-800: #d0d0d0;--ion-background-color-step-850: #dbdbdb;--ion-background-color-step-900: #e7e7e7;--ion-background-color-step-950: #f3f3f3;--ion-text-color-step-50: #f3f3f3;--ion-text-color-step-100: #e7e7e7;--ion-text-color-step-150: #dbdbdb;--ion-text-color-step-200: #d0d0d0;--ion-text-color-step-250: #c4c4c4;--ion-text-color-step-300: #b8b8b8;--ion-text-color-step-350: #acacac;--ion-text-color-step-400: #a0a0a0;--ion-text-color-step-450: #949494;--ion-text-color-step-500: #898989;--ion-text-color-step-550: #7d7d7d;--ion-text-color-step-600: #717171;--ion-text-color-step-650: #656565;--ion-text-color-step-700: #595959;--ion-text-color-step-750: #4d4d4d;--ion-text-color-step-800: #414141;--ion-text-color-step-850: #363636;--ion-text-color-step-900: #2a2a2a;--ion-text-color-step-950: #1e1e1e;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-tab-bar-background-focused: #353535;--ion-card-background: #1e1e1e}}/*# sourceMappingURL=dark.system.css.map */
/* M17.3 Story Master visual system.
   The palette follows the dark navy / blue glass / warm gold direction from the approved mockup. */
:root {
  color-scheme: dark;

  --story-bg-0: #050b13;
  --story-bg-1: #07111d;
  --story-bg-2: #0a1625;
  --story-surface: #0c1a2a;
  --story-surface-2: #102238;
  --story-surface-3: #132b45;
  --story-border: #25547e;
  --story-border-soft: rgba(76, 145, 203, 0.3);
  --story-blue: #3f92ff;
  --story-blue-soft: #73b4ff;
  --story-gold: #e6b85d;
  --story-gold-soft: #f1d28b;
  --story-text: #eef5ff;
  --story-muted: #91a4bb;
  --story-danger: #ef4653;
  --story-success: #39c779;
  --story-shadow: 0 20px 55px rgba(0, 0, 0, 0.36);
  --story-panel-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);

  --ion-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ion-background-color: var(--story-bg-1);
  --ion-background-color-rgb: 7, 17, 29;
  --ion-text-color: var(--story-text);
  --ion-text-color-rgb: 238, 245, 255;
  --ion-card-background: var(--story-surface);
  --ion-item-background: transparent;
  --ion-toolbar-background: rgba(6, 15, 26, 0.96);
  --ion-toolbar-color: var(--story-text);
  --ion-border-color: var(--story-border-soft);

  --ion-color-primary: var(--story-blue);
  --ion-color-primary-rgb: 63, 146, 255;
  --ion-color-primary-contrast: #ffffff;
  --ion-color-primary-contrast-rgb: 255, 255, 255;
  --ion-color-primary-shade: #3780e0;
  --ion-color-primary-tint: #52a0ff;

  --ion-color-secondary: #50b7ff;
  --ion-color-secondary-rgb: 80, 183, 255;
  --ion-color-secondary-contrast: #04101e;
  --ion-color-secondary-contrast-rgb: 4, 16, 30;
  --ion-color-secondary-shade: #46a1e0;
  --ion-color-secondary-tint: #62beff;

  --ion-color-tertiary: #8e7cff;
  --ion-color-tertiary-rgb: 142, 124, 255;
  --ion-color-tertiary-contrast: #ffffff;
  --ion-color-tertiary-contrast-rgb: 255, 255, 255;
  --ion-color-tertiary-shade: #7d6de0;
  --ion-color-tertiary-tint: #9989ff;

  --ion-color-success: var(--story-success);
  --ion-color-success-rgb: 57, 199, 121;
  --ion-color-success-contrast: #06120b;
  --ion-color-success-contrast-rgb: 6, 18, 11;
  --ion-color-success-shade: #32af6a;
  --ion-color-success-tint: #4dcd87;

  --ion-color-warning: var(--story-gold);
  --ion-color-warning-rgb: 230, 184, 93;
  --ion-color-warning-contrast: #161006;
  --ion-color-warning-contrast-rgb: 22, 16, 6;
  --ion-color-warning-shade: #caa252;
  --ion-color-warning-tint: #e9bf6d;

  --ion-color-danger: var(--story-danger);
  --ion-color-danger-rgb: 239, 70, 83;
  --ion-color-danger-contrast: #ffffff;
  --ion-color-danger-contrast-rgb: 255, 255, 255;
  --ion-color-danger-shade: #d23e49;
  --ion-color-danger-tint: #f15964;

  --ion-color-dark: #07111d;
  --ion-color-dark-rgb: 7, 17, 29;
  --ion-color-dark-contrast: #ffffff;
  --ion-color-dark-contrast-rgb: 255, 255, 255;
  --ion-color-dark-shade: #060f1a;
  --ion-color-dark-tint: #202936;

  --ion-color-medium: #8ca0b8;
  --ion-color-medium-rgb: 140, 160, 184;
  --ion-color-medium-contrast: #07111d;
  --ion-color-medium-contrast-rgb: 7, 17, 29;
  --ion-color-medium-shade: #7b8da2;
  --ion-color-medium-tint: #98aabe;

  --ion-color-light: #15263a;
  --ion-color-light-rgb: 21, 38, 58;
  --ion-color-light-contrast: #eef5ff;
  --ion-color-light-contrast-rgb: 238, 245, 255;
  --ion-color-light-shade: #122133;
  --ion-color-light-tint: #2c3c4e;

  /* Ionic step colors are used by borders and inset backgrounds throughout the app. */
  --ion-color-step-50: #0a1420;
  --ion-color-step-100: #0d1926;
  --ion-color-step-150: #101e2d;
  --ion-color-step-200: #142437;
  --ion-color-step-250: #192b40;
  --ion-color-step-300: #20334a;
  --ion-color-step-350: #293c54;
  --ion-color-step-400: #34475f;
  --ion-color-step-450: #41536b;
  --ion-color-step-500: #506078;
  --ion-color-step-550: #607087;
  --ion-color-step-600: #718198;
  --ion-color-step-650: #8292a8;
  --ion-color-step-700: #94a4b8;
  --ion-color-step-750: #a7b6c8;
  --ion-color-step-800: #bac8d7;
  --ion-color-step-850: #ccd8e5;
  --ion-color-step-900: #dce6f0;
  --ion-color-step-950: #eef5ff;
}

html,
body {
  background: var(--story-bg-0);
}
/* M17.3 – Story Master visual redesign */

ion-app {
  background:
    radial-gradient(circle at 12% 6%, rgba(40, 99, 155, 0.16), transparent 28rem),
    radial-gradient(circle at 88% 100%, rgba(29, 74, 121, 0.18), transparent 34rem),
    var(--story-bg-0);
}

ion-button {
  font-weight: 680;
  letter-spacing: 0.015em;
}

ion-button[fill='outline'] {
  --border-color: rgba(67, 148, 231, 0.78);
  --color: var(--story-blue-soft);
  --background-hover: rgba(63, 146, 255, 0.09);
}

ion-card,
ion-list[inset] {
  box-shadow: var(--story-panel-shadow);
}

ion-item {
  --color: var(--story-text);
  --border-color: rgba(83, 140, 194, 0.2);
}

ion-input,
ion-textarea,
ion-select {
  --color: var(--story-text);
  --placeholder-color: #71859d;
  --highlight-color-focused: var(--story-blue);
}

ion-modal::part(content) {
  background: var(--story-bg-1);
}

ion-modal ion-toolbar {
  --background: #081421;
  --border-color: var(--story-border-soft);
}

@media (min-width: 760px) {
  ion-modal::part(content) {
    border: 1px solid rgba(52, 115, 173, 0.48);
    border-radius: 18px;
    box-shadow: var(--story-shadow);
    overflow: hidden;
  }
}

/* ---------- Login / setup ---------- */
.auth-content {
  --background:
    radial-gradient(circle at 18% 10%, rgba(39, 98, 158, 0.34), transparent 30rem),
    radial-gradient(circle at 82% 18%, rgba(16, 65, 111, 0.28), transparent 27rem),
    linear-gradient(145deg, #07111d 0%, #091827 46%, #040a12 100%);
}

.auth-content::part(scroll) {
  position: relative;
}

.auth-shell {
  min-height: 100%;
  display: grid;
  place-items: center;
  padding: 44px 18px;
  position: relative;
  isolation: isolate;
}

.auth-shell::before,
.auth-shell::after {
  content: '';
  position: fixed;
  z-index: -1;
  pointer-events: none;
  border-radius: 999px;
  filter: blur(2px);
}

.auth-shell::before {
  width: min(62vw, 760px);
  height: min(62vw, 760px);
  left: -22vw;
  bottom: -38vw;
  background: radial-gradient(circle, rgba(28, 97, 153, 0.26), rgba(8, 28, 48, 0) 68%);
}

.auth-shell::after {
  width: min(44vw, 620px);
  height: min(44vw, 620px);
  right: -18vw;
  top: -24vw;
  background: radial-gradient(circle, rgba(229, 184, 93, 0.09), rgba(8, 28, 48, 0) 68%);
}

.auth-stack {
  width: min(430px, 100%);
}

.auth-brand {
  display: grid;
  justify-items: center;
  text-align: center;
  margin: 0 0 24px;
  user-select: none;
}

.auth-brand-emblem {
  width: 76px;
  height: 76px;
  margin-bottom: 12px;
  border-radius: 20px;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.35), 0 0 24px rgba(230, 184, 93, 0.09);
}

.auth-brand h1 {
  margin: 5px 0 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.55rem, 9vw, 4rem);
  font-weight: 700;
  letter-spacing: 0.055em;
  line-height: 1;
  color: var(--story-gold-soft);
  text-transform: uppercase;
  text-shadow: 0 2px 22px rgba(230, 184, 93, 0.15);
}

.auth-brand-kicker {
  color: #8da6c0;
  font-size: 0.71rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.auth-brand-rule {
  width: min(260px, 72%);
  height: 1px;
  margin: 15px 0 10px;
  background: linear-gradient(90deg, transparent, var(--story-gold), transparent);
  position: relative;
}

.auth-brand-rule::after {
  content: '◆';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  padding: 0 8px;
  background: #091522;
  color: var(--story-gold);
  font-size: 0.55rem;
}

.auth-brand-subtitle {
  margin: 0;
  color: #a8b8ca;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 0.94rem;
  letter-spacing: 0.04em;
}

.auth-card {
  margin: 0;
  border: 1px solid rgba(61, 132, 197, 0.58);
  border-radius: 18px;
  background: linear-gradient(165deg, rgba(16, 35, 57, 0.96), rgba(7, 17, 29, 0.96));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.48), inset 0 1px rgba(255, 255, 255, 0.025);
  overflow: hidden;
}

.auth-card ion-card-header {
  padding-bottom: 8px;
  text-align: center;
}

.auth-card ion-card-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.42rem;
  color: var(--story-gold-soft);
  letter-spacing: 0.025em;
}

.auth-card ion-card-content {
  padding: 8px 20px 22px;
}

.auth-card ion-item {
  --background: rgba(5, 14, 24, 0.58);
  --border-color: rgba(68, 135, 199, 0.38);
  --padding-start: 13px;
  --inner-padding-end: 12px;
  margin: 10px 0;
  border: 1px solid rgba(68, 135, 199, 0.3);
  border-radius: 11px;
}

.auth-card ion-button[expand='block']:not([fill='clear']) {
  margin-top: 18px;
  min-height: 46px;
  --border-radius: 9px;
  --background: linear-gradient(180deg, #238aff, #1762bd);
  --box-shadow: 0 8px 24px rgba(18, 103, 190, 0.28);
}

.auth-center {
  min-height: 60vh;
  display: grid;
  place-items: center;
}

/* ---------- Account ---------- */
.account-content {
  --background:
    radial-gradient(circle at 100% 0%, rgba(44, 105, 164, 0.12), transparent 28rem),
    var(--story-bg-1);
}

.account-shell {
  width: min(100%, 680px);
  margin: 0 auto;
  display: grid;
  gap: 16px;
  padding-bottom: 28px;
}

.account-section,
.account-danger-zone {
  margin: 0;
  padding: 18px;
  border: 1px solid rgba(60, 124, 185, 0.4);
  border-radius: 15px;
  background: linear-gradient(155deg, rgba(16, 35, 56, 0.95), rgba(8, 21, 35, 0.95));
  box-shadow: var(--story-panel-shadow);
}

.account-section-heading {
  margin-bottom: 12px;
}

.account-section-heading h2,
.account-danger-zone h2 {
  margin: 3px 0 8px;
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--story-gold-soft);
  font-size: 1.16rem;
}

.account-section-kicker {
  color: var(--story-blue-soft);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.account-section ion-item,
.account-danger-zone ion-item {
  --background: rgba(5, 14, 24, 0.56);
  margin: 9px 0;
  border: 1px solid rgba(72, 135, 193, 0.28);
  border-radius: 10px;
}

.account-danger-zone {
  border-color: rgba(var(--ion-color-danger-rgb), 0.55);
  background: linear-gradient(155deg, rgba(54, 15, 24, 0.27), rgba(14, 19, 28, 0.96));
}

.account-danger-zone h2 {
  color: #ff737e;
}

.account-danger-zone p {
  margin: 0 0 14px;
  color: #aeb9c6;
  line-height: 1.5;
}

.account-danger-zone ion-button {
  margin-top: 12px;
}

.account-close-button {
  margin-top: 0;
}

@media (max-width: 520px) {
  .auth-shell {
    padding: 28px 4px;
  }

  .auth-brand-emblem {
    width: 62px;
    height: 62px;
  }

  .auth-brand h1 {
    font-size: clamp(2.15rem, 12vw, 3rem);
  }

  .auth-card ion-card-content {
    padding-inline: 15px;
  }

  .account-section,
  .account-danger-zone {
    padding: 14px;
  }
}

/* Ionic overlays inherit the same dark Story Master surfaces. */
ion-popover {
  --background: #0b1a2a;
  --color: var(--story-text);
  --box-shadow: 0 18px 46px rgba(0, 0, 0, 0.46);
}

ion-popover ion-content,
ion-popover ion-list,
ion-popover ion-item {
  --background: #0b1a2a;
  background: #0b1a2a;
}

ion-loading,
ion-alert,
ion-action-sheet {
  --background: #0b1a2a;
  --color: var(--story-text);
}
.response-length-launcher {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 10020;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  padding: 9px 14px;
  background: var(--ion-color-primary, #3880ff);
  color: var(--ion-color-primary-contrast, #fff);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
  cursor: pointer;
}

body:has(.auth-content) .response-length-launcher {
  display: none;
}

.response-length-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10030;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.58);
}

.response-length-dialog {
  width: min(760px, 100%);
  max-height: min(780px, calc(100vh - 40px));
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  padding: 20px;
  background: var(--ion-background-color, #111);
  color: var(--ion-text-color, #fff);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
}

.response-length-dialog > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.response-length-dialog h2 {
  margin: 0 0 5px;
  font-size: 22px;
}

.response-length-dialog p {
  margin: 0;
  opacity: 0.8;
}

.response-length-close {
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.response-length-error {
  margin-bottom: 14px !important;
  color: var(--ion-color-danger, #eb445a);
}

.response-length-list {
  display: grid;
  gap: 12px;
}

.response-length-card {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(120px, 150px) minmax(120px, 150px) auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  border: 1px solid rgba(127, 127, 127, 0.28);
  border-radius: 12px;
}

.response-length-profile {
  display: grid;
  gap: 4px;
  align-self: center;
}

.response-length-profile span {
  font-size: 13px;
  opacity: 0.7;
}

.response-length-card label {
  display: grid;
  gap: 5px;
  font-size: 13px;
}

.response-length-card label small {
  opacity: 0.65;
}

.response-length-card input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(127, 127, 127, 0.45);
  border-radius: 8px;
  padding: 9px 10px;
  background: transparent;
  color: inherit;
  font: inherit;
}

.response-length-card button {
  border: 0;
  border-radius: 8px;
  padding: 10px 14px;
  background: var(--ion-color-primary, #3880ff);
  color: var(--ion-color-primary-contrast, #fff);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.response-length-card button:disabled {
  opacity: 0.6;
  cursor: default;
}

.response-length-dialog footer {
  margin-top: 16px;
  opacity: 0.7;
}

@media (max-width: 680px) {
  .response-length-card {
    grid-template-columns: 1fr 1fr;
  }

  .response-length-profile {
    grid-column: 1 / -1;
  }

  .response-length-card button {
    grid-column: 1 / -1;
  }

  .response-length-launcher {
    right: 12px;
    bottom: 12px;
  }
}
