:root{font-family:Segoe UI,Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#15314c;background:#f5faff;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #15314c;--muted: #688096;--blue: #2583d8;--blue-dark: #1769af;--pale: #eaf5ff;--line: #dceaf6;--white: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;letter-spacing:.3px}button{font:inherit}button:focus-visible{outline:3px solid rgba(37,131,216,.28);outline-offset:3px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:.35px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;color:#fff;border-radius:11px;background:linear-gradient(145deg,#54b4f2,#2583d8);box-shadow:0 8px 20px #2583d838}.eyebrow,.section-label{margin:0;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.8px}.login-page{min-height:100vh;position:relative;overflow:hidden;display:grid;place-items:center;padding:100px 24px 60px;background:radial-gradient(circle at 50% 30%,#ffffffe6,#f5faffe6 43%,#eaf5ffe6),url(images/fractal.jpg);background-size:cover;background-position:center;background-repeat:no-repeat}.login-header{position:absolute;top:28px;left:max(32px,calc(50% - 590px));z-index:2}.login-card{width:min(100%,700px);position:relative;z-index:1;padding:50px 52px 42px;text-align:center;border:1px solid rgba(206,228,246,.9);border-radius:30px;background:#ffffffdb;box-shadow:0 28px 80px #2f70a31f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 25px;border-radius:18px;color:var(--blue);background:var(--pale);transform:rotate(-4deg)}.login-card h1{margin:12px 0 16px;color:var(--ink);font-size:clamp(38px,5vw,55px);line-height:1.04;font-weight:800}.login-card h1 span{color:var(--blue)}.login-copy{max-width:400px;margin:30px auto;color:var(--muted);font-size:16px;line-height:1.65}.google-button{width:100%;height:54px;display:flex;justify-content:center;align-items:center;gap:12px;border:1px solid #d4e2ee;border-radius:13px;color:#29455e;background:#fff;font-weight:700;cursor:pointer;box-shadow:0 5px 16px #2a537412;transition:transform .2s,box-shadow .2s,border-color .2s;letter-spacing:.3px}.google-button:hover{transform:translateY(-2px);border-color:#a9cbe7;box-shadow:0 9px 22px #2a53741f}.google-button:disabled{opacity:.65;cursor:wait}.auth-error{color:#b42318;font-size:13px;margin:14px 0 0}.demo-note{color:#7890a5;font-size:12px;margin:13px 0 0}.trust-row{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:13px;color:#8094a6;font-size:12px}.trust-row span{display:flex;align-items:center;gap:5px}.trust-row svg{color:#48a67c}.login-orbit{position:absolute;border:1px solid rgba(82,155,215,.14);border-radius:50%;pointer-events:none}.orbit-one{width:700px;height:700px;left:-410px;bottom:-420px}.orbit-two{width:500px;height:500px;right:-275px;top:-280px}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f5faff 0,#fff 420px)}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc(50% - 590px));border-bottom:1px solid rgba(213,230,243,.85);background:#ffffffd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.brand-button{display:inline-flex;padding:0;border:0;background:transparent;cursor:pointer}.main-nav{display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:28px}.nav-link{padding:9px 13px;color:#6c8499;border:0;border-radius:9px;background:transparent;font-size:14px;font-weight:650;cursor:pointer;transition:color .2s,background .2s;letter-spacing:.35px}.nav-link:hover{color:var(--blue);background:#edf7ff}.nav-link.active{color:var(--blue);background:#e9f5ff}.profile-wrap{position:relative}.profile-button{display:flex;align-items:center;gap:9px;border:0;padding:5px 7px 5px 5px;border-radius:24px;color:#38546d;background:transparent;cursor:pointer}.profile-button:hover{background:#eff7fd}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 1px #cce0ef}.avatar-fallback{display:grid;place-items:center;color:#1769af;background:#dff1ff;font-size:12px;font-weight:800}.profile-name{font-size:14px;font-weight:650;letter-spacing:.35px}.profile-menu{position:absolute;top:52px;right:0;width:245px;padding:11px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 20px 48px #204c6e29;animation:menu-in .16s ease-out}.profile-menu>div{display:flex;flex-direction:column;gap:3px;padding:9px 10px 14px;border-bottom:1px solid #e8f0f6;overflow:hidden}.profile-menu strong{font-size:14px}.profile-menu span{color:var(--muted);font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.profile-menu button{width:100%;display:flex;align-items:center;gap:9px;margin-top:7px;padding:10px;color:#516b80;border:0;border-radius:9px;background:transparent;cursor:pointer;font-weight:700;letter-spacing:.5px;font-size:14px}.profile-menu button:hover{color:#b42318;background:#fff1f0}@keyframes menu-in{0%{opacity:0;transform:translateY(-5px)}}.dashboard{width:min(100% - 48px,1180px);margin:0 auto;flex:1;padding:76px 0 90px}.welcome,.lessons-intro{margin-bottom:42px}.welcome h1,.lessons-intro h1{margin:8px 0;color:var(--ink);font-size:clamp(38px,5vw,54px);line-height:1.08;letter-spacing:0px;font-weight:800}.welcome>p:last-child,.lessons-intro-top>p:last-child{margin:16px 0 0;color:var(--muted);font-size:16px;letter-spacing:.3px}.pgar{margin:14px 0 35px;color:var(--muted);font-size:14px;letter-spacing:.3px}.course-card{padding:29px 32px 25px;border:1px solid var(--line);border-radius:21px;background:#ffffffed;box-shadow:0 12px 40px #215a8414}.course-header{display:flex;align-items:center;justify-content:space-between}.course-title-wrap{display:flex;align-items:center;gap:17px}.course-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;color:var(--blue);background:var(--pale)}.course-title-wrap h2{margin:5px 0 0;font-size:20px}.progress-number{display:flex;align-items:baseline;gap:7px}.progress-number strong{color:var(--blue);font-size:30px;line-height:1;font-weight:800}.progress-number span{color:var(--muted);font-size:12px}.progress-track{height:8px;margin:25px 0 14px;border-radius:10px;background:#e8f1f7;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3aa1e7,#2583d8)}.course-footer{display:flex;justify-content:space-between;color:#7b91a4;font-size:12px}.lessons-section{margin-top:56px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-heading h2{margin:6px 0 0;font-size:20px}.lesson-count{padding:7px 12px;color:#5f7d95;background:#eaf5fd;border-radius:20px;font-size:12px;font-weight:650}.lesson-card{min-height:226px;display:grid;grid-template-columns:82px minmax(0,1fr) minmax(260px,.72fr);overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 12px 40px #215a8412;transition:transform .2s,box-shadow .2s}.available-lessons{display:grid;gap:16px}.all-done{padding:35px;color:#5b7c93;border:1px dashed #c9ddea;border-radius:18px;background:#fbfdff;text-align:center}.lesson-card:hover{transform:translateY(-3px);box-shadow:0 18px 48px #215a841c}.lesson-number{display:flex;justify-content:center;padding-top:33px;color:#9bbbd2;background:linear-gradient(180deg,#eff8ff,#f8fcff);font-size:18px;font-weight:750;letter-spacing:.5px}.lesson-content{padding:32px 36px}.lesson-kicker{display:flex;align-items:center;gap:7px;margin:0 0 13px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.5px}.lesson-content h3{margin:0 0 10px;font-size:20px;letter-spacing:.3px}.lesson-description{max-width:570px;margin:0;color:var(--muted);font-size:14px;line-height:1.65;letter-spacing:.3px}.lesson-estimate{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;color:#5f8097;font-weight:600}.lesson-estimate svg{color:#4a9bd2}.lesson-meta{display:flex;gap:22px;margin-top:25px;color:#7990a4;font-size:12px}.lesson-meta span{display:flex;align-items:center;gap:6px}.difficulty-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#50b98a}.lesson-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:27px;padding:30px 34px;border-left:1px solid #e5eff6;background:#fbfdff}.prerequisite{display:flex;flex-direction:column;gap:6px}.prerequisite span{color:#87a0b3;font-size:10px;font-weight:600;letter-spacing:1px}.prerequisite strong{color:#526e84;font-size:13px;font-weight:600}.prerequisite-list{display:flex;flex-direction:column;gap:5px}.prerequisite-list span{display:flex;align-items:flex-start;gap:5px;color:#5d7b92;font-size:12px;line-height:1.3;letter-spacing:.3px}.prerequisite-list svg{flex:none;color:#3ca17b}.start-button{margin-top:18px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,#3199e2,#247bc5);font-weight:700;cursor:pointer;box-shadow:0 8px 18px #2583d838;transition:transform .2s,box-shadow .2s;letter-spacing:.5px}.start-button:disabled{margin-top:18px;cursor:not-allowed;opacity:.52;box-shadow:none}.start-button:disabled:hover{transform:none}.start-button:hover{transform:translateY(-2px);box-shadow:0 11px 24px #2583d84d}.start-button:hover svg{transform:translate(3px)}.start-button svg{transition:transform .2s}footer{display:flex;justify-content:space-between;width:min(100% - 48px,1180px);margin:0 auto;padding:25px 0 30px;border-top:1px solid var(--line);color:#8ba0b1;font-size:11px}.loading-screen{min-height:100vh;display:grid;place-content:center;gap:22px;background:#f5faff}.sync-notice{position:fixed;right:20px;bottom:20px;z-index:30;max-width:min(430px,calc(100vw - 40px));padding:12px 15px;color:#8a3b19;border:1px solid #f0c7a9;border-radius:11px;background:#fff7ef;box-shadow:0 12px 28px #51351921;font-size:13px;line-height:1.4}.loading-line{width:130px;height:3px;position:relative;overflow:hidden;border-radius:4px;background:#d9eaf7}.loading-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:45%;background:var(--blue);animation:loading 1s infinite ease-in-out}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(300%)}}.lessons-shell{background:linear-gradient(180deg,#f5faff 0,#fff 390px)}.lessons-page{width:min(100% - 48px,1180px);margin:0 auto;padding:76px 0 90px}.map-key{display:flex;gap:8px;padding:8px;border:1px solid var(--line);border-radius:13px;background:#ffffffb3;font-size:11px;white-space:nowrap;margin-top:40px}.key-swatch{padding:6px 9px;border-radius:7px;font-weight:700}.key-swatch.completed{color:#397aac;background:#e1f2ff}.key-swatch.available{color:#2e8e70;background:#e1f6ee}.key-swatch.upcoming{color:#778e9f;background:#edf3f7}.map-layout{display:grid;grid-template-columns:282px minmax(0,1fr);min-height:655px;overflow:hidden;border:1px solid var(--line);border-radius:23px;background:#fff;box-shadow:0 16px 48px #215a8414}.lesson-inspector{display:flex;flex-direction:column;align-items:flex-start;padding:29px 25px;border-right:1px solid #e2edf5;background:linear-gradient(180deg,#f9fcff,#f2f9fe)}.inspector-icon{width:45px;height:45px;display:grid;place-items:center;margin-bottom:21px;color:var(--blue);border-radius:13px;background:#e3f3ff}.lesson-inspector h2{margin:8px 0 10px;font-size:20px;line-height:1.15}.inspector-copy{margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.6}.inspector-group{display:flex;flex-direction:column;width:100%;gap:7px;padding-top:17px;padding-bottom:17px;margin-top:3px;border-top:1px solid #deebf5}.inspector-group>span{color:#83a0b6;font-size:10px;font-weight:800;letter-spacing:1.3px;margin-bottom:5px}.inspector-group button{color:#83a0b6;padding:0;overflow:hidden;border:0;background:transparent;font-size:11px;line-height:1.35;text-align:left;cursor:pointer}.inspector-group em{color:#83a0b6;font-size:11px;font-style:normal;line-height:1.35}.resource-checklist{display:flex;flex-direction:column;width:100%;gap:12px;padding-top:17px;padding-bottom:17px;margin-top:3px;border-top:1px solid #deebf5}.resource-checklist>span{color:#83a0b6;font-size:10px;font-weight:800;letter-spacing:1.3px}.resource-item{position:relative;display:grid;grid-template-columns:17px 24px minmax(0,1fr);align-items:center;column-gap:9px;min-height:30px;padding:1px 0;color:#397aaa;font-size:12px;line-height:1.35;cursor:pointer}.resource-item input{position:absolute;width:1px;height:1px;opacity:0}.resource-box{width:17px;height:17px;display:grid;place-items:center;margin-top:2px;color:#fff;border:1.5px solid #b9cfdf;border-radius:5px;background:#fff;transition:background .18s,border-color .18s}.resource-item.checked .resource-box{border-color:#31a875;background:#31a875;box-shadow:0 2px 5px #31a8753b}.resource-kind{width:24px;height:24px;display:grid;place-items:center;color:#4a91c2;border-radius:7px;background:#e7f4fd}.resource-item.checked .resource-kind{color:#33916d;background:#e2f5ec}.resource-item a{display:block;min-width:0;color:inherit;font-weight:600;text-decoration:none}.resource-item a span{overflow-wrap:anywhere}.resource-item a svg{display:inline;margin-left:5px;vertical-align:-2px;opacity:.68}.resource-item a:hover{text-decoration:underline}.resource-item.completed-lesson{cursor:default}.resource-item.completed-lesson .resource-box{opacity:1;border-color:#a7d8c2;background:#a7d8c2;box-shadow:none}.resource-item.completed-lesson input{cursor:not-allowed}.resource-item.completed-lesson:not(.checked) .resource-box{border-color:#d7e3eb;background:#f4f8fb}.resource-item:has(input:focus-visible) .resource-box{outline:2px solid rgba(37,131,216,.35);outline-offset:2px}.resource-checklist em{color:#6e899f;font-size:12px;font-style:normal}.inspector-start.start-button{text-decoration:none}.map-panel{display:flex;min-width:0;flex-direction:column;background-image:radial-gradient(#dcecf7 1px,transparent 1px);background-size:20px 20px}.map-panel:fullscreen{width:100%;height:100%;background-color:#f8fcff}.map-panel:fullscreen .map-canvas{flex:1;min-height:0}.map-panel-head{display:flex;align-items:center;justify-content:space-between;padding:17px 21px;border-bottom:1px solid #e1edf5;color:#537188;background:#ffffffe3;font-size:13px}.map-panel-head span{display:flex;align-items:center;gap:8px;color:#397aaa;font-weight:700}.map-panel-head small{color:#859bad}.map-controls{position:absolute;z-index:2;display:flex;align-items:center;gap:4px;margin:13px;padding:5px;border:1px solid #d7e8f3;border-radius:10px;background:#fffffff2;box-shadow:0 5px 15px #29638b1c}.map-controls button{width:29px;height:29px;display:grid;place-items:center;color:#47718c;border:0;border-radius:7px;background:transparent;cursor:pointer}.map-controls button:hover{color:#1769af;background:#e9f5ff}.map-controls span{min-width:38px;color:#6b879c;font-size:11px;font-weight:700;text-align:center}.map-canvas{min-height:610px;overflow:auto;padding:22px}.map-canvas svg{display:block;min-width:550px;min-height:380px}.map-edge{fill:none;stroke:#d4e5f1;stroke-width:1.5}.map-edge.highlighted{stroke:#79b8e4;stroke-width:2.3}.map-node{cursor:pointer;outline:none}.map-node rect{fill:#edf3f7;stroke:#d3e4ef;stroke-width:1.2;transition:fill .2s,stroke .2s,transform .2s}.map-node circle{fill:#a8bdcb}.map-node text{fill:#6e8597;font:600 12px Segoe UI,sans-serif;pointer-events:none}.map-node:hover rect,.map-node:focus rect{stroke:#65ade1}.map-node.available rect{fill:#e1f6ee;stroke:#a4d9c6}.map-node.available circle{fill:#54b99b}.map-node.available text{fill:#367f69}.map-node.completed rect{fill:#e1f2ff;stroke:#a9d4ef}.map-node.completed circle{fill:#4d9fce}.map-node.completed text{fill:#397aac}.map-node.selected rect{stroke:#1769af;stroke-width:2.3}.map-node.related rect{stroke:#81bde6}.ka-link{color:var(--blue);text-decoration:none}@media(max-width:800px){.dashboard{padding-top:48px}.lesson-card{grid-template-columns:60px 1fr}.lesson-action{grid-column:2;border-left:0;border-top:1px solid #e5eff6}.lesson-number{grid-row:1 / 3}.lessons-page{width:min(100% - 32px,1320px);padding-top:43px}.lessons-intro{align-items:flex-start;flex-direction:column;margin-bottom:27px}.map-layout{grid-template-columns:1fr}.lesson-inspector{border-right:0;border-bottom:1px solid #e2edf5}.inspector-start{margin-top:23px;width:auto}}@media(max-width:560px){.topbar{height:72px;padding-inline:20px}.topbar .brand{font-size:0;gap:0}.profile-name{display:none}.main-nav{margin-right:8px;gap:1px}.nav-link{padding:8px 9px;font-size:13px}.dashboard{width:min(100% - 32px,1180px);padding:45px 0 65px}.welcome{margin-bottom:30px}.course-card{padding:23px 20px}.course-icon{display:none}.progress-number{flex-direction:column;align-items:flex-end;gap:1px}.course-footer{flex-direction:column;gap:6px}.lessons-section{margin-top:42px}.lesson-card{display:block}.lesson-number{display:none}.lesson-content,.lesson-action{padding:26px 23px}.lesson-action{border-left:0;border-top:1px solid #e5eff6;gap:22px}.login-card{padding:40px 23px 34px;border-radius:24px}.login-header{left:24px;top:22px}.trust-row{gap:13px}footer{width:calc(100% - 32px);flex-direction:column;gap:6px}.map-key{flex-wrap:wrap;gap:9px 13px;white-space:normal}.map-panel-head small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
