/* ============================================
   FETALMED — Calculadora Barcelona Doppler CSS
   ============================================ */

/* ── Cards de seção ── */
.bcn-card {
  background: #fff;
  border: 0.5px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-lg, 16px);
  padding: 24px;
  margin-bottom: 16px;
}
.bcn-card-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary, #0e7490);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.bcn-card-title svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ── Inputs ── */
.bcn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.bcn-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.bcn-field { display: flex; flex-direction: column; gap: 4px; }
.bcn-label { font-size: 12px; font-weight: 600; color: var(--color-text-mid, #334155); }
.bcn-input-wrap { position: relative; }
.bcn-input {
  width: 100%; padding: 11px 14px; font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 16px; color: var(--color-text-strong, #0f172a);
  background: #fff; border: 1.5px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 8px); outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.bcn-input:focus { border-color: var(--color-primary, #0e7490); box-shadow: 0 0 0 3px rgba(14,116,144,.1); }

/* Remover setas dos inputs numéricos */
.bcn-input[type="number"]::-webkit-inner-spin-button,
.bcn-input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.bcn-input[type="number"] {
  -moz-appearance: textbox;
  appearance: textbox;
}

.bcn-unit {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  font-size: 12px; color: var(--color-text-light, #64748b); font-weight: 500; pointer-events: none;
}
.bcn-select {
  width: 100%; padding: 11px 14px; font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 16px; color: var(--color-text-strong, #0f172a);
  background: #fff; border: 1.5px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-sm, 8px); outline: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}

/* ── Sexo botões ── */
.bcn-sex-group { display: flex; gap: 8px; margin-bottom: 14px; }
.bcn-sex-btn {
  flex: 1; padding: 10px; border-radius: var(--radius-sm, 8px);
  border: 1.5px solid var(--color-border, #e2e8f0); background: #fff;
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 600; cursor: pointer; text-align: center;
  transition: all .15s; color: var(--color-text-mid, #334155);
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.bcn-sex-btn:hover { border-color: var(--color-primary); }
.bcn-sex-btn.active[data-sex="m"] { background: #ecfeff; border-color: #0e7490; color: #0e7490; }
.bcn-sex-btn.active[data-sex="f"] { background: #fff1f2; border-color: #e11d48; color: #e11d48; }

/* ── Inline resultado (percentil ao lado do campo) ── */
.bcn-inline-result {
  display: flex; align-items: center; gap: 8px; margin-top: 6px; min-height: 24px;
}
.bcn-result-label { font-size: 12px; color: var(--color-text-light, #64748b); }
.bcn-result-value { font-size: 13px; font-weight: 600; color: var(--color-text-strong, #0f172a); }

/* ── PFE resultado ── */
.bcn-efw-result {
  display: inline-block; font-size: 14px; font-weight: 700; margin-top: 8px;
  padding: 6px 14px; border-radius: 99px;
}
.bcn-efw-result.normal { background: #ecfdf5; color: #065f46; }
.bcn-efw-result.warning { background: #fffbeb; color: #92400e; }
.bcn-efw-result.alert { background: #fef2f2; color: #991b1b; }

/* ── Badge semáforo ── */
.bcn-badge {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; padding: 3px 10px;
  border-radius: 99px; min-width: 40px; text-align: center;
  background: #f1f5f9; color: #64748b;
}
.bcn-badge.normal { background: #ecfdf5; color: #065f46; }
.bcn-badge.warning { background: #fffbeb; color: #92400e; }
.bcn-badge.alert { background: #fef2f2; color: #991b1b; }

/* ── Doppler separator ── */
.bcn-separator { height: 0.5px; background: var(--color-border, #e2e8f0); margin: 16px 0; }

/* ── Doppler row alinhamento vertical ── */
.bcn-doppler-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px;
  align-items: end;
}

/* ── Toggle dados maternos ── */
.bcn-toggle-btn {
  width: 100%; padding: 12px; border: 1.5px dashed var(--color-primary, #0e7490);
  border-radius: var(--radius-md, 12px); background: #fff;
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 600; color: var(--color-primary, #0e7490);
  cursor: pointer; transition: background .15s; margin-bottom: 16px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
.bcn-toggle-btn:hover { background: #f0fdfa; }
.bcn-toggle-btn.active { background: #f0fdfa; border-style: solid; }
.bcn-custom-badge {
  display: inline-flex; align-items: center; gap: 4px;
  background: #ecfdf5; color: #065f46; font-size: 10px; font-weight: 600;
  padding: 3px 8px; border-radius: 99px; margin-left: 8px;
}

/* ── Botão analisar ── */
.bcn-btn-analisar {
  width: 100%; padding: 14px; background: var(--color-navy, #1e293b); color: #fff;
  border: none; border-radius: var(--radius-md, 12px);
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 15px; font-weight: 600; cursor: pointer;
  transition: background .15s, transform .1s; margin: 8px 0 16px;
}
.bcn-btn-analisar:hover { background: #334155; transform: translateY(-1px); }

/* ── Erro ── */
.bcn-error {
  background: #fef2f2; border: 1px solid #fca5a5; color: #991b1b;
  border-radius: var(--radius-sm, 8px); padding: 12px 16px;
  font-size: 13px; font-weight: 500; margin-bottom: 16px; text-align: center;
}

/* ── Validação inline ── */
.bcn-input.invalid { border-color: #ef4444; }
.bcn-input.invalid:focus { box-shadow: 0 0 0 3px rgba(239,68,68,.15); }
.bcn-field-error {
  font-size: 11px; color: #dc2626; margin-top: 2px; min-height: 0;
  transition: all .15s;
}

/* ── RESULTADO ── */
.bcn-stage {
  border-radius: var(--radius-lg, 16px) var(--radius-lg, 16px) 0 0;
  padding: 28px 24px; text-align: center; color: #fff;
}
.bcn-stage-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; opacity: .8; margin-bottom: 4px; }
.bcn-stage-title { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.bcn-stage-desc { font-size: 13px; font-weight: 300; opacity: .9; margin: 0; line-height: 1.6; }

/* Stage colors */
.bcn-normal { background: linear-gradient(135deg, #065f46, #0e7490); }
.bcn-sga { background: linear-gradient(135deg, #155e75, #0891b2); }
.bcn-stage-i { background: linear-gradient(135deg, #92400e, #b45309); }
.bcn-stage-ii { background: linear-gradient(135deg, #9f1239, #be123c); }
.bcn-stage-iii { background: linear-gradient(135deg, #881337, #9f1239); }
.bcn-stage-iv { background: linear-gradient(135deg, #4c0519, #881337); }

/* Summary */
.bcn-summary {
  background: #fff; border: 0.5px solid var(--color-border, #e2e8f0);
  border-radius: 0 0 var(--radius-lg, 16px) var(--radius-lg, 16px);
  padding: 16px 20px;
}
.bcn-param-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; border-bottom: 0.5px solid #f1f5f9;
}
.bcn-param-row:last-child { border-bottom: none; }
.bcn-param-label { font-size: 13px; color: var(--color-text-mid, #334155); }
.bcn-param-value { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 99px; }
.bcn-param-value.normal { background: #ecfdf5; color: #065f46; }
.bcn-param-value.warning { background: #fffbeb; color: #92400e; }
.bcn-param-value.alert { background: #fef2f2; color: #991b1b; }

/* Conduct */
.bcn-conduct {
  background: #f8fafc; border: 0.5px solid var(--color-border, #e2e8f0);
  border-radius: var(--radius-md, 12px); padding: 16px 20px; margin-top: 16px;
}
.bcn-conduct-item { padding: 8px 0; }
.bcn-conduct-item + .bcn-conduct-item { border-top: 0.5px solid #e2e8f0; }
.bcn-conduct-label { font-size: 11px; font-weight: 600; color: var(--color-primary, #0e7490); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.bcn-conduct-value { font-size: 13px; color: var(--color-text-mid, #334155); line-height: 1.5; }

/* Disclaimer */
.bcn-disclaimer {
  background: #fffbeb; border: 1px solid #fcd34d; border-radius: var(--radius-sm, 8px);
  padding: 12px 16px; font-size: 12px; color: #92400e; margin: 16px 0; line-height: 1.6;
}

/* ── Referências ── */
.bcn-refs { margin-top: 24px; }
.bcn-refs h3 { font-size: 13px; font-weight: 600; color: var(--color-text-strong); margin: 0 0 12px; }
.bcn-refs ol { margin: 0; padding-left: 20px; }
.bcn-refs li { font-size: 12px; color: var(--color-text-light, #64748b); line-height: 1.6; margin-bottom: 6px; }

/* ── Responsive ── */
@media (max-width: 500px) {
  .bcn-row { grid-template-columns: 1fr; }
  .bcn-row-3 { grid-template-columns: 1fr; }
  .bcn-doppler-row { grid-template-columns: 1fr; }
  .bcn-sex-group { flex-direction: column; }
  .bcn-stage-title { font-size: 18px; }
}

/* ── Mobile overflow fix ── */
#bcn-calc { overflow-x: hidden; max-width: 100%; }
.bcn-card { max-width: 100%; overflow: hidden; }
@media (max-width: 500px) {
  .bcn-card { padding: 16px; }
  .bcn-toggle-btn { padding: 10px; font-size: 12px; }
}
