.page-heading{margin:0 0 1.5rem}.page-heading h1{font-size:1.75rem;margin-bottom:.35rem}.page-heading p{color:#64748b;margin:0}.task-link{align-items:center;border:1px solid #dbe2ea;border-radius:.65rem;color:#172033;display:flex;gap:1rem;padding:1.25rem;text-decoration:none;background:#fff;height:100%}.task-link:hover{border-color:#2457a7;box-shadow:0 .25rem .75rem rgba(15,23,42,.08);color:#163f7a}.task-link i{color:#2457a7;font-size:1.75rem}.task-link span{display:flex;flex-direction:column}.task-link small{color:#64748b;margin-top:.2rem}.navbar .dropdown-menu{max-height:70vh;overflow:auto}.table td,.table th{vertical-align:middle}.empty-state{border:1px dashed #cbd5e1;border-radius:.5rem;color:#64748b;padding:2rem;text-align:center}
/* Menú circular institucional */
.menu-circular-page {
    min-height: 52vh;
    padding: 4.5rem 0 3rem;
}
.archive-heading {
    align-items: flex-end;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    margin: 0 auto 2.5rem;
    max-width: 1120px;
}
.archive-heading h1 {
    color: #1f2937;
    font-size: clamp(1.85rem, 2.6vw, 2.6rem);
    font-weight: 700;
    letter-spacing: 0;
    margin: 0 0 .45rem;
}
.archive-heading p {
    color: #64748b;
    margin: 0;
}
.archive-kicker {
    color: var(--assrp-blue-700) !important;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: .4rem !important;
    text-transform: uppercase;
}
.archive-route {
    align-items: center;
    border: 1px solid var(--assrp-border);
    border-radius: 999px;
    color: var(--assrp-blue-900);
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: .65rem .9rem;
    white-space: nowrap;
}
.archive-route span {
    background: var(--assrp-blue-100);
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    padding: .25rem .55rem;
}
.archive-route i {
    color: var(--assrp-blue-700);
    font-size: .9rem;
}
.circle-menu {
    align-items: start;
    display: grid;
    gap: 2rem 2.3rem;
    grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
    margin: 0 auto;
    max-width: 980px;
}
.circle-menu-item {
    align-items: center;
    color: #1f2937;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    text-align: center;
    text-decoration: none;
}
.circle-menu-button {
    align-items: center;
    background: var(--assrp-blue-700);
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 .85rem 1.8rem rgba(15, 23, 42, .18);
    color: #fff;
    display: flex;
    height: 104px;
    justify-content: center;
    outline: 1px solid rgba(29, 95, 159, .22);
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
    width: 104px;
}
.circle-menu-button i {
    font-size: 2.35rem;
    line-height: 1;
}
.circle-menu-primary .circle-menu-button {
    background: var(--assrp-blue-800);
    height: 116px;
    width: 116px;
}
.circle-menu-secondary .circle-menu-button {
    background: var(--assrp-blue-700);
}
.circle-menu-quiet .circle-menu-button {
    background: var(--assrp-blue-900);
    height: 92px;
    width: 92px;
}
.circle-menu-item:hover,
.circle-menu-item:focus {
    color: var(--assrp-blue-900);
}
.circle-menu-item:hover .circle-menu-button,
.circle-menu-item:focus .circle-menu-button {
    box-shadow: 0 1rem 2rem rgba(15, 23, 42, .24);
    transform: translateY(-4px);
}
.circle-menu-label {
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.2;
    max-width: 9rem;
}
.empty-state-permissions {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin: 2rem auto;
    max-width: 520px;
}
.empty-state-permissions i {
    color: #64748b;
    font-size: 2.2rem;
}
.login-brand {
    align-items: center;
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
}
.login-brand img {
    height: 48px;
    width: 48px;
}
.login-brand strong {
    display: block;
    font-size: 1.08rem;
}
.login-brand span {
    color: #64748b;
    display: block;
    font-size: .9rem;
}
.login-help {
    background: var(--assrp-blue-100);
    border-left: 4px solid var(--assrp-blue-700);
    color: var(--assrp-blue-900);
    font-size: .92rem;
    margin-bottom: 1rem;
    padding: .75rem .9rem;
}
.validation-note {
    background: var(--assrp-blue-50);
    border: 1px solid var(--assrp-border);
    border-radius: .5rem;
    color: var(--assrp-blue-900);
    margin-top: .75rem;
    padding: .75rem .9rem;
}
.manual-capture-link {
    margin-top: .75rem;
}
@media (prefers-reduced-motion: no-preference) {
    .circle-menu-item {
        animation: circleMenuIn .34s ease both;
    }
    .circle-menu-item:nth-child(2) { animation-delay: .04s; }
    .circle-menu-item:nth-child(3) { animation-delay: .08s; }
    .circle-menu-item:nth-child(4) { animation-delay: .12s; }
    .circle-menu-item:nth-child(5) { animation-delay: .16s; }
    @keyframes circleMenuIn {
        from { opacity: 0; transform: translateY(12px); }
        to { opacity: 1; transform: translateY(0); }
    }
}
@media (max-width: 767.98px) {
    .menu-circular-page {
        padding-top: 2rem;
    }
    .archive-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .archive-route {
        border-radius: .75rem;
        white-space: normal;
    }
    .circle-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem 1rem;
    }
    .circle-menu-button,
    .circle-menu-primary .circle-menu-button,
    .circle-menu-quiet .circle-menu-button {
        height: 92px;
        width: 92px;
    }
}
