/* ── Botão flutuante Global ── */
#clinic-toggle {
  position: fixed !important; bottom: 24px !important; right: 24px !important; z-index: 2147483646 !important;
  width: 56px !important; height: 56px !important; border-radius: 50% !important;
  background-color: #ffffff !important; border: 2px solid #2563eb !important; cursor: pointer !important;
  box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition: transform 0.2s, box-shadow 0.2s; overflow: hidden !important; padding: 0 !important;
}
#clinic-toggle:hover { transform: scale(1.05); box-shadow: 0 6px 20px rgba(37, 99, 235, 0.3) !important; background-color: #f8fafc !important; }

/* ── Sidebar Global ── */
#clinic-sidebar {
  position: fixed !important; top: 0 !important; right: -420px !important; width: 400px !important; height: 100vh !important;
  z-index: 2147483647 !important; background: #f8fafc !important; box-shadow: -4px 0 25px rgba(0,0,0,0.1) !important;
  transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; display: flex !important; flex-direction: column !important;
  font-family: system-ui, -apple-system, sans-serif !important; overflow-y: auto !important;
}
#clinic-sidebar.open { right: 0 !important; }

#clinic-header {
  background: #1e293b !important; color: white !important; padding: 12px 16px !important;
  display: flex !important; justify-content: space-between !important; align-items: center !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
}
#clinic-header .title { font-size: 15px !important; font-weight: 700 !important; letter-spacing: 0.5px !important; }
#clinic-header .subtitle { font-size: 11px !important; color: #94a3b8 !important; margin-top: 2px !important; }
#clinic-close {
  background: none !important; border: none !important; color: #cbd5e1 !important; font-size: 18px !important;
  cursor: pointer !important; padding: 4px !important; transition: color 0.2s !important;
}
#clinic-close:hover { color: white !important; }

/* ── Novo Menu Linhas de Cuidado ── */
.menu-linha-cuidado { display: flex !important; flex-direction: column !important; gap: 12px !important; padding: 12px !important; }
.lc-card {
  background: linear-gradient(145deg, #ffffff, #f8fafc) !important; border: 1px solid #e2e8f0 !important; border-radius: 12px !important;
  padding: 16px !important; text-align: left !important; cursor: pointer !important; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02) !important;
  transition: all 0.2s ease !important; display: flex !important; align-items: center !important; gap: 16px !important;
}
.lc-card:hover { transform: translateY(-3px) !important; box-shadow: 0 8px 15px rgba(37, 99, 235, 0.1) !important; border-color: #93c5fd !important; }
.lc-icon { font-size: 32px !important; }
.lc-text { display: flex !important; flex-direction: column !important; }
.lc-title { font-size: 13.5px !important; font-weight: 800 !important; color: #1e293b !important; text-transform: uppercase !important; letter-spacing: 0.5px !important;}
.lc-subtitle { font-size: 11px !important; color: #64748b !important; margin-top: 4px !important; line-height: 1.3 !important;}

/* ── Dashboard Menu Principal (Sub-telas) ── */
.dashboard-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 12px; }
.dash-card {
  background: linear-gradient(145deg, #ffffff, #f8fafc); border: 1px solid #e2e8f0; border-radius: 10px;
  padding: 16px 8px; text-align: center; cursor: pointer; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
  transition: all 0.2s ease; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.dash-card:hover { transform: translateY(-3px); box-shadow: 0 8px 15px rgba(37, 99, 235, 0.1); border-color: #93c5fd; }
.dash-icon { font-size: 28px; margin-bottom: 8px; }
.dash-title { font-size: 13px; font-weight: 700; color: #1e293b; }
.dash-subtitle { font-size: 10.5px; color: #64748b; margin-top: 4px; }

/* ── Elementos Comuns ── */
.clinic-tab-pane { display: none !important; padding: 12px !important; flex: 1 !important; }
.clinic-tab-pane.active { display: block !important; animation: fadeIn 0.3s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

.btn-voltar-menu {
  background: #e2e8f0; border: none; color: #334155; font-size: 12px; font-weight: 600;
  padding: 6px 12px; border-radius: 6px; cursor: pointer; display: inline-flex;
  align-items: center; margin-bottom: 12px; transition: background 0.2s; width: 100%; justify-content: center;
}
.btn-voltar-menu:hover { background: #cbd5e1; }

#clinic-sidebar label { font-size: 11px !important; font-weight: 600 !important; color: #475569 !important; display: block !important; margin-bottom: 4px !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; }

#clinic-sidebar input[type="text"],
#clinic-sidebar input[type="number"],
#clinic-sidebar input[type="date"],
#clinic-sidebar select {
  width: 100% !important; height: 28px !important; padding: 0 8px !important; margin: 0 !important;
  border: 1px solid #cbd5e1 !important; border-radius: 6px !important; font-size: 11.5px !important; 
  font-family: inherit !important; color: #1e293b !important; background: #fff !important; 
  box-sizing: border-box !important; transition: border-color 0.2s, box-shadow 0.2s !important;
}
#clinic-sidebar input[type="text"]:focus, #clinic-sidebar input[type="number"]:focus,
#clinic-sidebar input[type="date"]:focus, #clinic-sidebar select:focus { 
  outline: none !important; border-color: #3b82f6 !important; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important; 
}

/* ── Estilos Específicos (Crescimento) ── */
.cc-card { background: white !important; border-radius: 8px !important; padding: 12px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important; margin-bottom: 12px !important; border: 1px solid #e2e8f0 !important; }
.cc-card h2 { font-size: 13px !important; font-weight: 700 !important; color: #1e293b !important; margin: 0 0 10px 0 !important; display: flex !important; align-items: center !important; gap: 6px !important; }
.cc-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.cc-full { grid-column: span 2 !important; }
.cc-btns { display: flex !important; gap: 8px !important; }
.cc-btn { flex: 1 !important; padding: 8px !important; border: none !important; border-radius: 6px !important; font-size: 11.5px !important; font-weight: 600 !important; cursor: pointer !important; transition: background 0.2s !important; text-align: center !important; }
.cc-btn-auto { background: #f0fdf4 !important; color: #0f766e !important; border: 1px solid #ccfbf1 !important; }
.cc-btn-auto:hover { background: #ccfbf1 !important; }
.cc-btn-calc { background: #3b82f6 !important; color: white !important; }
.cc-btn-calc:hover { background: #2563eb !important; }
.cc-btn-limpar { background: #f1f5f9 !important; color: #64748b !important; flex: 0.5 !important; }
.cc-btn-limpar:hover { background: #e2e8f0 !important; }

.cc-resumo { display: none; background: #f8fafc !important; }
.cc-table { width: 100% !important; border-collapse: collapse !important; font-size: 11px !important; margin-bottom: 8px !important; }
.cc-table th { text-align: left !important; padding: 4px 6px !important; border-bottom: 2px solid #e2e8f0 !important; color: #64748b !important; font-weight: 600 !important; }
.cc-table td { padding: 6px !important; border-bottom: 1px solid #f1f5f9 !important; color: #334155 !important; }
.cc-badge { padding: 2px 6px !important; border-radius: 10px !important; font-size: 10px !important; font-weight: 700 !important; display: inline-block !important; }
.cc-badge.normal { background: #dcfce7 !important; color: #166534 !important; }
.cc-badge.atencao { background: #fef9c3 !important; color: #92400e !important; }
.cc-badge.alerta { background: #fee2e2 !important; color: #991b1b !important; }

.cc-charts { display: none; }
.cc-charts-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.cc-chart-card { background: white !important; border: 1px solid #e2e8f0 !important; border-radius: 6px !important; padding: 8px !important; display: flex !important; flex-direction: column !important; align-items: center !important; }
.cc-chart-card h4 { font-size: 10.5px !important; color: #475569 !important; margin: 0 0 4px 0 !important; text-align: center !important; }
.cc-chart-meta { font-size: 9px !important; color: #94a3b8 !important; margin-bottom: 6px !important; text-align: center !important; }
.cc-chart-wrap { position: relative !important; width: 100% !important; max-width: 220px !important; margin: 0 auto !important; }
.cc-chart-canvas { display: block !important; width: 100% !important; max-width: none !important; height: auto !important; background: #fff !important; }
.cc-chart-point { position: absolute !important; width: 12px !important; height: 12px !important; border-radius: 999px !important; background: #111 !important; border: 2px solid #fff !important; box-shadow: 0 0 0 1px rgba(0,0,0,0.22) !important; pointer-events: none !important; display: none; transform: translate(-50%, -50%) !important; z-index: 5 !important; }
.cc-chart-point.visible { display: block !important; }
.cc-chart-badge { margin-top: 6px !important; text-align: center !important; }

/* ── Estilos Específicos (PREVENT CV / VES-13) ── */
.prev-btn-auto { width: 100% !important; padding: 8px !important; background: #eff6ff !important; color: #1d4ed8 !important; border: 1px dashed #bfdbfe !important; border-radius: 6px !important; font-size: 11.5px !important; font-weight: 600 !important; cursor: pointer !important; margin-bottom: 4px !important; transition: all 0.2s !important; }
.prev-btn-auto:hover { background: #dbeafe !important; }
#prevent-auto-msg { font-size: 10.5px !important; text-align: center !important; min-height: 12px !important; margin-bottom: 10px !important; font-weight: 600 !important; }
.prev-section { font-size: 10px !important; font-weight: 800 !important; color: #94a3b8 !important; border-bottom: 1px solid #e2e8f0 !important; padding-bottom: 4px !important; margin: 12px 0 8px !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; }
.prev-row { margin-bottom: 8px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; }
.prev-row label { margin-bottom: 0 !important; width: 60% !important; }
.prev-row input, .prev-row select { width: 35% !important; } 

#clinic-sidebar .prev-check { 
  display: flex !important; align-items: center !important; margin-bottom: 8px !important; 
  background: #f8fafc !important; padding: 8px 12px !important; border-radius: 6px !important; 
  border: 1px solid #e2e8f0 !important; text-align: left !important;
}
#clinic-sidebar .prev-check input[type="checkbox"] { 
  width: 16px !important; height: 16px !important; margin: 0 10px 0 0 !important; 
  padding: 0 !important; flex-shrink: 0 !important; cursor: pointer !important; accent-color: #3b82f6 !important; 
}
#clinic-sidebar .prev-check label { 
  margin: 0 !important; cursor: pointer !important; text-transform: none !important; 
  letter-spacing: normal !important; font-size: 12px !important; color: #334155 !important; 
  line-height: 1.3 !important; text-align: left !important; width: auto !important; 
}

.prev-actions { display: flex !important; gap: 8px !important; margin-top: 16px !important; }
.prev-btn-calc { flex: 1 !important; padding: 10px !important; background: #1e293b !important; color: white !important; border: none !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 700 !important; cursor: pointer !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; }
.prev-btn-calc:hover { background: #0f172a !important; }
.prev-btn-clear { padding: 10px 14px !important; background: #f1f5f9 !important; color: #64748b !important; border: none !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 600 !important; cursor: pointer !important; }
.prev-btn-clear:hover { background: #e2e8f0 !important; color: #334155 !important; }
#prevent-resultado-inner { background: #1e293b !important; color: white !important; padding: 12px !important; border-radius: 8px !important; text-align: center !important; margin-top: 12px !important; border: 1px solid #334155 !important; }
.prev-res-label { font-size: 10px !important; color: #94a3b8 !important; font-weight: 700 !important; letter-spacing: 1px !important; }
#prev-risco-valor { font-size: 28px !important; font-weight: 800 !important; margin: 6px 0 !important; line-height: 1 !important; }
#prev-risco-cat { display: inline-block !important; font-size: 12px !important; font-weight: 700 !important; padding: 3px 10px !important; border-radius: 20px !important; border: 2px solid !important; margin-bottom: 10px !important; }
#prev-conduta { font-size: 12px !important; color: #cbd5e1 !important; line-height: 1.4 !important; background: rgba(0,0,0,0.2) !important; padding: 8px !important; border-radius: 6px !important; }

/* ── Estilos Específicos (Pré-Natal e Puericultura) ── */
.pn-card, .pueri-card { background: white !important; border-radius: 8px !important; padding: 12px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important; margin-bottom: 12px !important; border: 1px solid #e2e8f0 !important; }
.pn-card h2, .pueri-card h2 { font-size: 13px !important; font-weight: 700 !important; color: #1e293b !important; margin: 0 0 10px 0 !important; }
.pn-field, .pueri-field { margin-bottom: 10px !important; }
.pn-btn-calc { width: 100% !important; padding: 10px !important; background: #db2777 !important; color: white !important; border: none !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 700 !important; cursor: pointer !important; text-transform: uppercase !important; margin-top: 6px !important; }
.pn-btn-calc:hover { background: #be185d !important; }
.pn-metodo-btn { flex: 1 !important; padding: 8px !important; background: #fdf2f8 !important; color: #be185d !important; border: 1px solid #fbcfe8 !important; border-radius: 6px !important; font-size: 11px !important; font-weight: 700 !important; cursor: pointer !important; }
.pn-metodo-btn.pn-metodo-ativo { background: #db2777 !important; color: white !important; border-color: #db2777 !important; }
#pn-resultado, #pueri-resultado { background: #fdf2f8 !important; border: 1px solid #fbcfe8 !important; border-radius: 8px !important; padding: 12px !important; margin-top: 12px !important; }
#pueri-resultado { background: #f0fdfa !important; border-color: #ccfbf1 !important; }
.pn-res-box { background: #831843 !important; color: white !important; padding: 10px !important; border-radius: 6px !important; text-align: center !important; margin-bottom: 12px !important; }
.pn-res-ig { font-size: 18px !important; font-weight: 800 !important; margin: 2px 0 !important; color: #fdf2f8 !important; }
.pn-res-dpp { font-size: 11.5px !important; color: #fbcfe8 !important; }

.pn-section-title { font-size: 13px !important; font-weight: 800 !important; color: #9d174d !important; border-bottom: 2px solid #fbcfe8 !important; padding-bottom: 4px !important; margin-bottom: 8px !important; }
.pueri-section-title { font-size: 13px !important; font-weight: 800 !important; text-transform: uppercase !important; color: #0f766e !important; border-bottom: 2px solid #99f6e4 !important; padding-bottom: 4px !important; margin-bottom: 8px !important; }
.pn-list { margin: 0; padding-left: 0; font-size: 12.5px; color: #831843; line-height: 1.45; }
.pueri-list { margin: 0; padding-left: 0; font-size: 12.5px; color: #115e59; line-height: 1.45; }
.pueri-alert { background: #fffbeb !important; border-left: 4px solid #fbbf24 !important; padding: 8px !important; font-size: 11.5px !important; color: #92400e !important; border-radius: 4px !important; margin-top: 12px !important; font-weight: 600 !important; line-height: 1.4 !important; }

/* ── Botão Global de Exportação ── */
.btn-export-global { width: 100% !important; padding: 10px !important; background: #2563eb !important; color: white !important; border: none !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 700 !important; cursor: pointer !important; margin-top: 12px !important; display: flex !important; justify-content: center !important; align-items: center !important; gap: 6px !important; transition: background 0.2s !important; }
.btn-export-global:hover { background: #1d4ed8 !important; }

/* ── Impressão ── */
@media print {
  body > *:not(#clinic-sidebar) { display: none !important; }
  #clinic-toggle, #clinic-header, .dashboard-grid, .btn-voltar-menu, .cc-btns, .prev-actions, .prev-btn-auto, .btn-export-global, .pn-btn-calc { display: none !important; }
  #clinic-sidebar { position: static !important; width: 100% !important; height: auto !important; right: 0 !important; box-shadow: none !important; background: white !important; overflow: visible !important; }
  .clinic-tab-pane { padding: 0 !important; }
}

/* ── Estilos movidos do JavaScript para o CSS ── */
.isf-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.isf-btn { padding: 12px 8px !important; background: #f0fdfa !important; border: 1px solid #99f6e4 !important; border-radius: 6px !important; color: #0f766e !important; font-size: 11px !important; font-weight: bold !important; cursor: pointer !important; transition: background 0.2s, transform 0.1s !important; text-align: center !important; }
.isf-btn:hover { background: #ccfbf1 !important; transform: translateY(-1px) !important; }
.isf-btn:active { transform: translateY(1px) !important; }
#isf-status { margin-top: 12px !important; font-size: 11px !important; font-weight: bold !important; text-align: center !important; min-height: 20px !important; line-height: 1.4 !important; padding: 8px !important; border-radius: 6px !important; background: #f8fafc !important; }
