/* Camada final de temas e responsividade. Carregada após o legado. */
[data-theme="mint"] { --surface-subtle: #f3fbf9; --surface-selected: #dff6ef; --surface-icon: #c7f0e4; }
[data-theme="blue"] { --surface-subtle: #f3f8ff; --surface-selected: #e2f1ff; --surface-icon: #cfe8ff; }
[data-theme="rose"] { --page-end: #fff0f5; --surface-subtle: #fff6f9; --surface-selected: #ffe5ef; --surface-icon: #ffd5e4; }
[data-theme="lilac"] { --surface-subtle: #f8f6ff; --surface-selected: #eee9ff; --surface-icon: #dfd7ff; }
[data-theme="sunny"] { --surface-subtle: #fffaf0; --surface-selected: #fff0cf; --surface-icon: #ffe4a4; }

html,
body { background: linear-gradient(180deg, var(--page-start) 0%, var(--page-end) 100%) !important; }
.sidebar,
.mobile-topbar,
.sidebar-account-toggle { background: var(--panel); }
.sidebar nav a:hover,
.sidebar nav a.is-active,
.sidebar-account-menu a:hover,
.sidebar-account-menu a.is-active { background: var(--surface-selected); }
.sidebar nav a.is-active .nav-svg { background: var(--surface-icon); border-color: var(--surface-icon); }

/* Dashboard */
.dashboard-routine-grid { grid-template-columns: minmax(0, 1fr) !important; }
@media (max-width: 720px) {
    .dashboard-routine-head { display: grid; }
    .dashboard-routine-head p { max-width: none; }
    .dashboard-routine-actions { justify-content: flex-start; width: 100%; }
    .dashboard-routine-actions a { flex: 1 1 0; justify-content: center; }
}

/* Marcos */
@media (min-width: 901px) {
    .milestones-page-head .inline-actions .button.ghost,
    .milestone-suggestions-toggle { display: none; }
    .milestone-list-head { align-items: start; display: grid; gap: 12px; }
    .milestone-record-filters { margin-left: 0; max-width: none; width: 100%; }
    .milestone-overview-card { gap: 11px; padding: 16px 18px; }
    .milestone-overview-item { gap: 4px 11px; grid-template-columns: 29px 42px minmax(0, 1fr); }
    .milestone-overview-item strong { align-self: center; min-width: 42px; }
    .milestone-overview-item small { align-self: center; line-height: 1.18; }
}
@container (min-width: 1051px) {
    .milestone-record-filters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .milestone-record-filters input { grid-column: span 2; }
}
@container (min-width: 761px) and (max-width: 1050px) {
    .milestone-record-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .milestone-record-filters input { grid-column: span 2; }
}

/* Caderneta neonatal */
.booklet-neonatal-details { border: 0; margin: 0; }
.booklet-neonatal-details > summary { display: none; }
@media (max-width: 640px) {
    .booklet-neonatal-details > summary { align-items: center; background: var(--surface-subtle); border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--line)); border-radius: 14px; cursor: pointer; display: flex; gap: 10px; justify-content: space-between; list-style: none; min-height: 62px; padding: 10px 11px; }
    .booklet-neonatal-details > summary::-webkit-details-marker { display: none; }
    .booklet-neonatal-details > summary strong,
    .booklet-neonatal-details > summary small { display: block; }
    .booklet-neonatal-details > summary strong { color: var(--ink); font-size: 12px; }
    .booklet-neonatal-details > summary small { color: var(--muted); font-size: 10px; margin-top: 3px; }
    .booklet-neonatal-progress { color: var(--primary-dark); display: grid; font-size: 10px; justify-items: end; line-height: 1.15; white-space: nowrap; }
    .booklet-neonatal-progress b { font-size: 12px; }
    .booklet-neonatal-progress em { color: var(--primary); font-size: 9px; font-style: normal; font-weight: 850; margin-top: 3px; }
    .booklet-neonatal-details-body { margin-top: 10px; }
    #booklet-neonatal .booklet-fact-grid { gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 10px; }
    #booklet-neonatal .booklet-fact-grid div { min-height: 51px; padding: 8px; }
    #booklet-neonatal .booklet-fact-grid span { font-size: 9px; }
    #booklet-neonatal .booklet-fact-grid strong { font-size: 10.5px; line-height: 1.2; }
    #booklet-neonatal .booklet-subsection-heading { align-items: start; margin-top: 12px; padding-top: 11px; }
    #booklet-neonatal .booklet-subsection-heading h3 { font-size: 14px; }
    #booklet-neonatal .booklet-subsection-heading > span { font-size: 9px; max-width: 145px; text-align: right; }
}

/* Administração */
.admin-users-table { min-width: 0; table-layout: fixed; }
.admin-billing-pill.is-platform { background: #eef3f8; color: #586b80; }
.admin-detail-section > header { align-items: start; display: flex; gap: 10px; justify-content: space-between; }
.admin-history-total { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 999px; color: var(--primary-dark); font-size: 10px; font-weight: 850; padding: 5px 8px; white-space: nowrap; }
.admin-history-pagination { display: flex; gap: 6px; justify-content: flex-end; margin-top: 12px; }
.admin-history-pagination a { align-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--primary-dark); display: inline-flex; font-size: 11px; font-weight: 850; height: 30px; justify-content: center; min-width: 30px; padding: 0 7px; text-decoration: none; }
.admin-history-pagination a:hover,
.admin-history-pagination a.is-current { background: var(--surface-selected); border-color: color-mix(in srgb, var(--primary) 30%, var(--line)); }

/* No desktop, o menu de conta segue o mesmo padrão compacto do celular:
   ícone, rótulo curto e controles lado a lado. */
@media (min-width: 901px) {
    .sidebar-account.is-open .sidebar-account-menu { gap: 6px; grid-template-columns: repeat(auto-fit, minmax(68px, 1fr)); max-height: none; overflow: visible; padding: 6px; }
    .sidebar-account-menu a { align-items: center; flex-direction: column; font-size: 9px; gap: 3px; justify-content: center; min-height: 47px; padding: 5px 3px; text-align: center; }
    .sidebar-account-menu a .nav-svg { flex: 0 0 16px; height: 16px; width: 16px; }
    .sidebar .account-nav-label-desktop { display: none; }
    .sidebar .account-nav-label-mobile { display: inline; }
    .sidebar-account-menu form { grid-column: 1 / -1; margin: 0; }
    .sidebar-account-menu .ghost.full { font-size: 11px; min-height: 32px; padding: 5px 8px; }
}

/* A pré-visualização de cobrança do Admin Global é declaradamente informativa. */
.billing-status-card.status-admin_global { background: linear-gradient(135deg, var(--surface-subtle), var(--panel)); border-color: color-mix(in srgb, var(--primary) 28%, var(--line)); }
.billing-status-card.status-admin_global .billing-status-icon { background: var(--surface-icon); color: var(--primary-dark); }
.billing-preview-button { cursor: not-allowed; opacity: .7; }

/* Catálogo financeiro: dados sensíveis não são mostrados nem coletados pela UI. */
.billing-catalog-settings { border-top: 1px solid var(--line); display: grid; gap: 12px; margin: 14px 0; padding-top: 14px; }
.billing-catalog-heading { align-items: start; display: flex; gap: 18px; justify-content: space-between; }
.billing-catalog-heading h3 { color: var(--ink); font-size: 15px; margin: 2px 0 4px; }
.billing-catalog-heading p, .billing-catalog-note { color: var(--muted); font-size: 11px; line-height: 1.45; margin: 0; max-width: 680px; }
.billing-health-list { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; justify-content: end; }
.billing-health-list span { background: #f0f4f8; border-radius: 2px; color: #607087; font-size: 10px; font-weight: 800; padding: 3px 6px; }
.billing-health-list .is-ok { background: #def4ec; color: #08775d; }
.billing-catalog-form { align-items: end; display: grid; gap: 8px; grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) minmax(150px, 1.15fr) auto; }
.billing-catalog-form label { color: var(--muted); display: grid; font-size: 10px; font-weight: 850; gap: 4px; }
.billing-catalog-form input { min-height: 34px; }
.billing-catalog-form button { min-height: 34px; white-space: nowrap; }
.billing-confirmation input { text-transform: uppercase; }
.billing-catalog-history { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px 10px; padding-top: 10px; }
.billing-catalog-history strong { color: var(--ink); font-size: 11px; }
.billing-catalog-history span { color: var(--muted); font-size: 10px; }

@media (max-width: 680px) {
    .billing-catalog-heading { display: grid; gap: 8px; }
    .billing-health-list { justify-content: start; }
    .billing-catalog-form { grid-template-columns: 1fr 1fr; }
    .billing-catalog-form .billing-confirmation, .billing-catalog-form button { grid-column: span 2; }
}

/* Gestão de usuários: informações úteis, ações hierarquizadas e sem ruído visual. */
@media (min-width: 901px) {
    .admin-user-toolbar { grid-template-columns: minmax(150px, 1.45fr) repeat(3, minmax(90px, .78fr)); }
    .admin-users-table { min-width: 0; }
    .admin-users-table th:last-child,
    .admin-users-table td:last-child { width: auto; }
}
.admin-user-identity small { color: var(--muted); display: block; font-size: 10px; font-weight: 600; line-height: 1.3; margin-top: 3px; overflow-wrap: anywhere; }
.admin-table-heading { position: relative; }
.admin-table-heading-actions { align-items: center; display: flex; flex: 0 0 auto; gap: 8px; }
.admin-create-user { background: transparent; border: 0; border-radius: 0; margin: 0; position: relative; }
.admin-create-user > summary { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; color: var(--primary-dark); font-size: 10px; min-height: 31px; padding: 5px 9px; }
.admin-create-user[open] > summary { background: var(--surface-selected); border-color: color-mix(in srgb, var(--primary) 30%, var(--line)); }
.admin-create-user-form { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 28px rgba(31, 48, 80, .14); grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: min(560px, calc(100vw - 72px)); position: absolute; right: 0; top: calc(100% + 7px); z-index: 8; }
.admin-create-user-form .admin-family-name-field { grid-column: auto; }
.admin-create-user-form button { grid-column: 1 / -1; justify-self: end; }
.admin-account-summary { display: grid; gap: 3px; }
.admin-account-summary strong { color: var(--ink); font-size: 11px; }
.admin-account-summary span { color: var(--muted); font-size: 10px; }
.admin-link-stats { display: flex; flex-wrap: wrap; gap: 4px 7px; }
.admin-link-stats span { color: var(--muted); font-size: 10px; white-space: nowrap; }
.admin-link-stats b { color: var(--primary-dark); font-size: 11px; }
.admin-account-status { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; }
.admin-account-status small { color: var(--muted); flex-basis: 100%; font-size: 9px; line-height: 1.2; }
.admin-user-actions { align-items: center; display: grid; gap: 6px; grid-template-columns: minmax(0, 1fr) auto; min-width: 0; }
.admin-detail-link,
.admin-manage-menu > summary { align-items: center; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; color: var(--primary-dark); cursor: pointer; display: inline-flex; font-size: 10px; font-weight: 850; gap: 5px; justify-content: center; min-height: 32px; padding: 5px 9px; text-decoration: none; white-space: nowrap; }
.admin-detail-link:hover,
.admin-manage-menu[open] > summary { background: var(--surface-selected); border-color: color-mix(in srgb, var(--primary) 28%, var(--line)); }
.admin-detail-link .mini-svg { height: 13px; width: 13px; }
.admin-manage-menu { min-width: 0; position: relative; }
.admin-manage-menu > summary { list-style: none; }
.admin-manage-menu > summary::-webkit-details-marker { display: none; }
.admin-manage-menu > summary > i { font-size: 13px; font-style: normal; line-height: 1; transition: transform .16s ease; }
.admin-manage-menu[open] > summary > i { transform: rotate(180deg); }
.admin-manage-menu-body { background: var(--panel); border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--line)); border-radius: 12px; box-shadow: 0 14px 30px rgba(31, 48, 80, .14); display: grid; gap: 9px; margin-top: 7px; min-width: 280px; overflow: hidden; padding: 10px; position: absolute; right: 0; top: 100%; z-index: 5; }
.admin-user-classification-form { display: grid; gap: 7px; grid-template-columns: minmax(0, 1fr) 82px; }
.admin-user-classification-form select { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-size: 10px; min-height: 32px; min-width: 0; padding: 4px 7px; width: 100%; }
.admin-user-classification-form select[name="account_type"] { grid-column: 1 / -1; }
.admin-save-action { background: var(--primary); border: 0; border-radius: 8px; color: #fff; cursor: pointer; font-size: 10px; font-weight: 850; min-height: 32px; padding: 6px 9px; }
.admin-save-action:hover { filter: brightness(.96); }
.admin-user-status-form { border-top: 1px solid var(--line); display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding-top: 9px; }
.admin-access-action { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 850; min-height: 32px; padding: 6px 8px; }
.admin-access-action.is-positive { background: var(--surface-selected); border-color: color-mix(in srgb, var(--primary) 28%, var(--line)); color: var(--primary-dark); grid-column: 1 / -1; }
.admin-access-action.is-neutral { background: #f4f8fb; color: #355a78; }
.admin-access-action.is-risk { background: #fff9fa; border-color: #f1d4d9; color: #b34452; }
.admin-access-action:hover { filter: brightness(.98); }
.admin-delete-form { border-top: 1px solid var(--line); margin: 0; padding-top: 9px; }
.admin-delete-action { background: transparent; border: 1px solid transparent; border-radius: 8px; color: #a85a64; cursor: pointer; font-size: 9px; font-weight: 750; min-height: 29px; padding: 5px 7px; text-align: center; width: 100%; }
.admin-delete-action:hover { background: #fff8f8; border-color: #f1dfe2; color: #a13241; }

/* Linha expansível de gerenciamento: acompanha o usuário, sem sobrepor a tabela. */
.admin-overview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-status-pill,
.admin-billing-pill { border-radius: 2px; font-size: 9px; line-height: 1.2; padding: 2px 5px; }
.admin-account-status { align-items: start; column-gap: 4px; row-gap: 3px; }
.admin-account-status small { font-size: 9px; }
.admin-user-actions { align-items: start; display: grid; gap: 4px; grid-template-columns: 1fr; }
.admin-inline-detail,
.admin-inline-manage-toggle { background: transparent; border: 0; color: #0c5794; cursor: pointer; display: inline-flex; font-size: 10px; font-weight: 750; line-height: 1.2; padding: 1px 0; text-align: left; text-decoration: none; }
.admin-inline-detail { font-weight: 850; }
.admin-inline-detail:hover,
.admin-inline-manage-toggle:hover { color: var(--primary-dark); text-decoration: underline; }
.admin-users-table tr[hidden] { display: none !important; }
.admin-inline-manage-row[hidden] { display: none !important; }
.admin-inline-manage-row td { background: transparent; border-bottom: 1px solid var(--line); padding: 7px 0 10px; }
.admin-inline-manage-controls { align-items: center; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; padding-top: 7px; }
.admin-inline-classification-form,
.admin-inline-status-form,
.admin-inline-delete-form { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.admin-inline-classification-form select { background: #f7fbff; border: 1px solid #d6e4ee; border-radius: 3px; color: #244766; font-size: 10px; height: 25px; min-width: 82px; padding: 2px 5px; }
.admin-inline-save,
.admin-inline-access,
.admin-inline-delete { background: #fff; border: 1px solid #9eb8cf; border-radius: 3px; color: #164d7a; cursor: pointer; font-size: 10px; font-weight: 750; height: 25px; padding: 3px 7px; white-space: nowrap; }
.admin-inline-save { background: #287bd3; border-color: #287bd3; color: #fff; }
.admin-inline-access.is-neutral { border-color: #8ca6be; color: #174f78; }
.admin-inline-access.is-positive { border-color: #77b7a9; color: #087564; }
.admin-inline-access.is-risk,
.admin-inline-delete { border-color: #ec7b68; color: #cd4432; }
.admin-inline-save:hover { background: #1768bd; }
.admin-inline-access:hover,
.admin-inline-delete:hover { background: #f5faff; }
.admin-detail-share-people { border-top: 1px solid var(--line); display: grid; gap: 5px; padding-top: 8px; }
.admin-detail-share-people > span { color: var(--muted); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.admin-detail-share-people > small { color: var(--muted); font-size: 10px; }
.admin-detail-share-people > div { display: flex; flex-wrap: wrap; gap: 5px; }
.admin-detail-share-people > div > span { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 1px; padding: 5px 7px; }
.admin-detail-share-people b { color: var(--ink); font-size: 10px; }
.admin-detail-share-people small { color: var(--muted); font-size: 9px; }
@media (max-width: 640px) {
    .admin-overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-user-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-users-table { min-width: 0; }
    .admin-detail-section > header { align-items: start; }
    .admin-users-table,
    .admin-users-table tbody { display: grid !important; gap: 10px; min-width: 0; width: 100%; }
    .admin-users-table tr { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; display: grid !important; gap: 0 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 11px; }
    .admin-users-table td { border: 0; border-bottom: 1px solid var(--line); display: block !important; min-width: 0; padding: 8px 0; }
    .admin-users-table td::before { color: var(--muted); content: attr(data-label); display: block; font-size: 9px; font-weight: 850; margin-bottom: 4px; text-transform: uppercase; }
    .admin-users-table td:nth-child(1),
    .admin-users-table td:nth-child(4),
    .admin-users-table td:nth-child(5) { grid-column: 1 / -1; }
    .admin-users-table td:nth-child(1)::before { display: none; }
    .admin-users-table td:nth-child(4) { border-bottom: 0; padding-bottom: 5px; }
    .admin-users-table td:nth-child(5) { border-top: 1px solid var(--line); border-bottom: 0; padding-top: 9px; }
    .admin-table-heading-actions { align-items: end; }
    .admin-create-user-form { min-width: min(440px, calc(100vw - 56px)); }
    .admin-user-actions { grid-template-columns: 1fr; }
    .admin-manage-menu[open] { grid-column: 1 / -1; }
    .admin-manage-menu-body { box-shadow: none; min-width: 0; position: static; width: 100%; }
    .admin-user-classification-form { grid-template-columns: minmax(0, 1fr) 82px; }
    .admin-link-stats { gap: 3px 5px; }
    .admin-link-stats span { font-size: 9px; }
    .admin-users-table tr.admin-inline-manage-row { background: transparent; border: 0; border-radius: 0; display: block !important; padding: 0 11px 9px; }
    .admin-users-table tr.admin-inline-manage-row td { border: 0; display: block !important; padding: 0; }
    .admin-users-table tr.admin-inline-manage-row td::before { display: none; }
    .admin-inline-manage-controls { justify-content: flex-start; }
}
@media (max-width: 430px) {
    .admin-table-heading { align-items: start; }
    .admin-table-heading-actions { align-items: center; }
    .admin-create-user-form { grid-template-columns: 1fr; min-width: min(280px, calc(100vw - 48px)); }
    .admin-create-user-form .admin-family-name-field,
    .admin-create-user-form button { grid-column: auto; justify-self: stretch; }
    .admin-access-action.is-positive { grid-column: auto; }
}

/* Tabela de usuários: proporções compactas idênticas em desktop amplo e reduzido. */
.admin-overview-metrics { gap: 10px; margin-bottom: 12px; }
.admin-overview-metric { align-items: center; border-radius: 14px; box-shadow: none; display: flex; gap: 10px; min-height: 50px; padding: 9px 12px; }
.admin-overview-metric strong { flex: 0 0 auto; font-size: 25px; line-height: 1; margin: 0; order: 1; }
.admin-overview-metric span { font-size: 8px; line-height: 1.12; order: 2; }
.admin-user-toolbar { display: grid; gap: 9px; grid-template-columns: minmax(135px, 1.45fr) repeat(3, minmax(82px, .78fr)); margin: 14px 0 10px; }
.admin-user-toolbar label { display: grid; gap: 4px; min-width: 0; }
.admin-user-toolbar label > span { color: var(--muted); font-size: 9px; font-weight: 850; }
.admin-user-toolbar input,
.admin-user-toolbar select { font-size: 10px; min-width: 0; width: 100%; }
.admin-responsive-table { overflow: visible; }
.admin-users-table { min-width: 0; table-layout: fixed; width: 100%; }
.admin-users-table th,
.admin-users-table td { overflow-wrap: anywhere; padding: 10px 8px; }
.admin-users-table th { font-size: 9px; }
.admin-user-col { width: 26%; }
.admin-account-col { width: 16%; }
.admin-links-col { width: 16%; }
.admin-status-col { width: 23%; }
.admin-actions-col { width: 19%; }
.admin-inline-detail { font-weight: 850; }
.admin-inline-manage-toggle { font-weight: 750; }
.admin-detail-section.admin-module-usage-section { margin-bottom: 16px; }
.admin-module-usage-list { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.admin-module-usage-list article { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 3px; min-height: 58px; padding: 9px 10px; }
.admin-module-usage-list strong { color: var(--ink); font-size: 11px; }
.admin-module-usage-list span { color: var(--primary-dark); font-size: 10px; font-weight: 750; }
@media (min-width: 1051px) {
    .admin-user-col { width: 25%; }
    .admin-account-col { width: 17%; }
    .admin-links-col { width: 25%; }
    .admin-status-col { width: 20%; }
    .admin-actions-col { width: 13%; }
    .admin-inline-manage-controls { flex-wrap: nowrap; }
}
@media (max-width: 640px) {
    .admin-overview-metrics { gap: 8px; margin-bottom: 12px; }
    .admin-overview-metric { min-height: 54px; padding: 9px 10px; }
    .admin-overview-metric strong { font-size: 23px; }
    .admin-user-toolbar { margin-top: 12px; }
    .admin-module-usage-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Controles expandidos: uma linha no desktop e duas linhas compactas no celular. */
.admin-users-table tr.admin-inline-manage-row[hidden] { display: none !important; }
.admin-users-table tr.admin-inline-manage-row,
.admin-users-table tr.admin-inline-manage-row > td { height: auto; overflow: visible; }
.admin-inline-manage-controls { display: grid; gap: 6px; grid-template-columns: 100px 92px max-content max-content max-content max-content; justify-content: end; width: 100%; }
.admin-inline-classification-form,
.admin-inline-status-form,
.admin-inline-delete-form { display: contents; }
.admin-inline-classification-form select { min-width: 0; width: 100%; }
.admin-inline-save,
.admin-inline-access,
.admin-inline-delete { min-width: 0; }
@media (max-width: 640px) {
    .admin-users-table tr.admin-inline-manage-row[hidden] { display: none !important; }
    .admin-users-table tr.admin-inline-manage-row { padding: 0 11px 10px; }
    .admin-inline-manage-controls { gap: 6px; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: stretch; }
    .admin-inline-classification-form select { grid-column: span 2; height: 32px; }
    .admin-inline-save,
    .admin-inline-access,
    .admin-inline-delete { font-size: 9px; height: 32px; padding: 3px 4px; width: 100%; }
}

/* Ações administrativas não herdam o botão grande e sombreado do restante do sistema. */
.admin-user-actions { align-items: flex-start; display: flex; flex-direction: column; gap: 4px; min-height: 0; }
.admin-inline-detail,
.admin-inline-manage-toggle,
.admin-inline-detail:hover,
.admin-inline-manage-toggle:hover,
.admin-inline-detail:active,
.admin-inline-manage-toggle:active { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: #0c5794; min-height: 0 !important; padding: 2px 0 !important; transform: none !important; width: auto !important; }
.admin-inline-detail,
.admin-inline-manage-toggle { align-items: center; font-size: 10px; gap: 3px; line-height: 1.2; white-space: nowrap; }
.admin-inline-detail { font-weight: 850; }
.admin-inline-manage-toggle { font-weight: 750; }
.admin-inline-detail:hover,
.admin-inline-manage-toggle:hover { color: var(--primary-dark); text-decoration: underline; }
.admin-inline-detail:focus-visible,
.admin-inline-manage-toggle:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 52%, transparent); outline-offset: 3px; }
.admin-inline-manage-controls { border-top: 0; gap: 5px; grid-template-columns: 105px 94px 47px 61px 84px 67px; padding-top: 0; }
.admin-inline-classification-form select { height: 28px; }
.admin-inline-save,
.admin-inline-access,
.admin-inline-delete { border-radius: 4px; box-shadow: none; font-size: 9px; height: 28px; min-height: 0; padding: 3px 6px; }
.admin-action-label-short { display: none; }
.admin-inline-save:hover,
.admin-inline-save:active { background: #1768bd; box-shadow: none; transform: none; }
.admin-inline-access:hover,
.admin-inline-access:active,
.admin-inline-delete:hover,
.admin-inline-delete:active { box-shadow: none; transform: none; }
.admin-inline-save:focus-visible,
.admin-inline-access:focus-visible,
.admin-inline-delete:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 48%, transparent); outline-offset: 2px; }
@media (max-width: 640px) {
    .admin-table-heading { align-items: start; display: grid; gap: 9px; grid-template-columns: minmax(0, 1fr) auto; }
    .admin-table-heading > div:first-child { min-width: 0; }
    .admin-table-heading-actions { align-items: center; gap: 5px; min-width: 0; }
    .admin-create-user > summary { font-size: 9px; min-height: 29px; padding: 4px 6px; white-space: nowrap; }
    .admin-table-total { font-size: 9px; padding: 4px 6px; white-space: nowrap; }
    .admin-user-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 10px; }
    .admin-users-table tr:not(.admin-inline-manage-row) td:nth-child(4),
    .admin-users-table tr:not(.admin-inline-manage-row) td:nth-child(5) { grid-column: auto; }
    .admin-users-table tr:not(.admin-inline-manage-row) td:nth-child(4) { border-bottom: 1px solid var(--line); padding-bottom: 8px; }
    .admin-users-table tr:not(.admin-inline-manage-row) td:nth-child(5) { border-bottom: 1px solid var(--line); border-top: 0; padding-top: 8px; }
    .admin-user-identity { align-items: baseline; display: flex; flex-wrap: wrap; gap: 3px 6px; }
    .admin-user-identity small { display: inline; margin: 0; order: -1; }
    .admin-user-identity .tag { margin: 0; }
    .admin-account-summary { align-items: baseline; display: flex; gap: 5px; }
    .admin-account-summary span { white-space: nowrap; }
    .admin-account-status { align-items: center; gap: 3px; }
    .admin-account-status small { flex-basis: auto; }
    .admin-user-actions { align-items: center; flex-direction: row; flex-wrap: wrap; gap: 3px 9px; }
    .admin-inline-detail,
    .admin-inline-manage-toggle { font-size: 9px; padding: 1px 0 !important; }
    .admin-inline-manage-controls { gap: 5px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .admin-inline-classification-form select { font-size: 9px; height: 30px; }
    .admin-inline-save,
    .admin-inline-access,
.admin-inline-delete { font-size: 8.5px; height: 30px; overflow: hidden; padding: 3px 2px; text-overflow: ellipsis; white-space: nowrap; }
    .admin-action-label-wide { display: none; }
    .admin-action-label-short { display: inline; }
}

/* Acessos: convite seguro por criança e permissões explícitas. */
.access-invite-panel { margin-bottom: 16px; }
.sharing-invite-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sharing-invite-form > .wide-field,
.sharing-edit-form > .wide-field { grid-column: 1 / -1; }
.sharing-children-editor,
.sharing-permission-editor { border: 1px solid var(--line); border-radius: 14px; margin: 4px 0 0; min-width: 0; padding: 13px; }
.sharing-children-editor legend,
.sharing-permission-editor legend { color: var(--ink); font-size: 13px; font-weight: 850; padding: 0 4px; }
.sharing-children-editor p,
.sharing-permission-editor p,
.sharing-invite-note { color: var(--muted); font-size: 11px; line-height: 1.35; margin: 0 0 10px; }
.sharing-children-grid { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.sharing-children-grid label { align-items: start; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; display: flex; gap: 8px; min-height: 55px; padding: 9px; }
.sharing-children-grid input { accent-color: var(--primary); margin: 2px 0 0; }
.sharing-children-grid span { display: grid; gap: 2px; min-width: 0; }
.sharing-children-grid strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.sharing-children-grid small { color: var(--muted); font-size: 9px; }
.sharing-permission-presets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.sharing-permission-grid { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sharing-permission-row { align-items: center; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 104px; min-width: 0; padding: 7px 8px; }
.sharing-permission-row strong { color: var(--ink); font-size: 10px; line-height: 1.2; }
.sharing-permission-row select { font-size: 10px; min-width: 0; padding: 5px 6px; width: 100%; }
.access-invite-link-form { align-items: center; display: flex; gap: 6px; margin-top: 9px; }
.access-invite-link-form input { flex: 1 1 160px; font-size: 10px; min-width: 0; padding: 6px 8px; }
.access-invite-link-form .small-button { flex: 0 0 auto; }
.access-member-name strong,
.access-member-name small { display: block; }
.access-member-name small { color: var(--muted); font-size: 10px; font-weight: 600; margin-top: 2px; overflow-wrap: anywhere; }
.sharing-person-summary { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 3px; padding: 10px; }
.sharing-person-summary strong { color: var(--ink); font-size: 13px; }
.sharing-person-summary span,
.sharing-person-summary small { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.sharing-incoming-list { display: grid; gap: 12px; max-width: 860px; }
.sharing-incoming-card { display: grid; gap: 9px; }
.sharing-incoming-card h2 { color: var(--ink); font-size: 19px; margin: 0; }
.sharing-incoming-card p { color: var(--muted); font-size: 12px; line-height: 1.45; margin: 0; }
.sharing-incoming-card dl { display: grid; gap: 7px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.sharing-incoming-card dl div { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; padding: 8px; }
.sharing-incoming-card dt { color: var(--muted); font-size: 9px; font-weight: 850; }
.sharing-incoming-card dd { color: var(--ink); font-size: 11px; font-weight: 750; margin: 3px 0 0; }
.sharing-incoming-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; }
.dashboard-share-invite-alert { align-items: center; background: var(--surface-selected); border: 1px solid color-mix(in srgb, var(--primary) 28%, var(--line)); border-radius: 14px; display: flex; gap: 12px; justify-content: space-between; margin: 0 0 15px; padding: 11px 13px; }
.dashboard-share-invite-alert div { display: grid; gap: 3px; }
.dashboard-share-invite-alert strong { color: var(--primary-dark); font-size: 12px; }
.dashboard-share-invite-alert span { color: var(--muted); font-size: 10px; }
.dashboard-share-invite-alert .small-button { flex: 0 0 auto; }
@media (max-width: 640px) {
    .sharing-invite-form { grid-template-columns: 1fr; }
    .sharing-children-grid,
    .sharing-permission-grid { grid-template-columns: 1fr; }
    .sharing-incoming-card dl { grid-template-columns: 1fr; }
    .dashboard-share-invite-alert { align-items: start; flex-direction: column; }
    .access-invite-link-form { align-items: stretch; flex-wrap: wrap; }
    .access-invite-link-form input { flex-basis: 100%; }
    .access-invite-link-form .small-button { width: 100%; }
}

/* Acessos: formulário compacto e independente da antiga grade share-form. */
.sharing-invite-form { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); }
.sharing-contact-grid { display: grid; gap: 8px; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.sharing-contact-grid label { color: var(--muted); font-size: 10px; font-weight: 800; gap: 4px; min-width: 0; }
.sharing-contact-grid :is(input, select) { font-size: 11px; min-height: 34px; padding: 5px 8px; }
.sharing-contact-name,
.sharing-contact-email { grid-column: span 3; }
.sharing-contact-phone,
.sharing-contact-language,
.sharing-contact-expiry { grid-column: span 2; }
.sharing-edit-expiry { grid-column: 1 / -1; max-width: 230px; }

.access-overview-metrics { gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 12px; }
.access-overview-metric { align-items: center; display: flex; gap: 7px; justify-content: flex-start; min-height: 58px; padding: 9px 11px; }
.access-overview-metric strong { flex: 0 0 auto; font-size: 24px; margin: 0; }
.access-overview-metric span { font-size: 9px; line-height: 1.15; }

.sharing-children-editor,
.sharing-permission-editor { border-radius: 11px; margin: 0; padding: 9px 10px; }
.sharing-children-editor legend,
.sharing-permission-editor legend { font-size: 12px; padding: 0 3px; }
.sharing-children-editor p,
.sharing-permission-editor p { font-size: 10px; line-height: 1.25; margin: 0; }
.sharing-children-grid { gap: 6px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 7px; }
.sharing-children-grid label { align-items: center; border-radius: 8px; gap: 6px; justify-content: flex-start; min-height: 38px; padding: 5px 7px; }
.sharing-children-grid input[type="checkbox"] { appearance: auto; flex: 0 0 16px; height: 16px; margin: 0; min-height: 16px; padding: 0; width: 16px; }
.sharing-children-grid span { align-items: baseline; display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 1px 4px; min-width: 0; }
.sharing-children-grid strong { font-size: 10px; line-height: 1.15; }
.sharing-children-grid small { font-size: 8px; line-height: 1.15; white-space: nowrap; }

.sharing-permission-heading { align-items: center; display: flex; gap: 8px; justify-content: space-between; margin: 0 0 7px; }
.sharing-permission-heading > p { flex: 1 1 auto; min-width: 0; }
.sharing-permission-presets { flex: 0 0 auto; gap: 5px; margin: 0; }
.sharing-permission-presets .small-button { border-radius: 7px; font-size: 10px; min-height: 28px; padding: 0 8px; }
.sharing-permission-presets .small-button.is-active { background: var(--primary); border-color: var(--primary); color: #fff; }
.sharing-permission-feedback { color: var(--primary-dark) !important; font-size: 9px !important; font-weight: 800; margin: 0 0 6px !important; }
.sharing-permission-grid { gap: 6px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sharing-permission-row { border-radius: 8px; gap: 6px; grid-template-columns: minmax(0, 1fr) 84px; min-height: 36px; padding: 4px 6px; }
.sharing-permission-row strong { font-size: 9px; line-height: 1.15; }
.sharing-permission-row select { font-size: 9px; height: 27px; min-height: 27px; padding: 3px 5px; }

@media (min-width: 641px) and (max-width: 900px) {
    .sharing-contact-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .sharing-contact-name,
    .sharing-contact-email { grid-column: span 3; }
    .sharing-contact-phone,
    .sharing-contact-language,
    .sharing-contact-expiry { grid-column: span 2; }
    .sharing-children-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sharing-permission-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .access-invite-panel { padding: 12px; }
    .access-management-head h1 { font-size: 22px; }
    .access-management-head p { font-size: 11px; line-height: 1.3; }
    .sharing-contact-grid { gap: 7px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .sharing-contact-name,
    .sharing-contact-email { grid-column: span 3; }
    .sharing-contact-phone,
    .sharing-contact-language,
    .sharing-contact-expiry { grid-column: span 2; }
    .sharing-contact-grid label { font-size: 9px; }
    .sharing-contact-grid :is(input, select) { font-size: 10px; min-height: 32px; padding: 4px 6px; }
    .access-overview-metrics { gap: 6px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .access-overview-metric { gap: 4px; min-height: 54px; padding: 7px; }
    .access-overview-metric strong { font-size: 20px; }
    .access-overview-metric span { font-size: 8px; }
    .access-overview-metric span::before { content: attr(data-mobile-label); }
    .access-overview-metric span { font-size: 0; }
    .access-overview-metric span::before { font-size: 8px; }
    .sharing-children-editor,
    .sharing-permission-editor { padding: 8px; }
    .sharing-children-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sharing-children-grid label { min-height: 36px; padding: 5px 6px; }
    .sharing-permission-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
    .sharing-permission-presets { width: 100%; }
    .sharing-permission-presets .small-button { flex: 1 1 0; }
    .sharing-permission-grid { grid-template-columns: 1fr; }
    .sharing-permission-row { grid-template-columns: minmax(0, 1fr) 98px; min-height: 34px; }
    .sharing-permission-row select { height: 26px; min-height: 26px; }

    /* Quem tem acesso: dados curtos lado a lado, sem cartões altos. */
    .access-members-panel .access-members-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .access-members-panel .access-toolbar-search { grid-column: 1 / -1; }
    .access-members-panel .access-members-table tr { column-gap: 9px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .access-members-panel .access-members-table td:nth-child(1),
    .access-members-panel .access-members-table td:nth-child(2),
    .access-members-panel .access-members-table td:nth-child(5),
    .access-members-panel .access-members-table td:nth-child(6) { grid-column: 1 / -1; }
    .access-members-panel .access-members-table td:nth-child(3),
    .access-members-panel .access-members-table td:nth-child(4) { align-items: center; display: grid; gap: 4px; grid-template-columns: max-content minmax(0, 1fr); }
    .access-members-panel .access-members-table td:nth-child(3)::before,
    .access-members-panel .access-members-table td:nth-child(4)::before { grid-column: 1; }
    .access-members-panel .access-members-table td:nth-child(3) :is(.access-role-pill, .access-status-pill),
    .access-members-panel .access-members-table td:nth-child(4) :is(.access-role-pill, .access-status-pill) { grid-column: 2; justify-self: start; }
    .access-members-panel .access-member-manage-empty { display: none; }
}

@media (max-width: 349px) {
    .sharing-contact-grid { grid-template-columns: 1fr; }
    .sharing-contact-name,
    .sharing-contact-email,
    .sharing-contact-phone,
    .sharing-contact-language,
    .sharing-contact-expiry { grid-column: auto; }
    .access-overview-metric { align-items: flex-start; flex-direction: column; gap: 1px; }
}

/* Meu perfil: pares compactos, confirmação de senha e atalhos densos. */
.profile-data-form { column-gap: 10px; grid-template-columns: repeat(12, minmax(0, 1fr)); row-gap: 10px; }
.profile-data-form .profile-field-name { grid-column: span 8; }
.profile-data-form .profile-field-language { grid-column: span 4; }
.profile-data-form .profile-field-email { grid-column: span 7; }
.profile-data-form .profile-field-phone { grid-column: span 5; }
.profile-data-form .profile-field-country { grid-column: span 4; }
.profile-data-form .profile-field-city { grid-column: span 8; }
.profile-password-fields { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.profile-preferences-form { gap: 14px; }
.sidebar-shortcuts-settings { gap: 9px; padding-top: 12px; }
.profile-preferences-form .theme-picker { gap: 8px; }
.profile-preferences-form .theme-choice-grid { gap: 6px; }
.profile-preferences-form .theme-choice { border-radius: 11px; gap: 7px; min-height: 50px; padding: 7px; }
.profile-preferences-form .theme-swatch { flex-basis: 25px; height: 25px; width: 25px; }

@media (max-width: 640px) {
    .profile-data-form { column-gap: 8px; row-gap: 8px; }
    .profile-data-form label { font-size: 11px; gap: 4px; }
    .profile-data-form input,
    .profile-data-form select { font-size: 11px; min-height: 34px; padding: 5px 7px; }
    .profile-password-fields { gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .profile-preferences-form { gap: 12px; }
    .profile-preferences-form .theme-choice { min-height: 44px; padding: 6px; }
    .profile-preferences-form .theme-swatch { flex-basis: 23px; height: 23px; width: 23px; }
    .sidebar-shortcuts-settings { gap: 8px; padding-top: 10px; }
    .sidebar-shortcuts-list { gap: 4px; }
    .sidebar-shortcuts-list li { border-radius: 9px; min-height: 38px; padding: 4px 6px; }
    .shortcut-position { font-size: 10px; height: 22px; width: 22px; }
    .shortcut-icon { height: 15px; width: 15px; }
    .sidebar-shortcuts-list strong,
    .sidebar-shortcuts-available strong { font-size: 11px; }
    .shortcut-actions button { height: 23px; min-height: 23px; width: 23px; }
    .sidebar-shortcuts-available { gap: 5px; }
    .sidebar-shortcuts-available ul { gap: 5px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sidebar-shortcuts-available li { border-radius: 9px; gap: 5px; grid-template-columns: minmax(0, 1fr) auto; min-height: 36px; padding: 4px 6px; }
    .sidebar-shortcuts-available .shortcut-icon { display: none; }
    .sidebar-shortcuts-available strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .sidebar-shortcuts-available .shortcut-add { font-size: 9px; height: 24px; min-height: 24px; padding: 0 6px; }
}

@media (max-width: 349px) {
    .profile-data-form { grid-template-columns: 1fr; }
    .profile-data-form :is(.profile-field-name, .profile-field-language, .profile-field-email, .profile-field-phone, .profile-field-country, .profile-field-city) { grid-column: auto; }
    .sidebar-shortcuts-available ul { grid-template-columns: 1fr; }
}

/* Convites e acessos recebidos: leitura clara, com revogação por criança. */
.sharing-received-section { display: grid; gap: 11px; margin-top: 22px; max-width: 860px; }
.sharing-received-heading { align-items: start; display: flex; gap: 12px; justify-content: space-between; }
.sharing-received-heading h2 { color: var(--ink); font-size: 18px; margin: 2px 0 0; }
.sharing-received-heading p { color: var(--muted); font-size: 11px; line-height: 1.35; margin: 4px 0 0; }
.sharing-received-heading > span { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 999px; color: var(--primary-dark); font-size: 10px; font-weight: 800; padding: 5px 8px; white-space: nowrap; }
.sharing-empty-state { margin: 0; padding: 13px; }
.sharing-empty-state p { color: var(--muted); font-size: 12px; margin: 0; }
.sharing-received-list { display: grid; gap: 10px; }
.sharing-received-card { display: grid; gap: 10px; padding: 13px; }
.sharing-received-card.is-inactive { opacity: .8; }
.sharing-received-card > header { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.sharing-received-card h3 { color: var(--ink); font-size: 16px; margin: 1px 0 0; }
.sharing-received-card dl { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.sharing-received-card dl div { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 8px; padding: 7px 8px; }
.sharing-received-card dt { color: var(--muted); font-size: 9px; font-weight: 850; }
.sharing-received-card dd { color: var(--ink); font-size: 11px; font-weight: 750; margin: 3px 0 0; }
.sharing-received-permissions { color: var(--primary-dark); font-size: 10px; }
.sharing-received-permissions summary { cursor: pointer; font-weight: 800; }
.sharing-received-permissions > div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.sharing-received-permissions span { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 9px; padding: 3px 6px; }
.sharing-received-permissions strong { color: var(--ink); }
.sharing-received-children { display: grid; gap: 6px; }
.sharing-received-child { align-items: center; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 9px; display: flex; gap: 9px; justify-content: space-between; padding: 7px 8px; }
.sharing-received-child > div { display: grid; gap: 2px; min-width: 0; }
.sharing-received-child strong { color: var(--ink); font-size: 11px; }
.sharing-received-child small { color: var(--muted); font-size: 9px; }
.sharing-received-child.is-revoked { background: color-mix(in srgb, var(--surface-subtle) 75%, #f2f2f2); }
.sharing-received-child.is-revoked strong { text-decoration: line-through; }
.sharing-received-child .small-button { font-size: 10px; min-height: 28px; padding: 4px 7px; white-space: nowrap; }
.sharing-revoked-accesses { background: var(--surface-subtle); border: 1px dashed var(--line); border-radius: 10px; display: grid; gap: 7px; padding: 9px; }
.sharing-revoked-accesses > div strong { color: var(--ink); font-size: 11px; }
.sharing-revoked-accesses p { color: var(--muted); font-size: 9px; margin: 2px 0 0; }
.sharing-revoked-accesses form { align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; display: flex; gap: 8px; justify-content: space-between; padding: 6px 7px; }
.sharing-revoked-accesses form span { display: grid; gap: 1px; }
.sharing-revoked-accesses form strong { color: var(--ink); font-size: 10px; }
.sharing-revoked-accesses form small { color: var(--muted); font-size: 8px; }

@media (max-width: 640px) {
    .sharing-received-section { margin-top: 17px; }
    .sharing-received-heading { align-items: start; gap: 7px; }
    .sharing-received-heading h2 { font-size: 16px; }
    .sharing-received-card { padding: 10px; }
    .sharing-received-card > header { align-items: start; }
    .sharing-received-card dl { gap: 5px; }
    .sharing-received-child { align-items: start; flex-direction: column; gap: 6px; }
    .sharing-received-child form,
    .sharing-received-child .small-button { width: 100%; }
    .sharing-revoked-accesses form { align-items: stretch; flex-direction: column; }
    .sharing-revoked-accesses form .small-button { width: 100%; }
}

/* Tabelas: leitura densa, sem rolagem horizontal artificial no desktop. */
.responsive-table table :is(.category-pill, .status-pill, .category-chip, .mood-chip, .confidence-chip, .vaccine-status, .template-status, .access-role-pill, .access-status-pill, .admin-status-pill, .admin-billing-pill, .tag) {
    border-radius: 2px;
    box-shadow: none;
    font-size: 9px;
    line-height: 1.2;
    min-height: 0;
    padding: 2px 5px;
}

@media (min-width: 641px) {
    .responsive-table { overflow-x: visible; }
    .responsive-table > table {
        min-width: 0;
        table-layout: fixed;
        width: 100%;
    }
    .responsive-table > table :is(th, td) {
        overflow-wrap: anywhere;
        padding: 9px 7px;
    }

    .access-members-table {
        min-width: 0;
        table-layout: fixed;
        width: 100%;
    }
    .access-person-col { width: 24%; }
    .access-children-col { width: 14%; }
    .access-permissions-col { width: 13%; }
    .access-status-col { width: 10%; }
    .access-expiry-col { width: 8%; }
    .access-actions-col { width: 31%; }
    .access-members-table :is(th, td) { padding: 8px 6px; }
    .access-member-expiry { line-height: 1.25; max-width: 6ch; }
    .access-member-actions,
    .access-member-actions form { gap: 4px; min-width: 0; }
    .access-member-actions .small-button { font-size: 9px; min-height: 26px; padding: 3px 5px; }
    .access-member-actions .standard-action-button { min-height: 26px; padding: 3px 5px; }

    .growth-records-table > table,
    .admin-billing-table { min-width: 0; }
}

@media (min-width: 641px) and (max-width: 980px) {
    .responsive-table > table :is(th, td) { padding-left: 5px; padding-right: 5px; }
    .access-person-col { width: 23%; }
    .access-children-col { width: 13%; }
    .access-permissions-col { width: 13%; }
    .access-status-col { width: 10%; }
    .access-expiry-col { width: 8%; }
    .access-actions-col { width: 33%; }
}

/* Painéis do Dashboard obedecem à matriz de permissões do acesso compartilhado. */
.dashboard-grid.single-card-row { grid-template-columns: minmax(0, 1fr); }
.dashboard-metrics[data-dashboard-metric-count="1"] { grid-template-columns: minmax(0, 1fr); }
.dashboard-metrics[data-dashboard-metric-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-metrics[data-dashboard-metric-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Marcadores informativos: o mesmo acabamento plano usado em Situação no Admin Global. */
:is(
    .tag,
    .template-status,
    .vaccine-status,
    .category-chip,
    .mood-chip,
    .category-pill,
    .status-pill,
    .confidence-chip,
    .mobile-age-pill,
    .growth-age-pill,
    .child-access-source,
    .child-record-tags span,
    .booklet-subsection-heading > span,
    .booklet-screening-card span,
    .booklet-tag-row span,
    .booklet-routine-sheet-head > span,
    .booklet-visit-checks span,
    .billing-plan-badge,
    .admin-history-total,
    .admin-table-total,
    .admin-invite-meta span,
    .admin-detail-timeline em,
    .access-panel-total,
    .access-invite-meta span,
    .access-role-pill,
    .access-status-pill,
    .dashboard-milestone-title em,
    .sidebar-shortcuts-count,
    .sharing-received-heading > span,
    .sharing-received-permissions span
) {
    border-radius: 2px !important;
    box-shadow: none !important;
    font-size: 9px;
    font-style: normal;
    font-weight: 850;
    line-height: 1.2;
    min-height: 0;
    padding: 2px 5px;
}

.dashboard-diary-tags :is(.category-chip, .mood-chip),
.dashboard-milestone-tags :is(.category-pill, .status-pill) {
    min-height: 0;
    padding: 2px 5px;
}

.growth-age-pill {
    flex-direction: row;
    gap: 3px;
    justify-content: flex-start;
    min-width: 0;
}
.growth-age-pill small { margin: 0; }

/* Cadastro TOTP: o QR é produzido localmente a partir da chave da sessão. */
.totp-enrollment-card { max-width: 460px; }
.totp-qr-setup { align-items: center; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 128px minmax(0, 1fr); margin: 12px 0; padding: 12px; }
.totp-qr-code { background: #fff; border-radius: 8px; line-height: 0; overflow: hidden; padding: 5px; width: 118px; }
.totp-qr-code svg { display: block; height: auto; width: 100%; }
.totp-qr-setup strong { color: var(--ink); display: block; font-size: 13px; }
.totp-qr-setup small { color: var(--muted); display: block; font-size: 11px; line-height: 1.35; margin-top: 4px; }
@media (max-width: 420px) {
    .totp-qr-setup { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .totp-qr-setup > div:last-child { max-width: 230px; }
}

/* Painel administrativo: diagnóstico sem vazar segredos da infraestrutura. */
.admin-integration-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-integration-grid > article { background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 13px; padding: 16px; }
.admin-integration-grid h3 { color: var(--ink); font-size: 17px; margin: 3px 0 0; }
.admin-integration-grid p { font-size: 12px; margin-top: 4px; }
.admin-integration-grid dl { display: grid; gap: 0; margin: 0; }
.admin-integration-grid dl > div { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 10px; justify-content: space-between; padding: 8px 0; }
.admin-integration-grid dt { color: var(--muted); font-size: 11px; font-weight: 750; }
.admin-integration-grid dd { color: var(--bad); font-size: 12px; font-weight: 850; margin: 0; }
.admin-integration-grid dd.is-ok { color: var(--good); }
.admin-integration-grid small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.admin-integration-guide { align-items: start; background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 12px; grid-template-columns: minmax(190px, .85fr) minmax(0, 1.7fr); margin-top: 14px; padding: 15px 16px; }
.admin-integration-guide h3 { color: var(--ink); font-size: 15px; margin: 3px 0 0; }
.admin-integration-guide p { color: var(--muted); font-size: 11px; line-height: 1.45; margin-top: 5px; }
.admin-integration-guide ol { display: grid; gap: 7px; margin: 0; padding-left: 18px; }
.admin-integration-guide li { color: var(--muted); font-size: 11px; line-height: 1.45; padding-left: 2px; }
.admin-integration-guide strong { color: var(--ink); }
.admin-integration-guide code { background: var(--panel); border: 1px solid var(--line); border-radius: 3px; color: var(--primary-dark); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; padding: 1px 3px; }
@media (max-width: 680px) {
    .admin-integration-grid { grid-template-columns: 1fr; }
    .admin-integration-guide { grid-template-columns: 1fr; }
}

/* Convites e famílias: a mesma leitura densa da gestão de usuários. */
.admin-summary-toolbar { display: grid; gap: 8px; grid-template-columns: minmax(220px, 360px); margin: 14px 0 10px; }
.admin-summary-toolbar label { display: grid; gap: 4px; min-width: 0; }
.admin-summary-toolbar label > span { color: var(--muted); font-size: 9px; font-weight: 850; }
.admin-summary-toolbar input { font-size: 10px; min-width: 0; width: 100%; }
.admin-summary-responsive-table { overflow: visible; }
.admin-summary-table { min-width: 0; table-layout: fixed; width: 100%; }
.admin-summary-table :is(th, td) { overflow-wrap: anywhere; padding: 9px 7px; }
.admin-summary-table th { font-size: 9px; }
.admin-summary-person { display: grid; gap: 2px; min-width: 0; }
.admin-summary-person strong,
.admin-summary-family-name { color: var(--ink); font-size: 11px; }
.admin-summary-person small,
.admin-summary-muted { color: var(--muted); font-size: 10px; line-height: 1.3; }
.admin-summary-state { background: var(--surface-selected); color: var(--primary-dark); display: inline-block; font-size: 9px; font-weight: 850; line-height: 1.2; padding: 2px 5px; }
.admin-invites-table .admin-summary-person-col { width: 27%; }
.admin-invites-table .admin-summary-family-col { width: 22%; }
.admin-invites-table .admin-summary-role-col { width: 16%; }
.admin-invites-table .admin-summary-date-col { width: 15%; }
.admin-invites-table .admin-summary-sender-col { width: 20%; }
.admin-families-table .admin-summary-family-col { width: 22%; }
.admin-families-table .admin-summary-owner-col { width: 30%; }
.admin-families-table .admin-summary-number-col { width: 12%; }
.admin-families-table .admin-summary-storage-col { width: 12%; }
.admin-summary-table time { color: var(--ink); font-size: 10px; font-weight: 750; white-space: nowrap; }
.admin-summary-table tr[hidden] { display: none !important; }
@media (min-width: 641px) and (max-width: 980px) {
    .admin-summary-table :is(th, td) { padding-left: 5px; padding-right: 5px; }
    .admin-invites-table .admin-summary-person-col { width: 25%; }
    .admin-invites-table .admin-summary-family-col { width: 20%; }
    .admin-invites-table .admin-summary-role-col { width: 17%; }
    .admin-invites-table .admin-summary-date-col { width: 17%; }
    .admin-invites-table .admin-summary-sender-col { width: 21%; }
}
@media (max-width: 640px) {
    .admin-summary-toolbar { grid-template-columns: 1fr; margin: 12px 0 9px; }
    .admin-summary-responsive-table { overflow: visible; }
    .admin-summary-table,
    .admin-summary-table tbody { display: grid !important; gap: 9px; min-width: 0; width: 100%; }
    .admin-summary-table thead { display: none; }
    .admin-summary-table tr { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; display: grid !important; gap: 0 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 7px 10px; }
    .admin-summary-table td { border: 0; border-bottom: 1px solid var(--line); display: block !important; min-width: 0; padding: 7px 0; }
    .admin-summary-table td::before { color: var(--muted); content: attr(data-label); display: block; font-size: 9px; font-weight: 850; margin-bottom: 3px; text-transform: uppercase; }
    .admin-summary-table td:first-child { grid-column: 1 / -1; }
    .admin-invites-table td:last-child,
    .admin-families-table td:nth-child(2) { grid-column: 1 / -1; }
    .admin-summary-table td:first-child::before { display: none; }
    .admin-summary-table tr.admin-summary-empty-row { display: block !important; text-align: center; }
    .admin-summary-table .admin-empty-cell { border: 0; padding: 4px 0; }
    .admin-summary-person { align-items: baseline; display: flex; flex-wrap: wrap; gap: 2px 6px; }
    .admin-summary-person small { display: inline; }
    .admin-summary-table time { white-space: normal; }
}
