
:root{
  --bg:#060606;--panel:#101010;--panel2:#151515;--line:#292929;
  --red:#ef171f;--red2:#a3060b;--text:#f4f4f4;--muted:#aaa;
  --green:#28c85e;--yellow:#ffb31a;--blue:#189cff;--purple:#9a47ef;
}
*{box-sizing:border-box}
html,body{margin:0;background:#050505;color:var(--text);font-family:Arial,Helvetica,sans-serif}
body{min-height:100vh}
.sidebar{
  position:fixed;left:0;top:0;bottom:0;width:365px;background:#060606;
  border-right:1px solid #303030;padding:20px 14px 18px;z-index:20
}
.logo-approved{height:205px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}
.logo-approved img{width:342px;height:185px;object-fit:cover;object-position:left top}
.sidebar nav{margin-top:6px}
.nav{
  width:100%;height:58px;display:flex;align-items:center;gap:18px;
  border:0;border-bottom:1px solid #202020;background:transparent;color:#ededed;
  padding:0 20px;border-radius:0;font-size:18px;text-align:left;cursor:pointer;text-decoration:none
}
.nav.active{background:linear-gradient(90deg,#e9131a,#c3080d);border-radius:10px;border-bottom-color:transparent}
.nav:hover:not(.disabled){background:#161616}
.nav.active:hover{background:linear-gradient(90deg,#e9131a,#c3080d)}
.navico{width:28px;text-align:center;font-size:22px;color:#ddd}
.greenico{color:#25c65c}.redico{color:#ff2229}
.nav.disabled{opacity:.78;cursor:default}
.linknav{display:flex}
.main{margin-left:365px;min-height:100vh;background:#080808}
.topbar{
  height:78px;border-bottom:2px solid #d8171e;display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;background:#090909;position:sticky;top:0;z-index:10
}
.page-title{display:flex;align-items:center;gap:20px}.page-title h1{font-size:26px;margin:0}.hamb{font-size:26px}
.top-meta{display:flex;gap:20px;align-items:center;font-size:17px}.divider{height:28px;width:1px;background:#3b3b3b}
.view{display:none;padding:26px 24px}.view.active{display:block}
.top-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.metric{
  min-height:104px;border:1px solid #333;border-radius:13px;background:linear-gradient(#111,#0c0c0c);
  display:flex;align-items:center;gap:18px;padding:16px 20px
}
.metric-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-size:27px;font-weight:900}
.redbg{background:linear-gradient(#ff3038,#b2080d)}.purplebg{background:linear-gradient(#8d3cff,#5022ad)}
.greenbg{background:linear-gradient(#4bc56b,#1f7b36)}.yellowbg{background:linear-gradient(#ffbd27,#e59100);color:#111}
.metric b{display:block;font-size:25px;margin-bottom:3px}.metric span{font-size:14px}.redtext{color:#ff2c32}.yellowtext{color:#ffb21b}
.due-card{border:2px solid #e5161d;border-radius:14px;background:#0a0a0a;padding:16px;margin-bottom:18px}
.due-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.due-head h2{margin:0;font-size:23px}.attention{background:#df1c23;padding:5px 12px;border-radius:6px;font-size:13px;margin-left:10px}
.red-btn,.wide-red-btn{
  background:linear-gradient(180deg,#cf151b,#9c080d);color:white;border:0;border-radius:7px;
  padding:10px 24px;font-size:15px;cursor:pointer
}
.due-table-wrap{overflow:auto;border:1px solid #252525;border-radius:8px}
.due-table{width:100%;border-collapse:collapse;min-width:900px}
.due-table th{background:#151515;color:#ddd;text-align:left;padding:12px 14px;font-size:13px}
.due-table td{padding:12px 14px;border-top:1px solid #282828;font-size:15px}
.today-value,.today-date{color:#ff272e;font-weight:800}.wa-dot{color:#21cc5e}.missing{color:#ffd256;font-weight:700;font-size:12px}
.actions{display:flex;gap:6px}.actions button{border:1px solid #3b3b3b;background:#181818;color:white;border-radius:6px;padding:6px 8px;cursor:pointer}
.actions .renew{background:#a80b10}.actions .wa{background:#0a743b}
.show-more{display:block;margin:10px auto 0;border:0;background:transparent;color:#ff262d;font-size:16px;cursor:pointer}
.bottom-panels{display:grid;grid-template-columns:1fr 1.05fr 1.08fr;gap:14px}
.mini-panel{background:#0d0d0d;border:1px solid #363636;border-radius:12px;overflow:hidden;min-height:315px;display:flex;flex-direction:column}
.mini-title{font-weight:800;font-size:17px;padding:17px;border-bottom:1px solid #242424}
.summary-row{min-height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #232323;font-size:15px}
.greenline{color:#31d16f}.yellowline{color:#ffb11d}.blueline{color:#1fa1ff}.purpleline{color:#b95aff}
.pill{min-width:38px;text-align:center;border-radius:18px;padding:5px 10px;color:#fff}.redpill{background:#e52b31}.orangepill{background:#ff8615}.yellowpill{background:#ffb719;color:#111}.bluepill{background:#168de7}
.wide-red-btn{margin:auto 16px 16px;display:block;width:calc(100% - 32px)}
.plan-chart{display:flex;align-items:center;justify-content:center;gap:28px;flex:1;padding:20px}
.donut{width:125px;height:125px;border-radius:50%;background:conic-gradient(#ef2733 0 53%,#1e93e8 53% 80%,#ffb21a 80% 94%,#2eaa4e 94%);position:relative}
.donut:after{content:"";position:absolute;inset:34px;background:#0d0d0d;border-radius:50%}
.legend{display:grid;gap:12px;font-size:14px}.legend-item{display:flex;gap:8px;align-items:center}.legend-dot{width:12px;height:12px;border-radius:3px}
footer{color:#8b8b8b;border-top:1px solid #252525;margin-top:18px;padding-top:16px;font-size:14px}
.client-toolbar{display:flex;gap:10px;margin-bottom:14px}.client-toolbar input{flex:1;max-width:500px;background:#141414;border:1px solid #343434;color:white;border-radius:9px;padding:11px 14px}
.btn{border:1px solid #444;background:#161616;color:white;border-radius:8px;padding:10px 15px;cursor:pointer}.btn.primary{background:#cf1016;border-color:#ef272e}
.panel{background:#0e0e0e;border:1px solid #333;border-radius:12px;padding:15px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.section-head h2{font-size:20px;margin:0}.section-head p{color:#999;margin:4px 0}
.filters{display:flex;gap:7px;flex-wrap:wrap}.chip{background:#121212;border:1px solid #333;color:#ddd;border-radius:20px;padding:8px 12px;cursor:pointer}.chip.active{background:#c70d13}
.table-wrap{overflow:auto;background:#0d0d0d;border:1px solid #2c2c2c;border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px;border-bottom:1px solid #242424;font-size:13px}th{color:#aaa;background:#141414}
.badge{padding:5px 9px;border-radius:20px;font-size:11px;font-weight:700}.badge.ok{background:#0b4b2d;color:#6cf2ad}.badge.late{background:#4a0c10;color:#ff7378}.badge.today{background:#53300a;color:#ffc268}.badge.susp{background:#0d2f69;color:#79a6ff}.badge.pending{background:#493d08;color:#ffe26d}
.report{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpi{background:#111;border:1px solid #333;border-radius:12px;padding:16px;display:flex;gap:12px;align-items:center}.kpi .ico{width:48px;height:48px;border-radius:12px;display:grid;place-items:center}.kpi b{font-size:22px}.kpi span{display:block;color:#bbb;font-size:12px}
.moneybox{display:flex;justify-content:space-between;align-items:center;padding:18px;background:#151515;border-radius:9px}.moneybox b{font-size:24px}
dialog{background:#0f0f0f;color:white;border:1px solid #444;border-radius:14px;min-width:min(680px,94vw);padding:0}dialog::backdrop{background:#000b}.dialog-title{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #2c2c2c}.dialog-title h3{margin:0}.x{border:0;background:transparent;color:#ddd;font-size:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 18px 0}dialog label{display:grid;gap:6px;color:#bbb;font-size:12px;padding:0 18px 12px}dialog input,dialog select,dialog textarea{background:#181818;border:1px solid #393939;border-radius:8px;color:white;padding:10px;width:100%}.form-grid label{padding:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 18px;border-top:1px solid #2d2d2d}
#toast{position:fixed;right:24px;bottom:24px;background:#181818;border:1px solid #444;padding:12px 16px;border-radius:9px;opacity:0;transform:translateY(10px);transition:.2s;z-index:50}#toast.show{opacity:1;transform:none}
@media(max-width:1200px){.sidebar{width:300px}.main{margin-left:300px}.top-cards{grid-template-columns:1fr 1fr}.bottom-panels{grid-template-columns:1fr}.logo-approved img{width:280px;object-fit:contain}.logo-approved{height:170px}}
@media(max-width:780px){.sidebar{position:static;width:auto}.main{margin-left:0}.logo-approved{height:165px}.sidebar nav{display:grid;grid-template-columns:1fr 1fr}.nav{height:48px;font-size:14px}.topbar{position:static}.view{padding:14px}.top-cards{grid-template-columns:1fr}.bottom-panels{grid-template-columns:1fr}.top-meta{display:none}.form-grid{grid-template-columns:1fr}}

.days{font-weight:800;font-size:12px;white-space:nowrap}.okdays{color:#4ee78d}.warndays{color:#ffd34d}.todaydays{color:#ff9d25}.latedays{color:#ff454b}

.credit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.credit-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(145deg,#0f0f10,#151515);border:1px solid #343434;border-radius:14px;padding:16px 18px}
.credit-card h3{margin:2px 0;font-size:19px}.credit-card small{color:#ff343a;font-weight:800}.credit-card span{color:#aaa;font-size:12px}
.credit-balance{text-align:center}.credit-balance b{display:block;font-size:34px}.credit-card button{background:#c80e14;color:#fff;border:0;border-radius:8px;padding:9px 13px;cursor:pointer}
.low-credit{border-color:#ff272e;box-shadow:0 0 0 1px #7a0c10 inset}.credit-alert{background:#391013;border:1px solid #a61a20;color:#ff8d92;border-radius:9px;padding:10px 13px;margin-bottom:8px;font-weight:700}
.password-wrap{display:flex;gap:6px}.password-wrap button{width:44px;background:#1c1c1c;color:#fff;border:1px solid #3c3c3c;border-radius:8px;cursor:pointer}
@media(max-width:780px){.credit-grid{grid-template-columns:1fr}}

.data-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.data-summary span{background:#111;border:1px solid #303030;border-radius:9px;padding:8px 12px;color:#bbb}.data-summary b{color:#fff}

/* V12: total previsto do mês */
.top-cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

/* V13: saldo restante a receber */
.redtext{color:#ff5b57}
.redline{border-color:#ff5b57}

/* V15: conta/senha na tabela */
.pass-wrap{display:flex;align-items:center;gap:5px;white-space:nowrap}
.eye-btn{background:#1a1a1a;color:#fff;border:1px solid #3b3b3b;border-radius:6px;padding:4px 7px;cursor:pointer}
.pass-mask{min-width:70px;display:inline-block}
code{background:#171717;border:1px solid #2f2f2f;border-radius:5px;padding:4px 6px;color:#fff}

/* V16 - tabela corrigida */

.clients-table th,.clients-table td{vertical-align:middle;white-space:nowrap}
.clients-table td:nth-child(2){min-width:210px;white-space:normal}
.clients-table td:nth-child(12){min-width:150px}

.search-wrap{position:relative;flex:1;min-width:280px}.search-wrap input{width:100%;padding-left:42px;padding-right:42px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:2}.clear-search{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#aaa;font-size:24px;cursor:pointer}.whatsapp-btn{background:#168b45!important;color:white!important}.whatsapp-btn:disabled{opacity:.35;cursor:not-allowed}.rental-badge{margin-top:5px;background:#184c6b!important;color:#8ddcff!important}.rental-name-only{padding:12px 4px!important}.rental-name-only b{font-size:16px}


/* V18 - menu lateral recolhível e mais espaço para a tabela */
.hamb{border:0;background:transparent;color:#fff;font-size:26px;cursor:pointer;padding:6px 8px;border-radius:7px}
.hamb:hover{background:#181818}
.sidebar,.main{transition:width .2s ease,margin-left .2s ease,padding .2s ease}
body.sidebar-collapsed .sidebar{width:82px;padding-left:9px;padding-right:9px}
body.sidebar-collapsed .main{margin-left:82px}
body.sidebar-collapsed .logo-approved{height:70px;align-items:center}
body.sidebar-collapsed .logo-approved img{width:62px;height:62px;object-fit:cover;object-position:left top;border-radius:10px}
body.sidebar-collapsed .nav{justify-content:center;padding:0;gap:0}
body.sidebar-collapsed .nav span:not(.navico){display:none}
body.sidebar-collapsed .navico{width:auto}

.clients-table td:nth-child(11){min-width:150px}
@media(max-width:780px){body.sidebar-collapsed .sidebar{width:auto}body.sidebar-collapsed .main{margin-left:0}body.sidebar-collapsed .logo-approved{height:70px}}

/* V20 - menu de mensagens WhatsApp */
#waDialog textarea{min-height:150px;resize:vertical}
.actions .wa{background:#0b7d44;border-color:#19a85f}

/* V21 - revisão estrutural e expansão correta do conteúdo */
.main{
  width:calc(100% - 365px);
  max-width:none;
  overflow-x:hidden;
}
body.sidebar-collapsed .main{
  width:calc(100% - 82px);
  margin-left:82px;
}
.view{width:100%;max-width:none}
.clients-wrap{width:100%;max-width:100%;overflow:auto}
.clients-table{width:100%;min-width:1180px}
body.sidebar-collapsed .clients-table{min-width:1120px}
.client-toolbar{width:100%}
.bottom-panels{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.rental-name-only{padding:13px 18px;border-bottom:1px solid #232323}
@media(max-width:1200px){
  .main{width:calc(100% - 300px)}
  body.sidebar-collapsed .main{width:calc(100% - 82px);margin-left:82px}
}
@media(max-width:780px){
  .main,body.sidebar-collapsed .main{width:100%;margin-left:0}
}

/* V22 - seletor de mensagens WhatsApp */
.wa-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:14px 18px 4px;
}
.wa-template-btn{
  background:#181818;
  color:#eee;
  border:1px solid #3b3b3b;
  border-radius:8px;
  padding:10px 12px;
  cursor:pointer;
  text-align:left;
}
.wa-template-btn:hover{border-color:#777}
.wa-template-btn.active{
  background:#b80d13;
  border-color:#ef2b32;
  color:#fff;
}
#waMessage{min-height:170px;resize:vertical}
@media(max-width:650px){.wa-options{grid-template-columns:1fr}}

/* V23 - botão excluir */
.delete-btn{
  background:#4a1114;
  color:#fff;
  border:1px solid #8f2026;
}
.delete-btn:hover{
  background:#7a171d;
  border-color:#c92b34;
}

/* V24 - ajuste manual de créditos */
#creditOperation{font-weight:700}

/* V25 - ativação financeira */
.activation-box{
  margin:14px 0;
  padding:14px;
  border:1px solid #6b5810;
  border-radius:10px;
  background:#17150d;
}
.activation-box h4{margin:0 0 10px;color:#ffd34e}
.activation-box small{display:block;color:#c8b96c;margin-top:8px;line-height:1.4}

/* V26 - WhatsApp final */
.wa-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:12px 18px 4px;
}
.wa-template-btn{
  background:#181818;
  color:#eee;
  border:1px solid #3b3b3b;
  border-radius:8px;
  padding:11px 12px;
  cursor:pointer;
  text-align:left;
}
.wa-template-btn.active{
  background:#137c45;
  border-color:#24bd70;
}
#waMessage{min-height:170px;resize:vertical}
@media(max-width:650px){.wa-options{grid-template-columns:1fr}}

/* V27 - cortesia */
#activationPaid:disabled,#activationMethod:disabled{opacity:.55;cursor:not-allowed}

/* V28 - etiqueta anual abaixo do nome */
.annual-name-badge{
 display:inline-block;margin-top:5px;background:#6b4a0b;color:#ffd86a;
 border:1px solid #9b6b10;font-size:12px;font-weight:800;letter-spacing:.4px;
}

/* V29 - escolha obrigatória antes de abrir WhatsApp */
.wa-choose-hint{
 margin:10px 18px 0;padding:10px 12px;border:1px solid #765d13;border-radius:8px;
 background:#1c180d;color:#ffd45d;font-weight:700;text-align:center;
}

/* V30 - histórico, estorno e relatório por período */
.report-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 18px}
.report-filter label{min-width:160px}
.history-client{padding:12px 18px;font-size:17px;border-bottom:1px solid #333}
.history-list{padding:10px 18px;max-height:55vh;overflow:auto}
.history-item{display:flex;gap:18px;padding:11px 0;border-bottom:1px solid #292929}
.history-item b{min-width:95px}.history-item span{color:#ddd}
.history-btn{background:#26264a;border-color:#4b4b8e}

/* V32 - menu lateral recolhível corrigido */
.sidebar{
  transition:width .2s ease;
}
.main{
  transition:margin-left .2s ease,width .2s ease;
}
body.sidebar-collapsed .sidebar{
  width:82px;
}
body.sidebar-collapsed .sidebar .brand .brand-full,
body.sidebar-collapsed .sidebar .brand .tagline,
body.sidebar-collapsed .sidebar .nav span,
body.sidebar-collapsed .sidebar .nav-label,
body.sidebar-collapsed .sidebar .nav-text{
  display:none !important;
}
body.sidebar-collapsed .sidebar .nav{
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.sidebar-collapsed .main{
  margin-left:82px !important;
  width:calc(100% - 82px) !important;
}

/* V33 - barra horizontal superior sincronizada */
.top-table-scroll{
  overflow-x:auto;
  overflow-y:hidden;
  height:16px;
  margin:8px 0 4px;
  border-radius:8px;
}
.top-table-scroll-spacer{height:1px}
.top-table-scroll::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar{height:12px}
.top-table-scroll::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb{
  background:#5a5a66;
  border-radius:10px;
}
.top-table-scroll::-webkit-scrollbar-track,
.table-wrap::-webkit-scrollbar-track{
  background:#17171c;
  border-radius:10px;
}

/* V34 - seletor WhatsApp reconstruído */
.wa-dialog-v34{width:min(720px,94vw)}
.wa-client-v34{padding:0 18px 10px;font-size:18px}
.wa-options-v34{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:8px 18px 10px}
.wa-options-v34 button{padding:12px;border:1px solid #45454d;border-radius:9px;background:#1c1c22;color:#fff;text-align:left;cursor:pointer}
.wa-options-v34 button:hover{border-color:#777}
.wa-options-v34 button.active{background:#126b40;border-color:#25bd70}
.wa-hint-v34{margin:4px 18px 8px;padding:10px;border:1px solid #735b16;border-radius:8px;color:#ffd75e;background:#1c180d;text-align:center;font-weight:700}
#waTextV34{min-height:170px;resize:vertical}
@media(max-width:650px){.wa-options-v34{grid-template-columns:1fr}}

/* V35 - estabilidade do menu recolhível */
body.sidebar-collapsed .sidebar{width:82px!important}
body.sidebar-collapsed .main{margin-left:82px!important;width:calc(100% - 82px)!important}
body.sidebar-collapsed .sidebar .logo-approved{overflow:hidden}
body.sidebar-collapsed .sidebar .logo-approved img{max-width:none;width:300px;transform:translateX(-8px)}
body.sidebar-collapsed .sidebar .nav span:last-child{display:none}

/* V40 — menu recolhido realmente compacto */
body.sidebar-collapsed .sidebar{
  width:72px!important;
}
body.sidebar-collapsed .main{
  margin-left:72px!important;
  width:calc(100% - 72px)!important;
}
body.sidebar-collapsed .sidebar .logo-approved,
body.sidebar-collapsed .sidebar .tagline,
body.sidebar-collapsed .sidebar .nav span:not(:first-child){
  display:none!important;
}
body.sidebar-collapsed .sidebar .nav{
  width:48px!important;
  min-width:48px!important;
  height:48px!important;
  min-height:48px!important;
  margin:8px auto!important;
  padding:0!important;
  border-radius:12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}
body.sidebar-collapsed .sidebar .nav span:first-child{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  height:24px!important;
  margin:0!important;
  font-size:20px!important;
}
body.sidebar-collapsed .sidebar .nav.active{
  width:48px!important;
  height:48px!important;
}

/* V45 — separação correta entre Mensalidades e Clientes */
.client-management-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.client-management-tools .searchbox{flex:1;min-width:260px}
.client-management-tools select{min-width:190px}
.clients-management-table{min-width:1180px}
.management-type{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800;white-space:nowrap}
.management-type.mensal{background:#24242b;color:#ddd}
.management-type.anual{background:#6b4a0b;color:#ffd86a}
.management-type.aluguel{background:#183d64;color:#8ec8ff}
.management-type.cortesia{background:#49315d;color:#e5b8ff}
.management-actions{display:flex;gap:6px;white-space:nowrap}

/* V48 — botões WhatsApp em verde */
button.wa,
.wa,
.whatsapp-btn{
  background:#25D366!important;
  border-color:#25D366!important;
  color:#071b0e!important;
  font-weight:800!important;
}
button.wa:hover,
.wa:hover,
.whatsapp-btn:hover{
  background:#20bd5a!important;
  border-color:#20bd5a!important;
}

/* V54 — indicadores clicáveis e janela segura */
.pending-click-v54{
  cursor:pointer!important;
  transition:transform .12s ease,filter .12s ease;
  user-select:none;
}
.pending-click-v54:hover{transform:scale(1.08);filter:brightness(1.12)}
#pendingDetailDialogV54{width:min(900px,94vw);max-height:82vh}
.pending-detail-table-v54{min-width:700px}
.rental-name-only{padding:11px 4px;border-bottom:1px solid #2a2a2f}

/* V55 — gerenciamento de servidores */
.server-toolbar-v55{display:flex;justify-content:flex-end;margin:0 0 12px}
.server-manage-v55{display:grid;gap:10px;min-width:min(620px,82vw)}
.server-manage-v55 label{display:grid;grid-template-columns:110px 1fr 100px;gap:10px;align-items:center}
.server-manage-v55 small{text-align:right;color:#999}

/* V56 — aba Servidores */
.server-summary-v56{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:0 0 18px}
.server-summary-v56 article{background:#16161b;border:1px solid #2f2f37;border-radius:12px;padding:16px}
.server-summary-v56 b{display:block;font-size:26px;margin-bottom:4px}
.server-summary-v56 span{color:#aaa}
.server-grid-v56{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.server-card-v56{background:#16161b;border:1px solid #2f2f37;border-radius:14px;padding:18px}
.server-card-v56 h3{margin:0 0 4px}
.server-card-v56 .server-id{color:#ff5258;font-size:12px;font-weight:800}
.server-card-v56 .server-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.server-card-v56 .server-stats div{background:#101014;border-radius:9px;padding:10px;text-align:center}
.server-card-v56 .server-stats b{display:block;font-size:20px}
.server-card-v56 .server-actions{display:flex;gap:8px;flex-wrap:wrap}
.server-card-v56 .credit-low{color:#ffcc4d}
.server-card-v56 .credit-critical{color:#ff5c64}
@media(max-width:800px){.server-summary-v56{grid-template-columns:repeat(2,1fr)}}

/* V57 — quadro Aparelhos Alugados clicável */
.rental-click-v57{cursor:pointer}
.rental-click-v57:hover{filter:brightness(1.12)}
.rental-detail-table-v57{min-width:760px}

/* V60 — bolinha Aparelhos Alugados */
.rental-title-v60{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.rental-count-v60{
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:50%;
  border:0;
  background:#21b7ff;
  color:#fff;
  font-size:18px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 0 0 2px rgba(33,183,255,.18);
  transition:transform .12s ease,filter .12s ease;
}
.rental-count-v60:hover{
  transform:scale(1.08);
  filter:brightness(1.12);
}

/* V63 — botões de ações compactos; funções originais preservadas */
.actions button{
  min-width:46px !important;
  width:46px;
  padding:8px 7px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.action-symbol{
  font-size:20px;
  line-height:1;
}
.money-symbol{
  font-size:23px;
  font-weight:900;
}
.wa .wa-symbol{
  width:25px;
  height:25px;
  border:2px solid currentColor;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  font-weight:900;
  line-height:1;
}

/* V64 — botão Excluir compacto com lixeira */
.delete-symbol{
  font-size:20px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* V65 — excluir cliente pela lixeira */
.compact-delete{
  min-width:46px!important;
  width:46px!important;
  padding:8px 7px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#ff2b33!important;
  border-color:#ff2b33!important;
  color:#fff!important;
}
.compact-delete:hover{
  background:#ff111c!important;
  border-color:#ff111c!important;
}

/* V66 — ícone WhatsApp fornecido pelo usuário */
.wa-icon-img{
  width:25px;
  height:25px;
  display:block;
  object-fit:contain;
}
button.wa{
  min-width:46px!important;
  width:46px!important;
  padding:7px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* V67 — ícones compactos */
button.wa{cursor:pointer}

/* V68 — cards financeiros do dashboard com largura suficiente */
.stats-grid{
  grid-template-columns:repeat(4,minmax(210px,1fr))!important;
  gap:12px!important;
}
.stat-card{
  min-width:0!important;
  overflow:hidden;
}
.stat-card .value{
  font-size:clamp(22px,2vw,32px)!important;
  white-space:nowrap!important;
  letter-spacing:-0.4px;
}
.stat-card .label{
  line-height:1.22!important;
}

/* Em notebooks/resoluções menores: 3 cards por linha */
@media (max-width:1450px){
  .stats-grid{
    grid-template-columns:repeat(3,minmax(220px,1fr))!important;
  }
}

/* Resolução semelhante à foto: 2 cards por linha para não cortar valores */
@media (max-width:1120px){
  .stats-grid{
    grid-template-columns:repeat(2,minmax(230px,1fr))!important;
  }
}

/* Celular/tablet */
@media (max-width:650px){
  .stats-grid{
    grid-template-columns:1fr!important;
  }
  .stat-card .value{
    font-size:26px!important;
  }
}

/* V69 — mostrar os 5 servidores de forma compacta no Dashboard */
.server-cards,
.servers-grid,
.server-grid{
  grid-template-columns:repeat(5,minmax(150px,1fr))!important;
  gap:8px!important;
}

.server-card{
  min-width:0!important;
  padding:12px 12px!important;
}

.server-card h3,
.server-card .server-name{
  font-size:17px!important;
  line-height:1.1!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.server-card .server-label,
.server-card .provider{
  font-size:12px!important;
}

.server-card .credits,
.server-card .credit-count{
  font-size:26px!important;
}

.server-card button{
  padding:8px 10px!important;
  font-size:13px!important;
  white-space:nowrap;
}

/* Em telas menores, mantém todos acessíveis sem cortar conteúdo */
@media (max-width:1150px){
  .server-cards,
  .servers-grid,
  .server-grid{
    grid-template-columns:repeat(3,minmax(170px,1fr))!important;
  }
}

@media (max-width:760px){
  .server-cards,
  .servers-grid,
  .server-grid{
    grid-template-columns:repeat(2,minmax(160px,1fr))!important;
  }
}

/* V70 — 5 cards reais e compactos */
#dashboardServersV70{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  margin-bottom:14px;
}

#dashboardServersV70 .dashboard-server-card-v70{
  min-width:0!important;
  padding:11px 10px!important;
  gap:7px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:
    "info credits"
    "button button";
  align-items:center!important;
}

#dashboardServersV70 .server-info-v70{
  grid-area:info;
  min-width:0;
}

#dashboardServersV70 .server-info-v70 h3{
  font-size:15px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:2px 0!important;
}

#dashboardServersV70 .server-info-v70 small{
  font-size:10px!important;
}

#dashboardServersV70 .server-info-v70 span{
  font-size:10px!important;
}

#dashboardServersV70 .credit-balance{
  grid-area:credits;
  min-width:42px;
}

#dashboardServersV70 .credit-balance b{
  font-size:26px!important;
}

#dashboardServersV70 .credit-balance span{
  font-size:10px!important;
}

#dashboardServersV70 .dashboard-server-card-v70 > button{
  grid-area:button;
  width:100%;
  padding:7px 5px!important;
  font-size:12px!important;
}

/* Se a área útil ficar realmente estreita, reorganiza sem esconder nenhum servidor */
@media(max-width:1050px){
  #dashboardServersV70{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:720px){
  #dashboardServersV70{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* V71 — valores financeiros completos, sem corte */
.stats-grid .stat-card{
  box-sizing:border-box!important;
  padding-left:14px!important;
  padding-right:14px!important;
  overflow:visible!important;
}

.stats-grid .stat-card > div:last-child{
  min-width:0!important;
  flex:1 1 auto!important;
}

.stats-grid .stat-card .value{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  font-size:clamp(18px,1.65vw,28px)!important;
  letter-spacing:-0.7px!important;
  line-height:1.05!important;
}

/* Valores longos ganham mais área útil em notebook */
@media(max-width:1450px){
  .stats-grid{
    grid-template-columns:repeat(3,minmax(250px,1fr))!important;
  }
  .stats-grid .stat-card .value{
    font-size:clamp(19px,2.15vw,27px)!important;
  }
}

@media(max-width:1050px){
  .stats-grid{
    grid-template-columns:repeat(2,minmax(270px,1fr))!important;
  }
  .stats-grid .stat-card .value{
    font-size:26px!important;
  }
}

@media(max-width:620px){
  .stats-grid{
    grid-template-columns:1fr!important;
  }
}

/* V72 — correção real dos valores nos cards .metric */
.top-cards{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.top-cards .metric{
  min-width:0!important;
  gap:10px!important;
  padding:14px 12px!important;
  overflow:hidden!important;
}
.top-cards .metric-icon{
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  font-size:24px!important;
}
.top-cards .metric > div:last-child{
  min-width:0!important;
  flex:1 1 auto!important;
}
.top-cards .metric b{
  display:block!important;
  max-width:100%!important;
  white-space:nowrap!important;
  font-size:clamp(18px,1.55vw,25px)!important;
  letter-spacing:-.6px!important;
  line-height:1.05!important;
}
.top-cards .metric span{
  display:block!important;
  line-height:1.2!important;
}

/* Notebook: mantém 4 por linha, mas reduz valor para caber inteiro */
@media(max-width:1450px) and (min-width:1001px){
  .top-cards .metric b{
    font-size:clamp(17px,1.65vw,23px)!important;
  }
  .top-cards .metric{
    padding:12px 9px!important;
    gap:8px!important;
  }
  .top-cards .metric-icon{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    font-size:22px!important;
  }
}

/* Se ficar realmente estreito, usa duas colunas sem cortar */
@media(max-width:1000px){
  .top-cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .top-cards .metric b{
    font-size:24px!important;
  }
}
@media(max-width:620px){
  .top-cards{
    grid-template-columns:1fr!important;
  }
}

/* V74 — Importação por foto */
.client-head-actions-v74{display:flex;gap:8px;flex-wrap:wrap}
.photo-import-dialog-v74{width:min(1180px,96vw);max-height:90vh}
.photo-import-upload-v74{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.photo-import-status-v74{padding:12px;border:1px solid #34343b;background:#121217;border-radius:10px;margin-bottom:12px}
.photo-import-table-v74{min-width:1100px}
.photo-import-table-v74 input,.photo-import-table-v74 select{min-width:100px;width:100%;box-sizing:border-box}
.photo-import-table-v74 td:nth-child(2) input{min-width:180px}
.duplicate-v74{background:rgba(255,170,0,.08)}
.warn-v74{color:#ffb020}

/* V75 — importação local */
.photo-import-local-actions-v75{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0;
}
#confirmPhotoImportV74:disabled{
  opacity:.7;
  cursor:pointer;
}

/* V76 — progresso e prévia OCR */
#analyzePhotoV74:disabled{opacity:.65;cursor:wait}
.photo-import-status-v74 b{color:#fff}

/* V77 — duplicados inteligentes */
.dup-strong-v77{color:#ff4d55;font-weight:900;white-space:nowrap}
.dup-similar-v77{color:#ffc14d;font-weight:900;white-space:nowrap}
.dup-ok-v77{color:#45d483;font-weight:700;white-space:nowrap}
.dup-status-v77 small{display:block;margin-top:4px;max-width:220px;line-height:1.2;color:#aaa}
.similar-v77{background:rgba(255,193,77,.06)}

/* V78 — Usuário e Senha opcionais */
.password-field-v78{display:flex;gap:6px;align-items:center}
.password-field-v78 input{flex:1}
.eye-v78{min-width:44px!important;padding:8px!important}
.photo-import-v78{min-width:1450px!important}
.preview-password-v78{display:flex;gap:4px;align-items:center}
.preview-password-v78 input{min-width:110px!important}
.mini-eye-v78{border:0;background:transparent;color:#fff;cursor:pointer;font-size:16px;padding:3px}
.muted{opacity:.65;font-size:.85em}

/* V79 — Usuário/Senha no formulário correto */
.password-field-v79{
  display:flex;
  gap:6px;
  align-items:center;
}
.password-field-v79 input{flex:1;min-width:0}
.eye-v79{
  flex:0 0 42px;
  height:38px;
  border:1px solid #444652;
  border-radius:8px;
  background:#1a1b22;
  color:#fff;
  cursor:pointer;
}
.needs-review-v79{
  color:#ffc14d;
  font-weight:900;
  white-space:nowrap;
}

/* V81 — seletor de créditos na renovação */
#renewCreditQty{
  width:100%;
}
#payDialog label small{
  display:block;
  margin-top:5px;
  opacity:.72;
  line-height:1.25;
}

/* V83 — tipografia mais compacta e equilibrada
   Não altera estrutura, botões ou funções. */
body{font-size:14px}

/* Navegação e textos gerais */
.nav button,.sidebar button{font-size:13px}
label{font-size:13px}
input,select,textarea,button{font-size:13px}
.btn{font-size:13px}

/* Títulos continuam destacados, mas sem ocupar espaço excessivo */
h1{font-size:clamp(22px,2.2vw,30px)}
h2{font-size:clamp(19px,1.8vw,25px)}
h3{font-size:clamp(16px,1.5vw,21px)}
.subtitle,.muted,small{font-size:12px}

/* Cards / indicadores */
.metric .label,.metric-label{font-size:12px}
.metric .value,.metric-value{font-size:clamp(20px,2vw,28px)}

/* Tabelas do sistema */
table{font-size:12.5px}
th{font-size:11.5px}
td{line-height:1.25}
table input,table select,table button{font-size:12px}

/* Importar por foto: mais compacto para mostrar várias colunas */
.photo-import-dialog-v74{font-size:12px}
.photo-import-table-v74{font-size:11px}
.photo-import-table-v74 th{font-size:10.5px;white-space:nowrap}
.photo-import-table-v74 td{padding-top:5px;padding-bottom:5px}
.photo-import-table-v74 input,
.photo-import-table-v74 select{font-size:11px;min-height:30px}
.photo-import-status-v74{font-size:12px}
.dup-status-v77,.dup-status-v77 small{font-size:10.5px}
.dup-strong-v77,.dup-similar-v77,.needs-review-v79{font-size:10.5px}

/* Mantém boa leitura em telas menores */
@media (max-width:700px){
  body{font-size:13px}
  .btn,button,input,select,textarea{font-size:12.5px}
  table{font-size:11.5px}
}

/* V84 — somente tela Importar por foto: melhor aproveitamento da tela */
#photoImportDialogV74{
  width:min(98vw,1600px)!important;
  max-width:98vw!important;
  height:92vh!important;
  max-height:92vh!important;
  margin:auto!important;
  padding:14px!important;
  overflow:hidden!important;
}

#photoImportDialogV74 .dialog-body,
#photoImportDialogV74 .modal-body{
  max-height:none!important;
}

#photoImportPreviewV74{
  max-height:calc(92vh - 245px)!important;
  overflow:auto!important;
  scrollbar-gutter:stable;
}

#photoImportDialogV74 .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
}

/* Reduz a largura mínima anterior para a tabela caber melhor no notebook */
#photoImportDialogV74 .photo-import-table-v74,
#photoImportDialogV74 .photo-import-v78{
  width:100%!important;
  min-width:1120px!important;
  table-layout:fixed!important;
}

#photoImportDialogV74 .photo-import-table-v74 th,
#photoImportDialogV74 .photo-import-table-v74 td{
  padding:4px 5px!important;
  overflow:hidden;
}

#photoImportDialogV74 .photo-import-table-v74 input,
#photoImportDialogV74 .photo-import-table-v74 select{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Colunas compactadas */
#photoImportDialogV74 th:nth-child(1){width:38px}
#photoImportDialogV74 th:nth-child(2){width:190px} /* Nome */
#photoImportDialogV74 th:nth-child(3){width:105px} /* Usuário */
#photoImportDialogV74 th:nth-child(4){width:105px} /* Senha */
#photoImportDialogV74 th:nth-child(5){width:125px} /* WhatsApp */
#photoImportDialogV74 th:nth-child(6){width:105px} /* Servidor */
#photoImportDialogV74 th:nth-child(7){width:65px}  /* Telas */
#photoImportDialogV74 th:nth-child(8){width:95px}  /* Tipo */
#photoImportDialogV74 th:nth-child(9){width:85px}  /* Valor */
#photoImportDialogV74 th:nth-child(10){width:115px} /* Vencimento */
#photoImportDialogV74 th:nth-child(11){width:120px} /* Data/Hora */
#photoImportDialogV74 th:nth-child(12){width:180px} /* Situação */

/* Cabeçalho da tabela permanece visível enquanto rola os clientes */
#photoImportDialogV74 .photo-import-table-v74 thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:#252733;
}

/* Ações ficam sempre acessíveis no rodapé da janela */
#photoImportDialogV74 .dialog-actions{
  position:sticky!important;
  bottom:0;
  z-index:5;
  background:#20212a;
  padding:10px 0 2px!important;
  margin-top:8px!important;
}

/* Em telas menores mantém rolagem como segurança */
@media(max-width:1200px){
  #photoImportDialogV74{
    width:99vw!important;
    max-width:99vw!important;
    height:94vh!important;
    max-height:94vh!important;
    padding:10px!important;
  }
  #photoImportPreviewV74{
    max-height:calc(94vh - 230px)!important;
  }
  #photoImportDialogV74 .photo-import-table-v74,
  #photoImportDialogV74 .photo-import-v78{
    min-width:1050px!important;
  }
}

/* V85 — SOMENTE posição da barra na tela Importar por foto.
   Todo o restante permanece exatamente como na V84. */

/* A lista rola verticalmente; a barra horizontal fica na parte inferior. */
#photoImportPreviewV74{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}

/* O contêiner da tabela assume exclusivamente a rolagem horizontal. */
#photoImportDialogV74 .table-wrap{
  overflow-x:auto!important;
  overflow-y:visible!important;
  scrollbar-gutter:auto!important;
  padding-bottom:2px!important;
}

/* Evita que algum wrapper interno crie uma segunda barra horizontal no meio. */
#photoImportDialogV74 .photo-import-v78{
  overflow:visible!important;
}

/* Rodapé de ações continua separado e acima/abaixo sem sobrepor a barra. */
#photoImportDialogV74 .dialog-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:6!important;
  margin-top:6px!important;
}

/* V86 — SOMENTE Cancelar / Importar selecionados deixam de ficar fixos */
#photoImportDialogV74 .dialog-actions{
  position:static!important;
  bottom:auto!important;
  z-index:auto!important;
  margin-top:10px!important;
  padding:10px 0 2px!important;
  background:transparent!important;
  display:flex!important;
  justify-content:flex-end!important;
  gap:10px!important;
}

/* Garante espaço após a tabela para os botões não encostarem nos registros */
#photoImportDialogV74 .table-wrap{
  margin-bottom:6px!important;
}

/* V87 — ações da importação no topo */
.photo-import-actions-top-v87{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex-wrap:wrap!important;
}
.photo-import-actions-left-v87,
.photo-import-actions-right-v87{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.photo-import-actions-right-v87{
  margin-left:auto;
}
.ocr-name-fixed-v87{
  display:block;
  margin-top:3px;
  color:#7fc9ff!important;
  font-size:9.5px!important;
}
@media(max-width:850px){
  .photo-import-actions-right-v87{
    width:100%;
    margin-left:0;
    justify-content:flex-end;
  }
}

/* V88 — revisão obrigatória quando o nome não é confiável */
.needs-review-v88{color:#ffca3a;font-weight:900;white-space:nowrap}
.name-confidence-v88{display:block;color:#79d5ff!important;margin-top:3px}
.review-row-v88{background:rgba(255,202,58,.06)}
.review-row-v88 input[data-v74-field$=":name"]{
  border-color:#d3a91a!important;
}

/* V89 — janela Importar por foto compacta, seguindo o modelo aprovado.
   Mantém as funções da V88; altera somente a organização visual. */

#photoImportDialogV74{
  width:calc(100vw - 28px)!important;
  max-width:1500px!important;
  height:calc(100vh - 28px)!important;
  max-height:calc(100vh - 28px)!important;
  padding:10px 14px!important;
  margin:auto!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}

/* Cabeçalho compacto */
#photoImportDialogV74 h2,
#photoImportDialogV74 h3{
  margin:0 0 2px!important;
  font-size:20px!important;
  line-height:1.05!important;
}
#photoImportDialogV74 p{
  margin:0 0 5px!important;
  font-size:11.5px!important;
  line-height:1.15!important;
}

/* Área do arquivo bem mais baixa */
#photoImportDialogV74 input[type="file"]{
  min-height:25px!important;
  margin:2px 0!important;
  font-size:11px!important;
}

/* Uma única barra compacta de ações no topo */
#photoImportDialogV74 .photo-import-actions-top-v87,
#photoImportDialogV74 .photo-import-local-actions-v75{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  margin:4px 0!important;
  padding:0!important;
}
#photoImportDialogV74 .photo-import-actions-left-v87,
#photoImportDialogV74 .photo-import-actions-right-v87{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
}
#photoImportDialogV74 .photo-import-actions-right-v87{
  margin-left:auto!important;
}
#photoImportDialogV74 .photo-import-actions-top-v87 .btn,
#photoImportDialogV74 .photo-import-local-actions-v75 .btn{
  min-height:28px!important;
  padding:5px 9px!important;
  font-size:11px!important;
  white-space:nowrap!important;
}

/* Mensagem de quantidade encontrada em faixa baixa */
#photoImportStatusV74,
#photoImportDialogV74 .photo-import-status-v74{
  margin:3px 0!important;
  padding:5px 8px!important;
  min-height:0!important;
  font-size:10.5px!important;
  line-height:1.15!important;
}

/* Tabela recebe quase toda a altura da janela */
#photoImportPreviewV74{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  margin-top:2px!important;
}
#photoImportDialogV74 .table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  margin:0!important;
  padding-bottom:2px!important;
}

/* Cabeçalho da tabela fica visível */
#photoImportDialogV74 .photo-import-table-v74 thead th{
  position:sticky!important;
  top:0!important;
  z-index:4!important;
}

/* Linhas mais enxutas sem prejudicar edição */
#photoImportDialogV74 .photo-import-table-v74 th{
  padding:5px 4px!important;
  font-size:10px!important;
}
#photoImportDialogV74 .photo-import-table-v74 td{
  padding:3px 4px!important;
}
#photoImportDialogV74 .photo-import-table-v74 input,
#photoImportDialogV74 .photo-import-table-v74 select{
  min-height:27px!important;
  padding:3px 5px!important;
  font-size:10.5px!important;
}

/* Não cria rodapé fixo por cima dos clientes */
#photoImportDialogV74 .dialog-actions{
  position:static!important;
  display:none!important;
}

/* Em notebook menor, continua usando a tela inteira sem cortar */
@media(max-width:1200px), (max-height:760px){
  #photoImportDialogV74{
    width:calc(100vw - 12px)!important;
    max-width:none!important;
    height:calc(100vh - 12px)!important;
    max-height:calc(100vh - 12px)!important;
    padding:7px 9px!important;
  }
  #photoImportDialogV74 h2,
  #photoImportDialogV74 h3{font-size:17px!important}
  #photoImportDialogV74 p{font-size:10.5px!important}
  #photoImportDialogV74 .photo-import-actions-top-v87 .btn,
  #photoImportDialogV74 .photo-import-local-actions-v75 .btn{
    padding:4px 7px!important;
    min-height:26px!important;
    font-size:10px!important;
  }
}

/* V91 — correção real do fechamento do dialog
   O display:flex da V89 fazia a janela continuar visível mesmo fechada. */

/* Dialog fechado precisa desaparecer completamente */
#photoImportDialogV74:not([open]){
  display:none!important;
}

/* Só usa flex enquanto a janela estiver realmente aberta */
#photoImportDialogV74[open]{
  display:flex!important;
}

/* Evita camada/backdrop sobrando após fechar */
#photoImportDialogV74:not([open])::backdrop{
  display:none!important;
}

/* V93 — pente-fino visual */

/* Botões de ação WhatsApp/Lixeira: menores, alinhados e uniformes */
td.action-cell,
td.actions,
.action-cell,
.actions-cell,
[class*="action-cell"],
[class*="actions-cell"]{
  vertical-align:middle!important;
}

td.action-cell > *,
td.actions > *,
.action-cell > *,
.actions-cell > *,
[class*="action-cell"] > *,
[class*="actions-cell"] > *{
  vertical-align:middle!important;
}

/* Alinha grupos de botões que aparecem dentro da coluna Ação */
.action-buttons,
.actions-buttons,
.row-actions,
.client-actions,
.payment-actions,
.charge-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  flex-wrap:nowrap!important;
  padding-right:8px!important;
}

/* Padroniza especificamente botões quadrados de ação */
.action-buttons button,
.actions-buttons button,
.row-actions button,
.client-actions button,
.payment-actions button,
.charge-actions button{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  padding:6px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  border-radius:7px!important;
}

/* Ícones internos centralizados */
.action-buttons button img,
.actions-buttons button img,
.row-actions button img,
.client-actions button img,
.payment-actions button img,
.charge-actions button img{
  width:21px!important;
  height:21px!important;
  object-fit:contain!important;
  margin:auto!important;
}

/* Tabelas dentro de dialogs: espaço de segurança antes da rolagem vertical */
dialog .table-wrap,
.modal .table-wrap,
[role="dialog"] .table-wrap{
  padding-right:12px!important;
  box-sizing:border-box!important;
}

/* X de fechamento mais previsível e alinhado */
dialog .close,
dialog .close-btn,
dialog [class*="close"],
.modal .close,
.modal .close-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}

/* Rodapés/botões inferiores não cobrem a última linha da tabela */
dialog .dialog-actions,
.modal .dialog-actions,
dialog .modal-footer,
.modal .modal-footer{
  flex-shrink:0!important;
  margin-top:8px!important;
}

/* Garante folga na última linha quando houver rodapé abaixo */
dialog .table-wrap,
.modal .table-wrap{
  margin-bottom:8px!important;
}

/* Cabeçalho: se existir um calendário extra logo após o horário, não exibir.
   Mantém intactos os inputs type=date e seus calendários funcionais. */
.header-extra-calendar-v93{
  display:none!important;
}

/* V95 — botão Estornar */
.undo-renew-v95{
  background:#2a2b31!important;
  color:#ffcb52!important;
  border:1px solid #6b5a27!important;
  border-radius:7px!important;
  padding:7px 10px!important;
  font-weight:700!important;
  cursor:pointer!important;
  margin-left:8px!important;
}
.undo-renew-v95:hover{
  background:#34311f!important;
}

/* V96 — visual de pagamento estornado */
.reversed-row-v96{
  opacity:.62!important;
  text-decoration:none!important;
}
.reversed-row-v96::after{
  content:" ESTORNADO";
  color:#ff5a5f;
  font-weight:800;
}
.financial-reversed-v96{
  color:#ff5a5f!important;
  font-weight:800!important;
}

/* V97 — Estornar visível na linha da renovação */
.history-renewal-v97{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.history-renewal-v97 .undo-history-v97{
  margin-left:auto!important;
  flex:0 0 auto!important;
}
.undo-history-v97{
  font-size:12px!important;
  min-height:30px!important;
  padding:5px 10px!important;
}

/* V98 — botões de estorno em todas as renovações elegíveis */
.history-renewal-v98{
  position:relative!important;
}
.undo-history-v98{
  margin-left:10px!important;
  white-space:nowrap!important;
  vertical-align:middle!important;
  font-size:11px!important;
  padding:5px 9px!important;
}

/* V99 — histórico com estorno em todas as renovações */
#historyRows .history-item{
  display:grid!important;
  grid-template-columns:130px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
}
#historyRows .undo-v99{
  background:#342d18!important;
  color:#ffd05a!important;
  border:1px solid #796326!important;
  border-radius:7px!important;
  padding:6px 10px!important;
  font-size:11px!important;
  font-weight:800!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
#historyRows .v99-reversed{
  opacity:.6!important;
}
#historyRows .v99-reversed span{
  text-decoration:none!important;
}
@media(max-width:800px){
  #historyRows .history-item{
    grid-template-columns:100px minmax(0,1fr)!important;
  }
  #historyRows .undo-v99{
    grid-column:2!important;
    justify-self:start!important;
  }
}

/* Esconde botões experimentais de versões anteriores para não duplicar */
.undo-renew-v95:not(.undo-v99),
.undo-history-v97,
.undo-history-v98{
  display:none!important;
}

/* V104 — bolinhas de Cobranças Pendentes como atalhos */
.pending-click-v104{
  cursor:pointer!important;
  user-select:none!important;
  transition:transform .12s ease,filter .12s ease!important;
}
.pending-click-v104:hover{
  transform:scale(1.08)!important;
  filter:brightness(1.12)!important;
}
.pending-click-v104:active{
  transform:scale(.96)!important;
}
.billing-group-note-v104{
  margin:10px 0!important;
  padding:9px 12px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:8px!important;
  font-size:12px!important;
}
.billing-group-note-v104 button{
  margin-left:10px!important;
  padding:5px 9px!important;
  border-radius:6px!important;
  cursor:pointer!important;
}

/* V105 — modal próprio das três categorias de cobrança */
.pending-click-v105{
  cursor:pointer!important;
  user-select:none!important;
}
.pending-click-v105:hover{filter:brightness(1.15)!important;transform:scale(1.06)!important}

.pending-modal-v105{
  display:none;
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(0,0,0,.64);
  padding:5vh 4vw;
  align-items:flex-start;
  justify-content:center;
}
.pending-modal-v105.show{display:flex}
.pending-modal-box-v105{
  width:min(1120px,94vw);
  max-height:88vh;
  overflow:hidden;
  background:#111827;
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,.5);
}
.pending-modal-head-v105{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding:20px 24px 14px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.pending-modal-head-v105 h2{margin:0 0 5px;font-size:22px}
.pending-modal-count-v105{opacity:.8;font-size:14px}
.pending-modal-x-v105{
  background:transparent;border:0;color:#fff;font-size:30px;cursor:pointer
}
.pending-modal-table-wrap-v105{overflow:auto;max-height:60vh}
.pending-modal-table-v105{width:100%;border-collapse:collapse}
.pending-modal-table-v105 th,
.pending-modal-table-v105 td{
  padding:14px 18px;
  text-align:left;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pending-modal-table-v105 th{font-size:13px;opacity:.78}
.pending-empty-v105{text-align:center!important;padding:32px!important;opacity:.75}
.pending-whats-v105{
  border:0;border-radius:8px;padding:8px 12px;cursor:pointer;
}
.pending-modal-foot-v105{
  padding:14px 20px;
  display:flex;
  justify-content:flex-end;
}
.pending-modal-close-v105{
  padding:9px 18px;border-radius:8px;cursor:pointer;
  border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;
}

/* V108 — Cobranças no mesmo padrão estável de Aparelhos Alugados */
.pending-old-hidden-v108{display:none!important}
.pending-click-v108{
  cursor:pointer!important;
  user-select:none!important;
}
.pending-click-v108:hover{
  transform:scale(1.07);
  filter:brightness(1.12);
}


/* V109 — somente alinhamento visual dos ícones nos modais de cobranças */
#pendingDetailDialogV54 .pending-detail-table-v54 th:last-child,
#pendingDetailDialogV54 .pending-detail-table-v54 td:last-child{
  text-align:center!important;
  vertical-align:middle!important;
  white-space:nowrap!important;
  width:120px!important;
}

#pendingDetailDialogV54 .pending-detail-table-v54 td:last-child{
  padding-top:10px!important;
  padding-bottom:10px!important;
}

#pendingDetailDialogV54 button.wa,
#pendingDetailDialogV54 .compact-delete{
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0!important;
  margin:0 3px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  box-sizing:border-box!important;
  border-radius:6px!important;
}

#pendingDetailDialogV54 .wa-icon-img{
  width:25px!important;
  height:25px!important;
  margin:0!important;
  display:block!important;
}

#pendingDetailDialogV54 .delete-symbol{
  width:25px!important;
  height:25px!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}

#pendingDetailDialogV54 > button,
#pendingDetailDialogV54 .close,
#pendingDetailDialogV54 [aria-label="Fechar"]{
  box-sizing:border-box;
}

/* V110 — painel do fornecedor */
.server-panel-field-v110{
  grid-column:1/-1;
  margin-top:8px;
}
.server-panel-field-v110 label{
  display:block;
  margin-bottom:7px;
  font-weight:700;
}
.server-panel-field-v110 input{
  width:100%;
  box-sizing:border-box;
}
.server-panel-field-v110 small{
  display:block;
  margin-top:6px;
  opacity:.72;
}
.server-panel-btn-v110{
  width:100%;
  min-height:40px;
  margin-top:7px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
}
.server-panel-btn-v110:disabled{
  opacity:.42;
  cursor:not-allowed;
}

/* V111 — ações do painel do fornecedor */
.panel-actions-v111{
  display:flex!important;
  gap:8px!important;
  margin-top:10px!important;
  width:100%!important;
}
.panel-actions-v111 button{
  flex:1 1 0!important;
  min-height:36px!important;
  padding:7px 9px!important;
  border-radius:7px!important;
  cursor:pointer!important;
  font-size:11px!important;
}
.panel-actions-v111 .edit-panel-v111{
  background:#252836!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.16)!important;
}
.panel-actions-v111 .open-panel-v111{
  background:#b71c1c!important;
  color:#fff!important;
  border:1px solid #d64a4a!important;
}
.panel-actions-v111 .open-panel-v111:disabled{
  opacity:.4!important;
  cursor:not-allowed!important;
}

/* V112 — alinhamento dos ícones em Aparelhos Alugados */
#rentalDetailDialogV57 td:last-child{
  white-space:nowrap!important;
  vertical-align:middle!important;
  text-align:center!important;
}
#rentalDetailDialogV57 td:last-child .wa,
#rentalDetailDialogV57 td:last-child .delete-btn{
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0!important;
  margin:0 3px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  box-sizing:border-box!important;
  border-radius:6px!important;
}
#rentalDetailDialogV57 .wa-icon-img{
  width:25px!important;
  height:25px!important;
  margin:0!important;
  display:block!important;
}
#rentalDetailDialogV57 .delete-symbol{
  width:25px!important;
  height:25px!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
}

/* V113 — Painéis */
.panel-actions-v113{
  display:flex!important;
  gap:7px!important;
  margin-top:8px!important;
  width:100%!important;
}
.panel-actions-v113 button{
  flex:1 1 0!important;
  min-height:34px!important;
  padding:6px 8px!important;
  border-radius:7px!important;
  font-size:10.5px!important;
  cursor:pointer!important;
}
.edit-panel-v113{
  background:#252836!important;
  border:1px solid rgba(255,255,255,.16)!important;
  color:#fff!important;
}
.open-panel-v113,
.dashboard-open-panel-v113{
  background:#b71c1c!important;
  border:1px solid #d74a4a!important;
  color:#fff!important;
}
.dashboard-open-panel-v113{
  min-height:34px!important;
  padding:6px 10px!important;
  margin-left:7px!important;
  border-radius:7px!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}

/* Na frente, controles antigos de edição nunca aparecem */
#dashboard .edit-panel-v111,
#dashboard .edit-panel-v113,
#view-dashboard .edit-panel-v111,
#view-dashboard .edit-panel-v113{
  display:none!important;
}

/* V114 — ícone compacto do painel no Dashboard */
#dashboard .server-card,
#dashboard .dashboard-server-card,
#view-dashboard .server-card,
#view-dashboard .dashboard-server-card,
.dashboard .server-card,
.dashboard .dashboard-server-card{
  position:relative!important;
}
.dashboard-panel-icon-v114{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  min-height:32px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:8px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:#252836!important;
  color:#fff!important;
  font-size:17px!important;
  line-height:1!important;
  cursor:pointer!important;
  z-index:5!important;
}

/* V115 — botão 🌐 compacto no Dashboard */
#srv1Card,#srv2Card,[data-dashboard-server]{
  position:relative!important;
}
.dashboard-panel-icon-v115{
  position:absolute!important;
  top:8px!important;
  right:8px!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.20)!important;
  background:#252836!important;
  color:#fff!important;
  font-size:16px!important;
  line-height:1!important;
  cursor:pointer!important;
  z-index:20!important;
  box-shadow:none!important;
}

/* V116 — 🌐 uniforme em todos os cartões do Dashboard */
.dashboard-panel-icon-v116{
  position:absolute!important;
  top:8px!important;
  right:8px!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  padding:0!important;
  margin:0!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.22)!important;
  background:#252836!important;
  color:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:16px!important;
  line-height:1!important;
  cursor:pointer!important;
  z-index:30!important;
  box-shadow:none!important;
}

/* V117 — compra de créditos / fornecedor */
.manual-adjust-v117{font-size:10px!important;padding:6px 8px!important}
.supplier-finance-v117{margin-top:16px!important;padding:16px!important}
.supplier-finance-head-v117{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:15px!important;margin-bottom:12px!important
}
.supplier-finance-head-v117 h3{margin:0 0 3px!important}
.supplier-finance-head-v117 small{opacity:.7}
#supplierPaidMonthV117{font-size:18px}
.supplier-reversed-v117{opacity:.55!important}
.supplier-reversed-v117 td{text-decoration:none!important}
.supplier-reverse-v117{white-space:nowrap!important}

/* V118 — garantia visual: ajuste manual nunca aparece no Dashboard */
#dashboard .manual-adjust-v117,
#view-dashboard .manual-adjust-v117,
.dashboard-view .manual-adjust-v117,
[data-view-panel="dashboard"] .manual-adjust-v117{
  display:none!important;
}

/* V119 — Resumo financeiro por servidor */
.finance-server-summary-v119{
  margin:10px 0 16px!important;
}
.finance-server-total-v119{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  padding:12px 14px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:9px!important;
  margin-bottom:8px!important;
}
.finance-server-total-v119 b{font-size:18px!important}
.finance-server-grid-v119{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important;
  gap:7px!important;
}
.finance-server-item-v119{
  display:flex!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:9px 11px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:7px!important;
}
.finance-server-empty-v119{opacity:.65;padding:8px!important}
.supplier-reverse-v119{
  min-height:32px!important;
  padding:5px 10px!important;
  border-radius:7px!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
.status-reversed-v119{font-weight:800!important;opacity:.75!important}
.status-paid-v119{font-weight:700!important}

/* V120 — janela única de créditos */
.credit-dialog-v120{
  width:min(980px,94vw)!important;
  max-height:90vh!important;
  padding:0!important;
  border-radius:14px!important;
  overflow:auto!important;
}
.credit-head-v120{
  display:flex!important;justify-content:space-between!important;align-items:flex-start!important;
  padding:18px 20px 12px!important;border-bottom:1px solid rgba(255,255,255,.10)!important;
}
.credit-head-v120 h2{margin:0 0 4px!important}
.credit-x-v120{font-size:26px!important;background:transparent!important;border:0!important;cursor:pointer!important}
.credit-buy-v120,.credit-history-v120{padding:16px 20px!important}
.credit-buy-v120 h3,.credit-history-v120 h3{margin:0 0 12px!important}
.credit-fields-v120{
  display:grid!important;grid-template-columns:repeat(4,minmax(120px,1fr))!important;gap:10px!important
}
.credit-fields-v120 label,.credit-note-v120{display:flex!important;flex-direction:column!important;gap:5px!important}
.credit-fields-v120 input,.credit-fields-v120 select,.credit-note-v120 input{min-height:36px!important}
.credit-note-v120{margin-top:10px!important}
.credit-confirm-v120{margin-top:12px!important;min-height:38px!important;cursor:pointer!important}
.credit-history-head-v120{
  display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important
}
.credit-foot-v120{padding:12px 20px 18px!important;display:flex!important;justify-content:flex-end!important}
.finance-net-v120{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:9px!important;margin:14px 0!important
}
.finance-net-v120>div{
  padding:12px 14px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:9px!important;
  display:flex!important;flex-direction:column!important;gap:5px!important
}
.finance-net-v120 b{font-size:18px!important}
.finance-net-result-v120{border-width:2px!important}
@media(max-width:750px){
  .credit-fields-v120{grid-template-columns:1fr 1fr!important}
  .finance-net-v120{grid-template-columns:1fr!important}
}

/* V121 — Caixa mensal */
.cash-summary-v121{
  margin:14px 0!important;
  padding:15px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:10px!important;
}
.cash-title-v121 h3{margin:0 0 3px!important}
.cash-title-v121 small{opacity:.7}
.cash-grid-v121{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(145px,1fr))!important;
  gap:8px!important;
  margin-top:12px!important;
}
.cash-grid-v121>div{
  padding:11px 12px!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:8px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
.cash-grid-v121 span{font-size:11px!important;opacity:.8!important}
.cash-grid-v121 b{font-size:17px!important}
.cash-net-v121{border-width:2px!important}
.negative-v121 b{color:#ff6b6b!important}
.positive-v121 b{color:#66d19e!important}
.cash-expense-v121{color:#ff8a8a!important}
.cash-report-v121{margin-top:14px!important;padding:15px!important}
.cash-report-head-v121 h3{margin:0 0 3px!important}
.cash-report-head-v121 small{opacity:.7}
@media(max-width:1000px){
  .cash-grid-v121{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:600px){
  .cash-grid-v121{grid-template-columns:1fr!important}
}

/* V122 — linhas adicionais no Resumo Financeiro */
.financial-expense-rows-v122{
  border-top:1px solid rgba(255,255,255,.10)!important;
  margin-top:4px!important;
}
.fin-row-v122{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:12px 14px!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.fin-row-v122 span{font-size:14px!important}
.fin-row-v122 b{font-size:16px!important;white-space:nowrap!important}
.fin-expense-v122 b{color:#ff7b7b!important}
.fin-today-v122 b{color:#7dd3fc!important}
.fin-net-v122{
  border-top:1px solid rgba(255,255,255,.12)!important;
  font-weight:700!important;
}

/* V123 — histórico mensal */
.cash-report-head-v121{
  display:flex!important;justify-content:space-between!important;
  align-items:flex-end!important;gap:12px!important;flex-wrap:wrap!important;
}
.month-selector-v123 label{
  display:flex!important;flex-direction:column!important;gap:5px!important;
  font-size:11px!important;
}
.month-selector-v123 select{
  min-width:160px!important;min-height:34px!important;border-radius:7px!important;
}
.monthly-close-v123{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;
  gap:8px!important;margin:12px 0!important;
}
.monthly-close-v123>div{
  padding:10px 12px!important;border:1px solid rgba(255,255,255,.09)!important;
  border-radius:8px!important;display:flex!important;flex-direction:column!important;gap:5px!important;
}
.monthly-close-v123 b{font-size:17px!important}
@media(max-width:700px){.monthly-close-v123{grid-template-columns:1fr!important}}

/* V127 — cards financeiros adicionais nos Relatórios */
.report-finance-v127{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(260px,1fr))!important;
  gap:12px!important;
  margin:12px 0 16px!important;
}
.report-extra-card-v127{
  min-height:92px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:10px!important;
  padding:18px 24px!important;
  display:flex!important;
  align-items:center!important;
  gap:18px!important;
  background:rgba(255,255,255,.025)!important;
}
.report-extra-card-v127 b{
  display:block!important;
  font-size:25px!important;
  line-height:1.1!important;
}
.report-extra-card-v127 small{
  display:block!important;
  font-size:14px!important;
  margin-top:5px!important;
}
.report-extra-icon-v127{
  font-size:25px!important;
  font-weight:800!important;
}
.report-extra-card-v127.expense b{color:#ff7b7b!important}
@media(max-width:800px){
  .report-finance-v127{grid-template-columns:1fr!important}
}

/* V129 — Revenda de Créditos */
.resale-title-v129{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:15px!important;margin-bottom:15px!important}
.resale-title-v129 h2{margin:0!important}.resale-title-v129 small{opacity:.7}
.resale-kpis-v129{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important;margin-bottom:14px!important}
.resale-kpis-v129>div{padding:14px!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:9px!important;display:flex!important;flex-direction:column!important;gap:5px!important}
.resale-kpis-v129 b{font-size:20px!important}.resale-kpis-v129 span{font-size:11px!important;opacity:.75}
.resale-history-v129{padding:15px!important}.resale-filter-v129{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-bottom:12px!important}
.resale-filter-v129 h3{margin:0 auto 0 0!important}.resale-filter-v129 select{min-height:34px!important}
.resale-dialog-v129{width:min(850px,94vw)!important;padding:0!important;border-radius:12px!important}
.resale-form-v129{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:12px!important;padding:18px!important}
.resale-form-v129 label{display:flex!important;flex-direction:column!important;gap:5px!important}.resale-form-v129 input,.resale-form-v129 select{min-height:36px!important}
.resale-dialog-actions-v129{display:flex!important;justify-content:flex-end!important;gap:8px!important;padding:0 18px 18px!important}
.resale-dashboard-v129{cursor:pointer!important;display:flex!important;justify-content:space-between!important;align-items:center!important}
.resale-dashboard-v129 div{display:flex!important;flex-direction:column!important;gap:4px!important}.resale-dashboard-v129 b{font-size:20px!important}.resale-arrow-v129{font-size:32px!important}
.client-reseller-v129{display:flex!important;align-items:center!important;gap:8px!important;padding:10px 0!important;font-weight:600!important}
.resale-finance-v129 b{color:#66d19e!important}
@media(max-width:800px){.resale-kpis-v129{grid-template-columns:1fr 1fr!important}.resale-form-v129{grid-template-columns:1fr!important}}

.resale-nav-v130{width:100%}
.resale-dashboard-v130 .summary-row b{white-space:nowrap!important}
#resaleViewV129{width:100%}
.client-reseller-v130{margin:8px 0!important}

/* V131 — Revenda integrada */
.resale-dashboard-v131{min-height:260px!important}
.resale-dashboard-v131 .summary-row b{white-space:nowrap!important}
#revenda{width:100%}
.sidebar .nav[data-view="revenda"] .navico{font-size:20px}

/* V133 — cálculo ao vivo da revenda */
.resale-live-calc-v133{
  grid-column:1/-1!important;
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:8px!important;
  margin-top:4px!important;
  padding-top:12px!important;
  border-top:1px solid rgba(255,255,255,.1)!important;
}
.resale-live-calc-v133>div{
  padding:10px!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:8px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
}
.resale-live-calc-v133 span{font-size:11px!important;opacity:.7!important}
.resale-live-calc-v133 b{font-size:17px!important}
@media(max-width:800px){.resale-live-calc-v133{grid-template-columns:1fr 1fr!important}}

/* V134 */
#clientResellerV129{width:18px!important;height:18px!important;accent-color:#ff4b5c}

/* V135 — Estornos */
.estorno-btn-v135{
  border:1px solid rgba(255,80,90,.55)!important;
  background:rgba(255,65,75,.12)!important;
  color:#ff6b73!important;
  border-radius:7px!important;
  padding:6px 10px!important;
  cursor:pointer!important;
  font-weight:700!important;
}
.estorno-btn-v135:hover{background:rgba(255,65,75,.24)!important}
.payment-reversed-v135{opacity:.55!important}
.estornado-v135{
  display:inline-block!important;
  margin-left:7px!important;
  font-size:9px!important;
  color:#ff6b73!important;
  border:1px solid rgba(255,80,90,.4)!important;
  border-radius:4px!important;
  padding:2px 5px!important;
}

/* V136 — custo unitário editável */
.resale-unit-cost-field-v136 input{
  width:100%!important;
  margin-top:6px!important;
}

/* V137 */
.resale-profit-finance-v137{margin-top:8px!important}
.resale-profit-highlight-v137{
  border-top:1px solid rgba(255,255,255,.1)!important;
  border-bottom:1px solid rgba(255,255,255,.1)!important;
  font-weight:800!important;
}
.resale-profit-highlight-v137 b{font-size:16px!important}

/* V138 — faixa inferior da venda */
.resale-live-calc-v133{
  grid-template-columns:repeat(3,1fr)!important;
}

/* V139 — lucro da revenda no resumo */
.resale-profit-only-v139{
  border-top:1px solid rgba(255,255,255,.10)!important;
  font-weight:800!important;
}
.resale-profit-only-v139 b{font-size:16px!important}

/* V140 */
.resale-profit-summary-v140{
  border-top:1px solid rgba(255,255,255,.08)!important;
}
.resale-profit-summary-v140 span{
  color:#7de0b2!important;
}
.resale-profit-summary-v140 b{
  color:#7de0b2!important;
  font-weight:800!important;
}

/* V141 */
.toggle-reversed-v141{
  margin-left:10px;
  min-height:40px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:#25283a;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.toggle-reversed-v141:hover{filter:brightness(1.12)}

.toggle-reversed-v141.btn.primary{
  background:#d8232a!important;
  background-image:none!important;
  color:#fff!important;
  border:1px solid #ee3c43!important;
  border-radius:8px!important;
  min-height:38px!important;
  padding:8px 16px!important;
  font-weight:800!important;
  box-shadow:0 4px 14px rgba(190,20,30,.18)!important;
}
.toggle-reversed-v141.btn.primary:hover{filter:brightness(1.08)!important}

/* V142 — dashboard mais limpo */
[data-hidden-duplicate-resale-v142="1"],
[data-hidden-duplicate-result-v142="1"]{
  display:none!important;
}

/* ============================================================
   V144 — PADRÃO VISUAL DOS FILTROS/SELECTS
   ============================================================ */
select,
.filter-select,
.filters select,
.toolbar select,
select.form-control {
  background: #171b24 !important;
  color: #f5f7fb !important;
  border: 1px solid rgba(255,76,76,.55) !important;
  border-radius: 10px !important;
  min-height: 42px;
  padding: 8px 38px 8px 12px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
select:hover,
select:focus {
  border-color: #ff4d4d !important;
  outline: none !important;
}
select option {
  background: #171b24;
  color: #f5f7fb;
}

/* ============================================================
   V145 — DASHBOARD ORGANIZADO
   ============================================================ */

/* Cards do Dashboard crescem apenas o necessário. */
#dashboard .bottom-panels{
  align-items:start!important;
}
#dashboard .bottom-panels > .mini-panel{
  min-height:0!important;
  height:auto!important;
  align-self:start!important;
}
#dashboard .mini-panel .list:empty{
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
}
#dashboard .mini-panel:has(.list:empty){
  min-height:0!important;
}

/* Servidores ficam no fim do Dashboard, antes do rodapé. */
.dashboard-servers-bottom-v145{
  margin-top:20px!important;
  padding-top:16px!important;
  border-top:1px solid rgba(255,255,255,.09)!important;
}
.dashboard-servers-head-v145{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  margin-bottom:10px!important;
}
.dashboard-servers-head-v145 h2{
  margin:0!important;
  font-size:16px!important;
}
.dashboard-servers-head-v145 p{
  margin:3px 0 0!important;
  opacity:.65!important;
  font-size:11px!important;
}
.dashboard-servers-bottom-v145 .credit-grid{
  margin-top:10px!important;
}

/* Botões principais: padrão visual do + Nova venda. */
.btn.primary,
.wide-red-btn,
.red-btn,
button.primary,
button[class*="primary"]:not(.chip),
#newClient,
#newClientManagement,
#openResaleV130,
#todayAll{
  background:linear-gradient(180deg,#e5383b,#bf2026)!important;
  border:1px solid #f04a4f!important;
  color:#fff!important;
  border-radius:8px!important;
  min-height:38px!important;
  padding:8px 16px!important;
  font-weight:800!important;
  box-shadow:0 4px 14px rgba(190,20,30,.18)!important;
}
.btn.primary:hover,
.wide-red-btn:hover,
.red-btn:hover,
button.primary:hover{
  filter:brightness(1.08)!important;
}

/* Tabelas sem registros: não criam grandes áreas mortas. */
#resaleViewV129 .table-wrap,
#revenda .table-wrap{
  min-height:0!important;
}
#resaleViewV129 tbody:empty,
#revenda tbody:empty{
  height:auto!important;
}

/* Rodapé mais próximo do conteúdo final. */
#dashboard footer{
  margin-top:16px!important;
}

/* V146 — acabamento visual */
#dashboard .report-extra-card-v127{display:none!important}
#dashboard .bottom-panels{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;gap:12px!important}
#dashboard #resaleDashboardCardV131{align-self:start!important;margin-top:0!important}
#dashboard .dashboard-servers-bottom-v145 + footer{margin-top:10px!important}
#dashboard .dashboard-servers-bottom-v145 ~ .report-extra-card-v127{display:none!important}
/* Todos os selects/filtros seguem o padrão escuro/vermelho aprovado. */
.view select{background:#171b24!important;color:#f5f7fb!important;border:1px solid rgba(255,76,76,.65)!important;border-radius:10px!important}

/* ============================================================
   V147 — PADRÃO REAL DOS BOTÕES PRINCIPAIS
   Referência visual: + Nova venda
   ============================================================ */

/* A V145 não atingia classes específicas como credit-confirm-v120.
   Agora os botões de CONFIRMAÇÃO/AÇÃO PRINCIPAL recebem a regra direta. */
.btn.primary,
.wide-red-btn,
.red-btn,
.credit-confirm-v120,
button.credit-confirm-v120,
#newClient,
#newClientManagement,
#applyReport,
#analyzePhotoV74,
#confirmPhotoImportV74,
#saveClient,
#savePay,
#waOpenV34,
#saveServerNamesV55,
#dashboardAnnualOnlyV147,
#dashboardRentalsOnlyV147 {
  appearance:none!important;
  -webkit-appearance:none!important;
  background:#d8232a!important;
  background-image:none!important;
  color:#fff!important;
  border:1px solid #ee3c43!important;
  border-radius:8px!important;
  min-height:38px!important;
  padding:8px 16px!important;
  font-weight:800!important;
  font-family:inherit!important;
  box-shadow:0 4px 14px rgba(190,20,30,.18)!important;
  cursor:pointer!important;
}
.btn.primary:hover,
.wide-red-btn:hover,
.red-btn:hover,
.credit-confirm-v120:hover {
  filter:brightness(1.08)!important;
}

/* Não transforma botões secundários (Cancelar/Fechar/Estornar) em principais. */

/* Cards do Dashboard sem buracos: masonry por colunas.
   Cada card mantém sua própria altura. */
#dashboard .bottom-panels{
  display:block!important;
  column-count:2!important;
  column-gap:12px!important;
}
#dashboard .bottom-panels > .mini-panel,
#dashboard .bottom-panels > #resaleDashboardCardV131{
  display:inline-block!important;
  width:100%!important;
  box-sizing:border-box!important;
  break-inside:avoid!important;
  -webkit-column-break-inside:avoid!important;
  margin:0 0 12px!important;
  min-height:0!important;
  height:auto!important;
  vertical-align:top!important;
}
#dashboard .bottom-panels .list{
  min-height:0!important;
}
#dashboard .bottom-panels .list > p:only-child{
  margin:10px 0!important;
}
@media (max-width:900px){
  #dashboard .bottom-panels{column-count:1!important}
}

/* Servidores permanecem separados e na mesma linha abaixo. */
#dashboard .dashboard-servers-bottom-v145{
  clear:both!important;
  width:100%!important;
}
#dashboard .dashboard-servers-bottom-v145 .credit-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}
@media (max-width:1100px){
  #dashboard .dashboard-servers-bottom-v145 .credit-grid{
    grid-template-columns:repeat(5,minmax(150px,1fr))!important;
    overflow-x:auto!important;
  }
}

/* V148 — botões principais */
.primary-action-v148,
.btn.primary,
.wide-red-btn,
.red-btn,
.credit-confirm-v120{
  appearance:none!important;
  -webkit-appearance:none!important;
  background:#d8232a!important;
  background-image:none!important;
  color:#fff!important;
  border:1px solid #ee3c43!important;
  border-radius:8px!important;
  min-height:38px!important;
  padding:8px 16px!important;
  font-weight:800!important;
  font-family:inherit!important;
  box-shadow:0 4px 14px rgba(190,20,30,.18)!important;
  cursor:pointer!important;
}
.primary-action-v148:hover,
.btn.primary:hover,
.wide-red-btn:hover,
.red-btn:hover,
.credit-confirm-v120:hover{filter:brightness(1.08)!important}

/* Voltar estratégico: mesma família visual, mais discreto */
.strategic-back-v148{
  background:#3a1114!important;
  border:1px solid #8d2a30!important;
  color:#fff!important;
  border-radius:8px!important;
  min-height:38px!important;
  padding:8px 14px!important;
  font-weight:800!important;
  margin-right:8px!important;
}

/* Cards sem espaço morto */
#dashboard .bottom-panels{
  column-count:2!important;
  column-gap:12px!important;
}
#dashboard .bottom-panels > .mini-panel,
#dashboard .bottom-panels > #resaleDashboardCardV131{
  display:inline-block!important;
  width:100%!important;
  break-inside:avoid!important;
  margin:0 0 12px!important;
  min-height:0!important;
  height:auto!important;
}
.dashboard-empty-v148{
  margin:8px 0!important;
  color:#888!important;
  font-size:12px!important;
}
.empty-resale-v148{
  text-align:center!important;
  padding:16px!important;
  color:#888!important;
}

/* Servidores seguem separados abaixo */
#dashboard .dashboard-servers-bottom-v145{
  clear:both!important;
  width:100%!important;
}
#dashboard .dashboard-servers-bottom-v145 .credit-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}

/* ============================================================
   V149 — LAYOUT DO DASHBOARD
   ============================================================ */
#dashboard .bottom-panels{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:12px!important;
  column-count:unset!important;
  align-items:start!important;
}
#dashboard .bottom-panels > *{
  width:auto!important;
  margin:0!important;
  min-height:0!important;
  height:auto!important;
  display:block!important;
}
#dashboard .bottom-panels > [data-slot-v149="finance"]{grid-column:span 2!important}
#dashboard .bottom-panels > [data-slot-v149="billing"]{grid-column:span 2!important}
#dashboard .bottom-panels > [data-slot-v149="resale"]{grid-column:span 2!important}
#dashboard .bottom-panels > [data-slot-v149="rental"]{grid-column:span 3!important}
#dashboard .bottom-panels > [data-slot-v149="annual"]{grid-column:span 3!important}

.alert-pill-v149{
  border:0!important;
  cursor:pointer!important;
  min-width:30px!important;
  min-height:24px!important;
  padding:3px 9px!important;
  font-weight:900!important;
  border-radius:999px!important;
}
.greenpill,
#todayBillingCountV149{
  background:#159447!important;
  color:#fff!important;
}
.alert-pill-v149:hover{
  filter:brightness(1.15)!important;
  transform:translateY(-1px);
}

/* O antigo card grande Vencem Hoje foi removido. */
#dashboard .due-card{display:none!important}

/* Servidores continuam abaixo e separados do grid acima. */
#dashboard .dashboard-servers-bottom-v145{
  margin-top:14px!important;
  clear:both!important;
  width:100%!important;
}
#dashboard .dashboard-servers-bottom-v145 .credit-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}

@media(max-width:1050px){
  #dashboard .bottom-panels{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #dashboard .bottom-panels > [data-slot-v149]{grid-column:span 1!important}
  #dashboard .bottom-panels > [data-slot-v149="resale"]{grid-column:span 2!important}
}

/* V150 — cabeçalhos de ordenação sem ocupar espaço adicional */
.sortable-head-v150{
  cursor:pointer!important;
  user-select:none!important;
  white-space:nowrap!important;
}
.sortable-head-v150:hover{
  color:#ff4b50!important;
}
.sortable-head-v150 span{
  font-size:11px!important;
  opacity:.9!important;
}

/* Ordem e alinhamento exatos do Dashboard */
#dashboard .bottom-panels{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
#dashboard .bottom-panels > [data-slot-v150="finance"]{grid-column:1 / span 2!important;grid-row:1!important}
#dashboard .bottom-panels > [data-slot-v150="billing"]{grid-column:3 / span 2!important;grid-row:1!important}
#dashboard .bottom-panels > [data-slot-v150="resale"]{grid-column:5 / span 2!important;grid-row:1!important}
#dashboard .bottom-panels > [data-slot-v150="rental"]{grid-column:1 / span 3!important;grid-row:2!important}
#dashboard .bottom-panels > [data-slot-v150="annual"]{grid-column:4 / span 3!important;grid-row:2!important}
#dashboard .bottom-panels > [data-slot-v150="rental"],
#dashboard .bottom-panels > [data-slot-v150="annual"]{
  height:100%!important;
}

/* Servidores não entram no grid dos cards e continuam em uma linha própria. */
#dashboard .dashboard-servers-bottom-v145 .credit-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
}

/* ============================================================
   V152 — ALINHAMENTO COBRANÇAS / REVENDA
   ============================================================ */
#dashboard .bottom-panels{
  align-items:stretch!important;
}
#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"],
#dashboard .bottom-panels > [data-slot-v149="billing"],
#dashboard .bottom-panels > [data-slot-v149="resale"]{
  height:100%!important;
  min-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
}
#dashboard .bottom-panels > [data-slot-v150="billing"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v150="resale"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v149="billing"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v149="resale"] .wide-red-btn,
#dashboard #resaleDashboardCardV131 .wide-red-btn{
  margin-top:auto!important;
}

/* Garante que Cobranças Pendentes e Revenda de Créditos
   fiquem visualmente com a mesma altura sem alterar tipografia. */
#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"]{
  align-self:stretch!important;
}

/* ============================================================
   V156 — Cobranças e Revenda: mesma dimensão visual
   ============================================================ */
#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"],
#dashboard .bottom-panels > [data-slot-v149="billing"],
#dashboard .bottom-panels > [data-slot-v149="resale"],
#dashboard #resaleDashboardCardV131{
  box-sizing:border-box!important;
}

#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"]{
  align-self:start!important;
}

/* Distribui o conteúdo da Revenda sem aumentar fonte nem deformar o card. */
#dashboard #resaleDashboardCardV131{
  display:flex!important;
  flex-direction:column!important;
}
#dashboard #resaleDashboardCardV131 .wide-red-btn{
  margin-top:auto!important;
}

/* V157 — impede o stretch vertical antigo da primeira linha */
#dashboard .bottom-panels{
  align-items:start!important;
}
#dashboard .bottom-panels > *{
  align-self:start;
}

/* ============================================================
   V159 — ÚNICA REGRA DE ALTURA
   Cobranças Pendentes = Revenda de Créditos
   ============================================================ */

/* Primeira linha: os três cards ficam no topo.
   Somente Cobranças e Revenda recebem altura fixa igual. */
#dashboard .bottom-panels{
  align-items:start!important;
}

#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"],
#dashboard .bottom-panels > [data-slot-v149="billing"],
#dashboard .bottom-panels > [data-slot-v149="resale"],
#dashboard #resaleDashboardCardV131{
  height:260px!important;
  min-height:260px!important;
  max-height:260px!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-self:start!important;
  overflow:hidden!important;
}

/* Conteúdo interno ocupa o espaço sem aumentar o card. */
#dashboard .bottom-panels > [data-slot-v150="billing"] .summary-row,
#dashboard .bottom-panels > [data-slot-v149="billing"] .summary-row,
#dashboard #resaleDashboardCardV131 .summary-row{
  flex:0 0 auto!important;
}

/* Botões ficam exatamente na mesma base. */
#dashboard .bottom-panels > [data-slot-v150="billing"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v149="billing"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v150="resale"] .wide-red-btn,
#dashboard .bottom-panels > [data-slot-v149="resale"] .wide-red-btn,
#dashboard #resaleDashboardCardV131 .wide-red-btn{
  margin-top:auto!important;
  flex:0 0 auto!important;
}

/* Não permitir que CSS legado estique os cards novamente. */
#dashboard .bottom-panels > [data-slot-v150="billing"],
#dashboard .bottom-panels > [data-slot-v150="resale"]{
  align-self:start!important;
}

/* ============================================================
   V165 — GRID INDEPENDENTE DA DIREITA
   Sem altura fixa, sem translate, sem top, sem span de linhas.
   ============================================================ */

/* Bloco principal: Resumo à esquerda + bloco independente à direita. */
#dashboard .bottom-panels{
  display:grid!important;
  grid-template-columns:minmax(300px,1fr) minmax(0,2fr)!important;
  gap:12px!important;
  align-items:start!important;
  align-content:start!important;
  column-count:unset!important;
}

/* Resumo Financeiro: altura 100% natural, não interfere na direita. */
#dashboard .bottom-panels > [data-v165="financial"]{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  align-self:start!important;
  margin:0!important;
}

/* Grid independente da direita. */
#dashboard #dashboardRightGridV165{
  grid-column:2!important;
  grid-row:1!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:auto auto!important;
  gap:12px!important;
  align-items:stretch!important;
  align-content:start!important;
  width:100%!important;
  min-width:0!important;
}

/* Remove todas as alturas fixas antigas V159/V163/V164.
   A altura da primeira linha passa a ser automaticamente a maior entre
   Cobranças e Revenda; o outro card estica para ficar exatamente igual. */
#dashboard #dashboardRightGridV165 > [data-v165="billing"],
#dashboard #dashboardRightGridV165 > [data-v165="resale"]{
  grid-row:1!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  align-self:stretch!important;
  margin:0!important;
  transform:none!important;
  top:auto!important;
}

#dashboard #dashboardRightGridV165 > [data-v165="billing"]{
  grid-column:1!important;
}
#dashboard #dashboardRightGridV165 > [data-v165="resale"]{
  grid-column:2!important;
}

/* Os botões ficam na mesma base, sem cortar nenhuma linha. */
#dashboard #dashboardRightGridV165 > [data-v165="billing"] .wide-red-btn,
#dashboard #dashboardRightGridV165 > [data-v165="resale"] .wide-red-btn{
  margin-top:auto!important;
  flex:0 0 auto!important;
}

/* Segunda linha encosta naturalmente 12px abaixo da primeira. */
#dashboard #dashboardRightGridV165 > [data-v165="rental"],
#dashboard #dashboardRightGridV165 > [data-v165="annual"]{
  grid-row:2!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  align-self:stretch!important;
  margin:0!important;
  transform:none!important;
  top:auto!important;
}

#dashboard #dashboardRightGridV165 > [data-v165="rental"]{
  grid-column:1!important;
}
#dashboard #dashboardRightGridV165 > [data-v165="annual"]{
  grid-column:2!important;
}

/* Bolinhas e ações permanecem visíveis. */
#dashboard #dashboardRightGridV165 .rental-count-v60,
#dashboard #dashboardRightGridV165 #annualCountV150,
#dashboard #dashboardRightGridV165 .alert-pill-v149{
  visibility:visible!important;
  opacity:1!important;
}

/* Responsivo: em telas menores, preserva tudo sem corte. */
@media(max-width:1000px){
  #dashboard .bottom-panels{
    grid-template-columns:1fr!important;
  }
  #dashboard .bottom-panels > [data-v165="financial"],
  #dashboard #dashboardRightGridV165{
    grid-column:1!important;
  }
}

@media(max-width:720px){
  #dashboard #dashboardRightGridV165{
    grid-template-columns:1fr!important;
  }
  #dashboard #dashboardRightGridV165 > [data-v165]{
    grid-column:1!important;
    grid-row:auto!important;
  }
}

/* V166 — botão de retorno nos painéis Alugados e Anuais */
.back-dashboard-v166{
  appearance:none;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:10px;
  padding:10px 16px;
  margin:0 0 14px 0;
  font-weight:800;
  font-size:14px;
  cursor:pointer;
  transition:.15s ease;
}
.back-dashboard-v166:hover{
  background:rgba(255,82,82,.18);
  border-color:rgba(255,82,82,.55);
}

/* V167 — posicionamento do Voltar dentro da aba Clientes filtrada */
.back-filtered-clients-v167{
  display:none;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin:0 0 14px 0;
}

/* V168 — ícone frontal do painel do servidor */
.server-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:8px!important;
}
.open-panel-front-v168{
  min-width:46px!important;
  width:46px!important;
  height:42px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:20px!important;
  border-radius:10px!important;
}
.open-panel-front-v168:disabled{
  opacity:.35!important;
  cursor:not-allowed!important;
}

/* ============================================================
   V169 — INDICAÇÕES + CORREÇÃO DO ACESSO DO SERVIDOR
   ============================================================ */
.referral-field-v169 small,
.referral-pay-field-v169 small{
  display:block;
  margin-top:5px;
  color:#9ea3b0;
  font-size:11px;
  line-height:1.35;
}
#referralBalanceV169{
  font-weight:800;
}
.referral-pay-active-v169{
  border-color:rgba(92,211,133,.55)!important;
  box-shadow:0 0 0 1px rgba(92,211,133,.18) inset!important;
}
.referral-history-v169{
  margin:0 0 12px 0;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.referral-history-head-v169{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.referral-balance-badge-v169{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(92,211,133,.12);
  border:1px solid rgba(92,211,133,.32);
  font-weight:900;
}
.referral-event-v169{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.referral-event-v169:first-of-type{border-top:0}
.referral-event-v169 .referral-event-text-v169{
  min-width:0;
  flex:1 1 auto;
}
.referral-event-v169 .referral-event-text-v169 small{
  display:block;
  color:#999faa;
  margin-top:2px;
}
.referral-event-v169.reversed-v169{
  opacity:.55;
  text-decoration:line-through;
}
.referral-undo-v169{
  flex:0 0 auto;
  white-space:nowrap;
  border:1px solid rgba(255,82,82,.45);
  background:rgba(255,82,82,.10);
  color:#fff;
  border-radius:8px;
  padding:7px 9px;
  cursor:pointer;
}
.referral-empty-v169{
  color:#9096a2;
  font-size:12px;
}

/* V169: a V168 criou um segundo globo na linha de ações.
   Mantemos somente o globo circular original V116 no canto do card. */
.open-panel-front-v168{
  display:none!important;
}

/* V170 — Relatórios: Voltar no mesmo padrão das demais janelas */
#relatorios .back-reports-v170{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin:0 0 14px 0;
}

.referral-section-v171{
  margin-top:12px;
  margin-bottom:12px;
}
#clientSortNameV171{
  cursor:pointer;
  user-select:none;
}

/* ============================================================
   V172 — WHATSAPP AUTOMÁTICO
   ============================================================ */
.wa-head-v172{align-items:flex-start!important}
.wa-head-v172 h2{margin-top:12px!important}
.wa-status-v172{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #333;border-radius:999px;background:#151518}
.wa-dot-v172{width:10px;height:10px;border-radius:50%;background:#666;box-shadow:0 0 0 3px rgba(255,255,255,.04)}
.wa-dot-v172.on{background:#1fb85b;box-shadow:0 0 0 3px rgba(31,184,91,.14)}
.wa-grid-v172{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.wa-panel-v172{background:#111114;border:1px solid #29292e;border-radius:14px;padding:18px;box-shadow:0 10px 28px rgba(0,0,0,.2)}
.wa-panel-v172 h3{margin:0 0 14px;color:#fff}
.wa-config-grid-v172,.wa-template-grid-v172{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wa-config-grid-v172 .full,.wa-template-grid-v172 .full{grid-column:1/-1}
.wa-panel-v172 label{display:flex;flex-direction:column;gap:6px;color:#cfcfd4;font-size:13px}
.wa-panel-v172 input,.wa-panel-v172 select,.wa-panel-v172 textarea{width:100%;box-sizing:border-box;background:#0b0b0d;border:1px solid #33343a;color:#fff;border-radius:9px;padding:10px}
.wa-panel-v172 small{color:#85858e}
.wa-switch-label-v172{justify-content:flex-end}
.wa-switch-label-v172 input{width:auto!important;align-self:flex-start}
.wa-schedule-v172{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}
.wa-schedule-v172 label{flex-direction:row;align-items:center;background:#18181c;border:1px solid #2c2c31;padding:8px 10px;border-radius:9px}
.wa-schedule-v172 input{width:auto!important}
.wa-actions-v172{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.wa-message-v172,.wa-preview-v172{margin-top:12px;min-height:20px;color:#a9f7c5;white-space:pre-wrap}
.wa-preview-v172{padding:12px;background:#0a0a0c;border:1px solid #242429;border-radius:10px;color:#ddd}
.wa-summary-v172{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.wa-summary-v172 article{background:#111114;border:1px solid #29292e;border-radius:12px;padding:15px;display:flex;justify-content:space-between;align-items:center}
.wa-summary-v172 span{color:#a8a8b0;font-size:13px}
.wa-summary-v172 b{font-size:23px;color:#fff}
.wa-history-head-v172{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.wa-history-table-v172{min-width:1180px}
.wa-history-status-v172{font-size:11px;font-weight:900;padding:4px 8px;border-radius:999px}
.wa-history-status-v172.sent{background:rgba(31,184,91,.16);color:#45d879}
.wa-history-status-v172.error{background:rgba(255,69,69,.15);color:#ff6868}
.wa-empty-v172{text-align:center;color:#777;padding:24px!important}
.wa-note-v172{margin-top:14px;padding:13px 15px;border:1px solid #3b3323;background:#17140e;color:#cfc4a1;border-radius:10px;font-size:13px}
@media(max-width:1000px){
  .wa-grid-v172{grid-template-columns:1fr}
  .wa-summary-v172{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .wa-config-grid-v172,.wa-template-grid-v172{grid-template-columns:1fr}
  .wa-config-grid-v172 .full,.wa-template-grid-v172 .full{grid-column:1}
  .wa-summary-v172{grid-template-columns:1fr}
}

/* V173 — seletor Manual / Automático */
.wa-mode-v173{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 15px;padding:10px;background:#0b0b0d;border:1px solid #29292e;border-radius:11px}
.wa-mode-v173 span{color:#999;font-size:12px;margin-left:4px}
.wa-mode-btn-v173.active{border-color:#1fb85b!important;box-shadow:0 0 0 1px rgba(31,184,91,.28) inset;color:#7aefa1}
.wa-history-status-v172.manual{background:rgba(70,140,255,.15);color:#75aaff}
.wa-panel-v172 button:disabled,.wa-panel-v172 input:disabled{opacity:.42;cursor:not-allowed}

/* V174 — mensalidades adiantadas */
#renewMonthsInfoV174{
  display:block;
  margin-top:6px;
  color:#9ea0a8;
  line-height:1.35;
}
#renewMonthsLabelV174 select{margin-top:6px}


/* ============================================================
   V197 — impressão limpa do Relatório
   ============================================================ */
@media print{
  body.print-report-v197{
    background:#fff!important;
    color:#000!important;
  }
  body.print-report-v197 .sidebar,
  body.print-report-v197 .topbar,
  body.print-report-v197 dialog,
  body.print-report-v197 #toast,
  body.print-report-v197 .view:not(#relatorios){
    display:none!important;
  }
  body.print-report-v197 .main{
    margin:0!important;
    padding:0!important;
    width:100%!important;
    max-width:none!important;
  }
  body.print-report-v197 #relatorios{
    display:block!important;
    padding:0!important;
    margin:0!important;
    color:#000!important;
    background:#fff!important;
  }
  body.print-report-v197 #relatorios .back-dashboard-v166,
  body.print-report-v197 #relatorios #printReportV197,
  body.print-report-v197 #relatorios #applyReport,
  body.print-report-v197 #relatorios .report-period{
    display:none!important;
  }
  body.print-report-v197 #relatorios .section-head,
  body.print-report-v197 #relatorios .report-filter,
  body.print-report-v197 #relatorios .kpis,
  body.print-report-v197 #relatorios .kpi,
  body.print-report-v197 #relatorios .table-wrap,
  body.print-report-v197 #relatorios table,
  body.print-report-v197 #relatorios th,
  body.print-report-v197 #relatorios td{
    color:#000!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.print-report-v197 #relatorios .kpi,
  body.print-report-v197 #relatorios .table-wrap{
    border:1px solid #bbb!important;
  }
  body.print-report-v197 #relatorios table{
    width:100%!important;
    border-collapse:collapse!important;
  }
  body.print-report-v197 #relatorios th,
  body.print-report-v197 #relatorios td{
    border:1px solid #ccc!important;
    padding:7px!important;
  }
  body.print-report-v197 #relatorios table th:last-child,
  body.print-report-v197 #relatorios table td:last-child{
    display:none!important;
  }
  body.print-report-v197 #relatorios input{
    color:#000!important;
    background:#fff!important;
    border:1px solid #aaa!important;
  }
  @page{size:auto;margin:12mm;}
}

/* V203 — ações de importação/exportação de clientes */
.client-head-actions-v74{display:flex!important;flex-wrap:wrap!important;gap:8px!important;justify-content:flex-end!important;align-items:center!important}
#importCsvV203,#exportExcelV203,#exportPdfV203{white-space:nowrap!important}
@media(max-width:760px){.client-head-actions-v74{justify-content:flex-start!important}}

/* V204 — confirmação obrigatória antes de importar CSV */
.csv-preview-dialog-v204{width:min(1180px,96vw)!important;max-height:90vh!important;padding:0!important;border-radius:14px!important;overflow:auto!important}
.csv-preview-dialog-v204 .dialog-title{padding:18px 20px 12px!important}
.csv-preview-dialog-v204 .dialog-title p{margin:5px 0 0!important;opacity:.78!important}
.csv-preview-toolbar-v204{display:flex!important;gap:8px!important;padding:10px 20px!important;flex-wrap:wrap!important}
.csv-preview-wrap-v204{max-height:56vh!important;margin:0 20px!important}
.csv-preview-table-v204{min-width:980px!important}
.csv-preview-table-v204 th,.csv-preview-table-v204 td{vertical-align:middle!important}
.csv-preview-table-v204 input[type="checkbox"]{width:18px!important;height:18px!important;cursor:pointer!important}
.csv-duplicate-v204{opacity:.52!important}
.csv-dup-label-v204{display:block!important;margin-top:4px!important;color:#ff8d92!important;font-weight:700!important}
.csv-preview-dialog-v204 .dialog-actions{padding:14px 20px 18px!important}


/* V205 — edição dos dados na prévia CSV */
.csv-preview-table-v204 .csv-edit-v205{
  width:100%!important;
  min-width:110px!important;
  box-sizing:border-box!important;
  min-height:34px!important;
  padding:6px 8px!important;
  background:#171b24!important;
  color:#f5f7fb!important;
  border:1px solid rgba(255,76,76,.55)!important;
  border-radius:7px!important;
  font:inherit!important;
}
.csv-preview-table-v204 .csv-edit-v205:focus{
  outline:none!important;
  border-color:#ee3c43!important;
  box-shadow:0 0 0 2px rgba(216,35,42,.18)!important;
}
.csv-preview-table-v204 .csv-number-v205{min-width:72px!important}
.csv-preview-table-v204 .csv-value-v205{min-width:95px!important}
.csv-preview-table-v204 .csv-dup-label-v204{display:block!important;margin-top:5px!important}

/* V205 CLOUD READY — Supabase */
.cloud-status-v205{border:1px solid #38383d;background:#17171a;color:#ddd;border-radius:9px;padding:7px 11px;font:inherit;font-weight:700;cursor:pointer}
.cloud-status-v205[data-state="online"]{border-color:#2e7d54;color:#72d69b}
.cloud-status-v205[data-state="error"]{border-color:#9c3131;color:#ff8a8a}
.cloud-dialog-v205{width:min(760px,94vw);border:1px solid #34343a;border-radius:14px;background:#111114;color:#eee;padding:0}
.cloud-form-v205{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 22px}
.cloud-form-v205 label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#bbb}
.cloud-form-v205 input{background:#1a1a1f;border:1px solid #393941;border-radius:8px;padding:11px;color:#fff;font:inherit}
.cloud-msg-v205{grid-column:1/-1;min-height:22px;color:#8ddba9;font-size:13px}
.cloud-msg-v205.error{color:#ff9292}
.cloud-actions-v205{flex-wrap:wrap}
@media(max-width:700px){.cloud-form-v205{grid-template-columns:1fr}.cloud-status-v205{padding:6px 8px;font-size:12px}}

/* V207 — estado detalhado da sincronização */
.cloud-sync-info-v207{margin-top:8px;font-size:12px;opacity:.82;line-height:1.4}
#cloudStatusV205[data-state="syncing"]{filter:saturate(.85);opacity:.95}
#cloudStatusV205[data-state="conflict"],#cloudStatusV205[data-state="error"]{font-weight:800}

/* V210 — Backup / Restauração */
.backup-dialog-v210{width:min(760px,94vw);background:#111216;color:#f5f5f5;border:1px solid #3a3a42;border-radius:18px;padding:0;box-shadow:0 24px 80px #000a}
.backup-dialog-v210::backdrop{background:#0009;backdrop-filter:blur(2px)}
.backup-body-v210{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.backup-card-v210{border:1px solid #34343b;border-radius:14px;padding:18px;background:#18191e}
.backup-card-v210 h4{margin:0 0 8px;font-size:18px}
.backup-card-v210 p{margin:0 0 16px;color:#c9c9cf;line-height:1.45}
.backup-note-v210{grid-column:1/-1;padding:14px;border-radius:12px;background:#202126;color:#d8d8dc;border-left:4px solid #e33}
.backup-msg-v210{grid-column:1/-1;min-height:22px;color:#64d77c;font-weight:700}
.backup-msg-v210.error{color:#ff6b6b}
@media(max-width:700px){.backup-body-v210{grid-template-columns:1fr}}

/* V211 — autenticação local */
.auth-overlay-v211{position:fixed;inset:0;z-index:99999;background:rgba(8,10,14,.94);display:flex;align-items:center;justify-content:center;padding:24px}.auth-overlay-v211[hidden]{display:none!important}.auth-card-v211{width:min(430px,94vw);background:#15191f;border:1px solid #343a43;border-radius:18px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.55);color:#fff}.auth-brand-v211{font-size:28px;font-weight:900;letter-spacing:.5px;margin-bottom:18px}.auth-brand-v211 span{color:#e22}.auth-card-v211 h2{margin:0 0 6px}.auth-card-v211 p{color:#aeb5bf;margin:0 0 20px}.auth-card-v211 label{display:block;margin:12px 0 6px;font-weight:700}.auth-card-v211 input{width:100%;box-sizing:border-box;background:#0d1014;border:1px solid #3b424d;color:#fff;border-radius:9px;padding:12px;font-size:15px}.auth-card-v211 .btn{width:100%;margin-top:16px}.auth-card-v211 small{display:block;text-align:center;color:#8f98a5;margin-top:14px}.auth-msg-v211{min-height:20px;margin-top:10px;color:#63d38b}.auth-msg-v211.error{color:#ff6b6b}.auth-locked-v211{overflow:hidden}

/* V214 — usuários e auditoria */
.users-list-v214{display:grid;gap:8px;margin-top:12px}
.user-row-v214{display:grid;grid-template-columns:1.5fr 1fr .7fr 1.3fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line,#ddd);border-radius:10px}
.audit-dialog-v214{width:min(1100px,95vw)}
.audit-filters-v214{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin:10px 0}
.audit-filters-v214 label{display:grid;gap:4px}
#auditDialogV214 .table-wrap{max-height:60vh;overflow:auto}
#forgotPassV214{margin-top:8px;width:100%}

/* V215 */
.logged-user-v215{font-weight:700;font-size:13px;padding:6px 10px;border-radius:999px;background:#f3f4f6;white-space:nowrap}
.pass-wrap-v215{display:flex;align-items:center;gap:6px}
.pass-wrap-v215 input{flex:1}
.eye-v215{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:7px 9px;cursor:pointer}
.recovery-dialog-v215{width:min(760px,94vw)}
.recovery-grid-v215{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.recovery-grid-v215 section{border:1px solid #e5e7eb;border-radius:12px;padding:14px}
.recovery-grid-v215 label{display:grid;gap:5px;margin:9px 0}
@media(max-width:700px){.recovery-grid-v215{grid-template-columns:1fr}}

/* V216 — usuário conectado e sair no cabeçalho */
.top-user-v216{display:inline-flex;align-items:center;gap:7px;font-weight:800;white-space:nowrap}
.online-dot-v216{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.16)}
.top-logout-v216{border:1px solid #ef4444;background:transparent;color:#ef4444;border-radius:9px;padding:7px 11px;font-weight:900;cursor:pointer}
.top-logout-v216:hover{background:rgba(239,68,68,.12)}
.top-logout-v216:disabled{opacity:.65;cursor:wait}

/* V226 */
.pass-wrap-v226{display:flex;align-items:center;gap:6px}.pass-wrap-v226 input{flex:1}.eye-v226{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:7px 9px;cursor:pointer}.mode-hidden-v226{display:none!important}
