/* Preboard Question Practice - Devil Mode only */
body.pq-open{overflow:hidden}
.pq-root{position:fixed;inset:0;z-index:2000;overflow-y:auto;background:var(--bg,#07030a);color:var(--ink,#ffd9d9);font-family:Manrope,system-ui,sans-serif;-webkit-overflow-scrolling:touch}
.pq-root[hidden]{display:none}
.pq-wrap{max-width:1100px;margin:0 auto;padding:14px 14px 80px}
.pq-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:sticky;top:0;background:var(--bg,#07030a);padding:8px 0;z-index:3}
.pq-top h2{flex:1;margin:0;font-family:Cinzel,serif;font-size:clamp(1rem,3.6vw,1.5rem);letter-spacing:.04em;color:var(--accent-2,#ff5566)}
body .pq-root .pq-btn{font:inherit;font-weight:700;border:1px solid var(--line,rgba(255,26,46,.3));background:var(--card,#150710);color:var(--ink,#ffd9d9);padding:.65rem 1rem;border-radius:10px;cursor:pointer;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
body .pq-root .pq-btn:hover{border-color:var(--accent,#ff1a2e)}
body .pq-root .pq-btn:disabled{opacity:.4;cursor:not-allowed}
body .pq-root .pq-btn.primary{background:linear-gradient(135deg,#c1121f,#ff1a2e);border-color:transparent;color:#fff}
body .pq-root .pq-btn.danger{background:#5a0a12;border-color:#ff1a2e}
body .pq-root .pq-btn.ghost{background:transparent}
body .pq-root .pq-btn.yt{background:#1a1a1a;border-color:#ff0033;margin-top:.6rem}
.pq-row{display:flex;gap:8px;flex-wrap:wrap;margin:.6rem 0;align-items:center}
.pq-card,.pq-note-card,.pq-hero,.pq-qcard{background:var(--card,#150710);border:1px solid var(--line,rgba(255,26,46,.22));border-radius:14px;padding:14px;margin:12px 0}
.pq-note-card{font-size:.9rem;border-style:dashed}
.pq-hero{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:700px){.pq-hero{grid-template-columns:1fr 1fr}}
.pq-level{font-weight:800;color:var(--accent-2,#ff5566)}
.pq-xp{font-size:2.2rem;font-weight:800}
.pq-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pq-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:.5rem 0}
.pq-stat{background:rgba(255,255,255,.04);border-radius:10px;padding:8px}
.pq-stat b{display:block;font-size:1.1rem}
.pq-stat span{font-size:.72rem;opacity:.8}
.pq-bar{height:10px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin:.4rem 0}
.pq-bar i{display:block;height:100%;background:linear-gradient(90deg,#ff1a2e,#ff7a45);transition:width .4s}
.pq-bar.gold i{background:linear-gradient(90deg,#d4a017,#ffd36e)}
.pq-subjects{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px}
.pq-subj{background:var(--card,#150710);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px}
.pq-subj.empty{opacity:.75;border-style:dashed}
.pq-subj.partial{border-color:#d4a017}
.pq-subj.complete{border-color:#2ecc71}
.pq-subj h3{margin:0}
.pq-tag{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-2,#ff5566)}
.pq-missing{opacity:.85}
.pq-paper{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.pq-paper span{flex:1 1 200px}
.pq-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.pq-filters label,.pq-card label{display:flex;flex-direction:column;font-size:.75rem;gap:3px}
.pq-root select,.pq-root input:not([type=checkbox]),.pq-root textarea{font:inherit;background:#0d0510;color:inherit;border:1px solid var(--line);border-radius:8px;padding:.55rem;min-height:42px;max-width:100%}
.pq-ws{width:100%;min-height:90px;box-sizing:border-box}
.pq-session-head{display:flex;gap:10px;align-items:center;position:sticky;top:0;background:var(--bg,#07030a);padding:8px 0;z-index:3}
.pq-timer{font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums;flex:1}
.pq-xpb{font-weight:800;color:#ffd36e}
.pq-crumb{font-size:.82rem;opacity:.85}
.pq-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.pq-meta span{font-size:.7rem;border:1px solid var(--line);border-radius:99px;padding:2px 8px}
.pq-qtext{white-space:pre-wrap;line-height:1.55;font-size:1.02rem;margin:.4rem 0 .8rem}
.pq-fig{max-width:100%;border-radius:8px}
body .pq-root .pq-opts{display:grid;gap:8px}
body .pq-root .pq-opt{text-align:left;font:inherit;padding:.8rem;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:inherit;cursor:pointer;min-height:48px}
body .pq-root .pq-opt.sel{border-color:#ffd36e}
body .pq-root .pq-opt.right{background:rgba(46,204,113,.18);border-color:#2ecc71}
body .pq-root .pq-opt.wrong{background:rgba(255,26,46,.2);border-color:#ff1a2e}
.pq-fb{margin-top:12px;padding:12px;border-radius:10px;border-left:5px solid #888;background:rgba(255,255,255,.04)}
.pq-fb.good{border-color:#2ecc71}.pq-fb.badf{border-color:#ff1a2e}
.pq-sol{white-space:pre-wrap;line-height:1.5}
.pq-pal{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
body .pq-root .pq-pb{width:40px;height:40px;border-radius:8px;border:1px solid var(--line);background:transparent;color:inherit;font:inherit;cursor:pointer}
body .pq-root .pq-pb.ans{background:rgba(255,211,110,.25)}.pq-pb.ok{background:rgba(46,204,113,.3)}.pq-pb.bad{background:rgba(255,26,46,.3)}.pq-pb.mk{outline:2px dashed #ffd36e}.pq-pb.cur{border-color:#fff}
.pq-week{display:flex;gap:6px;align-items:flex-end;height:60px;margin-top:8px}
.pq-week div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;font-size:.65rem}
.pq-week i{display:block;width:100%;background:#ff1a2e;border-radius:4px 4px 0 0;min-height:2px}
.pq-note,.pq-sub{opacity:.8}
.pq-err{color:#ff8a8a}
.pq-dlg{background:var(--card,#150710);color:var(--ink);border:1px solid var(--accent);border-radius:14px;max-width:420px;width:90vw}
.pq-dlg::backdrop{background:rgba(0,0,0,.7)}
#pq-menu-link{font-weight:800}
@media(prefers-reduced-motion:reduce){.pq-bar i{transition:none}}

body .pq-root button{box-shadow:none}
body .pq-root .pq-btn:hover:not(:disabled),body .pq-root .pq-opt:hover:not(:disabled){transform:none;border-color:var(--accent,#ff1a2e)}
body .pq-root .pq-btn.primary{background:linear-gradient(135deg,#c1121f,#ff1a2e)}

body .pq-root .pq-sumr{display:flex;gap:6px;flex-wrap:wrap;margin:.5rem 0}
body .pq-root .pq-chip{font-size:.75rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line)}
body .pq-root .pq-chip.ans{border-color:#4ade80}body .pq-root .pq-chip.mk{border-color:#ffd36e}body .pq-root .pq-chip.sk{border-color:#fb7185}
body .pq-root .pq-pb.cur{border-color:#fff;background:rgba(255,255,255,.18);font-weight:700}
body .pq-root .pq-pb.sk{border-color:#fb7185;box-shadow:inset 0 0 0 1px #fb7185}

/* Quizzy: isolated navy / teal study space. Library theme stays unchanged. */
body .pq-root,body .pq-dlg{--bg:#101827;--card:#0a1222;--ink:#e5edf7;--ink-soft:#9baec4;--line:#28364b;--accent:#28c9b5;--accent-2:#49dbca;color-scheme:dark;color:var(--ink);font-family:Manrope,system-ui,sans-serif;font-size:15px;line-height:1.65;text-shadow:none}
body .pq-root{background:#101827;scrollbar-color:#344760 #101827}
body .pq-root *,body .pq-dlg *{box-sizing:border-box}
body .pq-root h1,body .pq-root h2,body .pq-root h3,body .pq-root h4,body .pq-dlg h3{font-family:Manrope,system-ui,sans-serif;letter-spacing:0;text-shadow:none;color:#edf4ff;font-weight:750;line-height:1.4}
body.devil .pq-root h2::after,body.devil .pq-dlg h3::after{display:none}
body .pq-root .pq-wrap{max-width:1180px;padding:24px 28px 72px}
body .pq-root .pq-top{background:#101827;padding:12px 0 18px;gap:16px;border-bottom:1px solid #263449;margin-bottom:24px}
body .pq-root .pq-top h2{font-size:22px;letter-spacing:-.025em}
body .pq-root .pq-card,body .pq-root .pq-note-card,body .pq-root .pq-hero,body .pq-root .pq-qcard,body .pq-root .pq-subj{background:#0a1222;border:1px solid #263449;border-radius:14px;padding:24px;box-shadow:none}
body .pq-root .pq-note-card{background:#142233;color:#a8bbd2;font-size:13px;border-style:solid}
body .pq-root .pq-level,body .pq-root .pq-tag{color:#49dbca}
body .pq-root .pq-xp{font-size:38px;letter-spacing:-.04em}
body .pq-root .pq-stat{background:#131e30;padding:13px;border:1px solid #202d42}
body .pq-root .pq-stat span{color:#a8bbd2;opacity:1;font-size:12px}
body .pq-root .pq-bar{height:5px;background:#202e44}
body .pq-root .pq-bar i,body .pq-root .pq-bar.gold i{background:#22c6b2}
body .pq-root .pq-subjects{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
body .pq-root .pq-subj.complete{border-color:#267568}
body .pq-root .pq-subj.partial{border-color:#75805a}
body .pq-root .pq-subj.empty{opacity:.68;border-style:solid}
body .pq-root .pq-btn,body .pq-dlg .pq-btn{font:inherit;font-size:13px;font-weight:700;line-height:1.4;border:1px solid #34465e;background:#162237;color:#dce8f7;padding:11px 17px;border-radius:8px;min-height:44px;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
body .pq-root .pq-btn:hover:not(:disabled),body .pq-dlg .pq-btn:hover{border-color:#28c9b5;background:#1b3041;transform:none;box-shadow:none}
body .pq-root .pq-btn.primary{background:#20c7b1;border-color:#20c7b1;color:#042620}
body .pq-root .pq-btn.danger,body .pq-dlg .pq-btn.danger{background:#213046;color:#dce8f7;border-color:#5c708a}
body .pq-root .pq-btn.ghost{background:transparent;color:#b6c6da}
body .pq-root .pq-btn.yt{background:#172338;border-color:#456180}
body .pq-root select,body .pq-root input:not([type=checkbox]),body .pq-root textarea{background:#111d30;border-color:#34465e;color:#e5edf7;border-radius:8px}
body .pq-root .pq-week i{background:#28c9b5}
body .pq-root .pq-meta span{font-size:11px;color:#9fb3cd;background:#121e31;border-color:#26364d;border-radius:5px;padding:3px 8px}
body .pq-root .pq-qtext{font-size:16px;line-height:1.85;margin:16px 0 24px;color:#e9f0fb}
body .pq-root .pq-opts{gap:11px}
body .pq-root .pq-opt{display:flex;gap:12px;align-items:baseline;text-align:left;font:inherit;font-size:14px;line-height:1.65;padding:14px 16px;border:1px solid #34435a;background:#111b2d;color:#cfdbed;border-radius:9px;min-height:54px;box-shadow:none;opacity:1}
body .pq-root .pq-opt b{flex-shrink:0;color:#9fb2cd}
body .pq-root .pq-opt.sel{border-color:#25cbb6;background:#12312f}
body .pq-root .pq-opt.right{background:#0e302d;border-color:#21bfa7;color:#a6f1df}
body .pq-root .pq-opt.wrong{background:#33202d;border-color:#a2647f;color:#f4c5d6}
body .pq-root .pq-opt:disabled{opacity:1;cursor:default}
body .pq-root .pq-fb{background:#111e30;border:1px solid #2c3e55;border-radius:9px;padding:18px;margin-top:18px}
body .pq-root .pq-fb.good{background:#0f2929;border-color:#26796d}
body .pq-root .pq-fb.good>b{color:#48ddc1}
body .pq-root .pq-fb.badf{border-color:#875a75}
body .pq-root .pq-sol{font-size:14px;line-height:1.85;color:#c8d7e9}
body .pq-root .pq-note,body .pq-root .pq-sub{color:#9fb1c9;opacity:1}
body .pq-root .pq-err{color:#efb8c4}
body .pq-root .pq-session-head{background:#0a1222;border:1px solid #263449;border-radius:12px;padding:16px 20px;gap:18px;margin-bottom:18px}
body .pq-root .pq-exam-brand{font-size:21px;font-weight:800;color:#edf4ff;letter-spacing:-.04em;margin-right:auto}
body .pq-root .pq-exam-brand small{display:block;font-size:10px;color:#8197b4;letter-spacing:.06em;font-weight:600}
body .pq-root .pq-timer{font-size:20px;font-weight:700;flex:initial;color:#45d9c4;font-variant-numeric:tabular-nums}
body .pq-root .pq-xpb{color:#9bb0ca;font-size:12px;white-space:nowrap}
body .pq-root .pq-crumb{color:#a6b6ce;font-size:12px;opacity:1;margin:12px 0}
body .pq-root .pq-sumr{gap:8px;margin:15px 0}
body .pq-root .pq-chip{border-radius:5px;padding:5px 9px;font-size:11px;color:#9fb3cd;border-color:#2d3e56;background:#121e30}
body .pq-root .pq-chip.ans{border-color:#287d71;color:#5ed8bf}
body .pq-root .pq-chip.mk{border-color:#8f784a;color:#dfbe79}
body .pq-root .pq-chip.sk{border-color:#825b75;color:#d9a6c3}
body .pq-root .pq-question-panel{background:#0a1222;border:1px solid #263449;border-radius:12px;padding:20px;margin-top:16px}
body .pq-root .pq-question-panel h3{font-size:15px;margin:0}
body .pq-root .pq-question-panel small{font-size:11px;color:#8197b4}
body .pq-root .pq-pal{gap:8px;margin-top:16px}
body .pq-root .pq-pb{width:40px;height:40px;border-radius:50%;background:#142036;color:#a7bbd4;border:1px solid #30415b;font:inherit;font-size:12px;box-shadow:none;min-height:40px;padding:0}
body .pq-root .pq-pb.ok,body .pq-root .pq-pb.ans{background:#0d302d;color:#5de4c8;border-color:#2f9c87}
body .pq-root .pq-pb.bad{background:#312133;color:#edb9d5;border-color:#9d6788}
body .pq-root .pq-pb.cur{background:#dbe8f9;color:#0b172b;border-color:#dbe8f9;font-weight:800}
body .pq-root .pq-pb.mk{outline:1px dashed #b9a16a;outline-offset:2px}
body .pq-root .pq-pb.sk{border-color:#8c6685;box-shadow:none}
body .pq-root .pq-navigation{justify-content:space-between;margin:18px 0}
body .pq-root .pq-navigation .pq-btn:last-child{border-color:#24bda9;color:#43d7c2}
body .pq-dlg{background:#111d30;border:1px solid #36536b;border-radius:14px;padding:24px;max-width:460px;width:90vw}
body .pq-dlg::backdrop{background:#030a15bb;backdrop-filter:blur(4px)}
@media(min-width:960px){body .pq-root .pq-exam{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:24px;align-items:start}body .pq-root .pq-exam>.pq-session-head,body .pq-root .pq-exam>.pq-crumb,body .pq-root .pq-exam>.pq-bar{grid-column:1/-1}body .pq-root .pq-exam>.pq-qcard{grid-column:2;grid-row:4 / span 2;margin-top:12px}body .pq-root .pq-exam>.pq-question-panel{grid-column:1;grid-row:4}body .pq-root .pq-exam>.pq-sumr{grid-column:1;grid-row:5;margin-top:0}body .pq-root .pq-exam>.pq-navigation{grid-column:2}}
@media(max-width:600px){body .pq-root{font-size:14px}body .pq-root .pq-wrap{padding:12px 16px 56px}body .pq-root .pq-top{gap:10px;padding:10px 0 14px;margin-bottom:16px}body .pq-root .pq-top h2{font-size:18px;line-height:1.5}body .pq-root .pq-top .pq-btn{padding:9px 12px;font-size:12px}body .pq-root .pq-card,body .pq-root .pq-note-card,body .pq-root .pq-hero,body .pq-root .pq-qcard,body .pq-root .pq-subj{padding:18px;border-radius:12px}body .pq-root .pq-session-head{padding:12px;gap:10px;flex-wrap:wrap;top:0}body .pq-root .pq-exam-brand{font-size:18px}body .pq-root .pq-timer{font-size:18px}body .pq-root .pq-xpb{font-size:11px}body .pq-root .pq-session-head .pq-btn{font-size:11px;padding:9px 11px;min-height:38px}body .pq-root .pq-qtext{font-size:15px;line-height:1.8}body .pq-root .pq-opt{padding:12px;font-size:13px}body .pq-root .pq-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}body .pq-root .pq-question-panel{padding:16px}body .pq-root .pq-filters{grid-template-columns:repeat(2,minmax(0,1fr))}body .pq-root .pq-subjects{grid-template-columns:1fr}}
body .pq-root .pq-opts + .pq-btn{margin-top:14px}

/* CS code: preserve indentation, wrap long connection/SQL lines within the mobile card. */
body .pq-root .pq-cs-sol{overflow-wrap:anywhere;word-break:normal;max-width:100%;min-width:0}

/* Numbered logical lines distinguish original newlines from mobile display wraps. */
body .pq-root .pq-cs-wrap-note{font:12px/1.6 system-ui,sans-serif;color:#9fb8ce;margin:0 0 12px}
body .pq-root .pq-cs-lines{background:#091321;border:1px solid #30465e;border-radius:8px;padding:12px 7px;max-width:100%;min-width:0}
body .pq-root .pq-cs-line{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:8px;font:12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}
body .pq-root .pq-cs-ln{color:#658299;text-align:right;user-select:none;white-space:nowrap}
body .pq-root .pq-cs-code{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;color:#d1e2ed;min-width:0}
.pq-zoom{position:fixed;inset:0;z-index:2100;display:flex;flex-direction:column;background:#07030a;color:var(--ink,#ffd9d9)}
.pq-zoom-bar{display:flex;gap:.6rem;align-items:center;padding:.6rem .8rem;border-bottom:1px solid var(--line,rgba(255,26,46,.3));flex:0 0 auto;flex-wrap:wrap}
.pq-zoom-hint{font-size:.8rem;opacity:.7}
.pq-zoom-scroll{flex:1 1 auto;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;padding:.6rem}
.pq-zoom-img{display:block;background:#fff;border-radius:6px;max-width:none}
.pq-zoom-img.fit{width:100%;height:auto}
.pq-zoom-img.full{width:max(100%,1100px);height:auto}
