
:root{--bg:#08111d;--panel:#0f1d2e;--panel2:#13263b;--text:#f5f7fb;--muted:#9fb0c6;--line:#223750;--accent:#65a7ff;--ok:#5fd39b;--warn:#ffc970;--bad:#ff7f88;--shadow:0 18px 45px rgba(0,0,0,.28);color-scheme:dark}
:root.light{--bg:#eef3f8;--panel:#fff;--panel2:#f7f9fc;--text:#102033;--muted:#61738a;--line:#d9e2ec;--accent:#2368c4;--ok:#178b5b;--warn:#a46900;--bad:#bb313a;--shadow:0 16px 40px rgba(23,46,73,.12);color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}.app-shell{max-width:900px;margin:auto;min-height:100vh;padding-bottom:86px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}button,input,select{font:inherit}.brand{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--text);cursor:pointer}.brand-mark{display:block;width:36px;height:36px;border-radius:11px;object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.16)}.brand span:last-child{display:flex;gap:5px;align-items:baseline}.brand small{color:var(--muted)}.icon-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;cursor:pointer}main{padding:20px 18px 36px}.hero{padding:24px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:24px;box-shadow:var(--shadow)}.hero h1{margin:0 0 8px;font-size:clamp(26px,5vw,42px)}.hero p{margin:0;color:var(--muted);line-height:1.6}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.stat,.card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:16px}.stat b{font-size:28px;display:block}.stat span{color:var(--muted);font-size:13px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:24px 2px 12px}.section-title h2{margin:0}.section-title small{color:var(--muted)}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:13px 15px;border-radius:14px;cursor:pointer;text-align:center}.btn.primary{background:var(--accent);border-color:var(--accent);color:white;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.field{width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:14px;outline:none}.toolbar{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:14px}.question-card{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:18px;margin-bottom:14px}.qmeta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);color:var(--muted)}.badge.override{color:white;background:#7a49d1;border-color:#7a49d1}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.qtext{font-size:18px;line-height:1.55;margin:0 0 14px}.options{display:grid;gap:9px}.option{width:100%;text-align:left;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel2);color:var(--text);cursor:pointer;line-height:1.45}.option.correct{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}.option.wrong{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.answer-box{margin-top:14px;padding:14px;border-left:3px solid var(--accent);background:var(--panel2);border-radius:10px;line-height:1.55}.answer-box p{margin:6px 0}.muted{color:var(--muted)}.pager{display:flex;gap:10px;justify-content:space-between;margin-top:14px}.test-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.progressbar{height:8px;background:var(--panel2);border-radius:999px;overflow:hidden}.progressbar span{display:block;height:100%;background:var(--accent)}.result{font-size:40px;font-weight:900}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(900px,100%);z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:8px 10px max(8px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.nav-item{border:0;background:none;color:var(--muted);padding:7px 4px;display:grid;gap:2px;place-items:center;cursor:pointer}.nav-item span{font-size:20px}.nav-item small{font-size:11px}.nav-item.active{color:var(--accent)}.list{display:grid;gap:10px}.list-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);background:var(--panel);border-radius:14px;cursor:pointer}.list-row .num{font-weight:900;color:var(--accent)}.list-row .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row small{color:var(--muted)}
@media(min-width:720px){.grid{grid-template-columns:repeat(4,1fr)}.actions{grid-template-columns:repeat(4,1fr)}}
.option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--panel2))}.badge.bad{color:var(--bad)}.badge.topic{font-weight:600}.test-note{margin:13px 2px 0;font-size:13px}.test-pager{display:grid;grid-template-columns:1fr 1fr 1fr}.resume-card{margin-top:16px}.resume-card p{line-height:1.5}.topic-mix{font-size:12px;line-height:1.65}.review-list{display:grid;gap:14px}.review-card{margin-bottom:0}.choice-mark{font-size:12px;color:var(--muted);font-weight:700}.result-card{text-align:center}.result-card .actions{margin-top:14px}.list-row:disabled{opacity:.65;cursor:default}.question-stats .list-row .txt{white-space:normal}.option.correct .choice-mark{color:var(--ok)}.option.wrong .choice-mark{color:var(--bad)}
@media(max-width:560px){.test-pager{grid-template-columns:1fr 1fr}.test-pager #finishTest{order:3;grid-column:1/-1}.test-pager #nextTest{order:2}.test-pager #prevTest{order:1}}

/* Learn mode v3 */
.learn-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 2px 10px}.learn-jump{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.jump-field{width:78px;padding:8px 9px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;outline:none}.learn-progress{margin-bottom:14px}.learn-card .option:disabled{opacity:1;color:var(--text);cursor:default}.learn-feedback{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:15px;line-height:1.6}.learn-feedback.success{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--panel2))}.learn-feedback.error{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 9%,var(--panel2))}.learn-feedback.neutral{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 9%,var(--panel2))}.feedback-title{font-size:18px;font-weight:900;margin-bottom:7px}.learn-feedback.success .feedback-title{color:var(--ok)}.learn-feedback.error .feedback-title{color:var(--bad)}.learn-feedback.neutral .feedback-title{color:var(--warn)}.learn-feedback p{margin:7px 0}.legal-ref{font-weight:700}.source-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:11px 14px;border-radius:12px;background:var(--accent);color:white;text-decoration:none;font-weight:800}.source-btn:hover{filter:brightness(1.07)}.source-missing{color:var(--warn);font-size:13px}.retry-learn{margin-top:10px}.option.correct{background:color-mix(in srgb,var(--ok) 10%,var(--panel2))}.option.wrong{background:color-mix(in srgb,var(--bad) 9%,var(--panel2))}
@media(max-width:560px){.learn-head{align-items:flex-start;flex-direction:column}.learn-jump{align-self:flex-end}}

/* Multi-user server-backed profiles v5 */
.header-actions{display:flex;align-items:center;gap:8px;min-width:0}.current-user{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.user-switch{border:0;background:none;color:var(--accent);font-size:12px;font-weight:800;cursor:pointer;padding:7px 4px}.login-screen{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:24px 0}.login-card{width:min(470px,100%);padding:28px;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),var(--panel2));border-radius:26px;box-shadow:var(--shadow)}.login-logo{display:block;width:72px;height:72px;border-radius:22px;object-fit:cover;box-shadow:0 8px 24px rgba(0,0,0,.18);margin-bottom:18px}.login-card h1{margin:0 0 8px;font-size:32px}.login-card p{color:var(--muted);line-height:1.6;margin:0 0 18px}.login-card form{display:grid;gap:10px;margin:18px 0 14px}.login-card label{font-size:13px;font-weight:800}.login-field{font-size:17px}.login-start{margin-top:4px}.login-message{padding:11px 12px;border:1px solid var(--warn);background:color-mix(in srgb,var(--warn) 9%,var(--panel));color:var(--text);border-radius:12px;font-size:13px;line-height:1.5}.bottom-nav[hidden]{display:none!important}
@media(max-width:620px){.current-user{max-width:130px;font-size:10px;padding:6px 7px}.user-switch{font-size:10px}.topbar{padding-left:12px;padding-right:12px}.brand span:last-child{display:none}}


/* UI v7 */
.theme-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.theme-choice{min-height:118px;border:1px solid var(--line);border-radius:18px;background:var(--panel2);color:var(--text);display:grid;place-items:center;align-content:center;gap:8px;cursor:pointer;font:inherit}.theme-choice:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.theme-choice:disabled{opacity:.65;cursor:wait}.theme-choice-icon{font-size:30px;line-height:1}.theme-choice b{font-size:17px}.theme-back{width:100%;margin-top:12px}.home-actions .btn{min-height:52px}.test-count-grid .test-count-btn{font-family:inherit;font-size:16px;font-weight:750;line-height:1.2;background:var(--accent);border-color:var(--accent);color:#fff;min-height:52px}.test-count-grid .test-count-btn:hover{filter:brightness(1.06)}.mistake-row small{color:var(--bad);font-weight:800}.empty-success{text-align:center;padding:24px}.empty-success b{font-size:18px}.empty-success p{margin-bottom:0}.correction-actions{margin-top:12px}.correction-actions .btn{width:100%}
@media(max-width:520px){.theme-choice-grid{grid-template-columns:1fr 1fr}.theme-choice{min-height:105px}.test-count-grid{grid-template-columns:1fr 1fr}}


/* PWA install notice v12 */
.install-notice{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:90;width:min(760px,calc(100% - 24px));display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 96%,transparent);color:var(--text);box-shadow:0 18px 55px rgba(0,0,0,.38);backdrop-filter:blur(18px);animation:installNoticeIn .22s ease-out}.install-notice-icon{width:50px;height:50px;border-radius:14px;overflow:hidden;flex:none}.install-notice-icon img{display:block;width:100%;height:100%;object-fit:cover}.install-notice-copy{min-width:0;display:grid;gap:3px}.install-notice-copy b{font-size:15px}.install-notice-copy span,.install-ios-hint{color:var(--muted);font-size:12px;line-height:1.45}.install-ios-hint{margin-top:5px;color:var(--text);font-weight:700}.install-notice-actions{display:flex;align-items:center;gap:7px}.install-now{padding:10px 12px;white-space:nowrap}.install-later{border:0;background:transparent;color:var(--muted);padding:9px 7px;cursor:pointer;font:inherit;font-size:12px}.install-later:hover{color:var(--text)}@keyframes installNoticeIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:620px){.install-notice{grid-template-columns:auto 1fr;bottom:82px;padding:12px}.install-notice-icon{width:46px;height:46px}.install-notice-actions{grid-column:1/-1;justify-content:flex-end}.install-now{min-width:120px}.install-notice-copy b{font-size:14px}}
