:root{--g0:#071d17;--g1:#0b2a21;--g2:#123b2f;--g3:#1f6f55;--g4:#2d7d60;--mint:#dcebe4;--lime:#b9e968;--bg:#f3f7f5;--ink:#10251e;--muted:#66766f;--line:#d7e1dc;--white:#fff}.portal-shell{min-height:100vh;background:var(--bg);color:var(--ink);display:grid;grid-template-columns:282px minmax(0,1fr);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.portal-side{position:fixed;inset:0 auto 0 0;width:282px;background:#082219;color:#d4e2dc;padding:28px 20px 26px;display:flex;flex-direction:column;z-index:70}.portal-brand{display:flex;gap:14px;align-items:center;padding:0 10px}.portal-brand-mark{font-size:14px;font-weight:950;letter-spacing:.06em;color:#fff}.portal-brand b{display:block;color:#fff;font-size:16px}.portal-brand small{display:block;color:#8eb5a6;font-size:12px;margin-top:3px}.portal-side-rule{height:1px;background:#1c3b31;margin:30px 0 28px}.portal-nav{display:grid;gap:8px}.portal-nav-btn{display:flex;align-items:center;gap:15px;border:1px solid transparent;background:transparent;color:#aac6bc;border-radius:10px;padding:14px 16px;text-align:left;font-size:17px;cursor:pointer}.portal-nav-btn span{width:20px;text-align:center;font-size:17px;color:#b1d0c4}.portal-nav-btn:hover{background:#12382d;color:#fff}.portal-nav-btn.active{background:#214f41;color:#fff;border-color:#d7e4df}.portal-side-bottom{margin-top:auto}.side-progress{border:1px solid #23483c;background:#0f3027;border-radius:11px;padding:16px}.side-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#fff}.side-progress-track{height:4px;background:#dbe8e3;border-radius:999px;margin:12px 0 15px;overflow:hidden}.side-progress-track i{display:block;height:100%;background:var(--lime)}.side-progress small{color:#8eb5a6;font-size:11px}.side-logout{margin-top:16px;border:0;background:transparent;color:#a6c0b6;padding:8px 8px;cursor:pointer}.portal-main{grid-column:2;min-width:0}.portal-top{height:104px;background:#fff;border-bottom:1px solid #dbe3df;display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:40}.portal-top h1{font-size:26px;line-height:1.1;margin:6px 0 0;font-weight:500;color:#10231c}.portal-eyebrow,.section-kicker{letter-spacing:.17em;font-size:12px;font-weight:900;color:#5d786e}.portal-user{display:flex;align-items:center;gap:12px}.portal-avatar,.profile-avatar{display:grid;place-items:center;border-radius:999px;background:#dcebe4;color:#1d644e;font-weight:900}.portal-avatar{width:44px;height:44px}.portal-user b{display:block;font-size:14px}.portal-user small{display:block;color:#6f8079;font-size:12px;margin-top:2px}.portal-menu{display:none;border:0;background:#edf4f1;border-radius:8px;width:42px;height:42px;font-size:20px}.portal-content{padding:32px 38px 50px;max-width:1440px;margin:0 auto}.card-flat{background:#fff;border:1px solid var(--line);border-radius:15px}.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.dash-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;align-items:center;gap:16px;min-height:116px}.dash-stat-icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;font-size:23px;font-weight:900;flex:0 0 auto}.dash-stat-icon.lime{background:#eaf7d6;color:#4a7f22}.dash-stat-icon.gold{background:#fff0cd;color:#9c6712}.dash-stat-icon.blue{background:#e0f0fb;color:#2b78a9}.dash-stat-icon.violet{background:#eee9ff;color:#6a53ce}.dash-stat span{display:block;color:#6d7d77;font-size:12px}.dash-stat b{display:block;color:#0b1713;font-size:27px;line-height:1.15;margin:3px 0}.dash-stat small{display:block;color:#78877f;font-size:11px}.home-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,1fr);gap:20px}.home-route{padding:28px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-head h2,.course-hero h2,.trainer-head h2,.achievement-hero h2,.profile-hero h2{font-size:29px;font-weight:500;margin:10px 0}.text-link{border:0;background:transparent;color:#216d53;font-weight:800;cursor:pointer}.route-list{margin-top:20px;border-top:1px solid #e2e8e5}.route-row{width:100%;display:grid;grid-template-columns:46px 1fr 20px;gap:15px;align-items:center;border:0;border-bottom:1px solid #e2e8e5;background:#fff;padding:18px 0;text-align:left;cursor:pointer}.route-num{width:42px;height:42px;border:1px solid #ccdbd4;border-radius:10px;display:grid;place-items:center;color:#1b7255;font-weight:900}.route-row b{font-size:14px}.route-row small{display:block;color:#718078;font-size:11px;margin-top:4px}.route-track{height:5px;background:#e4ebe7;border-radius:999px;margin-top:8px;overflow:hidden}.route-track i{display:block;height:100%;background:#a8d85d}.route-row strong{font-size:24px;font-weight:400}.quick-card{background:#0d3026;border-radius:14px;padding:34px;color:#d9ebe4;min-height:360px}.quick-kicker{color:#b4e75e;letter-spacing:.14em;font-weight:900;font-size:12px}.quick-card h2{color:#fff;font-size:25px;font-weight:500;margin:16px 0 8px}.quick-card p{line-height:1.55;color:#b9cec6}.quick-score{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0}.quick-score div{background:#1a4035;border-radius:7px;padding:15px 8px;text-align:center}.quick-score b{display:block;color:#fff;font-size:20px}.quick-score span{display:block;font-size:9px;color:#92b4a7;margin-top:4px}.green-btn{border:0;background:#28785b;color:#fff;border-radius:8px;padding:14px 20px;font-weight:900;cursor:pointer}.green-btn:hover{background:#1f684e}.green-btn:disabled{opacity:.45;cursor:not-allowed}.outline-btn{border:1px solid #b9cbc3;background:#fff;color:#1e5e49;border-radius:8px;padding:12px 16px;font-weight:800;cursor:pointer}.module-strip-wrap{overflow-x:auto;margin-bottom:10px;padding-bottom:10px;scrollbar-color:#777 transparent}.module-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);gap:8px;min-width:1180px}.module-pill{border:1px solid var(--line);background:#fff;border-radius:9px;padding:14px;text-align:left;color:#687870;cursor:pointer}.module-pill b{display:block;color:#1e6d52;font-size:16px}.module-pill span{display:block;font-size:12px;line-height:1.25;margin-top:3px}.module-pill.active{background:#2a795b;color:#e7f1ed}.module-pill.active b{color:#c8f16d}.course-hero{padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.course-hero p{color:#6d7b75;font-size:17px;margin:0}.progress-ring{--p:0;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:conic-gradient(#28785b calc(var(--p)*1%),#edf2ef 0);position:relative}.progress-ring:after{content:'';position:absolute;inset:10px;background:#fff;border-radius:50%;border:1px solid #d8e1dd}.progress-ring>div{position:relative;z-index:2;text-align:center}.progress-ring b{display:block;font-size:18px}.progress-ring span{font-size:9px;color:#718079}.course-work{display:grid;grid-template-columns:350px minmax(0,1fr);gap:18px}.course-lessons{display:grid;gap:8px;align-content:start}.course-lesson{display:grid;grid-template-columns:42px 1fr 18px;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px 10px;text-align:left;cursor:pointer}.course-lesson>b{color:#1d7356;font-size:13px}.course-lesson>span{font-weight:800;font-size:13px}.course-lesson small{display:block;font-weight:400;color:#77857e;font-size:10px;margin-top:3px}.course-lesson strong{font-size:20px;font-weight:400}.course-lesson.active{border-color:#2c7d60;box-shadow:inset 4px 0 #2c7d60}.course-reading{padding:42px 46px;min-height:580px}.course-reading>h2{font-size:39px;font-weight:400;margin:16px 0}.reading-lead{font-size:17px;color:#728078}.reading-rule{height:1px;background:#e0e7e3;margin:26px 0}.green-wiki{max-width:none;color:#4a5a53;font-size:18px;line-height:1.65}.green-wiki h1,.green-wiki h2,.green-wiki h3{color:#11281f;font-weight:500}.green-wiki h1{font-size:28px;border-bottom:0}.green-wiki h2{font-size:25px}.green-wiki ol li::marker{color:#1d7255;font-weight:900}.lesson-actions{border-top:1px solid #e0e7e3;margin-top:28px;padding-top:22px;display:flex;gap:10px;flex-wrap:wrap}.trainer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:18px}.trainer-head h2{font-size:31px}.trainer-head small{color:#6f7f77}.trainer-head>div:last-child{min-width:360px}.trainer-head select{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:16px}.trainer-note{display:block;text-align:right;margin-top:18px}.trainer-stage{min-height:480px;padding:28px;display:grid;place-items:center}.trainer-card{width:min(900px,100%);padding:20px}.question-label{display:inline-block;background:#e4f0ea;color:#1c6c51;font-weight:900;letter-spacing:.08em;font-size:11px;padding:8px 10px;border-radius:6px}.trainer-card>h2{font-size:31px;font-weight:400;line-height:1.25;margin:28px 0 32px}.trainer-options{display:grid;gap:10px}.trainer-options button{border:1px solid #d5dfda;background:#fff;border-radius:9px;padding:14px;text-align:left;font-size:17px;cursor:pointer;display:flex;gap:14px;align-items:center}.trainer-options button span{width:32px;height:32px;border-radius:6px;background:#eaf2ee;color:#216e53;display:grid;place-items:center;font-weight:900}.trainer-options button:hover{border-color:#71a18e}.trainer-options button.correct{background:#edf9f3;border-color:#65b28f}.trainer-options button.wrong{background:#fff0ee;border-color:#d9877d}.trainer-feedback{margin-top:18px;padding:18px;border-radius:10px;display:grid;gap:8px}.trainer-feedback.ok{background:#edf8f2;color:#205e48}.trainer-feedback.bad{background:#fff2f0;color:#8b3d33}.trainer-feedback .green-btn{justify-self:start;margin-top:8px}.trainer-empty{text-align:center;max-width:520px}.trainer-empty h2{font-size:30px;font-weight:500;margin:18px 0 8px}.trainer-empty p{color:#708078;font-size:17px}.done-check{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:#e4f1eb;color:#1d7355;font-size:34px;margin:0 auto}.achievement-hero{background:linear-gradient(110deg,#174d3d,#09271f);border-radius:14px;padding:38px;color:#d5e8e0;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.achievement-hero h2{color:#fff;font-size:34px}.achievement-hero p{font-size:17px;max-width:720px}.big-star{width:106px;height:106px;border-radius:50%;border:1px solid #42675a;display:grid;place-items:center;color:#b8eb61;font-size:40px}.achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.achievement-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;min-height:220px;color:#9a9f9c}.achievement-card.open{color:#183027}.achievement-icon{width:52px;height:52px;border-radius:10px;background:#f2f4f3;display:grid;place-items:center;font-size:24px;margin-bottom:26px}.achievement-card.open .achievement-icon{background:#e3f0e9;color:#1f7457}.achievement-card h3{font-size:20px;font-weight:500}.achievement-card p{font-size:13px;line-height:1.55}.profile-hero{padding:36px 32px;display:flex;align-items:center;gap:20px}.profile-avatar{width:76px;height:76px;font-size:21px}.profile-hero h2{margin:8px 0 2px}.profile-hero p{margin:0;color:#6f7d76;font-size:18px}.status-pill{margin-left:auto;background:#e8f6e8;color:#22723f;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:900}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:16px 0}.profile-stats>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px}.profile-stats span{display:block;color:#707d77;font-size:13px}.profile-stats b{display:block;font-size:26px;margin-top:10px}.activity-info{padding:24px}.activity-info h3{font-size:22px;font-weight:500;margin:0 0 8px}.activity-info p{color:#6e7d75;font-size:16px;line-height:1.6;margin:0}.diag-backdrop{position:fixed;inset:0;background:#082119cc;z-index:999;display:grid;place-items:center;padding:28px}.diag-modal{width:min(940px,100%);max-height:calc(100vh - 56px);overflow:auto;background:#fff;border-radius:14px;padding:34px}.diag-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;position:sticky;top:-34px;background:#fff;padding:34px 0 18px;z-index:3}.diag-head h2{font-size:22px;font-weight:500;margin:8px 0}.diag-count{background:#e4f0ea;border-radius:8px;padding:11px 14px;color:#1c6d51}.diag-list{display:grid;gap:16px}.diag-q{border:1px solid #dbe4df;border-radius:12px;padding:18px}.diag-q-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.diag-q-title>span{width:30px;height:30px;border-radius:50%;background:#e4f0ea;color:#216f54;display:grid;place-items:center;font-size:12px}.diag-q-title b{font-weight:500}.diag-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.diag-options label{position:relative}.diag-options input{position:absolute;opacity:0}.diag-options span{display:block;border:1px solid #d8e2dd;border-radius:8px;padding:11px;cursor:pointer;font-size:13px}.diag-options input:checked+span{background:#e8f4ee;border-color:#4e967a;color:#15563f;font-weight:800}.diag-actions{position:sticky;bottom:-34px;background:#fff;border-top:1px solid #e2e9e5;margin-top:20px;padding:18px 0 34px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#6c7a73;font-size:12px}.diag-result{text-align:center;padding:50px 20px}.diag-result h2{font-size:36px;font-weight:500}.diag-result p{font-size:18px;color:#6b7972}.empty{padding:30px;color:#718078}.error-block{padding:24px;color:#9b342b}.fatal{min-height:100vh;display:grid;place-items:center;background:#f4f7f5;color:#20362d;font-family:system-ui;padding:30px}.portal-overlay{display:none}@media(max-width:1100px){.portal-shell{grid-template-columns:240px minmax(0,1fr)}.portal-side{width:240px}.home-layout{grid-template-columns:1fr}.course-work{grid-template-columns:290px minmax(0,1fr)}.dash-grid{grid-template-columns:repeat(2,1fr)}.achievement-grid{grid-template-columns:repeat(2,1fr)}.profile-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.portal-shell{display:block}.portal-main{grid-column:auto}.portal-side{transform:translateX(-105%);transition:.22s;box-shadow:20px 0 50px #001a1299}.portal-side.open{transform:translateX(0)}.portal-menu{display:grid;place-items:center}.portal-overlay{position:fixed;inset:0;background:#001b1477;z-index:60}.portal-overlay.show{display:block}.portal-top{height:86px;padding:0 16px;gap:12px}.portal-top>div:nth-child(2){flex:1}.portal-top h1{font-size:21px}.portal-eyebrow{font-size:9px}.portal-user div:last-child{display:none}.portal-content{padding:18px 12px 38px}.course-work{grid-template-columns:1fr}.course-lessons{grid-template-columns:repeat(2,minmax(0,1fr))}.course-reading{padding:28px 22px}.trainer-head{flex-direction:column}.trainer-head>div:last-child{min-width:0;width:100%}.achievement-grid{grid-template-columns:1fr}.diag-options{grid-template-columns:1fr}.diag-modal{padding:22px}.diag-head{top:-22px;padding-top:22px}.diag-actions{bottom:-22px;padding-bottom:22px}}@media(max-width:560px){.dash-grid{grid-template-columns:1fr}.dash-stat{min-height:96px;padding:16px}.home-route{padding:20px 16px}.quick-card{padding:26px 20px}.quick-score{gap:6px}.module-strip{grid-auto-columns:145px;min-width:max-content}.course-hero{padding:22px 18px;align-items:flex-start}.course-hero h2{font-size:24px}.progress-ring{width:86px;height:86px}.course-lessons{grid-template-columns:1fr}.course-reading{padding:24px 17px}.course-reading>h2{font-size:30px}.green-wiki{font-size:16px}.lesson-actions>*{width:100%}.trainer-stage{padding:12px}.trainer-card{padding:8px}.trainer-card>h2{font-size:25px}.trainer-options button{font-size:15px}.achievement-hero{padding:26px 20px}.big-star{display:none}.profile-hero{padding:24px 18px;align-items:flex-start;flex-wrap:wrap}.status-pill{margin-left:0}.profile-stats{grid-template-columns:1fr 1fr;gap:10px}.profile-stats>div{padding:17px 14px}.profile-stats b{font-size:20px}.diag-backdrop{padding:0}.diag-modal{max-height:100vh;height:100vh;border-radius:0;padding:18px}.diag-head{top:-18px;padding-top:18px}.diag-actions{bottom:-18px;padding-bottom:18px;align-items:stretch;flex-direction:column}.diag-actions .green-btn{width:100%}}