/* ===== Interview Prep — mobile-first docs theme ===== */
:root{
  --bg:#0b0d12; --panel:#12151d; --panel2:#171b25; --bd:rgba(255,255,255,.09); --bd2:rgba(255,255,255,.16);
  --tx:#e8ebf2; --mut:#9aa3b2; --acc:#7c8cff; --acc2:#a78bfa; --accbg:rgba(124,140,255,.14);
  --grad:linear-gradient(135deg,#6366f1,#8b5cf6 60%,#d946ef);
  --toph:54px; --navw:288px; --maxw:880px;
}
:root[data-theme="light"]{
  --bg:#f5f7fb; --panel:#ffffff; --panel2:#f1f4fa; --bd:rgba(15,23,42,.10); --bd2:rgba(15,23,42,.2);
  --tx:#10141d; --mut:#566074; --accbg:rgba(99,102,241,.10);
}
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]){
  --bg:#f5f7fb; --panel:#ffffff; --panel2:#f1f4fa; --bd:rgba(15,23,42,.10); --bd2:rgba(15,23,42,.2);
  --tx:#10141d; --mut:#566074; --accbg:rgba(99,102,241,.10);
}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--toph) + 12px)}
body{margin:0;background:var(--bg);color:var(--tx);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:15.5px;line-height:1.62;-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}

/* top bar */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--toph);z-index:40;display:flex;align-items:center;gap:10px;
  padding:0 12px;background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--bd)}
.topbar::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}
.sitetitle{font-weight:800;letter-spacing:-.2px;font-size:16px;color:var(--tx);margin-right:auto}
.sitetitle:hover{text-decoration:none}
.quizlink{font-size:13px;font-weight:700;color:var(--acc);background:var(--accbg);border:1px solid var(--bd2);
  border-radius:999px;padding:7px 13px;white-space:nowrap}
.quizlink:hover{text-decoration:none;border-color:var(--acc)}
@media (max-width:520px){ .quizlink{padding:6px 10px;font-size:12px} }
.iconbtn{width:38px;height:38px;border:1px solid var(--bd);background:var(--panel2);color:var(--tx);
  border-radius:10px;font-size:17px;cursor:pointer;display:grid;place-items:center}
.iconbtn:hover{border-color:var(--bd2)}
#themeBtn{margin-left:0}

/* layout */
.layout{display:flex;padding-top:var(--toph)}
.scrim{position:fixed;inset:var(--toph) 0 0 0;background:rgba(0,0,0,.5);z-index:25;opacity:0;visibility:hidden;transition:.2s}
.scrim.show{opacity:1;visibility:visible}

nav#nav{position:fixed;top:var(--toph);bottom:0;left:0;width:var(--navw);z-index:30;
  background:var(--panel);border-right:1px solid var(--bd);overflow-y:auto;
  transform:translateX(-100%);transition:transform .22s cubic-bezier(.2,.7,.3,1)}
nav#nav.open{transform:none}
.navinner{padding:14px 12px 40px}
.navgroup{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--mut);
  margin:18px 10px 7px}
.navlink{display:block;padding:8px 12px;border-radius:9px;color:var(--mut);font-size:14px;font-weight:500;margin:2px 0}
.navlink:hover{background:var(--panel2);color:var(--tx);text-decoration:none}
.navlink.active{background:var(--accbg);color:var(--acc);font-weight:650}

.content{flex:1;min-width:0;max-width:var(--maxw);margin:0 auto;padding:22px 18px 80px;width:100%}

/* desktop: pinned sidebar */
@media (min-width:900px){
  nav#nav{transform:none}
  .scrim{display:none}
  #menuBtn{display:none}
  .layout{padding-left:var(--navw)}
  .content{padding:28px 36px 100px}
}

/* ===== markdown content ===== */
.md{overflow-wrap:anywhere}
.md h1{font-size:27px;font-weight:800;letter-spacing:-.5px;margin:.2em 0 .5em;line-height:1.2}
.md h2{font-size:21px;font-weight:750;margin:1.5em 0 .5em;padding-bottom:.3em;border-bottom:1px solid var(--bd)}
.md h3{font-size:17.5px;font-weight:700;margin:1.4em 0 .4em}
.md h4{font-size:15.5px;font-weight:700;margin:1.2em 0 .3em;color:var(--mut)}
.md h2,.md h3{scroll-margin-top:calc(var(--toph) + 10px)}
.md .headerlink{opacity:0;margin-left:.4em;color:var(--mut);font-size:.8em}
.md h2:hover .headerlink,.md h3:hover .headerlink{opacity:1}
.md p,.md li{overflow-wrap:break-word}
.md ul,.md ol{padding-left:1.4em}
.md li{margin:.25em 0}
.md blockquote{margin:1em 0;padding:.6em 1em;border-left:3px solid var(--acc);background:var(--panel2);
  border-radius:0 10px 10px 0;color:var(--mut)}
.md blockquote p{margin:.4em 0}
.md hr{border:none;border-top:1px solid var(--bd);margin:1.8em 0}
.md img{max-width:100%;height:auto;display:block;margin:14px auto;border-radius:10px;
  background:#fff;border:1px solid var(--bd)}
.md a.headerlink:hover{text-decoration:none}

/* inline code */
.md code{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:.88em;
  background:var(--panel2);border:1px solid var(--bd);border-radius:5px;padding:.08em .4em}
/* code blocks (always dark for legibility) */
.md .highlight,.md pre{position:relative}
.md .highlight{margin:14px 0;border-radius:11px;border:1px solid #2a2f3a;overflow:hidden;background:#1e1f29}
.md .highlight pre{margin:0;padding:14px 16px;overflow-x:auto;background:transparent}
.md .highlight code{background:none;border:none;padding:0;font-size:13px;line-height:1.55;color:#f8f8f2}
.md pre>code{display:block;white-space:pre}

/* tables — scroll horizontally on small screens */
.md table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;display:block;overflow-x:auto}
.md table thead{background:var(--panel2)}
.md th,.md td{border:1px solid var(--bd);padding:8px 11px;text-align:left;vertical-align:top}
.md th{font-weight:650;white-space:nowrap}
@media (min-width:900px){ .md table{display:table} }

/* task lists */
.md .task-list-item{list-style:none}
.md .task-list-control{margin-right:.5em}
.md input[type=checkbox]{transform:translateY(1px)}

/* pager */
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:18px;border-top:1px solid var(--bd)}
.pgl{flex:1;max-width:48%;padding:12px 14px;border:1px solid var(--bd);border-radius:11px;background:var(--panel);
  color:var(--tx);font-weight:600;font-size:13.5px}
.pgl:hover{border-color:var(--acc);text-decoration:none}
.pgl.next{text-align:right;margin-left:auto}

/* back to top */
.topbtn{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:50%;border:none;
  background:var(--grad);color:#fff;font-size:20px;cursor:pointer;z-index:20;opacity:0;visibility:hidden;
  transition:.2s;box-shadow:0 8px 22px -8px rgba(99,102,241,.8)}
.topbtn.show{opacity:1;visibility:visible}

/* pygments */
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #49483e }
.highlight { background: #272822; color: #F8F8F2 }
.highlight .c { color: #959077 } /* Comment */
.highlight .err { color: #ED007E; background-color: #1E0010 } /* Error */
.highlight .esc { color: #F8F8F2 } /* Escape */
.highlight .g { color: #F8F8F2 } /* Generic */
.highlight .k { color: #66D9EF } /* Keyword */
.highlight .l { color: #AE81FF } /* Literal */
.highlight .n { color: #F8F8F2 } /* Name */
.highlight .o { color: #FF4689 } /* Operator */
.highlight .x { color: #F8F8F2 } /* Other */
.highlight .p { color: #F8F8F2 } /* Punctuation */
.highlight .ch { color: #959077 } /* Comment.Hashbang */
.highlight .cm { color: #959077 } /* Comment.Multiline */
.highlight .cp { color: #959077 } /* Comment.Preproc */
.highlight .cpf { color: #959077 } /* Comment.PreprocFile */
.highlight .c1 { color: #959077 } /* Comment.Single */
.highlight .cs { color: #959077 } /* Comment.Special */
.highlight .gd { color: #FF4689 } /* Generic.Deleted */
.highlight .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */
.highlight .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #F8F8F2 } /* Generic.Error */
.highlight .gh { color: #F8F8F2 } /* Generic.Heading */
.highlight .gi { color: #A6E22E } /* Generic.Inserted */
.highlight .go { color: #66D9EF } /* Generic.Output */
.highlight .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */
.highlight .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #959077 } /* Generic.Subheading */
.highlight .gt { color: #F8F8F2 } /* Generic.Traceback */
.highlight .kc { color: #66D9EF } /* Keyword.Constant */
.highlight .kd { color: #66D9EF } /* Keyword.Declaration */
.highlight .kn { color: #FF4689 } /* Keyword.Namespace */
.highlight .kp { color: #66D9EF } /* Keyword.Pseudo */
.highlight .kr { color: #66D9EF } /* Keyword.Reserved */
.highlight .kt { color: #66D9EF } /* Keyword.Type */
.highlight .ld { color: #E6DB74 } /* Literal.Date */
.highlight .m { color: #AE81FF } /* Literal.Number */
.highlight .s { color: #E6DB74 } /* Literal.String */
.highlight .na { color: #A6E22E } /* Name.Attribute */
.highlight .nb { color: #F8F8F2 } /* Name.Builtin */
.highlight .nc { color: #A6E22E } /* Name.Class */
.highlight .no { color: #66D9EF } /* Name.Constant */
.highlight .nd { color: #A6E22E } /* Name.Decorator */
.highlight .ni { color: #F8F8F2 } /* Name.Entity */
.highlight .ne { color: #A6E22E } /* Name.Exception */
.highlight .nf { color: #A6E22E } /* Name.Function */
.highlight .nl { color: #F8F8F2 } /* Name.Label */
.highlight .nn { color: #F8F8F2 } /* Name.Namespace */
.highlight .nx { color: #A6E22E } /* Name.Other */
.highlight .py { color: #F8F8F2 } /* Name.Property */
.highlight .nt { color: #FF4689 } /* Name.Tag */
.highlight .nv { color: #F8F8F2 } /* Name.Variable */
.highlight .ow { color: #FF4689 } /* Operator.Word */
.highlight .pm { color: #F8F8F2 } /* Punctuation.Marker */
.highlight .w { color: #F8F8F2 } /* Text.Whitespace */
.highlight .mb { color: #AE81FF } /* Literal.Number.Bin */
.highlight .mf { color: #AE81FF } /* Literal.Number.Float */
.highlight .mh { color: #AE81FF } /* Literal.Number.Hex */
.highlight .mi { color: #AE81FF } /* Literal.Number.Integer */
.highlight .mo { color: #AE81FF } /* Literal.Number.Oct */
.highlight .sa { color: #E6DB74 } /* Literal.String.Affix */
.highlight .sb { color: #E6DB74 } /* Literal.String.Backtick */
.highlight .sc { color: #E6DB74 } /* Literal.String.Char */
.highlight .dl { color: #E6DB74 } /* Literal.String.Delimiter */
.highlight .sd { color: #E6DB74 } /* Literal.String.Doc */
.highlight .s2 { color: #E6DB74 } /* Literal.String.Double */
.highlight .se { color: #AE81FF } /* Literal.String.Escape */
.highlight .sh { color: #E6DB74 } /* Literal.String.Heredoc */
.highlight .si { color: #E6DB74 } /* Literal.String.Interpol */
.highlight .sx { color: #E6DB74 } /* Literal.String.Other */
.highlight .sr { color: #E6DB74 } /* Literal.String.Regex */
.highlight .s1 { color: #E6DB74 } /* Literal.String.Single */
.highlight .ss { color: #E6DB74 } /* Literal.String.Symbol */
.highlight .bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #A6E22E } /* Name.Function.Magic */
.highlight .vc { color: #F8F8F2 } /* Name.Variable.Class */
.highlight .vg { color: #F8F8F2 } /* Name.Variable.Global */
.highlight .vi { color: #F8F8F2 } /* Name.Variable.Instance */
.highlight .vm { color: #F8F8F2 } /* Name.Variable.Magic */
.highlight .il { color: #AE81FF } /* Literal.Number.Integer.Long */