
:root{ --bg:#0f172a; --panel:#111827; --text:#e5e7eb; --muted:#94a3b8; --accent:#60a5fa; --card:#1f2937; }
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:var(--text); background:linear-gradient(180deg, #0b1020, #0e1426);} 
.app-header{position:sticky; top:0; z-index:10; background:rgba(17,24,39,.8); backdrop-filter:blur(6px); border-bottom:1px solid #222; padding:.5rem 1rem; display:flex; align-items:center; gap:1rem}
.app-header h1{font-size:1rem; margin:0; color:#fff; letter-spacing:.3px}
.top-nav{display:flex; gap:.5rem; align-items:center; margin-left:auto}
.top-nav button{background:var(--card); color:#fff; border:1px solid #2b3748; padding:.4rem .65rem; border-radius:.5rem; cursor:pointer}
.top-nav button:hover{border-color:var(--accent)}
.view-toggle{font-size:.9rem; color:var(--muted)}

.toc{position:fixed; left:0; top:3rem; bottom:0; width:18rem; overflow:auto; background:rgba(17,24,39,.92); border-right:1px solid #222; padding:1rem}
.toc a{color:var(--text); text-decoration:none}
.toc a:hover{color:var(--accent)}

main#deck{max-width:1100px; margin:1rem auto; padding:1rem}
.slide{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:1.25rem 1.5rem; margin:1.25rem 0; box-shadow:0 2px 20px rgba(0,0,0,.25)}
.slide-title{margin-top:0; font-size:1.5rem}
.slide p{margin:.4rem 0}
figure{margin:1rem 0; background:rgba(0,0,0,.2); border:1px solid #2b2b2b; padding:.75rem; border-radius:12px}
figure img{max-width:100%; display:block; margin:0 auto; border-radius:10px}
figure figcaption{font-size:.85rem; color:var(--muted); text-align:center; margin-top:.35rem}
.table-wrap{overflow:auto; border:1px solid #30363d; border-radius:12px; margin:.75rem 0}
.table-wrap table{width:100%; border-collapse:collapse}
.table-wrap th,.table-wrap td{border-bottom:1px solid #2a3340; padding:.5rem .75rem; text-align:left}
.table-wrap th{background:rgba(255,255,255,.06)}

.app-footer{opacity:.7; text-align:center; padding:2rem 1rem}

@media (min-width: 960px){ .slide{padding:2rem 2.25rem} .slide-title{font-size:1.85rem} }
@media print{ body{background:#fff; color:#111} .app-header,.app-footer,.toc,.top-nav{display:none} .slide{page-break-inside:avoid; border:none; box-shadow:none} .slide-title{color:#111} }
