:root{color-scheme:light;--ink:#1b2a49;--muted:#67758e;--navy:#17264a;--blue:#315de5;--violet:#6d54cd;--bg:#f6f8fe;--card:#fff;--line:#e4e9f4;--soft:#edf1fb;--good:#087a60;--warn:#ae661d;--shadow:0 12px 38px rgba(36,56,95,.07)}
*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-size:15px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#294ed2}a:hover{text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,3.4vw,43px);line-height:1.17;letter-spacing:-1px}h2{font-size:22px;letter-spacing:-.4px}h3{font-size:17px;line-height:1.3}p{line-height:1.65}.shell{min-height:100vh;display:flex}.sidebar{width:262px;position:sticky;top:0;height:100vh;flex-shrink:0;background:var(--navy);color:#eff4ff;padding:28px 14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:13px}.brand{display:flex;align-items:center;gap:12px;padding:0 12px 23px;margin-bottom:5px;border-bottom:1px solid #ffffff21}.brandmark{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:13px;background:linear-gradient(135deg,#477bf5,#8372eb);font-size:25px;font-weight:900;box-shadow:0 7px 20px #111c2f66}.brandmark span{color:#e7ff9f;font-size:18px}.brand strong{font-size:17px}.brand small{display:block;color:#b8c7e8;margin-top:4px;font-size:12px}.side-label{padding:6px 14px 2px;color:#8297bc;font-size:11px;letter-spacing:1.3px;font-weight:800}.sidebar nav{display:grid;gap:4px}.nav{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#cbd6ed;padding:11px 14px;border-radius:10px;text-align:left;font-weight:550;font-size:13px}.nav span{font-size:20px;width:24px;text-align:center;font-weight:700}.nav:hover,.nav.active{background:#ffffff1c;color:white}.nav.active{box-shadow:inset 3px 0 #9fd2ff}.sidebar-foot{margin-top:auto;border:1px solid #ffffff2d;border-radius:13px;padding:14px;color:#e2ecff;font-size:12px;line-height:1.45}.sidebar-foot small{display:block;color:#9cafce;margin-top:7px;font-size:11px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5bddb3;margin-right:6px}.bodywrap{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:72px;padding:0 clamp(20px,4vw,54px);background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.top-label{font-weight:650;color:#324669}.top-actions{display:flex;align-items:center;gap:14px}.network{font-size:12px;color:#6c7892;white-space:nowrap}.iconbtn,.mobile-menu{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 12px}.mobile-menu{display:none}#app{width:100%;max-width:1370px;margin:0 auto;padding:36px clamp(20px,4vw,54px) 65px;flex:1}.eyebrow{color:#5c5aca;text-transform:uppercase;letter-spacing:1.5px;font-size:11px;font-weight:850;margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:12px}.lead{font-size:16px;color:#65738d;max-width:780px}.hero{position:relative;background:linear-gradient(115deg,#1a2c56,#234b97 55%,#7066d1);color:#fff;border-radius:24px;padding:clamp(25px,4vw,46px);margin-bottom:25px;overflow:hidden;box-shadow:0 25px 45px #1d41911b}.hero:after{content:'Ä';position:absolute;right:45px;bottom:-86px;font-size:270px;font-weight:900;opacity:.075;pointer-events:none}.hero .eyebrow{color:#aed2ff}.hero h1{max-width:690px;margin-bottom:14px}.hero .lead{color:#d8e5ff;max-width:650px}.hero .actions{position:relative;z-index:1}.hero .btn-outline{color:#fff;border-color:#ffffff60;background:#ffffff10}.grid{display:grid;gap:17px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:var(--shadow);min-width:0}.card:hover{border-color:#d5def7}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eef3ff;font-size:21px;margin-bottom:15px}.statnum{font-size:29px;font-weight:850;letter-spacing:-.7px}.statcap{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:28px 0 14px}.section-head h2{margin:0}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbe3f3;border-radius:100px;padding:5px 10px;background:#f5f7fe;color:#536889;font-size:11px;font-weight:750}.tag{color:#3155b7;background:#edf3ff;border-radius:7px;padding:4px 9px;font-weight:750;font-size:12px}.tag.good{background:#e7f7f0;color:#137251}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0}.btn{border:1px solid transparent;border-radius:11px;background:var(--blue);color:#fff;padding:12px 17px;font-weight:750;line-height:1.35;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn:hover{filter:brightness(.95)}.btn-secondary{background:#eaf0ff;color:#2548aa;border-color:#d9e2ff}.btn-outline{background:transparent;color:#3352a7;border-color:#ccd8f4}.btn-danger{background:#fff0ed;color:#b84d3a;border-color:#f5d3d0}.btn-small{padding:8px 11px;font-size:12px}.btn-wide{width:100%}.progressbar{height:8px;border-radius:100px;background:#e7ecf5;overflow:hidden}.progressbar span{display:block;height:100%;background:linear-gradient(90deg,#4774ed,#7d66e4);border-radius:100px}.level-card{min-height:177px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}.level-card h2{font-size:37px;margin:0;color:#2c56ba}.level-card .btn{margin-top:auto}.level-card .sub{font-size:13px;color:var(--muted)}.lesson-card{display:flex;flex-direction:column;gap:8px}.lesson-card h3{margin:0}.lesson-card .btn{margin-top:auto}.lesson-card .muted{font-size:13px}.toprow{display:flex;justify-content:space-between;align-items:center;gap:13px;flex-wrap:wrap;margin-bottom:22px}.pillbar{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid #d9e2f1;background:#fff;border-radius:12px;padding:10px 15px;color:#546482;font-weight:750}.pill.on{background:#335fe1;color:#fff;border-color:#335fe1}.field{display:grid;gap:7px;margin:11px 0 16px}.field label,label.fieldlabel{color:#526583;font-size:12px;font-weight:800}.field input,.field select,.field textarea,input.textinput,textarea.textinput,select.textinput{width:100%;padding:12px 14px;border:1px solid #d7dfec;border-radius:11px;background:#fff;color:var(--ink);outline:none}.field textarea,textarea.textinput{resize:vertical;min-height:100px}.field input:focus,.field textarea:focus,.field select:focus,input.textinput:focus{border-color:#617def;box-shadow:0 0 0 3px #cedbff88}.choice{display:flex;align-items:flex-start;gap:11px;line-height:1.4;padding:13px 14px;margin:10px 0;border:1px solid #dfe6f0;border-radius:11px;cursor:pointer}.choice:has(input:checked){border-color:#496fed;background:#f1f5ff}.choice input{margin-top:2px;accent-color:#345fe0}.info{border:1px solid #d8e5ff;background:#f3f7ff;color:#355587;border-radius:13px;padding:13px 16px;font-size:13px;line-height:1.6}.notice{background:#fff8e8;border:1px solid #f3dca4;color:#735d32;border-radius:12px;padding:13px 16px;line-height:1.6;font-size:12px}.twocol{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px}.bigletter{font-size:110px;line-height:1.1;font-weight:800;letter-spacing:-5px;color:#294ea9}.letterstage{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(160deg,#eaf0ff,#f9fbff);border-radius:15px;gap:8px}.letterstage h2{font-size:29px}.keygrid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.key{border:1px solid #dae1ed;border-radius:11px;background:#fff;min-height:50px;font-size:20px;font-weight:800;color:#3158ba}.key.on{color:#fff;background:#315de5}.key.done:after{content:'✓';font-size:9px;color:#20a179;vertical-align:top;margin-left:3px}.rule{padding:15px;border:1px solid var(--line);border-radius:13px;background:white}.rule .pattern{font-size:23px;color:#264b9a;font-weight:850}.phrase{padding:13px 0;border-bottom:1px solid #ebeff5;display:grid;grid-template-columns:1fr auto;gap:15px}.phrase:last-child{border-bottom:0}.phrase .de{font-size:15px;font-weight:750}.phrase .vi{color:var(--muted);font-size:13px;margin-top:5px}.phrase .controls{display:flex;align-items:center;gap:6px}.phrase .controls button{background:#eef2ff;border:0;border-radius:9px;padding:8px;color:#3259af}.phrase .controls button.saved{color:#9b5b1a;background:#fff0d9}.quizbox{padding:21px;border:1px solid #dce5f4;border-radius:15px;background:#fafcff;margin-bottom:17px}.quizbox h3{font-size:18px;margin:10px 0}.answerline{font-size:13px;margin-top:10px;padding:10px 12px;border-radius:9px;background:#e9f8f0;color:#09684d}.answerline.bad{background:#fff1ec;color:#a34a2d}.listrow{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #e9edf5}.listrow:last-child{border:0}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.examnav{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}.examnav button{padding:8px 13px;border:1px solid #d6dff0;border-radius:10px;background:#f2f5fc;color:#304c7b}.examnav button.on{background:#335de4;color:#fff}.examq{border-bottom:1px solid var(--line);padding:18px 0}.examq:last-child{border-bottom:0}.examq .source{background:#f3f6fc;border-radius:9px;padding:14px;line-height:1.6}.rubric{margin:8px 0 5px;padding-left:20px;line-height:1.8}.result-card{border-left:4px solid #407ad7;background:#f2f7ff;padding:17px;border-radius:10px;margin:16px 0}.summary-score{font-size:38px;font-weight:850;color:#2861c4}.flashcard{border:1px solid #cdd8ef;background:linear-gradient(145deg,#f0f4ff,#fff);border-radius:20px;min-height:255px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;gap:15px;cursor:pointer}.flashcard .front{font-size:clamp(22px,3.4vw,36px);font-weight:750}.flashcard .back{font-size:18px;color:#456187}.flashcard .caption{font-size:11px;color:#8791ac}.timeline{padding:0;margin:0;list-style:none}.timeline li{padding:12px 0;border-bottom:1px solid #ecf0f6;display:flex;gap:10px;justify-content:space-between}.timeline li:last-child{border:0}.chart-bars{display:flex;align-items:flex-end;height:96px;gap:8px}.chart-bars div{flex:1;background:linear-gradient(180deg,#7d88ee,#bfcdfb);border-radius:7px 7px 2px 2px;min-height:5px}.chart-bars div span{display:block;transform:translateY(8px);position:relative;top:85px;text-align:center;font-size:10px;color:#6f7e97}.hint{font-size:12px;color:#7a8da7}.float-right{margin-left:auto}.split-title{display:flex;justify-content:space-between;gap:14px;align-items:center}.two-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.empty{border:2px dashed #d4e0f2;border-radius:16px;padding:40px;text-align:center;color:#75819a}.exam-clock{font-variant-numeric:tabular-nums;font-weight:850;color:#1b4ac5}.stepmark{font-size:12px;font-weight:700;color:#526eb1}.subjective{white-space:pre-wrap;background:#edf8f5;padding:12px;border-radius:9px;margin:11px 0;font-size:13px;line-height:1.6}#toast{position:fixed;bottom:20px;right:20px;z-index:200;background:#162952;color:#fff;padding:13px 17px;border-radius:13px;box-shadow:0 16px 40px #24345155;max-width:min(90vw,420px);font-size:13px}#toast[hidden]{display:none}#overlay{position:fixed;inset:0;background:#162c5670;z-index:95}#overlay[hidden]{display:none}footer{padding:19px 24px;text-align:center;font-size:11px;color:#8190a6;border-top:1px solid var(--line)}
@media(max-width:1160px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.keygrid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:880px){.sidebar{position:fixed;z-index:100;transform:translateX(-100%);transition:transform .18s;box-shadow:10px 0 30px #1b2b5b36}.sidebar.open{transform:translateX(0)}.mobile-menu{display:inline-block}.topbar{padding:0 18px;height:60px}.top-label{font-size:13px}#app{padding:22px 16px 55px}.twocol{grid-template-columns:1fr}.hero{padding:28px}.keygrid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:550px){.grid-3,.grid-2{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4>.card{padding:16px}.keygrid{grid-template-columns:repeat(5,1fr)}.section-head{align-items:start;flex-direction:column}.topbar .network{font-size:10px}.hero h1{font-size:30px}.hero:after{right:-10px;font-size:180px;bottom:-40px}.card{padding:18px}.bigletter{font-size:90px}.letterstage{min-height:270px}.top-actions{gap:6px}.nav{padding:13px 14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* PRO activation interface */
.licbadge{border:1px solid #cad9f3;background:#edf3ff;color:#2852a6;border-radius:20px;padding:7px 11px;font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap}
.license-card h2{margin:15px 0 10px;font-size:24px}.license-card .field input{font-size:20px;letter-spacing:1px;text-transform:uppercase;text-align:center;min-height:54px}
.license-message{color:#ac372a;font-weight:750;font-size:13px;line-height:1.5;margin:10px 0}.license-message:empty{display:none}.license-rule{border:0;border-top:1px solid #e3e9f5;margin:22px 0}
@media(max-width:550px){.licbadge{font-size:10px;padding:6px 9px}.license-card h2{font-size:20px}.license-card .field input{font-size:17px}}
