/* Modulo 1 — Stile moderno didattico, solo HTML+CSS, offline-friendly */
:root{
  --blu:#2563eb; --blu-dark:#1e40af; --teal:#06b6d4; --ambra:#f59e0b;
  --verde:#16a34a; --rosso:#dc2626; --viola:#7c3aed;
  --bg:#f1f5f9; --card:#ffffff; --txt:#0f172a; --muted:#64748b;
  --bordo:#e2e8f0; --raggio:16px;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--txt);line-height:1.6}
a{color:var(--blu-dark)}
.wrap{max-width:1020px;margin:0 auto;padding:0 20px}
/* Top bar */
.topbar{background:linear-gradient(135deg,var(--blu-dark),var(--blu) 55%,var(--teal));color:#fff;padding:14px 0;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.topbar .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--blu-dark);display:grid;place-items:center;font-weight:900;font-size:22px;flex:none}
.topbar h1{font-size:17px;margin:0;line-height:1.25}
.topbar small{opacity:.9;font-weight:400}
.nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;width:100%}
.nav a{color:#fff;text-decoration:none;font-size:13px;font-weight:600;background:rgba(255,255,255,.16);padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25)}
.nav a:hover{background:#fff;color:var(--blu-dark)}
.nav a.active{background:#fff;color:var(--blu-dark)}
/* Brand badge pcdazero.it (alto a destra, senza ingrandire la barra) */
.topbar .wrap{position:relative;padding-right:110px}
.brand-badge{position:absolute;top:50%;right:16px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#fff;font-size:11px;font-weight:700;line-height:1.2}
.brand-badge img{width:40px;height:40px;object-fit:contain;border-radius:10px;background:#fff}
.hero{position:relative;padding-right:110px}
.hero .brand-badge{top:14px;transform:none;color:var(--blu-dark)}
/* Hero */
.hero{background:var(--card);border:1px solid var(--bordo);border-radius:var(--raggio);padding:28px;margin:22px 0;box-shadow:0 4px 18px rgba(37,99,235,.08)}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.badge{display:inline-block;font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px;letter-spacing:.02em}
.b-modulo{background:#dbeafe;color:#1e40af}
.b-ore{background:#fef3c7;color:#92400e}
.b-parte{background:#dcfce7;color:#166534}
.hero h2{margin:.2em 0;font-size:30px;line-height:1.2}
.hero p.lead{font-size:17px;color:#334155}
.progress{display:flex;height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin:16px 0 6px}
.progress span{display:block}
.p1{width:50%;background:linear-gradient(90deg,var(--blu),var(--teal))}
.p2{width:50%;background:linear-gradient(90deg,var(--ambra),#f97316)}
.legenda{display:flex;gap:16px;font-size:13px;color:var(--muted);flex-wrap:wrap}
/* Grid cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}
.card{background:var(--card);border:1px solid var(--bordo);border-radius:var(--raggio);padding:18px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.card h3{margin:.2em 0;font-size:17px}
.card .n{font-size:12px;font-weight:800;color:#fff;background:var(--blu);border-radius:8px;padding:2px 8px;display:inline-block}
.card.parte2 .n{background:#ea580c}
.card a.btn{display:inline-block;margin-top:10px;text-decoration:none;font-weight:700;color:#fff;background:var(--blu);padding:9px 14px;border-radius:10px}
.card.parte2 a.btn{background:#ea580c}
.card a.btn:hover{filter:brightness(1.1)}
.icon{font-size:26px}
/* Content */
.page{background:var(--card);border:1px solid var(--bordo);border-radius:var(--raggio);padding:26px;margin:22px 0}
.page h2{margin-top:0;font-size:26px}
.page h3{color:var(--blu-dark);margin-top:1.4em}
.kicker{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.callout{border-radius:12px;padding:14px 16px;margin:14px 0;border:1px solid}
.ok{background:#f0fdf4;border-color:#bbf7d0}
.ko{background:#fef2f2;border-color:#fecaca}
.tip{background:#eff6ff;border-color:#bfdbfe}
.warn{background:#fffbeb;border-color:#fde68a}
code, .file{background:#0f172a;color:#e2e8f0;padding:2px 8px;border-radius:7px;font-family:Consolas,"Courier New",monospace;font-size:14px;word-break:break-all}
.file.good{background:#dcfce7;color:#14532d;font-weight:700}
.file.bad{background:#fee2e2;color:#7f1d1d;font-weight:700;text-decoration:line-through}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px}
th,td{border:1px solid var(--bordo);padding:10px;text-align:left;vertical-align:top}
th{background:#eff6ff;color:#1e3a8a}
.tree{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:16px 18px;font-family:Consolas,monospace;font-size:14px;line-height:1.7;overflow-x:auto;white-space:pre}
/* pager */
.pager{display:flex;justify-content:space-between;gap:12px;margin:20px 0 40px;flex-wrap:wrap}
.pager a{text-decoration:none;font-weight:700;background:var(--card);border:1px solid var(--bordo);padding:12px 16px;border-radius:12px;color:var(--blu-dark)}
.pager a:hover{background:var(--blu-dark);color:#fff}
footer.site{text-align:center;color:var(--muted);font-size:13px;padding:24px 12px 40px}
footer.site a{color:var(--blu-dark);font-weight:700}
ul.check{list-style:none;padding-left:0}
ul.check li{padding:8px 10px 8px 34px;position:relative;background:#f8fafc;border:1px solid var(--bordo);border-radius:10px;margin-bottom:8px}
ul.check li::before{content:"☐";position:absolute;left:10px;top:8px;font-weight:900;color:var(--blu)}
ol.steps li{margin-bottom:8px}
@media (max-width:600px){.hero h2{font-size:24px}.page{padding:18px}.topbar h1{font-size:15px}}
@media print{.topbar{position:static}.pager,footer.site,.nav{display:none}body{background:#fff}.hero,.page,.card{box-shadow:none}}
