/* Cálculos de agua potable (y de los módulos que siguen). Tercer diseño, 01-11-2026, pedido de Gabriel: "primero la
   información y después el gráfico; que no ocupe tanto espacio y le demos más protagonismo a los gráficos; que no se
   vea genérico". Cada bloque: datos en fichas pequeñas, resultados en otra cuadrícula corta, el panel del corte cuando
   se pide un diámetro (como en piscina) y debajo el plano isométrico (plano-iso.js) a todo el ancho. Sin dorado oscuro. */
:root{--cx-tinta:#1F1B16;--cx-tinta2:#4E4538;--cx-gris:#807667;--cx-suave:#9A8670;--cx-borde:#EEE5D9;--cx-oro:#C49A50}

.cx-bloque{display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,#FFFDF9,#FBF7F0);border:1px solid var(--cx-borde);border-radius:24px;padding:16px}
.cx-cab{display:flex;align-items:flex-start;gap:12px}
.cx-cab-n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;border:1px solid rgba(196,154,80,.45);box-shadow:0 0 0 4px rgba(196,154,80,.08);color:#4B3300;font:700 12.5px "JetBrains Mono",ui-monospace,monospace}
.cx-cab-t{display:block;font-size:15px;font-weight:650;letter-spacing:-.01em;color:var(--cx-tinta);line-height:1.3}
.cx-cab-s{display:block;margin-top:1px;font-size:12px;line-height:1.4;color:var(--cx-gris)}

/* ---------- Información: fichas de datos, fichas de resultados y corte ---------- */
.cx-info{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.cx-info-datos{display:flex;flex-direction:column;gap:8px;min-width:0}
@media (min-width:1000px){.cx-info.con-corte{grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start}}
.cx-campos,.cx-resultados{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
/* dato: una ficha blanca; el número se escribe directo, con la unidad pegada */
.cx-campo{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:7px 11px;border-radius:14px;background:#fff;border:1px solid var(--cx-borde);cursor:text;transition:border-color .2s,box-shadow .2s}
.cx-campo:hover{border-color:#E3D3B9}
.cx-campo:focus-within{border-color:rgba(196,154,80,.65);box-shadow:0 0 0 3px rgba(196,154,80,.14)}
.cx-campo-l{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-suave);line-height:1.25;overflow-wrap:anywhere}
.cx-campo-c{display:flex;align-items:baseline;gap:5px;min-width:0}
.cx-campo input,.cx-campo select{flex:1 1 auto;min-width:0;width:100%;height:26px;border:0;padding:0;background:transparent;color:var(--cx-tinta);font:600 17px "JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.cx-campo input:focus,.cx-campo select:focus{outline:none;border:0;box-shadow:none}
.cx-campo input::placeholder{color:#CDBFA9}
.cx-campo input::-webkit-outer-spin-button,.cx-campo input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cx-campo-c u{flex:none;text-decoration:none;font-size:11px;color:var(--cx-gris);white-space:nowrap}
/* resultado: ficha crema con su color a la izquierda (el mismo color del plano) */
.cx-r{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:7px 11px 7px 13px;border-radius:14px;background:#FBF7F1;border:1px solid #F1E8DB;overflow:hidden}
.cx-r::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--c,#E3D3B9)}
.cx-r-n{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-suave);line-height:1.25;overflow-wrap:anywhere}
.cx-r>b{display:flex;align-items:baseline;gap:5px;font:700 17px "JetBrains Mono",ui-monospace,monospace;color:var(--cx-tinta);font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-r>b u{text-decoration:none;font:500 11px "Plus Jakarta Sans",system-ui,sans-serif;color:var(--cx-gris)}
.cx-r>small{font-size:10.5px;color:var(--cx-gris);line-height:1.25;overflow-wrap:anywhere}
.cx-r>i{font:500 10.5px "JetBrains Mono",ui-monospace,monospace;font-style:normal;color:#A79C8B}
.cx-r>i:empty{display:none}
.cx-r-viene{background:#fff;border-style:dashed;border-color:#DCCDB7}
.cx-brilla{animation:cxBrilla .8s ease}
@keyframes cxBrilla{0%{box-shadow:0 0 0 0 rgba(196,154,80,0)}30%{box-shadow:0 0 0 4px rgba(196,154,80,.16)}100%{box-shadow:0 0 0 0 rgba(196,154,80,0)}}

/* ---------- Corte de la tubería (mismo dibujo de piscina) con la lista de diámetros ---------- */
.cx-corte{display:flex;flex-direction:column;gap:8px;min-width:0;padding:12px 14px;border-radius:18px;background:#fff;border:1px solid var(--cx-borde)}
.cx-corte-t{font-size:12.5px;font-weight:700;color:var(--cx-tinta)}
.cx-corte-cuerpo{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-areas:"dib datos" "sel sel";gap:10px 12px;align-items:center}
.cx-corte-dib{grid-area:dib}
.cx-corte-sel{grid-area:sel}
.cx-corte-datos{grid-area:datos}
.cx-corte-dib{line-height:0}
.cx-corte-dib svg{width:100%;height:auto;display:block}
.cx-corte-vacio{line-height:1.4;font-size:11px;color:var(--cx-gris);text-align:center;padding:16px 4px;border:1px dashed #E3D6C3;border-radius:50%;aspect-ratio:1;display:grid;place-items:center}
.cx-corte-sel{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:6px}
.cx-corte-sel label{display:flex;flex-direction:column;gap:3px;min-width:0}
.cx-corte-sel span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-suave)}
.cx-corte-sel select{width:100%;min-width:0;height:34px;padding:0 26px 0 11px;border-radius:99px;border:1px solid rgba(196,154,80,.4);background-color:rgba(255,255,255,.8);color:#4B3300;font:600 13px "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239A8670'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:15px;box-shadow:0 2px 10px rgba(196,154,80,.1)}
.cx-corte-sel select:focus{outline:none;border-color:rgba(196,154,80,.7);box-shadow:0 0 0 3px rgba(196,154,80,.15)}
.cx-corte-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;margin:0}
.cx-corte-datos>div{display:flex;flex-direction:column;min-width:0}
.cx-corte-datos dt{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cx-suave)}
.cx-corte-datos dd{margin:0;font:600 12.5px "JetBrains Mono",ui-monospace,monospace;color:var(--cx-tinta);overflow-wrap:anywhere}
.cx-corte-datos .is-fuerte dd{font-size:14px;font-weight:700}
.cx-corte-datos .is-mal dd{color:#B4432A}
.cx-corte-ley{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px;font-size:10.5px;color:var(--cx-gris)}
.cx-corte-ley span{display:inline-flex;align-items:center;gap:5px}
.cx-corte-ley i{width:10px;height:10px;border-radius:50%;flex:none}
.cx-corte-ley i.ref{border:1.5px dashed #766D61}
.cx-corte-ley i.int{border:2px solid var(--t);background:color-mix(in srgb,var(--t) 14%,white)}
.cx-corte-nota{margin:0;font-size:11.5px;line-height:1.45;color:#2f6f64;background:#F2FAF8;border-radius:10px;padding:7px 10px}
.cx-corte-nota.is-mal{color:#8E3A24;background:#FDF1EC}

/* ---------- Plano isométrico: protagonista, a todo el ancho ---------- */
.cx-plano.r3{min-width:0}
.pi .r3-lienzo{height:clamp(380px,56vh,560px)}
.pi .r3-tit b{font-size:13.5px}
.pi-ley{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:2px}
.pi-ec{display:flex;flex-direction:column;gap:7px;width:100%}
.pi-ec-barra{display:flex;height:8px;border-radius:99px;overflow:hidden;background:#EAE1D8;gap:2px}
.pi-ec-barra i{display:block;height:100%;transition:flex-grow .5s cubic-bezier(.22,1,.36,1)}
.pi-ec-txt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11.5px;color:#4E4538;line-height:1.35}
.pi-ec-txt span{display:inline-flex;align-items:center;gap:5px}
.pi-ec-txt span i{width:9px;height:9px;border-radius:3px;flex:none}
.pi-ec-txt b{font:700 12px "JetBrains Mono",ui-monospace,monospace;color:#1F1B16;font-variant-numeric:tabular-nums}
.pi-ec-op{color:#807667;font:600 12px "JetBrains Mono",ui-monospace,monospace}
.pi-ec-tot b{color:#1F1B16!important;font-size:13px!important}
.pi-nota{font-size:11px;line-height:1.45;color:#807667}
.pi-nota.is-mal{color:#B4432A}
.r3-f-datos .is-mal{background:#FDF1EC;border-color:#F0C3B4;color:#B4432A}

/* ---------- Teléfono ---------- */
@media (max-width:640px){
  #project-detail-overlay[data-mode="calculo"]>main{padding-left:12px;padding-right:12px}
  #seccion-ap-volumen,#seccion-ap-ruta-critica,#seccion-ap-cdt{padding:14px!important}
  #seccion-ap-ruta-critica .r3.r3-sangrado{margin-left:-14px;margin-right:-14px}
  .cx-bloque{padding:12px;border-radius:20px}
  .cx-campos,.cx-resultados{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cx-campo input,.cx-campo select{font-size:16px}   /* 16 px: el iPhone no acerca la pantalla al escribir */
  /* en el teléfono el corte va arriba, grande, y debajo la lista y los datos a todo el ancho */
  .cx-corte-cuerpo{grid-template-columns:1fr;grid-template-areas:"dib" "sel" "datos";gap:10px}
  .cx-corte-dib{width:min(220px,70%);margin:0 auto}
  .cx-corte-sel{grid-template-columns:1fr}
  .cx-corte-sel select{font-size:16px;height:36px}
  .cx-corte-datos{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* el plano a todo el ancho de la tarjeta del bloque */
  .cx-bloque>.cx-plano.r3{margin-left:-12px;margin-right:-12px;border-radius:0;border-left:0;border-right:0;box-shadow:none}
  .pi .r3-lienzo{height:clamp(320px,96vw,430px)}
  .pi .r3-cab{flex-wrap:nowrap}
  .pi .r3-tit{flex-basis:auto}
}
@media (prefers-reduced-motion:reduce){.cx-brilla{animation:none}}
