@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css");

html,
body {
    overflow-x: hidden;
}

html[data-bs-theme="dark"] body {
    background-color: #212121;
}

.alinhar-icone {
    display: flex;
    align-items: center;
    gap: 6px;
}

.icon-xs {
    font-size: 16px;
}

.icon-sm {
    font-size: 20px;
}

.icon-md {
    font-size: 24px;
}

.icon-lg {
    font-size: 36px;
}

.icon-xl {
    font-size: 48px;
}

.icon-xxl {
    font-size: 64px;
}

.btn-outline-primary {
    border-color: #4e73df !important;
    color: #4e73df !important;
}

.btn-primary {
    background-color: #4e73df !important;
    border: none !important;
}

.btn-outline-primary:hover,
.btn-primary:hover {
    background-color: #3b5ece !important;
    border-color: #3b5ec9 !important;
    color: white !important;
}

.btn span.material-symbols-outlined,
.bi {
    font-size: 20px;
    line-height: 1;
    display: inline-block;
}

.material-symbols-outlined,
.bi {
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
    vertical-align: middle;
}

#menuMobileTrigger {
    border: 1px solid;
    min-height: 50px;
    font-weight: 500;
}

#menuMobileDropdown {
    position: absolute;
    overflow-y: auto;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 1000;
}

.btn-icon-split {
    padding: 0;
    overflow: hidden;
    display: inline-flex;
    align-items: stretch;
    justify-content: center;
}

.btn-icon-split .icon {
    background: rgba(0, 0, 0, .15);
    display: inline-block;
    padding: .330rem .30rem;
}

.btn-icon-split .text {
    display: inline-block;
    padding: .350rem .50rem;
}

.activity-timeline {
    position: relative;
}

.activity-item {
    padding: 1.5rem;
    border-radius: 12px;
    transition: all 0.3s ease;
    border: 1px solid rgba(0, 0, 0, 0.05);
    margin-bottom: 1rem;
}

.activity-item:hover {
    transform: translateX(5px);
}

.activity-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.activity-date {
    font-size: 0.85rem;
    color: #6c757d;
}

.activity-user img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
}

.bg-success-soft {
    background-color: #d1e7dd;
}

.bg-danger-soft {
    background-color: #f8d7da;
}

.bg-warning-soft {
    background-color: #fff3cd;
}

.bg-info-soft {
    background-color: #cff4fc;
}

#mobileStickyMenu {
    position: relative;
    top: 0;
    z-index: 1020;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.nav-link,
.dropdown-item,
.list-group a {
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 6px;
}

html[data-bs-theme="dark"] .nav-link.active {
    background-color: #343a40;
    color: #fff;
}

.form-control:focus,
.form-select:focus {
    border-color: #4e73df;
    box-shadow: 0 0 0 0.2rem rgba(78, 115, 223, 0.25);
}

html[data-bs-theme="light"] #loadingOverlay {
    background-color: rgba(255, 255, 255, 0.8);
}

html[data-bs-theme="dark"] #loadingOverlay {
    background-color: rgba(0, 0, 0, 0.8);
}

html[data-bs-theme="light"] #spinner {
    color: #4e73df;
}

html[data-bs-theme="dark"] #spinner {
    color: #31435c;
}

.material-symbols-outlined {
    transition: transform 0.3s ease;
}

.hamburger-icon.rotate .material-symbols-outlined {
    transform: rotate(180deg);
}

.navbar-toggler,
.navbar-toggler:focus {
    box-shadow: none;
    padding: 5px;
}

.dropdown-header img,
.offcanvas .text-center img {
    border: 3px solid var(--bs-secondary-bg);
    transition: transform 0.2s ease;
}

.dropdown-header img:hover,
.offcanvas .text-center img:hover {
    transform: scale(1.05);
}

.dropdown-header b,
.offcanvas .text-center h6 {
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] #loader {
    background-color: rgba(0, 0, 0, 0.75);
}

.title-form {
    color: var(--bs-tertiary-color);
    font-weight: 600;
    padding-top: 0.5rem;
}

.nav-pills .nav-link:hover {
    background-color: rgba(52, 152, 219, 0.1);
}

#pills-tab::-webkit-scrollbar {
    display: none;
}

#pills-tab .nav-item {
    margin: 0;
}

@media (max-width: 768px) {
    .menu-container {
        margin-top: -20px;
    }

    .nav-pills {
        flex-direction: row;
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .nav-pills .nav-link {
        white-space: nowrap;
    }
}

.nav-scroller .nav {
    color: rgba(255, 255, 255, .75);
}

.nav-scroller .nav-link {
    padding-top: .75rem;
    padding-bottom: .75rem;
    font-size: .875rem;
    color: #6c757d;
}

.nav-scroller .nav-link:hover {
    color: #007bff;
}

.nav-scroller .active {
    font-weight: 500;
    color: #343a40;
}

.navbar-nav .nav-item {
    padding: 0px 5px 0px 5px;
}

.active-nav {
    border-radius: 4px;
}

[data-bs-theme="dark"] .active-nav {
    color: white;
    background-color: #31435c;
}

[data-bs-theme="light"] .active-nav {
    color: white;
    background-color: #4e73df;
}

#title-mobile {
    display: none;
}

#profileDesktop {
    display: block;
}

#profileMobile {
    display: none;
}

.dropdown-menu {
    border: none;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, .1);
    border-radius: 0.75rem;
}

.dropdown-header b {
    font-size: 0.95rem;
}

.list-group-item-action:hover {
    background-color: var(--bs-secondary-bg);
}

.nav-link.active {
    font-weight: 600;
}

.hamburger-icon {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #fff;
}

.hamburger-icon:focus {
    outline: none;
    box-shadow: none;
}

@media (max-width: 992px) {
    body {
        padding-top: 90px;
    }

    .offcanvas-collapse {
        position: fixed !important;
        top: 62px;
        bottom: 0;
        left: 100%;
        width: 100%;
        padding-right: 1rem;
        padding-left: 1rem;
        padding-top: 1rem;
        overflow-y: auto;
        visibility: hidden;
        transition: transform .3s ease-in-out, visibility .3s ease-in-out;
    }

    .offcanvas-collapse.open {
        visibility: visible;
        transform: translateX(-100%);
        z-index: 9999 !important;
    }

    .navbar-nav .nav-item {
        padding: 5px 5px 5px 5px;
    }

    .nav-item .nav-link {
        padding-left: 15px;
        padding-right: 15px;
    }

    .dropdown-menu {
        position: absolute;
        top: 100px;
        right: 0;
        width: 100%;
    }

    #title-mobile {
        display: block;
    }

    #profileDesktop {
        display: none;
    }

    #profileMobile {
        display: block;
    }
}

.footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px 15px 0px 0px;
    z-index: 1020;
}

@media (min-width: 992px) {
    body {
        padding-top: 160px;
    }
}

.stat-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
}

.stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.progress {
    height: 8px;
}

.trend-badge {
    position: absolute;
    top: 20px;
    right: 20px;
}

.stat-icon {
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
}

.search-input:focus {
    border-color: #007bff;
    box-shadow: none;
}

.search-icon {
    position: absolute;
    right: 20px;
    color: #666;
}

.filter-chip:hover {
    background: #007bff;
    color: white;
}

.filter-chip.active {
    background: #007bff;
    color: white;
    border-color: #007bff;
}

.filter-chip i {
    margin-right: 5px;
    font-size: 0.9em;
}

.filter-chip input[type="radio"] {
    display: none;
}

.filter-chip input[type="radio"]:checked+i,
.filter-chip input[type="radio"]:checked~i,
.filter-chip input[type="radio"]:checked+i+span,
.filter-chip input[type="radio"]:checked~span {
    color: white;
}

.filter-chip input[type="radio"]:checked~i,
.filter-chip input[type="radio"]:checked~span {
    color: white;
}

.filter-chip input[type="radio"]:checked+i {
    color: white;
}

.filter-chip input[type="radio"]:checked~* {
    color: white;
}

.filter-chip:has(input[type="radio"]:checked) {
    background: #007bff;
    border-color: #007bff;
    color: white;
}

html[data-bs-theme="dark"] .ui-autocomplete {
    background: #2c2f41;
    border: 1px solid var(--bs-tertiary-color);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
    color: #f5f7fb;
}

html[data-bs-theme="dark"] .ui-menu-item-wrapper {
    color: #f5f7fb;
    padding: 0.5rem 1rem;
}

html[data-bs-theme="dark"] .ui-menu-item-wrapper.ui-state-hover {
    background: #3a3f55;
    color: #fff;
}

.select-link {
    padding: 6px 10px;
    border: none;
    border-bottom: 1px solid #1a73e8;
    background-color: transparent;
    color: #1a73e8;
    font-size: 14px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    transition: color 0.3s ease, border-color 0.3s ease;
    background-image: url("data:image/svg+xml;utf8,<svg fill=\"gray\" height=\"8\" viewBox=\"0 0 20 20\" width=\"8\" xmlns=\"http://www.w3.org/2000/svg\"><polygon points=\"0,0 20,0 10,10\"/></svg>");
    background-repeat: no-repeat;
    background-position: right -1px center;
    background-size: 10px;
}

.select-link:hover,
.select-link:focus {
    color: #0c4a9e;
    border-bottom-color: #0c4a9e;
    outline: none;
}

.select-link::-ms-expand {
    display: none;
}

.form-check-input:checked+.form-checked-content {
    opacity: .5;
}

.form-check-input-placeholder {
    border-style: dashed;
}

[contenteditable]:focus {
    outline: 0;
}

.list-group-checkable .list-group-item {
    cursor: pointer;
}

.list-group-item-check {
    position: absolute;
    clip: rect(0, 0, 0, 0);
}

.list-group-item-check:hover+.list-group-item {
    background-color: var(--bs-secondary-bg);
}

.list-group-item-check:checked+.list-group-item {
    color: #fff;
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.list-group-item-check[disabled]+.list-group-item,
.list-group-item-check:disabled+.list-group-item {
    pointer-events: none;
    filter: none;
    opacity: .5;
}

.list-group-radio .list-group-item:hover,
.list-group-radio .list-group-item:focus {
    background-color: var(--bs-secondary-bg);
}

.list-group-radio .form-check-input:checked+.list-group-item {
    background-color: var(--bs-body);
    border-color: var(--bs-primary);
}

.list-group-radio .form-check-input[disabled]+.list-group-item,
.list-group-radio .form-check-input:disabled+.list-group-item {
    pointer-events: none;
    filter: none;
    opacity: .5;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    background-color: #f5f7fb;
    min-height: 100vh;
    padding-top: 76px !important;
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

.app-header {
    z-index: 1035;
}

.btn-icon {
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
}

.app-avatar {
    width: 38px;
    height: 38px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .65);
}

.profile-avatar {
    width: 82px;
    height: 82px;
    object-fit: cover;
    border-radius: 50%;
}

.context-label,
.menu-section-title {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bs-secondary-color);
    font-weight: 700;
    margin-bottom: .45rem;
}

.app-desktop-nav {
    min-height: 56px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .03);
}

.app-desktop-nav .nav-link:hover {
    color: var(--app-primary);
    background: color-mix(in srgb, var(--app-primary) 7%, transparent);
}

.app-desktop-nav .nav-link.active {
    color: var(--app-primary);
}

.mobile-menu-link:hover,
.mobile-menu-link.active {
    background: color-mix(in srgb, var(--app-primary) 12%, transparent);
    color: var(--app-primary);
}

.mobile-bottom-nav {
    position: fixed;
    z-index: 1030;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 68px;
    padding: .35rem .4rem calc(.35rem + env(safe-area-inset-bottom));
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    background: color-mix(in srgb, var(--bs-body-bg) 94%, transparent);
    border-top: 1px solid var(--app-border);
    backdrop-filter: blur(14px);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .06);
}

.bottom-nav-item {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--bs-secondary-color);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .1rem;
    border-radius: .75rem;
}

.bottom-nav-item .material-symbols-outlined {
    font-size: 25px;
}

.bottom-nav-item small {
    font-size: .68rem;
    font-weight: 650;
    white-space: nowrap;
}

.bottom-nav-item.active {
    color: var(--app-primary);
    background: color-mix(in srgb, var(--app-primary) 10%, transparent);
}

main.container-fluid#app {
    max-width: 1600px;
    padding: 1rem .9rem 2rem;
}

main h3 {
    font-size: clamp(1.35rem, 4vw, 1.85rem);
    font-weight: 750;
    letter-spacing: -.02em;
}

.card {
    border: 1px solid var(--app-border);
    border-radius: var(--app-surface-radius) !important;
    box-shadow: var(--app-shadow);
}

.card.shadow,
.card.shadow-sm {
    box-shadow: var(--app-shadow) !important;
}

.card-header {
    border-radius: var(--app-surface-radius) var(--app-surface-radius) 0 0 !important;
}

.form-control,
.form-select {
    min-height: 48px;
    border-radius: .8rem;
    border-color: var(--app-border);
}

.form-floating>.form-control,
.form-floating>.form-select {
    border-radius: .8rem;
}

.form-check-input {
    cursor: pointer;
}

textarea.form-control {
    min-height: 100px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    min-height: 42px;
    border-radius: .75rem;
    font-weight: 600;
}

.btn-sm {
    min-height: 34px;
    border-radius: .6rem;
}

.btn-link {
    text-decoration: none;
}

table.dataTable {
    margin: 0 !important;
}

.table thead th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .035em;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--app-border);
}

.dataTables_wrapper .row {
    row-gap: .7rem;
}

.dataTables_wrapper .dt-buttons,
.dataTables_wrapper .dataTables_length {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.nav-pills {
    border-bottom: 1px solid var(--app-border);
}

.nav-pills .nav-link {
    color: var(--bs-tertiary-color);
    font-weight: 700;
    padding: 1rem .9rem;
    transition: all 0.3s;
    font-size: .92rem;
}

.nav-pills .nav-link.active {
    color: var(--app-primary);
    border-bottom: 3px solid #4e73df;
    background-color: transparent;
    border-radius: 0;
}

#loadingOverlay {
    z-index: 1100;
    backdrop-filter: blur(5px);
    background: color-mix(in srgb, var(--bs-body-bg) 88%, transparent);
}

.doc-stat {
    padding: .8rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: var(--bs-body-bg);
}

.doc-stat strong {
    display: block;
    font-size: 1.25rem;
}

.doc-card[data-status="1"] {
    border-left: 4px solid var(--bs-success);
}

.doc-card[data-status="2"] {
    border-left: 4px solid var(--bs-danger);
}

.doc-card[data-status="0"] {
    border-left: 4px solid var(--bs-warning);
}

.doc-preview {
    width: 100%;
    min-height: 160px;
    border-radius: .75rem;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
    display: grid;
    place-items: center;
}

.doc-preview img {
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.doc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .75rem;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .3rem .55rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
}

.form-section-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 750;
    margin-bottom: .9rem;
}

@media (max-width: 767.98px) {
    .table-responsive {
        border: 0;
        background: transparent;
        overflow: visible;
    }

    .dataTables_wrapper .row>div {
        width: 100%;
        justify-content: stretch !important;
    }

    .dataTables_wrapper .dt-buttons .btn {
        flex: 1;
    }

    .dataTables_wrapper .pagination {
        justify-content: center !important;
        flex-wrap: wrap;
    }

    .modal-content {
        border-radius: 1.1rem !important;
    }

    .footer {
        bottom: 68px;
        padding: .6rem;
        background: var(--bs-body-bg) !important;
        border-top: 1px solid var(--app-border);
    }

    .doc-review-summary {
        grid-template-columns: 1fr 1fr;
    }

    #add>.card,
    #view>.card {
        margin-left: -.2rem;
        margin-right: -.2rem;
    }
}

@media (min-width: 992px) {
    body {
        padding-top: 138px !important;
        padding-bottom: 0;
    }

    main.container-fluid#app {
        padding: 1.6rem 2rem 3rem;
    }

    .mobile-bottom-nav {
        display: none;
    }

    .doc-review-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.profile-card {
    top: 5.5rem;
}

.profile-photo {
    width: 132px;
    height: 132px;
    object-fit: cover;
    border-radius: 50%;
    border: 4px solid var(--bs-body-bg);
    box-shadow: 0 .4rem 1.4rem rgba(0, 0, 0, .12);
}

.form-section-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.form-section-heading>.material-symbols-outlined {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

@media (max-width: 991.98px) {
    .profile-card {
        position: static !important;
    }
}

.login-body {
    min-height: 100dvh;
    padding: 0 !important;
    overflow-x: hidden;
    background: var(--bs-tertiary-bg);
}

.login-shell {
    min-height: 100dvh;
    display: grid;
    grid-template-columns: 1fr;
}

.login-panel {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(1.25rem, env(safe-area-inset-top)) 1rem max(1.25rem, env(safe-area-inset-bottom));
}

.login-card {
    width: min(100%, 460px);
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1.5rem;
    padding: clamp(1.25rem, 4vw, 2.25rem);
    box-shadow: 0 1.25rem 3.5rem rgba(15, 23, 42, .10);
}

.login-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.login-logo {
    object-fit: contain;
    border-radius: 1rem;
}

.password-toggle {
    position: absolute;
    z-index: 5;
    right: .6rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.65rem;
    height: 2.65rem;
    border: 0;
    border-radius: .8rem;
    display: grid;
    place-items: center;
    color: var(--bs-secondary-color);
    background: transparent;
}

.password-toggle:hover,
.password-toggle:focus-visible {
    background: var(--bs-tertiary-bg);
    color: var(--bs-primary);
}

.login-security-note {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--bs-border-color-translucent);
    color: var(--bs-secondary-color);
    font-size: .825rem;
}

.login-security-note .material-symbols-outlined {
    font-size: 1.15rem;
}

@media (min-width: 992px) {
    .login-shell {
        grid-template-columns: minmax(420px, 1.05fr) minmax(480px, .95fr);
    }

    .login-visual {
        min-height: 100vh;
        align-items: flex-end;
        padding: clamp(3rem, 6vw, 6rem);
        position: relative;
        overflow: hidden;
        color: #fff;
        background: linear-gradient(145deg, #083b88 0%, #0d6efd 58%, #db1f35 145%);
    }

    .login-visual::before,
    .login-visual::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        background: rgba(255, 255, 255, .08);
        pointer-events: none;
    }

    .login-visual::before {
        width: 34rem;
        height: 34rem;
        right: -12rem;
        top: -12rem;
    }

    .login-visual::after {
        width: 20rem;
        height: 20rem;
        left: -7rem;
        bottom: 10%;
    }

    .login-visual-content {
        position: relative;
        z-index: 1;
        max-width: 680px;
    }

    .login-kicker {
        display: inline-flex;
        padding: .45rem .8rem;
        border: 1px solid rgba(255, 255, 255, .35);
        border-radius: 999px;
        font-weight: 700;
        font-size: .8rem;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .login-visual h1 {
        font-size: clamp(2.6rem, 5vw, 4.75rem);
        line-height: .98;
        letter-spacing: -.045em;
        margin: 1.4rem 0 1.25rem;
        max-width: 760px;
    }

    .login-visual p {
        font-size: 1.08rem;
        color: rgba(255, 255, 255, .82);
        max-width: 620px;
    }

    .login-feature-grid {
        display: flex;
        flex-wrap: wrap;
        gap: .75rem;
        margin-top: 2rem;
    }

    .login-feature-grid>div {
        display: flex;
        align-items: center;
        gap: .55rem;
        padding: .7rem .9rem;
        background: rgba(255, 255, 255, .1);
        border: 1px solid rgba(255, 255, 255, .15);
        border-radius: 1rem;
        backdrop-filter: blur(8px);
    }

    .login-feature-grid .material-symbols-outlined {
        font-size: 1.2rem;
    }

    .login-panel {
        background: var(--bs-body-bg);
    }

    .login-card {
        border: 0;
        box-shadow: none;
    }
}

.page-hero {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.page-eyebrow {
    display: block;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-primary);
    margin-bottom: .3rem;
}

.attention-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 .65rem 1.7rem rgba(15, 23, 42, .08);
}

.attention-icon,
.metric-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 1rem;
}

.attention-icon {
    width: 3rem;
    height: 3rem;
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}

.metric-icon {
    width: 2.7rem;
    height: 2.7rem;
    margin-bottom: auto;
}

.metric-label {
    margin-top: 1rem;
    color: var(--bs-secondary-color);
    font-size: .82rem;
    font-weight: 600;
}

.metric-card strong {
    font-size: 1.65rem;
    line-height: 1.1;
    color: var(--bs-body-color);
}

.quick-action:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 40%, var(--bs-border-color));
    background: var(--bs-tertiary-bg);
}

.quick-action>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .85rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.quick-action span:last-child {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pre-filter-panel {
    padding: .85rem;
    border-radius: 1rem;
    background: var(--bs-tertiary-bg);
}

@media (min-width:768px) {
    .page-hero {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .quick-actions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width:1200px) {
    .quick-actions-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.review-criterion {
    padding: 1rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1rem;
    background: var(--bs-body-bg);
}

:root {
    --app-primary: #3f51b5;
    --app-primary-strong: #3045a4;
    --app-surface-radius: 1.1rem;
    --app-shadow: 0 10px 30px rgba(24, 39, 75, .08);
    --app-border: color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    --cmpm-content-max: 1780px;
    --cmpm-page-x: clamp(.9rem, 2.25vw, 2.35rem);
    --cmpm-page-y: clamp(1rem, 2vw, 1.75rem);
    --cmpm-panel-radius: 1.25rem;
    --cmpm-card-shadow: 0 14px 34px rgba(27, 39, 79, .075);
    --cmpm-card-shadow-hover: 0 18px 42px rgba(27, 39, 79, .13);
}

.app-shell {
    width: min(100%, var(--cmpm-content-max));
    margin-inline: auto;
    padding: var(--cmpm-page-y) var(--cmpm-page-x) 3rem;
}

.app-shell>main.container-fluid,
.app-shell>main.container-fluid#app {
    width: 100%;
    max-width: none;
    padding: 0 !important;
    margin: 0;
}

.app-shell .min-w-0 {
    min-width: 0;
}

@media (min-width: 992px) {

    #app>.px-lg-5,
    #app .px-lg-5#add,
    #app .px-lg-5#edit,
    #app .px-lg-5#view {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

.app-topbar>.container-fluid,
.app-desktop-nav>.container-fluid {
    width: min(100%, var(--cmpm-content-max));
    margin-inline: auto;
}

.app-topbar>.container-fluid {
    padding-inline: var(--cmpm-page-x) !important;
}

.app-desktop-nav>.container-fluid {
    padding-inline: var(--cmpm-page-x) !important;
}

.app-topbar {
    min-height: 72px;
    background: linear-gradient(120deg, #3045a4, #5368d4);
    box-shadow: 0 4px 18px rgba(22, 31, 84, .18);
}

.app-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.app-desktop-nav .nav {
    scrollbar-width: none;
}

.app-desktop-nav .nav::-webkit-scrollbar {
    display: none;
}

.app-desktop-nav .nav-link {
    min-height: 56px;
    padding: .8rem .95rem;
    color: var(--bs-secondary-color);
    font-weight: 600;
    border-bottom: 3px solid transparent;
    gap: .45rem;
    white-space: nowrap;
    border-radius: .75rem .75rem 0 0;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.app-profile-button {
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 0;
    padding: .35rem .55rem;
    border-radius: .9rem;
}

.app-profile-button:hover {
    background: rgba(255, 255, 255, .11);
}

.app-shell .card,
.dashboard-panel {
    border-color: color-mix(in srgb, var(--bs-border-color) 72%, transparent);
}

.app-shell .card {
    box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
}

.app-shell .card-body {
    min-width: 0;
}

.app-shell h1,
.app-shell h2,
.app-shell h3 {
    letter-spacing: -.025em;
}

.app-shell .text-body-secondary {
    line-height: 1.5;
}

#app>.d-flex.justify-content-between.align-items-center.mb-3,
#app>.d-flex.justify-content-between.align-items-center.mb-4 {
    min-height: 58px;
    gap: 1rem;
    flex-wrap: wrap;
}

#app>.d-flex.justify-content-between.align-items-center.mb-3>h3,
#app>.d-flex.justify-content-between.align-items-center.mb-4>h3 {
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    font-weight: 760;
}

.category-filters {
    padding: 1rem;
    border-radius: 1rem;
    margin-bottom: .65rem;
    border: 1px solid var(--app-border);
    background: color-mix(in srgb, var(--bs-body-bg) 90%, var(--bs-tertiary-bg));
}

.search-input-group {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.search-input {
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    padding: .7rem 3rem .7rem 1rem;
    padding-right: 50px;
    width: 100%;
    transition: all 0.3s ease;
    min-height: 50px;
    background: var(--bs-body-bg);
    font-size: .94rem;
    border-width: 1px;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: .55rem .85rem;
    margin: .2rem .15rem;
    border: 1px solid var(--bs-tertiary-color);
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
    font-size: 0.95em;
    border-color: var(--app-border);
    background: var(--bs-body-bg);
    min-height: 40px;
    font-weight: 600;
}

.table> :not(caption)>*>* {
    padding: .9rem .9rem;
    vertical-align: middle;
}

.table .btn-group .btn {
    min-width: 40px;
    min-height: 38px;
}

.dataTables_wrapper {
    width: 100%;
}

#add>.card,
#edit>.card,
#view>.card,
#app>.card.shadow.mb-5 {
    max-width: none;
}

#pills-tab {
    scrollbar-width: thin;
    -ms-overflow-style: none;
    gap: .2rem;
    padding-inline: .4rem;
}

#pills-tab .nav-link {
    margin: 0;
    border-radius: .75rem .75rem 0 0;
    min-height: 54px;
    color: var(--bs-secondary-color);
    font-weight: 650;
}

#pills-tab .nav-link.active {
    background: transparent;
    color: var(--bs-primary);
}

.form-section {
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    margin-bottom: 1rem;
}

.dashboard-page {
    display: block;
}

.dashboard-hero {
    padding: clamp(.15rem, .6vw, .55rem) 0;
    align-items: flex-start;
}

.dashboard-title {
    font-size: clamp(1.75rem, 4vw, 2.55rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--bs-emphasis-color);
}

.dashboard-context {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.attention-card {
    align-items: center;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--bs-warning) 35%, var(--bs-border-color));
    border-radius: 1.1rem;
    background: color-mix(in srgb, var(--bs-warning-bg-subtle) 55%, var(--bs-body-bg));
    color: inherit;
    transition: .18s ease;
    min-height: 78px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
}

.attention-arrow {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
}

.dashboard-metrics {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
}

.metric-card {
    display: grid;
    flex-direction: column;
    min-height: 112px;
    padding: 1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--app-border);
    border-radius: 1.2rem;
    color: inherit;
    box-shadow: 0 9px 26px rgba(15, 23, 42, .055);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    position: relative;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
    overflow: hidden;
}

.metric-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--metric-accent, var(--bs-primary));
    opacity: .9;
}

.metric-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--cmpm-card-shadow-hover);
    border-color: color-mix(in srgb, var(--metric-accent, var(--bs-primary)) 34%, var(--bs-border-color));
}

.metric-card-green {
    --metric-accent: #198754;
    --metric-soft: rgba(25, 135, 84, .12);
}

.metric-card-blue {
    --metric-accent: #0d6efd;
    --metric-soft: rgba(13, 110, 253, .12);
}

.metric-card-amber {
    --metric-accent: #c28500;
    --metric-soft: rgba(255, 193, 7, .18);
}

.metric-card-cyan {
    --metric-accent: #0aa2c0;
    --metric-soft: rgba(13, 202, 240, .16);
}

.metric-card-red {
    --metric-accent: #dc3545;
    --metric-soft: rgba(220, 53, 69, .12);
}

.metric-card .metric-icon {
    width: 3rem;
    height: 3rem;
    margin: 0;
    border-radius: .95rem;
    color: var(--metric-accent);
    background: var(--metric-soft);
}

.metric-card .metric-icon .material-symbols-outlined {
    font-size: 1.55rem;
}

.metric-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.metric-copy .metric-label {
    margin: 0 0 .1rem;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.metric-copy strong {
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1.05;
}

.metric-copy small {
    margin-top: .2rem;
    color: var(--bs-secondary-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.metric-go {
    color: var(--bs-secondary-color);
    opacity: .55;
    transition: transform .18s ease, opacity .18s ease;
}

.metric-card:hover .metric-go {
    transform: translateX(3px);
    opacity: 1;
    color: var(--metric-accent);
}

.dashboard-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.dashboard-panel {
    min-width: 0;
    padding: clamp(1rem, 2.1vw, 1.35rem);
    border: 1px solid var(--app-border);
    border-radius: var(--cmpm-panel-radius);
    background: var(--bs-body-bg);
    box-shadow: var(--cmpm-card-shadow);
}

.panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}

.panel-heading h2 {
    margin: .1rem 0 .2rem;
    font-size: 1.05rem;
    font-weight: 780;
}

.panel-heading p {
    margin: 0;
    color: var(--bs-secondary-color);
    font-size: .84rem;
}

.panel-kicker {
    display: block;
    color: var(--bs-primary);
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .075em;
}

.dashboard-list {
    display: grid;
    gap: .35rem;
}

.dashboard-list-item,
.recent-pre-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    padding: .75rem;
    border-radius: .9rem;
    text-decoration: none;
    color: inherit;
    transition: background-color .16s ease, transform .16s ease;
}

.dashboard-list-item:hover,
.recent-pre-item:hover {
    background: var(--bs-tertiary-bg);
    transform: translateX(2px);
}

.list-avatar {
    width: 2.55rem;
    height: 2.55rem;
    display: grid;
    place-items: center;
    border-radius: .82rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.list-avatar .material-symbols-outlined {
    font-size: 1.3rem;
}

.list-avatar-soft {
    background: var(--bs-tertiary-bg);
}

.list-content {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.list-content strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .9rem;
}

.list-content small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-secondary-color);
}

.list-meta {
    color: var(--bs-secondary-color);
    font-size: .73rem;
    white-space: nowrap;
}

.dashboard-empty {
    min-height: 210px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .35rem;
    text-align: center;
    color: var(--bs-secondary-color);
}

.dashboard-empty .material-symbols-outlined {
    font-size: 2.3rem;
    opacity: .55;
}

.workflow-rate {
    padding: 1rem;
    border-radius: 1rem;
    background: var(--bs-tertiary-bg);
}

.workflow-rate-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .7rem;
}

.workflow-rate-top span {
    color: var(--bs-secondary-color);
    font-size: .82rem;
    font-weight: 600;
}

.workflow-rate-top strong {
    font-size: 1.35rem;
}

.workflow-rate .progress {
    height: .55rem;
    border-radius: 999px;
}

.workflow-stats {
    display: grid;
    gap: .15rem;
    margin-top: .8rem;
}

.workflow-stats>div {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .55rem;
    min-height: 42px;
    padding: .45rem .2rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.workflow-stats>div:last-child {
    border-bottom: 0;
}

.workflow-stats span:nth-child(2) {
    color: var(--bs-secondary-color);
    font-size: .84rem;
}

.status-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
}

.status-dot-warning {
    background: var(--bs-warning);
}

.status-dot-success {
    background: var(--bs-success);
}

.status-dot-danger {
    background: var(--bs-danger);
}

.status-dot-primary {
    background: var(--bs-primary);
}

.quick-actions-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
}

.quick-action {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .9rem 1rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1rem;
    text-decoration: none;
    color: inherit;
    background: var(--bs-body-bg);
    transition: .18s ease;
    position: relative;
    min-height: 92px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .035);
}

.quick-action>.material-symbols-outlined:first-child {
    flex: 0 0 2.85rem;
}

.quick-action span:nth-child(2) {
    padding-right: 1.3rem;
}

.quick-action strong {
    font-size: .9rem;
}

.quick-action small {
    color: var(--bs-secondary-color);
    margin-top: .12rem;
    line-height: 1.35;
}

.quick-action-arrow {
    position: absolute;
    right: .7rem;
    color: var(--bs-secondary-color) !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
    opacity: .55;
}

.recent-pre-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .25rem;
}

.recent-pre-item .status-pill {
    white-space: nowrap;
}

.doc-review-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.doc-stat,
.doc-card {
    box-shadow: 0 7px 20px rgba(15, 23, 42, .035);
}

.doc-actions .btn {
    flex: 0 0 auto;
}

@media (max-width: 419.98px) {
    .app-shell {
        padding-inline: .75rem;
    }

    .dashboard-metrics {
        grid-template-columns: 1fr;
    }

    .metric-card {
        min-height: 104px;
    }

    .attention-card {
        align-items: flex-start !important;
    }

    .attention-arrow {
        display: none;
    }

    .list-meta {
        display: none;
    }

    .recent-pre-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .recent-pre-item .status-pill {
        grid-column: 2;
        width: max-content;
    }
}

@media (min-width: 420px) {
    .dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .metric-go {
        display: none;
    }
}

@media (min-width: 640px) {
    .quick-actions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .recent-pre-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem;
    }
}

@media (min-width: 768px) {
    .dashboard-hero {
        align-items: center;
    }

    .metric-card {
        min-height: 124px;
    }

    .metric-go {
        display: inline-block;
    }
}

@media (min-width: 992px) {
    body {
        padding-top: 136px !important;
    }

    .app-shell {
        padding-top: 1.65rem;
    }

    .dashboard-layout {
        grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr);
    }

    .quick-actions-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .recent-pre-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .dashboard-metrics {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .metric-card {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .85rem;
    }

    .metric-go {
        display: none;
    }
}

@media (min-width: 1500px) {
    :root {
        --cmpm-page-x: 2.75rem;
    }

    .metric-go {
        display: inline-block;
    }

    .metric-card {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .recent-pre-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    body {
        padding-top: 76px !important;
        padding-bottom: calc(78px + env(safe-area-inset-bottom));
    }

    .app-shell {
        padding-top: 1rem;
        padding-bottom: 2rem;
    }

    .mobile-bottom-nav {
        min-height: 70px;
        padding-inline: .5rem;
    }

    .bottom-nav-item {
        min-height: 58px;
    }

    .bottom-nav-item small {
        font-size: .66rem;
    }

    .category-filters {
        padding: .75rem;
    }
}

@media (prefers-reduced-motion: reduce) {

    .metric-card,
    .dashboard-list-item,
    .recent-pre-item,
    .quick-action {
        transition: none;
    }
}

.audit-list {
    display: grid;
    gap: .8rem;
}

.audit-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem;
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 7px 24px rgba(15, 23, 42, .045);
}

.audit-icon {
    width: 2.8rem;
    height: 2.8rem;
    display: grid;
    place-items: center;
    border-radius: .85rem;
}

.audit-icon .material-symbols-outlined {
    font-size: 1.35rem;
}

.audit-content {
    min-width: 0;
}

.audit-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.audit-heading h2 {
    margin: 0 0 .15rem;
    font-size: .94rem;
    font-weight: 760;
}

.audit-heading p {
    margin: 0;
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

.audit-heading time {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    white-space: nowrap;
}

.audit-changes {
    margin-top: .7rem;
    padding: .7rem .8rem;
    border-radius: .75rem;
    background: var(--bs-tertiary-bg);
    font-size: .8rem;
    overflow-wrap: anywhere;
}

.audit-details {
    margin-top: .65rem;
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.audit-details summary {
    cursor: pointer;
    width: max-content;
    font-weight: 650;
}

.audit-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    margin-top: .7rem;
}

.audit-meta-grid span {
    display: flex;
    flex-direction: column;
    padding: .65rem;
    border: 1px solid var(--app-border);
    border-radius: .7rem;
}

.audit-meta-grid small {
    color: var(--bs-secondary-color);
}

.audit-meta-grid strong {
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .78rem;
}

.audit-agent {
    margin-top: .55rem;
    padding: .65rem;
    border-radius: .7rem;
    background: var(--bs-tertiary-bg);
    overflow-wrap: anywhere;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .68rem;
}

@media (max-width: 575.98px) {
    .audit-item {
        grid-template-columns: 1fr;
    }

    .audit-icon {
        width: 2.5rem;
        height: 2.5rem;
    }

    .audit-heading {
        flex-direction: column;
        gap: .35rem;
    }

    .audit-meta-grid {
        grid-template-columns: 1fr;
    }
}

.module-hero {
    padding: .2rem 0;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    padding-bottom: 1.1rem;
}

.module-hero .btn {
    flex: 0 0 auto;
}

@media (max-width: 575.98px) {
    .module-hero .btn {
        width: 100%;
    }
}

a:focus-visible,
button:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--bs-primary) 34%, transparent);
    outline-offset: 2px;
}

.btn:focus-visible {
    box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--bs-primary) 24%, transparent) !important;
}

::selection {
    background: color-mix(in srgb, var(--bs-primary) 25%, transparent);
}

html[data-bs-theme="dark"] .metric-card,
html[data-bs-theme="dark"] .dashboard-panel,
html[data-bs-theme="dark"] .audit-item,
html[data-bs-theme="dark"] .category-filters {
    box-shadow: 0 12px 30px rgba(0, 0, 0, .16);
}

html[data-bs-theme="dark"] .app-topbar {
    background: linear-gradient(120deg, #26378f, #4054bd);
}

@media (min-width: 992px) {
    .app-desktop-nav {
        overflow: visible;
    }

    .app-desktop-nav>.container-fluid {
        overflow: visible;
    }

    .app-desktop-menu {
        width: 100%;
        min-width: 0;
        overflow: visible !important;
        flex-wrap: nowrap !important;
        gap: .12rem;
        padding-top: 5px;
    }

    .app-desktop-menu>.nav-item {
        min-width: 0;
        flex: 0 1 auto;
    }

    .app-desktop-menu .nav-link {
        min-height: 30px;
        padding: .68rem clamp(.42rem, .72vw, .82rem);
        font-size: clamp(.76rem, .76vw, .9rem);
        border: 0 !important;
        border-radius: .8rem;
        display: inline-flex;
        align-items: center;
        position: relative;
    }

    .app-desktop-menu .nav-link .material-symbols-outlined {
        font-size: 1.25rem;
    }

    .app-desktop-menu .nav-link.active {
        color: var(--bs-primary);
        background: var(--bs-primary-bg-subtle);
        font-weight: 750;
    }

    .app-desktop-menu .dropdown>.nav-link.active {
        color: var(--bs-primary);
    }

    .app-desktop-menu .dropdown-menu {
        margin-top: .45rem !important;
        border: 1px solid var(--app-border);
        border-radius: .9rem;
        padding: .4rem;
        box-shadow: 0 16px 40px rgba(15, 23, 42, .12);
    }

    .app-desktop-menu .dropdown-item {
        border-radius: .65rem;
        padding: .65rem .75rem;
    }
}

.table-responsive {
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    overflow: hidden;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .035);
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--bs-primary) 35%, transparent) transparent;
}

.dt-container,
.dataTables_wrapper {
    width: 100%;
}

.dt-container .dt-layout-row,
.dataTables_wrapper>.row {
    margin-inline: 0;
    gap: .65rem 0;
}

.dt-container .dt-layout-cell,
.dataTables_wrapper>.row>[class*="col-"] {
    padding-inline: .25rem;
}

.dt-container .dt-length,
.dt-container .dt-search,
.dt-container .dt-info,
.dt-container .dt-paging {
    font-size: .82rem;
    color: var(--bs-secondary-color);
}

.dt-container .dt-length select,
.dataTables_wrapper .dataTables_length select {
    min-height: 38px;
    width: auto;
    padding-top: .35rem;
    padding-bottom: .35rem;
    border-radius: .65rem;
}

.dt-container .dt-paging .dt-paging-button,
.dataTables_wrapper .page-link {
    min-width: 38px;
    min-height: 38px;
    display: inline-grid;
    place-items: center;
    border-radius: .65rem !important;
    margin-inline: .1rem;
}

.dt-container .dt-paging nav {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem;
}

.dt-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.dt-buttons .btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.table.dataTable>thead>tr>th,
.table.dataTable>thead>tr>td {
    white-space: nowrap;
    border-bottom-width: 1px !important;
}

.table.dataTable tbody tr {
    transition: background-color .15s ease, box-shadow .15s ease;
}

.table.dataTable tbody tr:hover>* {
    background: color-mix(in srgb, var(--bs-primary) 4.5%, var(--bs-body-bg));
}

.table.dataTable td .badge {
    font-weight: 700;
    border-radius: 999px;
    padding: .42rem .62rem;
}

.table.dataTable td .btn-group {
    display: inline-flex;
    gap: 0;
}

.table.dataTable td .btn-link {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    /* border-radius: .65rem; */
    color: var(--bs-secondary-color);
}

.table.dataTable td .btn-link:hover {
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control::before,
table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control::before {
    background: var(--bs-primary);
    border: 0;
    box-shadow: none;
}

ul.dtr-details {
    width: 100%;
    margin: 0 !important;
}

ul.dtr-details>li {
    display: grid;
    grid-template-columns: minmax(105px, .7fr) minmax(0, 1fr);
    gap: .7rem;
    padding: .55rem 0 !important;
    border-bottom: 1px solid var(--bs-border-color-translucent) !important;
}

ul.dtr-details .dtr-title {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .035em;
    color: var(--bs-secondary-color);
}

@media (max-width: 767.98px) {
    .table-responsive {
        margin-inline: -.15rem;
        border: 1px solid var(--app-border);
        border-radius: .9rem;
        background: var(--bs-body-bg);
        overflow-x: auto;
    }

    .table.dataTable {
        min-width: 100%;
    }

    .table> :not(caption)>*>* {
        padding: .72rem .65rem;
    }

    .dt-container .dt-layout-row,
    .dataTables_wrapper>.row {
        padding-inline: .45rem;
    }

    .dt-container .dt-layout-cell,
    .dataTables_wrapper>.row>div {
        width: 100% !important;
        text-align: left !important;
    }

    .dt-container .dt-buttons,
    .dataTables_wrapper .dt-buttons {
        width: 100%;
    }

    .dt-container .dt-buttons .btn,
    .dataTables_wrapper .dt-buttons .btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .dt-container .dt-paging nav,
    .dataTables_wrapper .pagination {
        justify-content: center !important;
    }

    .dt-container .dt-info {
        padding-top: .35rem;
        text-align: center;
    }

    ul.dtr-details>li {
        grid-template-columns: 1fr;
        gap: .15rem;
    }
}

.notyf {
    padding: .75rem !important;
}

.notyf__toast {
    max-width: min(360px, calc(100vw - 1.5rem));
    border-radius: .85rem !important;
    box-shadow: 0 14px 38px rgba(15, 23, 42, .18) !important;
    overflow: hidden;
}

.notyf__wrapper {
    padding: .75rem .85rem !important;
    align-items: center !important;
}

.notyf__message {
    font-size: .86rem;
    line-height: 1.35;
}

.notyf__icon {
    margin-right: .65rem !important;
}

.notyf__dismiss {
    opacity: .6;
}

.setup-hint {
    min-height: 150px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .45rem;
    padding: 1.4rem;
    text-align: center;
    color: var(--bs-secondary-color);
    border: 1px dashed color-mix(in srgb, var(--bs-primary) 28%, var(--app-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bs-primary) 3.5%, var(--bs-body-bg));
}

.setup-hint .material-symbols-outlined {
    font-size: 2rem;
    color: var(--bs-primary);
}

.setup-hint strong {
    color: var(--bs-emphasis-color);
}

#add .tab-pane>.row,
#edit .tab-pane>.row {
    row-gap: .9rem;
}

#add .form-floating,
#edit .form-floating {
    height: 100%;
}

#add .form-control,
#add .form-select,
#edit .form-control,
#edit .form-select {
    background-clip: padding-box;
}

#add h5.text-muted,
#edit h5.text-muted {
    margin-top: .35rem;
    padding: .75rem 0 .45rem;
    color: var(--bs-emphasis-color) !important;
    font-size: 1rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

#add h6.text-muted,
#edit h6.text-muted {
    color: var(--bs-secondary-color) !important;
    font-size: .86rem;
}

#add .form-check-inline,
#edit .form-check-inline {
    margin-top: .25rem;
}

@media (min-width:992px) {
    #pills-tab {
        overflow: visible;
        flex-wrap: wrap;
    }

    #pills-tab .nav-item {
        flex: 0 1 auto;
    }
}

.doc-card {
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    padding: 1rem;
    background: var(--bs-body-bg);
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.doc-card .doc-preview {
    margin-block: .85rem !important;
    min-height: 120px;
}

.doc-card .doc-actions {
    margin-top: auto;
    padding-top: .2rem;
}

.doc-card .doc-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
}

.doc-card .doc-actions .material-symbols-outlined {
    font-size: 1.1rem;
}

.doc-section-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1rem 0 .75rem;
}

.doc-section-heading>.material-symbols-outlined {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.doc-section-heading h3 {
    margin: 0;
    font-size: 1rem;
}

.doc-section-heading p {
    margin: 0;
    font-size: .8rem;
    color: var(--bs-secondary-color);
}

.cash-summary-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
    margin-bottom: 1rem;
}

.cash-summary-card {
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
}

.cash-summary-card small {
    color: var(--bs-secondary-color);
    display: block;
    margin-bottom: .25rem;
}

.cash-summary-card strong {
    font-size: 1.35rem;
}

.cash-summary-card .material-symbols-outlined {
    color: var(--bs-primary);
}

.payment-method-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.payment-method-option {
    position: relative;
}

.payment-method-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.payment-method-option label {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .65rem .75rem;
    border: 1px solid var(--app-border);
    border-radius: .8rem;
    cursor: pointer;
    background: var(--bs-body-bg);
    font-weight: 650;
}

.payment-method-option input:checked+label {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-primary) 12%, transparent);
}

@media (min-width:576px) {
    .cash-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .payment-method-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .app-desktop-menu {
        justify-content: space-between;
    }

    .app-desktop-menu .nav-link {
        padding-inline: .38rem;
        font-size: .75rem;
        gap: .28rem;
    }

    .app-desktop-menu .nav-link .material-symbols-outlined {
        font-size: 1.08rem;
    }
}

@media (min-width: 1200px) {
    .app-desktop-menu {
        justify-content: flex-start;
    }
}

.app-desktop-menu .dropdown-item.active,
.app-desktop-menu .dropdown-item:active {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-weight: 700;
}

.audit-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.audit-stat {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .9rem 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
}

.audit-stat>.material-symbols-outlined {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border-radius: .8rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.audit-stat small {
    display: block;
    color: var(--bs-secondary-color);
    font-size: .75rem;
}

.audit-stat strong {
    display: block;
    font-size: 1.35rem;
    line-height: 1.1;
}

.audit-filter-panel {
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .035);
}

.audit-diff {
    margin-top: .8rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .85rem;
    overflow: hidden;
}

.audit-diff-row {
    display: grid;
    grid-template-columns: minmax(115px, .65fr) minmax(0, 1fr) auto minmax(0, 1fr);
    gap: .6rem;
    align-items: center;
    padding: .62rem .75rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    font-size: .78rem;
}

.audit-diff-row:last-child {
    border-bottom: 0;
}

.audit-diff-row>strong {
    font-size: .73rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--bs-secondary-color);
}

.audit-diff-row>.material-symbols-outlined {
    font-size: 1rem;
    color: var(--bs-secondary-color);
}

.audit-before,
.audit-after {
    min-width: 0;
    padding: .38rem .5rem;
    border-radius: .55rem;
    overflow-wrap: anywhere;
}

.audit-before {
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
}

.audit-after {
    background: var(--bs-success-bg-subtle);
    color: var(--bs-success-text-emphasis);
}

.audit-diff-more {
    padding: .6rem .75rem;
    color: var(--bs-secondary-color);
    font-size: .75rem;
}

.audit-meta-wide {
    grid-column: 1 / -1;
}

.cash-flow-table thead th {
    white-space: nowrap;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.cash-flow-table tbody td {
    vertical-align: middle;
}

.payment-method-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .35rem .55rem;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    color: var(--bs-emphasis-color);
    font-size: .74rem;
    font-weight: 700;
    white-space: nowrap;
}

.payment-method-badge .material-symbols-outlined {
    font-size: 1rem;
    color: var(--bs-primary);
}

.payment-status-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-width: 118px;
    min-height: 36px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 750;
}

.payment-status-btn .material-symbols-outlined {
    font-size: 1rem;
}

#ModalPaymentMethod .modal-content {
    border-radius: 1.2rem;
}

#ModalPaymentMethod .modal-header,
#ModalPaymentMethod .modal-footer {
    padding: 1rem 1.15rem;
}

#ModalPaymentMethod .modal-body {
    padding: 1.1rem 1.15rem;
}

@media (min-width: 768px) {
    .audit-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .audit-diff-row {
        grid-template-columns: 1fr;
        gap: .3rem;
    }

    .audit-diff-row>.material-symbols-outlined {
        transform: rotate(90deg);
        margin-inline: auto;
    }

    .payment-method-grid {
        grid-template-columns: 1fr 1fr;
    }

    .cash-flow-table {
        min-width: 720px;
    }
}

@media (max-width: 420px) {
    .audit-stats-grid {
        grid-template-columns: 1fr;
    }

    .payment-method-grid {
        grid-template-columns: 1fr;
    }
}

.cash-summary-card.cash-in .material-symbols-outlined {
    color: var(--bs-success);
}

.cash-summary-card.cash-out .material-symbols-outlined {
    color: var(--bs-danger);
}

.cash-summary-card.cash-balance {
    background: color-mix(in srgb, var(--bs-primary) 3.5%, var(--bs-body-bg));
}

.cash-method-grid .payment-method-option label {
    min-height: 54px;
}

@media (min-width: 576px) and (max-width: 991.98px) {
    .cash-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .cash-summary-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .app-desktop-menu {
        width: 100%;
        max-width: 100%;
        flex-wrap: nowrap;
        overflow: visible !important;
        scrollbar-width: none;
    }

    .app-desktop-menu::-webkit-scrollbar {
        display: none;
    }

    .app-desktop-menu>.nav-item {
        flex: 0 1 auto;
        min-width: 0;
    }

    .app-desktop-menu .nav-link {
        white-space: nowrap;
    }
}

@media (min-width: 992px) and (max-width: 1099.98px) {
    .app-desktop-menu .nav-link {
        padding-inline: .3rem;
        font-size: .71rem;
        gap: .2rem;
    }

    .app-desktop-menu .nav-link .material-symbols-outlined {
        display: none;
    }
}

.app-profile-menu {
    --profile-menu-width: 320px;
    width: min(var(--profile-menu-width), calc(100vw - 20px));
    min-width: min(var(--profile-menu-width), calc(100vw - 20px));
    max-width: calc(100vw - 20px);
    padding: 0;
    margin-top: .55rem !important;
    border: 0;
    border-radius: 18px;
    background: var(--bs-body-bg);
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .16),
        0 4px 14px rgba(15, 23, 42, .08) !important;
    animation: appProfileMenuIn .18s ease-out;
}

@keyframes appProfileMenuIn {
    from {
        opacity: 0;
        transform: translateY(-5px) scale(.985);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.app-profile-header {
    position: relative;
    padding: 15px 16px;
    background: var(--bs-body-bg);
    border-top: 3px solid var(--bs-primary);
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.app-profile-cover {
    display: none !important;
}

.app-profile-user {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.app-profile-avatar-wrapper {
    position: relative;
    flex: 0 0 auto;
}

.app-profile-avatar {
    width: 50px;
    height: 50px;
    display: block;
    object-fit: cover;
    border: 2px solid var(--bs-body-bg);
    border-radius: 15px;
    background: var(--bs-tertiary-bg);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .10),
        0 1px 3px rgba(15, 23, 42, .08);
}

.app-profile-status {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 12px;
    height: 12px;
    border: 2px solid var(--bs-body-bg);
    border-radius: 50%;
    background: var(--bs-success);
    box-shadow: 0 1px 5px rgba(0, 0, 0, .16);
}

.app-profile-info {
    min-width: 0;
    flex: 1;
}

.app-profile-name {
    margin: 0 0 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-emphasis-color);
    font-size: .88rem;
    font-weight: 750;
    line-height: 1.2;
}

.app-profile-role {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: fit-content;
    max-width: 100%;
    padding: 4px 8px;
    overflow: hidden;
    border-radius: 999px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: .64rem;
    font-weight: 650;
    line-height: 1.2;
}

.app-profile-role>span:not(.material-symbols-outlined) {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-profile-role .material-symbols-outlined {
    flex: 0 0 auto;
    font-size: 13px;
}

.app-profile-section {
    padding: 8px 10px 10px;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.app-profile-actions {
    padding: 8px;
}

.app-profile-action {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 8px 9px;
    border-radius: 13px;
    color: var(--bs-body-color);
    text-decoration: none;
    transition: background-color .16s ease,
        color .16s ease,
        transform .16s ease;
}

.app-profile-action+.app-profile-action {
    margin-top: 2px;
}

.app-profile-action:hover,
.app-profile-action:focus-visible {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    transform: translateX(2px);
}

.app-profile-action-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.app-profile-action-icon .material-symbols-outlined {
    font-size: 19px;
}

.app-profile-action-content {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.app-profile-action-content strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .77rem;
    font-weight: 700;
    line-height: 1.3;
}

.app-profile-action-content small {
    margin-top: 1px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-secondary-color);
    font-size: .61rem;
    line-height: 1.3;
}

.app-profile-action-arrow {
    flex: 0 0 auto;
    color: var(--bs-secondary-color);
    font-size: 18px;
    transition: color .16s ease,
        transform .16s ease;
}

.app-profile-action:hover .app-profile-action-arrow {
    color: var(--bs-primary);
    transform: translateX(2px);
}

.app-profile-action-danger .app-profile-action-icon {
    color: var(--bs-danger);
    background: var(--bs-danger-bg-subtle);
}

.app-profile-action-danger:hover,
.app-profile-action-danger:focus-visible {
    color: var(--bs-danger);
    background: color-mix(in srgb,
            var(--bs-danger-bg-subtle) 55%,
            var(--bs-body-bg));
}

.app-profile-action-danger:hover .app-profile-action-arrow {
    color: var(--bs-danger);
}

.app-profile-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 30px;
    padding: 7px 10px;
    border-top: 1px solid var(--bs-border-color-translucent);
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    font-size: .58rem;
    font-weight: 500;
}

.app-profile-footer .material-symbols-outlined {
    font-size: 12px;
}

.app-profile-trigger {
    display: flex;
    align-items: center;
    gap: 9px;
    max-width: 245px;
    padding: 5px 8px;
    border: 0;
    border-radius: 14px;
    color: inherit;
    background: transparent;
    transition: background-color .16s ease,
        box-shadow .16s ease,
        transform .16s ease;
}

.app-profile-trigger:hover,
.app-profile-trigger:focus-visible,
.app-profile-trigger.show {
    background: rgba(255, 255, 255, .13);
}

.app-profile-trigger:active {
    transform: scale(.985);
}

.app-profile-trigger-avatar {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: block;
    border: 2px solid rgba(255, 255, 255, .65);
    border-radius: 12px;
    object-fit: cover;
    background: var(--bs-tertiary-bg);
}

.app-profile-trigger-info {
    min-width: 0;
    max-width: 135px;
    text-align: left;
}

.app-profile-trigger-info strong,
.app-profile-trigger-info small {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-profile-trigger-info strong {
    font-size: .78rem;
    font-weight: 750;
    line-height: 1.2;
}

.app-profile-trigger-info small {
    margin-top: 2px;
    opacity: .82;
    font-size: .62rem;
    line-height: 1.2;
}

.app-profile-trigger-arrow {
    flex: 0 0 auto;
    font-size: 19px;
    opacity: .78;
    transition: transform .18s ease;
}

.app-profile-trigger.show .app-profile-trigger-arrow {
    transform: rotate(180deg);
}

[data-bs-theme="dark"] .app-profile-menu {
    box-shadow: 0 18px 55px rgba(0, 0, 0, .42) !important;
}

[data-bs-theme="dark"] .app-profile-header {
    border-bottom-color: rgba(255, 255, 255, .08);
}

[data-bs-theme="dark"] .app-profile-section,
[data-bs-theme="dark"] .app-profile-footer {
    border-color: rgba(255, 255, 255, .08);
}

@media (max-width: 991.98px) {
    .app-profile-trigger {
        padding: 5px;
    }

    .app-profile-trigger-avatar {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }
}

@media (max-width: 575.98px) {
    .app-profile-menu {
        width: calc(100vw - 20px);
        min-width: 0;
        max-width: calc(100vw - 20px);
        margin-inline: 10px;
        border-radius: 17px;
    }

    .app-profile-header {
        padding: 14px;
    }

    .app-profile-avatar {
        width: 48px;
        height: 48px;
        border-radius: 14px;
    }

    .app-profile-user {
        gap: 10px;
    }

    .app-profile-section {
        padding-inline: 8px;
    }

    .app-profile-actions {
        padding-inline: 7px;
    }

    .app-profile-action {
        min-height: 52px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .app-profile-menu,
    .app-profile-trigger,
    .app-profile-trigger-arrow,
    .app-profile-action,
    .app-profile-action-arrow {
        animation: none;
        transition: none;
    }
}



.app-profile-section-title {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 4px 5px 8px;
    color: var(--bs-secondary-color);
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.app-profile-section-title .material-symbols-outlined {
    font-size: 14px;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.app-offcanvas {
    width: min(var(--mobile-menu-width),
            calc(100vw - 22px)) !important;
    --mobile-menu-width: 340px;
    border: 0 !important;
    background: var(--bs-body-bg);
    box-shadow: 18px 0 55px rgba(15, 23, 42, .14);
}

.app-mobile-header {
    position: relative;
    min-height: 94px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: calc(14px + env(safe-area-inset-top)) 14px 14px;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    background: linear-gradient(145deg,
            color-mix(in srgb,
                var(--bs-primary) 9%,
                var(--bs-body-bg)),
            var(--bs-body-bg) 65%);
}

.app-mobile-user {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
}

.app-mobile-avatar-wrapper {
    position: relative;
    flex: 0 0 auto;
}

.app-mobile-avatar {
    width: 52px;
    height: 52px;
    display: block;
    object-fit: cover;
    border: 2px solid var(--bs-body-bg);
    border-radius: 16px;
    background: var(--bs-tertiary-bg);
    box-shadow: 0 5px 16px rgba(15, 23, 42, .12);
}

.app-mobile-status {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 12px;
    height: 12px;
    border: 2px solid var(--bs-body-bg);
    border-radius: 50%;
    background: var(--bs-success);
}

.app-mobile-user-info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.app-mobile-kicker {
    margin-bottom: 2px;
    color: var(--bs-secondary-color);
    font-size: .56rem;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.app-mobile-user-name {
    max-width: 185px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-emphasis-color);
    font-size: .86rem;
    font-weight: 780;
    line-height: 1.2;
}

.app-mobile-role {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: .59rem;
    font-weight: 700;
}

.app-mobile-role .material-symbols-outlined {
    font-size: 12px;
}

.app-mobile-close {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 12px;
    color: var(--bs-secondary-color);
    background: transparent;
    transition: background-color .16s ease,
        color .16s ease,
        transform .16s ease;
}

.app-mobile-close:hover,
.app-mobile-close:focus-visible {
    color: var(--bs-emphasis-color);
    background: var(--bs-tertiary-bg);
}

.app-mobile-close:active {
    transform: scale(.94);
}

.app-mobile-close .material-symbols-outlined {
    font-size: 22px;
}

.app-mobile-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb,
            var(--bs-primary) 30%,
            transparent) transparent;
}

.app-mobile-body::-webkit-scrollbar {
    width: 5px;
}

.app-mobile-body::-webkit-scrollbar-track {
    background: transparent;
}

.app-mobile-body::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: color-mix(in srgb,
            var(--bs-primary) 30%,
            transparent);
}

.app-mobile-section-label {
    min-height: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 2px 7px;
    color: var(--bs-secondary-color);
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.app-mobile-section-label .material-symbols-outlined {
    font-size: 15px;
}

.app-mobile-menu {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.mobile-menu-link {
    display: grid;
    align-items: center;
    gap: 9px;
    padding: 6px 9px;
    margin-bottom: .25rem;
    border-radius: 13px;
    text-decoration: none;
    color: var(--bs-body-color);
    font-weight: 620;
    position: relative;
    min-height: 50px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    margin: 0;
    border: 1px solid transparent;
    background: transparent;
    font-size: .76rem;
    transition: color .16s ease,
        background-color .16s ease,
        border-color .16s ease,
        transform .16s ease,
        box-shadow .16s ease;
}

.mobile-menu-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: var(--bs-secondary-color);
    background: color-mix(in srgb,
            var(--bs-tertiary-bg) 86%,
            transparent);
    transition: color .16s ease,
        background-color .16s ease;
}

.mobile-menu-icon .material-symbols-outlined {
    font-size: 19px;
}

.mobile-menu-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mobile-menu-arrow {
    color: var(--bs-secondary-color);
    font-size: 18px;
    opacity: .5;
    transition: opacity .16s ease,
        transform .16s ease;
}

.mobile-menu-link:hover {
    color: var(--bs-emphasis-color);
    background: var(--bs-tertiary-bg);
    transform: translateX(2px);
}

.mobile-menu-link:hover .mobile-menu-arrow {
    opacity: .9;
    transform: translateX(2px);
}

.mobile-menu-link.active {
    color: var(--bs-primary);
    border-color: color-mix(in srgb,
            var(--bs-primary) 12%,
            transparent);
    background: color-mix(in srgb,
            var(--bs-primary-bg-subtle) 72%,
            var(--bs-body-bg));
    box-shadow: inset 3px 0 0 var(--bs-primary);
    font-weight: 730;
}

.mobile-menu-link.active .mobile-menu-icon {
    color: var(--bs-primary);
    background: color-mix(in srgb,
            var(--bs-primary-bg-subtle) 82%,
            var(--bs-body-bg));
}

.mobile-menu-active-dot {
    width: 8px;
    height: 8px;
    margin-right: 4px;
    border-radius: 50%;
    background: var(--bs-primary);
    box-shadow: 0 0 0 4px color-mix(in srgb,
            var(--bs-primary) 11%,
            transparent);
}

.app-mobile-menu-group {
    margin-top: 9px;
}

.app-mobile-menu-group:first-child {
    margin-top: 0;
}

.app-mobile-menu-group-title {
    margin: 8px 7px 4px;
    color: var(--bs-secondary-color);
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.app-mobile-menu-group-items {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.app-mobile-access-section {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--bs-border-color-translucent);
}

.app-mobile-access-card {
    padding: 6px;
    border-radius: 15px;
    background: color-mix(in srgb,
            var(--bs-tertiary-bg) 78%,
            var(--bs-body-bg));
}

.app-mobile-access-card .context-label {
    display: none;
}

.app-mobile-access-card .list-group-radio {
    display: flex;
    flex-direction: column;
    gap: 5px;
    max-height: 180px;
    overflow-y: auto;
    scrollbar-width: thin;
    padding: 3px;
}

.app-mobile-access-card .list-group-radio .list-group-item {
    min-height: 44px;
    margin: 0;
    padding: 20px 40px 8px 11px;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 11px !important;
    background: var(--bs-body-bg);
    font-size: .72rem;
    font-weight: 600;
}

.app-mobile-footer {
    flex: 0 0 auto;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--bs-border-color-translucent);
    background: color-mix(in srgb,
            var(--bs-body-bg) 96%,
            transparent);
    backdrop-filter: blur(14px);
}

.app-mobile-account-action {
    min-height: 48px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 6px 8px;
    border-radius: 12px;
    color: var(--bs-body-color);
    text-decoration: none;
    transition: background-color .16s ease,
        transform .16s ease;
}

.app-mobile-account-action+.app-mobile-account-action {
    margin-top: 2px;
}

.app-mobile-account-action:hover {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    transform: translateX(2px);
}

.app-mobile-account-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.app-mobile-account-icon .material-symbols-outlined {
    font-size: 18px;
}

.app-mobile-account-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.app-mobile-account-copy strong {
    font-size: .73rem;
    font-weight: 700;
}

.app-mobile-account-copy small {
    margin-top: 1px;
    color: var(--bs-secondary-color);
    font-size: .58rem;
}

.app-mobile-account-arrow {
    color: var(--bs-secondary-color);
    font-size: 18px;
    opacity: .6;
}

.app-mobile-account-danger .app-mobile-account-icon {
    color: var(--bs-danger);
    background: var(--bs-danger-bg-subtle);
}

.app-mobile-account-danger:hover {
    color: var(--bs-danger);
}

[data-bs-theme="dark"] .app-offcanvas {
    box-shadow: 18px 0 60px rgba(0, 0, 0, .44);
}

[data-bs-theme="dark"] .mobile-menu-link.active {
    background: color-mix(in srgb,
            var(--bs-primary) 14%,
            var(--bs-body-bg));
}

@media (max-width: 380px) {
    .app-offcanvas {
        width: calc(100vw - 12px) !important;
    }

    .app-mobile-header {
        padding-inline: 11px;
    }

    .app-mobile-body {
        padding-inline: 9px;
    }

    .app-mobile-user-name {
        max-width: 155px;
    }
}

.context-block {
    margin: 0 !important;
}

.context-label {
    margin: 0 0 .55rem;
    color: var(--bs-secondary-color);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.list-group-radio {
    display: flex !important;
    flex-direction: column;
    gap: 6px !important;
    padding: 0;
    border: 0 !important;
}

.list-group-radio .position-relative {
    position: relative !important;
}

.list-group-radio .form-check-input {
    z-index: 2;
    margin-top: -.5em;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    opacity: 0;
    pointer-events: none;
}

.list-group-radio .list-group-item {
    cursor: pointer;
    border-radius: 13px !important;
    position: relative;
    width: 100%;
    min-height: 52px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 7px 10px 7px 8px !important;
    border: 1px solid var(--bs-border-color-translucent) !important;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    font-size: .76rem;
    font-weight: 620;
    line-height: 1.25;
    box-shadow: 0 2px 7px rgba(15, 23, 42, .025);
    transition: background-color .16s ease,
        border-color .16s ease,
        color .16s ease,
        box-shadow .16s ease,
        transform .16s ease;
}

.list-group-radio .list-group-item::before {
    content: "badge";
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    font-family: "Material Symbols Outlined";
    font-size: 19px;
    font-weight: normal;
    font-style: normal;
    font-variation-settings: "FILL" 1,
        "wght" 400,
        "GRAD" 0,
        "opsz" 20;
    transition: color .16s ease,
        background-color .16s ease,
        transform .16s ease;
}

.list-group-radio .list-group-item::after {
    content: "";
    width: 20px;
    height: 20px;
    justify-self: center;
    display: grid;
    place-items: center;
    border: 1.5px solid var(--bs-border-color);
    border-radius: 50%;
    background: var(--bs-body-bg);
    color: transparent;
    font-family: "Material Symbols Outlined";
    font-size: 14px;
    font-variation-settings: "FILL" 1,
        "wght" 700,
        "GRAD" 0,
        "opsz" 18;
    transition: background-color .16s ease,
        border-color .16s ease,
        color .16s ease,
        box-shadow .16s ease,
        transform .16s ease;
}

.list-group-radio .list-group-item:hover {
    border-color: color-mix(in srgb,
            var(--bs-primary) 30%,
            var(--bs-border-color)) !important;
    background: color-mix(in srgb,
            var(--bs-primary) 3%,
            var(--bs-body-bg));
    transform: translateX(2px);
    box-shadow: 0 5px 14px rgba(15, 23, 42, .055);
}

.list-group-radio .list-group-item:hover::before {
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.list-group-radio .form-check-input:checked+.list-group-item {
    color: var(--bs-primary);
    border-color: color-mix(in srgb,
            var(--bs-primary) 60%,
            var(--bs-border-color)) !important;
    background: color-mix(in srgb,
            var(--bs-primary-bg-subtle) 62%,
            var(--bs-body-bg));
    font-weight: 700;
}

.list-group-radio .form-check-input:checked+.list-group-item::before {
    content: "badge";
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    transform: none;
}

.list-group-radio .form-check-input:checked+.list-group-item::after {
    content: "check";
    width: 20px;
    height: 20px;
    color: #fff;
    border: 0;
    background: var(--bs-primary);
    box-shadow: 0 2px 7px rgba(var(--bs-primary-rgb), .22);
    transform: none;
    font-size: 13px;
}

.list-group-radio .form-check-input:focus-visible+.list-group-item {
    outline: 3px solid rgba(var(--bs-primary-rgb), .18);
    outline-offset: 2px;
}

.list-group-radio .list-group-item:active {
    transform: scale(.985);
}

[data-bs-theme="dark"] .list-group-radio .list-group-item {
    border-color: rgba(255, 255, 255, .08) !important;
    box-shadow: none;
}

[data-bs-theme="dark"] .list-group-radio .list-group-item:hover {
    border-color: rgba(var(--bs-primary-rgb), .32) !important;
    background: rgba(var(--bs-primary-rgb), .06);
}

[data-bs-theme="dark"] .list-group-radio .form-check-input:checked+.list-group-item {
    border-color: rgba(var(--bs-primary-rgb), .58) !important;
    background: linear-gradient(90deg,
            rgba(var(--bs-primary-rgb), .15),
            rgba(var(--bs-primary-rgb), .055));
}

@media (max-width: 575.98px) {
    .list-group-radio {
        gap: 5px !important;
    }

    .list-group-radio .list-group-item {
        min-height: 50px;
        grid-template-columns: 35px minmax(0, 1fr) 26px;
        gap: 9px;
        padding: 6px 9px 6px 7px !important;
        border-radius: 12px !important;
        font-size: .73rem;
    }

    .list-group-radio .list-group-item::before {
        width: 34px;
        height: 34px;
        border-radius: 10px;
        font-size: 18px;
    }

    .list-group-radio .list-group-item::after {
        width: 19px;
        height: 19px;
        font-size: 13px;
    }
}

/* =========================================================
   CMPM 2026.4 — ACESSOS, QME E FLUXO DE CAIXA
   ========================================================= */

/* =========================================================
   FLUXO DE CAIXA
   ========================================================= */
.finance-summary-grid {
    margin-bottom: 1rem;
}

.finance-flow-table tbody tr {
    transition: background-color .16s ease;
}

.finance-flow-table tbody tr:hover {
    background: color-mix(in srgb, var(--bs-primary) 3%, var(--bs-body-bg));
}

.finance-type-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.finance-type-switch label,
.supplier-doc-switch label {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.finance-type-switch input,
.supplier-doc-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.finance-type-switch label>span {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .65rem .8rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .8rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: .79rem;
    font-weight: 700;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.finance-type-switch label>span .material-symbols-outlined {
    font-size: 19px;
}

.finance-type-switch input:checked+span {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), .09);
}

.finance-type-switch label:active>span {
    transform: scale(.985);
}

.finance-supplier-box {
    padding: .85rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 70%, var(--bs-body-bg));
}

.supplier-doc-switch {
    display: flex;
    flex-wrap: wrap;
    gap: .42rem;
}

.supplier-doc-switch label>span {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    padding: .38rem .62rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 999px;
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    font-size: .7rem;
    font-weight: 650;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.supplier-doc-switch input:checked+span {
    border-color: color-mix(in srgb, var(--bs-primary) 55%, var(--bs-border-color));
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.finance-flow-table .badge {
    vertical-align: middle;
}

/* =========================================================
   QME ANUAL
   ========================================================= */
.qme-rule-card {
    min-height: 128px;
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem;
}

.qme-rule-card>.material-symbols-outlined {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: 22px;
}

.qme-rule-card small,
.qme-rule-card strong,
.qme-rule-card p {
    display: block;
}

.qme-rule-card small {
    margin-bottom: .18rem;
    color: var(--bs-secondary-color);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.qme-rule-card strong {
    color: var(--bs-emphasis-color);
    font-size: .94rem;
}

.qme-rule-card p {
    margin: .25rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .75rem;
    line-height: 1.45;
}

.qme-annual-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    padding: .75rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .9rem;
    background: var(--bs-tertiary-bg);
}

.qme-annual-summary>div {
    min-width: 0;
}

.qme-annual-summary small {
    display: block;
    margin-bottom: .12rem;
    color: var(--bs-secondary-color);
    font-size: .65rem;
}

.qme-annual-summary strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--bs-emphasis-color);
    font-size: .88rem;
}

.qme-condition-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: .45rem;
}

.qme-condition-option {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.qme-condition-option>.form-check-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.qme-condition-option>span {
    min-height: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: .58rem 2.5rem .58rem .72rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.qme-condition-option>span::after {
    content: "";
    position: absolute;
    top: 50%;
    right: .8rem;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border: 2px solid var(--bs-border-color);
    border-radius: 50%;
    background: var(--bs-body-bg);
}

.qme-condition-option strong {
    color: var(--bs-emphasis-color);
    font-size: .76rem;
    line-height: 1.25;
}

.qme-condition-option small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .62rem;
}

.qme-condition-option>.form-check-input:checked+span {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), .08);
}

.qme-condition-option>.form-check-input:checked+span::after {
    content: "check";
    display: grid;
    place-items: center;
    border-color: var(--bs-primary);
    background: var(--bs-primary);
    color: #fff;
    font-family: "Material Symbols Outlined";
    font-size: 12px;
    font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 18;
}

.qme-condition-option>.form-check-input:disabled+span {
    cursor: default;
    opacity: .82;
}

/* Mais conforto em modais financeiros sem estourar o mobile. */
#ModalFinanceEntry .modal-body,
#ModalSupplier .modal-body,
#ModalPlanAccount .modal-body,
#ModalPaymentMethod .modal-body {
    padding: clamp(.9rem, 2vw, 1.3rem);
}

@media (max-width: 767.98px) {
    .finance-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-flow-table {
        min-width: 760px;
    }

    .qme-rule-card {
        min-height: auto;
    }

    .qme-annual-summary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 420px) {
    .finance-summary-grid {
        grid-template-columns: 1fr;
    }

    .finance-type-switch {
        grid-template-columns: 1fr 1fr;
    }

    .supplier-doc-switch label {
        flex: 1 1 calc(50% - .25rem);
    }

    .supplier-doc-switch label>span {
        width: 100%;
        justify-content: center;
    }
}

.qme-config-preview {
    min-height: 72px;
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .8rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .85rem;
    background: var(--bs-tertiary-bg);
}

.qme-config-preview>.material-symbols-outlined {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: .7rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: 19px;
}

.qme-config-preview small,
.qme-config-preview strong,
.qme-config-preview p {
    display: block;
}

.qme-config-preview small {
    color: var(--bs-secondary-color);
    font-size: .64rem;
}

.qme-config-preview strong {
    margin-top: .1rem;
    color: var(--bs-emphasis-color);
    font-size: .88rem;
}

.qme-config-preview p {
    margin: .15rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .67rem;
    line-height: 1.4;
}

/* A listagem de escolas usa o mesmo padrão admin-* dos demais módulos. */

/* Componentes reutilizáveis para visualização de registros. */
.record-view-modal {
    overflow: hidden;
    border: 0;
    border-radius: 1.2rem;
    background: var(--bs-body-bg);
    box-shadow: 0 22px 60px rgba(15, 23, 42, .2);
}

.record-view-modal-body {
    padding: 0;
}

.record-view-modal-header {
    padding: .95rem 1rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
}

.entity-modal-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.entity-modal-heading-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.entity-modal-heading .page-eyebrow {
    margin-bottom: .08rem;
    font-size: .65rem;
}

.entity-modal-heading .modal-title {
    margin: 0;
    color: var(--bs-emphasis-color);
    font-size: 1rem;
    font-weight: 800;
}

.record-view-modal .modal-body {
    background: var(--bs-tertiary-bg);
}

.record-view-modal-footer {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
    padding: .8rem 1rem;
    border-top: 1px solid var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
}

.record-view-modal-footer .btn {
    width: 100%;
}

.record-view-loading,
.record-view-empty {
    min-height: 240px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .6rem;
    padding: 2rem 1rem;
    color: var(--bs-secondary-color);
    text-align: center;
}

.record-view-loading {
    grid-template-columns: auto auto;
    min-height: 180px;
}

.record-view-empty strong {
    color: var(--bs-emphasis-color);
    font-size: 1rem;
}

.record-view-empty-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 1rem;
    color: var(--bs-danger);
    background: var(--bs-danger-bg-subtle);
    font-size: 1.55rem;
}

.record-view-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .8rem;
    padding: 1rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
}

.record-view-avatar {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 1rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: 1.65rem;
}

.record-view-hero-copy {
    min-width: 0;
}

.record-view-hero-copy .page-eyebrow {
    margin-bottom: .12rem;
    font-size: .64rem;
}

.record-view-hero-copy h2 {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--bs-emphasis-color);
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.3;
}

.record-view-hero-copy p {
    margin: .2rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

.record-view-status {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    width: fit-content;
    padding: .35rem .6rem;
    border-radius: 999px;
    color: var(--bs-success-text-emphasis);
    background: var(--bs-success-bg-subtle);
    font-size: .72rem;
    font-weight: 800;
}

.record-view-status .material-symbols-outlined {
    font-size: 1rem;
}

.record-view-status.record-view-status-muted {
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
}

.record-view-sections {
    display: grid;
    gap: .85rem;
    padding: .85rem;
}

.record-view-section {
    padding: .9rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
}

.record-view-section-heading {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .8rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.record-view-section-heading>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: .75rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    font-size: 1.15rem;
}

.record-view-section-heading h3,
.record-view-section-heading p {
    margin: 0;
}

.record-view-section-heading h3 {
    color: var(--bs-emphasis-color);
    font-size: .9rem;
    font-weight: 800;
}

.record-view-section-heading p {
    margin-top: .15rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    line-height: 1.35;
}

.record-view-grid {
    display: grid;
    gap: .6rem;
    margin: 0;
}

.record-view-item {
    min-width: 0;
    padding: .7rem;
    border-radius: .8rem;
    background: var(--bs-tertiary-bg);
}

.record-view-item dt {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .28rem;
    color: var(--bs-secondary-color);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.record-view-item dt .material-symbols-outlined {
    color: var(--bs-primary);
    font-size: 1rem;
}

.record-view-item dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--bs-emphasis-color);
    font-size: .82rem;
    font-weight: 650;
    line-height: 1.4;
}

.record-view-link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: var(--bs-primary);
    text-decoration: none;
}

.record-view-link:hover {
    text-decoration: underline;
}

.record-view-link .material-symbols-outlined {
    flex: 0 0 auto;
    font-size: .95rem;
}

.record-bank-grid {
    display: grid;
    gap: .65rem;
}

.record-bank-card {
    display: grid;
    gap: .75rem;
    padding: .8rem;
    border: 1px solid var(--app-border);
    border-radius: .85rem;
    background: var(--bs-body-bg);
}

.record-bank-heading {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
}

.record-bank-logo {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    overflow: hidden;
    border: 1px solid var(--app-border);
    border-radius: .7rem;
    color: var(--bs-primary);
    background: var(--bs-body-bg);
}

.record-bank-logo img {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.record-bank-heading div,
.record-bank-meta span {
    display: grid;
    min-width: 0;
}

.record-bank-heading small,
.record-bank-meta small {
    color: var(--bs-secondary-color);
    font-size: .64rem;
    text-transform: uppercase;
}

.record-bank-heading strong,
.record-bank-meta strong {
    overflow-wrap: anywhere;
    color: var(--bs-emphasis-color);
    font-size: .78rem;
}

.record-bank-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.record-bank-meta span {
    gap: .15rem;
    padding: .55rem;
    border-radius: .65rem;
    background: var(--bs-tertiary-bg);
}

.record-view-inline-empty {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem;
    border: 1px dashed var(--app-border);
    border-radius: .8rem;
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

.record-view-inline-empty .material-symbols-outlined {
    color: var(--bs-primary);
}

/* Estrutura reutilizável para formulários em etapas. */
.entity-form-card {
    overflow: visible;
    border: 1px solid var(--app-border);
    border-radius: 1.1rem;
    background: var(--bs-body-bg);
}

.entity-form-tabs-shell {
    min-width: 0;
    padding: .35rem;
    border-bottom: 1px solid var(--app-border);
    border-radius: 1.1rem 1.1rem 0 0;
    background: var(--bs-tertiary-bg);
}

.entity-form-tabs {
    width: 100%;
    min-width: 0;
    gap: .25rem;
    padding: 0;
    border: 0;
    scroll-behavior: smooth;
    scrollbar-width: none;
}

.entity-form-tabs::-webkit-scrollbar {
    display: none;
}

.entity-form-tabs .nav-item {
    flex: 0 0 auto;
}

#pills-tab.entity-form-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 46px;
    margin: 0;
    padding: .6rem .7rem;
    border: 1px solid transparent;
    border-radius: .75rem;
    color: var(--bs-secondary-color);
    background: transparent;
    font-size: .78rem;
    font-weight: 750;
}

#pills-tab.entity-form-tabs .nav-link .material-symbols-outlined {
    font-size: 1.05rem;
}

#pills-tab.entity-form-tabs .nav-link:hover {
    color: var(--bs-emphasis-color);
    background: var(--bs-body-bg);
}

#pills-tab.entity-form-tabs .nav-link.active {
    color: var(--bs-primary);
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    background: var(--bs-primary-bg-subtle);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .055);
}

#pills-tab.entity-form-tabs .nav-link.disabled {
    opacity: .48;
}

.entity-form-tab-scroll {
    width: 42px;
    min-width: 42px;
    min-height: 42px;
    padding: 0 !important;
    border-radius: .7rem;
    background: var(--bs-body-bg);
    z-index: 2;
}

.entity-form-body {
    padding: .85rem;
}

.entity-form-pane {
    min-height: 300px;
}

.entity-form-section-heading {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.entity-form-section-heading>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.entity-form-section-heading h2,
.entity-form-section-heading p {
    margin: 0;
}

.entity-form-section-heading h2 {
    color: var(--bs-emphasis-color);
    font-size: .95rem;
    font-weight: 800;
}

.entity-form-section-heading p {
    margin-top: .14rem;
    color: var(--bs-secondary-color);
    font-size: .74rem;
    line-height: 1.35;
}

.entity-form .form-control,
.entity-form .form-select {
    background-color: var(--bs-body-bg);
}

.entity-form .form-control:focus,
.entity-form .form-select:focus {
    border-color: color-mix(in srgb, var(--bs-primary) 55%, var(--app-border));
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 14%, transparent);
}

.form-field-hint {
    display: flex;
    align-items: center;
    gap: .3rem;
    margin-top: .4rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

.form-field-hint .material-symbols-outlined {
    color: var(--bs-primary);
    font-size: .95rem;
}

.entity-category-title {
    margin-top: .35rem;
    padding-top: .8rem;
    border-top: 1px solid var(--bs-border-color-translucent);
}

.entity-category-title:first-of-type {
    margin-top: 0;
}

.entity-category-title h3 {
    margin: 0;
    color: var(--bs-emphasis-color);
    font-size: .82rem;
    font-weight: 800;
}

.entity-locked-action,
.entity-section-action {
    width: 100%;
}

.entity-option-card {
    height: 100%;
    /* min-height: 76px; */
    align-items: center;
    /* padding: .8rem; */
    border: 1px solid var(--app-border);
    border-radius: .85rem !important;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.entity-option-card:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 38%, var(--app-border));
    background: var(--bs-tertiary-bg);
    transform: translateY(-1px);
}

.entity-option-card:has(.entity-option-check:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 45%, var(--app-border));
    background: var(--bs-primary-bg-subtle);
}

.entity-option-check {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .08rem;
}

.entity-option-card strong {
    color: var(--bs-emphasis-color);
    font-size: .8rem;
}

.entity-option-card small {
    margin-top: .18rem;
    font-size: .7rem;
    line-height: 1.35;
}

.entity-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: grid;
    gap: .6rem;
    margin: 1.2rem -.85rem -.85rem;
    padding: .8rem;
    border-top: 1px solid var(--app-border);
    border-radius: 0 0 1.1rem 1.1rem;
    background: color-mix(in srgb, var(--bs-body-bg) 92%, transparent);
    backdrop-filter: blur(12px);
}

.entity-form-actions-primary {
    display: grid;
    gap: .55rem;
}

.entity-form-actions .btn {
    width: 100%;
}

.entity-action-modal {
    overflow: hidden;
    border: 0;
    border-radius: 1.15rem;
    background: var(--bs-body-bg);
    box-shadow: 0 22px 60px rgba(15, 23, 42, .2);
}

.entity-action-modal-header {
    padding: .95rem 1rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
}

.entity-action-modal-body {
    padding: 1rem;
    background: var(--bs-tertiary-bg);
}

.entity-action-modal-body>.row {
    row-gap: .85rem;
}

.entity-action-modal-body .form-text,
.entity-action-modal-body small.text-muted {
    display: block;
    margin-top: .4rem;
    color: var(--bs-secondary-color) !important;
    font-size: .72rem;
    line-height: 1.4;
}

.entity-action-modal-footer {
    padding: .8rem 1rem;
    border-top: 1px solid var(--bs-border-color-translucent);
    background: var(--bs-body-bg);
}

.entity-action-modal-footer .btn {
    width: 100%;
}

@media (min-width: 576px) {
    .record-view-modal-footer {
        display: flex;
        justify-content: flex-end;
    }

    .record-view-modal-footer .btn {
        width: auto;
    }

    .record-view-hero {
        grid-template-columns: auto minmax(0, 1fr) auto;
        padding: 1.1rem 1.2rem;
    }

    .record-view-status {
        grid-column: auto;
    }

    .record-view-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .record-view-item-wide {
        grid-column: 1 / -1;
    }

    .entity-form-actions {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .entity-form-actions-primary {
        display: flex;
        justify-content: flex-end;
    }

    .entity-form-actions .btn {
        width: auto;
        min-width: 120px;
    }

    .entity-action-modal-footer .btn {
        width: auto;
        min-width: 140px;
    }
}

@media (min-width: 768px) {
    .record-view-sections {
        padding: 1rem;
    }

    .record-view-section {
        padding: 1rem;
    }

    .record-bank-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .entity-form-body {
        padding: 1.2rem;
    }

    .entity-form-actions {
        margin: 1.35rem -1.2rem -1.2rem;
        padding: .85rem 1.2rem;
    }

    .entity-locked-action,
    .entity-section-action {
        width: auto;
    }
}

@media (max-width: 575.98px) {
    #ModalView .record-view-modal {
        border-radius: 0;
    }

    .record-view-modal-header {
        padding-top: max(.85rem, env(safe-area-inset-top));
    }
}


/* ==========================================================================
   PADRÃO VISUAL ADMINISTRATIVO — componentes reutilizáveis
   ========================================================================== */

.admin-list-view {
    min-width: 0;
}

.admin-context-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    max-width: min(100%, 520px);
    min-height: 42px;
    padding: .6rem .85rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: 0 5px 18px rgba(15, 23, 42, .04);
    font-weight: 600;
}

.admin-context-badge span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-mobile-guide {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin-bottom: .85rem;
    padding: .8rem .9rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 45%, var(--bs-body-bg));
    color: var(--bs-secondary-color);
    font-size: .82rem;
    line-height: 1.45;
}

.admin-mobile-guide .material-symbols-outlined {
    flex: 0 0 auto;
    color: var(--bs-primary);
    font-size: 1.2rem;
}

.admin-list-filters,
.admin-filter-panel {
    margin-bottom: .85rem;
    padding: .85rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .035);
}

.admin-list-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: .8rem;
}

/* Acessos e seletores administrativos. */
.admin-access-select {
    min-height: 156px;
    padding: .55rem;
    border-radius: .9rem;
    background-image: none !important;
}

.admin-access-select option {
    margin-bottom: .22rem;
    padding: .58rem .7rem;
    border-radius: .55rem;
}

.admin-access-select option:checked {
    color: var(--bs-primary-text-emphasis);
    background: var(--bs-primary-bg-subtle) linear-gradient(0deg, var(--bs-primary-bg-subtle), var(--bs-primary-bg-subtle));
}

.admin-access-list .list-group-item::before,
.admin-access-list .form-check-input:checked+.list-group-item::before {
    content: "apartment";
}

.admin-active-context {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 46px;
    padding: .65rem .75rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .8rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-emphasis-color);
    font-size: .76rem;
    font-weight: 700;
}

.admin-active-context .material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: .65rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

/* DataTables/listagens. */
.admin-table-responsive {
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.admin-table-toolbar,
.admin-table-footer {
    display: grid;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: var(--bs-body-bg);
}

.admin-table-toolbar {
    margin-bottom: .75rem;
}

.admin-table-footer {
    margin-top: .75rem;
}

.admin-table-length label,
.admin-table-length .dt-length,
.admin-table-length .dataTables_length {
    width: 100%;
}

.admin-table-length label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    color: var(--bs-secondary-color);
    font-size: .82rem;
    font-weight: 650;
}

.admin-table-length select {
    min-width: 86px;
}

.admin-table-export .dt-buttons,
.admin-table-export .btn {
    width: 100%;
}

.admin-table-export .btn {
    min-height: 42px;
    justify-content: center;
}

.admin-table-stage {
    width: 100%;
    overflow: visible;
}

.admin-table-info {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.admin-table-pagination,
.admin-table-pagination nav,
.admin-table-pagination .pagination {
    min-width: 0;
    width: 100%;
}

.admin-table-pagination nav,
.admin-table-pagination .pagination {
    justify-content: center !important;
    flex-wrap: wrap;
}

.admin-empty-value {
    color: var(--bs-secondary-color);
    font-size: .74rem;
}

.admin-identity {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.admin-identity-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: .85rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.admin-identity-content {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.admin-identity-content strong {
    color: var(--bs-emphasis-color);
    font-size: .92rem;
    line-height: 1.3;
}

.admin-identity-content small {
    color: var(--bs-secondary-color);
    font-size: .74rem;
}

.admin-data-line {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    min-width: 0;
}

.admin-data-line>.material-symbols-outlined {
    flex: 0 0 auto;
    color: var(--bs-primary);
    font-size: 1rem;
}

.admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .2rem;
}

.admin-row-actions .btn-link {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border-radius: .7rem;
    text-decoration: none;
}

.admin-row-actions .btn-link:hover {
    background: var(--bs-tertiary-bg);
}

.admin-action-danger {
    color: var(--bs-danger) !important;
}

.admin-cell-code {
    font-variant-numeric: tabular-nums;
}

.admin-list-refresh,
.admin-refresh-button {
    min-height: 42px;
}

@media (max-width: 991.98px) {

    .admin-data-table,
    .admin-data-table colgroup,
    .admin-data-table tbody,
    .admin-data-table tbody tr,
    .admin-data-table tbody td {
        display: block;
        width: 100% !important;
    }

    .admin-data-table colgroup {
        display: none;
    }

    .admin-data-table {
        margin: 0 !important;
        border-collapse: separate !important;
        border-spacing: 0 !important;
    }

    .admin-data-table thead {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .admin-data-table tbody {
        display: grid;
        gap: .8rem;
    }

    .admin-data-table tbody tr {
        overflow: hidden;
        border: 1px solid var(--app-border);
        border-radius: 1rem;
        background: var(--bs-body-bg);
        box-shadow: 0 8px 24px rgba(15, 23, 42, .055);
    }

    .admin-data-table tbody td {
        display: grid !important;
        grid-template-columns: minmax(88px, .38fr) minmax(0, 1fr);
        align-items: center;
        gap: .65rem;
        min-height: 48px;
        padding: .68rem .8rem !important;
        border-bottom: 1px solid var(--bs-border-color-translucent) !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        text-align: left !important;
    }

    .admin-data-table tbody td::before {
        content: attr(data-label);
        color: var(--bs-secondary-color);
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .045em;
        line-height: 1.2;
        text-transform: uppercase;
    }

    .admin-data-table tbody td.admin-cell-primary {
        display: block !important;
        min-height: 0;
        padding: .9rem !important;
        background: color-mix(in srgb, var(--bs-primary-bg-subtle) 42%, var(--bs-body-bg)) !important;
    }

    .admin-data-table tbody td.admin-cell-primary::before,
    .admin-data-table tbody td.dt-empty::before {
        display: none;
    }

    .admin-data-table tbody td.admin-cell-primary:not(:has(.admin-identity)) {
        color: var(--bs-emphasis-color);
        font-size: .94rem;
        font-weight: 800;
    }

    .admin-data-table tbody td.admin-cell-actions {
        border-bottom: 0 !important;
    }

    .admin-data-table tbody td.admin-cell-actions::before {
        align-self: center;
    }

    .admin-data-table tbody td.dt-empty {
        display: block !important;
        padding: 2rem 1rem !important;
        text-align: center !important;
    }

    .admin-row-actions {
        justify-content: flex-start;
        gap: .35rem;
    }

    .admin-row-actions .btn-link {
        width: 42px;
        height: 42px;
        border: 1px solid var(--bs-border-color-translucent);
        background: var(--bs-tertiary-bg);
    }

    .admin-data-table tbody tr.admin-table-state td {
        display: block !important;
        padding: 1rem !important;
        border-bottom: 0 !important;
    }

    .admin-data-table tbody tr.admin-table-state td::before {
        display: none !important;
    }

    .qme-payment-table tbody td:first-child {
        background: color-mix(in srgb, var(--bs-primary-bg-subtle) 32%, var(--bs-body-bg));
        font-weight: 800;
    }
}

@media (min-width: 576px) {

    .admin-table-toolbar,
    .admin-table-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: center;
    }

    .admin-table-footer {
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    }

    .admin-table-info {
        text-align: left;
    }

    .admin-table-pagination nav,
    .admin-table-pagination .pagination {
        justify-content: flex-end !important;
    }
}

@media (min-width: 992px) {
    .admin-table-responsive {
        border: 1px solid var(--app-border);
        border-radius: 1rem;
        overflow: hidden;
        background: var(--bs-body-bg);
        box-shadow: 0 8px 26px rgba(15, 23, 42, .035);
    }

    .admin-table-toolbar,
    .admin-table-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        margin: 0;
        padding: .85rem 1rem;
        border: 0;
        border-radius: 0;
    }

    .admin-table-toolbar {
        border-bottom: 1px solid var(--bs-border-color-translucent);
    }

    .admin-table-footer {
        border-top: 1px solid var(--bs-border-color-translucent);
    }

    .admin-table-length label,
    .admin-table-length .dt-length,
    .admin-table-length .dataTables_length,
    .admin-table-export .dt-buttons,
    .admin-table-export .btn,
    .admin-table-pagination,
    .admin-table-pagination nav,
    .admin-table-pagination .pagination {
        width: auto;
    }

    .admin-table-length label {
        justify-content: flex-start;
    }

    .admin-table-stage {
        overflow-x: auto;
    }

    .admin-data-table {
        width: 100% !important;
        margin-bottom: 0 !important;
        border-collapse: collapse !important;
    }

    .admin-data-table thead th {
        padding: .8rem .85rem;
        border-bottom: 1px solid var(--app-border);
        color: var(--bs-secondary-color);
        font-size: .72rem;
        font-weight: 800;
        letter-spacing: .035em;
        text-transform: uppercase;
        white-space: nowrap;
    }

    .admin-data-table tbody td {
        padding: .82rem .85rem;
        border-bottom: 1px solid var(--bs-border-color-translucent);
        vertical-align: middle;
    }

    .admin-data-table tbody td.admin-cell-primary {
        min-width: 220px;
    }

    .admin-data-table tbody td.admin-cell-director {
        min-width: 180px;
    }

    .admin-data-table tbody td.admin-cell-actions {
        width: 145px;
        text-align: right;
    }

    .admin-table-pagination .pagination {
        margin-bottom: 0;
        justify-content: flex-end;
    }
}

@media (max-width: 575.98px) {

    .module-hero.entity-form-hero .btn,
    .module-hero>.btn {
        width: 100%;
        justify-content: center;
    }

    .admin-table-toolbar,
    .admin-table-footer {
        padding: .7rem;
    }

    .admin-table-footer {
        text-align: center;
    }

    .admin-table-pagination nav,
    .admin-table-pagination .pagination {
        justify-content: center !important;
    }

    .entity-form-card {
        border-radius: 1rem;
    }

    .entity-form-body {
        padding: 1rem;
    }
}

/* ==========================================================================\n   Servidores — seletores de escolas e funções\n   ========================================================================== */
.admin-tom-select+.ts-wrapper,
.ts-wrapper.admin-tom-select {
    width: 100%;
}

.entity-form .ts-wrapper.multi .ts-control,
.entity-form .ts-wrapper.single .ts-control {
    min-height: 48px;
    padding: .55rem .7rem;
    border: 1px solid var(--app-border);
    border-radius: .8rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: none;
}

.entity-form .ts-wrapper.focus .ts-control {
    border-color: #4e73df;
    box-shadow: 0 0 0 .2rem rgba(78, 115, 223, .18);
}

.entity-form .ts-wrapper.multi .ts-control>div {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin: .15rem .25rem .15rem 0;
    padding: .38rem .55rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: .65rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-size: .82rem;
    font-weight: 650;
}

.entity-form .ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
    margin-left: .35rem;
    padding-left: .4rem;
    border-left-color: color-mix(in srgb, var(--bs-primary) 20%, transparent);
    color: inherit;
}

.entity-form .ts-dropdown {
    overflow: hidden;
    margin-top: .4rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .12);
}

.entity-form .ts-dropdown .option {
    padding: .7rem .8rem;
}

.entity-form .ts-dropdown .active {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}

[data-bs-theme="dark"] .entity-form .ts-wrapper .ts-control,
[data-bs-theme="dark"] .entity-form .ts-dropdown {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

/* ==========================================================================\n   SERVIDORES — vínculos de acesso por escola\n   ========================================================================== */
.admin-access-bindings-editor {
    display: grid;
    gap: 1rem;
}

.admin-access-bindings-intro {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 38%, var(--bs-body-bg));
}

.admin-access-bindings-intro>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: .85rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.admin-access-bindings-intro strong {
    display: block;
    margin-bottom: .15rem;
    color: var(--bs-emphasis-color);
    font-size: .92rem;
}

.admin-access-bindings-intro p {
    color: var(--bs-secondary-color);
    font-size: .78rem;
    line-height: 1.45;
}

.admin-access-bindings-list {
    display: grid;
    gap: .9rem;
}

.admin-access-binding {
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.admin-access-binding:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 24%, var(--app-border));
    box-shadow: 0 12px 28px rgba(15, 23, 42, .065);
}

.admin-access-binding.is-invalid {
    border-color: var(--bs-danger);
    box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--bs-danger) 14%, transparent);
}

.admin-access-binding-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}

.admin-access-binding-title {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
}

.admin-access-binding-title>div {
    min-width: 0;
}

.admin-access-binding-title strong,
.admin-access-binding-title small {
    display: block;
}

.admin-access-binding-title strong {
    color: var(--bs-emphasis-color);
    font-size: .9rem;
}

.admin-access-binding-title small {
    margin-top: .08rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    line-height: 1.35;
}

.admin-access-binding-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.admin-access-fixed-school {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .65rem .8rem;
    border: 1px solid var(--app-border);
    border-radius: .8rem;
    color: var(--bs-emphasis-color);
    background: var(--bs-tertiary-bg);
    font-weight: 650;
}

.admin-access-fixed-school .material-symbols-outlined {
    color: var(--bs-primary);
    font-size: 1.2rem;
}

.admin-access-binding .ts-wrapper {
    width: 100%;
}

.admin-access-binding .ts-control {
    min-height: 48px;
    border-color: var(--app-border);
    border-radius: .8rem;
    background: var(--bs-body-bg);
}

.admin-access-binding.is-invalid .ts-control,
.admin-access-binding.is-invalid .form-select {
    border-color: var(--bs-danger) !important;
}

@media (max-width: 575.98px) {
    .admin-access-binding {
        padding: .85rem;
    }

    .admin-access-binding-head {
        align-items: center;
    }

    .admin-access-binding-title small {
        display: none;
    }

    .server-binding-remove {
        width: 40px;
        height: 40px;
        padding: 0;
    }
}

.admin-access-view-grid {
    display: grid;
    gap: .75rem;
}

.admin-access-view-card {
    display: grid;
    gap: .8rem;
    padding: .9rem;
    border: 1px solid var(--app-border);
    border-radius: .95rem;
    background: var(--bs-body-bg);
}

.admin-access-view-school {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
}

.admin-access-view-school>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: .8rem;
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.admin-access-view-school>div {
    min-width: 0;
}

.admin-access-view-school small,
.admin-access-view-school strong {
    display: block;
}

.admin-access-view-school small {
    color: var(--bs-secondary-color);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .045em;
}

.admin-access-view-school strong {
    margin-top: .08rem;
    color: var(--bs-emphasis-color);
    font-size: .9rem;
}

.admin-access-view-functions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    text-align: end;
}

.admin-access-role-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 34px;
    padding: .35rem .6rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    border-radius: 999px;
    color: var(--bs-primary-text-emphasis);
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 58%, var(--bs-body-bg));
    font-size: .72rem;
    font-weight: 700;
}

.admin-access-role-badge .material-symbols-outlined {
    font-size: 1rem;
}

/* @media (min-width: 768px) {
    .admin-access-view-card {
        grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr);
        align-items: center;
    }
} */

/* ================================================================
   Refinamento operacional · filtros, formulários e auditoria
   2026-09-10
   ================================================================ */
.admin-smart-filter {
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .035);
}

.admin-smart-filter-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .9rem;
}

.admin-smart-filter-head>div:first-child {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    min-width: 0;
}

.admin-smart-filter-head .material-symbols-outlined {
    color: var(--bs-primary);
}

.admin-smart-filter-head h2,
.admin-smart-filter-head h3 {
    margin: 0;
    font-size: .88rem;
    font-weight: 750;
}

.admin-smart-filter-head p {
    margin: .12rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .74rem;
}

.admin-smart-filter .form-label {
    margin-bottom: .35rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
}

.admin-smart-filter .form-control,
.admin-smart-filter .form-select {
    min-height: 42px;
    border-radius: .75rem;
}

.admin-smart-filter .btn {
    min-height: 42px;
    border-radius: .75rem;
}

.admin-select-field {
    min-width: 0;
}

.admin-select-field>.form-label {
    margin-bottom: .4rem;
    font-size: .78rem;
    font-weight: 700;
}

.admin-select-field .form-text {
    margin-top: .35rem;
    color: var(--bs-secondary-color);
    font-size: .7rem;
}

.admin-student-select+.ts-wrapper,
.admin-tom-select+.ts-wrapper,
.ts-wrapper.admin-student-select,
.ts-wrapper.admin-tom-select {
    width: 100%;
}

.admin-select-field .ts-control,
.admin-smart-filter .ts-control,
#FormFinanceEntry .ts-control {
    min-height: 44px;
    padding: .55rem .75rem;
    border-color: var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: none;
}

.admin-select-field .ts-wrapper.focus .ts-control,
.admin-smart-filter .ts-wrapper.focus .ts-control,
#FormFinanceEntry .ts-wrapper.focus .ts-control {
    border-color: color-mix(in srgb, var(--bs-primary) 62%, var(--bs-border-color));
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 16%, transparent);
}

.ts-dropdown {
    z-index: 1085;
    border-color: var(--app-border);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .12);
    overflow: hidden;
}

.ts-dropdown .active {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}

/* Listas fora dos cartões: não são cortadas e acompanham o campo na rolagem. */
.ts-dropdown.app-tom-dropdown {
    position: fixed;
    z-index: 1085;
    margin: 0;
    border: 1px solid var(--app-border, var(--bs-border-color));
    border-radius: .75rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .16);
}

.app-tom-dropdown .ts-dropdown-content {
    overflow-y: auto;
    overscroll-behavior: contain;
}

.app-tom-dropdown .option {
    padding: .65rem .8rem;
}

.guardian-toggle-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    margin-bottom: .9rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 70%, var(--bs-body-bg));
}

.guardian-toggle-copy {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    min-width: 0;
}

.guardian-toggle-copy>.material-symbols-outlined {
    margin-top: .05rem;
    color: var(--bs-primary);
}

.guardian-toggle-copy strong,
.guardian-toggle-copy small {
    display: block;
}

.guardian-toggle-copy strong {
    color: var(--bs-emphasis-color);
    font-size: .86rem;
}

.guardian-toggle-copy small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

.guardian-fields {
    transition: opacity .18s ease, filter .18s ease;
}

.guardian-fields.guardian-disabled {
    opacity: .52;
    filter: grayscale(.2);
}

.guardian-fields.guardian-disabled :is(input, select, textarea, button) {
    cursor: not-allowed;
}

/* Fluxo de caixa: filtros e selects pesquisáveis */
.finance-period-filter,
.finance-list-filter {
    border-radius: .9rem;
}

#financePeriodDetail {
    line-height: 1.25;
}

/* Auditoria: leitura por dia e cards mais semânticos */
.audit-day-separator {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem .2rem .05rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .025em;
}

.audit-day-separator::after {
    content: '';
    height: 1px;
    flex: 1 1 auto;
    background: var(--bs-border-color-translucent);
}

.audit-day-separator .material-symbols-outlined {
    font-size: 1rem;
}

.audit-item {
    position: relative;
    overflow: hidden;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.audit-item::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--bs-primary);
    opacity: .7;
}

.audit-item-update::before {
    background: var(--bs-warning);
}

.audit-item-delete::before {
    background: var(--bs-danger);
}

.audit-item-insert::before,
.audit-item-restore::before {
    background: var(--bs-success);
}

.audit-item-login::before {
    background: var(--bs-primary);
}

.audit-item-logout::before {
    background: var(--bs-secondary);
}

@media (hover: hover) {
    .audit-item:hover {
        transform: translateY(-1px);
        border-color: color-mix(in srgb, var(--bs-primary) 22%, var(--app-border));
        box-shadow: 0 10px 28px rgba(15, 23, 42, .07);
    }
}

.audit-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.audit-title-row h2 {
    margin: 0;
}

.audit-module-pill {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 26px;
    padding: .2rem .48rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    font-size: .67rem;
    font-weight: 700;
}

.audit-module-pill .material-symbols-outlined {
    font-size: .85rem;
}

.audit-context-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .7rem;
    margin-top: .35rem;
}

.audit-context-row>span {
    display: inline-flex;
    align-items: center;
    gap: .22rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

.audit-context-row .material-symbols-outlined {
    font-size: .9rem;
}

.audit-heading time {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .26rem .48rem;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    font-weight: 650;
}

.audit-heading time .material-symbols-outlined {
    font-size: .9rem;
}

.audit-change-details {
    margin-top: .7rem;
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .8rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 48%, transparent);
    overflow: hidden;
}

.audit-change-details>summary,
.audit-details>summary {
    display: flex;
    align-items: center;
    gap: .38rem;
    list-style: none;
    cursor: pointer;
    user-select: none;
    font-size: .74rem;
    font-weight: 700;
}

.audit-change-details>summary::-webkit-details-marker,
.audit-details>summary::-webkit-details-marker {
    display: none;
}

.audit-change-details>summary {
    padding: .62rem .72rem;
    color: var(--bs-emphasis-color);
}

.audit-change-details>summary>.material-symbols-outlined,
.audit-details>summary>.material-symbols-outlined {
    font-size: 1rem;
}

.audit-change-details .audit-diff {
    margin: 0;
    border: 0;
    border-top: 1px solid var(--bs-border-color-translucent);
    border-radius: 0;
}

.audit-change-details .audit-changes {
    margin: 0;
    border-top: 1px solid var(--bs-border-color-translucent);
    border-radius: 0;
}

.audit-chevron {
    margin-left: auto;
    transition: transform .16s ease;
}

details[open]>summary .audit-chevron {
    transform: rotate(180deg);
}

.audit-details>summary {
    width: 100%;
    color: var(--bs-secondary-color);
}

@media (max-width: 767.98px) {
    .admin-smart-filter {
        padding: .85rem;
    }

    .admin-smart-filter-head,
    .guardian-toggle-card {
        align-items: flex-start;
    }

    .audit-item {
        gap: .7rem;
        padding: .85rem;
    }

    .audit-heading time {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {

    .guardian-fields,
    .audit-item,
    .audit-chevron {
        transition: none;
    }
}
/* =========================================================
   Refinamento administrativo — perfil, alunos, documentos
   e lançamentos financeiros (09/2026)
   ========================================================= */

/* Perfil */
.profile-workspace {
    padding-bottom: 1.5rem;
}

.profile-hero {
    align-items: center;
}

.profile-hero-status {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 55%, var(--bs-body-bg));
    min-width: min(100%, 290px);
}

.profile-hero-status>.material-symbols-outlined {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    border-radius: .8rem;
    background: var(--bs-primary);
    color: #fff;
}

.profile-hero-status strong,
.profile-hero-status small {
    display: block;
}

.profile-hero-status strong {
    color: var(--bs-emphasis-color);
    font-size: .86rem;
}

.profile-hero-status small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    line-height: 1.35;
}

.profile-identity-card {
    position: relative;
    overflow: hidden;
    padding: 1.25rem;
    border: 1px solid var(--app-border);
    border-radius: 1.25rem;
    background: var(--bs-body-bg);
    box-shadow: var(--app-shadow-sm, 0 10px 30px rgba(15, 23, 42, .06));
}

.profile-cover-accent {
    position: absolute;
    inset: 0 0 auto;
    height: 5.75rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--bs-primary) 88%, #fff), color-mix(in srgb, var(--bs-info) 60%, var(--bs-primary)));
    opacity: .95;
}

.profile-photo-wrap {
    position: relative;
    width: 7rem;
    height: 7rem;
    margin: 1.55rem auto 1rem;
    z-index: 1;
}

.profile-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: .3rem solid var(--bs-body-bg);
    border-radius: 1.35rem;
    background: var(--bs-tertiary-bg);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
}

.profile-photo-action {
    position: absolute;
    right: -.35rem;
    bottom: -.35rem;
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border: .2rem solid var(--bs-body-bg);
    border-radius: 50%;
    background: var(--bs-primary);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(13, 110, 253, .25);
}

.profile-photo-action .material-symbols-outlined {
    font-size: 1.2rem;
}

.profile-identity-copy {
    text-align: center;
    margin-bottom: 1rem;
}

.profile-identity-copy h2 {
    margin: 0 0 .55rem;
    font-size: 1.1rem;
    color: var(--bs-emphasis-color);
}

.profile-identity-copy p {
    margin: .65rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    line-height: 1.45;
}

.profile-login-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    max-width: 100%;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: .74rem;
    overflow-wrap: anywhere;
}

.profile-login-chip .material-symbols-outlined {
    font-size: .95rem;
}

.profile-upload-button,
.profile-form-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
}

.profile-file-name {
    min-height: 1.1rem;
    margin-top: .6rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.profile-section-card {
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1.1rem;
    background: var(--bs-body-bg);
    box-shadow: var(--app-shadow-sm, 0 8px 24px rgba(15, 23, 42, .045));
}

.profile-section-head {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin-bottom: 1rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--app-border);
}

.profile-section-icon {
    display: grid;
    place-items: center;
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 2.55rem;
    border-radius: .8rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.profile-section-head h2,
.profile-section-head p {
    margin: 0;
}

.profile-section-head h2 {
    margin-top: .05rem;
    font-size: 1rem;
    color: var(--bs-emphasis-color);
}

.profile-section-head p {
    margin-top: .18rem;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    line-height: 1.4;
}

.profile-form .form-control,
.profile-form .form-select,
.profile-password-group .btn {
    border-radius: .85rem;
}

.profile-password-group .form-floating>.form-control {
    border-radius: .85rem 0 0 .85rem;
}

.profile-password-group .btn {
    min-width: 3.2rem;
    border-radius: 0 .85rem .85rem 0;
}

.profile-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: .65rem;
    padding: .9rem 0 .2rem;
}

#profileSaveFeedback.alert {
    border-radius: .9rem;
}

/* Formulário de alunos */
.student-form .entity-form-pane {
    padding-top: .25rem;
}

.student-form .form-floating>.form-control,
.student-form .form-floating>.form-select,
.student-form .form-control,
.student-form .form-select {
    border-radius: .85rem;
}

.student-family-pane .row.g-3 {
    row-gap: 1rem !important;
}

.guardian-panel {
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 58%, var(--bs-body-bg));
}

.guardian-panel-head {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: .85rem;
}

.guardian-panel-icon {
    display: grid;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    flex: 0 0 2.45rem;
    border-radius: .75rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.guardian-panel-head h3,
.guardian-panel-head p {
    margin: 0;
}

.guardian-panel-head h3 {
    color: var(--bs-emphasis-color);
    font-size: .95rem;
}

.guardian-panel-head p {
    margin-top: .18rem;
    color: var(--bs-secondary-color);
    font-size: .75rem;
    line-height: 1.4;
}

.guardian-toggle-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
}

.guardian-toggle-card.guardian-toggle-compact {
    margin-bottom: 0;
    min-height: 4.3rem;
}

.guardian-toggle-card .form-switch .form-check-input {
    width: 2.7rem;
    height: 1.45rem;
    cursor: pointer;
}

.guardian-toggle-card:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 42%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 56%, var(--bs-body-bg));
}

.guardian-responsibility-check {
    padding: .75rem .85rem;
    border: 1px dashed var(--app-border);
    border-radius: .8rem;
    background: var(--bs-body-bg);
}

.guardian-fields-muted,
.guardian-fields.guardian-disabled {
    opacity: .57;
}

/* Revisão de documentos - Alunos e Pré-matrícula */
.document-review-page {
    padding-bottom: 1.5rem;
}

.document-review-hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
}

.document-review-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
}

.document-review-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 2.65rem;
    border-radius: .8rem;
}

.document-review-summary {
    margin-top: .8rem;
}

.document-review-summary .record-stat-card {
    border-radius: .95rem;
    box-shadow: none;
}

.document-sections {
    gap: 1rem;
}

.document-sections .record-view-section {
    overflow: hidden;
    border-radius: 1rem;
}

.document-sections .record-view-section-heading {
    margin: -.1rem -.1rem 1rem;
    padding: .85rem;
    border-radius: .85rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 72%, var(--bs-body-bg));
}

.document-sections .record-view-section-heading .btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border-radius: .7rem;
}

.document-review-page .doc-card,
.document-sections .doc-card {
    height: 100%;
    padding: .9rem;
    border: 1px solid var(--app-border);
    border-radius: .95rem;
    background: var(--bs-body-bg);
    box-shadow: 0 5px 18px rgba(15, 23, 42, .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.document-review-page .doc-card:hover,
.document-sections .doc-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 9px 24px rgba(15, 23, 42, .075);
}

.document-review-page .doc-card[data-status="1"],
.document-sections .doc-card[data-status="1"] {
    border-color: color-mix(in srgb, var(--bs-success) 34%, var(--app-border));
}

.document-review-page .doc-card[data-status="2"],
.document-sections .doc-card[data-status="2"] {
    border-color: color-mix(in srgb, var(--bs-danger) 34%, var(--app-border));
}

.document-review-page .doc-preview,
.document-sections .doc-preview {
    display: grid;
    place-items: center;
    min-height: 6rem;
    margin: .8rem 0 !important;
    border: 1px dashed color-mix(in srgb, var(--bs-primary) 25%, var(--app-border));
    border-radius: .8rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 30%, var(--bs-body-bg));
}

.document-review-page .doc-actions,
.document-sections .doc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.document-review-page .doc-actions .btn,
.document-sections .doc-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    min-height: 2.25rem;
    border-radius: .65rem;
}

.document-upload-modal {
    overflow: hidden;
    border: 0;
    border-radius: 1.1rem;
}

.document-upload-modal .modal-header {
    padding: 1rem 1rem .75rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 42%, var(--bs-body-bg));
}

.document-upload-modal .modal-title {
    color: var(--bs-emphasis-color);
    font-weight: 700;
}

.document-upload-modal .modal-body {
    padding: 1rem !important;
}

.document-upload-modal .input-group {
    gap: .45rem;
}

.document-upload-modal .input-group>.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.7rem;
    border-radius: .75rem !important;
}

.document-upload-modal [id^="previewArquivo"]:not(:empty) {
    padding: .7rem;
    border: 1px solid var(--app-border);
    border-radius: .75rem;
    background: var(--bs-tertiary-bg);
}

.document-upload-modal .modal-footer {
    padding: .8rem 1rem 1rem !important;
    background: var(--bs-body-bg);
}

.document-upload-modal .modal-footer .btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    min-height: 2.75rem;
    border-radius: .75rem;
}

/* Fluxo de caixa - modal de lançamento */
.finance-entry-form .entity-action-modal-body {
    padding: 1rem;
}

.finance-entry-guide {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: 1rem;
    padding: .8rem;
    border: 1px solid color-mix(in srgb, var(--bs-info) 20%, var(--app-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-info-bg-subtle) 55%, var(--bs-body-bg));
}

.finance-entry-guide-icon {
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 2.25rem;
    border-radius: .7rem;
    background: var(--bs-body-bg);
    color: var(--bs-info-text-emphasis);
}

.finance-entry-guide strong,
.finance-entry-guide span:not(.material-symbols-outlined) {
    display: block;
}

.finance-entry-guide strong {
    color: var(--bs-emphasis-color);
    font-size: .82rem;
}

.finance-entry-guide span:not(.material-symbols-outlined) {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .73rem;
    line-height: 1.4;
}

.finance-entry-section {
    padding: .85rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 48%, var(--bs-body-bg));
}

.finance-entry-section-title {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-bottom: .85rem;
}

.finance-entry-section-title>.material-symbols-outlined {
    color: var(--bs-primary);
}

.finance-entry-section-title strong,
.finance-entry-section-title small {
    display: block;
}

.finance-entry-section-title strong {
    color: var(--bs-emphasis-color);
    font-size: .84rem;
}

.finance-entry-section-title small {
    margin-top: .1rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

.finance-entry-form .finance-type-switch {
    margin-bottom: 0;
}

.finance-entry-form .form-control,
.finance-entry-form .form-select,
.finance-entry-form .ts-control {
    border-radius: .8rem;
}

.finance-entry-form textarea.form-control {
    min-height: 7rem;
}

.finance-entry-footer {
    gap: .5rem;
}

.finance-entry-footer .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border-radius: .75rem;
}

@media (min-width: 576px) {
    .document-review-actions {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .document-review-actions .btn {
        width: auto;
    }

    .guardian-toggle-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .profile-section-card {
        padding: 1.15rem;
    }

    .document-review-hero {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .finance-entry-form .entity-action-modal-body {
        padding: 1.15rem 1.25rem;
    }
}

@media (max-width: 575.98px) {
    .profile-hero-status {
        width: 100%;
    }

    .profile-identity-card {
        padding: 1rem;
        border-radius: 1rem;
    }

    .profile-section-card {
        padding: .85rem;
        border-radius: .95rem;
    }

    .profile-section-head {
        gap: .65rem;
    }

    .profile-form-actions {
        position: sticky;
        bottom: calc(var(--mobile-bottom-nav-height, 0px) + .5rem);
        z-index: 20;
        display: grid;
        grid-template-columns: 1fr 1.25fr;
        padding: .65rem;
        margin: 0 -.25rem;
        border: 1px solid var(--app-border);
        border-radius: .95rem;
        background: color-mix(in srgb, var(--bs-body-bg) 94%, transparent);
        backdrop-filter: blur(12px);
        box-shadow: 0 10px 28px rgba(15, 23, 42, .12);
    }

    .profile-form-actions .btn {
        padding-inline: .55rem;
        font-size: .78rem;
    }

    .guardian-panel {
        padding: .8rem;
        border-radius: .9rem;
    }

    .guardian-toggle-card {
        align-items: flex-start;
        padding: .8rem;
    }

    .guardian-toggle-card .form-check.form-switch {
        flex: 0 0 auto;
    }

    .document-review-page .record-view-card {
        border-radius: .95rem;
    }

    .document-sections .record-view-section {
        padding: .8rem;
    }

    .document-review-page .doc-actions .btn,
    .document-sections .doc-actions .btn {
        flex: 1 1 calc(50% - .4rem);
    }

    .document-upload-modal .modal-body,
    .document-upload-modal .modal-header,
    .document-upload-modal .modal-footer {
        padding-left: .85rem !important;
        padding-right: .85rem !important;
    }

    .document-upload-modal .input-group {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .finance-entry-section {
        padding: .75rem;
    }

    .finance-entry-footer {
        display: grid;
        grid-template-columns: 1fr 1.3fr;
        width: 100%;
    }

    .finance-entry-footer .btn {
        width: 100%;
        margin: 0 !important;
    }
}

.student-form .entity-form-pane>.row {
    --bs-gutter-y: 1rem;
}

.student-form .entity-form-section-heading {
    margin-bottom: 1rem;
}

.student-form .entity-form-actions {
    border-top-color: color-mix(in srgb, var(--bs-primary) 10%, var(--app-border));
}

.document-review-summary .card {
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--app-border) 75%, transparent) !important;
    border-radius: .9rem !important;
}

.document-review-summary .card-body {
    min-height: 5.4rem;
}

.profile-feedback {
    display: flex;
    align-items: center;
    gap: .55rem;
}

/* =========================================================
   ALUNOS — refinamento visual avançado (dados, família,
   locomoção e saúde)
   ========================================================= */
.student-layout-section {
    margin-bottom: .95rem;
}

.student-subsection-card {
    overflow: hidden;
    padding: 1rem;
    border: 1px solid var(--app-border);
    border-radius: 1.05rem;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-primary-bg-subtle)) 0%,
            var(--bs-body-bg) 100%);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.student-subsection-card:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

.student-subsection-card--accent {
    border-color: color-mix(in srgb, var(--bs-primary) 24%, var(--app-border));
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-primary-bg-subtle) 70%, transparent), transparent 44%),
        var(--bs-body-bg);
}

.student-subsection-head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid color-mix(in srgb, var(--app-border) 74%, transparent);
}

.student-subsection-icon {
    display: grid;
    place-items: center;
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 2.55rem;
    border-radius: .78rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 76%, var(--bs-body-bg));
    color: var(--bs-primary);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 9%, transparent);
}

.student-subsection-eyebrow {
    display: block;
    margin-bottom: .08rem;
    color: var(--bs-primary);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.student-subsection-head h3,
.student-subsection-head p {
    margin: 0;
}

.student-subsection-head h3 {
    color: var(--bs-emphasis-color);
    font-size: .98rem;
    font-weight: 750;
}

.student-subsection-head p {
    margin-top: .2rem;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    line-height: 1.45;
}

.student-subsection-fields > [class*="col-"] {
    min-width: 0;
}

.student-data-pane .student-subsection-card .admin-select-field,
.student-data-pane .student-subsection-card .form-floating,
.student-family-pane .student-subsection-card .form-floating,
.student-mobility-pane .student-subsection-card .form-floating,
.student-health-pane .student-subsection-card .form-floating {
    height: 100%;
}

.student-data-pane .student-subsection-card .form-text {
    margin-top: .35rem;
    font-size: .69rem;
}

.student-data-pane .form-check-inline,
.student-family-pane .form-check-inline,
.student-health-pane .form-check-inline {
    margin-bottom: .35rem;
}

.student-choice-section .student-subsection-fields > [class*="col-"]:has(> h6),
.student-choice-section .student-subsection-fields > [class*="col-"]:has(.form-check-inline) {
    padding-top: .65rem;
    padding-bottom: .65rem;
    border-radius: .8rem;
}

.student-choice-section h6 {
    margin-bottom: .55rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .78rem;
    font-weight: 700;
}

.student-data-pane #NPCpf + label {
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

/* Família / responsáveis */
.guardian-panel {
    position: relative;
    overflow: hidden;
}

.guardian-panel::after {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 4px;
    height: 100%;
    background: color-mix(in srgb, var(--bs-primary) 78%, transparent);
    opacity: .72;
}

.guardian-panel--mother::after {
    background: color-mix(in srgb, #d946ef 68%, var(--bs-primary));
}

.guardian-panel--father::after {
    background: color-mix(in srgb, #2563eb 72%, var(--bs-primary));
}

.guardian-panel--tutor::after {
    background: color-mix(in srgb, #f59e0b 68%, var(--bs-primary));
}

.guardian-panel--mother .guardian-panel-icon {
    color: #a21caf;
    background: color-mix(in srgb, #f5d0fe 58%, var(--bs-body-bg));
}

.guardian-panel--father .guardian-panel-icon {
    color: #1d4ed8;
    background: color-mix(in srgb, #dbeafe 68%, var(--bs-body-bg));
}

.guardian-panel--tutor .guardian-panel-icon {
    color: #b45309;
    background: color-mix(in srgb, #fef3c7 68%, var(--bs-body-bg));
}

.guardian-panel .guardian-fields {
    padding-top: .15rem;
}

.guardian-panel .guardian-responsibility-check {
    min-height: 3rem;
    display: flex;
    align-items: center;
    padding: .72rem .8rem;
}

.guardian-panel .guardian-responsibility-check label {
    font-size: .76rem;
}

.guardian-panel--tutor > .guardian-toggle-card {
    margin-bottom: 0;
    border-style: dashed;
}

.family-context-panel {
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--bs-info-bg-subtle) 48%, var(--bs-body-bg)),
            var(--bs-body-bg));
}

.guardian-shared-panel {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 60%, var(--bs-body-bg));
}

/* Locomoção */
.mobility-panel {
    background: var(--bs-body-bg);
}

.mobility-panel--transport {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-info-bg-subtle) 72%, transparent), transparent 46%),
        var(--bs-body-bg);
}

.mobility-panel--exit {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-warning-bg-subtle) 54%, transparent), transparent 48%),
        var(--bs-body-bg);
}

.mobility-transport-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
}

.mobility-transport-options > h6 {
    grid-column: 1 / -1;
    margin: 0 0 .15rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .78rem;
}

.mobility-transport-options .form-check {
    position: relative;
    min-height: 3.1rem;
    margin: 0;
    padding: .72rem .8rem .72rem 2.35rem;
    border: 1px solid var(--app-border);
    border-radius: .82rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 45%, var(--bs-body-bg));
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.mobility-transport-options .form-check:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--bs-primary) 30%, var(--app-border));
}

.mobility-transport-options .form-check:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 46%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 62%, var(--bs-body-bg));
}

.mobility-transport-options .form-check-input {
    margin-top: .12rem;
}

.mobility-transport-options .form-check-label {
    font-size: .78rem;
    font-weight: 650;
}

.mobility-exit-options {
    padding: .8rem;
    border: 1px dashed var(--app-border);
    border-radius: .85rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 46%, var(--bs-body-bg));
}

.mobility-exit-options h6 {
    margin-bottom: .65rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .8rem;
}

.mobility-exit-options .form-check-inline {
    margin-right: .4rem;
}

/* Saúde */
.health-panel {
    background: var(--bs-body-bg);
}

.health-panel--primary {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-danger-bg-subtle) 45%, transparent), transparent 44%),
        var(--bs-body-bg);
}

.health-question-block {
    padding: .78rem .85rem !important;
    border: 1px solid var(--app-border);
    border-radius: .88rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 48%, var(--bs-body-bg));
}

.health-question-block h6 {
    min-height: 2rem;
    margin-bottom: .58rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .76rem;
    line-height: 1.35;
}

.health-question-block h6 small {
    display: block;
    margin-top: .22rem;
    color: var(--bs-secondary-color) !important;
    font-size: .66rem;
    font-weight: 400;
}

.health-question-block .form-check-inline {
    min-width: 4.35rem;
    margin-right: .35rem;
    padding: .36rem .55rem .36rem 1.8rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    background: var(--bs-body-bg);
}

.health-question-block .form-check-inline:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 42%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 62%, var(--bs-body-bg));
}

.health-question-block .form-check-label {
    font-size: .72rem;
    font-weight: 650;
}

.health-detail-block {
    display: flex;
    align-items: stretch;
}

.health-detail-block .form-floating {
    width: 100%;
}

.health-detail-block .form-control:disabled {
    opacity: .66;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 76%, var(--bs-body-bg));
}

.student-health-pane textarea.form-control {
    min-height: 6.2rem;
}

/* =========================================================
   DOCUMENTOS — painel de revisão e cartões mais informativos
   ========================================================= */
.document-command-center {
    display: grid;
    gap: .9rem;
}

.document-progress-panel {
    position: relative;
    overflow: hidden;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: 1.05rem;
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-primary-bg-subtle) 72%, transparent), transparent 48%),
        var(--bs-body-bg);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .05);
}

.document-progress-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .9rem;
}

.document-progress-title {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
}

.document-progress-icon {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    border-radius: .78rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.document-progress-title strong,
.document-progress-title small {
    display: block;
}

.document-progress-title strong {
    color: var(--bs-emphasis-color);
    font-size: .9rem;
}

.document-progress-title small {
    margin-top: .15rem;
    color: var(--bs-secondary-color);
    font-size: .72rem;
}

.document-progress-value {
    flex: 0 0 auto;
    padding: .34rem .58rem;
    border-radius: 999px;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-size: .75rem;
    font-weight: 800;
}

.document-progress-panel .progress {
    height: .62rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 84%, var(--bs-body-bg));
}

.document-progress-panel .progress-bar {
    border-radius: inherit;
}

.document-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.document-metric-card {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    padding: .72rem;
    border: 1px solid var(--app-border);
    border-radius: .9rem;
    background: var(--bs-body-bg);
}

.document-metric-icon {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    flex: 0 0 2.2rem;
    border-radius: .68rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-primary);
}

.document-metric-card strong,
.document-metric-card small {
    display: block;
}

.document-metric-card strong {
    color: var(--bs-emphasis-color);
    font-size: 1rem;
    line-height: 1.1;
}

.document-metric-card small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .66rem;
}

.document-category-nav {
    display: flex;
    gap: .45rem;
    overflow-x: auto;
    padding: .1rem 0 .2rem;
    scrollbar-width: none;
}

.document-category-nav::-webkit-scrollbar {
    display: none;
}

.document-category-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex: 0 0 auto;
    min-height: 2.35rem;
    padding: .45rem .7rem;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    background: var(--bs-body-bg);
    color: var(--bs-emphasis-color);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.document-category-link:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--app-border));
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
}

.document-category-link .material-symbols-outlined {
    font-size: 1.05rem;
}

.document-category-section {
    scroll-margin-top: 6.5rem;
    position: relative;
}

.document-category-section::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: 99px;
    background: color-mix(in srgb, var(--bs-primary) 52%, transparent);
}

.document-category-section .record-view-section-heading {
    padding-left: 1rem;
}

.document-review-page .doc-card,
.document-sections .doc-card {
    position: relative;
    overflow: hidden;
}

.document-review-page .doc-card::before,
.document-sections .doc-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: color-mix(in srgb, var(--bs-secondary) 38%, transparent);
}

.document-review-page .doc-card[data-status="1"]::before,
.document-sections .doc-card[data-status="1"]::before {
    background: var(--bs-success);
}

.document-review-page .doc-card[data-status="2"]::before,
.document-sections .doc-card[data-status="2"]::before {
    background: var(--bs-danger);
}

.doc-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .55rem;
}

.doc-card-title {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    min-width: 0;
}

.doc-card-title-icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    border-radius: .62rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.doc-card-title strong {
    display: block;
    color: var(--bs-emphasis-color);
    font-size: .78rem;
    line-height: 1.3;
}

.doc-card-title small {
    display: block;
    margin-top: .1rem;
    color: var(--bs-secondary-color);
    font-size: .64rem;
}

.doc-file-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-height: 6rem;
    text-align: center;
}

.doc-file-state small {
    color: var(--bs-secondary-color);
    font-size: .65rem;
}

.doc-observation {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin-bottom: .7rem;
    padding: .55rem .65rem;
    border: 1px solid color-mix(in srgb, var(--bs-warning) 22%, var(--app-border));
    border-radius: .7rem;
    background: color-mix(in srgb, var(--bs-warning-bg-subtle) 45%, var(--bs-body-bg));
    color: var(--bs-emphasis-color);
    font-size: .68rem;
    line-height: 1.4;
}

.doc-observation .material-symbols-outlined {
    flex: 0 0 auto;
    color: var(--bs-warning-text-emphasis);
    font-size: 1rem;
}

.doc-empty-state {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .85rem;
    border: 1px dashed var(--app-border);
    border-radius: .85rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 52%, var(--bs-body-bg));
}

.doc-empty-state .material-symbols-outlined {
    color: var(--bs-primary);
}

.doc-empty-state strong,
.doc-empty-state small {
    display: block;
}

.doc-empty-state strong {
    color: var(--bs-emphasis-color);
    font-size: .78rem;
}

.doc-empty-state small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .68rem;
}

@media (min-width: 576px) {
    .mobility-transport-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .document-metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .student-subsection-card {
        padding: 1.15rem;
    }

    .document-command-center {
        grid-template-columns: minmax(0, 1.4fr) minmax(22rem, .9fr);
        align-items: stretch;
    }

    .document-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .document-category-nav {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .student-layout-section {
        margin-bottom: .75rem;
    }

    .student-subsection-card {
        padding: .82rem;
        border-radius: .95rem;
    }

    .student-subsection-head {
        gap: .62rem;
        margin-bottom: .8rem;
        padding-bottom: .7rem;
    }

    .student-subsection-icon {
        width: 2.25rem;
        height: 2.25rem;
        flex-basis: 2.25rem;
        border-radius: .68rem;
        font-size: 1.25rem;
    }

    .student-subsection-head h3 {
        font-size: .9rem;
    }

    .student-subsection-head p {
        font-size: .7rem;
    }

    .guardian-panel {
        padding-left: .95rem;
    }

    .health-question-block {
        padding: .72rem !important;
    }

    .health-question-block h6 {
        min-height: 0;
    }

    .document-progress-panel {
        padding: .85rem;
        border-radius: .95rem;
    }

    .document-progress-head {
        align-items: center;
    }

    .document-progress-title small {
        display: none;
    }

    .document-metric-grid {
        gap: .45rem;
    }

    .document-metric-card {
        padding: .62rem;
    }

    .document-metric-icon {
        width: 1.95rem;
        height: 1.95rem;
        flex-basis: 1.95rem;
    }

    .document-category-section .record-view-section-heading {
        padding-left: .85rem;
    }

    .doc-card-head {
        gap: .4rem;
    }
}

/* =========================================================
   ALUNOS — estados desabilitados elegantes + Saúde v2
   ========================================================= */
.student-form :is(.form-control, .form-select):disabled,
.student-form :is(.form-control, .form-select)[readonly] {
    border-style: solid;
    border-color: color-mix(in srgb, var(--bs-secondary-color) 18%, var(--app-border));
    background-color: color-mix(in srgb, var(--bs-secondary-bg) 62%, var(--bs-body-bg));
    color: color-mix(in srgb, var(--bs-secondary-color) 80%, var(--bs-body-color));
    -webkit-text-fill-color: color-mix(in srgb, var(--bs-secondary-color) 80%, var(--bs-body-color));
    opacity: .78;
    cursor: not-allowed;
    box-shadow: none;
}

.student-form :is(.form-control, .form-select):disabled::placeholder,
.student-form :is(.form-control, .form-select)[readonly]::placeholder {
    color: var(--bs-secondary-color);
    opacity: .65;
}

.student-form .form-floating:has(> :is(.form-control, .form-select):disabled) {
    position: relative;
}

/* Um cadeado discreto identifica o estado sem repetir selos de texto. */
.student-form .form-floating:has(> :is(.form-control, .form-select):disabled)::after {
    content: "lock";
    position: absolute;
    top: .52rem;
    right: .62rem;
    z-index: 4;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--bs-secondary-bg) 84%, var(--bs-body-bg));
    color: color-mix(in srgb, var(--bs-secondary-color) 84%, transparent);
    font-family: "Material Symbols Outlined";
    font-size: .9rem;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
}

.student-form .form-floating:has(> :is(.form-control, .form-select):disabled) > label {
    color: var(--bs-secondary-color);
    padding-right: 2.4rem;
}

.student-form .ts-wrapper.disabled .ts-control,
.student-form .ts-wrapper.disabled.single .ts-control,
.student-form .ts-wrapper.disabled.multi .ts-control {
    border-style: solid;
    border-color: color-mix(in srgb, var(--bs-secondary-color) 18%, var(--app-border));
    background: color-mix(in srgb, var(--bs-secondary-bg) 62%, var(--bs-body-bg));
    color: var(--bs-secondary-color);
    opacity: .78;
    cursor: not-allowed;
    box-shadow: none;
}

.student-form .ts-wrapper.disabled .ts-control::after {
    content: "lock";
    margin-left: auto;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--bs-secondary-bg) 84%, var(--bs-body-bg));
    color: var(--bs-secondary-color);
    font-family: "Material Symbols Outlined";
    font-size: .9rem;
    font-weight: 400;
    line-height: 1;
}

.student-form .form-check-input:disabled {
    opacity: .48;
    cursor: not-allowed;
}

.student-form .form-check-input:disabled + .form-check-label {
    color: var(--bs-secondary-color);
    opacity: .72;
    cursor: not-allowed;
}

.guardian-fields.guardian-disabled {
    opacity: 1;
    filter: none;
}

.guardian-fields.guardian-disabled .form-floating,
.guardian-fields.guardian-fields-muted .form-floating {
    opacity: .9;
}

/* Saúde v2: cada pergunta passa a ser uma unidade clara e independente. */
.student-health-pane .health-panel {
    overflow: visible;
    background: var(--bs-body-bg);
}

.student-health-pane .health-panel--primary {
    border-color: color-mix(in srgb, var(--bs-danger) 16%, var(--app-border));
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-danger-bg-subtle) 48%, transparent), transparent 38%),
        var(--bs-body-bg);
}

.health-section-head {
    margin-bottom: .9rem;
}

.health-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .7rem;
}

.health-item {
    min-width: 0;
    padding: .85rem;
    border: 1px solid color-mix(in srgb, var(--app-border) 88%, transparent);
    border-radius: .95rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 34%, var(--bs-body-bg));
    box-shadow: 0 4px 14px rgba(15, 23, 42, .028);
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.health-item:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 22%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 18%, var(--bs-body-bg));
    box-shadow: 0 8px 20px rgba(15, 23, 42, .045);
}

.health-item-head {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    min-width: 0;
    margin-bottom: .68rem;
}

.health-item-icon {
    display: grid;
    place-items: center;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 2.15rem;
    border-radius: .68rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 68%, var(--bs-body-bg));
    color: var(--bs-primary);
    font-size: 1.18rem;
}

.health-item-copy {
    min-width: 0;
}

.health-item-copy h4,
.health-item-copy p {
    margin: 0;
}

.health-item-copy h4 {
    color: var(--bs-emphasis-color);
    font-size: .82rem;
    font-weight: 760;
    line-height: 1.35;
}

.health-item-copy p {
    margin-top: .16rem;
    color: var(--bs-secondary-color);
    font-size: .68rem;
    line-height: 1.42;
}

.health-choice-group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .42rem;
}

.health-choice-group .form-check {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.health-choice-group .form-check-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.health-choice-group .form-check-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.45rem;
    width: 100%;
    padding: .5rem .65rem;
    border: 1px solid var(--app-border);
    border-radius: .72rem;
    background: var(--bs-body-bg);
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 750;
    text-align: center;
    cursor: pointer;
    user-select: none;
    transition: border-color .14s ease, background .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.health-choice-group .form-check:hover .form-check-label {
    border-color: color-mix(in srgb, var(--bs-primary) 28%, var(--app-border));
    color: var(--bs-body-color);
}

.health-choice-group .form-check:has(.form-check-input:checked) .form-check-label {
    border-color: color-mix(in srgb, var(--bs-primary) 52%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 68%, var(--bs-body-bg));
    color: var(--bs-primary-text-emphasis);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 10%, transparent);
}

.health-choice-group .form-check:has(.form-check-input:focus-visible) .form-check-label {
    outline: 0;
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 18%, transparent);
}

.health-item-detail {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px dashed color-mix(in srgb, var(--app-border) 88%, transparent);
}

.health-item-detail-label {
    display: flex;
    align-items: center;
    gap: .32rem;
    margin-bottom: .42rem;
    color: var(--bs-secondary-color);
    font-size: .64rem;
    font-weight: 750;
}

.health-item-detail-label .material-symbols-outlined {
    font-size: 1rem;
}

.health-item-detail .form-floating {
    width: 100%;
}

.health-item-detail .form-control {
    min-height: 3.25rem;
}

.health-extra-field {
    margin-top: .75rem;
    padding: .82rem;
    border: 1px dashed color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 20%, var(--bs-body-bg));
}

.health-extra-field-head {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-bottom: .62rem;
}

.health-extra-field-head > .material-symbols-outlined {
    color: var(--bs-primary);
    font-size: 1.25rem;
}

.health-extra-field-head strong,
.health-extra-field-head small {
    display: block;
}

.health-extra-field-head strong {
    color: var(--bs-emphasis-color);
    font-size: .76rem;
}

.health-extra-field-head small {
    margin-top: .12rem;
    color: var(--bs-secondary-color);
    font-size: .66rem;
    line-height: 1.4;
}

@media (min-width: 768px) {
    .health-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .health-grid--compact {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .health-grid:not(.health-grid--compact) .health-item:has(.health-item-detail) {
        align-self: stretch;
    }
}

@media (min-width: 1200px) {
    .health-grid--compact {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .student-form .form-floating:has(> :is(.form-control, .form-select):disabled)::after {
        top: .34rem;
        right: .4rem;
        font-size: .52rem;
    }

    .health-item {
        padding: .75rem;
        border-radius: .86rem;
    }

    .health-item-head {
        gap: .55rem;
    }

    .health-item-icon {
        width: 2rem;
        height: 2rem;
        flex-basis: 2rem;
    }

    .health-choice-group .form-check-label {
        min-height: 2.35rem;
        padding: .46rem .5rem;
    }
}

/* =========================================================
   ALUNOS — formulário clássico refinado
   Volta à organização original dos campos, preservando
   apenas um acabamento moderno e mobile-first.
   ========================================================= */
.student-form-classic .entity-form-pane {
    padding-top: .15rem;
}

.student-form-classic .entity-form-pane > .row {
    --bs-gutter-x: .9rem;
    --bs-gutter-y: .9rem;
    align-items: stretch;
}

.student-form-classic .entity-form-section-heading {
    margin-bottom: 1.15rem;
    padding: .82rem .9rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 11%, var(--app-border));
    border-radius: .95rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 22%, var(--bs-body-bg));
}

.student-form-classic .entity-form-section-heading > .material-symbols-outlined {
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
    border-radius: .72rem;
}

.student-form-classic .entity-form-section-heading h2 {
    font-size: .93rem;
}

.student-form-classic .entity-form-section-heading p {
    font-size: .72rem;
}

.student-form-classic .form-floating > .form-control,
.student-form-classic .form-floating > .form-select,
.student-form-classic .admin-select-field .ts-control,
.student-form-classic .admin-select-field .form-select {
    min-height: 3.55rem;
    border-radius: .82rem;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.student-form-classic .form-floating > .form-control:not(:disabled):hover,
.student-form-classic .form-floating > .form-select:not(:disabled):hover,
.student-form-classic .admin-select-field .ts-control:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 26%, var(--app-border));
}

.student-form-classic .form-text {
    margin-top: .35rem;
    font-size: .68rem;
    line-height: 1.35;
}

.student-form-classic .student-classic-section-heading {
    width: 100%;
    margin-top: .2rem;
}

.student-form-classic .student-classic-section-title {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: .35rem 0 .05rem;
    padding: .52rem .15rem .46rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    color: var(--bs-emphasis-color) !important;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .01em;
}

.student-form-classic .student-classic-section-title::before {
    content: "";
    width: .3rem;
    height: .3rem;
    flex: 0 0 .3rem;
    border-radius: 50%;
    background: var(--bs-primary);
    box-shadow: 0 0 0 .24rem color-mix(in srgb, var(--bs-primary) 10%, transparent);
}

/* Responsáveis: mantém o desenho antigo, só reduz o peso visual. */
.student-form-classic .guardian-panel {
    padding: .9rem;
    border-radius: .9rem;
    border-color: color-mix(in srgb, var(--app-border) 88%, transparent);
    background: color-mix(in srgb, var(--bs-tertiary-bg) 30%, var(--bs-body-bg));
    box-shadow: none;
}

.student-form-classic .guardian-panel-head {
    margin-bottom: .75rem;
}

.student-form-classic .guardian-panel-icon {
    width: 2.2rem;
    height: 2.2rem;
    flex-basis: 2.2rem;
    border-radius: .68rem;
}

.student-form-classic .guardian-toggle-card {
    border-radius: .88rem;
    box-shadow: none;
}

.student-form-classic .guardian-responsibility-check {
    border-style: solid;
    border-color: color-mix(in srgb, var(--app-border) 82%, transparent);
    background: color-mix(in srgb, var(--bs-tertiary-bg) 25%, var(--bs-body-bg));
}

/* Locomoção: opções continuam no formato original, mas ficam mais fáceis de tocar. */
.student-form-classic .student-mobility-options-classic {
    padding-top: .15rem;
    padding-bottom: .25rem;
}

.student-form-classic .student-mobility-options-classic > h6 {
    margin-bottom: .65rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .8rem;
}

.student-form-classic .student-mobility-options-classic .form-check {
    min-height: 2.25rem;
    margin-bottom: .35rem;
    padding-top: .42rem;
    padding-bottom: .42rem;
    padding-right: .65rem;
    border-radius: .7rem;
}

.student-form-classic .student-mobility-options-classic .form-check:hover {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 22%, transparent);
}

/* Saúde: volta ao modelo pergunta + campo complementar, com aparência mais limpa. */
.student-form-classic #pills-qme .row {
    --bs-gutter-y: .72rem;
}

.student-form-classic .student-health-question-classic {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 5.2rem;
    padding-top: .72rem;
    padding-bottom: .72rem;
    border-radius: .82rem 0 0 .82rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 38%, var(--bs-body-bg));
}

.student-form-classic .student-health-question-classic > h6 {
    margin-bottom: .5rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .76rem;
    line-height: 1.35;
}

.student-form-classic .student-health-question-classic > h6 small {
    display: block;
    margin-top: .16rem;
    font-size: .64rem;
    line-height: 1.35;
}

.student-form-classic .student-health-question-classic .form-check-inline {
    margin-right: .8rem;
    margin-bottom: .15rem;
}

.student-form-classic .student-health-detail-classic {
    display: flex;
    align-items: center;
    padding-top: .72rem;
    padding-bottom: .72rem;
    border-radius: 0 .82rem .82rem 0;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 18%, var(--bs-body-bg));
}

.student-form-classic .student-health-detail-classic > .form-floating {
    width: 100%;
}

.student-form-classic #pills-qme hr {
    margin: .25rem 0;
    opacity: .08;
}

.student-form-classic #pills-qme h5 {
    margin: .9rem 0 .25rem;
    color: var(--bs-emphasis-color);
    font-size: .82rem;
    font-weight: 800;
}

/* Mantém a indicação de bloqueio discreta: nome ativo não fica "apagado". */
.student-form-classic .guardian-fields-muted {
    opacity: .56;
}

.student-form-classic #dadosPai:not(.guardian-fields-muted) {
    opacity: 1;
}

@media (max-width: 767.98px) {
    .student-form-classic .entity-form-section-heading {
        align-items: flex-start;
        padding: .75rem;
    }

    .student-form-classic .entity-form-pane > .row {
        --bs-gutter-x: .72rem;
        --bs-gutter-y: .78rem;
    }

    .student-form-classic .student-health-question-classic,
    .student-form-classic .student-health-detail-classic {
        min-height: 0;
        border-radius: .82rem;
    }

    .student-form-classic .student-health-question-classic {
        margin-bottom: -.28rem;
        padding: .7rem .75rem .55rem;
    }

    .student-form-classic .student-health-detail-classic {
        padding: .2rem 0 .78rem;
        background: transparent;
    }

    .student-form-classic .student-health-question-classic .form-check-inline {
        margin-bottom: .1rem;
    }

    .student-form-classic .guardian-panel,
    .student-form-classic .guardian-toggle-card {
        padding: .8rem;
    }
}

@media (max-width: 575.98px) {
    .student-form-classic .entity-form-section-heading > .material-symbols-outlined {
        width: 2.1rem;
        height: 2.1rem;
        flex-basis: 2.1rem;
        font-size: 1.12rem;
    }

    .student-form-classic .entity-form-section-heading h2 {
        font-size: .86rem;
    }

    .student-form-classic .entity-form-section-heading p {
        font-size: .68rem;
    }

    .student-form-classic .form-floating > .form-control,
    .student-form-classic .form-floating > .form-select,
    .student-form-classic .admin-select-field .ts-control,
    .student-form-classic .admin-select-field .form-select {
        min-height: 3.35rem;
    }
}

/* =========================================================
   ALUNOS — moderno equilibrado v3
   Mantém o tamanho/ritmo do formulário clássico aprovado,
   adicionando profundidade, foco e feedback visual modernos.
   ========================================================= */
.student-form-classic {
    --student-accent-soft: color-mix(in srgb, var(--bs-primary) 9%, transparent);
    --student-accent-border: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
}

.student-form-classic .entity-form-section-heading {
    position: relative;
    overflow: hidden;
    border-color: var(--student-accent-border);
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--bs-primary-bg-subtle) 42%, var(--bs-body-bg)) 0%,
            color-mix(in srgb, var(--bs-body-bg) 98%, transparent) 72%);
    box-shadow: 0 7px 20px rgba(15, 23, 42, .045);
}

.student-form-classic .entity-form-section-heading::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: .22rem;
    background: var(--bs-primary);
    opacity: .86;
}

.student-form-classic .entity-form-section-heading > .material-symbols-outlined {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 76%, var(--bs-body-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 10%, transparent);
}

.student-form-classic .form-floating,
.student-form-classic .admin-select-field {
    position: relative;
}

.student-form-classic .form-floating > .form-control:not(:disabled):not([readonly]),
.student-form-classic .form-floating > .form-select:not(:disabled),
.student-form-classic .admin-select-field .ts-control {
    background-color: color-mix(in srgb, var(--bs-body-bg) 98%, var(--bs-tertiary-bg));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.student-form-classic .form-floating > .form-control:not(:disabled):not([readonly]):hover,
.student-form-classic .form-floating > .form-select:not(:disabled):hover,
.student-form-classic .admin-select-field .ts-wrapper:not(.disabled) .ts-control:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 32%, var(--app-border));
    background-color: color-mix(in srgb, var(--bs-primary-bg-subtle) 10%, var(--bs-body-bg));
}

.student-form-classic .form-floating > .form-control:focus,
.student-form-classic .form-floating > .form-select:focus,
.student-form-classic .admin-select-field .ts-wrapper.focus .ts-control {
    border-color: color-mix(in srgb, var(--bs-primary) 62%, var(--app-border));
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--bs-primary) 10%, transparent),
                0 8px 20px rgba(15, 23, 42, .045);
}

.student-form-classic .student-classic-section-title {
    position: relative;
    border-bottom-color: color-mix(in srgb, var(--bs-primary) 11%, var(--bs-border-color-translucent));
}

.student-form-classic .student-classic-section-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 3.1rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--bs-primary), transparent);
}

/* Responsáveis: mais atual, sem virar um card pesado. */
.student-form-classic .guardian-panel {
    position: relative;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--bs-tertiary-bg) 38%, var(--bs-body-bg)) 0%,
            var(--bs-body-bg) 100%);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.student-form-classic .guardian-panel:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
}

.student-form-classic .guardian-panel-icon {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 78%, var(--bs-body-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 11%, transparent);
}

.student-form-classic .guardian-toggle-card {
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.student-form-classic .guardian-toggle-card:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
}

.student-form-classic .guardian-toggle-card:has(.form-check-input:checked) {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 8%, transparent);
}

.student-form-classic .guardian-responsibility-check:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 34%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 38%, var(--bs-body-bg));
}

/* Locomoção: mantém a lista simples, mas com estado selecionado evidente. */
.student-form-classic .student-mobility-options-classic .form-check {
    border: 1px solid transparent;
    transition: border-color .14s ease, background .14s ease, transform .14s ease;
}

.student-form-classic .student-mobility-options-classic .form-check:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 15%, var(--app-border));
}

.student-form-classic .student-mobility-options-classic .form-check:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 30%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 42%, var(--bs-body-bg));
    color: var(--bs-emphasis-color);
}

/* Saúde: conserva pergunta + detalhe, mas com leitura visual melhor. */
.student-form-classic .student-health-question-classic,
.student-form-classic .student-health-detail-classic {
    border: 1px solid color-mix(in srgb, var(--app-border) 84%, transparent);
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.student-form-classic .student-health-question-classic {
    border-right: 0;
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--bs-tertiary-bg) 52%, var(--bs-body-bg)) 0%,
            color-mix(in srgb, var(--bs-primary-bg-subtle) 15%, var(--bs-body-bg)) 100%);
}

.student-form-classic .student-health-detail-classic {
    border-left: 0;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 12%, var(--bs-body-bg));
}

.student-form-classic .student-health-question-classic:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
}

.student-form-classic .student-health-question-classic .form-check-inline {
    position: relative;
    margin-top: .05rem;
    padding: .28rem .52rem .28rem 1.65rem;
    border: 1px solid transparent;
    border-radius: .65rem;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}

.student-form-classic .student-health-question-classic .form-check-inline:hover {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 24%, transparent);
}

.student-form-classic .student-health-question-classic .form-check-inline:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 24%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 46%, var(--bs-body-bg));
    color: var(--bs-emphasis-color);
}

.student-form-classic .student-health-detail-classic:has(.form-control:focus) {
    border-color: color-mix(in srgb, var(--bs-primary) 28%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 10%, var(--bs-body-bg));
}

/* Campos bloqueados continuam claros, sem apagar campos que seguem ativos. */
.student-form-classic :is(.form-control, .form-select):disabled,
.student-form-classic :is(.form-control, .form-select)[readonly] {
    background-color: color-mix(in srgb, var(--bs-secondary-bg) 76%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--app-border) 92%, transparent);
}

.student-form-classic .guardian-fields-muted {
    opacity: .62;
}

.student-form-classic #dadosPai:not(.guardian-fields-muted) {
    opacity: 1;
}

/* Motion só onde ajuda; respeita preferência do usuário. */
@media (prefers-reduced-motion: no-preference) {
    .student-form-classic .guardian-panel:hover {
        transform: translateY(-1px);
    }

    .student-form-classic .student-mobility-options-classic .form-check:active,
    .student-form-classic .guardian-toggle-card:active {
        transform: scale(.995);
    }
}

@media (max-width: 767.98px) {
    .student-form-classic .entity-form-section-heading {
        box-shadow: 0 5px 16px rgba(15, 23, 42, .04);
    }

    .student-form-classic .guardian-panel:hover {
        transform: none;
    }

    .student-form-classic .student-health-question-classic,
    .student-form-classic .student-health-detail-classic {
        border: 1px solid color-mix(in srgb, var(--app-border) 84%, transparent);
    }

    .student-form-classic .student-health-question-classic {
        border-bottom: 0;
        border-radius: .82rem .82rem 0 0;
    }

    .student-form-classic .student-health-detail-classic {
        border-top: 0;
        border-radius: 0 0 .82rem .82rem;
        padding-left: .75rem;
        padding-right: .75rem;
        background: color-mix(in srgb, var(--bs-tertiary-bg) 18%, var(--bs-body-bg));
    }
}

@media (max-width: 575.98px) {
    .student-form-classic .entity-form-section-heading {
        margin-bottom: 1rem;
        border-radius: .9rem;
    }

    .student-form-classic .guardian-panel {
        border-radius: .88rem;
    }

    .student-form-classic .student-health-question-classic .form-check-inline {
        margin-right: .4rem;
        padding-right: .45rem;
    }
}


/* =========================================================
   ALUNOS — acabamento visual organizado v4
   Mais bonito e alinhado, preservando a estrutura clássica.
   ========================================================= */
.student-form-classic {
    --student-surface: color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-tertiary-bg));
    --student-surface-soft: color-mix(in srgb, var(--bs-tertiary-bg) 44%, var(--bs-body-bg));
    --student-border-soft: color-mix(in srgb, var(--app-border) 88%, transparent);
    --student-primary-soft: color-mix(in srgb, var(--bs-primary) 8%, var(--bs-body-bg));
}

/* Ritmo geral do formulário */
.student-form-classic .entity-form-pane > .row {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
}

.student-form-classic .entity-form-section-heading {
    margin-bottom: 1.1rem;
    padding: .9rem 1rem;
    border: 1px solid var(--student-border-soft);
    border-radius: 1rem;
    background: var(--student-surface);
    box-shadow: 0 5px 16px rgba(15, 23, 42, .035);
}

.student-form-classic .entity-form-section-heading::before {
    width: .2rem;
    border-radius: 999px;
}

.student-form-classic .entity-form-section-heading > .material-symbols-outlined {
    width: 2.45rem;
    height: 2.45rem;
    flex-basis: 2.45rem;
    border-radius: .8rem;
    background: var(--student-primary-soft);
}

.student-form-classic .entity-form-section-heading h2 {
    font-size: .96rem;
    letter-spacing: -.01em;
}

.student-form-classic .entity-form-section-heading p {
    max-width: 58rem;
    font-size: .73rem;
}

/* Subtítulos internos: mais limpos e fáceis de localizar */
.student-form-classic .student-classic-section-heading {
    margin-top: .3rem;
}

.student-form-classic .student-classic-section-title {
    gap: .5rem;
    margin: .45rem 0 .1rem;
    padding: .55rem .05rem .5rem;
    border-bottom-color: var(--student-border-soft);
    font-size: .8rem;
    font-weight: 800;
}

.student-form-classic .student-classic-section-title::before {
    width: .22rem;
    height: 1rem;
    flex: 0 0 .22rem;
    border-radius: 999px;
    box-shadow: none;
}

.student-form-classic .student-classic-section-title::after {
    display: none;
}

/* Campos: mesma altura, borda mais limpa e foco elegante */
.student-form-classic .form-floating > .form-control,
.student-form-classic .form-floating > .form-select,
.student-form-classic .admin-select-field .ts-control,
.student-form-classic .admin-select-field .form-select {
    min-height: 3.55rem;
    border-color: var(--student-border-soft);
    border-radius: .82rem;
    background-color: var(--student-surface);
    box-shadow: none;
}

.student-form-classic .form-floating > label {
    color: var(--bs-secondary-color);
    font-size: .82rem;
}

.student-form-classic .admin-select-field > .form-label {
    margin-bottom: .4rem;
    color: var(--bs-emphasis-color);
    font-size: .76rem;
    font-weight: 750 !important;
}

.student-form-classic .form-floating > .form-control:not(:disabled):not([readonly]):hover,
.student-form-classic .form-floating > .form-select:not(:disabled):hover,
.student-form-classic .admin-select-field .ts-wrapper:not(.disabled) .ts-control:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 26%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 7%, var(--bs-body-bg));
}

.student-form-classic .form-floating > .form-control:focus,
.student-form-classic .form-floating > .form-select:focus,
.student-form-classic .admin-select-field .ts-wrapper.focus .ts-control {
    border-color: color-mix(in srgb, var(--bs-primary) 52%, var(--app-border));
    background: var(--bs-body-bg);
    box-shadow: 0 0 0 .18rem color-mix(in srgb, var(--bs-primary) 9%, transparent);
}

.student-form-classic .form-text {
    margin: .35rem .1rem 0;
    color: color-mix(in srgb, var(--bs-secondary-color) 88%, transparent);
}

/* Checkboxes soltos ficam com cara de opção, sem virar card pesado */
.student-form-classic .form-floating > .form-check:only-child {
    display: flex;
    align-items: center;
    min-height: 3.35rem;
    margin: 0;
    padding: .72rem .8rem .72rem 2.35rem;
    border: 1px solid var(--student-border-soft);
    border-radius: .8rem;
    background: var(--student-surface);
}

.student-form-classic .form-floating > .form-check:only-child:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    background: var(--student-primary-soft);
}

.student-form-classic .form-floating > .form-check:not(:only-child) {
    margin: .35rem .15rem 0;
}

/* Responsáveis: cabeçalho bem separado e conteúdo mais arrumado */
.student-form-classic .guardian-panel {
    overflow: hidden;
    padding: .95rem;
    border: 1px solid var(--student-border-soft);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .03);
}

.student-form-classic .guardian-panel:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    box-shadow: 0 7px 20px rgba(15, 23, 42, .045);
}

.student-form-classic .guardian-panel-head {
    margin: -.05rem -.05rem .85rem;
    padding: 0 0 .72rem;
    border-bottom: 1px solid var(--student-border-soft);
}

.student-form-classic .guardian-panel-icon {
    width: 2.25rem;
    height: 2.25rem;
    flex-basis: 2.25rem;
    border-radius: .72rem;
}

.student-form-classic .guardian-toggle-card,
.student-form-classic .guardian-responsibility-check {
    border: 1px solid var(--student-border-soft);
    border-radius: .8rem;
    background: var(--student-surface);
}

.student-form-classic .guardian-toggle-card:has(.form-check-input:checked),
.student-form-classic .guardian-responsibility-check:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 30%, var(--app-border));
    background: var(--student-primary-soft);
    box-shadow: none;
}

/* Locomoção: opções alinhadas e com estado ativo nítido */
.student-form-classic .student-mobility-options-classic {
    padding: .2rem 0 .15rem;
}

.student-form-classic .student-mobility-options-classic > h6 {
    margin-bottom: .7rem;
    font-size: .79rem;
    font-weight: 800;
}

.student-form-classic .student-mobility-options-classic .form-check {
    display: inline-flex;
    align-items: center;
    min-height: 2.45rem;
    margin: 0 .4rem .4rem 0;
    padding: .48rem .72rem .48rem 2rem;
    border: 1px solid var(--student-border-soft);
    border-radius: .75rem;
    background: var(--student-surface);
}

.student-form-classic .student-mobility-options-classic .form-check:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 22%, var(--app-border));
    background: var(--student-primary-soft);
}

.student-form-classic .student-mobility-options-classic .form-check:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 34%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 52%, var(--bs-body-bg));
}

/* Saúde: cada linha vira um conjunto visual único, sem parecer dois blocos soltos */
.student-form-classic #pills-qme .row {
    --bs-gutter-y: .8rem;
}

.student-form-classic .student-health-question-classic,
.student-form-classic .student-health-detail-classic {
    min-height: 5.35rem;
    border-color: var(--student-border-soft);
    box-shadow: none;
}

.student-form-classic .student-health-question-classic {
    justify-content: center;
    padding: .8rem .9rem;
    border-right: 0;
    border-radius: .9rem 0 0 .9rem;
    background: var(--student-surface-soft);
}

.student-form-classic .student-health-question-classic > h6 {
    margin-bottom: .55rem;
    font-size: .77rem;
    line-height: 1.35;
}

.student-form-classic .student-health-question-classic > h6 small {
    margin-top: .18rem;
    color: var(--bs-secondary-color);
    font-size: .64rem;
}

.student-form-classic .student-health-detail-classic {
    padding: .72rem .85rem;
    border-left: 0;
    border-radius: 0 .9rem .9rem 0;
    background: var(--bs-body-bg);
}

.student-form-classic .student-health-detail-classic::before {
    content: "";
    align-self: stretch;
    width: 1px;
    margin-right: .75rem;
    background: var(--student-border-soft);
}

.student-form-classic .student-health-question-classic .form-check-inline {
    margin: 0 .35rem .15rem 0;
    padding: .3rem .55rem .3rem 1.7rem;
    border: 1px solid var(--student-border-soft);
    border-radius: .65rem;
    background: var(--bs-body-bg);
}

.student-form-classic .student-health-question-classic .form-check-inline:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 22%, var(--app-border));
    background: var(--student-primary-soft);
}

.student-form-classic .student-health-question-classic .form-check-inline:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 32%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 48%, var(--bs-body-bg));
}

.student-form-classic #pills-qme hr {
    margin: .12rem 0;
    opacity: .055;
}

.student-form-classic #pills-qme h5 {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 1rem 0 .35rem;
    font-size: .8rem;
    letter-spacing: .01em;
}

.student-form-classic #pills-qme h5::before {
    content: "";
    width: .22rem;
    height: .9rem;
    border-radius: 999px;
    background: var(--bs-primary);
}

/* Desabilitado continua claro, mas sem deixar o formulário sujo */
.student-form-classic :is(.form-control, .form-select):disabled,
.student-form-classic :is(.form-control, .form-select)[readonly] {
    background-color: color-mix(in srgb, var(--bs-secondary-bg) 70%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-secondary-color) 14%, var(--app-border));
    opacity: .82;
}

.student-form-classic .guardian-fields-muted {
    opacity: .62;
}

.student-form-classic #dadosPai:not(.guardian-fields-muted) {
    opacity: 1;
}

@media (max-width: 767.98px) {
    .student-form-classic .entity-form-pane > .row {
        --bs-gutter-x: .8rem;
        --bs-gutter-y: .85rem;
    }

    .student-form-classic .entity-form-section-heading {
        padding: .8rem;
    }

    .student-form-classic .guardian-panel {
        padding: .85rem;
    }

    .student-form-classic .student-health-question-classic,
    .student-form-classic .student-health-detail-classic {
        min-height: 0;
        border: 1px solid var(--student-border-soft);
    }

    .student-form-classic .student-health-question-classic {
        margin-bottom: -.12rem;
        padding: .75rem .8rem .62rem;
        border-bottom: 0;
        border-radius: .85rem .85rem 0 0;
    }

    .student-form-classic .student-health-detail-classic {
        padding: .42rem .75rem .75rem;
        border-top: 0;
        border-radius: 0 0 .85rem .85rem;
        background: var(--bs-body-bg);
    }

    .student-form-classic .student-health-detail-classic::before {
        display: none;
    }

    .student-form-classic .student-mobility-options-classic .form-check {
        margin-right: .3rem;
    }
}

@media (max-width: 575.98px) {
    .student-form-classic .entity-form-section-heading {
        border-radius: .9rem;
    }

    .student-form-classic .entity-form-section-heading > .material-symbols-outlined {
        width: 2.2rem;
        height: 2.2rem;
        flex-basis: 2.2rem;
    }

    .student-form-classic .form-floating > .form-control,
    .student-form-classic .form-floating > .form-select,
    .student-form-classic .admin-select-field .ts-control,
    .student-form-classic .admin-select-field .form-select {
        min-height: 3.4rem;
    }

    .student-form-classic .student-mobility-options-classic .form-check {
        display: flex;
        width: 100%;
        margin-right: 0;
    }

    .student-form-classic .student-health-question-classic .form-check-inline {
        min-width: 4.6rem;
        justify-content: flex-start;
    }
}

/* ========================================================================== 
   ALUNOS — Saúde refinada v5
   ========================================================================== */
.student-form-classic .student-health-classic-v2 {
    --health-border: color-mix(in srgb, var(--app-border) 82%, transparent);
    --health-soft: color-mix(in srgb, var(--bs-tertiary-bg) 58%, var(--bs-body-bg));
    --health-primary-soft: color-mix(in srgb, var(--bs-primary-bg-subtle) 46%, var(--bs-body-bg));
}

.student-form-classic .student-health-guide {
    display: flex;
    align-items: flex-start;
    gap: .72rem;
    margin: .15rem 0 1rem;
    padding: .78rem .9rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 16%, var(--app-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 28%, var(--bs-body-bg));
}

.student-form-classic .student-health-guide > .material-symbols-outlined {
    flex: 0 0 auto;
    margin-top: .05rem;
    color: var(--bs-primary);
    font-size: 1.15rem;
}

.student-form-classic .student-health-guide div { min-width: 0; }
.student-form-classic .student-health-guide strong,
.student-form-classic .student-health-guide small { display: block; }
.student-form-classic .student-health-guide strong {
    margin-bottom: .08rem;
    color: var(--bs-emphasis-color);
    font-size: .78rem;
    font-weight: 800;
}
.student-form-classic .student-health-guide small {
    color: var(--bs-secondary-color);
    font-size: .68rem;
    line-height: 1.42;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic,
.student-form-classic .student-health-classic-v2 .student-health-detail-classic {
    position: relative;
    min-height: 5.15rem;
    border: 1px solid var(--health-border);
    box-shadow: none;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic {
    justify-content: center;
    padding: .78rem .88rem;
    border-radius: .92rem;
    background: var(--health-soft);
    overflow: hidden;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic::before {
    content: "";
    position: absolute;
    inset: .55rem auto .55rem 0;
    width: .2rem;
    border-radius: 0 999px 999px 0;
    background: color-mix(in srgb, var(--bs-secondary-color) 20%, transparent);
    transition: background-color .18s ease, width .18s ease;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 22%, var(--app-border));
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic.is-health-positive {
    border-color: color-mix(in srgb, var(--bs-primary) 28%, var(--app-border));
    background: var(--health-primary-soft);
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic.is-health-positive::before {
    width: .24rem;
    background: var(--bs-primary);
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic > h6 {
    margin: 0 0 .58rem;
    color: var(--bs-emphasis-color) !important;
    font-size: .8rem;
    font-weight: 750;
    line-height: 1.4;
}
.student-form-classic .student-health-classic-v2 .student-health-question-classic > h6 b { font-weight: inherit; }
.student-form-classic .student-health-classic-v2 .student-health-question-classic > h6 small {
    display: block;
    margin-top: .22rem;
    color: var(--bs-secondary-color) !important;
    font-size: .65rem;
    font-weight: 500;
    line-height: 1.42;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-inline {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    margin: 0 .34rem .08rem 0;
    padding: .34rem .62rem .34rem 1.72rem;
    border: 1px solid var(--health-border);
    border-radius: .68rem;
    background: var(--bs-body-bg);
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease;
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-inline:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 28%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 30%, var(--bs-body-bg));
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-inline:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 38%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 58%, var(--bs-body-bg));
}

.student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-input { margin-top: 0; }
.student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-label {
    color: var(--bs-emphasis-color);
    font-size: .72rem;
    font-weight: 700;
    cursor: pointer;
}

.student-form-classic .student-health-classic-v2 .student-health-detail-classic {
    display: flex;
    align-items: center;
    padding: .65rem .72rem;
    border-radius: .92rem;
    background: var(--bs-body-bg);
}
.student-form-classic .student-health-classic-v2 .student-health-detail-classic::before { display: none; }
.student-form-classic .student-health-classic-v2 .student-health-detail-classic > .form-floating { width: 100%; }
.student-form-classic .student-health-classic-v2 .student-health-detail-classic.is-health-disabled {
    background: color-mix(in srgb, var(--bs-secondary-bg) 52%, var(--bs-body-bg));
}
.student-form-classic .student-health-classic-v2 .student-health-detail-classic.is-health-enabled {
    border-color: color-mix(in srgb, var(--bs-primary) 30%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 18%, var(--bs-body-bg));
    box-shadow: 0 0 0 .13rem color-mix(in srgb, var(--bs-primary) 5%, transparent);
}
.student-form-classic .student-health-classic-v2 .student-health-detail-classic.is-health-enabled .form-control {
    border-color: color-mix(in srgb, var(--bs-primary) 24%, var(--app-border));
}

.student-form-classic .student-health-classic-v2 .student-health-question-standalone { height: 100%; }

.student-form-classic .student-health-classic-v2 .student-health-group-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: calc(100% - var(--bs-gutter-x));
    margin: .55rem calc(var(--bs-gutter-x) * .5) -.08rem;
    padding: .62rem .78rem;
    border: 1px solid var(--health-border);
    border-radius: .8rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 68%, var(--bs-body-bg));
    color: var(--bs-emphasis-color) !important;
    font-size: .76rem;
    font-weight: 800;
}
.student-form-classic .student-health-classic-v2 .student-health-group-title::before { display: none; }
.student-form-classic .student-health-classic-v2 .student-health-group-icon {
    display: inline-grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 1.85rem;
    border-radius: .58rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 62%, var(--bs-body-bg));
    color: var(--bs-primary);
    font-size: 1rem;
}
.student-form-classic .student-health-classic-v2 .student-health-divider {
    width: calc(100% - var(--bs-gutter-x));
    margin: .35rem calc(var(--bs-gutter-x) * .5) 0;
    opacity: .055;
}

.student-form-classic .student-health-classic-v2 textarea.form-control {
    min-height: 5.4rem;
    resize: vertical;
}
.student-form-classic .student-health-classic-v2 .form-floating > textarea.form-control:not(:disabled):focus,
.student-form-classic .student-health-classic-v2 .form-floating > input.form-control:not(:disabled):focus {
    border-color: color-mix(in srgb, var(--bs-primary) 40%, var(--app-border));
    box-shadow: 0 0 0 .15rem color-mix(in srgb, var(--bs-primary) 9%, transparent);
}

@media (max-width: 767.98px) {
    .student-form-classic .student-health-guide {
        margin-bottom: .82rem;
        padding: .72rem .78rem;
    }
    .student-form-classic .student-health-classic-v2 .student-health-question-classic,
    .student-form-classic .student-health-classic-v2 .student-health-detail-classic {
        min-height: 0;
        border: 1px solid var(--health-border);
        border-radius: .88rem;
    }
    .student-form-classic .student-health-classic-v2 .student-health-question-classic {
        margin-bottom: 0;
        padding: .72rem .78rem;
    }
    .student-form-classic .student-health-classic-v2 .student-health-detail-classic {
        margin-top: -.28rem;
        padding: .55rem .65rem .68rem;
    }
    .student-form-classic .student-health-classic-v2 .student-health-detail-classic.is-health-enabled { margin-top: -.15rem; }
    .student-form-classic .student-health-classic-v2 .student-health-group-title { margin-top: .45rem; }
}

@media (max-width: 575.98px) {
    .student-form-classic .student-health-guide small { font-size: .66rem; }
    .student-form-classic .student-health-classic-v2 .student-health-question-classic > h6 { font-size: .78rem; }
    .student-form-classic .student-health-classic-v2 .student-health-question-classic .form-check-inline {
        min-width: 4.7rem;
        justify-content: flex-start;
        margin-right: .25rem;
    }
    .student-form-classic .student-health-classic-v2 .student-health-group-title { padding: .58rem .68rem; }
}


/* =========================================================
   ALUNOS — SAÚDE / ANAMNESE v6
   Redesign estrutural mobile-first (não apenas cosmético)
   ========================================================= */
.student-health-pane[data-health-classic-v2="1"] {
    --health-radius: 1.05rem;
    --health-radius-sm: .82rem;
    --health-gap: .8rem;
}

.student-health-pane .health-ui-heading {
    margin-bottom: .8rem;
}

.health-ui-intro {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .75rem;
    align-items: start;
    padding: .9rem;
    margin-bottom: 1rem;
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, var(--app-border));
    border-radius: var(--health-radius);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--bs-primary-bg-subtle) 64%, transparent), transparent 46%),
        color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-primary-bg-subtle));
}

.health-ui-intro-icon,
.health-ui-section-icon,
.health-ui-question-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.health-ui-intro-icon {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: .82rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}

.health-ui-intro-icon .material-symbols-outlined { font-size: 1.35rem; }

.health-ui-intro-copy strong,
.health-ui-intro-copy span {
    display: block;
}

.health-ui-intro-copy strong {
    color: var(--bs-emphasis-color);
    font-size: .9rem;
    line-height: 1.25;
}

.health-ui-intro-copy span {
    margin-top: .2rem;
    color: var(--bs-secondary-color);
    font-size: .76rem;
    line-height: 1.45;
}

.health-ui-required {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    gap: .28rem;
    padding: .32rem .5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-danger-bg-subtle) 72%, var(--bs-body-bg));
    color: var(--bs-danger-text-emphasis);
    font-size: .68rem;
    font-weight: 750;
}
.health-ui-required .material-symbols-outlined { font-size: .8rem; }

.health-ui-stack {
    display: grid;
    gap: 1rem;
}

.health-ui-section {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--app-border);
    border-radius: var(--health-radius);
    background: var(--bs-body-bg);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
}

.health-ui-section-head {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .9rem;
    border-bottom: 1px solid var(--app-border);
    background: color-mix(in srgb, var(--bs-tertiary-bg) 52%, var(--bs-body-bg));
}

.health-ui-section-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: .76rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary);
}
.health-ui-section-icon.material-symbols-outlined { font-size: 1.2rem; }

.health-ui-section-head h3 {
    margin: 0;
    color: var(--bs-emphasis-color);
    font-size: .88rem;
    font-weight: 800;
    line-height: 1.25;
}
.health-ui-section-head p {
    margin: .18rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .71rem;
    line-height: 1.4;
}

.health-ui-section--care .health-ui-section-icon { background: color-mix(in srgb, var(--bs-danger-bg-subtle) 76%, var(--bs-body-bg)); color: var(--bs-danger); }
.health-ui-section--access .health-ui-section-icon { background: color-mix(in srgb, var(--bs-info-bg-subtle) 78%, var(--bs-body-bg)); color: var(--bs-info-text-emphasis); }
.health-ui-section--learning .health-ui-section-icon { background: color-mix(in srgb, #ede9fe 74%, var(--bs-body-bg)); color: #6d28d9; }
.health-ui-section--chronic .health-ui-section-icon { background: color-mix(in srgb, var(--bs-warning-bg-subtle) 74%, var(--bs-body-bg)); color: var(--bs-warning-text-emphasis); }

.health-ui-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: var(--health-gap);
    padding: .8rem;
}

.health-ui-pair,
.health-ui-question--standalone,
.health-ui-notes {
    min-width: 0;
    border: 1px solid color-mix(in srgb, var(--app-border) 92%, transparent);
    border-radius: .95rem;
    background: var(--bs-body-bg);
    box-shadow: 0 2px 10px rgba(15, 23, 42, .025);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.health-ui-pair:hover,
.health-ui-question--standalone:hover,
.health-ui-notes:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 24%, var(--app-border));
    box-shadow: 0 8px 20px rgba(15, 23, 42, .055);
}

.health-ui-question {
    display: grid;
    gap: .8rem;
    padding: .85rem;
    background: transparent;
}

.health-ui-question--standalone { padding: .85rem; }

.health-ui-question-copy {
    display: flex;
    align-items: flex-start;
    gap: .62rem;
    min-width: 0;
}

.health-ui-question-icon {
    width: 2.05rem;
    height: 2.05rem;
    border-radius: .68rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 72%, var(--bs-body-bg));
    color: var(--bs-primary);
}
.health-ui-question-icon.material-symbols-outlined { font-size: 1.08rem; }

.health-ui-question-copy strong,
.health-ui-question-copy small { display: block; }
.health-ui-question-copy strong {
    color: var(--bs-emphasis-color);
    font-size: .8rem;
    font-weight: 780;
    line-height: 1.35;
}
.health-ui-question-copy small {
    margin-top: .18rem;
    color: var(--bs-secondary-color);
    font-size: .68rem;
    line-height: 1.38;
}

.health-segment {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .42rem;
    padding: .28rem;
    border: 1px solid var(--app-border);
    border-radius: .78rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 62%, var(--bs-body-bg));
}

.health-segment-option { position: relative; min-width: 0; }
.health-segment-option .form-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.health-segment-option label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    min-height: 2.15rem;
    margin: 0;
    padding: .4rem .55rem;
    border: 1px solid transparent;
    border-radius: .62rem;
    color: var(--bs-secondary-color);
    background: transparent;
    font-size: .73rem;
    font-weight: 720;
    cursor: pointer;
    user-select: none;
    transition: background .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.health-segment-option label .material-symbols-outlined { font-size: .98rem; }
.health-segment-option .form-check-input:checked + label {
    border-color: color-mix(in srgb, var(--bs-primary) 20%, var(--app-border));
    background: var(--bs-body-bg);
    color: var(--bs-primary);
    box-shadow: 0 2px 7px rgba(15, 23, 42, .07);
}
.health-segment-option .form-check-input:focus-visible + label {
    outline: 3px solid color-mix(in srgb, var(--bs-primary) 20%, transparent);
    outline-offset: 1px;
}

.health-ui-detail {
    position: relative;
    padding: .75rem .85rem .85rem;
    border-top: 1px dashed color-mix(in srgb, var(--app-border) 90%, transparent);
    background: color-mix(in srgb, var(--bs-tertiary-bg) 42%, var(--bs-body-bg));
}
.health-ui-detail-label {
    display: block;
    margin-bottom: .38rem;
    color: var(--bs-emphasis-color);
    font-size: .7rem;
    font-weight: 750;
}
.health-ui-detail .form-control {
    min-height: 2.8rem;
    border-radius: .72rem;
    font-size: .78rem;
}
.health-ui-detail-help {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-top: .38rem;
    color: var(--bs-secondary-color);
    font-size: .63rem;
    line-height: 1.35;
}
.health-ui-detail-help .material-symbols-outlined { font-size: .8rem; }
.health-ui-detail.is-health-enabled .health-ui-detail-help .material-symbols-outlined { display: none; }
.health-ui-detail.is-health-enabled .health-ui-detail-help { color: var(--bs-primary); }
.health-ui-detail.is-health-disabled { opacity: .78; }
.health-ui-detail.is-health-disabled .form-control:disabled {
    opacity: 1;
    color: var(--bs-secondary-color);
    border-style: dashed;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 76%, var(--bs-body-bg));
}

.health-ui-notes {
    display: grid;
    gap: .72rem;
    padding: .85rem;
}
.health-ui-notes textarea.form-control {
    min-height: 6.4rem;
    resize: vertical;
    border-radius: .78rem;
    font-size: .78rem;
}

.student-health-pane .health-ui-question.is-health-positive .health-ui-question-icon {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 78%, var(--bs-body-bg));
    color: var(--bs-primary);
}

@media (min-width: 576px) {
    .health-ui-intro {
        grid-template-columns: auto minmax(0,1fr) auto;
        align-items: center;
    }
    .health-ui-required { grid-column: auto; align-self: start; }
}

@media (min-width: 768px) {
    .health-ui-grid { grid-template-columns: repeat(2,minmax(0,1fr)); padding: .9rem; }
    .health-ui-pair--wide,
    .health-ui-question--wide { grid-column: 1 / -1; }
    .health-ui-question { padding: .92rem; }
    .health-ui-question--standalone { padding: .92rem; }
}

@media (min-width: 1200px) {
    .health-ui-section--learning .health-ui-grid,
    .health-ui-section--chronic .health-ui-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .health-ui-section--learning .health-ui-question--wide,
    .health-ui-section--chronic .health-ui-pair--wide { grid-column: 1 / -1; }
}

@media (max-width: 575.98px) {
    .student-health-pane .entity-form-section-heading.health-ui-heading {
        align-items: flex-start;
    }
    .health-ui-intro,
    .health-ui-section-head,
    .health-ui-grid { padding-left: .72rem; padding-right: .72rem; }
    .health-ui-question,
    .health-ui-question--standalone,
    .health-ui-notes { padding: .78rem; }
    .health-ui-question-copy strong { font-size: .78rem; }
    .health-ui-section-head p { font-size: .68rem; }
}

/* ========================================================================== */
/* ALUNOS · REDESIGN MOBILE-FIRST V7 — ALUNO / RESPONSÁVEIS / LOCOMOÇÃO      */
/* ========================================================================== */
.student-form-ui-v7 .student-ui-heading{
    margin-bottom:.8rem;
}
.student-ui-stack,
.guardian-ui-stack,
.mobility-ui-stack{
    display:grid;
    gap:.9rem;
}
.student-ui-intro{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:.75rem;
    align-items:center;
    padding:.82rem;
    border:1px solid color-mix(in srgb,var(--bs-primary) 18%,var(--bs-border-color));
    border-radius:1rem;
    background:linear-gradient(135deg,color-mix(in srgb,var(--bs-primary-bg-subtle) 55%,var(--bs-body-bg)),var(--bs-body-bg));
    box-shadow:0 .35rem 1.15rem rgba(15,23,42,.035);
}
.student-ui-intro-icon{
    width:2.65rem;height:2.65rem;border-radius:.82rem;
    display:grid;place-items:center;
    background:var(--bs-primary);color:#fff;
    box-shadow:0 .45rem 1rem color-mix(in srgb,var(--bs-primary) 24%,transparent);
}
.student-ui-intro-icon .material-symbols-outlined{font-size:1.3rem}
.student-ui-intro-copy{min-width:0}
.student-ui-intro-copy strong,.student-ui-intro-copy span{display:block}
.student-ui-intro-copy strong{font-size:.88rem;line-height:1.25;color:var(--bs-emphasis-color)}
.student-ui-intro-copy span{margin-top:.15rem;font-size:.72rem;line-height:1.42;color:var(--bs-secondary-color)}
.student-ui-intro-badge{
    grid-column:1/-1;
    display:inline-flex;align-items:center;justify-content:center;gap:.3rem;
    width:max-content;max-width:100%;
    padding:.34rem .55rem;border-radius:999px;
    background:color-mix(in srgb,var(--bs-primary) 10%,var(--bs-body-bg));
    color:var(--bs-primary);font-size:.68rem;font-weight:700;
}
.student-ui-intro-badge .material-symbols-outlined{font-size:.88rem}

.student-ui-section,
.guardian-ui-person-card{
    overflow:hidden;
    border:1px solid var(--bs-border-color-translucent);
    border-radius:1rem;
    background:var(--bs-body-bg);
    box-shadow:0 .35rem 1.1rem rgba(15,23,42,.04);
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.student-ui-section:focus-within,
.guardian-ui-person-card:focus-within{
    border-color:color-mix(in srgb,var(--bs-primary) 45%,var(--bs-border-color));
    box-shadow:0 .5rem 1.35rem color-mix(in srgb,var(--bs-primary) 8%,transparent);
}
.student-ui-section-head,
.guardian-ui-person-head{
    display:flex;align-items:flex-start;gap:.7rem;
    padding:.78rem .82rem;
    border-bottom:1px solid var(--bs-border-color-translucent);
    background:color-mix(in srgb,var(--bs-tertiary-bg) 72%,var(--bs-body-bg));
}
.student-ui-section-icon,
.guardian-ui-avatar{
    flex:0 0 auto;
    width:2.35rem;height:2.35rem;border-radius:.72rem;
    display:grid;place-items:center;
    font-size:1.13rem;
    background:color-mix(in srgb,var(--bs-primary) 11%,var(--bs-body-bg));
    color:var(--bs-primary);
}
.student-ui-section-copy,
.guardian-ui-person-head>div{min-width:0}
.student-ui-eyebrow{
    display:block;margin-bottom:.12rem;
    color:var(--bs-primary);font-size:.61rem;font-weight:800;
    letter-spacing:.08em;text-transform:uppercase;
}
.student-ui-section-head h3,
.guardian-ui-person-head h3{
    margin:0;color:var(--bs-emphasis-color);
    font-size:.84rem;font-weight:800;line-height:1.25;
}
.student-ui-section-head p,
.guardian-ui-person-head p{
    margin:.13rem 0 0;color:var(--bs-secondary-color);
    font-size:.68rem;line-height:1.4;
}
.student-ui-section-body,
.guardian-ui-person-body{
    margin:0;
    padding:.82rem;
}
.student-ui-section-body>[class*="col-"],
.guardian-ui-person-body>[class*="col-"]{
    min-width:0;
}
.student-form-ui-v7 .student-ui-section .form-floating>.form-control,
.student-form-ui-v7 .student-ui-section .form-floating>.form-select,
.student-form-ui-v7 .guardian-ui-person-card .form-floating>.form-control,
.student-form-ui-v7 .guardian-ui-person-card .form-floating>.form-select{
    border-radius:.78rem;
}
.student-form-ui-v7 .student-ui-section .admin-select-field,
.student-form-ui-v7 .guardian-ui-person-card .admin-select-field{
    height:100%;
}
.student-ui-section--academic .student-ui-section-icon{background:color-mix(in srgb,var(--bs-primary) 12%,var(--bs-body-bg));color:var(--bs-primary)}
.student-ui-section--identity .student-ui-section-icon{background:color-mix(in srgb,#7c3aed 11%,var(--bs-body-bg));color:#7c3aed}
.student-ui-section--address .student-ui-section-icon{background:color-mix(in srgb,#0f766e 11%,var(--bs-body-bg));color:#0f766e}
.student-ui-section--contact .student-ui-section-icon{background:color-mix(in srgb,#d97706 12%,var(--bs-body-bg));color:#b45309}

/* Escolhas do cadastro do aluno */
.student-profile-ui .student-ui-choice{
    display:inline-flex;align-items:center;gap:.35rem;
    margin:.2rem .3rem .2rem 0;padding:.42rem .62rem;
    border:1px solid var(--bs-border-color);border-radius:.72rem;
    background:var(--bs-body-bg);
    transition:.18s ease;
}
.student-profile-ui .student-ui-choice:hover{border-color:color-mix(in srgb,var(--bs-primary) 35%,var(--bs-border-color));background:var(--bs-tertiary-bg)}
.student-profile-ui .student-ui-choice:has(.form-check-input:checked){border-color:color-mix(in srgb,var(--bs-primary) 58%,var(--bs-border-color));background:color-mix(in srgb,var(--bs-primary) 8%,var(--bs-body-bg));color:var(--bs-primary-text-emphasis)}
.student-profile-ui .student-ui-choice .form-check-input{margin-top:0}
.student-profile-ui .student-ui-choice .form-check-label{font-size:.72rem;font-weight:700}
.student-profile-ui #NPCpf+.form-check-label{font-size:.7rem}

/* Responsáveis */
.guardian-ui-pane .guardian-ui-person-card--mother .guardian-ui-avatar{background:color-mix(in srgb,#ec4899 12%,var(--bs-body-bg));color:#db2777}
.guardian-ui-pane .guardian-ui-person-card--father .guardian-ui-avatar{background:color-mix(in srgb,#2563eb 12%,var(--bs-body-bg));color:#2563eb}
.guardian-ui-pane .guardian-ui-person-card--tutor .guardian-ui-avatar{background:color-mix(in srgb,#7c3aed 12%,var(--bs-body-bg));color:#7c3aed}
.guardian-ui-pane .student-ui-section--family-context .student-ui-section-icon{background:color-mix(in srgb,#0891b2 12%,var(--bs-body-bg));color:#087f9b}
.guardian-ui-pane .student-ui-section--family-contact .student-ui-section-icon{background:color-mix(in srgb,#16a34a 12%,var(--bs-body-bg));color:#15803d}
.guardian-ui-person-card .guardian-ui-person-body>.guardian-toggle-grid,
.guardian-ui-person-card .guardian-ui-person-body>#dadosPai,
.guardian-ui-person-card .guardian-ui-person-body>#dadosProcuradorTutor{
    grid-column:1/-1;
    width:auto;
}
.guardian-ui-specials{
    display:grid;grid-template-columns:1fr;gap:.55rem;
    margin:0!important;
}
.guardian-ui-pane .guardian-toggle-card{
    border-radius:.82rem;
    border-color:var(--bs-border-color-translucent);
    background:color-mix(in srgb,var(--bs-tertiary-bg) 58%,var(--bs-body-bg));
}
.guardian-ui-pane .guardian-toggle-card:has(.form-check-input:checked){
    border-color:color-mix(in srgb,var(--bs-primary) 42%,var(--bs-border-color));
    background:color-mix(in srgb,var(--bs-primary) 6%,var(--bs-body-bg));
}
.guardian-ui-tutor-switch{margin:0!important}
.guardian-ui-responsibility{
    display:flex;align-items:center;
    min-height:2.7rem;padding:.58rem .7rem!important;margin:0!important;
    border:1px solid var(--bs-border-color-translucent);border-radius:.72rem;
    background:color-mix(in srgb,var(--bs-tertiary-bg) 62%,var(--bs-body-bg));
}
.guardian-ui-responsibility .form-check-label{font-size:.7rem;font-weight:700;line-height:1.35}
.guardian-ui-pane .guardian-fields-muted{opacity:.62}

/* Locomoção */
.mobility-ui-section--transport .student-ui-section-icon{background:color-mix(in srgb,#0284c7 12%,var(--bs-body-bg));color:#0284c7}
.mobility-ui-section--permission .student-ui-section-icon{background:color-mix(in srgb,#16a34a 12%,var(--bs-body-bg));color:#15803d}
.mobility-ui-section--companion .student-ui-section-icon{background:color-mix(in srgb,#d97706 12%,var(--bs-body-bg));color:#b45309}
.mobility-ui-choice-grid{
    display:grid;grid-template-columns:1fr;gap:.55rem;
}
.mobility-ui-choice{
    position:relative;display:grid!important;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    align-items:center;gap:.55rem;
    margin:0!important;padding:.7rem;
    min-height:4rem;border:1px solid var(--bs-border-color);border-radius:.85rem;
    background:var(--bs-body-bg);cursor:pointer;
    transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.mobility-ui-choice:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--bs-primary) 40%,var(--bs-border-color));box-shadow:0 .35rem .9rem rgba(15,23,42,.045)}
.mobility-ui-choice:has(.form-check-input:checked){border-color:color-mix(in srgb,var(--bs-primary) 58%,var(--bs-border-color));background:color-mix(in srgb,var(--bs-primary) 7%,var(--bs-body-bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bs-primary) 12%,transparent)}
.mobility-ui-choice .form-check-input{margin:0}
.mobility-ui-choice-icon{width:2rem;height:2rem;border-radius:.62rem;display:grid;place-items:center;background:var(--bs-tertiary-bg);color:var(--bs-primary);font-size:1.08rem}
.mobility-ui-choice-copy{min-width:0}
.mobility-ui-choice-copy strong,.mobility-ui-choice-copy small{display:block}
.mobility-ui-choice-copy strong{font-size:.76rem;line-height:1.25;color:var(--bs-emphasis-color)}
.mobility-ui-choice-copy small{margin-top:.1rem;font-size:.64rem;line-height:1.32;color:var(--bs-secondary-color)}
.mobility-ui-check{font-size:1.1rem;color:transparent;transition:.18s ease}
.mobility-ui-choice:has(.form-check-input:checked) .mobility-ui-check{color:var(--bs-primary)}

.mobility-ui-permission-options{display:grid;grid-template-columns:1fr;gap:.55rem}
.mobility-ui-permission{
    margin:0!important;padding:0!important;
    border:1px solid var(--bs-border-color);border-radius:.88rem;
    overflow:hidden;background:var(--bs-body-bg);
    transition:.18s ease;
}
.mobility-ui-permission .form-check-input{position:absolute;opacity:0;pointer-events:none}
.mobility-ui-permission .form-check-label{
    display:flex;gap:.65rem;align-items:flex-start;width:100%;
    padding:.76rem;cursor:pointer;
}
.mobility-ui-permission .form-check-label>.material-symbols-outlined{
    width:2.1rem;height:2.1rem;flex:0 0 auto;border-radius:.65rem;display:grid;place-items:center;
    background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:1.08rem;
}
.mobility-ui-permission .form-check-label strong,.mobility-ui-permission .form-check-label small{display:block}
.mobility-ui-permission .form-check-label strong{font-size:.76rem;color:var(--bs-emphasis-color);line-height:1.25}
.mobility-ui-permission .form-check-label small{margin-top:.12rem;font-size:.64rem;line-height:1.35;color:var(--bs-secondary-color)}
.mobility-ui-permission:has(.form-check-input:checked){border-color:color-mix(in srgb,var(--bs-primary) 58%,var(--bs-border-color));background:color-mix(in srgb,var(--bs-primary) 7%,var(--bs-body-bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bs-primary) 12%,transparent)}
.mobility-ui-permission:has(.form-check-input:checked) .form-check-label>.material-symbols-outlined{background:var(--bs-primary);color:#fff}
.mobility-ui-companion-note{
    display:flex;align-items:flex-start;gap:.45rem;
    padding:.58rem .65rem;border-radius:.72rem;
    background:color-mix(in srgb,var(--bs-warning-bg-subtle) 60%,var(--bs-body-bg));
    color:var(--bs-warning-text-emphasis);font-size:.66rem;line-height:1.4;
}
.mobility-ui-companion-note .material-symbols-outlined{font-size:1rem;margin-top:.02rem}
.mobility-ui-section--companion .form-control:disabled{
    opacity:.72;
}

/* Tablet / desktop */
@media (min-width:576px){
    .student-ui-intro{grid-template-columns:auto minmax(0,1fr) auto;padding:.9rem}
    .student-ui-intro-badge{grid-column:auto;align-self:center}
    .guardian-ui-specials{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mobility-ui-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mobility-ui-permission-options{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:992px){
    .student-ui-stack,.guardian-ui-stack,.mobility-ui-stack{gap:1rem}
    .student-ui-section-head,.guardian-ui-person-head{padding:.88rem 1rem}
    .student-ui-section-body,.guardian-ui-person-body{padding:1rem}
    .student-ui-section-head h3,.guardian-ui-person-head h3{font-size:.9rem}
    .student-ui-section-head p,.guardian-ui-person-head p{font-size:.7rem}
    .mobility-ui-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:575.98px){
    .student-form-ui-v7 .entity-form-body{padding:.72rem!important}
    .student-ui-section,.guardian-ui-person-card,.student-ui-intro{border-radius:.9rem}
    .student-ui-section-body,.guardian-ui-person-body{padding:.72rem}
    .student-ui-section-head,.guardian-ui-person-head{padding:.72rem}
    .student-ui-section-icon,.guardian-ui-avatar{width:2.18rem;height:2.18rem;border-radius:.65rem}
    .student-ui-section-head h3,.guardian-ui-person-head h3{font-size:.8rem}
    .student-ui-section-head p,.guardian-ui-person-head p{font-size:.65rem}
    .student-ui-section-body.row,.guardian-ui-person-body.row{--bs-gutter-x:.7rem;--bs-gutter-y:.7rem}
    .mobility-ui-choice{min-height:3.75rem;padding:.65rem}
    .mobility-ui-permission .form-check-label{padding:.68rem}
}

/* Ajuste visual dos radios no formulário de alunos (Aluno/Responsáveis/Locomoção)
   Mantém o visual moderno sem deixar o input "escapar" para fora da cápsula. */
#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline,
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: .18rem .45rem .18rem 0;
    padding: .48rem .78rem;
    min-height: 2.45rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    background: var(--bs-body-bg);
    vertical-align: top;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:hover,
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:hover {
    border-color: color-mix(in srgb, var(--bs-primary) 34%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-primary) 3%, var(--bs-body-bg));
}

#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:has(.form-check-input:checked),
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:has(.form-check-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 56%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-primary) 8%, var(--bs-body-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 12%, transparent);
}

#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:has(.form-check-input:focus-visible),
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline:has(.form-check-input:focus-visible) {
    border-color: color-mix(in srgb, var(--bs-primary) 60%, var(--bs-border-color));
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .12);
}

#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-input,
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-input {
    float: none;
    margin: 0;
    flex: 0 0 auto;
    position: static;
}

#add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-label,
#edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-label {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--bs-emphasis-color);
    cursor: pointer;
}

@media (max-width: 575.98px) {
    #add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline,
    #edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline {
        margin-right: .32rem;
        padding: .44rem .72rem;
        min-height: 2.3rem;
    }

    #add .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-label,
    #edit .student-form .entity-form-pane:not(#pills-qme) .form-check.form-check-inline .form-check-label {
        font-size: .75rem;
    }
}

/* Ajuste para inputs desabilitados em form-floating:
   evita placeholder duplicado e mantém o label em posição de topo. */
.student-form .form-floating > :is(.form-control, textarea.form-control):disabled::placeholder,
.student-form .form-floating > :is(.form-control, textarea.form-control)[readonly]::placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.student-form .form-floating:has(> :is(.form-control, textarea.form-control):disabled) > label,
.student-form .form-floating:has(> :is(.form-control, textarea.form-control)[readonly]) > label {
    transform: scale(.85) translateY(-.62rem) translateX(.15rem);
    color: var(--bs-secondary-color);
}

.student-form .form-floating > :is(.form-control, textarea.form-control):disabled,
.student-form .form-floating > :is(.form-control, textarea.form-control)[readonly] {
    padding-top: 1.625rem;
    padding-bottom: .625rem;
}

/* Ajuste visual dos checkboxes/switches de responsabilidade nos responsáveis */
.student-form-classic .guardian-responsibility-check {
    padding: 0;
    overflow: hidden;
    border-style: solid;
}

.student-form-classic .guardian-responsibility-check .form-check.form-switch,
#add .student-form .guardian-responsibility-check .form-check.form-switch,
#edit .student-form .guardian-responsibility-check .form-check.form-switch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    width: 100%;
    min-height: 3.25rem;
    padding: .78rem .9rem;
    margin: 0 !important;
}

.student-form-classic .guardian-responsibility-check .form-check-label,
#add .student-form .guardian-responsibility-check .form-check-label,
#edit .student-form .guardian-responsibility-check .form-check-label {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: .77rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--bs-emphasis-color);
    cursor: pointer;
}

.student-form-classic .guardian-responsibility-check .form-check-input,
#add .student-form .guardian-responsibility-check .form-check-input,
#edit .student-form .guardian-responsibility-check .form-check-input {
    order: 2;
    float: none;
    margin: 0;
    flex: 0 0 auto;
    width: 2.85rem;
    height: 1.55rem;
    cursor: pointer;
    border-color: color-mix(in srgb, var(--bs-secondary-color) 24%, var(--app-border));
    box-shadow: none;
}

.student-form-classic .guardian-responsibility-check:has(.form-check-input:hover),
#add .student-form .guardian-responsibility-check:has(.form-check-input:hover),
#edit .student-form .guardian-responsibility-check:has(.form-check-input:hover) {
    border-color: color-mix(in srgb, var(--bs-primary) 32%, var(--app-border));
    background: color-mix(in srgb, var(--bs-primary) 3%, var(--student-surface, var(--bs-body-bg)));
}

.student-form-classic .guardian-responsibility-check:has(.form-check-input:focus-visible),
#add .student-form .guardian-responsibility-check:has(.form-check-input:focus-visible),
#edit .student-form .guardian-responsibility-check:has(.form-check-input:focus-visible) {
    border-color: color-mix(in srgb, var(--bs-primary) 42%, var(--app-border));
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .12);
}

.student-form-classic .guardian-responsibility-check:has(.form-check-input:checked) .form-check-label,
#add .student-form .guardian-responsibility-check:has(.form-check-input:checked) .form-check-label,
#edit .student-form .guardian-responsibility-check:has(.form-check-input:checked) .form-check-label {
    color: var(--bs-primary-text-emphasis);
}

@media (max-width: 575.98px) {
    .student-form-classic .guardian-responsibility-check .form-check.form-switch,
    #add .student-form .guardian-responsibility-check .form-check.form-switch,
    #edit .student-form .guardian-responsibility-check .form-check.form-switch {
        align-items: flex-start;
        padding: .72rem .78rem;
    }

    .student-form-classic .guardian-responsibility-check .form-check-label,
    #add .student-form .guardian-responsibility-check .form-check-label,
    #edit .student-form .guardian-responsibility-check .form-check-label {
        font-size: .74rem;
    }
}

/* Correção final do switch de responsabilidade:
   remove o offset padrão do Bootstrap (.form-switch / .form-check) que empurra o controle para fora. */
.student-form-classic .guardian-responsibility-check .form-check.form-switch,
#add .student-form .guardian-responsibility-check .form-check.form-switch,
#edit .student-form .guardian-responsibility-check .form-check.form-switch {
    padding-left: 0 !important;
}

.student-form-classic .guardian-responsibility-check .form-check.form-switch .form-check-input,
#add .student-form .guardian-responsibility-check .form-check.form-switch .form-check-input,
#edit .student-form .guardian-responsibility-check .form-check.form-switch .form-check-input {
    margin-left: 0 !important;
    align-self: center;
    position: static;
}

/* =========================================================
   RESPONSÁVEIS — switch próprio (sem offset do Bootstrap)
   ========================================================= */
.student-form .guardian-responsibility-check {
    position: relative;
    padding: 0 !important;
    border: 1px solid var(--student-border-soft, var(--bs-border-color));
    border-radius: .9rem;
    background: var(--student-surface, var(--bs-body-bg));
    overflow: hidden;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.student-form .guardian-responsibility-input {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    opacity: 0 !important;
    pointer-events: none;
    margin: 0 !important;
}

.student-form .guardian-responsibility-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    width: 100%;
    min-height: 3.65rem;
    padding: .72rem .82rem;
    margin: 0;
    cursor: pointer;
    user-select: none;
}

.student-form .guardian-responsibility-copy {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
}

.student-form .guardian-responsibility-copy > .material-symbols-outlined {
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    display: grid;
    place-items: center;
    border-radius: .62rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 1.02rem;
    transition: background-color .18s ease, color .18s ease;
}

.student-form .guardian-responsibility-copy strong,
.student-form .guardian-responsibility-copy small {
    display: block;
}

.student-form .guardian-responsibility-copy strong {
    font-size: .76rem;
    line-height: 1.25;
    color: var(--bs-emphasis-color);
}

.student-form .guardian-responsibility-copy small {
    margin-top: .08rem;
    font-size: .64rem;
    line-height: 1.35;
    color: var(--bs-secondary-color);
}

.student-form .guardian-responsibility-switch {
    position: relative;
    width: 2.75rem;
    height: 1.5rem;
    flex: 0 0 2.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-secondary-color) 28%, var(--bs-tertiary-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-secondary-color) 16%, transparent);
    transition: background-color .18s ease, box-shadow .18s ease;
}

.student-form .guardian-responsibility-switch > span {
    position: absolute;
    top: .18rem;
    left: .18rem;
    width: 1.14rem;
    height: 1.14rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 .1rem .28rem rgba(15, 23, 42, .18);
    transition: transform .18s ease;
}

.student-form .guardian-responsibility-check:has(.guardian-responsibility-input:checked) {
    border-color: color-mix(in srgb, var(--bs-primary) 42%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-primary) 6%, var(--bs-body-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 9%, transparent);
}

.student-form .guardian-responsibility-input:checked + .guardian-responsibility-label .guardian-responsibility-copy > .material-symbols-outlined {
    background: var(--bs-primary);
    color: #fff;
}

.student-form .guardian-responsibility-input:checked + .guardian-responsibility-label .guardian-responsibility-switch {
    background: var(--bs-primary);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-primary) 75%, #0000);
}

.student-form .guardian-responsibility-input:checked + .guardian-responsibility-label .guardian-responsibility-switch > span {
    transform: translateX(1.25rem);
}

.student-form .guardian-responsibility-input:focus-visible + .guardian-responsibility-label {
    box-shadow: inset 0 0 0 .2rem rgba(13, 110, 253, .14);
}

.student-form .guardian-responsibility-input:disabled + .guardian-responsibility-label {
    opacity: .58;
    cursor: not-allowed;
}

@media (max-width: 575.98px) {
    .student-form .guardian-responsibility-label {
        min-height: 3.45rem;
        padding: .68rem .72rem;
        gap: .65rem;
    }

    .student-form .guardian-responsibility-copy strong { font-size: .73rem; }
    .student-form .guardian-responsibility-copy small { font-size: .61rem; }
    .student-form .guardian-responsibility-switch { width: 2.55rem; flex-basis: 2.55rem; }
    .student-form .guardian-responsibility-input:checked + .guardian-responsibility-label .guardian-responsibility-switch > span { transform: translateX(1.05rem); }
}

/* Restrição de guarda — card/switch próprio do sistema */
.student-form .guardian-custody-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    width: 100%;
    margin: .15rem 0 .35rem;
    padding: .78rem .85rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    background: var(--bs-body-bg);
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.student-form .guardian-custody-card:hover {
    border-color: color-mix(in srgb, var(--bs-warning) 42%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-warning) 3%, var(--bs-body-bg));
    transform: translateY(-1px);
}

.student-form .guardian-custody-input {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.student-form .guardian-custody-icon {
    width: 2.2rem;
    height: 2.2rem;
    display: grid;
    place-items: center;
    border-radius: .7rem;
    background: color-mix(in srgb, var(--bs-warning) 12%, var(--bs-body-bg));
    color: color-mix(in srgb, #b45309 88%, var(--bs-emphasis-color));
    font-size: 1.12rem;
    transition: background-color .18s ease, color .18s ease;
}

.student-form .guardian-custody-copy {
    min-width: 0;
}

.student-form .guardian-custody-copy strong,
.student-form .guardian-custody-copy small {
    display: block;
}

.student-form .guardian-custody-copy strong {
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--bs-emphasis-color);
}

.student-form .guardian-custody-copy small {
    margin-top: .1rem;
    font-size: .64rem;
    line-height: 1.35;
    color: var(--bs-secondary-color);
}

.student-form .guardian-custody-switch {
    position: relative;
    width: 2.75rem;
    height: 1.5rem;
    flex: 0 0 2.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-secondary-color) 28%, var(--bs-tertiary-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-secondary-color) 16%, transparent);
    transition: background-color .18s ease, box-shadow .18s ease;
}

.student-form .guardian-custody-switch > span {
    position: absolute;
    top: .18rem;
    left: .18rem;
    width: 1.14rem;
    height: 1.14rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 .1rem .28rem rgba(15, 23, 42, .18);
    transition: transform .18s ease;
}

.student-form .guardian-custody-card:has(.guardian-custody-input:checked) {
    border-color: color-mix(in srgb, var(--bs-warning) 58%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-warning) 8%, var(--bs-body-bg));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bs-warning) 13%, transparent);
}

.student-form .guardian-custody-input:checked ~ .guardian-custody-icon {
    background: #d97706;
    color: #fff;
}

.student-form .guardian-custody-input:checked ~ .guardian-custody-switch {
    background: #d97706;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #d97706 78%, transparent);
}

.student-form .guardian-custody-input:checked ~ .guardian-custody-switch > span {
    transform: translateX(1.25rem);
}

.student-form .guardian-custody-card:has(.guardian-custody-input:focus-visible) {
    border-color: color-mix(in srgb, var(--bs-warning) 65%, var(--bs-border-color));
    box-shadow: 0 0 0 .2rem rgba(217, 119, 6, .13);
}

@media (max-width: 575.98px) {
    .student-form .guardian-custody-card {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: .62rem;
        padding: .7rem .72rem;
        border-radius: .82rem;
    }

    .student-form .guardian-custody-icon {
        width: 2rem;
        height: 2rem;
        font-size: 1rem;
    }

    .student-form .guardian-custody-copy strong { font-size: .74rem; }
    .student-form .guardian-custody-copy small { font-size: .61rem; }
    .student-form .guardian-custody-switch { width: 2.55rem; flex-basis: 2.55rem; }
    .student-form .guardian-custody-input:checked ~ .guardian-custody-switch > span { transform: translateX(1.05rem); }
}

/* =========================================================
   QME · baixa múltipla por meses selecionados
   ========================================================= */
.qme-bulk-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .55rem;
}

.qme-bulk-actions .btn {
    min-height: 40px;
}

.qme-selection-bar {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .68rem .8rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: .85rem;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 76%, var(--bs-body-bg));
    transition: .16s ease;
}

.qme-selection-bar > .material-symbols-outlined {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    border-radius: .65rem;
    color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
    font-size: 19px;
}

.qme-selection-bar strong,
.qme-selection-bar small {
    display: block;
}

.qme-selection-bar strong {
    color: var(--bs-emphasis-color);
    font-size: .78rem;
}

.qme-selection-bar small {
    margin-top: .08rem;
    color: var(--bs-secondary-color);
    font-size: .66rem;
}

.qme-selection-bar.is-active {
    border-style: solid;
    border-color: color-mix(in srgb, var(--bs-success) 36%, var(--bs-border-color));
    background: color-mix(in srgb, var(--bs-success-bg-subtle) 45%, var(--bs-body-bg));
}

.qme-selection-bar.is-active > .material-symbols-outlined {
    color: var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.qme-select-col,
.qme-select-cell {
    width: 48px !important;
    text-align: center !important;
}

.qme-select-col .form-check-input,
.qme-select-cell .form-check-input {
    float: none;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0 !important;
    cursor: pointer;
}

.qme-month-paid-marker {
    width: 1.65rem;
    height: 1.65rem;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    color: var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.qme-month-paid-marker .material-symbols-outlined {
    font-size: 17px;
    font-variation-settings: 'FILL' 1;
}

.qme-payment-table tbody tr.qme-row-selected td {
    background: color-mix(in srgb, var(--bs-success-bg-subtle) 46%, var(--bs-body-bg)) !important;
}

.qme-batch-summary {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .8rem;
    border: 1px solid color-mix(in srgb, var(--bs-success) 30%, var(--bs-border-color));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--bs-success-bg-subtle) 40%, var(--bs-body-bg));
}

.qme-batch-summary-icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border-radius: .75rem;
    color: var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.qme-batch-summary-icon .material-symbols-outlined {
    font-size: 20px;
}

.qme-batch-summary small,
.qme-batch-summary strong,
.qme-batch-summary span:not(.material-symbols-outlined) {
    display: block;
}

.qme-batch-summary small {
    color: var(--bs-secondary-color);
    font-size: .65rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.qme-batch-summary strong {
    margin-top: .08rem;
    color: var(--bs-emphasis-color);
    font-size: .84rem;
    line-height: 1.35;
}

.qme-batch-summary span:not(.material-symbols-outlined) {
    margin-top: .18rem;
    color: var(--bs-secondary-color);
    font-size: .68rem;
}

@media (max-width: 991.98px) {
    .qme-payment-table tbody td.qme-select-cell {
        grid-template-columns: minmax(88px, .38fr) minmax(0, 1fr) !important;
    }

    .qme-payment-table tbody td:nth-child(2) {
        background: color-mix(in srgb, var(--bs-primary-bg-subtle) 32%, var(--bs-body-bg));
        font-weight: 800;
    }
}

@media (max-width: 575.98px) {
    .qme-bulk-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .qme-bulk-actions .btn {
        width: 100%;
    }

    .qme-selection-bar {
        align-items: flex-start;
    }

    /* O mês agora é a segunda coluna; a primeira é o seletor. */
    .qme-payment-table tbody td:first-child {
        background: transparent;
        font-weight: 400;
    }

    .qme-payment-table tbody td:nth-child(2) {
        background: color-mix(in srgb, var(--bs-primary-bg-subtle) 32%, var(--bs-body-bg));
        font-weight: 800;
    }
}

/* =========================================================
   Matrículas anuais — progressão, enturmação e fechamento
   ========================================================= */
.matriculas-page .matricula-stat{
    min-height:92px;display:flex;align-items:center;gap:14px;padding:16px 18px;
    border:1px solid var(--bs-border-color);border-radius:18px;background:var(--bs-body-bg);
    box-shadow:0 8px 24px rgba(15,23,42,.04)
}
.matriculas-page .matricula-stat>.material-symbols-outlined{
    width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--bs-tertiary-bg);font-size:1.45rem
}
.matriculas-page .matricula-stat small{display:block;color:var(--bs-secondary-color);font-size:.72rem;margin-bottom:2px}
.matriculas-page .matricula-stat strong{display:block;font-size:1.35rem;line-height:1}
.matriculas-page .matricula-table thead th{white-space:nowrap;font-size:.72rem;text-transform:uppercase;letter-spacing:.035em;color:var(--bs-secondary-color);background:var(--bs-tertiary-bg);border-bottom-width:1px;padding:.85rem 1rem}
.matriculas-page .matricula-table tbody td{padding:.9rem 1rem;border-color:color-mix(in srgb,var(--bs-border-color) 75%,transparent)}
.matriculas-page .matricula-table tbody tr:hover td{background:color-mix(in srgb,var(--bs-primary) 3%,var(--bs-body-bg))}
.matriculas-page .matricula-bulk-actions .form-select{min-width:280px}
.matricula-activate-card{padding:20px;border:1px solid var(--bs-border-color);border-radius:20px;background:var(--bs-body-bg);box-shadow:0 8px 26px rgba(15,23,42,.04)}
.matricula-activate-card.ready{border-color:color-mix(in srgb,var(--bs-success) 35%,var(--bs-border-color));background:color-mix(in srgb,var(--bs-success) 4%,var(--bs-body-bg))}
.matricula-activate-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:15px;background:color-mix(in srgb,var(--bs-primary) 11%,var(--bs-body-bg));color:var(--bs-primary);font-size:1.45rem}
.matricula-checklist{display:flex;flex-wrap:wrap;gap:8px}
.matricula-checklist>span{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color)}
.matricula-checklist>span .material-symbols-outlined{font-size:1rem}
.matricula-checklist>span.ok{color:var(--bs-success);background:color-mix(in srgb,var(--bs-success) 9%,var(--bs-body-bg))}
.matricula-checklist>span.pending{color:var(--bs-warning-text-emphasis);background:color-mix(in srgb,var(--bs-warning) 12%,var(--bs-body-bg))}
@media(max-width:767.98px){
    .matriculas-page .matricula-stat{min-height:78px;padding:13px;border-radius:16px;gap:10px}
    .matriculas-page .matricula-stat>.material-symbols-outlined{width:38px;height:38px;font-size:1.25rem}
    .matriculas-page .matricula-stat strong{font-size:1.15rem}
    .matriculas-page .matricula-bulk-actions{width:100%}
    .matriculas-page .matricula-bulk-actions .form-select{min-width:0;width:100%}
    .matriculas-page .matricula-bulk-actions .btn{width:100%}
    .matricula-activate-card{padding:16px}
}

/* =========================================================
   Matrículas anuais — Central de trabalho compacta v2
   ========================================================= */
.matriculas-page{--matricula-panel-height:clamp(420px,57vh,680px)}
.matricula-page-top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.matricula-heading-copy{min-width:0}
.matricula-context-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.matricula-context-pills>span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 11px;border:1px solid var(--bs-border-color);border-radius:999px;background:var(--bs-body-bg);color:var(--bs-secondary-color);font-size:.72rem;font-weight:650;white-space:nowrap}
.matricula-context-pills .material-symbols-outlined{font-size:1rem;color:var(--bs-primary)}
.matricula-context-pills strong{color:var(--bs-body-color)}

.matricula-filterbar{padding:10px 12px;border:1px solid var(--bs-border-color);border-radius:16px;background:color-mix(in srgb,var(--bs-tertiary-bg) 58%,var(--bs-body-bg));box-shadow:0 5px 18px rgba(15,23,42,.025)}
.matricula-filterbar-grid{display:flex;align-items:flex-end;gap:10px}
.matricula-filter-field{min-width:150px}
.matricula-filter-field.matricula-filter-school{min-width:min(370px,42vw)}
.matricula-filter-field .form-label{margin:0 0 4px;font-size:.68rem;font-weight:750;color:var(--bs-secondary-color)}
.matricula-filterbar .form-select{min-height:38px;padding-top:.4rem;padding-bottom:.4rem;border-radius:11px;font-size:.78rem}
.matricula-filter-apply{height:38px;padding-inline:15px;border-radius:11px;display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700}
.matricula-filter-apply .material-symbols-outlined{font-size:1.05rem}

.matricula-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.matriculas-page .matricula-stat-button{appearance:none;width:100%;text-align:left;cursor:pointer;color:inherit;transition:.16s ease}
.matriculas-page .matricula-stat-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--bs-primary) 24%,var(--bs-border-color));box-shadow:0 8px 24px rgba(15,23,42,.06)}
.matriculas-page .matricula-stat{position:relative;min-height:76px;padding:11px 12px;border:1px solid var(--bs-border-color);border-radius:16px;background:var(--bs-body-bg);display:flex;align-items:center;gap:10px;box-shadow:0 4px 14px rgba(15,23,42,.025)}
.matricula-stat-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;font-size:1.15rem}
.matricula-stat-icon.warning{color:var(--bs-warning-text-emphasis);background:color-mix(in srgb,var(--bs-warning) 13%,var(--bs-body-bg))}
.matricula-stat-icon.info{color:var(--bs-info-text-emphasis);background:color-mix(in srgb,var(--bs-info) 13%,var(--bs-body-bg))}
.matricula-stat-icon.success{color:var(--bs-success);background:color-mix(in srgb,var(--bs-success) 10%,var(--bs-body-bg))}
.matricula-stat-icon.danger{color:var(--bs-danger);background:color-mix(in srgb,var(--bs-danger) 10%,var(--bs-body-bg))}
.matricula-stat-copy{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:7px;line-height:1.1}
.matriculas-page .matricula-stat-copy small{grid-column:1;color:var(--bs-secondary-color);font-size:.67rem;font-weight:750;margin:0}
.matriculas-page .matricula-stat-copy strong{grid-column:2;font-size:1.05rem;line-height:1}
.matricula-stat-copy em{grid-column:1/-1;margin-top:4px;color:var(--bs-secondary-color);font-size:.61rem;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matricula-stat-arrow{margin-left:auto;color:var(--bs-secondary-color);font-size:1rem;opacity:.55}

.matricula-workspace{border:1px solid var(--bs-border-color);border-radius:20px;background:var(--bs-body-bg);box-shadow:0 9px 30px rgba(15,23,42,.05);overflow:hidden}
.matricula-workspace-nav{display:flex;align-items:stretch;gap:5px;padding:7px;border-bottom:1px solid var(--bs-border-color);background:color-mix(in srgb,var(--bs-tertiary-bg) 62%,var(--bs-body-bg))}
.matricula-workspace-tab{position:relative;min-width:0;flex:1;display:flex;align-items:center;gap:9px;padding:9px 12px;border:0;border-radius:13px;background:transparent;color:var(--bs-secondary-color);text-align:left;transition:.16s ease}
.matricula-workspace-tab:hover{background:color-mix(in srgb,var(--bs-body-bg) 75%,transparent);color:var(--bs-body-color)}
.matricula-workspace-tab.active{background:var(--bs-body-bg);color:var(--bs-primary);box-shadow:0 3px 13px rgba(15,23,42,.07)}
.matricula-workspace-tab>.material-symbols-outlined{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--bs-secondary-bg) 75%,var(--bs-body-bg));font-size:1.15rem}
.matricula-workspace-tab.active>.material-symbols-outlined{background:color-mix(in srgb,var(--bs-primary) 10%,var(--bs-body-bg))}
.matricula-workspace-tab>span:nth-child(2){min-width:0;display:flex;flex-direction:column}
.matricula-workspace-tab strong{font-size:.77rem;line-height:1.15}
.matricula-workspace-tab small{margin-top:2px;font-size:.61rem;color:var(--bs-secondary-color)}
.matricula-tab-count,.matricula-tab-alert{margin-left:auto;min-width:24px;height:24px;padding:0 7px;display:grid;place-items:center;border-radius:999px;font-size:.65rem;font-weight:800;background:var(--bs-secondary-bg);color:var(--bs-secondary-color)}
.matricula-tab-alert{background:color-mix(in srgb,var(--bs-warning) 18%,var(--bs-body-bg));color:var(--bs-warning-text-emphasis)}
.matricula-tab-state{margin-left:auto;width:9px;height:9px;border-radius:50%}
.matricula-tab-state.ready{background:var(--bs-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--bs-success) 12%,transparent)}
.matricula-tab-state.pending{background:var(--bs-warning);box-shadow:0 0 0 4px color-mix(in srgb,var(--bs-warning) 12%,transparent)}

.matricula-workspace-body{min-height:0}
.matricula-workspace-panel{animation:matriculaPanelIn .16s ease}
@keyframes matriculaPanelIn{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}
.matricula-panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px 10px}
.matricula-panel-head h2{margin:0;font-size:.94rem;font-weight:800}
.matricula-panel-head p{margin:2px 0 0;color:var(--bs-secondary-color);font-size:.66rem}
.matricula-panel-counter{display:inline-flex;align-items:baseline;gap:4px;padding:5px 9px;border-radius:999px;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:.63rem;white-space:nowrap}
.matricula-panel-counter strong{color:var(--bs-body-color);font-size:.73rem}

.matricula-toolbar{position:relative;z-index:4;display:grid;grid-template-columns:minmax(210px,1fr) minmax(145px,190px) minmax(360px,auto);gap:8px;align-items:center;padding:0 15px 11px;border-bottom:1px solid var(--bs-border-color)}
.matricula-toolbar-simple{grid-template-columns:minmax(240px,1fr) minmax(160px,210px) auto}
.matricula-search{position:relative;min-width:0}
.matricula-search>.material-symbols-outlined{position:absolute;left:11px;top:50%;transform:translateY(-50%);z-index:2;color:var(--bs-secondary-color);font-size:1.05rem;pointer-events:none}
.matricula-search .form-control{height:38px;padding-left:35px;border-radius:11px;font-size:.75rem}
.matricula-toolbar-filter{height:38px;border-radius:11px;font-size:.74rem}
.matricula-bulk-actions{display:flex;align-items:center;gap:7px;min-width:0}
.matriculas-page .matricula-bulk-actions .form-select{min-width:230px;height:38px;border-radius:11px;font-size:.73rem}
.matricula-bulk-actions .btn{height:38px;border-radius:11px;display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:750}
.matricula-bulk-actions .material-symbols-outlined{font-size:1rem}

.matricula-table-viewport{height:var(--matricula-panel-height);max-height:var(--matricula-panel-height);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.matricula-table-viewport>.table-responsive{overflow:visible;min-width:max-content;width:100%}
.matriculas-page .matricula-table{min-width:900px;background:var(--bs-body-bg)}
.matriculas-page .matricula-table thead{position:sticky;top:0;z-index:3}
.matriculas-page .matricula-table thead th{background:color-mix(in srgb,var(--bs-tertiary-bg) 88%,var(--bs-body-bg));box-shadow:0 1px 0 var(--bs-border-color);padding:.68rem .82rem;font-size:.65rem}
.matriculas-page .matricula-table tbody td{padding:.7rem .82rem;font-size:.73rem;vertical-align:middle}
.matriculas-page .matricula-table tbody td strong{font-size:.75rem}
.matriculas-page .matricula-table tbody td small{font-size:.62rem}
.matricula-check-col{width:44px}
.matriculas-page .js-target-serie,.matriculas-page .js-final-result{min-width:145px;height:34px;padding-top:.3rem;padding-bottom:.3rem;border-radius:9px;font-size:.69rem}
.matricula-regime-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--bs-tertiary-bg);font-size:.66rem;font-weight:700}
.matricula-unassigned{display:inline-flex;align-items:center;gap:4px;color:var(--bs-secondary-color);font-size:.67rem}
.matricula-unassigned .material-symbols-outlined{font-size:.95rem}
.matricula-next-step{font-size:.7rem;font-weight:650}
.matricula-inline-alert{margin:9px 12px 12px;padding:8px 10px;display:flex;align-items:center;gap:7px;border-radius:11px;font-size:.68rem;font-weight:650}
.matricula-inline-alert.warning{color:var(--bs-warning-text-emphasis);background:color-mix(in srgb,var(--bs-warning) 12%,var(--bs-body-bg));border:1px solid color-mix(in srgb,var(--bs-warning) 25%,var(--bs-border-color))}
.matricula-inline-alert .material-symbols-outlined{font-size:1.05rem}

.matricula-activation-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:14px;padding:16px;min-height:min(480px,var(--matricula-panel-height));align-items:stretch}
.matricula-activation-main{display:flex;align-items:flex-start;gap:14px;padding:20px;border:1px solid var(--bs-border-color);border-radius:18px;background:color-mix(in srgb,var(--bs-tertiary-bg) 44%,var(--bs-body-bg))}
.matricula-activation-main.ready{border-color:color-mix(in srgb,var(--bs-success) 30%,var(--bs-border-color));background:color-mix(in srgb,var(--bs-success) 4%,var(--bs-body-bg))}
.matricula-activation-main.pending{border-color:color-mix(in srgb,var(--bs-warning) 23%,var(--bs-border-color))}
.matricula-activation-copy{min-width:0}
.matricula-activation-kicker{display:block;margin-bottom:5px;color:var(--bs-secondary-color);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.matricula-activation-copy h2{margin:0 0 7px;font-size:1.05rem;font-weight:850}
.matricula-activation-copy p{max-width:660px;margin:0 0 18px;color:var(--bs-secondary-color);font-size:.73rem;line-height:1.55}
.matricula-activation-copy .btn{display:inline-flex;align-items:center;gap:7px;border-radius:12px;font-size:.78rem;font-weight:800}
.matricula-activation-checks{padding:17px;border:1px solid var(--bs-border-color);border-radius:18px;background:var(--bs-body-bg)}
.matricula-activation-checks h3{margin:0 0 11px;font-size:.8rem;font-weight:800}
.matricula-checklist-grid{display:grid;grid-template-columns:1fr;gap:7px}
.matricula-checklist-grid>span{width:100%;padding:9px 10px;border-radius:12px;justify-content:flex-start}
.matricula-checklist-grid>span>span:last-child{display:flex;flex-direction:column;min-width:0}
.matricula-checklist-grid strong{font-size:.68rem}
.matricula-checklist-grid small{margin-top:1px;font-size:.6rem;font-weight:550;opacity:.8}

@media (max-width:1199.98px){
    .matricula-toolbar{grid-template-columns:minmax(220px,1fr) 170px}.matricula-bulk-actions{grid-column:1/-1}.matriculas-page .matricula-bulk-actions .form-select{flex:1}.matricula-toolbar-simple{grid-template-columns:minmax(220px,1fr) 180px auto}.matricula-toolbar-simple .matricula-bulk-actions{grid-column:auto}
    .matricula-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767.98px){
    .matriculas-page{--matricula-panel-height:54vh}
    .matricula-page-top{align-items:flex-start;flex-direction:column;gap:9px}.matricula-context-pills{justify-content:flex-start}
    .matricula-filterbar-grid{display:grid;grid-template-columns:1fr 1fr}.matricula-filter-field,.matricula-filter-field.matricula-filter-school{min-width:0}.matricula-filter-school{grid-column:1/-1}.matricula-filter-apply{width:100%}
    .matricula-overview{gap:7px}.matriculas-page .matricula-stat{min-height:68px;padding:9px;border-radius:14px;gap:8px}.matricula-stat-icon{width:34px;height:34px;flex-basis:34px;font-size:1.02rem}.matricula-stat-copy em{display:none}.matricula-stat-copy small{font-size:.62rem!important}.matriculas-page .matricula-stat-copy strong{font-size:.94rem}.matricula-stat-arrow{display:none}
    .matricula-workspace{border-radius:17px}.matricula-workspace-nav{overflow-x:auto;scrollbar-width:none}.matricula-workspace-nav::-webkit-scrollbar{display:none}.matricula-workspace-tab{flex:0 0 auto;min-width:138px;padding:8px 10px}.matricula-workspace-tab>.material-symbols-outlined{width:30px;height:30px;font-size:1rem}
    .matricula-panel-head{padding:11px 12px 8px}.matricula-panel-head p{display:none}
    .matricula-toolbar,.matricula-toolbar-simple{grid-template-columns:1fr 1fr;padding:0 12px 9px;gap:7px}.matricula-search{grid-column:1/-1}.matricula-bulk-actions{grid-column:1/-1}.matriculas-page .matricula-bulk-actions .form-select{min-width:0;flex:1}.matricula-toolbar-simple .btn{min-width:0;font-size:.68rem}
    .matricula-table-viewport{height:var(--matricula-panel-height);max-height:var(--matricula-panel-height)}
    .matricula-activation-layout{grid-template-columns:1fr;padding:12px;min-height:0}.matricula-activation-main{padding:15px}.matricula-activation-checks{padding:14px}
}
@media (max-width:479.98px){
    .matricula-overview{grid-template-columns:1fr 1fr}.matriculas-page .matricula-stat{min-height:62px}.matricula-stat-icon{display:none}.matricula-filterbar-grid{grid-template-columns:1fr}.matricula-filter-school{grid-column:auto}.matricula-toolbar,.matricula-toolbar-simple{grid-template-columns:1fr}.matricula-search,.matricula-bulk-actions{grid-column:auto}.matricula-bulk-actions{display:grid;grid-template-columns:1fr}.matricula-bulk-actions .btn{width:100%;justify-content:center}.matricula-toolbar-filter{width:100%}.matricula-workspace-tab{min-width:126px}.matricula-context-pills>span{max-width:100%;white-space:normal}.matricula-activation-main{flex-direction:column}.matricula-activate-icon{width:42px;height:42px;flex-basis:42px}
}

/* Recuperação de senha — administrativo */
.student-recovery-admin-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--app-border);
    border-radius: 14px;
    background: var(--app-surface-soft);
}
.student-recovery-admin-card > .material-symbols-outlined {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    flex: 0 0 39px;
    border-radius: 12px;
    color: var(--app-primary);
    background: rgba(var(--app-primary-rgb), .10);
}
.student-recovery-admin-card small,
.student-recovery-admin-card strong { display: block; }
.student-recovery-admin-card small { color: var(--app-muted); font-size: .68rem; }
.student-recovery-admin-card strong { margin-top: 2px; font-size: .84rem; overflow-wrap: anywhere; }
.student-recovery-code-box {
    padding: 14px;
    text-align: center;
    border: 1px solid rgba(var(--app-primary-rgb), .22);
    border-radius: 15px;
    background: rgba(var(--app-primary-rgb), .06);
}
.student-recovery-code-box small,
.student-recovery-code-box strong,
.student-recovery-code-box span { display: block; }
.student-recovery-code-box small { color: var(--app-muted); font-size: .68rem; }
.student-recovery-code-box strong { margin: 4px 0; color: var(--app-primary); font-size: 1.65rem; letter-spacing: .12em; }
.student-recovery-code-box span { color: var(--app-muted); font-size: .68rem; }

/* Cabeçalhos dos módulos — identidade, navegação, ações e filtros. */
.module-hero.module-hero-ready {
    --hero-rgb: 63, 81, 181;
    --hero-ink: color-mix(in srgb, rgb(var(--hero-rgb)) 82%, #172033);
    --hero-tint: rgba(var(--hero-rgb), .07);
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.15rem;
    padding: 1.2rem 1.45rem 1.4rem;
    border: 1px solid color-mix(in srgb, rgb(var(--hero-rgb)) 15%, var(--app-border));
    border-radius: 1.35rem;
    background:
        radial-gradient(ellipse at 100% 0, rgba(var(--hero-rgb), .10), transparent 58%),
        linear-gradient(115deg, var(--bs-body-bg), var(--bs-tertiary-bg));
    box-shadow: 0 5px 20px rgba(24, 39, 75, .045), inset 0 1px 0 rgba(255, 255, 255, .4);
}
.module-hero-ready[data-hero-tone="blue"] { --hero-rgb: 37, 99, 235; }
.module-hero-ready[data-hero-tone="cyan"] { --hero-rgb: 8, 145, 178; }
.module-hero-ready[data-hero-tone="violet"] { --hero-rgb: 124, 58, 237; }
.module-hero-ready[data-hero-tone="green"] { --hero-rgb: 5, 150, 105; }
.module-hero-ready[data-hero-tone="amber"] { --hero-rgb: 180, 83, 9; }
.module-hero-ready[data-hero-tone="slate"] { --hero-rgb: 71, 85, 105; }
.module-hero-ready::before {
    content: "";
    position: absolute;
    inset: 1.4rem auto 1.4rem 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, rgb(var(--hero-rgb)), rgba(var(--hero-rgb), .15));
    pointer-events: none;
}
.module-hero-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    min-width: 0;
}
.module-hero-breadcrumb { min-width: 0; }
.module-hero-breadcrumb ol {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem .5rem;
    padding: 0;
    margin: 0;
    list-style: none;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    line-height: 1.5;
}
.module-hero-breadcrumb li { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.module-hero-breadcrumb li + li::before { content: "/"; opacity: .5; }
.module-hero-breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    color: inherit;
    text-decoration: none;
    border-radius: .3rem;
    transition: color .16s ease;
}
.module-hero-breadcrumb a:hover { color: var(--hero-ink); }
.module-hero-breadcrumb .material-symbols-outlined { font-size: 1rem; }
.module-hero-breadcrumb [aria-current="page"] { color: var(--bs-emphasis-color); font-weight: 650; }
.module-hero-context { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; min-width: 0; }
.module-hero-mode,
.module-hero-period {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    padding: .3rem .6rem;
    border: 1px solid rgba(var(--hero-rgb), .14);
    border-radius: .55rem;
    color: var(--hero-ink);
    background: var(--hero-tint);
    font-size: .69rem;
    font-weight: 650;
    line-height: 1.4;
}
.module-hero-mode > .material-symbols-outlined,
.module-hero-period > .material-symbols-outlined { flex-shrink: 0; font-size: .95rem; }
.module-hero-main { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-width: 0; }
.module-hero-identity { display: flex; align-items: flex-start; gap: 1rem; flex: 1 1 0; min-width: 0; }
.module-hero-icon {
    display: grid;
    place-items: center;
    flex: 0 0 3.4rem;
    width: 3.4rem;
    height: 3.4rem;
    border: 1px solid rgba(var(--hero-rgb), .2);
    border-radius: 1rem;
    color: var(--hero-ink);
    background: linear-gradient(145deg, rgba(var(--hero-rgb), .14), rgba(var(--hero-rgb), .04));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
.module-hero-icon .material-symbols-outlined { font-size: 1.85rem; font-variation-settings: 'FILL' 0, 'wght' 350, 'GRAD' 0, 'opsz' 40; }
.module-hero-copy { min-width: 0; }
.module-hero-copy .page-eyebrow { margin-bottom: .3rem; color: var(--hero-ink); font-size: .66rem; letter-spacing: .1em; line-height: 1.4; }
.module-hero-copy h1 {
    margin-bottom: .4rem !important;
    color: var(--bs-emphasis-color);
    font-size: clamp(1.45rem, 1.2rem + .6vw, 1.9rem);
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
}
.module-hero-copy p { max-width: 78ch; font-size: .83rem; line-height: 1.6; overflow-wrap: anywhere; }
.module-hero-actions { display: flex; align-items: center; flex: 0 1 auto; justify-content: flex-end; gap: .6rem; min-width: 0; max-width: 52%; }
.module-hero-actions > .module-hero-action-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem !important;
    margin: 0 !important;
    min-width: 0;
}
.module-hero.module-hero-ready .btn {
    width: auto;
    min-height: 2.75rem;
    padding: .6rem .95rem;
    margin-bottom: 0 !important;
    border-radius: .8rem;
    font-size: .79rem;
    line-height: 1.45;
    gap: .4rem;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.module-hero-ready .btn > .material-symbols-outlined { flex-shrink: 0; font-size: 1.18rem; }
.module-hero-ready .btn-primary { box-shadow: 0 4px 10px rgba(63, 81, 181, .16); }
.module-hero-ready .btn:hover { transform: translateY(-1px); }
.module-hero-ready .btn:active { transform: translateY(0); }
.module-hero-ready .btn-outline-secondary { --bs-btn-border-color: var(--app-border); --bs-btn-color: var(--bs-secondary-color); color: var(--bs-secondary-color); background-color: var(--bs-body-bg); }
.module-hero-ready .btn-outline-secondary:hover { color: var(--bs-emphasis-color); background-color: var(--bs-secondary-bg); border-color: var(--bs-secondary-color); }
.module-hero-ready .btn-outline-warning { --bs-btn-color: var(--bs-warning-text-emphasis); }
.module-hero-toolbar {
    min-width: 0;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, rgb(var(--hero-rgb)) 10%, var(--app-border));
}
.module-hero-toolbar > .module-hero-controls {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    flex-wrap: wrap;
    gap: .75rem !important;
    min-width: 0;
}
.module-hero-control { display: flex; flex-direction: column; gap: .3rem; min-width: 7rem; }
.module-hero-control label { margin: 0 !important; font-size: .7rem; line-height: 1.4; font-weight: 650; color: var(--bs-secondary-color); }
.module-hero-control .form-select {
    width: 100% !important;
    min-height: 2.65rem;
    padding-top: .5rem;
    padding-bottom: .5rem;
    border-color: var(--app-border);
    border-radius: .7rem;
    font-size: .8rem;
    background-color: var(--bs-body-bg);
}
.module-hero-controls > .btn:first-of-type { margin-left: auto; }
.module-hero-ready[data-hero-module="financeiro"] .module-hero-controls { display: grid !important; grid-template-columns: 7.5rem 10.5rem minmax(12rem, 1fr) auto; }
.module-hero-control:has(#finance_school) { min-width: 0; }
.module-hero-ready[data-hero-module="financeiro"] .module-hero-controls:not(:has(#finance_school)) { grid-template-columns: 7.5rem minmax(10rem, 14rem) 1fr; }
.module-hero-ready[data-hero-module="financeiro"] .module-hero-controls > .btn { justify-self: end; }
.module-hero-ready .profile-hero-status { max-width: 21rem; min-width: 0; padding: .7rem .85rem; border-radius: .85rem; background: var(--hero-tint); border-color: rgba(var(--hero-rgb), .15); box-shadow: none; }
.module-hero-ready .profile-hero-status > .material-symbols-outlined { color: var(--hero-ink); background: rgba(var(--hero-rgb), .12); }
.module-hero-ready .admin-context-badge { min-height: 2.5rem; padding: .5rem .75rem; border-radius: .75rem; box-shadow: none; font-size: .75rem; }
.module-hero-ready .admin-context-badge > .material-symbols-outlined { color: var(--hero-ink); font-size: 1.2rem; }
.module-hero-ready .admin-context-badge span:last-child { white-space: normal; }
.module-hero-ready .report-format-badge { font-size: .75rem; }
[data-bs-theme="dark"] .module-hero.module-hero-ready {
    --hero-ink: color-mix(in srgb, rgb(var(--hero-rgb)) 38%, #eef2ff);
    --hero-tint: rgba(var(--hero-rgb), .12);
    background: radial-gradient(ellipse at 100% 0, rgba(var(--hero-rgb), .17), transparent 60%), linear-gradient(115deg, var(--bs-tertiary-bg), var(--bs-body-bg));
    border-color: color-mix(in srgb, rgb(var(--hero-rgb)) 22%, var(--app-border));
    box-shadow: 0 5px 20px rgba(0, 0, 0, .12), inset 0 1px 0 rgba(255, 255, 255, .025);
}
[data-bs-theme="dark"] .module-hero-icon { border-color: rgba(var(--hero-rgb), .28); background: linear-gradient(145deg, rgba(var(--hero-rgb), .22), rgba(var(--hero-rgb), .08)); box-shadow: none; }
[data-bs-theme="dark"] .module-hero-mode,
[data-bs-theme="dark"] .module-hero-period { border-color: rgba(var(--hero-rgb), .28); }
[data-bs-theme="dark"] .module-hero-ready .btn-outline-primary:not(:hover):not(:active) { color: var(--bs-primary-text-emphasis) !important; }
@media (max-width: 1199.98px) {
    .module-hero-main { align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
    .module-hero-identity { flex-basis: 60%; }
    .module-hero-actions { max-width: 100%; }
    .module-hero-ready[data-hero-module="pre-matricula"]:not(.entity-form-hero) .module-hero-main > .module-hero-actions { width: 100%; }
}
@media (max-width: 767.98px) {
    .module-hero.module-hero-ready { padding: 1rem 1.1rem 1.15rem; gap: .95rem; border-radius: 1.05rem; }
    .module-hero-top { gap: .5rem; }
    .module-hero-main { flex-direction: column; align-items: stretch; gap: .95rem; }
    .module-hero-identity { display: grid; grid-template-columns: 2.65rem minmax(0, 1fr); column-gap: .75rem; row-gap: .2rem; }
    .module-hero-icon { grid-column: 1; grid-row: 1 / 3; width: 2.65rem; height: 2.65rem; border-radius: .8rem; }
    .module-hero-icon .material-symbols-outlined { font-size: 1.5rem; }
    .module-hero-copy { display: contents; }
    .module-hero-copy .page-eyebrow { grid-column: 2; grid-row: 1; margin: 0; font-size: .59rem; align-self: end; }
    .module-hero-copy h1 { grid-column: 2; grid-row: 2; margin: 0 !important; font-size: 1.4rem; }
    .module-hero-copy p { grid-column: 1 / -1; grid-row: 3; margin-top: .45rem; font-size: .79rem; line-height: 1.55; }
    .module-hero-actions { justify-content: flex-start; max-width: 100%; }
    .module-hero-actions > .module-hero-action-group { justify-content: flex-start; }
    .module-hero-toolbar { padding-top: .85rem; }
    .module-hero-ready[data-hero-module="financeiro"] .module-hero-controls,
    .module-hero-ready[data-hero-module="financeiro"] .module-hero-controls:not(:has(#finance_school)) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .module-hero-control:has(#finance_school),
    .module-hero-ready[data-hero-module="financeiro"] .module-hero-controls > .btn { grid-column: 1 / -1; width: 100%; }
    .module-hero-ready .profile-hero-status { width: 100%; max-width: none; }
    .module-hero-ready .admin-context-badge { min-height: 2.25rem; font-size: .7rem; }
}
@media (max-width: 575.98px) {
    .module-hero-breadcrumb ol { font-size: .65rem; gap: .25rem .35rem; }
    .module-hero-breadcrumb li { gap: .35rem; }
    .module-hero-mode, .module-hero-period { font-size: .62rem; padding: .25rem .45rem; }
    .module-hero-actions { flex-direction: column; align-items: stretch; }
    .module-hero-actions > .btn,
    .module-hero-actions > .module-hero-action-group { width: 100%; }
    .module-hero-actions > .module-hero-action-group > .btn { width: 100%; }
    .module-hero-toolbar > .module-hero-controls { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem !important; }
    .module-hero-control { min-width: 0; }
    .module-hero-ready[data-hero-module="qme"] .module-hero-control { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
    .module-hero-ready[data-hero-module="qme"] .module-hero-control .form-select { width: 8rem !important; }
    .module-hero-controls > .btn { width: 100%; margin-left: 0 !important; }
    .module-hero.module-hero-ready .btn { min-height: 2.65rem; padding: .55rem .7rem; font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
    .module-hero.module-hero-ready .btn, .module-hero-breadcrumb a { transition: none; }
    .module-hero-ready .btn:hover, .module-hero-ready .btn:active { transform: none; }
}

/* Importação de alunos por Excel. */
.student-import-page { padding-bottom: 1rem; }
.student-import-page .import-panel { padding: clamp(1rem, 1.6vw, 1.5rem); scroll-margin-top: 155px; }
.student-import-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; padding: 0; list-style: none; }
.student-import-steps li { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; border: 1px solid var(--app-border); border-radius: 1rem; background: var(--bs-body-bg); color: var(--bs-secondary-color); }
.student-import-steps li > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; flex: 0 0 2.2rem; background: var(--bs-tertiary-bg); border-radius: .7rem; font-weight: 750; }
.student-import-steps strong,.student-import-steps small { display: block; }
.student-import-steps strong { font-size: .82rem; }.student-import-steps small { margin-top: .15rem; font-size: .68rem; }
.student-import-steps .is-current { border-color: color-mix(in srgb,var(--bs-primary) 28%,var(--app-border)); background: color-mix(in srgb,var(--bs-primary-bg-subtle) 25%,var(--bs-body-bg)); }
.student-import-steps .is-current > span { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
.student-import-steps .is-current strong { color: var(--bs-emphasis-color); }
.student-import-steps .is-done > span { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
.import-panel-heading { display: flex; align-items: flex-start; gap: .8rem; margin-bottom: 1.25rem; }
.import-panel-heading > .material-symbols-outlined { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: 0 0 2.6rem; border-radius: .8rem; color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); font-size: 1.35rem; }
.import-panel-heading h2 { margin: 0; font-size: 1rem; font-weight: 750; }
.import-panel-heading p { margin: .25rem 0 0; color: var(--bs-secondary-color); font-size: .78rem; line-height: 1.55; }
.import-upload-grid { display: grid; grid-template-columns: minmax(12rem,1fr) 8rem minmax(16rem,1.3fr) auto; gap: .9rem; align-items: start; }
.import-upload-grid > div { min-width: 0; }
.import-upload-grid > .btn { margin-top: 1.85rem; white-space: nowrap; }
.student-import-page .form-label { margin-bottom: .45rem; font-size: .76rem; font-weight: 650; }
.student-import-page .form-control,.student-import-page .form-select { min-height: 2.8rem; border-radius: .75rem; font-size: .82rem; }
.student-import-page .form-text { margin-top: .4rem; font-size: .67rem; line-height: 1.45; }
.student-import-page .ts-wrapper { min-width: 0; }
.student-import-page .ts-control { min-height: 2.8rem; padding: .65rem .8rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; background: var(--bs-body-bg) !important; color: var(--bs-body-color); font-size: .8rem; box-shadow: none; }
.student-import-page .ts-wrapper.single .ts-control > .item { max-width: calc(100% - 1.7rem); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.student-import-page .ts-wrapper.focus .ts-control { border-color: var(--bs-primary); box-shadow: 0 0 0 .18rem color-mix(in srgb,var(--bs-primary) 18%,transparent); }
.import-context-note { margin-top: .9rem; color: var(--bs-secondary-color); font-size: .75rem; line-height: 1.55; }
.import-sheet-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.import-sheet-card { padding: 1rem; border: 1px solid var(--app-border); border-radius: 1rem; background: var(--bs-tertiary-bg); min-width: 0; }
.import-sheet-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.import-sheet-head h3 { margin: 0; font-size: .9rem; font-weight: 700; overflow-wrap: anywhere; }
.import-sheet-count { flex-shrink: 0; padding: .25rem .45rem; border-radius: .45rem; background: var(--bs-body-bg); color: var(--bs-secondary-color); font-size: .65rem; }
.import-sheet-source { margin: .45rem 0 .85rem; color: var(--bs-secondary-color); font-size: .7rem; line-height: 1.5; }
.import-panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--app-border); }
.import-panel-footer > span { color: var(--bs-secondary-color); font-size: .75rem; line-height: 1.5; }
.student-import-page .btn { font-size: .8rem; gap: .4rem; }
.student-import-page .btn > .material-symbols-outlined { font-size: 1.15rem; }
.student-import-page .is-working > .material-symbols-outlined { display: none; }
.student-import-page .is-working::before { content: ''; width: .9rem; height: .9rem; flex-shrink: 0; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: student-import-spin .7s linear infinite; }
@keyframes student-import-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .student-import-page .is-working::before { animation: none; } }
.import-summary-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .8rem; }
.import-sheet-plan { display: block; margin-top: .6rem; font-size: .68rem; line-height: 1.5; color: var(--bs-secondary-color); }
.import-sheet-plan.is-new { color: var(--bs-primary-text-emphasis); }
.import-existing-option { margin-top: 1.2rem; padding: 1rem 1rem 1rem 2.5rem; border: 1px solid var(--app-border); border-radius: .85rem; background: var(--bs-tertiary-bg); }
.import-existing-option strong,.import-existing-option small { display: block; }.import-existing-option strong { font-size: .8rem; }.import-existing-option small { margin-top: .3rem; font-size: .71rem; line-height: 1.55; color: var(--bs-secondary-color); }
.import-class-review { margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid var(--app-border); border-radius: .85rem; background: var(--bs-tertiary-bg); font-size: .75rem; }
.import-class-review ul { max-height: 10rem; overflow: auto; margin: .5rem 0 0; padding-left: 1.2rem; font-size: .7rem; line-height: 1.65; }.import-class-review ul:empty { display: none; }
.import-summary-grid > div { padding: .95rem 1rem; border: 1px solid var(--app-border); border-radius: 1rem; background: var(--bs-tertiary-bg); }
.import-summary-grid small { display: block; color: var(--bs-secondary-color); font-size: .7rem; }
.import-summary-grid strong { display: block; margin-top: .2rem; font-size: 1.7rem; font-weight: 750; }
.import-summary-grid .import-stat-ready { background: color-mix(in srgb,var(--bs-success-bg-subtle) 45%,var(--bs-body-bg)); border-color: color-mix(in srgb,var(--bs-success) 22%,var(--app-border)); }
.import-stat-ready strong { color: var(--bs-success-text-emphasis); }
.import-stat-error strong { color: var(--bs-danger-text-emphasis); }
.import-result-tools { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(10rem,15rem) auto; gap: .85rem; align-items: end; margin: 1.1rem 0; }
.import-result-tools > div { min-width: 0; }
.import-results-viewport { max-height: min(65vh,720px); overflow: auto; border: 1px solid var(--app-border); border-radius: .85rem; }
.import-results-table { margin: 0; min-width: 900px; font-size: .72rem; }
.import-results-table thead { position: sticky; top: 0; z-index: 1; }
.import-results-table thead th { background: var(--bs-tertiary-bg); white-space: nowrap; padding: .85rem .7rem; font-size: .66rem; }
.import-results-table td { padding: .75rem .7rem; overflow-wrap: anywhere; }
.import-results-table td:nth-child(2),.import-results-table td:nth-child(3) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.import-results-table td:nth-child(4) { min-width: 12rem; font-weight: 650; }
.import-results-table td:nth-child(5) { min-width: 12rem; }
.import-results-table td > small { display: block; min-width: 12rem; max-width: 28rem; margin-top: .3rem; font-size: .66rem; line-height: 1.5; color: var(--bs-secondary-color); }
.import-row-state { display: inline-flex; padding: .2rem .45rem; border-radius: .4rem; font-size: .64rem; font-weight: 700; color: var(--bs-secondary-color); background: var(--bs-secondary-bg); }
.import-row-state[data-state="ready"],.import-row-state[data-state="imported"] { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); }
.import-row-state[data-state="error"] { color: var(--bs-danger-text-emphasis); background: var(--bs-danger-bg-subtle); }
.import-row-state[data-state="update"],.import-row-state[data-state="updated"] { color: var(--bs-primary-text-emphasis); background: var(--bs-primary-bg-subtle); }
.import-pagination { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: .85rem; }
.import-pagination > span { color: var(--bs-secondary-color); font-size: .7rem; }
.import-pagination > div { display: flex; gap: .4rem; }
@media (max-width:1199.98px) {
    .import-upload-grid { grid-template-columns: minmax(0,1fr) 8rem; }
    .import-upload-grid > .btn { margin-top: 1.85rem; }
    .import-sheet-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:767.98px) {
    .student-import-page .import-panel { scroll-margin-top: 90px; }
    .student-import-steps { gap: .4rem; }
    .student-import-steps li { flex-direction: column; align-items: center; gap: .4rem; padding: .7rem .3rem; text-align: center; border-radius: .75rem; }
    .student-import-steps li > span { width: 1.8rem; height: 1.8rem; flex-basis: 1.8rem; font-size: .8rem; }
    .student-import-steps strong { font-size: .65rem; }.student-import-steps small { display: none; }
    .import-panel-heading { gap: .65rem; margin-bottom: 1rem; }
    .import-panel-heading h2 { font-size: .9rem; }.import-panel-heading p { font-size: .71rem; }
    .import-upload-grid { grid-template-columns: minmax(0,1fr) 6.5rem; }
    .import-upload-grid > div:nth-child(3),.import-upload-grid > .btn { grid-column: 1 / -1; }
    .import-upload-grid > .btn { margin-top: 0; }
    .import-sheet-grid { grid-template-columns: minmax(0,1fr); }
    .import-sheet-card { padding: .85rem; }
    .import-panel-footer { align-items: stretch; flex-direction: column; gap: .7rem; }
    .import-panel-footer > .btn { width: 100%; }
    .import-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
    .import-summary-grid > div { padding: .8rem; }.import-summary-grid strong { font-size: 1.4rem; }.import-summary-grid small { font-size: .63rem; }
    .import-result-tools { grid-template-columns: minmax(0,1fr); gap: .7rem; }.import-result-tools > .btn { width: 100%; }
    .import-results-viewport { max-height: 65vh; padding: .5rem; border: 0; background: var(--bs-tertiary-bg); }
    .import-results-table,.import-results-table tbody { display: block; width: 100%; min-width: 0; }
    .import-results-table thead { display: none; }
    .import-results-table tbody tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); margin-bottom: .7rem; padding: .75rem; border: 1px solid var(--app-border); border-radius: .85rem; background: var(--bs-body-bg); }
    .import-results-table td { padding: .35rem; border: 0; background: transparent; font-size: .7rem; min-width: 0 !important; white-space: normal !important; box-shadow: none !important; }
    .import-results-table td::before { content: attr(data-label); display: block; font-size: .6rem; margin-bottom: .15rem; font-weight: 600; color: var(--bs-secondary-color); }
    .import-results-table td:nth-child(1),.import-results-table td:nth-child(4),.import-results-table td:nth-child(5),.import-results-table td:nth-child(6) { grid-column: 1 / -1; }
    .import-results-table td:nth-child(4) { order: -1; font-size: .78rem; }.import-results-table td > small { min-width: 0; }
    .import-pagination { flex-wrap: wrap; }.import-pagination > div { margin-left: auto; }
}
