/* AAFF Consulting · hoja de estilos compartida de las páginas internas (herramientas).
   Los tokens replican los de index.html (dos modos: "nocturna" y "niebla", elegidos con data-palette en <html>).
   index.html conserva su CSS en línea; este archivo NO lo reemplaza. */

:root,:root[data-palette="nocturna"]{
  --void:#05061a; --deep:#0a0c27; --panel:#10133a; --raise:#161a4a;
  --line:#22275a; --line-2:#2f3570;
  --text:#eef0ff; --muted:#9095c0; --dim:#8286ab;
  --brass:#dcb874; --brass-text:#dcb874; --brass-ink:#1b1606; --indigo:#5a5ff0;
  --stat:#f3e3ff; --nav-bg:rgba(10,12,39,.72); --star:200,205,255;
  --warn-bg:rgba(220,184,116,.10); --warn-line:#dcb874; --err:#ff9d9d;
  --f-sans:"Geist", "Segoe UI", system-ui, sans-serif;
  --f-mono:"Geist Mono", ui-monospace, Consolas, monospace;
  --f-accent:"Fraunces", Georgia, serif;
  color-scheme:dark;
}
:root[data-palette="niebla"]{
  --void:#eef1f7; --deep:#e5e9f2; --panel:#ffffff; --raise:#dbe3f4; --line:#d3d9e7; --line-2:#c0c9dc;
  --text:#0a1638; --muted:#4f5a7a; --dim:#5b6375; --brass:#001f5c; --brass-text:#001f5c; --brass-ink:#ffffff;
  --stat:#001f5c; --nav-bg:rgba(255,255,255,.78); --star:0,31,92;
  --warn-bg:rgba(0,31,92,.06); --warn-line:#001f5c; --err:#9b1c1c;
  color-scheme:light}
html,body{transition:background-color .5s ease,color .5s ease}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;background:var(--void)}
body{margin:0;background:var(--void);color:var(--text);font:400 16px/1.6 var(--f-sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
.lbl{font:500 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3{margin:0;font-weight:400;text-wrap:balance;letter-spacing:-.035em}
.serif{font-family:var(--f-accent);font-style:italic;font-weight:300;letter-spacing:-.02em;color:var(--brass-text)}
.skip{position:absolute;left:16px;top:-60px;z-index:50;padding:10px 16px;border-radius:10px;background:var(--brass);color:var(--brass-ink);text-decoration:none;font-weight:500}
.skip:focus{top:12px}

/* nav pastilla flotante */
.nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 14px);z-index:20;display:flex;justify-content:center;padding-inline:16px}
.nav-in{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 16px;border:1px solid var(--line-2);border-radius:999px;background:var(--nav-bg);backdrop-filter:blur(16px);max-width:100%}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;margin-right:12px;white-space:nowrap}
.brand svg{width:22px;height:22px;color:var(--brass-text)}
.nav a.l{font-size:14px;color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:999px}
.nav a.l:hover,.nav a.l[aria-current="page"]{color:var(--text);background:var(--panel)}
@media (max-width:720px){.nav a.l{display:none}}
.mode{display:flex;gap:2px;padding:3px;border-radius:999px;background:var(--panel);border:1px solid var(--line-2);margin-right:4px}
.mode button{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:background .25s,color .25s}
.mode button:hover{color:var(--text)}
.mode button[aria-pressed="true"]{background:var(--brass);color:var(--brass-ink)}
.mode svg{width:17px;height:17px}

/* botón tecla */
.key{display:inline-flex;align-items:center;gap:10px;font:500 14px/1 var(--f-sans);padding:12px 18px;border-radius:10px;text-decoration:none;cursor:pointer;border:0;
  background:var(--brass);color:var(--brass-ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 0 rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.35);transition:transform .15s,filter .2s}
.key:hover{filter:brightness(1.07)}
.key:active{transform:translateY(1px)}
.key.alt{background:var(--panel);color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -2px 0 rgba(0,0,0,.4),0 0 0 1px var(--line-2)}
.key svg{width:16px;height:16px;flex:none}
.kbd{font:500 11px var(--f-mono);padding:3px 6px;border-radius:5px;background:rgba(0,0,0,.18)}

/* chips */
.chip{display:inline-block;align-self:flex-start;font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}
.chip.brass{border-color:var(--brass);color:var(--brass-text)}

/* cabecera de página interna */
.crumbs{font:500 12px var(--f-mono);color:var(--muted);margin:0 0 20px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--dim)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--brass-text)}
.crumbs [aria-current]{color:var(--text)}
.page-head{padding-block:clamp(36px,6vw,72px) 8px}
.page-head h1{font-size:clamp(34px,5.4vw,68px);line-height:1;max-width:18ch;margin-bottom:20px}
.lede{color:var(--muted);font-size:clamp(16px,1.6vw,19px);max-width:44em;margin:0}
.page-head .chip{margin-bottom:16px}
section.blk{padding-block:clamp(28px,4vw,48px)}

/* herramienta: formulario + resultado */
.tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
@media (max-width:900px){.tool-grid{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,3vw,28px);min-width:0}
.card h2{font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em;margin-bottom:16px}
.card h3{font-size:18px;letter-spacing:-.01em;margin-bottom:8px}
form.tool{display:grid;gap:16px}
.field{display:grid;gap:6px;min-width:0}
.field>label,.field>legend,fieldset.field>legend{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
fieldset.field>legend{margin-bottom:8px}
.field input[type=text],.field input[type=number],.field input[type=date],.field select{width:100%;font:400 16px var(--f-sans);color:var(--text);background:var(--void);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;min-height:46px}
.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-color:var(--brass)}
.field input[aria-invalid="true"]{border-color:var(--err)}
.hint{font-size:13px;color:var(--muted);margin:0}
.err{font-size:13px;color:var(--err);margin:0;min-height:0}
.err:empty{display:none}
.money{position:relative}
.money span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font:500 14px var(--f-mono);color:var(--muted);pointer-events:none}
.money input{padding-left:48px!important}
/* selector segmentado (radios con apariencia de tecla) */
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;gap:8px;font:500 14px var(--f-sans);padding:11px 16px;border-radius:10px;border:1px solid var(--line-2);background:var(--void);color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.seg input:checked+span{background:var(--brass);color:var(--brass-ink);border-color:var(--brass)}
.seg input:focus-visible+span{outline:2px solid var(--brass);outline-offset:3px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted)}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brass);flex:none}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* resultados */
.result{display:grid;gap:14px;align-content:start}
.res-big{font-size:clamp(34px,6vw,56px);font-weight:300;letter-spacing:-.04em;line-height:1.05;color:var(--stat);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.res-big small{display:block;font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
dl.rows{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
dl.rows>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);min-width:0}
dl.rows dt{color:var(--muted);font-size:14px;min-width:0}
dl.rows dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:500;overflow-wrap:anywhere}
dl.rows .tot dt,dl.rows .tot dd{color:var(--text);font-weight:600}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.tbl{border-collapse:collapse;width:100%;min-width:420px;font-size:14px;font-variant-numeric:tabular-nums}
.tbl caption{text-align:left;padding:10px 12px;color:var(--muted);font-size:13px}
.tbl th,.tbl td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl thead th{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tbl tr.on td{background:var(--raise);color:var(--text);font-weight:600}
table.tbl.flex{min-width:0}
.tbl.flex td,.tbl.flex th{white-space:normal;vertical-align:top}
.tbl.flex td:last-child,.tbl.flex th:last-child{text-align:left}
.tbl .chip{margin-left:6px;padding:2px 7px;font-size:10px}
.tbl tr:last-child td{border-bottom:0}
.empty{color:var(--muted);margin:0}
details.mes{border-top:1px solid var(--line);padding-top:10px}
details.mes summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0 10px;font-size:18px;letter-spacing:-.01em;text-transform:capitalize}
details.mes summary::-webkit-details-marker{display:none}
details.mes summary::after{content:"+";font:400 20px var(--f-mono);color:var(--muted);margin-left:auto}
details.mes[open] summary::after{content:"−";color:var(--brass-text)}
details.mes summary .chip{order:2}
input[type=date]{color-scheme:inherit}

/* avisos */
.notice{border:1px solid var(--line-2);border-left:3px solid var(--warn-line);border-radius:12px;background:var(--warn-bg);padding:14px 16px;font-size:14px;color:var(--text);margin:0}
.notice strong{font-weight:600}
.notice+.notice{margin-top:10px}
.notice.sm{font-size:13px;color:var(--muted)}
.stack{display:grid;gap:12px}

/* texto explicativo */
.prose{max-width:46em}
.prose h2{font-size:clamp(24px,3vw,34px);margin-bottom:14px}
.prose h3{font-size:19px;margin:22px 0 8px}
.prose p{color:var(--muted);margin:0 0 14px}
.prose ul{color:var(--muted);margin:0 0 14px;padding-left:20px}
.prose li{margin-bottom:6px}
.prose a,.legal a{color:var(--brass-text);text-underline-offset:3px}
.legal{border-top:1px solid var(--line);padding-top:20px;margin-top:24px;font-size:14px;color:var(--muted);max-width:46em}
.legal h3{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.legal ul{margin:0;padding-left:20px}
.legal li{margin-bottom:6px}

/* llamada a la acción */
.cta-band{border:1px solid var(--line-2);border-radius:24px;padding:clamp(24px,5vw,48px);background:radial-gradient(120% 140% at 100% 0%,var(--raise),var(--deep) 60%);display:flex;flex-wrap:wrap;gap:20px 32px;align-items:center;justify-content:space-between}
.cta-band h2{font-size:clamp(24px,3.4vw,38px);line-height:1.1;max-width:20ch}
.cta-band p{margin:8px 0 0;color:var(--muted);max-width:32em}

/* hub de herramientas */
.hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:980px){.hub{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.hub{grid-template-columns:minmax(0,1fr)}}
.tool-card{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;text-decoration:none;min-width:0;transition:border-color .25s,background .25s}
.tool-card:hover{border-color:var(--brass)}
.tool-card h2,.tool-card h3{font-size:22px;letter-spacing:-.02em;line-height:1.15}
.tool-card p{margin:0;color:var(--muted);font-size:15px}
.tool-card .go{margin-top:auto;padding-top:8px;font:500 12px var(--f-mono);letter-spacing:.06em;color:var(--brass-text)}

/* WhatsApp flotante */
.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 10px 26px -8px rgba(0,0,0,.5);transition:transform .2s}
.wa-float:hover{transform:scale(1.07)}
.wa-float svg{width:30px;height:30px}

/* pie */
footer{border-top:1px solid var(--line);padding-block:28px 56px;margin-top:40px}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 32px}
footer a{color:inherit;text-decoration:none;text-transform:none;letter-spacing:.02em}
footer a:hover{color:var(--brass-text)}

@media (max-width:360px){
  .nav{padding-inline:8px}
  .nav-in{padding-left:12px}
  .brand{margin-right:4px}
  .nav .kbd{display:none}
}
@media (max-width:420px){
  .page-head h1{font-size:34px}
  dl.rows>div{flex-direction:column;gap:2px}
  dl.rows dd{text-align:left}
  .key{padding:12px 14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
