/* Somente elementos novos de autenticação; CSS aprovado permanece intacto. */
.auth-panel { max-width: 540px; margin: 32px auto; }
.auth-panel .form { grid-template-columns: 1fr; }
.account-bar { max-width: 1320px; margin: 12px auto 0; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.account-bar[hidden] { display: none; }
.account-bar .actions { margin: 0; }
#auth-message { min-height: 1.5em; }

.operation-feedback { position: fixed; z-index: 1000; bottom: 24px; right: 20px; max-width: min(520px, calc(100vw - 40px)); padding: 16px 18px; border: 1px solid #d4af37; border-radius: 14px; background: #f7faf7; color: #123d30; box-shadow: 0 6px 24px #123d3026; display: flex; align-items: center; gap: 12px; }
.operation-feedback[data-error="true"] { border-color: #a34432; }
#contract-details { scroll-margin-top: 24px; }
#contract-details:focus-visible { outline: 2px solid #d4af37; outline-offset: 3px; }

/* Ajustes de homologação, sem alterar a referência visual aprovada. */
#app > .auth-panel { grid-column: 1 / -1; width: min(100%, 540px); min-width: 0; margin: 32px auto; }
#app > .auth-panel h1 { font-size: 26px; line-height: 1.3; }
.auth-panel .actions { gap: 10px; }
.operation-feedback { position: static; max-width: none; width: 100%; margin: 0 0 16px; box-shadow: none; }
.operation-feedback span { flex: 1; }
.copy-fallback textarea { width: 100%; min-height: 160px; font: inherit; padding: 12px; }
@media (max-width:800px) {
  .appnav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; gap:6px; }
  .appnav button { width:100%; min-width:0; justify-content:center; white-space:normal; text-align:center; padding:10px 5px; }
  .appnav button.active { box-shadow:inset 0 -3px 0 #c9a227; }
  .appnav .nav-icon { display:none; }
}
@media (max-width:600px) {
  #app > .auth-panel { margin:16px auto; padding:24px 20px; }
  .scrolltable { overflow:visible; border:0; }
  table.mobile-table { min-width:0; width:100%; display:block; }
  .mobile-table thead { display:none; }
  .mobile-table tbody { display:grid; gap:12px; }
  .mobile-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:12px; border:1px solid var(--line); border-radius:10px; gap:10px; }
  .mobile-table td { display:block; border:0; padding:0; min-width:0; overflow-wrap:anywhere; }
  .mobile-table td::before { content:attr(data-label); display:block; color:var(--muted); font-size:10px; font-weight:650; margin-bottom:3px; }
  .mobile-table td[colspan] { grid-column:1 / -1; }
  .mobile-table td.empty::before { display:none; }
  .operation-feedback { align-items:flex-start; padding:12px; }
}

/* Ficha do cliente: mesma identidade visual e leitura móvel. */
a.client-link, a.back-link { color:#0e3b2e; text-underline-offset:3px; }
a.client-link { font-weight:650; }
a.client-link:hover, a.back-link:hover { color:#896b10; }
a:focus-visible, #client-profile-title:focus-visible { outline:2px solid #c9a227; outline-offset:3px; }
.client-profile-heading .back-link { display:inline-block; margin-bottom:12px; }
.client-data { margin-bottom:24px; }
.client-data dl, .client-loan-data { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; }
.client-data dl > div, .client-loan-data > div { min-width:0; }
.client-data dt, .client-loan-data dt { color:var(--muted); font-size:12px; margin-bottom:5px; }
.client-data dd, .client-loan-data dd { margin:0; overflow-wrap:anywhere; }
.client-loan-data { grid-template-columns:repeat(4,minmax(0,1fr)); }
.client-section-title { margin:24px 0 10px; }
.client-loan h3 { margin:0; font-size:17px; }
.client-loan .top { margin-bottom:20px; }
.client-parcels { margin-top:20px; }
.client-parcels summary { cursor:pointer; font-weight:650; padding:8px 0; }
.client-parcels .scrolltable { margin-top:12px; }
a.button-link { display:inline-block; padding:11px 15px; border-radius:10px; background:#edf2ed; color:#315141; }
@media(max-width:1000px) { .client-loan-data { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
  .client-data dl { grid-template-columns:1fr; }
  .client-profile-heading > button { width:100%; }
  .client-loan .top > button { width:100%; }
}
.client-profile-heading > div { min-width:0; flex:1 1 240px; }
.client-profile-heading h1 { overflow-wrap:anywhere; }

/* Convites do portal: estilos restritos à ficha do gestor. */
.portal-manager{margin-top:20px}.portal-manager input{max-width:100%}.portal-manager [role=status]{overflow-wrap:anywhere}.portal-manager textarea{display:block;width:100%;font-size:16px;min-height:100px;margin:10px 0}.portal-manager label{display:block}.portal-manager .actions{flex-wrap:wrap}

#support-wallets{max-width:100%;margin:0}#support-wallets select{min-width:200px;max-width:100%;margin-top:6px}.account-bar:has(#support-wallets){flex-wrap:wrap}
