/* ============================================================
   assets/calc-propietario/calc-propietario.20261105.css · OC-48 · Calculadoras de mercado para propietarios
   Hoja propia (prefijo .chcp-), no depende de Tailwind. Móvil primero. Contraste WCAG 2.2 AA (texto ≥ 4,5:1),
   objetivos táctiles ≥ 44 px, foco visible. Colores de marca: azul #0369A1, ámbar #FBBF24, pizarra #0F172A.
   ============================================================ */
.chcp { --chcp-azul: #0369A1; --chcp-azul-osc: #075985; --chcp-ambar: #FBBF24; --chcp-tinta: #0F172A; --chcp-gris: #475569;
  --chcp-borde: #CBD5E1; --chcp-fondo: #F1F5F9; --chcp-error: #B91C1C;
  background: var(--chcp-fondo); color: var(--chcp-tinta); padding: 40px 16px; font-family: Inter, system-ui, sans-serif; line-height: 1.5; }
.chcp *, .chcp *::before, .chcp *::after { box-sizing: border-box; }
.chcp-cont { max-width: 880px; margin: 0 auto; background: #fff; border: 1px solid var(--chcp-borde); border-radius: 20px;
  padding: 24px 18px; box-shadow: 0 10px 30px rgba(15, 23, 42, .08); }
.chcp-etiqueta { display: inline-block; margin: 0 0 8px; padding: 4px 12px; border-radius: 999px; background: #E0F2FE; color: var(--chcp-azul-osc);
  font-size: .8rem; font-weight: 700; letter-spacing: .02em; }
.chcp-h2 { margin: 0 0 8px; font-size: 1.6rem; line-height: 1.2; font-weight: 800; }
.chcp-intro { margin: 0 0 20px; color: var(--chcp-gris); font-size: 1rem; }
.chcp-req { margin: 0 0 12px; font-size: .875rem; color: var(--chcp-gris); }
.chcp-rejilla { display: grid; grid-template-columns: 1fr; gap: 14px; }
.chcp-campo label { display: block; margin-bottom: 4px; font-weight: 700; font-size: .95rem; }
.chcp-campo input, .chcp-campo select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1.5px solid #64748B; border-radius: 10px;
  font: inherit; font-size: 1rem; color: var(--chcp-tinta); background: #fff; }
.chcp-campo input[aria-invalid="true"] { border-color: var(--chcp-error); }
.chcp-entrada { position: relative; }
.chcp-entrada input { padding-right: 64px; }
.chcp-unidad { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--chcp-gris); font-size: .9rem; pointer-events: none; }
.chcp-ayuda { margin: 4px 0 0; font-size: .85rem; color: var(--chcp-gris); }
.chcp-error { margin: 4px 0 0; font-size: .875rem; font-weight: 700; color: var(--chcp-error); }
.chcp-mas { margin: 16px 0; border: 1px solid var(--chcp-borde); border-radius: 12px; padding: 0 14px; }
.chcp-mas > summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-weight: 700; color: var(--chcp-azul-osc); }
.chcp-mas[open] > summary { margin-bottom: 8px; }
.chcp-mas .chcp-rejilla { padding-bottom: 14px; }
.chcp-btn, .chcp-btn-sec { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border-radius: 12px;
  font: inherit; font-weight: 800; font-size: 1rem; text-decoration: none; cursor: pointer; text-align: center; }
.chcp-btn { width: 100%; border: 0; background: var(--chcp-ambar); color: var(--chcp-tinta); }
.chcp-btn:hover { background: #F59E0B; }
.chcp-btn-sec { width: 100%; border: 2px solid var(--chcp-azul); background: #fff; color: var(--chcp-azul-osc); }
.chcp-btn-sec:hover { background: #E0F2FE; }
.chcp :focus-visible { outline: 3px solid var(--chcp-azul); outline-offset: 2px; }
.chcp-resultado { margin-top: 20px; }
.chcp-resultado:focus { outline: none; }
.chcp-resultado:focus-visible { outline: 3px solid var(--chcp-azul); outline-offset: 4px; border-radius: 8px; }
.chcp-cargando { color: var(--chcp-gris); font-weight: 600; }
.chcp-respuesta { margin: 0 0 8px; font-size: 1.3rem; line-height: 1.3; font-weight: 700; }
.chcp-respuesta strong { color: var(--chcp-azul-osc); }
.chcp-central { margin: 0 0 8px; }
.chcp-meta { margin: 0 0 12px; font-size: .875rem; color: var(--chcp-gris); }
.chcp-nivel { margin: 0 0 12px; padding: 10px 12px; border-left: 4px solid var(--chcp-ambar); background: #FFFBEB; }
.chcp-insignia { display: inline-block; margin: 0 0 8px; padding: 3px 10px; border-radius: 999px; background: #FEF3C7; color: #78350F; font-size: .85rem; font-weight: 700; }
.chcp-lectura { margin: 12px 0; font-style: italic; color: #334155; }
.chcp-alerta { margin: 12px 0; padding: 10px 12px; border-left: 4px solid var(--chcp-error); background: #FEF2F2; color: #7F1D1D; }
.chcp-nota { font-size: .9rem; color: var(--chcp-gris); }
.chcp-caja { margin: 16px 0; padding: 16px; border: 1px solid var(--chcp-borde); border-radius: 14px; background: #F8FAFC; }
.chcp-caja h4 { margin: 0 0 10px; font-size: 1.05rem; }
.chcp-neto { border-color: #7DD3FC; background: #F0F9FF; }
.chcp-filas { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; margin: 0; }
.chcp-filas dt { margin: 0; }
.chcp-filas dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.chcp-filas .chcp-total { font-weight: 800; border-top: 1px solid var(--chcp-borde); padding-top: 6px; }
.chcp-figura { margin: 12px 0; }
.chcp-svg { max-width: 100%; height: auto; display: block; }
.chcp-svg-rot { font: 600 14px Inter, system-ui, sans-serif; fill: #334155; }
.chcp-svg-eje { font: 13px Inter, system-ui, sans-serif; fill: var(--chcp-gris); }
.chcp-svg-caja { fill: #BAE6FD; stroke: var(--chcp-azul); stroke-width: 1.5; }
.chcp-svg-banda { fill: var(--chcp-ambar); stroke: #B45309; stroke-width: 1.5; }
.chcp-svg-mediana { stroke: var(--chcp-tinta); stroke-width: 3; }
.chcp-svg-bigote { stroke: #64748B; stroke-width: 2; }
.chcp-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 6px; font-size: .85rem; color: var(--chcp-gris); }
.chcp-leyenda span::before { content: ""; display: inline-block; width: 14px; height: 10px; margin-right: 6px; vertical-align: middle; border-radius: 2px; }
.chcp-ley-caja::before { background: #BAE6FD; border: 1px solid var(--chcp-azul); }
.chcp-ley-mediana::before { background: var(--chcp-tinta); width: 3px !important; height: 14px !important; }
.chcp-ley-bigote::before { height: 2px !important; background: #64748B; }
.chcp-ctas { display: grid; gap: 10px; margin: 18px 0 8px; }
.chcp-como { margin: 14px 0 0; }
.chcp-como > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; color: var(--chcp-azul-osc); }
.chcp-aviso { margin: 16px 0 0; font-size: .9rem; color: #334155; font-weight: 600; }
.chcp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (min-width: 640px) {
  .chcp { padding: 56px 24px; }
  .chcp-cont { padding: 32px; }
  .chcp-h2 { font-size: 2rem; }
  .chcp-rejilla { grid-template-columns: 1fr 1fr; }
  .chcp-btn { width: auto; min-width: 260px; }
  .chcp-ctas { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
  .chcp-ctas .chcp-btn, .chcp-ctas .chcp-btn-sec { width: 100%; }
  .chcp-respuesta { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { .chcp * { scroll-behavior: auto !important; transition: none !important; } }
.chcp-unidad-graf { margin: 4px 0 2px; font-size: .875rem; font-weight: 700; color: #334155; }
.chcp-recibe { margin: 0 0 12px; font-size: 1.25rem; line-height: 1.3; }
.chcp-recibe strong { color: var(--chcp-azul-osc); font-size: 1.5rem; }
.chcp-campo input:disabled { background: #F1F5F9; color: #475569; }
