/* Appearance is independent from account content controls and chat ambience. */
:root[data-theme="dawn"] {
    color-scheme: light;
    --page-backdrop: linear-gradient(155deg, rgb(210 190 219 / 18%), rgb(232 202 219 / 28%) 52%, rgb(208 219 220 / 24%)), url('./dream-sunny-aurora-v2.webp') center top / cover no-repeat;
    --member-backdrop: linear-gradient(100deg, rgb(244 231 238 / 12%), rgb(234 221 237 / 5%)), url('./dream-sunny-member-v2.webp') center / cover no-repeat;
    --header-surface: rgb(234 221 237 / 95%);
    --on-cta: #FFF4F8;
    --card-art-url: url('./dream-card-texture-dawn-v1.webp');
    --card-art-blend: screen; --panel-art-blend: screen;
}
:root, :root[data-theme="classic"], :root[data-theme="dusk"] {
    color-scheme: dark;
    --ink: #FFF2F8; --muted: #D8BDD9; --violet: #E9B7E9; --purple: var(--violet);
    --pink: #F2BAA3; --warm: #F2BAA3; --cta-purple: #965097; --cta-pink: #A64278;
    --sky: #493151; --mist: #241B37; --surface: #3A2948; --surface-soft: #493151; --input: #2D213E;
    --card-border: #8F739B; --focus-ring: #F2BAA3; --danger: #FF9FB2; --success: #8DE2C2;
    --shadow-card: 0 4px 20px rgb(17 10 29 / 24%); --shadow-raised: 0 16px 44px rgb(17 10 29 / 48%);
    --page-backdrop: linear-gradient(180deg, rgb(36 27 55 / 78%), rgb(36 27 55 / 88%)), url('./dream-dusk-aurora-v1.webp') center top / cover no-repeat;
    --member-backdrop: linear-gradient(100deg, rgb(45 33 62 / 16%), rgb(58 41 72 / 8%)), url('./dream-dusk-member-v1.webp') center / cover no-repeat;
    --header-surface: rgb(45 33 62 / 96%);
}
:root[data-theme="dusk"] { --card-art-url: url('./dream-card-texture-dusk-v1.webp'); --card-art-blend: screen; --panel-art-blend: multiply; }
:root:not([data-theme]), :root[data-theme="classic"] { --card-art-url: none; }
:root[data-theme="night"] {
    --card-art-url: url('./dream-card-texture-night-v1.webp');
    --card-art-blend: multiply; --panel-art-blend: multiply;
    color-scheme: dark;
    --ink: #F5F0FF; --muted: #C9BFD8; --violet: #C8ABEB; --purple: var(--violet);
    --pink: #E0B7D3; --warm: #E5C7B5; --cta-purple: #6F4D86; --cta-pink: #844A70;
    --sky: #303046; --mist: #171722; --surface: #242434; --surface-soft: #303046; --input: #1D1D2C;
    --card-border: #756B8B; --focus-ring: #C8ABEB; --danger: #FFB0C1; --success: #A2DEC5;
    --shadow-card: 0 4px 20px rgb(0 0 0 / 20%); --shadow-raised: 0 16px 44px rgb(0 0 0 / 44%);
    --page-backdrop: linear-gradient(160deg, rgb(23 23 34 / 22%), rgb(23 23 34 / 34%)), url('./dream-night-aurora-v1.webp') center top / cover no-repeat;
    --member-backdrop: linear-gradient(100deg, rgb(23 23 34 / 10%), rgb(23 23 34 / 5%)), url('./dream-night-member-v1.webp') center / cover no-repeat;
    --header-surface: rgb(29 29 44 / 96%);
}
:root[data-theme] .dream-background,
:root[data-theme] body.dream-legal-body,
:root[data-theme] body.adult-management-page,
:root[data-theme] body.not-found-body { background: var(--page-backdrop); background-color: var(--mist); }
:root[data-theme] .member-profile-card { background: var(--member-backdrop); }
:root[data-theme="dawn"] .member-profile-card {
    --ink: #392741; --muted: #503A57; --violet: #573767; --input: #F4E7EE; --surface-soft: #DDC8E5; --card-border: #AA88B7;
}
:root[data-theme="dawn"] .member-profile-card .member-identity-copy,
:root[data-theme="dawn"] .member-profile-card .member-meta-grid { background: rgb(244 231 238 / 94%); }
:root[data-theme="night"] .member-profile-card { --ink: #F5F0FF; --muted: #C9BFD8; --violet: #C8ABEB; --input: #1D1D2C; --surface-soft: #303046; --card-border: #756B8B; }
:root[data-theme="night"] .member-profile-card .member-identity-copy,
:root[data-theme="night"] .member-profile-card .member-meta-grid { background: #1D1D2C; }
:root[data-theme="classic"] .auth-card,
:root[data-theme="dusk"] .auth-card,
:root[data-theme="night"] .auth-card,
:root[data-theme="classic"] .member-profile-editor,
:root[data-theme="dusk"] .member-profile-editor,
:root[data-theme="night"] .member-profile-editor,
:root[data-theme="classic"] .member-safety-filter,
:root[data-theme="dusk"] .member-safety-filter,
:root[data-theme="night"] .member-safety-filter,
:root[data-theme="classic"] .member-language-card,
:root[data-theme="dusk"] .member-language-card,
:root[data-theme="night"] .member-language-card,
:root[data-theme="classic"] .member-profile-sheet,
:root[data-theme="dusk"] .member-profile-sheet,
:root[data-theme="night"] .member-profile-sheet,
:root[data-theme="classic"] .member-feature-card,
:root[data-theme="dusk"] .member-feature-card,
:root[data-theme="night"] .member-feature-card,
:root[data-theme="classic"] .dream-creator__panel,
:root[data-theme="dusk"] .dream-creator__panel,
:root[data-theme="night"] .dream-creator__panel,
:root[data-theme="classic"] .detail-content,
:root[data-theme="dusk"] .detail-content,
:root[data-theme="night"] .detail-content { background: linear-gradient(145deg, var(--surface-soft), var(--surface)); }
/* Native character details continue over the page artwork, not an opaque card. */
:root[data-theme] .detail-content { background: transparent; }
:root[data-theme="classic"] .member-message-row,
:root[data-theme="dusk"] .member-message-row,
:root[data-theme="night"] .member-message-row,
:root[data-theme="classic"] .dream-creator__saved-role,
:root[data-theme="dusk"] .dream-creator__saved-role,
:root[data-theme="night"] .dream-creator__saved-role { background: var(--surface); }
:root[data-theme="dusk"] .explore-card { --role-card-start: #F2CCC4; --role-card-end: #EAB6C5; }
:root[data-theme="dusk"] .explore-card:nth-child(4n + 2) { --role-card-start: #EBC4D8; --role-card-end: #DDA8C8; }
:root[data-theme="dusk"] .explore-card:nth-child(4n + 3) { --role-card-start: #F1C5BF; --role-card-end: #DFA6BB; }
:root[data-theme="dusk"] .explore-card:nth-child(4n + 4) { --role-card-start: #DECAE8; --role-card-end: #C4ACD8; }
:root[data-theme="night"] .explore-card { --role-card-start: #302B42; --role-card-end: #242434; }
:root[data-theme="night"] .explore-card:nth-child(4n + 2) { --role-card-start: #3B2B3C; --role-card-end: #272331; }
:root[data-theme="night"] .explore-card:nth-child(4n + 3) { --role-card-start: #243C3B; --role-card-end: #202C31; }
:root[data-theme="night"] .explore-card:nth-child(4n + 4) { --role-card-start: #302D45; --role-card-end: #252435; }
:root[data-theme="night"] .explore-card h2, :root[data-theme="night"] .explore-card__body { color: var(--ink); }
:root[data-theme="night"] .explore-card__body > p { color: var(--muted); }
:root[data-theme="night"] .explore-card__tags li { background: var(--input); color: var(--violet); border-color: var(--card-border); }
:root[data-theme="classic"] .mobile-navigation,
:root[data-theme="dusk"] .mobile-navigation, :root[data-theme="night"] .mobile-navigation { background: var(--header-surface); }
:root[data-theme="classic"] .ai-processing-status,
:root[data-theme="dusk"] .ai-processing-status, :root[data-theme="night"] .ai-processing-status { background: #293E3B; }

/* A real radio group keeps keyboard and assistive technology interaction native. */
.interface-style-card { margin-block: 16px; padding: 16px; border: 1px solid var(--card-border); border-radius: var(--radius-card, 20px); background: var(--surface); box-shadow: var(--shadow-card); }
.interface-style-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.interface-style-options legend { margin-block-end: 12px; padding: 0; color: var(--ink); font-weight: 600; }
.interface-style-choice { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-inline-size: 0; min-block-size: 48px; padding: 10px; border: 2px solid var(--card-border); border-radius: 14px; background: var(--input); color: var(--ink); cursor: pointer; font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; }
.interface-style-choice input { inline-size: 20px; block-size: 20px; margin: 0; accent-color: var(--violet); }
.interface-style-choice:has(input:checked) { border-color: var(--violet); box-shadow: 0 0 0 1px var(--violet); }
.interface-style-choice:has(input:focus-visible) { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.interface-style-swatch { display: flex; min-block-size: 42px; align-items: end; justify-content: center; gap: 5px; padding: 7px; border-radius: 9px; background: linear-gradient(135deg, rgb(210 190 219 / 14%), rgb(242 214 204 / 18%)), url('./dream-sunny-aurora-v2.webp') center / cover; }
.interface-style-swatch i { display: block; inline-size: 24%; block-size: 20px; border-radius: 4px; background: #E8CEDF; }
.interface-style-swatch i:nth-child(2) { background: #C4D8D2; }
.interface-style-swatch i:nth-child(3) { background: #DDCEE9; }
.interface-style-swatch--dusk { background: url('./dream-dusk-aurora-v1.webp') center / cover; }
.interface-style-swatch--dusk i { background: #F2CCC4; }
.interface-style-swatch--dusk i:nth-child(2) { background: #DDA8C8; }
.interface-style-swatch--dusk i:nth-child(3) { background: #C4ACD8; }
.interface-style-swatch--night { background: url('./dream-night-aurora-v1.webp') center / cover; }
.interface-style-swatch--night i { background: #3B2B3C; }
.interface-style-swatch--night i:nth-child(2) { background: #243C3B; }
.interface-style-swatch--night i:nth-child(3) { background: #302D45; }
@media (max-width: 359px) { .interface-style-options { gap: 8px; } .interface-style-choice { padding: 8px; } }

/* Changing interface style never changes saved chat artwork or ambience values. */
:root[data-theme="dawn"] .dream-chat-view { color: var(--dream-ink); background: var(--page-backdrop); }
:root[data-theme="dusk"] .dream-chat-view { background: linear-gradient(180deg, rgb(36 27 55 / 50%), rgb(36 27 55 / 88%)), url('./dream-dusk-aurora-v1.webp') center / cover no-repeat, #241B37; }
:root[data-theme="night"] .dream-chat-view { background: var(--page-backdrop); }
:root[data-theme] .dream-chat-header { border-radius: 14px; background: var(--header-surface); }
:root[data-theme] .dream-chat-title { color: var(--ink); }
:root[data-theme] .dream-chat-back, :root[data-theme] .dream-chat-reading-open, :root[data-theme] .dream-chat-tools-open, :root[data-theme] .dream-chat-memory-open { color: var(--ink); background: var(--input); border-color: var(--card-border); }
:root[data-theme="dawn"] .dream-chat-message--assistant .dream-chat-bubble { background: #F2D6CC; }
:root[data-theme="dawn"] .dream-chat-message--assistant .dream-chat-bubble--dialogue { background: #F4E0D9; }
:root[data-theme="dawn"] .dream-chat-thought { background: #E8CEDF; }
:root[data-theme="dawn"] .dream-chat-message--assistant .dream-chat-part--narrative { color: #FFF2F8; background: transparent; text-shadow: 0 1px 3px rgb(12 8 23 / 96%), 0 0 8px rgb(12 8 23 / 82%); }
:root[data-theme="dawn"] .dream-chat-message__billing { color: #503A57; background: rgb(244 231 238 / 96%); text-shadow: none; border-radius: 8px; }
:root[data-theme="dusk"] .dream-chat-view[data-chat-backdrop="soft"] { --dream-chat-tone: rgb(73 49 81 / 32%); }
:root[data-theme="night"] .dream-chat-view[data-chat-backdrop="soft"] { --dream-chat-tone: rgb(29 29 44 / 48%); }
:root[data-theme="dawn"] .dream-chat-view[data-chat-backdrop="soft"] { --dream-chat-tone: rgb(244 224 217 / 54%); }
:root[data-theme] .dream-chat-view[data-chat-backdrop="dusk"] { background: linear-gradient(180deg, #654259, #282238); }
:root[data-theme] .dream-chat-view[data-chat-backdrop="night"] { background: #141a2b; }
:root[data-theme] .dream-chat-view[data-chat-dimness="dim"] { background-color: #11101a; }

:root[data-theme="dusk"] .explore-card h2, :root[data-theme="dusk"] .explore-card__body { color: #392741; }
:root[data-theme="dusk"] .explore-card__body > p { color: #503A57; }
:root[data-theme="dusk"] .explore-card__tags li { background: rgb(255 244 248 / 68%); color: #573767; border-color: #AA88B7; }


:root[data-theme="dawn"] .dream-chat-view[data-reading-layout="novel"] .dream-chat-message--user .dream-chat-bubble { background: #80518D; color: #FFF4F8; border-radius: 14px; padding: 12px; text-shadow: none; }

:root[data-theme] body.dream-chat-body, :root[data-theme] .dream-chat-page { background-color: var(--mist); color: var(--ink); }

/* The retained original version intentionally keeps its uniform deep-plum cards. */
:root[data-theme="classic"] .explore-card { --role-card-start: #3A2948; --role-card-end: #3A2948; }
:root[data-theme="classic"] .explore-card h2, :root[data-theme="classic"] .explore-card__body { color: #FFF2F8; }
:root[data-theme="classic"] .explore-card__body > p { color: #D8BDD9; }
:root[data-theme="classic"] .explore-card__tags li { background: #2D213E; color: #E9B7E9; border-color: #8F739B; }
:root[data-theme="classic"] .dream-chat-view { background: linear-gradient(180deg, rgb(36 27 55 / 50%), rgb(36 27 55 / 88%)), url('./dream-dusk-aurora-v1.webp') center / cover no-repeat, #241B37; }
:root[data-theme="classic"] .dream-chat-view[data-chat-backdrop="soft"] { --dream-chat-tone: rgb(73 49 81 / 32%); }
:root[data-theme="classic"] .dream-chat-view[data-chat-backdrop="dusk"] { background: linear-gradient(180deg, #654259, #282238); }
:root[data-theme="classic"] .dream-chat-view[data-chat-backdrop="night"] { background: #141a2b; }
.interface-style-swatch--classic { background: url('./dream-dusk-aurora-v1.webp') center / cover; }
.interface-style-swatch--classic i, .interface-style-swatch--classic i:nth-child(2), .interface-style-swatch--classic i:nth-child(3) { background: #3A2948; }

/* Decorative texture is composited behind content; no interaction or clipping layer. */
:root[data-theme] .explore-card, :root[data-theme] .interface-style-card,
:root[data-theme] .member-language-card, :root[data-theme] .member-feature-card { position: relative; isolation: isolate; }
:root[data-theme] .explore-card::before, :root[data-theme] .interface-style-card::before,
:root[data-theme] .member-language-card::before, :root[data-theme] .member-feature-card::before {
    content: ""; position: absolute; z-index: -1; inset: 0; border-radius: inherit;
    pointer-events: none; background: var(--card-art-url) center / cover no-repeat;
    opacity: .24; mix-blend-mode: var(--panel-art-blend);
}
:root[data-theme] .explore-card::before { mix-blend-mode: var(--card-art-blend); }
:root[data-theme="dusk"] .member-message-list .member-message-row,
:root[data-theme="classic"] .member-message-list .member-message-row,
:root[data-theme="night"] .member-message-list .member-message-row { background: var(--surface); }

/* Stable full-region surfaces remain readable over every independent chat backdrop. */
:root[data-theme] .dream-chat-empty, :root[data-theme] .dream-chat-starters {
    color: var(--ink); background: var(--surface); border: 1px solid var(--card-border); border-radius: 14px;
}
:root[data-theme] .dream-chat-empty__title { color: var(--ink); background: transparent; }
:root[data-theme] .dream-chat-empty__body, :root[data-theme] .dream-chat-starters__title,
:root[data-theme] .dream-chat-starters__fallback { color: var(--muted); }
:root[data-theme] .dream-chat-starters { padding: 12px; }
:root[data-theme] .dream-chat-starters__chip { min-block-size: 48px; border-color: var(--card-border); color: var(--ink); background: var(--input); }
:root[data-theme] .dream-chat-opening-locale { color: var(--muted); background: var(--surface); border-radius: 8px; padding: 4px 8px; text-shadow: none; }
:root[data-theme] .dream-chat-pack-choice { color: var(--ink); background: var(--surface); border-color: var(--card-border); }
:root[data-theme] .dream-chat-pack-choice__body { color: var(--muted); }
:root[data-theme] .dream-chat-pack-choice__cancel { color: var(--ink); background: var(--input); border-color: var(--card-border); }
