/* Central aprovada: estrutura compartilhada, cores da empresa e estados Zap. */
@font-face { font-family:Roboto; src:url('roboto.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }
.lv-body { --mz-font-sans:Roboto,Arial,sans-serif; --mz-font-display:Roboto,Arial,sans-serif; }
.lv-central { max-width:1060px; width:calc(100% - 40px); margin:0 auto; padding:24px 0 calc(100px + env(safe-area-inset-bottom)); color:#172d26; font:400 16px/1.5 Roboto,Arial,sans-serif; }
.lv-central *, .lv-central *::before, .lv-central *::after { box-sizing:border-box; }
.lv-central h1 { margin:0 0 6px; font-size:1.65rem; line-height:1.2; font-weight:700; letter-spacing:-.025em; }
.lv-central h2 { margin:0 0 12px; font-size:1.08rem; line-height:1.35; font-weight:600; }
.lv-central p { margin:0 0 18px; }
.lv-central small, .central-heading p { color:#5c6f68; }
.lv-central button, .lv-central input, .lv-central select { font:inherit; }
.lv-central button { cursor:pointer; }
.lv-central svg { width:22px; height:22px; flex:0 0 auto; }
.lv-central :focus-visible { outline:3px solid var(--lv-primary-mark); outline-offset:3px; }
.lv-central ::selection { background:var(--lv-accent); color:var(--lv-accent-ink); }
.lv-central input, .lv-central select { width:100%; min-width:0; min-height:46px; padding:10px 13px; border:1px solid #b8c6bf; border-radius:12px; color:#172d26; background:#fff; caret-color:var(--lv-primary-mark); }
.lv-central input:focus, .lv-central select:focus { border-color:var(--lv-primary-mark); }
.lv-central .lv-oculto { width:1px; min-width:0; height:1px; min-height:0; padding:0; border:0; }
.lv-central input[aria-invalid="true"] { border-color:#b3272c; }
.lv-central button:disabled, .lv-central input:disabled, .lv-central select:disabled { background:#edf0ee; color:#5c6f68; border-color:#dce2de; cursor:default; }
.central-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 18px; border:1px solid var(--lv-primary-mark); border-radius:999px; background:var(--lv-primary); color:var(--lv-primary-ink); font-weight:600!important; line-height:1.35; text-align:center; text-decoration:none; transition:filter 150ms ease-out; }
.central-button:hover:not(:disabled) { filter:brightness(.92); }
.lv-central a.central-charge-link { color:var(--lv-primary-ink); }
.central-button.is-secondary { background:#fff; color:#172d26; border-color:#b8c6bf; }
.central-button.is-accent { background:var(--lv-accent); color:var(--lv-accent-ink); border-color:var(--lv-accent-mark); }
.central-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:8px 2px; color:#172d26; background:transparent; border:0; text-decoration:underline; text-underline-offset:4px; font-weight:600!important; }
.central-entry { --central-entry-padding:28px; max-width:480px; margin:26px auto; padding:var(--central-entry-padding); border-radius:24px; background:#fff; border:1px solid #dce4de; box-shadow:0 10px 32px #062f2812; }
.central-entry-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; margin:calc(-1 * var(--central-entry-padding)) calc(-1 * var(--central-entry-padding)) 24px; padding:30px var(--central-entry-padding); border-radius:23px 23px 0 0; background:var(--lv-primary); color:var(--lv-primary-ink); }
.central-entry-heading h1 { font-size:1.9rem; line-height:1.12; margin-bottom:12px; text-wrap:balance; }
.central-entry-heading p { max-width:27ch; margin:0; font-size:.95rem; line-height:1.55; }
.central-entry-icon { display:inline-flex; align-items:center; justify-content:center; width:72px; height:80px; border-radius:22px; background:var(--lv-accent); color:var(--lv-accent-ink); }
.central-entry-icon svg { width:42px; height:42px; stroke-width:1.6; }
.central-entry form { display:grid; gap:9px; }
.central-entry form > label { margin-top:12px; font-size:.95rem; font-weight:600; }
.central-entry form > .central-button { min-height:50px; margin:18px 0 0; border-radius:14px; font-size:1rem; }
.central-entry > .central-link { width:100%; margin-top:8px; }
.central-entry-note { display:flex; align-items:center; gap:12px; margin:20px 0 0!important; padding:14px; border-radius:12px; background:var(--lv-primary-soft); color:var(--lv-primary-mark); font-size:.875rem; line-height:1.45; }
.central-entry-note svg { width:24px; height:24px; }
.central-segment { display:flex; margin:8px 0; padding:4px; border:0; border-radius:12px; background:var(--lv-primary-soft); }
.central-segment label { flex:1; display:flex; justify-content:center; align-items:center; gap:7px; min-height:44px; padding:10px 5px; border-radius:9px; cursor:pointer; font-size:.95rem; }
.central-segment label:has(input:checked) { background:var(--lv-primary); color:var(--lv-primary-ink); }
.central-segment input { width:15px; min-height:15px; margin:0; accent-color:var(--lv-primary); }
.central-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; }
.central-heading p { margin:0; }
.central-icon-button { display:inline-flex; justify-content:center; align-items:center; min-width:44px; min-height:44px; border-radius:14px; border:1px solid #dbe3dd; background:var(--lv-accent); color:var(--lv-accent-ink); }
.central-context { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; margin-bottom:24px; padding:14px 18px; border:1px solid #e8eae8; border-radius:14px; background:#fff; }
.central-context-field { display:flex; flex:1 1 300px; min-width:0; gap:12px; align-items:center; }
.central-context label { font-size:.8rem; font-weight:600; }
.central-context select { flex:1; min-width:0; }
.central-home-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:20px; align-items:start; }
.central-card { min-width:0; padding:22px; border:1px solid #e8eae8; border-radius:18px; background:#fff; box-shadow:0 3px 10px #062f2808; }
.central-card + .central-card { margin-top:14px; }
.central-home-grid > .central-card { margin:0; }
.central-card-heading { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px; }
.central-card-heading h2 { flex:1; min-width:90px; margin:0; }
.central-symbol { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:13px; color:var(--lv-primary-ink); background:var(--lv-primary); }
.central-plan { background:var(--lv-primary); color:var(--lv-primary-ink); border-color:var(--lv-primary-mark); }
.central-plan .central-symbol { background:var(--lv-accent); color:var(--lv-accent-ink); margin-bottom:12px; }
.central-financial { border-color:var(--lv-accent); }
.central-financial .central-symbol { background:var(--lv-accent); color:var(--lv-accent-ink); }
.central-plan .central-link, .central-plan p { color:inherit; }
.central-plan strong { display:block; font-size:1.2rem; font-weight:700; margin:8px 0; }
.central-amount { display:block; color:#172d26; font-size:2rem; line-height:1.25; font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:-.025em; margin:8px 0; }
.central-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.central-actions > * { flex:1; }
.central-badge { display:inline-flex; align-items:center; min-height:25px; padding:3px 9px; border-radius:999px; font-size:.75rem; font-weight:600; background:#fef4e4; color:#805210; }
.central-badge.is-overdue { background:#fde8e8; color:#a12126; }
.central-badge.is-pending { background:#fff0db; color:#805210; }
.central-badge.is-paid { background:#e4f4e8; color:#176336; }
.central-badge.is-neutral { background:#edf1ee; color:#43584d; }
.central-shortcuts { grid-column:1/-1; }
.central-shortcut-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.central-shortcut { display:flex; justify-content:flex-start; align-items:center; gap:12px; min-height:72px; padding:16px; border:1px solid #e2e8e3; border-radius:16px; color:#172d26; background:#fff; font-weight:600!important; }
.central-shortcut svg { width:30px; height:30px; padding:5px; box-sizing:content-box; border-radius:12px; background:var(--lv-primary-soft); color:var(--lv-primary-mark); }
.central-shortcut.is-messages { background:var(--lv-primary); color:var(--lv-primary-ink); }
.central-shortcut.is-messages svg { background:var(--lv-accent); color:var(--lv-accent-ink); }
.central-shortcut.is-invoices { background:#fef4e4; border-color:#eddabb; }
.central-shortcut.is-invoices svg { background:#ffdf9f; color:#70450a; }
.central-shortcut.is-services { background:var(--lv-accent-soft); border-color:var(--lv-accent); }
.central-shortcut.is-services svg { background:var(--lv-accent); color:var(--lv-accent-ink); }
.central-shortcut.is-more { background:#eaf2fd; border-color:#c9daf3; }
.central-shortcut.is-more svg { background:#d1e2ff; color:#2456b3; }
#centralBanners { grid-column:1/-1; }
.central-list { display:grid; gap:16px; }
.central-invoice-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 20px; }
.central-invoice-row > .central-badge { align-self:start; justify-self:end; }
.central-invoice-row .central-actions { grid-column:1/-1; margin-top:6px; }
.central-invoice-row .central-amount { font-size:1.55rem; }
.central-invoice-row p { margin:6px 0 0; color:#5c6f68; }
.central-support { padding:24px 0; }
.central-alert, .central-error { padding:14px 16px; color:#b3272c; background:#fdecec; border:1px solid #efc7c7; border-radius:12px; overflow-wrap:anywhere; }
.central-plan .central-error { color:#b3272c; }
.central-loading, .central-empty { padding:18px 0; color:#5c6f68; }
.central-payment-code { display:block; width:100%; padding:14px; margin:10px 0; border-radius:12px; border:1px solid #dce4dd; background:#f5f8f6; color:#172d26; overflow-wrap:anywhere; word-break:break-all; font:400 .9rem/1.6 Roboto,Arial,sans-serif; }
.central-qr { display:block; width:min(240px,100%); margin:16px auto; }
.central-nav { display:flex; position:fixed; z-index:30; bottom:0; left:50%; transform:translateX(-50%); width:min(1100px,100%); padding:8px 12px calc(8px + env(safe-area-inset-bottom)); border:1px solid #dce4de; border-radius:20px 20px 0 0; background:#fff; box-shadow:0 -3px 18px #062f280d; }
.central-nav button { display:flex; flex:1; min-width:0; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:56px; padding:5px 2px; border:0; border-radius:12px; background:transparent; color:#4e6258; font-size:.8rem; font-weight:500; }
.central-nav button[aria-current="page"] { background:var(--lv-accent); color:var(--lv-accent-ink); font-weight:700; outline:1px solid var(--lv-accent-mark); outline-offset:-1px; }
body.lv-central-mode { --mz-text-2:#5c6f68; --mz-text-3:#5c6f68; background:#f5f8f6; }
body.lv-central-mode .lp-shell { width:100%; max-width:none; min-height:100dvh; background:none; }
body.lv-central-mode .lv-header { position:sticky; top:0; left:0; right:auto; transform:none; transition:none; backdrop-filter:none; z-index:40; width:100%; max-width:none; min-height:76px; padding:12px max(20px,calc((100vw - 1060px)/2)); margin:0; border-radius:0; background:var(--lv-primary); color:var(--lv-primary-ink); box-shadow:0 2px 8px #062f2810; }
body.lv-central-mode .lv-header .lv-brand-text strong, body.lv-central-mode .lv-header .lv-brand-text small { color:var(--lv-primary-ink); }
body.lv-central-mode .lv-header .lv-brand-logo { width:46px; height:46px; object-fit:contain; }
body.lv-central-mode .lv-header .lv-badge { background:var(--lv-accent); color:var(--lv-accent-ink); }
body.lv-central-mode .lv-main { display:none; }
body.lv-central-mode .lv-private { margin:20px 0; width:100%; max-width:none; }
body.lv-central-mode .lv-private p, body.lv-central-mode .lv-private label { color:#5c6f68; font-size:.875rem; }
body.lv-central-mode .lv-private .lv-private-state { color:#805210; }
body.lv-central-mode .lv-private :is(input,select) { min-height:46px; font-size:1rem; }
body.lv-central-mode .lv-private-button { font-size:.95rem; }
body.lv-central-mode .lv-private-button:not(.is-secondary):not(:disabled) { background:var(--lv-primary); color:var(--lv-primary-ink); }
body.lv-central-mode .lv-footer { position:static; width:100%; max-width:none; margin:24px 0 0; padding:24px; gap:24px; border:1px solid #dce4de; border-radius:18px; background:#fff; color:#172d26; }
body.lv-central-mode .lv-footer .lv-brand-text strong { color:#172d26; }
body.lv-central-mode .lv-footer .lv-brand-text small { color:#5c6f68; font-size:.875rem; }
body.lv-central-mode .lv-footer > small { color:#5c6f68; font-size:.875rem; }
body.lv-central-mode .lv-footer .lv-rodape-item { min-height:64px; padding:16px; border-color:#dce4de; background:var(--lv-primary-soft); }
body.lv-central-mode .lv-footer .lv-rodape-texto { color:var(--lv-primary-mark); font-size:1rem; font-weight:500; line-height:1.5; }
body.lv-central-mode .lv-footer .lv-rodape-conteudo { gap:14px; }
body.lv-central-mode .lv-footer .lv-contato h2 { color:#172d26; font-size:1.1rem; }
body.lv-central-mode .lv-footer .lv-contato-item { min-height:44px; max-width:100%; padding:10px 14px; border-color:#b8c6bf; background:#fff; color:#172d26; font-size:.95rem; overflow-wrap:anywhere; }
body.lv-central-mode .lv-footer .lv-contato-endereco { color:#5c6f68; font-size:.95rem; }
body.lv-central-mode .lv-footer a:focus-visible { outline:3px solid var(--lv-primary-mark); outline-offset:3px; }
body.lv-central-mode .lv-app { width:100%; max-width:none; margin:0; box-shadow:none; }
body.lv-central-mode .lv-app-topo { background:var(--lv-primary-soft); }
body.lv-central-mode .lv-chat { min-height:280px; height:clamp(280px,calc(100dvh - 350px),700px); scrollbar-color:var(--lv-primary) #edf1ee; }
body.lv-central-mode .lv-composer { position:static; }
body.lv-central-mode #centralMessages .lv-app { display:flex; flex-direction:column; min-height:0; }
body.lv-central-mode #centralMessages .lv-chat { flex:1; min-height:100px; height:auto; }
body.lv-central-mode #centralMessages .lv-app-topo, body.lv-central-mode #centralMessages .lv-composer, body.lv-central-mode #centralMessages .lv-finalizar, body.lv-central-mode #centralMessages .lv-gravando { flex-shrink:0; }
.central-chat-empty { max-width:360px; margin:30px auto; padding:24px 16px; text-align:center; color:#5c6f68; }
.central-chat-empty strong { display:block; color:#172d26; margin-bottom:8px; font-size:1.1rem; }
.central-message-note { max-width:75ch; font-size:.84rem; color:#5c6f68; }
body.lv-central-mode .lv-button-marca, body.lv-central-mode .lv-button-enviar { background:var(--lv-primary); color:var(--lv-primary-ink); }
body.lv-central-mode .lv-balao { overflow-wrap:anywhere; }
body.lv-central-mode .lv-instalar { margin:20px 0; }
@media(max-width:640px) {
    .lv-central { width:calc(100% - 28px); padding-top:18px; }
    .central-entry { --central-entry-padding:22px; margin:12px auto; }
    .central-entry-heading { gap:12px; padding-top:26px; padding-bottom:26px; }
    .central-entry-heading h1 { font-size:1.65rem; }
    .central-entry-icon { width:60px; height:68px; border-radius:18px; }
    .central-entry-icon svg { width:36px; height:36px; }
    .central-home-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
    .central-card { padding:18px; }
    .central-context { padding:12px; gap:7px; }
    .central-context-field { display:grid; grid-template-columns:76px minmax(0,1fr); gap:8px; flex-basis:100%; }
    .central-context select { max-width:none; }
    .central-shortcut-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .central-shortcut { min-height:68px; padding:12px; gap:9px; font-size:.86rem; }
    .central-shortcut svg { width:25px; height:25px; }
    .central-heading { align-items:flex-start; gap:10px; }
    .central-heading > .central-button { padding:10px 12px; font-size:.8rem; }
    .central-heading h1 { font-size:1.45rem; }
    .central-heading p { font-size:.86rem; }
    .central-nav { padding-left:5px; padding-right:5px; }
    .central-nav button { font-size:.75rem; }
    body.lv-central-mode .lv-header { min-height:70px; padding:10px 14px; }
    body.lv-central-mode .lv-header .lv-brand-text strong { font-size:1rem; }
    body.lv-central-mode .lv-header .lv-brand-text small { font-size:.7rem; }
    body.lv-central-mode .lv-badge { font-size:.62rem; padding:0 8px; }
    body.lv-central-mode .lv-app { padding:0; }
    body.lv-central-mode .lv-chat { height:calc(100dvh - 370px); min-height:240px; }
}
@media(prefers-reduced-motion:reduce) { .lv-central * { scroll-behavior:auto; transition:none; } }
