:root{--bg:#070a12;--panel:#0c111d;--panel2:#111827;--border:#1f2937;--text:#e5e7eb;--muted:#9ca3af;--green:#22c55e;--red:#ef4444;--yellow:#f59e0b;--blue:#38bdf8}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:#05070d;border-right:1px solid var(--border);padding:18px;position:fixed;top:0;bottom:0;left:0}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.brand-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#22c55e,#38bdf8);display:grid;place-items:center;font-weight:800;color:#04111f}.brand strong{display:block}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.menu{display:flex;flex-direction:column;gap:6px}.menu a{text-decoration:none;color:#cbd5e1;padding:11px 12px;border-radius:12px;font-weight:600;font-size:14px}.menu a:hover{background:#0f172a;color:#fff}.content{margin-left:260px;flex:1;padding:26px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.breadcrumb{color:var(--muted);font-size:13px}.topbar h1{margin:5px 0 0;font-size:28px}.userbox{border:1px solid var(--border);background:var(--panel);border-radius:14px;padding:10px 14px;color:#cbd5e1}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:18px}.card h2,.card h3{margin:0 0 12px}.stat-label{color:var(--muted);font-size:13px}.stat-value{font-size:28px;font-weight:800;margin-top:8px}.ok{color:var(--green)}.danger{color:#fca5a5}.warn{color:#fbbf24}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:#111827;color:#fff;border-radius:12px;padding:10px 13px;text-decoration:none;font-weight:700;font-size:14px;cursor:pointer}.btn.primary{background:#16a34a;border-color:#16a34a}.btn.red{background:#991b1b;border-color:#991b1b}.btn.blue{background:#0369a1;border-color:#0369a1}.btn.yellow{background:#92400e;border-color:#92400e}.actions{display:flex;gap:8px;flex-wrap:wrap}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--border);background:#111827}.badge.ok{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.12)}.badge.danger{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.12)}.badge.warn{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.12)}.form{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:grid;gap:7px;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid var(--border);background:#070a12;color:#fff;border-radius:12px;padding:11px 12px;font:inherit}textarea{min-height:90px}.alert{padding:13px 15px;border-radius:14px;margin-bottom:16px;border:1px solid rgba(56,189,248,.35);background:rgba(56,189,248,.10)}.alert.error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.10)}.right{text-align:right}.small{font-size:12px;color:var(--muted)}@media(max-width:1000px){.sidebar{position:static;width:100%}.layout{display:block}.content{margin-left:0}.grid-4,.grid-2,.form-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:12px;flex-direction:column}}
.codebox{border:1px solid var(--border);background:#05070d;border-radius:12px;padding:11px 12px;color:#cbd5e1;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:8px 0 12px}.table td .actions{gap:6px}

/* Ações compactas no padrão visual do Web OS Cell/Gerencia Web Soft. */
.actions-icons{align-items:center;gap:6px}.actions-icons form{display:inline-flex;margin:0}.btn-icon{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--border);background:#111827;color:#fff;border-radius:10px;text-decoration:none;font-size:14px;line-height:1;cursor:pointer}.btn-icon:hover{filter:brightness(1.15)}.btn-icon.primary{background:#14532d;border-color:#166534}.btn-icon.red{background:#7f1d1d;border-color:#991b1b}.btn-icon.blue{background:#075985;border-color:#0369a1}.btn-icon.yellow{background:#78350f;border-color:#92400e}.btn-icon.disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.35)}.right .btn-icon{margin-left:auto}.gws-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.62);display:grid;place-items:center;z-index:9999;padding:18px}.gws-modal-backdrop[hidden]{display:none}.gws-modal{width:min(460px,100%);background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:0 22px 55px rgba(0,0,0,.45)}.gws-modal h3{margin:0 0 10px;font-size:20px}.gws-modal p{margin:0;line-height:1.5}

/* Provisionamento - organização visual, busca e paginação de logs. */
.provision-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.mini-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:15px}.mini-card span{display:block;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.mini-card strong{display:block;margin-top:8px;font-size:24px}.provision-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.75fr);gap:16px;margin-bottom:18px}.provision-form-card{gap:16px}.form-section{border:1px solid rgba(31,41,55,.9);background:rgba(17,24,39,.42);border-radius:16px;padding:15px;display:grid;gap:14px}.section-title{font-size:12px;font-weight:800;color:#cbd5e1;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1px}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.section-header.compact h2,.section-header.compact h3{margin-bottom:4px}.section-header.compact p{margin:0}.provision-side{display:grid;gap:16px;align-content:start}.compact-card h3{margin-bottom:10px}.advanced-card{border:1px dashed var(--border);border-radius:16px;padding:13px 15px;background:rgba(7,10,18,.55)}.advanced-card summary{cursor:pointer;font-weight:800;color:#cbd5e1}.advanced-fields{margin-top:14px}.provision-actions{justify-content:flex-end}.provision-card{margin-top:18px}.table-responsive{overflow-x:auto}.log-filter{display:grid;grid-template-columns:minmax(220px,1fr) 180px 150px auto;gap:12px;align-items:end;margin:12px 0 16px;padding:13px;border:1px solid var(--border);border-radius:16px;background:rgba(17,24,39,.42)}.filter-actions{align-items:end;flex-wrap:nowrap}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.pagination-links{display:flex;align-items:center;gap:8px}.page-link,.page-current{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid var(--border);border-radius:10px;padding:7px 10px;text-decoration:none;background:#111827;font-size:13px;font-weight:700}.page-current{color:var(--muted);font-weight:600}.page-link.disabled{opacity:.45;pointer-events:none}@media(max-width:1100px){.provision-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.provision-layout{grid-template-columns:1fr}.log-filter{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}}@media(max-width:700px){.provision-summary,.log-filter{grid-template-columns:1fr}.section-header,.pagination-bar{flex-direction:column;align-items:flex-start}.pagination-links{flex-wrap:wrap}}

/* Atualizações centralizadas */
.update-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.75fr);gap:16px;margin-bottom:18px}.update-form-card{gap:16px}.check-grid{display:grid;gap:10px;margin-top:4px}.check-line{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:9px;font-weight:700;color:#cbd5e1}.check-line input{width:auto;margin-top:2px}.update-details-grid{margin-top:18px}@media(max-width:1100px){.update-layout{grid-template-columns:1fr}}

.update-help-card{margin-bottom:18px}.update-help-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:16px}.update-help-card .codebox{margin-bottom:0}@media(max-width:900px){.update-help-grid{grid-template-columns:1fr}}



/* Asaas - uso do ícone oficial em ações e status, mantendo leitura por title/aria-label. */
.asaas-icon-inline{width:18px;height:18px;display:block;object-fit:contain;filter:drop-shadow(0 0 7px rgba(0,86,255,.32))}.btn-icon.asaas-sync{background:linear-gradient(135deg,rgba(0,86,255,.18),rgba(14,165,233,.10));border-color:rgba(0,86,255,.38)}.btn-icon.asaas-sync:hover{border-color:rgba(56,189,248,.62);box-shadow:0 0 0 3px rgba(56,189,248,.10)}.asaas-status-icon{width:31px;height:31px;display:inline-grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:#111827;vertical-align:middle;margin-top:0}.asaas-status-icon img{width:18px;height:18px;display:block;object-fit:contain}.asaas-status-icon.ok{border-color:rgba(34,197,94,.46);background:rgba(34,197,94,.15);box-shadow:0 0 0 3px rgba(34,197,94,.045)}.asaas-status-icon.ok img{filter:drop-shadow(0 0 7px rgba(34,197,94,.55))}.asaas-status-icon.warn{border-color:rgba(245,158,11,.50);background:rgba(245,158,11,.15);box-shadow:0 0 0 3px rgba(245,158,11,.045)}.asaas-status-icon.warn img{filter:drop-shadow(0 0 7px rgba(245,158,11,.58))}.asaas-status-icon.danger{border-color:rgba(239,68,68,.48);background:rgba(239,68,68,.15);box-shadow:0 0 0 3px rgba(239,68,68,.045)}.asaas-status-icon.danger img{filter:drop-shadow(0 0 7px rgba(239,68,68,.58))}

/* Clientes - visual em cards/modal para reduzir poluição de informações. */
.clientes-panel{display:grid;gap:14px}.clientes-header{align-items:center}.clientes-table td{vertical-align:middle}.client-system-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.gws-page-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.64);display:grid;place-items:center;z-index:9998;padding:18px}.gws-page-modal-backdrop[hidden]{display:none}.gws-modal-large{width:min(780px,100%);max-height:90vh;overflow:auto}.modal-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.modal-headline h3{margin-bottom:4px}.modal-form{gap:14px}.modal-actions{justify-content:flex-end;margin-top:10px}.client-systems-list{display:grid;gap:12px}.client-system-card{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--border);background:rgba(17,24,39,.55);border-radius:16px;padding:14px}.system-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.system-url{word-break:break-word}.empty-state{border:1px dashed var(--border);border-radius:16px;padding:18px;background:rgba(7,10,18,.45)}@media(max-width:800px){.clientes-table thead{display:none}.clientes-table,.clientes-table tbody,.clientes-table tr,.clientes-table td{display:block;width:100%}.clientes-table tr{border:1px solid var(--border);border-radius:16px;padding:12px;margin-bottom:12px;background:rgba(17,24,39,.42)}.clientes-table td{border-bottom:0;padding:8px}.clientes-table td.right{text-align:left}.client-system-summary{align-items:flex-start}.modal-headline{align-items:flex-start}.gws-page-modal-backdrop{align-items:start;padding:12px}.gws-modal-large{max-height:94vh}.client-system-card{align-items:flex-start}.form-grid{grid-template-columns:1fr}}

/* Clientes - reorganização visual com modais reais, sem exibir formulários abaixo da tabela. */
.clientes-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;background:linear-gradient(135deg,rgba(17,24,39,.95),rgba(7,10,18,.92))}.clientes-hero h2{font-size:30px;margin:4px 0 6px}.section-kicker{display:block;color:#9ca3af;font-size:13px;margin-bottom:4px}.clientes-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.client-search-label{min-width:320px;font-weight:700}.clientes-table .badge{margin-left:6px}.client-system-summary.clean{max-width:360px}.client-actions{justify-content:flex-end}.client-status-stack{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:88px}.client-status-icons{display:flex;align-items:center;gap:6px;min-height:34px}.client-status-stack .badge{margin-left:0}.client-modal-open{overflow:hidden}.client-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:10020;padding:20px;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.client-modal-backdrop.is-open{display:flex}.client-modal-card{width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 26px 70px rgba(0,0,0,.55)}.client-modal-large{width:min(840px,100%)}.client-modal-card .modal-headline{position:sticky;top:-20px;background:linear-gradient(180deg,var(--panel) 75%,rgba(12,17,29,.85));z-index:2;padding-top:2px}.client-empty-filter{margin-top:12px}.client-system-card .actions-icons{flex-shrink:0}.client-system-card .btn-icon{margin-left:0}@media(max-width:900px){.clientes-hero{flex-direction:column;align-items:flex-start}.clientes-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-search-label{min-width:0;width:100%}.client-actions{justify-content:flex-start}.client-modal-backdrop{padding:12px;align-items:flex-start}.client-modal-card{max-height:94vh}.client-system-card{flex-direction:column}.client-system-card .actions-icons{width:100%;justify-content:flex-start}}@media(max-width:520px){.clientes-summary-grid{grid-template-columns:1fr}.clientes-hero h2{font-size:26px}}


/* Clientes - refinamento visual de STATUS e AÇÕES */
.clientes-table .status-column-header,
.clientes-table .actions-column-header{vertical-align:middle;text-align:center}
.clientes-table .status-column-header{width:120px}
.clientes-table .actions-column-header{width:235px}
.clientes-table td.status-cell,
.clientes-table td.actions-cell{vertical-align:middle}
.clientes-table td.status-cell{text-align:center}
.clientes-table td.actions-cell{text-align:center}
.client-status-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:90px;width:100%}
.client-status-stack .badge{margin:0 auto}
.client-status-icons{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;width:100%}
.client-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;min-width:200px;width:100%}
.client-actions .btn-icon,
.client-status-icons .asaas-status-icon,
.client-system-summary.clean .btn-icon{flex:0 0 auto}
.asaas-status-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px}
.asaas-status-icon img{width:22px;height:22px;display:block}
.client-actions .btn-icon{width:38px;height:38px;border-radius:12px}
@media(max-width:900px){
  .clientes-table .actions-column-header,.clientes-table .status-column-header{width:auto}
  .client-actions{min-width:0;justify-content:flex-start}
  .clientes-table td.actions-cell{text-align:left}
}


/* Clientes - diferencia remoção do Asaas e exclusão local */
.btn-icon.asaas-remove{background:linear-gradient(135deg,rgba(127,29,29,.95),rgba(0,86,255,.20));border-color:rgba(239,68,68,.48)}
.btn-icon.asaas-remove:hover{border-color:rgba(248,113,113,.68);box-shadow:0 0 0 3px rgba(239,68,68,.10)}
.btn-icon[disabled],
.btn-icon.disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.45)}
.btn-icon[disabled]:hover,
.btn-icon.disabled:hover{filter:grayscale(.45);box-shadow:none}


/* Instalações - mantém os ícones de ações em uma única linha. */
.instalacoes-table .instalacao-actions-header{width:210px;text-align:center;white-space:nowrap}
.instalacoes-table .instalacao-actions-cell{vertical-align:middle;text-align:center;white-space:nowrap}
.instalacao-actions{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-wrap:nowrap;min-width:198px}
.instalacao-actions form{display:inline-flex;margin:0;flex:0 0 auto}
.instalacao-actions .btn-icon{flex:0 0 34px}
@media(max-width:1100px){
  .instalacoes-table .instalacao-actions-header{width:190px}
  .instalacao-actions{min-width:184px;gap:5px}
}

/* Instalações - edição em modal e monitoramento automático via Fetch/AJAX. */
.monitoramento-card{position:relative}
.monitor-live-status{margin-top:14px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(7,10,18,.42)}
.monitor-live-status.is-ok{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08);color:#bbf7d0}
.monitor-live-status.is-error{border-color:rgba(239,68,68,.38);background:rgba(239,68,68,.08);color:#fecaca}
.monitor-live-status.is-loading{border-color:rgba(56,189,248,.35);background:rgba(56,189,248,.08);color:#bae6fd}
.instalacao-edit-modal{width:min(820px,100%)}
.instalacao-modal-backdrop .modal-form{gap:14px}
.instalacao-actions button.is-loading{opacity:.7;cursor:wait}
.instalacoes-table [data-inst-info],
.instalacoes-table [data-inst-api],
.instalacoes-table [data-inst-provision],
.instalacoes-table [data-inst-monitor]{transition:background .18s ease}
@media(max-width:900px){.instalacao-edit-modal{width:100%}}

/* Instalações - nova instalação em modal, tela mais limpa, busca e paginação local. */
.instalacoes-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;background:linear-gradient(135deg,rgba(17,24,39,.95),rgba(7,10,18,.92))}
.instalacoes-hero h2{font-size:30px;margin:4px 0 6px}
.instalacoes-monitor-card{margin-bottom:18px}
.instalacoes-monitor-card .section-header{align-items:flex-start}
.instalacoes-monitor-actions{align-items:flex-end;justify-content:flex-end;flex-shrink:0}
.instalacoes-monitor-actions form{margin:0}
.instalacoes-panel{display:grid;gap:14px}
.instalacoes-header{align-items:flex-start}
.instalacoes-table-tools{display:grid;grid-template-columns:minmax(260px,1fr) 150px;gap:12px;align-items:end;min-width:min(520px,100%)}
.instalacoes-table-tools label{font-weight:700}
.instalacoes-empty-filter{margin-top:12px}
.instalacoes-pagination{margin-top:12px}
.instalacoes-pagination .page-link[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.35)}
@media(max-width:1100px){
  .instalacoes-monitor-card .section-header{flex-direction:column}
  .instalacoes-monitor-actions{justify-content:flex-start;align-items:flex-start}
  .instalacoes-header{flex-direction:column}
  .instalacoes-table-tools{width:100%;min-width:0}
}
@media(max-width:700px){
  .instalacoes-hero{flex-direction:column;align-items:flex-start}
  .instalacoes-hero h2{font-size:26px}
  .instalacoes-table-tools{grid-template-columns:1fr}
}

/* Instalações - remove a barra horizontal sem alterar o alinhamento das colunas.
   O ajuste permite quebra limpa de URL, UUID e mensagens longas dentro da própria célula. */
.instalacoes-panel .table-responsive{overflow-x:hidden;width:100%}
.instalacoes-table{width:100%;max-width:100%}
.instalacoes-table th,
.instalacoes-table td{max-width:0;overflow-wrap:anywhere;word-break:normal}
.instalacoes-table td[data-inst-api],
.instalacoes-table td[data-inst-info],
.instalacoes-table td[data-inst-provision],
.instalacoes-table td[data-inst-monitor]{white-space:normal}
.instalacoes-table td[data-inst-api] .small,
.instalacoes-table td[data-inst-info] .small,
.instalacoes-table td[data-inst-provision] .small,
.instalacoes-table td[data-inst-monitor] .small{overflow-wrap:anywhere;word-break:normal}
.instalacoes-table .instalacao-actions-cell,
.instalacoes-table .instalacao-actions-header{max-width:none;overflow-wrap:normal;word-break:normal}

/* Instalações - compacta textos técnicos das colunas para melhorar a largura visual.
   Mantém títulos, badges e alinhamentos atuais, reduzindo apenas os detalhes secundários. */
.instalacoes-table td[data-inst-info] .small,
.instalacoes-table td[data-inst-api] .small,
.instalacoes-table td[data-inst-provision] .small{
  font-size:11px;
  line-height:1.35;
  letter-spacing:-.01em;
}
.instalacoes-table td[data-inst-info],
.instalacoes-table td[data-inst-api],
.instalacoes-table td[data-inst-provision]{
  line-height:1.32;
}
.instalacoes-table td[data-inst-api]{
  font-size:13px;
}
.instalacoes-table td[data-inst-api] > a,
.instalacoes-table td[data-inst-api] > strong{
  font-size:13px;
}
.instalacoes-table td[data-inst-provision] .small{
  max-width:260px;
  display:inline-block;
}
@media(max-width:900px){
  .instalacoes-table td[data-inst-info] .small,
  .instalacoes-table td[data-inst-api] .small,
  .instalacoes-table td[data-inst-provision] .small{
    font-size:10.5px;
    line-height:1.32;
  }
}
