[hidden]{ display:none !important; }
:root{
  --c-bg:#f0f0ee;
  --c-superficie:#ffffff;
  --c-pill:#ededed;
  --c-borde:#e2e2df;
  --c-borde-fuerte:#d4d4d0;
  --c-texto:#111827;
  --c-texto-sec:#374151;
  --c-texto-ter:#5b6270;
  --c-texto-cuat:#5b6270;
  --c-azul:#EE7919;
  --c-azul-oscuro:#C2600F;
  --c-azul-claro:#F5A356;
  --c-azul-tenue:#FDF0E4;
  --c-texto-sobre-naranja:#1a1006;
  --c-esmeralda:#16a34a;
  --c-esmeralda-2:#15803d;
  --c-esmeralda-tenue:#f0fdf4;
  --c-rubi:#dc2626;
  --c-rubi-tenue:#fef2f2;
  --c-rubi-texto:#b91c1c;
  --c-ambar:#c2410c;
  --c-ambar-tenue:#fff7ed;
  --sombra-suave:0 1px 2px rgba(20,20,20,.04), 0 10px 28px rgba(20,20,20,.06);
  --sombra-flotante:0 2px 6px rgba(20,20,20,.05), 0 16px 36px rgba(20,20,20,.08);
  --radio-lg:20px;
  --radio-md:14px;
  --radio-sm:10px;
  --radio-pill:999px;
  --resorte:cubic-bezier(.32,.72,0,1);
  --vidrio-fondo:rgba(255,255,255,.55);
  --vidrio-fondo-hover:rgba(255,255,255,.8);
  --vidrio-borde:rgba(255,255,255,.6);
  --vidrio-fondo-solido:rgba(255,255,255,.88);
  --fuente: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --fuente-display: var(--fuente);
  --fs-2xs:9.5px;
  --fs-xs:10px;
  --fs-sm:10.5px;
  --fs-md:11px;
  --fs-lg:12px;
  --fs-xl:14px;
  --fs-seccion:12.5px;
  --sp-1:4px;  --sp-2:8px;  --sp-3:12px;  --sp-4:16px;  --sp-5:24px;
  --fila-py:6px;  --fila-px:8px;
}
[data-theme="dark"]{
  --c-bg:#161615;
  --c-superficie:#1e1e1d;
  --c-pill:#282827;
  --c-borde:#333331;
  --c-borde-fuerte:#3f3f3d;
  --c-texto:#f2f2f0;
  --c-texto-sec:#c2c2be;
  --c-texto-ter:#9a9a95;
  --c-texto-cuat:#9a9a95;
  --c-azul:#F5A356;
  --c-azul-oscuro:#EE7919;
  --c-azul-claro:#F8C189;
  --c-azul-tenue:#3A2414;
  --c-esmeralda-2:#4ade80;
  --c-esmeralda-tenue:#122a1a;
  --c-rubi:#f87171;
  --c-rubi-tenue:#301616;
  --c-rubi-texto:#f87171;
  --c-ambar:#fb923c;
  --c-ambar-tenue:#2b1c0d;
  --vidrio-fondo:rgba(255,255,255,.08);
  --vidrio-fondo-hover:rgba(255,255,255,.16);
  --vidrio-borde:rgba(255,255,255,.14);
  --vidrio-fondo-solido:rgba(30,30,29,.88);
}
[data-theme="dark"] .feedback-ok{ color:#4ade80; }
[data-theme="dark"] .feedback-warn{ color:#f87171; }
[data-theme="dark"] .stat-tile.mejor .stat-value,
[data-theme="dark"] .stat-tile.ahorro .stat-value,
[data-theme="dark"] .veredicto-total-valor{ color:#4ade80; }
[data-theme="dark"] .input-proveedor{ background:rgba(255,255,255,.06) !important; }
[data-theme="dark"] table.item-matrix th, [data-theme="dark"] table.item-matrix td{ border-bottom-color:rgba(255,255,255,.07); }
[data-theme="dark"] table.item-matrix thead th{ background:rgba(255,255,255,.05); }
[data-theme="dark"] .pin-btn{ background:rgba(255,255,255,.08); }
[data-theme="dark"] .pin-btn:hover{ background:rgba(255,255,255,.18) !important; }
.pin-btn:focus-visible{ opacity:1; }
[data-theme="dark"] .mini-bar-track{ background:rgba(255,255,255,.08); }
[data-theme="dark"] .chart-track{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.09); }
[data-theme="dark"] .chart-hero{ background:rgba(255,255,255,.03); border-color:rgba(255,255,255,.07); }
[data-theme="dark"] table.comparativa thead th{ background:rgba(255,255,255,.05); }
[data-theme="dark"] table.comparativa tbody tr{ border-top-color:rgba(255,255,255,.07); }
[data-theme="dark"] .resumen-chip, [data-theme="dark"] .directorio-panel, [data-theme="dark"] .directorio-item,
[data-theme="dark"] .criterio-item, [data-theme="dark"] .feedback-info{ background:rgba(255,255,255,.04); }
[data-theme="dark"] .criterio-item:hover, [data-theme="dark"] .donut-legend-item:hover,
[data-theme="dark"] .donut-legend-item.chart-hover-active{ background:rgba(255,255,255,.06); }
[data-theme="dark"] .donut-wrap{ background:rgba(255,255,255,.025); border-color:rgba(255,255,255,.07); }
[data-theme="dark"] .wizard-step:hover{ background:rgba(255,255,255,.06); }
[data-theme="dark"] .sticky-header-group{ background:linear-gradient(var(--c-bg) 60%, transparent); }
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html, body{ overflow-x:hidden; overflow-x:clip; }
html{ scroll-padding-top:var(--alto-encabezado, 0px); }
html.modal-abierto{ overflow:hidden; }
html.modal-abierto-con-barra{ scrollbar-gutter:stable; }
body{
  margin:0;
  min-height:100vh;
  font-family:var(--fuente);
  color:var(--c-texto);
  background:
    radial-gradient(125% 125% at 50% -50%, rgba(238,121,25,.16) 40%, transparent 100%),
    var(--c-bg);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  transition:background-color .25s ease, color .25s ease;
}
[data-theme="dark"] body{
  background:
    radial-gradient(125% 125% at 50% -50%, rgba(238,121,25,.12) 40%, transparent 100%),
    var(--c-bg);
  background-attachment:fixed;
}
h1,h2,h3{ font-family:var(--fuente-display); letter-spacing:-.01em; margin:0; font-weight:600; }
p{ margin:0; }
button{ font-family:inherit; }
input,textarea,select{ font-family:inherit; color:var(--c-texto); }
.tabular{ font-variant-numeric: tabular-nums; font-feature-settings:"tnum" 1; }
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:var(--c-borde-fuerte); border-radius:10px; }
::-webkit-scrollbar-thumb:hover{ background:var(--c-texto-ter); }
:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; border-radius:6px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.saltar-contenido{
  position:fixed; left:12px; top:-64px; z-index:10200; padding:10px 16px; border-radius:var(--radio-pill);
  background:var(--c-superficie); color:var(--c-texto); box-shadow:var(--sombra-flotante);
  font-size:var(--fs-md); font-weight:600; text-decoration:none; transition:top .2s var(--resorte);
}
.saltar-contenido:focus{ top:12px; }
@media print{ .saltar-contenido{ display:none; } }
[role="dialog"][tabindex="-1"]:focus, h1[tabindex="-1"]:focus{ outline:none; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
@media (prefers-reduced-transparency: reduce){
  .topbar-brand, .home-nav > .topbar-nav-center, .topbar > .topbar-nav-center,
  .topbar-actions, .topbar-dropdown, .topbar-avatar-dropdown,
  .btn-vidrio, .icon-btn, .theme-toggle-global-btn{
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    background:var(--c-superficie) !important;
  }
}
.vidrio{
  background:var(--c-superficie);
  border:1px solid var(--c-borde);
  border-radius:var(--radio-lg);
  box-shadow:var(--sombra-suave);
}
.sticky-header-group{ position:sticky; top:0; z-index:200; animation:aparecerOpacidad .5s ease both; padding:20px 20px 0; background:linear-gradient(var(--c-bg) 60%, transparent); }
#app-root > .sticky-header-group{ top:calc(-1 * var(--encabezado-oculto, 0px)); background:linear-gradient(var(--c-bg) calc(100% - 14px), transparent); }
@media (max-width:900px){
  .sticky-header-group, #app-root > .sticky-header-group{ position:relative; top:0; }
}
.topbar{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px;
  max-width:1360px; margin:0 auto;
  padding:0;
}
.topbar:has(> .topbar-account-slot){
  grid-template-columns:auto 1fr; max-width:none; padding-right:calc(var(--ancho-cuenta, 340px) + 28px);
}
.topbar:has(> .topbar-account-slot) > .topbar-actions{ justify-self:center; }
.topbar-brand{
  display:flex; align-items:center; justify-content:center; flex:none; justify-self:start;
  height:56px; padding:0 24px; border-radius:var(--radio-pill);
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde), var(--sombra-pill,var(--sombra-suave));
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  border:none; cursor:pointer; transition:transform .2s var(--resorte);
}
.topbar-brand:hover{ transform:translateY(-1px); }
.topbar-brand:active{ transform:translateY(0) scale(.97); transition-duration:.12s; }
.logo-img{ height:28px; width:auto; display:block; }
.topbar-tagline{ display:none; }
.topbar-nav-center{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center;
}
.home-nav > .topbar-nav-center, .topbar > .topbar-nav-center{
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-radius:var(--radio-pill); padding:8px 10px; justify-self:center;
}
.home-nav > .topbar-nav-center{ max-width:920px; }
.topbar-nav-center .btn-sm{ padding:12px 20px; font-size:var(--fs-md); font-weight:600; }
@media (min-width:901px) and (max-width:1500px){
  .topbar .topbar-nav-center{ gap:4px; }
  .topbar .topbar-nav-center .btn-sm{ padding:8px 9px; font-size:var(--fs-sm); }
  .topbar > .topbar-nav-center{ padding:8px 8px; }
  .topbar > .topbar-brand{ padding:0 18px; }
  .topbar .nav-item-icono{ width:16px; height:16px; }
  .topbar .nav-item-chevron{ margin-left:-3px; }
}
.topbar-nav-center .btn-sm.activo{
  background:var(--c-azul); color:var(--c-texto-sobre-naranja); box-shadow:0 2px 10px rgba(238,121,25,.35);
  border-color:transparent;
}
.topbar-dropdown-item.activo{ background:var(--c-azul-tenue); color:var(--c-naranja-texto); font-weight:600; }
.topbar-navgroup{ position:relative; }
@keyframes menuAparecer{ from{ opacity:0; transform:translateY(-6px) scale(.96); } to{ opacity:1; transform:none; } }
.topbar-dropdown{
  position:absolute; top:calc(100% + 8px); left:0; min-width:220px;
  background:var(--vidrio-fondo-hover); box-shadow:inset 0 0 0 1px var(--vidrio-borde), var(--sombra);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-radius:var(--radio-md);
  padding:6px; z-index:80; display:none;
}
.topbar-navgroup.abierto .topbar-dropdown{ display:block; animation:menuAparecer .22s var(--resorte) both; transform-origin:top left; }
.nav-item-chevron{ display:inline-flex; flex:none; opacity:.55; margin-left:-2px; transition:transform .25s var(--resorte); }
.nav-item-chevron svg{ width:11px; height:11px; display:block; }
.topbar-navgroup.abierto .nav-item-chevron{ transform:rotate(180deg); opacity:.9; }
.nav-item-icono{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:22px; height:22px; border-radius:999px;
  background:var(--c-bg); color:var(--c-texto-sec);
  transition:background .25s var(--resorte), color .25s var(--resorte);
}
.nav-item-icono svg{ width:12px; height:12px; display:block; }
.nav-item-btn.activo .nav-item-icono{ background:rgba(255,255,255,.28); color:#fff; }
.topbar-dropdown-item{
  display:flex; align-items:center; gap:9px; width:100%; padding:9px 11px; border-radius:var(--radio-sm);
  background:none; border:none; text-align:left; cursor:pointer; font-size:var(--fs-md); color:var(--c-texto);
  font-family:inherit; white-space:nowrap;
  transition:background .2s var(--resorte), transform .2s var(--resorte);
}
.topbar-dropdown-item:hover{ background:var(--c-bg); transform:translateX(2px); }
.topbar-dropdown-item:active{ transform:translateX(2px) scale(.97); transition-duration:.12s; }
.topbar-dropdown-divider{ height:1px; background:var(--c-borde); margin:6px 2px; }
.topbar-account-slot{ display:flex; align-items:center; gap:8px; }
.topbar-account{ position:relative; flex:none; }
.indicador-db-local{
  display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-sm); font-weight:600;
  color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); padding:5px 10px; border-radius:999px; white-space:nowrap;
}
.cargues-estado-badge-error{ color:var(--c-rubi-texto) !important; border-color:rgba(185,28,28,.4) !important; }
.theme-toggle-global-btn{
  flex:none; width:44px; height:44px; border-radius:999px; border:1px solid transparent;
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  cursor:pointer; font-size:13px; display:flex; align-items:center; justify-content:center;
  font-family:inherit; transition:transform .2s var(--resorte);
}
.theme-toggle-global-btn:hover{ background:var(--vidrio-fondo-hover); transform:translateY(-1px) rotate(-12deg) scale(1.06); }
.theme-toggle-global-btn:active{ transform:translateY(0) scale(.95); transition-duration:.12s; }
.theme-toggle-global-btn svg{ width:17px; height:17px; display:block; }
.home-nav > .topbar-account-slot, .topbar > .topbar-account-slot{ justify-self:end; }
.topbar > .topbar-account-slot{
  position:fixed; top:34px; right:32px; z-index:210; margin:0;
}
.topbar-account-chip{
  display:flex; align-items:center; gap:9px; flex:none;
  height:44px; padding:4px 16px 4px 4px; border-radius:999px; border:none; cursor:pointer;
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  font-family:inherit; transition:transform .2s var(--resorte);
}
.topbar-account-chip:hover{ background:var(--vidrio-fondo-hover); transform:translateY(-1px); }
.topbar-account-chip:active{ transform:translateY(0) scale(.97); transition-duration:.12s; }
.topbar-account-nombre{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); white-space:nowrap; max-width:120px; overflow:hidden;  }
@media (max-width:860px){
  .topbar-account-nombre{ display:none; }
  .topbar-account-chip{ padding:4px; }
}
.topbar-avatar-btn{
  width:36px; height:36px; border-radius:999px; flex:none;
  background:linear-gradient(180deg,var(--c-azul-claro),var(--c-azul) 65%,var(--c-azul-oscuro)); color:var(--c-texto-sobre-naranja);
  font-weight:700; font-size:var(--fs-sm); letter-spacing:-.02em; display:flex; align-items:center; justify-content:center;
  font-family:inherit; box-shadow:0 1px 1px rgba(194,96,15,.25), 0 6px 14px -6px rgba(194,96,15,.55);
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.topbar-avatar-dropdown{
  position:absolute; top:calc(100% + 8px); right:0; min-width:230px;
  background:var(--vidrio-fondo-hover); box-shadow:inset 0 0 0 1px var(--vidrio-borde), var(--sombra);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-radius:var(--radio-md);
  padding:8px; z-index:80; display:none;
}
.topbar-account.abierto .topbar-avatar-dropdown{ display:block; animation:menuAparecer .22s var(--resorte) both; transform-origin:top right; }
.topbar-avatar-info{ padding:8px 11px 10px; }
.topbar-avatar-info .nombre{ display:block; font-size:var(--fs-md); font-weight:600; color:var(--c-texto); }
.topbar-avatar-info .rol{ display:block; font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:2px; text-transform:capitalize; }
#login-screen, #config-screen{
  position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(620px 440px at 16% 12%, rgba(238,121,25,.16), transparent 60%),
    radial-gradient(700px 520px at 88% 92%, rgba(238,121,25,.09), transparent 60%),
    #121212;
  padding:20px;
}
#login-screen{ justify-content:center; padding-left:min(58vw, 860px); }
.login-scene-wrap{
  position:absolute; left:0; top:0; width:60vw; height:100%; max-width:900px;
  overflow:hidden;
}
.login-scene-wrap spline-viewer{
  position:absolute; top:50%; left:50%; width:122%; height:122%;
  transform:translate(-50%,-50%);
}
@media (max-width:920px){
  #login-screen{ justify-content:center; padding-left:20px; }
  .login-scene-wrap{ display:none; }
}
#login-screen.login-sin-escena{ padding-left:20px; }
#login-screen.login-sin-escena .login-scene-wrap{ display:none; }
.login-card{
  position:relative; width:100%; max-width:380px; border-radius:28px;
  background:linear-gradient(160deg, rgba(255,255,255,.1), rgba(255,255,255,.03));
  backdrop-filter:saturate(180%) blur(22px); -webkit-backdrop-filter:saturate(180%) blur(22px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 30px 80px rgba(0,0,0,.55), 0 4px 18px rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.08);
  padding:38px 30px 32px; display:flex; flex-direction:column; align-items:center;
  opacity:0; transform:translateY(14px) scale(.97);
  animation:login-card-entrar .55s var(--resorte) forwards;
}
@keyframes login-card-entrar{ to{ opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce){ .login-card{ animation:none; opacity:1; transform:none; } }
.login-logo-badge{
  display:inline-flex; align-items:center; justify-content:center; margin-bottom:20px;
  padding:14px 20px; border-radius:16px;
  background:linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.02));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 8px 22px rgba(0,0,0,.35);
}
.login-logo-badge img{ height:26px; width:auto; display:block; }
.login-title{ font-family:var(--fuente-display); font-size:15px; font-weight:600; letter-spacing:-.01em; color:#fff; margin-bottom:4px; text-align:center; }
.login-sub{ font-size:var(--fs-sm); color:#9ca3af; margin-bottom:24px; text-align:center; }
.login-form-inner{ width:100%; display:flex; flex-direction:column; gap:10px; }
#login-screen .login-input, #config-screen .login-input{
  width:100%; padding:12px 16px; border-radius:12px; border:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.06); color:#fff; font-size:var(--fs-md); font-family:inherit;
  text-align:center; transition:background .2s ease, border-color .2s ease;
}
#login-screen .login-input::placeholder, #config-screen .login-input::placeholder{ color:#8b93a1; }
#login-screen .login-input:focus, #config-screen .login-input:focus{ outline:2px solid rgba(238,121,25,.55); outline-offset:1px; background:rgba(255,255,255,.08); border-color:rgba(238,121,25,.4); }
#login-screen #login-usuario, #login-screen #login-setup-usuario, #login-screen #login-setup-nombre{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.5-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:16px 16px; padding-left:42px; padding-right:42px;
}
#login-screen #login-password, #login-screen #login-setup-password{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:16px 16px; padding-left:42px; padding-right:42px;
}
.campo-password{ position:relative; width:100%; }
.campo-password > input{ width:100%; padding-right:42px; }
.toggle-password-btn{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  background:none; border:none; border-radius:8px; cursor:pointer; padding:0;
  color:var(--c-texto-ter);
}
.toggle-password-btn svg{ width:17px; height:17px; display:block; }
.toggle-password-btn:hover{ color:var(--c-texto); background:var(--vidrio-fondo-hover); }
#login-screen .toggle-password-btn, #config-screen .toggle-password-btn{ color:#8b93a1; }
#login-screen .toggle-password-btn:hover, #config-screen .toggle-password-btn:hover{ color:#fff; background:rgba(255,255,255,.08); }
.login-input:-webkit-autofill,
.login-input:-webkit-autofill:hover,
.login-input:-webkit-autofill:focus,
.login-input:-webkit-autofill:active{
  -webkit-text-fill-color:#fff !important;
  caret-color:#fff;
  -webkit-box-shadow:0 0 0px 1000px #2a2a2a inset !important;
  box-shadow:0 0 0px 1000px #2a2a2a inset !important;
  transition:background-color 9999s ease-in-out 0s;
}
.login-input:autofill{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  caret-color:#fff;
  -webkit-box-shadow:0 0 0px 1000px #2a2a2a inset !important;
  box-shadow:0 0 0px 1000px #2a2a2a inset !important;
}
.login-error{ font-size:var(--fs-sm); color:#f87171; text-align:left; margin:-2px 0 0; }
.login-btn{
  width:100%; padding:12px; border-radius:999px; border:none; cursor:pointer;
  background:rgba(255,255,255,.1); color:#fff; font-weight:500; font-size:var(--fs-md); font-family:inherit;
  transition:background .2s ease, transform .2s var(--resorte); margin-top:2px;
}
.login-btn:hover{ background:rgba(255,255,255,.18); transform:translateY(-1px); }
.login-btn:active{ transform:translateY(0) scale(.97); transition-duration:.12s; }
.login-btn-primary{ color:var(--c-texto-sobre-naranja); font-weight:600; background:linear-gradient(180deg,#F5A356,#EE7919 65%,#C2600F); box-shadow:0 1px 1px rgba(194,96,15,.3),0 6px 16px -6px rgba(194,96,15,.6); }
.login-btn-primary:hover{ background:linear-gradient(180deg,#F7AE68,#F0852A 65%,#C9661A); transform:translateY(-2px); box-shadow:0 2px 2px rgba(194,96,15,.35),0 14px 26px -8px rgba(194,96,15,.65); }
.login-hint{ font-size:var(--fs-sm); color:#9ca3af; margin-top:16px; text-align:center; line-height:1.55; }
.login-divider{ width:100%; height:1px; background:rgba(255,255,255,.1); margin:6px 0; border:none; }
.login-users-note{ font-size:var(--fs-sm); color:#6b7280; text-align:center; margin-top:14px; }
.login-users-note button{ background:none; border:none; color:#F5A356; cursor:pointer; font-size:var(--fs-sm); font-family:inherit; padding:0; text-decoration:underline; }
.login-verificando{
  width:100%; min-height:150px; display:flex; align-items:center; justify-content:center; gap:10px;
  font-size:var(--fs-md); color:#9ca3af;
}
.login-spinner{
  flex:none; width:16px; height:16px; border-radius:50%;
  border:2px solid rgba(255,255,255,.14); border-top-color:#F5A356;
  animation:login-girar .8s linear infinite;
}
@keyframes login-girar{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .login-spinner{ animation-duration:2.4s; } }
.login-aviso{
  width:100%; margin:0 0 14px; padding:10px 14px; border-radius:12px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
  font-size:var(--fs-sm); line-height:1.5; color:#e5e7eb; text-align:left;
}
.login-btn-microsoft{
  width:100%; display:flex; align-items:center; justify-content:center; gap:10px;
  padding:11px 16px; border-radius:999px; background:#2f2f2f; color:#fff;
  border:1px solid rgba(255,255,255,.12); font-size:var(--fs-md); font-weight:600; text-decoration:none;
  box-shadow:0 1px 1px rgba(0,0,0,.25), 0 6px 16px -8px rgba(0,0,0,.6);
  transition:background .2s ease, transform .2s var(--resorte), border-color .2s ease;
}
.login-btn-microsoft svg{ width:18px; height:18px; flex:none; }
.login-btn-microsoft:hover{ background:#3a3a3a; border-color:rgba(255,255,255,.2); transform:translateY(-1px); }
.login-btn-microsoft:active{ transform:scale(.97); transition-duration:.12s; }
.login-btn-microsoft:focus-visible{ outline:2px solid rgba(238,121,25,.7); outline-offset:2px; }
.login-btn-microsoft.cargando{ pointer-events:none; opacity:.75; }
.login-separador{
  width:100%; display:flex; align-items:center; gap:12px; margin:16px 0 14px;
  font-size:var(--fs-sm); color:#9ca3af; white-space:nowrap;
}
.login-separador::before, .login-separador::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.1); }
.login-enlace{
  background:none; border:none; padding:4px 2px; cursor:pointer; font:inherit; font-size:var(--fs-sm);
  color:#F5A356; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(245,163,86,.45);
  border-radius:6px;
}
.login-enlace:hover{ color:#fbbf7a; text-decoration-color:currentColor; }
.login-enlace:focus-visible{ outline:2px solid rgba(238,121,25,.7); outline-offset:2px; }
.login-texto{ width:100%; margin:0 0 16px; font-size:var(--fs-md); line-height:1.55; color:#d1d5db; text-align:left; }
.login-texto strong{ color:#fff; font-weight:600; }
.login-requisitos{ font-size:var(--fs-sm); line-height:1.5; color:#9ca3af; margin:-2px 0 0; text-align:left; }
.login-confirmacion{
  width:100%; display:flex; gap:12px; align-items:flex-start; margin:0 0 18px; padding:14px;
  border-radius:14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); text-align:left;
}
.login-confirmacion svg{
  flex:none; width:26px; height:26px; padding:5px; border-radius:50%; margin-top:1px;
  background:rgba(34,197,94,.16); stroke:#4ade80; stroke-width:2.4; fill:none; stroke-linecap:round; stroke-linejoin:round;
}
.login-confirmacion p{ margin:0; font-size:var(--fs-md); line-height:1.55; color:#d1d5db; }
.login-confirmacion strong{ color:#fff; }
#login-screen #login-olvide-usuario{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.5-7 8-7s8 3 8 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:16px 16px; padding-left:42px; padding-right:42px;
}
#login-screen #login-definir-nueva, #login-screen #login-definir-confirmar{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b93a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:16px 16px; padding-left:42px; padding-right:42px;
}
.admin-estado-clave{ display:block; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-ter); white-space:nowrap; }
.admin-estado-clave.solicitud{ color:var(--c-naranja-texto); font-weight:600; }
.admin-enlace{
  background:none; border:none; padding:0 2px; margin-left:4px; cursor:pointer; font:inherit; font-weight:500;
  color:var(--c-texto-sec); text-decoration:underline; text-underline-offset:2px;
}
.admin-enlace:hover{ color:var(--c-texto); }
.admin-badge-solicitudes{
  display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px;
  margin-left:6px; border-radius:999px; background:var(--c-azul); color:var(--c-texto-sobre-naranja); font-size:var(--fs-sm); font-weight:700;
  line-height:1; font-variant-numeric:tabular-nums; vertical-align:1px;
}
.clave-temporal-caja{
  display:flex; align-items:center; gap:12px; margin-top:16px; padding:14px 16px;
  border-radius:var(--radio-sm); background:var(--c-pill); border:1px solid var(--c-borde);
}
.clave-temporal-valor{
  flex:1; min-width:0; font-family:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;
  font-size:15px; font-weight:600; letter-spacing:.06em; color:var(--c-texto); user-select:all; overflow-wrap:anywhere;
}
.clave-temporal-notas{ margin:14px 0 0; padding-left:18px; font-size:var(--fs-md); line-height:1.55; color:var(--c-texto-sec); }
.clave-temporal-notas li + li{ margin-top:4px; }
.admin-ms-estado{ display:block; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.admin-ms-estado.vinculada{ color:var(--c-esmeralda-2); }
.login-mayus{ display:flex; align-items:center; gap:6px; font-size:var(--fs-sm); color:#F5A356; margin:-2px 0 0; }
.login-mayus svg{ width:13px; height:13px; fill:currentColor; flex:none; }
#login-screen .login-input[aria-invalid="true"]{ border-color:rgba(248,113,113,.55); }
.toggle-password-btn:focus-visible{ outline:2px solid rgba(238,121,25,.7); outline-offset:1px; }
@media (max-width:920px){
  #login-screen .login-input{ font-size:var(--fs-lg); }
  #login-screen .toggle-password-btn{ width:40px; height:40px; right:2px; }
}
#home-screen{ position:relative; height:100vh; overflow:hidden; background:#111; }
.home-video-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.home-overlay{
  position:relative; z-index:10; display:flex; flex-direction:column; height:100vh; overflow:hidden;
  background:
    linear-gradient(0deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.3) 34%, transparent 60%),
    radial-gradient(900px 500px at 8% 100%, rgba(238,121,25,.1), transparent 60%);
}
[data-theme="dark"] .home-overlay{
  background:
    linear-gradient(0deg, rgba(22,22,21,.82) 0%, rgba(22,22,21,.4) 34%, transparent 60%),
    radial-gradient(900px 500px at 8% 100%, rgba(238,121,25,.14), transparent 60%);
}
.home-nav{ flex:none; position:relative; z-index:20; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; padding:16px 20px 0; }
.home-nav > .topbar-brand{ justify-self:start; background:var(--vidrio-fondo-solido) !important; }
.home-nav .topbar-dropdown, .home-nav .topbar-avatar-dropdown{
  background:var(--vidrio-fondo-solido) !important;
}
.home-nav .theme-toggle-global-btn,
.home-nav .topbar-account-chip,
.home-nav .paleta-abrir-btn{
  background:var(--vidrio-fondo-solido) !important;
}
.home-nav .theme-toggle-global-btn:hover,
.home-nav .topbar-account-chip:hover,
.home-nav .paleta-abrir-btn:hover{
  background:var(--vidrio-fondo-hover) !important;
}
.home-logo-btn{ height:56px; padding:0 24px; }
.home-logo-btn .logo-img{ height:28px; }
.home-nav > .topbar-nav-center{
  background:none !important; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  padding:0; gap:14px; max-width:none;
}
.home-nav .nav-item-btn{
  flex-direction:column; gap:7px; min-width:86px;
  padding:17px 18px 15px; border-radius:22px;
  background:var(--vidrio-fondo-solido) !important;
  box-shadow:inset 0 0 0 1px var(--vidrio-borde), var(--sombra-suave);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.home-nav .nav-item-icono{ width:38px; height:38px; background:var(--c-bg); }
.home-nav .nav-item-icono svg{ width:18px; height:18px; }
.home-nav .nav-item-label{ font-size:var(--fs-sm); font-weight:600; white-space:normal; text-align:center; line-height:1.25; max-width:82px; }
.home-nav .nav-item-chevron{ display:none; }
.home-nav .nav-item-btn:hover{ transform:translateY(-3px); box-shadow:inset 0 0 0 1px var(--vidrio-borde), var(--sombra-flotante); }
.home-nav .nav-item-btn:active{ transform:translateY(-1px) scale(.97); transition-duration:.12s; }
.home-nav .nav-item-btn.activo{ background:var(--c-azul) !important; box-shadow:0 8px 20px -6px rgba(238,121,25,.5); }
.home-nav .nav-item-btn.activo .nav-item-label{ color:#fff; }
@media (max-width:640px){
  .home-nav .nav-item-btn{ min-width:70px; padding:13px 12px 11px; border-radius:18px; }
  .home-nav .nav-item-icono{ width:32px; height:32px; }
  .home-nav .nav-item-icono svg{ width:16px; height:16px; }
  .home-nav .nav-item-label{ font-size:var(--fs-sm); max-width:64px; }
}
.home-hero{
  position:relative; flex:1; min-height:0; display:flex; align-items:flex-end; padding:24px 24px 28px;
}
.home-hero-inner{ max-width:380px; }
.home-eyebrow{ display:block; font-size:var(--fs-sm); font-weight:600; color:var(--c-naranja-texto); margin-bottom:10px; letter-spacing:.1px; }
.home-headline{ font-size:1.25rem; line-height:1.16; font-weight:500; color:var(--c-texto); letter-spacing:-.01em; margin-bottom:10px; }
.home-sub{ font-size:var(--fs-md); color:var(--c-texto-cuat); margin-bottom:18px; }
.home-cta{
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(180deg, var(--c-azul-claro), var(--c-azul) 65%, var(--c-azul-oscuro));
  color:var(--c-texto-sobre-naranja); border:1px solid transparent;
  font-size:var(--fs-md); font-weight:600; padding:13px 24px; border-radius:999px; cursor:pointer;
  font-family:inherit; box-shadow:0 1px 1px rgba(194,96,15,.3), 0 8px 20px -6px rgba(194,96,15,.55);
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.home-cta:hover{ transform:translateY(-2px); box-shadow:0 2px 2px rgba(194,96,15,.35), 0 16px 30px -8px rgba(194,96,15,.65); }
.home-cta:active{ transform:translateY(0) scale(.97); transition-duration:.12s; }
.home-cta-arrow{ display:inline-block; transition:transform .2s var(--resorte); }
.home-cta:hover .home-cta-arrow{ transform:translateX(3px); }
.home-eyebrow, .home-headline, .home-sub, .home-cta{
  opacity:0; transform:translateY(16px);
  animation:home-hero-entrar .6s var(--resorte) forwards;
}
.home-eyebrow{ animation-delay:.05s; }
.home-headline{ animation-delay:.15s; }
.home-sub{ animation-delay:.25s; }
.home-cta{ animation-delay:.35s; }
@keyframes home-hero-entrar{ to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .home-eyebrow, .home-headline, .home-sub, .home-cta{ animation:none; opacity:1; transform:none; }
}
.clients-banner{
  position:relative; flex:none; padding:12px 0 18px;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.clients-label{
  display:block; text-align:center; font-size:var(--fs-sm); font-weight:600; letter-spacing:.3px;
  color:var(--c-texto-ter); margin-bottom:10px; text-transform:uppercase;
}
.clients-track{ display:flex; width:max-content; animation:clients-scroll 34s linear infinite; }
.clients-banner:hover .clients-track, .clients-banner:focus-within .clients-track, .clients-banner.pausado .clients-track{ animation-play-state:paused; }
.clients-cabecera{ display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:10px; }
.clients-cabecera .clients-label{ margin-bottom:0; }
.clients-pausa{
  display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; padding:0; flex:none;
  border:1px solid var(--c-borde); border-radius:var(--radio-pill); background:var(--c-superficie);
  color:var(--c-texto-ter); font-size:var(--fs-2xs); line-height:1; cursor:pointer;
  transition:color .15s ease, border-color .15s ease;
}
.clients-pausa:hover{ color:var(--c-texto); border-color:var(--c-borde-fuerte); }
.clients-set{ display:flex; align-items:center; flex:none; }
.client-item{ display:flex; align-items:center; gap:12px; padding:0 34px; flex:none; }
.client-item svg{ width:24px; height:24px; color:#F5A356; flex:none; transition:color .25s ease, transform .25s var(--resorte); }
.client-item img{ height:30px; width:auto; max-width:150px; object-fit:contain; flex:none; transition:transform .25s var(--resorte); }
.client-item:hover svg{ color:#EE7919; transform:scale(1.35); }
.client-item:hover img{ transform:scale(1.35); }
.client-item span{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto-sec); white-space:nowrap; }
@keyframes clients-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .clients-track{ animation:none; } .clients-pausa{ display:none; } }
@media (max-width:640px){
  .home-nav{ padding:14px 14px 0; }
  .home-headline{ font-size:1.1rem; }
  .home-hero{ padding:18px 20px 22px; }
  .home-hero-inner{ max-width:300px; }
  .client-item{ padding:0 24px; }
  .client-item img{ height:24px; }
  .client-item span{ font-size:var(--fs-sm); }
}
.topbar-actions{
  display:flex; align-items:center; gap:6px 10px; flex-wrap:wrap;
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-radius:var(--radio-md);
  padding:8px 14px; row-gap:4px;
}
.topbar-subactions{
  display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px 8px;
  max-width:1360px; margin:6px auto 0; padding:0 2px;
}
.topbar-subactions .btn{ opacity:.82; }
.topbar-subactions .btn:hover{ opacity:1; }
@media (max-width:900px){
  .topbar, .home-nav{
    display:flex; flex-direction:column; align-items:center; gap:10px;
    max-width:100%; width:100%; padding:0 4px;
  }
  .topbar:has(> .topbar-account-slot){
    max-width:100%; padding-right:0;
  }
  .topbar-actions{
    flex-direction:column; align-items:stretch; width:100%;
  }
  .topbar .topbar-nav-center{
    max-width:100%; width:100%;
  }
  .topbar .topbar-nav-center .btn-sm{ width:100%; justify-content:center; }
  .topbar .topbar-navgroup{ width:100%; }
  .topbar .topbar-navgroup-btn{ width:100%; justify-content:center; }
  .topbar .topbar-dropdown{ left:0; right:0; width:100%; min-width:0; }
  .topbar > .topbar-account-slot{ position:static; margin:0; }
  .topbar-account-slot{ justify-content:center; }
  .topbar-subactions{ justify-content:center; max-width:100%; width:100%; }
}
.topbar-nav-center .topbar-menu-movil-btn{ display:none; }
.topbar-menu-movil-actual{ font-weight:600; color:var(--c-texto); }
@media (max-width:900px){
  .topbar .topbar-nav-center .topbar-menu-movil-btn{ display:flex; align-items:center; justify-content:center; gap:6px; width:100%; }
  .topbar .topbar-nav-center:not(.menu-movil-abierto) > :not(.topbar-menu-movil-btn){ display:none; }
}
.wizard-nav{ display:flex; justify-content:center; padding:12px 20px 18px; max-width:1100px; margin:0 auto; }
.wizard-steps{
  display:flex; align-items:center; gap:4px; max-width:none;
  background:var(--c-pill); border-radius:var(--radio-pill); padding:5px;
}
.wizard-step{
  display:flex; flex-direction:row; align-items:center; gap:8px;
  flex:none; position:relative; background:none; border:none; cursor:pointer;
  font-family:inherit; padding:8px 16px 8px 8px; color:inherit; border-radius:var(--radio-pill);
  transition:background .2s var(--resorte), box-shadow .2s var(--resorte), transform .2s var(--resorte);
}
.wizard-step:hover{ background:rgba(0,0,0,.04); }
.wizard-step:active{ transform:scale(.96); transition-duration:.12s; }
.wizard-step.activo{ background:var(--c-superficie); box-shadow:0 1px 2px rgba(0,0,0,.06), 0 4px 10px rgba(0,0,0,.08); }
.wizard-step.activo:hover{ background:var(--c-superficie); }
.wizard-step:not(:last-child)::after{ display:none; }
.wizard-step-circle{
  position:relative; z-index:1;
  width:22px; height:22px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:var(--fs-sm); font-weight:600;
  border:none; color:var(--c-texto-ter);
  background:var(--c-superficie);
  transition:background .2s var(--resorte), color .2s var(--resorte);
}
.bd-tab .wizard-step-circle{ font-size:var(--fs-md); background:transparent; }
.wizard-step.activo .wizard-step-circle{
  background:var(--c-azul); color:var(--c-texto-sobre-naranja);
}
.bd-tab.activo .wizard-step-circle{ background:transparent; }
.wizard-step.completado .wizard-step-circle{
  background:var(--c-azul-tenue); color:var(--c-naranja-texto);
}
.wizard-step-label{ font-size:var(--fs-md); font-weight:500; color:var(--c-texto-ter); text-align:center; transition:color .2s ease; white-space:nowrap; }
.wizard-step.activo .wizard-step-label{ color:var(--c-texto); }
.wizard-panel{ animation:aparecer .4s ease both; }
.wizard-actions{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:32px; padding-top:22px; border-top:1px solid var(--c-borde); }
.campo-grupos{ display:flex; flex-direction:column; gap:24px; }
.campo-grupo:not(:last-child){ padding-bottom:24px; border-bottom:1px solid var(--c-borde); }
.campo-grupo-titulo{ display:block; font-size:var(--fs-sm); font-weight:600; text-transform:uppercase; letter-spacing:.7px; color:var(--c-naranja-texto); margin-bottom:12px; }
.campo-grupo-fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; }
.campo-grupo-fields .campo.full{ grid-column:1 / -1; }
.solpeds-multi{ margin-top:14px; }
.solpeds-multi-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.solped-chip{ display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); background:rgba(17,24,39,.05); border:1px solid var(--c-borde); border-radius:999px; padding:6px 12px; }
.solped-chip-tag{ font-size:var(--fs-sm); font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--c-naranja-texto); background:var(--c-azul-tenue); border-radius:999px; padding:2px 7px; }
.solpeds-multi-input input{ text-align:left; font-size:var(--fs-md); }
.info-preview{ max-width:780px; margin:18px auto 0; padding:18px 20px; border-radius:var(--radio-md); background:var(--c-azul-tenue); border:1px dashed var(--c-azul-claro); }
.preview-eyebrow{ display:block; font-size:var(--fs-sm); font-weight:600; text-transform:uppercase; letter-spacing:.6px; color:var(--c-naranja-texto); margin-bottom:12px; }
.preview-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; }
.preview-chip{ display:flex; align-items:flex-start; gap:10px; background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-md); padding:9px 12px; transition:transform .2s var(--resorte), box-shadow .2s var(--resorte); }
.preview-chip-full{ grid-column:1 / -1; }
.preview-chip:hover{ transform:translateY(-1px); box-shadow:var(--sombra-suave); }
.preview-chip-icon{
  flex:none; width:30px; height:30px; border-radius:9px; font-size:var(--fs-md);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(238,121,25,.14), rgba(194,96,15,.06));
  border:1px solid rgba(238,121,25,.22);
}
.preview-chip-text{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.preview-chip-label{ font-size:var(--fs-sm); font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--c-texto-ter); }
.preview-chip-value{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); overflow-wrap:anywhere; line-height:1.3; }
.campo-subgrupo{ margin-bottom:16px; padding-top:16px; border-top:1px solid var(--c-borde); }
.nombre-autocomplete + .campo-subgrupo{ padding-top:0; border-top:none; }
.campo-subgrupo-titulo{ display:block; font-size:var(--fs-sm); font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--c-naranja-texto); margin-bottom:9px; }
.campo-subgrupo-nota{ font-size:var(--fs-sm); color:var(--c-texto-ter); line-height:1.45; margin:0 0 10px; }
.cotizacion-adjunta-chip{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:var(--fs-sm);
  background:rgba(17,24,39,.05); border:1px solid var(--c-borde); border-radius:var(--radio-sm);
  padding:8px 10px;
}
.cotizacion-adjunta-nombre{ font-weight:600; color:var(--c-texto); white-space:normal; overflow-wrap:anywhere; max-width:220px; }
.cotizacion-resumen-auto{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; margin:0 0 10px; padding:10px 14px; border:1px solid var(--c-borde); border-radius:12px; background:var(--c-bg); font-size:var(--fs-md); }
.cotizacion-resumen-auto-datos, .cotizacion-resumen-auto-acciones{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; }
.cotizacion-revision-tabla.solo-pendientes tr.fila-mejor{ display:none; }
.cotizacion-confianza{ font-size:var(--fs-sm); padding:2px 8px; flex:0 0 auto; }
.cotizacion-adjunta-ia{ display:inline-block; font-size:var(--fs-sm); font-weight:700; color:var(--c-naranja-texto); background:rgba(37,99,235,.1); border-radius:999px; padding:1px 7px; }
.cotizacion-adjunta-conteo{ color:var(--c-texto-ter); flex:1; }
.spinner-sm{
  display:inline-block; width:12px; height:12px; border-radius:50%;
  border:2px solid var(--c-borde); border-top-color:var(--c-azul);
  animation:girar-spinner .7s linear infinite;
}
@keyframes girar-spinner{ to{ transform:rotate(360deg); } }
.modal-box.cotizacion-adjunta-modal{ max-width:min(1680px, 96vw); }
.cotizacion-revision-tabla{ table-layout:fixed; }
.cotizacion-revision-tabla input[data-fila-campo="descripcion"]{ text-align:left; }
.cotizacion-revision-toolbar{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.cotizacion-revision-progreso{ font-size:var(--fs-sm); color:var(--c-texto-sec); font-weight:600; }
.cotizacion-aviso-total{
  display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; font-size:var(--fs-sm); line-height:1.5;
  color:var(--c-rubi-texto); background:var(--c-rubi-tenue); border:1px solid rgba(220,38,38,.25);
  border-radius:var(--radio-sm); padding:10px 14px; margin-bottom:14px;
}
.cotizacion-preview-panel{
  display:flex; flex-direction:column; gap:10px;
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  border-radius:var(--radio-md); padding:14px;
}
.cotizacion-preview-header{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:var(--fs-md); font-weight:600; color:var(--c-texto); }
.cotizacion-preview-body{ min-height:200px; }
.cotizacion-preview-iframe{ width:100%; height:min(78vh, 900px); border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:#fff; }
.cotizacion-preview-tabla-wrap{ overflow:auto; max-height:min(78vh, 900px); border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); }
.cotizacion-preview-tabla{ border-collapse:collapse; font-size:var(--fs-sm); white-space:nowrap; }
.cotizacion-preview-tabla td{ padding:5px 9px; border-bottom:1px solid var(--c-borde); color:var(--c-texto-sec); }
.cotizacion-preview-tabla tr:first-child td{ font-weight:600; color:var(--c-texto); background:var(--vidrio-fondo); }
.rating-grid{ display:flex; flex-direction:column; gap:8px; }
.rating-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.rating-label{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.rating-stars{ display:inline-flex; gap:2px; flex:none; }
.rating-star{ border:none; background:none; padding:2px; font-size:var(--fs-lg); line-height:1; color:var(--c-borde); cursor:pointer; transition:color .15s ease, transform .1s ease; }
.rating-star:hover{ transform:scale(1.15); }
.rating-star.filled{ color:var(--c-azul); }
.prioridad-selector{ display:flex; align-items:center; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
.prioridad-label{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.directorio-panel{ margin-bottom:18px; background:rgba(17,24,39,.035); border:1px solid var(--c-borde); border-radius:var(--radio-md); padding:14px 18px; }
.directorio-panel summary{ cursor:pointer; font-size:var(--fs-md); font-weight:700; color:var(--c-texto-sec); list-style:none; display:flex; align-items:center; gap:7px; }
.directorio-panel summary::-webkit-details-marker{ display:none; }
.directorio-panel summary::before{ content:'▸'; display:inline-block; transition:transform .15s ease; font-size:var(--fs-sm); }
.directorio-panel[open] summary::before{ transform:rotate(90deg); }
.directorio-panel summary span{ color:var(--c-azul-claro); font-weight:800; }
#directorio-list{ margin-top:12px; display:flex; flex-direction:column; gap:6px; max-height:220px; overflow-y:auto; }
.directorio-item{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 11px; background:rgba(17,24,39,.035); border-radius:8px; font-size:var(--fs-sm); }
.directorio-actions{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.flow-connector{ display:flex; align-items:center; gap:14px; margin:6px 0 30px; }
.flow-connector-line{ flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--c-borde) 50%, transparent); }
.flow-connector-label{ flex:none; font-size:var(--fs-sm); font-weight:700; color:var(--c-azul-claro); text-align:center; }
.matrix-card-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.matrix-legend{ display:flex; gap:18px; flex-wrap:wrap; }
.legend-chip{ display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.legend-dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.legend-dot-verde{ background:linear-gradient(135deg,var(--c-esmeralda),var(--c-esmeralda-2)); }
.legend-dot-barra{ background:linear-gradient(135deg,var(--c-azul),var(--c-azul-claro)); border-radius:3px; width:13px; height:6px; }
@keyframes matrixMaximizarIn{
  from{ opacity:0; transform:scale(.94); }
  to{ opacity:1; transform:scale(1); }
}
.matrix-card-maximizada{
  position:fixed; inset:16px; z-index:9999; margin:0 !important; max-width:none;
  display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 24px 64px rgba(0,0,0,.4);
  animation:matrixMaximizarIn .32s var(--resorte) both;
}
.matrix-card-maximizada .matrix-card-toolbar{ flex:none; }
.matrix-card-maximizada #items-matrix-container{
  flex:1 1 auto; min-height:0; overflow:auto; text-align:center;
}
.matrix-card-maximizada .matrix-wrapper{ display:inline-block; margin:0 auto; text-align:left; }
.matrix-card-maximizada table.item-matrix{ width:auto; }
body.matrix-maximizada-activa{ overflow:hidden; }
body.matrix-maximizada-activa::before{
  content:''; position:fixed; inset:0; z-index:9998;
  background:rgba(10,10,10,.5); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
  animation:aparecer .22s ease both;
}
@media (max-width:640px){ .matrix-card-maximizada{ inset:8px; } }
.matrix-axis-add{
  display:none; position:absolute; z-index:2;
  width:32px; height:32px; border-radius:50%; padding:0; border:none;
  align-items:center; justify-content:center;
  font-size:13px; font-weight:700; line-height:1;
  background:var(--c-azul); color:var(--c-texto-sobre-naranja);
  box-shadow:0 4px 12px -2px rgba(238,121,25,.5);
  cursor:pointer;
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.matrix-axis-add:active{ transition-duration:.12s; }
.matrix-card-maximizada .matrix-axis-add{ display:flex; }
.matrix-axis-add-proveedor{ top:50%; right:14px; transform:translateY(-50%); }
.matrix-axis-add-proveedor:hover{ transform:translateY(-50%) scale(1.12); box-shadow:0 6px 16px -2px rgba(238,121,25,.6); }
.matrix-axis-add-proveedor:active{ transform:translateY(-50%) scale(.94); }
.matrix-axis-add-item{ bottom:14px; left:50%; transform:translateX(-50%); }
.matrix-axis-add-item:hover{ transform:translateX(-50%) scale(1.12); box-shadow:0 6px 16px -2px rgba(238,121,25,.6); }
.matrix-axis-add-item:active{ transform:translateX(-50%) scale(.94); }
@media (max-width:640px){
  .matrix-axis-add{ width:38px; height:38px; font-size:15px; }
  .matrix-axis-add-proveedor{ right:8px; }
  .matrix-axis-add-item{ bottom:8px; }
}
.resultado-card:not(:last-child){ margin-bottom:20px; }
@media (max-width:640px){
  .flow-connector-label{ font-size:var(--fs-sm); }
  .campo-grupo-fields{ gap:14px; }
}
.panel-intro{ display:flex; align-items:flex-start; gap:16px; margin-bottom:28px; }
.panel-intro-icon{
  flex:none; width:52px; height:52px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  font-size:18px;
  background:linear-gradient(135deg, rgba(238,121,25,.14), rgba(194,96,15,.06));
  border:1px solid rgba(238,121,25,.22);
}
.panel-intro-title{ font-size:var(--fs-xl); font-weight:800; letter-spacing:-.01em; margin:0 0 4px; }
.panel-intro-sub{ font-size:var(--fs-md); color:var(--c-texto-sec); max-width:540px; }
#meta-card{ max-width:780px; margin:0 auto; }
.campo-grupo-fields-id{ grid-template-columns:minmax(160px,1.2fr) minmax(200px,1.4fr) minmax(140px,.8fr); }
@media (max-width:640px){ .campo-grupo-fields-id{ grid-template-columns:1fr; } }
input[data-field="solped"]{ text-align:left; }
.ciudad-mapa-inline{
  margin-top:14px; height:280px; border-radius:var(--radio-md); overflow:hidden;
  border:1px solid var(--c-borde); position:relative;
}
.ciudad-mapa-inline .empty-hint{ height:100%; display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; background:rgba(17,24,39,.03); }
.ofertas-resumen{ display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.resumen-chip{ display:inline-flex; align-items:center; gap:7px; background:rgba(17,24,39,.05); border:1px solid var(--c-borde); border-radius:999px; padding:8px 15px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.resumen-chip strong{ color:var(--c-texto); font-variant-numeric:tabular-nums; }
.veredicto-banner{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  padding:22px 26px; border-radius:var(--radio-lg); margin-bottom:28px;
  background:linear-gradient(120deg, rgba(238,121,25,.1), rgba(22,163,74,.06));
  border:1px solid rgba(238,121,25,.22);
}
.veredicto-icon{
  flex:none; width:58px; height:58px; border-radius:18px;
  display:flex; align-items:center; justify-content:center; font-size:20px;
  background:linear-gradient(135deg, rgba(238,121,25,.16), rgba(194,96,15,.07));
  border:1px solid rgba(238,121,25,.25);
}
.veredicto-texto{ display:flex; flex-direction:column; gap:3px; flex:1; min-width:220px; }
.veredicto-label{ font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.8px; color:var(--c-azul-claro); font-weight:800; }
.veredicto-titulo{ font-size:var(--fs-xl); font-weight:800; line-height:1.3; }
.veredicto-sub{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.veredicto-total{ text-align:right; flex:none; }
.veredicto-total-label{ display:block; font-size:var(--fs-sm); color:var(--c-texto-ter); text-transform:uppercase; letter-spacing:.6px; font-weight:700; margin-bottom:2px; }
.veredicto-total-valor{ display:block; font-size:20px; font-weight:800; letter-spacing:-.02em; color:var(--c-esmeralda-2); }
@media (max-width:640px){
  .panel-intro{ gap:12px; margin-bottom:22px; }
  .panel-intro-icon{ width:42px; height:42px; font-size:var(--fs-xl); border-radius:13px; }
  .veredicto-banner{ flex-direction:column; align-items:flex-start; padding:18px 20px; }
  .veredicto-total{ text-align:left; }
}
@media (max-width:640px){
  .wizard-nav{ padding:12px 14px 13px; }
  .wizard-steps{ max-width:100%; }
  .wizard-step-label{ font-size:var(--fs-sm); }
  .wizard-step-circle{ width:26px; height:26px; font-size:var(--fs-sm); }
  .wizard-step:not(:last-child)::after{ top:13px; left:calc(50% + 15px); width:calc(100% - 30px); }
}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border-radius:999px; cursor:pointer;
  padding:9px 18px; font-size:var(--fs-md); font-weight:500;
  transition:transform .22s var(--resorte), box-shadow .22s var(--resorte), background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
  border:1px solid transparent;
}
.btn:active{ transform:scale(.96); transition-duration:.12s; }
.btn-primario{
  color:var(--c-texto-sobre-naranja);
  background:linear-gradient(180deg, var(--c-azul-claro), var(--c-azul) 65%, var(--c-azul-oscuro));
  border:1px solid transparent;
  box-shadow:0 1px 1px rgba(194,96,15,.25), 0 6px 16px -6px rgba(194,96,15,.5);
}
.btn-primario:hover{ transform:translateY(-2px); box-shadow:0 2px 2px rgba(194,96,15,.3), 0 14px 26px -8px rgba(194,96,15,.6); }
.btn-primario:active{ transform:translateY(0) scale(.96); }
.btn-terminar{
  color:#fff; font-weight:600;
  background:linear-gradient(180deg, #1e9e4f, var(--c-esmeralda-2) 65%, #166534);
  border:1px solid transparent;
  box-shadow:0 1px 1px rgba(21,128,61,.25), 0 6px 16px -6px rgba(21,128,61,.5);
}
.btn-terminar:hover{ transform:translateY(-2px); box-shadow:0 2px 2px rgba(21,128,61,.3), 0 14px 26px -8px rgba(21,128,61,.6); }
.btn-terminar:active{ transform:translateY(0) scale(.96); }
.btn-peligro{
  color:#fff; font-weight:600;
  background:linear-gradient(180deg, #f87171, var(--c-rubi) 65%, #b91c1c);
  border:1px solid transparent;
  box-shadow:0 1px 1px rgba(185,28,28,.25), 0 6px 16px -6px rgba(185,28,28,.5);
}
.btn-peligro:hover{ transform:translateY(-2px); box-shadow:0 2px 2px rgba(185,28,28,.3), 0 14px 26px -8px rgba(185,28,28,.6); }
.btn-peligro:active{ transform:translateY(0) scale(.96); }
.btn-vidrio{
  color:var(--c-texto-sec);
  background:var(--vidrio-fondo);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border:1px solid transparent;
  box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  padding:8px 12px;
}
table .btn-vidrio{ backdrop-filter:none; -webkit-backdrop-filter:none; }
.btn-vidrio:hover{ color:var(--c-texto); background:var(--vidrio-fondo-hover); transform:translateY(-1px); }
.btn-vidrio:active{ transform:translateY(0) scale(.97); }
.btn-vidrio.activo{ color:var(--c-ambar); background:var(--c-ambar-tenue); box-shadow:inset 0 0 0 1px var(--c-ambar); }
.btn-fantasma{
  color:var(--c-texto-ter);
  background:transparent; border:1px solid transparent;
}
.btn-fantasma:hover{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.btn-sm{ padding:7px 12px; font-size:var(--fs-sm); }
.btn:disabled{ opacity:.35; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.icon-btn{
  flex:none; width:26px; height:26px; border-radius:50%;
  border:1px solid var(--c-borde); background:var(--c-superficie);
  color:var(--c-texto-ter); display:flex; align-items:center; justify-content:center;
  font-size:var(--fs-md); line-height:1; cursor:pointer;
  transition:transform .2s var(--resorte), background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.icon-btn:hover{ background:var(--c-rubi-tenue); border-color:rgba(220,38,38,.35); color:var(--c-rubi); transform:translateY(-1px) scale(1.08); box-shadow:0 4px 10px -4px rgba(220,38,38,.35); }
.icon-btn:active{ transform:translateY(0) scale(.95); transition-duration:.12s; }
.icon-btn:disabled{ opacity:.3; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.icon-btn:disabled:hover{ background:var(--c-superficie); border-color:var(--c-borde); color:var(--c-texto-ter); }
.icon-btn-xs{ width:18px; height:18px; font-size:var(--fs-2xs); flex:none; }
.container{ max-width:1260px; margin:0 auto; padding:28px 28px 90px; }
#bd-main{ max-width:1260px; margin:0 auto; padding:28px 28px 90px; }
.pantalla-main{ max-width:2200px; margin:0 auto; padding:14px 20px 60px; }
#busc-main{ max-width:900px; margin:0 auto; padding:28px 28px 90px; }
.bd-panel{ animation:aparecer .4s ease both; margin-top:8px; }
.bd-search-bar{ margin-bottom:14px; }
.bd-paginacion{ display:flex; align-items:center; justify-content:center; gap:14px; margin:12px 0; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.bd-paginacion span{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.bd-search-bar input{ width:100%; max-width:480px; font-size:var(--fs-md); padding:10px 14px; }
table.item-matrix.bd-table td input{ width:100%; padding:5px 7px; text-overflow:ellipsis; }
table.item-matrix.bd-table .sticky-col{ min-width:110px; }
@media (min-width:641px){
  table.item-matrix.bd-table > thead > tr > th,
  table.item-matrix.bd-table > tbody > tr > td:not([colspan]){ white-space:nowrap; text-align:center; vertical-align:middle; }
  table.item-matrix.bd-table > tbody > tr > td.celda-larga,
  table.item-matrix.bd-table > tbody > tr > td.band-td-comentario{ white-space:normal; min-width:clamp(260px, 24vw, 460px); max-width:640px; text-align:center; line-height:1.45; }
  table.item-matrix.bd-table > tbody > tr > td{ padding-top:9px; padding-bottom:9px; }
}
.seccion{ margin-top:34px; animation:aparecer .5s ease both; }
.seccion-header{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.seccion-titulo{ display:flex; align-items:center; gap:10px; }
.seccion-eyebrow{ font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:1.4px; color:var(--c-texto-ter); font-weight:700; display:block; margin-bottom:3px; }
.seccion-titulo h2{ font-size:var(--fs-seccion); font-weight:700; }
.seccion-sub{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:4px; max-width:660px; }
.card{ padding:24px 26px; }
@keyframes aparecer{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@keyframes aparecerOpacidad{ from{ opacity:0; } to{ opacity:1; } }
.pantalla-fade{ animation:aparecerOpacidad .35s ease both; }
label.campo{ display:flex; flex-direction:column; gap:6px; font-size:var(--fs-sm); color:var(--c-texto-ter); font-weight:600; letter-spacing:.2px; }
label.campo-checkbox{ flex-direction:row; align-items:center; gap:8px; }
label.campo-checkbox input[type=checkbox]{ width:16px; height:16px; flex:none; order:-1; }
input[type=text], input[type=number], input[type=date], textarea, select{
  background:rgba(17,24,39,.05);
  border:1px solid var(--c-borde);
  border-radius:var(--radio-sm);
  padding:9px 11px;
  font-size:var(--fs-md);
  color:var(--c-texto);
  text-align:center;
  transition:border-color .15s ease, background .15s ease;
}
input::placeholder, textarea::placeholder{ color:var(--c-texto-ter); }
input:focus, textarea:focus, select:focus{ background:var(--c-superficie); border-color:rgba(238,121,25,.5); }
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active{
  -webkit-text-fill-color:var(--c-texto) !important;
  caret-color:var(--c-texto);
  -webkit-box-shadow:0 0 0px 1000px var(--c-superficie) inset !important;
  box-shadow:0 0 0px 1000px var(--c-superficie) inset !important;
  transition:background-color 9999s ease-in-out 0s;
}
input:autofill{
  color:var(--c-texto) !important;
  -webkit-text-fill-color:var(--c-texto) !important;
  caret-color:var(--c-texto);
  -webkit-box-shadow:0 0 0px 1000px var(--c-superficie) inset !important;
  box-shadow:0 0 0px 1000px var(--c-superficie) inset !important;
}
textarea{ resize:vertical; min-height:56px; font-size:var(--fs-md); line-height:1.5; }
select{ appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--c-texto-ter) 50%),linear-gradient(135deg,var(--c-texto-ter) 50%,transparent 50%); background-position:calc(100% - 16px) center, calc(100% - 11px) center; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:30px; }
select:disabled{ opacity:.5; }
.meta-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; }
.meta-grid .span-2{ grid-column:span 2; }
.proveedores-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:22px; }
.proveedor-card{
  position:relative;
  padding:22px 22px 24px;
  display:flex; flex-direction:column; gap:14px;
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.proveedor-card:hover{ transform:translateY(-2px); box-shadow:var(--sombra-flotante); }
.proveedor-card-header{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.quote-numero{
  font-size:var(--fs-sm); font-weight:700; letter-spacing:.6px; text-transform:uppercase; color:var(--c-naranja-texto);
  background:var(--c-azul-tenue); border-radius:var(--radio-pill); padding:4px 11px;
}
.input-proveedor{ width:100% !important; text-align:left !important; font-size:12.5px !important; font-weight:700; padding:10px 12px !important; background:rgba(17,24,39,.06) !important; }
.quote-meta-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; }
.quote-meta-grid.quote-meta-grid-condiciones{ margin-top:12px; padding-top:12px; border-top:1px dashed var(--c-borde); }
.quote-totals-grid{ display:grid; grid-template-columns:100px 100px; gap:14px; }
.quote-totals-grid input{ width:88px; padding:7px 8px; font-size:var(--fs-sm); }
.nombre-autocomplete{ position:relative; }
.autocomplete-suggerencias{
  position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:60;
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  box-shadow:var(--sombra-flotante,var(--sombra-suave)); max-height:230px; overflow-y:auto; padding:6px;
}
.autocomplete-item{
  display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%;
  padding:9px 10px; border:none; background:none; border-radius:8px; cursor:pointer;
  font-family:inherit; font-size:var(--fs-md); color:var(--c-texto); text-align:left;
}
.autocomplete-item:hover, .autocomplete-item.activa{ background:var(--c-azul-tenue); }
.autocomplete-item.activa{ box-shadow:inset 3px 0 0 var(--c-azul-oscuro); }
.consultar-solped-item{
  display:flex; flex-direction:column; gap:2px; width:100%; text-align:left;
  padding:10px 12px; border:1px solid var(--c-borde); border-radius:var(--radio-sm);
  background:var(--c-superficie); cursor:pointer; margin-bottom:6px; font-family:inherit;
}
.consultar-solped-item:hover{ background:var(--c-azul-tenue); border-color:var(--c-azul); }
.consultar-solped-item .csi-solped{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); }
.consultar-solped-item .csi-meta{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.autocomplete-nombre{ font-weight:600; white-space:normal; overflow-wrap:anywhere; min-width:0; flex:1 1 auto; }
.autocomplete-codigo{ font-size:var(--fs-sm); color:var(--c-texto-ter); font-weight:500; flex:0 1 auto; max-width:45%; white-space:normal; overflow-wrap:anywhere; }
.autocomplete-suggerencias-flotante{ position:fixed; top:0; left:0; right:auto; z-index:10000; }
.matrix-wrapper{ overflow-x:auto; border-radius:var(--radio-md); border:1px solid var(--c-borde); }
table.item-matrix{ width:100%; border-collapse:collapse; min-width:620px; font-size:var(--fs-md); }
table.item-matrix th, table.item-matrix td{ padding:7px 9px; text-align:left; vertical-align:middle; border-bottom:1px solid rgba(17,24,39,.06); }
table.item-matrix thead th{ background:rgba(17,24,39,.06); font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.3px; line-height:1.25; color:var(--c-texto-ter); font-weight:700; white-space:normal; }
table.item-matrix thead th .th-label{ margin-right:5px; }
table.item-matrix thead th .th-sort-btn{ display:inline-flex; align-items:center; gap:4px; background:none; border:none; padding:0; margin:0; font:inherit; text-transform:inherit; letter-spacing:inherit; color:inherit; cursor:pointer; }
table.item-matrix thead th .th-sort-btn:hover{ color:var(--c-texto); }
table.item-matrix thead th .th-sort-icon{ font-size:var(--fs-2xs); opacity:.7; }
table.item-matrix .sticky-col{ position:sticky; left:0; background:var(--c-superficie); z-index:2; min-width:230px; }
table.item-matrix td.sticky-col.sticky-col-elevada{ z-index:10; }
table.item-matrix td.sticky-col input{ font-weight:600; }
table.item-matrix td.sticky-col textarea{
  font-weight:600; resize:none; overflow:hidden; white-space:normal; word-break:break-word;
  line-height:1.3; display:block; font-family:inherit;
}
table.item-matrix td input, table.item-matrix td textarea{ width:100%; }
table.item-matrix td.qty-cell{ width:76px; }
table.item-matrix td.qty-cell input{ width:62px; }
table.item-matrix td.price-cell{ min-width:120px; position:relative; }
table.item-matrix td.price-cell input{ padding:8px 10px; font-size:var(--fs-md); font-weight:600; padding-right:26px; }
table.item-matrix td.price-cell.price-best input{ border-color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
table.item-matrix td.price-cell.price-forzado{ box-shadow:inset 0 0 0 1.5px var(--c-azul); border-radius:8px; }
.pin-btn{
  position:absolute; top:5px; right:5px; width:16px; height:16px; border-radius:50%;
  border:none; background:rgba(17,24,39,.09); color:var(--c-texto-ter);
  font-size:9px; line-height:1; display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0; opacity:0;
  transition:opacity .15s ease, background .2s ease, color .2s ease, transform .2s var(--resorte);
}
table.item-matrix td.price-cell:hover .pin-btn{ opacity:.85; }
.pin-btn:hover{ opacity:1 !important; background:rgba(17,24,39,.2); transform:scale(1.15); }
.pin-btn:active{ transform:scale(.93); transition-duration:.12s; }
.pin-btn.activo{ opacity:1; background:var(--c-azul); color:var(--c-texto-sobre-naranja); }
.price-rank{
  position:absolute; top:5px; left:5px; width:15px; height:15px; border-radius:50%;
  background:rgba(17,24,39,.08); color:var(--c-texto-ter);
  font-size:var(--fs-sm); font-weight:700; line-height:1; font-variant-numeric:tabular-nums;
  display:flex; align-items:center; justify-content:center; cursor:default;
}
[data-theme="dark"] .price-rank{ background:rgba(255,255,255,.08); }
.price-acuerdo-badge{
  position:absolute; bottom:5px; right:5px; width:15px; height:15px; border-radius:50%;
  background:rgba(17,24,39,.08); color:var(--c-texto-ter);
  font-size:9px; line-height:1; display:flex; align-items:center; justify-content:center;
  cursor:help;
}
[data-theme="dark"] .price-acuerdo-badge{ background:rgba(255,255,255,.08); }
.item-historial-btn{
  position:absolute; bottom:6px; right:6px; width:20px; height:20px; border-radius:50%;
  border:none; background:rgba(17,24,39,.08); color:var(--c-texto-ter);
  font-size:var(--fs-2xs); line-height:1; display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0;
  transition:transform .2s var(--resorte), background .2s ease, color .2s ease;
}
.item-historial-btn:hover{ background:var(--c-azul-tenue); color:var(--c-naranja-texto); transform:scale(1.12); }
.item-historial-btn:active{ transform:scale(.94); transition-duration:.12s; }
[data-theme="dark"] .item-historial-btn{ background:rgba(255,255,255,.08); }
table.item-matrix td.row-actions{ text-align:center; white-space:nowrap; }
.mini-bar-track{ height:4px; border-radius:999px; background:rgba(17,24,39,.08); margin-top:5px; overflow:hidden; }
.mini-bar{ height:100%; border-radius:999px; background:linear-gradient(90deg,var(--c-azul),var(--c-azul-claro)); transition:width .4s ease; }
.mini-bar.best{ background:linear-gradient(90deg,var(--c-esmeralda),var(--c-esmeralda-2)); }
.price-history-badge{
  display:inline-flex; align-items:center; gap:3px; margin-top:5px;
  font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-ter);
  background:rgba(17,24,39,.05); border:1px solid var(--c-borde);
  border-radius:999px; padding:2px 7px; cursor:help; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
table.item-matrix td.price-cell.price-sobreprecio input{
  border-color:var(--c-ambar); background:var(--c-ambar-tenue);
}
.price-history-badge.sobreprecio{
  color:var(--c-ambar); font-weight:700;
  background:var(--c-ambar-tenue); border-color:var(--c-ambar);
}
button.hist-compra-badge{
  font:inherit; font-size:var(--fs-sm); cursor:pointer; white-space:normal; flex-wrap:wrap; text-align:left; line-height:1.3;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
button.hist-compra-badge:hover{ border-color:var(--c-borde-fuerte); color:var(--c-texto-sec); }
button.hist-compra-badge:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.hist-compra-fecha{ font-weight:500; color:var(--c-texto-ter); }
.hist-compra-delta{ font-weight:700; font-variant-numeric:tabular-nums; }
.hist-compra-delta.sube{ color:var(--c-ambar); }
.hist-compra-delta.baja{ color:var(--c-esmeralda-2); }
button.hist-compra-badge.en-uso{ color:var(--c-naranja-texto); border-style:dashed; border-color:var(--c-azul-claro); background:var(--c-azul-tenue); }
table.item-matrix td.price-cell.price-ultima-compra input{ border-style:dashed; border-color:var(--c-azul-claro); }
.stats-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:22px; }
.stat-tile{ padding:18px 20px; display:flex; flex-direction:column; gap:5px; }
button.stat-tile{ text-align:left; cursor:pointer; font:inherit; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
button.stat-tile:hover{ transform:translateY(-1px); box-shadow:var(--sombra-md,0 6px 18px rgba(0,0,0,.08)); }
button.stat-tile.activo{ border-color:var(--c-azul); box-shadow:0 0 0 2px var(--c-azul-tenue); }
.stat-tile-kpi{ flex-direction:row; align-items:center; gap:14px; }
.stat-tile-kpi-icono{ display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; font-size:var(--fs-xl); flex:none; }
.stat-tile-kpi-texto{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.stat-tile-kpi-valorfila{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.stat-tile-kpi-pct{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-ter); background:var(--c-pill); padding:2px 8px; border-radius:999px; white-space:nowrap; }
.stat-tile-gauge{ width:100%; flex-direction:column; align-items:center; justify-content:flex-start; text-align:center; gap:0; }
.stat-tile-gauge .stat-value{ font-size:17px; margin-top:-10px; }
.stat-tile-gauge .stat-label{ margin-top:3px; }
.kpi-gauge{ display:block; margin:0 auto; }
.kpi-gauge-track{ fill:none; stroke:var(--c-borde); stroke-width:10; stroke-linecap:round; }
.kpi-gauge-fill{ fill:none; stroke-width:10; stroke-linecap:round; transition:stroke-dashoffset .9s var(--resorte); }
.stat-tile-kpi-icono-centrado{ font-size:20px; line-height:1; margin-bottom:8px; transition:transform .3s var(--resorte); }
.stat-tile-centrado{ align-items:center; text-align:center; }
#bandeja-kpis .stat-tile{
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-lg);
  box-shadow:var(--sombra-suave); padding:22px 20px;
}
#bandeja-kpis.bandeja-kpis-primera-vez button.stat-tile{
  opacity:0; transform:translateY(10px) scale(.97);
  animation:bandeja-kpi-entrar .5s var(--resorte) forwards;
}
#bandeja-kpis.bandeja-kpis-primera-vez button.stat-tile:nth-of-type(1){ animation-delay:.03s; }
#bandeja-kpis.bandeja-kpis-primera-vez button.stat-tile:nth-of-type(2){ animation-delay:.08s; }
#bandeja-kpis.bandeja-kpis-primera-vez button.stat-tile:nth-of-type(3){ animation-delay:.13s; }
#bandeja-kpis.bandeja-kpis-primera-vez button.stat-tile:nth-of-type(4){ animation-delay:.18s; }
@keyframes bandeja-kpi-entrar{ to{ opacity:1; transform:translateY(0) scale(1); } }
#bandeja-kpis button.stat-tile:hover{
  transform:translateY(-3px); box-shadow:var(--sombra-flotante); border-color:rgba(238,121,25,.3);
}
#bandeja-kpis button.stat-tile:hover .stat-tile-kpi-icono-centrado{ transform:scale(1.12) rotate(-4deg); }
#bandeja-kpis button.stat-tile:hover .kpi-gauge-fill{ filter:brightness(1.12); }
#bandeja-kpis button.stat-tile.activo{
  border-color:var(--c-azul); box-shadow:0 0 0 2px var(--c-azul-tenue), var(--sombra-flotante);
}
[data-theme="dark"] #bandeja-kpis .stat-tile{ box-shadow:inset 0 1px 0 rgba(255,255,255,.04), var(--sombra-suave); }
[data-theme="dark"] #bandeja-kpis button.stat-tile:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,.06), var(--sombra-flotante); }
#bandeja-kpis .stat-tile-gauge-oscuro{
  background:#1a1a19; border:1px solid rgba(255,255,255,.08); box-shadow:0 14px 32px rgba(0,0,0,.22);
  position:relative; overflow:hidden;
}
#bandeja-kpis .stat-tile-gauge-oscuro::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.34;
  background:linear-gradient(135deg, var(--tile-glow) 0%, transparent 62%);
}
#bandeja-kpis .stat-tile-gauge-oscuro > *{ position:relative; z-index:1; }
#bandeja-kpis .stat-tile-gauge-oscuro .stat-label{ color:rgba(255,255,255,.6); }
#bandeja-kpis .stat-tile-gauge-oscuro .kpi-gauge-track{ stroke:rgba(255,255,255,.14); }
#bandeja-kpis .stat-tile-glow-ambar{ --tile-glow:var(--c-ambar); }
#bandeja-kpis .stat-tile-glow-azul{ --tile-glow:var(--c-azul); }
#bandeja-kpis .stat-tile-glow-verde{ --tile-glow:var(--c-esmeralda-2); }
#bandeja-kpis .stat-tile-glow-gris{ --tile-glow:#9ca3af; }
#bandeja-kpis .stat-tile-gauge-oscuro.activo{
  border-color:var(--tile-glow); box-shadow:0 0 0 2px color-mix(in srgb, var(--tile-glow) 45%, transparent), 0 14px 32px rgba(0,0,0,.22);
}
@media (prefers-reduced-motion: reduce){
  .kpi-gauge-fill{ transition:none; }
  #bandeja-kpis button.stat-tile{ animation:none; opacity:1; transform:none; }
  #bandeja-kpis button.stat-tile:hover .stat-tile-kpi-icono-centrado{ transform:none; }
}
.avatar-chip{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:20px; height:20px; border-radius:50%; margin-right:8px; vertical-align:middle;
  background:var(--c-pill); color:var(--c-texto-sec); font-size:var(--fs-sm); font-weight:700; letter-spacing:.2px;
}
.aprobaciones-filtros{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px; }
.aprobaciones-filtros select{ font-size:var(--fs-md); padding:8px 10px; max-width:220px; }
.facetas{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-4px 0 14px; }
.facetas:empty{ display:none; }
.facetas-lbl{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.faceta{ position:relative; }
.faceta-chip{
  display:inline-flex; align-items:center; gap:4px; max-width:min(320px, 80vw); font:inherit; font-size:var(--fs-sm); color:var(--c-texto-sec);
  padding:5px 12px; border-radius:var(--radio-pill); border:1px dashed var(--c-borde-fuerte); background:var(--c-superficie); cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.faceta-chip strong{ overflow-wrap:anywhere; color:var(--c-texto); }
.faceta-chip:hover{ border-color:var(--c-azul); }
.faceta-chip.activa{ border-style:solid; border-color:var(--c-azul); background:var(--c-azul-tenue); color:var(--c-naranja-texto); }
.faceta-chip.activa strong{ color:var(--c-naranja-texto); }
.faceta-flecha{ font-size:var(--fs-2xs); opacity:.7; }
.faceta-panel{
  position:absolute; top:calc(100% + 6px); left:0; z-index:60; width:min(360px, calc(100vw - 32px));
  display:flex; flex-direction:column; gap:8px; padding:10px; border-radius:var(--radio-md, 12px);
  background:var(--c-superficie); border:1px solid var(--c-borde); box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.faceta-modo{ display:flex; gap:4px; padding:3px; border-radius:var(--radio-pill); background:var(--c-pill); }
.faceta-modo-btn{ flex:1 1 0; font:inherit; font-size:var(--fs-sm); padding:5px 8px; border:0; border-radius:var(--radio-pill); background:none; color:var(--c-texto-sec); cursor:pointer; }
.faceta-modo-btn.activo{ background:var(--c-superficie); color:var(--c-texto); font-weight:700; box-shadow:0 1px 3px rgba(0,0,0,.12); }
.faceta-buscar{ font:inherit; font-size:var(--fs-sm); padding:6px 10px; border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); color:var(--c-texto); }
.faceta-lista{ list-style:none; margin:0; padding:0; max-height:260px; overflow-y:auto; overscroll-behavior:contain; }
.faceta-opcion{ display:flex; align-items:center; gap:8px; padding:5px 6px; border-radius:var(--radio-sm); font-size:var(--fs-sm); color:var(--c-texto); cursor:pointer; }
.faceta-opcion:hover{ background:var(--c-azul-tenue); }
.faceta-opcion input{ flex:0 0 auto; margin:0; accent-color:var(--c-azul); }
.faceta-opcion-texto{ flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
.faceta-opcion.marcada .faceta-opcion-texto{ font-weight:600; }
.faceta-sin-dato{ font-style:italic; color:var(--c-texto-ter); }
.faceta-n{ flex:0 0 auto; font-size:var(--fs-2xs); color:var(--c-texto-ter); }
.faceta-vacio{ padding:6px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.faceta-pie{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.hist-filtro-fecha-label{ display:flex; align-items:center; gap:6px; font-size:var(--fs-sm); color:var(--c-texto-sec); font-weight:600; }
.hist-filtro-fecha-label input[type="date"]{ font-size:var(--fs-md); padding:7px 9px; border-radius:var(--radio-sm); border:1px solid var(--c-borde); background:var(--c-superficie); color:var(--c-texto); }
#aprobaciones-table-wrap table.item-matrix th,
#aprobaciones-table-wrap table.item-matrix td{ text-align:center; }
#hist-kpis .stat-tile{ align-items:center; text-align:center; }
#hist-table-wrap table.item-matrix th, #hist-table-wrap table.item-matrix td,
#hist-tabla-usuarios table.item-matrix th, #hist-tabla-usuarios table.item-matrix td,
#hist-analisis-precios-wrap table.item-matrix th, #hist-analisis-precios-wrap table.item-matrix td{ text-align:center; }
#bandeja-table-wrap table.item-matrix th,
#bandeja-table-wrap table.item-matrix td{ text-align:center; }
#acuerdos-table-wrap table.item-matrix th,
#acuerdos-table-wrap table.item-matrix td{ text-align:center; }
.band-td-centro-costo, .band-th-centro-costo{ min-width:320px; }
td.band-td-aprobacion{ min-width:175px; }
#bandeja-table-wrap .matrix-wrapper{ container-type:inline-size; }
.band-td-centro-costo, .band-th-centro-costo{ min-width:clamp(140px, 100cqi - 760px, 320px); }
td.band-td-aprobacion{ min-width:clamp(150px, 100cqi - 740px, 175px); }
.aprobaciones-overview-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; align-items:stretch; }
.aprobaciones-overview-grid > .card.vidrio{ display:flex; flex-direction:column; }
.aprobaciones-overview-grid > .card.vidrio > *:last-child{ flex:1; display:flex; flex-direction:column; justify-content:center; }
.aprobaciones-overview-card-header{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
.aprobaciones-chip-suave{ font-size:var(--fs-sm); font-weight:700; color:var(--c-naranja-texto); background:var(--c-azul-tenue); padding:4px 10px; border-radius:999px; white-space:nowrap; }
.linea-chart-svg{ width:100%; height:auto; overflow:visible; }
.linea-chart-label{ fill:var(--c-texto-ter); font-size:var(--fs-2xs); font-weight:600; font-family:var(--fuente); }
.hist-grafica-precio{ margin:var(--sp-2) 0 var(--sp-3); }
.hist-grafica-leyenda{ font-size:var(--fs-sm); color:var(--c-texto-sec); font-variant-numeric:tabular-nums; }
.hist-grafica-propio, .hist-grafica-otros{ display:inline-block; width:8px; height:8px; border-radius:50%; vertical-align:middle; margin-right:2px; }
.hist-grafica-propio{ background:var(--c-azul); }
.hist-grafica-otros{ background:var(--c-texto-ter); opacity:0.55; }
.donut-seg-aprobaciones{ cursor:pointer; transition:stroke-width .15s ease; }
button.donut-legend-item{ border:none; background:none; font:inherit; text-align:left; width:100%; cursor:pointer; }
.actividad-item{ display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; border:none; background:none; font:inherit; text-align:left; cursor:pointer; padding:10px 8px; border-radius:var(--radio-sm); transition:background .15s ease; }
.actividad-item:hover{ background:var(--c-azul-tenue); }
.actividad-item + .actividad-item{ border-top:1px solid var(--c-borde); }
.actividad-item-avatar-info{ display:flex; align-items:center; min-width:0; }
.actividad-item-info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.actividad-item-solped{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); white-space:normal; overflow-wrap:anywhere; }
.actividad-item-meta{ font-size:var(--fs-sm); color:var(--c-texto-ter); white-space:normal; overflow-wrap:anywhere; }
#aprobaciones-main{
  background:
    radial-gradient(560px circle at 12% -5%, var(--c-azul-tenue) 0%, transparent 62%),
    radial-gradient(480px circle at 100% 15%, var(--c-esmeralda-tenue) 0%, transparent 58%);
  background-repeat:no-repeat;
}
.gerencia-cards-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
button.gerencia-card{
  display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; font:inherit; border:none; cursor:pointer;
  flex:0 0 258px; width:258px; max-width:100%;
  padding:22px 20px; border-radius:var(--radio-lg);
  background:var(--vidrio-fondo); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--vidrio-borde); box-shadow:var(--sombra-suave);
  opacity:0; transform:translateY(10px) scale(.98);
  animation:gerencia-card-entrar .5s var(--resorte) forwards;
  transition:transform .25s var(--resorte), box-shadow .25s ease, border-color .2s ease, background .2s ease;
}
@keyframes gerencia-card-entrar{ to{ opacity:1; transform:translateY(0) scale(1); } }
button.gerencia-card:not(:disabled):hover{ transform:translateY(-3px); box-shadow:var(--sombra-flotante); background:var(--vidrio-fondo-hover); }
button.gerencia-card:disabled{ cursor:default; opacity:.75; }
button.gerencia-card.activo{ border-color:var(--c-azul); box-shadow:0 0 0 2px var(--c-azul-tenue), var(--sombra-flotante); }
button.gerencia-card.prioritaria{ box-shadow:inset 0 0 0 1px rgba(238,121,25,.32), var(--sombra-suave); }
button.gerencia-card.prioritaria:not(:disabled):hover{ box-shadow:inset 0 0 0 1px rgba(238,121,25,.4), var(--sombra-flotante); }
button.gerencia-card.prioritaria.activo{ box-shadow:0 0 0 2px var(--c-azul-tenue), var(--sombra-flotante); }
[data-theme="dark"] button.gerencia-card.prioritaria{ box-shadow:inset 0 0 0 1px rgba(245,163,86,.28), var(--sombra-suave); }
.gerencia-card-icono{ display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:14px; background:var(--c-pill); font-size:15px; flex:none; transition:background .2s ease; }
button.gerencia-card.prioritaria .gerencia-card-icono{ background:var(--c-azul-tenue); }
.gerencia-card-total{ display:flex; flex-direction:column; align-items:center; gap:3px; }
.gerencia-card-total-valor{ display:block; font-family:var(--fuente-display); font-size:20px; font-weight:600; line-height:1; color:var(--c-texto); }
.gerencia-card-total-label{ display:block; font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.5px; color:var(--c-texto-ter); font-weight:700; }
.gerencia-card-nombre{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); white-space:normal; overflow-wrap:anywhere; max-width:100%; }
.gerencia-card-subtitulo{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:-6px; }
.gerencia-card-barra{ display:flex; width:100%; height:8px; border-radius:999px; overflow:hidden; background:var(--c-pill); }
.gerencia-card-barra span{ height:100%; transition:width .6s var(--resorte); }
.gerencia-card-leyenda{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 12px; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.gerencia-card-leyenda span{ display:inline-flex; align-items:center; gap:5px; }
.gerencia-card-leyenda i{ width:8px; height:8px; border-radius:50%; display:inline-block; }
#bandeja-gerencia-cards.gerencia-cards-grid{ gap:8px; margin-top:26px; animation:aparecer .5s ease both; }
#bandeja-gerencia-cards button.gerencia-card{ flex-basis:150px; width:150px; padding:12px 10px; gap:6px; }
#bandeja-gerencia-cards .gerencia-card-icono{ width:30px; height:30px; border-radius:10px; font-size:var(--fs-md); }
#bandeja-gerencia-cards .gerencia-card-total{ gap:1px; }
#bandeja-gerencia-cards .gerencia-card-total-valor{ font-size:13px; }
#bandeja-gerencia-cards .gerencia-card-total-label{ font-size:var(--fs-sm); }
#bandeja-gerencia-cards .gerencia-card-nombre{ font-size:var(--fs-sm); }
#bandeja-gerencia-cards .gerencia-card-subtitulo{ font-size:var(--fs-sm); margin-top:-3px; }
#bandeja-gerencia-cards .gerencia-card-barra{ height:5px; }
#bandeja-gerencia-cards .gerencia-card-leyenda{ font-size:var(--fs-sm); gap:4px 8px; }
#bandeja-gerencia-cards .gerencia-card-leyenda i{ width:6px; height:6px; }
#aprobaciones-main .card.vidrio,
#aprobaciones-main .stat-tile-kpi{
  background:var(--vidrio-fondo);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid var(--vidrio-borde);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), var(--sombra-suave);
  transition:transform .25s var(--resorte), box-shadow .25s var(--resorte), background .2s ease;
}
#aprobaciones-main .card.vidrio:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,.55), var(--sombra-flotante); }
#aprobaciones-main button.stat-tile-kpi{
  opacity:0; transform:translateY(10px) scale(.98); animation:gerencia-card-entrar .5s var(--resorte) forwards;
}
#aprobaciones-main button.stat-tile-kpi:hover{ background:var(--vidrio-fondo-hover); box-shadow:inset 0 1px 0 rgba(255,255,255,.55), var(--sombra-flotante); }
[data-theme="dark"] #aprobaciones-main .card.vidrio,
[data-theme="dark"] #aprobaciones-main .stat-tile-kpi{ box-shadow:inset 0 1px 0 rgba(255,255,255,.06), var(--sombra-suave); }
[data-theme="dark"] #aprobaciones-main .card.vidrio:hover,
[data-theme="dark"] #aprobaciones-main button.stat-tile-kpi:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,.09), var(--sombra-flotante); }
#aprobaciones-main .card.vidrio:has(#aprobaciones-table-wrap){
  background:var(--c-superficie); backdrop-filter:none; -webkit-backdrop-filter:none;
}
.aprobaciones-filtros-activos{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  padding:10px 14px; margin:-6px 0 22px; border-radius:var(--radio-pill);
  background:var(--vidrio-fondo); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--vidrio-borde);
  animation:aparecer .3s var(--resorte) both;
}
.aprobaciones-filtros-activos-label{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-ter); text-transform:uppercase; letter-spacing:.5px; margin-right:2px; }
.aprobaciones-chip-filtro{
  display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:var(--fs-sm); font-weight:600;
  color:var(--c-naranja-texto); background:var(--c-azul-tenue); border:none; border-radius:999px; padding:6px 12px; cursor:pointer;
  transition:transform .2s var(--resorte), background .2s ease;
}
.aprobaciones-chip-filtro:hover{ background:var(--c-azul-claro); color:var(--c-texto-sobre-naranja); transform:translateY(-1px); }
.aprobaciones-chip-filtro span{ opacity:.75; }
.aprobaciones-limpiar-todo{ margin-left:auto; }
@media (prefers-reduced-motion: reduce){
  button.gerencia-card, #aprobaciones-main button.stat-tile-kpi, #ordenes-autorizadas-main button.stat-tile-kpi{ animation:none; opacity:1; transform:none; }
  .aprobaciones-filtros-activos{ animation:none; }
}
.stat-tile.mejor{ position:relative; overflow:hidden; }
.stat-label{ font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.8px; color:var(--c-texto-ter); font-weight:700; }
.stat-noiva{ text-transform:none; font-weight:600; opacity:.6; letter-spacing:0; font-size:var(--fs-sm); }
.stat-value{ font-size:18px; font-weight:700; letter-spacing:-.02em; color:var(--c-texto); }
.stat-tile.mejor .stat-value{ color:var(--c-esmeralda-2); }
.stat-tile.ahorro .stat-value{ color:var(--c-esmeralda-2); }
.stat-sub{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
#prov-main .panel-intro, #cod-main .panel-intro, #acuerdos-main .panel-intro{
  padding:20px 24px; border-radius:var(--radio-lg);
  background:
    radial-gradient(130% 180% at 100% -30%, rgba(238,121,25,.10), transparent 60%),
    var(--c-superficie);
  border:1px solid var(--c-borde);
  box-shadow:var(--sombra-suave);
}
#prov-main .panel-intro-icon, #cod-main .panel-intro-icon, #acuerdos-main .panel-intro-icon{
  box-shadow:0 4px 12px -6px rgba(238,121,25,.4);
}
#prov-kpis .stat-tile, #cod-kpis .stat-tile, #acuerdos-kpis .stat-tile{
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  box-shadow:var(--sombra-suave);
}
.hist-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:22px; }
#bandeja-kpis{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; }
#bandeja-kpis > .stat-tile{ flex:1 1 210px; max-width:270px; }
#bandeja-kpis > .stat-tile-centrado{ flex:1 1 148px; max-width:190px; padding:15px 14px; }
#bandeja-kpis > .stat-tile-centrado .stat-value{ font-size:var(--fs-xl); }
#bandeja-kpis > .stat-tile-centrado .stat-label{ font-size:var(--fs-sm); }
#bandeja-kpis > .bandeja-kpi-separador{ flex:1 1 100%; max-width:none; }
.hist-bar-chart{ display:flex; flex-direction:column; gap:10px; }
.hist-map-layout{ display:grid; grid-template-columns:1fr 280px; gap:18px; align-items:start; }
.hist-map{ height:420px; border-radius:var(--radio-md); overflow:hidden; z-index:1; }
.hist-map-legend{ display:flex; flex-direction:column; gap:9px; max-height:420px; overflow-y:auto; }
.hist-legend-row{ display:flex; align-items:center; gap:8px; font-size:var(--fs-sm); }
.hist-legend-dot{ width:11px; height:11px; border-radius:999px; background:var(--c-azul); flex:none; }
.hist-legend-ciudad{ flex:1; color:var(--c-texto-sec); font-weight:600; white-space:normal; overflow-wrap:anywhere; }
.hist-legend-ciudad em{ font-style:normal; color:var(--c-texto-ter); font-weight:500; }
.hist-legend-monto{ color:var(--c-texto); font-weight:600; white-space:nowrap; }
@media (max-width:800px){ .hist-map-layout{ grid-template-columns:1fr; } .hist-map{ height:300px; } }
.hist-bar-row{ display:grid; grid-template-columns:130px 1fr auto; align-items:center; gap:12px; padding:5px 8px; margin:0 -8px; border-radius:var(--radio-sm); transition:background-color .18s ease; }
button.hist-bar-row-clic{ border:none; background:none; font:inherit; width:100%; text-align:left; }
.hist-bar-row-clic{ cursor:pointer; }
.hist-bar-row-clic:hover{ background:var(--c-azul-tenue); }
.hist-bar-row-clic:hover .hist-bar-label, .hist-bar-row-clic:hover .hist-bar-valor{ color:var(--c-naranja-texto); }
.hist-bar-row-clic:hover .hist-bar-fill{ filter:brightness(1.1); }
.hist-bar-row-clic.activo{ background:var(--c-azul-tenue); }
.hist-bar-row-clic.activo .hist-bar-label, .hist-bar-row-clic.activo .hist-bar-valor{ color:var(--c-naranja-texto); font-weight:700; }
.hist-bar-label{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); white-space:normal; overflow-wrap:anywhere; transition:color .18s ease; }
.hist-bar-track{ height:15px; border-radius:999px; background:var(--c-pill); overflow:hidden; box-shadow:inset 0 1px 2px rgba(0,0,0,.07); }
.hist-bar-fill{ height:100%; border-radius:999px; background:linear-gradient(90deg,var(--c-azul-claro),var(--c-azul)); width:0%; transition:width .7s var(--resorte), filter .18s ease; }
.hist-bar-valor{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); white-space:nowrap; min-width:90px; text-align:right; font-variant-numeric:tabular-nums; transition:color .18s ease; }
@media (prefers-reduced-motion: reduce){ .hist-bar-fill{ transition:filter .18s ease; } }
.hist-dos-columnas{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.badge-admin{
  display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-sm); font-weight:600;
  color:var(--c-ambar); background:var(--c-ambar-tenue); border-radius:999px; padding:3px 10px; vertical-align:middle; margin-left:8px;
}
@media (max-width:800px){ .hist-dos-columnas{ grid-template-columns:1fr; } }
.band-estado{ display:inline-flex; align-items:center; gap:5px; font-size:var(--fs-sm); font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.band-estado::before{ content:""; width:7px; height:7px; border-radius:999px; background:currentColor; }
.band-estado-verde{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.band-estado-naranja{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.band-estado-rojo{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.band-estado-rojo-oscuro{ color:#fff; background:#b91c1c; }
.band-estado-muy-tardia{ color:#fff; background:#7f1d1d; }
.band-estado-gris{ color:var(--c-texto-ter); background:var(--c-bg); }
.band-solped-row{ cursor:pointer; }
.band-solped-row:hover{ background:rgba(238,121,25,.05); }
.band-solped-row-seleccionada{ background:var(--c-azul-tenue); }
.band-solped-row-seleccionada:hover{ background:var(--c-azul-tenue); }
.band-td-checkbox{ width:1%; padding:12px 4px 12px 10px !important; text-align:center; cursor:default; }
.band-td-checkbox input[type="checkbox"]{ width:15px; height:15px; cursor:pointer; vertical-align:middle; margin:0; }
.band-td-checkbox input[type="checkbox"]:disabled{ cursor:not-allowed; opacity:.35; }
.bandeja-seleccion-barra{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px; justify-content:space-between;
  padding:10px 14px; margin-bottom:14px; border-radius:var(--radio-pill);
  background:var(--vidrio-fondo); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--vidrio-borde); animation:aparecer .25s ease both;
}
.bandeja-seleccion-info{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto); }
.bandeja-seleccion-acciones{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
@media (prefers-reduced-motion: reduce){ .bandeja-seleccion-barra{ animation:none; } }
.band-detalle-row td{ padding:0 !important; }
.band-detalle-wrap{ padding:14px 16px 16px 40px; background:var(--c-bg); border-top:1px solid var(--c-borde); border-bottom:1px solid var(--c-borde); }
.band-detalle-encabezado{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--c-borde); }
.band-detalle-encabezado .oca-correo-acciones{ margin-left:auto; display:inline-flex; align-items:center; gap:10px; }
.oca-correo-eml{ padding:0; border:0; background:none; font:inherit; font-size:var(--fs-sm); color:var(--c-texto-sec); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.oca-correo-eml:hover{ color:var(--c-texto); }
.oca-correo-icono{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; margin-left:6px; padding:0; vertical-align:middle;
  border:1px solid var(--c-borde); border-radius:50%; background:var(--c-superficie); font-size:var(--fs-sm); cursor:pointer;
  transition:transform .15s var(--resorte), border-color .15s ease; }
.oca-correo-icono:hover{ transform:scale(1.1); border-color:var(--c-azul); }
.oca-correo-icono:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.band-detalle-solped{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); }
.band-detalle-meta-item{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.band-detalle-encabezado-accion{ display:inline-flex; align-items:center; gap:6px; margin-left:auto; }
.band-borrar-analisis-btn{
  display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border-radius:999px; border:1px solid var(--c-borde); background:var(--c-superficie);
  font-size:var(--fs-sm); line-height:1; cursor:pointer; opacity:.7; flex:none;
  transition:opacity .15s ease, transform .15s var(--resorte), border-color .15s ease, background .15s ease, color .15s ease;
}
.band-borrar-analisis-btn:hover{ opacity:1; transform:scale(1.08); color:var(--c-rubi); border-color:rgba(220,38,38,.35); background:var(--c-rubi-tenue); }
.band-detalle-item{ display:grid; grid-template-columns:minmax(90px,150px) 1fr 90px 90px 130px 104px; gap:10px; font-size:var(--fs-sm); padding:6px 8px; margin:0 -8px; border-radius:var(--radio-sm); border-bottom:1px solid var(--c-borde); align-items:start; min-width:0; transition:background .15s ease; }
.band-detalle-item:not(.band-detalle-header):hover{ background:var(--c-azul-tenue); }
.band-detalle-item:last-child{ border-bottom:none; }
.band-detalle-item > span{ min-width:0; overflow-wrap:break-word; }
.band-detalle-item span:first-child{ color:var(--c-texto-ter); font-weight:600; font-family:ui-monospace,"SF Mono",Consolas,monospace; font-size:var(--fs-sm); word-break:break-all; line-height:1.4; }
.band-detalle-item.band-detalle-header{ font-weight:700; color:var(--c-texto-ter); }
.band-detalle-item.band-detalle-header span:first-child{ font-family:inherit; font-size:inherit; font-weight:inherit; word-break:normal; }
@media (max-width:900px){
  .band-detalle-item{ min-width:700px; grid-template-columns:100px minmax(140px,1fr) 90px 90px 130px 104px; }
}
.band-detalle-item.seg-detalle-item-comentario{ grid-template-columns:minmax(90px,150px) 1fr 80px 90px 90px 110px 140px minmax(160px,1fr); }
@media (max-width:900px){
  .band-detalle-item.seg-detalle-item-comentario{ min-width:950px; grid-template-columns:100px minmax(140px,1fr) 80px 90px 90px 110px 140px minmax(160px,1fr); }
}
.band-detalle-item.oca-detalle-item-pendiente{ grid-template-columns:minmax(90px,150px) 1fr 80px 90px 90px 130px 140px; }
@media (max-width:900px){
  .band-detalle-item.oca-detalle-item-pendiente{ min-width:900px; grid-template-columns:100px minmax(140px,1fr) 80px 90px 90px 130px 140px; }
}
.band-detalle-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.band-detalle-toolbar-label{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-ter); text-transform:uppercase; letter-spacing:.02em; }
.oca-detalle-info{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px 18px; font-size:var(--fs-sm); color:var(--c-texto); margin-bottom:14px; }
.oca-detalle-info b{ color:var(--c-texto-ter); font-weight:600; }
.oca-detalle-comentario{ font-size:var(--fs-sm); color:var(--c-texto); background:var(--c-bg); border-radius:var(--radio-sm); padding:8px 11px; margin:0 0 14px; }
.band-negociado-si{ display:inline-block; font-size:var(--fs-sm); font-weight:600; color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); padding:3px 8px; border-radius:999px; white-space:nowrap; }
.band-negociado-no{ display:inline-block; font-size:var(--fs-sm); font-weight:500; color:var(--c-texto-ter); background:var(--c-bg); padding:3px 8px; border-radius:999px; white-space:nowrap; }
.bd-table th, .bd-table td{ text-align:center; vertical-align:middle; }
.band-td-comentario{ max-width:340px; }
.band-comentario-celda{
  display:flex; flex-direction:column; align-items:center; gap:5px; width:100%;
  text-align:center; padding:7px 9px; border-radius:var(--radio-sm); border:1px solid transparent;
  background:transparent; cursor:pointer; font:inherit; color:inherit;
  transition:background .15s ease, border-color .15s ease, transform .15s var(--resorte);
}
.band-comentario-celda:hover{ background:var(--c-superficie); border-color:var(--c-borde); transform:translateY(-1px); }
.band-comentario-texto{
  font-size:var(--fs-sm); color:var(--c-texto); line-height:1.4;
  overflow-wrap:anywhere;
}
.band-comentario-texto-vacio{ color:var(--c-texto-ter); font-style:italic; }
.band-comentario-adjunto-tag{
  display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-sm); font-weight:600;
  color:var(--c-texto-sec); background:rgba(238,121,25,.06); padding:3px 9px; border-radius:100px;
  white-space:normal; overflow-wrap:anywhere;
}
.band-comentario-celda-vacia{
  justify-content:center; align-items:center; color:var(--c-texto-ter); font-size:var(--fs-sm);
  border:1px dashed var(--c-borde);
}
.band-comentario-celda-vacia:hover{ color:var(--c-naranja-texto); border-color:rgba(238,121,25,.4); background:var(--c-azul-tenue); }
.band-comentario-resumen{
  margin:18px 0; padding:16px 18px; border-radius:var(--radio-md); border:1px solid var(--c-borde);
  background:var(--c-superficie);
}
.band-comentario-resumen-vacio{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.band-comentario-resumen-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.band-comentario-resumen-titulo{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.band-comentario-resumen-vacio .band-comentario-resumen-titulo{ margin-bottom:0; }
.band-comentario-resumen-texto{ font-size:var(--fs-md); color:var(--c-texto); line-height:1.55; margin:0; white-space:pre-wrap; }
.band-comentario-resumen-adjunto{ display:flex; align-items:center; gap:12px; margin-top:12px; }
.band-comentario-resumen-adjunto img{
  width:64px; height:64px; border-radius:var(--radio-sm); object-fit:cover; flex:none;
  border:1px solid var(--c-borde);
}
.band-comentario-resumen-adjunto a{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); text-decoration:none; }
.band-comentario-resumen-adjunto a:hover{ text-decoration:underline; }
.seg-comentario-meta{ display:block; font-size:var(--fs-sm); color:var(--c-texto-ter); margin-bottom:8px; }
.seg-comentario-textarea{
  width:100%; box-sizing:border-box; font:inherit; font-size:var(--fs-md); text-align:left;
  padding:10px 12px; border-radius:var(--radio-sm); border:1px solid var(--c-borde);
  background:var(--c-bg); color:var(--c-texto); resize:vertical; overflow-y:auto;
  min-height:60px; max-height:40vh; line-height:1.5; transition:border-color .15s ease;
}
.seg-comentario-textarea:focus{ outline:none; border-color:var(--c-azul-oscuro); box-shadow:0 0 0 1px var(--c-azul-oscuro); }
.seg-comentario-acciones{ display:flex; justify-content:flex-end; margin-top:10px; }
.com-historial{ margin-bottom:10px; }
.com-lista{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; max-height:320px; overflow-y:auto; }
.com-entrada{ padding:8px 10px; border-radius:var(--radio-sm); background:var(--c-pill); }
.com-cabecera{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; font-size:var(--fs-sm); }
.com-autor{ color:var(--c-texto); }
.com-fecha{ color:var(--c-texto-ter); font-variant-numeric:tabular-nums; }
.com-borrar{ margin-left:auto; padding:0; border:none; background:none; font:inherit; font-size:var(--fs-sm); color:var(--c-texto-sec); text-decoration:underline; cursor:pointer; }
.com-borrar:hover, .com-borrar:focus-visible{ color:var(--c-rubi); }
.com-texto{ margin:4px 0 0; color:var(--c-texto); white-space:pre-wrap; overflow-wrap:anywhere; }
.com-vacio{ margin:0 0 8px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.busc-hero{
  position:relative; overflow:hidden;
  padding:32px 34px 28px;
  border-radius:var(--radio-lg);
  border:1px solid rgba(238,121,25,.16);
  background:
    radial-gradient(130% 160% at 100% -10%, rgba(238,121,25,.13), transparent 60%),
    var(--c-bg);
  box-shadow:var(--sombra-flotante);
  animation:aparecer .5s ease both;
}
.busc-hero-top{ display:flex; align-items:flex-start; gap:18px; }
.busc-hero-icon{
  flex:none; width:56px; height:56px; border-radius:18px;
  display:flex; align-items:center; justify-content:center; font-size:19px;
  background:linear-gradient(135deg, rgba(238,121,25,.22), rgba(194,96,15,.08));
  border:1px solid rgba(238,121,25,.3);
  box-shadow:0 6px 16px -8px rgba(238,121,25,.5);
}
.busc-hero-heading h1{ font-size:var(--fs-xl); font-weight:800; letter-spacing:-.01em; margin:0 0 4px; }
.busc-hero-heading p{ font-size:var(--fs-md); color:var(--c-texto-sec); max-width:560px; }
.busc-hero-fuentes{ display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin:20px 0 24px; }
.busc-hero-fuente{
  display:inline-flex; align-items:center; gap:6px;
  font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec);
  background:var(--c-superficie); border:1px solid var(--c-borde);
  border-radius:var(--radio-pill); padding:6px 13px;
  box-shadow:var(--sombra-suave);
}
.busc-hero-fuente-flecha{ color:var(--c-texto-ter); font-size:var(--fs-sm); }
.busc-hero-buscar{
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-lg);
  padding:18px 20px 20px; box-shadow:var(--sombra-suave);
}
.busc-fila-buscar{
  display:flex; align-items:center; gap:6px;
  background:rgba(17,24,39,.045); border:1px solid var(--c-borde); border-radius:var(--radio-pill);
  padding:5px 5px 5px 20px;
  transition:border-color .2s var(--resorte), box-shadow .2s var(--resorte), background .2s ease;
}
.busc-fila-buscar:focus-within{
  border-color:var(--c-azul-oscuro); box-shadow:0 0 0 1px var(--c-azul-oscuro); background:var(--c-superficie);
  box-shadow:0 0 0 4px rgba(238,121,25,.12);
}
.busc-fila-buscar input{
  flex:1; min-width:0; font-size:var(--fs-lg); text-align:left;
  background:transparent; border:none; padding:11px 4px;
}
.busc-fila-buscar input:focus{ background:transparent; border:none; outline:none; }
.busc-detectado{ margin-top:16px; }
.busc-detectado-titulo{ font-size:var(--fs-sm); font-weight:600; text-transform:uppercase; letter-spacing:.6px; color:var(--c-texto-ter); margin:0 0 8px; }
.busc-chips{ display:flex; flex-wrap:wrap; gap:7px; }
.busc-chip{
  display:inline-flex; align-items:center; border:1px solid var(--c-azul-claro); background:var(--c-azul-tenue);
  color:var(--c-azul-oscuro); border-radius:var(--radio-pill); padding:5px 12px; font-size:var(--fs-sm); font-weight:600;
}
.busc-resultados-count{ color:var(--c-texto-ter); font-size:var(--fs-sm); font-variant-numeric:tabular-nums; }
.busc-fuente-banner{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin:-4px 0 14px; }
.busc-fuente-banner strong{ color:var(--c-texto); }
.busc-fuente-banner-ia{
  font-weight:600; color:var(--c-ambar); background:var(--c-ambar-tenue);
  padding:8px 12px; border-radius:var(--radio-sm); margin-top:8px;
}
.busc-acuerdo{
  display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-top:10px; padding:8px 12px;
  background:var(--c-esmeralda-tenue); border-radius:var(--radio-sm);
}
.busc-acuerdo-precio{ font-size:var(--fs-md); font-weight:700; color:var(--c-esmeralda-2); }
.busc-acuerdo-lbl{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.busc-seguimiento{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:8px; }
.busc-comentario{ font-size:var(--fs-sm); color:var(--c-texto-sec); font-style:italic; margin-top:8px; }
.busc-multi-toggle-btn{
  display:inline-flex; align-items:center; gap:6px; margin-top:18px;
  font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--c-azul-oscuro);
  background:var(--c-azul-tenue); border:1px solid rgba(238,121,25,.25);
  border-radius:var(--radio-pill); padding:8px 15px; cursor:pointer;
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.busc-multi-toggle-btn:hover{ transform:translateY(-1px); box-shadow:var(--sombra-suave); }
.busc-multi-panel{
  margin-top:16px; padding:18px 20px 20px;
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-lg);
  box-shadow:var(--sombra-suave);
}
.busc-multi-ayuda{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin:0 0 8px; }
#busc-multi-textarea{ width:100%; font-family:inherit; font-size:var(--fs-md); padding:10px 12px; resize:vertical; }
.busc-multi-buscar-btn{ margin-top:10px; }
@media (max-width:640px){
  .busc-hero{ padding:22px 18px 20px; }
  .busc-hero-top{ gap:12px; }
  .busc-hero-icon{ width:44px; height:44px; font-size:15px; border-radius:14px; }
  .busc-hero-heading h1{ font-size:var(--fs-xl); }
  .busc-hero-fuentes{ margin:16px 0 18px; }
  .busc-hero-fuente-flecha{ display:none; }
  .busc-hero-buscar{ padding:14px 14px 16px; }
  .busc-fila-buscar{ flex-wrap:wrap; border-radius:var(--radio-md); padding:12px 14px; }
  .busc-fila-buscar input{ flex:none; width:100%; padding:6px 2px; }
  .busc-fila-buscar .btn{ width:100%; justify-content:center; }
}
.busc-multi-sin-match{ color:var(--c-texto-ter); font-style:italic; }
.busc-multi-ver-btn{
  font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--c-naranja-texto); background:transparent;
  border:none; padding:0; cursor:pointer; white-space:nowrap;
}
.busc-multi-ver-btn:hover{ text-decoration:underline; }
.catalogo-dup-niveles{ display:flex; gap:8px; margin:14px 0 4px; }
.catalogo-dup-nivel-btn{
  font:inherit; font-size:var(--fs-sm); font-weight:600; padding:6px 14px; border-radius:var(--radio-pill);
  border:1px solid var(--c-borde); background:var(--c-superficie); color:var(--c-texto-sec); cursor:pointer;
  transition:transform .2s var(--resorte), background .2s ease, color .2s ease, border-color .2s ease;
}
.catalogo-dup-nivel-btn:hover{ transform:translateY(-1px); }
.catalogo-dup-nivel-btn-activo{ background:var(--c-azul-tenue); border-color:var(--c-azul-claro); color:var(--c-azul-oscuro); }
.catalogo-dup-lista{ display:flex; flex-direction:column; gap:16px; }
.catalogo-dup-grupo{ background:var(--vidrio-fondo); border:1px solid var(--c-borde); border-radius:var(--radio-md); padding:14px 16px; }
.catalogo-dup-grupo-header{ display:flex; align-items:center; justify-content:space-between; font-size:var(--fs-md); font-weight:600; color:var(--c-texto); margin-bottom:8px; }
.catalogo-dup-similitud{ font-size:var(--fs-sm); font-weight:700; color:var(--c-azul-oscuro); background:var(--c-azul-tenue); padding:2px 9px; border-radius:var(--radio-pill); }
.catalogo-dup-resumen{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin:10px 0 16px; flex-wrap:wrap; }
.catalogo-dup-resumen .busc-resultados-count{ margin:0; }
.catalogo-dup-grupo .hist-detalle-tabla-wrap{ margin:0; }
.catalogo-dup-sugerido{ background:var(--c-esmeralda-tenue); }
.catalogo-dup-sugerido td{ font-weight:600; }
.catalogo-dup-grupo .hist-detalle-tabla input[type="radio"]{ cursor:pointer; }
.catalogo-dup-ia-pendiente{ color:var(--c-texto-ter); font-size:var(--fs-sm); }
.catalogo-dup-acciones{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin-top:14px; }
.catalogo-dup-desc-campo{ flex:1; min-width:260px; }
.catalogo-dup-acciones input.catalogo-dup-desc-input{ width:100%; text-align:left; }
.catalogo-dup-botones{ display:flex; gap:8px; flex-wrap:wrap; }
.modal-box.catalogo-dup-modal{ max-width:min(1240px, 96vw); }
.catalogo-dup-barra{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:14px 0 4px; }
.catalogo-dup-barra .catalogo-dup-niveles{ margin:0; }
.catalogo-dup-ia-resumen{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:var(--fs-sm); color:var(--c-texto-sec); margin:-6px 0 12px; }
.catalogo-dup-ia-resumen:empty{ display:none; }
.catalogo-dup-controles{
  position:sticky; top:-32px; z-index:2; display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px;
  margin:0 -32px 12px; padding:10px 32px; background:var(--c-superficie); border-bottom:1px solid var(--c-borde);
}
.catalogo-dup-busqueda{ flex:1 1 240px; min-width:200px; }
.catalogo-dup-busqueda input{ width:100%; text-align:left; }
.catalogo-dup-orden-filtros{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; }
.catalogo-dup-orden, .catalogo-dup-filtros{ display:flex; gap:6px; flex-wrap:wrap; }
.catalogo-dup-filtro{
  font:inherit; font-size:var(--fs-sm); font-weight:600; padding:5px 12px; border-radius:var(--radio-pill);
  border:1px dashed var(--c-borde-fuerte); background:transparent; color:var(--c-texto-sec); cursor:pointer;
  transition:transform .2s var(--resorte), background .2s ease, color .2s ease, border-color .2s ease;
}
.catalogo-dup-filtro:hover{ transform:translateY(-1px); }
.catalogo-dup-filtro-activo{ border-style:solid; border-color:var(--c-azul-claro); background:var(--c-azul-tenue); color:var(--c-naranja-texto); }
.catalogo-dup-filtro-n{ font-variant-numeric:tabular-nums; opacity:.75; }
.catalogo-dup-conteo{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin:0 0 8px; }
.catalogo-dup-ayuda{ margin-bottom:10px; }
.catalogo-dup-insignias{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.catalogo-dup-aviso{ font-size:var(--fs-xs); font-weight:700; color:var(--c-ambar); background:var(--c-ambar-tenue); padding:2px 9px; border-radius:var(--radio-pill); }
.catalogo-dup-celda-control{ width:1%; text-align:center; }
.catalogo-dup-grupo .hist-detalle-tabla input[type="checkbox"], .catalogo-dup-grupo .hist-detalle-tabla input[type="radio"]{ accent-color:var(--c-azul); }
.catalogo-dup-grupo .hist-detalle-tabla input[type="checkbox"]:not(:disabled){ cursor:pointer; }
.catalogo-dup-codigo{ white-space:nowrap; font-variant-numeric:tabular-nums; }
.catalogo-dup-fila-excluida td{ color:var(--c-texto-ter); }
.catalogo-dup-fila-excluida.catalogo-dup-sugerido td{ font-weight:400; }
.catalogo-dup-unidad-distinta{ color:var(--c-ambar); font-weight:700; }
.catalogo-dup-fila-excluida td.catalogo-dup-unidad-distinta{ color:var(--c-ambar); }
.catalogo-dup-etiqueta{
  display:inline-block; font-size:var(--fs-xs); font-weight:700; color:var(--c-texto-sec); background:var(--c-bg);
  border:1px solid var(--c-borde); padding:0 6px; border-radius:var(--radio-pill); margin-left:4px; white-space:nowrap;
}
.catalogo-dup-distinto-btn{
  font:inherit; font-size:var(--fs-xs); font-weight:600; color:var(--c-texto-sec); background:transparent; white-space:nowrap;
  border:1px solid var(--c-borde); border-radius:var(--radio-pill); padding:3px 9px; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.catalogo-dup-distinto-btn:hover:not(:disabled){ color:var(--c-rubi); border-color:color-mix(in srgb, var(--c-rubi) 40%, transparent); background:var(--c-rubi-tenue); }
.catalogo-dup-distinto-btn:disabled{ opacity:.5; cursor:default; }
.catalogo-dup-mas{ display:block; margin:16px auto 0; }
.catalogo-dup-decisiones-barra{ display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px; }
.catalogo-dup-decisiones h3{ font-size:var(--fs-lg); font-weight:700; color:var(--c-texto); margin:18px 0 4px; }
.catalogo-dup-decisiones .hist-detalle-tabla-wrap{ margin:10px 0 0; }
@media (max-width:820px){
  .catalogo-dup-controles{ margin:0 -16px 12px; padding:10px 16px; top:-16px; }
}
.admin-respaldos-lista{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.admin-respaldo-item{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:8px 12px; border-radius:var(--radio-sm); background:var(--c-bg);
  font-size:var(--fs-sm); color:var(--c-texto-sec);
}
.busc-existencia{ margin:4px 0; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.busc-chip-catalogo{ font-size:var(--fs-sm); font-weight:600; padding:2px 8px; border-radius:var(--radio-pill); }
.busc-chip-catalogo-si{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.busc-chip-catalogo-no{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.busc-chip-ia{ font-size:var(--fs-sm); font-weight:600; padding:2px 8px; border-radius:var(--radio-pill); }
.busc-chip-ia-si{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.busc-chip-ia-no{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.busc-ver-ordenes-btn{
  margin-top:10px; font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--c-naranja-texto);
  background:transparent; border:none; padding:0; cursor:pointer; display:block;
}
.busc-ver-ordenes-btn:hover{ text-decoration:underline; }
.busc-acciones{ display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:10px; }
.busc-acciones .busc-ver-ordenes-btn{ margin-top:0; }
.busc-chip-tipo{ font-size:var(--fs-sm); font-weight:600; padding:2px 8px; border-radius:var(--radio-pill); color:var(--c-texto-sec); background:var(--c-pill); }
.busc-chip-activo{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.busc-chip-servicio{ color:var(--c-azul-oscuro); background:var(--c-azul-tenue); }
.busc-chip-exacto{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.busc-ocs{ margin-top:12px; border-top:1px solid var(--c-borde); padding-top:10px; }
.busc-ocs-titulo{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-sec); margin-bottom:6px; }
.busc-ocs ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.busc-oc{ padding:7px 10px; border-radius:var(--radio-sm); background:var(--c-bg); }
.busc-oc-coincide{ background:var(--c-esmeralda-tenue); }
.busc-oc-cab{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.busc-oc-abrir{
  font:inherit; font-size:var(--fs-sm); font-weight:700; color:var(--c-naranja-texto); background:transparent;
  border:none; padding:0; cursor:pointer; white-space:nowrap; font-variant-numeric:tabular-nums;
}
.busc-oc-abrir:hover{ text-decoration:underline; }
.busc-oc-meta{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.busc-oc-precio{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); margin-left:auto; }
.busc-oc-comentario{ font-size:var(--fs-sm); color:var(--c-texto); margin-top:3px; }
.busc-oc-coincide .busc-oc-comentario b{ color:var(--c-esmeralda-2); }
.busc-oc-sin-comentario{ color:var(--c-texto-ter); font-style:italic; }
.busc-oc-fila-coincide td{ background:var(--c-esmeralda-tenue); }
.busc-oc-celda-comentario{ min-width:240px; max-width:420px; white-space:normal; }
.modal-box.busc-ordenes-modal{ max-width:min(1400px, 96vw); width:min(1400px, 96vw); }
.busc-oc-tabla-wrap{ max-height:min(68vh, 900px); overflow:auto; }
.busc-oc-tabla{ table-layout:fixed; width:100%; min-width:900px; }
.busc-oc-tabla thead th{ position:sticky; top:0; z-index:1; background:var(--c-superficie); }
.busc-oc-col-fecha{ width:96px; } .busc-oc-col-orden{ width:96px; } .busc-oc-col-solped{ width:80px; }
.busc-oc-col-proveedor{ width:clamp(130px, 14vw, 200px); } .busc-oc-col-cant{ width:56px; } .busc-oc-col-precio{ width:118px; }
.busc-oc-tabla .busc-oc-celda-comentario{ max-width:none; min-width:0; }
.busc-oc-tabla .busc-oc-proveedor{ overflow-wrap:anywhere; font-size:var(--fs-sm); }
.busc-oc-tabla .busc-oc-fecha{ white-space:nowrap; }
.busc-oc-texto{ white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.45; }
mark.busc-oc-termino{ padding:0; border-radius:2px; background:var(--c-azul-tenue); color:var(--c-naranja-texto); font-weight:700; }
.busc-oc-etq{ display:inline-block; margin-bottom:4px; font-size:var(--fs-2xs); font-weight:700; }
.busc-oc-etq-ok{ color:var(--c-esmeralda-2); }
.busc-oc-etq-descartada{ color:var(--c-rubi-texto, var(--c-rubi)); }
.busc-oc-etq-parcial{ color:var(--c-texto-ter); font-weight:600; }
.busc-oc-filtros{ margin:0 0 var(--sp-2); }
.busc-oc-filtros-lbl{ align-self:center; font-size:var(--fs-sm); color:var(--c-texto-sec); margin-right:2px; }
.busc-oc-col-donde{ width:clamp(150px, 15vw, 220px); }
.busc-oc-ubicacion{ display:flex; flex-direction:column; gap:1px; cursor:help; }
.busc-oc-municipio{ font-size:var(--fs-sm); color:var(--c-texto); }
.busc-oc-depto, .busc-oc-ubic-detalle{ font-size:var(--fs-2xs); color:var(--c-texto-ter); overflow-wrap:anywhere; }
.busc-oc-lugar-btn{ align-self:flex-start; margin-top:3px; padding:0; border:0; background:none; font:inherit; font-size:var(--fs-2xs); font-weight:600; color:var(--c-naranja-texto); cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.busc-oc-lugar-btn:hover{ color:var(--c-texto); }
.busc-oc-lugar-form{ display:flex; flex-direction:column; gap:4px; }
.busc-oc-lugar-lbl{ font-size:var(--fs-2xs); font-weight:600; color:var(--c-texto-sec); overflow-wrap:anywhere; }
.busc-oc-lugar-form input{ width:100%; min-width:0; font:inherit; font-size:var(--fs-sm); padding:4px 6px; border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); color:var(--c-texto); }
.busc-oc-lugar-acciones{ display:flex; flex-wrap:wrap; gap:4px; }
.busc-oc-lugar-ayuda{ font-size:var(--fs-2xs); color:var(--c-texto-ter); }
.busc-fuente-banner-servicio{ color:var(--c-azul-oscuro); background:var(--c-azul-tenue); padding:8px 12px; border-radius:var(--radio-sm); margin-top:8px; }
.busc-activos{ margin-top:22px; }
.busc-activos-titulo{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto-sec); margin:0 0 4px; }
.busc-resultado-activo{ opacity:.88; box-shadow:none; }
.busc-web-btn{ white-space:nowrap; }
.busc-lista{ display:flex; flex-direction:column; gap:12px; }
.busc-resultado{
  display:grid; grid-template-columns:30px 1fr 200px; gap:18px;
  background:var(--vidrio-fondo); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  padding:18px 20px; box-shadow:var(--sombra-suave);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
}
.busc-resultado-top{ border-color:var(--c-azul-claro); background:linear-gradient(var(--c-azul-tenue),var(--c-azul-tenue)) padding-box, var(--vidrio-fondo) border-box; }
.busc-rank{ display:flex; align-items:flex-start; justify-content:center; font-size:var(--fs-lg); font-weight:700; color:var(--c-texto-ter); padding-top:2px; }
.busc-resultado-top .busc-rank{ color:var(--c-naranja-texto); }
.busc-cuerpo{ min-width:0; }
.busc-cod{ font-size:var(--fs-sm); color:var(--c-texto-ter); letter-spacing:.3px; }
.busc-desc{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); margin:2px 0 8px; }
.busc-fuentes-encontrado{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin:-4px 0 10px; }
.busc-specs{ display:flex; flex-wrap:wrap; gap:6px; }
.busc-spec{ font-size:var(--fs-sm); padding:3px 9px; border-radius:var(--radio-pill); border:1px solid var(--c-borde); color:var(--c-texto-sec); }
.busc-spec-ok{ color:var(--c-esmeralda-2); border-color:currentColor; background:var(--c-esmeralda-tenue); }
.busc-spec-diff{ color:var(--c-texto-ter); border-style:dashed; background:transparent; }
.busc-spec-falta{ color:var(--c-texto-ter); border-style:dashed; background:transparent; }
.busc-metricas{ display:flex; flex-direction:column; align-items:flex-end; gap:11px; text-align:right; }
.busc-match-num{ font-size:18px; font-weight:700; line-height:1; color:var(--c-texto); }
.busc-match-lbl{ font-size:var(--fs-sm); color:var(--c-texto-ter); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }
.busc-match-bar{ width:100%; min-width:120px; height:5px; border-radius:var(--radio-pill); background:var(--c-borde); overflow:hidden; margin-top:6px; }
.busc-match-bar > i{
  display:block; height:100%; border-radius:var(--radio-pill);
  background:linear-gradient(90deg,var(--c-azul-claro),var(--c-azul));
  width:var(--pct); transform-origin:left; animation:buscCrecer .8s var(--resorte) both;
}
@keyframes buscCrecer{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@media (prefers-reduced-motion:reduce){ .busc-match-bar > i{ animation:none; } }
.busc-precio{ font-size:var(--fs-lg); font-weight:600; color:var(--c-texto); }
.busc-precio-lbl{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.busc-precio-vacio{ font-size:var(--fs-sm); color:var(--c-texto-ter); font-style:italic; max-width:150px; }
.busc-tendencia svg{ display:block; }
.busc-proveedores{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
@media (max-width:640px){
  .busc-resultado{ grid-template-columns:1fr; }
  .busc-rank{ display:none; }
  .busc-metricas{ align-items:flex-start; text-align:left; }
}
.cot-parametros-bar{
  display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px;
}
.cot-parametro-chip{
  display:flex; flex-direction:column; gap:2px; padding:8px 14px; border-radius:var(--radio-md);
  background:var(--c-superficie); border:1px solid var(--c-borde); box-shadow:var(--sombra-suave);
  font-size:var(--fs-sm); color:var(--c-texto-ter);
}
.cot-parametro-chip strong{ font-size:var(--fs-md); color:var(--c-texto); font-weight:700; }
.cot-config-btn{ margin-left:auto; }
.cot-carga-bar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.cot-archivos-nombre{ font-size:var(--fs-md); color:var(--c-texto-ter); }
.cot-carga-ayuda{ font-size:var(--fs-sm); color:var(--c-texto-ter); max-width:640px; margin:10px 0 0; }
.cot-estado-actual{
  margin-top:16px; padding:14px 18px; border-radius:var(--radio-md);
  background:var(--c-superficie); border:1px solid var(--c-borde); box-shadow:var(--sombra-suave);
  display:flex; align-items:center; gap:12px; font-size:var(--fs-md);
}
.cot-estado-spinner{
  width:16px; height:16px; border-radius:50%; flex:none;
  border:2px solid rgba(238,121,25,.25); border-top-color:var(--c-azul);
  animation:cot-girar 0.8s linear infinite;
}
@keyframes cot-girar{ to{ transform:rotate(360deg); } }
.cot-historial-wrap table{ width:100%; border-collapse:collapse; font-size:var(--fs-md); }
.cot-historial-wrap th{ text-align:left; padding:8px 10px; color:var(--c-texto-ter); font-weight:600; font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.02em; border-bottom:1px solid var(--c-borde); }
.cot-historial-wrap td{ padding:9px 10px; border-bottom:1px solid var(--c-borde); vertical-align:top; }
.cot-badge-estado{ display:inline-block; padding:2px 9px; border-radius:999px; font-size:var(--fs-sm); font-weight:600; }
.cot-badge-procesando{ background:rgba(59,130,246,.14); color:#3b82f6; }
.cot-badge-completado{ background:rgba(34,197,94,.14); color:#16a34a; }
.cot-badge-error{ background:rgba(239,68,68,.14); color:#dc2626; }
.cot-badge-aproximado{ background:var(--c-ambar-tenue); color:var(--c-ambar); }
.cot-badge-neutro{ background:var(--c-pill); color:var(--c-texto-ter); }
.cot-resumen-mini{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.cot-historial-vacio{ font-size:var(--fs-md); color:var(--c-texto-ter); padding:20px 0; }
.cot-item-campos-fila{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; margin-top:12px; }
.cot-item-campos-fila .campo, .cot-item-campos-fila input{ min-width:0; }
.cot-item-resultado{ margin-top:16px; }
.cot-item-sugerencia{
  font-size:var(--fs-sm); color:var(--c-texto); background:var(--c-ambar-tenue); border:1px solid rgba(194,65,12,.2);
  border-radius:var(--radio-sm); padding:9px 13px; margin-bottom:12px;
}
.cot-item-usar-sugerencia-btn{
  font:inherit; font-size:var(--fs-sm); font-weight:700; color:var(--c-azul-oscuro); background:none; border:none;
  padding:0; margin-left:6px; cursor:pointer; text-decoration:underline;
}
.cot-item-resumen{
  background:var(--vidrio-fondo); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  padding:16px 18px; box-shadow:var(--sombra-suave);
}
.cot-item-resumen-cabecera{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.cot-item-categoria{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-ter); background:var(--c-pill); padding:2px 9px; border-radius:999px; }
.cot-item-precio{ font-size:18px; font-weight:700; color:var(--c-texto); }
.cot-item-precio-origen{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:2px; }
.cot-item-precio-vacio{ font-size:var(--fs-md); color:var(--c-texto-ter); font-style:italic; }
.cot-item-articulo-acuerdo{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin-top:8px; }
.cot-item-alerta{ margin-top:10px; font-size:var(--fs-sm); font-weight:600; color:var(--c-rubi); background:var(--c-rubi-tenue); padding:8px 12px; border-radius:var(--radio-sm); }
.cot-item-ofertas{ margin-top:10px; font-size:var(--fs-sm); }
.cot-item-ofertas ul{ margin:6px 0 0; padding-left:18px; }
.cot-item-observaciones{ margin-top:10px; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.cot-config-subtitulo{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-sec); margin:20px 0 4px; }
.cot-item-web-resultado{ margin-top:16px; }
.cot-item-web-cabecera{ display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.cot-item-web-imagen{ width:96px; height:96px; object-fit:cover; border-radius:var(--radio-md); border:1px solid var(--c-borde); flex-shrink:0; background:var(--c-pill); }
.cot-item-web-resumen{ font-size:var(--fs-md); color:var(--c-texto-sec); margin:0; }
.cot-item-web-columnas{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cot-item-web-columnas h3{ font-size:var(--fs-md); margin:0 0 8px; }
.cot-item-web-columnas ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.cot-item-proveedor{
  background:var(--vidrio-fondo); border:1px solid var(--c-borde); border-radius:var(--radio-sm);
  padding:10px 12px;
}
.cot-item-proveedor a{ font-size:var(--fs-md); font-weight:600; color:var(--c-azul-oscuro); text-decoration:none; }
.cot-item-proveedor a:hover{ text-decoration:underline; }
.cot-item-proveedor-dominio{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:1px; }
.cot-item-proveedor-snippet{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin-top:5px; }
.cot-item-proveedor-precio{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); margin-top:6px; }
.cot-item-proveedor-sin-precio{ font-size:var(--fs-sm); font-style:italic; color:var(--c-texto-ter); margin-top:6px; }
.cot-item-importacion{ margin-top:8px; padding-top:8px; border-top:1px dashed var(--c-borde); font-size:var(--fs-sm); color:var(--c-texto-sec); }
.cot-item-importacion-total{ font-weight:700; color:var(--c-texto); margin-top:2px; }
.cot-item-importacion-nota{ font-style:italic; color:var(--c-texto-ter); margin-top:4px; }
.cot-item-mejor-opcion{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px;
  background:var(--c-esmeralda-tenue); border:1px solid var(--c-esmeralda); border-radius:var(--radio-md);
  padding:12px 16px;
}
.cot-item-mejor-opcion-titulo{ font-size:var(--fs-sm); font-weight:700; color:var(--c-esmeralda-2); }
.cot-item-mejor-opcion a{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); text-decoration:none; }
.cot-item-mejor-opcion a:hover{ text-decoration:underline; }
.cot-item-mejor-opcion-precio{ font-size:var(--fs-lg); font-weight:700; color:var(--c-texto); }
.cot-item-mejor-opcion-nota{ font-size:var(--fs-sm); color:var(--c-texto-ter); font-style:italic; }
.cot-item-proveedor-mejor{ border-color:var(--c-esmeralda); box-shadow:0 0 0 1px var(--c-esmeralda); }
.cot-item-proveedor-tag-mejor{ font-size:var(--fs-sm); font-weight:700; color:var(--c-esmeralda-2); margin-bottom:4px; }
@media (max-width:720px){ .cot-item-web-columnas{ grid-template-columns:1fr; } }
.band-comentario-input-modal{
  width:100%; box-sizing:border-box; font:inherit; font-size:var(--fs-lg); text-align:center;
  padding:28px 20px; border-radius:var(--radio-md); border:1px solid var(--c-borde);
  background:var(--c-superficie); color:var(--c-texto); resize:none; overflow-y:auto;
  min-height:120px; max-height:60vh; line-height:1.5; transition:border-color .15s ease;
}
.band-comentario-input-modal:focus{ outline:none; border-color:var(--c-azul-oscuro); box-shadow:0 0 0 1px var(--c-azul-oscuro); }
.band-comentario-adjuntar-fila{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:14px; }
.band-comentario-adjuntar-pista{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.band-comentario-adjunto-preview{
  display:flex; align-items:center; gap:12px; margin-top:14px; padding:10px 14px;
  border-radius:var(--radio-md); border:1px solid var(--c-borde); background:var(--c-superficie);
  animation:band-comentario-adjunto-in .2s var(--resorte);
}
@keyframes band-comentario-adjunto-in{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:translateY(0); } }
.band-comentario-adjunto-preview img{
  width:52px; height:52px; border-radius:var(--radio-sm); object-fit:cover; flex:none;
  border:1px solid var(--c-borde);
}
.band-comentario-adjunto-icono{
  width:52px; height:52px; border-radius:var(--radio-sm); flex:none; font-size:16px;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-bg); border:1px solid var(--c-borde);
}
.band-comentario-adjunto-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; text-align:left; }
.band-comentario-adjunto-nombre{
  font-size:var(--fs-md); font-weight:600; color:var(--c-texto);
  white-space:normal; overflow-wrap:anywhere;
}
.band-comentario-adjunto-nombre a{ color:inherit; text-decoration:none; }
.band-comentario-adjunto-nombre a:hover{ text-decoration:underline; }
.band-comentario-adjunto-nota{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.band-comentario-adjunto-quitar{
  flex:none; width:28px; height:28px; border-radius:999px; border:1px solid var(--c-borde);
  background:var(--c-bg); color:var(--c-texto-sec); font-size:var(--fs-md); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:color .15s ease, border-color .15s ease, transform .15s var(--resorte);
}
.band-comentario-adjunto-quitar:hover{ color:var(--c-rubi); border-color:rgba(220,38,38,.35); transform:scale(1.08); }
.band-comentario-adjunto-quitar:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.bandeja-import-fabs{ display:flex; gap:10px; margin-left:auto; flex:none; align-self:center; }
.bandeja-fab-icono{
  width:44px; height:44px; border-radius:999px; flex:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--c-borde); background:var(--c-superficie); color:var(--c-texto-sec);
  box-shadow:var(--sombra-suave);
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte), background .15s ease, color .15s ease, border-color .15s ease;
}
.bandeja-fab-icono:hover{ transform:translateY(-3px) scale(1.06); box-shadow:var(--sombra-flotante); }
.bandeja-fab-icono:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.bandeja-fab-importar{ background:linear-gradient(135deg,var(--c-azul),#c2600f); border-color:transparent; color:var(--c-texto-sobre-naranja); }
.bandeja-fab-vaciar:hover{ color:var(--c-rubi); border-color:rgba(220,38,38,.35); }
.band-th-aprobacion{ color:var(--c-texto); font-weight:800; }
td.band-td-aprobacion{ background:rgba(238,121,25,.035); border-left:1px solid rgba(238,121,25,.12); border-right:1px solid rgba(238,121,25,.12); }
[data-theme="dark"] td.band-td-aprobacion{ background:rgba(245,163,86,.04); }
#bandeja-table-wrap .apr-estado{ font-size:var(--fs-sm); font-weight:800; padding:5px 13px; box-shadow:0 1px 2px rgba(20,20,20,.07); }
.band-td-aprobacion .band-autorizadores{ display:inline-block; margin-top:5px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.seg-autorizadores{ display:inline-block; margin-top:3px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.band-aprobacion-btn{
  background:transparent; border:none; padding:2px; border-radius:var(--radio-sm); cursor:pointer;
  font:inherit; color:inherit; transition:transform .15s var(--resorte);
}
.band-aprobacion-btn:hover{ transform:scale(1.03); }
.band-aprobacion-btn:hover .apr-estado{ box-shadow:0 2px 6px rgba(20,20,20,.12); }
.band-aprobacion-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
#bandeja-resumen{ display:flex; justify-content:center; margin:4px 0 22px; }
.bandeja-resumen-card{
  width:100%; max-width:520px; padding:16px 20px; border-radius:var(--radio-lg);
  background:var(--c-superficie); border:1px solid var(--c-borde); box-shadow:var(--sombra-suave);
}
.bandeja-resumen-card.bandeja-resumen-primera-vez{
  opacity:0; transform:translateY(8px); animation:bandeja-kpi-entrar .5s var(--resorte) .22s forwards;
}
.bandeja-resumen-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:11px; }
.bandeja-resumen-header h3{ font-size:var(--fs-md); font-weight:700; margin:0; color:var(--c-texto); }
.bandeja-resumen-veredicto{ font-size:var(--fs-sm); font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.bandeja-veredicto-verde{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.bandeja-veredicto-ambar{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.bandeja-veredicto-rojo{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.bandeja-resumen-barra{ display:flex; width:100%; height:8px; border-radius:999px; overflow:hidden; background:var(--c-pill); }
.bandeja-resumen-seg{ height:100%; transition:width .7s var(--resorte); }
.bandeja-resumen-leyenda{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 16px; margin-top:11px; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.bandeja-resumen-item{ display:inline-flex; align-items:center; gap:6px; }
.bandeja-resumen-item i{ width:8px; height:8px; border-radius:50%; display:inline-block; flex:none; }
.bandeja-resumen-item b{ color:var(--c-texto); font-weight:700; }
@media (prefers-reduced-motion: reduce){
  .bandeja-resumen-card.bandeja-resumen-primera-vez{ animation:none; opacity:1; transform:none; }
}
.band-chevron{ display:inline-block; transition:transform .15s ease; margin-right:6px; color:var(--c-texto-ter); }
.band-chevron.abierto{ transform:rotate(90deg); }
.band-tramite{ display:inline-block; font-size:var(--fs-sm); font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; }
.band-tramite-pendiente{ color:var(--c-texto-ter); background:var(--c-bg); }
.band-tramite-gestion{ color:var(--c-naranja-texto); background:var(--c-azul-tenue); }
.band-tramite-finalizada{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.band-tramite-aprobacion{ color:#6b7280; background:rgba(156,163,175,.16); }
.bandeja-kpi-separador{ grid-column:1/-1; height:1px; background:var(--c-borde); margin:-3px 0 1px; }
.apr-estado{ display:inline-block; font-size:var(--fs-sm); font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; }
.apr-estado-pendiente{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.apr-estado-autorizado{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.apr-estado-rechazado{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.apr-estado-cancelado{ color:var(--c-texto-ter); background:var(--c-bg); }
.apr-estado-sindatos{ color:var(--c-texto-ter); background:var(--c-bg); }
.importaciones-fallidas{ color:var(--c-ambar); font-weight:600; cursor:help; }
.importaciones-fallidas-ok{ color:var(--c-texto-ter); }
.apr-estado-abierto{ color:var(--c-naranja-texto); background:var(--c-azul-tenue); }
.apr-estado-cerrado{ color:var(--c-texto-ter); background:var(--c-bg); }
.cargue-dropzone{
  border:2px dashed var(--c-borde-fuerte); border-radius:var(--radio-md); padding:30px 18px;
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; cursor:pointer;
  transition:border-color .25s var(--resorte), background .25s var(--resorte), transform .2s var(--resorte);
}
.cargue-dropzone:hover{ border-color:var(--c-texto-ter); }
.cargue-dropzone.sobre{ border-color:var(--c-azul); background:var(--c-azul-tenue); transform:scale(1.006); }
.cargue-dropzone:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.cargue-dropzone-icono{ font-size:20px; line-height:1; }
.cargue-dropzone-titulo{ font-weight:600; font-size:var(--fs-md); color:var(--c-texto); }
.cargue-dropzone-detalle{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.cargue-cola{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.cargue-item{
  display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:var(--radio-md);
  background:var(--c-bg); border:1px solid var(--c-borde);
}
.cargue-item-icono{ flex:none; width:32px; height:32px; border-radius:var(--radio-sm); display:flex; align-items:center; justify-content:center; font-size:var(--fs-md); background:var(--c-pill); }
.cargue-item-cuerpo{ flex:1 1 auto; min-width:0; }
.cargue-item-nombre{ font-weight:600; font-size:var(--fs-sm); color:var(--c-texto); white-space:normal; overflow-wrap:anywhere; }
.cargue-item-meta{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:2px; }
.cargue-item-estado{ flex:none; display:flex; align-items:center; gap:8px; }
.cargue-select-tipo{
  font-size:var(--fs-sm); font-family:inherit; padding:5px 8px; border-radius:var(--radio-sm); border:1px solid var(--c-borde-fuerte);
  background:var(--c-superficie); color:var(--c-texto);
}
.cargue-select-tipo:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:1px; }
.cargue-acciones{ display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.oca-venc-vencido{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.oca-venc-alerta{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.oca-venc-vigente{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.seg-etapa-cerrada{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.seg-etapa-con-orden{ color:var(--c-naranja-texto); background:var(--c-azul-tenue); }
.seg-etapa-sin-orden{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.seg-etapa-cancelada{ color:var(--c-texto-ter); background:var(--c-bg); }
.oca-fin-grid{ display:grid; grid-template-columns:1.15fr 1fr; gap:16px; align-items:stretch; }
.oca-fin-hero{
  position:relative; overflow:hidden; padding:28px 30px; min-height:280px;
  display:flex; flex-direction:column; justify-content:space-between;
  background-image:repeating-linear-gradient(135deg, rgba(17,24,39,.05) 0 1px, transparent 1px 15px);
}
[data-theme="dark"] .oca-fin-hero{ background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px 15px); }
.oca-fin-badge{
  align-self:flex-start; font-size:var(--fs-sm); font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--c-texto-sec); background:var(--c-bg); border:1px solid var(--c-borde);
  padding:6px 14px; border-radius:var(--radio-pill);
}
.oca-fin-hero-valor{ font-family:var(--fuente-display); font-weight:600; letter-spacing:-0.02em; font-size:clamp(20px,2.6vw,30px); line-height:1.15; color:var(--c-texto); margin:18px 0 0; font-variant-numeric:tabular-nums; }
.oca-fin-hero-sub{ font-size:var(--fs-md); color:var(--c-texto-sec); line-height:1.5; margin:14px 0 0; max-width:38ch; }
.oca-fin-lateral{ display:flex; flex-direction:column; gap:16px; }
.oca-fin-osc{
  position:relative; overflow:hidden; border-radius:var(--radio-lg);
  background:#1a1a19; border:1px solid rgba(255,255,255,.08); box-shadow:0 14px 32px rgba(0,0,0,.22);
  padding:20px 22px; color:#fff;
}
.oca-fin-osc::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.34;
  background:linear-gradient(135deg, var(--tile-glow) 0%, transparent 62%);
}
.oca-fin-osc > *{ position:relative; z-index:1; }
.oca-fin-osc-label{ display:block; font-size:var(--fs-sm); font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.oca-fin-tendencia{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.oca-fin-tendencia-valor{ font-size:19px; font-weight:600; letter-spacing:-0.01em; margin-top:6px; font-variant-numeric:tabular-nums; }
.oca-fin-sparkline{ display:flex; align-items:flex-end; gap:3px; height:34px; flex:none; }
.oca-fin-sparkline span{ width:6px; border-radius:2px 2px 0 0; background:rgba(255,255,255,.9); min-height:3px; }
.oca-fin-chico-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; flex:1; }
.oca-fin-chico{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:4px; }
.oca-fin-chico-valor{ font-size:16px; font-weight:600; letter-spacing:-0.01em; font-variant-numeric:tabular-nums; }
.oca-fin-riesgo{ flex-direction:row; align-items:center; text-align:left; gap:12px; }
.oca-fin-riesgo-icono{ flex:none; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:var(--fs-lg); }
.oca-fin-riesgo-valor{ display:block; font-size:var(--fs-lg); font-weight:700; font-variant-numeric:tabular-nums; }
.oca-fin-riesgo-label{ display:block; font-size:var(--fs-sm); color:rgba(255,255,255,.6); margin-top:2px; }
@media (max-width:760px){
  .oca-fin-grid{ grid-template-columns:1fr; }
  .oca-fin-hero{ min-height:auto; }
}
.hist-solped-link{
  background:none; border:none; padding:0; cursor:pointer; font-family:inherit; font-size:inherit;
  color:var(--c-naranja-texto); font-weight:600; text-decoration:none;
}
.hist-solped-link:hover{ text-decoration:underline; }
.hist-borrar-btn{
  display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border-radius:999px; border:1px solid var(--c-borde); background:var(--c-superficie);
  font-size:var(--fs-sm); line-height:1; cursor:pointer; opacity:.7;
  transition:opacity .15s ease, transform .15s var(--resorte), border-color .15s ease, background .15s ease;
}
.hist-borrar-btn:hover{ opacity:1; transform:scale(1.08); border-color:rgba(220,38,38,.35); background:var(--c-rubi-tenue); }
.modal-overlay{
  position:fixed; inset:0; background:rgba(15,18,30,.55); z-index:10001;
  display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(2px);
}
#bandeja-comentario-overlay{ z-index:10050; }
.modal-box{
  position:relative; background:var(--c-superficie); border-radius:var(--radio-lg); box-shadow:0 30px 80px rgba(0,0,0,.35);
  max-width:1100px; width:100%; max-height:90vh; overflow-y:auto; padding:32px;
}
.modal-close-btn{
  position:absolute; top:16px; right:16px; width:32px; height:32px; border-radius:999px; border:none;
  background:var(--c-bg); color:var(--c-texto-sec); font-size:var(--fs-lg); cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.modal-close-btn:hover{ background:var(--c-borde); }
.hist-detalle-header{ margin-bottom:18px; padding-right:36px; }
.hist-detalle-header h2{ font-size:var(--fs-xl); font-weight:600; color:var(--c-texto); margin-bottom:4px; }
.hist-detalle-header p{ font-size:var(--fs-md); color:var(--c-texto-sec); }
.hist-detalle-tabla-wrap{ overflow-x:auto; margin:18px 0; border:1px solid var(--c-borde); border-radius:var(--radio-md); }
.hist-detalle-tabla{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.hist-detalle-tabla th, .hist-detalle-tabla td{ padding:9px 12px; border-bottom:1px solid var(--c-borde); text-align:left; overflow-wrap:break-word; }
.hist-detalle-tabla th{ background:var(--c-bg); font-weight:600; color:var(--c-texto-sec); position:sticky; top:0; }
.hist-detalle-tabla td.hist-detalle-ganador{ background:var(--c-esmeralda-tenue); color:var(--c-esmeralda-2); font-weight:700; }
.hist-detalle-tabla th.hist-detalle-ganador{ background:color-mix(in srgb, var(--c-esmeralda) 16%, var(--c-superficie)); color:var(--c-esmeralda-2); }
@media (max-width:900px){
  .hist-detalle-tabla{ min-width:480px; }
}
.hist-detalle-resumen{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:18px 0; }
.hist-detalle-resumen-item{ background:var(--c-bg); border-radius:var(--radio-sm); padding:12px 14px; }
.hist-detalle-resumen-item-ancho{ grid-column:1 / -1; }
.hist-detalle-resumen-fija{ grid-template-columns:repeat(4,1fr); }
@media (max-width:640px){ .hist-detalle-resumen-fija{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:380px){ .hist-detalle-resumen-fija{ grid-template-columns:1fr; } }
.hist-detalle-resumen-fija-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:480px){ .hist-detalle-resumen-fija-3{ grid-template-columns:1fr; } }
.hist-detalle-resumen-item span{ display:block; }
.hist-detalle-resumen-item .lbl{ font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.3px; color:var(--c-texto-ter); font-weight:600; margin-bottom:3px; }
.hist-detalle-resumen-item .val{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); }
.hist-detalle-justificacion{ background:var(--c-bg); border-radius:var(--radio-sm); padding:14px 16px; font-size:var(--fs-md); color:var(--c-texto-sec); line-height:1.6; white-space:pre-wrap; }
.hist-trend-chart{ display:flex; align-items:flex-end; gap:10px; height:190px; padding:6px 4px 0; overflow-x:auto; }
.hist-trend-col{ flex:1; min-width:44px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; }
.hist-trend-valor{ font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); white-space:nowrap; margin-bottom:5px; }
.hist-trend-bar{ width:100%; max-width:38px; border-radius:7px 7px 3px 3px; background:linear-gradient(180deg,var(--c-azul-claro),var(--c-azul)); min-height:4px; transition:height .4s ease; }
.hist-trend-label{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:6px; text-align:center; white-space:nowrap; }
.hist-trend-col.sin-compras .hist-trend-valor{ color:var(--c-texto-ter); font-weight:500; }
.hist-trend-col.sin-compras .hist-trend-bar{ min-height:0; }
.sello-mini{
  position:absolute; top:13px; right:-36px; width:132px;
  transform:rotate(45deg); text-align:center;
  background:linear-gradient(135deg, var(--c-esmeralda), var(--c-esmeralda-2));
  color:#042712; font-size:var(--fs-sm); font-weight:800; letter-spacing:.7px;
  text-transform:uppercase; padding:3px 0;
  box-shadow:0 3px 10px rgba(48,209,88,.4);
}
.insight-box{ font-size:var(--fs-md); color:var(--c-texto-sec); background:var(--c-azul-tenue); border:1px solid rgba(238,121,25,.18); border-radius:var(--radio-md); padding:14px 18px; margin-bottom:22px; }
.insight-box strong{ color:var(--c-texto); }
.empty-hint{ font-size:var(--fs-md); color:var(--c-texto-ter); font-style:italic; padding:10px 2px; }
.chart{ display:flex; flex-direction:column; gap:14px; margin-bottom:26px; }
.chart-row{ display:flex; flex-direction:column; gap:6px; }
.chart-label{ display:flex; justify-content:space-between; align-items:baseline; font-size:var(--fs-md); gap:10px; }
.chart-vendor-group{ display:flex; align-items:center; gap:8px; min-width:0; flex:1 1 auto; }
.chart-vendor{ font-weight:600; white-space:normal; overflow-wrap:anywhere; min-width:0; }
.chart-amount{ font-weight:700; flex:none; }
.chart-track{ height:13px; border-radius:999px; background:rgba(17,24,39,.06); border:1px solid rgba(17,24,39,.09); overflow:hidden; box-shadow:inset 0 1px 2px rgba(17,24,39,.08); }
.chart-bar{ height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg, var(--c-azul), var(--c-azul-claro)); transition:width .6s var(--resorte); }
.chart-bar.best{ background:linear-gradient(90deg, var(--c-esmeralda), var(--c-esmeralda-2)); }
.chart-hero{ padding:16px 18px; border-radius:var(--radio-md); background:rgba(17,24,39,.035); border:1px solid rgba(17,24,39,.08); margin-bottom:22px; }
.chart-hero .chart-track{ height:20px; }
.chart-hero .chart-label{ font-size:var(--fs-md); }
.chart-hero .chart-vendor{ font-weight:700; }
.chart-hero .chart-amount{ font-size:var(--fs-lg); font-weight:800; }
.table-wrapper{ overflow-x:auto; border-radius:var(--radio-md); border:1px solid var(--c-borde); }
table.comparativa{ width:100%; border-collapse:collapse; min-width:640px; font-size:var(--fs-md); }
table.comparativa th, table.comparativa td{ padding:11px 14px; text-align:left; white-space:normal; overflow-wrap:anywhere; }
table.comparativa td.tabular, table.comparativa td.num, table.comparativa .tag-mejor{ white-space:nowrap; }
table.comparativa thead th{ background:rgba(17,24,39,.06); font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.5px; color:var(--c-texto-ter); font-weight:700; }
table.comparativa tbody tr{ border-top:1px solid rgba(17,24,39,.07); }
table.comparativa tbody tr.fila-mejor{ background:rgba(48,209,88,.08); }
table.comparativa td.celda-dinero{ font-weight:700; }
table.comparativa th.th-ordenable, table.bd-table th.th-ordenable{ cursor:pointer; user-select:none; transition:color .15s ease; }
table.comparativa th.th-ordenable:hover, table.bd-table th.th-ordenable:hover{ color:var(--c-texto); }
table.comparativa th.th-ordenable:focus-visible, table.bd-table th.th-ordenable:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:-2px; }
table.comparativa th.th-ordenable.activo, table.bd-table th.th-ordenable.activo{ color:var(--c-naranja-texto); }
.tag-mejor{ display:inline-block; flex:none; white-space:nowrap; background:linear-gradient(135deg,var(--c-esmeralda),var(--c-esmeralda-2)); color:#042712; font-size:var(--fs-sm); font-weight:800; letter-spacing:.5px; padding:3px 9px; border-radius:999px; text-transform:uppercase; }
.diff-pct{ color:var(--c-texto-ter); font-size:var(--fs-sm); }
.chart-row[data-tt-id], .donut-seg, .donut-legend-item{ cursor:pointer; }
.chart-row[data-tt-id] .chart-track{ transition:box-shadow .15s ease, transform .15s ease; }
.chart-row.chart-hover-active .chart-track{ box-shadow:0 0 0 2px rgba(238,121,25,.4); transform:scaleY(1.08); }
.chart-tooltip{
  position:fixed; z-index:10000; pointer-events:none;
  background:#1a1a19; border:1px solid rgba(255,255,255,.1);
  border-radius:12px; padding:11px 14px; font-size:var(--fs-sm); color:#f2f2f0;
  box-shadow:0 10px 30px rgba(0,0,0,.35); opacity:0; transform:translateY(4px);
  transition:opacity .12s ease, transform .12s ease; max-width:250px;
}
.chart-tooltip.mostrar{ opacity:1; transform:translateY(0); }
.chart-tooltip .tt-title{ font-weight:600; margin-bottom:6px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.14); }
.chart-tooltip .tt-row{ display:flex; justify-content:space-between; gap:16px; color:rgba(242,242,240,.65); padding:1px 0; }
.chart-tooltip .tt-row strong{ color:#fff; font-weight:600; font-variant-numeric:tabular-nums; }
.chart-tooltip .tt-comentario{ white-space:normal; line-height:1.4; color:rgba(242,242,240,.85); }
.donut-wrap{ display:flex; align-items:center; gap:30px; flex-wrap:wrap; margin-bottom:26px; padding:20px; border-radius:var(--radio-md); background:rgba(17,24,39,.035); border:1px solid rgba(17,24,39,.08); }
.donut-chart-area{ flex:none; position:relative; filter:drop-shadow(0 8px 20px rgba(17,24,39,.12)); }
.donut-svg{ display:block; overflow:visible; }
.donut-seg{ stroke-linecap:round; transition:opacity .15s ease, filter .15s ease; }
.donut-seg.chart-hover-active{ opacity:.82; filter:brightness(1.15); }
.donut-total-label{ fill:var(--c-texto-ter); font-size:var(--fs-2xs); font-weight:700; text-transform:uppercase; letter-spacing:.6px; font-family:var(--fuente); }
.donut-total-value{ fill:var(--c-texto); font-size:var(--fs-lg); font-weight:800; font-family:var(--fuente); }
.donut-legend{ display:flex; flex-direction:column; gap:7px; flex:1; min-width:200px; }
.donut-legend-item{ display:flex; align-items:center; gap:10px; font-size:var(--fs-md); padding:7px 9px; border-radius:9px; transition:background .15s ease; }
.donut-legend-item.chart-hover-active, .donut-legend-item:hover{ background:rgba(17,24,39,.07); }
.donut-swatch{ width:11px; height:11px; border-radius:3px; flex:none; }
.donut-legend-name{ flex:1; font-weight:600; white-space:normal; overflow-wrap:anywhere; }
.donut-legend-value{ color:var(--c-texto-sec); font-size:var(--fs-sm); flex:none; font-variant-numeric:tabular-nums; }
@media (max-width:640px){
  .donut-wrap{ flex-direction:column; align-items:stretch; }
  .donut-chart-area{ align-self:center; }
}
.modo-toggle{ display:inline-flex; flex-wrap:wrap; padding:4px; border-radius:999px; background:rgba(17,24,39,.05); border:1px solid var(--c-borde); gap:4px; }
.modo-toggle button{ border:none; background:transparent; color:var(--c-texto-sec); padding:9px 18px; border-radius:999px; font-size:var(--fs-md); font-weight:600; cursor:pointer; transition:color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.modo-toggle button:hover{ color:var(--c-texto); }
.modo-toggle button.activo{ background:var(--c-azul); color:var(--c-texto-sobre-naranja); box-shadow:0 2px 8px rgba(238,121,25,.3); }
.criterios-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:8px; margin:10px 0 0; }
.criterio-item{ display:flex; align-items:center; gap:9px; font-size:var(--fs-md); color:var(--c-texto-sec); background:rgba(17,24,39,.035); border:1px solid rgba(17,24,39,.08); border-radius:var(--radio-sm); padding:9px 12px; cursor:pointer; transition:background .15s var(--resorte), border-color .15s var(--resorte); }
.criterio-item:hover{ background:rgba(17,24,39,.07); }
.criterio-item input{ accent-color:var(--c-azul); width:15px; height:15px; }
.criterio-item-urgente{ border-color:rgba(194,65,12,.22); }
.criterio-item-urgente:has(input:checked){ background:var(--c-ambar-tenue); border-color:#c2410c; color:#9a3412; font-weight:700; }
[data-theme="dark"] .criterio-item-urgente:has(input:checked){ color:var(--c-ambar); }
.justificacion-panel{
  margin-top:22px; padding:20px 22px; border-radius:var(--radio-lg);
  background:linear-gradient(155deg, var(--c-ambar-tenue) 0%, var(--c-superficie) 58%);
  border:1px solid rgba(194,65,12,.2);
}
.justificacion-panel-header{ display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.justificacion-panel-icon{
  flex:none; width:44px; height:44px; border-radius:14px;
  display:flex; align-items:center; justify-content:center; font-size:var(--fs-xl);
  background:linear-gradient(135deg, rgba(194,65,12,.18), rgba(194,65,12,.06));
  border:1px solid rgba(194,65,12,.25);
}
.justificacion-panel-titulos{ flex:1; min-width:200px; }
.justificacion-panel-titulo{ font-size:var(--fs-lg); font-weight:700; color:var(--c-texto); display:block; }
.justificacion-panel-sub{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin-top:3px; max-width:520px; line-height:1.45; }
.justificacion-subeyebrow{ font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:1.2px; color:var(--c-texto-ter); font-weight:700; display:block; }
.justificacion-estado-pill{
  flex:none; font-size:var(--fs-sm); font-weight:800; letter-spacing:.4px; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; white-space:nowrap; margin-left:auto;
  transition:background .2s var(--resorte), color .2s var(--resorte);
}
.justificacion-estado-pill.obligatoria{ background:#c2410c; color:#fff; }
.justificacion-estado-pill.completa{ background:var(--c-esmeralda-2); color:#fff; }
.justificacion-campo textarea{ transition:border-color .2s var(--resorte), box-shadow .2s var(--resorte); }
.justificacion-campo.requiere-atencion textarea{ border-color:#c2410c; box-shadow:0 0 0 3px rgba(194,65,12,.12); }
.justificacion-campo.completa textarea{ border-color:var(--c-esmeralda-2); box-shadow:0 0 0 3px rgba(21,128,61,.1); }
.proveedor-spotlight-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-top:8px; }
.proveedor-spotlight{
  border-radius:var(--radio-lg); padding:20px 22px; color:#fff;
  display:flex; flex-direction:column; justify-content:space-between; gap:20px; min-height:138px;
  box-shadow:0 10px 26px rgba(20,20,20,.16);
}
.spotlight-ok{ background:linear-gradient(150deg,#0b3320 0%,#15803d 55%,#22c55e 100%); }
.spotlight-warn{ background:linear-gradient(150deg,#3a0a0a 0%,#b91c1c 55%,#ef4444 100%); }
.spotlight-neutro{ background:linear-gradient(150deg,#1c1c1a 0%,#3a3a36 55%,#5c5c53 100%); }
.spotlight-titulo-row{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.spotlight-nombre{ font-family:var(--fuente-display); font-size:var(--fs-xl); font-weight:700; letter-spacing:-.01em; line-height:1.2; }
.spotlight-badge{ font-size:var(--fs-sm); font-weight:800; letter-spacing:.3px; text-transform:uppercase; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.32); padding:3px 9px; border-radius:999px; white-space:nowrap; }
.spotlight-stats{ font-size:var(--fs-sm); color:rgba(255,255,255,.82); margin-top:6px; }
.spotlight-bottom{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid rgba(255,255,255,.18); }
.spotlight-estado{ font-size:var(--fs-sm); font-weight:600; color:#fff; }
.spotlight-ver-btn{
  flex:none; width:34px; height:34px; border-radius:999px; font-size:var(--fs-lg); line-height:1;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s var(--resorte), transform .2s var(--resorte);
}
.spotlight-ver-btn:hover{ background:rgba(255,255,255,.3); transform:translateX(2px); }
.spotlight-seleccionable{ border:none; font:inherit; text-align:left; cursor:pointer; -webkit-appearance:none; appearance:none; transition:transform .15s var(--resorte), box-shadow .15s var(--resorte), outline-color .15s var(--resorte); }
.spotlight-seleccionable:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(20,20,20,.22); }
.spotlight-seleccionable:focus-visible{ outline:3px solid var(--c-azul); outline-offset:2px; }
.spotlight-activo{ outline:3px solid var(--c-azul); outline-offset:2px; }
.spotlight-radio{
  flex:none; width:27px; height:27px; border-radius:999px; font-size:var(--fs-md); font-weight:800; color:#fff;
  border:2px solid rgba(255,255,255,.55); display:flex; align-items:center; justify-content:center;
  transition:background .15s var(--resorte), border-color .15s var(--resorte);
}
.spotlight-activo .spotlight-radio{ background:var(--c-azul); border-color:var(--c-azul); }
.selection-feedback{ margin-top:10px; display:flex; flex-direction:column; gap:8px; }
.cuadro-separado-grupo{ border:1px solid var(--c-borde); border-radius:var(--radio-md); margin-bottom:12px; overflow:hidden; }
.cuadro-separado-header{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 16px;
  background:var(--c-bg); border-bottom:1px solid var(--c-borde);
}
.cuadro-separado-nombre{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); }
.cuadro-separado-meta{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:1px; }
.cuadro-separado-total{ font-size:var(--fs-md); font-weight:700; color:var(--c-esmeralda); white-space:nowrap; }
.cuadro-separado-tabla{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.cuadro-separado-tabla th{ text-align:left; padding:7px 16px; font-size:var(--fs-sm); text-transform:uppercase; letter-spacing:.3px; color:var(--c-texto-ter); font-weight:600; }
.cuadro-separado-tabla td{ padding:8px 16px; border-top:1px solid var(--c-borde); color:var(--c-texto); }
.cuadro-separado-tabla td.num{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.tag-forzado{ display:inline-block; font-size:var(--fs-sm); font-weight:700; color:var(--c-ambar); background:var(--c-ambar-tenue); border-radius:999px; padding:1px 7px; margin-left:6px; vertical-align:middle; }
.cuadro-separado-sincotizar{ border:1px dashed var(--c-borde); border-radius:var(--radio-md); padding:12px 16px; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.selection-feedback p{ font-size:var(--fs-md); padding:11px 15px; border-radius:var(--radio-sm); }
.feedback-ok{ color:#0f6b34; background:var(--c-esmeralda-tenue); border:1px solid rgba(22,163,74,.28); }
.feedback-warn{ color:var(--c-rubi-texto); background:var(--c-rubi-tenue); border:1px solid rgba(220,38,38,.25); }
.feedback-info{ color:var(--c-texto-sec); background:rgba(17,24,39,.04); border:1px solid var(--c-borde); }
.alertas-resultado-wrap{ display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.alerta-resultado{ font-size:var(--fs-md); padding:11px 15px; border-radius:var(--radio-sm); margin:0; }
.feedback-alerta-media{ color:#9a3412; background:var(--c-ambar-tenue); border:1px solid rgba(194,65,12,.25); }
[data-theme="dark"] .feedback-alerta-media{ color:var(--c-ambar); }
.consulta-banner{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  background:var(--c-ambar-tenue); border-bottom:1px solid rgba(194,65,12,.25);
  color:#9a3412; font-size:var(--fs-md); font-weight:600; padding:10px 24px;
}
[data-theme="dark"] .consulta-banner{ color:var(--c-ambar); }
.consulta-banner strong{ font-weight:800; }
#app-root.modo-consulta #meta-card, #app-root.modo-consulta #providers-container,
#app-root.modo-consulta #items-matrix-container, #app-root.modo-consulta #selection-card{
  opacity:.82;
}
.aprobacion-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-top:18px; }
.campo-con-lapiz{ display:flex; align-items:center; gap:6px; }
.campo-con-lapiz input{ flex:1; }
.btn-lapiz{
  flex:none; width:34px; height:34px; border-radius:var(--radio-sm); border:1px solid var(--c-borde);
  background:var(--c-superficie); cursor:pointer; font-size:var(--fs-md); display:flex; align-items:center; justify-content:center;
}
.btn-lapiz:hover{ background:var(--c-bg); }
.campo input[readonly]{ background:var(--c-bg); color:var(--c-texto-sec); cursor:default; }
.hint-strip{ display:flex; align-items:flex-start; gap:9px; font-size:var(--fs-sm); color:var(--c-texto-ter); margin:14px 2px 0; }
.hint-strip svg{ flex:none; margin-top:1px; }
.toast{
  position:fixed; left:50%; bottom:26px; transform:translate(-50%,20px);
  background:#1a1a19; border:1px solid rgba(255,255,255,.1);
  color:#f2f2f0; padding:12px 20px; border-radius:999px;
  font-size:var(--fs-md); font-weight:500; box-shadow:0 12px 34px rgba(0,0,0,.28);
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
  z-index:500; max-width:90vw; text-align:center;
}
.toast.mostrar{ opacity:1; transform:translate(-50%,0); }
.toast.error{ border-color:rgba(220,38,38,.5); background:#341313; }
.aviso-inactividad{
  position:fixed; left:50%; bottom:calc(24px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%);
  z-index:600; width:min(560px, calc(100vw - 32px));
  display:flex; align-items:center; gap:16px; padding:14px 16px 14px 14px; border-radius:20px;
  background:#1a1a19; color:#f2f2f0; border:1px solid rgba(255,255,255,.1);
  box-shadow:0 18px 50px rgba(0,0,0,.35), 0 4px 14px rgba(0,0,0,.25);
  animation:aviso-inactividad-entrar .5s var(--resorte);
}
@keyframes aviso-inactividad-entrar{ from{ opacity:0; transform:translate(-50%, 18px) scale(.98); } }
.aviso-inactividad-reloj{ position:relative; flex:none; width:44px; height:44px; }
.aviso-inactividad-reloj svg{ width:44px; height:44px; transform:rotate(-90deg); display:block; }
.aviso-inactividad-pista{ fill:none; stroke:rgba(255,255,255,.12); stroke-width:3; }
.aviso-inactividad-progreso{
  fill:none; stroke:#F5A356; stroke-width:3; stroke-linecap:round;
  stroke-dasharray:119.38; stroke-dashoffset:0; transition:stroke-dashoffset 1s linear;
}
.aviso-inactividad-reloj span{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--fuente-display); font-weight:600; font-size:var(--fs-lg); font-variant-numeric:tabular-nums;
}
.aviso-inactividad-cuerpo{ flex:1; min-width:0; }
.aviso-inactividad-titulo{ font-family:var(--fuente-display); font-weight:600; font-size:var(--fs-lg); margin:0 0 2px; }
.aviso-inactividad-texto{ font-size:var(--fs-sm); line-height:1.45; color:#b8b8b2; margin:0; }
.aviso-inactividad .btn{ flex:none; }
@media (max-width:560px){
  .aviso-inactividad{ flex-wrap:wrap; }
  .aviso-inactividad .btn{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .aviso-inactividad{ animation:none; }
  .aviso-inactividad-progreso{ transition:none; }
}
.admin-ultimo-acceso{ white-space:nowrap; color:var(--c-texto-sec); font-size:var(--fs-sm); }
.avisos-sistema{
  position:fixed; left:calc(20px + env(safe-area-inset-left, 0px)); bottom:calc(20px + env(safe-area-inset-bottom, 0px));
  z-index:9600; width:min(440px, calc(100vw - 110px));
  display:flex; flex-direction:column-reverse; gap:8px; pointer-events:none;
}
.aviso-sistema{
  pointer-events:auto; display:flex; align-items:center; gap:12px; padding:10px 12px 10px 16px;
  border-radius:var(--radio-md); background:#1a1a19; color:#f2f2f0; border:1px solid rgba(255,255,255,.1);
  box-shadow:0 12px 36px rgba(0,0,0,.3); font-size:var(--fs-md); line-height:1.4;
  animation:aviso-sistema-entrar .4s var(--resorte);
}
.aviso-sistema > span:not(.aviso-sistema-punto){ flex:1; min-width:0; }
.aviso-sistema strong{ font-family:var(--fuente-display); font-weight:600; }
.aviso-sistema .btn{ flex:none; }
.aviso-sistema-punto{ flex:none; width:8px; height:8px; border-radius:50%; background:#F5A356; box-shadow:0 0 0 4px rgba(245,163,86,.18); }
@keyframes aviso-sistema-entrar{ from{ opacity:0; transform:translateY(10px); } }
@media (max-width:560px){
  .avisos-sistema{ left:16px; width:calc(100vw - 96px); }
  .aviso-sistema{ flex-wrap:wrap; } .aviso-sistema .btn{ width:100%; }
}
@media (prefers-reduced-motion: reduce){ .aviso-sistema{ animation:none; } }
@media print{ .avisos-sistema{ display:none; } }
.asistente-fab{
  position:fixed; right:26px; bottom:26px; z-index:9500;
  width:56px; height:56px; border-radius:999px; border:none; cursor:pointer;
  background:linear-gradient(135deg,var(--c-azul),#c2600f); color:var(--c-texto-sobre-naranja); font-size:16px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(238,121,25,.42), 0 2px 10px rgba(0,0,0,.22);
  transition:transform .2s var(--resorte), box-shadow .2s var(--resorte);
}
.asistente-fab:hover{ transform:translateY(-2px) scale(1.05); box-shadow:0 14px 32px rgba(238,121,25,.5), 0 2px 10px rgba(0,0,0,.26); }
.asistente-fab:active{ transform:translateY(0) scale(.96); }
.asistente-fab:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
#login-screen:not([hidden]) ~ #asistente-fab{ display:none; }
.asistente-overlay{ z-index:10050; padding:24px; }
.asistente-caja{
  width:min(640px,100%); max-height:82vh; display:flex; flex-direction:column;
  background:#1a1a19; border:1px solid rgba(255,255,255,.1); border-radius:26px;
  box-shadow:0 30px 80px rgba(0,0,0,.5); overflow:hidden;
  animation:asistente-entrar .3s var(--resorte) both;
  transition:width .3s var(--resorte);
}
@keyframes asistente-entrar{ from{ opacity:0; transform:translateY(14px) scale(.97); } to{ opacity:1; transform:translateY(0) scale(1); } }
.asistente-caja.asistente-caja-grande{ width:min(880px,100%); }
.asistente-caja.asistente-caja-grande .asistente-mensajes{ max-height:72vh; }
.asistente-header{ display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid rgba(255,255,255,.08); flex:none; }
.asistente-header-titulo{ font-family:var(--fuente-display); font-size:var(--fs-lg); font-weight:600; color:#fff; letter-spacing:-.01em; }
.asistente-header-acciones{ display:flex; gap:6px; }
.asistente-header-btn{ width:30px; height:30px; border-radius:999px; border:none; background:rgba(255,255,255,.08); color:rgba(255,255,255,.75); font-size:var(--fs-md); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s ease, color .15s ease; }
.asistente-header-btn:hover{ background:rgba(255,255,255,.16); color:#fff; }
.asistente-mensajes{ flex:1; min-height:140px; max-height:52vh; overflow-y:auto; padding:18px 20px; display:flex; flex-direction:column; gap:12px; transition:max-height .3s var(--resorte); }
.asistente-mensaje{ display:flex; align-items:flex-start; gap:8px; }
.asistente-mensaje-usuario{ justify-content:flex-end; }
.asistente-avatar{ flex:none; width:26px; height:26px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-size:var(--fs-sm); font-weight:700; letter-spacing:.02em; overflow:hidden; }
.asistente-avatar-usuario{ background:linear-gradient(135deg,var(--c-azul),#c2600f); color:var(--c-texto-sobre-naranja); }
.asistente-avatar-bot{ background:#0d0d0c; border:1px solid rgba(255,255,255,.12); }
.asistente-avatar-bot img{ width:100%; height:100%; object-fit:cover; object-position:left center; display:block; }
.asistente-burbuja{ max-width:82%; padding:10px 15px; border-radius:18px; font-size:var(--fs-md); line-height:1.55; white-space:pre-wrap; overflow-wrap:break-word; }
.asistente-mensaje-usuario .asistente-burbuja{ background:linear-gradient(135deg,var(--c-azul),#c2600f); color:var(--c-texto-sobre-naranja); border-bottom-right-radius:6px; }
.asistente-mensaje-bot .asistente-burbuja{ background:rgba(255,255,255,.08); color:#f2f2f0; border-bottom-left-radius:6px; }
.asistente-burbuja p{ margin:0 0 6px; }
.asistente-burbuja p:last-child{ margin-bottom:0; }
.asistente-burbuja ul{ margin:4px 0 6px; padding-left:18px; }
.asistente-burbuja ul:last-child{ margin-bottom:0; }
.asistente-burbuja li{ margin:2px 0; }
.asistente-burbuja strong{ font-weight:700; }
.asistente-mensaje-vacio{ color:rgba(255,255,255,.5); font-size:var(--fs-md); text-align:center; padding:24px 14px; margin:auto; line-height:1.6; }
.asistente-cuerpo-bot{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; max-width:82%; min-width:0; }
.asistente-cuerpo-bot .asistente-burbuja{ max-width:100%; }
.asistente-enlaces{ display:flex; flex-wrap:wrap; gap:6px; }
.asistente-enlace-btn{
  font:inherit; font-size:var(--fs-sm); font-weight:600; color:#f2f2f0; cursor:pointer;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:999px;
  padding:6px 13px; transition:background .15s ease, border-color .15s ease, transform .15s var(--resorte);
}
.asistente-enlace-btn:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.24); transform:translateY(-1px); }
.asistente-enlace-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.asistente-typing{ display:flex; align-items:center; gap:4px; padding:3px 2px; }
.asistente-typing span{ width:6px; height:6px; border-radius:999px; background:rgba(255,255,255,.55); animation:asistente-typing-rebote 1.1s ease-in-out infinite; }
.asistente-typing span:nth-child(2){ animation-delay:.15s; }
.asistente-typing span:nth-child(3){ animation-delay:.3s; }
@keyframes asistente-typing-rebote{ 0%,60%,100%{ transform:translateY(0); opacity:.5; } 30%{ transform:translateY(-4px); opacity:1; } }
.asistente-input-pill{ flex:none; display:flex; align-items:flex-end; gap:10px; padding:12px 14px; margin:0 14px 14px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:22px; transition:border-color .15s ease; }
.asistente-input-pill:focus-within{ border-color:rgba(255,255,255,.55); box-shadow:0 0 0 1px rgba(255,255,255,.55); }
.asistente-input{ flex:1; background:none; border:none; color:#fff; font:inherit; font-size:var(--fs-md); line-height:1.4; resize:none; max-height:120px; padding:6px 2px; }
.asistente-input::placeholder{ color:rgba(255,255,255,.4); }
.asistente-input:focus{ outline:none; background:none; border-color:transparent; }
.asistente-enviar-btn{ flex:none; width:34px; height:34px; margin-bottom:1px; border-radius:999px; border:none; background:#fff; color:#181110; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .15s var(--resorte), opacity .15s ease; }
.asistente-enviar-btn:hover:not(:disabled){ transform:scale(1.07); }
.asistente-enviar-btn:disabled{ opacity:.4; cursor:default; }
.asistente-enviar-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.asistente-mic-btn{ flex:none; width:34px; height:34px; margin-bottom:1px; border-radius:999px; border:none; background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s ease, transform .15s var(--resorte), opacity .15s ease; }
.asistente-mic-btn:hover:not(:disabled){ background:rgba(255,255,255,.18); }
.asistente-mic-btn:disabled{ opacity:.4; cursor:default; }
.asistente-mic-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.asistente-mic-btn.grabando{ background:#e5484d; animation:asistente-mic-pulso 1.2s ease-in-out infinite; }
@keyframes asistente-mic-pulso{ 0%,100%{ box-shadow:0 0 0 0 rgba(229,72,77,.45); } 50%{ box-shadow:0 0 0 7px rgba(229,72,77,0); } }
@media (prefers-reduced-motion: reduce){
  .asistente-caja{ animation:none; }
  .asistente-typing span{ animation:none; opacity:.8; }
}
@media (max-width:640px){
  .asistente-fab{ right:18px; bottom:18px; }
  .asistente-mensajes{ max-height:60vh; }
}
@media (max-width:640px){
  .container{ padding:20px 16px 80px; }
  .topbar{ padding:12px 16px; }
  .card{ padding:18px 16px; }
  .meta-grid .span-2{ grid-column:span 1; }
  .quote-totals-grid{ grid-template-columns:1fr; }
  .aprobacion-grid{ grid-template-columns:1fr; }
  .modo-toggle{ width:100%; }
  .modo-toggle button{ flex:1; text-align:center; padding:8px 10px; font-size:var(--fs-sm); }
  .logo-img{ height:26px; }
  .topbar-tagline{ display:none; }
}
#print-view{ display:none; }
@media print{
  @page{ margin:15mm 18mm 16mm 18mm; }
  * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  #app-root, #home-screen, #databases-root, #aprobaciones-root, #seguimiento-solped-root, #ordenes-autorizadas-root, .topbar, .toast, .no-print{ display:none !important; }
  #print-view{ display:block !important; }
  :root{ color-scheme:light; }
  :root[data-theme="dark"]{
    --c-bg:#f0f0ee; --c-superficie:#ffffff; --c-pill:#ededed; --c-borde:#e2e2df; --c-borde-fuerte:#d4d4d0;
    --c-texto:#111827; --c-texto-sec:#374151; --c-texto-ter:#5b6270; --c-texto-cuat:#5b6270;
    --c-azul:#EE7919; --c-azul-oscuro:#C2600F; --c-azul-claro:#F5A356; --c-azul-tenue:#FDF0E4;
    --c-esmeralda-2:#15803d; --c-esmeralda-tenue:#f0fdf4; --c-rubi:#dc2626; --c-rubi-tenue:#fef2f2; --c-rubi-texto:#b91c1c;
    --c-ambar:#c2410c; --c-ambar-tenue:#fff7ed;
    --vidrio-fondo:rgba(255,255,255,.55); --vidrio-fondo-hover:rgba(255,255,255,.8); --vidrio-borde:rgba(255,255,255,.6);
    --vidrio-fondo-solido:rgba(255,255,255,.88);
    --c-naranja-texto:#ad4f09; --tarjeta-solida:rgba(255,255,255,.92); --tarjeta-borde:rgba(17,24,39,.12); --c-insignia:#dc2626;
  }
  html, #print-view{ background:#ffffff !important; }
  body{ background:#ffffff !important; color:#20242f !important; font-family:Arial, Helvetica, sans-serif; font-size:10.3pt; }
  .print-header{
    display:flex; align-items:center; gap:16px; flex-wrap:wrap;
    background:linear-gradient(120deg,#fdf1e6 0%,#ffffff 78%);
    border:1px solid #f3c79a; border-radius:16px;
    padding:14px 22px; margin-bottom:16px;
    page-break-after:avoid; page-break-inside:avoid;
  }
  .print-logo{ height:34px; width:auto; display:block; margin-bottom:5px; }
  .print-header h1{ font-size:18pt; margin:0; color:#181110; letter-spacing:-.01em; }
  .print-header .sub{ font-size:9.3pt; color:#7a6a58; margin-top:3px; }
  .print-header-tags{ flex:1 0 100%; display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-start; margin:2px 0 0; }
  .print-tag{ font-size:8pt; background:#fff; border:1px solid #f3c79a; color:#8a4a12; border-radius:999px; padding:3px 10px; white-space:nowrap; }
  .print-card{ background:#ffffff; border:1px solid #e7e2da; border-radius:14px; padding:16px 18px; margin-bottom:16px; page-break-inside:avoid; }
  .print-card.no-avoid{ page-break-inside:auto; }
  #print-view h2{ font-size:12pt; margin:0 0 12px; padding-left:10px; border-left:4px solid #ee7919; color:#181110; line-height:1.3; page-break-after:avoid; }
  #print-view .print-card.compacto{ padding:10px 14px; margin-bottom:8px; }
  #print-view .print-card.compacto h2{ font-size:10.5pt; margin:0 0 6px; }
  .print-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px; }
  .print-grid-2 .print-card.compacto{ margin-bottom:0; }
  .print-card.compacto .print-kpis{ gap:8px; margin-bottom:10px; }
  .print-card.compacto .print-kpi{ min-width:0; padding:9px 11px; }
  .print-kpis{ display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
  .fin-resumen{ display:grid; grid-template-columns:1.3fr 1.3fr 1fr 1fr; gap:8px; }
  .fin-tile{ display:flex; flex-direction:column; justify-content:center; gap:1px; min-width:0; padding:8px 10px; border-radius:9px; border:1px solid #e7e2da; background:#ffffff; }
  .fin-label{ font-size:6.8pt; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:#8790a6; white-space:nowrap; }
  .fin-valor{ font-size:11.5pt; font-weight:800; color:#1f130a; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .fin-sub{ font-size:7pt; color:#8790a6; }
  .fin-total{ background:linear-gradient(135deg,#ffffff 30%,#fdf1e6); border-color:#f6d9b8; }
  .fin-total .fin-valor{ color:#9a4a0b; }
  .fin-tendencia{ flex-direction:row; align-items:center; justify-content:space-between; gap:8px; border:0; background:linear-gradient(120deg,#150c06,#4a2410 60%,#8a3d0f); }
  .fin-tendencia-texto{ display:flex; flex-direction:column; gap:1px; min-width:0; }
  .fin-tendencia .fin-label, .fin-tendencia .fin-sub{ color:rgba(255,255,255,.72); }
  .fin-tendencia .fin-valor{ color:#ffffff; }
  .fin-barras{ display:flex; align-items:flex-end; gap:2px; height:24px; flex:none; }
  .fin-barras span{ width:4px; min-height:2px; border-radius:1px 1px 0 0; background:linear-gradient(#ffb066,#ee7919); }
  .fin-promedio{ background:#f7f9fd; }
  .fin-riesgo{ background:linear-gradient(135deg,#ffffff 30%,#fef2f2); border-color:#fecaca; }
  .fin-riesgo .fin-valor{ color:#b91c1c; }
  .print-kpi{ flex:1; min-width:150px; border:1px solid #e7e2da; border-radius:12px; padding:11px 14px; }
  .print-kpi .k-label{ font-size:7.6pt; text-transform:uppercase; letter-spacing:.4px; color:#8a8378; font-weight:700; }
  .print-kpi .k-value{ font-size:14pt; font-weight:800; color:#181110; margin-top:3px; line-height:1.25; }
  .print-kpi .k-sub{ font-size:8.2pt; color:#8a8378; margin-top:2px; }
  .print-kpi.mejor{ background:#eafbf0; border-color:#bdeccb; }
  .print-kpi.mejor .k-value{ color:#0f6b34; }
  .print-kpi.ahorro{ background:#eafbf0; border-color:#bdeccb; }
  .print-kpi.ahorro .k-value{ color:#0f6b34; }
  .print-kpi.neutro{ background:#fdf7f0; border-color:#f0e2cf; }
  .print-kpi.rechazo{ background:#fdeceb; border-color:#f3c9c4; }
  .print-kpi.rechazo .k-value{ color:#b91c1c; }
  .print-nota{ font-size:8.5pt; color:#8a8378; margin-top:-6px; }
  .print-nota strong{ color:#181110; }
  .print-bar-list{ display:flex; flex-direction:column; gap:9px; }
  .print-bar-row{ display:grid; grid-template-columns:140px 1fr auto; align-items:center; gap:10px; }
  .print-bar-label{ font-size:8.5pt; color:#20242f; white-space:normal; overflow-wrap:anywhere; }
  .print-bar-track{ height:8px; border-radius:999px; background:#f0eee9; overflow:hidden; }
  .print-bar-fill{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#f5a356,#ee7919); }
  .print-bar-valor{ font-size:8.5pt; font-weight:700; color:#181110; white-space:nowrap; }
  table.print-tabla{ width:100%; border-collapse:separate; border-spacing:0; font-size:8.8pt; background:#ffffff; color:#20242f; border:1px solid #e7e2da; border-radius:10px; overflow:hidden; }
  table.print-tabla th, table.print-tabla td{ padding:7px 9px; text-align:left; border-bottom:1px solid #eee; word-wrap:break-word; overflow-wrap:break-word; }
  table.print-tabla .rep-id, table.print-tabla .rep-corto, table.print-tabla .rep-num{ white-space:nowrap; }
  table.print-tabla .rep-num{ text-align:right; font-variant-numeric:tabular-nums; }
  table.print-tabla td.rep-id{ font-weight:700; }
  table.print-tabla .rep-chip{ white-space:nowrap; font-weight:700; }
  table.print-tabla-matriz{ table-layout:fixed; font-size:8pt; }
  table.print-tabla thead th{ background:#fdf1e6; color:#8a4a12; font-size:7.8pt; text-transform:uppercase; letter-spacing:.4px; font-weight:700; border-bottom:1px solid #f3c79a; }
  table.print-tabla tbody tr{ background:#ffffff; }
  table.print-tabla tbody tr:nth-child(even){ background:#fafafa; }
  table.print-tabla tbody tr:last-child td{ border-bottom:none; }
  td.print-mejor{ background:#eafbf0 !important; color:#0f6b34 !important; font-weight:700; }
  .print-tag-mejor{ display:inline-block; background:#16a34a; color:#fff; font-size:7.2pt; font-weight:800; letter-spacing:.3px; padding:2px 7px; border-radius:999px; text-transform:uppercase; margin-right:5px; }
  .print-insight{ background:#fdf1e6; border:1px solid #f3c79a; border-radius:12px; padding:12px 16px; font-size:9.3pt; }
  .print-badge-modo{ display:inline-block; background:#181110; color:#fff; font-size:8pt; font-weight:700; padding:3px 12px; border-radius:999px; margin-bottom:9px; letter-spacing:.2px; }
  .print-signatures{ display:flex; gap:20px; margin-top:4px; }
  .print-signatures > div{ flex:1; background:#fafafa; border:1px solid #eee; border-radius:12px; padding:14px 16px 12px; page-break-inside:avoid; }
  .print-signatures .sig-label{ font-size:7.8pt; text-transform:uppercase; letter-spacing:.4px; color:#8a8378; font-weight:700; }
  .print-signatures .sig-slot{ border-top:1px solid #999; margin-top:32px; padding-top:6px; font-size:9pt; }
  .chart{ margin-bottom:0 !important; gap:11px !important; }
  .chart-hero{ background:#fdf9f4 !important; border:1px solid #f0e6d5 !important; margin-bottom:14px !important; }
  .chart-track{ background:#f0eee9 !important; border:1px solid #e2ddd3 !important; }
  .chart-vendor, .chart-amount{ color:#20242f; }
  .donut-wrap{ background:transparent !important; border:none !important; padding:0 !important; margin-bottom:0 !important; }
  .donut-total-label{ fill:#8a8378 !important; }
  .donut-total-value{ fill:#181110 !important; }
  .donut-legend-value{ color:#8a8378 !important; }
  .donut-legend-name{ color:#181110; }
  .empty-hint{ color:#8a8378 !important; }
  .print-chart-caption{ font-size:8pt; color:#8a8378; margin:10px 0 0; text-align:center; }
  .print-footer{ margin-top:20px; padding-top:10px; border-top:2px solid #ee7919; font-size:7.5pt; color:#8a8378; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .print-footer-full{ margin-top:22px; padding-top:14px; border-top:2px solid #ee7919; display:flex; justify-content:space-between; align-items:flex-end; gap:22px; flex-wrap:wrap; page-break-inside:avoid; }
  .print-footer-badges{ display:flex; align-items:center; gap:10px; flex:none; }
  .print-badges-iso-group{ display:flex; flex-direction:column; gap:4px; }
  .print-badge-iso{ height:34pt; width:auto; display:block; }
  .print-badge-iqnet{ height:34pt; width:auto; display:block; }
  .print-badges-codes{ display:grid; grid-template-columns:repeat(4,1fr); gap:0 4px; }
  .print-badges-codes span{ font-size:5.6pt; color:#0085CA; font-weight:700; text-align:center; white-space:nowrap; }
  .print-footer-contacto{ text-align:right; flex:1; min-width:230px; }
  .print-footer-contacto p{ margin:0; font-size:7.3pt; color:#0039A6; line-height:1.55; }
  .print-footer-web{ color:#ee7919 !important; font-weight:700; margin-top:3px !important; }
}
[data-theme="dark"] .leaflet-container{ background:#262626; }
[data-theme="dark"] .leaflet-bar a{ background:var(--c-superficie); color:var(--c-texto); border-bottom-color:var(--c-borde); }
[data-theme="dark"] .leaflet-bar a:hover{ background:var(--c-pill); }
[data-theme="dark"] .leaflet-control-attribution{ background:rgba(30,30,29,.82) !important; color:var(--c-texto-ter); }
[data-theme="dark"] .leaflet-control-attribution a{ color:var(--c-naranja-texto); }
[data-theme="dark"] .leaflet-tooltip{ background:var(--c-superficie); color:var(--c-texto); border-color:var(--c-borde); }
[data-theme="dark"] .leaflet-tooltip-top:before{ border-top-color:var(--c-superficie); }
/* Leaflet 1.9.4 - BSD-2-Clause - https://leafletjs.com */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
.leaflet-tile::selection {
	background: transparent;
}
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}
.leaflet-container img.leaflet-tile {
	mix-blend-mode: plus-lighter;
}
.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}
.leaflet-pane         { z-index: 400; }
.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }
.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}
.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted;
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}
.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}
.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}
.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted;
	pointer-events: auto;
	}
.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}
.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}
.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}
.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(images/layers.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(images/layers-2x.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}
.leaflet-default-icon-path {
	background-image: url(images/marker-icon.png);
	}
.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}
.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;
	margin: -10px auto 0;
	pointer-events: auto;
	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}
.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;
	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}
.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}
.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}
@media print {
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}
@media (max-width: 600px){
  .modal-overlay{ padding:8px; }
  .modal-box{ padding:18px; }
  .modal-close-btn{ width:40px; height:40px; top:8px; right:8px; }
  .hist-detalle-header{ padding-right:44px; }
}
.admin-salud-alertas{ margin:0 0 4px; padding-left:20px; font-size:var(--fs-md); color:var(--c-texto-sec); }
.admin-salud-alertas li{ margin:3px 0; }
.asistente-sugerencias{ display:flex; flex-direction:column; gap:8px; padding:0 14px 16px; }
.asistente-sugerencia-btn{
  text-align:left; padding:9px 12px; border-radius:12px; font:inherit; font-size:var(--fs-md); cursor:pointer;
  color:rgba(255,255,255,.85); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  transition:background .15s ease, border-color .15s ease, transform .15s ease;
}
.asistente-sugerencia-btn:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.26); transform:translateY(-1px); }
.asistente-sugerencia-btn:focus-visible, .asistente-accion-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.asistente-acciones{ display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
.asistente-accion-btn{
  font:inherit; font-size:var(--fs-sm); padding:3px 9px; border-radius:999px; cursor:pointer;
  color:rgba(255,255,255,.65); background:transparent; border:1px solid rgba(255,255,255,.16);
  transition:background .15s ease, color .15s ease;
}
.asistente-accion-btn:hover{ background:rgba(255,255,255,.1); color:rgba(255,255,255,.95); }
.asistente-accion-btn.activo{ background:rgba(255,255,255,.18); color:#fff; border-color:rgba(255,255,255,.4); }
body{ overflow-wrap:break-word; }
td, th, li, p, h1, h2, h3, h4, .stat-label, .seccion-sub, .empty-hint{ overflow-wrap:break-word; }
.btn{ text-wrap:balance; }
.seccion-plegable > .seccion-header{ cursor:pointer; align-items:center; margin-bottom:0; }
.seccion-plegable:not(.plegada) > .seccion-header{ margin-bottom:14px; }
.seccion-plegable.plegada > *:not(.seccion-header){ display:none !important; }
.seccion-plegable.plegada{ margin-top:14px; }
.seccion-plegable > .seccion-header .seccion-titulo h2{ font-size:var(--fs-seccion); }
.seccion-toggle{
  display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:6px 14px; border-radius:999px;
  border:1px solid var(--vidrio-borde); background:var(--vidrio-fondo); color:var(--c-texto-sec);
  font:inherit; font-size:var(--fs-sm); font-weight:600; cursor:pointer;
  transition:transform .22s var(--resorte), background .2s ease;
}
.seccion-toggle:hover{ background:var(--vidrio-fondo-hover); }
.seccion-toggle:active{ transform:scale(.96); }
.seccion-toggle:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.seccion-toggle::after{
  content:""; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg); transition:transform .28s var(--resorte);
}
.seccion-plegable:not(.plegada) .seccion-toggle::after{ transform:translateY(2px) rotate(-135deg); }
@media (prefers-reduced-motion: reduce){
  .seccion-toggle, .seccion-toggle::after{ transition:none; }
}
.paleta-abrir-btn{
  flex:none; width:44px; height:44px; border-radius:999px; border:1px solid transparent;
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
  cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--c-texto);
  font-family:inherit; transition:transform .2s var(--resorte);
}
.paleta-abrir-btn:hover{ background:var(--vidrio-fondo-hover); transform:translateY(-1px) scale(1.06); }
.paleta-abrir-btn:active{ transform:scale(.95); transition-duration:.12s; }
.paleta-abrir-btn:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.paleta-abrir-btn svg{ width:17px; height:17px; display:block; }
.paleta-overlay{ align-items:flex-start; padding-top:12vh; }
.paleta-caja{
  width:min(640px, 100%); max-height:72vh; display:flex; flex-direction:column; overflow:hidden;
  background:var(--c-superficie); border:1px solid var(--vidrio-borde); border-radius:var(--radio-lg);
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.paleta-input{
  width:100%; padding:18px 20px; font:inherit; font-size:var(--fs-lg); color:var(--c-texto); background:transparent;
  border:none; border-bottom:1px solid var(--c-borde); outline:none;
}
.paleta-input:focus{ border-bottom:2px solid var(--c-azul-oscuro); padding-bottom:17px; }
.paleta-lista{ list-style:none; margin:0; padding:8px; overflow-y:auto; }
.paleta-grupo{ padding:10px 12px 4px; font-size:var(--fs-sm); font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--c-texto-ter); }
.paleta-item{
  display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:var(--radio-md); cursor:pointer;
  color:var(--c-texto); min-height:44px; justify-content:center;
}
.paleta-item[aria-selected="true"], .paleta-item:hover{ background:var(--c-pill); }
.paleta-item[aria-selected="true"]{ box-shadow:inset 0 0 0 2px var(--c-azul); }
.paleta-item-titulo{ font-size:var(--fs-md); font-weight:600; }
.paleta-item-detalle{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.paleta-vacio{ padding:22px 16px; text-align:center; font-size:var(--fs-md); color:var(--c-texto-sec); }
.paleta-pie{ margin:0; padding:10px 16px; font-size:var(--fs-sm); color:var(--c-texto-ter); border-top:1px solid var(--c-borde); }
@media (max-width: 820px){
  .btn, .icon-btn, select, .seccion-toggle, .topbar-dropdown-item, .asistente-accion-btn,
  .asistente-sugerencia-btn, .bd-paginacion button{ min-height:44px; }
  .btn{ padding-top:10px; padding-bottom:10px; white-space:normal; text-align:center; }
  .bd-paginacion{ gap:8px; }
  .bd-paginacion span{ white-space:normal; text-align:center; flex:1 1 auto; min-width:0; }
  .bd-paginacion button{ flex:0 0 auto; }
  .icon-btn, .icon-btn-xs{ min-width:44px; min-height:44px; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), textarea{ min-height:44px; font-size:16px; }
  input[type="checkbox"], input[type="radio"]{ width:22px; height:22px; }
  .hist-solped-link{ display:inline-flex; align-items:center; min-height:44px; }
  .band-comentario-celda, .band-aprobacion-btn{ min-height:44px; }
  .hist-borrar-btn, .band-borrar-analisis-btn{ min-width:44px; min-height:44px; }
  .icon-btn-xs, .band-chevron{ position:relative; }
  .icon-btn-xs::after, .band-chevron::after{ content:""; position:absolute; inset:-13px; }
}
@media (max-width: 640px){
  .matrix-wrapper.tarjetas-movil{ overflow-x:visible; border:none; background:transparent; box-shadow:none; }
  .tarjetas-movil table.item-matrix, .tarjetas-movil table.item-matrix tbody{ display:block; width:100%; min-width:0; }
  .tarjetas-movil table.item-matrix thead{ display:none; }
  .tarjetas-movil table.item-matrix tbody tr{
    display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px 14px; padding:12px 14px; margin-bottom:10px;
    background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  }
  .tarjetas-movil table.item-matrix tbody td{
    display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:0; border:none;
    text-align:left; min-width:0;
  }
  .tarjetas-movil table.item-matrix tbody td:first-child{ grid-column:1 / -1; font-weight:700; font-size:var(--fs-lg); }
  .tarjetas-movil table.item-matrix tbody td.celda-vacia{ display:none; }
  .tarjetas-movil table.item-matrix tbody td::before{
    content:attr(data-label); font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-ter);
  }
  .tarjetas-movil table.item-matrix tbody td:first-child::before,
  .tarjetas-movil table.item-matrix tbody td[data-label=""]::before,
  .tarjetas-movil table.item-matrix tbody td:not([data-label])::before{ content:none; }
  .tarjetas-movil table.item-matrix tbody tr.band-detalle-row{ display:block; margin-top:-8px; padding:12px 14px; border-top:none; border-radius:0 0 var(--radio-md) var(--radio-md); }
  .tarjetas-movil table.item-matrix tbody tr.band-detalle-row > td{ display:block; text-align:left; }
  .tarjetas-movil table.item-matrix tbody tr.band-detalle-row > td::before{ content:none; }
}
@keyframes materializar{
  from{ opacity:0; transform:translateY(10px) scale(.97); filter:blur(6px); }
  to{ opacity:1; transform:none; filter:blur(0); }
}
.modal-overlay:not([hidden]){ animation:aparecerOpacidad .2s ease both; }
.modal-overlay:not([hidden]) > .modal-box, .modal-overlay:not([hidden]) > .paleta-caja{
  animation:materializar .38s var(--resorte) both; transform-origin:50% 8%;
}
@media (prefers-reduced-motion: reduce){
  .modal-overlay:not([hidden]) > .modal-box, .modal-overlay:not([hidden]) > .paleta-caja{
    animation:aparecerOpacidad .2s ease both; filter:none;
  }
}
.seccion-toggle:active, .paleta-item:active, .asistente-accion-btn:active, .asistente-sugerencia-btn:active{
  transform:scale(.97); transition-duration:.1s;
}
h1{ letter-spacing:-.02em; line-height:1.12; }
.seccion-titulo h2{ letter-spacing:-.015em; line-height:1.2; text-wrap:balance; }
.stat-label, .empty-hint, .seccion-sub{ letter-spacing:.005em; line-height:1.5; }
@media (prefers-reduced-transparency: reduce){
  .seccion-toggle, .paleta-abrir-btn{
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:var(--c-superficie) !important;
  }
  .modal-overlay{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
}
@media (prefers-contrast: more){
  :root{ --c-texto-sec:var(--c-texto); --c-texto-ter:var(--c-texto-sec); --c-borde:var(--c-borde-fuerte); }
  .btn-vidrio, .icon-btn, .theme-toggle-global-btn, .paleta-abrir-btn, .seccion-toggle, .vidrio, .modal-box, .paleta-caja{
    background:var(--c-superficie) !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    border:1px solid var(--c-borde-fuerte) !important;
  }
}
.ref-precio{ display:flex; flex-direction:column; gap:18px; margin-top:18px; }
.ref-precio-titulo{ font-size:var(--fs-lg); font-weight:700; margin:0 0 8px; }
.ref-precio-titulo small{ font-weight:500; color:var(--c-texto-ter); }
.ref-precio-nota{ font-size:var(--fs-sm); color:var(--c-texto-sec); margin:0 0 10px; line-height:1.5; }
.ref-precio-item{ padding:12px 14px; border:1px solid var(--c-borde); border-radius:var(--radio-md); background:var(--c-superficie); margin-bottom:8px; display:flex; flex-direction:column; gap:6px; }
.ref-precio-item-cab{ font-size:var(--fs-md); line-height:1.4; }
.ref-precio-item-cab a{ color:var(--c-naranja-texto); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.ref-precio-item-cab small, .ref-precio-meta{ color:var(--c-texto-ter); font-size:var(--fs-sm); }
.ref-precio-match{ font-size:var(--fs-sm); color:var(--c-texto-sec); background:var(--c-pill); border-radius:999px; padding:2px 8px; margin-left:6px; }
.ref-precio-linea{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; font-size:var(--fs-md); }
.ref-precio-linea small{ color:var(--c-texto-sec); font-size:var(--fs-sm); }
.ref-precio-alerta{ color:var(--c-ambar); font-size:var(--fs-sm); font-weight:600; }
.ref-precio-estado{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.ref-precio-estado-ok{ color:var(--c-esmeralda-2); font-weight:600; }
.ref-precio-web-item.estado-validado{ border-color:var(--c-esmeralda); }
.ref-precio-acciones, .ref-precio-botones{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.sidenav, .sidenav-fondo, .sidenav-abrir-movil{ display:none; }
body.con-sidenav{
  --sidenav-w:272px;
  padding-left:calc(var(--sidenav-w) + 30px);
}
body.con-sidenav.sidenav-plegado{ --sidenav-w:76px; }
body.con-sidenav .sidenav{
  position:fixed; top:14px; left:14px; bottom:14px; width:var(--sidenav-w); z-index:250;
  display:flex; flex-direction:column; gap:6px; padding:14px 10px 10px;
  background:#252524; color:#ececea; border-radius:22px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 2px 8px rgba(0,0,0,.18), 0 20px 44px rgba(0,0,0,.22);
  transition:width .35s var(--resorte);
  animation:aparecerOpacidad .35s ease both;
}
body.sidenav-portada #home-screen{ margin-left:calc(-1 * (var(--sidenav-w) + 30px)); }
body.sidenav-portada .home-overlay{ padding-left:calc(var(--sidenav-w) + 30px); box-sizing:border-box; }
body.sidenav-portada .home-nav{ display:none; }
body.con-sidenav .topbar-brand,
body.con-sidenav .topbar-nav-center,
body.con-sidenav .topbar-account-slot{ display:none; }
body.con-sidenav .topbar:has(> .topbar-account-slot){ padding-right:0; }
body.con-sidenav .sticky-header-group:not(:has(.topbar-actions)){ display:none; }
body.con-sidenav .topbar:has(.topbar-actions){ grid-template-columns:1fr; }
.sidenav-cabecera{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:4px 6px 10px; min-height:44px; }
.sidenav-marca{
  display:flex; align-items:center; gap:10px; min-width:0; padding:6px 4px; border:none; background:none; cursor:pointer;
  color:#fff; font-family:var(--fuente-display); font-size:var(--fs-lg); font-weight:700; letter-spacing:-.01em; text-align:left;
}
.sidenav-marca::before{ content:""; width:10px; height:10px; border-radius:3px; background:var(--c-azul); flex:none; }
.sidenav-marca-texto{ overflow-wrap:anywhere; }
.sidenav-plegar, .sidenav-usuario-menu-btn{
  flex:none; width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:11px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:#d8d8d4; cursor:pointer;
  transition:background .2s var(--resorte), transform .2s var(--resorte), color .2s var(--resorte);
}
.sidenav-plegar svg, .sidenav-usuario-menu-btn svg{ width:16px; height:16px; display:block; transition:transform .3s var(--resorte); }
.sidenav-plegar:hover, .sidenav-usuario-menu-btn:hover{ background:rgba(255,255,255,.1); color:#fff; }
.sidenav-plegar:active, .sidenav-usuario-menu-btn:active{ transform:scale(.94); transition-duration:.12s; }
.sidenav-plegar:focus-visible, .sidenav-usuario-menu-btn:focus-visible, .sidenav-item:focus-visible,
.sidenav-menu-item:focus-visible, .sidenav-salir:focus-visible, .sidenav-marca:focus-visible{ outline:2px solid var(--c-azul-claro); outline-offset:2px; }
.sidenav-nav{ flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; display:flex; flex-direction:column; gap:14px; padding:2px 0 8px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.18) transparent; }
.sidenav-seccion{ display:flex; flex-direction:column; gap:2px; }
.sidenav-seccion-titulo{
  padding:8px 12px 6px; font-family:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size:var(--fs-sm); font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#93938e;
}
.sidenav-item, .sidenav-salir{
  display:flex; align-items:center; gap:12px; width:100%; min-height:44px; padding:10px 12px;
  border-radius:12px; border:none; background:none; color:#e8e8e5; cursor:pointer;
  font-family:var(--fuente); font-size:var(--fs-md); font-weight:500; line-height:1.3; text-align:left;
  transition:background .2s var(--resorte), color .2s var(--resorte), transform .2s var(--resorte);
}
.sidenav-item-icono{ flex:none; display:inline-flex; width:20px; height:20px; }
.sidenav-item-icono svg{ width:20px; height:20px; display:block; }
.sidenav-item-texto{ min-width:0; overflow-wrap:anywhere; }
.sidenav-item:hover, .sidenav-salir:hover{ background:rgba(255,255,255,.07); color:#fff; }
.sidenav-item:active, .sidenav-salir:active{ transform:scale(.98); transition-duration:.12s; }
.sidenav-item.activo{
  background:rgba(238,121,25,.17); color:#ffb877; font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(238,121,25,.38);
}
.sidenav-pie{ flex:none; display:flex; flex-direction:column; gap:4px; padding-top:10px; border-top:1px solid rgba(255,255,255,.1); }
.sidenav-usuario{ position:relative; }
.sidenav-usuario-fila{ display:flex; align-items:center; gap:10px; padding:6px 4px 6px 12px; min-height:44px; }
.sidenav-usuario-icono{ flex:none; display:inline-flex; width:20px; height:20px; color:#e8e8e5; }
.sidenav-usuario-icono svg{ width:20px; height:20px; display:block; }
.sidenav-usuario-datos{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; line-height:1.25; }
.sidenav-usuario-nombre{ font-size:var(--fs-md); font-weight:600; color:#f4f4f1; overflow-wrap:anywhere; }
.sidenav-usuario-rol{ font-size:var(--fs-sm); color:#93938e; }
.sidenav-usuario-menu{
  display:none; position:absolute; left:0; right:0; bottom:calc(100% + 8px); padding:6px;
  background:#2f2f2d; border-radius:14px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), 0 16px 34px rgba(0,0,0,.4);
}
.sidenav-usuario.abierto .sidenav-usuario-menu{ display:block; animation:menuAparecer .22s var(--resorte) both; transform-origin:bottom left; }
.sidenav-menu-item{
  display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:8px 10px; border-radius:10px;
  border:none; background:none; color:#e8e8e5; cursor:pointer; font-family:var(--fuente); font-size:var(--fs-md); text-align:left; line-height:1.3;
}
.sidenav-menu-item span[aria-hidden]{ flex:none; display:inline-flex; width:18px; height:18px; }
.sidenav-menu-item span[aria-hidden] svg{ width:18px; height:18px; display:block; }
.sidenav-menu-item kbd{ margin-left:auto; padding:1px 6px; border-radius:6px; background:rgba(255,255,255,.1); font-family:inherit; font-size:var(--fs-sm); color:#b8b8b3; white-space:nowrap; }
.sidenav-menu-item:hover{ background:rgba(255,255,255,.08); color:#fff; }
body.sidenav-plegado .sidenav{ padding-left:8px; padding-right:8px; }
body.sidenav-plegado .sidenav-cabecera{ flex-direction:column; padding:4px 0 8px; }
body.sidenav-plegado .sidenav-marca{ display:none; }
body.sidenav-plegado .sidenav-plegar svg{ transform:rotate(180deg); }
body.sidenav-plegado .sidenav-seccion-titulo{ font-size:0; padding:0; margin:4px 10px; height:1px; background:rgba(255,255,255,.1); letter-spacing:0; }
body.sidenav-plegado .sidenav-seccion:first-child .sidenav-seccion-titulo{ display:none; }
body.sidenav-plegado .sidenav-item, body.sidenav-plegado .sidenav-salir{ justify-content:center; padding-left:0; padding-right:0; }
body.sidenav-plegado .sidenav-item-texto, body.sidenav-plegado .sidenav-usuario-datos{ display:none; }
body.sidenav-plegado .sidenav-usuario-fila{ flex-direction:column; padding:6px 0; gap:6px; }
body.sidenav-plegado .sidenav-usuario-menu{ left:0; right:auto; min-width:250px; }
.sidenav-abrir-movil{
  position:fixed; top:12px; left:12px; z-index:230; width:46px; height:46px; align-items:center; justify-content:center;
  border-radius:14px; border:1px solid rgba(255,255,255,.14); background:#252524; color:#f4f4f1; cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.25);
}
.sidenav-abrir-movil svg{ width:22px; height:22px; display:block; }
@media (max-width: 900px){
  body.con-sidenav{ padding-left:0; padding-top:68px; }
  body.sidenav-portada{ padding-top:0; }
  body.sidenav-portada #home-screen{ margin-left:0; }
  body.sidenav-portada .home-overlay{ padding-left:0; }
  body.con-sidenav .sidenav-abrir-movil{ display:inline-flex; }
  body.con-sidenav .sidenav{ width:min(300px, 86vw); transform:translateX(calc(-100% - 24px)); transition:transform .35s var(--resorte); z-index:260; }
  body.con-sidenav.sidenav-abierto .sidenav{ transform:none; }
  body.con-sidenav.sidenav-abierto .sidenav-fondo{ display:block; position:fixed; inset:0; z-index:255; background:rgba(10,10,10,.5); }
  body.con-sidenav.sidenav-plegado{ --sidenav-w:272px; }
  body.sidenav-plegado .sidenav-item-texto, body.sidenav-plegado .sidenav-usuario-datos{ display:block; }
  body.sidenav-plegado .sidenav-marca{ display:flex; }
  body.sidenav-plegado .sidenav-cabecera{ flex-direction:row; }
  body.sidenav-plegado .sidenav-plegar svg{ transform:none; }
  body.sidenav-plegado .sidenav-item, body.sidenav-plegado .sidenav-salir{ justify-content:flex-start; padding-left:12px; padding-right:12px; }
  body.con-sidenav .sidenav-plegar{ display:none; }
}
body.sidenav-animando .sidenav-item-texto, body.sidenav-animando .sidenav-usuario-datos, body.sidenav-animando .sidenav-marca-texto{ white-space:nowrap; overflow:hidden; }
@media (prefers-reduced-motion: reduce){
  body.con-sidenav, body.con-sidenav .sidenav, body.sidenav-portada #home-screen, body.sidenav-portada .home-overlay{ transition:none; animation:none; }
}
@media print{
  .sidenav, .sidenav-fondo, .sidenav-abrir-movil{ display:none !important; }
  body.con-sidenav{ padding-left:0; padding-top:0; }
  body.sidenav-portada #home-screen{ margin-left:0; }
  body.sidenav-portada .home-overlay{ padding-left:0; }
}
:root{
  --c-naranja-texto:#ad4f09;
  --tarjeta-solida:rgba(255,255,255,.92);
  --tarjeta-borde:rgba(17,24,39,.12);
}
[data-theme="dark"]{
  --c-naranja-texto:#f5a356;
  --tarjeta-solida:rgba(38,38,37,.94);
  --tarjeta-borde:rgba(255,255,255,.14);
}
.campo-subgrupo-titulo, .aprobaciones-chip-suave, .seg-etapa-con-orden, .apr-estado-abierto{ color:var(--c-naranja-texto); }
.hist-bar-row-clic:hover .hist-bar-label, .hist-bar-row-clic:hover .hist-bar-valor,
.hist-bar-row-clic.activo .hist-bar-label, .hist-bar-row-clic.activo .hist-bar-valor{ color:var(--c-naranja-texto); }
.stat-label{ font-size:var(--fs-xs); letter-spacing:.06em; color:var(--c-texto-sec); }
.stat-tile-kpi-pct{ font-size:var(--fs-xs); color:var(--c-texto-sec); padding:1px 6px; }
.campo-subgrupo-titulo{ font-size:var(--fs-sm); letter-spacing:.03em; margin-bottom:6px; line-height:1.35; }
.aprobaciones-chip-suave{ font-size:var(--fs-xs); padding:2px 8px; }
.seccion-sub{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.panel-intro-sub{ font-size:var(--fs-md); line-height:1.45; }
.hist-kpis, .stats-row{ grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:8px; margin-bottom:12px; }
.stat-tile{ padding:8px 12px; gap:2px; }
.hist-kpis .stat-tile{
  background:var(--c-superficie); border:1px solid var(--tarjeta-borde); border-radius:var(--radio-md);
  box-shadow:var(--sombra-suave);
}
.hist-kpis button.stat-tile.activo{ border-color:var(--c-azul); }
.stat-tile-kpi{ gap:8px; }
.stat-tile-kpi-icono{ width:30px; height:30px; border-radius:9px; font-size:var(--fs-md); }
.stat-tile-kpi-texto{ gap:2px; }
.stat-tile-kpi .stat-value, .hist-kpis .stat-value, .stat-tile-gauge .stat-value{ font-size:13px; }
#hist-kpis .stat-tile{ padding:8px 10px; }
#bandeja-kpis{ gap:8px; }
#bandeja-kpis > .stat-tile{ flex:1 1 150px; max-width:180px; }
#bandeja-kpis .stat-tile{ padding:9px 10px; border-radius:var(--radio-md); }
#bandeja-kpis > .stat-tile-centrado{ padding:8px 10px; }
.kpi-gauge{ width:92px; height:auto; }
.aprobaciones-overview-grid{ grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:10px; }
.aprobaciones-overview-grid > .card.vidrio{ padding:12px 14px; }
.aprobaciones-overview-card-header{ flex-wrap:wrap; justify-content:flex-start; row-gap:8px; margin-bottom:6px; }
.aprobaciones-overview-card-header .campo-subgrupo-titulo{ margin-bottom:0; }
.aprobaciones-overview-grid > .card.vidrio > *:last-child:has(> .hist-bar-chart){ justify-content:flex-start; }
.hist-bar-chart{ gap:2px; }
.hist-bar-row{
  grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"etiqueta etiqueta" "barra valor";
  row-gap:3px; column-gap:10px; padding:5px 8px; margin:0 -8px;
}
.hist-bar-row > .hist-bar-label{ grid-area:etiqueta; font-size:var(--fs-sm); line-height:1.35; color:var(--c-texto); }
.hist-bar-row > .hist-bar-track{ grid-area:barra; height:8px; }
.hist-bar-row > .hist-bar-valor{ grid-area:valor; font-size:var(--fs-xs); color:var(--c-texto); min-width:0; }
button.hist-bar-row{ font:inherit; text-align:left; }
.donut-wrap{ padding:10px 12px; gap:14px; margin-bottom:12px; }
.donut-legend{ min-width:160px; gap:4px; }
.donut-legend-item{ font-size:var(--fs-sm); padding:4px 7px; }
.donut-legend-value{ font-size:var(--fs-xs); }
.gerencia-cards-grid{ gap:8px; }
button.gerencia-card{
  flex:0 0 224px; width:224px; padding:12px 12px; gap:6px; border-radius:var(--radio-md);
  background:var(--tarjeta-solida); border:1px solid var(--tarjeta-borde);
}
button.gerencia-card:not(:disabled):hover{ background:var(--c-superficie); }
button.gerencia-card.activo{ border-color:var(--c-azul); }
.gerencia-card-icono{ width:26px; height:26px; border-radius:9px; font-size:var(--fs-md); }
.gerencia-card-total{ gap:1px; }
.gerencia-card-total-valor{ font-size:15px; }
.gerencia-card-total-label{ font-size:var(--fs-xs); color:var(--c-texto-sec); }
.gerencia-card-nombre{ font-size:var(--fs-sm); }
.gerencia-card-subtitulo{ font-size:var(--fs-xs); color:var(--c-texto-sec); margin-top:-3px; }
.gerencia-card-barra{ height:5px; }
.gerencia-card-leyenda{ font-size:var(--fs-xs); gap:3px 5px; color:var(--c-texto); }
.gerencia-card-leyenda span{ white-space:nowrap; gap:3px; }
.oca-fin-grid{ grid-template-columns:1.35fr 1.35fr 1fr 1fr; gap:10px; }
.oca-fin-lateral, .oca-fin-chico-row{ display:contents; }
.oca-fin-hero{ min-height:0; justify-content:center; gap:2px; }
.oca-fin-badge{ padding:0; border:0; background:none; font-size:var(--fs-xs); letter-spacing:.07em; color:var(--c-texto-ter); }
.oca-fin-hero-sub{ max-width:none; color:var(--c-texto-ter); }
.oca-fin-osc{ border-radius:var(--radio-md, 14px); box-shadow:0 8px 20px rgba(0,0,0,.16); }
.oca-fin-chico{ align-items:flex-start; text-align:left; justify-content:center; flex-direction:column-reverse; }
.oca-fin-chico.oca-fin-riesgo{ flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; }
.oca-fin-riesgo-icono{ width:30px; height:30px; font-size:var(--fs-md); }
.oca-fin-hero-valor, .oca-fin-tendencia-valor, .oca-fin-chico-valor, .oca-fin-riesgo-valor{ white-space:nowrap; }
.oca-fin-sparkline{ height:28px; }
@media (max-width:900px){ .oca-fin-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .oca-fin-grid{ grid-template-columns:1fr; } }
.oca-fin-grid{ gap:10px; }
.card.vidrio.oca-fin-hero{ padding:14px 18px; }
.oca-fin-hero-valor{ font-size:clamp(16px,1.8vw,22px); margin-top:8px; }
.oca-fin-hero-sub{ font-size:var(--fs-sm); margin-top:6px; }
.oca-fin-osc{ padding:12px 14px; }
.oca-fin-tendencia-valor{ font-size:15px; }
.oca-fin-chico-valor{ font-size:13px; }
.oca-fin-osc-label, .oca-fin-riesgo-label{ font-size:var(--fs-xs); color:rgba(255,255,255,.8); }
.proveedores-grid{ display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:14px; }
.proveedores-grid > .proveedor-card{ flex:1 1 300px; max-width:420px; min-width:0; }
.proveedor-card{ padding:14px 16px 16px; gap:8px; }
.proveedor-card:hover{ transform:none; }
.proveedor-card-header .icon-btn{ width:28px; height:28px; }
.proveedor-card .quote-numero{ font-size:var(--fs-2xs); padding:3px 9px; }
.proveedor-card .input-proveedor{ font-size:var(--fs-md) !important; padding:6px 10px !important; }
.proveedor-card .campo-subgrupo{ margin-bottom:0; padding-top:12px; }
.proveedor-card .nombre-autocomplete + .campo-subgrupo{ padding-top:4px; }
.proveedor-card .campo-subgrupo-titulo{ font-size:var(--fs-2xs); letter-spacing:.06em; margin-bottom:8px; }
.proveedor-card .quote-meta-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
.proveedor-card .quote-meta-grid.quote-meta-grid-condiciones{ margin-top:10px; padding-top:10px; }
.proveedor-card label.campo{ gap:4px; font-size:var(--fs-2xs); font-weight:600; }
.proveedor-card label.campo-checkbox{ font-size:var(--fs-2xs); line-height:1.3; }
.proveedor-card input:not([type="checkbox"]):not([type="file"]), .proveedor-card textarea{ padding:5px 9px; font-size:var(--fs-xs); }
.proveedor-card textarea{ min-height:44px; line-height:1.45; overflow-y:hidden; }
.proveedor-card .quote-totals-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
.proveedor-card .quote-totals-grid input{ width:100%; }
.proveedor-card .rating-grid{ gap:4px; }
.proveedor-card .rating-label{ font-size:var(--fs-xs); }
.proveedor-card .rating-star{ padding:1px; font-size:var(--fs-lg); }
.proveedor-card .campo-subgrupo-nota{ font-size:var(--fs-2xs); margin:0 0 8px; line-height:1.45; }
.proveedor-card .cotizacion-adjunta-chip{ padding:7px 9px; gap:6px; }
.aprobaciones-overview-pila{ display:flex; flex-direction:column; gap:10px; min-width:0; }
.aprobaciones-overview-pila > .card.vidrio{ padding:12px 14px; display:flex; flex-direction:column; flex:1 1 0; }
.aprobaciones-overview-pila > .card.vidrio > *:last-child{ flex:1; display:flex; flex-direction:column; justify-content:center; }
.aprobaciones-overview-card{ container-type:inline-size; container-name:tarjeta-resumen; }
.aprobaciones-overview-card .donut-legend-item{ font-size:var(--fs-sm); padding:3px 6px; gap:8px; }
.aprobaciones-overview-card .donut-legend-name{ overflow-wrap:break-word; }
.aprobaciones-overview-card .donut-legend-value{ font-size:var(--fs-xs); white-space:nowrap; }
@container tarjeta-resumen (max-width: 460px){
  .donut-wrap{ flex-direction:column; align-items:center; gap:8px; padding:8px 10px; margin-bottom:0; }
  .donut-svg{ width:140px; height:140px; }
  .donut-total-label{ font-size:var(--fs-md); }
  .donut-total-value{ font-size:15px; }
  .donut-legend{ width:100%; min-width:0; gap:2px; }
}
.container, #bd-main{ max-width:2200px; padding:14px 20px 60px; }
.container .panel-intro{ margin-bottom:12px; gap:12px; }
.container .panel-intro-title{ font-size:var(--fs-xl); margin-bottom:2px; }
.container .panel-intro-sub{ font-size:var(--fs-sm); max-width:760px; }
.container .seccion{ margin-top:16px; }
.container .seccion-header{ margin-bottom:8px; }
.container .seccion-titulo h2{ font-size:var(--fs-seccion); }
.container .seccion-sub{ font-size:var(--fs-xs); }
.container .resumen-chip{ padding:5px 11px; font-size:var(--fs-xs); }
.container .directorio-panel{ margin-bottom:10px; padding:8px 12px; }
.container .directorio-panel summary{ font-size:var(--fs-sm); }
.container .btn-sm{ font-size:var(--fs-sm); padding:6px 11px; }
@media (max-width:820px){ .container, #bd-main, .pantalla-main{ padding:12px 12px 60px; } }
#seguimiento-solped-table-wrap table.item-matrix th, #seguimiento-solped-table-wrap table.item-matrix td,
#ordenes-autorizadas-table-wrap table.item-matrix th, #ordenes-autorizadas-table-wrap table.item-matrix td{ text-align:center; vertical-align:middle; }
#seguimiento-solped-table-wrap table.item-matrix tr.band-detalle-row td,
#ordenes-autorizadas-table-wrap table.item-matrix tr.band-detalle-row td{ text-align:left; vertical-align:top; }
#seguimiento-solped-table-wrap .band-aprobacion-btn, #ordenes-autorizadas-table-wrap .band-aprobacion-btn{ text-align:center; }
.proveedor-card-titulo{ display:flex; align-items:center; gap:var(--sp-2); flex-wrap:wrap; min-width:0; }
.prov-chips{ display:inline-flex; gap:6px; flex-wrap:wrap; }
.prov-chip{
  display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:var(--radio-pill);
  font-size:var(--fs-2xs); font-weight:700; line-height:1.4; white-space:nowrap;
}
.prov-chip-calif{ color:var(--c-naranja-texto); background:var(--c-azul-tenue); }
.prov-chip-alerta{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.proveedor-card details.prov-seccion > summary{
  display:flex; align-items:center; gap:var(--sp-2); cursor:pointer; list-style:none; user-select:none;
  margin-bottom:0; min-height:24px;
}
.proveedor-card details.prov-seccion > summary::-webkit-details-marker{ display:none; }
.proveedor-card details.prov-seccion > summary::after{
  content:""; flex:none; margin-left:auto; width:6px; height:6px;
  border-right:2px solid var(--c-texto-ter); border-bottom:2px solid var(--c-texto-ter);
  transform:translateY(-2px) rotate(45deg); transition:transform .25s var(--resorte);
}
.proveedor-card details.prov-seccion[open] > summary::after{ transform:translateY(2px) rotate(-135deg); }
.proveedor-card details.prov-seccion > summary:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:3px; border-radius:var(--radio-sm); }
.proveedor-card details.prov-seccion > summary:hover .prov-seccion-nombre{ color:var(--c-texto); }
.proveedor-card details.prov-seccion[open] > summary{ margin-bottom:var(--sp-2); }
.prov-seccion-resumen{
  font-size:var(--fs-2xs); font-weight:600; letter-spacing:0; text-transform:none; color:var(--c-texto-sec);
  background:var(--c-pill); border-radius:var(--radio-pill); padding:1px 8px;
}
.proveedor-card details.prov-seccion[open] > .prov-seccion-resumen,
.proveedor-card details.prov-seccion[open] > summary .prov-seccion-resumen{ display:none; }
@media (prefers-reduced-motion: reduce){
  .proveedor-card details.prov-seccion > summary::after{ transition:none; }
}
table.item-matrix.bd-table th, table.item-matrix.bd-table td{ padding:var(--fila-py) var(--fila-px); }
body.densidad-compacta{ --fila-py:3px; --fila-px:6px; }
body.densidad-compacta table.item-matrix.bd-table td{ font-size:var(--fs-sm); line-height:1.3; }
body.densidad-compacta table.item-matrix.bd-table td input{ padding:4px 8px; }
body.densidad-compacta table.item-matrix.bd-table .apr-estado{ padding:1px 8px; }
@media (min-width:641px){
  .matrix-wrapper:has(> table.bd-table){ max-height:min(72vh, 820px); overflow:auto; }
  table.item-matrix.bd-table thead th{
    position:sticky; top:0; z-index:3;
    background:color-mix(in srgb, var(--c-texto) 7%, var(--c-superficie));
    box-shadow:0 1px 0 var(--c-borde);
  }
  table.item-matrix.bd-table thead th.sticky-col{ z-index:4; left:0; }
}
@media (max-width:640px){
  .tarjetas-movil table.item-matrix .sticky-col{ position:static; min-width:0; background:transparent; }
}
.estado-vacio{
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-1); text-align:center;
  padding:var(--sp-5) var(--sp-4); margin:var(--sp-2) auto; max-width:520px;
}
.estado-vacio-icono{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:15px; line-height:1; background:var(--c-pill); margin-bottom:var(--sp-2);
}
.estado-vacio-titulo{ margin:0; font-size:var(--fs-md); font-weight:700; color:var(--c-texto); }
.estado-vacio-detalle{ margin:0; font-size:var(--fs-sm); line-height:1.5; color:var(--c-texto-sec); text-wrap:balance; }
.estado-vacio-acciones{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--sp-2); margin-top:var(--sp-3); }
.esqueleto{ display:flex; flex-direction:column; gap:10px; padding:var(--sp-3) 2px; }
.esqueleto-texto{ font-size:var(--fs-xs); color:var(--c-texto-ter); }
.esqueleto-fila{
  display:block; height:14px; border-radius:var(--radio-sm);
  background:linear-gradient(90deg, var(--c-pill) 25%, color-mix(in srgb, var(--c-pill) 55%, var(--c-superficie)) 50%, var(--c-pill) 75%);
  background-size:200% 100%; animation:esqueleto-brillo 1.3s ease-in-out infinite;
}
@keyframes esqueleto-brillo{ from{ background-position:100% 0; } to{ background-position:-100% 0; } }
@media (prefers-reduced-motion: reduce){ .esqueleto-fila{ animation:none; } }
.cotizacion-adjunta-procesando{ align-items:center; }
.cotizacion-progreso{ display:flex; flex-direction:column; gap:3px; min-width:0; flex:1 1 auto; }
.cotizacion-progreso-nombre{ font-weight:600; overflow-wrap:anywhere; }
.cotizacion-progreso-paso{ font-size:var(--fs-xs); color:var(--c-texto-sec); }
.cotizacion-progreso-barra{ display:block; height:4px; border-radius:var(--radio-pill); background:var(--c-pill); overflow:hidden; }
.cotizacion-progreso-barra > span{ display:block; height:100%; border-radius:inherit; background:var(--c-azul); transition:width .5s var(--resorte); }
@media (prefers-reduced-motion: reduce){ .cotizacion-progreso-barra > span{ transition:none; } }
#prov-kpis > .stat-tile-kpi:first-child .stat-value, #cod-kpis > .stat-tile-kpi:first-child .stat-value{ font-size:19px; }
#prov-kpis > .stat-tile-kpi:first-child, #cod-kpis > .stat-tile-kpi:first-child{ border-color:color-mix(in srgb, var(--c-azul) 35%, var(--tarjeta-borde)); }
.filtros-activos{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); margin:0 0 var(--sp-3); }
.filtros-activos[hidden]{ display:none; }
.filtros-activos-titulo{ font-size:var(--fs-xs); font-weight:600; color:var(--c-texto-sec); }
.chip-filtro{
  display:inline-flex; align-items:center; gap:var(--sp-2); min-height:28px; padding:3px 6px 3px 12px;
  font:inherit; font-size:var(--fs-sm); font-weight:600; color:var(--c-naranja-texto);
  background:var(--c-azul-tenue); border:1px solid color-mix(in srgb, var(--c-azul) 40%, transparent);
  border-radius:var(--radio-pill); cursor:pointer;
  transition:background .2s ease, transform .2s var(--resorte);
}
.chip-filtro:hover{ background:color-mix(in srgb, var(--c-azul) 18%, var(--c-azul-tenue)); }
.chip-filtro:active{ transform:scale(.96); }
.chip-filtro:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.chip-filtro-x{
  display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%;
  font-size:var(--fs-2xs); background:color-mix(in srgb, var(--c-azul) 22%, transparent);
}
.chip-filtro:hover .chip-filtro-x{ background:var(--c-azul); color:var(--c-texto-sobre-naranja); }
.pantalla-fade{ animation:aparecer .32s var(--resorte) both; }
@media (max-width:520px){
  .proveedor-card .quote-meta-grid, .proveedor-card .quote-totals-grid{ grid-template-columns:minmax(0,1fr); }
  .proveedor-card-header{ flex-wrap:wrap; }
  .proveedor-card{ padding:var(--sp-3) var(--sp-3) var(--sp-4); }
  .proveedor-card details.prov-seccion > summary{ min-height:44px; }
  .filtros-activos{ gap:6px; }
  .chip-filtro{ min-height:36px; }
}
#item-historial-overlay, #hist-detalle-overlay, #refprecio-overlay{ z-index:10002; }
.band-item-historial-btn{ padding:3px 8px; font-size:var(--fs-xs); white-space:nowrap; }
.modal-box.modal-informe{ max-width:min(1240px, 96vw); }
.informe-detalle-estados{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:6px; }
.informe-detalle-cuerpo{ overflow-x:auto; }
.informe-detalle-cuerpo .band-detalle-toolbar:first-child{ margin-top:0; }
.band-chevron-modal{ font-size:var(--fs-2xs); opacity:.55; transition:opacity .15s ease; }
tr.band-solped-row:hover .band-chevron-modal, tr.band-solped-row:focus-visible .band-chevron-modal{ opacity:1; }
tr.band-solped-row[tabindex]:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:-2px; }
.informe-nav{
  position:sticky; top:-32px; z-index:5; display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2);
  margin:-32px -32px 14px; padding:12px 56px 12px 32px; background:var(--c-superficie); border-bottom:1px solid var(--c-borde);
}
.modal-informe .modal-close-btn{ z-index:6; }
.informe-nav-pos{ font-size:var(--fs-sm); color:var(--c-texto-sec); min-width:64px; text-align:center; }
.informe-nav-pos b{ color:var(--c-texto); font-size:var(--fs-md); }
.informe-nav-revisadas{ margin-left:auto; display:inline-flex; align-items:center; gap:var(--sp-2); font-size:var(--fs-xs); font-weight:600; color:var(--c-esmeralda-2); }
.informe-nav-reiniciar{ font:inherit; font-size:var(--fs-xs); font-weight:600; color:var(--c-texto-sec); background:none; border:none; padding:2px 4px; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.informe-nav-reiniciar:hover{ color:var(--c-texto); }
.informe-nav-reiniciar:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; border-radius:var(--radio-sm); }
tr.band-solped-row.fila-revisada > td:first-child{ box-shadow:inset 3px 0 0 var(--c-esmeralda); }
tr.band-solped-row.fila-revisada .band-chevron-modal{ opacity:1; }
tr.band-solped-row.fila-revisada .band-chevron-modal::after{ content:" ✓"; color:var(--c-esmeralda-2); font-weight:700; }
#bandeja-table-wrap tr.band-solped-row.fila-revisada .band-chevron::after{ content:" ✓"; color:var(--c-esmeralda-2); font-weight:700; }
#bandeja-table-wrap tr.band-solped-row.fila-revisada > td:first-child{ box-shadow:inset 3px 0 0 var(--c-esmeralda); }
tr.band-solped-row.fila-actual, tr.band-solped-row.fila-actual > td{ background:var(--c-azul-tenue); }
tr.band-solped-row.fila-actual > td:first-child{ box-shadow:inset 4px 0 0 var(--c-azul); }
@media (max-width:820px){
  .informe-nav{ top:-18px; margin:-18px -18px 12px; padding:10px 52px 10px 18px; }
  .informe-nav-revisadas{ margin-left:0; flex-basis:100%; }
}
.anexo-urgente{
  margin-top:var(--sp-4); padding:var(--sp-3) var(--sp-4); border-radius:var(--radio-md);
  background:var(--c-ambar-tenue); border:1px solid color-mix(in srgb, var(--c-ambar) 40%, transparent);
  display:flex; flex-direction:column; gap:var(--sp-3);
}
.anexo-urgente[hidden]{ display:none; }
.anexo-urgente.requiere-atencion{ box-shadow:0 0 0 2px color-mix(in srgb, var(--c-ambar) 55%, transparent); }
.anexo-urgente.completo{ background:var(--c-esmeralda-tenue); border-color:color-mix(in srgb, var(--c-esmeralda) 40%, transparent); }
.anexo-urgente-cab{ display:flex; gap:var(--sp-3); align-items:flex-start; }
.anexo-urgente-icono{ font-size:15px; line-height:1.2; }
.anexo-urgente-titulo{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); }
.anexo-urgente-sub{ margin:2px 0 0; font-size:var(--fs-sm); line-height:1.5; color:var(--c-texto-sec); }
.anexo-urgente-control{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); }
.anexo-urgente-chip{ flex:1 1 auto; min-width:0; }
.anexo-urgente-nombre{ font-weight:600; overflow-wrap:anywhere; }
.anexo-urgente-formatos{ margin:0; font-size:var(--fs-xs); color:var(--c-texto-ter); }
:root{ --c-insignia:#dc2626; }
[data-theme="dark"]{ --c-insignia:#b91c1c; }
.notif-urgentes-btn{ position:relative; }
.notif-urgentes-btn.con-pendientes{ background:var(--c-ambar-tenue); box-shadow:inset 0 0 0 1.5px var(--c-ambar); }
.notif-urgentes-badge{
  min-width:18px; height:18px; padding:0 5px; border-radius:var(--radio-pill); background:var(--c-insignia); color:#fff;
  font-size:var(--fs-2xs); font-weight:700; line-height:18px; text-align:center; font-family:var(--fuente);
}
.notif-urgentes-badge[hidden]{ display:none; }
.notif-urgentes-btn .notif-urgentes-badge{ position:absolute; top:-4px; right:-4px; box-shadow:0 0 0 2px var(--c-bg); }
.sidenav-urgentes{ position:relative; }
.sidenav-urgentes .notif-urgentes-badge{ margin-left:auto; }
.sidenav-urgentes.con-pendientes{ color:var(--c-ambar); font-weight:700; }
.notif-avisos-btn{ position:relative; }
.notif-avisos-badge{
  min-width:18px; height:18px; padding:0 5px; border-radius:var(--radio-pill); background:var(--c-insignia); color:#fff;
  font-size:var(--fs-2xs); font-weight:700; line-height:18px; text-align:center; font-family:var(--fuente);
}
.notif-avisos-badge[hidden]{ display:none; }
.notif-avisos-btn .notif-avisos-badge{ position:absolute; top:-4px; right:-4px; box-shadow:0 0 0 2px var(--c-bg); }
.sidenav-avisos{ position:relative; }
.sidenav-avisos .notif-avisos-badge{ margin-left:auto; }
.sidenav-avisos.con-pendientes{ font-weight:700; }
.avisos-panel{
  position:fixed; z-index:10100; max-height:min(70vh, 520px); overflow-y:auto; padding:var(--sp-2) 0;
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-md); box-shadow:var(--sombra-flotante);
}
.avisos-panel[hidden]{ display:none; }
.avisos-panel .com-vacio{ padding:var(--sp-2) var(--sp-3); }
.avisos-cabecera{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2); padding:4px var(--sp-3) var(--sp-2); border-bottom:1px solid var(--c-borde); }
.avisos-lista{ list-style:none; margin:0; padding:0; }
.aviso-item{
  display:flex; flex-direction:column; gap:2px; width:100%; padding:10px var(--sp-3); border:0; border-bottom:1px solid var(--c-borde);
  background:transparent; color:var(--c-texto); text-align:left; font:inherit; cursor:pointer;
}
.aviso-item:hover, .aviso-item:focus-visible{ background:var(--c-pill); }
.aviso-item:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:-2px; }
.aviso-item.no-leido{ box-shadow:inset 3px 0 0 var(--c-azul); }
.aviso-item.no-leido .aviso-titulo{ font-weight:700; }
.aviso-titulo{ font-size:var(--fs-sm); line-height:1.35; }
.aviso-texto{ font-size:var(--fs-xs); color:var(--c-texto-sec); white-space:pre-wrap; overflow-wrap:anywhere; }
.aviso-fecha{ font-size:var(--fs-2xs); color:var(--c-texto-ter); }
.com-mencion{ padding:0 3px; border-radius:4px; background:var(--c-azul-tenue); color:var(--c-naranja-texto); font-weight:600; }
.menciones-lista{
  position:fixed; z-index:10150; list-style:none; margin:0; padding:4px; max-height:240px; overflow-y:auto;
  background:var(--c-superficie); border:1px solid var(--c-borde); border-radius:var(--radio-sm); box-shadow:var(--sombra-flotante);
}
.menciones-lista[hidden]{ display:none; }
.mencion-opcion{ display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:6px; cursor:pointer; font-size:var(--fs-sm); }
.mencion-opcion.activa, .mencion-opcion:hover{ background:var(--c-azul-tenue); }
.mencion-nombre{ font-weight:600; color:var(--c-texto); }
.mencion-login{ margin-left:auto; color:var(--c-texto-ter); font-size:var(--fs-xs); }
.urgente-pestanas{ margin-bottom:var(--sp-3); }
.urgente-pestana{ padding:3px 12px; }
.urgente-pestana.activa{ background:var(--c-azul); color:var(--c-texto-sobre-naranja); border-color:transparent; }
.urgente-tarjeta{
  padding:var(--sp-3) var(--sp-4); margin-bottom:var(--sp-3); border:1px solid var(--c-borde); border-radius:var(--radio-md);
  background:var(--c-superficie);
}
.urgente-tarjeta.pendiente{ border-color:color-mix(in srgb, var(--c-ambar) 55%, transparent); box-shadow:inset 4px 0 0 var(--c-ambar); }
.urgente-cab{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2) var(--sp-3); margin-bottom:var(--sp-2); }
.urgente-cab h3{ margin:0; font-size:var(--fs-lg); }
.urgente-fecha{ margin-left:auto; font-size:var(--fs-xs); color:var(--c-texto-sec); }
.urgente-comparacion{ margin:var(--sp-1) 0 var(--sp-2); font-size:var(--fs-sm); font-weight:600; }
.urgente-alerta{ color:var(--c-ambar); }
.urgente-bien{ color:var(--c-esmeralda-2); }
.urgente-justificacion{ margin:0 0 var(--sp-2); font-size:var(--fs-sm); line-height:1.5; color:var(--c-texto-sec); overflow-wrap:anywhere; }
.urgente-pie{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-bottom:var(--sp-2); }
.urgente-revisar{ display:flex; flex-wrap:wrap; gap:var(--sp-2); align-items:center; }
.urgente-nota{ flex:1 1 220px; min-width:0; }
.urgente-revision{ margin:0; font-size:var(--fs-sm); color:var(--c-esmeralda-2); }
.urgente-informe-filtros{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--sp-3); margin-bottom:var(--sp-3); }
.urgente-informe-filtros .campo{ min-width:150px; }
.urgente-informe-periodos{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.urgente-informe-lectura{ margin:0 0 var(--sp-3); padding:var(--sp-3) var(--sp-4); border-radius:var(--radio-md); background:var(--c-azul-tenue); font-size:var(--fs-md); line-height:1.6; color:var(--c-texto); }
.urgente-kpis{ display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:var(--sp-3); margin-bottom:var(--sp-4); }
.urgente-kpi{ display:flex; flex-direction:column; gap:2px; padding:var(--sp-3) var(--sp-4); }
.urgente-kpi .stat-value{ font-size:16px; }
.urgente-kpi.alerta .stat-value{ color:var(--c-ambar); }
.urgente-kpi-nota{ font-size:var(--fs-xs); color:var(--c-texto-sec); }
.urgente-informe-titulo{ margin:var(--sp-4) 0 var(--sp-2); font-size:var(--fs-lg); }
.urgente-informe-nota{ margin-top:var(--sp-3); line-height:1.5; }
.urgente-informe-acciones{ display:flex; justify-content:flex-end; margin-top:var(--sp-3); }
.topbar-subactions{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:var(--sp-2) var(--sp-4);
  max-width:1600px; margin:var(--sp-2) auto 0; padding:var(--sp-2) var(--sp-3);
  background:var(--vidrio-fondo); box-shadow:inset 0 0 0 1px var(--vidrio-borde); border-radius:var(--radio-md);
  backdrop-filter:saturate(180%) blur(16px); -webkit-backdrop-filter:saturate(180%) blur(16px);
}
.topbar-subactions .btn{ opacity:1; }
.acciones-grupo{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); }
.acciones-grupo + .acciones-grupo{ padding-left:var(--sp-4); border-left:1px solid var(--c-borde); }
.acciones-grupo-cierre{ margin-left:auto; }
.topbar-subactions .btn-primario{ padding-left:18px; padding-right:18px; }
body.con-sidenav .topbar:has(> .topbar-actions){ display:none; }
@media (max-width:900px){
  .topbar-subactions{ padding:var(--sp-3); }
  .acciones-grupo{ width:100%; justify-content:center; }
  .acciones-grupo + .acciones-grupo{ padding-left:0; border-left:none; padding-top:var(--sp-2); border-top:1px solid var(--c-borde); }
  .acciones-grupo-cierre{ margin-left:0; }
}
body, [data-theme="dark"] body{ background:var(--c-bg); }
@media (min-width:1501px) and (max-width:1800px){
  .topbar .topbar-nav-center{ gap:4px; }
  .topbar .topbar-nav-center .btn-sm{ padding:10px 11px; font-size:var(--fs-md); }
  .topbar > .topbar-nav-center{ padding:8px 8px; }
  .topbar .nav-item-icono{ width:18px; height:18px; }
}
@media (min-width:901px) and (max-width:1600px){
  .topbar > .topbar-account-slot .topbar-account-nombre{ display:none; }
  .topbar > .topbar-account-slot .topbar-account-chip{ padding:2px; height:40px; }
  .topbar > .topbar-account-slot .paleta-abrir-btn,
  .topbar > .topbar-account-slot .theme-toggle-global-btn{ width:40px; height:40px; }
}
@media (min-width:901px) and (max-width:1460px){
  .topbar .topbar-nav-center .nav-item-icono{ display:none; }
}
@media (min-width:901px) and (max-width:1320px){
  .topbar .topbar-nav-center .btn-sm{ padding:8px 8px; }
  .topbar > .topbar-brand{ padding:0 14px; }
  .topbar > .topbar-account-slot{ gap:6px; }
}
.ac-filtros{ padding:18px 20px; display:flex; flex-direction:column; gap:12px; margin-bottom:18px; }
.ac-filtros .bd-search-bar, .ac-filtros .aprobaciones-filtros{ margin:0; }
.ac-filtros .aprobaciones-filtros{ align-items:center; }
.ac-filtros-fila{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.ac-filtros-fila .bd-search-bar{ flex:1 1 320px; max-width:none; }
.ac-acciones{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; margin-left:auto; }
.ac-toggle button{ padding:7px 14px; font-size:var(--fs-sm); }
.ac-card{ padding:20px; }
.ac-bloque-cab{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:12px; }
.ac-nota{ font-size:var(--fs-md); color:var(--c-texto-sec); margin:0 0 12px; max-width:880px; line-height:1.5; }
.ac-subtitulo{ font-size:var(--fs-lg); font-weight:700; margin:24px 0 12px; color:var(--c-texto); }
.ac-metodo{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin:18px 2px 0; max-width:980px; line-height:1.55; }
table.item-matrix.ac-tabla{ font-size:var(--fs-md); }
table.item-matrix.ac-tabla td{ vertical-align:top; }
table.item-matrix.ac-tabla .ac-num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ac-art{ display:block; font-weight:600; color:var(--c-texto); overflow-wrap:anywhere; }
.ac-art-meta{ display:block; font-size:var(--fs-sm); color:var(--c-texto-ter); font-weight:500; margin-top:2px; }
table.item-matrix.ac-tabla .ac-num .ac-art-meta{ white-space:normal; min-width:90px; }
table.item-matrix.ac-tabla td:first-child{ min-width:200px; }
table.item-matrix.ac-tabla thead th.ac-num{ white-space:normal; }
.ac-sub{ font-size:var(--fs-sm); color:var(--c-texto-ter); font-weight:500; }
.ac-prov{ font-weight:600; color:var(--c-texto); }
.ac-puesto{ display:inline-block; min-width:24px; color:var(--c-texto-ter); font-weight:700; font-variant-numeric:tabular-nums; }
.ac-chip{ display:inline-flex; align-items:center; gap:4px; font-size:var(--fs-sm); font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap; margin:2px 4px 2px 0; }
.ac-chip-alerta{ color:var(--c-rubi); background:var(--c-rubi-tenue); }
.ac-chip-bien{ color:var(--c-esmeralda-2); background:var(--c-esmeralda-tenue); }
.ac-chip-aviso{ color:var(--c-ambar); background:var(--c-ambar-tenue); }
.ac-chip-neutro{ color:var(--c-texto-sec); background:var(--c-pill); }
.ac-chip-acuerdo{ color:var(--c-naranja-texto); background:var(--c-azul-tenue); }
.ac-alt{ display:inline-block; font-size:var(--fs-sm); color:var(--c-texto-sec); background:var(--c-bg); border:1px solid var(--c-borde); border-radius:8px; padding:3px 8px; margin:2px 4px 2px 0; max-width:100%; overflow-wrap:anywhere; }
.ac-alt strong{ color:var(--c-texto); font-weight:600; }
.ac-alt em{ font-style:normal; font-weight:700; }
.ac-alt-acuerdo{ border-color:var(--c-azul-claro); }
.ac-alt-sugerido{ border-style:dashed; }
.ac-dif-baja{ color:var(--c-esmeralda-2); }
.ac-dif-alta{ color:var(--c-rubi); }
.ac-familias-prov span{ display:block; font-size:var(--fs-sm); color:var(--c-texto-sec); white-space:nowrap; }
.ac-familias-prov strong{ color:var(--c-texto); }
.ac-familias{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:16px 32px; }
.ac-familia-cab{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:6px; }
.ac-familia-nombre{ font-size:var(--fs-md); font-weight:600; color:var(--c-texto); overflow-wrap:anywhere; }
.ac-familia-valor{ font-size:var(--fs-sm); font-weight:700; color:var(--c-texto-sec); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ac-familia-meta{ font-size:var(--fs-sm); color:var(--c-texto-ter); margin-top:5px; }
.ac-tabla-pie{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.ac-resumen-chips{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:12px; }
.stat-tile.ac-kpi-alerta .stat-value{ color:var(--c-ambar); }
.ac-kpis-compactos{ margin-bottom:16px; }
.ac-enlace{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px 20px; }
.ac-enlace strong{ font-size:var(--fs-lg); color:var(--c-texto); }
.ac-enlace p{ margin:4px 0 0; font-size:var(--fs-md); color:var(--c-texto-sec); max-width:720px; }
@media (max-width:640px){
  .ac-acciones{ justify-content:flex-start; margin-left:0; }
  .tarjetas-movil table.ac-tabla .ac-chip, .tarjetas-movil table.ac-tabla .ac-num, .tarjetas-movil table.ac-tabla .ac-familias-prov span{ white-space:normal; }
  .ac-familias{ grid-template-columns:1fr; }
  .ac-toggle{ width:100%; }
}
.hist-detalle-volver{ margin-bottom:12px; max-width:100%; white-space:normal; text-align:left; overflow-wrap:anywhere; }
.periodo-barra{ display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; padding:12px 16px; margin-bottom:16px; }
.periodo-barra-label{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto); }
.periodo-barra select{ min-width:230px; }
.periodo-barra-detalle{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.ac-cobertura{ display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; margin:-6px 0 16px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.ac-cobertura-atajos{ display:flex; gap:6px; flex-wrap:wrap; }
.ac-cobertura-atajos .btn.activo{ background:var(--c-azul); color:var(--c-texto-sobre-naranja); border-color:var(--c-azul); }
#ap-panel.ap-calculando{ opacity:.45; pointer-events:none; transition:opacity .15s ease-out; }
@media (prefers-reduced-motion: reduce){ #ap-panel.ap-calculando{ transition:none; } }
.matrix-progreso:empty{ display:none; }
.matrix-progreso{ margin:0 0 var(--sp-3); display:flex; flex-direction:column; gap:var(--sp-2); }
.matrix-progreso-fila{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-2) var(--sp-4); }
.matrix-progreso-datos{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); font-size:var(--fs-md); color:var(--c-texto-sec); }
.matrix-progreso-datos strong{ color:var(--c-texto); }
.matrix-progreso-barra, .rev-avance-barra{ display:inline-block; width:120px; height:6px; border-radius:var(--radio-pill); background:var(--c-pill); overflow:hidden; flex:none; }
.matrix-progreso-barra > span, .rev-avance-barra > span{ display:block; height:100%; border-radius:inherit; background:var(--c-esmeralda); transition:width .4s var(--resorte); }
.matrix-progreso-pend, .rev-avance-pend{ color:var(--c-ambar); font-weight:600; }
.matrix-progreso-ok{ color:var(--c-esmeralda-2); font-weight:600; }
.matrix-progreso-acciones{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); }
.matrix-filtro-label{ display:inline-flex; align-items:center; gap:6px; font-size:var(--fs-sm); color:var(--c-texto-sec); font-weight:600; }
.matrix-filtro-select{ font-size:var(--fs-md); padding:5px 8px; border-radius:var(--radio-sm); border:1px solid var(--c-borde-fuerte); background:var(--c-superficie); max-width:260px; }
.matrix-filtro-nota{ margin:0; font-size:var(--fs-sm); color:var(--c-texto-sec); background:var(--c-ambar-tenue); border:1px solid color-mix(in srgb, var(--c-ambar) 30%, transparent); border-radius:var(--radio-sm); padding:6px 10px; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.matrix-filtro-nota strong{ color:var(--c-texto); }
kbd{ font-family:inherit; font-size:var(--fs-2xs); font-weight:700; padding:1px 5px; border-radius:4px; border:1px solid var(--c-borde-fuerte); background:var(--c-superficie); color:var(--c-texto-sec); }
.th-progreso{ display:block; margin-top:2px; font-size:var(--fs-2xs); font-weight:600; letter-spacing:0; text-transform:none; color:var(--c-ambar); }
.th-progreso.completo{ color:var(--c-esmeralda-2); }
.th-historial{
  display:inline-block; margin-top:3px; font:inherit; font-size:var(--fs-xs); font-weight:700; letter-spacing:0; text-transform:none;
  color:var(--c-texto-sec); background:var(--c-pill); border:none; border-radius:var(--radio-pill); padding:1px 7px; cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.th-historial:hover{ background:var(--c-azul-tenue); color:var(--c-naranja-texto); }
.th-historial:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
table.item-matrix thead th.th-filtro-activo{ box-shadow:inset 0 -2px 0 var(--c-azul); color:var(--c-texto); }
table.item-matrix tr.fila-filtrada{ display:none; }
table.item-matrix tr.fila-sin-precio > td.sticky-col{ box-shadow:inset 3px 0 0 var(--c-ambar); background:color-mix(in srgb, var(--c-ambar-tenue) 70%, var(--c-superficie)); }
table.item-matrix td.celda-pendiente .price-input{ border-style:dashed; border-color:var(--c-ambar); background:var(--c-ambar-tenue); }
.item-gemelo-badge{ display:inline-block; margin-left:4px; font-size:var(--fs-2xs); font-weight:700; color:var(--c-texto-sec); background:var(--c-pill); border-radius:var(--radio-pill); padding:1px 6px; vertical-align:middle; cursor:help; }
.cotizacion-revision-layout{ display:grid; grid-template-columns:minmax(0, 1fr); gap:var(--sp-4); margin-top:var(--sp-3); align-items:start; }
@media (min-width:1180px){
  .cotizacion-revision-layout{ grid-template-columns:minmax(0, 1.55fr) minmax(340px, 1fr); }
  .cotizacion-revision-layout > .cotizacion-preview-panel{ position:sticky; top:0; }
  .cotizacion-revision-layout .cotizacion-preview-iframe, .cotizacion-revision-layout .cotizacion-preview-tabla-wrap{ height:min(72vh, 860px); max-height:min(72vh, 860px); }
}
.rev-lectura{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:var(--sp-2); }
.rev-lectura-chip{ font-size:var(--fs-sm); padding:3px 9px; border-radius:var(--radio-pill); background:var(--c-pill); color:var(--c-texto-sec); }
.rev-lectura-ok{ background:var(--c-esmeralda-tenue); color:var(--c-esmeralda-2); }
.rev-lectura-alerta{ background:var(--c-rubi-tenue); color:var(--c-rubi); font-weight:600; }
.rev-avance{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2) var(--sp-3); margin:var(--sp-2) 0; font-size:var(--fs-md); color:var(--c-texto-sec); }
.rev-avance strong{ color:var(--c-texto); }
.rev-avance-barra{ width:160px; }
.rev-toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-2); margin-bottom:6px; }
.rev-filtros{ display:flex; flex-wrap:wrap; gap:4px; }
.rev-filtro{ font:inherit; font-size:var(--fs-sm); padding:4px 10px; border-radius:var(--radio-pill); border:1px solid var(--c-borde); background:var(--c-superficie); color:var(--c-texto-sec); cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.rev-filtro strong{ color:var(--c-texto); margin-left:2px; }
.rev-filtro:hover{ border-color:var(--c-borde-fuerte); }
.rev-filtro.activo{ background:var(--c-azul-tenue); border-color:var(--c-azul); color:var(--c-naranja-texto, var(--c-azul-oscuro)); font-weight:600; }
.rev-ayuda{ margin:0 0 6px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.rev-aviso-vacio{ margin:0 0 var(--sp-2); font-size:var(--fs-md); color:var(--c-texto-sec); background:var(--c-ambar-tenue); border-radius:var(--radio-sm); padding:8px 12px; }
table.rev-tabla{ table-layout:fixed; width:100%; }
table.rev-tabla th, table.rev-tabla td{ text-align:left; vertical-align:top; padding:6px 8px; font-size:var(--fs-md); }
table.rev-tabla .rev-num{ color:var(--c-texto-ter); font-variant-numeric:tabular-nums; }
.rev-item-desc, .rev-linea-desc{ display:block; color:var(--c-texto); overflow-wrap:anywhere; }
.rev-item-desc{ font-weight:600; }
.rev-item-meta, .rev-linea-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:2px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.rev-gemelos{ font-weight:700; color:var(--c-texto-sec); background:var(--c-pill); border-radius:var(--radio-pill); padding:0 6px; cursor:help; }
.rev-contradiccion{ color:var(--c-rubi); font-weight:600; cursor:help; }
.rev-cambiar-linea{ margin-top:3px; padding:0; border:none; background:none; font:inherit; font-size:var(--fs-sm); color:var(--c-texto-sec); text-decoration:underline; cursor:pointer; }
.rev-cambiar-linea:hover{ color:var(--c-texto); }
.rev-sin-linea{ font-size:var(--fs-sm); color:var(--c-texto-ter); font-style:italic; }
.rev-elegir-linea, .rev-asignar-item{ width:100%; font-size:var(--fs-sm); padding:4px 6px; border-radius:var(--radio-sm); border:1px solid var(--c-borde-fuerte); background:var(--c-superficie); }
table.rev-tabla td.rev-precio input{ width:100%; font-size:var(--fs-md); font-weight:600; padding:5px 7px; font-variant-numeric:tabular-nums; }
table.rev-tabla td.rev-accion{ display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.rev-estado-ok{ font-size:var(--fs-sm); font-weight:600; color:var(--c-esmeralda-2); cursor:default; }
.rev-nota-precio{ font-size:var(--fs-2xs); color:var(--c-texto-ter); width:100%; }
table.rev-tabla tr.rev-sin > td.rev-num{ box-shadow:inset 3px 0 0 var(--c-ambar); }
table.rev-tabla tr.rev-revisar > td.rev-num{ box-shadow:inset 3px 0 0 var(--c-azul); }
table.rev-tabla tr.rev-con{ background:color-mix(in srgb, var(--c-esmeralda-tenue) 55%, transparent); }
table.rev-tabla tr.rev-sin td.rev-precio input:placeholder-shown{ border-style:dashed; border-color:var(--c-ambar); }
.rev-vacio{ text-align:center !important; color:var(--c-texto-sec); padding:18px 8px !important; }
.rev-sueltas{ margin-top:var(--sp-3); border:1px solid var(--c-borde); border-radius:var(--radio-md); padding:8px 12px; background:var(--c-superficie); }
.rev-sueltas > summary{ cursor:pointer; font-size:var(--fs-md); font-weight:600; color:var(--c-texto); }
.rev-sueltas-nota{ margin:6px 0 8px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
table.rev-tabla-sueltas td.rev-precio-fijo{ width:110px; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
table.rev-tabla-sueltas td:last-child{ width:38%; }
@media (prefers-reduced-motion: reduce){ .matrix-progreso-barra > span, .rev-avance-barra > span{ transition:none; } }
.proveedor-card .cotizacion-adjunta-chip{ flex-wrap:wrap; }
.proveedor-card .cotizacion-adjunta-conteo{ flex:1 1 100%; order:10; }
.cotizaciones-dropzone{
  display:flex; align-items:center; gap:var(--sp-3); margin:0 0 var(--sp-3); padding:10px 14px;
  border:1.5px dashed var(--c-borde-fuerte); border-radius:var(--radio-md); background:var(--c-superficie);
  font-size:var(--fs-md); color:var(--c-texto-sec); cursor:pointer; transition:border-color .15s ease, background .15s ease;
}
.cotizaciones-dropzone:hover, .cotizaciones-dropzone:focus-visible{ border-color:var(--c-azul); }
.cotizaciones-dropzone.recibe-archivo{ border-color:var(--c-azul); background:var(--c-azul-tenue); }
.cotizaciones-dropzone-icono{ font-size:var(--fs-xl); flex:none; }
.cotizaciones-dropzone-texto strong{ color:var(--c-texto); }
.cotizaciones-dropzone-enlace{ color:var(--c-naranja-texto, var(--c-azul-oscuro)); text-decoration:underline; font-weight:600; }
.proveedor-card.recibe-archivo{ outline:2px dashed var(--c-azul); outline-offset:2px; }
.rev-encabezado{ display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:var(--sp-2) var(--sp-4); padding-right:44px; }
.rev-navegacion{ display:flex; align-items:center; gap:var(--sp-2); font-size:var(--fs-sm); color:var(--c-texto-sec); }
.rev-refs{ display:flex; flex-wrap:wrap; gap:4px 10px; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-ter); }
.rev-ref strong{ color:var(--c-texto-sec); font-variant-numeric:tabular-nums; }
.rev-ref{ cursor:help; }
.rev-sobreprecio{ display:block; margin-top:3px; font-size:var(--fs-2xs); font-weight:600; color:var(--c-ambar); line-height:1.3; }
.rev-presentacion{ display:block; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-sec); background:var(--c-pill); border-radius:var(--radio-sm); padding:4px 8px; }
.rev-presentacion.clara{ background:var(--c-ambar-tenue); color:var(--c-texto); box-shadow:inset 3px 0 0 var(--c-ambar); }
.plantilla-opciones{ display:flex; flex-wrap:wrap; align-items:stretch; gap:8px; margin:10px 0 4px; padding:12px; border-radius:var(--radio-sm); background:var(--c-pill); }
.plantilla-opciones-titulo{ flex-basis:100%; margin:0 0 2px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
.plantilla-opcion{ flex:1 1 200px; display:flex; flex-direction:column; gap:2px; text-align:left; padding:8px 12px; border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); color:var(--c-texto); font:inherit; cursor:pointer; }
.plantilla-opcion:hover:not([disabled]), .plantilla-opcion:focus-visible{ border-color:var(--c-texto-sec); }
.plantilla-opcion[disabled]{ opacity:.5; cursor:not-allowed; }
.plantilla-opcion-etiqueta{ font-size:var(--fs-sm); font-weight:600; }
.plantilla-opcion-etiqueta strong{ font-variant-numeric:tabular-nums; }
.plantilla-opcion-nota{ font-size:var(--fs-2xs); color:var(--c-texto-ter); }
.rev-solicitada{ display:block; margin-top:2px; font-size:var(--fs-sm); color:var(--c-texto-ter); overflow-wrap:anywhere; }
.rev-aviso-linea{ display:block; margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto); background:var(--c-ambar-tenue); border-radius:var(--radio-sm); padding:4px 8px; box-shadow:inset 3px 0 0 var(--c-ambar); }
.rev-precio-veredicto{ display:block; margin-top:3px; font-size:var(--fs-2xs); line-height:1.3; color:var(--c-texto-ter); cursor:help; font-variant-numeric:tabular-nums; }
.rev-precio-veredicto.ok{ color:var(--c-esmeralda-2); }
.rev-precio-veredicto.alerta{ color:var(--c-ambar); font-weight:600; }
.rev-precio-veredicto.fuera{ color:var(--c-rubi); font-weight:600; }
.rev-venta-anterior{ display:block; margin-top:3px; font-size:var(--fs-2xs); line-height:1.3; color:var(--c-texto-ter); cursor:help; font-variant-numeric:tabular-nums; }
.rev-venta-anterior.sube{ color:var(--c-ambar); font-weight:600; }
.rev-venta-anterior.baja{ color:var(--c-esmeralda-2); }
.rev-ventas-anteriores{ margin:0 0 var(--sp-2); padding:8px 12px; border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); font-size:var(--fs-sm); color:var(--c-texto-sec); font-variant-numeric:tabular-nums; }
.rev-ventas-anteriores.sube{ border-color:var(--c-ambar); }
.cotizacion-preview-img{ display:block; max-width:100%; height:auto; }
.item-buscar-btn{ right:30px; }
.motor-buscador-modal{ max-width:860px; font-size:var(--fs-md); }
.motor-buscador-form{ display:flex; gap:var(--sp-2); margin:var(--sp-3) 0; }
.motor-buscador-form input{ flex:1; font-size:var(--fs-md); padding:8px 12px; border-radius:var(--radio-sm); border:1px solid var(--c-borde-fuerte); background:var(--c-superficie); }
.motor-buscador-resultados{ display:flex; flex-direction:column; gap:6px; max-height:60vh; overflow-y:auto; }
.motor-buscador-resultado{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); padding:8px 12px; border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); }
.motor-buscador-info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.motor-buscador-desc{ font-weight:600; color:var(--c-texto); overflow-wrap:anywhere; }
.motor-buscador-meta, .motor-buscador-datos{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.motor-buscador-datos strong, .motor-buscador-meta strong{ color:var(--c-texto-sec); }
.motor-buscador-ya{ font-size:var(--fs-sm); font-weight:600; color:var(--c-esmeralda-2); white-space:nowrap; }
.motor-buscador-resultado .btn{ flex:none; }
.cobertura-barra{ display:inline-block; width:90px; height:6px; border-radius:var(--radio-pill); background:var(--c-pill); overflow:hidden; vertical-align:middle; }
.cobertura-barra > span{ display:block; height:100%; background:var(--c-esmeralda); }
.cobertura-tabla tr.cobertura-baja .cobertura-barra > span{ background:var(--c-ambar); }
.cobertura-nota{ margin:var(--sp-2) 0 0; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.cobertura-nota-alerta{ color:var(--c-texto); background:var(--c-ambar-tenue); border-radius:var(--radio-sm); padding:6px 10px; }
.sugeridos-panel{ margin:0 0 var(--sp-3); border:1px solid var(--c-borde); border-radius:var(--radio-md); background:var(--c-superficie); padding:10px 14px; }
.sugeridos-panel > summary{ cursor:pointer; list-style:none; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; font-size:var(--fs-md); }
.sugeridos-panel > summary::-webkit-details-marker{ display:none; }
.sugeridos-panel > summary::before{ content:'▸'; display:inline-block; font-size:var(--fs-sm); color:var(--c-texto-ter); transition:transform .15s ease; }
.sugeridos-panel[open] > summary::before{ transform:rotate(90deg); }
.sugeridos-titulo{ font-weight:700; color:var(--c-texto); }
.sugeridos-resumen{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
.sugeridos-panel[open] > summary{ margin-bottom:var(--sp-2); }
.sug-barra-acciones{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--sp-2); margin-bottom:var(--sp-2); }
table.sug-tabla{ min-width:0; }
table.sug-tabla th, table.sug-tabla td{ padding:6px 10px; vertical-align:middle; }
table.sug-tabla td.sug-prov strong{ display:block; color:var(--c-texto); font-weight:600; }
.sug-meta{ display:block; font-size:var(--fs-2xs); color:var(--c-texto-ter); }
table.sug-tabla td.sug-cubre{ white-space:nowrap; font-variant-numeric:tabular-nums; }
table.sug-tabla td.sug-cubre > span + span{ margin-left:6px; }
.sug-barra{ display:inline-block; width:54px; height:5px; border-radius:var(--radio-pill); background:var(--c-pill); overflow:hidden; vertical-align:middle; }
.sug-barra > span{ display:block; height:100%; background:var(--c-esmeralda); }
.sug-solo-familia{ font-size:var(--fs-sm); color:var(--c-texto-ter); }
table.sug-tabla td.sug-chips{ min-width:180px; }
.sug-chip{ display:inline-block; margin:1px 4px 1px 0; padding:1px 7px; border-radius:var(--radio-pill); background:var(--c-pill); font-size:var(--fs-2xs); color:var(--c-texto-sec); white-space:nowrap; }
.sug-chip-acuerdo{ background:var(--c-esmeralda-tenue); color:var(--c-esmeralda-2); font-weight:600; }
.sug-chip-alerta{ background:var(--c-ambar-tenue); color:var(--c-ambar); font-weight:600; }
table.sug-tabla td.sug-fecha{ white-space:nowrap; font-size:var(--fs-sm); color:var(--c-texto-sec); }
table.sug-tabla td.sug-accion{ text-align:right; white-space:nowrap; }
.sug-ya{ font-size:var(--fs-sm); font-weight:600; color:var(--c-esmeralda-2); }
table.sug-tabla tr.sug-separador td{ font-size:var(--fs-sm); color:var(--c-texto-ter); background:rgba(17,24,39,.03); }
table.sug-tabla-items td.sug-item{ width:36%; }
table.sug-tabla-items td.sug-item > span:first-child{ display:block; color:var(--c-texto); }
.sug-quien{ display:block; font-size:var(--fs-sm); color:var(--c-texto-sec); font-variant-numeric:tabular-nums; }
.sug-quien strong{ color:var(--c-texto); font-weight:600; }
.sug-nota{ margin:var(--sp-2) 0 0; font-size:var(--fs-2xs); color:var(--c-texto-ter); }
.sug-botones{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.modal-box.solicitud-correo-modal{ max-width:min(780px, 96vw); }
.solicitud-correo-cuerpo{ display:flex; flex-direction:column; gap:var(--sp-3); }
.solicitud-bloque{ margin:0; padding:var(--sp-2) var(--sp-3) var(--sp-3); border:1px solid var(--c-borde); border-radius:var(--radio-sm); background:var(--c-superficie); }
.solicitud-bloque legend{ padding:0 6px; font-size:var(--fs-sm); font-weight:600; color:var(--c-texto-sec); }
label.solicitud-bloque{ display:flex; flex-direction:column; gap:6px; }
.solicitud-alcance{ display:flex; align-items:center; gap:8px; padding:4px 0; font-size:var(--fs-sm); cursor:pointer; }
.solicitud-provs{ list-style:none; margin:0; padding:0; max-height:min(42vh, 340px); overflow-y:auto; }
.solicitud-prov{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(200px, 280px); align-items:center; gap:2px var(--sp-3); padding:8px 0; border-bottom:1px solid var(--c-borde); }
.solicitud-prov:last-child{ border-bottom:0; }
.solicitud-prov-check{ display:flex; align-items:center; gap:8px; font-size:var(--fs-sm); cursor:pointer; overflow-wrap:anywhere; }
.solicitud-prov .sug-meta{ grid-column:1; }
.solicitud-prov-correo{ grid-column:2; grid-row:1 / span 2; width:100%; text-align:left; }
.solicitud-fila{ display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:flex-end; }
#solicitud-mensaje{ width:100%; min-height:180px; font:inherit; line-height:1.45; text-align:left; }
.solicitud-correo-acciones{ display:flex; justify-content:flex-end; gap:var(--sp-2); margin-top:var(--sp-3); }
.solicitud-estado{ font-size:var(--fs-sm); color:var(--c-texto-sec); }
.solicitud-estado.ok{ color:var(--c-esmeralda-2); font-weight:600; }
.solicitud-estado.hoy{ color:var(--c-ambar); font-weight:600; }
.solicitud-estado.vencida{ color:var(--c-rubi-texto, var(--c-rubi)); font-weight:600; }
.solicitudes-tabla .solicitud-acciones{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
@media (max-width:640px){
  .solicitud-prov{ grid-template-columns:1fr; }
  .solicitud-prov-correo{ grid-column:1; grid-row:auto; }
}
@media (max-width:720px){
  table.sug-tabla thead{ display:none; }
  table.sug-tabla tr{ display:grid; grid-template-columns:1fr auto; gap:2px 8px; padding:6px 0; }
  table.sug-tabla td{ padding:2px 4px; }
  table.sug-tabla td.sug-prov, table.sug-tabla td.sug-chips, table.sug-tabla-items td{ grid-column:1 / -1; width:auto; }
}
.stat-tile-accion{ font:inherit; color:inherit; text-align:left; cursor:pointer; }
.stat-tile-accion:hover{ border-color:var(--c-borde-fuerte); }
.acuerdos-por-vencer-acciones{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); }
.acuerdos-por-vencer-card{ padding:12px 14px; }
.apv-resumen{ margin:0 0 var(--sp-2); font-size:var(--fs-md); color:var(--c-texto-sec); }
.apv-resumen strong{ color:var(--c-texto); font-variant-numeric:tabular-nums; }
table.apv-tabla{ min-width:720px; }
table.apv-tabla th, table.apv-tabla td{ padding:6px 10px; vertical-align:middle; }
table.apv-tabla td.num, table.apv-tabla-detalle td.num{ font-variant-numeric:tabular-nums; white-space:nowrap; }
table.apv-tabla td.apv-acuerdo strong{ display:block; color:var(--c-texto); font-weight:600; }
table.apv-tabla td.apv-vence .band-estado{ white-space:nowrap; }
table.apv-tabla td.apv-accion{ text-align:right; white-space:nowrap; }
table.apv-tabla tr.apv-fila.abierto{ background:rgba(17,24,39,.03); }
table.apv-tabla tr.apv-detalle > td{ padding:0 10px 10px; background:rgba(17,24,39,.03); }
table.apv-tabla-detalle{ min-width:0; background:var(--c-superficie); }
table.apv-tabla-detalle th, table.apv-tabla-detalle td{ padding:4px 8px; font-size:var(--fs-sm); }
.cot-config-check{ display:flex; align-items:center; gap:8px; margin-top:14px; font-size:var(--fs-md); color:var(--c-texto); cursor:pointer; }
.cot-config-trm{ margin:4px 0 0 24px; font-size:var(--fs-sm); color:var(--c-esmeralda-2); }
table.sug-tabla td.sug-accion .btn{ white-space:nowrap; }
.modal-box.modal-historial{ max-width:min(1100px, 96vw); }
.hist-inferido{ margin-top:4px; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.hist-seccion{ margin-top:18px; }
.hist-seccion + .hist-seccion{ padding-top:14px; border-top:1px solid var(--c-borde); }
.hist-seccion-titulo{ font-size:var(--fs-lg); font-weight:700; color:var(--c-texto); margin:0 0 10px; }
.hist-seccion-titulo small{ font-size:var(--fs-xs); font-weight:500; color:var(--c-texto-ter); }
.hist-subtitulo{ font-size:var(--fs-md); font-weight:700; color:var(--c-texto-sec); margin:16px 0 6px; }
.hist-ultima{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 12px; padding:12px 16px;
  background:var(--c-azul-tenue); border:1px solid color-mix(in srgb, var(--c-azul) 30%, transparent); border-radius:var(--radio-md);
}
.hist-ultima-lbl{ font-size:var(--fs-xs); font-weight:700; letter-spacing:.3px; text-transform:uppercase; color:var(--c-naranja-texto); }
.hist-ultima-precio{ font-size:18px; font-weight:800; color:var(--c-texto); }
.hist-ultima-det{ flex-basis:100%; font-size:var(--fs-sm); color:var(--c-texto-sec); }
.hist-muted{ font-size:var(--fs-xs); color:var(--c-texto-ter); }
.hist-bloque{ display:block; }
.hist-en-uso{ font-size:var(--fs-xs); font-weight:700; color:var(--c-naranja-texto); white-space:nowrap; }
.hist-detalle-tabla tr.hist-fila-destacada td{ background:var(--c-azul-tenue); }
.hist-filtros{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 8px; }
.hist-filtro{
  font:inherit; font-size:var(--fs-sm); font-weight:600; padding:4px 11px; border-radius:var(--radio-pill);
  border:1px solid var(--c-borde); background:transparent; color:var(--c-texto-sec); cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.hist-filtro:hover{ border-color:var(--c-borde-fuerte); }
.hist-filtro.activo{ background:var(--c-azul-tenue); border-color:var(--c-azul-claro); color:var(--c-naranja-texto); }
.hist-filtro:focus-visible{ outline:2px solid var(--c-azul-oscuro); outline-offset:2px; }
.hist-acciones-proveedor{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:4px 0 12px; }
