/* Componentes compartidos del sitio */
.navbar { box-shadow: 0 2px 15px rgba(0,0,0,0.1); }
.navbar .nav-link.active { color: #0d6efd; font-weight: 700; }
footer { background-color: #071728; color: #adb5bd; }
.footer-credit { color: #40e0d0; font-size: 0.75rem; }
.footer-disclaimer { max-width: 820px; margin-right: auto; margin-left: auto; color: #8f9eac; font-size: 0.7rem; text-align: left; }
.footer-disclaimer summary { width: fit-content; margin: 0 auto; color: #adb5bd; cursor: pointer; font-size: 0.7rem; }
.footer-disclaimer summary:hover, .footer-disclaimer summary:focus-visible { color: #40e0d0; }
.footer-disclaimer-text { line-height: 1.6; }
.footer-disclaimer-text p { margin-bottom: 0.65rem; }
.footer-disclaimer-text p:last-child { margin-bottom: 0; }
.footer-disclaimer-text strong { color: #adb5bd; }
.chat-fab { position: fixed; right: 24px; bottom: 24px; width: 64px; height: 64px; border: 0; border-radius: 50%; background: linear-gradient(135deg, #0d6efd, #0e2e50 75%); color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 18px 35px rgba(13,110,253,.35); z-index: 1060; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.chat-fab:hover, .chat-fab:focus-visible { transform: translateY(-2px) scale(1.02); box-shadow: 0 22px 40px rgba(13,110,253,.42); }
.chat-modal { position: fixed; right: 24px; bottom: 100px; width: min(390px, calc(100vw - 24px)); height: min(72vh, 620px); border-radius: 22px 22px 18px 18px; background: rgba(255,255,255,.98); backdrop-filter: blur(8px); box-shadow: 0 20px 45px rgba(15,23,42,.18); border: 1px solid rgba(15,23,42,.08); overflow: hidden; z-index: 1060; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(16px) scale(.96); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; display: flex; flex-direction: column; }
.chat-modal.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.chat-header { background: linear-gradient(135deg, #0e2e50, #1f5fa7 70%, #3b82f6 100%); color: #fff; padding: .9rem 1rem; display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.chat-header-title { line-height: 1.2; }
.chat-header-title strong { display: block; font-size: .98rem; font-weight: 700; }
.chat-header-title small { opacity: .82; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.chat-close { background: rgba(255,255,255,.12); color: #fff; border: 0; border-radius: 50%; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.chat-messages { height: 360px; overflow-y: auto; padding: 1rem; background: linear-gradient(180deg,#f4f8ff 0%,#eef4ff 100%); display: flex; flex-direction: column; gap: .8rem; }
.chat-message { max-width: 84%; padding: .8rem .95rem; border-radius: 22px; line-height: 1.45; font-size: .92rem; box-shadow: 0 12px 24px rgba(11,41,72,.07); white-space: pre-wrap; }
.chat-message.assistant { align-self: flex-start; background: #fff; color: #1f2937; border-bottom-left-radius: 8px; border: 1px solid rgba(15,23,42,.05); }
.chat-message.user { align-self: flex-end; background: linear-gradient(135deg,#0d6efd,#0e2e50); color: #fff; border-bottom-right-radius: 8px; }
.chat-message-preview-label { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .75; margin-bottom: .35rem; }
.chat-status { display: inline-flex; align-items: center; gap: .45rem; font-size: .72rem; color: #5b6b7d; letter-spacing: .04em; text-transform: uppercase; opacity: .8; }
.chat-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.12); }
.chat-summary-banner { display: none; padding: .75rem 1rem; background: #f4f8ff; flex-shrink: 0; }
.chat-summary-banner.visible { display: block; }
.chat-summary-button { width: 100%; border: 0; border-radius: 999px; background: linear-gradient(135deg,#10b981,#059669); color: #fff; font-weight: 600; padding: .85rem .9rem; box-shadow: 0 12px 24px rgba(16,185,129,.25); cursor: pointer; font-size: .95rem; }
.chat-form { display: flex; padding: .85rem 1rem 1rem; background: #fff; border-top: 1px solid rgba(15,23,42,.06); flex-shrink: 0; }
.chat-input { width: 100%; border: 1px solid rgba(15,23,42,.15); border-radius: 999px; padding: .8rem 1.25rem; font-size: .92rem; outline: none; background: #f8fbff; }
.chat-input:focus { border-color: rgba(13,110,253,.6); box-shadow: 0 0 0 .15rem rgba(13,110,253,.15); background: #fff; }
@media (max-width: 575.98px) { .chat-modal { top: 0; left: 0; right: 0; bottom: 0; width: 100vw; max-width: 100vw; height: var(--app-vh,100vh); max-height: var(--app-vh,100vh); border-radius: 0; border: none; transform: translateY(110%); } .chat-modal.open { transform: translateY(0); } .chat-header { padding: 1rem 1.25rem; padding-top: calc(1rem + env(safe-area-inset-top)); } .chat-messages { height: auto; flex: 1 1 auto; min-height: 0; padding: 1.25rem 1rem; } .chat-form { padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); } .chat-fab { right: 16px; bottom: 18px; width: 58px; height: 58px; } }
