/* Quimika · Compatibilidad de color y paleta global azul cielo. */
.q-member:where(body.q-app, body.q-app *) {
    background: #182832
}
.q-member-no-photo:where(body.q-app, body.q-app *) {
    background: linear-gradient(145deg, #385c73, #131f27)
}
.q-member-tag:where(body.q-app, body.q-app *) {
    background: rgba(9,15,19, .5)
}
.controls .view-btn[aria-pressed="true"]:where(body.q-app, body.q-app *) {
    border-color: var(--purple, #69b8ea);
    background: var(--purple, #69b8ea)
}
@media (max-width: 768px) {
    nav.bottom-nav:where(body.q-app, body.q-app *) {
        background: #111c22
    }
    nav.bottom-nav > a:where(body.q-app, body.q-app *) {
        color: #b8cfdd
    }
    nav.bottom-nav > a.active:where(body.q-app, body.q-app *),
    nav.bottom-nav > a[aria-current="page"]:where(body.q-app, body.q-app *) {
        background: rgba(123,193,236, 0.16)
    }
    nav.bottom-nav > a:focus-visible:where(body.q-app, body.q-app *) {
        outline: 2px solid #a2d3f2
    }
}
.mp-page:where(body.q-app, body.q-app *) {
    --mp-accent: #5085a5;
    --mp-accent-soft: #e7f3fa;
    --mp-border: var(--stroke, #dbe6ed);
    --mp-text: var(--text, #1b2d38);
    --mp-muted: var(--muted, #4c7f9e)
}
html[data-theme="dark"] .mp-page:where(body.q-app, body.q-app *) {
    --mp-accent: #b1d7ee;
    --mp-accent-soft: #1f3441
}
.mp-page .mp-photo:where(body.q-app, body.q-app *) {
    background: var(--surface, #e9f4fa)
}
.mp-photo-edit:where(body.q-app, body.q-app *) {
    color: #1f3340;
    box-shadow: 0 2px 12px #131f2722
}
.mp-photo-edit:hover:where(body.q-app, body.q-app *) {
    background: #e7f3fa
}
html[data-theme="dark"] .mp-page .mp-button-primary:where(body.q-app, body.q-app *) {
    color: #16252e
}
.mp-details > summary:hover:where(body.q-app, body.q-app *) {
    background: var(--surface, #e9f4fa)
}
body[data-page="mis_fotos"]:where(body.q-app, body.q-app *) {
    --qf-bg: #f7fbfd;
    --qf-ink: #1f3441;
    --qf-muted: #4d809f;
    --qf-line: #dbecf7;
    --qf-soft: #ecf5fb;
    --qf-brand: #3d80aa;
    --qf-brand-dark: #27668d;
    --qf-pink: #a9c8dc
}
html[data-theme="dark"] body[data-page="mis_fotos"]:where(body.q-app, body.q-app *) {
    --qf-bg: #0d151a;
    --qf-paper: #142129;
    --qf-ink: #ebf5fb;
    --qf-muted: #9ebdd0;
    --qf-line: #243d4c;
    --qf-soft: #1a2c37;
    --qf-brand: #8ac0e1;
    --qf-brand-dark: #9bccea
}
.qf-art-card:where(body.q-app, body.q-app *) {
    box-shadow: 0 14px 30px #203e5115
}
.qf-art-back:where(body.q-app, body.q-app *) {
    background: linear-gradient(145deg,#83abc3,#e0eff8)
}
.qf-art-front:where(body.q-app, body.q-app *) {
    background: linear-gradient(145deg,#f2d9d9,#b6cddc);
    color: #467592
}
.qf-art-front span:where(body.q-app, body.q-app *) {
    color: #315267
}
body[data-page="mis_fotos"] .qf-dropzone:where(body.q-app, body.q-app *) {
    border: 1.5px dashed #b7d0df
}
body[data-page="mis_fotos"] #btn_seleccionar_fotos:where(body.q-app, body.q-app *) {
    background: #3d80aa
}
.qf-dialog:where(body.q-app, body.q-app *),.qf-small-dialog:where(body.q-app, body.q-app *) {
    box-shadow: 0 26px 90px #0b12164d
}
.qf-dialog:where(body.q-app, body.q-app *)::backdrop,.qf-small-dialog:where(body.q-app, body.q-app *)::backdrop {
    background: #111c22b8
}
.qf-queue small:where(body.q-app, body.q-app *) {
    color: #2d6080
}
.qf-stage:where(body.q-app, body.q-app *) {
    background: #192a35;
    box-shadow: 0 5px 20px #0f191f20
}
.qf-ratio:where(body.q-app, body.q-app *) {
    background: #15232c66
}
.qf-stage-caption:where(body.q-app, body.q-app *) {
    background: linear-gradient(transparent,#14222bb3)
}
.qf-primary:where(body.q-app, body.q-app *) {
    background: #3d80aa
}
.qf-primary:hover:where(body.q-app, body.q-app *) {
    background: #27668d
}
.qf-review-grid span:where(body.q-app, body.q-app *) {
    background: linear-gradient(transparent,#14222bb3)
}
html[data-theme="light"] body[data-page="mis_fotos"]:where(body.q-app, body.q-app *) {
    --mf-bg: #f3f9fd;
    --mf-soft: #f4f9fd;
    --mf-input: #fbfdfe;
    --mf-text: #1a2c37;
    --mf-muted: #4a7b99;
    --mf-border: #d6eaf6;
    --mf-pink: #4189b6;
    --mf-accent: #4688b1;
    --mf-accent-bg: #eaf4fa;
    --mf-progress-track: #deeef8;
    --mf-shadow: 0 14px 45px rgba(32,54,67, .07)
}
html[data-theme="dark"] body[data-page="mis_fotos"]:where(body.q-app, body.q-app *) {
    --mf-bg: #0c1419;
    --mf-card: #14222a;
    --mf-soft: #1b2c37;
    --mf-input: #111c22;
    --mf-text: #f5fafd;
    --mf-muted: #a4c1d3;
    --mf-border: #2b4759;
    --mf-pink: #a1d3f2;
    --mf-accent: #abd7f3;
    --mf-accent-bg: #213643;
    --mf-progress-track: #213846;
    --mf-danger-bg: #223846
}
body[data-page="mis_fotos"] .fotos-progreso-barra:where(body.q-app, body.q-app *) {
    background: linear-gradient(90deg, #78bfec, #7ac0ec)
}
html[data-theme="light"] body[data-page="mis_intereses"]:where(body.q-app, body.q-app *) {
    --it-bg: #f4f9fd;
    --it-raised: #f6fafd;
    --it-soft: #edf6fb;
    --it-border: #dde8ee;
    --it-text: #172731;
    --it-muted: #44708c;
    --it-accent: #539cca;
    --it-accent-soft: #e9f4fa;
    --it-accent-text: #3480b0;
    --it-focus: rgba(83,156,202,.22);
    --it-shadow: 0 18px 45px rgba(29,48,60,.07)
}
html[data-theme="dark"] body[data-page="mis_intereses"]:where(body.q-app, body.q-app *) {
    --it-bg: #0c1419;
    --it-surface: #14222a;
    --it-raised: #1b2d38;
    --it-soft: #182731;
    --it-text: #f5fafd;
    --it-muted: #a4c1d3;
    --it-accent: #a8d6f3;
    --it-accent-soft: #233a48;
    --it-accent-text: #ddeef8;
    --it-focus: rgba(168,214,243,.26)
}
body[data-page="mis_intereses"] .intereses-guardar:not(:disabled):where(body.q-app, body.q-app *) {
    background: #539cca;
    border-color: #539cca
}
body[data-page="mis_intereses"] .intereses-guardar:not(:disabled):hover:where(body.q-app, body.q-app *) {
    background: #428bb8;
    border-color: #428bb8
}
.q-profile-action:where(body.q-app, body.q-app *) {
    border: 1px solid #dae6ed;
    color: #416c87
}
.q-profile-action:focus-visible:where(body.q-app, body.q-app *), .q-profile-dialog button:focus-visible:where(body.q-app, body.q-app *) {
    outline: 3px solid #80b4d4
}
.q-profile-action--chat:where(body.q-app, body.q-app *) {
    color: #518db2;
    background: #f3f9fc;
    border-color: #d6e9f4
}
.q-profile-block-status:where(body.q-app, body.q-app *) {
    color: #487997
}
html[data-theme="dark"] .q-profile-block-status:where(body.q-app, body.q-app *) {
    color: #a5c2d4
}
.q-profile-dialog:where(body.q-app, body.q-app *) {
    border: 1px solid #d7ebf7;
    color: #1f3441;
    box-shadow: 0 24px 90px #14222b38
}
.q-profile-dialog:where(body.q-app, body.q-app *)::backdrop {
    background: #0f191fa8
}
.q-profile-dialog-note:where(body.q-app, body.q-app *) {
    color: #487997
}
html[data-theme="dark"] .q-profile-action:where(body.q-app, body.q-app *) {
    background: #16252f;
    border-color: #2c495b
}
html[data-theme="dark"] .q-profile-action--chat:where(body.q-app, body.q-app *) {
    color: #b9def5
}
html[data-theme="dark"] .q-profile-dialog:where(body.q-app, body.q-app *) {
    background: #16252f;
    color: #ebf5fb;
    border-color: #305063
}
html[data-theme="dark"] .q-profile-dialog-symbol:where(body.q-app, body.q-app *) {
    background: #213745
}
html[data-theme="dark"] .q-profile-dialog-note:where(body.q-app, body.q-app *) {
    color: #a5c2d4
}
:root:where(body.q-app, body.q-app *),
:root[data-theme="light"]:where(body.q-app, body.q-app *) {
    --bg: #f4f9fd;
    --surface: #e9f4fa;
    --stroke: rgba(27,44,55, 0.12);
    --text: #1b2d38;
    --muted: #4c7f9e;
    --pink: #458fbd;
    --purple: #5498c3;
    --sidebar-text: #44708c;
    --sidebar-active-bg: #e5f2fa;
    --sidebar-active-text: #3e6780;
    --card-image-bg: #ddeef8;
    --input-text: #1b2d38;
    --input-placeholder: #78a3be;
    --control-bg: #eaf4fa;
    --control-text: #305063;
    --button-secondary-bg: #eaf4fa;
    --button-secondary-text: #284354;
    --tag-bg: #e5f2fa;
    --tag-text: #44718d;
    --notice-bg: #eef7fc;
    --notice-text: #426d88;
    --nav-text: #4c7f9e;
    --nav-active: #508fb6;
    --nav-active-bg: rgba(161,210,242, 0.12);
    --overlay-bg: rgba(11,18,22, 0.93);
    --page-glow: rgba(183,219,241, 0.17)
}
:root[data-theme="dark"]:where(body.q-app, body.q-app *) {
    --bg: #0c1419;
    --panel: #14222a;
    --surface: #1b2c37;
    --text: #f5fafd;
    --muted: #96b7cc;
    --pink: #a1d2f2;
    --purple: #87c6ee;
    --sidebar-bg: #0f1920;
    --sidebar-text: #adc7d7;
    --sidebar-active-bg: #284354;
    --card-bg: #16242d;
    --card-image-bg: #243c4b;
    --input-bg: #1a2c37;
    --input-placeholder: #96b7cc;
    --control-bg: #1b2c37;
    --control-text: #cfe0eb;
    --button-secondary-bg: #203643;
    --tag-bg: #233b4a;
    --tag-text: #dfeef8;
    --notice-bg: #203643;
    --notice-text: #dcedf8;
    --nav-bg: rgba(15,25,32, 0.96);
    --nav-text: #a7c3d5;
    --nav-active: #a1d3f2;
    --nav-active-bg: rgba(161,210,242, 0.10);
    --overlay-bg: rgba(11,18,22, 0.94);
    --page-glow: rgba(34,71,94, 0.38)
}
.logo:where(body.q-app, body.q-app *) {
    background: linear-gradient(
        135deg,
        #84c5ed,
        #6dbaea
    );
    box-shadow: 0 8px 24px rgba(112,187,235, 0.25)
}
.search:focus:where(body.q-app, body.q-app *),
input:focus:where(body.q-app, body.q-app *),
select:focus:where(body.q-app, body.q-app *),
textarea:focus:where(body.q-app, body.q-app *) {
    outline: 2px solid rgba(133,198,238, 0.53)
}
.view-btn[aria-pressed="true"]:where(body.q-app, body.q-app *) {
    color: #15242d;
    background: linear-gradient(
        110deg,
        #a6d5f2,
        #91cbef
    )
}
.btn-primary:where(body.q-app, body.q-app *) {
    color: #14222a;
    background: linear-gradient(
        105deg,
        #a1d2f2,
        #93ccf0
    )
}
.profile-card:hover:where(body.q-app, body.q-app *) {
    border-color: rgba(140,201,239, 0.55)
}
.deck-overlay p:where(body.q-app, body.q-app *) {
    color: #dbecf7
}
.circle.featured:where(body.q-app, body.q-app *) {
    background: linear-gradient(
        130deg,
        #8cc5e8,
        #7ac0ec
    );
    color: #111c23
}
.notice:where(body.q-app, body.q-app *) {
    border: 1px solid rgba(140,201,239, 0.40)
}
:root[data-theme="light"] .qm-acordeon:where(body.q-app, body.q-app *) {
    background: rgba(41,68,84, 0.025)
}
:root[data-theme="light"] .qm-acordeon[open]:where(body.q-app, body.q-app *) {
    background: rgba(161,210,242, 0.05);
    border-color: rgba(69,143,189, 0.25)
}
/* Los tokens de quimika.css son la única fuente de identidad para estas pantallas. */
html.q-app-root { background: var(--q-background); }
html[data-theme] body.q-app {
    --q-on-action: #FFFFFF;
    --bg: var(--q-background) !important;
    --background: var(--q-background) !important;
    --fondo: var(--q-background) !important;
    --panel: var(--q-surface) !important;
    --surface: var(--q-soft) !important;
    --superficie: var(--q-surface) !important;
    --stroke: var(--q-border) !important;
    --border: var(--q-border) !important;
    --borde: var(--q-border) !important;
    --text: var(--q-text) !important;
    --texto: var(--q-text) !important;
    --muted: var(--q-muted) !important;
    --secundario: var(--q-muted) !important;
    --pink: var(--q-action) !important;
    --purple: var(--q-action) !important;
    --coral: var(--q-action) !important;
    --naranja: var(--q-brand) !important;
    --accent: var(--q-action) !important;
    --accent-soft: var(--q-soft) !important;
    --accent-dark: var(--q-action-hover) !important;
    --brand: var(--q-action) !important;
    --primary: var(--q-action) !important;
    --sidebar-bg: var(--q-surface) !important;
    --sidebar-text: var(--q-muted) !important;
    --sidebar-active-bg: var(--q-soft) !important;
    --sidebar-active-text: var(--q-action) !important;
    --card-bg: var(--q-surface) !important;
    --card-image-bg: var(--q-soft) !important;
    --input-bg: var(--q-surface) !important;
    --input-text: var(--q-text) !important;
    --input-placeholder: var(--q-placeholder) !important;
    --control-bg: var(--q-soft) !important;
    --control-text: var(--q-text) !important;
    --button-secondary-bg: var(--q-soft) !important;
    --button-secondary-text: var(--q-action) !important;
    --tag-bg: var(--q-soft) !important;
    --tag-text: var(--q-action) !important;
    --notice-bg: var(--q-soft) !important;
    --notice-text: var(--q-action) !important;
    --nav-bg: var(--q-surface) !important;
    --nav-text: var(--q-muted) !important;
    --nav-active: var(--q-action) !important;
    --nav-active-bg: var(--q-soft) !important;
    --overlay-bg: rgb(4 18 32 / 94%) !important;
    --page-glow: transparent !important;
    --qm-fondo: var(--q-background) !important;
    --qm-superficie: var(--q-surface) !important;
    --qm-superficie-secundaria: var(--q-soft) !important;
    --qm-texto: var(--q-text) !important;
    --qm-texto-secundario: var(--q-muted) !important;
    --qm-borde: var(--q-border) !important;
    --qm-acento: var(--q-action) !important;
    --qm-acento-suave: var(--q-brand) !important;

    --mp-accent: var(--q-action) !important;
    --mp-accent-soft: var(--q-soft) !important;
    --mp-border: var(--q-border) !important;
    --mp-panel: var(--q-surface) !important;
    --mp-text: var(--q-text) !important;
    --mp-muted: var(--q-muted) !important;
    --it-bg: var(--q-background) !important;
    --it-surface: var(--q-surface) !important;
    --it-raised: var(--q-background) !important;
    --it-soft: var(--q-soft) !important;
    --it-border: var(--q-border) !important;
    --it-text: var(--q-text) !important;
    --it-muted: var(--q-muted) !important;
    --it-accent: var(--q-action) !important;
    --it-accent-soft: var(--q-soft) !important;
    --it-accent-text: var(--q-action) !important;
    --it-focus: color-mix(in srgb, var(--q-brand) 22%, transparent) !important;
    --it-shadow: var(--q-shadow) !important;
    --mf-bg: var(--q-background) !important;
    --mf-card: var(--q-surface) !important;
    --mf-soft: var(--q-soft) !important;
    --mf-input: var(--q-surface) !important;
    --mf-text: var(--q-text) !important;
    --mf-muted: var(--q-muted) !important;
    --mf-border: var(--q-border) !important;
    --mf-pink: var(--q-action) !important;
    --mf-accent: var(--q-action) !important;
    --mf-accent-bg: var(--q-soft) !important;
    --mf-progress-track: var(--q-border) !important;
    --mf-shadow: var(--q-shadow) !important;
    --qf-bg: var(--q-background) !important;
    --qf-paper: var(--q-surface) !important;
    --qf-ink: var(--q-text) !important;
    --qf-muted: var(--q-muted) !important;
    --qf-line: var(--q-border) !important;
    --qf-soft: var(--q-soft) !important;
    --qf-brand: var(--q-action) !important;
    --qf-brand-dark: var(--q-action-hover) !important;
    --qf-pink: var(--q-brand) !important;
    --qd-brand: var(--q-action) !important;
    --qd-ink: var(--q-text) !important;
    --qd-paper: var(--q-surface) !important;
    --qd-line: var(--q-border) !important;
    --qd-muted: var(--q-muted) !important;
    --qd-soft: var(--q-soft) !important;

    background: var(--q-background) !important;
    color: var(--q-text) !important;
}

/* Alias de componentes: las superficies locales también siguen los tokens globales. */
html[data-theme] body.q-app :is(.pd-main,.pv-main,.qs,.qp-shell,.config-main,.favoritos-main,.q-likes-page,.qf-dialog,.qf-small-dialog,.qd-dialog) {
    --bg: var(--q-background); --surface: var(--q-soft); --panel: var(--q-surface);
    --text: var(--q-text); --muted: var(--q-muted); --border: var(--q-border);
    --accent: var(--q-action); --brand: var(--q-action); --accent-soft: var(--q-soft);
}
html[data-theme] body.q-app :is(.sidebar,.bottom-nav) {
    color: var(--q-muted) !important;
    background: var(--q-surface) !important;
    border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.menu a,.bottom-nav a) { color: var(--q-muted) !important; }
html[data-theme] body.q-app :is(.menu a,.bottom-nav a):is(.active,[aria-current="page"]) {
    color: var(--q-action) !important; background: var(--q-soft) !important;
}
html[data-theme] body.q-app .menu a:hover { color: var(--q-action) !important; background: var(--q-soft) !important; }
html[data-theme] body.q-app :is(.sidebar-foot,.subtitle,.qp-nota,.qp-status,.pv-meta,.pv-search,.mp-facts,.mp-location) { color: var(--q-muted) !important; }
html[data-theme] body.q-app .brand { color: var(--q-text) !important; }
html[data-theme] body.q-app .brand b { color: var(--q-action) !important; }
html[data-theme] body.q-app .brand .logo {
    color: #082F49 !important; background: var(--q-brand) !important;
    box-shadow: 0 6px 20px color-mix(in srgb, var(--q-brand) 18%, transparent) !important;
}
html[data-theme] body.q-app :is(.eyebrow,.mp-eyebrow,.pv-eyebrow,.favoritos-eyebrow,.q-likes-kicker,.config-seccion-titulo>span,.intereses-etiqueta,.intereses-marca b,.intereses-marca>span,.qs-eyebrow,.qf-kicker) { color: var(--q-action) !important; }
html[data-theme] body.q-app :is(.topbar,.mp-topbar,.qp-header,.intereses-titulo) :is(h1,h2) { color: var(--q-text) !important; }
html[data-theme] body.q-app :is(.panel,.profile-card,.mp-section,.mp-settings,.mp-status,.config-tarjeta,.intereses-panel,.qp-form,.qs-inbox,.qs-thread,.qs-dialog,.q-profile-dialog,.pv-section,.favoritos-card,.q-likes-card) {
    color: var(--q-text) !important; background: var(--q-surface) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.config-intro,.favoritos-intro,.qs-hero,.qf-hero,.qf-art-front,.qf-art-back) {
    color: var(--q-text) !important; background: var(--q-soft) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.config-intro-icono,.config-fila-icono,.favoritos-intro-icon,.favoritos-vacio-icon,.intereses-icono,.intereses-contador,.qs-topic-icon,.qs-empty-icon,.qs-art-icon,.qf-drop-icon,.qf-review-check,.mp-setting-icon,.pv-section-icon) {
    color: var(--q-action) !important; background: var(--q-soft) !important;
}
html[data-theme] body.q-app :is(.config-fila,.config-tema,.qs-topics>button,.qs-search,.favoritos-busqueda,.qs-ticket,.qs-message,.pv-chips>span,.pv-intentions>span) {
    background: var(--q-surface) !important; color: var(--q-text) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.config-fila,.qs-topics>button):hover { background: var(--q-soft) !important; }
html[data-theme] body.q-app :is(.config-fila-cuerpo small,.config-seccion-titulo p,.config-tema-info small,.qs-hero p,.qs-topics small,.qs-empty p,.favoritos-intro p,.favoritos-pie,.intereses-titulo p,.intereses-resumen p,.intereses-informacion,.config-pie) { color: var(--q-muted) !important; }
html[data-theme] body.q-app :is(.tag,.interes-chip,.mi-interes-chip,.interes-tag,.config-nota,.config-proximamente,.qp-nota,.favoritos-total,.pv-show-more,.mp-count,.q-count) {
    background: var(--q-soft) !important; color: var(--q-action) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.btn-primary,.mp-button-primary,.qf-primary,#btn_seleccionar_fotos,.qd-apply,.qs-btn.primary,.favoritos-cta,.intereses-guardar,.q-profile-action--chat) {
    color: var(--q-on-action) !important; background: var(--q-action) !important; border-color: var(--q-action) !important;
    box-shadow: none !important;
}
html[data-theme="dark"] body.q-app { --q-on-action: #082F49; }
html[data-theme="dark"] body.q-app :is(.btn-primary,.mp-button-primary,.qf-primary,#btn_seleccionar_fotos,.qd-apply,.qs-btn.primary,.favoritos-cta,.intereses-guardar,.q-profile-action--chat) {
    color: #082F49 !important; background: var(--q-action) !important; border-color: var(--q-action) !important;
}
html[data-theme] body.q-app :is(.btn-primary,.mp-button-primary,.qf-primary,#btn_seleccionar_fotos,.qd-apply,.qs-btn.primary,.favoritos-cta,.intereses-guardar,.q-profile-action--chat):hover:not(:disabled) {
    background: var(--q-action-hover) !important; border-color: var(--q-action-hover) !important;
}
html[data-theme] body.q-app :is(.btn-secondary,.view-btn,.icon-btn,.mp-button:not(.mp-button-primary),.qf-secondary,.qs-btn.secondary,.qs-icon-btn,.q-likes-actualizar,.favoritos-actualizar,.user-pill) {
    color: var(--q-action) !important; background: var(--q-soft) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(.view-btn[aria-pressed="true"],.qp-tabs [aria-selected="true"],.favoritos-vistas [aria-pressed="true"],.interes-chip[aria-pressed="true"],.interes-opcion[aria-pressed="true"],.qs-ticket[aria-selected="true"]) {
    background: var(--q-soft) !important; color: var(--q-action) !important; border-color: var(--q-action) !important;
    box-shadow: inset 0 0 0 1px var(--q-action) !important;
}
html[data-theme] body.q-app :is(.mp-text-link,.mp-small-link,.qp-header a,.qs-back,.intereses-volver,.favoritos-perfil,.config-perfil-atajo,.pv-back) { color: var(--q-action) !important; }
html[data-theme] body.q-app :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),select,textarea) {
    color: var(--q-text) !important; background-color: var(--q-surface) !important; border-color: var(--q-border) !important;
}
html[data-theme] body.q-app :is(input,textarea)::placeholder { color: var(--q-placeholder) !important; }
html[data-theme] body.q-app :is(input,select,textarea):focus { outline-color: var(--q-action) !important; border-color: var(--q-action) !important; }
html[data-theme] body.q-app :is(input,textarea,select)[aria-invalid="true"] { border-color: var(--q-danger) !important; }
html[data-theme] body.q-app input:is([type="checkbox"],[type="radio"],[type="range"]) { accent-color: var(--q-action); }
html[data-theme] body.q-app :is(button,a,input,select,textarea):focus-visible { outline: 3px solid var(--q-action); outline-offset: 3px; }
html[data-theme] body.q-app :is(dialog:not(.pv-lightbox),.qd-dialog,.qf-dialog,.qf-small-dialog) { color: var(--q-text); background: var(--q-surface); border-color: var(--q-border); }
html[data-theme] body.q-app dialog::backdrop { background: rgb(4 18 32 / 72%); }
html[data-theme] body.q-app :is(.notice,.favoritos-aviso,.qp-nota) { color: var(--q-action); background: var(--q-soft); border-color: var(--q-border); }
html[data-theme] body.q-app :is(.qp-campo-error,.qp-contador-exceso,.config-error,.q-likes-error,.pd-error,.q-profile-dialog-error,.qd-form-error,.mp-error) { color: var(--q-danger) !important; }
html[data-theme] body.q-app .notice:is(.error,[data-type="error"]) { color: var(--q-danger) !important; background: var(--q-danger-soft) !important; }
html[data-theme] body.q-app .notice:is(.success,.ok,[data-type="success"]) { color: var(--q-success) !important; background: var(--q-success-soft) !important; }
html[data-theme] body.q-app .q-chat-menu-badge { color: var(--q-on-action) !important; background: var(--q-action) !important; }

/* Temas: las miniaturas representan su propio tema, independientemente del actual. */
html[data-theme] body.q-app .config-tema:has(input:checked) { border-color: var(--q-action) !important; box-shadow: 0 0 0 1px var(--q-action); }
html[data-theme] body.q-app .config-tema:has(input:checked) .config-radio-visual { background: var(--q-action) !important; border-color: var(--q-action) !important; }
body.q-app .config-ilustracion-clara { background: #F5FAFF !important; }
body.q-app .config-ilustracion-clara .mini-barra { background: #D6E4EF !important; }
body.q-app .config-ilustracion-clara .mini-cuerpo i { background: #FFFFFF !important; }
body.q-app .config-ilustracion-oscura { background: #101923 !important; }
body.q-app .config-ilustracion-oscura .mini-barra { background: #3F5366 !important; }
body.q-app .config-ilustracion-oscura .mini-cuerpo i { background: #172532 !important; }
body.q-app .config-ilustracion-auto { background: linear-gradient(90deg,#F5FAFF 50%,#101923 50%) !important; }

/* Descubrir conserva el degradado negro sobre la foto para mantener legibilidad. */
html[data-theme] body.q-app .qd-stage { background: #14283F; }
html[data-theme] body.q-app .qd-photo-fallback { background: #14283F; }
html[data-theme] body.q-app :is(.qd-photo-fallback>span,.qd-photo-fallback p,.qd-top h1>span) { color: #BAE6FD; }
html[data-theme] body.q-app :is(.qd-filter-button,.qd-context span,.qd-arrow,.qd-broaden,.qd-message) { background: rgb(4 18 32 / 66%); }
html[data-theme] body.q-app .qd-filter-button small { color: #082F49; background: #BAE6FD; }
html[data-theme] body.q-app :is(.qd-top h1,.qd-profile-link,.qd-profile-link h2) { color: #FFFFFF !important; }
html[data-theme] body.q-app :is(.qd-eyebrow,.qd-location,.qd-bio,.qd-interests span) { color: #F0F9FF; }
html[data-theme] body.q-app .qd-hint { color: #C5DBEA; }
html[data-theme] body.q-app .qd-broaden button { color: #BAE6FD; }
html[data-theme] body.q-app .qd-action.qd-like { background: #BAE6FD; color: #082F49; border-color: #E0F2FE; box-shadow: 0 5px 25px rgb(56 189 248 / 15%); }
html[data-theme] body.q-app .qd-like[aria-pressed="true"] { background: #7DD3FC !important; color: #082F49 !important; }
html[data-theme] body.q-app .qd-filter-button:focus-visible { outline-color: #7DD3FC; }

/* Destacados: una superficie azul noche conserva el carácter exclusivo. */
html[data-theme] body.q-app .pd-hero { background: #14283F !important; color: #F0F9FF !important; border-color: #294960 !important; }
html[data-theme] body.q-app .pd-hero :is(h1,h2) { color: #FFFFFF !important; }
html[data-theme] body.q-app .pd-hero p { color: #C5DBEA !important; }
html[data-theme] body.q-app .pd-hero :is(.pd-eyebrow,.pd-emblem,.pd-hero-label) { color: #7DD3FC !important; }
html[data-theme] body.q-app :is(.pd-locked,.pd-loading,.pd-plans) { color: var(--q-text) !important; background: var(--q-surface) !important; border-color: var(--q-border) !important; }
html[data-theme] body.q-app :is(.pd-primary,.pd-filter-submit) { color: var(--q-on-action) !important; background: var(--q-action) !important; border-color: var(--q-action) !important; }
html[data-theme] body.q-app :is(.pd-primary,.pd-filter-submit):hover:not(:disabled) { background: var(--q-action-hover) !important; }
html[data-theme] body.q-app :is(.pd-selection-tag,.pd-lock-icon) { color: var(--q-action) !important; background: var(--q-soft) !important; }

/* Oro y Platino, indicadores de éxito y acciones destructivas conservan su significado. */
html[data-theme] body.q-app :is(.config-logout,.q-profile-action--bloqueo,.qf-danger) { color: var(--q-danger) !important; }
html[data-theme] body.q-app .qf-danger { background: var(--q-danger-soft) !important; border-color: var(--q-danger) !important; }
html[data-theme] body.q-app .q-profile-confirm[data-variant="danger"] { color: #FFFFFF !important; background: #B42336 !important; border-color: #B42336 !important; }

/* Recursos gráficos existentes: se conservan los PNG; no se aplican filtros de color. */
body.q-app .quimika-logo { max-width: 170px; max-height: 44px; width: auto; height: auto; object-fit: contain; }
body.q-app .quimika-logo-claro { display: block; }
body.q-app .quimika-logo-oscuro { display: none; }
html[data-theme="dark"] body.q-app .quimika-logo-claro { display: none; }
html[data-theme="dark"] body.q-app .quimika-logo-oscuro { display: block; }
body.q-app .qs-symbols { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
body.q-app .qs-icon { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.q-app :is(.config-fila-icono,.config-intro-icono,.config-chevron,.config-perfil-atajo,.favoritos-intro-icon,.favoritos-vacio-icon,.intereses-icono) svg { width: 22px; height: 22px; }
@media (max-width: 768px) {
    body.q-app .bottom-nav { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); }
    body.q-app .bottom-nav a { min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.25; font-size: 9px; }
}

/* Alias de las familias de componentes existentes. */
html[data-theme] body.q-app,
html[data-theme] body.q-app :is(.pv-main,.pd-main,.qs,.qp-shell,.config-main,.favoritos-main) {
    --pv-bg: var(--q-background) !important;
    --pv-background: var(--q-background) !important;
    --pv-paper: var(--q-surface) !important;
    --pv-panel: var(--q-surface) !important;
    --pv-surface: var(--q-surface) !important;
    --pv-card: var(--q-surface) !important;
    --pv-input: var(--q-surface) !important;
    --pv-ink: var(--q-text) !important;
    --pv-text: var(--q-text) !important;
    --pv-muted: var(--q-muted) !important;
    --pv-border: var(--q-border) !important;
    --pv-line: var(--q-border) !important;
    --pv-stroke: var(--q-border) !important;
    --pv-accent: var(--q-action) !important;
    --pv-primary: var(--q-action) !important;
    --pv-brand: var(--q-action) !important;
    --pv-accent-soft: var(--q-soft) !important;
    --pv-soft: var(--q-soft) !important;
    --pv-danger: var(--q-danger) !important;
    --pv-success: var(--q-success) !important;
    --pd-bg: var(--q-background) !important;
    --pd-background: var(--q-background) !important;
    --pd-paper: var(--q-surface) !important;
    --pd-panel: var(--q-surface) !important;
    --pd-surface: var(--q-surface) !important;
    --pd-card: var(--q-surface) !important;
    --pd-input: var(--q-surface) !important;
    --pd-ink: var(--q-text) !important;
    --pd-text: var(--q-text) !important;
    --pd-muted: var(--q-muted) !important;
    --pd-border: var(--q-border) !important;
    --pd-line: var(--q-border) !important;
    --pd-stroke: var(--q-border) !important;
    --pd-accent: var(--q-action) !important;
    --pd-primary: var(--q-action) !important;
    --pd-brand: var(--q-action) !important;
    --pd-accent-soft: var(--q-soft) !important;
    --pd-soft: var(--q-soft) !important;
    --pd-danger: var(--q-danger) !important;
    --pd-success: var(--q-success) !important;
    --qs-bg: var(--q-background) !important;
    --qs-background: var(--q-background) !important;
    --qs-paper: var(--q-surface) !important;
    --qs-panel: var(--q-surface) !important;
    --qs-surface: var(--q-surface) !important;
    --qs-card: var(--q-surface) !important;
    --qs-input: var(--q-surface) !important;
    --qs-ink: var(--q-text) !important;
    --qs-text: var(--q-text) !important;
    --qs-muted: var(--q-muted) !important;
    --qs-border: var(--q-border) !important;
    --qs-line: var(--q-border) !important;
    --qs-stroke: var(--q-border) !important;
    --qs-accent: var(--q-action) !important;
    --qs-primary: var(--q-action) !important;
    --qs-brand: var(--q-action) !important;
    --qs-accent-soft: var(--q-soft) !important;
    --qs-soft: var(--q-soft) !important;
    --qs-danger: var(--q-danger) !important;
    --qs-success: var(--q-success) !important;
    --qp-bg: var(--q-background) !important;
    --qp-background: var(--q-background) !important;
    --qp-paper: var(--q-surface) !important;
    --qp-panel: var(--q-surface) !important;
    --qp-surface: var(--q-surface) !important;
    --qp-card: var(--q-surface) !important;
    --qp-input: var(--q-surface) !important;
    --qp-ink: var(--q-text) !important;
    --qp-text: var(--q-text) !important;
    --qp-muted: var(--q-muted) !important;
    --qp-border: var(--q-border) !important;
    --qp-line: var(--q-border) !important;
    --qp-stroke: var(--q-border) !important;
    --qp-accent: var(--q-action) !important;
    --qp-primary: var(--q-action) !important;
    --qp-brand: var(--q-action) !important;
    --qp-accent-soft: var(--q-soft) !important;
    --qp-soft: var(--q-soft) !important;
    --qp-danger: var(--q-danger) !important;
    --qp-success: var(--q-success) !important;
    --config-bg: var(--q-background) !important;
    --config-background: var(--q-background) !important;
    --config-paper: var(--q-surface) !important;
    --config-panel: var(--q-surface) !important;
    --config-surface: var(--q-surface) !important;
    --config-card: var(--q-surface) !important;
    --config-input: var(--q-surface) !important;
    --config-ink: var(--q-text) !important;
    --config-text: var(--q-text) !important;
    --config-muted: var(--q-muted) !important;
    --config-border: var(--q-border) !important;
    --config-line: var(--q-border) !important;
    --config-stroke: var(--q-border) !important;
    --config-accent: var(--q-action) !important;
    --config-primary: var(--q-action) !important;
    --config-brand: var(--q-action) !important;
    --config-accent-soft: var(--q-soft) !important;
    --config-soft: var(--q-soft) !important;
    --config-danger: var(--q-danger) !important;
    --config-success: var(--q-success) !important;
    --fav-bg: var(--q-background) !important;
    --fav-background: var(--q-background) !important;
    --fav-paper: var(--q-surface) !important;
    --fav-panel: var(--q-surface) !important;
    --fav-surface: var(--q-surface) !important;
    --fav-card: var(--q-surface) !important;
    --fav-input: var(--q-surface) !important;
    --fav-ink: var(--q-text) !important;
    --fav-text: var(--q-text) !important;
    --fav-muted: var(--q-muted) !important;
    --fav-border: var(--q-border) !important;
    --fav-line: var(--q-border) !important;
    --fav-stroke: var(--q-border) !important;
    --fav-accent: var(--q-action) !important;
    --fav-primary: var(--q-action) !important;
    --fav-brand: var(--q-action) !important;
    --fav-accent-soft: var(--q-soft) !important;
    --fav-soft: var(--q-soft) !important;
    --fav-danger: var(--q-danger) !important;
    --fav-success: var(--q-success) !important;
    --favoritos-bg: var(--q-background) !important;
    --favoritos-background: var(--q-background) !important;
    --favoritos-paper: var(--q-surface) !important;
    --favoritos-panel: var(--q-surface) !important;
    --favoritos-surface: var(--q-surface) !important;
    --favoritos-card: var(--q-surface) !important;
    --favoritos-input: var(--q-surface) !important;
    --favoritos-ink: var(--q-text) !important;
    --favoritos-text: var(--q-text) !important;
    --favoritos-muted: var(--q-muted) !important;
    --favoritos-border: var(--q-border) !important;
    --favoritos-line: var(--q-border) !important;
    --favoritos-stroke: var(--q-border) !important;
    --favoritos-accent: var(--q-action) !important;
    --favoritos-primary: var(--q-action) !important;
    --favoritos-brand: var(--q-action) !important;
    --favoritos-accent-soft: var(--q-soft) !important;
    --favoritos-soft: var(--q-soft) !important;
    --favoritos-danger: var(--q-danger) !important;
    --favoritos-success: var(--q-success) !important;
    --likes-bg: var(--q-background) !important;
    --likes-background: var(--q-background) !important;
    --likes-paper: var(--q-surface) !important;
    --likes-panel: var(--q-surface) !important;
    --likes-surface: var(--q-surface) !important;
    --likes-card: var(--q-surface) !important;
    --likes-input: var(--q-surface) !important;
    --likes-ink: var(--q-text) !important;
    --likes-text: var(--q-text) !important;
    --likes-muted: var(--q-muted) !important;
    --likes-border: var(--q-border) !important;
    --likes-line: var(--q-border) !important;
    --likes-stroke: var(--q-border) !important;
    --likes-accent: var(--q-action) !important;
    --likes-primary: var(--q-action) !important;
    --likes-brand: var(--q-action) !important;
    --likes-accent-soft: var(--q-soft) !important;
    --likes-soft: var(--q-soft) !important;
    --likes-danger: var(--q-danger) !important;
    --likes-success: var(--q-success) !important;
    --ql-bg: var(--q-background) !important;
    --ql-background: var(--q-background) !important;
    --ql-paper: var(--q-surface) !important;
    --ql-panel: var(--q-surface) !important;
    --ql-surface: var(--q-surface) !important;
    --ql-card: var(--q-surface) !important;
    --ql-input: var(--q-surface) !important;
    --ql-ink: var(--q-text) !important;
    --ql-text: var(--q-text) !important;
    --ql-muted: var(--q-muted) !important;
    --ql-border: var(--q-border) !important;
    --ql-line: var(--q-border) !important;
    --ql-stroke: var(--q-border) !important;
    --ql-accent: var(--q-action) !important;
    --ql-primary: var(--q-action) !important;
    --ql-brand: var(--q-action) !important;
    --ql-accent-soft: var(--q-soft) !important;
    --ql-soft: var(--q-soft) !important;
    --ql-danger: var(--q-danger) !important;
    --ql-success: var(--q-success) !important;
}
