:root{font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#202722;background:#f4f6f1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink:#202722;--muted:#78817a;--line:#e8ebe5;--surface:#fff;--green:#38624e;--green-dark:#234634;--green-soft:#e7eee8;--shadow:0 5px 22px rgba(34,50,38,.045)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#fbfcf9;border-right:1px solid #e7ebe4;padding:25px 16px 14px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 31px;color:inherit;text-decoration:none}.brand-mark{height:48px;width:48px;border-radius:16px;background:#315e48;color:#f7f9f4;display:grid;place-items:center;font-weight:800;letter-spacing:-1px}.brand-mark.small{height:39px;width:39px;border-radius:13px;font-size:15px}.brand strong,.brand small{display:block}.brand strong{font-size:15px;font-weight:700}.brand small{font-size:9px;letter-spacing:1.3px;color:#9ba39c;margin-top:3px}.nav-label{font-size:10px;letter-spacing:1.25px;color:#a0a9a1;font-weight:700;padding:0 12px 9px}.second-label{margin-top:25px}.sidebar nav{display:grid;gap:4px}.nav-item{height:43px;border:0;background:transparent;border-radius:9px;display:flex;align-items:center;gap:13px;padding:0 12px;text-align:left;color:#69736c;font-size:13px;transition:.2s;width:100%}.nav-item:hover{background:#f0f3ee;color:#34473b}.nav-item.active{background:#e8eee8;color:#2f6247;font-weight:600}.nav-icon{font-size:16px;width:18px;text-align:center;color:#77867a;font-weight:600}.nav-count{margin-left:auto;font-size:10px;color:#9da79f}.sidebar-bottom{margin-top:auto}.storage-card{border:1px solid #e9ede7;border-radius:11px;padding:11px 10px;margin:0 2px 13px;display:flex;align-items:center;gap:9px;background:#f8faf6}.storage-icon{width:28px;height:28px;display:grid;place-items:center;background:#ebf1ec;color:#52765e;border-radius:8px}.storage-card strong,.storage-card small,.profile strong,.profile small{display:block}.storage-card strong{font-size:11px}.storage-card small{color:#9aa39c;font-size:9px;margin-top:3px}.storage-card i,.sync-status i{width:6px;height:6px;border-radius:100%;background:#6e9b70;margin-left:auto}.profile{border-top:1px solid var(--line);padding:14px 5px 0;display:flex;align-items:center;gap:9px}.avatar,.top-avatar{width:31px;height:31px;border-radius:50%;background:#ead8c8;color:#865e46;display:grid;place-items:center;font-weight:600}.profile strong{font-size:11px}.profile small{font-size:10px;color:#929a93;margin-top:3px}.quiet-button{margin-left:auto;border:0;background:none;color:#829087;font-size:10px}.main-content{margin-left:248px;max-width:1600px;min-height:100vh;padding:0 48px}.topbar{height:70px;border-bottom:1px solid rgba(226,231,224,.85);display:flex;align-items:center;justify-content:space-between}.breadcrumbs{display:flex;align-items:center;gap:10px;color:#9ba39c;font-size:11px}.breadcrumbs b{font-weight:400;color:#c1c8c0}.breadcrumbs strong{font-weight:600;color:#4c5750}.top-actions{display:flex;align-items:center;gap:19px}.sync-status{font-size:10px;color:#879289;display:flex;align-items:center;gap:7px}.sync-status i{margin:0;background:#7ca17b}.top-avatar{width:30px;height:30px;font-size:12px}.menu-button{display:none}.page-view{padding:33px 0 30px;animation:appear .25s ease}@keyframes appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.welcome-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:1px 0 25px}.eyebrow{font-size:9px;letter-spacing:1.45px;font-weight:700;color:#a0a9a1;margin:0 0 8px}.welcome-row h1,.placeholder-view h1{font-size:24px;line-height:1.35;letter-spacing:-.7px;margin:0;font-weight:700}.welcome-row h1 span{font-size:16px;color:#bd8a5d;vertical-align:3px}.subhead,.muted{margin:7px 0 0;color:#89928b;font-size:12px;line-height:1.65}.button{border:1px solid transparent;min-height:40px;padding:0 15px;border-radius:9px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .18s,background .18s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:#fff;box-shadow:0 4px 9px #375a471a}.button.primary:hover{background:#2e563f}.button.secondary{background:#fff;border-color:var(--line);color:#53675a}.button.full{width:100%}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:15px}.score-card,.focus-card,.panel,.metric-card{background:var(--surface);border:1px solid #e9ede7;border-radius:12px;box-shadow:var(--shadow)}.score-card{padding:19px 21px 17px;background:linear-gradient(115deg,#fff 30%,#f7faf6)}.card-topline{display:flex;align-items:center;justify-content:space-between}.overline{font-size:10px;color:#7f8981;font-weight:600}.score-main{display:flex;justify-content:space-between;align-items:center;margin:19px 0 18px}.score-range{font-size:35px;line-height:1;color:#284635;font-weight:700;letter-spacing:-1.8px}.score-range span{font-weight:400;color:#a0afa3;font-size:25px;margin:0 4px}.score-caption{font-size:10px;color:#8d978e;margin-top:8px}.score-seal{width:55px;height:55px;border:1px solid #dbe4db;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#66806e;position:relative}.score-seal:before{content:"";position:absolute;inset:4px;border:1px dashed #d8e1d9;border-radius:50%}.score-seal span{font-size:17px;line-height:17px}.score-seal small{font-size:7px;letter-spacing:.8px;margin-top:2px}.score-progress{border-top:1px solid #edf0eb;padding-top:12px}.progress-track{height:5px;border-radius:8px;background:#edf0eb;overflow:hidden;margin-bottom:7px}.progress-track span{height:100%;display:block;border-radius:8px;background:#7a9b7c}.score-progress small{font-size:9px;color:#a1aaa2}.pill{font-size:9px;padding:5px 8px;border-radius:20px}.muted-pill{background:#f3f1e8;color:#93804c}.success-pill{background:#edf4ed;color:#56805d}.focus-card{padding:19px 21px 16px;background:#f0f4ef}.spark{color:#ba8757;font-size:16px}.focus-content{display:flex;align-items:flex-start;gap:12px;margin:18px 0 13px}.focus-icon{flex:none;width:36px;height:36px;border-radius:11px;background:#fff;color:#b47744;display:grid;place-items:center;font-size:14px}.focus-content h2{font-size:13px;margin:1px 0 6px;font-weight:650}.focus-content p{font-size:10px;line-height:1.7;color:#828d84;margin:0}.text-button,.link-button{border:0;background:none;color:#497155;font-size:10px;font-weight:600;padding:3px 0}.text-button span,.link-button span{margin-left:5px;font-size:14px}.section-heading{margin:27px 0 12px;display:flex;align-items:flex-end;justify-content:space-between}.section-heading .eyebrow,.panel-heading .eyebrow{margin-bottom:4px}.section-heading h2,.panel-heading h2{font-size:15px;margin:0;font-weight:650}.select-button{background:#fff;border:1px solid #e8ece6;border-radius:7px;padding:7px 10px;color:#67736a;font-size:10px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.metric-card{padding:13px 14px 12px;border-radius:10px}.metric-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#818c83}.metric-icon{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-size:13px}.metric-icon.indigo{background:#eff0f7;color:#747b9a}.metric-icon.peach{background:#faf0e9;color:#c17e4d}.metric-icon.mint{background:#edf3ed;color:#5c8166}.metric-icon.rose{background:#f8eeee;color:#bd7772}.metric-value{font-size:24px;font-weight:700;letter-spacing:-.8px;margin:10px 0 7px}.metric-value small{font-size:10px;font-weight:500;color:#9ba49d;margin-left:2px}.metric-foot{font-size:9px;color:#a0a8a1}.lower-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:14px;margin-top:15px}.panel{padding:17px 18px 15px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center}.panel-heading h2{font-size:14px}.module-list{margin-top:8px}.module-row{min-height:48px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0f2ee;padding:5px 0}.module-row:last-child{border:0}.module-row.clickable{width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left}.module-symbol{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:10px;font-weight:600;flex:none}.module-symbol.listen{background:#faf1e9;color:#b77949}.module-symbol.read{background:#edf3ed;color:#5e8268}.module-symbol.translate{background:#f2eff7;color:#8d7aa8}.module-name{flex:1}.module-name strong,.module-name small{display:block}.module-name strong{font-size:10px;font-weight:600}.module-name small{font-size:8px;color:#a2aaa3;margin-top:3px}.row-arrow{color:#7e9782;font-size:14px}.period-tag{color:#9ba49c;font-size:9px}.empty-state{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:#9ba49c}.empty-state>span{font-size:27px;color:#9db09f}.empty-state strong{font-size:10px;font-weight:550;color:#748078}.empty-state small{font-size:9px}.resource-heading{margin-top:24px}.resource-table{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.resource-head,.resource-row{display:grid;grid-template-columns:minmax(200px,2fr) .8fr .6fr .7fr .7fr 55px;gap:10px;align-items:center;padding:12px 15px}.resource-head{background:#f8faf7;color:#8b968d;font-size:9px;font-weight:600}.resource-row{border-top:1px solid #f0f2ee;color:#67736a;font-size:10px}.resource-name{display:flex;gap:9px;align-items:center;min-width:0}.resource-name>span:last-child{min-width:0}.resource-name strong,.resource-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-name strong{font-size:10px;color:#354139}.resource-name small{font-size:8px;color:#9da69e;margin-top:3px}.file-mark{width:31px;height:34px;flex:none;border-radius:8px;display:grid;place-items:center;background:#edf3ed;color:#5e8268;font-size:8px;font-weight:700}.status-chip{justify-self:start;background:#edf4ed;color:#56805d;border-radius:12px;padding:4px 7px;font-size:8px}.download-button{border:0;background:none;color:#4d7558;font-size:9px}.empty-library{min-height:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;color:#9ba49c}.empty-library span{font-size:25px;color:#90a695}.empty-library strong{font-size:12px;color:#65736a}.empty-library small{font-size:9px}.upload-panel{background:#fbfcf9;border:1px dashed #cbd7cb;border-radius:12px;min-height:170px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;text-align:center;padding:23px;margin-bottom:22px}.upload-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e8eee8;color:#477356;font-size:18px}.upload-panel>strong{font-size:11px}.upload-panel>span{color:#9ba49c;font-size:9px}.selected-files{display:grid;gap:8px;margin-top:8px;width:min(100%,500px)}.selected-files>span{font-size:9px;color:#69756d}.inline-message{font-size:10px;color:#587b5e;margin:10px 0 0}.count-badge{display:inline-grid;place-items:center;margin-left:6px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#edf3ed;color:#58805e;font-size:9px;vertical-align:1px}.settings-view{max-width:900px}.settings-panel{margin-bottom:15px}.settings-form{max-width:520px;display:grid;gap:9px;margin-top:22px}.settings-form label,.auth-form label{font-size:10px;font-weight:600;color:#5d685f;margin-top:5px}.settings-form input,.auth-form input{height:40px;border:1px solid #dfe6de;border-radius:8px;background:#fff;padding:0 12px;font-size:11px;outline:none}.settings-form input:focus,.auth-form input:focus{border-color:#88a58d;box-shadow:0 0 0 3px #729a7922}.settings-form label .muted{font-size:9px;font-weight:400;margin-left:5px}.button-row{display:flex;gap:9px;margin-top:8px}.privacy-note{font-size:9px;color:#9aa39c;line-height:1.6;margin-top:8px}.connection-panel{max-width:620px}.settings-row{display:flex;justify-content:space-between;border-top:1px solid #eff1ee;padding:13px 0;font-size:10px;color:#8b958c}.settings-row strong{font-size:10px;color:#4b5c4e;font-weight:550}.placeholder-view{min-height:calc(100vh - 70px);padding-top:75px;max-width:760px}.placeholder-icon{width:52px;height:52px;background:#e8eee8;border-radius:16px;display:grid;place-items:center;color:#477356;font-size:23px;margin-bottom:25px}.placeholder-view h1{font-size:29px;margin-bottom:10px}.placeholder-view>p:not(.eyebrow){color:#89928b;font-size:13px;line-height:1.75;max-width:500px}.placeholder-stat{border-top:1px solid #e4e9e2;margin-top:36px;padding-top:22px;display:flex;align-items:baseline;gap:12px;color:#8a948c;font-size:11px}.placeholder-stat strong{font-size:25px;color:#345640}.auth-screen,.loading-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,390px);padding:34px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px #273a2b12}.auth-card .brand-mark{margin-bottom:21px}.auth-card .eyebrow{margin-bottom:8px}.auth-card h1{font-size:21px;margin:0;letter-spacing:-.4px}.auth-card .muted{font-size:11px}.auth-form{display:grid;gap:9px;margin-top:23px}.form-error{margin:0;color:#b4574d;font-size:10px}.privacy-note{display:block}.loading-screen{display:flex;gap:11px;align-items:center;color:#829087;font-size:11px}.spinner{width:16px;height:16px;border:2px solid #dfe7df;border-top-color:#52775b;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scrim{display:none}@media(max-width:1180px){.main-content{padding:0 27px}.sidebar{width:225px}.main-content{margin-left:225px}.hero-grid{grid-template-columns:1fr 1fr}.lower-grid{grid-template-columns:1fr}.metrics-grid{gap:9px}}@media(max-width:760px){.sidebar{width:270px;transform:translate(-102%);transition:transform .25s;box-shadow:15px 0 35px #1d2b2010}.sidebar.open{transform:translate(0)}.scrim{display:block;position:fixed;inset:0;background:#17231c55;z-index:19}.main-content{margin-left:0;padding:0 17px}.topbar{height:58px;gap:12px}.menu-button{display:block;border:0;background:none;color:#647168;font-size:18px;padding:4px}.breadcrumbs{margin-right:auto}.top-actions{gap:10px}.sync-status{font-size:0}.sync-status i{width:7px;height:7px}.page-view{padding-top:23px}.welcome-row{align-items:flex-start;flex-direction:column;margin-bottom:17px}.welcome-row h1{font-size:21px}.welcome-row .button{height:37px}.hero-grid{grid-template-columns:1fr;gap:10px}.score-card,.focus-card{padding:16px}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{min-height:94px}.lower-grid{margin-top:10px;gap:10px}.panel{padding:15px 13px}.resource-head{display:none}.resource-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px}.resource-row>span:nth-child(2),.resource-row>span:nth-child(3),.resource-row>span:nth-child(4){display:none}.resource-row>span:nth-child(5){grid-column:2;grid-row:1}.resource-row .download-button{grid-column:2;grid-row:2}.resource-name{grid-column:1;grid-row:1/3}.upload-panel{min-height:150px}.settings-row{gap:8px}.placeholder-view{padding-top:48px;min-height:calc(100vh - 58px)}.placeholder-view h1{font-size:26px}.button-row{flex-wrap:wrap}.auth-card{padding:27px 23px}}.learning-panel,.ai-panel,.question-card{margin-top:18px;padding:20px 22px}.segmented{display:flex;gap:6px;margin-bottom:18px;padding:4px;width:max-content;background:#f1f4ef;border-radius:10px}.segmented button{border:0;background:transparent;color:#77847a;padding:9px 15px;border-radius:7px;font:inherit;font-size:11px;cursor:pointer}.segmented button.selected{background:#fff;color:#315d3f;box-shadow:0 1px 4px #172a1d14}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}.form-grid>label,.practice-controls>label{display:grid;gap:7px;color:#59675d;font-size:11px;font-weight:600}.form-grid input:not([type=checkbox]),.form-grid select,.practice-controls input,.practice-controls select,.search-input{width:100%;min-height:38px;border:1px solid #e1e8e1;border-radius:8px;padding:8px 10px;color:#34463a;background:#fff;font:inherit;font-size:11px}.form-grid select[multiple]{min-height:105px}.form-grid label small{display:block;color:#96a097;font-weight:400;margin-top:4px}.wide-field,.resource-check-list{grid-column:1/-1}.resource-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:240px;overflow:auto}.resource-check{display:flex;align-items:center;gap:10px;border:1px solid #e8ece7;border-radius:9px;padding:10px;background:#fff}.resource-check input,.check-field input{accent-color:#477356}.resource-check span{display:grid;gap:4px;min-width:0}.resource-check strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-check small{color:#929b93;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-field{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important}.job-result{border:1px solid #e8ece7;background:#fbfcfa;border-radius:10px;padding:14px}.job-result h3{font-size:13px;margin:0 0 8px}.job-result pre{white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto;font-size:10px;line-height:1.6;color:#516157}.review-list,.word-list,.exam-list{display:grid;gap:9px}.review-row,.exam-row,.word-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border:1px solid #edf0ec;border-radius:10px;padding:14px}.review-row h3{margin:9px 0;font-size:13px}.review-row p,.review-row small,.answer-review p{font-size:10px;color:#758178;line-height:1.6}.review-row ul{font-size:10px;color:#58675d;line-height:1.8}.review-meta{display:flex;flex-wrap:wrap;gap:7px;color:#839087;font-size:9px}.review-meta span{padding:4px 7px;background:#f3f5f2;border-radius:20px}.exam-row{align-items:center}.exam-row>div,.word-row>div:first-child{display:grid;gap:5px}.exam-row strong,.word-row strong{font-size:12px;color:#374b3c}.exam-row small,.word-row small{font-size:9px;color:#929b93}.word-row p{margin:3px 0;font-size:11px;color:#647167}.word-row em{font-size:10px;color:#98a098}.word-review{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.word-review span{font-size:9px;color:#879188;margin-right:5px}.search-input{max-width:220px}.practice-setup{max-width:720px}.practice-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.practice-toolbar{position:sticky;top:58px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0;padding:12px 15px;background:#ffffffed;border:1px solid #e7ece7;border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.practice-toolbar>div{display:grid;gap:4px}.practice-toolbar strong{font-size:12px}.practice-toolbar small{font-size:9px;color:#89948b}.question-card h3{font-size:13px;line-height:1.7;margin:12px 0;color:#33473a}.question-passage{white-space:pre-wrap;background:#f8faf7;padding:12px;border-radius:8px;color:#5d6b61;font-size:11px;line-height:1.8}.option-list{display:grid;gap:7px;margin:12px 0}.option-row{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #edf0ec;border-radius:8px;color:#526056;font-size:11px;line-height:1.6}.option-row:has(input:checked){border-color:#9db9a0;background:#f5f9f4}.option-row input{margin-top:3px;accent-color:#477356}.answer-box{width:100%;resize:vertical;border:1px solid #e2e9e2;border-radius:9px;padding:11px;color:#394c3f;font:inherit;font-size:11px;line-height:1.7}.answer-review{margin-top:12px;padding:12px;border-radius:8px;background:#f6f8f5;font-size:10px;display:grid;gap:5px;color:#657269}.answer-review strong{color:#3d6948}.answer-review p{margin:0}.answer-review small{color:#738077;line-height:1.5}.level-metrics{margin:16px 0}.level-list{display:grid;gap:13px}.level-row{display:grid;grid-template-columns:minmax(100px,1fr) auto;gap:6px 14px;align-items:center}.level-row>div:first-child{display:grid;gap:4px}.level-row strong{font-size:11px}.level-row small{font-size:9px;color:#939d94}.level-score{text-align:right;display:grid;gap:3px}.level-score span{font-size:12px;color:#3d6647;font-weight:650}.level-row .progress-track{grid-column:1/-1;height:5px}@media(max-width:760px){.learning-panel,.ai-panel,.question-card{padding:15px 13px}.form-grid{grid-template-columns:1fr}.wide-field,.resource-check-list{grid-column:auto}.resource-check-list{grid-template-columns:1fr}.review-row,.word-row{flex-direction:column}.review-row .button-row{width:100%}.review-row .button-row button{flex:1}.word-review{justify-content:flex-start}.practice-controls{grid-template-columns:1fr 1fr}.practice-toolbar{top:56px}.search-input{max-width:none}}
