/* =============================================================
   redin2.css  –  estilos ÚNICAMENTE para /redin2
   TODOS los selectores están dentro de .redin2-page
   NO se toca body, html, nav, footer ni Bootstrap
   ============================================================= */

.redin2-page {
    --ro:  #CC5500;
    --roh: #e06000;
    --rbg: #0a0a0a;
    --rc:  #141414;
    --rcl: #1a1a1a;
    --rw:  #ffffff;
    --rg:  #a0a0a0;
    --rm:  #666666;
    --rb:  #2a2a2a;
    --rGr: #22c55e;
    --rRd: #ef4444;
    --rYl: #eab308;

    background: var(--rbg);
    color: var(--rw);
    font-family: 'Poppins', sans-serif;
    padding-bottom: 4rem;
    /* SIN position:fixed, SIN z-index, SIN width/height sobre viewport */
}

/* ── Wrapper central ── */
.redin2-page .rw { max-width: 1400px; margin: 0 auto; padding: 2rem 3rem; }

/* ── Título ── */
.redin2-page .rt h1 { font-size: 1.8rem; font-weight: 600; color: var(--rw); text-align: center; margin: 0 0 2rem; }

/* ── Grid mapa + form ── */
.redin2-page .rtop { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; margin-bottom: 3rem; }
.redin2-page .rmap { aspect-ratio: 1/1; background: var(--rc); border-radius: 12px; overflow: hidden; border: 1px solid var(--rb); }
.redin2-page #r2map { width: 100%; height: 100%; }

/* ── Formulario ── */
.redin2-page .rform { background: var(--rc); border-radius: 12px; padding: 1.5rem; border: 1px solid var(--rb); }
.redin2-page .rrow  { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.redin2-page .rfld  { display: flex; flex-direction: column; gap: .3rem; }
.redin2-page .rfld label { font-size: .75rem; color: var(--rg); font-weight: 500; text-transform: uppercase; letter-spacing: .5px; }
.redin2-page .rfld input,
.redin2-page .rfld select {
    background: var(--rcl); border: 1px solid var(--rb); border-radius: 6px;
    padding: .7rem 1rem; color: var(--rw); font-size: .9rem;
    font-family: 'Poppins', sans-serif; transition: border-color .2s;
    width: 100%; box-sizing: border-box;
}
.redin2-page .rfld input:focus,
.redin2-page .rfld select:focus   { outline: none; border-color: var(--ro); }
.redin2-page .rfld select option  { background: var(--rc); color: var(--rw); }
.redin2-page .rfld input::placeholder { color: var(--rm); font-style: italic; }
.redin2-page .r-ro  { background: var(--rc) !important; color: var(--ro) !important; font-weight: 600; border-color: var(--ro) !important; cursor: default; }

.redin2-page .rbtn-calc {
    width: 100%; background: var(--ro); color: #fff; border: none;
    padding: .9rem; border-radius: 6px; font-size: 1rem; font-weight: 600;
    font-family: 'Poppins', sans-serif; cursor: pointer; transition: background .2s;
    margin-top: 1rem; display: flex; align-items: center; justify-content: center; gap: .5rem;
}
.redin2-page .rbtn-calc:hover { background: var(--roh); }

/* ── Card base ── */
.redin2-page .rc2 { background: var(--rc); border-radius: 12px; padding: 1.5rem; border: 1px solid var(--rb); margin-bottom: 2rem; }
.redin2-page .rct {
    font-size: 1.2rem; font-weight: 600; color: var(--ro);
    margin-bottom: 1.5rem; padding-bottom: .75rem;
    border-bottom: 2px solid var(--ro);
    display: flex; align-items: center; gap: .5rem;
}

/* ── Resultados KPI ── */
.redin2-page .rres { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-bottom: 1.5rem; }
.redin2-page .rri  { background: var(--rcl); border-radius: 8px; padding: 1.25rem; border: 1px solid var(--rb); text-align: center; }
.redin2-page .rrlab { color: var(--rg); font-size: .75rem; text-transform: uppercase; letter-spacing: .5px; margin-bottom: .5rem; }
.redin2-page .rrval { font-size: 1.6rem; font-weight: 700; }
.redin2-page .pos  { color: var(--rGr); }
.redin2-page .neg  { color: var(--rRd); }
.redin2-page .warn { color: var(--rYl); }
.redin2-page .neut { color: var(--rw); }

/* ── Badge ── */
.redin2-page .rviab { display: flex; justify-content: center; align-items: center; gap: 1rem; flex-wrap: wrap; }
.redin2-page .rbadge { display: inline-flex; align-items: center; padding: .6rem 2rem; border-radius: 25px; font-weight: 700; font-size: 1rem; text-transform: uppercase; letter-spacing: 1px; }
.redin2-page .rbadge.viable     { background: var(--rGr); color: #fff; }
.redin2-page .rbadge.marginal   { background: var(--rYl); color: #000; }
.redin2-page .rbadge.not-viable { background: var(--rRd); color: #fff; }
.redin2-page .rbtn-pdf {
    background: linear-gradient(135deg, #1e40af, #3b82f6); color: #fff; border: none;
    padding: .6rem 1.5rem; border-radius: 25px; font-weight: 600; font-size: .9rem;
    font-family: 'Poppins', sans-serif; cursor: pointer; transition: all .2s;
    display: inline-flex; align-items: center; gap: .5rem;
}
.redin2-page .rbtn-pdf:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(59,130,246,.4); }

/* ── Detalles del proyecto ── */
.redin2-page .rdg  { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.redin2-page .rdi  { background: var(--rcl); border-radius: 8px; padding: 1rem 1.25rem; border: 1px solid var(--rb); display: flex; justify-content: space-between; align-items: center; }
.redin2-page .rdi .lbl { color: var(--rg); font-size: .9rem; }
.redin2-page .rdi .val { color: var(--ro); font-weight: 600; }

/* ── 4 columnas ── */
.redin2-page .r4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; margin-bottom: 2rem; }
.redin2-page .rcc { background: var(--rc); border-radius: 12px; padding: 1.5rem; border: 1px solid var(--rb); }
.redin2-page .rcct { font-size: 1.1rem; font-weight: 600; color: var(--ro); margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--ro); display: flex; align-items: center; gap: .5rem; }
.redin2-page .rcrow { background: var(--rcl); border-radius: 6px; padding: .8rem 1rem; border: 1px solid var(--rb); display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.redin2-page .rcrow:last-child { margin-bottom: 0; }
.redin2-page .rcrow .lbl { color: var(--rg); font-size: .85rem; }
.redin2-page .rcrow .val { color: var(--rw); font-weight: 600; font-size: .9rem; }

/* ── Fin inputs ── */
.redin2-page .rfin { grid-template-columns: 1fr auto auto; }
.redin2-page .rfingrp { display: flex; align-items: center; gap: 2px; }
.redin2-page .rfininp {
    width: 45px; background: var(--rc); border: 1px solid var(--ro); border-radius: 4px;
    padding: .3rem .4rem; color: var(--ro); font-size: .85rem; font-weight: 600;
    font-family: 'Poppins', sans-serif; text-align: center;
}
.redin2-page .rfininp:focus { outline: none; box-shadow: 0 0 0 2px rgba(204,85,0,.2); }
.redin2-page .rfinsym  { color: var(--ro); font-weight: 600; font-size: .85rem; }
.redin2-page .rfindsp  { color: var(--rg); font-size: .85rem; min-width: 50px; text-align: center; }

/* ── Tabla ER ── */
.redin2-page .ertbl { width: 100%; border-collapse: collapse; }
.redin2-page .ertbl td { padding: .6rem .8rem; border-bottom: 1px solid var(--rb); }
.redin2-page .ertbl tr:last-child td { border-bottom: none; }
.redin2-page .el  { color: var(--rg);  font-size: .85rem; text-align: left; }
.redin2-page .ep  { color: var(--rw);  font-size: .85rem; text-align: center; width: 50px; }
.redin2-page .ev  { color: var(--rw);  font-weight: 600; font-size: .9rem; text-align: right; min-width: 100px; }
.redin2-page .eyl td { background: linear-gradient(90deg,#b8860b,#8b6914); }
.redin2-page .eyl .el,
.redin2-page .eyl .ep,
.redin2-page .eyl .ev { color: #fff !important; font-weight: 600; }
.redin2-page .egr td  { background: #3a3a3a; }
.redin2-page .egr .el,
.redin2-page .egr .ep,
.redin2-page .egr .ev { color: #fff !important; }
.redin2-page .efn td  { background: linear-gradient(90deg,#1a1a1a,#2a2a2a); border-top: 2px solid var(--ro); }
.redin2-page .efn .el { color: var(--ro) !important; font-weight: 700; }
.redin2-page .efn .ev { color: var(--rGr) !important; font-weight: 700; font-size: 1rem; }

/* ── Tabla tiempos ── */
.redin2-page .ttbl { width: 100%; border-collapse: collapse; }
.redin2-page .ttbl td { padding: .55rem .8rem; border-bottom: 1px solid var(--rb); }
.redin2-page .ttbl tr:last-child td { border-bottom: none; }
.redin2-page .tl { color: var(--rg); font-size: .8rem; }
.redin2-page .tv { color: var(--rw); font-weight: 600; font-size: .9rem; text-align: right; min-width: 40px; }
.redin2-page .tg td { background: linear-gradient(90deg,#166534,#15803d); }
.redin2-page .tg .tl,
.redin2-page .tg .tv { color: #fff !important; font-weight: 700; }
.redin2-page .tr2 td { background: linear-gradient(90deg,#991b1b,#b91c1c); }
.redin2-page .tr2 .tl,
.redin2-page .tr2 .tv { color: #fff !important; font-weight: 700; }

/* ── Gráfico ── */
.redin2-page .rchart { height: 500px; padding: 1rem 0; }

/* ── 2 cols ── */
.redin2-page .r2c { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 2rem; }

/* ── Tablas detalle comunes ── */
.redin2-page .dtbl  { width: 100%; border-collapse: collapse; font-size: .85rem; }
.redin2-page .dtbl th,
.redin2-page .dtbl td { padding: .5rem .75rem; border-bottom: 1px solid var(--rb); }
.redin2-page .dtbl .th  { color: var(--rw); font-weight: 600; text-align: left;  background: var(--rcl); border-bottom: 2px solid var(--ro); }
.redin2-page .dtbl .thr { color: var(--rw); font-weight: 600; text-align: right; background: var(--rcl); border-bottom: 2px solid var(--ro); }
.redin2-page .dtbl .dl  { color: var(--rg); text-align: left; }
.redin2-page .dtbl .dv  { color: var(--rw); font-weight: 500; text-align: right; font-family: monospace; }
.redin2-page .dtbl .dp  { color: var(--rg); text-align: right; font-size: .75rem; min-width: 45px; }
.redin2-page .dtbl .sub td  { background: var(--rcl); font-weight: 600; }
.redin2-page .dtbl .sub .dl { color: var(--rw); }
.redin2-page .dtbl .sub .dv { color: var(--ro); }
.redin2-page .dtbl .dgrn td { background: linear-gradient(90deg,#166534,#15803d); }
.redin2-page .dtbl .dgrn .dl,
.redin2-page .dtbl .dgrn .dv { color: #fff !important; font-weight: 600; }
.redin2-page .dtbl .dfin td { background: linear-gradient(90deg,#166534,#15803d) !important; font-weight: 700; }
.redin2-page .dtbl .dfin .dl,
.redin2-page .dtbl .dfin .dv,
.redin2-page .dtbl .dfin .dp { color: #fff !important; }
.redin2-page .dtbl .thyel { background: linear-gradient(90deg,#b8860b,#daa520) !important; color: #fff !important; }
.redin2-page .dtbl .thred { background: linear-gradient(90deg,#8b4513,#a0522d) !important; color: #fff !important; }

/* ── Colores fila egresos ── */
.redin2-page .eg-t td { background: rgba(144,238,144,.15); }
.redin2-page .eg-c td { background: rgba(144,238,144,.10); }
.redin2-page .eg-v td { background: rgba(255,182,193,.15); }
.redin2-page .eg-a td { background: rgba(173,216,230,.15); }
.redin2-page .eg-f td { background: rgba(255,255,224,.15); }

/* ── 3 cols ── */
.redin2-page .r3c { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 1.5rem; margin-bottom: 2rem; }
.redin2-page .regr .dtbl td { padding: .35rem .5rem; font-size: .75rem; }

/* ── Responsive ── */
@media (max-width:1400px) { .redin2-page .r4 { grid-template-columns: repeat(2,1fr); } }
@media (max-width:1200px) { .redin2-page .r3c { grid-template-columns: 1fr 1fr; } .redin2-page .regr { grid-column: span 2; } }
@media (max-width:1024px) { .redin2-page .rtop { grid-template-columns: 1fr; } .redin2-page .rmap { max-height:400px; aspect-ratio:16/10; } .redin2-page .rres { grid-template-columns: repeat(2,1fr); } .redin2-page .r2c { grid-template-columns: 1fr; } }
@media (max-width:900px)  { .redin2-page .r4 { grid-template-columns: 1fr; } }
@media (max-width:768px)  { .redin2-page .rw { padding:1rem; } .redin2-page .rres,.redin2-page .rdg,.redin2-page .rrow,.redin2-page .r3c { grid-template-columns: 1fr; } .redin2-page .regr { grid-column: span 1; } }
