.field input[readonly] {
  background: #f1f4f3;
  color: #526168;
  cursor: not-allowed;
}
.field input:disabled { background:#f1f4f3; color:#8b989c; cursor:not-allowed; }

.section-heading {
  font-size: 17px;
  color: var(--ink);
  margin: 8px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

input[name="legalName"], input[name="tradeName"], input[name="stateRegistration"], input[name="municipalRegistration"],
input[name="postalCode"], input[name="street"], input[name="streetNumber"], input[name="complement"],
input[name="district"], input[name="city"], input[name="state"], input[name="country"] { text-transform: uppercase; }

.status-chip { display:inline-flex; align-items:center; border-radius:999px; padding:5px 10px; margin-top:8px; font-size:13px; font-weight:700; }
.status-chip.active { color:#1e6a45; background:#e1f3e9; }
.status-chip.inactive { color:#a73528; background:#fae4e1; }
.contact-hint { margin-top:-8px; color:var(--muted); font-size:13px; }
.contact-hint.error { color:#b13b2d; font-weight:650; }
input.invalid { border-color:#d96758; box-shadow:0 0 0 3px rgba(217,103,88,.12); }
input.invalid:focus { outline-color:#d96758; }
.field .field-error { display:block; margin-top:6px; color:#b13b2d; font-size:12px; font-weight:650; }
.field .field-error[hidden] { display:none !important; }
.modal-backdrop { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px; background:rgba(16,35,60,.46); backdrop-filter:blur(3px); }
.modal-backdrop[hidden] { display:none; }
.modal { width:min(460px,100%); padding:30px; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(10,25,44,.28); }
.modal h2 { margin:0 0 10px; color:var(--ink); font-size:22px; }
.modal p { margin:0; color:var(--muted); line-height:1.55; }
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:25px; }
.btn-danger { background:#fff; color:#a73528; border:1px solid #dca69e; }
.btn-danger:hover { background:#fff4f2; }
.person-selector { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 24px; }
.person-option { appearance:none; text-align:left; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); padding:14px 16px; cursor:pointer; font:inherit; }
.person-option strong,.person-option small { display:block; }
.person-option strong { font-size:15px; }
.person-option small { color:var(--muted); margin-top:3px; font-size:12px; }
.person-option.selected { border-color:var(--blue); background:var(--blue-soft); box-shadow:0 0 0 1px var(--blue); }
.icon-button { min-width:48px; padding:8px 12px; font-size:26px; line-height:1; }
.variant-content { min-height:850px; }
.pix-key { display:flex; }
.pix-key span { display:grid; place-items:center; min-width:52px; padding:0 10px; border:1px solid var(--line); border-right:0; border-radius:7px 0 0 7px; background:#f4f6f5; color:var(--muted); font-weight:700; }
.pix-key input { border-radius:0 7px 7px 0 !important; }
.data-tabs { display:flex; gap:2px; margin:24px 0 22px; border-bottom:1px solid var(--line); }
.data-tabs button { appearance:none; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); padding:10px 14px; cursor:pointer; font:inherit; font-size:14px; font-weight:700; }
.data-tabs button.active { color:var(--ink); border-bottom-color:var(--blue); }
.data-tabs span { display:inline-grid; place-items:center; min-width:20px; height:20px; margin-left:5px; border-radius:999px; background:#e7f0f8; color:var(--blue); font-size:11px; }
.partners-heading h2 { margin:0; color:var(--ink); font-size:21px; }
.partners-heading p { margin:5px 0 18px; color:var(--muted); font-size:13px; }
.partner-list { display:grid; gap:12px; }
.partner-card { border:1px solid var(--line); border-radius:9px; padding:16px; background:#fbfcfc; }
.partner-card h3 { margin:0 0 12px; color:var(--ink); font-size:16px; }
.partner-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.partner-card dt { color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.partner-card dd { margin:4px 0 0; color:var(--text); font-size:13px; }
.partners-empty { padding:18px; border:1px solid var(--line); border-radius:8px; color:var(--muted); }

.toast { position:fixed; z-index:100; top:50%; left:50%; width:min(560px,calc(100vw - 32px)); display:flex; align-items:flex-start; gap:14px; padding:16px 18px; border-radius:10px; background:#fff3f0; color:#a73528; border:1px solid #f2c5be; box-shadow:0 18px 45px rgba(14,32,56,.22); font-size:15px; font-weight:650; line-height:1.4; transform:translate(-50%,-50%) scale(.96); opacity:0; visibility:hidden; transition:opacity .2s ease,transform .2s ease,visibility .2s; }
.toast.show { transform:translate(-50%,-50%) scale(1); opacity:1; visibility:visible; }
.toast button { appearance:none; border:0; background:transparent; color:inherit; font:inherit; font-size:23px; line-height:18px; cursor:pointer; padding:0; }
.document-check { display:flex; gap:10px; align-items:flex-start; margin-top:14px; padding:12px 13px; border-radius:8px; font-size:13px; border:1px solid var(--line); }
.document-check strong,.document-check small { display:block; }
.document-check small { margin-top:3px; line-height:1.4; }
.document-check.loading { background:#f4f8fb; color:var(--blue); border-color:#cdddeb; }
.document-check.success { background:#eaf6ee; color:#246442; border-color:#bfdfca; }
.document-check.warning { background:#fff5e5; color:#89520f; border-color:#efd29c; }
.document-check.error { background:#fff0ed; color:#a73528; border-color:#efbbb2; }
.spinner { width:17px; height:17px; margin-top:1px; flex:0 0 auto; border:2px solid #bdd5e9; border-top-color:var(--blue); border-radius:50%; animation:document-spin .8s linear infinite; }
@keyframes document-spin { to { transform:rotate(360deg); } }
.validation-modal { max-width:520px; }
.validation-items { display:grid; gap:10px; margin-top:22px; }
.validation-item { display:flex; gap:11px; padding:12px; border:1px solid var(--line); border-radius:8px; color:var(--muted); }
.validation-item > span { display:grid; place-items:center; width:21px; height:21px; font-weight:850; font-size:17px; }
.validation-item strong,.validation-item small { display:block; }
.validation-item small { margin-top:3px; line-height:1.4; }
.validation-item.loading { background:#f4f8fb; color:var(--blue); border-color:#cdddeb; }
.validation-item.compatible { background:#eaf6ee; color:#246442; border-color:#bfdfca; }
.validation-item.warning { background:#fff5e5; color:#89520f; border-color:#efd29c; }
.validation-item.review_required { background:#fff0ed; color:#a73528; border-color:#efbbb2; }
.validation-actions { justify-content:space-between; }
.bank-field { position:relative; }
.bank-suggestions { position:absolute; z-index:20; top:100%; right:0; left:0; max-height:220px; overflow:auto; margin-top:4px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 12px 24px rgba(14,32,56,.14); }
.bank-suggestions button { display:grid; grid-template-columns:44px 1fr; width:100%; gap:9px; padding:10px 12px; border:0; background:#fff; color:var(--text); text-align:left; font:inherit; cursor:pointer; }
.bank-suggestions button:hover { background:var(--blue-soft); }
.bank-suggestions strong { color:var(--blue); font-size:12px; }
@media (max-width:760px) { .toast { width:calc(100vw - 32px); } }

.shell { grid-template-columns: 280px 1fr; }
.sidebar { padding: 36px 28px; }
.logo-chip { background:#fff; border-radius:8px; padding:16px 18px; display:inline-block; margin-bottom:22px; }
.logo-chip img { display:block; width:100%; max-width:190px; height:auto; }
.brand { font-size:13px; letter-spacing:.02em; color:#93a6b0; margin-bottom:4px; }
.panel { max-width:620px; }
.steps { margin:36px 0 0; }
.steps li { min-height:0; padding:0 0 26px 24px; color:#b9c7cd; }
.steps li::before { left:-6px; top:2px; }
.step-num { display:block; font-size:11px; color:#7e93a0; margin-bottom:3px; }
.step-label { display:block; font-size:14.5px; font-weight:600; }
.steps li.active .step-num { color:#7e93a0; }
.steps li.active .step-label { color:#fff; }
.steps li.done .step-num { color:#7e93a0; }
.steps li.done .step-label { color:#9fd2b4; }
.steps li.done::before { content:"✓"; display:grid; place-items:center; color:#fff; font-size:8px; font-weight:900; }
@media (max-width: 760px) { .shell { grid-template-columns:1fr; } .logo-chip { margin-bottom:18px; } .person-selector { grid-template-columns:1fr; } .variant-content { min-height:0; } .modal { padding:24px; } .modal-actions { flex-direction:column-reverse; } .modal-actions .btn { width:100%; } .partner-card dl { grid-template-columns:1fr; } }

/* Mobile: mantém a etapa visível sem reservar uma barra lateral inteira. */
@media (max-width: 760px) {
  .sidebar {
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    column-gap:20px;
    align-items:center;
    padding:13px 16px;
  }
  .logo-chip { width:112px; grid-column:1; margin:0; padding:7px 8px; border-radius:7px; }
  .logo-chip img { max-width:96px; }
  .brand { display:none; }
  .sidebar .brand { display:none !important; }
  .steps {
    display:flex;
    grid-column:2;
    align-items:center;
    justify-content:space-between;
    position:relative;
    margin:0;
    padding:0;
    border:0;
  }
  .steps::before { content:""; position:absolute; right:10%; left:10%; top:50%; height:2px; background:#34485d; transform:translateY(-50%); }
  .steps li { display:block; flex:1; padding:0; text-align:center; z-index:1; }
  .steps li::before, .steps li.active::before { display:grid !important; place-items:center; position:relative; left:auto; top:auto; width:18px; height:18px; margin:auto; border:2px solid var(--ink); background:#34485d; color:#fff; font-size:11px; transform:none; }
  .steps li.done::before { content:"✓"; background:#56a47d; }
  .steps li.active::before { background:var(--amber); }
  .step-num, .step-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

  .content { padding:26px 16px 44px; }
  .panel { max-width:none; }
  .eyebrow { font-size:12px; }
  .title { font-size:28px; line-height:1.12; margin-top:6px; }
  .lead { margin-bottom:22px; font-size:16px; }
  .card { padding:18px; border-radius:11px; }
  .grid { gap:16px; }
  .section-heading { margin-top:2px; padding-top:16px; }
  .field input, .field select, .field textarea { min-height:46px; padding:11px 12px; font-size:16px; }
  .field textarea { min-height:105px; }
  .lookup { gap:7px; }
  .lookup .btn { flex:0 0 auto; min-height:46px; }
  .icon-button { min-width:50px; }
  .status-chip { max-width:100%; }
  .data-tabs { overflow-x:auto; margin:18px 0; }
  .data-tabs button { flex:0 0 auto; padding:10px 12px; }
  .partner-card { padding:14px; }
  .actions { position:sticky; bottom:0; z-index:10; gap:10px; margin:22px -16px -44px; padding:12px 16px; background:rgba(244,245,243,.96); border-top:1px solid var(--line); backdrop-filter:blur(8px); }
  .actions > span { display:none; }
  .actions .btn { min-height:48px; }
  .actions #next { margin-left:auto; }
  .actions #back:not(.hidden) { flex:1; }
  .actions #back:not(.hidden) + span + #next { flex:1.15; }
  .review { gap:4px; }
  .review dd { overflow-wrap:anywhere; }
  .check { padding:13px; font-size:14px; }
  .upload { padding:15px; }
  .upload input[type="file"] { max-width:100%; font-size:13px; }
  .bank-suggestions { position:fixed; right:16px; left:16px; max-height:45vh; }
  .modal-backdrop { align-items:end; padding:0; }
  .modal { width:100%; max-height:88vh; overflow:auto; padding:24px 20px max(24px, env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; }
  .modal h2 { font-size:22px; }
  .validation-items { margin-top:18px; }
  .validation-actions { gap:9px; }
}

@media (max-width: 390px) {
  .sidebar { grid-template-columns:92px minmax(0,1fr); column-gap:14px; }
  .logo-chip img { max-width:76px; }
  .content { padding-right:12px; padding-left:12px; }
  .card { padding:15px; }
  .title { font-size:25px; }
  .actions { margin-right:-12px; margin-left:-12px; padding-right:12px; padding-left:12px; }
  .person-option { padding:13px 14px; }
}

.review-sections { display:grid; gap:20px; }
.review-section + .review-section { padding-top:20px; border-top:1px solid var(--line); }
.review-section h2 { margin:0 0 13px; color:var(--ink); font-size:17px; }
.review-section .review { grid-template-columns:180px minmax(0,1fr); }
.review-section .review dd { overflow-wrap:anywhere; }
@media (max-width:760px) {
  .review-sections { gap:18px; }
  .review-section + .review-section { padding-top:18px; }
  .review-section .review { grid-template-columns:1fr; gap:3px; }
  .review-section .review dt { margin-top:8px; font-size:13px; }
}
