/* ===== RESET BÁSICO ===== */
*{ box-sizing:border-box; margin:0; padding:0; font-family: Arial, Helvetica, sans-serif; }

body{
  background: linear-gradient(180deg, #eef5ff, #f7fafc);
  color:#111827;
}

.hidden{ display:none; }

/* ===== LAYOUT ===== */
.app-layout{
  max-width: 1480px;
  margin: 0 auto;
  padding: 18px 24px 18px 18px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 16px;
  align-items: start;
}

@media (max-width: 1100px){
  .app-layout{ grid-template-columns: 1fr; }
  .sidebar{ position: static; }
}

.sidebar{
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(17,24,39,0.06);
  border-radius: 18px;
  box-shadow: 0 10px 40px rgba(17,24,39,0.08);
  padding: 14px;
  position: sticky;
  top: 14px;
}

.brand{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 2px 6px 10px;
  border-bottom: 1px solid rgba(17,24,39,0.06);
  margin-bottom: 12px;
}

.brand-logo{
  height: 62px;
  width: auto;
}

.side-section{ padding: 2px; }

.side-title{
  font-weight: 800;
  color: rgba(17,24,39,0.82);
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  margin: 8px 4px 10px;
}

.stat-card{
  background: linear-gradient(180deg, rgba(24,119,255,0.10), rgba(24,119,255,0.04));
  border: 1px solid rgba(24,119,255,0.16);
  border-radius: 16px;
  padding: 14px;
  margin: 0 2px 12px;
}

.stat-label{ color: rgba(17,24,39,0.70); font-weight: 800; font-size: 12px; }
.stat-value{ font-size: 34px; font-weight: 900; line-height: 1; margin-top: 6px; color:#0b2a63; }
.stat-sub{ margin-top: 6px; font-size: 12px; color: rgba(17,24,39,0.65); font-weight: 700; }

.stat-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.mini-card{
  background: rgba(255,255,255,0.90);
  border: 1px solid rgba(17,24,39,0.06);
  border-radius: 14px;
  padding: 10px;
}

.mini-label{ font-size: 12px; color: rgba(17,24,39,0.65); font-weight: 800; }
.mini-value{ font-size: 18px; font-weight: 900; color:#111827; margin-top: 6px; }

.mini-hint{
  margin: 12px 4px 2px;
  font-size: 12px;
  color: rgba(17,24,39,0.60);
  font-weight: 700;
}

.main{ min-width: 0; }

.page-header{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 6px 2px;
}

.page-header h1{
  margin: 4px 0;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: 0.2px;
  color: #0b2a63;
}

/* ===== AÇÕES DO TOPO ===== */
.top-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap: wrap;
}

/* Mantém botões e filtro mais alinhados visualmente */
.top-actions .btn,
.filtro-tecnico select{
  height: 40px;
}

.btn{
  border:none;
  border-radius:12px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:800;
  text-decoration:none;
  background:#e5e7eb;
  color:#111;
  transition: transform 0.05s ease, filter 0.15s ease;
}

.btn:hover{ filter: brightness(1.03); }
.btn:active{ transform: translateY(1px); }

.btn.primary{ background:#1877ff; color:#fff; }
.btn.success{ background:#16a34a; color:#fff; }
.btn.danger{ background:#ef4444; color:#fff; }
.btn.outline{
  background: rgba(255,255,255,0.85);
  border: 1px solid rgba(17,24,39,0.14);
  color:#111827;
}
.btn.outline:hover{ filter: brightness(1.02); }


.btn.small{
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
}

/* ===== FILTRO TÉCNICO ===== */
.filtro-tecnico{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  padding: 8px 6px 10px;
}

.filtro-label{ color:#6b7280; font-weight:800; }

.filtro-tecnico select{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.90);
  min-width: 220px;
}


.filtro-busca-wrap{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  padding: 0 6px 14px;
  flex-wrap:wrap;
}

.filtro-busca-item{
  display:flex;
  align-items:center;
  gap:10px;
}

.filtro-busca-wrap input,
.filtro-busca-wrap select{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.90);
  min-width: 220px;
}

.filtro-busca-wrap input{ min-width: 260px; }

body.dark-theme .filtro-busca-wrap input,
body.dark-theme .filtro-busca-wrap select{
  background: rgba(16,34,59,.92);
  color:#eef4ff;
  border-color: rgba(255,255,255,.08);
}

@media (max-width: 820px){
  .filtro-busca-wrap{justify-content:stretch;}
  .filtro-busca-item{width:100%;}
  .filtro-busca-wrap input,
  .filtro-busca-wrap select{width:100%; min-width:0;}
}

/* ===== CALENDÁRIO ===== */
#calendar{
  width: 100%;
  background: rgba(255,255,255,0.92);
  padding: 18px 24px 18px 18px;
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,0.06);
  box-shadow: 0 10px 40px rgba(17,24,39,0.10);
  position: relative;
  z-index: 1;
}

/* ===== FullCalendar: menos "quadrado" ===== */
.fc{
  --fc-border-color: rgba(17,24,39,0.10);
  --fc-page-bg-color: transparent;
}

.fc .fc-toolbar-title{ font-size: 20px; font-weight: 900; letter-spacing: 0.3px; color:#111827; }

.fc .fc-button{
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.90);
  color:#111827;
  font-weight: 900;
}

.fc .fc-button:hover{ filter: brightness(1.02); }

.fc-theme-standard .fc-scrollgrid{ border-radius: 16px; overflow: hidden; }
.fc-theme-standard td, .fc-theme-standard th{ border-color: rgba(17,24,39,0.10); }

.fc .fc-daygrid-day-frame{ padding: 4px; }
.fc .fc-daygrid-day-top{ display:flex; justify-content:flex-end; }

.fc .fc-daygrid-day-number{
  padding: 2px 6px;
  margin-right: 2px;
  font-weight: 800;
  color: rgba(17,24,39,0.75);
  min-width: 22px;
  text-align: right;
}

/* Número do dia com “badge” sutil (mais premium) */
.fc .fc-daygrid-day-number{
  border-radius: 999px;
  background: rgba(17,24,39,0.04);
}

/* Evita qualquer corte no canto direito */
.fc .fc-daygrid-day-top{ padding-right: 4px; overflow: visible; }

/* evita cortar o número do dia na última coluna */
.fc .fc-scrollgrid-section-body td:last-child .fc-daygrid-day-frame{ padding-right: 8px; }

/* ===== EVENTOS (pílula) ===== */
.fc .fc-daygrid-event{
  background: rgba(24,119,255,0.12);
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  color: #0b2a63;
  /* Mais compacto p/ caber vários eventos por dia */
  border-radius: 10px;
  padding: 2px 6px;
  margin: 3px 2px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.evt-pill{
  display:flex;
  gap: 4px;
  align-items:center;
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
}

/* Não “come” conteúdo quando tem muitos eventos */
.fc .fc-daygrid-day-events{ margin: 2px 2px 4px; }

.evt-time{ font-variant-numeric: tabular-nums; }
.evt-serv{ overflow:hidden; text-overflow: ellipsis; }

/* garante texto escuro (FullCalendar às vezes sobrescreve) */
.fc .fc-daygrid-event .fc-event-main,
.fc .fc-daygrid-event .fc-event-main-frame,
.fc .fc-daygrid-event .fc-event-title{
  color: #0b2a63 !important;
}

.fc .fc-daygrid-event-dot{ display:none !important; }
.fc .fc-daygrid-event:focus,
.fc .fc-daygrid-event:hover,
.fc .fc-daygrid-event.fc-event-selected,
.fc .fc-daygrid-event .fc-event-main-frame{
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}
.fc-h-event{ border: 0 !important; }
.fc .fc-event-time{ display:none !important; }

/* ===== MODAIS ===== */
.modal{
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display:flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
}

.modal.hidden{ display:none !important; }

.modal-content{
  background: rgba(245, 249, 255, 0.96);
  border: 1px solid rgba(17,24,39,0.10);
  width: 420px;
  max-width: 96vw;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  border-radius: 18px;
  padding: 18px 24px 18px 18px;
  box-shadow: 0 14px 55px rgba(0,0,0,0.28);
  animation: surgir 0.25s ease;
}

.modal-dia-content{ width: 1120px; max-width: 96vw; max-height: 92vh; }
.modal-form-content{ width: 780px; max-width: 96vw; max-height: 92vh; overflow-y: auto; overflow-x: hidden; }

.modal-ver-content{
  width: 860px;
  max-width: 96vw;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

/* Scrollbar mais fina nos modais */
.modal-content,
.modal-ver-content{
  scrollbar-width: thin;
  scrollbar-color: rgba(17,24,39,0.28) transparent;
}

.modal-content::-webkit-scrollbar,
.modal-ver-content::-webkit-scrollbar{
  width: 5px;
}

.modal-content::-webkit-scrollbar-track,
.modal-ver-content::-webkit-scrollbar-track{
  background: transparent;
}

.modal-content::-webkit-scrollbar-thumb,
.modal-ver-content::-webkit-scrollbar-thumb{
  background: rgba(17,24,39,0.22);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: content-box;
}

.modal-content::-webkit-scrollbar-thumb:hover,
.modal-ver-content::-webkit-scrollbar-thumb:hover{
  background: rgba(17,24,39,0.32);
  background-clip: content-box;
}


@media (max-width: 900px){
  .modal-dia-content, .modal-ver-content, .modal-form-content{ width: 96vw; }
}

/* ===== GRIDS (MODAL CADASTRO) ===== */
.form-grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 14px;
}
.form-grid-2 .span-2{ grid-column: span 2; }
@media (max-width: 900px){
  .form-grid-2{ grid-template-columns: 1fr; }
  .form-grid-2 .span-2{ grid-column: span 1; }
}

/* ===== MAPAS ===== */
.map-box{
  width: 100%;
  height: 380px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.9);
}
.dia-map-wrap{ margin: 6px 0 14px; }

/* ===== RESUMO (MODAL DO DIA) ===== */
.dia-summary{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 10px 0 14px;
}

.summary-fin{
  background: linear-gradient(180deg, rgba(16,185,129,0.10), rgba(16,185,129,0.04));
  border-color: rgba(16,185,129,0.18);
}
.summary-card{
  border-radius: 14px;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.96);
  padding: 12px 14px;
  box-shadow: 0 8px 24px rgba(17,24,39,0.06);
}
.summary-label{
  font-size: 12px;
  font-weight: 800;
  color: rgba(17,24,39,0.62);
  margin-bottom: 6px;
}
.summary-value{
  font-size: 20px;
  font-weight: 950;
  color: #0f172a;
  letter-spacing: -0.2px;
}
.summary-unit{
  font-size: 12px;
  font-weight: 900;
  color: rgba(17,24,39,0.55);
  margin-left: 2px;
}
@media (max-width: 900px){
  .dia-summary{ grid-template-columns: 1fr; }
}

.dia-route-bar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 2px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(17,24,39,0.08);
  background: rgba(255,255,255,0.85);
}

/* Controles do modal do dia (mesmo padrão do filtro principal) */
.dia-route-left{
  display:flex;
  flex-wrap: wrap;
  align-items:center;
  gap: 10px;
}

.mini-label{
  color:#6b7280;
  font-weight:800;
  font-size: 12px;
}

.select-dark{
  height: 40px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.90);
  min-width: 220px;
  color:#111827;
  font-weight: 800;
}

.select-dark:focus{
  outline: none;
  border-color: rgba(24,119,255,0.45);
  box-shadow: 0 0 0 3px rgba(24,119,255,0.12);
}

.dia-route-bar .btn{ height: 40px; }

@media (max-width: 700px){
  .dia-route-bar{ flex-direction: column; align-items: stretch; }
  .dia-route-left{ justify-content: flex-start; }
  .select-dark{ min-width: 0; width: 100%; }
}

.cad-map-card{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(17,24,39,0.10);
}
.cad-map-bar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
@media (max-width: 700px){
  .cad-map-bar{ flex-direction: column; align-items: stretch; }
}

/* ===== TABELA DO DIA (mais bonita) ===== */
.table.table-dia th, .table.table-dia td{
  padding: 12px 10px;
}
.table.table-dia tbody tr:hover{
  background: rgba(17,24,39,0.03);
}

.table.table-dia{
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(17,24,39,0.06);
}
.table.table-dia tbody tr:nth-child(even){
  background: rgba(17,24,39,0.015);
}
.table.table-dia td{
  vertical-align: top;
}
.table.table-dia td:nth-child(4){
  color: rgba(17,24,39,0.86);
}

@keyframes surgir{
  from{ transform: translateY(-15px); opacity: 0; }
  to{ transform: translateY(0); opacity: 1; }
}

.modal-header{
  display:flex;
  justify-content: space-between;
  align-items:center;
  margin-bottom: 12px;
}

.modal-header h2{ font-size: 18px; font-weight: 900; color:#111827; }

.icon-x{
  background: rgba(17,24,39,0.06);
  border: 1px solid rgba(17,24,39,0.08);
  border-radius: 12px;
  width: 40px;
  height: 40px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size: 16px;
}

.icon-x:hover{ filter: brightness(1.03); }

/* ===== TABELA DO DIA ===== */
table{ width:100%; border-collapse: collapse; margin-top: 6px; }

table th, table td{
  border-bottom: 1px solid rgba(17,24,39,0.10);
  padding: 10px 8px;
  text-align:left;
  font-size: 14px;
}

table th{
  background: rgba(17,24,39,0.04);
  font-weight: 900;
  color: rgba(17,24,39,0.78);
}

table td:last-child{ width: 140px; }

/* agrupamento manhã/tarde */
.group-row td{
  background: rgba(17,24,39,0.06);
  font-weight: 900;
  color: rgba(17,24,39,0.72);
  padding: 10px 12px;
}

/* ===== BOTÕES COM ÍCONE (VER/EDITAR/EXCLUIR) ===== */
.action-buttons{
  display:flex;
  gap: 8px;
  justify-content:flex-start;
}

.action-btn{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.85);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: filter 0.15s ease, transform 0.05s ease;
}

.action-btn:hover{ filter: brightness(1.03); }
.action-btn:active{ transform: translateY(1px); }

.action-btn img{
  width: 18px;
  height: 18px;
  display:block;
  /* ✅ garante que o clique sempre seja no botão (não no <img>) */
  pointer-events: none;
}

.action-btn.danger{
  background: rgba(239,68,68,0.10);
  border-color: rgba(239,68,68,0.22);
}

.action-btn.edit{
  background: rgba(24,119,255,0.10);
  border-color: rgba(24,119,255,0.20);
}

/* ===== BOTÃO NOVO AGENDAMENTO ===== */
.acoes-agenda{ margin-top: 14px; display:flex; justify-content:flex-end; }

/* ===== FORM ===== */
#formAgendamento{ display:flex; flex-direction: column; }

#formAgendamento h3{
  text-align:center;
  font-size: 20px;
  letter-spacing: 0.4px;
  margin-bottom: 10px;
  color:#111827;
  font-weight: 900;
}

#formAgendamento label{ margin-top: 10px; font-weight: 800; color: rgba(17,24,39,0.78); }

#formAgendamento input,
#formAgendamento textarea,
#formAgendamento select{
  width:100%;
  padding: 10px;
  margin-top: 6px;
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.88);
  font-size: 14px;
  outline: none;
}

#formAgendamento input:focus,
#formAgendamento textarea:focus,
#formAgendamento select:focus{
  border-color: rgba(24,119,255,0.45);
  box-shadow: 0 0 0 4px rgba(24,119,255,0.12);
}

#formAgendamento textarea{ min-height: 80px; resize: vertical; }

.form-actions{
  display:flex;
  gap: 10px;
  margin-top: 14px;
  justify-content: flex-end;
  flex-wrap: wrap;
  position: sticky;
  bottom: -18px;
  padding: 12px 0 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.0), rgba(255,255,255,0.92) 35%, rgba(255,255,255,0.96));
}

.form-actions .btn{ flex: 0 0 auto; min-width: 140px; }

/* ===== MODAL VISUALIZAÇÃO ===== */
.ver-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 8px;
}

.ver-item{
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(17,24,39,0.08);
  border-radius: 14px;
  padding: 10px;
}

.ver-item span{ display:block; font-size: 12px; color: rgba(17,24,39,0.55); margin-bottom: 4px; font-weight: 800; }
.ver-item strong{ font-size: 14px; color:#111827; word-break: break-word; }

.ver-full{ grid-column: 1 / -1; }

.ver-sep{ margin: 14px 0; border: none; border-top: 1px solid rgba(17,24,39,0.10); }

.ver-actions{ display:flex; gap:10px; justify-content:flex-end; margin-bottom: 10px; }

.codebox{
  background: #0b1020;
  color: #e5e7eb;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.08);
  overflow:auto;
  min-height: 120px;
  white-space: pre-wrap;
}

/* ===== ASSISTENTE (CHAT) ===== */
.assist-card{
  background: rgba(255,255,255,0.90);
  border: 1px solid rgba(17,24,39,0.06);
  border-radius: 16px;
  padding: 12px;
  margin: 0 2px;
}

.assist-head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
}

.assist-title{ font-weight: 900; color:#0b2a63; }
.assist-sub{ margin-top: 6px; font-size: 12px; color: rgba(17,24,39,0.60); font-weight: 700; }

.assist-panel{
  position: fixed;
  right: 18px;
  bottom: 18px;
  width: 420px;
  max-width: calc(100vw - 36px);
  max-height: calc(100vh - 36px);
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(17,24,39,0.10);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(17,24,39,0.22);
  overflow: hidden;
  z-index: 9999;
}

.assist-panel-header{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 10px;
  background: linear-gradient(180deg, rgba(24,119,255,0.10), rgba(24,119,255,0.02));
  border-bottom: 1px solid rgba(17,24,39,0.08);
}

.assist-panel-sub{ font-size: 12px; color: rgba(17,24,39,0.60); font-weight: 700; margin-top: 2px; }

.assist-messages{
  padding: 12px;
  height: 220px;
  overflow: auto;
}

.assist-msg{
  border-radius: 14px;
  padding: 10px 12px;
  border: 1px solid rgba(17,24,39,0.06);
  margin-bottom: 10px;
  font-size: 13px;
  line-height: 1.35;
}

.assist-msg.user{ background: rgba(24,119,255,0.10); border-color: rgba(24,119,255,0.16); }
.assist-msg.bot{ background: rgba(255,255,255,0.92); }

.assist-msg strong{ font-weight: 800; }
.assist-route-list{ display:grid; gap:8px; }
.assist-route-list ul{ margin:8px 0 0; padding-left:18px; display:grid; gap:8px; }
.assist-route-list li{ margin:0; }
.assist-route-list li.best{ list-style:none; margin-left:-18px; padding-left:0; }
.assist-best-label{ display:inline-block; margin-bottom:4px; padding:2px 8px; border-radius:999px; background:rgba(24,119,255,0.10); color:#0b4dbb; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.assist-route-item{ display:grid; gap:2px; }
.assist-subline{ opacity:.85; font-size:12px; }

.assist-form{
  padding: 12px;
  border-top: 1px solid rgba(17,24,39,0.08);
  display:flex;
  flex-direction: column;
  gap: 8px;
}

.assist-form label{ font-size: 12px; font-weight: 900; color: rgba(17,24,39,0.68); }
.assist-form input, .assist-form select{
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,0.12);
  background: rgba(255,255,255,0.92);
}

.assist-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* scrollbar discreta */
.assist-messages::-webkit-scrollbar{ width: 8px; }
.assist-messages::-webkit-scrollbar-thumb{ background: rgba(17,24,39,0.18); border-radius: 999px; }


.assist-actions{
  display:flex;
  gap: 10px;
  padding: 8px 12px 12px;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.assist-btn{
  appearance:none;
  border: 1px solid rgba(17,24,39,0.12);
  background: rgba(255,255,255,0.92);
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 800;
  font-size: 12px;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
}

.assist-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.10);
}

.assist-btn.primary{
  background: rgba(37,99,235,0.12);
  border-color: rgba(37,99,235,0.25);
}


.ai-chat-fab{
  position:fixed;
  right:24px;
  bottom:24px;
  width:64px;
  height:64px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.95);
  background:linear-gradient(180deg,#f8fbff,#dcecff);
  color:#fff;
  box-shadow:0 18px 38px rgba(37,99,235,0.34), 0 0 0 1px rgba(37,99,235,0.18);
  cursor:pointer;
  z-index:9998;
  display:grid;
  place-items:center;
  padding:0;
  overflow:hidden;
  transition:transform .16s ease, box-shadow .16s ease;
}

.ai-chat-fab:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 46px rgba(37,99,235,0.42), 0 0 0 1px rgba(37,99,235,0.24);
}

.ai-avatar-head{
  width:52px;
  height:52px;
  display:block;
}

.ai-avatar-head svg{
  width:100%;
  height:100%;
  display:block;
}

.ai-chat-modal{
  position:fixed;
  inset:0;
  display:flex;
  justify-content:flex-end;
  align-items:flex-end;
  padding:24px;
  background:rgba(15,23,42,0.22);
  z-index:9999;
}

.ai-chat-modal.hidden{ display:none !important; }

.ai-chat-card{
  width:min(470px, calc(100vw - 32px));
  height:min(650px, calc(100vh - 48px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(17,24,39,0.12);
  background:#ffffff;
  box-shadow:0 24px 70px rgba(15,23,42,0.28);
}

.ai-chat-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border-bottom:1px solid rgba(17,24,39,0.08);
  background:#f8fafc;
}

.ai-chat-head strong{ display:block; color:#111827; font-size:16px; }
.ai-chat-head span{ display:block; margin-top:3px; color:rgba(17,24,39,0.62); font-size:12px; font-weight:700; line-height:1.3; }

.ai-chat-messages{
  flex:1;
  overflow:auto;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  background:#f3f6fb;
}

.ai-chat-msg{
  max-width:90%;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(17,24,39,0.08);
  background:#fff;
  color:#111827;
  line-height:1.48;
  font-size:14px;
  box-shadow:0 8px 18px rgba(15,23,42,0.06);
}

.ai-chat-msg.assistant{
  align-self:flex-start;
  border-top-left-radius:8px;
}

.ai-chat-msg.user{
  align-self:flex-end;
  background:#dbeafe;
  border-color:rgba(37,99,235,0.18);
  border-top-right-radius:8px;
}

.ai-chat-msg.loading{ opacity:.72; font-style:italic; }

.ai-chat-msg p{
  margin:0 0 9px;
}

.ai-chat-msg p:last-child{
  margin-bottom:0;
}

.ai-chat-msg strong{
  font-weight:850;
}

.ai-chat-msg ul,
.ai-chat-msg ol{
  margin:4px 0 10px 20px;
  padding:0;
}

.ai-chat-msg li{
  margin:5px 0;
  padding-left:2px;
}

.ai-chat-msg code{
  background:rgba(15,23,42,0.07);
  border-radius:6px;
  padding:1px 5px;
  font-size:12px;
}

.ai-chat-form{
  display:grid;
  gap:10px;
  padding:14px;
  border-top:1px solid rgba(17,24,39,0.08);
  background:#ffffff;
}

.ai-chat-form textarea{
  width:100%;
  resize:none;
  border-radius:12px;
  border:1px solid rgba(17,24,39,0.14);
  padding:11px 12px;
  font:inherit;
  line-height:1.35;
  min-height:82px;
}

body.dark-theme .ai-chat-card{ background:#0f172a; border-color:rgba(255,255,255,0.12); }
body.dark-theme .ai-chat-head, body.dark-theme .ai-chat-form{ background:#111c31; border-color:rgba(255,255,255,0.10); }
body.dark-theme .ai-chat-head strong{ color:#eef4ff; }
body.dark-theme .ai-chat-head span{ color:rgba(238,244,255,0.68); }
body.dark-theme .ai-chat-messages{ background:#0b1323; }
body.dark-theme .ai-chat-msg{ background:#16233a; color:#eef4ff; border-color:rgba(255,255,255,0.10); }
body.dark-theme .ai-chat-msg.user{ background:#1e3a8a; }
body.dark-theme .ai-chat-msg code{ background:rgba(255,255,255,0.10); }
body.dark-theme .ai-chat-form textarea{ background:#0b1323; color:#eef4ff; border-color:rgba(255,255,255,0.14); }

@media (max-width: 620px){
  .ai-chat-modal{ padding:12px; }
  .ai-chat-card{ width:100%; height:calc(100vh - 24px); }
  .ai-chat-fab{ right:16px; bottom:16px; }
}

/* ===== Service Picker (multi-serviços) ===== */
.service-picker{position:relative;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.06);padding:10px;cursor:pointer}
.service-picker-display{color:#e9eefc;font-size:14px;user-select:none}
.service-picker-dropdown{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:#0f172a;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px;z-index:50;max-height:240px;overflow:auto}
.service-picker.open .service-picker-dropdown{display:block}
.service-item{display:flex;align-items:center;gap:10px;padding:6px 6px;border-radius:10px}
.service-item:hover{background:rgba(255,255,255,.06)}
.service-item input{accent-color:#3b82f6}
.service-item span{color:#e9eefc;font-size:14px}

/* 🔧 Service Picker dentro do modal (tema claro) */
.modal-form-content .service-picker{
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.88);
}
.modal-form-content .service-picker-display{ color:#111827; font-weight: 600; }
.modal-form-content .service-picker-dropdown{
  background: #ffffff;
  border: 1px solid rgba(17,24,39,0.10);
  box-shadow: 0 18px 40px rgba(0,0,0,0.18);
}
.modal-form-content .service-item:hover{ background: rgba(17,24,39,0.06); }
.modal-form-content .service-item span{ color:#111827; }


/* Ajuste de altura do mapa no cadastro (evita modal estourar a tela) */
#mapCadastro{ height: 260px !important; }


@media (max-width: 520px){
  .modal-content{ padding: 14px 14px 16px; }
  .form-actions .btn{ width: 100%; min-width: 0; }
}


/* ===== HUB NAV ===== */
.top-actions .btn.ghost{
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(17,24,39,0.08);
}
.top-actions .btn.ghost:hover{
  background: #ffffff;
}
@media (max-width: 720px){
  .top-actions{ width:100%; justify-content:flex-start; }
  .top-actions .btn{ flex:1 1 auto; text-align:center; }
}


.whatsapp-link{color:#c7d9ff;text-decoration:none;border-bottom:1px dashed rgba(37,99,235,.35);padding-bottom:1px;transition:.18s}
.whatsapp-link.is-active{color:#86efac;border-bottom-color:rgba(16,185,129,.45)}
.whatsapp-link.is-active:hover{color:#bbf7d0;border-bottom-color:rgba(16,185,129,.75)}


/* ===== TEMA ESCURO ===== */
body.dark-theme{
  background: linear-gradient(180deg, #07101d, #0b1628 60%, #0f1d33);
  color:#eef4ff;
}
body.dark-theme .sidebar,
body.dark-theme #calendar,
body.dark-theme .mini-card,
body.dark-theme .stat-card,
body.dark-theme .assist-card,
body.dark-theme .filtro-tecnico select,
body.dark-theme .btn.outline,
body.dark-theme .modal-content,
body.dark-theme .modal-dia-content,
body.dark-theme .table-dia,
body.dark-theme input,
body.dark-theme select,
body.dark-theme textarea{
  background: rgba(16,28,46,.94);
  color:#eef4ff;
  border-color: rgba(255,255,255,.08);
}
body.dark-theme .brand,
body.dark-theme .sidebar{box-shadow:0 12px 40px rgba(0,0,0,.28)}
body.dark-theme .side-title,
body.dark-theme .stat-label,
body.dark-theme .stat-sub,
body.dark-theme .mini-label,
body.dark-theme .mini-hint,
body.dark-theme .filtro-label{color:#9fb0d0}
body.dark-theme .page-header h1,
body.dark-theme .stat-value,
body.dark-theme .mini-value,
body.dark-theme .fc .fc-toolbar-title,
body.dark-theme .fc .fc-daygrid-day-number{color:#eef4ff}
body.dark-theme .btn{background:#1f2f4a;color:#eef4ff}
body.dark-theme .btn.ghost,
body.dark-theme .btn.outline{background:rgba(255,255,255,.05);color:#dbeafe;border:1px solid rgba(255,255,255,.08)}
body.dark-theme .btn.primary{background:#2563eb}
body.dark-theme .btn.success{background:#16a34a}
body.dark-theme .btn.danger{background:#7f1d1d}
body.dark-theme .fc .fc-button{background:rgba(255,255,255,.06);color:#eef4ff;border-color:rgba(255,255,255,.08)}
body.dark-theme .fc-theme-standard td, body.dark-theme .fc-theme-standard th, body.dark-theme .fc-theme-standard .fc-scrollgrid{border-color:rgba(255,255,255,.08)}
body.dark-theme .fc .fc-daygrid-day.fc-day-today{background:rgba(37,99,235,.15)}


.checkbox-inline{display:inline-flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}
.checkbox-inline input{width:18px;height:18px}
.form-check-inline{display:flex;align-items:flex-end}

.fc .fc-daygrid-event,.fc .fc-daygrid-block-event,.fc .fc-h-event{border:none !important;background:transparent !important;box-shadow:none !important}
.fc .fc-daygrid-event{border-radius:14px;overflow:visible;margin:3px 2px 0}
.fc .evt-pill{padding:6px 10px;border:none;border-radius:12px;font-weight:800;line-height:1.25;white-space:normal;box-shadow:0 6px 14px rgba(15,23,42,.10);letter-spacing:.1px}
.fc .evt-time{display:inline-block;font-weight:900;margin-right:6px}
.fc .evt-serv{display:inline-block;opacity:.96}
.fc-event-status-pendente .evt-pill,
.fc-event-status-confirmado .evt-pill{background:#facc15;color:#111827;border:none}
.fc-event-status-concluido .evt-pill{background:#dcfce7;color:#166534;border:none}
.fc-event-status-cancelado .evt-pill{background:#fee2e2;color:#991b1b;border:none}
.fc-event-status-em-andamento .evt-pill{background:#dbeafe;color:#1d4ed8;border:none}

.inline-status-wrap{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.inline-status-select{min-width:145px;padding:6px 10px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;font-weight:600}
body.dark-theme .inline-status-select{background:#0f172a;color:#e5e7eb;border-color:#334155}
.inline-status-select.status-pendente,.inline-status-select.status-confirmado{background:#fef3c7;color:#111827;border-color:#ca8a04}
.inline-status-select.status-concluido{background:#dbeafe;color:#166534;border-color:#166534}
.inline-status-select.status-cancelado{background:#fee2e2;color:#991b1b;border-color:#991b1b}
.inline-status-select.status-em-andamento{background:#dbeafe;color:#1d4ed8;border-color:#1d4ed8}


.map-search-row{display:flex;gap:10px;align-items:center;margin:8px 0 10px}
.map-search-row input{flex:1;height:42px;padding:0 14px;border-radius:12px;border:1px solid rgba(17,24,39,.12);background:#fff}
.map-address-results{display:flex;flex-direction:column;gap:8px;max-height:190px;overflow:auto;margin:0 0 12px}
.map-address-item{padding:10px 12px;border-radius:12px;border:1px solid rgba(17,24,39,.10);background:rgba(255,255,255,.92);cursor:pointer;transition:.15s ease}
.map-address-item:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08);border-color:rgba(37,99,235,.22)}
.map-address-main{font-weight:800;color:#0f172a;font-size:13px}
.map-address-sub{font-size:12px;color:#64748b;margin-top:3px}
body.dark-theme .map-search-row input{background:#10223b;color:#eef4ff;border-color:rgba(255,255,255,.08)}
body.dark-theme .map-address-item{background:#10223b;border-color:rgba(255,255,255,.08)}
body.dark-theme .map-address-main{color:#eef4ff}
body.dark-theme .map-address-sub{color:#9fb0d0}
@media (max-width:700px){.map-search-row{flex-direction:column;align-items:stretch}}

.map-canvas-wrap{
  position: relative;
}

.map-search-overlay{
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  z-index: 500;
  display:flex;
  gap: 10px;
  align-items:center;
}

.map-search-overlay input{
  flex:1;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,0.10);
  background: rgba(255,255,255,0.96);
  box-shadow: 0 8px 24px rgba(15,23,42,0.12);
}

.map-search-overlay .btn{
  height: 42px;
  white-space: nowrap;
  box-shadow: 0 8px 24px rgba(15,23,42,0.10);
}

.map-address-results{
  margin-top: 10px;
  max-height: 170px;
  overflow:auto;
  display:grid;
  gap: 8px;
}

.map-address-item.is-selected{
  border-color: rgba(37,99,235,0.45);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.10);
}

@media (max-width: 760px){
  .map-search-overlay{
    flex-direction: column;
    align-items: stretch;
  }
}

.map-canvas-wrap .leaflet-top.leaflet-left{ top:84px; }
.map-canvas-wrap .leaflet-control-zoom{ margin-top:0 !important; }
.map-search-overlay{ z-index:700; }
.map-search-overlay input{ padding-left:14px; }


/* Google Places autocomplete */
.pac-container{
  z-index: 99999 !important;
  position: fixed !important;
  border-radius: 12px !important;
  border: 1px solid rgba(17,24,39,.10) !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.14) !important;
  overflow: hidden !important;
  font-family: Arial, Helvetica, sans-serif !important;
}
.pac-container:after{ display:none !important; }
.pac-item{
  padding: 10px 12px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  background: #fff !important;
  color: #111827 !important;
  border-top: 1px solid rgba(17,24,39,.06) !important;
}
.pac-item:first-child{ border-top: 0 !important; }
.pac-item:hover,
.pac-item-selected{ background: #f8fafc !important; }
.pac-item-query{
  font-size: 14px !important;
  color: #111827 !important;
  font-weight: 700 !important;
}
.pac-icon{ display:none !important; }
body.dark-theme .pac-container{ background:#10223b !important; border-color:rgba(255,255,255,.08) !important; }
body.dark-theme .pac-item,
body.dark-theme .pac-item-query{ background:#10223b !important; color:#eef4ff !important; }
body.dark-theme .pac-item:hover,
body.dark-theme .pac-item-selected{ background:#16304f !important; }


/* Desativa qualquer dropdown visual do Google Places no frontend atual */
.pac-container{ display:none !important; }

.address-autocomplete-wrap{position:relative;width:100%}
.address-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;padding:8px;border-radius:14px;border:1px solid rgba(17,24,39,.10);background:rgba(255,255,255,.98);box-shadow:0 16px 34px rgba(15,23,42,.12);z-index:1200}
.address-suggestions.hidden{display:none}
.address-suggestion-item{width:100%;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid rgba(17,24,39,.08);background:rgba(255,255,255,.94);cursor:pointer;transition:.15s ease;font:inherit;color:inherit}
.address-suggestion-item:hover,.address-suggestion-item.is-selected{transform:translateY(-1px);border-color:rgba(24,119,255,.22);background:rgba(24,119,255,.08);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.address-suggestion-main{font-weight:800;color:#111827;font-size:13px;line-height:1.25}
.address-suggestion-sub{margin-top:4px;font-size:11px;color:rgba(17,24,39,.58);font-weight:700}
.address-suggestions.map-inline{top:auto;bottom:calc(100% + 8px);max-height:180px}
body.dark-theme .address-suggestions{background:#0f1728;border-color:rgba(255,255,255,.08);box-shadow:0 16px 34px rgba(0,0,0,.38)}
body.dark-theme .address-suggestion-item{background:#10223b;border-color:rgba(255,255,255,.08)}
body.dark-theme .address-suggestion-main{color:#e5eefc}
body.dark-theme .address-suggestion-sub{color:rgba(229,238,252,.68)}


/* ===== PATCH UI: botões de navegação padronizados ===== */
.top-actions{align-items:center;}
.top-actions .btn{
  min-width:112px;
  height:40px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border-radius:12px;
  font-size:13px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
}
.top-actions .btn:not(.danger){
  background:#ffffff;
  color:#0f172a;
  border:1px solid rgba(15,23,42,.12);
  box-shadow:0 6px 18px rgba(15,23,42,.06);
}
.top-actions .btn:not(.danger):hover{
  background:#eef6ff;
  border-color:rgba(37,99,235,.24);
}
.top-actions .btn.danger{
  min-width:74px;
  background:#ef4444;
  color:#fff;
  border:1px solid rgba(185,28,28,.2);
  box-shadow:0 8px 20px rgba(239,68,68,.22);
}
body.dark-theme .top-actions .btn:not(.danger){
  background:#13233a;
  color:#eaf2ff;
  border-color:rgba(148,163,184,.20);
}
body.dark-theme .top-actions .btn:not(.danger):hover{background:#173456;}

/* ===== PATCH UI: ícones reais e botões mais profissionais ===== */
.btn .icon,
.top-actions .icon{
  width:18px;
  height:18px;
  flex:0 0 auto;
  stroke-width:2.25;
}
.top-actions .btn{
  min-width:126px;
  height:44px;
  padding:0 16px;
  gap:8px;
  border-radius:14px;
  font-size:13.5px;
  letter-spacing:.01em;
}
.top-actions .btn.danger{
  min-width:78px;
}
@media (max-width: 920px){
  .top-actions .btn{min-width:118px;height:42px;}
}
