/* Calculaê — direção "recibo": papel quente, mono, carimbo */
:root{
  --paper:#F7F4EC; --paper2:#EFEBDF; --surface:#FFFFFF;
  --ink:#17140E; --ink2:#464032; --muted:#7C7566;
  --line:#E2DBCA; --line2:#CFC6B0;
  --green:#0F7A57; --green-d:#0A5C42; --green-l:#E4F1EA;
  --stamp:#D8471F; --gold:#C98A00;
  --r:4px; --r2:8px;
  --sh:0 1px 0 rgba(23,20,14,.05), 0 6px 18px rgba(23,20,14,.06);
  --maxw:1080px;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --disp:"Space Grotesk",Inter,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--disp);line-height:1.08;letter-spacing:-.02em;margin:0;font-weight:700}
a{color:var(--green-d);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:14px}
.caption{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--muted)}

/* Ticker */
.ticker{background:var(--ink);color:#EDE9DF;overflow:hidden;white-space:nowrap;font-family:var(--mono);font-size:12.5px}
.ticker .run{display:inline-block;padding:8px 0;animation:run 34s linear infinite}
.ticker b{color:#fff}
.ticker .dot{color:var(--gold);padding:0 12px}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker .run{animation:none}}

/* Masthead */
.masthead{background:var(--paper);border-bottom:2px solid var(--ink)}
.masthead .in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:baseline;gap:2px;font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.03em;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand .box{display:inline-grid;place-items:center;width:28px;height:28px;background:var(--green);color:#fff;border-radius:5px;margin-right:8px;font-family:var(--mono);font-weight:600;font-size:15px;transform:translateY(2px)}
.brand b{color:var(--green)}
.masthead .meta{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;line-height:1.5}
.masthead nav{display:flex;gap:16px;font-family:var(--mono);font-size:12.5px}
.masthead nav a{color:var(--ink2)}
@media(max-width:720px){.masthead .meta,.masthead nav{display:none}}

/* Hero */
.hero{padding:46px 0 30px;border-bottom:1px solid var(--line)}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d);margin-bottom:14px}
.hero h1{font-size:clamp(30px,6vw,52px);font-weight:700;max-width:16ch}
.hero h1 em{font-style:normal;color:var(--green);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;background:var(--gold);opacity:.45;z-index:-1}
.hero p.lead{color:var(--ink2);max-width:52ch;margin:16px 0 0;font-size:17px}
.cmd{margin-top:24px;display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--ink);border-radius:var(--r);padding:0 14px;box-shadow:var(--sh)}
.cmd .pfx{font-family:var(--mono);color:var(--green-d);font-weight:600}
.cmd input{flex:1;border:0;outline:none;height:58px;font-size:16px;background:transparent;color:var(--ink)}
.cmd kbd{font-family:var(--mono);font-size:11px;background:var(--paper2);border:1px solid var(--line2);border-bottom-width:2px;border-radius:5px;padding:3px 7px;color:var(--ink2)}
@media(max-width:520px){.cmd kbd{display:none}}
.feat{display:flex;align-items:center;gap:12px;margin-top:16px;background:#fff;border:1.5px solid var(--green);border-left-width:6px;border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh)}
.feat:hover{text-decoration:none;background:var(--green-l)}
.feat .pill{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;background:var(--green);color:#fff;padding:3px 8px;border-radius:999px}
.feat strong{font-family:var(--disp)}
.feat .go{margin-left:auto;font-family:var(--mono);color:var(--green-d)}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.quick a{font-family:var(--mono);font-size:12px;color:var(--ink2);background:var(--paper2);border:1px solid var(--line);border-radius:999px;padding:5px 11px}
.quick a:hover{text-decoration:none;border-color:var(--green);color:var(--green-d)}

/* Seção catálogo */
.section{padding:34px 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.section-head h2{font-size:20px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{font-family:var(--mono);font-size:12px;background:transparent;border:1px solid var(--line2);border-radius:999px;padding:6px 12px;color:var(--ink2);cursor:pointer}
.filters button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.catalog{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
@media(min-width:700px){.catalog{grid-template-columns:1fr 1fr;column-gap:36px}}
.idx{display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:baseline;padding:16px 2px;border-bottom:1px solid var(--line)}
.idx:hover{background:#fff}
.idx .n{font-family:var(--mono);font-size:13px;color:var(--muted)}
.idx h3{font-size:17px;font-weight:700}
.idx .ds{color:var(--muted);font-size:13.5px;margin-top:3px}
.idx .go{font-family:var(--mono);font-size:14px;color:var(--green-d)}
.idx:hover h3{color:var(--green-d)}

/* Selo de confiança */
.seal{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px dashed var(--line2);border-radius:var(--r);padding:14px 16px;font-size:13px;color:var(--ink2)}
.seal .mono{color:var(--green-d);font-weight:600}
.seal svg{flex:none;color:var(--green-d);margin-top:2px}

/* Página de ferramenta */
.tool-head{padding:26px 0 4px}
.crumbs{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:16px}
.crumbs a{color:var(--muted)}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tag{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--green-d);background:var(--green-l);border-radius:3px;padding:4px 9px}
.tag.alt{background:#FBEEE6;color:var(--stamp)}
.tool-head h1{font-size:clamp(28px,5vw,44px);max-width:20ch}
.tool-head .sub{color:var(--ink2);margin-top:12px;font-size:17px;max-width:60ch}
.tool-grid{display:grid;grid-template-columns:1fr;gap:24px;margin-top:22px}
@media(min-width:920px){.tool-grid{grid-template-columns:1.25fr .75fr;align-items:start}}

.card{background:#fff;border:1.5px solid var(--ink);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}
.card .grid2{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:620px){.card .grid2{grid-template-columns:1fr 1fr}}
.field label{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink2);margin-bottom:6px}
.field input,.field select{width:100%;height:52px;border:1px solid var(--line2);border-radius:var(--r);padding:0 13px;font-size:16px;background:#FCFBF8;color:var(--ink);font-variant-numeric:tabular-nums}
.field input:focus,.field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.field .hint{font-size:12px;color:var(--muted);margin-top:5px}
.moneywrap{position:relative}
.moneywrap::before{content:"R$";position:absolute;left:13px;top:50%;transform:translateY(-50%);font-family:var(--mono);color:var(--muted);font-size:14px}
.field input.money{padding-left:42px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border:0;border-radius:var(--r);font:600 16px Inter;cursor:pointer;transition:transform .1s}
.btn:active{transform:translateY(1px)}
.btn-p{background:var(--ink);color:#fff}
.btn-p:hover{background:var(--green-d)}
.btn-s{background:#fff;color:var(--ink);border:1px solid var(--line2)}
.btn.block{width:100%}
.btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* Resultado (recibo) */
.result{position:relative;background:#fff;border:1.5px solid var(--ink);border-radius:var(--r);padding:26px 22px;box-shadow:var(--sh);overflow:hidden}
.result::before{content:"";position:absolute;top:0;left:0;right:0;height:14px;background:radial-gradient(circle at 7px -2px, transparent 7px, var(--paper) 8px) repeat-x;background-size:14px 14px}
.stamp{position:absolute;top:16px;right:14px;transform:rotate(9deg);border:2px solid var(--stamp);color:var(--stamp);font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.12em;padding:4px 8px;border-radius:4px;opacity:.9;background:rgba(216,71,31,.04)}
.result .label{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.result .big{font-family:var(--disp);font-weight:700;font-size:clamp(38px,9vw,58px);letter-spacing:-.03em;color:var(--green-d);margin:6px 0 2px;font-variant-numeric:tabular-nums}
.result .note{color:var(--ink2);font-size:14px}
.detail{margin-top:18px;border-top:1px dashed var(--line2);padding-top:8px}
.detail table{width:100%;border-collapse:collapse;font-size:15px}
.detail td{padding:8px 0;border-bottom:1px dotted var(--line2);color:var(--ink2)}
.detail tr:last-child td{border-bottom:0;color:var(--ink);font-weight:700}
.detail td:last-child{text-align:right;font-family:var(--mono)}
.actions{display:flex;gap:10px;margin-top:18px}
.actions .btn{flex:1;min-width:0}

/* Conteúdo */
.prose{max-width:720px}
.prose h2{font-size:24px;margin:30px 0 10px}
.prose h3{font-size:17px;margin:20px 0 6px;font-family:var(--mono);letter-spacing:.01em}
.prose p{color:var(--ink2);margin:10px 0}
.prose ul{color:var(--ink2);padding-left:20px}
.prose code{font-family:var(--mono);background:var(--paper2);padding:2px 7px;border-radius:4px;font-size:14px}
.answer{background:var(--green-l);border-left:3px solid var(--green);border-radius:0 var(--r) var(--r) 0;padding:14px 16px;margin:18px 0}
.answer .mono{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d)}
.answer p{margin:6px 0 0;color:var(--ink)}

details.acc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:9px 0}
details.acc summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary::after{content:"+";font-family:var(--mono);color:var(--green-d)}
details.acc[open] summary::after{content:"–"}
details.acc p{margin:10px 0 0;color:var(--ink2)}

.adslot{margin:24px 0;min-height:90px;border:1px dashed var(--line2);border-radius:var(--r);display:grid;place-items:center;color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.1em}

.related .catalog{border-top:1px solid var(--line)}

footer.site{border-top:2px solid var(--ink);margin-top:44px;padding:26px 0 44px;background:var(--paper)}
footer .in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
footer a{color:var(--ink2)}
.legal{margin-top:14px;font-size:12px;color:var(--muted);max-width:820px;font-family:var(--mono)}
.skip{position:absolute;left:-9999px}

/* Embed / widget */
.embed{padding:14px;max-width:560px;margin:0 auto}
.embed .card{border-width:1px}
.embed-credit{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;margin:12px 0 0}
.preview{width:100%;height:780px;border:1.5px solid var(--ink);border-radius:var(--r);background:#fff}
.code{background:#0e120f;color:#d7e6dd;padding:16px;border-radius:var(--r);overflow:auto;font-family:var(--mono);font-size:12.5px;white-space:pre;line-height:1.5}
.copybar{display:flex;gap:8px;align-items:center;margin:10px 0}
.copybar button{font-family:var(--mono);font-size:12px;border:1px solid var(--line2);background:#fff;border-radius:var(--r);padding:7px 12px;cursor:pointer}
.wlist{display:grid;grid-template-columns:1fr;gap:6px}
@media(min-width:700px){.wlist{grid-template-columns:1fr 1fr}}
.wlist label{font-family:var(--mono);font-size:12px;color:var(--ink2)}
.wlist select,.wlist input{width:100%;height:44px;border:1px solid var(--line2);border-radius:var(--r);padding:0 10px;font-family:var(--mono);font-size:12px;margin-top:4px}
