:root{--bg: #14161a;--surface: #1c1f26;--surface2: #232733;--line: #2b303c;--dim: #454b5a;--text: #c9cdd6;--bright: #eef1f6;--accent: #f5b942;--wrong: #ff5c5c;--wrong-bg: #3a1f22;--mono: "JetBrains Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;transition:background .18s,color .18s}#root{display:flex;flex-direction:column;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--line)}.logo{font-family:inherit;background:transparent;border:0;cursor:pointer;font-weight:700;letter-spacing:.5px;color:var(--bright);font-size:20px;padding:0}.logo b{color:var(--accent)}.logo:hover b{filter:brightness(1.1)}.hright{display:flex;align-items:center;gap:22px}.navbtn{background:transparent;border:0;color:var(--text);font-family:inherit;font-size:14px;cursor:pointer;padding:6px 10px;border-radius:7px}.navbtn:hover{color:var(--accent)}.navbtn .sw{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}.iconbtn{background:transparent;border:0;color:var(--dim);cursor:pointer;padding:6px;border-radius:7px;display:inline-flex;align-items:center}.iconbtn:hover{color:var(--text)}.iconbtn.on{color:var(--accent)}.sound-wrap{position:relative;display:inline-flex}.sound-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:6px;min-width:160px;z-index:30;box-shadow:0 10px 28px #00000059}.sound-menu-head{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--dim);padding:6px 10px 8px}.sound-list{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.sound-list::-webkit-scrollbar{width:8px}.sound-list::-webkit-scrollbar-track{background:transparent}.sound-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}.sound-list::-webkit-scrollbar-thumb:hover{background:var(--dim)}.sound-item{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--text);font-family:inherit;font-size:14px;padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .12s,color .12s}.sound-item:hover{background:var(--surface2)}.sound-item.on{background:var(--surface2);color:var(--accent);font-weight:600}.sound-vol{display:flex;align-items:center;gap:8px;padding:2px 10px 10px}.sound-vol-label{font-size:12px;color:var(--dim)}.sound-vol-val{font-size:12px;color:var(--text);width:22px;text-align:right;font-variant-numeric:tabular-nums}.sound-vol input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:3px;background:var(--surface2);cursor:pointer;margin:0}.sound-vol input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sound-vol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:var(--accent);border:0;cursor:pointer}.sound-vol input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.sound-vol input[type=range]::-moz-range-track{height:4px;border-radius:3px;background:var(--surface2)}main{flex:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:40px 24px 24px}.wrap{width:min(920px,92vw)}button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.home{width:min(960px,94vw);display:flex;flex-direction:column;align-items:center;gap:28px}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:4px;gap:4px}.seg-btn{background:transparent;border:0;color:var(--dim);font-family:inherit;font-size:14px;padding:8px 22px;border-radius:8px;cursor:pointer;transition:background .14s,color .14s}.seg-btn:hover{color:var(--text)}.seg-btn.on{background:var(--accent);color:var(--bg);font-weight:600}.home-body{display:grid;grid-template-columns:240px 1fr;gap:32px;width:100%;align-items:stretch}.home-body.no-sidebar{grid-template-columns:1fr;max-width:460px}.topic-sidebar{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.lang-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.lang-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--dim)}.lang-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface2);color:var(--bright);border:1px solid var(--line);border-radius:9px;font-family:inherit;font-size:15px;font-weight:600;padding:10px 12px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.lang-select:hover{border-color:var(--dim)}.ts-head{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--dim);padding:4px 4px 8px}.ts-head--divided{border-top:1px solid var(--line);padding-top:12px}.topic-scroll{overflow-y:auto;max-height:46vh;scrollbar-width:thin;margin:0 -4px;padding:0 4px}.topic-scroll::-webkit-scrollbar{width:6px}.topic-scroll::-webkit-scrollbar-thumb{background:var(--surface2);border-radius:3px}.topic-item{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--text);font-family:inherit;font-size:14px;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background .12s,color .12s}.topic-item:hover{background:var(--surface2)}.topic-item.on{background:var(--surface2);color:var(--accent);font-weight:600}.topic-group+.topic-group{margin-top:6px}.topic-cat{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--dim);padding:10px 12px 4px;font-weight:600}.home-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:26px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:44px 32px}.panel-topic{font-size:26px;letter-spacing:.3px}.panel-topic .pt-lang{color:var(--accent);font-weight:700}.panel-topic .pt-sep{color:var(--dim);margin:0 10px}.panel-topic .pt-chapter{color:var(--bright);font-weight:600}.options{display:flex;flex-direction:column;gap:14px}.opt{display:flex;align-items:center;gap:14px}.opt-label{width:56px;text-align:right;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--dim)}.pills{display:inline-flex;background:var(--surface2);border-radius:9px;padding:3px;gap:3px}.pill{background:transparent;border:0;color:var(--dim);font-family:inherit;font-size:13px;padding:7px 14px;border-radius:7px;cursor:pointer;transition:background .12s,color .12s}.pill:hover{color:var(--text)}.pill.on{background:var(--bg);color:var(--accent);font-weight:600}.startbtn{background:var(--accent);color:var(--bg);font-weight:700;font-family:inherit;font-size:16px;letter-spacing:.3px;padding:15px 52px;border:0;border-radius:11px;cursor:pointer;transition:filter .12s,transform .06s}.startbtn:hover{filter:brightness(1.06)}.startbtn:active{transform:scale(.98)}.besthint{color:var(--dim);font-size:13px;font-variant-numeric:tabular-nums}.stats{display:flex;gap:34px;align-items:baseline;color:var(--dim);margin-bottom:20px;min-height:52px;opacity:.55;transition:opacity .2s}.stats.live{opacity:1}.stat .n{color:var(--accent);font-size:34px;font-weight:600;line-height:1}.stat .l{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--dim);margin-top:4px}.stat.small .n{color:var(--text);font-size:22px}.test-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.backbtn,.restartbtn{background:var(--surface);border:1px solid var(--line);color:var(--text);font-family:inherit;font-size:13px;padding:8px 16px;border-radius:9px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.backbtn:hover,.restartbtn:hover{color:var(--accent);border-color:var(--dim)}.backbtn span{margin-right:4px}.surface{outline:0}.display{position:relative;white-space:pre-wrap;word-break:break-word;font-size:26px;line-height:1.9;color:var(--dim);cursor:text;letter-spacing:.3px;height:min(62vh,calc(100vh - 330px));overflow:hidden}.display-scroll{transition:transform .15s ease-out;will-change:transform;padding-left:var(--paper-pad, 0px);padding-bottom:70vh;background-origin:border-box;background-image:linear-gradient(to right,transparent var(--paper-margin-x, 0px),var(--paper-margin, transparent) var(--paper-margin-x, 0px),var(--paper-margin, transparent) calc(var(--paper-margin-x, 0px) + 1.5px),transparent calc(var(--paper-margin-x, 0px) + 1.5px)),radial-gradient(var(--paper-dot, transparent) 1.4px,transparent 1.5px),repeating-linear-gradient(to right,transparent 0,transparent calc(1.9em - 1px),var(--paper-grid, transparent) calc(1.9em - 1px),var(--paper-grid, transparent) 1.9em),repeating-linear-gradient(to bottom,transparent 0,transparent calc(1.9em - 1px),var(--paper-line, transparent) calc(1.9em - 1px),var(--paper-line, transparent) 1.9em);background-repeat:no-repeat,repeat,repeat,repeat;background-size:auto,1.9em 1.9em,auto,auto}.display span.correct{color:var(--bright)}.display span.wrong{color:var(--wrong);background:var(--wrong-bg);border-radius:2px}.display span.cur{position:relative}.display span.cur:before{content:"";position:absolute;left:-1px;top:.12em;bottom:.05em;width:2px;background:var(--accent);border-radius:1px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.hint{margin-top:22px;color:var(--dim);font-size:13px;text-align:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#08090cd1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:34px 40px;width:min(560px,94vw)}.card h2{margin:0 0 4px;color:var(--bright);font-size:16px;font-weight:600}.card .sub{color:var(--dim);font-size:13px;margin-bottom:26px}.big{display:flex;gap:44px;margin-bottom:26px}.big .stat .n{font-size:52px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 44px;margin-bottom:22px}.row{display:flex;justify-content:space-between;font-size:14px;border-bottom:1px dotted var(--line);padding-bottom:8px}.row span:first-child{color:var(--dim)}.mlabel{color:var(--dim);font-size:12px;margin-bottom:8px}.missed{display:flex;gap:8px;flex-wrap:wrap}.missed .k{background:var(--surface2);border-radius:5px;padding:4px 9px;font-size:13px;color:var(--wrong)}.missed .k b{color:var(--dim);font-weight:400;margin-left:5px}.missed .clean{color:var(--dim);font-size:13px}.actions{display:flex;gap:12px;margin-top:26px}.actions button{flex:1;font-family:inherit;font-size:14px;padding:11px;border-radius:9px;cursor:pointer;border:0;transition:.12s}.btn-primary{background:var(--accent);color:#1a1400;font-weight:600}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:var(--surface2);color:var(--text)}.btn-ghost:hover{color:var(--bright)}.theme-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--bg);color:var(--text);display:flex;flex-direction:column;padding:26px 40px 40px;overflow-y:auto}.theme-screen-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;position:sticky;top:-26px;background:var(--bg);padding-top:26px;margin-top:-26px;z-index:1}.theme-screen-head h2{margin:0;color:var(--bright);font-size:22px;letter-spacing:.5px}.closebtn{background:var(--surface2);border:0;color:var(--text);font-family:inherit;font-size:14px;padding:9px 18px;border-radius:9px;cursor:pointer}.closebtn:hover{color:var(--bright)}.paper-row{display:flex;align-items:center;gap:14px;margin-bottom:22px}.paper-row-label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--dim)}.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;align-content:start}.tcard{text-align:left;background:var(--surface2);border:2px solid transparent;border-radius:11px;padding:0;cursor:pointer;overflow:hidden;font-family:inherit;transition:transform .1s}.tcard:hover{transform:translateY(-2px)}.tcard.on{border-color:var(--accent)}.tprev{height:56px;display:flex;align-items:center;gap:8px;padding:0 14px}.tprev .aa{font-weight:700;font-size:16px;margin-right:auto}.tprev i{width:16px;height:16px;border-radius:50%;display:inline-block}.tname{padding:9px 14px;font-size:13px;color:var(--text)}
