:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1c232d;--border:#2a313c;--text:#e6edf3;--muted:#8b97a7;--accent:#6ea8fe;--accent-2:#b692ff;--green:#3fb950;--red:#f85149;--radius:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}.app{flex-direction:column;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:linear-gradient(#171d27,#12161d);justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.brand{align-items:center;gap:14px;display:flex}.logo{filter:drop-shadow(0 0 8px #b692ff80);font-size:30px}.brand h1{letter-spacing:.3px;margin:0;font-size:19px}.subtitle{color:var(--muted);margin:0;font-size:12px}.stats{gap:26px;display:flex}.stat{flex-direction:column;align-items:center;display:flex}.stat strong{color:var(--accent);font-size:20px}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.banner{cursor:pointer;padding:10px 22px;font-size:14px}.banner.error{color:#ffb4ae;background:#f8514926;border-bottom:1px solid #f851494d}.layout{flex:1;grid-template-columns:320px 1fr;min-height:0;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;min-height:0;display:flex}.searchrow{gap:8px;padding:14px;display:flex}.search{flex:1}.filterrow{align-items:center;gap:8px;padding:0 14px 8px;display:flex}.catselect{flex:1;min-width:0}.clearcat{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:8px;flex:none;width:34px;height:34px;font-size:13px}.clearcat:hover{border-color:var(--accent);color:var(--text)}.listcount{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid var(--border);margin-bottom:4px;padding:0 16px 10px;font-size:11px;overflow:hidden}.termlist{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}.termlist li{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.termlist li:hover{background:var(--panel-2)}.termlist li.active{box-shadow:inset 2px 0 0 var(--accent);background:#6ea8fe24}.tname{font-weight:500}.tcat{color:var(--muted);white-space:nowrap;font-size:11px}.content{min-height:0;padding:28px 34px;overflow-y:auto}.welcome{text-align:center;max-width:480px;color:var(--muted);margin:8vh auto 0}.welcome h2{color:var(--text)}.welcome button{margin-top:14px}.detailhead{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.detailhead h2{margin:8px 0 6px;font-size:26px}.badge{color:var(--accent-2);background:#b692ff2e;border-radius:999px;padding:3px 10px;font-size:12px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{color:var(--muted);font-size:12px}.actions{gap:8px;display:flex}.block{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:18px 20px}.block h3{text-transform:uppercase;letter-spacing:.8px;margin:0 0 10px;font-size:13px}.block.simple{border-left:3px solid var(--green)}.block.simple h3{color:var(--green)}.block.simple p{margin:0;font-size:16px;line-height:1.6}.block.deep{border-left:3px solid var(--accent-2)}.block.deep h3{color:var(--accent-2)}.markdown{line-height:1.7}.markdown h2{margin:18px 0 8px;font-size:18px}.markdown h3{text-transform:none;letter-spacing:0;color:var(--text);margin:14px 0 6px;font-size:15px}.markdown p{margin:8px 0}.markdown ul,.markdown ol{padding-left:22px}.markdown li{margin:4px 0}.markdown blockquote{border-left:3px solid var(--accent);color:var(--muted);background:var(--panel-2);border-radius:6px;margin:10px 0;padding:4px 14px}.markdown code{background:var(--panel-2);border-radius:5px;padding:2px 6px;font-size:13px}.markdown pre{border:1px solid var(--border);background:#0b0f14;border-radius:8px;padding:14px;overflow-x:auto}.markdown pre code{background:0 0;padding:0}.markdown table{border-collapse:collapse}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px}.rellist{margin:0 0 12px;padding:0;list-style:none}.rellist li{align-items:center;gap:10px;padding:6px 0;display:flex}.reltype{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;min-width:90px;font-size:11px}.addrel{flex-wrap:wrap;gap:8px;display:flex}.editor{max-width:820px}.editor h2{margin-top:0}.editor label{color:var(--muted);margin-bottom:16px;font-size:13px;display:block}.editor .row2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.editor input,.editor textarea,.search,select{background:var(--panel-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;margin-top:6px;padding:9px 11px;font-family:inherit;font-size:14px}.search{margin-top:0}select{width:auto;margin-top:0}.editor textarea{resize:vertical;line-height:1.5}.editor textarea.mono{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:13px}.hint{color:var(--muted);text-transform:none;font-weight:400}.editactions{gap:10px;margin-top:6px;display:flex}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #6ea8fe26}.btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:13px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#07101f;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.danger:hover{border-color:var(--red);color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:12px}.x:hover{color:var(--red)}.muted{color:var(--muted)}.topnav{gap:6px;margin-left:20px;display:flex}.topnav button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}.topnav button:hover{color:var(--text)}.topnav button.on{color:var(--text);border-color:var(--accent);background:#6ea8fe24}.books{flex:1;padding:26px 30px;overflow-y:auto}.bookshead h2{margin:0 0 4px}.bookshead p{color:var(--muted);margin:0 0 22px;font-size:14px}.bookgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.bookcard{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:16px;padding:16px;transition:border-color .15s;display:flex}.bookcard:not(.soon):hover{border-color:var(--accent)}.bookcard.soon{opacity:.6}.bookcover{border:1px solid var(--border);background:linear-gradient(160deg,#2a2140,#1c2740);border-radius:6px;flex:none;justify-content:center;align-items:center;width:64px;height:88px;font-size:30px;display:flex;box-shadow:inset -3px 0 6px #00000059}.bookinfo{flex-direction:column;min-width:0;display:flex}.bookinfo h3{margin:2px 0 6px;font-size:15px}.bookmeta{color:var(--muted);margin:0 0 auto;font-size:12px}.bookactions{gap:8px;margin-top:12px;display:flex}.badge.soon{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;align-self:flex-start;margin-top:12px;padding:4px 10px;font-size:11px}.pdfviewer{flex-direction:column;flex:1;min-height:0;display:flex}.pdfbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:14px;padding:10px 18px;display:flex}.pdfbar strong{flex:1;font-size:14px}.pdfframe{background:#333;border:0;flex:1;width:100%}*{scrollbar-width:thin;scrollbar-color:#3a4452 transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#3a4452 padding-box content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#4d596a padding-box content-box}::-webkit-scrollbar-corner{background:0 0}.game{flex:1;padding:26px 30px;overflow-y:auto}.gamehead h2{margin:0 0 4px}.gamehead p{color:var(--muted);max-width:640px;margin:0 0 22px;font-size:14px}.catgrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.catcard{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:4px;padding:16px 18px;transition:border-color .15s,transform .1s;display:flex}.catcard:hover{border-color:var(--accent);transform:translateY(-2px)}.catcard.all{background:linear-gradient(160deg,#23233a,#1a2440)}.catname{color:var(--text);font-size:15px;font-weight:600}.catcount{color:var(--muted);font-size:12px}.quizbar{align-items:center;gap:14px;margin-bottom:20px;display:flex}.quizbar .progress{text-align:center;color:var(--muted);flex:1;font-size:13px}.scorepill{border:1px solid var(--accent);color:var(--text);background:#6ea8fe24;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}.quizcard{max-width:680px;margin:0 auto}.quizlabel{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px;font-size:13px}.quizdef{background:var(--panel);border-left:3px solid var(--accent-2);border-radius:8px;margin:0 0 22px;padding:18px 20px;font-size:16px;line-height:1.55}.options{gap:10px;display:grid}.option{text-align:left;background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;padding:13px 16px;font-size:15px;transition:border-color .12s,background .12s}.option:hover:not(:disabled){border-color:var(--accent)}.option:disabled{cursor:default}.option.correct{border-color:var(--green);background:#3fb95026}.option.wrong{border-color:var(--red);background:#f8514926}.option.dim{opacity:.5}.feedback{justify-content:space-between;align-items:center;gap:14px;margin-top:20px;display:flex}.feedback .ok{color:var(--green);font-weight:600}.feedback .no{color:#ffb4ae}.result{text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:460px;margin:40px auto 0;padding:32px}.bigscore{color:var(--accent);margin:8px 0;font-size:52px;font-weight:700}.resultmsg{margin:0 0 24px;font-size:16px}.resultactions{justify-content:center;gap:10px;display:flex}.quizdef.term{text-align:center;border-left:0;border-top:3px solid var(--accent-2);font-size:22px;font-weight:600}
