.rubro-table{display:flex;flex-direction:column;gap:10px}
.rubro-row{display:grid;grid-template-columns:1.6fr .8fr .9fr .9fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:#fbfbfa}
.rubro-row .rubro-label{font-weight:700;color:var(--navy);font-size:14px}
.rubro-row input{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:14px;background:#fff;font-family:var(--body-font)}
.rubro-row .rubro-sub{text-align:right;font-weight:700;color:var(--navy);font-family:var(--mono-font)}
.rubro-head{display:grid;grid-template-columns:1.6fr .8fr .9fr .9fr;gap:10px;padding:0 14px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono-font)}
.rubro-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:14px 18px;border-radius:14px;background:var(--navy);color:#fff;font-weight:700}
.imprevistos-row{display:flex;align-items:center;gap:12px;margin-top:14px}
.imprevistos-row input{width:90px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:14px}
.hint{color:var(--muted);font-size:12px;margin-top:-6px;margin-bottom:16px;display:block}
.kpi-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.kpi-row:last-child{border-bottom:none}
.kpi-row span{color:var(--muted);font-size:13px}
.kpi-row strong{font-size:16px;color:var(--navy);font-family:var(--mono-font)}
.semaforo{display:flex;gap:10px;margin-bottom:10px}
.semaforo .luz{width:28px;height:28px;border-radius:50%;background:var(--bg);opacity:.35;transition:.2s}
.semaforo .luz.on[data-luz="rojo"]{background:var(--danger);opacity:1}
.semaforo .luz.on[data-luz="amarillo"]{background:var(--warn);opacity:1}
.semaforo .luz.on[data-luz="verde"]{background:var(--green);opacity:1}
.riesgo-check{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px;background:#fbfbfa;cursor:pointer}
.riesgo-check input{margin-top:3px;width:18px;height:18px}
.riesgo-check.checked{border-color:var(--danger);background:#fbf2f1}
.riesgo-check strong{display:block;margin-bottom:4px;font-family:var(--body-font)}
.riesgo-check p{margin:0;color:var(--muted);font-size:13px}
.warn-box{border:1px solid var(--danger);background:#fbf2f1;border-radius:14px;padding:14px 18px;color:#7a332d;font-weight:700;margin-top:14px}

.intro--flip{text-align:left;max-width:640px}
.intro-badge{display:inline-block;background:var(--navy2);color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:20px;margin-bottom:16px;font-family:var(--mono-font)}
.intro--flip h2{font-size:28px;line-height:1.25;margin:0 0 10px;font-family:var(--display-font);font-weight:600}
.intro-chart{border:1px solid var(--line);border-radius:18px;padding:20px;margin:24px 0;background:#fbfbfa}
.intro-chart-title{font-weight:700;color:var(--navy);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-family:var(--mono-font)}
.margin-chart{width:100%;height:auto;display:block}
.intro-chart-note{margin:10px 0 0;color:var(--muted);font-size:12px}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.ba-slot{border:2px dashed var(--line);border-radius:16px;padding:26px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;background:#f6f5f3;color:var(--muted)}
.ba-icon{width:34px;height:34px;color:var(--accent,#9AA1A8);margin-bottom:6px}
.ba-slot strong{color:var(--navy);font-size:13px;letter-spacing:.06em;font-family:var(--mono-font)}
.ba-slot span{font-size:12px;max-width:22ch}
.ba-after{border-color:#d9b6a8;background:#fbf1ec}
.ba-after .ba-icon{color:var(--vital)}
.ba-after strong{color:var(--vital)}
.ba-slot.has-photo{border-style:solid;padding:0;overflow:hidden;position:relative}
.ba-slot.has-photo img{width:100%;height:150px;object-fit:cover;display:block}
.ba-slot.has-photo strong{position:absolute;top:8px;left:10px;background:rgba(27,31,36,.7);color:#fff;padding:3px 10px;border-radius:20px;font-size:11px}
.ba-slot.has-photo .photo-remove{position:absolute;bottom:8px;right:10px;background:rgba(255,255,255,.9);padding:3px 8px;border-radius:8px}
@media print{.pro-teaser{display:none}}
