@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{color-scheme:light;--bg:#f6f7fb;--panel:#fff;--ink:#20283d;--muted:#68738a;--line:#e2e6ef;--soft:#edf2ff;--accent:#355dd6;--danger:#b43444;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;line-height:1.6;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;padding:10px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);transition:background .15s,border-color .15s}button:hover{background:var(--soft);border-color:#b9c8f3}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #829df2;outline-offset:3px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 9px #355dd61c}button.primary:hover{background:#294cbb}.quiet{border-color:transparent;background:transparent;padding:7px 10px}.danger{color:var(--danger)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{font-size:clamp(25px,3vw,34px);line-height:1.3;letter-spacing:-1.1px;margin:8px 0 9px;font-weight:800}h2{font-size:21px;letter-spacing:-.4px;line-height:1.5}p{margin-bottom:14px}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.4px;color:var(--muted)}.app-header{display:flex;align-items:center;gap:28px;padding:20px max(24px,calc((100vw - 1320px)/2));background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font:800 23px Manrope,sans-serif;letter-spacing:-1px;color:var(--ink);white-space:nowrap}.brand:hover{text-decoration:none}.brand>span:last-child{color:var(--accent)}.brand-mark{display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:10px;width:38px;height:38px;margin-right:10px;font:700 16px monospace;letter-spacing:-2px}nav{display:flex;gap:4px;flex-wrap:wrap}.nav-button{border:0;background:transparent;font-size:14px;padding:10px 13px;white-space:nowrap}.nav-button.active{background:var(--soft);color:var(--accent);font-weight:600}.nav-count{font-size:11px;padding:2px 6px;border-radius:5px;background:var(--line);margin-left:8px}.active .nav-count{background:#dbe5ff}.backup-button{margin-left:auto;white-space:nowrap;font-size:13px}main{max-width:1320px;margin:0 auto;padding:42px 32px 64px;min-height:calc(100vh - 150px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.page-heading p{margin-bottom:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.workspace.closed{grid-template-columns:minmax(0,880px);justify-content:center}.workspace.code-open{grid-template-columns:minmax(0,1fr) minmax(0,520px)}.flash{background:var(--panel);padding:30px 34px;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 30px #25366104;min-height:390px;display:flex;flex-direction:column}.flash-meta{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.badge{display:inline-block;background:var(--soft);color:var(--accent);padding:4px 9px;border-radius:6px;font-size:12px;font-weight:600}.badge.easy{background:#e9f5f0;color:#217153}.badge.medium{background:#fff2d9;color:#926115}.badge.hard{background:#fbecee;color:#a43f50}.question-label{font-size:13px;color:var(--muted);margin-top:34px}.dot{padding:0 6px}.prompt{font-size:clamp(23px,2.5vw,29px);line-height:1.5;margin:10px 0 22px;overflow-wrap:anywhere}.recall-space{color:#828ba0;font-size:13px;flex:1;padding:15px 0 40px}.flash-footer{margin-top:auto;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:15px}.answer{background:var(--soft);padding:20px;border-radius:10px;margin:4px 0 8px}.answer .eyebrow{color:var(--accent);margin-bottom:9px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.ratings button{padding:12px 8px}.ratings small{display:block;color:var(--muted);font-size:12px}.ratings kbd{background:transparent;border:0;padding:0 5px 0 0;color:var(--muted)}kbd{font:12px monospace;background:var(--bg);padding:2px 5px;border:1px solid var(--line);border-radius:4px}.progress{height:5px;background:#e4e9f3;border-radius:4px;overflow:hidden;margin:25px 0 10px}.progress>div{height:100%;background:var(--accent);transition:width .2s}.review-bottom{display:flex;align-items:center;justify-content:space-between}.review-bottom button{font-size:13px}.context{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:24px}.context-head{display:flex;align-items:center;justify-content:space-between}.context-head button{font-size:21px;padding:0 8px}.context h2{margin:12px 0}.tabs{display:flex;gap:3px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin:22px 0}.tabs button{font-size:12px;padding:7px 9px;border:0}.tabs button.active{background:var(--soft);color:var(--accent)}.context .prose{font-size:14px}.context-bottom{margin-top:24px;padding-top:15px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:12px}.context-bottom button{font-size:12px}.code-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.code-head button{font-size:12px}.code{margin:8px 0 0;padding:18px;background:#192237;color:#e4eaf8;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.8 Consolas,monospace}.code code{font:inherit}.filters{display:flex;gap:16px;align-items:end;margin-bottom:22px}.filters label{margin:0}.search-label{flex:1}.filters select{min-width:180px}label{display:block;font-size:13px;font-weight:500;margin-bottom:18px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);padding:11px 12px;margin-top:7px;font-size:15px}textarea{min-height:110px;resize:vertical}textarea.code-input{min-height:220px;font:13px/1.7 Consolas,monospace;white-space:pre}.list{display:grid;gap:12px}.question-row{display:flex;gap:20px;align-items:center;background:var(--panel);padding:23px 24px;border:1px solid var(--line);border-radius:12px}.question-main{flex:1;min-width:0;overflow-wrap:anywhere}.question-title{font-weight:600;font-size:17px}.counts{min-width:65px;font-size:14px}.counts span{display:block}.studio-toolbar{display:flex;align-items:end;gap:16px;margin-bottom:25px}.studio-toolbar label{margin:0;flex:1;max-width:460px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.study-card{background:var(--panel);padding:25px;border:1px solid var(--line);border-radius:13px;min-width:0}.study-card h2{font-size:18px;margin:22px 0;overflow-wrap:anywhere}.card-schedule{margin:20px 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.study-card .actions button{font-size:13px;padding:7px 12px}details summary{cursor:pointer;color:var(--accent);font-size:14px}details .prose{padding:12px 0;font-size:14px}.history-row{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 22px;display:grid;grid-template-columns:minmax(0,1fr) 80px 170px;align-items:center;gap:15px}.history-row>div{overflow-wrap:anywhere}.empty{text-align:center;background:var(--panel);border:1px dashed #ced6e7;border-radius:16px;padding:65px 24px}.empty h2{margin:15px 0}.empty p{color:var(--muted)}.empty .actions{justify-content:center}.empty-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#e9f5f0;color:#217153;font-size:24px;margin:0 auto}.settings-panel{max-width:820px;background:var(--panel);padding:30px;border:1px solid var(--line);border-radius:14px}.settings-panel h2{font-size:19px}.settings-panel p{color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:28px 0}footer{border-top:1px solid var(--line);max-width:1256px;margin:auto;padding:18px 0;display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}dialog{width:min(740px,calc(100% - 32px));max-height:90vh;border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--ink);background:var(--panel);box-shadow:0 25px 100px #17223833}dialog::backdrop{background:#111c3655;backdrop-filter:blur(3px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.modal-header h2{margin:0}.modal-header button{font-size:23px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-error{color:var(--danger)}.warning{padding:15px;background:#fff1d9;border:1px solid #ecd3a8;border-radius:8px;margin-bottom:24px;color:#794f13}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:#20283d;color:#fff;padding:14px 22px;border-radius:10px;box-shadow:0 6px 30px #0002;font-size:14px;z-index:20}.skip{position:absolute;left:10px;top:-100px;background:var(--panel);padding:12px;z-index:30}.skip:focus{top:10px}[hidden]{display:none!important}
@media(min-width:1450px){main{padding-top:50px}}
@media(max-width:1050px){.app-header{gap:15px;flex-wrap:wrap;padding:17px 24px}.backup-button{margin-left:auto}.workspace,.workspace.code-open{grid-template-columns:minmax(0,1fr) minmax(0,320px)}.flash{padding:25px}.question-row{gap:12px;flex-wrap:wrap}footer{margin:0 24px}}
@media(max-width:760px){main{padding:26px 18px 42px}.app-header{gap:12px;padding:16px 18px}nav{order:3;width:100%;gap:2px}.nav-button{padding:9px;font-size:13px}.brand{font-size:21px}.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.workspace,.workspace.closed,.workspace.code-open{grid-template-columns:minmax(0,1fr)}.flash{padding:23px;min-height:340px}.flash-footer{flex-wrap:wrap}.context{padding:22px}.card-grid{grid-template-columns:1fr}.studio-toolbar{flex-wrap:wrap;align-items:center}.studio-toolbar label{max-width:none;flex-basis:100%}.history-row{grid-template-columns:minmax(0,1fr) 70px}.history-row time{grid-column:1/-1}.question-row{padding:19px}.question-main{flex-basis:60%}.counts{margin-right:auto}.form-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.filters label{flex-basis:100%}footer{flex-wrap:wrap;padding:18px 0;margin:0 18px}dialog{padding:22px}.empty{padding:40px 20px}.ratings{gap:6px}.ratings button{font-size:13px}.settings-panel{padding:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.account-button{font-size:12px;margin-left:auto;white-space:nowrap}.backup-button{margin-left:0}.account-panel,.catalog-intro{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:22px}.account-panel{max-width:820px}.account-panel h2{margin-bottom:8px}.catalog-intro p:last-child{margin-bottom:0}.catalog-intro details p{font-size:14px;padding-top:12px}.catalog-summary{margin-bottom:12px}.pagination{display:flex;justify-content:center;gap:12px;margin:24px 0}.pagination button:disabled{cursor:default;opacity:.45}.guide-section{margin:22px 0}.guide-section summary{padding:10px 0;font-weight:600}.guide-section .prose{margin:12px 0}.guide-section ol{padding-left:22px}.guide-section li{margin-bottom:10px}.inline-check{display:inline;width:auto;margin:0 8px 0 0}.sync-label{font-size:13px;color:var(--muted)}
@media(max-width:760px){.account-button{margin-left:auto}.backup-button{width:auto;font-size:12px;padding:6px}.catalog-intro{padding:18px}.app-header nav{order:4}.filters select{min-width:0}.account-panel .actions{gap:8px}}
.preference-toggle{display:flex;align-items:center;gap:10px;margin:18px 0}.preference-toggle input{width:20px;height:20px}.settings-panel input[type=range]{max-width:320px}.settings-panel input[type=time]{max-width:180px}.settings-panel+.settings-panel{margin-top:24px}
.progress-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px;margin-bottom:24px}.progress-stats article{padding:22px;background:white;border:1px solid #e2e8f0;border-radius:14px;display:flex;flex-direction:column;gap:8px}.progress-stats strong{font-size:30px;color:#243252}.progress-stats span{font-size:13px;color:#53617a}.recall-badge{display:inline-block;border-radius:6px;padding:5px 8px;font-size:12px;margin:6px 0;background:#eef1f5;color:#526077}.recall-badge.strong{background:#dcfce7;color:#166534}.recall-badge.retry{background:#fee2e2;color:#991b1b}.recall-badge.learning{background:#fff2cd;color:#854d0e}.progress-strong{border-left:4px solid #22a35b}.progress-retry{border-left:4px solid #d74444}.progress-learning{border-left:4px solid #e3aa25}.progress-legend{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}progress{width:100%;height:16px;accent-color:#355dd6}

.app-header nav{flex-wrap:wrap}.leaderboard-list{margin-top:24px;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.leaderboard-row{display:grid;grid-template-columns:70px minmax(0,1fr) 100px;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);align-items:center}.leaderboard-row>span{overflow-wrap:anywhere}.leaderboard-row>:last-child{text-align:right}.leaderboard-heading{font-size:12px;color:var(--muted);background:#f0f3fa}.leaderboard-me{background:var(--soft);border-left:4px solid var(--accent)}@media(max-width:480px){.leaderboard-row{grid-template-columns:45px minmax(0,1fr) 70px;padding:14px 12px;gap:8px}}

.profile-identity{display:flex;gap:22px;align-items:center;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:24px}.profile-avatar{width:76px;height:76px;flex-shrink:0;display:grid;place-items:center;border-radius:22px;background:var(--soft);color:var(--accent);font-size:27px;font-weight:800}.profile-identity>div:last-child{min-width:0}.profile-identity h2{margin:0;font-size:25px;overflow-wrap:anywhere}.profile-email{margin:4px 0 10px;overflow-wrap:anywhere;color:var(--muted)}.profile-details{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.profile-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:24px}.profile-links .settings-panel{margin:0;max-width:none}.account-button[aria-current=page]{background:var(--soft);color:var(--accent)}@media(max-width:760px){.profile-links{grid-template-columns:1fr}.profile-identity{padding:20px;gap:14px}.profile-avatar{width:56px;height:56px;font-size:21px}.profile-identity h2{font-size:21px}}
