/* ─────────────────────────────────────────────────────────────
   Base de diseño compartida para todas las herramientas.
   Copia este bloque <style> en cada herramienta nueva.
   ───────────────────────────────────────────────────────────── */
:root{
  --bg:#0b0e14; --bg2:#0f131b;
  --panel:#141922; --panel2:#1a2029; --panel3:#20272f;
  --line:#252d38; --line2:#323b48;
  --tx:#e8eef5; --tx2:#a8b5c4; --dim:#6f7d8f;
  --acc:#3ddc84; --acc-d:#0f3322;
  --blue:#4da3ff; --blue-d:#0d2740;
  --amber:#ffc247; --amber-d:#3a2d0c;
  --red:#ff6b6b; --red-d:#3a1618;
  --violet:#a78bfa;
  --r:14px; --r-sm:9px;
  --sh:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
  --fs:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  --fm:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--tx);
  font:400 15px/1.6 var(--fs);
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(1200px 600px at 15% -10%, #16202e 0%, transparent 60%);
  background-attachment:fixed;
}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px 72px}

/* ── Cabecera ─────────────────────────────────────────────── */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;
     padding:18px 0;margin-bottom:24px;flex-wrap:wrap;
     border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.brand .mark{width:34px;height:34px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,var(--acc),var(--blue));
  display:flex;align-items:center;justify-content:center;color:#06180e;
  font-size:18px;font-weight:800;line-height:1}
.brand .name{font-weight:750;font-size:19px;letter-spacing:-.6px;line-height:1.1;display:block}
.brand .name em{font-style:normal;color:var(--acc)}
.brand .claim{font-size:11.5px;color:var(--dim);letter-spacing:.2px;display:block;margin-top:1px}
.topnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.topnav a{color:var(--tx2);text-decoration:none;font-size:13.5px;font-weight:600;
  padding:7px 13px;border-radius:8px;transition:all .15s;white-space:nowrap}
.topnav a:hover{color:var(--tx);background:var(--panel)}
.topnav a[aria-current=page]{color:var(--tx);background:var(--panel)}
@media(max-width:620px){.top{padding-bottom:14px}.brand .claim{display:none}}

.verified{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--tx2);
  background:var(--panel);border:1px solid var(--line);border-radius:100px;padding:6px 13px;
  margin-bottom:18px}
.verified .dot{width:6px;height:6px;border-radius:50%;background:var(--acc);
  box-shadow:0 0 0 3px rgba(61,220,132,.16)}

/* ── Migas de pan ─────────────────────────────────────────── */
.crumbs{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--dim);
        margin:0 0 16px;flex-wrap:wrap}
.crumbs a{color:var(--tx2);text-decoration:none}
.crumbs a:hover{color:var(--acc)}
.crumbs span.sep{color:var(--line2)}
.crumbs span.here{color:var(--tx2)}

/* ── Categorías del índice ────────────────────────────────── */
.cat{margin:36px 0 0}
.cat-head{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;flex-wrap:wrap}
.cat-head h2{margin:0;font-size:19px;text-transform:none;letter-spacing:-.4px;
             color:var(--tx);font-weight:700}
.cat-head span{font-size:13px;color:var(--dim)}
.cat-soon{background:var(--panel);border:1px dashed var(--line2);border-radius:var(--r);
          padding:18px 20px;color:var(--dim);font-size:13.5px;line-height:1.6}
.cat-soon b{color:var(--tx2);display:block;margin-bottom:4px;font-size:14.5px}

/* ── Herramientas relacionadas ────────────────────────────── */
.rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.rel a{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);
       padding:15px 16px;text-decoration:none;color:inherit;display:block;transition:all .15s}
.rel a:hover{border-color:var(--acc);background:var(--panel2)}
.rel b{display:block;font-size:14.5px;margin-bottom:3px;letter-spacing:-.2px}
.rel span{font-size:12.5px;color:var(--dim);line-height:1.5}

/* ── Pie de página ────────────────────────────────────────── */
.site-foot{margin-top:52px;padding-top:30px;border-top:1px solid var(--line)}
.foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;margin-bottom:28px}
@media(max-width:820px){.foot-cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-cols{grid-template-columns:1fr}}
.foot-cols h4{font-size:11px;text-transform:uppercase;letter-spacing:1.1px;color:var(--dim);
              margin:0 0 12px;font-weight:700}
.foot-cols ul{margin:0;padding:0;list-style:none}
.foot-cols li{margin-bottom:8px}
.foot-cols a{color:var(--tx2);text-decoration:none;font-size:13.5px}
.foot-cols a:hover{color:var(--acc)}
.foot-about p{margin:10px 0 0;font-size:13px;color:var(--dim);line-height:1.6;max-width:320px}
.foot-legal{border-top:1px solid var(--line);padding-top:20px;
            display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
            font-size:12px;color:var(--dim);line-height:1.6}
.foot-legal p{margin:0;max-width:720px}

h1{font-size:clamp(26px,4vw,36px);line-height:1.15;margin:0 0 10px;letter-spacing:-1px;font-weight:700}
.lead{color:var(--tx2);margin:0 0 26px;font-size:16px;max-width:660px;line-height:1.55}
h2{font-size:11.5px;text-transform:uppercase;letter-spacing:1.4px;color:var(--dim);
   margin:38px 0 14px;font-weight:700}
h3{font-size:15px;margin:0 0 12px;font-weight:650;letter-spacing:-.2px}

/* Contenedores */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
      padding:20px;box-shadow:var(--sh)}
.card.flush{padding:8px 8px 6px}
.cols{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:start}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.sticky{position:sticky;top:20px}
@media(max-width:900px){.sticky{position:static}}

/* Formularios */
label{display:block;font-size:11px;color:var(--dim);margin:0 0 6px;
      text-transform:uppercase;letter-spacing:.7px;font-weight:600}
select,input[type=number],input[type=text]{
  width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-sm);
  color:var(--tx);padding:10px 12px;font:inherit;font-size:14.5px;
  transition:border-color .15s, box-shadow .15s}
select:hover,input:hover{border-color:var(--line2)}
select:focus,input:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(77,163,255,.14)}
.f{margin-bottom:15px}
.f:last-child{margin-bottom:0}
.r2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:520px){.r3{grid-template-columns:1fr 1fr}}
.hint{font-size:12px;color:var(--dim);margin:6px 0 0;line-height:1.45}

input[type=range]{width:100%;accent-color:var(--blue);height:22px}
.rangerow{display:flex;align-items:center;gap:12px}
.rangerow output{font:600 13px var(--fm);color:var(--blue);min-width:52px;text-align:right}

/* Pestañas */
.tabs{display:inline-flex;background:var(--panel2);border:1px solid var(--line);
      border-radius:100px;padding:3px;margin-bottom:18px}
.tabs button{background:none;border:none;color:var(--tx2);font:600 13px var(--fs);
  padding:7px 18px;border-radius:100px;cursor:pointer;transition:all .15s}
.tabs button[aria-selected=true]{background:var(--panel3);color:var(--tx);box-shadow:var(--sh)}

/* Resultado destacado */
.hero{background:linear-gradient(165deg,#122a1c 0%,#0d1a14 60%);
      border:1px solid #1d4a32;border-radius:var(--r);padding:26px 22px;text-align:center;
      margin-bottom:14px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(400px 120px at 50% 0%, rgba(61,220,132,.10), transparent 70%)}
.hero .lbl{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--tx2);font-weight:600}
.hero .big{font-size:clamp(38px,7vw,54px);font-weight:750;color:var(--acc);
  letter-spacing:-2.5px;line-height:1.05;margin:8px 0 6px;font-variant-numeric:tabular-nums}
.hero .sm{font-size:13.5px;color:var(--tx2)}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:14px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);
      padding:13px 14px;text-align:center}
.stat span{font-size:10.5px;color:var(--dim);text-transform:uppercase;
  letter-spacing:.7px;font-weight:600;display:block}
.stat b{display:block;font-size:21px;margin-top:4px;letter-spacing:-.6px;
  font-variant-numeric:tabular-nums;font-weight:700}

/* Barras */
.bar{display:flex;align-items:center;gap:12px;margin-bottom:9px;font-size:13.5px}
.bar:last-child{margin-bottom:0}
.bar .n{width:112px;color:var(--tx2);flex-shrink:0;font-size:13px}
.bar .t{flex:1;height:10px;background:var(--panel2);border-radius:6px;overflow:hidden}
.bar .t i{display:block;height:100%;border-radius:6px;
  background:linear-gradient(90deg,var(--blue),#7ec4ff);transition:width .45s cubic-bezier(.4,0,.2,1)}
.bar .v{width:62px;text-align:right;font:600 13px var(--fm);font-variant-numeric:tabular-nums}

/* Avisos */
.note{border-radius:var(--r-sm);padding:14px 16px;font-size:13.8px;margin-top:12px;
      border:1px solid var(--line);border-left:3px solid var(--dim);background:var(--panel);line-height:1.55}
.note b{font-weight:650}
.note.ok{border-left-color:var(--acc);background:linear-gradient(90deg,var(--acc-d),var(--panel) 55%)}
.note.ok b{color:var(--acc)}
.note.warn{border-left-color:var(--amber);background:linear-gradient(90deg,var(--amber-d),var(--panel) 55%)}
.note.warn b{color:var(--amber)}
.note.bad{border-left-color:var(--red);background:linear-gradient(90deg,var(--red-d),var(--panel) 55%)}
.note.bad b{color:var(--red)}
.note.info{border-left-color:var(--blue);background:linear-gradient(90deg,var(--blue-d),var(--panel) 55%)}
.note.info b{color:var(--blue)}

/* Tablas */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;
   color:var(--dim);padding:10px 12px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid #1c222b}
tbody tr:last-child td{border-bottom:none}
tbody tr.click{cursor:pointer;transition:background .12s}
tbody tr.click:hover{background:var(--panel2)}
.num{font-variant-numeric:tabular-nums;text-align:right;font-family:var(--fm);font-size:13px}

.pill{display:inline-block;font-size:10.5px;padding:3px 10px;border-radius:100px;font-weight:700;letter-spacing:.3px}
.pill.g{background:var(--acc-d);color:var(--acc)}
.pill.b{background:var(--blue-d);color:var(--blue)}
.pill.a{background:var(--amber-d);color:var(--amber)}
.pill.r{background:var(--red-d);color:var(--red)}

/* Preguntas frecuentes */
.faq details{border-bottom:1px solid #1c222b;padding:13px 0}
.faq details:last-child{border-bottom:none}
.faq summary{cursor:pointer;font-weight:650;font-size:14.5px;list-style:none;
  display:flex;align-items:flex-start;gap:11px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--blue);font-weight:700;font-size:17px;
  line-height:1.25;flex-shrink:0;width:14px}
.faq details[open] summary::before{content:"−"}
.faq p{color:var(--tx2);font-size:14px;margin:10px 0 0 25px;line-height:1.6}

/* Fuentes y pie */
.sources{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.sources ul{margin:0;padding:0;list-style:none}
.sources li{font-size:13px;color:var(--tx2);padding:7px 0;border-bottom:1px solid #1c222b;line-height:1.5}
.sources li:last-child{border-bottom:none}
.sources a{color:var(--blue);text-decoration:none}
.sources a:hover{text-decoration:underline}
.sources .when{color:var(--dim);font-size:12px}

/* Navegación entre herramientas */
.nav{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 26px;padding:4px;
     background:var(--panel);border:1px solid var(--line);border-radius:100px;width:fit-content;max-width:100%}
.nav a{color:var(--tx2);text-decoration:none;font-size:13.5px;font-weight:600;
       padding:7px 15px;border-radius:100px;transition:all .15s;white-space:nowrap}
.nav a:hover{color:var(--tx);background:var(--panel2)}
.nav a[aria-current=page]{background:var(--panel3);color:var(--tx);box-shadow:var(--sh)}
@media(max-width:560px){.nav{border-radius:var(--r);width:100%}.nav a{flex:1;text-align:center}}

/* Hueco de publicidad.
   OCULTO por defecto: un recuadro con el texto "espacio para publicidad"
   en una web publicada parece un error de carga y resta credibilidad.
   Cuando AdSense esté aprobado, pon el <ins> dentro y añade la clase
   "live" al div para que se muestre. */
.slot{display:none;border:1px dashed var(--line2);border-radius:var(--r);padding:20px;
      text-align:center;color:var(--dim);font-size:11.5px;margin:22px 0;
      letter-spacing:.5px;text-transform:uppercase}
.slot.live{display:block}

/* Evita saltos de maquetación mientras se calcula el primer resultado */
.hero{min-height:132px}
.stat{min-height:66px}

footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);
       color:var(--dim);font-size:12.5px;line-height:1.6}

button.act{background:var(--acc);color:#06180e;border:none;border-radius:var(--r-sm);
  padding:11px 20px;font:700 14px var(--fs);cursor:pointer;transition:filter .15s}
button.act:hover{filter:brightness(1.08)}
button.sec{background:var(--panel2);color:var(--tx);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:10px 18px;font:600 13.5px var(--fs);cursor:pointer}
button.sec:hover{border-color:var(--line2);background:var(--panel3)}
a.linkbtn{display:inline-block;background:var(--panel2);color:var(--blue);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:8px 14px;font:600 13px var(--fs);text-decoration:none}
a.linkbtn:hover{border-color:var(--blue);background:var(--blue-d)}
