/* ==========================================================================
   Link007 Herramientas
   --------------------------------------------------------------------------
   Los widgets heredan los tokens del tema Link007 cuando esta activo. Cada
   var() lleva su valor de respaldo para que el plugin siga viendose bien con
   cualquier otro tema.

   Los colores de estado (debil / aceptable / fuerte / excelente, sube / baja)
   son semanticos y viven aparte del color de acento: comunican un significado,
   no la marca.
   ========================================================================== */

.l007{
  --l007-bg:var(--bg,#ffffff);
  --l007-bg-alt:var(--bg-alt,#f5f5f7);
  --l007-text:var(--text,#1d1d1f);
  --l007-text-2:var(--text-2,#6e6e73);
  --l007-text-3:var(--text-3,#86868b);
  --l007-line:var(--line,#d2d2d7);
  --l007-accent:var(--accent,#0071e3);
  --l007-mono:var(--mono,ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace);
  --l007-sans:var(--sans,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif);
  --l007-ease:var(--ease,cubic-bezier(.16,1,.3,1));

  --l007-debil:#d93a3a;
  --l007-aceptable:#c8811a;
  --l007-fuerte:#1f8a4c;
  --l007-excelente:#0f7a68;

  display:flex;
  flex-direction:column;
  gap:20px;
  padding:32px;
  border-radius:20px;
  border:1px solid var(--l007-line);
  background:var(--l007-bg-alt);
  color:var(--l007-text);
  font-family:var(--l007-sans);
  font-size:1rem;
  line-height:1.5;
}

.l007 *{box-sizing:border-box;}

/* ==========================================================================
   Franja de mercado de la portada
   ========================================================================== */
.mercado-barra{
  position:relative;z-index:20;
  border-bottom:1px solid var(--line,#d2d2d7);
  background:color-mix(in srgb,var(--bg,#fff) 88%,transparent);
  color:var(--text,#1d1d1f);
  font-family:var(--sans,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif);
  backdrop-filter:saturate(160%) blur(18px);
  -webkit-backdrop-filter:saturate(160%) blur(18px);
  overflow:hidden;
}
.mercado-barra *{box-sizing:border-box;}
.mercado-barra__inner{
  width:min(calc(100% - 44px),1120px);min-height:64px;margin-inline:auto;
  display:grid;grid-template-columns:minmax(480px,1.9fr) repeat(2,minmax(118px,.55fr)) auto;
  align-items:center;gap:10px;
}
.mercado-barra__dolar{
  min-width:0;min-height:48px;display:flex;align-items:center;gap:18px;padding:8px 16px;
  border:1px solid color-mix(in srgb,var(--accent,#0071e3) 40%,var(--line,#d2d2d7));
  border-radius:14px;background:color-mix(in srgb,var(--accent,#0071e3) 7%,transparent);
  color:inherit;text-decoration:none;
  transition:border-color .2s ease,background-color .2s ease;
}
.mercado-barra__dolar:hover{border-color:var(--accent,#0071e3);background:color-mix(in srgb,var(--accent,#0071e3) 11%,transparent);}
.mercado-barra__marca{display:flex;align-items:center;gap:9px;white-space:nowrap;}
.mercado-barra__simbolo{position:relative;display:grid;place-items:center;width:42px;height:27px;flex:none;overflow:hidden;border:1px solid #47a86c;border-radius:7px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.74) 0 24%,transparent 26%),linear-gradient(135deg,#effff3,#bdeacb);box-shadow:0 6px 16px rgba(22,122,65,.22),inset 0 0 0 1px rgba(255,255,255,.68);font:800 1rem var(--l007-mono,ui-monospace,monospace);color:#0c743b;text-shadow:0 1px 0 rgba(255,255,255,.8);}
.mercado-barra__simbolo::before{content:"";position:absolute;inset:3px;border:1px solid rgba(17,126,61,.34);border-radius:4px;pointer-events:none;}
.mercado-barra__nombre{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent,#0071e3);white-space:nowrap;}
.mercado-barra__dato{display:flex;min-width:0;flex-direction:column;gap:1px;white-space:nowrap;}
.mercado-barra__dato small,.mercado-barra__indicador small{font-size:.625rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3,#86868b);}
.mercado-barra__dato b{font-size:.875rem;line-height:1.15;}
.mercado-barra__ver{margin-left:auto;font-size:.6875rem;color:var(--accent,#0071e3);white-space:nowrap;}
.mercado-barra__indicador{display:flex;flex-direction:column;gap:2px;padding:7px 10px;white-space:nowrap;}
.mercado-barra__indicador b{font-size:.75rem;font-weight:650;}
.mercado-barra__estado{font-size:.625rem;color:var(--text-3,#86868b);white-space:nowrap;}
.mercado-barra__aviso{display:none;}
@media (max-width:920px){
  .mercado-barra__inner{width:min(calc(100% - 24px),760px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-block:8px;gap:6px 10px;}
  .mercado-barra__dolar{grid-column:1/-1;min-width:0;}
  .mercado-barra__indicador{min-width:0;padding-block:4px;}
  .mercado-barra__estado{display:none;}
}
@media (max-width:560px){
	.mercado-barra__inner{width:100%;min-height:0;display:block;padding:8px 12px;}
	.mercado-barra__dolar{display:grid;grid-template-columns:34px minmax(92px,.9fr) minmax(122px,1.2fr);min-width:0;gap:9px;padding:7px 10px;}
	.mercado-barra__marca{gap:6px;}
	.mercado-barra__simbolo{width:34px;height:22px;border-radius:6px;font-size:.875rem;}
	.mercado-barra__nombre{display:none;}
	.mercado-barra__ver{display:none;}
	.mercado-barra__dato b{font-size:.75rem;white-space:normal;}
	.mercado-barra__indicador,.mercado-barra__estado{display:none;}
}

.l007[id],.l007-anchor-alias{scroll-margin-top:150px;}
.l007-anchor-alias{display:block;width:1px;height:1px;overflow:hidden;}

/* --- Cabecera --- */
.l007__head{display:flex;flex-direction:column;gap:6px;}
.l007__titulo{
  margin:0;
  font-size:1.3125rem;font-weight:600;
  letter-spacing:-.015em;line-height:1.25;
  color:var(--l007-text);
}
.l007__sub{margin:0;font-size:.9375rem;color:var(--l007-text-3);}

.l007__pie{
  margin:0;padding-top:16px;
  border-top:1px solid var(--l007-line);
  font-size:.8125rem;line-height:1.5;
  color:var(--l007-text-3);
}

.l007__aviso{
  margin:0;padding:12px 16px;
  border-radius:12px;
  background:var(--l007-bg);
  border:1px solid var(--l007-line);
  font-size:.875rem;color:var(--l007-text-2);
}
.l007.is-error .l007__aviso{border-color:var(--l007-debil);color:var(--l007-debil);}

/* --- Boton principal --- */
.l007__btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;padding:13px 26px;
  border:none;border-radius:980px;
  background:var(--l007-accent);color:#fff;
  font-family:inherit;font-size:1rem;font-weight:500;letter-spacing:-.01em;
  cursor:pointer;
  transition:transform .2s var(--l007-ease),filter .2s var(--l007-ease);
}
.l007__btn:hover:not(:disabled){filter:brightness(1.08);transform:scale(1.02);}
.l007__btn:disabled{opacity:.5;cursor:not-allowed;}

.l007 :where(button,input,[tabindex]):focus-visible{
  outline:2px solid var(--l007-accent);
  outline-offset:3px;
}

/* --- Lista de datos --- */
.l007__datos{margin:0;display:flex;flex-direction:column;gap:0;}
.l007__fila{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:13px 0;
  border-bottom:1px solid var(--l007-line);
}
.l007__fila:last-child{border-bottom:0;}
.l007__fila dt{font-size:.875rem;color:var(--l007-text-3);flex:none;}
.l007__fila dd{
  margin:0;text-align:right;
  font-size:.9375rem;color:var(--l007-text);
  overflow-wrap:anywhere;
}

/* --- Esqueleto de carga --- */
.l007__skel{
  display:inline-block;height:1em;vertical-align:-.15em;
  border-radius:6px;
  background:linear-gradient(90deg,
    var(--l007-line) 25%,
    color-mix(in srgb,var(--l007-line) 45%,transparent) 50%,
    var(--l007-line) 75%);
  background-size:200% 100%;
  animation:l007-brillo 1.4s linear infinite;
}
@keyframes l007-brillo{
  0%{background-position:200% 0;}
  100%{background-position:-200% 0;}
}

/* ==========================================================================
   IP publica
   ========================================================================== */
.ip__principal{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:22px;border-radius:14px;
  background:var(--l007-bg);
  border:1px solid var(--l007-line);
}
.ip__valor{
  flex:1;min-width:0;
  font-family:var(--l007-mono);
  font-variant-numeric:tabular-nums;
  font-size:clamp(1.375rem,3.4vw,1.875rem);
  font-weight:600;letter-spacing:-.02em;
  overflow-wrap:anywhere;
  background:none;padding:0;
}

/* ==========================================================================
   Cotizaciones
   ========================================================================== */
.cot__head{flex-direction:row;align-items:center;justify-content:space-between;gap:24px;}
.cot__estado{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.75rem;color:var(--l007-text-3);}
.cot__pulso{width:7px;height:7px;border-radius:50%;background:var(--l007-fuerte);box-shadow:0 0 0 4px color-mix(in srgb,var(--l007-fuerte) 18%,transparent);}
.cot__refrescar{
  padding:7px 12px;border:1px solid var(--l007-line);border-radius:999px;
  background:transparent;color:var(--l007-text-2);font:inherit;font-size:.75rem;cursor:pointer;
}
.cot__refrescar:hover{color:var(--l007-text);border-color:var(--l007-text-3);}
.cot__refrescar:disabled{opacity:.45;cursor:wait;}

.cot__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
@media (max-width:1000px){.cot__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.cot__grid{grid-template-columns:1fr;}.cot__head{align-items:flex-start;flex-direction:column;}}

.cot__item{
  display:flex;flex-direction:column;gap:8px;
  padding:22px;border-radius:14px;
  background:var(--l007-bg);
  border:1px solid var(--l007-line);
  color:var(--l007-text);text-align:left;font-family:inherit;
}
button.cot__item{cursor:pointer;transition:transform .2s var(--l007-ease),border-color .2s var(--l007-ease),background-color .2s var(--l007-ease);}
button.cot__item:hover{transform:translateY(-2px);border-color:var(--l007-text-3);}
.cot__item--destacado,
.cot__item[aria-pressed="true"]{border-color:var(--l007-accent);background:color-mix(in srgb,var(--l007-accent) 7%,var(--l007-bg));}
.cot__item--trm{grid-column:1/-1;display:grid;grid-template-columns:minmax(210px,.75fr) 2fr;gap:22px;align-items:stretch;}
.cot__trm-intro{display:flex;flex-direction:column;justify-content:center;gap:7px;}
.cot__trm-intro strong{font-size:1.05rem;line-height:1.3;}
.cot__trm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.cot__trm-grid > div{display:flex;flex-direction:column;gap:7px;padding:17px;border:1px solid var(--l007-line);border-radius:12px;background:var(--l007-bg-alt);}

.cot__etq{
  font-family:var(--l007-mono);
  font-size:.6875rem;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
  color:var(--l007-text-3);
}
.cot__valor{
  font-family:var(--l007-mono);
  font-variant-numeric:tabular-nums;
  font-size:1.5rem;font-weight:600;letter-spacing:-.025em;line-height:1.1;
  overflow-wrap:anywhere;
}
.cot__nota{font-size:.8125rem;color:var(--l007-text-3);}
.cot__cambio{font-size:.8125rem;font-weight:600;}
.cot__cambio.es-sube{color:var(--l007-fuerte);}
.cot__cambio.es-baja{color:var(--l007-debil);}
.cot__abrir{margin-top:auto;padding-top:5px;font-size:.75rem;color:var(--l007-accent);}

.cot__chart{
  position:relative;display:flex;flex-direction:column;gap:18px;
  padding:clamp(18px,3vw,28px);border:1px solid var(--l007-line);border-radius:18px;
  background:var(--l007-bg);overflow:hidden;
}
.cot__chart::before{
  content:"";position:absolute;inset:-45% 30% auto -5%;height:260px;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--l007-accent) 18%,transparent),transparent 68%);
}
.cot__chart-head{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;}
.cot__chart-head > div:first-child{display:flex;flex-direction:column;gap:7px;}
.cot__chart-valor{font-size:clamp(1.45rem,3vw,2.1rem);line-height:1;letter-spacing:-.035em;}
.cot__periodos{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
.cot__periodos-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:7px;}
.cot__rango-guia{color:var(--l007-text-3);font:.62rem var(--l007-mono);letter-spacing:.035em;}
.cot__periodos button{
  min-width:38px;padding:7px 9px;border:1px solid transparent;border-radius:999px;
  background:transparent;color:var(--l007-text-3);font:600 .6875rem var(--l007-mono);cursor:pointer;
}
.cot__periodos button:hover{color:var(--l007-text);}
.cot__periodos button[aria-pressed="true"]{background:var(--l007-accent);color:#fff;}
.cot__sesion{position:relative;display:flex;flex-direction:column;gap:16px;padding:18px;border:1px solid color-mix(in srgb,var(--l007-fuerte) 35%,var(--l007-line));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--l007-fuerte) 7%,var(--l007-bg)),color-mix(in srgb,var(--l007-accent) 5%,var(--l007-bg)));overflow:hidden;}
.cot__sesion::before{content:"";position:absolute;right:-90px;top:-120px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--l007-fuerte) 13%,transparent),transparent 68%);pointer-events:none;}
.cot__sesion[hidden]{display:none;}
.cot__sesion-top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;}
.cot__sesion-top > div{display:flex;flex-direction:column;gap:5px;}
.cot__sesion-top strong{font-size:clamp(1rem,2vw,1.25rem);}
.cot__sesion-fecha{font:600 .72rem var(--l007-mono);color:var(--l007-text-3);text-transform:capitalize;}
.cot__sesion-datos{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.cot__sesion-datos > div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:14px 15px;border:1px solid var(--l007-line);border-radius:12px;background:color-mix(in srgb,var(--l007-bg-alt) 84%,transparent);}
.cot__sesion-datos small{font:600 .625rem var(--l007-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--l007-text-3);}
.cot__sesion-datos b{font-size:clamp(.9rem,1.8vw,1.08rem);overflow-wrap:anywhere;}
.cot__sesion-datos span{font-size:.72rem;color:var(--l007-text-3);}
.cot__sesion-datos .es-sube b,.cot__sesion-datos .es-sube span{color:var(--l007-fuerte);}
.cot__sesion-datos .es-baja b,.cot__sesion-datos .es-baja span{color:var(--l007-debil);}
.cot__jornada{position:relative;padding-top:15px;border-top:1px solid var(--l007-line);}
.cot__jornada-head{display:flex;justify-content:space-between;gap:18px;font-size:.72rem;color:var(--l007-text-3);}
.cot__jornada-head span{font-weight:650;color:var(--l007-text-2);}
.cot__jornada-head b{text-align:right;color:var(--l007-fuerte);}
.cot__jornada-escala{position:relative;display:flex;justify-content:space-between;margin:15px 4px 9px;padding-top:18px;font:600 .625rem var(--l007-mono);color:var(--l007-text-3);}
.cot__jornada-escala::before{content:"";position:absolute;left:0;right:0;top:5px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--l007-line) 74%,transparent);box-shadow:inset 0 1px 2px rgba(0,0,0,.16);}
.cot__jornada-avance{position:absolute;left:0;top:5px;width:0;height:6px;border-radius:999px;background:linear-gradient(90deg,#37bd74,#0f8e4d);box-shadow:0 0 13px rgba(25,167,96,.32);transition:width .45s var(--l007-ease);}
.cot__jornada-marca{position:absolute;top:1px;width:14px;height:14px;margin-left:-7px;border:3px solid var(--l007-bg);border-radius:50%;background:#19a760;box-shadow:0 0 0 2px rgba(25,167,96,.3),0 0 16px rgba(25,167,96,.38);transition:left .45s var(--l007-ease);}
.cot__jornada-marca[hidden]{display:none;}
.cot__jornada p{margin:10px 0 0;font-size:.75rem;line-height:1.55;color:var(--l007-text-3);}
.cot__jornada p strong{color:var(--l007-text-2);}
.cot__jornada p a{color:var(--l007-accent);text-decoration:none;white-space:nowrap;}
.cot__jornada p a:hover{text-decoration:underline;}
.cot__trm-contexto{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.cot__trm-contexto[hidden]{display:none;}
.cot__trm-contexto > div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:3px 14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--l007-accent) 34%,var(--l007-line));border-radius:12px;background:color-mix(in srgb,var(--l007-accent) 6%,var(--l007-bg));}
.cot__trm-contexto small{grid-column:1/-1;font:600 .65rem var(--l007-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--l007-text-3);}
.cot__trm-contexto b{font-size:1rem;}
.cot__trm-contexto span{justify-self:end;font-size:.72rem;color:var(--l007-text-3);}
.cot__lienzo{position:relative;min-height:380px;border:1px solid color-mix(in srgb,var(--l007-line) 76%,transparent);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--l007-bg-alt) 54%,transparent),transparent);}
.cot__lienzo canvas{display:block;width:100%;height:380px;touch-action:pan-y;}
.cot__chart-carga{
  position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;
  background:color-mix(in srgb,var(--l007-bg) 82%,transparent);color:var(--l007-text-3);font-size:.875rem;
}
.cot__chart-carga[hidden]{display:none;}
.cot__tooltip{
  position:absolute;top:10px;z-index:2;max-width:calc(100% - 16px);padding:8px 11px;
  border:1px solid var(--l007-line);border-radius:9px;background:var(--l007-bg-alt);
  color:var(--l007-text);font-size:.6875rem;pointer-events:none;white-space:nowrap;
}
.cot__resumen{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-top:16px;border-top:1px solid var(--l007-line);}
.cot__resumen span{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--l007-text-3);}
.cot__resumen b{color:var(--l007-text);font-size:.8125rem;}
.cot__fuente{min-height:1em;margin:0;color:var(--l007-text-3);font-size:.75rem;}
@media (max-width:620px){
  .cot__chart-head{flex-direction:column;}
  .cot__periodos-wrap{align-items:flex-start;}.cot__periodos{justify-content:flex-start;}
	.cot__sesion-top,.cot__jornada-head{flex-direction:column;gap:8px;}
	.cot__sesion-datos{grid-template-columns:1fr;}
	.cot__jornada-head b{text-align:left;}
	.cot__lienzo{min-height:330px;}
	.cot__lienzo canvas{height:330px;}
	.cot__resumen{grid-template-columns:repeat(2,1fr);}
	.cot__item--trm{grid-template-columns:1fr;}
	.cot__trm-grid,.cot__trm-contexto{grid-template-columns:1fr;}
}

/* ==========================================================================
   SafeKey
   ========================================================================== */
.sk__salida{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:22px;border-radius:14px;
  background:var(--l007-bg);
  border:1px solid var(--l007-line);
}
.sk__clave{
  flex:1;min-width:0;
  font-family:var(--l007-mono);
  font-size:clamp(1.0625rem,2.6vw,1.5rem);
  font-weight:600;letter-spacing:0;
  overflow-wrap:anywhere;
  background:none;padding:0;
  color:var(--l007-text);
}

.sk__copiar{
  flex:none;
  padding:9px 18px;border-radius:980px;
  border:1px solid var(--l007-accent);
  background:transparent;color:var(--l007-accent);
  font-family:inherit;font-size:.875rem;font-weight:500;
  cursor:pointer;
  transition:background-color .2s var(--l007-ease),color .2s var(--l007-ease);
}
.sk__copiar:hover:not(:disabled){background:color-mix(in srgb,var(--l007-accent) 10%,transparent);}
.sk__copiar:disabled{opacity:.45;cursor:not-allowed;}
.sk__copiar.is-ok{background:var(--l007-fuerte);border-color:var(--l007-fuerte);color:#fff;}

/* --- Medidor de fuerza --- */
.sk__fuerza{display:flex;flex-direction:column;gap:8px;}
.sk__barra{
  height:4px;border-radius:999px;
  background:var(--l007-line);
  overflow:hidden;
}
.sk__barra > span{
  display:block;height:100%;width:0;
  border-radius:999px;
  background:var(--l007-text-3);
  transition:width .35s var(--l007-ease),background-color .35s var(--l007-ease);
}
.sk__barra > span.es-debil{background:var(--l007-debil);}
.sk__barra > span.es-aceptable{background:var(--l007-aceptable);}
.sk__barra > span.es-fuerte{background:var(--l007-fuerte);}
.sk__barra > span.es-excelente{background:var(--l007-excelente);}
.sk__entropia{
  margin:0;
  font-family:var(--l007-mono);
  font-size:.75rem;letter-spacing:.04em;
  color:var(--l007-text-3);
}

/* --- Controles --- */
.sk__control{
  display:flex;flex-direction:column;gap:10px;
  margin:0;padding:0;border:0;
}
.sk__control > label,
.sk__control > legend{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:0;
  font-size:.875rem;color:var(--l007-text-2);
}
.sk__control > label b{
  font-family:var(--l007-mono);
  font-variant-numeric:tabular-nums;
  font-size:1rem;color:var(--l007-text);
}

.sk__control input[type="range"]{
  width:100%;height:4px;margin:0;
  -webkit-appearance:none;appearance:none;
  background:var(--l007-line);
  border-radius:999px;
  cursor:pointer;
}
.sk__control input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:20px;height:20px;border-radius:50%;
  background:var(--l007-accent);
  border:3px solid var(--l007-bg);
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  cursor:pointer;
}
.sk__control input[type="range"]::-moz-range-thumb{
  width:20px;height:20px;border-radius:50%;
  background:var(--l007-accent);
  border:3px solid var(--l007-bg);
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  cursor:pointer;
}

.sk__niveles{display:flex;flex-direction:column;gap:10px;}
.sk__nivel{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;border-radius:12px;
  border:1px solid var(--l007-line);
  background:var(--l007-bg);
  font-size:.9375rem;color:var(--l007-text-2);
  cursor:pointer;
  transition:border-color .2s var(--l007-ease);
}
.sk__nivel:hover{border-color:var(--l007-text-3);}
.sk__nivel:has(input:checked){
  border-color:var(--l007-accent);
  color:var(--l007-text);
}
.sk__nivel input{accent-color:var(--l007-accent);margin:0;flex:none;}

/* ========================================================================== 
   Laboratorio digital
   ========================================================================== */
.util{gap:28px;overflow:hidden;}
.util__head{flex-direction:row;align-items:end;justify-content:space-between;gap:28px;}
.util__kicker{display:block;margin-bottom:8px;font:600 .6875rem var(--l007-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--l007-accent);}
.util__buscar{width:min(320px,100%);margin:0;}
.util__buscar input,
.util__body :is(input,textarea,select){
  width:100%;border:1px solid var(--l007-line);border-radius:11px;
  background:var(--l007-bg);color:var(--l007-text);font:inherit;
}
.util__buscar input{padding:11px 15px;}
.util__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}
.util__tool{
  border:1px solid var(--l007-line);border-radius:16px;
  background:var(--l007-bg);overflow:hidden;
  transition:border-color .2s var(--l007-ease),box-shadow .2s var(--l007-ease);
}
.util__tool[open]{grid-column:1/-1;border-color:color-mix(in srgb,var(--l007-accent) 55%,var(--l007-line));box-shadow:0 16px 44px rgba(0,0,0,.09);}
.util__tool[hidden]{display:none;}
.util__tool summary{
  list-style:none;display:flex;align-items:center;gap:14px;padding:19px 20px;
  cursor:pointer;user-select:none;
}
.util__tool summary::-webkit-details-marker{display:none;}
.util__tool summary::after{content:"+";margin-left:auto;font:400 1.4rem var(--l007-mono);color:var(--l007-text-3);transition:transform .2s var(--l007-ease);}
.util__tool[open] summary::after{transform:rotate(45deg);color:var(--l007-accent);}
.util__tool summary > span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0;}
.util__tool summary b{font-size:.9375rem;font-weight:600;color:var(--l007-text);}
.util__tool summary small{font-size:.75rem;color:var(--l007-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.util__n{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:color-mix(in srgb,var(--l007-accent) 9%,var(--l007-bg-alt));color:var(--l007-accent);font-size:.6875rem;}
.util__body{display:flex;flex-direction:column;gap:15px;padding:4px 20px 22px;border-top:1px solid var(--l007-line);padding-top:20px;}
.util__body label{display:flex;flex-direction:column;gap:7px;margin:0;font-size:.8125rem;color:var(--l007-text-2);}
.util__body :is(input,select){padding:10px 12px;min-height:43px;}
.util__body textarea{padding:13px 14px;resize:vertical;min-height:112px;line-height:1.5;}
.util__mono{font-family:var(--l007-mono)!important;font-size:.8125rem!important;}
.util__stats{display:flex;gap:8px;flex-wrap:wrap;}
.util__stats span{padding:7px 10px;border-radius:999px;background:var(--l007-bg-alt);color:var(--l007-text-3);font-size:.6875rem;}
.util__stats b{color:var(--l007-text);}
.util__acciones{display:flex;gap:8px;flex-wrap:wrap;}
.util__acciones button,.util__btn{
  padding:9px 13px;border:1px solid var(--l007-line);border-radius:999px;
  background:var(--l007-bg-alt);color:var(--l007-text-2);font:500 .75rem var(--l007-sans);cursor:pointer;
}
.util__acciones button:hover,.util__btn:hover{border-color:var(--l007-accent);color:var(--l007-accent);}
.util__campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.util__resultados{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;}
.util__resultados > div{display:flex;flex-direction:column;gap:5px;padding:12px;border-radius:11px;background:var(--l007-bg-alt);min-width:0;}
.util__resultados dt{font-size:.6875rem;color:var(--l007-text-3);}
.util__resultados dd{margin:0;color:var(--l007-text);font-size:.8125rem;overflow-wrap:anywhere;}
.util__resultados--lista{grid-template-columns:repeat(2,minmax(0,1fr));}
.util__resultados--lista > div:last-child{grid-column:1/-1;}
.util__salida{display:block;padding:13px 14px;border:1px solid var(--l007-line);border-radius:11px;background:var(--l007-bg-alt);color:var(--l007-text);font-size:.875rem;overflow-wrap:anywhere;}
.util__estado{min-height:1.3em;margin:0;font-size:.75rem;color:var(--l007-text-3);}
.util__estado.es-ok{color:var(--l007-fuerte);}.util__estado.es-error{color:var(--l007-debil);}
.util__color{display:grid;grid-template-columns:64px 1fr;gap:10px;}
.util__color input[type="color"]{height:48px;padding:4px;cursor:pointer;}
.util .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
@media (max-width:720px){
  .util__head{align-items:flex-start;flex-direction:column;}
  .util__grid{grid-template-columns:1fr;}
  .util__tool[open]{grid-column:auto;}
  .util__campos,.util__resultados,.util__resultados--lista{grid-template-columns:1fr;}
  .util__resultados--lista > div:last-child{grid-column:auto;}
}

/* ==========================================================================
   Festivos de Colombia
   ========================================================================== */
.fest{gap:24px;overflow:hidden;}
.fest__head{display:flex;flex-direction:row;align-items:end;justify-content:space-between;gap:24px;}
.fest__ics{flex:none;padding:10px 15px;border:1px solid var(--l007-line);border-radius:999px;background:var(--l007-bg);color:var(--l007-text-2);font:600 .75rem var(--l007-sans);cursor:pointer;}
.fest__ics:hover{border-color:var(--l007-accent);color:var(--l007-accent);}
.fest__proximo{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:20px;border:1px solid color-mix(in srgb,var(--l007-accent) 42%,var(--l007-line));border-radius:16px;background:color-mix(in srgb,var(--l007-accent) 7%,var(--l007-bg));}
.fest__icono{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(180deg,#f7ce46 0 50%,#1769aa 50% 75%,#c9363a 75%);color:#08111f;font:800 .7rem var(--l007-mono);box-shadow:inset 0 1px 0 rgba(255,255,255,.45);}
.fest__proximo > div{display:flex;flex-direction:column;gap:2px;}
.fest__proximo small{font:.625rem var(--l007-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--l007-text-3);}
.fest__proximo strong{font-size:1.05rem;}
.fest__proximo span{font-size:.78rem;color:var(--l007-text-3);text-transform:capitalize;}
.fest__proximo > b{font-size:.85rem;color:var(--l007-accent);white-space:nowrap;}
.fest__datos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.fest__datos article{display:flex;min-height:126px;padding:17px;border:1px solid var(--l007-line);border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--l007-accent) 5%,var(--l007-bg)),var(--l007-bg));flex-direction:column;gap:7px;}
.fest__datos small{color:var(--l007-text-3);font:.61rem var(--l007-mono);letter-spacing:.07em;text-transform:uppercase;}
.fest__datos strong{font-size:1.12rem;line-height:1.18;text-transform:capitalize;}
.fest__datos article:first-child strong,.fest__datos article:nth-child(3) strong{font-size:2rem;color:var(--l007-accent);}
.fest__datos span{margin-top:auto;color:var(--l007-text-3);font-size:.7rem;line-height:1.35;text-transform:capitalize;}
.fest__calendario{padding:18px;border:1px solid var(--l007-line);border-radius:16px;background:var(--l007-bg);}
.fest__nav{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;margin-bottom:15px;}
.fest__nav strong{text-align:center;text-transform:capitalize;font-size:1rem;}
.fest__nav button{min-width:36px;height:34px;padding:0 10px;border:1px solid var(--l007-line);border-radius:999px;background:transparent;color:var(--l007-text-2);font:600 .72rem var(--l007-sans);cursor:pointer;}
.fest__nav button:hover{border-color:var(--l007-accent);color:var(--l007-accent);}
.fest__semana,.fest__dias{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;}
.fest__semana{margin-bottom:5px;}
.fest__semana span{text-align:center;font:600 .62rem var(--l007-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--l007-text-3);}
.fest__dia{position:relative;min-height:70px;padding:8px;border:1px solid transparent;border-radius:10px;background:var(--l007-bg-alt);color:var(--l007-text);text-align:left;font:600 .78rem var(--l007-mono);cursor:pointer;overflow:hidden;}
.fest__dia:hover{border-color:var(--l007-text-3);}
.fest__dia.es-otro{opacity:.32;}
.fest__dia.es-hoy{box-shadow:inset 0 0 0 1px var(--l007-accent);}
.fest__dia.es-festivo{border-color:color-mix(in srgb,var(--l007-accent) 52%,var(--l007-line));background:color-mix(in srgb,var(--l007-accent) 9%,var(--l007-bg));color:var(--l007-accent);}
.fest__dia i{display:-webkit-box;margin-top:7px;color:var(--l007-text-2);font:500 .58rem/1.25 var(--l007-sans);font-style:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.fest__seleccion{min-height:1.3em;margin:13px 2px 0;color:var(--l007-text-3);font-size:.75rem;text-transform:capitalize;}
.fest__calculadora{display:grid;grid-template-columns:minmax(230px,1.4fr) repeat(2,minmax(150px,.7fr)) minmax(130px,.55fr);align-items:end;gap:14px;padding:20px;border:1px solid var(--l007-line);border-radius:16px;background:var(--l007-bg);}
.fest__calculadora > div{display:flex;flex-direction:column;gap:5px;}
.fest__calculadora strong{font-size:.95rem;}
.fest__calculadora p{margin:0;color:var(--l007-text-3);font-size:.72rem;}
.fest__calculadora label{display:flex;flex-direction:column;gap:6px;font-size:.72rem;color:var(--l007-text-3);}
.fest__calculadora input{width:100%;min-height:43px;padding:9px 11px;border:1px solid var(--l007-line);border-radius:10px;background:var(--l007-bg-alt);color:var(--l007-text);font:inherit;}
.fest__resultado{display:grid;place-items:center;min-height:43px;padding:10px;border-radius:10px;background:var(--l007-accent);color:#fff;font-size:.78rem;text-align:center;}
@media (max-width:800px){
  .fest__head{align-items:flex-start;flex-direction:column;}
  .fest__datos{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fest__calculadora{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fest__calculadora > div,.fest__resultado{grid-column:1/-1;}
}
@media (max-width:560px){
  .fest__proximo{grid-template-columns:auto 1fr;}
  .fest__proximo > b{grid-column:1/-1;}
  .fest__datos{grid-template-columns:1fr 1fr;gap:8px;}.fest__datos article{min-height:118px;padding:13px;}.fest__datos strong{font-size:.92rem;}.fest__datos article:first-child strong,.fest__datos article:nth-child(3) strong{font-size:1.65rem;}
  .fest__calendario{padding:12px;}
  .fest__dia{min-height:48px;padding:6px;}
  .fest__dia i{display:none;}
  .fest__nav{grid-template-columns:auto 1fr auto;}
  .fest__nav button[data-fest="hoy"]{display:none;}
  .fest__calculadora{grid-template-columns:1fr;}
  .fest__calculadora > div,.fest__resultado{grid-column:auto;}
}

/* Vidrio compartido con el tema Link007. En otros temas se conserva el fondo
   solido definido arriba. */
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .vidrio-on .l007{
    background:
      linear-gradient(145deg,rgba(255,255,255,.15),transparent 34%),
      color-mix(in srgb,var(--l007-bg-alt) 72%,transparent);
    backdrop-filter:blur(28px) saturate(175%);
    -webkit-backdrop-filter:blur(28px) saturate(175%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 24px 80px rgba(0,32,88,.14);
  }
  .vidrio-on .cot__item,
  .vidrio-on .cot__chart,
  .vidrio-on .util__tool,
  .vidrio-on .ip__principal,
  .vidrio-on .sk__salida,
  .vidrio-on .sk__nivel,
  .vidrio-on .fest__datos article,
  .vidrio-on .fest__calendario,
  .vidrio-on .fest__calculadora{
    background:
      linear-gradient(145deg,rgba(255,255,255,.12),transparent 42%),
      color-mix(in srgb,var(--l007-bg) 76%,transparent);
    backdrop-filter:blur(16px) saturate(155%);
    -webkit-backdrop-filter:blur(16px) saturate(155%);
    border-color:color-mix(in srgb,var(--l007-line) 72%,rgba(255,255,255,.3));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
  }
  .vidrio-on .cot__item[aria-pressed="true"]{border-color:var(--l007-accent);}
}
@media (hover:none) and (pointer:coarse){
  .vidrio-on .l007,
  .vidrio-on .cot__item,
  .vidrio-on .cot__chart,
  .vidrio-on .util__tool{backdrop-filter:none;-webkit-backdrop-filter:none;}
}

/* ==========================================================================
   Movimiento reducido
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  .l007 *,
  .l007 *::before,
  .l007 *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .l007__skel{animation:none;background:var(--l007-line);}
}
