:root{--accent:#fa4b54;--accent-dark:#cb273c;--wash:#fff0ef;--ink:#10213e;--muted:#63718a;--paper:#fff;--bg:#fcfbf9;--line:#e8eaf0;--green:#0b8271;--mint:#eaf8f3;--radius:18px;font-family:'Segoe UI Variable','Segoe UI',system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}body[data-theme=ocean]{--accent:#327bd2;--accent-dark:#1756a2;--wash:#eaf3ff}body[data-theme=forest]{--accent:#278b73;--accent-dark:#14634f;--wash:#e8f6ee}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #4472ae;outline-offset:3px}button{color:inherit}svg{width:22px;height:22px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,3.4vw,42px);letter-spacing:-1.1px;line-height:1.18;margin-bottom:10px}h2{font-size:21px;letter-spacing:-.4px;margin-bottom:12px}h3{font-size:17px;margin-bottom:10px}p{line-height:1.65}.sub{color:var(--muted);margin-bottom:24px}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:26px 15px 18px;background:#fdfcfb;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{border:0;background:none;text-align:left;padding:0 16px 28px;display:grid;justify-items:start;gap:5px}.brand img{margin-bottom:5px}.brand strong{font-size:28px;letter-spacing:-1px}.brand span{font-size:13px;color:var(--muted)}nav{display:grid;gap:7px}.nav{display:flex;align-items:center;gap:14px;padding:15px 17px;background:none;border:0;border-radius:13px;text-align:left;min-height:51px}.nav:hover{background:#f4f2f0}.nav.active{background:var(--wash);color:var(--accent-dark);font-weight:600}.badge{margin-left:auto;border-radius:18px;padding:2px 7px;font-size:12px;background:var(--accent);color:#fff}.sidebar-bottom{margin-top:auto;padding:24px 10px 0}.profile-mini{background:none;border:0;text-align:left;display:flex;align-items:center;gap:10px;width:100%;padding:8px 0}.avatar{height:40px;width:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:50%;background:#547baa;color:#fff;font-weight:600}.profile-mini b{max-width:104px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-mini small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.profile-mini svg{width:18px}.quote{font-style:italic;color:#8993a3;font-size:12px;border-top:1px solid var(--line);margin-top:17px;padding-top:18px}.version{font-size:10px;color:#8b94a3}.workspace{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 32px;padding:18px 0;border-bottom:1px solid var(--line);min-height:70px}.breadcrumb{font-size:13px;color:var(--muted)}.breadcrumb span{margin:0 14px}.breadcrumb b{color:var(--ink);font-weight:600}.top-actions{display:flex;align-items:center;gap:20px}.balance{border:0;background:none;display:flex;align-items:center;gap:8px;padding:4px 10px;color:var(--ink)}.balance svg{color:#c68720;width:29px;height:29px}.streak{font-size:13px;display:flex;gap:8px;align-items:center}.streak svg{color:var(--accent)}main{max-width:1350px;margin:auto;padding:29px 32px 40px}.page-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.greeting-note{font-family:Georgia,serif;font-style:italic;font-size:24px;line-height:1.25;color:#667184;transform:rotate(-6deg);padding:6px 20px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--muted);text-transform:uppercase;font-weight:600;margin-bottom:13px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 4px 15px #17233b04}.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:238px;padding:26px 28px;align-items:center;margin-bottom:18px}.hero-text{position:relative;z-index:1}.hero h2{font-size:clamp(26px,3vw,36px);margin-bottom:7px}.hero p{margin-bottom:0}.hero-art{width:100%;height:235px;object-fit:cover;border-radius:16px;object-position:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:12px;min-height:46px;padding:11px 18px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:#f6f7fa;transform:translateY(-1px)}.button.primary{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 4px 9px color-mix(in srgb,var(--accent) 14%,transparent)}.button.primary:hover:not(:disabled){background:var(--accent-dark)}.button.small{font-size:13px;min-height:38px;padding:8px 12px}.hero .button{margin-top:20px}.link-button{border:0;background:none;color:var(--accent-dark);padding:5px 0;font-size:12px;display:inline-flex;gap:8px;align-items:center}.link-button svg{width:17px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0}.dashboard-row{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-bottom:18px}.dashboard-row.equal{grid-template-columns:1fr 1fr}.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.level-tile{padding:17px;border:1px solid var(--line);border-radius:13px;text-align:left;background:#f8f9fc;min-width:0}.level-tile.active{border-color:var(--accent);background:linear-gradient(135deg,var(--wash),#fff)}.level-tile strong{font-size:25px;display:block}.level-tile .level-top{display:flex;justify-content:space-between;align-items:center}.level-tile span.caption{font-size:12px;color:var(--muted);display:block;margin-top:3px}.pill{display:inline-block;border-radius:20px;padding:5px 10px;background:#edf0f5;font-size:11px;line-height:1.4;color:var(--muted);margin-top:12px}.pill.coral{background:var(--wash);color:var(--accent-dark)}.pill.mint{background:var(--mint);color:var(--green)}.pill.amber{background:#fff5e6;color:#91641e}.route-note{border-top:1px solid var(--line);margin-top:16px;padding-top:15px;color:var(--muted);font-size:12px;line-height:1.6}.route-note svg{margin-right:8px}.review-main{display:flex;align-items:center;gap:18px;margin:18px 0}.round-icon{width:63px;height:63px;flex-shrink:0;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center}.round-icon svg{width:30px;height:30px}.review-main b{font-size:28px}.review-main p{font-size:13px;color:var(--muted);margin:4px 0}.review-panel .button{width:100%}.banner{padding:12px 14px;border-radius:12px;background:var(--mint);color:var(--green);font-size:12px;line-height:1.5;margin-top:15px;display:flex;gap:10px;align-items:center}.goal-line{display:flex;align-items:center;gap:14px}.goal-line strong{font-size:26px}.goal-line small{color:var(--muted);font-size:14px}.goal-line .reward{margin-left:auto;font-size:12px}.reward svg{color:#b98327;margin-right:4px}.meter{height:9px;border-radius:20px;background:#eceff5;overflow:hidden;margin:16px 0}.meter i{height:100%;display:block;border-radius:20px;background:var(--accent)}.mastery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.mastery-box{padding:14px 8px;background:#edf5ff;border-radius:12px;font-size:11px;color:#2862a1}.mastery-box:nth-child(2){background:#fff6e9;color:#936022}.mastery-box:nth-child(3){background:var(--mint);color:var(--green)}.mastery-box strong{display:block;font-size:22px;margin-bottom:5px}.muted{color:var(--muted)}.tiny{font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:18px;margin:22px 0}.topic-card{display:flex;flex-direction:column}.topic-card p{font-size:13px;color:var(--muted);flex:1}.topic-card .button{margin-top:18px}.topic-card h2{font-size:18px;margin:15px 0}.level-switch{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.level-switch .active{background:var(--wash);color:var(--accent-dark);border-color:var(--accent)}label.field{display:grid;gap:8px;font-size:13px;font-weight:600;margin:18px 0}input,select,textarea{width:100%;border:1px solid #dce1e9;background:#fff;border-radius:11px;padding:12px;color:var(--ink);min-height:44px}textarea{min-height:90px;resize:vertical}.narrow{max-width:720px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lesson-body{font-size:17px;line-height:1.85;white-space:pre-line}.lesson-example{border-left:3px solid var(--accent);padding-left:20px;background:#fffaf7;border-radius:0 12px 12px 0;padding-top:12px;padding-bottom:12px}.lesson-columns{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:start}.test-wrap{max-width:780px;margin:auto}.test-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.question{font-size:24px;font-weight:600;line-height:1.6;letter-spacing:-.4px;margin:25px 0}.choice{width:100%;border:1px solid #dfe4ec;border-radius:13px;padding:15px;background:white;text-align:left;margin:9px 0;display:flex;align-items:center;gap:14px;font-size:17px;opacity:1!important}.choice .letter{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f2f4f8;font-size:12px;color:var(--muted);flex-shrink:0}.choice:hover:not(:disabled){border-color:var(--accent);background:var(--wash)}.choice.good{color:#0b705c;border-color:#80cdb5;background:#eaf8f2}.choice.bad{color:#b83340;border-color:#efa7ad;background:#fff0f1}.choice.selected{border-color:#597ca8;background:#edf4fe;color:#264e84}.choice svg{margin-left:auto}.feedback{border:1px solid #d5e8e1;background:#f3fbf7;border-radius:14px;padding:20px;margin-top:19px;line-height:1.65}.feedback.error{background:#fff7f5;border-color:#f4d7d0}.feedback p{font-size:14px;margin:9px 0 0}.feedback details{margin-top:12px}.feedback summary{cursor:pointer}.result-hero{display:flex;align-items:center;gap:35px;padding:30px}.score-ring{--percent:0;width:150px;height:150px;flex:0 0 150px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--percent)*1%),#edf0f5 0);display:grid;place-items:center}.score-ring>div{background:#fff;width:128px;height:128px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-ring strong{font-size:34px;letter-spacing:-1px}.score-ring small{font-size:12px;color:var(--muted)}.result-meta{display:flex;gap:17px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.result-meta .ok{color:var(--green)}.result-meta .err{color:#bc3546}.tabs{display:flex;gap:10px;margin:24px 0}.answer-card{margin:12px 0;border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden}.answer-card summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:19px;font-size:14px;font-weight:500;line-height:1.6}.answer-card summary::-webkit-details-marker{display:none}.status-icon{background:var(--mint);color:var(--green);border-radius:50%;padding:5px;flex-shrink:0}.status-icon.err{background:#fff0f2;color:#c8384b}.answer-body{padding:0 21px 21px 58px;font-size:14px}.answer-pair{display:grid;grid-template-columns:1fr 1fr;gap:13px}.answer-pair>div{border-radius:10px;background:#f7f8fa;padding:13px}.answer-pair small{display:block;color:var(--muted);margin-bottom:5px}.answer-pair .right{background:var(--mint);color:var(--green)}.answer-body p{margin:15px 0 0}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.stat strong{display:block;font-size:30px;margin:8px 0}.stat small{color:var(--muted);font-size:12px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px}.day{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.day-column{height:100px;width:100%;max-width:45px;background:#f4f5f8;border-radius:7px;display:flex;align-items:end;overflow:hidden}.day-column i{width:100%;background:var(--accent);border-radius:7px;min-height:0}.day b{color:var(--ink)}.row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6}.row:last-child{border:0}.row p{margin:3px 0;font-size:12px;color:var(--muted)}.row .button{flex-shrink:0}.empty{padding:45px 25px;text-align:center}.empty .round-icon{margin:0 auto 20px}.empty p{max-width:440px;margin:0 auto;color:var(--muted)}.shop-swatch{height:76px;background:var(--wash);border-radius:12px;display:grid;place-items:center;margin-bottom:18px}.shop-swatch svg{width:38px;height:38px}.search{margin:18px 0}.flashcard{text-align:center;padding:50px 24px}.flashcard .word{font-size:36px;letter-spacing:-1px;margin:20px 0}.flashcard .translation{font-size:23px;color:var(--green);margin:20px 0}.locked{background:var(--paper);text-align:center;max-width:720px;margin:auto}.locked ul{text-align:left;color:var(--muted);line-height:2}.word-line{display:flex;justify-content:space-between;gap:10px;align-items:center}.word-line .word{font-size:20px}.welcome{max-width:720px;margin:10px auto}.welcome-art{width:100%;height:210px;object-fit:cover;border-radius:15px}.notice{background:var(--wash);color:var(--accent-dark);padding:16px;border-radius:13px;margin:15px 0;font-size:14px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:min(620px,90vw);background:#142440;color:#fff;box-shadow:0 8px 30px #17223b33;border-radius:14px;padding:17px 23px;font-size:14px;z-index:50;line-height:1.6}#notice[hidden]{display:none}dialog{border:1px solid var(--line);border-radius:22px;max-width:min(600px,92vw);padding:28px;color:var(--ink);box-shadow:0 25px 90px #13223d30}dialog::backdrop{background:#11203850;backdrop-filter:blur(3px)}.reveal{animation:enter .2s ease-out}@keyframes enter{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){main{padding-top:38px}.hero{min-height:280px}.hero-art{height:270px}.sidebar{padding-top:35px}}@media(max-width:1100px){.shell{grid-template-columns:205px 1fr}main{padding:25px}.topbar{margin:0 25px}.dashboard-row{grid-template-columns:1.3fr 1fr}.panel{padding:18px}.hero{grid-template-columns:1.2fr 1fr}.hero-art{height:210px}.greeting-note{display:none}.level-tile{padding:12px}.level-grid{gap:7px}.level-tile .caption{font-size:10px}.brand{padding-left:10px}.brand strong{font-size:26px}.streak{font-size:12px}}@media(max-width:850px){.shell{grid-template-columns:175px 1fr}.sidebar{padding:20px 9px}.nav{padding:12px 10px;font-size:13px;gap:9px}.brand span{font-size:10px}.brand strong{font-size:24px}.dashboard-row,.dashboard-row.equal,.lesson-columns{grid-template-columns:1fr}.hero{grid-template-columns:1fr 1fr}.hero h2{font-size:27px}.mastery-grid{gap:12px}.profile-mini small,.quote{display:none}.profile-mini{flex-wrap:wrap}.top-actions{gap:5px}.breadcrumb{font-size:11px}.hero-art{height:190px}.result-hero{gap:20px;flex-wrap:wrap}.stats-row{gap:9px}.stat strong{font-size:25px}}@media(max-width:620px){.shell{display:block}.sidebar{position:static;height:auto;display:block;border-right:0;border-bottom:1px solid var(--line);padding:12px}.brand{display:flex;align-items:center;padding:0 5px 12px;gap:8px}.brand img{width:32px;height:32px;margin:0}.brand strong{font-size:23px}.brand span{margin-left:auto;font-size:11px}.sidebar-bottom{display:none}nav{grid-template-columns:repeat(3,1fr);gap:4px}.nav{justify-content:center;padding:9px 4px;font-size:11px;gap:6px;min-height:42px}.nav svg{width:16px}.nav .badge{margin:0;padding:1px 4px}.topbar{padding:12px 0;margin:0 16px;min-height:52px}.breadcrumb{max-width:150px}.breadcrumb span{margin:0 5px}.streak{font-size:11px}.top-actions{gap:5px}.balance{padding:4px}.balance svg{width:22px}main{padding:20px 16px}.hero{display:block;padding:22px;min-height:0}.hero-art{height:180px;margin-top:15px}.hero h2{font-size:28px}.form-grid,.answer-pair{grid-template-columns:1fr}.stats-row{grid-template-columns:1fr}.score-ring{width:120px;height:120px;flex-basis:120px}.score-ring>div{width:102px;height:102px}.score-ring strong{font-size:28px}.answer-body{padding:0 16px 16px}.row{flex-wrap:wrap}.question{font-size:20px}.panel-head{align-items:start}.panel-head h2{font-size:18px}.row .button{min-height:38px}.page-head{display:block}.level-tile strong{font-size:22px}.button{min-height:44px}h1{font-size:29px}.tabs{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
