/*
 * SÉNTICA · capa visual de compatibilidad
 * Unifica el acabado sin modificar estructura, dimensiones, datos ni eventos.
 */
:root{
  --bg:#edf3f5;
  --panel:#ffffff;
  --panel2:#f3f8f8;
  --card:#ffffff;
  --ink:#102a43;
  --muted:#5f7281;
  --ink2:#40586b;
  --ink3:#82919e;
  --line:#d4e0e5;
  --brand:#078c91;
  --brandink:#075765;
  --accent:#18aaa2;
  --good:#087a58;
  --goodbg:#e9f6f1;
  --red:#b34843;
  --redbg:#fbefee;
  --amber:#9b6b13;
  --amberbg:#fbf3df;
  --grey:#607281;
  --greybg:#f0f4f6;
  --shadow:0 12px 32px rgba(16,42,67,.08);
  --sentica-shadow-soft:0 6px 18px rgba(16,42,67,.065);
  --sentica-shadow-raised:0 16px 38px rgba(16,42,67,.12);
  --sentica-focus:0 0 0 3px rgba(11,135,147,.14);
}

[data-theme=dark]{
  --bg:#0d151d;
  --panel:#141f29;
  --panel2:#192630;
  --card:#141f29;
  --ink:#e9f1f5;
  --muted:#a0b0bc;
  --ink2:#c3d0d8;
  --ink3:#7e909d;
  --line:#2a3a46;
  --brand:#43c0c3;
  --brandink:#8be0dd;
  --accent:#43c0c3;
  --good:#58c59a;
  --goodbg:#112b24;
  --red:#ef8b84;
  --redbg:#301c1d;
  --amber:#e2b660;
  --amberbg:#312712;
  --grey:#9fb0bc;
  --greybg:#192630;
  --shadow:0 12px 32px rgba(0,0,0,.3);
  --sentica-shadow-soft:0 4px 14px rgba(0,0,0,.2);
  --sentica-shadow-raised:0 16px 40px rgba(0,0,0,.34);
  --sentica-focus:0 0 0 3px rgba(67,192,195,.16);
}

html{background:var(--bg)}
body{
  color:var(--ink);
  background:
    radial-gradient(900px 390px at 88% -120px,rgba(16,163,163,.13),transparent 68%),
    linear-gradient(180deg,#f7fafb 0,#edf3f5 220px,var(--bg) 100%),
    var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Cabecera y navegación: una sola familia visual. */
.stc-header{
  background:
    linear-gradient(105deg,rgba(255,255,255,.98) 0%,rgba(246,252,251,.98) 62%,rgba(231,247,245,.98) 100%);
  border-color:var(--line);
  box-shadow:0 7px 24px rgba(16,42,67,.075);
  backdrop-filter:saturate(135%) blur(12px);
}
[data-theme=dark] .stc-header{background:rgba(20,31,41,.94)}
.stc-brand,
.stc-brand:visited{color:var(--ink)}
#cpvApp .modenav{
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,250,250,.98));
  border-color:var(--line);
  box-shadow:0 10px 28px rgba(16,42,67,.09);
  backdrop-filter:saturate(125%) blur(10px);
}
[data-theme=dark] #cpvApp .modenav{background:rgba(20,31,41,.9)}
.modebtn{color:var(--ink)}
.modebtn:hover{background:var(--panel2)}
#cpvApp .modebtn.on{
  color:#fff;
  background:linear-gradient(135deg,var(--brandink),var(--brand));
  border-color:var(--brand);
  box-shadow:0 7px 16px rgba(7,87,101,.2);
}
#cpvApp .modebtn.on svg{color:#fff}
.modegrp:hover{color:var(--brand)}

/* Superficies: mismo borde, radio y profundidad sin alterar medidas. */
.vcard,
.mapcard,
.kpi,
.panel,
.item,
.pulsocol,
.reloj,
.g2c,
.helpbox,
.hlp-content,
.au-box,
#mcFicha,
#inteligencia .bihero,
#inteligencia .bimarketexplorer,
#inteligencia .bicpvbrowser{
  border-color:var(--line);
  box-shadow:var(--sentica-shadow-soft);
}
.vcard:hover,
.item:hover,
.mapcard:hover{
  border-color:rgba(11,135,147,.42);
  box-shadow:var(--sentica-shadow-raised);
}

/* Acabado visible del armazón principal. Mantiene exactamente su geometría. */
.navttl{
  color:var(--brandink);
  letter-spacing:.01em;
}
.modegrp{
  color:#708590;
  letter-spacing:.105em;
}
#cpvApp .modebtn:hover{
  color:var(--brandink);
  background:rgba(7,140,145,.075);
}
#cpvApp .modebtn.on:hover{
  color:#fff;
  background:linear-gradient(135deg,var(--brandink),var(--brand));
}
.bar{
  border-color:rgba(7,140,145,.2);
  background:
    linear-gradient(100deg,#fff 0%,#fff 70%,rgba(24,170,162,.075) 100%);
  box-shadow:var(--sentica-shadow-soft);
}
.bar h2{color:var(--ink)}
#provincias #pvBuscador{
  border:1px solid rgba(7,140,145,.18);
  background:
    linear-gradient(145deg,#fff 0%,#fff 62%,rgba(24,170,162,.055) 100%);
  box-shadow:0 10px 26px rgba(16,42,67,.085);
}
#provincias #pvBuscador select,
#provincias #pvBuscador input{
  background:#f8fbfc;
  border-color:#cddde3;
}
#provincias #pvBuscador select:focus,
#provincias #pvBuscador input:focus{
  background:#fff;
  border-color:var(--brand);
}
#provincias #pvGuardadasCaja{
  border-color:rgba(7,140,145,.17)!important;
  background:rgba(255,255,255,.93)!important;
  box-shadow:0 6px 18px rgba(16,42,67,.055);
}
#provincias .pvrow{
  background:
    linear-gradient(115deg,#fff 0%,#fff 78%,rgba(24,170,162,.035) 100%);
  border-color:rgba(16,42,67,.055);
  box-shadow:0 7px 19px rgba(16,42,67,.075);
}
#provincias .pvrow:hover{
  border-color:rgba(7,140,145,.24);
  box-shadow:0 13px 28px rgba(16,42,67,.12);
  transform:translateY(-1px);
}
#provincias .pvbusq-badge,
.tag{
  color:var(--brandink);
  border-color:rgba(7,140,145,.2);
  background:rgba(7,140,145,.075);
}
.stc-footer{
  border-color:var(--line);
  background:
    linear-gradient(105deg,#fff 0%,#f3faf9 100%);
}

/* Botones y pestañas coherentes. */
.btn,
.full,
.fchip,
.htab,
.dtab,
.rchip,
.pick,
.ic,
.salir,
.vistabtn,
.themebtn,
.hlp-navbtn,
.ordena .o,
.mc-cerrar,
#inteligencia button{
  font-family:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  transition:
    color .16s ease,
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}
.btn{
  background:linear-gradient(135deg,var(--brand),var(--accent));
  color:#fff;
  box-shadow:0 5px 14px rgba(11,135,147,.16);
}
.btn:hover{filter:none;background:var(--brandink);transform:translateY(-1px)}
.btn.g,
.btn.ghost,
.full,
.fchip,
.htab,
.dtab,
.rchip,
.pick,
.ic,
.salir,
.vistabtn,
.themebtn,
.hlp-navbtn,
.ordena .o,
.mc-cerrar{
  background:var(--panel);
  color:var(--ink2);
  border-color:var(--line);
  box-shadow:none;
}
.btn.g:hover,
.btn.ghost:hover,
.full:hover,
.fchip:hover,
.htab:hover,
.dtab:hover,
.rchip:hover,
.pick:hover,
.ic:hover,
.salir:hover,
.vistabtn:hover,
.themebtn:hover,
.hlp-navbtn:hover,
.ordena .o:hover,
.mc-cerrar:hover{
  color:var(--brandink);
  border-color:rgba(11,135,147,.5);
  background:rgba(11,135,147,.055);
}
.fchip.on,
.htab.on,
.dtab.on,
.pick.on,
.ordena .o.on,
.hlp-navbtn.on{
  color:#fff;
  border-color:var(--brand);
  background:var(--brand);
  box-shadow:0 4px 12px rgba(11,135,147,.14);
}

/* Campos: silenciosos en reposo, claros al editar. */
input[type=text],
input[type=search],
input[type=email],
input[type=number],
input[type=password],
select,
textarea,
.search,
#inteligencia .bisearchinput,
#inteligencia .bimarketsearch{
  color:var(--ink);
  background:var(--panel);
  border-color:var(--line);
  box-shadow:inset 0 1px 1px rgba(16,42,67,.025);
}
input:focus,
select:focus,
textarea:focus,
.search:focus,
#inteligencia .bisearchinput:focus,
#inteligencia .bimarketsearch:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:var(--sentica-focus);
}

/* Tablas y listas: lectura más limpia sin cambiar densidad. */
table{border-color:var(--line)}
th{
  color:var(--muted);
  background:var(--panel2);
  border-color:var(--line);
}
td{border-color:var(--line)}
tbody tr:hover td{background:rgba(11,135,147,.035)}
.pulsoitem,
.pvlist,
.pv,
.atk,
.qp-row{border-color:var(--line)}

/* Estados y avisos comparten tono y contraste. */
.activef,
.qp-warn,
.irev,
.binote{
  color:var(--amber);
  background:var(--amberbg);
  border-color:rgba(155,107,19,.28);
}
.err{
  color:var(--red);
  background:var(--redbg);
  border-color:rgba(179,72,67,.3);
}
.qp-big{
  color:var(--good);
  background:var(--goodbg);
  border-color:rgba(8,122,88,.25);
}

/* Informe empresarial: integra la pieza nueva en el mismo lenguaje. */
#inteligencia .bihero{
  border-left-color:var(--brand);
  background:var(--card);
}
#inteligencia .bishare,
#inteligencia .biexpandbtn{
  color:#fff;
  border-color:var(--brand);
  background:var(--brand);
  box-shadow:none;
}
#inteligencia .bishare:hover,
#inteligencia .biexpandbtn:hover{background:var(--brandink)}
#inteligencia .bimarketmode.on,
#inteligencia .bimarketmode:hover{
  color:#fff;
  border-color:var(--brand);
  background:var(--brand);
}
#inteligencia .bimarketresult:hover,
#inteligencia .bimarketresult:focus{
  border-color:var(--brand);
  background:rgba(11,135,147,.045);
}

/* Tipografía de interfaz: neutraliza las capas históricas que alternaban
   Fraunces, Georgia e Inter dentro de una misma pantalla. Se excluyen
   deliberadamente las piezas editoriales y las previsualizaciones documentales. */
#cpvApp .bar h2,
#cpvApp .hero .hs b,
#cpvApp .vhead h3,
#cpvApp .vcard .big,
#cpvApp .mapcard h4,
#cpvApp .panel h2,
#cpvApp .kpi .v,
#cpvApp .dtitle,
#cpvApp #dtTitle,
#cpvApp .edq,
#cpvApp .pulsohd,
#cpvApp .navttl,
#cpvApp .stc-brand-txt b,
#cpvApp .stc-foot-brand b,
#cpvApp .htab b,
#cpvApp .item .obj,
#cpvApp .item .amount,
#cpvApp .item .amount-sec{
  font-family:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif!important;
  font-style:normal;
}
#cpvApp .bar h2,
#cpvApp .vhead h3,
#cpvApp .mapcard h4,
#cpvApp .panel h2,
#cpvApp .edq,
#cpvApp .pulsohd{font-weight:750}

/* Ficha de licitación: una sola jerarquía y un solo lenguaje de enlaces. */
#cpvApp .item{
  background:var(--card);
  border-color:var(--line);
}
#cpvApp .item .org-top{
  color:var(--ink2);
  font-size:13px;
  line-height:1.35;
}
#cpvApp .item .obj{
  color:var(--ink);
  font-size:14.5px;
  font-weight:700;
  line-height:1.42;
  letter-spacing:-.005em;
  margin:4px 0 7px;
}
#cpvApp .item .amount{
  color:var(--brandink);
  font-size:16px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  line-height:1.25;
}
#cpvApp .item .amount-sec{
  color:var(--muted);
  font-size:12.5px;
  font-weight:700;
}
#cpvApp .item .imeta,
#cpvApp .item .imeta2{
  color:var(--muted);
  line-height:1.45;
}
#cpvApp .item .imeta b,
#cpvApp .item .imeta2 b{color:var(--ink2)}
#cpvApp .item > .iact{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px 17px;
  margin-top:11px;
  padding-top:9px;
  border-top:1px solid rgba(16,42,67,.075);
}
#cpvApp .item > .iact > a,
#cpvApp .item > .iact > .doclink{
  margin-left:0;
  color:var(--brand);
  font-family:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:12.5px;
  font-weight:700;
  line-height:1.35;
  text-decoration:none;
}
#cpvApp .item > .iact > a:hover,
#cpvApp .item > .iact > .doclink:hover{
  color:var(--brandink);
  text-decoration:underline;
  text-underline-offset:3px;
}
#cpvApp .item > .iact > .disabled{
  color:var(--ink3);
  cursor:default;
  text-decoration:none;
}
#cpvApp .istatus{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  font-family:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

/* Dos vistas heredaban topes de 760/840 px y dejaban media pantalla vacía.
   Se equilibran sin ensanchar cada ficha: dos columnas en escritorio y una
   sola cuando ya no hay espacio suficiente. */
#inicio .ini-wrap{
  width:100%;
  max-width:none;
}
#inicio .ini-sub{max-width:78ch}
#inicio .ini-steps{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
#inicio .ini-card{
  min-width:0;
  min-height:94px;
}
#guardadas .gl-list{
  width:100%;
  max-width:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
#guardadas .gl-list .item{
  min-width:0;
  margin-bottom:0;
}

/* Accesibilidad visual sin cambiar la navegación existente. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

@media print{
  body{background:#fff}
  .stc-header,
  .modenav,
  .vcard,
  .mapcard,
  .kpi,
  .panel,
  .item{box-shadow:none}
}

@media(max-width:1050px){
  #inicio .ini-steps,
  #guardadas .gl-list{grid-template-columns:1fr}
}
