:root {
    --assrp-blue-950: #0b1f3a;
    --assrp-blue-900: #12345b;
    --assrp-blue-800: #164778;
    --assrp-blue-700: #1d5f9f;
    --assrp-blue-600: #2477c3;
    --assrp-blue-100: #dcecff;
    --assrp-blue-50: #f2f7fd;
    --assrp-ink: #182434;
    --assrp-muted: #5d6c80;
    --assrp-border: #d8e2ee;
    --assrp-surface: #ffffff;
    --bs-primary: var(--assrp-blue-700);
    --bs-primary-rgb: 29, 95, 159;
    --bs-link-color: var(--assrp-blue-700);
    --bs-link-hover-color: var(--assrp-blue-900);
}
html { overflow-x: hidden; }
body { background: var(--assrp-blue-50); color: var(--assrp-ink); font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height: 1.55; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { color: var(--assrp-ink); font-weight: 700; }
a { color: var(--assrp-blue-700); text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: var(--assrp-blue-900); }
main > .container { padding-bottom: 2rem; padding-top: 2rem; }
.banner { align-items: center; background: var(--assrp-surface); border-bottom: 1px solid var(--assrp-border); display: flex; justify-content: space-between; min-height: 72px; padding: .65rem max(1rem, calc((100vw - 1320px) / 2)); }
.banner-section { align-items: center; display: flex; }
.logo-section, .logos-section { flex: 1; }
.logos-section { justify-content: flex-end; }
.empty-section { flex: 2; }
.logo { height: auto; margin: 0 .45rem; max-height: 48px; max-width: 150px; object-fit: contain; }
.navbar-azul { background: var(--assrp-blue-900); box-shadow: 0 3px 12px rgba(11, 31, 58, .18); }
.navbar-azul .navbar-brand, .navbar-azul .nav-link { color: #fff; font-weight: 600; }
.navbar-azul .nav-link:hover, .navbar-azul .nav-link:focus, .navbar-azul .nav-link.show { background: rgba(255, 255, 255, .1); color: #fff; }
.navbar-azul .navbar-toggler { border-color: rgba(255, 255, 255, .55); }
.navbar-azul .navbar-toggler-icon { filter: brightness(0) invert(1); }
.navbar .dropdown-menu { border-color: var(--assrp-border); box-shadow: 0 .65rem 1.5rem rgba(11, 31, 58, .14); max-height: 70vh; overflow: auto; }
.navbar .dropdown-item:active { background: var(--assrp-blue-700); }
.btn { border-radius: .45rem; font-weight: 650; }
.btn-primary, .btn-success { background: var(--assrp-blue-700); border-color: var(--assrp-blue-700); color: #fff; }
.btn-primary:hover, .btn-primary:focus, .btn-success:hover, .btn-success:focus { background: var(--assrp-blue-900); border-color: var(--assrp-blue-900); color: #fff; }
.btn-outline-primary, .btn-outline-success { border-color: var(--assrp-blue-700); color: var(--assrp-blue-700); }
.btn-outline-primary:hover, .btn-outline-success:hover { background: var(--assrp-blue-700); border-color: var(--assrp-blue-700); color: #fff; }
.form-label { font-weight: 650; }
.form-control, .form-select { border-color: #aebed0; min-height: 42px; }
.form-control:focus, .form-select:focus { border-color: var(--assrp-blue-600); box-shadow: 0 0 0 .22rem rgba(36, 119, 195, .18); }
.card, .modal-content { background: var(--assrp-surface); border: 1px solid var(--assrp-border); border-radius: .65rem; box-shadow: 0 .4rem 1.15rem rgba(11, 31, 58, .07); }
.modal-header, .card-header { background: var(--assrp-blue-50); border-color: var(--assrp-border); }
fieldset { background: var(--assrp-surface); }
.table-responsive, .grid-view { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table { min-width: 680px; }
.table > :not(caption) > * > * { border-color: var(--assrp-border); }
.grid-view .table thead th, .detail-view th { background: var(--assrp-blue-100); color: var(--assrp-blue-950); white-space: nowrap; }
.table-hover > tbody > tr:hover > * { background: var(--assrp-blue-50); }
.grid-view .summary { color: var(--assrp-muted); font-size: .9rem; padding: .5rem 0; }
.pagination { flex-wrap: wrap; gap: .25rem; }
.pagination .page-link { border-color: var(--assrp-border); color: var(--assrp-blue-700); }
.pagination .active > .page-link { background: var(--assrp-blue-700); border-color: var(--assrp-blue-700); }
.breadcrumb { flex-wrap: wrap; font-size: .9rem; }
#footer { background: #fff; border-top: 4px solid var(--assrp-blue-800); color: var(--assrp-muted); }
#footer .wraper { margin: 0 auto; max-width: 1120px; width: 100%; }
.logo-pie-pagina { height: auto; max-width: 100%; }
.center { align-items: center; display: flex; flex-direction: column; justify-content: center; }
.not-set { color: #9b2c2c; font-style: italic; }
.hint-block, .help-block { color: var(--assrp-muted); display: block; margin-top: .3rem; }
.error-summary { background: #fff2f2; border-left: 4px solid #b42318; color: #7a271a; margin-bottom: 1rem; padding: .8rem 1rem; }
.qr-scanner-container { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 60vh; text-align: center; }
.qr-scanner-frame { background: var(--assrp-blue-100); border: 1px solid var(--assrp-border); border-radius: .75rem; max-width: 430px; padding: 1rem; width: 100%; }
.footer-institution-link { color: var(--assrp-blue-700); font-weight: 700; letter-spacing: .02em; text-decoration: none; }
.footer-institution-link:hover { color: var(--assrp-blue-900); text-decoration: underline; }
#qr-reader { aspect-ratio: 1 / 1; background: #fff; border-radius: .5rem; overflow: hidden; width: 100%; }
@media (max-width: 767.98px) {
    main > .container { max-width: 100%; padding-left: .85rem; padding-right: .85rem; padding-top: 1.25rem; }
    .banner { min-height: 58px; padding: .45rem .65rem; }
    .empty-section { display: none; }
    .logo { margin: 0 .2rem; max-height: 36px; max-width: 100px; }
    .navbar-collapse { padding: .5rem 0; }
    .navbar-azul .nav-link { margin: .1rem 0; padding: .7rem .8rem; }
    h1 { font-size: clamp(1.55rem, 7vw, 2rem); }
    .btn-lg { font-size: 1rem; padding: .7rem 1rem; }
    .card-body { padding: 1rem; }
    fieldset { padding: 1rem !important; }
    .table { font-size: .9rem; }
    #footer { font-size: .85rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
