#chat-mensajes {
    min-height: 420px;
    max-height: 56vh;
    overflow-y: auto;
}

#chat-adjuntos {
    max-width: 420px;
}

#chat-conversaciones {
    max-height: min(56vh, 34rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

#chat-proyectos {
    max-height: min(56vh, 34rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.chat-conversacion-abrir,
.chat-proyecto-abrir,
.chat-lista-contenido {
    min-width: 0;
}

.chat-proyecto-abrir,
.chat-lista-contenido {
    flex: 1 1 auto;
}

.chat-lista-titulo,
.chat-lista-meta {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-lista-titulo {
    font-weight: 600;
    line-height: 1.35;
}

.chat-lista-meta {
    margin-top: .2rem;
    font-size: .75rem;
    line-height: 1.35;
}

.chat-conversacion-abrir {
    display: block;
}

.chat-conversacion-abrir .chat-lista-titulo {
    text-align: left;
}

.chat-conversacion-abrir .chat-lista-meta {
    text-align: left;
}

.chat-conversacion-pie {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.chat-conversacion-modelo {
    min-width: 0;
    overflow: hidden;
    font-size: .75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-proyecto-item > .ti-folder {
    flex: 0 0 auto;
    margin-top: .25rem;
}

.chat-proyecto-item {
    display: grid !important;
    grid-template-columns: 1rem minmax(0, 1fr) auto;
    column-gap: .75rem;
    align-items: start !important;
}

.chat-proyecto-item > .ti-folder {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    margin-top: .35rem;
}

.chat-proyecto-item > .chat-proyecto-abrir {
    display: block !important;
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 100%;
    min-width: 0;
    text-align: left !important;
}

.chat-proyecto-abrir .chat-lista-titulo,
.chat-proyecto-abrir .chat-lista-meta {
    display: block;
    width: 100%;
    text-align: left !important;
}

.chat-proyecto-acciones {
    display: inline-flex;
    grid-column: 3;
    grid-row: 1 / span 2;
    gap: .15rem;
    align-self: center;
}

.chat-proyecto-inicio {
    border-color: rgb(32 107 196 / 24%);
    background: linear-gradient(135deg, var(--tblr-bg-surface) 0%, rgb(32 107 196 / 7%) 100%);
}

.chat-proyecto-inicio:hover {
    border-color: var(--tblr-primary);
    box-shadow: 0 .25rem 1rem rgb(32 107 196 / 12%);
}

#chat-proyecto-conversaciones:empty::before {
    display: block;
    padding: 1rem;
    color: var(--tblr-secondary);
    content: 'Todavia no hay chats en este proyecto.';
}

.chat-proyecto-conversacion {
    cursor: pointer;
}

#chat-exportar-dialog {
    width: min(900px, 94vw);
    max-height: 90vh;
}

.chat-exportar-cuerpo {
    max-height: 68vh;
}

#chat-exportar-formato {
    width: auto;
}

.chat-adjunto-imagen {
    width: 48px;
    height: 48px;
    object-fit: cover;
}

.chat-adjunto-nombre {
    max-width: 180px;
}

.chat-burbuja-cuerpo {
    max-width: 78%;
}

.chat-texto {
    line-height: 1.55;
}

.chat-mensaje.chat-assistant-stream .chat-texto {
    white-space: pre-wrap;
}

.chat-codigo {
    overflow: hidden;
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    background: #f6f8fa;
}

.chat-codigo-cabecera {
    border-bottom: 1px solid var(--tblr-border-color);
    background: var(--tblr-bg-surface-secondary);
}

.chat-codigo pre {
    max-height: 480px;
    overflow: auto;
    white-space: pre;
}

.chat-codigo code.hljs {
    padding: 1rem;
    background: #f6f8fa;
}

.chat-texto .katex-display {
    max-width: 100%;
    margin: 1rem 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding-block: .25rem;
}

.chat-formula-error {
    color: var(--tblr-warning);
    font-family: var(--tblr-font-monospace);
}

.chat-mermaid-render {
    overflow-x: auto;
    background: var(--tblr-bg-surface);
}

.chat-mermaid-render svg {
    width: auto;
    max-width: 100%;
    height: auto;
}

.chat-mermaid details pre {
    max-height: 240px;
    overflow: auto;
}

.luna-copiar-temporal {
    position: fixed;
    left: -9999px;
}

.luna-toast-container {
    z-index: 1090;
}

.luna-operacion-en-curso {
    position: fixed;
    z-index: 1200;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: rgb(255 255 255 / 78%);
    backdrop-filter: blur(1px);
}

.luna-operacion-en-curso[hidden] {
    display: none;
}

body.luna-operacion-activa {
    overflow: hidden;
}

.luna-operacion-indicador {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1.1rem;
    border: 1px solid #d8e4f2;
    border-radius: .75rem;
    color: var(--luna-ink);
    background: #fff;
    box-shadow: 0 12px 30px rgb(22 38 65 / 16%);
    font-weight: 600;
}

.luna-operacion-spinner {
    width: 1.15rem;
    height: 1.15rem;
    border: 2px solid #bad2ec;
    border-top-color: var(--luna-primary);
    border-radius: 50%;
    animation: luna-operacion-girar .75s linear infinite;
}

@keyframes luna-operacion-girar {
    to { transform: rotate(360deg); }
}

#chat-toast-modelo {
    z-index: 1090;
    width: min(30rem, calc(100vw - 2rem));
}

#chat-toast-modelo .alert {
    margin-bottom: 0;
    padding: 1rem 1.1rem;
    color: #073b6f;
    background: rgb(205 233 255 / 88%);
    border: 1px solid rgb(88 165 230 / 62%);
    border-radius: .75rem;
    box-shadow: 0 .65rem 1.5rem rgb(20 75 120 / 20%);
    backdrop-filter: blur(10px);
}

#chat-toast-modelo .small {
    color: #245a89 !important;
}

.pdf-editor-marco {
    overflow: auto;
    max-height: 72vh;
    padding: 1rem;
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    background: var(--tblr-bg-surface-secondary);
}

.pdf-editor-lienzo {
    position: relative;
    width: fit-content;
    margin: auto;
    box-shadow: 0 .25rem 1rem rgb(24 36 51 / 16%);
}

.pdf-editor-lienzo canvas {
    display: block;
    max-width: none;
    background: #fff;
}

.pdf-editor-capas {
    position: absolute;
    inset: 0;
}

.pdf-editor-anotacion {
    position: absolute;
    overflow: hidden;
    border: 1px dashed transparent;
    cursor: move;
    user-select: none;
}

.pdf-editor-anotacion.seleccionada {
    border-color: var(--tblr-primary);
    background: rgb(32 107 196 / 8%);
}

.pdf-editor-anotacion-texto {
    padding: 2px;
    color: #182433;
    line-height: 1.2;
    white-space: pre-wrap;
}

.pdf-editor-anotacion img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}

.pdf-editor-redimensionar {
    position: absolute;
    right: -5px;
    bottom: -5px;
    width: 12px;
    height: 12px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--tblr-primary);
    cursor: nwse-resize;
}

.herramientas-organizadas {
    margin-top: 1rem;
}

.herramientas-aviso {
    margin-bottom: 1rem;
}

.herramientas-navegacion {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
    padding: .75rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--tblr-border-color);
    border-radius: var(--tblr-border-radius);
    background: var(--tblr-bg-surface);
    box-shadow: 0 .125rem .25rem rgb(24 36 51 / 8%);
}

.herramientas-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.herramientas-buscar {
    position: relative;
    min-width: min(100%, 250px);
}

.herramientas-buscar .ti {
    position: absolute;
    top: 50%;
    left: .6rem;
    z-index: 1;
    color: var(--tblr-secondary);
    transform: translateY(-50%);
}

.herramientas-buscar input {
    padding-left: 2rem;
}

.herramientas-categoria {
    scroll-margin-top: 5.5rem;
    margin-bottom: 2rem;
}

.herramientas-menu {
    width: min(44rem, calc(100vw - 2rem));
    min-width: 0;
    max-width: calc(100vw - 2rem);
    max-height: min(75vh, 34rem);
    overflow-y: auto;
}

.herramientas-menu .row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.75rem;
    margin: 0;
}

.herramientas-menu .row > [class*="col-"] {
    min-width: 0;
    width: auto;
    max-width: none;
    padding: 0;
}

.herramientas-menu-enlace {
    display: block;
    overflow-wrap: anywhere;
    white-space: normal;
}

.herramienta-tarjeta .card-header {
    align-items: center;
}

.herramienta-tarjeta .card-title {
    min-width: 0;
}

@media (max-width: 575.98px) {
    .herramientas-menu {
        width: calc(100vw - 1rem);
        max-width: calc(100vw - 1rem);
    }

    .herramientas-navegacion {
        align-items: stretch;
    }

    .herramientas-menu .row {
        grid-template-columns: 1fr;
    }

    .herramientas-buscar {
        width: 100%;
    }
}

/* Sistema visual compartido de Luna: vistas autenticadas y acceso. */
:root {
    --luna-ink: #172033;
    --luna-muted: #66758c;
    --luna-primary: #1769c2;
    --luna-primary-strong: #0f56a5;
    --luna-surface: #ffffff;
    --luna-surface-soft: #f6f8fc;
    --luna-border: #e2e8f2;
    --luna-shadow: 0 10px 28px rgb(22 38 65 / 7%);
}

body {
    color: var(--luna-ink);
    background:
        radial-gradient(circle at 100% 0, rgb(57 132 224 / 9%), transparent 27rem),
        linear-gradient(180deg, #fbfcff 0, #f4f7fb 100%);
}

.page {
    min-height: 100vh;
}

.page-body {
    padding-block: 1.75rem 2.5rem;
}

.navbar {
    position: relative;
    z-index: 1030;
    min-height: 4.25rem;
    border-bottom: 1px solid var(--luna-border);
    background: rgb(255 255 255 / 92%);
    box-shadow: 0 2px 14px rgb(22 38 65 / 3%);
    backdrop-filter: blur(14px);
}

.navbar .dropdown-menu {
    z-index: 1031;
}

.navbar-brand {
    color: var(--luna-ink);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -.02em;
}

.luna-brand-logo {
    width: 2rem;
    height: 2rem;
    margin-right: .4rem;
    vertical-align: middle;
    object-fit: contain;
}

.navbar .nav-link {
    border-radius: .5rem;
    color: #526178;
    font-size: .9rem;
    font-weight: 500;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--luna-primary);
    background: #eef6ff;
}

.navbar .nav-link.active {
    font-weight: 700;
}

.page-title {
    color: var(--luna-ink);
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -.03em;
}

.page-title + .text-secondary,
.page-body > .container-xl > .row .text-secondary {
    color: var(--luna-muted) !important;
}

.card {
    overflow: hidden;
    border: 1px solid var(--luna-border);
    border-radius: .9rem;
    background: var(--luna-surface);
    box-shadow: var(--luna-shadow);
}

.card-header {
    min-height: 4rem;
    padding: 1rem 1.25rem;
    border-bottom-color: var(--luna-border);
    background: linear-gradient(180deg, #fff 0, #fbfcff 100%);
}

.card-body,
.card-footer {
    padding: 1.25rem;
}

.card-footer {
    border-top-color: var(--luna-border);
    background: var(--luna-surface-soft);
}

.card-title {
    color: var(--luna-ink);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.012em;
}

.card-link {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.card-link:hover {
    border-color: rgb(23 105 194 / 38%);
    box-shadow: 0 14px 30px rgb(23 105 194 / 12%);
    transform: translateY(-2px);
}

.btn {
    border-radius: .55rem;
    font-weight: 600;
}

.btn-primary {
    border-color: var(--luna-primary);
    background: var(--luna-primary);
    box-shadow: 0 3px 8px rgb(23 105 194 / 16%);
}

.btn-primary:hover,
.btn-primary:focus {
    border-color: var(--luna-primary-strong);
    background: var(--luna-primary-strong);
}

.form-control,
.form-select {
    min-height: 2.55rem;
    border-color: #d7e0ec;
    border-radius: .55rem;
    box-shadow: inset 0 1px 1px rgb(22 38 65 / 2%);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
.nav-link:focus-visible {
    border-color: #75ade8;
    box-shadow: 0 0 0 .2rem rgb(23 105 194 / 16%);
}

.form-label {
    margin-bottom: .4rem;
    color: #33435a;
    font-size: .82rem;
    font-weight: 700;
}

.form-hint {
    color: var(--luna-muted);
}

.table > :not(caption) > * > * {
    padding: .85rem 1rem;
    border-bottom-color: var(--luna-border);
}

.table thead th {
    color: #596a82;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.table tbody tr:last-child > * {
    border-bottom: 0;
}

.list-group-item {
    border-color: var(--luna-border);
}

.badge {
    border-radius: .5rem;
    font-weight: 700;
}

.nav-tabs {
    gap: .35rem;
    border-bottom: 0;
}

.nav-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: .55rem;
    color: var(--luna-muted);
    font-weight: 600;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link.active {
    border-color: #d8e7f8;
    color: var(--luna-primary);
    background: #eef6ff;
}

.cuenta-hero {
    padding-bottom: .25rem;
}

.cuenta-hero .page-title {
    margin-bottom: .25rem;
}

.cuenta-seccion .card-header {
    position: relative;
}

.cuenta-seccion .card-header::before {
    position: absolute;
    top: 1rem;
    left: 0;
    width: 3px;
    height: 1.55rem;
    border-radius: 0 3px 3px 0;
    background: var(--luna-primary);
    content: '';
}

.cuenta-seccion .card-header > div,
.cuenta-seccion .card-header > h3 {
    margin-left: .15rem;
}

.cuenta-resumen .card-body {
    background: linear-gradient(110deg, #fff 0%, #f5f9ff 100%);
}

.cuenta-grid .card {
    height: 100%;
}

.cuenta-empty {
    padding: 1rem;
    border: 1px dashed #cbd8e8;
    border-radius: .65rem;
    background: var(--luna-surface-soft);
}

.luna-auth-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 0 0, rgb(59 130 246 / 16%), transparent 26rem),
        radial-gradient(circle at 100% 100%, rgb(108 92 231 / 12%), transparent 27rem),
        #f6f8fc;
}

.luna-auth-card {
    border: 0;
    box-shadow: 0 18px 46px rgb(30 52 83 / 13%);
}

.luna-auth-card .card-body {
    padding: clamp(1.5rem, 5vw, 2.25rem);
}

.luna-auth-brand {
    color: var(--luna-ink);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -.035em;
}

.luna-auth-brand .luna-brand-logo {
    width: 2.25rem;
    height: 2.25rem;
}

@media (max-width: 991.98px) {
    .navbar .navbar-collapse {
        padding: .75rem;
        margin-top: .5rem;
        border: 1px solid var(--luna-border);
        border-radius: .75rem;
        background: #fff;
        box-shadow: var(--luna-shadow);
    }

    .navbar .nav-link {
        padding-inline: .75rem;
    }
}

@media (max-width: 575.98px) {
    .page-body {
        padding-block: 1.1rem 1.75rem;
    }

    .card-header,
    .card-body,
    .card-footer {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .page-title {
        font-size: 1.4rem;
    }

    .table > :not(caption) > * > * {
        padding: .75rem;
    }
}

/* Experiencia de trabajo: orientar, concentrar y confirmar cada acción. */
.navbar-brand .ti {
    display: inline-grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    margin-right: .35rem !important;
    border-radius: .55rem;
    color: #fff;
    background: linear-gradient(135deg, #1c7ed6, #7048e8);
    box-shadow: 0 5px 12px rgb(74 87 204 / 24%);
}

.page-body > .container-xl > .row.align-items-center.mb-3,
.page-body > .container-xl > [data-page] > .d-flex.align-items-center.mb-3 {
    position: relative;
    padding-bottom: .8rem;
    margin-bottom: 1.25rem !important;
    border-bottom: 1px solid rgb(226 232 242 / 88%);
}

.page-body > .container-xl > .row.align-items-center.mb-3::after,
.page-body > .container-xl > [data-page] > .d-flex.align-items-center.mb-3::after {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 3.5rem;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, var(--luna-primary), #7c5ce0);
    content: '';
}

.chat-saldos {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.text-secondary {
    color: var(--luna-muted) !important;
}

.alert {
    border-width: 1px;
    border-radius: .75rem;
    box-shadow: 0 4px 13px rgb(22 38 65 / 4%);
}

.empty {
    padding: 2.5rem 1.25rem;
    border: 1px dashed #cbd8e8;
    border-radius: .8rem;
    background: linear-gradient(135deg, #fbfdff, #f4f8fe);
    text-align: center;
}

.empty::before {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    margin: 0 auto .8rem;
    border-radius: .75rem;
    color: var(--luna-primary);
    background: #eaf4ff;
    content: '✦';
    font-size: 1.2rem;
}

.empty-title {
    margin-bottom: .3rem;
    color: var(--luna-ink);
    font-weight: 700;
}

.empty-subtitle {
    max-width: 32rem;
    margin-inline: auto;
}

.list-group-item {
    padding: .85rem 1rem;
    background: transparent;
    transition: background-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.list-group-item-action:hover {
    background: #f5f9ff;
}

.form-selectgroup-label {
    border-radius: .55rem;
    font-weight: 600;
}

.form-selectgroup-input:checked + .form-selectgroup-label {
    border-color: #8bbcf0;
    color: var(--luna-primary);
    background: #eef6ff;
    box-shadow: inset 0 0 0 1px rgb(23 105 194 / 9%);
}

/* Chat: el historial queda en segundo plano y la conversación es la zona focal. */
#chat-panel > .card {
    border-color: #dce6f3;
    box-shadow: 0 16px 38px rgb(22 54 94 / 9%);
}

#chat-panel .card-header {
    background: linear-gradient(105deg, #fff, #f4f8ff);
}

.chat-selectores {
    align-items: start;
}

.chat-selector {
    min-width: 0;
}

.chat-selector .form-label {
    color: var(--luna-muted);
    font-weight: 600;
}

.chat-selector .form-select {
    min-width: 11rem;
}

#chat-mensajes {
    padding: 1.35rem !important;
    background:
        linear-gradient(180deg, rgb(248 251 255 / 74%), transparent 11rem),
        var(--luna-surface);
}

.chat-mensaje {
    animation: luna-message-in .2s ease-out both;
}

.chat-burbuja-cuerpo {
    border-radius: .9rem !important;
    box-shadow: 0 4px 12px rgb(25 49 82 / 6%);
}

.chat-mensaje .bg-primary {
    border-color: transparent !important;
    background: linear-gradient(135deg, #1769c2, #2563b8) !important;
    box-shadow: 0 8px 20px rgb(23 105 194 / 20%);
}

.chat-mensaje .bg-body-tertiary {
    border-color: #dfe8f3 !important;
    background: #fff !important;
}

.chat-mensaje .bg-body-tertiary .chat-texto {
    color: var(--luna-ink);
}

.chat-mensaje .btn-ghost-secondary:hover {
    background: #eaf3ff;
}

.chat-prompts-sugeridos {
    max-width: 42rem;
}

.chat-prompts-sugeridos .btn {
    border-color: #d6e6f8;
    color: #2764a5;
    background: #fff;
}

.chat-prompts-sugeridos .btn:hover {
    border-color: #92bdea;
    background: #eef6ff;
    transform: translateY(-1px);
}

#chat-form > textarea {
    min-height: 5.5rem;
    resize: vertical;
    background: #fbfdff;
}

#chat-form > textarea:focus {
    background: #fff;
}

#chat-panel .card-footer {
    background: linear-gradient(180deg, #fbfdff, #f4f8fd);
}

#chat-conversaciones .list-group-item.active,
#chat-proyectos .list-group-item.active {
    position: relative;
    border-color: #cfe2f8;
    color: var(--luna-ink);
    background: linear-gradient(90deg, #edf6ff, #f8fbff);
}

#chat-conversaciones .list-group-item.active::before,
#chat-proyectos .list-group-item.active::before {
    position: absolute;
    top: .65rem;
    bottom: .65rem;
    left: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--luna-primary);
    content: '';
}

#chat-conversaciones .list-group-item.active .text-secondary,
#chat-proyectos .list-group-item.active .text-secondary {
    color: #5e7390 !important;
}

#chat-conversaciones .btn-link,
#chat-proyectos .btn-link {
    color: var(--luna-ink) !important;
    text-decoration: none;
}

.chat-fuentes {
    border-top-color: #dce6f2 !important;
}

.chat-imagen-generada img {
    max-height: min(28rem, 55vh);
    box-shadow: 0 6px 18px rgb(22 38 65 / 10%);
}

/* Espacios de contenido: los elementos creados por el usuario y los planes se leen como recursos. */
#asistente-lista .card,
#conocimiento-lista .card,
#biblioteca-lista .card,
#pago-planes .card,
#pago-bolsas .card {
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

#asistente-lista .card:hover,
#conocimiento-lista .card:hover,
#biblioteca-lista .card:hover,
#pago-planes .card:hover,
#pago-bolsas .card:hover {
    border-color: #c0d8f2;
    box-shadow: 0 14px 28px rgb(22 67 120 / 10%);
    transform: translateY(-2px);
}

#pago-planes .display-6,
#pago-bolsas .display-6 {
    color: var(--luna-ink);
    letter-spacing: -.04em;
}

#pago-bolsas .card {
    border-style: dashed;
    background: linear-gradient(135deg, #fff, #f7fbff);
}

.pago-opcion {
    cursor: pointer;
}

.pago-opcion:focus-visible {
    outline: 0;
    border-color: #75ade8;
    box-shadow: 0 0 0 .2rem rgb(23 105 194 / 16%);
}

.pago-opcion-activa {
    border-color: #75ade8 !important;
    background: linear-gradient(135deg, #fff, #eef6ff) !important;
    box-shadow: 0 0 0 .2rem rgb(23 105 194 / 12%), var(--luna-shadow);
}

#biblioteca-filtros .btn.active {
    color: #fff;
    border-color: var(--luna-primary);
    background: var(--luna-primary);
    box-shadow: 0 3px 8px rgb(23 105 194 / 16%);
}

#admin-totales .card {
    border-top: 3px solid #8ebce9;
}

#admin-tabs {
    padding: .35rem;
    border: 1px solid var(--luna-border);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 5px 14px rgb(22 38 65 / 4%);
}

@keyframes luna-message-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .chat-mensaje { animation: none; }
    .luna-operacion-spinner { animation: none; }
    .card-link,
    #asistente-lista .card,
    #conocimiento-lista .card,
    #biblioteca-lista .card,
    #pago-planes .card,
    #pago-bolsas .card { transition: none; }
}

@media (max-width: 767.98px) {
    .luna-brand-logo {
        width: 1.8rem;
        height: 1.8rem;
    }

    .navbar-brand .ti {
        width: 1.6rem;
        height: 1.6rem;
    }

    #chat-mensajes {
        padding: 1rem !important;
    }

    .chat-burbuja-cuerpo {
        max-width: 92%;
    }

    #chat-panel .card-actions {
        width: 100%;
        margin-top: .65rem;
    }

    #chat-panel .card-actions > * {
        flex: 1 1 12rem;
    }

    .chat-columna-principal {
        order: -1;
    }

    #chat-panel .card-header {
        display: block;
    }

    #chat-panel .chat-selectores {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: .7rem !important;
        width: 100%;
        margin-top: .85rem;
    }

    #chat-panel .chat-selectores > * {
        width: 100%;
    }

    .chat-selector .form-select {
        min-width: 0;
    }

    #chat-modelo-detalle {
        text-align: left !important;
    }

    #chat-mensajes {
        min-height: 18rem;
        max-height: 52vh;
    }

    .chat-controles-envio {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    #chat-adjuntos,
    .chat-controles-envio .form-check,
    #btn-enviar,
    #btn-detener {
        grid-column: 1 / -1;
        width: 100%;
        max-width: none;
        margin-left: 0 !important;
    }

    .chat-controles-envio .form-check {
        padding: .55rem .65rem .55rem 2.65rem;
        border: 1px solid var(--luna-border);
        border-radius: .65rem;
        background: var(--luna-surface-soft);
    }

    .chat-detalle-envio {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 575.98px) {
    .chat-encabezado {
        row-gap: .5rem;
    }

    .chat-encabezado > .col,
    .chat-encabezado > .chat-encabezado-acciones {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .chat-encabezado-acciones {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem !important;
        margin-top: .1rem;
    }

    .chat-saldos {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem;
        width: 100%;
    }

    .chat-saldos .badge {
        display: block;
        min-width: 0;
        padding: .45rem .35rem;
        overflow: hidden;
        font-size: .78rem !important;
        line-height: 1.15;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    #chat-credito-herramientas:not([hidden]) {
        grid-column: 1 / -1;
    }

    #btn-nueva-conversacion {
        width: 100%;
        min-height: 2.5rem;
    }

    #chat-panel {
        scroll-margin-top: 1rem;
    }
}

/* El comprobante administrativo requiere aprovechar la pantalla sin ampliar otros modales. */
.luna-modal-comprobante-admin {
    width: min(96vw, 1520px);
    max-width: 96vw;
    height: calc(100vh - 2rem);
    margin: 1rem auto;
}

.luna-modal-comprobante-admin .modal-content {
    height: 100%;
}

.luna-modal-comprobante-admin-cuerpo {
    min-height: 0;
    overflow: hidden;
}

.luna-modal-comprobante-admin .luna-vista-previa-archivo {
    height: 100%;
    min-height: 72vh;
}

@media (max-width: 575.98px) {
    .luna-modal-comprobante-admin {
        width: calc(100vw - 1rem);
        max-width: calc(100vw - 1rem);
        height: calc(100vh - 1rem);
        margin: .5rem auto;
    }

    .luna-modal-comprobante-admin .luna-vista-previa-archivo {
        min-height: 62vh;
    }
}
