/* Associação: estilos limitados ao módulo; componentes gerais vêm de app.css. */
/* A navegação ganhou um item: mantenha os acessos visíveis em janelas baixas. */
.sidebar { overflow-y: auto; }
.associations-module { --association-bronze: #76592c; display: grid; gap: 22px; }
.association-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 5px; background: var(--paper); border: 1px solid var(--line); border-radius: 11px; }
.association-tabs a { padding: 11px 15px; border-radius: 7px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.association-tabs a:hover { color: var(--ink); background: var(--surface-soft); }
.association-tabs a.is-current { color: var(--paper); background: var(--brand); font-weight: 600; }
.association-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.association-metric { padding: 21px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); }
.association-metric > span { display: block; font-size: 12px; color: var(--muted); }
.association-metric strong { display: block; font-size: 31px; font-weight: 600; letter-spacing: -.8px; margin: 9px 0 4px; }
.association-metric small { color: var(--muted); font-size: 11px; }
.association-stages { display: grid; grid-template-columns: repeat(auto-fit,minmax(115px,1fr)); gap: 10px; }
.association-stage { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; padding: 17px 14px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); min-height: 99px; }
.association-stage strong { font-size: 25px; line-height: 1.1; font-weight: 600; }
.association-stage span { color: var(--muted); font-size: 11px; }
.association-stage:hover,.association-stage.is-selected { border-color: var(--accent); background: var(--surface-soft); }
.association-stage.is-selected strong { color: var(--association-bronze); }
.association-stages-in-panel { padding: 0 24px 24px; }
.association-filters { display: flex; flex-wrap: wrap; gap: 11px; align-items: flex-end; padding: 22px; }
.association-filters .search-field { min-width: 210px; flex: 1 1 240px; }
.association-filters > div:not(.search-field) { flex: 1 1 130px; }
.association-filters label { display: block; font-size: 10px; font-weight: 600; color: var(--muted); margin-bottom: 6px; }
.association-filters input,.association-filters select { font-size: 12px; }
.association-filters .button { min-height: 43px; }
.association-table th { font-size: 10px; }
.association-table td,.association-table .table-main-link { font-size: 12px; }
.association-table .table-subline { font-size: 10px; }
.association-kind { display: block; font-size: 11px; margin-bottom: 6px; }
.association-professional { display: block; font-size: 12px; font-weight: 650; line-height: 1.5; color: var(--ink); }
.association-commercial { font-size: 11px; color: var(--muted); }
.badge.association-founder-badge { color: var(--accent-strong,#76592c); background: var(--surface-soft,#f5f2ed); border: 1px solid var(--accent-line,#d7c8b0); font-size: 10px; font-weight: 650; }
.association-profile-professional { margin-top: 6px; font-size: 14px; }
.association-profile-person .association-creci { font-size: 11px; font-weight: 400; }
.association-agreement-notes { overflow-wrap: anywhere; line-height: 1.8; font-weight: 400 !important; }
.association-registration-context { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; padding: 23px 24px; }
.association-registration-context > div { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.association-context-label { font-size: 10px; color: var(--muted); }
.association-registration-context strong { font-size: 13px; font-weight: 600; }
.association-registration-context small { color: var(--muted); font-size: 10px; }
.association-footnote { font-size: 11px; line-height: 1.8; color: var(--muted); }
.association-two-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.association-destination { display: block; padding: 25px; }
.association-destination h2 { margin: 17px 0 8px; }
.association-destination p { font-size: 12px; color: var(--muted); line-height: 1.8; margin-bottom: 21px; }
.association-destination:hover { border-color: var(--accent); }
.associations-module .badge { font-size: 10px; }
.associations-module .form-field > label { font-size: 12px; }
.associations-module input:not([type="checkbox"]):not([type="radio"]),.associations-module select,.associations-module textarea { font-size: 13px; }
.associations-module .help-text { font-size: 11px; }
.associations-module .activity-list strong { font-size: 12px; }
.associations-module .activity-list p { font-size: 11px; }
.association-profile { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 24px; }
.association-profile-person { display: flex; align-items: center; gap: 16px; min-width: 0; }
.association-profile-person > .avatar { width: 50px; height: 50px; font-size: 16px; }
.association-profile-person h2 { font-size: 23px; overflow-wrap: anywhere; }
.association-profile-person p:not(.eyebrow) { font-size: 12px; color: var(--muted); margin-top: 6px; overflow-wrap: anywhere; }
.association-profile-labels { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.association-profile-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 22px; align-items: start; }
.association-side { display: grid; gap: 17px; }
.association-side h2 { font-size: 16px; }
.association-info { margin: 0; padding: 0 24px 24px; }
.association-info > div { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.association-info > div:last-child { border-bottom: 0; }
.association-info dt { font-size: 11px; color: var(--muted); }
.association-info dd { font-size: 12px; font-weight: 550; margin: 5px 0 0; }
.association-access { display: grid; justify-items: start; gap: 18px; padding: 0 24px 24px; }
.association-section-links { display: flex; gap: 9px 22px; flex-wrap: wrap; }
.association-section-links a { font-size: 12px; color: var(--association-bronze); text-decoration: underline; text-underline-offset: 4px; }
.association-anchor { scroll-margin-top: 20px; }
.association-document-list { display: grid; gap: 16px; padding: 0 24px 24px; }
.association-document { border: 1px solid var(--line); border-radius: 10px; padding: 19px; }
.association-document-heading { display: flex; align-items: flex-start; gap: 12px; }
.association-document-heading > div { flex: 1; min-width: 0; }
.association-document-heading .empty-icon { width: 38px; height: 42px; border-radius: 9px; flex-shrink: 0; }
.association-document-heading .empty-icon .icon { width: 18px; height: 18px; }
.association-document-heading h3 { font-size: 14px; }
.association-document-heading p { font-size: 12px; color: var(--muted); margin: 4px 0; overflow-wrap: anywhere; }
.association-document-heading small { font-size: 10px; color: var(--muted); }
.association-document-download { margin: 17px 0; }
.association-review-form { display: grid; grid-template-columns: minmax(150px,.65fr) minmax(0,1fr); gap: 17px; align-items: start; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.association-review-form .button { justify-self: start; grid-column: 1 / -1; }
.association-upload { background: var(--canvas); border-top: 1px solid var(--line); padding: 24px; }
.association-upload > h3 { font-size: 16px; }
.association-upload > p { font-size: 12px; margin-top: 6px; }
.association-upload .stacked-form { padding: 22px 0 0; }
.association-reference-list { list-style: none; padding: 0 24px 24px; margin: 0; display: grid; gap: 10px; }
.association-reference-list li { border: 1px solid var(--line); border-radius: 8px; padding: 13px 16px; font-size: 12px; }
.association-reference-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--association-bronze); }
.association-reference-list .icon { height: 15px; width: 15px; }
.association-plan-heading { display: flex; justify-content: space-between; gap: 15px; align-items: center; }
.association-plan-heading > p { color: var(--muted); font-size: 12px; }
.association-plan-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 17px; align-items: stretch; }
.association-plan-card { border-top: 3px solid var(--accent); }
.association-plan-title { padding: 25px 24px 21px; background: var(--surface-soft); }
.association-plan-title .eyebrow { color: var(--association-bronze); }
.association-plan-title h2 { font-size: 22px; }
.association-plan-title > strong { display: block; font-size: 41px; line-height: 1.2; font-weight: 600; letter-spacing: -1.5px; margin-top: 20px; }
.association-plan-title > p:last-child { font-size: 11px; color: var(--muted); margin-top: 4px; }
.association-plan-fee { display: flex; align-items: baseline; gap: 7px; padding: 21px 24px; border-bottom: 1px solid var(--line); }
.association-plan-fee strong { font-size: 21px; font-weight: 600; letter-spacing: -.5px; }
.association-plan-fee span { color: var(--muted); font-size: 11px; }
.association-plan-content { padding: 23px 24px; }
.association-plan-content h3 { font-size: 12px; }
.association-plan-content ul { margin: 12px 0 24px; padding-left: 17px; font-size: 12px; line-height: 1.8; color: var(--muted); }
.association-plan-content ul:last-child { margin-bottom: 0; }
.association-plan-content li + li { margin-top: 6px; }
.association-simulation-results { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 17px; }
.association-result h2 { font-size: 19px; }
.association-result-values { margin: 0; padding: 0 23px 23px; }
.association-result-values > div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.association-result-values dt { font-size: 11px; color: var(--muted); }
.association-result-values dd { font-size: 12px; font-weight: 550; margin: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.association-result-values .association-result-total { margin-top: 15px; border: 0; display: block; padding: 18px; border-radius: 9px; background: var(--brand); color: var(--paper); }
.association-result-total dt { color: var(--on-brand-muted); }
.association-result-total dd { color: var(--paper); font-size: 26px; letter-spacing: -.7px; margin-top: 6px; }
.association-result-values .association-result-monthly { border-bottom: 0; padding-bottom: 0; }
@media(max-width:760px) { .association-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .association-two-columns { grid-template-columns: 1fr; } .association-tabs a { padding: 10px 12px; font-size: 11px; } }
@media(max-width:1000px) { .association-profile-grid { grid-template-columns: 1fr; } .association-side { grid-template-columns: repeat(2,minmax(0,1fr)); } .association-profile { align-items: flex-start; flex-direction: column; } .association-profile-labels { justify-content: flex-start; } }
@media(max-width:640px) { .association-side { grid-template-columns: 1fr; } .association-review-form { grid-template-columns: 1fr; } .association-review-form .button { grid-column: auto; } .association-document-heading { flex-wrap: wrap; } .association-document-heading > .badge { margin-left: 50px; } .association-plan-heading { align-items: flex-start; flex-direction: column; } .association-plan-grid,.association-simulation-results { grid-template-columns: 1fr; } }
@media(max-width:640px) { .association-registration-context { grid-template-columns: 1fr; padding: 20px 17px; gap: 18px; } }
@media(max-width:480px) { .associations-module { gap: 17px; } .association-metric { padding: 16px; } .association-metric strong { font-size: 27px; } .association-stages { grid-template-columns: repeat(2,minmax(0,1fr)); } .association-filters { padding: 17px; } .association-filters .search-field { min-width: 0; flex-basis: 100%; } .association-stages-in-panel { padding: 0 17px 17px; } }
@media(max-width:480px) { .association-profile { padding: 20px 17px; } .association-profile-person { gap: 12px; } .association-profile-person h2 { font-size: 20px; } .association-profile-person > .avatar { width: 42px; height: 42px; } .association-document-list { padding: 0 17px 20px; } .association-document { padding: 15px; } .association-upload { padding: 21px 17px; } .association-info,.association-access { padding-left: 20px; padding-right: 20px; } .association-reference-list { padding-left: 17px; padding-right: 17px; } }

/* Integração: os mesmos controles do cadastro, com origem e situação explícitas. */
.integration-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.integration-context { margin: 0; padding: 0 24px 20px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.integration-context a { color: var(--association-bronze); text-decoration: underline; text-underline-offset: 3px; }
.integration-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px 18px; }
.integration-field-wide { grid-column: 1 / -1; }
.integration-table { width: 100%; min-width: 875px; table-layout: fixed; }
.integration-table th,.integration-table td { padding: 13px 8px; }
.integration-table thead th { white-space: normal; font-size: 10px; line-height: 1.5; }
.integration-table th:first-child { width: 160px; }
.integration-table th:nth-child(5) { width: 90px; }
.integration-table th:last-child { width: 67px; }
.integration-table tbody th { background: var(--paper); font-size: 12px; text-align: left; font-weight: 500; }
.integration-table tbody th .table-main-link { display: block; }
.integration-table .table-main-link { overflow-wrap: anywhere; }
.integration-table .quiet-link { font-size: 10px; }
.integration-state { display: inline-block; padding: 5px; border-radius: 6px; font-size: 10px; font-weight: 600; white-space: nowrap; }
.integration-state.is-complete { color: #345b42; background: #edf4ee; }
.integration-state.is-pending { color: #775221; background: #faf2e5; }
.integration-state.is-unknown { color: #606467; background: #f1f2f3; }
.integration-referral { max-width: 160px; overflow-wrap: anywhere; }
.integration-pagination { display: flex; justify-content: center; align-items: center; gap: 24px; padding: 21px; font-size: 12px; }
@media(max-width:1100px) { .integration-fields { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .integration-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .integration-fields { grid-template-columns: 1fr; } .integration-field-wide { grid-column: auto; } .integration-context { padding-left: 17px; padding-right: 17px; } .integration-table th:first-child { width: 140px; position: sticky; left: 0; z-index: 1; background: var(--paper); } }

/* Team counts and a unified association workspace. */
.team-selection-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 18px 0; }
.association-filters .search-field input { padding-left: 39px; }
.associations-module, .associations-module > * { min-width: 0; }
.selection-caption { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--muted); padding: 0 22px 14px; font-size: 12px; }
.selection-caption strong { color: var(--ink); }
.association-scopes { display: flex; flex-wrap: wrap; gap: 8px; }
.association-scopes .subtle-chip { padding: 10px 13px; }
.association-scopes .is-selected { color: var(--paper); background: var(--brand); }
.association-overview { padding: 19px 22px; }
.association-overview > summary { cursor: pointer; color: var(--ink); }
.association-overview > summary span { color: var(--muted); font-size: 12px; margin-left: 12px; }
.association-overview .association-metrics { margin-top: 20px; }
.association-overview .association-stages { margin: 18px 0; }
@media(max-width:640px) {
  body:has(.associations-module) { overflow-x: clip; }
  .team-selection-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .selection-caption { padding: 0 16px 12px; }
  .association-tabs { flex-direction: column; overflow: visible; }
  .association-tabs a { white-space: normal; }
}

.invitation-history { display: grid; gap: 16px; padding: 0 24px 24px; }
.invitation-history p { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 12px; }
.invitation-history form { margin-top: 6px; }
.plan-edit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 24px; }
.plan-edit-grid .form-grid { grid-template-columns: 1fr; }
@media(max-width:1100px) { .plan-edit-grid { grid-template-columns: 1fr; } }
