:root{--blue:#1f4e79;--blue2:#2e75b6;--bg:#f4f7fb;--card:#fff;--text:#1d2733;--muted:#66727f;--line:#e2e8f0;--ok:#1e9e5a;--ok-bg:#e7f7ee;--bad:#d64545;--bad-bg:#fdecec;--warn:#c98a00;--warn-bg:#fff6dc;--gold:#f4b400;--radius:14px;--shadow:0 2px 10px #14285012}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:17px;line-height:1.5}a{color:var(--blue2);text-decoration:none}a:hover{text-decoration:underline}h1{color:var(--blue);margin:.3em 0;font-size:1.7rem}h2{color:var(--blue2);margin:1.2em 0 .5em;font-size:1.3rem}h3{margin:0 0 .4em;font-size:1.08rem}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.row{flex-wrap:wrap;gap:10px;display:flex}.topbar{background:var(--blue);color:#fff;z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:10px;font-size:1.1rem;display:flex}.brand:hover{text-decoration:none}.logo{color:var(--blue);background:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-size:1.2rem;font-weight:800;display:grid}.topbar nav{align-items:center;gap:6px;display:flex}.topbar nav>a{color:#dbe8f5;border-radius:8px;padding:6px 12px}.topbar nav>a.active,.topbar nav>a:hover{color:#fff;background:#ffffff26;text-decoration:none}.container{max-width:1040px;margin:0 auto;padding:18px 16px 40px}.footer{text-align:center;color:var(--muted);padding:20px;font-size:.8rem}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);color:inherit;margin-bottom:16px;padding:18px;display:block}a.card:hover{border-color:var(--blue2);text-decoration:none;transition:all .15s;transform:translateY(-1px)}.grid{gap:14px;display:grid}.grid.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid.topics{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid.modes{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.grid .card{margin:0}.hero{background:linear-gradient(135deg, var(--blue), var(--blue2));color:#fff;border-radius:var(--radius);margin-bottom:10px;padding:26px}.hero h1{color:#fff}.hero p{opacity:.92;max-width:640px;margin:0}.section-title{margin-top:1em}.grade-card{align-items:center;gap:16px;display:flex}.grade-num{color:#fff;background:var(--blue2);border-radius:16px;flex:none;place-items:center;width:70px;height:70px;font-size:2.4rem;font-weight:800;display:grid}.grade-card>div:last-child{flex:1}.grade-card.soon{opacity:.55}.grade-card.soon .grade-num{background:#9aa8b6}.bar{background:#e6edf5;border-radius:99px;flex:1;height:8px;margin:8px 0 4px;overflow:hidden}.bar>div{background:var(--ok);border-radius:99px;height:100%}.bar>div.mid{background:var(--gold)}.bar>div.low{background:var(--bad)}.crumbs{color:var(--muted);font-size:.9rem}.topic-card{gap:14px;display:flex}.topic-num{width:36px;height:36px;color:var(--blue);background:#e3eefa;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.topic-stat{margin-top:6px;font-size:.9rem}.stars span{color:#d5dbe2;font-size:1.05em}.stars span.on{color:var(--gold)}.big-stars{font-size:2rem}.tabs{border-bottom:2px solid var(--line);gap:6px;margin:14px 0 18px;display:flex}.tabs a{color:var(--muted);border-radius:10px 10px 0 0;padding:10px 16px;font-weight:600}.tabs a.active{background:var(--card);color:var(--blue);border:2px solid var(--line);border-bottom-color:var(--card);margin-bottom:-2px}.tabs a:hover{text-decoration:none}.learn-hint{background:#eef5fd;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:.95rem}.mode-card h3{color:var(--blue)}.mode-count{color:var(--blue2);margin-top:10px;font-weight:600}.mode-quick{border-color:var(--gold);background:#fffaf0}.stats-card{margin-top:18px}.stat-row{flex-wrap:wrap;gap:10px 26px;margin:8px 0 14px;display:flex}.stat-row div{flex-direction:column;display:flex}.stat-row b{color:var(--blue);font-size:1.35rem}.stat-row span{color:var(--muted);font-size:.82rem}.topic-nav{justify-content:space-between;gap:10px;margin-top:28px;font-size:.92rem;display:flex}.table-wrap{margin:10px 0 16px;overflow-x:auto}table.data{border-collapse:collapse;background:#fff;width:100%;font-size:.92rem}table.data th,table.data td{border:1px solid var(--line);text-align:center;padding:6px 10px}table.data th{background:#e8f1fb}table.data.compact td,table.data.compact th{padding:4px 8px}.progress-table td:nth-child(2){text-align:left}.learn .box,.box{border-left:6px solid;border-radius:12px;margin:14px 0;padding:14px 18px}.box h3{margin-bottom:6px}.box ul{margin:0;padding-left:20px}.goals{background:#e8f5e9;border-color:#43a047}.keywords{border-color:var(--blue2);background:#deebf7}.keywords dl{margin:0}.keywords dl div{margin:3px 0}.keywords dt{font-weight:700;display:inline}.keywords dt:after{content:" — ";font-weight:400}.keywords dd{margin:0;display:inline}.tips{border-color:var(--bad);background:#fdecea}.example{border-color:var(--gold);background:#fff8e1}.example .steps{margin:6px 0}.example .answer{margin:6px 0 0}.algorithm ol{padding-left:22px}.algorithm li{margin:4px 0}.btn{border:2px solid var(--line);color:var(--text);cursor:pointer;background:#fff;border-radius:11px;padding:9px 18px;font-family:inherit;font-size:1rem;font-weight:600;display:inline-block}.btn:hover{border-color:var(--blue2);text-decoration:none}.btn.primary{background:var(--blue2);border-color:var(--blue2);color:#fff}.btn.primary:hover{background:var(--blue)}.btn.big{padding:13px 26px;font-size:1.08rem}.btn.small{padding:5px 12px;font-size:.88rem}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.bad{background:var(--bad);border-color:var(--bad);color:#fff}.btn.danger{color:var(--bad);border-color:#f2c2c2}.quiz{max-width:760px;margin:0 auto}.quiz-head{justify-content:space-between;gap:10px;font-size:.92rem;display:flex}.progress{background:#e1e9f2;border-radius:99px;height:10px;margin:10px 0 6px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--blue2), #47a3f3);height:100%;transition:width .3s}.quiz-meta{color:var(--muted);justify-content:space-between;margin-bottom:10px;font-size:.9rem;display:flex}.question{border-width:2px;padding:24px;transition:border-color .2s,background .2s}.question.is-ok{border-color:var(--ok);background:#fbfffc}.question.is-bad{border-color:var(--bad);background:#fffbfb}.q-text{margin-bottom:18px;font-size:1.22rem}.answer-input{width:100%;max-width:420px;color:var(--text);background:#fff;border:2px solid #c9d5e2;border-radius:12px;outline:none;padding:12px 14px;font-family:inherit;font-size:1.3rem}.answer-input.short{width:150px}.answer-input:focus{border-color:var(--blue2);box-shadow:0 0 0 3px #2e75b626}.answer-input.ok{border-color:var(--ok);background:var(--ok-bg)}.answer-input.bad{border-color:var(--bad);background:var(--bad-bg)}.answer-input.warn{border-color:var(--warn);background:var(--warn-bg)}.answer-input:disabled{color:var(--text);opacity:1;-webkit-text-fill-color:var(--text)}.multi{flex-wrap:wrap;align-items:center;gap:12px 22px;display:flex}.part{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.part-label,.part-suffix{color:var(--blue);font-size:1.15rem;font-weight:600}.choices{flex-wrap:wrap;gap:10px;display:flex}.choice{cursor:pointer;min-width:64px;color:var(--text);background:#fff;border:2px solid #c9d5e2;border-radius:12px;padding:12px 18px;font-family:inherit;font-size:1.12rem}.choice:hover:not(:disabled){border-color:var(--blue2)}.choice.sel{border-color:var(--blue2);background:#e5f0fb;font-weight:700}.choice.ok{border-color:var(--ok);background:var(--ok-bg);font-weight:700}.choice.bad{border-color:var(--bad);background:var(--bad-bg)}.keys{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.key{cursor:pointer;background:#f3f7fb;border:1px solid #c9d5e2;border-radius:10px;min-width:46px;height:44px;font-family:inherit;font-size:1.15rem}.key:active{background:#dde8f4}.hint{color:var(--bad);margin-top:12px;font-size:.95rem}.hint.warn{color:#8a5d00;background:var(--warn-bg);border-radius:9px;padding:8px 12px}.feedback{border-radius:11px;margin-top:16px;padding:12px 16px;font-size:1.05rem}.feedback.ok{background:var(--ok-bg);color:#13683b}.feedback.bad{background:var(--bad-bg);color:#9e2626}.feedback .muted{margin-top:4px;font-size:.88rem;display:block}.actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.actions.center{justify-content:center;margin:18px 0}.self .model{background:#eef5fd;border-radius:10px;margin-bottom:12px;padding:12px 16px;font-size:1.1rem}.result-hero{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.ring{--p:0;background:radial-gradient(closest-side, #fff 78%, transparent 79% 100%), conic-gradient(var(--ok) calc(var(--p) * 1%), #e6edf5 0);border-radius:50%;flex:none;place-items:center;width:150px;height:150px;display:grid}.ring span{color:var(--blue);font-size:2.2rem;font-weight:800}.part-row{align-items:center;gap:12px;margin:6px 0;display:flex}.part-row>span:first-child{width:60px}.mistake{border-top:1px solid var(--line);padding:10px 0}.bad-text{color:var(--bad)}.ok-text{color:var(--ok)}.profile{position:relative}.profile-btn{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:9px;padding:7px 12px;font-family:inherit;font-size:.95rem}.profile-pop{width:280px;color:var(--text);z-index:20;position:absolute;top:44px;right:0}.profile-row{border-radius:8px;justify-content:space-between;align-items:center;padding:4px 6px;display:flex}.profile-row.active{background:#eef5fd}.link{cursor:pointer;color:var(--text);background:0 0;border:0;padding:6px 0;font-family:inherit;font-size:1rem}.icon{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:1rem}.profile-edit input{border:1px solid var(--line);border-radius:8px;width:100%;margin:8px 0;padding:8px 10px;font-size:1rem}.emoji-pick{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.emoji-pick button{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;font-size:1.3rem}.emoji-pick button.sel{border-color:var(--blue2)}.signin-teaser{background:#f7fafd}@media (width<=640px){body{font-size:16px}.topbar{padding:8px 12px}.topbar nav>a:first-child{display:none}.question{padding:16px}.q-text{font-size:1.1rem}.ring{width:120px;height:120px}}.name-prompt{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.name-prompt input{border:0;border-radius:10px;min-width:200px;padding:9px 12px;font-size:1rem}.name-prompt .btn{padding:8px 16px}
