/* iGPU passthrough guide - shared style */
:root{
  --pc:#2563eb; --pc-bg:#dbeafe;
  --pve:#ea580c; --pve-bg:#ffedd5;
  --vm:#16a34a; --vm-bg:#dcfce7;
  --bios:#7c3aed; --bios-bg:#ede9fe;
  --gpu:#db2777; --gpu-bg:#fce7f3;
  --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --bg:#f8fafc; --card:#ffffff;
}
*{box-sizing:border-box}
html{scroll-behavior:auto;scroll-padding-top:16px}  /* table-of-contents / in-page links jump instantly (no smooth scrolling) */
body{margin:0;font-family:"Segoe UI","Yu Gothic UI","Meiryo","Hiragino Sans",sans-serif;color:var(--ink);background:var(--bg);line-height:1.75;font-size:16px}
a{color:#2563eb}
code,pre,kbd{font-family:"Cascadia Mono","Consolas","Menlo",monospace}
:not(pre)>code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;padding:1px 6px;font-size:.9em;color:#be185d}
kbd{background:#fff;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:5px;padding:0 6px;font-size:.85em}

/* hero */
.hero{background:linear-gradient(120deg,#4f46e5 0%,#2563eb 40%,#0891b2 75%,#16a34a 100%);color:#fff;padding:44px 24px 34px}
.hero .inner{max-width:1180px;margin:0 auto}
.hero h1{margin:0 0 6px;font-size:2.1rem;line-height:1.25}
.hero p{margin:6px 0;opacity:.95;max-width:880px}
.hero .chips{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px}
.chip{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:3px 12px;border-radius:999px;font-size:.88rem}

/* layout */
.wrap{max-width:1180px;margin:0 auto;padding:22px 20px 60px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px}
nav.toc{position:sticky;top:12px;align-self:start;max-height:calc(100vh - 24px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 14px 10px;font-size:.9rem}
nav.toc h2{margin:0 0 6px;font-size:.95rem;color:var(--muted)}
nav.toc a{display:block;text-decoration:none;color:var(--ink);padding:4px 8px;border-radius:8px;border-left:4px solid transparent}
nav.toc a:hover{background:#f1f5f9}
nav.toc a.active{background:#eef2ff;border-left-color:#4f46e5;font-weight:600}
nav.toc a .n{display:inline-block;min-width:1.6em;color:#4f46e5;font-weight:700}
nav.toc .sep{height:1px;background:var(--line);margin:8px 0}
main{min-width:0}
@media (max-width:900px){.wrap{grid-template-columns:1fr}nav.toc{position:static;max-height:none}}

/* headings */
main h2{font-size:1.55rem;margin:46px 0 12px;padding:10px 16px;border-radius:12px;background:linear-gradient(90deg,#eef2ff,#fff);border-left:8px solid #4f46e5}
main h2 .num{display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;border-radius:50%;background:#4f46e5;color:#fff;font-size:.85em;margin-right:10px}
main h2.pc{border-left-color:var(--pc);background:linear-gradient(90deg,var(--pc-bg),#fff)} main h2.pc .num{background:var(--pc)}
main h2.pve{border-left-color:var(--pve);background:linear-gradient(90deg,var(--pve-bg),#fff)} main h2.pve .num{background:var(--pve)}
main h2.vm{border-left-color:var(--vm);background:linear-gradient(90deg,var(--vm-bg),#fff)} main h2.vm .num{background:var(--vm)}
main h2.mix{border-left-color:var(--bios);background:linear-gradient(90deg,var(--bios-bg),#fff)} main h2.mix .num{background:var(--bios)}
main h3{font-size:1.15rem;margin:26px 0 8px;color:#111827}
main h3::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;background:#4f46e5;margin-right:8px}

/* location badges */
.loc{display:inline-block;color:#fff;border-radius:6px;padding:0 9px;font-size:.78rem;font-weight:700;letter-spacing:.02em;vertical-align:middle;margin-right:4px}
.loc.pc{background:var(--pc)} .loc.pve{background:var(--pve)} .loc.vm{background:var(--vm)} .loc.bios{background:var(--bios)} .loc.gpu{background:var(--gpu)}

/* cards, callouts */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin:14px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:760px){.grid2,.grid3{grid-template-columns:1fr}}
.note{border-radius:12px;padding:12px 16px;margin:14px 0;border:1px solid;border-left-width:8px}
.note>strong:first-child{display:block;margin-bottom:2px}
.note.info{background:#eff6ff;border-color:#93c5fd}
.note.tip{background:#f0fdf4;border-color:#86efac}
.note.warn{background:#fffbeb;border-color:#fcd34d}
.note.danger{background:#fef2f2;border-color:#fca5a5}
.note.ok{background:#ecfdf5;border-color:#34d399}
.note p{margin:4px 0}.note ul,.note ol{margin:4px 0;padding-left:1.4em}

/* code */
.code{margin:12px 0;border-radius:12px;overflow:hidden;border:1px solid #1e293b;background:#0f172a}
.code-head{display:flex;align-items:center;gap:10px;background:#1e293b;color:#e2e8f0;padding:6px 10px;font-size:.82rem}
.code-head .where{padding:1px 10px;border-radius:6px;font-weight:700;color:#fff}
.code-head .where.pc{background:var(--pc)} .code-head .where.pve{background:var(--pve)} .code-head .where.vm{background:var(--vm)}
.code-head .cap{flex:1;color:#cbd5e1}
.copy{cursor:pointer;border:1px solid #475569;background:#334155;color:#e2e8f0;border-radius:6px;padding:2px 10px;font-size:.78rem}
.copy:hover{background:#475569}.copy.done{background:#16a34a;border-color:#16a34a}
.code pre{margin:0;padding:12px 16px;overflow:auto;color:#e2e8f0;font-size:.88rem;line-height:1.55}
.code pre .c{color:#94a3b8}.code pre .k{color:#7dd3fc}.code pre .s{color:#fde68a}.code pre .out{color:#86efac}

/* tables */
table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.93rem;background:#fff;border-radius:10px;overflow:hidden}
th,td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
th{background:#eef2ff;color:#312e81}
tr:nth-child(even) td{background:#fafafa}
table.copymap td:nth-child(1){font-family:"Cascadia Mono","Consolas",monospace;font-size:.86rem;color:#9a3412;background:#fff7ed}
table.copymap td:nth-child(2){text-align:center;font-weight:700;color:#475569;width:3em}
table.copymap td:nth-child(3){font-family:"Cascadia Mono","Consolas",monospace;font-size:.86rem;color:#166534;background:#f0fdf4}
td.ok{color:#15803d;font-weight:700}td.ng{color:#b91c1c;font-weight:700}

/* steps list */
ol.steps{list-style:none;counter-reset:s;padding:0;margin:12px 0}
ol.steps>li{counter-increment:s;position:relative;padding:8px 12px 8px 52px;margin:8px 0;background:#fff;border:1px solid var(--line);border-radius:12px}
ol.steps>li::before{content:counter(s);position:absolute;left:12px;top:8px;width:28px;height:28px;border-radius:50%;background:#4f46e5;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
ol.steps>li p{margin:4px 0}

/* details */
details.more{margin:12px 0;border:1px dashed #94a3b8;border-radius:12px;background:#f8fafc}
details.more>summary{cursor:pointer;list-style:none;padding:9px 16px;font-weight:700;color:#334155;user-select:none}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::before{content:"\25BC  ";color:#6366f1;font-size:.85em}
details.more[open]>summary::before{content:"\25B2  "}
details.more[open]>summary{border-bottom:1px dashed #cbd5e1}
details.more>.body{padding:6px 18px 12px}

/* figure */
figure{margin:16px 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 10px 6px}
figure svg{width:100%;height:auto;display:block}
figcaption{font-size:.88rem;color:var(--muted);text-align:center;padding:4px 8px 6px}

/* checklist */
ul.check{list-style:none;padding-left:0}
ul.check li{margin:5px 0;padding:6px 10px 6px 38px;position:relative;background:#fff;border:1px solid var(--line);border-radius:10px}
ul.check li input{position:absolute;left:12px;top:11px;width:18px;height:18px;accent-color:#16a34a}
ul.check li.done{background:#f0fdf4;border-color:#86efac;text-decoration:line-through;color:#6b7280}

.legend{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.btn{cursor:pointer;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:8px;padding:5px 14px;font-size:.88rem}
.btn:hover{background:#e0e7ff}
footer{max-width:1180px;margin:0 auto;padding:24px;color:var(--muted);font-size:.85rem;border-top:1px solid var(--line)}
@media print{nav.toc,.copy,.btnrow{display:none}.wrap{display:block}details.more{border:none}details.more>.body{display:block}}

/* placeholders in code */
.ph{background:#fde68a;color:#78350f;border-radius:4px;padding:0 3px;font-weight:700}
.ph.filled{background:#bbf7d0;color:#14532d}
:not(pre)>code .ph{padding:0 2px}
.valform{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:8px 0}
.valform label{display:block;font-size:.85rem;color:#334155;font-weight:700}
.valform input{width:100%;margin-top:3px;padding:7px 10px;border:2px solid #cbd5e1;border-radius:8px;font-size:.95rem;font-family:"Cascadia Mono","Consolas",monospace}
.valform input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #e0e7ff}
.valform small{display:block;font-weight:400;color:#64748b}

.grid2>*,.grid3>*{min-width:0}
.card{min-width:0}
.code pre{max-width:100%}

.ph-demo{background:#fde68a;color:#78350f;border-radius:4px;padding:0 4px;font-weight:700}

/* download cards / buttons */
.dlgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}
@media (max-width:900px){.dlgrid{grid-template-columns:1fr}}
.dlcard{background:#fff;border:2px solid var(--line);border-top-width:8px;border-radius:14px;padding:12px 16px 16px;display:flex;flex-direction:column}
.dlcard.pve{border-color:var(--pve);background:linear-gradient(#fff7ed,#fff 60%)}
.dlcard.vm{border-color:var(--vm);background:linear-gradient(#f0fdf4,#fff 60%)}
.dlcard.pc{border-color:var(--pc);background:linear-gradient(#eff6ff,#fff 60%)}
.dlcard .dlhead{font-size:1.15rem;margin-bottom:2px}
.dlcard p{margin:6px 0}
.dlcard .meta{color:var(--muted);font-size:.86rem;margin-top:auto;padding-top:6px}
.dlcard .opt{display:inline-block;background:#e5e7eb;color:#374151;border-radius:6px;padding:0 8px;font-size:.75rem;font-weight:700;vertical-align:middle}
a.dlbtn{display:inline-block;text-decoration:none;color:#fff;font-weight:700;border-radius:10px;padding:8px 16px;font-size:.95rem;border:0;box-shadow:0 2px 0 rgba(0,0,0,.18);text-align:center}
a.dlbtn:hover{filter:brightness(1.08);transform:translateY(-1px)}
a.dlbtn:active{transform:translateY(1px);box-shadow:none}
a.dlbtn.pve{background:var(--pve)} a.dlbtn.vm{background:var(--vm)} a.dlbtn.pc{background:var(--pc)}
.dlinline{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:8px 0 12px;padding:8px 12px;background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;font-size:.9rem;color:#475569}
.dlinline a.dlbtn{padding:4px 14px;font-size:.88rem}
@media print{.dlinline a.dlbtn,.dlcard a.dlbtn{display:none}}

/* "back to the blog" link under the table of contents */
nav.toc a.blogback{background:#fff7ed;border:1px solid #fdba74;border-left:4px solid #ea580c;color:#9a3412;font-weight:700;margin-top:2px}
nav.toc a.blogback:hover{background:#ffedd5}
nav.toc a.blogback .n{color:#ea580c}
