:root{--bg:#FFFFFF;--soft:#F1F3F9;--soft2:#F7F8FC;--ink:#14213D;--muted:#4B5675;--line:#E3E7F1;--accent:#2747D9;--accent-ink:#FFFFFF;--accent-soft:#EEF2FF;--accent-text:#2338B5;--good:#08734F;--good-bg:#E7F7F0;--warm:#B6381F;--warm-bg:#FFF2EE;--display:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--mono:"DM Mono",ui-monospace,"SF Mono",Menlo,monospace}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0E1320;--soft:#1C2337;--soft2:#161C2C;--ink:#E7EBF5;--muted:#A3ADC6;--line:#263049;--accent:#8EA2FF;--accent-ink:#0E1320;--accent-soft:#1D2547;--accent-text:#B9C5FF;--good:#6FD9AE;--good-bg:#13302A;--warm:#FF9F86;--warm-bg:#3A2219;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0E1320;--soft:#1C2337;--soft2:#161C2C;--ink:#E7EBF5;--muted:#A3ADC6;--line:#263049;--accent:#8EA2FF;--accent-ink:#0E1320;--accent-soft:#1D2547;--accent-text:#B9C5FF;--good:#6FD9AE;--good-bg:#13302A;--warm:#FF9F86;--warm-bg:#3A2219;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--display);font-size:16px;line-height:1.55}
a{color:var(--accent-text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.w{max-width:1100px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{text-wrap:balance;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(28px,4.4vw,44px);font-weight:800;line-height:1.1}
h2{font-size:clamp(21px,2.6vw,27px);font-weight:800;margin:0 0 14px}
h3{font-size:17px}
p{margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;font:inherit;font-weight:700;text-decoration:none;border:0;cursor:pointer}
.btn.p{background:var(--accent);color:var(--accent-ink)}
.btn.g{background:var(--soft);color:var(--ink)}
header .w{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding-block:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-.02em}
header nav{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font-weight:600;font-size:15px}
header nav a.l{text-decoration:none;color:var(--ink)}
@media (max-width:680px){header nav a.l{display:none}}
main{display:flex;flex-direction:column;gap:28px;padding-bottom:40px}
.bc{font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}
.bc a{color:var(--muted)}
.testa{display:flex;flex-direction:column;gap:10px}
.testa .sotto{color:var(--muted);font-size:15px;display:flex;flex-wrap:wrap;gap:4px 14px}
.testa .sotto b{color:var(--ink)}
.blocco{background:var(--soft2);border:1px solid var(--line);border-radius:24px;padding:clamp(18px,3vw,28px)}
.punt{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
@media (max-width:620px){.punt{grid-template-columns:1fr;justify-items:start}}
.barre{display:flex;flex-direction:column;gap:12px;width:100%}
.barra{display:grid;grid-template-columns:84px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:15px}
.barra i{height:9px;border-radius:999px;background:var(--line);overflow:hidden;display:block}
.barra i b{display:block;height:100%;background:var(--accent);border-radius:999px}
.barra span:last-child{font-family:var(--mono);text-align:right}
.giudizio{margin-top:16px;color:var(--muted)}
ul.breve{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.gruppo{background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:18px}
.gruppo h3{margin-bottom:10px}
.gruppo dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:8px 12px;font-size:15px}
.gruppo dt{color:var(--muted)}
.gruppo dd{margin:0;font-family:var(--mono);text-align:right;white-space:nowrap}
.cta{background:var(--accent);color:var(--accent-ink);border-radius:24px;padding:clamp(20px,4vw,32px);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.cta h2{color:var(--accent-ink);margin:0}
.cta p{color:var(--accent-ink);opacity:.9}
.cta .btn{background:var(--accent-ink);color:var(--accent)}
.domande details{border-top:1px solid var(--line);padding:14px 0}
.domande summary{font-weight:700;cursor:pointer}
.domande details p{margin-top:8px;color:var(--muted)}
.simili{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.simili a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:12px}
.simili small{display:block;color:var(--muted);font-family:var(--mono)}
.pt{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:30px;padding:0 8px;border-radius:999px;background:var(--soft);font-family:var(--mono);font-weight:500}
.pt.alto{background:var(--good-bg);color:var(--good)}
.pt.basso{background:var(--warm-bg);color:var(--warm)}
.tab{overflow-x:auto;border:1px solid var(--line);border-radius:20px}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{padding:10px 14px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th{font-size:13px;color:var(--muted);font-weight:600;background:var(--soft2)}
th:nth-child(-n+2),td:nth-child(-n+2){text-align:left}
td{font-family:var(--mono)}
td:nth-child(2){font-family:var(--display);white-space:normal;min-width:180px}
td:nth-child(2) small{display:block;color:var(--muted)}
tr:last-child td{border-bottom:0}
.lettere{display:flex;flex-wrap:wrap;gap:6px}
.lettere a{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:10px;background:var(--soft);text-decoration:none;color:var(--ink);font-weight:700}
.elenco{columns:3 240px;column-gap:24px;font-size:15px}
.elenco a{display:block;padding:3px 0;break-inside:avoid;color:var(--ink);text-decoration:none}
.elenco a small{color:var(--muted);font-family:var(--mono)}
.schede{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.schede a{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);background:var(--soft2);border:1px solid var(--line);border-radius:20px;padding:18px}
.schede a span{color:var(--muted);font-size:15px}
.nota{font-size:14px;color:var(--muted)}
footer{border-top:1px solid var(--line)}
footer .w{padding-block:28px 40px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
footer b{color:var(--ink);font-size:16px}
footer a{color:var(--muted)}
