
:root{--ink:#243b36;--muted:#63716a;--line:#dce3dc;--paper:#fff;--green:#356451;--wash:#edf3ed;--accent:#ab6644}
*{box-sizing:border-box}body{margin:0;background:#f7f8f4;color:var(--ink);font-family:Inter,"Segoe UI","Microsoft YaHei","Yu Gothic",sans-serif;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,.button,select,input{min-height:44px}button,.button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:9px;padding:9px 17px;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{background:var(--wash)}a:hover{text-decoration:underline;text-underline-offset:5px}:focus-visible{outline:3px solid #b57435;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,4vw,44px);font-weight:650;letter-spacing:-.04em;line-height:1.35;margin-bottom:16px}h2{font-size:23px;line-height:1.5;margin-bottom:18px}h3{font-size:18px;line-height:1.5;margin-bottom:9px}p{margin-bottom:14px}small,.muted{color:var(--muted);font-size:14px}header{background:#f7f8f4;border-bottom:1px solid var(--line)}.top{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;gap:24px}.brand{font-size:23px;letter-spacing:.1em;font-weight:700;display:flex;align-items:center;gap:12px}.brand-mark{background:var(--green);color:white;border-radius:9px;padding:1px 10px;letter-spacing:0}.nav{display:flex;gap:12px}.nav a{padding:10px 13px;font-size:14px;border-radius:8px}.nav a[aria-current=page]{background:#e7eee5;color:#254e3d;font-weight:650}main{max-width:1124px;padding:38px 24px 50px;margin:auto;min-height:75vh}footer{max-width:1124px;margin:auto;padding:24px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:20px}.skip{position:fixed;left:12px;top:-100px;padding:12px;background:white;z-index:20}.skip:focus{top:8px}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--green);font-weight:700;text-transform:uppercase;margin-bottom:13px}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:55px;align-items:center;padding:24px 0 40px}.hero-copy{max-width:590px}.hero p{color:var(--muted)}.hero-art{border:1px solid #d7e0d4;background:#e9efe4;border-radius:16px;padding:28px;transform:rotate(-1deg)}.hero-art .line{background:#fffdf8;border:1px solid #dce2d6;border-radius:9px;padding:13px 18px;margin:10px 0;font-size:18px}.hero-art .line:first-of-type{font-size:21px}.hero-art .line small{display:block;font-size:11px;letter-spacing:.1em}.actions,.chips,.tabs,.pills{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#254d3c}.section{margin:30px 0}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:16px}.section-head h2{margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}.card:hover{border-color:#b9caba}.domain-card{display:block;position:relative;padding-top:28px}.domain-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;background:#edf2e9;border:1px solid #dce7d7;border-radius:9px;font-size:20px;margin-bottom:25px}.grammar .domain-icon{background:#f2ece1;border-color:#e6dcc9}.sentences .domain-icon{background:#e9edf1;border-color:#d7e0e6}.domain-card p{font-size:14px;color:var(--muted);min-height:50px}.domain-card .end{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;font-size:13px}.badge{display:inline-block;padding:3px 9px;border-radius:5px;background:#edf1eb;color:#486051;font-size:12px;line-height:1.6}.badge.exam{background:#f4eee2;color:#765a33}.badge.preview{background:#f0edf4;color:#635675}.profile{display:flex;gap:25px;justify-content:space-between}.profile h3{margin-bottom:6px}.profile dl{margin:0;display:flex;gap:18px}.profile dt{font-size:12px;color:var(--muted)}.profile dd{margin:0;font-size:13px}.callout{background:#edf2e9;border:1px solid #dce4d6;border-radius:12px;padding:26px}.callout p:last-child{margin-bottom:0}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:25px;display:flex;flex-wrap:wrap;gap:9px}.page-heading{max-width:770px;margin-bottom:26px}.page-heading p{color:var(--muted)}.tabs{border-bottom:1px solid var(--line);padding-bottom:14px;margin:22px 0}.tabs a{padding:7px 17px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}.tabs a.active,.pills a.active{background:var(--ink);color:white}.pills{margin:16px 0}.pills a{border:1px solid var(--line);border-radius:8px;padding:7px 14px;min-height:44px;display:inline-flex;align-items:center}.filters{background:#f0f3ed;border:1px solid var(--line);padding:18px;border-radius:10px;margin:22px 0}.filter-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filter-row label{display:flex;flex-direction:column;gap:5px;font-size:13px;flex:1;min-width:130px}.filter-row .search-label{flex:2}input,select,textarea{width:100%;border:1px solid #c7d1c6;border-radius:7px;background:#fff;padding:9px 11px;color:var(--ink);min-width:0}details{margin-top:12px}summary{cursor:pointer;color:var(--muted);min-height:44px;display:flex;align-items:center;gap:8px}summary:before{content:'+';font-size:20px}details[open]>summary:before{content:'−'}.results-note{font-size:13px;color:var(--muted);margin-bottom:15px}.lexeme{font-size:26px;letter-spacing:-.025em;line-height:1.5;overflow-wrap:anywhere}.pronunciation{font-family:"Segoe UI",sans-serif;color:var(--muted);line-height:1.9;font-size:15px}.list-card{display:flex;flex-direction:column;gap:8px}.list-card .chips{margin-top:auto}.list-card h2{font-size:22px;margin:0}.list-card p{margin:0}.list-card .meaning{font-size:15px}.pagination{display:flex;justify-content:center;gap:15px;align-items:center;margin:30px 0}.reading{line-height:2.4}ruby{ruby-position:over}rt{font-size:.5em;color:var(--muted)}.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:24px;align-items:start}.detail-main .card{margin-bottom:20px}.detail-aside{position:sticky;top:20px}.detail-aside .card{margin-bottom:18px}.sense{border-top:1px solid var(--line);padding:18px 0}.sense:first-of-type{border-top:0;padding-top:0}.sense:last-child{padding-bottom:0}.sense-number{font-size:12px;color:var(--accent);font-weight:700}.example{padding:14px 16px;border-left:3px solid #9dad94;background:#f6f8f3;margin:12px 0}.example p{margin-bottom:4px}.formula{background:#f0f3ed;border-radius:8px;padding:16px;font-family:inherit;overflow-wrap:anywhere}.relation{display:block;border:1px solid var(--line);border-radius:8px;padding:14px;margin:10px 0}.relation p{font-size:13px;color:var(--muted);margin:7px 0 0}.relation strong{font-size:16px}.reverse-card{display:block;border-top:1px solid var(--line);padding:16px 0}.reverse-card span{display:block;font-size:14px;color:var(--muted)}.expression{font-size:25px;line-height:2;overflow-wrap:anywhere;white-space:pre-wrap;margin:14px 0 20px}.chunk{border:0;border-bottom:2px solid #9cab84;background:#eef3e8;border-radius:4px;font:inherit;line-height:inherit;padding:0 4px;min-height:44px;display:inline;cursor:pointer}.chunk:hover{background:#dce9d2}.expression .chunk{white-space:inherit}.chunk.grammar-chunk{background:#f3ecdf;border-color:#bda67e}.turn{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.speaker{font-size:12px;background:#edf0e7;align-self:start;border-radius:6px;text-align:center;margin-top:12px}.turn .expression{margin:0}.difficulty{display:flex;flex-wrap:wrap;gap:7px}.difficulty span{font-size:12px;border:1px solid var(--line);padding:3px 8px;border-radius:5px}.context{border-left:3px solid var(--accent);padding-left:17px;margin-bottom:24px}.link-group{margin-top:18px}.link-group h3{font-size:14px;color:var(--muted)}.link-group button{font-size:14px}.empty,.error{padding:45px 25px;text-align:center;border:1px dashed #c6d1c2;background:#fafbf8;border-radius:12px;grid-column:1/-1}.error{color:#863f32}.status{padding:40px;text-align:center}.alignment{border-top:1px solid var(--line);padding:14px 0}.alignment p{font-size:14px;margin:8px 0}.alignment details{font-size:12px;color:var(--muted)}.notice{font-size:13px;color:var(--muted);border-left:2px solid #bbaa8e;padding-left:13px;margin:20px 0}.goal-hero{background:#eeeede;border:1px solid #dbdfcb;border-radius:12px;padding:28px;margin-bottom:22px}.mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.mode-grid button{display:block;text-align:left;padding:20px}.mode-grid button[aria-pressed=true]{border:2px solid var(--green);background:#edf3e8}.mode-grid small{display:block;margin-top:6px}.ai-workspace{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ai-workspace textarea{min-height:160px;resize:vertical}.feedback-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:10px 0;font-size:14px}.context-pill{padding:15px;background:#eef2e9;border-radius:8px;margin-bottom:15px}.progress-domains{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.progress-domains div{border-top:2px solid #cbd7c4;padding-top:10px}.progress-domains strong{display:block;font-size:13px}.progress-domains span{font-size:12px;color:var(--muted)}dialog{width:min(540px,calc(100% - 28px));max-height:85vh;overflow:auto;border:1px solid var(--line);border-radius:13px;padding:26px;color:var(--ink);box-shadow:0 20px 80px #152e2426}dialog::backdrop{background:#14292070}.close{float:right;margin-bottom:15px}#preview-body{clear:both}dialog h2{font-size:25px}.wide{grid-column:1/-1}.text-link{color:var(--green);text-decoration:underline;text-underline-offset:4px}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}
@media(max-width:850px){.hero{gap:25px}.top{padding:18px 22px}.nav{gap:2px}.nav a{padding:9px;font-size:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.detail-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}.mode-grid{grid-template-columns:1fr 1fr}.profile{display:block}.profile dl{margin-top:15px}}
@media(max-width:600px){body{padding-bottom:74px}main{padding:25px 18px 35px}.top{padding:17px 20px}.brand{font-size:21px}.top>.muted{font-size:11px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:8;background:#fffefb;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 4px max(8px,env(safe-area-inset-bottom));gap:2px}.nav a{padding:10px 1px;font-size:12px;text-align:center;min-height:45px}.hero{grid-template-columns:1fr;padding:8px 0 20px;gap:24px}.hero-art{padding:18px}.hero-art .line{font-size:16px;padding:10px 14px}.hero-art .line:first-of-type{font-size:19px}.hero h1{font-size:33px}.hero-copy>p{font-size:14px}.grid,.grid.two{grid-template-columns:1fr}.card{padding:20px}.domain-card{display:grid;grid-template-columns:42px 1fr;gap:0 16px}.domain-icon{grid-row:1/3;margin:0}.domain-card h3{font-size:20px}.domain-card p{min-height:0;grid-column:2}.domain-card .end{grid-column:1/-1;margin-top:12px}.section{margin:26px 0}.section-head h2{font-size:21px}.profile{display:flex;gap:16px}.profile dl{margin-top:0;gap:13px}.profile h3{font-size:16px}.tabs{gap:3px}.tabs a{padding:7px 11px;font-size:14px}.pills{gap:7px}.pills a{font-size:13px;padding:7px 11px}.filters{padding:14px}.filter-row{gap:10px}.filter-row label{min-width:115px}.filter-row .search-label{min-width:100%}.detail-aside,.ai-workspace{grid-template-columns:1fr}.expression{font-size:22px;line-height:2.1}.lexeme{font-size:26px}.breadcrumb{margin-bottom:20px}.page-heading{margin-bottom:20px}.goal-hero{padding:21px}.mode-grid{gap:9px}.mode-grid button{padding:14px;font-size:14px}.mode-grid small{font-size:12px}.callout{padding:21px}footer{padding:20px 18px;font-size:12px}.profile .muted{font-size:12px}.progress-domains{gap:8px}.progress-domains strong{font-size:12px}}

.dynamic-examples{border-color:#d8cfeb;background:#fcfaff}.dynamic-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dynamic-head h2{margin:5px 0 3px}.dynamic-head p{margin:0}.ai-example-label{display:inline-block;border-radius:999px;background:#eee8f7;color:#66527b;padding:3px 10px;font-size:12px;font-weight:700}.dynamic-status{min-height:26px;margin-top:14px;color:var(--muted);font-size:14px}.dynamic-example{padding:15px 0;border-top:1px solid #e7e0ef}.dynamic-example:first-child{margin-top:5px}.dynamic-example p{margin:0 0 4px}.dynamic-example p:first-child{font-size:18px;color:var(--ink)}.dynamic-example small{display:block;color:var(--muted)}.dynamic-actions{display:flex;align-items:flex-start;gap:10px;margin-top:15px}.dynamic-actions details{margin:0}.dynamic-actions summary{border:1px solid var(--line);border-radius:9px;padding:0 14px;background:white}.dynamic-actions details .actions{margin-top:8px}.dynamic-error{color:#863f32}.dynamic-skeleton{display:grid;gap:11px}.dynamic-skeleton span{display:block;height:56px;border-radius:8px;background:linear-gradient(90deg,#eee9f3 25%,#faf8fc 50%,#eee9f3 75%);background-size:200% 100%;animation:dynamic-shimmer 1.25s infinite}@keyframes dynamic-shimmer{to{background-position:-200% 0}}@media(max-width:600px){.dynamic-head{display:block}.dynamic-head .primary{width:100%;margin-top:14px}.dynamic-actions{justify-content:space-between}.dynamic-actions details .actions{display:grid}.dynamic-example p:first-child{font-size:17px}}

.profile{align-items:flex-start}.profile .badge{flex-shrink:0}.section-head>.muted{max-width:150px}.chunk{box-decoration-break:clone;-webkit-box-decoration-break:clone}html{scroll-padding-bottom:90px}.chunk:focus-visible{outline-offset:2px}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Phase 3.5C.1 learner-first exam browsing */
.academic-goals{margin-top:24px}.academic-goals .goal-hero{margin:0}.target-links{display:flex;flex-wrap:wrap;gap:10px}.target-links .button{min-width:58px}.about-link{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:4px}.prose{max-width:760px;margin:0 0 18px}.exam-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:transparent;border:0}.exam-heading h1{margin:0}.exam-heading .eyebrow{margin-bottom:5px}.target-nav{margin:20px 0 8px}.exam-tabs{position:sticky;top:0;z-index:5;background:#f7f8f4;padding:14px 0;margin:8px 0 0}.exam-tabs a{flex:0 1 auto;justify-content:center}.exam-filters{margin-top:14px}.exam-grid{align-items:stretch}.learner-card{display:flex;flex-direction:column;gap:7px;min-height:210px}.learner-card h2,.learner-card p{margin:0}.learner-card .text-link{margin-top:auto;padding-top:10px}.learner-meta{display:flex;flex-wrap:wrap;gap:7px 15px;color:var(--muted);font-size:13px}.learner-meta span{position:relative}.learner-meta span:before{content:'·';position:absolute;left:-10px}.expression-preview{color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.form{font-size:17px;overflow-wrap:anywhere}.load-more-wrap{display:flex;justify-content:center;margin:30px 0}.load-more-wrap button{min-width:160px}.lesson-sheet{width:min(760px,calc(100% - 32px));max-width:760px;max-height:min(90vh,900px);padding:0;overflow:hidden}.lesson-sheet::backdrop{background:#14292080}.sheet-toolbar{position:sticky;top:0;z-index:2;padding:14px 20px;border-bottom:1px solid var(--line);background:#fff}.sheet-close{min-height:44px}.sheet-body{padding:24px;max-height:calc(min(90vh,900px) - 74px);overflow-y:auto;overscroll-behavior:contain}.sheet-heading{padding:4px 2px 20px}.sheet-heading h2{font-size:clamp(27px,5vw,38px);margin-bottom:5px}.sheet-body>.card{margin-bottom:16px}.sheet-expression{font-size:clamp(22px,4vw,30px)}
@media(max-width:600px){.exam-heading{align-items:flex-start}.exam-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.exam-tabs a{padding:7px 6px;font-size:13px;text-align:center}.exam-filters .filter-row label{min-width:calc(50% - 6px)}.exam-filters .filter-row .search-label{min-width:100%}.learner-card{min-height:0;padding:18px}.lesson-sheet{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.sheet-toolbar{padding:10px 16px}.sheet-body{padding:18px;max-height:calc(100dvh - 65px)}.academic-goals{gap:16px}.target-links .button{flex:1 1 56px}.exam-heading h1{font-size:30px}}

/* Phase 3.5D learning path */
.stage-path{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:22px 0 34px}.stage-path a{min-height:58px;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}.stage-path a.active{background:var(--ink);color:white}.stage-path small{font-size:10px;letter-spacing:.08em}.stage-path strong{font-size:19px}.lesson-list-head{align-items:center}.lesson-grid{display:grid;gap:14px}.lesson-card{display:grid;grid-template-columns:54px minmax(0,1fr) 28px;gap:18px;align-items:center;padding:22px 25px}.lesson-card h2{margin:0 0 5px}.lesson-card p{margin:0;color:var(--muted)}.lesson-card .eyebrow{margin-bottom:5px}.lesson-number{width:48px;height:48px;border-radius:50%;background:#e8eee4;color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:700}.lesson-arrow{font-size:24px;color:var(--green)}.lesson-size{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:12px}.library-strip{display:flex;align-items:center;justify-content:space-between;gap:25px;background:#eef2e9;border:1px solid #dce5d7;border-radius:12px;padding:24px}.library-strip h2,.library-strip p{margin-bottom:5px}.lesson-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#e9efe4;border:1px solid #d6e0d2;border-radius:14px;padding:28px;margin-bottom:24px}.lesson-hero h1{margin-bottom:8px}.lesson-hero p{margin:0}.lesson-estimate{width:118px;min-width:118px;height:118px;border-radius:50%;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.lesson-estimate strong{font-size:32px;line-height:1}.lesson-estimate span{font-size:11px;color:var(--muted);margin-top:7px}.lesson-stepper{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;background:#f7f8f4;border-bottom:1px solid var(--line);padding:10px 0}.lesson-stepper button{border:0;background:transparent;border-radius:8px;display:flex;gap:7px;padding:8px 5px}.lesson-stepper button span{width:24px;height:24px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:12px}.lesson-stepper button[aria-selected=true]{background:var(--ink);color:white}.lesson-stepper button[aria-selected=true] span{border-color:#fff}.lesson-panels{min-height:440px;padding:28px 0 12px}.section-intro{max-width:700px;margin-bottom:20px}.section-intro h2{margin-bottom:6px}.section-intro p{color:var(--muted)}.overview-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.lesson-map ol{columns:2;padding-left:22px}.lesson-map li{margin-bottom:7px}.lesson-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.lesson-item{width:100%;min-height:82px;padding:15px 17px;text-align:left;justify-content:space-between;background:var(--paper)}.lesson-item>span:first-child{min-width:0}.lesson-item strong,.lesson-item small{display:block}.lesson-item strong{font-size:17px;overflow-wrap:anywhere}.lesson-item small{margin-top:3px;line-height:1.6}.lesson-item>span:last-child{display:flex;align-items:center;gap:6px;flex-shrink:0}.lesson-required{background:#e6eee3;color:#315942}.lesson-support{background:#f1eee6;color:#6d604b}.scenario-card{margin-bottom:14px}.scenario-expression{font-size:22px;line-height:2}.dialogue .turn{grid-template-columns:70px 1fr}.dialogue .turn p{margin:0}.practice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.practice-grid .card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:120px}.practice-grid strong{font-size:18px}.practice-grid span{color:var(--muted);font-size:13px}.lesson-controls,.lesson-neighbors{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:18px 0}.lesson-neighbors{margin-top:22px}.compact{padding:25px}.lesson-panel .notice{margin-top:20px}
@media(max-width:768px){.lesson-items{grid-template-columns:1fr}.overview-grid{grid-template-columns:1fr}.lesson-stepper button{font-size:12px;flex-direction:column;gap:2px}.library-strip{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.stage-path{gap:5px}.stage-path a{min-height:52px}.lesson-list-head{display:block}.lesson-list-head .button{margin-top:10px}.lesson-card{grid-template-columns:42px minmax(0,1fr) 16px;gap:12px;padding:18px 15px}.lesson-number{width:40px;height:40px;font-size:13px}.lesson-card h2{font-size:19px}.lesson-card p{font-size:13px}.lesson-size{gap:4px 10px}.lesson-hero{align-items:flex-start;padding:20px}.lesson-estimate{width:76px;min-width:76px;height:76px}.lesson-estimate strong{font-size:24px}.lesson-estimate span{font-size:9px;max-width:55px}.lesson-stepper{grid-template-columns:repeat(6,minmax(52px,1fr));scrollbar-width:none}.lesson-stepper button{min-height:58px}.lesson-panels{padding-top:22px;padding-bottom:100px;min-height:390px}.practice-grid{grid-template-columns:1fr}.practice-grid .card{min-height:92px;padding:17px}.lesson-controls{position:sticky;bottom:72px;background:#f7f8f4;z-index:3}.lesson-controls .muted{font-size:11px}.lesson-neighbors{align-items:stretch;flex-direction:column}.lesson-neighbors .button{width:100%}body[data-page=lesson] #preview{width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0}.dialogue .turn{grid-template-columns:48px 1fr}}

/* Phase 3.5E.1C scalable vocabulary index */
.vocab-index-selector{display:flex;gap:5px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:5px 1px 12px;margin:14px 0 18px}.vocab-index-selector a{flex:0 0 44px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:13px}.vocab-index-selector a.active{background:var(--ink);border-color:var(--ink);color:white;font-weight:700}.vocab-index{border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.vocab-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(72px,.45fr) minmax(180px,1.5fr) 20px;gap:14px;align-items:center;min-height:54px;padding:7px 16px;border-top:1px solid var(--line)}.vocab-row:first-child{border-top:0}.vocab-row:hover{background:var(--wash);text-decoration:none}.vocab-headword,.vocab-meaning{min-width:0;overflow-wrap:anywhere}.vocab-headword{font-size:17px}.vocab-headword span{font-size:13px;font-weight:400;color:var(--muted)}.vocab-pos{font-size:13px;color:var(--green);font-weight:650}.vocab-meaning{font-size:14px}.vocab-arrow{font-size:23px;color:var(--muted)}
@media(max-width:600px){.vocab-index-selector{margin-inline:-2px}.vocab-row{grid-template-columns:minmax(0,1fr) auto 16px;gap:8px 10px;min-height:58px;padding:7px 11px}.vocab-headword{font-size:16px}.vocab-pos{font-size:12px;text-align:right}.vocab-meaning{grid-column:1/3;font-size:13px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vocab-arrow{grid-column:3;grid-row:1/3;align-self:center}.vocab-headword span{font-size:12px}}

.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:clamp(36px,8vw,110px);align-items:center;min-height:calc(100vh - 250px);max-width:1040px;margin:0 auto}.auth-intro{max-width:500px}.auth-intro h1{font-size:clamp(38px,6vw,64px);margin:8px 0 16px}.auth-intro p{color:var(--muted);font-size:17px;line-height:1.8}.auth-card{padding:clamp(24px,4vw,38px)}.auth-card h2{font-size:28px;margin:8px 0 16px}.auth-step{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--green)}.auth-card form{display:grid;gap:11px}.auth-card label{font-weight:650;font-size:14px}.auth-card input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:9px;background:white;padding:11px 13px;color:var(--ink);font:inherit}.auth-card input:focus{outline:3px solid #afc7b1;outline-offset:1px;border-color:var(--green)}.auth-card form .primary{margin-top:5px;min-height:48px}.otp-input{font-size:25px!important;font-weight:700;letter-spacing:.32em;text-align:center;font-variant-numeric:tabular-nums}.auth-status{min-height:24px;margin:2px 0 0;font-size:13px;color:var(--muted)}.auth-status.error{color:#863f32}.auth-status.success{color:var(--green)}.auth-note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin:16px 0 0}.auth-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:17px}.text-button{border-color:transparent;background:transparent;color:var(--green);text-decoration:underline;text-underline-offset:4px}.account-summary{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:20px 0}.account-summary dt{color:var(--muted)}.account-summary dd{margin:0;overflow-wrap:anywhere}
@media(max-width:768px){.auth-layout{grid-template-columns:1fr;gap:24px;min-height:0;max-width:540px}.auth-intro h1{font-size:38px}.auth-intro p{font-size:15px}.auth-card{width:100%}}
@media(max-width:600px){.auth-layout{gap:18px}.auth-intro h1{font-size:32px}.auth-intro p{margin-bottom:0}.auth-card{padding:22px 18px}.auth-actions{align-items:stretch;flex-direction:column}.auth-actions>*{width:100%;justify-content:center}.otp-input{font-size:22px!important}}

/* Phase 4B account progress */
.progress-pill{display:inline-block;margin-left:8px;border-radius:999px;padding:2px 8px;background:#eee9df;color:#6b5a3e;font-size:11px;font-weight:650;line-height:1.6;white-space:nowrap}.progress-pill.familiar,.progress-pill.completed{background:#dfeade;color:#315942}.progress-pill.in_progress{background:#eee9df;color:#6b5a3e}.learning-check form{display:grid;gap:10px}.learning-check label{font-size:13px;font-weight:650}.check-status{min-height:26px;margin:0;font-size:13px;color:var(--muted)}.check-status.success{color:var(--green)}.check-status.wrong{color:#863f32}.progress-summary{align-items:stretch}.progress-metric dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.progress-metric dl div{border-top:1px solid var(--line);padding-top:9px}.progress-metric dt{font-size:12px;color:var(--muted)}.progress-metric dd{margin:0;font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.progress-empty{max-width:720px;padding:35px}.continue-learning{display:flex;align-items:center;justify-content:space-between;gap:24px}.continue-learning h2,.continue-learning p{margin-bottom:5px}.recent-activity{display:grid;gap:10px}.recent-activity .card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 18px}.recent-activity .card>span{font-size:12px;color:var(--green);font-weight:700}.recent-activity small{text-align:right}
@media(max-width:600px){.progress-pill{margin-left:5px;padding-inline:6px}.progress-summary{grid-template-columns:1fr}.continue-learning{align-items:stretch;flex-direction:column}.continue-learning .button{width:100%}.recent-activity .card{grid-template-columns:58px minmax(0,1fr);gap:5px 10px}.recent-activity small{grid-column:2;text-align:left}.progress-empty{padding:24px 20px}}

/* Phase 4C spaced repetition */
.review-dashboard{display:flex;align-items:center;justify-content:space-between;gap:24px}.review-dashboard h2,.review-dashboard p{margin-bottom:5px}.review-dashboard h2 strong{font-variant-numeric:tabular-nums}.review-shell{max-width:760px;padding:clamp(24px,5vw,42px)}.review-shell h2{font-size:clamp(22px,4vw,30px);margin:25px 0}.review-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.review-shell form{display:grid;gap:12px}.review-shell label{font-weight:650}.review-shell input{min-height:52px;font-size:18px}.review-shell #review-next{margin-top:14px}.review-complete{max-width:760px;padding:35px}.review-complete h2{margin-bottom:8px}
@media(max-width:600px){.review-dashboard{align-items:stretch;flex-direction:column}.review-dashboard .button,.review-shell button{width:100%}.review-shell{padding:24px 20px}.review-meta{justify-content:space-between;gap:7px}.review-complete{padding:25px 20px}}

.recommendation-dashboard{display:flex;align-items:center;justify-content:space-between;gap:28px;background:#e9f1e5}.recommendation-dashboard h2{margin-bottom:7px;overflow-wrap:anywhere}.recommendation-dashboard p{margin:0;color:var(--muted);font-size:14px}.recommendation-dashboard p a{text-decoration:underline;text-underline-offset:4px}.recommendation-dashboard>.button{flex:0 0 auto}.recommendation-empty-note{margin-top:-14px}.weakness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.weakness-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.weakness-heading h2{margin-bottom:13px}.weakness-list{display:grid}.weakness-list a{display:grid;grid-template-columns:68px minmax(0,1fr) minmax(120px,auto) 18px;gap:10px;align-items:center;border-top:1px solid var(--line);padding:13px 0;min-width:0}.weakness-list strong,.weakness-list small{overflow-wrap:anywhere}.weakness-language{color:var(--green);font-size:11px;font-weight:700}.weakness-list small{color:var(--muted)}.weakness-empty{color:var(--muted);font-size:14px;margin:0;border-top:1px solid var(--line);padding-top:14px}
@media(max-width:768px){.weakness-grid{grid-template-columns:1fr}.weakness-list a{grid-template-columns:64px minmax(0,1fr) minmax(105px,auto) 16px}}
@media(max-width:600px){.recommendation-dashboard{align-items:stretch;flex-direction:column}.recommendation-dashboard>.button{width:100%}.weakness-heading{display:block}.weakness-list a{grid-template-columns:58px minmax(0,1fr) 16px;gap:5px 9px}.weakness-list small{grid-column:2}.weakness-list a>span:last-child{grid-column:3;grid-row:1/3}.weakness-panel{padding:18px}.recommendation-empty-note{margin-top:-8px}}

/* Phase 3.6 AI Tutor */
.ai-language{display:grid;grid-template-columns:1fr 1fr;max-width:420px;border:1px solid var(--line);border-radius:10px;background:white;padding:4px;margin:18px 0}.ai-language a{display:flex;min-height:46px;align-items:center;justify-content:center;border-radius:7px;font-weight:650}.ai-language a.active{background:var(--ink);color:white;text-decoration:none}.tutor-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 20px;padding:12px 15px;background:#eef2e9;border:1px solid #d9e2d4;border-radius:9px;font-size:14px}.tutor-context>a{margin-left:auto;color:var(--green);text-decoration:underline;text-underline-offset:4px}.tutor-shell{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;max-width:860px}.tutor-messages{min-height:330px;max-height:56vh;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:15px}.tutor-empty{margin:auto;text-align:center;max-width:520px;color:var(--muted);padding:30px 12px}.tutor-empty h2{color:var(--ink);margin-bottom:8px}.tutor-message{max-width:min(720px,90%);padding:13px 16px;border-radius:11px;background:#eff3ed;align-self:flex-start}.tutor-message.user{background:#e8efe8;align-self:flex-end}.tutor-message.failed{background:#fff3f0;border:1px solid #e3c4bc;color:#7a382d}.tutor-message-role{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:4px}.tutor-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.retry-message{margin-top:10px}.tutor-shortcuts{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 4px;border-top:1px solid var(--line)}.tutor-shortcuts button{white-space:nowrap;font-size:13px;min-height:38px;padding:6px 12px}.tutor-composer{padding:12px 16px 16px}.tutor-composer textarea{min-height:92px;resize:vertical}.tutor-compose-actions{display:flex;align-items:center;gap:9px;margin-top:9px}.tutor-compose-actions #tutor-status{font-size:13px;color:var(--muted);margin-right:auto}.tutor-boundary{font-size:13px;color:var(--muted);margin:13px 0;max-width:860px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lesson-item-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.lesson-item-row .lesson-item{min-width:0}.lesson-ask-ai{align-self:center;white-space:nowrap}
@media(max-width:600px){.ai-language{max-width:none}.tutor-context>a{width:100%;margin-left:0}.tutor-messages{min-height:300px;padding:16px}.tutor-message{max-width:94%;font-size:15px}.tutor-shortcuts{padding-left:12px;padding-right:12px}.tutor-composer{padding:10px 12px 13px}.tutor-compose-actions{flex-wrap:wrap}.tutor-compose-actions #tutor-status{width:100%}.tutor-compose-actions button{flex:1}.lesson-item-row{grid-template-columns:minmax(0,1fr)}.lesson-ask-ai{justify-self:end;margin-top:-4px}}
/* Phase 4E focused deterministic practice */
.practice-shell{max-width:760px;margin:1.5rem auto;padding:clamp(1rem,4vw,2rem)}
.practice-top{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}
.practice-shell h2{font-size:clamp(1.25rem,4vw,2rem);line-height:1.45;overflow-wrap:anywhere}
.practice-shell fieldset{border:0;padding:0;margin:1.25rem 0}
.practice-choices{display:grid;gap:.75rem}
.practice-choices label{display:block;cursor:pointer;position:relative}
.practice-choices input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;inset-inline-start:1rem;top:1rem}
.practice-choices span{display:flex;align-items:center;gap:.9rem;min-height:56px;border:1px solid var(--line,#d8ddd3);border-radius:14px;padding:.85rem 1rem;background:var(--surface,#fff);overflow-wrap:anywhere}
.practice-choices b{display:grid;place-items:center;flex:0 0 2rem;height:2rem;border-radius:50%;background:#edf1e8}
.practice-choices input:focus-visible+span{outline:3px solid #236b4b;outline-offset:3px}
.practice-choices input:checked+span{border-color:#236b4b;box-shadow:inset 0 0 0 2px #236b4b}
.practice-submit{position:sticky;bottom:0;padding:.75rem 0;background:linear-gradient(transparent,var(--page,#f7f8f4) 30%)}
.practice-submit button,#practice-next{width:100%;min-height:48px}
.practice-feedback{min-height:1.5rem;margin:1rem 0;padding:.75rem 0}
.practice-feedback.success{border-left:4px solid #237a4b;padding-left:1rem}
.practice-feedback.wrong{border-left:4px solid #a33a32;padding-left:1rem}
.practice-summary{max-width:680px;margin:1.5rem auto;text-align:center}
.practice-summary dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1.5rem 0}
.practice-summary dl div{padding:1rem;border-radius:12px;background:#f0f3ec}
.practice-summary dt{font-size:.875rem}.practice-summary dd{font-size:1.75rem;font-weight:700;margin:.25rem 0 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:430px){.practice-shell{margin:.75rem 0}.practice-summary dl{grid-template-columns:1fr}.practice-choices span{min-height:60px}.nav{gap:.35rem}.nav a{padding:.35rem}}
/* Curriculum Expansion 01 instructional-role labels */
.lesson-new{background:#e6eee3;color:#315942}.lesson-review{background:#e8eef5;color:#37556f}
.lesson-target-title{font-weight:650;color:var(--green);overflow-wrap:anywhere}.lesson-card .lesson-target-title{margin:0 0 5px;color:var(--green)}.lesson-authored-asset{overflow-wrap:anywhere}.lesson-authored-asset ol{padding-left:22px}.lesson-authored-asset li{margin:.45rem 0}.dialogue .turn strong small{display:block;margin-top:.2rem;color:var(--muted);font-size:10px;font-weight:500}.dialogue-line{display:block}.dialogue-translation{margin-top:.35rem!important;color:var(--muted);font-size:13px}

/* Phase 4F learner settings */
.learner-settings form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:end}.learner-settings label{display:grid;gap:.45rem;font-weight:700}.learner-settings label small{font-weight:400;color:var(--muted)}.learner-settings .actions,.learner-settings #settings-status{grid-column:1/-1}.learner-settings.first-run{border-color:var(--green);box-shadow:0 0 0 2px rgba(35,107,75,.12)}
@media(max-width:600px){.learner-settings form{grid-template-columns:1fr}.weakness-heading{align-items:stretch}.weakness-heading .button{width:100%;text-align:center}}
