:root {
    --brand: #c44569;
    --brand-hover: #a83658;
}

body {
    background: #f5f6f8;
}

.bg-brand { background: var(--brand) !important; }

.btn-brand {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-hover);
    --bs-btn-hover-border-color: var(--brand-hover);
    --bs-btn-active-bg: var(--brand-hover);
    --bs-btn-active-border-color: var(--brand-hover);
}

.text-brand { color: var(--brand) !important; }

a { color: #8e2f4c; }

.navbar .nav-link.active {
    background: rgba(255, 255, 255, .15);
    border-radius: .375rem;
}

.kpi .fs-4 { line-height: 1.2; }

.card-header { font-weight: 500; }

.card-link-hover { transition: transform .12s ease, box-shadow .12s ease; }
.card-link-hover:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .08) !important; }

.margen-box {
    background: #f1f3f5;
    border-radius: .5rem;
    padding: .4rem .7rem;
}
.margen-box.negativo { background: #f8d7da; }
.margen-box.bajo { background: #fff3cd; }
.margen-box.bueno { background: #d1e7dd; }

.prov-row:not(.marcado) .prov-detalle { display: none; }

.auth-bg { background: linear-gradient(160deg, #fbe9ee 0%, #f5f6f8 60%); }
.auth-logo {
    width: 64px; height: 64px; margin: 0 auto;
    display: grid; place-items: center;
    border-radius: 50%;
    background: var(--brand); color: #fff; font-size: 1.8rem;
}

.ts-wrapper.form-control, .ts-wrapper .ts-control { min-height: calc(1.5em + 1rem + 2px); }

@media print {
    nav, .btn, form, details, .alert { display: none !important; }
    body { background: #fff; }
    .card { box-shadow: none !important; border: 1px solid #ddd !important; break-inside: avoid; }
}

.btn-google {
    --bs-btn-bg: #fff;
    --bs-btn-color: #3c4043;
    --bs-btn-border-color: #dadce0;
    --bs-btn-hover-bg: #f8f9fa;
    --bs-btn-hover-border-color: #c6c9cc;
    --bs-btn-hover-color: #3c4043;
    --bs-btn-active-bg: #f1f3f4;
    display: flex; align-items: center; justify-content: center; gap: .6rem;
    font-weight: 500;
}

.separador { display: flex; align-items: center; gap: .75rem; }
.separador::before, .separador::after { content: ""; flex: 1; border-top: 1px solid #dee2e6; }
