/* ADHENNA · Captador de licitaciones — estilos (v2.1) */
:root {
  --azul: #005BFF; --azul-2: #2F7BFF; --azul-claro: #7FB0FF; --azul-suave: #E9F1FF; --azul-borde: #C9DCFF;
  --marino: #071A45; --marino-2: #0B2A6F; --marino-3: #0F3A96; --gris-logo: #6E6E6E;
  --fondo: #EEF2F8; --caja: #FFFFFF; --texto: #0E1525; --sutil: #5E6B80; --borde: #DDE3ED;
  --verde: #0E9F6E; --verde-suave: #DFF6EC; --amarillo: #B7791F; --amarillo-vivo: #F5A524; --amarillo-suave: #FFF3D6;
  --rojo: #D93A3A; --rojo-suave: #FDE7E7; --violeta: #6D4AFF; --violeta-suave: #EFEBFF;
  --sombra: 0 1px 2px rgba(7,26,69,.06), 0 6px 20px rgba(7,26,69,.07);
  --sombra-alta: 0 10px 30px rgba(7,26,69,.16);
  --radio: 14px;
  --grad: linear-gradient(120deg, #061638 0%, #0B2A6F 55%, #0F48C8 100%);
  --grad-azul: linear-gradient(135deg, #005BFF 0%, #2F7BFF 100%);
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--fondo); color: var(--texto);
  font: 14px/1.45 "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; }
[hidden] { display: none !important; }
a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { margin: 0 0 .5em; line-height: 1.2; }
h2 { font-size: 20px; } h3 { font-size: 15px; }
.sutil { color: var(--sutil); font-size: 12.5px; }
.error { color: var(--rojo); }
.r { text-align: right; white-space: nowrap; }

/* íconos */
.ic { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.ic-caja { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
  background: var(--grad-azul); color: #fff; box-shadow: 0 6px 16px rgba(0,91,255,.28); flex: 0 0 auto; }
.ic-caja .ic { width: 21px; height: 21px; }
.ic-caja.chica { width: 30px; height: 30px; border-radius: 9px; box-shadow: none; }
.ic-caja.chica .ic { width: 17px; height: 17px; }

/* botones */
.btn { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--borde); background: var(--caja);
  color: var(--texto); border-radius: 10px; padding: 8px 13px; font: inherit; font-weight: 600; cursor: pointer;
  white-space: nowrap; transition: transform .12s, box-shadow .15s, background .15s, border-color .15s; }
.btn:hover { border-color: var(--azul-borde); box-shadow: 0 2px 8px rgba(0,91,255,.12); }
.btn:active { transform: translateY(1px); }
.btn .ic { width: 17px; height: 17px; }
.btn.primario { background: var(--grad-azul); border-color: transparent; color: #fff; box-shadow: 0 4px 14px rgba(0,91,255,.3); }
.btn.primario:hover { box-shadow: 0 6px 18px rgba(0,91,255,.42); }
.btn.grande { justify-content: center; padding: 11px 16px; font-size: 15px; }
.btn.peligro { color: var(--rojo); }
.btn.texto { border-color: transparent; background: transparent; color: var(--sutil); }
.btn:disabled { opacity: .5; cursor: default; box-shadow: none; transform: none; }
.btn.vidrio { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); color: #fff; }
.btn.vidrio:hover { background: rgba(255,255,255,.16); box-shadow: none; }
.btn.brillo { background: #fff; color: var(--azul); border-color: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.2); }
.btn.solo-icono { padding: 8px 9px; }

/* campos */
label { display: grid; gap: 5px; font-size: 13px; color: var(--sutil); font-weight: 600; }
input, select, textarea { font: inherit; color: var(--texto); border: 1px solid var(--borde); border-radius: 10px;
  padding: 9px 11px; background: #fff; width: 100%; font-weight: 400; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0,91,255,.15); }
textarea { min-height: 90px; resize: vertical; }
.campo { position: relative; display: block; }
.campo > .ic { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--sutil); pointer-events: none; }
.campo > input { padding-left: 36px; }
.check { display: flex; flex-direction: row; align-items: center; gap: 7px; color: var(--texto); font-weight: 500; white-space: nowrap; }
.check input { width: 16px; height: 16px; accent-color: var(--azul); }

/* ---------------- login ---------------- */
.login { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; background: var(--caja); }
.login-arte { position: relative; overflow: hidden; background: var(--grad); color: #fff; padding: 56px 48px;
  display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.login-arte::before { content: ""; position: absolute; inset: 0; opacity: .5;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 36px 36px; mask-image: radial-gradient(ellipse at 30% 40%, #000 20%, transparent 75%); }
.login-arte::after { content: ""; position: absolute; width: 420px; height: 420px; right: -140px; bottom: -160px; border-radius: 50%;
  background: radial-gradient(circle, rgba(47,123,255,.55), transparent 65%); }
.login-arte > * { position: relative; z-index: 1; }
.login-logo-osc { width: 300px; max-width: 100%; aspect-ratio: 5 / 1; }
.login-arte h2 { font-size: 30px; font-weight: 700; margin: 8px 0 0; max-width: 460px; }
.resalte { background: linear-gradient(90deg, #7FB0FF, #B9D3FF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.login-puntos { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.login-puntos li { display: flex; align-items: center; gap: 12px; font-size: 15px; color: #D7E4FF; }
.login-puntos .ic { width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.15); }
.login-pie { color: var(--azul-claro); letter-spacing: .25em; text-transform: uppercase; font-size: 11.5px; margin: 10px 0 0; }
.login-caja { align-self: center; justify-self: center; width: 100%; max-width: 380px; padding: 32px 24px; display: grid; gap: 14px; }
.login-logo { width: 220px; aspect-ratio: 5 / 1; margin-bottom: 8px; }
.login-caja h1 { font-size: 26px; margin: 0; }
.login-caja .sutil { margin: -6px 0 4px; font-size: 13.5px; }

/* ---------------- barra superior ---------------- */
.barra { position: relative; background: var(--grad); color: #fff; padding: 14px 24px 16px; overflow: hidden; }
.barra::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 28px 28px; mask-image: linear-gradient(90deg, transparent, #000 40%, #000); }
.barra::after { content: ""; position: absolute; width: 360px; height: 360px; right: -80px; top: -220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(47,123,255,.6), transparent 65%); pointer-events: none; }
.barra > * { position: relative; z-index: 1; }
.barra-fila { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: space-between; }
.marca { display: flex; align-items: center; gap: 14px; }
.marca-logo { width: 190px; aspect-ratio: 5 / 1; }
.marca-sep { width: 1px; height: 30px; background: rgba(255,255,255,.22); }
.marca-app { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.marca-app .ic { color: var(--azul-claro); width: 22px; height: 22px; }
.marca-app b { background: var(--grad-azul); padding: 1px 7px; border-radius: 6px; font-size: 12px; letter-spacing: .08em; }
.barra-acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.barra-info { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.pastilla { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 999px; font-size: 12.5px;
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); color: #DCE7FF; }
.pastilla .ic { width: 15px; height: 15px; color: var(--azul-claro); }
.pastilla.alerta { background: rgba(245,165,36,.18); border-color: rgba(245,165,36,.45); color: #FFE2A8; }
.pastilla.alerta .ic { color: var(--amarillo-vivo); }
.pastilla.vivo .ic { animation: girar 1.6s linear infinite; }
.medidor { display: inline-block; width: 54px; height: 5px; border-radius: 9px; background: rgba(255,255,255,.18); overflow: hidden; }
.medidor > i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #39D98A, #7FB0FF); border-radius: 9px; }
.medidor.medio > i { background: var(--amarillo-vivo); } .medidor.alto > i { background: #FF6B6B; }
@keyframes girar { to { transform: rotate(360deg); } }

/* ---------------- contenido ---------------- */
.contenido { padding: 18px 24px 48px; display: grid; gap: 18px; max-width: 1500px; margin: 0 auto; }
.bloque { min-width: 0; }
.titulo-seccion { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.titulo-seccion h2 { font-size: 16.5px; margin: 0; color: var(--marino); }
.titulo-seccion p { margin: 2px 0 0; font-size: 12.5px; color: var(--sutil); }

/* bandejas (grupos) */
.grupos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.grupo { position: relative; display: flex; align-items: center; gap: 12px; text-align: left; font: inherit; cursor: pointer;
  background: var(--caja); border: 1px solid var(--borde); border-radius: var(--radio); padding: 14px 16px; box-shadow: var(--sombra);
  color: var(--texto); overflow: hidden; transition: transform .15s, box-shadow .15s, border-color .15s; }
.grupo:hover { transform: translateY(-2px); box-shadow: var(--sombra-alta); }
.grupo .g-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; flex: 0 0 auto;
  background: var(--tono-suave, var(--azul-suave)); color: var(--tono, var(--azul)); }
.grupo .g-ic .ic { width: 22px; height: 22px; }
.grupo .g-txt { min-width: 0; }
.grupo .g-n { font-size: 26px; font-weight: 800; line-height: 1; color: var(--tono, var(--azul)); }
.grupo .g-nom { font-weight: 700; margin-top: 3px; }
.grupo .g-des { font-size: 12px; color: var(--sutil); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grupo.activa { background: var(--grad); border-color: transparent; color: #fff; box-shadow: 0 10px 26px rgba(11,42,111,.35); }
.grupo.activa .g-ic { background: rgba(255,255,255,.14); color: #fff; }
.grupo.activa .g-n { color: #fff; } .grupo.activa .g-des { color: #B9CCF5; }
.grupo.activa::after { content: ""; position: absolute; right: -40px; top: -40px; width: 120px; height: 120px; border-radius: 50%;
  background: radial-gradient(circle, rgba(47,123,255,.55), transparent 70%); }
.tono-trabajo { --tono: #005BFF; --tono-suave: #E9F1FF; }
.tono-oferta { --tono: #6D4AFF; --tono-suave: #EFEBFF; }
.tono-resultado { --tono: #0E9F6E; --tono-suave: #DFF6EC; }
.tono-descartada { --tono: #6E7A8E; --tono-suave: #EEF1F5; }

/* etapas */
.etapas { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 6px; }
.etapa { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px; font: inherit; cursor: pointer;
  border: 1px solid var(--borde); background: var(--caja); border-radius: 999px; padding: 6px 14px 6px 7px; color: var(--texto);
  transition: border-color .15s, box-shadow .15s, background .15s; }
.etapa:hover { border-color: var(--azul-borde); }
.etapa .e-ic { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--tono-suave, var(--azul-suave)); color: var(--tono, var(--azul)); }
.etapa .e-ic .ic { width: 15px; height: 15px; }
.etapa .e-nom { font-weight: 600; font-size: 13px; }
.etapa .e-n { min-width: 24px; text-align: center; font-weight: 800; font-size: 12.5px; padding: 1px 7px; border-radius: 999px;
  background: var(--fondo); color: var(--marino); }
.etapa.activa { background: var(--tono, var(--azul)); border-color: transparent; color: #fff; box-shadow: 0 4px 14px rgba(0,91,255,.25); }
.etapa.activa .e-ic { background: rgba(255,255,255,.2); color: #fff; }
.etapa.activa .e-n { background: rgba(255,255,255,.22); color: #fff; }

/* lista */
.panel-lista { background: var(--caja); border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; }
.banda { background: var(--grad); color: #fff; padding: 14px 18px; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.banda-titulo { display: flex; align-items: center; gap: 11px; }
.banda-titulo > .ic { width: 38px; height: 38px; padding: 8px; border-radius: 11px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.16); }
.banda h2 { font-size: 17px; margin: 0; }
.banda p { margin: 2px 0 0; font-size: 12.5px; color: #B9CCF5; }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.filtros .buscar { min-width: 260px; }
.filtros select { width: auto; }
.banda input, .banda select { background: rgba(255,255,255,.96); border-color: transparent; padding-top: 7px; padding-bottom: 7px; }
.banda .check { color: #fff; }

.tabla { width: 100%; border-collapse: collapse; }
.tabla th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--sutil); font-weight: 700;
  padding: 10px 12px; border-bottom: 1px solid var(--borde); background: #F7F9FD; }
.tabla td { padding: 12px; border-bottom: 1px solid #EDF1F6; vertical-align: top; }
.tabla tr:last-child td { border-bottom: 0; }
.tabla tbody tr { cursor: pointer; transition: background .12s; }
.tabla tbody tr:hover td { background: #F5F9FF; }
.tabla tbody tr:hover .nombre { color: var(--azul); }
.nombre { font-weight: 650; font-weight: 600; color: var(--marino); }
.meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; font-size: 12.5px; color: var(--sutil); }
.meta span { display: inline-flex; align-items: center; gap: 4px; }
.meta .ic { width: 13px; height: 13px; }
.motivo-ia { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 12px; color: var(--violeta);
  background: var(--violeta-suave); padding: 2px 9px; border-radius: 999px; }
.motivo-ia .ic { width: 13px; height: 13px; }
.alertas { display: flex; align-items: center; gap: 5px; color: var(--rojo); font-size: 12px; margin-top: 5px; }
.alertas .ic { width: 14px; height: 14px; }
.monto { font-weight: 700; color: var(--marino); }

/* semáforo */
.sem { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 3px 10px 3px 8px; border-radius: 999px;
  background: #EEF1F5; color: #6E7A8E; white-space: nowrap; }
.sem::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px rgba(0,0,0,.05); }
.sem.verde { background: var(--verde-suave); color: var(--verde); }
.sem.amarillo { background: var(--amarillo-suave); color: var(--amarillo); }
.sem.rojo { background: var(--rojo-suave); color: var(--rojo); }

/* puntaje (anillo) */
.pts { --p: 0; --c: #AAB4C3; position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), #E7ECF3 0); }
.pts::before { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #fff; }
.pts b { position: relative; font-size: 13px; color: var(--marino); }
.pts.alto { --c: var(--azul); } .pts.medio { --c: var(--amarillo-vivo); }

/* cierre */
.cierre { white-space: nowrap; font-weight: 600; }
.cuenta { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 11.5px; font-weight: 700; padding: 1px 8px; border-radius: 999px;
  background: var(--azul-suave); color: var(--azul); }
.cuenta .ic { width: 12px; height: 12px; }
.cuenta.urgente { background: var(--rojo-suave); color: var(--rojo); }
.cuenta.pronto { background: var(--amarillo-suave); color: var(--amarillo); }
.cuenta.cerrada { background: #EEF1F5; color: #6E7A8E; }

.etiqueta { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px;
  background: var(--tono-suave, #EEF1F5); color: var(--tono, #3B4450); white-space: nowrap; }
.etiqueta .ic { width: 13px; height: 13px; }
.etiqueta.trabajando { background: var(--violeta-suave); color: var(--violeta); margin-top: 5px; }
.etiqueta.trabajando .ic { animation: girar 1.6s linear infinite; }

.vacio { text-align: center; padding: 46px 20px 50px; }
.vacio-ic { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 22px; background: var(--azul-suave); color: var(--azul); margin-bottom: 12px; }
.vacio-ic .ic { width: 36px; height: 36px; stroke-width: 1.5; }
.vacio h3 { color: var(--marino); margin-bottom: 4px; }
.vacio p { max-width: 440px; margin: 0 auto 16px; }

/* ---------------- paneles laterales ---------------- */
.lateral { position: fixed; inset: 0; background: rgba(7,26,69,.45); backdrop-filter: blur(3px); z-index: 20; display: flex; justify-content: flex-end; }
.lateral-caja { position: relative; width: min(900px, 100%); height: 100%; overflow-y: auto; background: var(--fondo); box-shadow: -10px 0 40px rgba(7,26,69,.25);
  animation: entrar .22s ease-out; }
@keyframes entrar { from { transform: translateX(30px); opacity: .4; } }
.cerrar { position: absolute; top: 14px; right: 14px; z-index: 3; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.1); color: #fff; cursor: pointer; }
.cerrar:hover { background: rgba(255,255,255,.2); }
.cabecera { position: relative; overflow: hidden; background: var(--grad); color: #fff; padding: 22px 64px 22px 26px; }
.cabecera::after { content: ""; position: absolute; width: 300px; height: 300px; right: -90px; bottom: -170px; border-radius: 50%;
  background: radial-gradient(circle, rgba(47,123,255,.55), transparent 65%); }
.cabecera > * { position: relative; z-index: 1; }
.cab-codigo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 12.5px; color: #B9CCF5; }
.cab-codigo .ic { width: 15px; height: 15px; color: var(--azul-claro); }
.cab-codigo a { color: #fff; display: inline-flex; align-items: center; gap: 4px; }
.cabecera h2 { font-size: 21px; margin: 0 0 8px; }
.cab-sub { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; color: #DCE7FF; font-size: 13px; }
.cab-sub span { display: inline-flex; align-items: center; gap: 5px; }
.cab-sub .ic { width: 15px; height: 15px; color: var(--azul-claro); }
.cabecera .sem { margin-top: 12px; }
.cuerpo { padding: 18px 24px 60px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.kpi { background: var(--caja); border-radius: 12px; box-shadow: var(--sombra); padding: 12px 14px; border-top: 3px solid var(--azul); }
.kpi > span { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--sutil); font-weight: 600; }
.kpi > span .ic { width: 14px; height: 14px; color: var(--azul); }
.kpi b { display: block; font-size: 17px; margin-top: 4px; color: var(--marino); }
.kpi select { margin-top: 4px; padding: 5px 8px; }
.tarjeta { background: var(--caja); border-radius: var(--radio); box-shadow: var(--sombra); padding: 16px 18px; margin-top: 14px; }
.tarjeta h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: var(--marino); font-size: 15px; }
.tarjeta h4 { margin: 16px 0 4px; font-size: 13.5px; color: var(--marino); }
.acciones { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px 18px; }
.datos > div > span { display: block; font-size: 12px; color: var(--sutil); font-weight: 600; margin-bottom: 2px; }
.semaforo-caja { position: relative; border-radius: var(--radio); padding: 16px 18px 16px 70px; margin-top: 14px; border: 1px solid transparent; }
.semaforo-caja .s-ic { position: absolute; left: 16px; top: 16px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; }
.semaforo-caja .s-ic .ic { width: 22px; height: 22px; }
.semaforo-caja.verde { background: var(--verde-suave); border-color: #B6E8D2; } .semaforo-caja.verde .s-ic { background: var(--verde); }
.semaforo-caja.amarillo { background: var(--amarillo-suave); border-color: #F6DDA0; } .semaforo-caja.amarillo .s-ic { background: var(--amarillo-vivo); }
.semaforo-caja.rojo { background: var(--rojo-suave); border-color: #F6C3C3; } .semaforo-caja.rojo .s-ic { background: var(--rojo); }
.semaforo-caja h3 { margin: 0 0 6px; color: var(--marino); }
.estado-trabajo { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 9px 12px; border-radius: 10px; background: var(--violeta-suave); color: var(--violeta); font-size: 13px; }
.estado-trabajo.error { background: var(--rojo-suave); color: var(--rojo); }
.estado-trabajo.vivo .ic { animation: girar 1.6s linear infinite; }
ul.lista { margin: 4px 0 0; padding-left: 18px; }
ul.lista li { margin: 4px 0; }
ul.lista li::marker { color: var(--azul); }
table.mini { width: 100%; border-collapse: collapse; font-size: 13px; }
table.mini th, table.mini td { text-align: left; padding: 7px 8px; border-bottom: 1px solid #EDF1F6; vertical-align: top; }
table.mini th { color: var(--sutil); font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; background: #F7F9FD; }
.ok { color: var(--verde); font-weight: 700; } .no { color: var(--rojo); font-weight: 700; } .inc { color: var(--amarillo); font-weight: 700; }
.veredicto { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 10px; margin: 12px 0 4px; }
.veredicto .ic { margin-top: 1px; }
.veredicto.ok { background: var(--verde-suave); } .veredicto.no { background: var(--rojo-suave); } .veredicto.inc { background: var(--amarillo-suave); }
.costos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.costos div { background: #F7F9FD; border: 1px solid var(--borde); border-radius: 10px; padding: 11px 12px; }
.costos div.destacado { background: var(--grad); color: #fff; border-color: transparent; }
.costos div.destacado span { color: #B9CCF5; } .costos div.destacado b { color: #fff; }
.costos b { display: block; font-size: 18px; color: var(--marino); margin-top: 2px; }
.costos span { font-size: 12px; color: var(--sutil); }
.doc-nombre { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.doc-nombre .ic { color: var(--azul); width: 16px; height: 16px; }
.eventos { font-size: 12.5px; color: var(--sutil); max-height: 240px; overflow-y: auto; display: grid; gap: 6px; }
.eventos div { padding-left: 12px; border-left: 2px solid var(--azul-borde); }
.grid-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.grid-form .btn { align-self: end; justify-content: center; }
pre.log { white-space: pre-wrap; background: #061638; color: #CFE0FF; padding: 12px; border-radius: 10px; font-size: 12px; max-height: 360px; overflow: auto; }

.aviso { position: fixed; bottom: 18px; left: 50%; transform: translateX(-50%); background: var(--marino); color: #fff; padding: 11px 18px; border-radius: 12px;
  z-index: 50; max-width: calc(100% - 32px); box-shadow: var(--sombra-alta); border-left: 4px solid var(--azul-2); }

/* ---------------- responsivo ---------------- */
@media (max-width: 1100px) { .grupos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .login { grid-template-columns: 1fr; }
  .login-arte { padding: 32px 22px; gap: 14px; }
  .login-arte h2 { font-size: 22px; }
  .login-puntos li { font-size: 13.5px; }
}
@media (max-width: 720px) {
  .barra { padding: 12px 16px 14px; }
  .marca-logo { width: 140px; }
  .marca-sep { display: none; }
  .barra-acciones .btn span.ocultar-movil, #btn-agregar span { display: none; }
  .barra-acciones .btn { padding: 8px 10px; }
  .contenido { padding: 14px 16px 40px; gap: 14px; }
  .grupos { gap: 8px; }
  .grupo { padding: 11px 12px; gap: 9px; }
  .grupo .g-ic { width: 36px; height: 36px; }
  .grupo .g-n { font-size: 21px; }
  .grupo .g-des { display: none; }
  .banda { padding: 12px 14px; }
  .filtros, .filtros .buscar { width: 100%; min-width: 0; }
  .filtros select { flex: 1 1 40%; min-width: 0; width: 100%; }
  .ocultar-movil { display: none; }
  .tabla th:first-child { font-size: 0; }
  .tabla .sem { font-size: 0; gap: 0; padding: 4px; }
  .tabla td { padding: 10px 8px; }
  .cuerpo { padding: 14px 14px 60px; }
  .cabecera { padding: 18px 58px 18px 16px; }
  .semaforo-caja { padding-left: 16px; padding-top: 66px; }
}

/* ---------------- progreso del robot ---------------- */
.progreso { background: var(--caja); border-radius: var(--radio); box-shadow: var(--sombra); padding: 16px 18px; border: 1px solid var(--azul-borde);
  background-image: linear-gradient(180deg, #F4F8FF, #fff 60%); }
.progreso.listo { border-color: #B6E8D2; background-image: linear-gradient(180deg, #EFFAF5, #fff 60%); }
.progreso.listo .ic-caja { background: linear-gradient(135deg, #0E9F6E, #22C08A); box-shadow: 0 6px 16px rgba(14,159,110,.28); }
.progreso.con-error { border-color: #F6C3C3; background-image: linear-gradient(180deg, #FFF3F3, #fff 60%); }
.progreso.con-error .ic-caja { background: linear-gradient(135deg, #D93A3A, #F06464); }
.prog-cab { display: flex; align-items: center; gap: 12px; }
.prog-tit { flex: 1; min-width: 0; }
.prog-tit h2 { font-size: 16.5px; margin: 0; color: var(--marino); }
.prog-tit p { margin: 2px 0 0; font-size: 13px; color: var(--sutil); }
.prog-pct { font-size: 26px; font-weight: 800; color: var(--azul); }
.progreso.listo .prog-pct { color: var(--verde); } .progreso.con-error .prog-pct { color: var(--rojo); }
.progreso .btn.vidrio { color: var(--sutil); border-color: var(--borde); }
.latido { animation: latido 1.6s ease-in-out infinite; }
@keyframes latido { 50% { box-shadow: 0 0 0 8px rgba(0,91,255,.12), 0 6px 16px rgba(0,91,255,.28); } }
.prog-barra { position: relative; height: 10px; border-radius: 99px; background: #E3EAF6; overflow: hidden; margin: 14px 0 8px; }
.prog-barra > i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #0B2A6F, #005BFF, #2F7BFF);
  transition: width .6s ease; position: relative; overflow: hidden; }
.prog-barra > i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  animation: brillo 1.4s linear infinite; }
.progreso.listo .prog-barra > i { background: linear-gradient(90deg, #0E9F6E, #22C08A); }
.progreso.listo .prog-barra > i::after, .progreso.con-error .prog-barra > i::after { display: none; }
.progreso.con-error .prog-barra > i { background: var(--rojo); }
.prog-barra.indeterminada > i { width: 35% !important; animation: vaiven 1.3s ease-in-out infinite; }
@keyframes brillo { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes vaiven { 0% { margin-left: -35%; } 100% { margin-left: 100%; } }
.prog-texto { display: flex; align-items: center; gap: 7px; margin: 0 0 12px; font-size: 13px; color: var(--marino); font-weight: 600; }
.prog-texto .ic { width: 15px; height: 15px; color: var(--azul); }
.ic.gira { animation: girar 1.4s linear infinite; }
.prog-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.prog-pasos li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--sutil); padding: 7px 9px; border-radius: 10px; background: #F4F6FA; }
.prog-pasos li > span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; flex: 0 0 auto; font-size: 11px; font-weight: 800;
  background: #E1E6EF; color: var(--sutil); }
.prog-pasos li > span .ic { width: 13px; height: 13px; stroke-width: 2.4; }
.prog-pasos li.hecho { color: var(--verde); background: var(--verde-suave); }
.prog-pasos li.hecho > span { background: var(--verde); color: #fff; }
.prog-pasos li.actual { color: var(--azul); background: var(--azul-suave); font-weight: 700; box-shadow: inset 0 0 0 1px var(--azul-borde); }
.prog-pasos li.actual > span { background: var(--azul); color: #fff; }
.prog-pasos li.fallo { color: var(--rojo); background: var(--rojo-suave); }
.prog-pasos li.fallo > span { background: var(--rojo); color: #fff; }
.prog-cont { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.prog-cont > span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--sutil); background: #fff; border: 1px solid var(--borde);
  padding: 4px 10px; border-radius: 999px; }
.prog-cont > span .ic { width: 14px; height: 14px; color: var(--azul); }
.prog-cont b { color: var(--marino); font-size: 13.5px; }
@media (max-width: 720px) { .prog-pasos { grid-template-columns: 1fr 1fr; } .prog-pct { font-size: 21px; } }

.btn.detener { background: var(--rojo); border-color: var(--rojo); color: #fff; box-shadow: 0 4px 14px rgba(217,58,58,.3); }
.btn.detener:hover { box-shadow: 0 6px 18px rgba(217,58,58,.42); border-color: var(--rojo); }
.progreso.detenida { border-color: #F6DDA0; background-image: linear-gradient(180deg, #FFF8E8, #fff 60%); }
.progreso.detenida .ic-caja { background: linear-gradient(135deg, #B7791F, #F5A524); box-shadow: none; }
.progreso.detenida .prog-pct { color: var(--amarillo); }
.progreso.detenida .prog-barra > i { background: var(--amarillo-vivo); }
.progreso.detenida .prog-barra > i::after { display: none; }
.progreso.detenida .prog-pasos li.fallo { color: var(--amarillo); background: var(--amarillo-suave); }
.progreso.detenida .prog-pasos li.fallo > span { background: var(--amarillo-vivo); }

/* subir bases */
.zona-subir { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding: 16px 18px; border: 2px dashed var(--azul-borde);
  border-radius: 12px; background: #F7FAFF; color: var(--marino); cursor: pointer; font-weight: 400; font-size: 13.5px; transition: background .15s, border-color .15s; }
.zona-subir > .ic { width: 30px; height: 30px; color: var(--azul); }
.zona-subir.grande { padding: 26px 20px; justify-content: center; text-align: left; }
.zona-subir.grande > .ic { width: 40px; height: 40px; }
.zona-subir:hover, .zona-subir.encima { background: var(--azul-suave); border-color: var(--azul); }
.zona-subir.subiendo { opacity: .6; pointer-events: none; }
.zona-subir.subiendo > .ic { animation: latido 1s ease-in-out infinite; }
.pasos-guia { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pasos-guia li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.pasos-guia li > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--grad-azul); color: #fff; font-weight: 800; font-size: 12px; flex: 0 0 auto; }
.pasos-guia li > div { padding-top: 2px; }
.pasos-guia .btn { margin-left: 6px; padding: 4px 10px; font-size: 12.5px; vertical-align: middle; }
.veredicto .btn { margin-left: 6px; padding: 4px 10px; font-size: 12.5px; }

.herramientas { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.herr { display: flex; gap: 12px; align-items: flex-start; text-align: left; font: inherit; cursor: pointer; padding: 14px; border-radius: 12px;
  border: 1px solid var(--borde); background: #F7F9FD; color: var(--texto); transition: border-color .15s, background .15s, transform .12s; }
.herr:hover { border-color: var(--azul); background: var(--azul-suave); transform: translateY(-1px); }
.herr > .ic { width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: var(--grad-azul); color: #fff; }
.herr b { color: var(--marino); }

/* pestañas Licitaciones / Compra Ágil */
.pestanas { display: flex; gap: 6px; margin-top: 14px; }
.pestana { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-weight: 700; font-size: 14px; cursor: pointer;
  padding: 9px 16px; border-radius: 12px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: #CFDDFB;
  transition: background .15s, color .15s; }
.pestana:hover { background: rgba(255,255,255,.14); color: #fff; }
.pestana .ic { width: 17px; height: 17px; }
.pestana.activa { background: #fff; color: var(--azul); border-color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.p-n { min-width: 22px; text-align: center; padding: 1px 7px; border-radius: 999px; font-size: 12px; background: var(--azul-2); color: #fff; }
.pestana.activa .p-n { background: var(--azul); }
.sugerido { margin-top: 4px; font-size: 11.5px; font-weight: 700; color: var(--verde); white-space: nowrap; }
.motivo-ia.recomendacion { background: var(--azul-suave); color: var(--azul); }
.etiqueta-ca { display: inline-flex; margin-top: 12px; margin-right: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
  background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.25); }
@media (max-width: 720px) { .pestanas { width: 100%; } .pestana { flex: 1; justify-content: center; padding: 8px 10px; font-size: 13px; } }

textarea.perfil { min-height: 380px; font: 13px/1.5 Consolas, "Cascadia Mono", ui-monospace, monospace; margin-top: 8px; }

/* ficha de empresa */
.indice-ficha { position: sticky; top: 0; z-index: 2; display: flex; gap: 6px; flex-wrap: wrap; padding: 10px 0; background: var(--fondo); }
.indice-ficha a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px; background: var(--caja);
  border: 1px solid var(--borde); color: var(--marino); font-size: 12.5px; font-weight: 600; text-decoration: none; }
.indice-ficha a:hover { border-color: var(--azul); color: var(--azul); }
.indice-ficha .ic { width: 14px; height: 14px; color: var(--azul); }
.grid-form.ficha { background: none; box-shadow: none; padding: 0; margin-top: 10px; }
.grid-form .ancho { grid-column: 1 / -1; }
.grid-form.ficha textarea { min-height: 84px; }
.tabla-ficha { margin-top: 16px; }
.tabla-scroll { overflow-x: auto; }
table.mini.editable td { padding: 4px; }
table.mini.editable input, table.mini.editable select { padding: 6px 8px; font-size: 13px; min-width: 90px; }
.tabla-ficha .btn { margin-top: 8px; }
.barra-guardar { position: sticky; bottom: 0; z-index: 2; display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--caja); box-shadow: var(--sombra-alta); }
section.tarjeta { scroll-margin-top: 120px; }
table.mini.editable input[data-col="descripcion"], table.mini.editable input[data-col="cliente"], table.mini.editable input[data-col="organismo"], table.mini.editable input[data-col="rol"] { min-width: 180px; }

.historial-caja { margin-top: 14px; padding: 14px; border-radius: 12px; border: 1px dashed var(--azul-borde); background: #F7FAFF; }
.historial-caja h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; color: var(--marino); }
.historial-caja h4 .ic { color: var(--azul); }
.fila-historial { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.fila-historial input { flex: 1; min-width: 240px; }

/* estado de lectura de la IA */
.lectura { display: flex; gap: 14px; align-items: flex-start; margin-top: 14px; padding: 16px 18px; border-radius: var(--radio); border: 2px solid; }
.lectura h3 { margin: 0 0 4px; font-size: 16px; color: var(--marino); }
.lectura p { margin: 0; font-size: 13.5px; }
.lectura .l-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: #fff; flex: 0 0 auto; }
.lectura .l-ic .ic { width: 24px; height: 24px; }
.lectura.falta { background: var(--rojo-suave); border-color: #F3B4B4; } .lectura.falta .l-ic { background: var(--rojo); }
.lectura.pendiente { background: var(--azul-suave); border-color: var(--azul-borde); } .lectura.pendiente .l-ic { background: var(--grad-azul); }
.lectura.parcial { background: var(--amarillo-suave); border-color: #F6DDA0; } .lectura.parcial .l-ic { background: var(--amarillo-vivo); }
.lectura.ok.chico { align-items: center; gap: 8px; padding: 8px 12px; border-width: 1px; background: var(--verde-suave); border-color: #B6E8D2; color: var(--verde); font-size: 13px; }
.chip-lectura { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; margin-right: 6px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; }
.chip-lectura .ic { width: 13px; height: 13px; }
.chip-lectura.falta { background: var(--rojo-suave); color: var(--rojo); }
.chip-lectura.pendiente { background: var(--azul-suave); color: var(--azul); }
.chip-lectura.parcial { background: var(--amarillo-suave); color: var(--amarillo); }

.lectura-fila { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 11px; font-weight: 700; line-height: 1.2; color: var(--sutil); }
.lectura-fila > span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; flex: 0 0 auto; }
.lectura-fila > span .ic { width: 12px; height: 12px; stroke-width: 2.6; }
.lectura-fila.ok { color: var(--verde); } .lectura-fila.ok > span { background: var(--verde); }
.lectura-fila.parcial { color: var(--amarillo); } .lectura-fila.parcial > span { background: var(--amarillo-vivo); }
.lectura-fila.pendiente { color: var(--azul); } .lectura-fila.pendiente > span { background: var(--azul); }
.lectura-fila.falta { color: var(--rojo); } .lectura-fila.falta > span { background: var(--rojo); }
@media (max-width: 720px) { .lectura-fila { font-size: 0; gap: 0; } }

/* ---------- rubros */
.chip-rubro { background: var(--violeta-suave); color: var(--violeta); font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.chip-rubro.r-software { background: #E6F0FF; color: #1D5BD8; }
.chip-rubro.r-video { background: #FFF1E6; color: #C2570C; }
.rubro-caja { border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; margin: 0 0 12px; background: #FAFBFE; }
.rubro-caja.inactivo { opacity: .6; }
.rubro-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.rubro-cab .rubro-nombre { flex: 1 1 200px; font-weight: 700; font-size: 15px; }
#f-rubro[hidden] { display: none; }
.chip-rubro.r-renders { background: #E8F7EF; color: #12804A; }

/* ---------- competencia y precio */
.antecedente { display: flex; gap: 10px; background: #FFF8E6; border: 1px solid #F3DDA0; border-radius: 12px; padding: 12px 14px; margin: 6px 0 14px; }
.antecedente > .ic { color: #B7791F; flex: none; margin-top: 2px; }
.antecedente table.mini { margin-top: 8px; background: #fff; }
.sub-h { margin: 14px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--sutil); }
.sim-sugeridos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.sim-card { border: 1px solid var(--borde); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; background: #FAFBFE; }
.sim-card span { font-size: 12px; color: var(--sutil); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.sim-card b { font-size: 19px; color: var(--marino); }
.sim-card small { color: var(--sutil); font-size: 12px; }
.sim-card em { font-style: normal; font-weight: 700; color: var(--violeta); font-size: 13px; }
.sim-card.rec { border-color: var(--azul); background: #EEF4FF; box-shadow: 0 0 0 2px rgba(10,92,255,.12); }
.sim-barras { display: flex; align-items: flex-end; gap: 4px; height: 90px; margin: 12px 0 4px; padding: 0 2px; }
.sim-barra { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 3px; }
.sim-barra i { display: block; width: 100%; background: linear-gradient(180deg, #5B8CFF, #0A5CFF); border-radius: 4px 4px 0 0; min-height: 2px; }
.sim-barra span { font-size: 10px; color: var(--sutil); }
.kpis.chicos { margin-top: 10px; }
.kpis.chicos .kpi b { font-size: 16px; }
.kpis.chicos .kpi small { display: block; color: var(--sutil); font-size: 11.5px; }
#d-competencia details { margin-top: 10px; border-top: 1px solid var(--borde); padding-top: 8px; }
#d-competencia summary { cursor: pointer; font-weight: 700; color: var(--marino); padding: 4px 0; }
#d-competencia .fila-historial { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
#d-competencia .fila-historial input { flex: 1 1 260px; }

/* ================= v3: 5 pantallas ================= */
.menu { display: flex; gap: 6px; margin-top: 14px; flex-wrap: wrap; }
.menu-item { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-weight: 700; font-size: 14px; cursor: pointer;
  padding: 8px 16px; border-radius: 11px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: #D6E3FF; }
.menu-item:hover { background: rgba(255,255,255,.14); color: #fff; }
.menu-item .ic { width: 17px; height: 17px; }
.menu-item.activa { background: #fff; color: var(--azul); border-color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.menu-item.activa .p-n { background: var(--azul); }
@media (max-width: 720px) { .menu-item { flex: 1 1 auto; justify-content: center; padding: 8px 10px; font-size: 13px; } }
.vista { display: grid; gap: 16px; min-width: 0; }
.grupos.cinco { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grupos.cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .grupos.cinco { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .grupos.cinco, .grupos.cuatro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.grupo.tono-oferta { --tono: var(--violeta); }
.grupo.tono-resultado { --tono: var(--verde); }
.grupo.tono-descartada { --tono: var(--sutil); }
.chips-sem { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 16px; background: #F7F9FD; border-bottom: 1px solid var(--borde); }
.chip-f { display: inline-flex; align-items: center; gap: 7px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  padding: 5px 12px; border-radius: 999px; border: 1px solid var(--borde); background: #fff; color: var(--texto); }
.chip-f b { font-size: 12px; color: var(--sutil); }
.chip-f i { width: 9px; height: 9px; border-radius: 50%; background: var(--sutil); }
.chip-f.s-verde i { background: var(--verde); } .chip-f.s-amarillo i { background: var(--amarillo-vivo); } .chip-f.s-rojo i { background: var(--rojo); }
.chip-f.s-sin i { background: #A9B4C6; }
.chip-f.activa { background: var(--marino); color: #fff; border-color: var(--marino); }
.chip-f.activa b { color: #B9CCF5; }
.chip-tipo { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.chip-tipo .ic { width: 12px !important; height: 12px !important; }
.chip-tipo.ca { background: #FFF4E5; color: #B45309; } .chip-tipo.lic { background: #EEF2F8; color: #3B475C; }
.cab-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; align-items: center; }
.cab-chips .sem { margin-top: 0; }
.cab-chips .chip-tipo, .cab-chips .chip-rubro { background: rgba(255,255,255,.14); color: #fff; padding: 3px 10px; font-size: 12px; }
.acciones.principales { margin-top: 0; }
.pestanas-ficha { display: flex; gap: 4px; margin: 16px 0 14px; border-bottom: 2px solid var(--borde); overflow-x: auto; }
.pestanas-ficha button { display: inline-flex; align-items: center; gap: 7px; font: inherit; font-weight: 700; font-size: 13.5px; cursor: pointer;
  padding: 9px 14px; border: 0; background: none; color: var(--sutil); border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; }
.pestanas-ficha button:hover { color: var(--marino); }
.pestanas-ficha button.activa { color: var(--azul); border-bottom-color: var(--azul); }
.pestanas-ficha .ic { width: 16px; height: 16px; }
.pestana-cuerpo { display: grid; gap: 14px; }
.pestana-cuerpo > .tarjeta, .pestana-cuerpo > .kpis, .pestana-cuerpo > p { margin: 0; }
.kpi small { display: block; margin-top: 2px; font-size: 11.5px; }
.kpi b small { font-size: 11px; color: var(--sutil); font-weight: 600; }
.kpi b.ok { color: var(--verde); } .kpi b.inc { color: var(--amarillo); } .kpi b.no { color: var(--rojo); }
.hoy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1000px) { .hoy-grid { grid-template-columns: 1fr; } }
.fila-mini { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; width: 100%; text-align: left; font: inherit; color: inherit;
  background: none; border: 0; border-top: 1px solid #EDF1F6; padding: 10px 4px; cursor: pointer; }
.fila-mini:first-of-type { border-top: 0; }
.fila-mini:hover { background: #F7F9FD; }
.fm-txt { min-width: 0; display: grid; gap: 3px; }
.fm-txt > b { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fm-txt .motivo-ia { margin-top: 2px; }
.fm-der { text-align: right; display: grid; gap: 2px; justify-items: end; font-size: 12.5px; }
.btn.texto { border-color: transparent; background: none; color: var(--azul); padding-left: 4px; margin-top: 6px; }
.filtros.claros { padding: 0; }
.filtros.claros select, .filtros.claros input { background: #fff; }
table.mini tr.clic { cursor: pointer; }
table.mini tr.clic:hover td { background: #F7F9FD; }
details.avanzadas > summary { cursor: pointer; display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--marino); list-style: none; }
details.avanzadas > summary::-webkit-details-marker { display: none; }
details.avanzadas[open] > summary { margin-bottom: 12px; }
#v-empresa .tarjeta, #v-ajustes .tarjeta { margin: 0; }
#v-empresa #form-empresa { display: grid; gap: 16px; }
.titulo-seccion h2 { margin-bottom: 2px; }
.chip-rubro .ic { width: 13px; height: 13px; }
.cab-chips .ic { width: 13px; height: 13px; }
.titulo-seccion .segmentado { margin-left: auto; }
.segmentado { display: inline-flex; background: #fff; border: 1px solid var(--borde); border-radius: 11px; padding: 3px; gap: 2px; box-shadow: var(--sombra); }
.segmentado button { font: inherit; font-size: 13px; font-weight: 700; border: 0; background: none; color: var(--sutil); padding: 6px 12px; border-radius: 8px; cursor: pointer; }
.segmentado button.activa { background: var(--marino); color: #fff; }
@media (max-width: 720px) { .titulo-seccion { flex-wrap: wrap; } .titulo-seccion .segmentado { margin-left: 0; } }
.meta .codigo { font-weight: 600; color: var(--marino); }
.rut-aviso { display: block; font-size: 11.5px; margin-top: 3px; min-height: 14px; color: var(--sutil); }
.rut-aviso.ok { color: var(--verde); } .rut-aviso.no { color: var(--rojo); font-weight: 600; }
input.mal { border-color: var(--rojo) !important; background: #FFF6F6; }
input.bien { border-color: var(--verde); }
.sugerido.ofertado { color: var(--violeta); font-weight: 700; }
.tabla tr.fila-total td { background: #F3F6FC; border-top: 2px solid var(--borde); cursor: default; }
table.mini tr.total td { background: #F3F6FC; border-top: 2px solid var(--borde); }

/* métodos del precio: girando / listo / sin datos */
.metodos { display: grid; gap: 3px; margin-top: 8px; }
.metodo { display: grid; grid-template-columns: 14px 1fr; column-gap: 6px; align-items: start; font-size: 12px; line-height: 1.3; color: var(--sutil); }
.metodo .ic { width: 14px; height: 14px; margin-top: 1px; }
.metodo.ok .ic { color: #12A150; } .metodo.no .ic { color: #D64545; } .metodo.cargando .ic { color: #005BFF; }
.metodo em { grid-column: 2; font-style: normal; font-weight: 600; }
.metodo span { font-weight: 600; color: var(--texto); }
.metodo.no em { font-weight: 400; opacity: .8; }
.ic.girando { animation: girar 1s linear infinite; }
.aviso-robot { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0 4px; padding: 10px 12px; border-radius: 12px;
  background: #EAF1FF; border: 1px solid #BFD3FF; color: var(--texto); font-size: 13px; }
.aviso-robot > .ic { width: 18px; height: 18px; color: #005BFF; flex: none; margin-top: 2px; }
.aviso-robot > div { flex: 1; display: grid; gap: 5px; }
.aviso-robot small { color: var(--sutil); }
.aviso-robot .prog-barra { margin: 0; height: 6px; }
.metodo .ic { grid-row: 1 / 3; } .metodo span { grid-column: 2; grid-row: 1; min-width: 0; } .metodo em { grid-row: 2; text-align: left; margin: 0; }
.mi-oferta { display: flex; gap: 8px; align-items: flex-start; margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: #F3EEFF; border: 1px solid #DCCBFF; font-size: 12px; line-height: 1.4; }
.mi-oferta > .ic { width: 15px; height: 15px; color: #7A3FF2; flex: none; margin-top: 2px; }
.sim-barra.mia > i { background: linear-gradient(180deg, #A97BFF, #7A3FF2) !important; }
.sim-barra.mia > span { color: #7A3FF2; font-weight: 700; }
.prob-mia { display: inline-flex; align-items: center; gap: 4px; margin-top: 3px; padding: 2px 8px; border-radius: 99px; font-size: 12px; font-weight: 700; }
.prob-mia .ic { width: 13px; height: 13px; }
.prob-mia.ok { background: #E3F7EC; color: #0E8A45; } .prob-mia.inc { background: #FFF4D6; color: #A86A00; } .prob-mia.no { background: #FDE6E6; color: #C03030; }
.metodo.decide span { color: var(--marino-3); }
.chip-decide { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 99px; background: #E3F7EC; color: #0E8A45; font-size: 11px; font-weight: 700; text-transform: none; letter-spacing: 0; }
.sim-card.optimo { border-color: #12A150; background: #F1FBF5; }
.ponderaciones { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; padding: 10px 12px; border-radius: 12px; background: #F6F8FC; border: 1px solid var(--borde); font-size: 12.5px; }
.ponderaciones > .ic { width: 16px; height: 16px; color: var(--marino-3); flex: none; margin-top: 2px; }
.ponderaciones > div { flex: 1; } .ponderaciones table { margin-top: 6px; }
.chip-muy { display: inline-block; padding: 1px 7px; border-radius: 99px; background: #E3F7EC; color: #0E8A45; font-size: 11px; font-weight: 700; }
tr.fila-muy td { background: #F6FCF8; }
.prog-pasos li.con-aviso { background: #FFF6E0; border-color: #F3D27A; color: #8A5A00; }
.prog-pasos li.con-aviso > span { background: #F5A524; color: #fff; }
.prog-pasos li small { display: block; font-size: 11px; font-weight: 500; opacity: .9; margin-top: 2px; }
.banner-ca { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; padding: 14px 16px; border-radius: 16px;
  background: #FFF6E0; border: 1px solid #F3D27A; color: #6B4600; }
.banner-ca > .ic { width: 22px; height: 22px; color: #F5A524; flex: none; }
.banner-ca > div { flex: 1 1 360px; display: grid; gap: 3px; font-size: 13px; }
.banner-ca .btn { cursor: pointer; }
.fila-pdf { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

/* ── Orden 2026-11-11: pantallas más simples ─────────────────────────── */
.grupos.dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grupos.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) { .grupos.tres { grid-template-columns: 1fr; } .grupos.dos { grid-template-columns: 1fr 1fr; } }
#ofertas-resumen { margin-bottom: 14px; }
/* desplegables («Ver cómo se calculó el precio», «Historial de cambios», «Ver sumatoria»…) */
details.plegable > summary { cursor: pointer; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-weight: 700; color: var(--marino); list-style: none; }
details.plegable > summary::-webkit-details-marker { display: none; }
details.plegable > summary::after { content: "▾"; margin-left: auto; color: var(--sutil); transition: transform .15s; }
details.plegable[open] > summary::after { transform: rotate(180deg); }
details.plegable[open] > summary { margin-bottom: 12px; }
details.plegable > summary .sutil { font-weight: 400; font-size: 12.5px; }
.kpis.chicos + details.plegable { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--borde); }
details.avanzadas > summary .sutil { font-weight: 400; font-size: 12.5px; }
/* panel del robot: pasos y contadores solo al abrir «Ver detalle» */
.prog-detalle { margin-top: 10px; }
.prog-detalle > summary { cursor: pointer; font-size: 13px; font-weight: 600; opacity: .85; }
.prog-detalle[open] > summary { margin-bottom: 10px; }
/* Ajustes */
.fila-accion { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.fila-accion h3 { margin-bottom: 4px; }
.fila-accion p { margin: 0; }
.medidor.grande { display: block; width: 100%; max-width: 420px; height: 8px; background: #E6ECF5; }
#empresa-volver { margin-bottom: 8px; }

.grid-form label.ancho { grid-column: 1 / -1; }

/* biblioteca de documentos (Fase 3) */
.bib-tipo { padding: 10px 12px; border: 1px solid var(--borde); border-radius: 10px; margin-top: 8px; }
.bib-tipo.falta { border-color: #F5C2C2; background: #FFF7F7; }
.bib-tipo.sin-doc { opacity: .85; }
.bib-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bib-cab .btn.texto { margin: 0 0 0 auto; }
.bib-pista { margin: 2px 0 6px; font-size: 12px; }
.doc-fila { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-top: 1px dashed var(--borde); }
.doc-info { flex: 1 1 260px; min-width: 0; }
.doc-botones { display: inline-flex; gap: 2px; }
.doc-editar { flex-basis: 100%; margin-top: 6px; padding: 10px; background: #F7F9FD; border-radius: 10px; }
.doc-editar .acciones { grid-column: 1 / -1; margin-top: 0; }
.chip-doc { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: #EEF2F8; color: #3B475C; }
.chip-doc.ok { background: var(--verde-suave); color: var(--verde); } .chip-doc.inc { background: var(--amarillo-suave); color: var(--amarillo); } .chip-doc.no { background: var(--rojo-suave); color: var(--rojo); }
.pastilla.alerta.clic { cursor: pointer; }

/* lista de chequeo por oferta (Fase 3) */
.chk-resumen { margin: 0 0 8px; font-size: 13px; }
.chk-fila { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-top: 1px dashed var(--borde); font-size: 13px; }
.chk-fila .chk-caja { flex: 0 0 auto; margin-top: 1px; }
.chk-fila .chk-caja input { width: 16px; height: 16px; cursor: pointer; }
.chk-fila .chk-texto { flex: 1 1 auto; min-width: 0; }
.chk-fila .chip-doc { flex: 0 0 auto; }
.chk-fila.hecho .chk-texto > div:first-child, .chk-fila.listo .chk-texto > div:first-child { color: var(--sutil); }
.chk-fila .btn.texto { margin: 0; padding: 0 4px; font-size: 12px; }

/* anexos llenados (Fase 3) */
.anexos-form { margin: 8px 0 4px; }
.anexos-form label.check { display: block; margin: 4px 0; font-size: 13px; }
.anexos-form .grid-form { margin: 10px 0; }
.anexos-form .btn { margin-top: 4px; }
.doc-info ul { margin: 4px 0 0 16px; padding: 0; }
