:root{
  --bg:#f6f5f1;--surface:#ffffff;--soft:#efede6;--ink:#17201f;--muted:#566361;--line:#e0ddd4;
  --accent:#0f6b63;--accent-ink:#ffffff;--accent-soft:#e1efec;--warn:#8a4f0c;--warn-soft:#fbefdc;
  --bad:#a33a2a;--bad-soft:#f8e3de;--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.05);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e1312;--surface:#161d1c;--soft:#1d2625;--ink:#eef2f1;--muted:#a1aeac;--line:#2a3533;
  --accent:#4cc3b5;--accent-ink:#06211e;--accent-soft:#183634;--warn:#f0b766;--warn-soft:#2c2316;
  --bad:#f19a89;--bad-soft:#3a1f1a;--shadow:none;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e1312;--surface:#161d1c;--soft:#1d2625;--ink:#eef2f1;--muted:#a1aeac;--line:#2a3533;
  --accent:#4cc3b5;--accent-ink:#06211e;--accent-soft:#183634;--warn:#f0b766;--warn-soft:#2c2316;
  --bad:#f19a89;--bad-soft:#3a1f1a;--shadow:none;color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;overflow-x:hidden}
a{color:var(--accent)}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1060px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;background:var(--surface);padding:8px;z-index:9}
header{padding:36px 0 6px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;letter-spacing:-.02em}
.brand i{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-style:normal;font-size:15px;font-weight:800}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(30px,6.5vw,50px);line-height:1.08;letter-spacing:-.02em;margin:18px 0 10px;max-width:20ch}
.lead{color:var(--muted);margin:0;max-width:40em;font-size:17px}
.notice{display:flex;gap:10px;align-items:flex-start;margin:20px 0 0;padding:12px 16px;border-radius:14px;background:var(--warn-soft);color:var(--warn);font-size:14px;font-weight:600}
.notice svg{flex:none;margin-top:2px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;padding:4px 2px 10px;margin:26px 0 0}
.tabs button{flex:0 1 auto;font:inherit;font-size:14px;font-weight:650;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;min-height:40px;cursor:pointer;white-space:nowrap}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.calc{display:grid;gap:20px;margin:14px 0 36px;grid-template-columns:minmax(0,1fr)}
.calc[hidden]{display:none}
@media (min-width:880px){.calc{grid-template-columns:360px minmax(0,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow);min-width:0}
.card h2{font-size:22px;letter-spacing:-.01em;margin:0 0 4px;line-height:1.2}
.card .what{color:var(--muted);font-size:14.5px;margin:0 0 18px}
.field{margin-bottom:16px}
.field label,.field .lab{display:block;font-weight:650;font-size:15px;margin-bottom:6px}
.field .help{display:block;font-size:12.5px;color:var(--muted);margin-top:5px}
.money{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.money:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.money input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:18px;font-weight:650;padding:11px 14px;font-variant-numeric:tabular-nums}
.money input:focus{outline:none}
.money span{padding-right:14px;color:var(--muted);font-weight:650}
select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 12px;min-height:46px}
select:focus{outline:2px solid var(--accent);outline-offset:1px}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg label{position:relative;margin:0}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:inline-block;padding:9px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-weight:650;font-size:14.5px;min-height:42px}
.seg input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
input[type=range]{width:100%;accent-color:var(--accent);height:28px}
.res-label{color:var(--muted);font-weight:650;font-size:15px;margin:0}
.big{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(38px,10vw,62px);line-height:1.05;letter-spacing:-.02em;margin:6px 0 2px;color:var(--accent);font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere}
.big.neg{color:var(--warn)}
.sub{color:var(--muted);font-size:14.5px;margin:0}
.err{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:var(--bad-soft);color:var(--bad);font-weight:650;font-size:14.5px}
.err[hidden]{display:none}
table.desg{width:100%;border-collapse:collapse;margin:18px 0 6px;font-size:15px}
table.desg td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top}
table.desg td:last-child{text-align:right;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:12px}
table.desg tr.tot td{border-bottom:0;font-weight:800;font-size:16px}
.meta{display:grid;gap:12px;margin-top:18px;grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.meta{grid-template-columns:1fr 1fr}}
.box{background:var(--soft);border-radius:14px;padding:14px 16px;font-size:14px}
.box b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:6px}
.box ul{margin:0;padding-left:18px}.box li{margin:3px 0}
.box p{margin:0}
.stamp{display:inline-block;margin-top:14px;font-size:12.5px;color:var(--muted);background:var(--soft);border-radius:999px;padding:4px 11px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.btn{font:inherit;font-weight:700;font-size:15px;border-radius:12px;padding:10px 16px;min-height:44px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tramos{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:8px}
.tramos th,.tramos td{padding:6px 6px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
.tramos th:first-child,.tramos td:first-child{text-align:left}
.tramos tr.on td{background:var(--accent-soft);font-weight:700}
.scroll{overflow-x:auto}
details.more{margin-top:14px}
details.more summary{cursor:pointer;font-weight:700;font-size:14.5px}
section.about{margin:0 0 36px}
section.about h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:28px;margin:0 0 12px}
.grid3{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.grid3{grid-template-columns:repeat(3,1fr)}}
.grid3 .box{background:var(--surface);border:1px solid var(--line)}
.grid3 .box b{text-transform:none;letter-spacing:0;font-size:15.5px;color:var(--ink)}
.legal{font-size:14px;color:var(--muted)}
.legal table{border-collapse:collapse;margin-top:8px;width:100%}
.legal td{padding:6px 0;border-bottom:1px solid var(--line);vertical-align:top}
.legal td:first-child{width:38%;color:var(--muted)}
.hole{background:var(--warn-soft);color:var(--warn);padding:0 4px;border-radius:4px;font-weight:700}
footer{border-top:1px solid var(--line);padding:22px 0 40px;color:var(--muted);font-size:14px}
@media print{
  .tabs,.notice svg,.actions,header .lead,section.about,footer nav{display:none!important}
  body{background:#fff;color:#000}.card{box-shadow:none;border-color:#ccc}
  .calc[hidden]{display:none!important}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* página 404 */
.p404{margin:0;min-height:100vh;display:grid;place-items:center;background:#f6f5f1;color:#17201f;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;padding:24px;box-sizing:border-box}
.p404-box{max-width:520px;text-align:center}
.p404-n{font-size:72px;font-weight:800;line-height:1;margin:0 0 8px;color:#0f6b63}
.p404 h1{font-size:28px;margin:0 auto 12px;max-width:none;text-align:center;text-transform:none;letter-spacing:normal}
.p404 p{line-height:1.55}
.p404-btn{display:inline-block;margin-top:8px;padding:12px 22px;border-radius:999px;background:#0f6b63;color:#FFFFFF;text-decoration:none;font-weight:700;min-height:44px;box-sizing:border-box}
.p404-mail a{color:inherit}
@media (prefers-color-scheme:dark){.p404{background:#0e1312;color:#f6f5f1}.p404-n{color:#5cc2b6}.p404-btn{background:#5cc2b6;color:#0e1312}}
