:root{
  --blu:#0b4f8a; --blu2:#1769aa; --blu-d:#08365f; --bg:#f4f7fa; --card:#fff;
  --ink:#162a3a; --muted:#5d7385; --line:#dde6ee; --ok:#1a7f4b; --ko:#b23a2e;
  --pri:#b8860b; --accent:#e8f1f9; --radius:12px; --mono:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
a{color:var(--blu2);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
h1{font-size:1.7rem;line-height:1.2;margin:.6em 0 .4em}
h2{font-size:1.25rem;margin:1.4em 0 .5em}
code{font-family:var(--mono);background:var(--accent);padding:.08em .4em;border-radius:5px;font-size:.92em;color:var(--blu-d)}
.muted{color:var(--muted)}
.empty{color:var(--muted);padding:1em;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}

/* header */
.top{background:linear-gradient(120deg,var(--blu-d),var(--blu));color:#fff;padding:10px 0;position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(8,54,95,.18)}
.top .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{color:#fff;font-weight:700;font-size:1.2rem;letter-spacing:-.02em;white-space:nowrap}
.logo b{font-weight:700;color:#9fd0ff}
.logo:hover{text-decoration:none}
.hsearch{display:flex;flex:1;min-width:220px;max-width:560px}
.hsearch input{flex:1;border:0;border-radius:8px 0 0 8px;padding:9px 12px;font-size:.95rem}
.hsearch button{border:0;background:var(--pri);color:#fff;padding:0 16px;border-radius:0 8px 8px 0;cursor:pointer;font-weight:600}
.hnav{display:flex;gap:14px}
.hnav a{color:#dceaf7;font-size:.9rem}

.crumbs{font-size:.85rem;color:var(--muted);padding:12px 0 0}
.crumbs a{color:var(--blu2)}

/* hero */
.hero{text-align:center;padding:34px 0 10px}
.hero h1{font-size:2.1rem;max-width:840px;margin:.2em auto}
.hero h1 span{color:var(--blu2)}
.hero .sub{max-width:680px;margin:.4em auto 1.2em;color:var(--muted)}
.bigsearch{display:flex;max-width:680px;margin:0 auto}
.bigsearch input{flex:1;border:2px solid var(--blu);border-right:0;border-radius:10px 0 0 10px;padding:15px 18px;font-size:1.05rem}
.bigsearch button{border:0;background:var(--blu);color:#fff;padding:0 28px;border-radius:0 10px 10px 0;font-size:1.05rem;font-weight:600;cursor:pointer}
.quicklinks{color:var(--muted);font-size:.9rem;margin-top:.9em}

/* tiles & grids */
.tiles,.feats,.varbox{margin:34px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:3px;transition:.15s}
.tile:hover{border-color:var(--blu2);box-shadow:0 4px 14px rgba(11,79,138,.1);text-decoration:none;transform:translateY(-2px)}
.tile b{color:var(--blu-d);font-size:1.05rem}
.tile span{color:var(--muted);font-size:.85rem}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.feat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.feat:hover{border-color:var(--blu2);text-decoration:none;box-shadow:0 4px 14px rgba(11,79,138,.08)}
.feat b{color:var(--blu-d);font-size:1.08rem}
.feat p{color:var(--muted);font-size:.9rem;margin:.4em 0 0}

/* results */
.results{display:flex;flex-direction:column;gap:8px}
.rcard{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 16px}
.rcard:hover{border-color:var(--blu2);text-decoration:none;box-shadow:0 2px 10px rgba(11,79,138,.08)}
.rcard.hl{border-color:var(--ok);background:#f3fbf6}
.rmain{flex:1;min-width:0}
.rmain b{color:var(--blu-d);display:block}
.rmeta{color:var(--muted);font-size:.85rem}
.rcode{font-family:var(--mono);background:var(--blu);color:#fff;padding:.3em .6em;border-radius:6px;font-size:1rem;letter-spacing:.05em}
.rmulti{color:var(--muted);font-size:.85rem;white-space:nowrap}

/* ente / kv tables */
.entehead .subline,.subline{color:var(--muted);margin-top:-.3em}
.intro{margin:14px 0}
.intro p{margin:0;font-size:1.05rem;line-height:1.65;color:var(--ink)}
.kv{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:14px 0}
.kv th{text-align:left;width:210px;padding:10px 14px;background:var(--accent);color:var(--blu-d);font-weight:600;vertical-align:top;border-bottom:1px solid var(--line)}
.kv td{padding:10px 14px;border-bottom:1px solid var(--line)}

/* box fattura */
.fbox{background:var(--card);border:2px solid var(--blu);border-radius:14px;overflow:hidden;margin:18px 0;box-shadow:0 6px 20px rgba(11,79,138,.12)}
.fbox-h{background:var(--blu);color:#fff;padding:12px 18px;font-weight:600;font-size:1.05rem}
.fkv{width:100%;border-collapse:collapse}
.fkv th{text-align:left;width:230px;padding:9px 18px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line);vertical-align:top}
.fkv td{padding:9px 18px;border-bottom:1px solid var(--line);font-weight:500}
.fkv td.big{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--blu);letter-spacing:.06em}
.fbtns{display:flex;gap:10px;flex-wrap:wrap;padding:14px 18px}
.fnote{color:var(--muted);font-size:.85rem;padding:0 18px 14px;margin:0}
.btn{display:inline-block;background:var(--blu);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer}
.btn:hover{background:var(--blu-d);text-decoration:none}
.btn.ghost{background:#fff;color:var(--blu);border:1.5px solid var(--blu)}
.btn.big{padding:14px 26px;font-size:1.05rem}

/* uffici table */
.tablewrap{overflow-x:auto}
table.uff{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);font-size:.92rem}
table.uff th{text-align:left;background:var(--accent);color:var(--blu-d);padding:9px 12px;font-weight:600}
table.uff td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}
table.uff tr.hl{background:#f3fbf6}
.cmono{font-family:var(--mono);font-weight:700;color:var(--blu)}
.badge{display:inline-block;font-size:.72rem;padding:.12em .5em;border-radius:20px;font-weight:600;vertical-align:middle}
.badge.ok{background:#dcf3e6;color:var(--ok)}
.badge.ko{background:#fbe3e0;color:var(--ko)}
.badge.pri{background:#fceecb;color:var(--pri)}

/* liste / categorie */
.catgrid,.reggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:12px 0}
.catrow{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:11px 15px}
.catrow:hover{border-color:var(--blu2);text-decoration:none}
.catrow span{color:var(--blu-d)}
.catrow b{color:var(--blu);font-variant-numeric:tabular-nums}
.entilist,.codelist{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:6px}
.entilist li,.codelist li{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 14px}
.entilist code,.codelist code{font-weight:700}

/* note / cta */
.notebox{background:#fffdf3;border:1px solid #ecdca0;border-left:4px solid var(--pri);border-radius:8px;padding:12px 16px;margin:14px 0;font-size:.95rem}
.notebox.ok{background:#f3fbf6;border-color:#aedcc1;border-left-color:var(--ok)}
.notebox.ko{background:#fdf2f0;border-color:#e6b3ab;border-left-color:var(--ko)}
.alertcta{background:var(--accent);border-radius:10px;padding:14px 18px;margin:18px 0}
.verifyhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.vok{background:#dcf3e6;color:var(--ok);font-weight:700;padding:.3em .8em;border-radius:20px}

/* variazioni */
.varlist{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:6px}
.varlist li{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 14px;font-size:.92rem}
.varlist.big li{padding:11px 16px}
.vdate{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}
.vtype{font-weight:600;color:var(--blu-d)}
.more{display:inline-block;margin-top:10px}
.pager{display:flex;gap:14px;align-items:center;justify-content:center;margin:16px 0}
.pager a{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-weight:600}
.pager span{color:var(--muted)}
.azlist{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}
.azlist a{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--line);border-radius:7px;font-weight:600;color:var(--blu2)}
.azlist a:hover{border-color:var(--blu2);text-decoration:none}
.azlist a.on{background:var(--blu);color:#fff;border-color:var(--blu)}
.varfilter{font-size:.9rem;color:var(--muted)}
.varfilter a.on{font-weight:700;color:var(--blu-d)}

/* autocomplete */
.ac{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--blu2);border-top:0;border-radius:0 0 10px 10px;box-shadow:0 10px 28px rgba(8,54,95,.18);z-index:70;overflow:hidden;max-height:380px;overflow-y:auto}
.ac-i{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.ac-i:first-child{border-top:0}
.ac-i:hover,.ac-i.sel{background:var(--accent);text-decoration:none}
.ac-t{flex:1;color:var(--ink);font-size:.93rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-m{color:var(--muted);font-size:.8rem;white-space:nowrap}
.ac code{font-weight:700;font-size:.82rem}
.alertform{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:16px 0}
.arow{display:flex;gap:10px;flex-wrap:wrap}
.arow input{flex:1;min-width:200px;border:1.5px solid var(--line);border-radius:8px;padding:11px 14px;font-size:.95rem}
.watchlabel{align-self:center;color:var(--muted)}

/* wizard */
.wizard{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.wstep{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.wstep summary{cursor:pointer;padding:14px 16px;font-size:1.02rem;list-style:none;display:flex;align-items:center;gap:12px}
.wstep summary::-webkit-details-marker{display:none}
.wn{background:var(--blu);color:#fff;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.wa{padding:0 16px 16px 56px;color:var(--ink)}
.wsearch{margin:24px 0}

/* upload / pricing */
.upbox{margin:16px 0}
.updrop{border:2px dashed var(--blu2);border-radius:var(--radius);padding:28px;text-align:center;background:var(--card);margin-bottom:12px}
.updrop p{color:var(--muted);margin:.6em 0 0;font-size:.9rem}
.pricing{margin:26px 0}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-align:center}
.plan b{color:var(--blu-d);font-size:1.1rem}
.plan .price{display:block;font-size:1.8rem;color:var(--blu);font-weight:700;margin:.2em 0}
.plan small{color:var(--muted);display:block;margin-bottom:10px}

/* guida */
.guidegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:5px}
.gcard:hover{border-color:var(--blu2);text-decoration:none;box-shadow:0 4px 14px rgba(11,79,138,.08)}
.gcard b{color:var(--blu-d);font-size:1.04rem}
.gcard span{color:var(--muted);font-size:.86rem}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.qa{background:var(--accent);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.qa summary{cursor:pointer;padding:12px 16px;font-weight:600;color:var(--blu-d)}
.qa summary::-webkit-details-marker{color:var(--blu2)}
.qa p{padding:0 16px 14px;margin:0;color:var(--ink)}

/* API page */
.api-feat{margin:10px 0 18px;padding-left:20px}
.api-feat li{margin:5px 0}
.apilist{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.apicard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.apiep{display:inline-block;background:var(--blu-d);color:#fff;padding:.35em .7em;border-radius:6px;font-size:.92rem}
.apicard p{margin:.5em 0;color:var(--ink)}
.apitry{font-family:var(--mono);font-size:.85rem;word-break:break-all}
.apicode{background:var(--ink);color:#dbe7f2;padding:16px 18px;border-radius:10px;overflow-x:auto;font-family:var(--mono);font-size:.85rem;line-height:1.5}
.guida{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;max-width:760px}
.guida p{margin:.7em 0}
.gback{margin-top:1.4em}

/* footer */
.foot{background:var(--blu-d);color:#cfe0ef;margin-top:50px;padding:30px 0}
.fcols{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}
.fcols b{display:block;color:#fff;margin-bottom:8px}
.fcols a{display:block;color:#cfe0ef;font-size:.9rem;padding:2px 0}
.src{margin-top:22px;font-size:.82rem;color:#8fb0cd;border-top:1px solid #18527f;padding-top:14px}
.src a{color:#9fd0ff}

@media(max-width:640px){
  .hnav{display:none}
  .hero h1{font-size:1.6rem}
  .fkv th,.kv th{width:130px}
  .fkv td.big{font-size:1.2rem}
}
