
*{box-sizing:border-box}
body{margin:0;background:#e8edf2;font-family:'Inter','Segoe UI',Arial,sans-serif;color:#102033}
.demo-wrap{max-width:1050px;margin:36px auto;padding:0 20px}
.g88-launch{background:#edf2f6;border:1px solid #c8d2dc;border-radius:12px;padding:18px}
.g88-launch h2{margin:0 0 18px;font-size:21px}
.g88-row{display:grid;gap:12px;margin-bottom:14px}
.g88-row-top{grid-template-columns:155px minmax(260px,1fr) 136px minmax(250px,1fr) 136px}
.g88-field{position:relative;min-width:0}
.g88-field label{display:block;font-size:12px;font-weight:700;margin:0 0 6px}
.g88-input,.g88-select{width:100%;height:44px;border:1px solid #c7d0da;border-radius:7px;background:#fff;padding:0 14px;font-size:14px;color:#152536;outline:none}
.g88-input:focus,.g88-select:focus{border-color:#50697e;box-shadow:0 0 0 2px rgba(80,105,126,.12)}
.g88-btn{height:44px;margin-top:18px;border:0;border-radius:7px;padding:0 14px;font-weight:700;cursor:pointer;white-space:nowrap;position:relative}
.g88-btn-dark{background:#35424d;color:#fff}
.g88-btn-red{background:#c82333;color:#fff}
.g88-services{border-top:1px solid #ccd5de;padding-top:14px}
.g88-service-head{display:grid;grid-template-columns:430px 136px 46px;gap:10px;align-items:end}
.g88-service-line{display:grid;grid-template-columns:390px 120px 42px 170px 200px;gap:10px;align-items:end}
.g88-service-head{font-size:12px;font-weight:700;margin-bottom:6px}
.g88-service-line .g88-input{height:44px}
.g88-trash{height:44px;border:1px solid #d9e0e6;background:#fff;border-radius:7px;cursor:pointer;font-size:17px}
.g88-actions{display:flex;gap:10px;margin-top:14px}
.g88-actions .g88-btn{margin-top:0}
.g88-list{display:none;position:absolute;left:0;right:0;top:68px;background:#fff;border:1px solid #bcc8d3;border-radius:7px;box-shadow:0 8px 20px rgba(0,0,0,.12);z-index:20;max-height:190px;overflow:auto}
.g88-list.open{display:block}
.g88-option{padding:10px 12px;font-size:13px;cursor:pointer}
.g88-option.active,.g88-option:hover{background:#e7edf3}
.g88-tooltip{position:fixed;display:none;z-index:1000;background:#111;color:#fff;padding:7px 10px;border-radius:6px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none}
.g88-tooltip.show{display:block}
.note{font-size:12px;color:#5d6d7d;margin-top:14px}

.g88-service-line .g88-inline-action{height:44px;margin-top:0}
.g88-service-line .g88-inline-add{width:170px;padding:0 10px}
.g88-service-line .g88-inline-new{width:200px;padding:0 10px}

.g88-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(15,25,35,.45);z-index:2000;padding:20px}
.g88-modal.open{display:flex}
.g88-modal-card{width:430px;max-width:100%;background:#fff;border-radius:10px;box-shadow:0 18px 55px rgba(0,0,0,.28);overflow:hidden}
.g88-modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #d9e0e6;font-size:17px}
.g88-modal-x{border:0;background:transparent;font-size:22px;cursor:pointer}
.g88-modal-body{padding:16px 18px}
.g88-modal-body label{display:block;font-size:12px;font-weight:700;margin:10px 0 6px}
.g88-modal-body label:first-child{margin-top:0}
.g88-modal-error{display:none;margin-top:10px;padding:8px 10px;border:1px solid #e6a0a7;border-radius:6px;background:#fff3f4;color:#8f1d28;font-size:12px}
.g88-modal-error.show{display:block}
.g88-modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:13px 18px;border-top:1px solid #d9e0e6;background:#f7f9fb}
.g88-modal-actions .g88-btn{margin-top:0}
.g88-btn-light{background:#e5e9ed;color:#243442}
.g88-btn-green{background:#23824d;color:#fff}

/* V8 — destaque do item selecionado pelo teclado */
.g88-option.active{
  background:#d9e3ec !important;
  color:#102033 !important;
  font-weight:700;
  box-shadow:inset 3px 0 0 #35424d;
}

/* V9 — linhas adicionais trazem somente Serviço, Valor e Excluir */
.g88-service-extra{
  grid-template-columns:390px 120px 42px !important;
  margin-top:6px;
}
.g88-trash{font-size:15px;line-height:1}

/* V11 — padrão de exclusão: X vermelho, sem ícone de lixeira */
.g88-remove-x{
  color:#c82333 !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1 !important;
}

/* =========================================================
   V13 — ACABAMENTO VISUAL APROVADO
   Mantém a lógica V12. Apenas layout, tipografia e botões.
   ========================================================= */
:root{
 --g88-ink:#10233b;
 --g88-muted:#66778a;
 --g88-border:#cbd7e2;
 --g88-panel:#f7fafc;
 --g88-dark:#293a49;
 --g88-red:#d91f2b;
}
*{box-sizing:border-box}
body{
 font-family:Inter, "Segoe UI", Arial, sans-serif !important;
 color:var(--g88-ink);
 background:#eef3f7 !important;
}
.g88-card{
 width:1010px !important;
 max-width:calc(100vw - 48px);
 padding:20px 18px 18px !important;
 border:1px solid #cbd8e3 !important;
 border-radius:12px !important;
 background:rgba(255,255,255,.54) !important;
 box-shadow:0 8px 26px rgba(34,55,76,.04);
}
.g88-card h2{
 font-size:21px !important;
 line-height:1.2;
 font-weight:700 !important;
 letter-spacing:-.2px;
 margin:0 0 16px !important;
}
.g88-top{
 display:grid !important;
 grid-template-columns:155px 408px 385px !important;
 column-gap:12px !important;
 align-items:end !important;
 padding-bottom:14px !important;
 margin-bottom:14px !important;
 border-bottom:1px solid #cbd8e3;
}
.g88-client-group{
 display:grid !important;
 grid-template-columns:260px 136px !important;
 gap:12px !important;
 align-items:end;
}
.g88-vehicle-group{
 display:grid !important;
 grid-template-columns:250px 123px !important;
 gap:12px !important;
 align-items:end;
}
label,.g88-label{
 font-size:12px !important;
 font-weight:700 !important;
 color:#10233b !important;
 margin-bottom:6px !important;
}
.g88-input,select{
 height:44px !important;
 border:1px solid var(--g88-border) !important;
 border-radius:7px !important;
 background:#fff !important;
 font-family:inherit !important;
 font-size:14px !important;
 color:#172b42 !important;
 padding:0 14px !important;
 box-shadow:none !important;
}
.g88-input:focus,select:focus{
 border-color:#617b92 !important;
 box-shadow:0 0 0 2px rgba(67,91,112,.10) !important;
 outline:none;
}
.g88-date-wrap{position:relative}
.g88-date-wrap .g88-input{padding-left:42px !important}
.g88-leading-icon{
 position:absolute;left:13px;top:50%;transform:translateY(-50%);
 width:20px;height:20px;color:#435a70;pointer-events:none;
}
.g88-leading-icon svg,.g88-btn-icon svg{
 width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;
 stroke-linecap:round;stroke-linejoin:round;
}
.g88-btn{
 height:44px !important;
 border-radius:7px !important;
 border:0 !important;
 padding:0 15px !important;
 font-family:inherit !important;
 font-size:13px !important;
 font-weight:700 !important;
 display:inline-flex !important;
 align-items:center !important;
 justify-content:center !important;
 gap:8px !important;
 white-space:nowrap;
 box-shadow:0 2px 4px rgba(20,36,52,.08);
}
.g88-btn-dark{background:var(--g88-dark) !important;color:#fff !important}
.g88-btn-red{background:var(--g88-red) !important;color:#fff !important}
.g88-btn-icon{width:18px;height:18px;display:inline-flex}
.g88-services{position:relative}
.g88-service-line{
 display:grid !important;
 grid-template-columns:390px 120px 42px 170px 200px !important;
 gap:10px !important;
 align-items:end !important;
 margin-bottom:6px !important;
}
.g88-service-extra{
 display:grid !important;
 grid-template-columns:390px 120px 42px !important;
 gap:10px !important;
 margin-top:0 !important;
 margin-bottom:6px !important;
}
.g88-service-input{padding-left:14px !important}
.g88-service-value{font-variant-numeric:tabular-nums}
.g88-trash{
 width:42px !important;height:44px !important;
 border:1px solid var(--g88-border) !important;
 border-radius:7px !important;
 background:#fff !important;
 color:var(--g88-red) !important;
 font-size:21px !important;font-weight:700 !important;
 display:flex !important;align-items:center !important;justify-content:center !important;
 padding:0 !important;
}
.g88-inline-action{margin:0 !important}
.g88-inline-add{width:170px !important}
.g88-inline-new{width:200px !important}
.note{
 margin-top:8px !important;
 color:#607287 !important;
 font-size:12px !important;
}
/* autocomplete acompanha a nova linguagem visual */
.g88-list{
 border:1px solid var(--g88-border) !important;
 border-radius:0 0 7px 7px !important;
 box-shadow:0 8px 18px rgba(26,45,63,.12) !important;
 overflow:hidden;
 background:#fff !important;
}
.g88-option{font-size:13px !important;padding:10px 13px !important}
.g88-option.active{
 background:#dce6ef !important;color:#10233b !important;font-weight:700 !important;
 box-shadow:inset 3px 0 0 #354b5e !important;
}

/* Ajustes concretos da estrutura atual */
.g88-service-line > .g88-field:first-child{width:390px !important}
.g88-service-line > .g88-service-value{width:120px !important}

/* V14.2 — ícone definitivo Novo veículo */
.g88-car-plus-icon{
  width:22px !important;
  height:20px !important;
  flex:0 0 22px;
}
.g88-car-plus-icon svg{
  width:100% !important;
  height:100% !important;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.g88-car-plus-icon .g88-plus-mark{
  stroke-width:2.2;
}

/* V15 — validação de cliente/serviço inexistente.
   O aviso só aparece quando o usuário confirma/sai do campo; nunca enquanto digita. */
.g88-field-alert{
  display:none;
  position:absolute;
  left:0;
  top:calc(100% + 5px);
  z-index:40;
  padding:7px 9px;
  border:1px solid #ef9aa2;
  border-radius:6px;
  background:#fff5f6;
  color:#a51f2d;
  font-size:11px;
  line-height:1.25;
  white-space:nowrap;
  box-shadow:0 5px 12px rgba(45,30,32,.08);
}
.g88-field-alert.show{display:block}
.g88-input.g88-invalid{
  border-color:#d91f2b !important;
  box-shadow:0 0 0 2px rgba(217,31,43,.08) !important;
}

/* V15.1 — refinamento tipográfico dos avisos de cadastro */
.g88-field-alert{
  padding:9px 11px !important;
  font-family:Inter, "Segoe UI", Arial, sans-serif !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  letter-spacing:0 !important;
}
.g88-field-alert strong{
  font-weight:600 !important;
}

/* V15.2 — botão Cancelar aprovado: contraste maior, sem competir com Salvar */
.g88-modal-cancel-dark{
  background:#2f3e4b !important;
  color:#fff !important;
  border:1px solid #2f3e4b !important;
  box-shadow:0 2px 5px rgba(22,34,45,.14) !important;
  font-weight:600 !important;
}
.g88-modal-cancel-dark:hover,
.g88-modal-cancel-dark:focus{
  background:#263540 !important;
  border-color:#263540 !important;
  color:#fff !important;
}

.g88-vehicle-help{position:fixed;z-index:100000;max-width:390px;padding:11px 13px;border-radius:8px;background:#fff1f2;border:1px solid #e3a3aa;color:#a51d2d;font:500 13px/1.35 Inter,"Segoe UI",Arial,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.14)}

/* V18.1 — somente alinhamento visual */
#newServiceBtn{justify-self:end !important;}


/* V18.2 — alinhamento visual corrigido pelo grid real da tela */

/* Novo cliente e Novo veículo: mesma linha vertical dos campos Cliente/Veículo */
#newClientBtn,
#newVehicleBtn{
  margin-top:22px !important;
}

/* A linha de serviço termina exatamente na mesma borda direita do Novo veículo.
   O botão vermelho cresce só o necessário; nenhuma lógica foi alterada. */
.g88-service-line{
  grid-template-columns:390px 120px 42px 170px 223px !important;
}
.g88-service-line .g88-inline-new,
#newServiceBtn{
  width:223px !important;
  justify-self:stretch !important;
}


/* V18.3 — Pós-venda no cadastro de Novo Serviço */
#serviceModal .g88-modal-card{width:min(620px,calc(100vw - 32px));}
.g88-pv-box{margin-top:16px;padding:14px 15px;border:1px solid #dfe5ea;border-radius:9px;background:#f8fafb;}
.g88-pv-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#24323e;}
.g88-pv-toggle-wrap{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#2e9b59;}
.g88-pv-switch input{display:none}.g88-pv-switch span{display:block;width:42px;height:24px;border-radius:99px;background:#aeb8c0;position:relative;cursor:pointer;transition:.2s}.g88-pv-switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:white;transition:.2s;box-shadow:0 1px 3px #0003}.g88-pv-switch input:checked+span{background:#2e9b59}.g88-pv-switch input:checked+span:after{transform:translateX(18px)}
.g88-pv-days-row{display:flex;align-items:center;gap:9px;margin-bottom:12px}.g88-pv-days-row label{margin:0!important;white-space:nowrap}.g88-pv-days-row input{width:62px!important;padding-left:10px!important;padding-right:6px!important}.g88-pv-days-row span{font-size:13px;color:#566572}.g88-pv-label{display:block;margin:0 0 8px!important}.g88-pv-choice{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:13px;color:#344450}.g88-pv-choice label{display:flex;align-items:center;gap:6px;margin:0!important;cursor:pointer}.g88-pv-choice input{accent-color:#2f3e4b}.g88-pv-help{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#2f3e4b;color:#fff;font-weight:700;font-size:12px;cursor:help}.g88-pv-tooltip{display:none;position:absolute;z-index:100010;width:310px;right:-4px;bottom:28px;padding:10px 12px;border-radius:7px;background:#18232c;color:#fff;font-size:12px;font-weight:400;line-height:1.4;box-shadow:0 8px 22px #0004}.g88-pv-help:hover .g88-pv-tooltip,.g88-pv-help:focus .g88-pv-tooltip{display:block}.g88-pv-preview{margin-top:10px;padding:10px 11px;border:1px solid #e2e7eb;border-radius:7px;background:#fff;color:#566572;font-size:12px;line-height:1.45}.g88-pv-custom{margin-top:10px}.g88-pv-vars{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:7px;font-size:11px;color:#687782}.g88-pv-vars button{border:1px solid #ccd5dc;background:#fff;border-radius:5px;padding:5px 7px;font:600 11px Inter,"Segoe UI",Arial,sans-serif;color:#344450;cursor:pointer}.g88-pv-vars button:hover{background:#edf2f5}.g88-pv-textarea{width:100%;resize:vertical;min-height:82px;box-sizing:border-box;border:1px solid #cbd4db;border-radius:7px;padding:9px 10px;font:13px/1.4 Inter,"Segoe UI",Arial,sans-serif;color:#263540;outline:none}.g88-pv-textarea:focus{border-color:#6f7e89;box-shadow:0 0 0 2px #2f3e4b12}

/* V18.5 — refinamento visual do Pós-venda */
.g88-pv-box{margin-top:14px;padding:13px 0 0;border:0;border-top:1px solid #e2e7eb;border-radius:0;background:transparent;}
.g88-pv-title-row{margin-bottom:10px;}
.g88-pv-title-row>strong{font-size:15px;}
.g88-pv-toggle-wrap{gap:7px;}
.g88-pv-days-row{gap:7px;margin-bottom:10px;}
.g88-pv-days-row input{width:52px!important;height:38px!important;padding:7px 6px!important;text-align:center;}
.g88-pv-message-head{display:flex;align-items:center;gap:7px;margin:0 0 7px;}
.g88-pv-message-head .g88-pv-label{margin:0!important;}
.g88-pv-help{width:18px;height:18px;font-size:11px;}
.g88-pv-choice{gap:20px;margin-bottom:8px;}
.g88-pv-preview{margin-top:0;padding:9px 11px;min-height:0;font-size:12px;line-height:1.4;background:#f8fafb;}
.g88-pv-custom{margin-top:0;}


/* V18.6 — descrição opcional do serviço */
#serviceModal .g88-optional{font-weight:400;color:#6b7885;}
#serviceModal .g88-service-description{width:100%;box-sizing:border-box;min-height:72px;max-height:120px;resize:vertical;border:1px solid #cbd4db;border-radius:7px;padding:9px 10px;font:13px/1.4 Inter,"Segoe UI",Arial,sans-serif;color:#263540;outline:none;}
#serviceModal .g88-service-description:focus{border-color:#6f7e89;box-shadow:0 0 0 2px #2f3e4b12;}
#serviceModal .g88-description-hint{margin:5px 0 0;color:#7a8791;font-size:11px;line-height:1.3;}


/* V18.7 — Nome do serviço e Valor na mesma linha */
#serviceModal .g88-service-basic-row{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:12px;align-items:end;}
#serviceModal .g88-service-basic-row label{margin-top:0;}
#serviceModal .g88-service-name-field,#serviceModal .g88-service-value-field{min-width:0;}
@media (max-width:560px){#serviceModal .g88-service-basic-row{grid-template-columns:1fr;gap:0;}#serviceModal .g88-service-value-field label{margin-top:10px;}}


/* V4 — tooltip real do ? do pós-venda: ao lado direito do ponteiro */
.g88-pv-tooltip{
  position:fixed !important;
  left:auto;
  right:auto !important;
  top:auto;
  bottom:auto !important;
  width:280px !important;
  max-width:calc(100vw - 24px) !important;
  z-index:200000 !important;
  pointer-events:none !important;
}


/* V17 — integração com Novo agendamento: somente camadas reais do módulo */
.g88-modal{
  z-index:130000 !important;
}
.g88-tooltip{
  z-index:130100 !important;
}
.g88-vehicle-help{
  z-index:130100 !important;
}
.g88-pv-tooltip{
  z-index:130200 !important;
}
