/* ===== Wiki Ethical Hacking - tema del sito (carta e inchiostro) ===== */
@font-face{font-family:'Instrument Sans Variable';font-style:normal;font-display:swap;font-weight:400 700;src:url('fonts/instrument-sans-latin-wght-normal.woff2') format('woff2-variations');}
@font-face{font-family:'Source Serif 4 Variable';font-style:normal;font-display:swap;font-weight:200 900;src:url('fonts/source-serif-4-latin-wght-normal.woff2') format('woff2-variations');}
@font-face{font-family:'Source Serif 4 Variable';font-style:italic;font-display:swap;font-weight:200 900;src:url('fonts/source-serif-4-latin-wght-italic.woff2') format('woff2-variations');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:400;src:url('fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:500;src:url('fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}

:root{
  --bg:#ece3c9; --bg2:#f4edd7; --bg3:#e4dabb;
  --fg:#211d13; --fg-dim:#66604a;
  --accent:#3f8c5f; --accent2:#3f6f8c; --danger:#9e4b3c; --warn:#b9772b; --purple:#6f6f77;
  --border:#d6cbaa; --border-soft:#e1d7ba; --code-bg:#f4edd7;
  --font:'Source Serif 4 Variable',Georgia,'Times New Roman',serif;
  --head:'Instrument Sans Variable','Segoe UI',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  --radius:4px;
  color-scheme:light;
}
:root[data-theme='dark']{
  --bg:#121316; --bg2:#191a1e; --bg3:#202127;
  --fg:#e9e9ec; --fg-dim:#8a8a93;
  --accent:#5bb281; --accent2:#6f9fc0; --danger:#d08a7c; --warn:#d59a4c; --purple:#9a9aa2;
  --border:#2a2b30; --border-soft:#212227; --code-bg:#191a1e;
  color-scheme:dark;
}
@media(prefers-color-scheme:dark){
  :root:not([data-theme='light']){
    --bg:#121316; --bg2:#191a1e; --bg3:#202127;
    --fg:#e9e9ec; --fg-dim:#8a8a93;
    --accent:#5bb281; --accent2:#6f9fc0; --danger:#d08a7c; --warn:#d59a4c; --purple:#9a9aa2;
    --border:#2a2b30; --border-soft:#212227; --code-bg:#191a1e;
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:var(--accent2);text-decoration:none;text-underline-offset:.18em}
a:hover{text-decoration:underline}
code,kbd{font-family:var(--mono);font-size:.9em}

.layout{display:flex;min-height:100vh}
.sidebar{width:290px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;overflow-y:auto}
.content{flex:1;max-width:920px;margin:0 auto;padding:36px 48px 60px}
@media(max-width:860px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.content{padding:24px}}

.brand{padding:18px 20px 4px;font-family:var(--head);font-weight:600;letter-spacing:-.02em;font-size:1.15rem;color:var(--fg)}
.brand small{color:var(--fg-dim);font-weight:400;font-size:.72rem;display:block;margin-top:2px;font-family:var(--mono)}
.menu-toggle{margin:8px 16px 0;display:flex;gap:6px}
.menu-toggle button{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--fg-dim);font-size:.72rem;padding:5px;border-radius:var(--radius);cursor:pointer;font-family:var(--mono)}
.menu-toggle button.on{border-color:var(--fg);color:var(--fg)}
.sb-disclaimer{margin:12px 16px;padding:8px 10px;font-size:.72rem;line-height:1.4;background:var(--bg);border:1px solid var(--warn);border-radius:var(--radius);color:var(--fg)}
.search{margin:4px 16px 12px;width:calc(100% - 32px);padding:9px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-family:var(--mono);font-size:.85rem}
.search:focus{outline:none;border-color:var(--fg)}
.nav-cat{padding:14px 20px 4px;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-dim);font-family:var(--mono)}
.nav a{display:block;padding:6px 20px;color:var(--fg);border-left:3px solid transparent;font-size:.92rem}
.nav a:hover{background:var(--bg3);text-decoration:none;border-left-color:var(--fg)}
.nav a.active{background:var(--bg3);border-left-color:var(--fg);color:var(--fg);font-weight:600}
.nav a.hidden,.nav-cat.hidden{display:none}

body.menu-horizontal .layout{flex-direction:column}
body.menu-horizontal .sidebar{width:100%;height:auto;position:sticky;top:0;z-index:50;border-right:0;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 14px}
body.menu-horizontal .brand{padding:0 14px 0 0;font-size:.95rem;border-right:1px solid var(--border)}
body.menu-horizontal .brand small{display:none}
body.menu-horizontal .sb-disclaimer{display:none}
body.menu-horizontal .menu-toggle{margin:0;width:auto}
body.menu-horizontal .search{margin:0;width:180px}
body.menu-horizontal .nav{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px}
body.menu-horizontal .nav-cat{padding:0 6px;font-size:.62rem;color:var(--fg-dim);border-left:1px solid var(--border)}
body.menu-horizontal .nav a{padding:4px 8px;border-left:0;border-radius:var(--radius);font-size:.82rem}
body.menu-horizontal .nav a.active{border-left:0;background:var(--bg3)}
body.menu-horizontal .content{max-width:1100px}

h1{font-family:var(--head);font-weight:600;letter-spacing:-.025em;font-size:2rem;margin:.1em 0 .15em;border-bottom:1px solid var(--fg);padding-bottom:.3em}
h2{font-family:var(--head);font-weight:600;letter-spacing:-.02em;font-size:1.4rem;margin-top:1.9em;display:flex;align-items:center;gap:.5em;scroll-margin-top:12px}
h3{font-family:var(--head);font-weight:600;font-size:1.12rem;color:var(--fg);margin-top:1.5em}
h4{font-family:var(--head);font-weight:600;font-size:1rem;color:var(--fg-dim);margin:1.2em 0 .3em}
.tagline{color:var(--fg-dim);margin-top:0;font-size:1.05rem}
.section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px 24px;margin:18px 0}
.section.theory{border-left:3px solid var(--accent2)}
.section.practice{border-left:3px solid var(--accent)}
.section.labs{border-left:3px solid var(--warn)}
.section.defense{border-left:3px solid var(--danger)}
.section > h2{margin-top:.2em;border:0}

pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;overflow-x:auto;position:relative}
pre code{color:var(--fg);line-height:1.55}
.cmt{color:var(--fg-dim)}
.cmd{color:var(--accent2)}
p code,li code,td code{background:var(--bg3);padding:1px 6px;border-radius:5px;color:var(--fg)}

table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.92rem}
th,td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top}
th{background:var(--bg3);font-family:var(--head);font-weight:600}

.spec{margin:12px 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.spec > div{display:grid;grid-template-columns:160px 1fr;border-top:1px solid var(--border)}
.spec > div:first-child{border-top:0}
.spec .k{background:var(--bg3);padding:9px 12px;font-size:.78rem;color:var(--fg);font-weight:600;font-family:var(--mono)}
.spec .v{padding:9px 12px}
.spec .v pre{margin:6px 0}
@media(max-width:600px){.spec > div{grid-template-columns:1fr}.spec .k{border-bottom:1px solid var(--border)}}

.box-link{display:block;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin:10px 0;transition:.15s;color:var(--fg)}
.box-link:hover{border-color:var(--fg-dim);text-decoration:none;background:var(--bg3)}
.box-link .plat{font-family:var(--mono);font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:5px;margin-right:8px;border:1px solid var(--border)}
.plat.thm{background:var(--bg3);color:var(--accent2)}
.plat.htb{background:var(--bg3);color:var(--accent)}
.plat.web{background:var(--bg3);color:var(--purple)}
.box-link .diff{float:right;font-size:.76rem;color:var(--fg-dim);font-family:var(--mono)}
.box-link .desc{display:block;color:var(--fg-dim);font-size:.85rem;margin-top:4px}
.box-link b{color:var(--fg)}

.callout{border-radius:var(--radius);padding:11px 16px;margin:14px 0;font-size:.92rem;background:var(--bg2);border:1px solid var(--border)}
.callout.warn{border-left:3px solid var(--warn)}
.callout.danger{border-left:3px solid var(--danger)}
.callout.info{border-left:3px solid var(--accent2)}
.callout.tip{border-left:3px solid var(--accent)}
.callout b{color:var(--fg)}

.disclaimer{background:var(--bg2);border:1px solid var(--warn);border-radius:var(--radius);padding:14px 18px;margin:20px 0;font-size:.92rem}
.crumbs{font-size:.85rem;color:var(--fg-dim);margin-bottom:6px;font-family:var(--mono)}
.crumbs a{color:var(--fg-dim)}
footer{margin-top:50px;padding-top:18px;border-top:1px solid var(--border);color:var(--fg-dim);font-size:.8rem;line-height:1.5}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:18px 0}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;color:var(--fg)}
.card:hover{border-color:var(--fg-dim);text-decoration:none;background:var(--bg3)}
.card h3{margin:.1em 0 .3em;color:var(--fg)}
.card p{margin:0;font-size:.85rem;color:var(--fg-dim)}
.hero{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:30px 32px;margin:14px 0 8px}
.hero h1{border:0;font-size:2.3rem;margin:0}
.hero p{margin:.4em 0 0;font-size:1.08rem;color:var(--fg-dim)}
.stats{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0}
.stat{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px;flex:1;min-width:130px;text-align:center}
.stat b{display:block;font-size:1.6rem;color:var(--fg);font-family:var(--head)}
.stat span{font-size:.78rem;color:var(--fg-dim)}
.tag{display:inline-block;font-size:.7rem;background:var(--bg3);color:var(--fg-dim);padding:2px 8px;border-radius:20px;margin:2px 4px 2px 0;font-family:var(--mono)}
.toc{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 18px;margin:16px 0;font-size:.9rem}
.toc b{display:block;margin-bottom:6px;color:var(--fg-dim);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono)}
.toc a{margin-right:14px;display:inline-block;padding:2px 0}
.pill{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border-radius:20px;background:var(--bg3);border:1px solid var(--border)}

.wiki-topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 16px;background:var(--bg2);border-bottom:1px solid var(--border);font-family:var(--head);font-size:.9rem}
.wiki-topbar a{color:var(--fg-dim);text-decoration:none}
.wiki-topbar a:hover{color:var(--fg)}
.wiki-topbar .home{font-weight:600;color:var(--fg)}
