/* =========================================================
   PASCOM+ — MÓDULOS INTERNOS

   Calendário
   Membros
   Hierarquia
   Escalas
   Avisos
   Administração
   Perfil
   Sessões
   ========================================================= */


/* =========================================================
   BASE
   ========================================================= */

.page-section {
    width:
        100%;
}


.page-container {
    width:
        100%;

    max-width:
        1180px;

    margin:
        0 auto;
}


.page-container-narrow {
    max-width:
        860px;
}


/* =========================================================
   CABEÇALHO DAS PÁGINAS
   ========================================================= */

.page-heading {
    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    gap:
        24px;

    margin-bottom:
        22px;
}


.page-heading > div {
    min-width:
        0;
}


.eyebrow,
.section-eyebrow {
    display:
        block;

    margin-bottom:
        6px;

    color:
        var(--primary);

    font-size:
        9px;

    font-weight:
        600;

    letter-spacing:
        0.11em;

    text-transform:
        uppercase;
}


.page-heading h1 {
    margin:
        0 0 8px;

    color:
        var(--text-primary);

    font-size:
        clamp(
            25px,
            2.3vw,
            32px
        );

    font-weight:
        600;

    line-height:
        1.2;

    letter-spacing:
        -0.035em;
}


.page-heading p {
    max-width:
        760px;

    margin:
        0;

    color:
        var(--text-secondary);

    font-size:
        11px;

    line-height:
        1.7;
}


/* =========================================================
   CARDS BASE
   ========================================================= */

.module-filter,
.module-form,
.member-filter-card,
.member-form-card,
.detail-card,
.calendar-list,
.notice-card,
.security-summary,
.session-card {
    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-md);

    background:
        #ffffff;

    box-shadow:
        var(--shadow-xs);
}


.module-filter,
.member-filter-card {
    margin-bottom:
        18px;

    padding:
        18px;
}


.module-form,
.member-form-card {
    padding:
        22px;
}


.detail-card {
    margin-bottom:
        15px;

    padding:
        20px;
}


/* =========================================================
   GRIDS
   ========================================================= */

.module-grid,
.member-form-grid {
    display:
        grid;

    gap:
        15px;
}


.module-grid.two,
.member-form-grid {
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
}


.module-grid.three {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}


.module-grid.four {
    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );
}


.module-full,
.member-form-full {
    grid-column:
        1 / -1;
}


/* =========================================================
   FORMULÁRIOS
   ========================================================= */

.page-content
.form-group {
    gap:
        7px;
}


.page-content
.form-group label,
.page-content
form label {
    color:
        var(--text-primary);

    font-size:
        10px;

    font-weight:
        600;
}


.page-content
input[type='text'],
.page-content
input[type='email'],
.page-content
input[type='password'],
.page-content
input[type='search'],
.page-content
input[type='tel'],
.page-content
input[type='number'],
.page-content
input[type='date'],
.page-content
input[type='time'],
.page-content
input[type='datetime-local'],
.page-content
select,
.page-content
textarea {
    min-height:
        44px;

    border-color:
        #ded6d8;

    border-radius:
        10px;

    background:
        #ffffff;

    font-size:
        11px;
}


.page-content textarea {
    min-height:
        116px;
}


.page-content input:disabled {
    background:
        #f4f2f3;

    color:
        #7d7477;

    cursor:
        not-allowed;
}


.form-actions,
.filter-actions,
.member-detail-actions,
.page-footer-actions {
    display:
        flex;

    align-items:
        center;

    justify-content:
        flex-end;

    gap:
        9px;

    flex-wrap:
        wrap;
}


.form-actions {
    margin-top:
        18px;

    padding-top:
        17px;

    border-top:
        1px solid
        var(--border);
}


/* =========================================================
   MEMBROS — FILTRO
   ========================================================= */

.member-filter-grid {
    display:
        grid;

    grid-template-columns:
        minmax(250px, 2fr)
        repeat(
            3,
            minmax(150px, 1fr)
        );

    gap:
        13px;

    align-items:
        end;
}


.member-filter-card
.filter-actions {
    margin-top:
        14px;

    justify-content:
        flex-start;
}


.member-list-header {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    min-height:
        38px;

    margin:
        2px 0 10px;
}


.member-list-header p {
    margin:
        0;

    color:
        var(--text-secondary);

    font-size:
        11px;
}


.member-list-header strong {
    color:
        var(--primary);

    font-weight:
        600;
}


/* =========================================================
   TABELAS
   ========================================================= */

.member-table-wrap,
.table-responsive {
    width:
        100%;

    overflow-x:
        auto;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-md);

    background:
        #ffffff;

    box-shadow:
        var(--shadow-xs);
}


.member-table,
.data-table {
    width:
        100%;

    min-width:
        860px;

    border-collapse:
        collapse;
}


.member-table th,
.data-table th {
    padding:
        12px 14px;

    border-bottom:
        1px solid
        var(--border);

    background:
        #faf9f9;

    color:
        var(--text-muted);

    font-size:
        8px;

    font-weight:
        600;

    letter-spacing:
        0.08em;

    text-align:
        left;

    text-transform:
        uppercase;

    white-space:
        nowrap;
}


.member-table td,
.data-table td {
    padding:
        13px 14px;

    border-bottom:
        1px solid
        #f0ecee;

    color:
        var(--text-primary);

    font-size:
        10px;

    vertical-align:
        middle;
}


.member-table
tbody tr:hover,
.data-table
tbody tr:hover {
    background:
        #fdfafb;
}


.member-table
tbody tr:last-child td,
.data-table
tbody tr:last-child td {
    border-bottom:
        0;
}


.member-name-cell {
    min-width:
        210px;
}


.member-name-cell strong {
    display:
        block;

    margin-bottom:
        3px;

    font-size:
        10px;

    font-weight:
        600;
}


.member-name-cell span,
.member-name-cell small {
    color:
        var(--text-muted);

    font-size:
        8px;
}


.member-actions-cell {
    text-align:
        right;

    white-space:
        nowrap;
}


.table-link {
    color:
        var(--primary);

    font-size:
        9px;

    font-weight:
        600;
}


.table-link:hover {
    text-decoration:
        underline;
}


/* =========================================================
   PAGINAÇÃO
   ========================================================= */

.pagination {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        6px;

    margin-top:
        16px;
}


.pagination a,
.pagination span {
    min-width:
        34px;

    min-height:
        34px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        6px 9px;

    border:
        1px solid
        var(--border);

    border-radius:
        9px;

    background:
        #ffffff;

    color:
        var(--text-secondary);

    font-size:
        9px;
}


.pagination a:hover {
    border-color:
        #d6c8cc;

    color:
        var(--primary);
}


.pagination .active,
.pagination [aria-current='page'] {
    border-color:
        var(--primary);

    background:
        var(--primary);

    color:
        #ffffff;
}


/* =========================================================
   STATUS
   ========================================================= */

.status-badge,
.status-account,
.session-badge {
    min-height:
        25px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        4px 9px;

    border-radius:
        999px;

    font-size:
        8px;

    font-weight:
        600;

    white-space:
        nowrap;
}


.status-active {
    background:
        var(--success-soft);

    color:
        var(--success);
}


.status-inactive {
    background:
        var(--danger-soft);

    color:
        var(--danger);
}


.status-neutral {
    background:
        #f1eff0;

    color:
        var(--text-secondary);
}


.status-account {
    background:
        var(--info-soft);

    color:
        var(--info);
}


/* =========================================================
   LISTAS E CARDS
   ========================================================= */

.card-list,
.scale-list {
    display:
        flex;

    flex-direction:
        column;

    gap:
        11px;
}


.module-card,
.scale-card {
    min-width:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    padding:
        18px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-md);

    background:
        #ffffff;

    box-shadow:
        var(--shadow-xs);

    transition:
        transform var(--transition),
        border-color var(--transition),
        box-shadow var(--transition);
}


.module-card:hover,
.scale-card:hover {
    transform:
        translateY(-2px);

    border-color:
        #ddcfd2;

    box-shadow:
        var(--shadow-sm);
}


.module-card h2,
.module-card h3,
.scale-card h2 {
    margin:
        7px 0 5px;

    font-size:
        14px;

    font-weight:
        600;
}


.module-card p,
.scale-card p {
    margin:
        0;

    color:
        var(--text-secondary);

    font-size:
        10px;

    line-height:
        1.6;
}


.module-card small,
.scale-card small {
    display:
        block;

    margin-top:
        5px;

    color:
        var(--text-muted);

    font-size:
        8px;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.empty-state,
.module-empty {
    min-height:
        200px;

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    justify-content:
        center;

    padding:
        32px;

    border:
        1px dashed
        var(--border-strong);

    border-radius:
        var(--radius-md);

    background:
        rgba(
            255,
            255,
            255,
            0.60
        );

    text-align:
        center;
}


.empty-state h2,
.empty-state h3,
.module-empty h2 {
    margin:
        0 0 7px;

    font-size:
        15px;
}


.empty-state p,
.module-empty p,
.detail-empty {
    max-width:
        460px;

    margin:
        0;

    color:
        var(--text-muted);

    font-size:
        10px;

    line-height:
        1.65;
}


/* =========================================================
   CALENDÁRIO
   ========================================================= */

.calendar-list {
    margin-bottom:
        14px;

    padding:
        8px 18px 10px;
}


.calendar-list h2 {
    margin:
        4px 0 2px;

    padding:
        10px 0;

    font-size:
        13px;

    font-weight:
        600;
}


.calendar-list
> .detail-empty {
    padding:
        20px 0;
}


.calendar-row {
    display:
        grid;

    grid-template-columns:
        70px
        minmax(0, 1fr)
        auto;

    align-items:
        center;

    gap:
        14px;

    min-height:
        64px;

    padding:
        10px 0;

    border-bottom:
        1px solid
        var(--border);
}


.calendar-row:last-child {
    border-bottom:
        0;
}


.calendar-row:hover {
    background:
        linear-gradient(
            90deg,
            rgba(
                247,
                236,
                238,
                0.45
            ),
            transparent
        );
}


.calendar-row time {
    width:
        56px;

    min-height:
        38px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        10px;

    background:
        var(--primary-soft);

    color:
        var(--primary);

    font-size:
        10px;

    font-weight:
        600;
}


.calendar-row
> div {
    min-width:
        0;

    display:
        flex;

    flex-direction:
        column;

    gap:
        3px;
}


.calendar-row strong {
    display:
        block;

    color:
        var(--text-primary);

    font-size:
        11px;

    font-weight:
        600;
}


.calendar-row span {
    display:
        block;

    color:
        var(--text-secondary);

    font-size:
        9px;

    line-height:
        1.5;
}


/* =========================================================
   HIERARQUIA
   ========================================================= */

.hierarchy-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        14px;
}


.hierarchy-grid
.detail-card {
    min-height:
        160px;

    margin:
        0;

    padding:
        18px;
}


.section-heading-small {
    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        12px;

    margin-bottom:
        10px;
}


.section-heading-small h2,
.section-heading-small h3 {
    margin:
        0;

    font-size:
        13px;

    font-weight:
        600;
}


.section-heading-small p,
.compact-list p {
    margin:
        3px 0 0;

    color:
        var(--text-muted);

    font-size:
        9px;
}


.compact-list {
    display:
        flex;

    flex-direction:
        column;
}


.hierarchy-person {
    padding:
        10px 0;

    border-top:
        1px solid
        var(--border);
}


.hierarchy-person:first-child {
    border-top:
        0;
}


.hierarchy-person strong {
    display:
        block;

    font-size:
        10px;

    font-weight:
        600;
}


.hierarchy-person span {
    display:
        block;

    margin-top:
        3px;

    color:
        var(--text-muted);

    font-size:
        8px;
}


/* =========================================================
   DETALHES / PERFIL
   ========================================================= */

.detail-card h2 {
    margin:
        0 0 17px;

    font-size:
        14px;

    font-weight:
        600;
}


.detail-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        18px 28px;
}


.detail-grid dt {
    margin-bottom:
        4px;

    color:
        var(--text-muted);

    font-size:
        8px;

    font-weight:
        600;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}


.detail-grid dd {
    margin:
        0;

    color:
        var(--text-primary);

    font-size:
        10px;

    line-height:
        1.6;
}


.detail-role-list,
.role-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        9px;
}


.detail-role,
.role-option {
    border:
        1px solid
        var(--border);

    border-radius:
        11px;

    background:
        #ffffff;
}


.detail-role {
    padding:
        12px;
}


.member-role-section {
    grid-column:
        1 / -1;

    margin-top:
        5px;

    padding-top:
        17px;

    border-top:
        1px solid
        var(--border);
}


.role-option {
    position:
        relative;

    min-height:
        68px;

    display:
        flex;

    align-items:
        flex-start;

    gap:
        10px;

    padding:
        12px;

    cursor:
        pointer;
}


.role-option input {
    margin-top:
        2px;

    accent-color:
        var(--primary);
}


.role-option-content {
    min-width:
        0;
}


.role-option-content strong {
    display:
        block;

    font-size:
        10px;
}


.role-option-content span {
    display:
        block;

    margin-top:
        2px;

    color:
        var(--text-muted);

    font-size:
        8px;
}


/* =========================================================
   AVISOS
   ========================================================= */

.notice-card {
    margin-bottom:
        11px;

    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        18px;

    padding:
        17px 18px;

    border-left:
        4px solid
        var(--border-strong);
}


.notice-card h2 {
    margin:
        4px 0 6px;

    font-size:
        14px;

    font-weight:
        600;
}


.notice-card p {
    margin:
        0;

    color:
        var(--text-secondary);

    font-size:
        10px;

    line-height:
        1.65;
}


.notice-card small {
    display:
        block;

    margin-top:
        8px;

    color:
        var(--text-muted);

    font-size:
        8px;
}


.priority-importante {
    border-left-color:
        var(--secondary);
}


.priority-urgente {
    border-left-color:
        var(--danger);
}


/* =========================================================
   ADMINISTRAÇÃO
   ========================================================= */

.dashboard-metrics,
.admin-summary,
.admin-stats,
.admin-metrics {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        12px;

    margin:
        0 0 20px;
}


.metric-card,
.admin-summary > div,
.admin-stats > div,
.admin-metrics > div {
    min-height:
        104px;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

    padding:
        17px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-md);

    background:
        #ffffff;

    box-shadow:
        var(--shadow-xs);
}


.metric-card span,
.admin-summary span,
.admin-stats span,
.admin-metrics span {
    color:
        var(--text-muted);

    font-size:
        9px;

    font-weight:
        500;
}


.metric-card strong,
.admin-summary strong,
.admin-stats strong,
.admin-metrics strong {
    display:
        block;

    margin-top:
        5px;

    color:
        var(--primary);

    font-size:
        25px;

    font-weight:
        600;

    line-height:
        1;
}


.admin-links {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        12px;
}


.admin-links
.module-card {
    min-height:
        118px;

    align-items:
        flex-start;
}


.admin-links
.module-card h2 {
    margin-top:
        0;
}


/* =========================================================
   SEGURANÇA / SESSÕES
   ========================================================= */

.security-summary {
    display:
        grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        0;

    margin-bottom:
        18px;

    overflow:
        hidden;
}


.security-summary-item {
    padding:
        16px;

    border-right:
        1px solid
        var(--border);
}


.security-summary-item:last-child {
    border-right:
        0;
}


.security-summary-item span {
    display:
        block;

    color:
        var(--text-muted);

    font-size:
        8px;
}


.security-summary-item strong {
    display:
        block;

    margin-top:
        4px;

    color:
        var(--text-primary);

    font-size:
        13px;

    font-weight:
        600;
}


.session-list {
    display:
        flex;

    flex-direction:
        column;

    gap:
        10px;
}


.session-card {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        18px;

    padding:
        16px;
}


.session-card-main {
    min-width:
        0;

    display:
        flex;

    align-items:
        flex-start;

    gap:
        12px;
}


.session-icon {
    width:
        40px;

    height:
        40px;

    flex:
        0 0 40px;

    display:
        grid;

    place-items:
        center;

    padding:
        9px;

    border-radius:
        10px;

    background:
        var(--primary-soft);

    color:
        var(--primary);
}


.session-info {
    min-width:
        0;
}


.session-title-row {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    flex-wrap:
        wrap;
}


.session-title-row strong {
    font-size:
        11px;

    font-weight:
        600;
}


.session-details {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        7px 16px;

    margin-top:
        9px;
}


.session-details dt {
    color:
        var(--text-muted);

    font-size:
        7px;

    letter-spacing:
        0.06em;

    text-transform:
        uppercase;
}


.session-details dd {
    margin:
        1px 0 0;

    color:
        var(--text-secondary);

    font-size:
        9px;
}


/* =========================================================
   ESCALAS
   ========================================================= */

.split-layout {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(290px, 0.8fr);

    gap:
        15px;
}


.member-assignment-list {
    display:
        flex;

    flex-direction:
        column;
}


.assignment-row {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        16px;

    padding:
        13px 0;

    border-bottom:
        1px solid
        var(--border);
}


.assignment-row:last-child {
    border-bottom:
        0;
}


.assignment-row span {
    display:
        block;

    color:
        var(--text-muted);

    font-size:
        9px;
}


.copy-text {
    width:
        100%;

    padding:
        13px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-sm);

    background:
        #faf9f9;

    color:
        var(--text-primary);

    font-family:
        var(--font);

    font-size:
        10px;

    line-height:
        1.7;
}


/* =========================================================
   EVENTOS
   ========================================================= */

.date-chip-list {
    display:
        flex;

    flex-wrap:
        wrap;

    gap:
        8px;
}


.date-chip {
    min-height:
        32px;

    display:
        inline-flex;

    align-items:
        center;

    gap:
        7px;

    padding:
        6px 10px;

    border:
        1px solid
        #eadde0;

    border-radius:
        999px;

    background:
        var(--primary-soft);

    color:
        var(--primary);

    font-size:
        8px;

    font-weight:
        500;
}


.date-chip a {
    color:
        var(--primary);

    font-weight:
        600;
}


.date-chip.muted {
    opacity:
        0.5;
}
/* =========================================================
   Solicitações de acesso / Cadastros pendentes
   ========================================================= */

.access-review-page {
    padding-bottom: 28px;
}

.access-review-heading {
    align-items: center;
}

.access-review-summary {
    min-width: 158px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 15px;
    border: 1px solid var(--border, #e9e1e3);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(38, 26, 30, .035);
}

.access-review-summary-value {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 11px;
    background: var(--primary-soft, #f7edef);
    color: var(--primary, #8f1d2c);
    font-size: 15px;
    font-weight: 700;
}

.access-review-summary-label {
    color: var(--text-secondary, #71666a);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.35;
}

.pending-registration-list {
    display: grid;
    gap: 18px;
}

.pending-registration-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    overflow: hidden;
    border: 1px solid var(--border, #e9e1e3);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(38, 26, 30, .055);
}

.pending-registration-main {
    min-width: 0;
    padding: 24px;
}

.pending-registration-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 22px;
}

.pending-registration-id {
    color: var(--primary, #8f1d2c);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.pending-registration-verified {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 29px;
    padding: 6px 10px;
    background: #eef8f4;
    color: #23634f;
    font-size: 9px;
    font-weight: 700;
}

.pending-registration-verified-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2f8a6e;
    box-shadow: 0 0 0 4px rgba(47, 138, 110, .10);
}

.pending-registration-profile {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 22px;
    border-bottom: 1px solid #f0ebec;
}

.pending-registration-avatar {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 18px;
    background: linear-gradient(145deg, var(--primary, #8f1d2c), #6f1522);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.02em;
    box-shadow: 0 10px 24px rgba(122, 31, 43, .18);
}

.pending-registration-identity {
    min-width: 0;
}

.pending-registration-identity h2 {
    margin: 0 0 5px;
    color: var(--text-primary, #2c2427);
    font-size: 20px;
    font-weight: 650;
    letter-spacing: -.025em;
    line-height: 1.2;
}

.pending-registration-email {
    margin: 0;
    color: var(--text-secondary, #71666a);
    font-size: 11px;
    overflow-wrap: anywhere;
}

.pending-registration-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.access-contact-link {
    min-height: 31px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px;
    border: 1px solid #ece4e6;
    border-radius: 9px;
    background: #fbf9fa;
    color: var(--text-secondary, #71666a);
    font-size: 9px;
    font-weight: 600;
    transition: border-color var(--transition), background-color var(--transition), color var(--transition), transform var(--transition);
}

.access-contact-link:hover {
    border-color: #dbcdd0;
    background: var(--primary-soft-2, #fbf1f3);
    color: var(--primary, #8f1d2c);
    transform: translateY(-1px);
}

.access-contact-link svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

.pending-registration-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0 0;
}

.pending-registration-meta-item {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 13px;
    border: 1px solid #f0ebec;
    border-radius: 13px;
    background: #fcfbfb;
}

.pending-registration-meta-icon {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 10px;
    background: #f4eff0;
    color: #7a6167;
}

.pending-registration-meta-icon svg {
    width: 16px;
    height: 16px;
}

.pending-registration-meta dt {
    margin: 0;
    color: #94878a;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.pending-registration-meta dd {
    margin: 4px 0 0;
    color: var(--text-primary, #2c2427);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.pending-registration-review {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-left: 1px solid var(--border, #e9e1e3);
    background: linear-gradient(180deg, #fbf8f9 0%, #f8f4f5 100%);
}

.pending-registration-review-head {
    padding-bottom: 18px;
    border-bottom: 1px solid #e9dfe2;
}

.pending-registration-review-head h3 {
    margin: 0 0 7px;
    color: var(--text-primary, #2c2427);
    font-size: 16px;
    font-weight: 650;
    letter-spacing: -.02em;
}

.pending-registration-review-head p {
    margin: 0;
    color: var(--text-secondary, #71666a);
    font-size: 9px;
    line-height: 1.6;
}

.pending-registration-review-checks {
    display: grid;
    gap: 9px;
    padding: 18px 0;
}

.pending-registration-review-checks span {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #5f5558;
    font-size: 9px;
    font-weight: 600;
}

.pending-registration-review-checks svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    color: #2f7d67;
}

.pending-registration-approve-form {
    margin: 0;
}

.pending-registration-approve {
    width: 100%;
    min-height: 42px;
    justify-content: center;
}

.pending-registration-approve svg {
    width: 17px;
    height: 17px;
}

.pending-registration-reject {
    margin-top: 10px;
    border: 1px solid #e6dcde;
    border-radius: 12px;
    background: rgba(255, 255, 255, .58);
}

.pending-registration-reject summary {
    min-height: 39px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 11px;
    color: #73666a;
    font-size: 9px;
    font-weight: 650;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.pending-registration-reject summary::-webkit-details-marker {
    display: none;
}

.pending-registration-reject summary svg {
    width: 15px;
    height: 15px;
    transition: transform var(--transition);
}

.pending-registration-reject[open] summary svg {
    transform: rotate(180deg);
}

.reject-form {
    display: grid;
    gap: 9px;
    padding: 0 11px 11px;
}

.reject-form label {
    color: var(--text-primary, #2c2427);
    font-size: 9px;
    font-weight: 650;
}

.reject-form label span {
    color: #9a8e91;
    font-weight: 500;
}

.reject-form textarea {
    width: 100%;
    min-height: 82px;
    resize: vertical;
    padding: 10px 11px;
    border: 1px solid #ddd2d5;
    border-radius: 10px;
    background: #fff;
    color: var(--text-primary, #2c2427);
    font: inherit;
    font-size: 10px;
    line-height: 1.5;
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.reject-form textarea:focus {
    border-color: rgba(122, 31, 43, .48);
    box-shadow: 0 0 0 3px rgba(122, 31, 43, .08);
}

.pending-registration-reject-button {
    width: 100%;
    justify-content: center;
}

.access-review-empty {
    min-height: 300px;
    border: 1px solid var(--border, #e9e1e3);
    border-radius: 22px;
    background: #fff;
}

.access-review-empty-icon {
    width: 50px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 14px;
    border-radius: 16px;
    background: #eef8f4;
    color: #2f7d67;
}

.access-review-empty-icon svg {
    width: 25px;
    height: 25px;
}

@media (max-width: 920px) {
    .pending-registration-card {
        grid-template-columns: 1fr;
    }

    .pending-registration-review {
        border-top: 1px solid var(--border, #e9e1e3);
        border-left: 0;
    }
}

@media (max-width: 700px) {
    .access-review-heading {
        align-items: flex-start;
    }

    .access-review-summary {
        width: 100%;
    }

    .pending-registration-main,
    .pending-registration-review {
        padding: 18px;
    }

    .pending-registration-topbar,
    .pending-registration-profile {
        align-items: flex-start;
    }

    .pending-registration-topbar {
        flex-direction: column;
    }

    .pending-registration-meta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .pending-registration-profile {
        flex-direction: column;
    }

    .pending-registration-avatar {
        width: 50px;
        height: 50px;
        border-radius: 15px;
    }

    .pending-registration-contact-actions {
        width: 100%;
    }

    .access-contact-link {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* =========================================================
   PASCOM+ - SOLICITAÇÕES DE ACESSO
   Proteção de tamanho dos SVGs
   ========================================================= */

.access-review-page svg {
    display: block;
    flex-shrink: 0;
}


/* CONTATO - E-MAIL / WHATSAPP */

.access-review-page .access-contact-link svg {
    width: 14px !important;
    height: 14px !important;
    min-width: 14px;
    min-height: 14px;
    max-width: 14px;
    max-height: 14px;
}


/* ÍCONES DOS DADOS DO CADASTRO */

.access-review-page .pending-registration-meta-icon svg {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    min-height: 16px;
    max-width: 16px;
    max-height: 16px;
}


/* CHECKS DO PAINEL DE APROVAÇÃO */

.access-review-page .pending-registration-review-checks svg {
    width: 15px !important;
    height: 15px !important;
    min-width: 15px;
    min-height: 15px;
    max-width: 15px;
    max-height: 15px;
}


/* BOTÃO APROVAR */

.access-review-page .pending-registration-approve svg {
    width: 17px !important;
    height: 17px !important;
    min-width: 17px;
    min-height: 17px;
    max-width: 17px;
    max-height: 17px;
}


/* SETA DO BLOCO DE RECUSA */

.access-review-page .pending-registration-reject summary svg {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px;
    min-height: 16px;
    max-width: 16px;
    max-height: 16px;
}


/* ÍCONE DO ESTADO VAZIO */

.access-review-page .access-review-empty-icon svg {
    width: 25px !important;
    height: 25px !important;
    min-width: 25px;
    min-height: 25px;
    max-width: 25px;
    max-height: 25px;
}
