/* BostonCars · 01A Aire. Identidad compartida por gestión y accesos públicos. */
@font-face {
    font-family: Manrope;
    src: url('../webfonts/manrope-latin.woff2') format('woff2');
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}
:root {
    --bc-blue: #005d9b;
    --bc-blue-hover: #004c80;
    --bc-blue-active: #003e69;
    --bc-navy: #162d3d;
    --bc-font: Manrope, system-ui, -apple-system, 'Segoe UI', sans-serif;
    --bc-bg: #f0f5f7;
    --bc-surface: #fff;
    --bc-text: #162d3d;
    --bc-muted: #506b7c;
    --bc-border: #d8e3e9;
    --bc-soft: #eaf3f8;
    --bc-primary: var(--bc-blue);
    --bc-primary-dark: var(--bc-blue-hover);
    --bc-accent: var(--bc-blue);
    --bc-accent-dark: var(--bc-blue-hover);
    --bc-nav: var(--bc-navy);
    --bc-focus: #005d9b;
    --bc-login-glow: #dbeaf3;
    --bs-font-sans-serif: var(--bc-font);
    --bs-body-font-family: var(--bc-font);
    --bs-body-color: var(--bc-text);
    --bs-body-bg: var(--bc-bg);
    --bs-primary: var(--bc-blue);
    --bs-primary-rgb: 0, 93, 155;
    --bs-app-theme: var(--bc-blue);
    --bs-app-theme-rgb: 0, 93, 155;
    --bs-app-theme-color: #fff;
    --bs-theme: var(--bc-blue);
    --bs-link-color: var(--bc-primary);
    --bs-link-color-rgb: 0, 93, 155;
    --bs-link-hover-color: var(--bc-blue-hover);
    --bs-link-hover-color-rgb: 0, 76, 128;
}
:root[data-bs-theme="dark"] {
    --bc-bg: #0f202c;
    --bc-surface: #162d3d;
    --bc-text: #eaf2f7;
    --bc-muted: #adc2cf;
    --bc-border: #345366;
    --bc-soft: #213f53;
    --bc-primary: #91cff4;
    --bc-focus: #91cff4;
    --bc-login-glow: #244a62;
    --bs-link-color: var(--bc-primary);
    --bs-link-color-rgb: 145, 207, 244;
    --bs-link-hover-color: #c5e8fc;
    --bs-link-hover-color-rgb: 197, 232, 252;
}
body { font-family: var(--bc-font); }
.bc-theme-logo, .bc-theme-logo picture { display: block; }
.bc-theme-logo img { display: block; width: 100%; height: auto; }
.bc-theme-logo .bc-logo-dark { display: none; }
[data-bs-theme="dark"] .bc-theme-logo .bc-logo-light { display: none; }
[data-bs-theme="dark"] .bc-theme-logo .bc-logo-dark { display: block; }
.btn-primary, .btn-theme {
    --bs-btn-bg: var(--bc-blue); --bs-btn-border-color: var(--bc-blue); --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--bc-blue-hover); --bs-btn-hover-border-color: var(--bc-blue-hover); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--bc-blue-active); --bs-btn-active-border-color: var(--bc-blue-active); --bs-btn-active-color: #fff;
    --bs-btn-disabled-bg: var(--bc-blue); --bs-btn-disabled-border-color: var(--bc-blue); --bs-btn-disabled-color: #fff;
}
.form-check-input:checked { background-color: var(--bc-blue); border-color: var(--bc-blue); }
.pagination { --bs-pagination-active-bg: var(--bc-blue); --bs-pagination-active-border-color: var(--bc-blue); }
.bc-public { background: var(--bc-bg); color: var(--bc-text); min-height: 100vh; }
.bc-public .topbar { background: var(--bc-surface); color: var(--bc-text); border-bottom: 1px solid var(--bc-border); padding: 12px 0; }
.bc-public .topbar a { color: var(--bc-text); }
.bc-public .topbar-logo { display: block; width: 224px; max-width: 100%; height: auto; }
.bc-public .footer-publico { color: var(--bc-muted); background: var(--bc-soft); }
.bc-public .text-muted { color: var(--bc-muted) !important; }
.bc-public .card { background: var(--bc-surface); border: 1px solid var(--bc-border); border-radius: 16px; }
.bc-public .btn { min-height: 44px; border-radius: 9px; }
.bc-public .btn-cta, .bc-public .btn-bc-accent { background: var(--bc-blue); border-color: var(--bc-blue); color: #fff; }
.bc-public .btn-cta:hover, .bc-public .btn-bc-accent:hover { background: var(--bc-blue-hover); border-color: var(--bc-blue-hover); color: #fff; box-shadow: 0 4px 12px #005d9b26; }
.bc-public .btn-cta:disabled { background: #d8e3e9; border-color: #d8e3e9; color: #506b7c; box-shadow: none; }
.bc-public .form-control, .bc-public .form-select { min-height: 44px; background-color: var(--bc-surface); color: var(--bc-text); border-color: var(--bc-border); }
.bc-public .input-group-text { background: var(--bc-soft); color: var(--bc-muted); border-color: var(--bc-border); }
.bc-public .form-control:focus, .bc-public .form-select:focus { border-color: var(--bc-blue); box-shadow: 0 0 0 3px #005d9b1a; }
.bc-public :focus-visible, .bc-auth :focus-visible { outline: 3px solid var(--bc-focus); outline-offset: 3px; }
.bc-public .topbar :focus-visible { outline-color: var(--bc-focus); }
.bc-public .stepper-circles .circle.active { color: #fff; box-shadow: 0 0 0 4px var(--bc-soft); }
.bc-public .stepper-circles .circle.done { background: var(--bc-navy); border-color: var(--bc-navy); }
.bc-portal-brand { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; max-width: 100%; }
.bc-portal-label { color: var(--bc-muted); font-size: 12px; }
.bc-public .nav-portal { gap: 4px; flex-wrap: wrap; }
.bc-public .nav-portal a, .bc-public .nav-portal button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 10px; margin: 0; border-radius: 8px; opacity: 1; color: var(--bc-text); }
.bc-public .nav-portal a:hover, .bc-public .nav-portal a[aria-current="page"] { background: var(--bc-soft); }
.bc-public #pwa-install-banner { background: var(--bc-navy) !important; }
.bc-public #pwa-install-banner { gap: 12px; flex-wrap: wrap; }
.bc-public #pwa-install-banner > span:last-child { display: flex; flex-shrink: 0; }
.bc-public .bcbot-btn, .bc-public .bcbot-m.user, .bc-public .bcbot-form button[type="submit"] { background: var(--bc-blue); color: #fff; }
.bc-public .bcbot-btn:hover { background: var(--bc-blue-hover); }
.bc-public .bcbot-panel { font-family: var(--bc-font); color: var(--bc-text); background: var(--bc-surface); }
.bc-public .bcbot-head { background: var(--bc-navy); }
.bc-public .bcbot-msgs { background: var(--bc-bg); }
.bc-public .bcbot-m.bot, .bc-public .bcbot-typing, .bc-public .bcbot-form { background: var(--bc-surface); }
.bc-public .bcbot-form { border-color: var(--bc-border); }
.bc-public .bcbot-m.bot a, .bc-public .bcbot-form .bcbot-ico { color: var(--bc-primary); }
.bc-public .bcbot-form .bcbot-ico.rec { color: #b12d40; }
.bc-public .bcbot-form textarea { min-width: 0; background: var(--bc-surface); color: var(--bc-text); }
.bc-public .bcbot-head button, .bc-public .bcbot-form button { min-width: 44px; min-height: 44px; }
.bc-public .bcbot-head :focus-visible { outline-color: #91cff4; }

/* Acceso: conserva el modo elegido al salir y volver a ingresar. */
.bc-auth { background: var(--bc-bg); color: var(--bc-text); }
.login-bc { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 40px 20px; background: radial-gradient(ellipse at 15% 15%, var(--bc-login-glow), transparent 55%), var(--bc-bg); }
.has-env-banner .login-bc { min-height: calc(100vh - 26px); min-height: calc(100dvh - 26px); }
.login-card { width: 100%; max-width: 440px; border: 1px solid var(--bc-border); border-top: 4px solid var(--bc-blue); border-radius: 20px; background: var(--bc-surface); box-shadow: 0 18px 56px #162d3d0d; overflow: hidden; }
.login-card-header { padding: 32px 24px; text-align: center; border-bottom: 1px solid var(--bc-border); }
.login-card-header .bc-theme-logo { width: 340px; max-width: 100%; margin: 0 auto; }
.login-card-body { padding: 28px 32px; }
.login-card-body h1 { color: var(--bc-text); letter-spacing: -.035em; }
.login-card-body .text-muted { color: var(--bc-muted) !important; }
.login-card-body .form-control { background: var(--bc-bg); color: var(--bc-text); border: 1px solid var(--bc-border); border-radius: 9px; min-height: 48px; padding: 12px 14px; font-size: 16px; }
.login-card-body .form-control:focus { background: var(--bc-surface); border-color: var(--bc-blue); box-shadow: 0 0 0 3px #005d9b1a; }
.login-card-body label { color: var(--bc-text); font-size: 13px; font-weight: 650; margin-bottom: 6px; }
.login-card-body .form-check-label { color: var(--bc-muted); font-size: 12px; font-weight: 500; }
.btn-login { width: 100%; min-height: 48px; padding: 12px; background: var(--bc-blue); color: #fff; border: 1px solid var(--bc-blue); border-radius: 9px; font-size: 15px; font-weight: 750; }
.btn-login:hover { background: var(--bc-blue-hover); border-color: var(--bc-blue-hover); color: #fff; }
.btn-login-alt { background: var(--bc-surface); color: var(--bc-primary); border-color: var(--bc-primary); }
.btn-login-alt:hover { background: var(--bc-soft); color: var(--bc-primary); border-color: var(--bc-primary); }
.btn-login:disabled { opacity: .6; }
.login-footer { text-align: center; padding: 0 24px 24px; }
.login-footer small { color: var(--bc-muted); font-size: 11px; }
.login-separador { display: flex; align-items: center; gap: 12px; margin: 20px 0 16px; color: var(--bc-muted); font-size: 12px; }
.login-separador::before, .login-separador::after { content: ''; flex: 1; height: 1px; background: var(--bc-border); }
.bc-auth [hidden] { display: none !important; }
[data-bs-theme="dark"] .bc-public .text-primary { color: var(--bc-primary) !important; }
[data-bs-theme="dark"] .bc-public .text-success { color: #9addbd !important; }
[data-bs-theme="dark"] .bc-public .text-danger { color: #ffb0b7 !important; }
[data-bs-theme="dark"] .bc-public .btn-outline-success { --bs-btn-color: #9addbd; --bs-btn-border-color: #9addbd; }
[data-bs-theme="dark"] .bc-public .opcion-plazo .tasa-line { color: var(--bc-text); }
@media (max-width: 575.98px) {
    .bc-public .topbar-logo { width: 202px; }
    .bc-public .form-control, .bc-public .form-select { font-size: 16px; }
    .bc-public .nav-portal { width: 100%; padding-top: 8px; border-top: 1px solid var(--bc-border); }
    .bc-public .nav-portal form { margin-left: auto !important; }
    .login-bc { padding: 24px 16px; }
    .login-card-header { padding: 24px 20px; }
    .login-card-body { padding: 24px; }
}
