/* ===== Stile condiviso del blog KofSec ===== */
/* Modifica qui una volta sola: tutti gli articoli si aggiornano. */
/* Palette allineata alla home (index.html): carbone + crema calda + rosso. */
:root{
  --bg:#0e0d0e;
  --bg-soft:#161416;
  --panel:#1a171a;
  --panel-2:#211d21;
  --border:#2c272c;
  --border-soft:#231f23;
  --text:#f4f0ec;        /* crema calda */
  --muted:#a69f9a;       /* grigio caldo */
  --faint:#6f6863;
  --body:#d6cfca;        /* testo lungo degli articoli */
  --accent:#ff3d47;
  --accent-dim:#4a1b1f;
  --radius:12px;
  --maxw:800px;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{
  background:var(--bg);color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.7;-webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* Header */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:rgba(14,13,14,.85);border-bottom:1px solid var(--border-soft)}
.nav{display:flex;align-items:center;justify-content:space-between;height:70px;max-width:1140px;margin:0 auto;padding:0 28px}
.logo{display:flex;align-items:center;gap:11px;font-weight:700;letter-spacing:.5px;font-size:1.2rem;color:var(--text)}
.logo:hover{text-decoration:none}
.logo .mark{width:44px;height:44px;border-radius:11px;background:linear-gradient(140deg,#1c151b,#0d0c0d);border:1px solid var(--accent-dim);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 14px rgba(255,61,71,.12)}
.logo .mark svg{width:38px;height:38px}
.logo b{color:var(--accent)}
.nav-right a{color:var(--muted);font-size:.92rem;margin-left:26px}
.nav-right a:hover{color:var(--text);text-decoration:none}

/* ===== Lista articoli (blog/index.html) ===== */
.blog-hero{padding:56px 0 20px}
.blog-hero .eyebrow{font-family:var(--mono);color:var(--accent);font-size:.76rem;letter-spacing:2.5px;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
.blog-hero .eyebrow::before{content:"";width:26px;height:1px;background:var(--accent)}
.blog-hero h1{font-size:clamp(1.9rem,4.4vw,2.6rem);font-weight:800;letter-spacing:-.6px;margin:14px 0 10px;line-height:1.12}
.blog-hero p{color:var(--muted);max-width:60ch}
.post-list{padding:30px 0 80px;display:grid;gap:16px}
.post-card{
  display:block;background:var(--panel);
  border:1px solid var(--border);border-left:2px solid var(--accent-dim);border-radius:var(--radius);padding:26px 28px;
  transition:transform .2s,border-left-color .25s,box-shadow .25s;color:var(--text);
}
.post-card:hover{transform:translateY(-4px);border-left-color:var(--accent);box-shadow:0 18px 40px rgba(0,0,0,.45);text-decoration:none}
.post-card .meta{font-family:var(--mono);color:var(--accent);font-size:.74rem;letter-spacing:1px;text-transform:uppercase}
.post-card h2{font-size:1.4rem;margin:8px 0;letter-spacing:-.3px}
.post-card p{color:var(--muted);font-size:.97rem}
.post-card .tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
.post-card .tags span{font-family:var(--mono);font-size:.72rem;color:var(--muted);border:1px solid var(--border);padding:4px 10px;border-radius:6px;transition:color .2s,border-color .2s}
.post-card:hover .tags span{color:var(--accent);border-color:var(--accent-dim)}

/* ===== Articolo singolo ===== */
article.post{padding:46px 0 80px}
.post-back{color:var(--muted);font-size:.9rem;display:inline-block;margin-bottom:30px}
.post-back:hover{color:var(--text);text-decoration:none}
.post-head .meta{font-family:var(--mono);color:var(--accent);font-size:.76rem;letter-spacing:1px;text-transform:uppercase}
.post-head h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.5px;line-height:1.15;margin:12px 0 16px}
.post-head .byline{color:var(--muted);font-size:.9rem;border-bottom:1px solid var(--border);padding-bottom:26px;margin-bottom:34px}

.post-body{font-size:1.07rem}
.post-body h2{font-size:1.6rem;font-weight:700;margin:42px 0 14px;letter-spacing:-.3px}
.post-body h3{font-size:1.25rem;font-weight:700;margin:32px 0 10px}
.post-body p{margin:0 0 20px;color:var(--body)}
.post-body ul,.post-body ol{margin:0 0 20px 22px;color:var(--body)}
.post-body li{margin-bottom:8px}
.post-body strong{color:var(--text)}
.post-body img{max-width:100%;border-radius:10px;border:1px solid var(--border);margin:14px 0}
.post-body blockquote{
  border-left:3px solid var(--accent);background:var(--panel);
  padding:14px 20px;margin:0 0 22px;color:var(--muted);border-radius:0 8px 8px 0;
}
.post-body code{
  font-family:var(--mono);font-size:.88em;
  background:var(--panel);border:1px solid var(--border);padding:2px 6px;border-radius:5px;color:#ffb3b7;
}
.post-body pre{
  background:#090809;border:1px solid var(--border);border-radius:10px;
  padding:20px;overflow-x:auto;margin:0 0 24px;
}
.post-body pre code{background:none;border:0;padding:0;color:#e2dbd6;font-size:.9rem;line-height:1.6}

/* Footer */
footer{border-top:1px solid var(--border);padding:40px 0;color:var(--faint);font-size:.85rem;text-align:center}
footer a{color:var(--muted)}
footer a:hover{color:var(--accent)}

@media(max-width:600px){
  .nav-right a{margin-left:16px}
}

/* ===== Feed CVE (generato da tools/generate_cve.py) ===== */
.cve-meta{color:var(--muted);font-size:.85rem;margin:-6px 0 22px}
.cve-meta b{color:var(--accent)}
.cve-list{display:flex;flex-direction:column;gap:12px;padding-bottom:70px}
.cve-item{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:18px 22px;transition:border-color .2s,transform .15s}
.cve-item:hover{border-color:var(--accent-dim);transform:translateY(-2px)}
.cve-item .cid a{font-family:var(--mono);font-size:.85rem;color:var(--accent);font-weight:600;white-space:nowrap;text-decoration:none}
.cve-item .cid a:hover{text-decoration:underline}
.cve-item .cbody .prod{font-family:var(--mono);color:var(--accent);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}
.cve-item .cbody p{color:var(--body);font-size:.92rem;margin:3px 0 0}
.cve-item .cright{text-align:right;white-space:nowrap}
.cve-item .pub{display:block;color:var(--faint);font-size:.75rem;margin-top:7px}
.sev{display:inline-block;font-family:var(--mono);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:6px}
.sev.crit{color:#ff6b6b;background:rgba(255,61,71,.12);border:1px solid var(--accent-dim)}
.sev.high{color:#ffb14d;background:rgba(255,160,70,.1);border:1px solid rgba(255,160,70,.3)}
.sev.med{color:#ffd24d;background:rgba(255,210,70,.08);border:1px solid rgba(255,210,70,.25)}
.sev.low{color:var(--muted);background:rgba(166,159,154,.08);border:1px solid var(--border)}
/* Messaggio mostrato dal generatore quando non ci sono CVE nella finestra temporale */
.advisory-empty{color:var(--muted);font-size:.95rem;background:var(--panel);border:1px dashed var(--border);border-radius:11px;padding:28px;text-align:center}
@media(max-width:640px){
  .cve-item{grid-template-columns:1fr;gap:8px}
  .cve-item .cright{text-align:left}
}
