@layer components{.ga-code-actions{display:flex;align-items:center;gap:.125rem}.ga-code-actions__spinner{animation:ga-code-actions-spin 1s linear infinite}.ga-code-actions__play{fill:currentColor}}@keyframes ga-code-actions-spin{to{transform:rotate(1turn)}}.ga-lesson-content{line-height:1.75;color:var(--text-primary)}.ga-lesson-content h2{font-size:1.5rem;font-weight:700;margin:3rem 0 1rem}.ga-lesson-content h2,.ga-lesson-content h3{font-family:var(--font-sans);color:var(--text-primary)}.ga-lesson-content h3{font-size:1.25rem;font-weight:600;margin:2.25rem 0 .75rem}.ga-lesson-content h4{font-family:var(--font-sans);font-size:1.1rem;font-weight:600;margin:1.75rem 0 .5rem;color:var(--text-primary)}.ga-lesson-content p{margin:1.25rem 0}.ga-lesson-content pre{overflow-x:auto}.ga-lesson-content>pre{margin:1.75rem 0}.ga-lesson-content pre code{background:none;padding:0;border:none;font-size:.875rem}.ga-lesson-content ul{list-style-type:disc;padding-left:1.75rem;margin:1.25rem 0}.ga-lesson-content ol{list-style-type:decimal;padding-left:1.75rem;margin:1.25rem 0}.ga-lesson-content ul ul{list-style-type:circle;margin:.25rem 0}.ga-lesson-content ul ul ul{list-style-type:square}.ga-lesson-content li{margin:.5rem 0}.ga-lesson-content strong{font-weight:600}.ga-lesson-content a{color:var(--brand-blue);text-decoration:underline}.dark .ga-lesson-content a{color:var(--n4j-light-baltic)}.ga-lesson-content img{max-width:100%;height:auto;border-radius:.5rem;margin:1.75rem 0}.ga-lesson-content p img{display:inline-block;vertical-align:middle;margin:0;border-radius:0}.ga-lesson-content p:has(>img:only-child){text-align:center;margin:1.75rem 0}.dark .ga-lesson-content p:has(>img[src$=".svg"]:only-child)>img{background:var(--n4j-cream);padding:1.5rem;border-radius:.5rem}.dark .ga-lesson-content p:has(>img[src$=".svg"]:only-child)>img[src*="/entity-communication-networks/"],.dark .ga-lesson-content p:has(>img[src$=".svg"]:only-child)>img[src*="/workshop-gds-python-aga/"],.dark .ga-lesson-content p:has(>img[src$=".svg"]:only-child)>img[src*="/workshop-gds/"]{background:none;padding:0;border-radius:0}.ga-lesson-content table{width:100%;border-collapse:separate;border-spacing:0;margin:1.75rem 0;font-size:.9rem;border-radius:.5rem;overflow:hidden;border:1px solid var(--border)}.ga-lesson-content td,.ga-lesson-content th{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:.6rem .85rem;text-align:left}.ga-lesson-content td:last-child,.ga-lesson-content th:last-child{border-right:none}.ga-lesson-content tr:last-child td{border-bottom:none}.ga-lesson-content th{background:var(--bg-subtle);font-weight:600}.ga-lesson-content blockquote{border-left:4px solid var(--brand-blue);padding:.75rem 1rem;margin:1.75rem 0;background:#f0f7ff;border-radius:0 .5rem .5rem 0}.dark .ga-lesson-content blockquote{background:#1b2b3b}.ga-lesson-content .videoblock{margin:2rem 0}.ga-lesson-content .videoblock iframe{width:100%;aspect-ratio:16/9;border-radius:.5rem;border:none}.ga-lesson-content .admonitionblock{margin:1.75rem 0;border-radius:.5rem;overflow:hidden}.ga-lesson-content .admonitionblock table{margin:0;border:none;border-radius:0}.ga-lesson-content .admonitionblock td{border:none;padding:1rem}.ga-lesson-content .admonitionblock td.icon{width:3rem;background:var(--brand-blue);color:white;font-weight:700;text-align:center;vertical-align:top}.ga-lesson-content .admonitionblock.note td.icon{background:var(--brand-blue)}.ga-lesson-content .admonitionblock.tip td.icon{background:#27ae60}.ga-lesson-content .admonitionblock.warning td.icon{background:#f5a623}.ga-lesson-content .admonitionblock.important td.icon{background:#e74c3c}.ga-lesson-content .admonitionblock.caution td.icon{background:#e67e22}.ga-lesson-content .admonitionblock td.content{background:#f8f9fa;color:#1a1a2e}.dark .ga-lesson-content .admonitionblock td.content{background:#1c2128;color:var(--text-primary)}.ga-lesson-content .listingblock,.ga-lesson-content .quizblock{margin:1.75rem 0}.ga-lesson-content .imageblock{margin:1.75rem 0;text-align:center}.ga-lesson-content .imageblock .title{font-size:.85rem;color:var(--text-tertiary);margin-top:.5rem}.ga-lesson-content .ulist .radio input[type=radio]+label,.ga-lesson-content .ulist .radio label,.ga-lesson-content label{color:var(--text-primary)}.ga-lesson-content a.btn{display:inline-block;background:var(--brand-blue);color:#fff;padding:.6rem 1.25rem;border-radius:6px;font-size:.9375rem;font-weight:600;text-decoration:none;transition:opacity .15s}.ga-lesson-content a.btn:hover{opacity:.88}.ga-ext-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:9999px;background:var(--primary);color:var(--primary-foreground);font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .15s;cursor:pointer}.ga-ext-btn:hover{opacity:.9}.ga-ext-btn--muted{background:var(--bg-subtle);color:var(--text-primary);border:1px solid var(--border);border-radius:.5rem;padding:.5rem 1rem}.ga-ext-btn--muted:hover{opacity:.85}.ga-lesson-content a.ga-ext-btn,.ga-slide-body a.ga-ext-btn{color:var(--primary-foreground);text-decoration:none}.ga-lesson-content a.ga-ext-btn:hover,.ga-slide-body a.ga-ext-btn:hover{color:var(--primary-foreground)}.ga-lesson-content a.ga-ext-btn--muted,.ga-slide-body a.ga-ext-btn--muted{color:var(--text-primary)}.dark .ga-lesson-content a.ga-ext-btn,.dark .ga-slide-body a.ga-ext-btn{color:var(--primary-foreground)}.dark .ga-lesson-content a.ga-ext-btn--muted,.dark .ga-slide-body a.ga-ext-btn--muted{color:var(--text-primary)}.ga-hint ol,.ga-hint ul,.ga-solution ol,.ga-solution ul{margin-bottom:.75rem}.ga-hint strong,.ga-solution strong{font-weight:600}@layer components{.ga-code-block{border-radius:calc(var(--radius) + 4px);border:1px solid var(--border-color);overflow:hidden}.ga-code-block--spaced{margin-block:1.5rem}.ga-code-block--spaced-sm{margin-block:1rem}.ga-code-header{display:flex;align-items:center;padding-inline:1rem;padding-block:.5rem}.ga-code-header--actions{justify-content:space-between}.ga-code-header__label-group{display:flex;align-items:baseline;gap:.75rem}.ga-code-noselect{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ga-code-body--padded{padding:1rem}.ga-code-body--code,.ga-code-pre{overflow-x:auto;font-size:.875rem;line-height:1.625;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ga-code-pre{margin:0;padding-inline:1.25rem;padding-block:1rem}}pre code span{color:var(--shiki-light);background-color:transparent}.dark pre code span{color:var(--shiki-dark);background-color:transparent}pre.shiki,pre[data-language],pre[data-theme]{background-color:#f6f8fa;color:#24292f}.dark pre.shiki,.dark pre[data-language],.dark pre[data-theme]{background-color:#22272e;color:#adbac7}.ga-code-body>pre{margin:0;padding:1rem 1.25rem}pre code [data-highlighted-line]{background-color:rgba(1,139,255,.07);display:block;margin:0 -1.25rem;padding:0 1.25rem;border-left:2px solid #018bff}.dark pre code [data-highlighted-line]{background-color:rgba(1,139,255,.12);border-left-color:#2f81f7}mark[data-highlighted-chars]{background-color:rgba(255,200,0,.2);border:none!important;border-radius:3px;padding:.1em .15em;margin:0}.dark mark[data-highlighted-chars]{background-color:rgba(255,200,0,.15)}:not(pre)>code{font-family:ui-monospace,Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:.85em;font-weight:500;background:#eef1f6;color:#1f2937;padding:.15em .4em;border-radius:5px;border:1px solid #dde3ec;letter-spacing:-.01em;line-height:1;vertical-align:.06em;white-space:normal;overflow-wrap:break-word}.dark :not(pre)>code{background:color-mix(in srgb,var(--n4j-light-baltic) 6%,transparent);color:var(--n4j-light-baltic);border-color:color-mix(in srgb,var(--n4j-light-baltic) 30%,transparent);border-radius:6px}.ga-code-block{box-shadow:0 1px 4px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.04)}.dark .ga-code-block{box-shadow:0 1px 4px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.04)}.ga-code-header{background:#f0f2f5;border-bottom:1px solid #e2e6ec}.dark .ga-code-header{background:#1c2128;border-bottom-color:#30363d}.ga-code-lang{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6b7280}.ga-code-lang,.ga-code-title{font-family:ui-monospace,monospace}.ga-code-title{font-size:.75rem;font-weight:600;color:#4b5563}.dark .ga-code-lang{color:#8b949e}.dark .ga-code-title{color:#c9d1d9}.ga-code-run{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .625rem;border-radius:5px;border:1px solid transparent;font-size:.75rem;font-weight:600;color:#018bff;background:transparent;cursor:pointer;transition:background .12s,border-color .12s;line-height:1}.ga-code-run:hover{background:rgba(1,139,255,.08);border-color:rgba(1,139,255,.25)}.dark .ga-code-run{color:#2f81f7}.dark .ga-code-run:hover{background:rgba(47,129,247,.1);border-color:rgba(47,129,247,.3)}.ga-code-run--running,.ga-code-run--running:hover{opacity:.6;cursor:default}.ga-code-copy{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .625rem;border-radius:5px;border:1px solid transparent;font-size:.75rem;font-weight:500;color:#6b7280;background:transparent;cursor:pointer;transition:background .12s,color .12s,border-color .12s;line-height:1}.ga-code-copy:hover{color:#374151;background:rgba(0,0,0,.05);border-color:#d1d5db}.ga-code-copy--copied{color:#16a34a}.dark .ga-code-copy{color:#8b949e}.dark .ga-code-copy:hover{color:#e6edf3;background:rgba(255,255,255,.06);border-color:#484f58}.dark .ga-code-copy--copied{color:#4ade80}.ga-ch{margin:1rem 0}.ga-ch--side{display:flex;align-items:flex-start;gap:1rem}.ga-ch--side .ga-ch__code{flex:1 1;min-width:0}.ga-ch--side .ga-ch__code .ga-code-block{margin:0}.ga-ch--side .ga-ch__list{width:15rem;flex-shrink:0}.ga-ch--stack{display:flex;flex-direction:column;gap:.75rem}.ga-ch--stack .ga-ch__code .ga-code-block{margin:0}@media (max-width:767px){.ga-ch--side{flex-direction:column}.ga-ch--side .ga-ch__list{width:100%}}.ga-ch__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.ga-lesson-content .ga-ch__list{padding:0 0 0 .25rem}.ga-lesson-content .ga-ch__list p{margin:0!important}.ga-lesson-content .ga-ch__list li{margin:.125rem 0!important}.ga-ch__item{display:flex;align-items:flex-start;gap:.625rem;padding:.4375rem .5rem;border-radius:.375rem;cursor:default;transition:background-color .1s ease}.ga-ch__item--active,.ga-ch__item:hover{background-color:rgba(245,182,66,.1)}.dark .ga-ch__item--active,.dark .ga-ch__item:hover{background-color:rgba(245,182,66,.08)}.ga-ch__num{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:1px;border-radius:50%;font-size:.6875rem;font-weight:700;font-family:ui-monospace,monospace;line-height:1;border:1.5px solid #d1d5db;color:#6b7280;transition:background-color .1s ease,border-color .1s ease,color .1s ease}.dark .ga-ch__num{border-color:#484f58;color:#8b949e}.ga-ch__item--active .ga-ch__num,.ga-ch__item:hover .ga-ch__num{background:#f5b642;border-color:#f5b642;color:#1c1200}.ga-ch__text{font-size:.8125rem;line-height:1.5625;color:#6b7280;transition:color .1s ease}.dark .ga-ch__text{color:#8b949e}.ga-ch__item--active .ga-ch__text,.ga-ch__item:hover .ga-ch__text{color:#111827}.dark .ga-ch__item--active .ga-ch__text,.dark .ga-ch__item:hover .ga-ch__text{color:#e6edf3}.ga-ch__text p{margin:0}.ga-ch__text p+p{margin-top:.375rem}.ga-ch__text code{font-family:var(--font-mono,ui-monospace,monospace);font-size:.92em;padding:.1em .35em;border-radius:.25rem;background:var(--bg-subtle);border:1px solid var(--border-soft)}.dark .ga-ch__text code{background:rgba(255,255,255,.06);border-color:var(--border-strong)}.ga-ch__text a{color:var(--brand-blue);text-decoration:underline}.dark .ga-ch__text a{color:var(--n4j-light-baltic)}.ga-ch__text ol,.ga-ch__text ul{margin:.25rem 0 0;padding-left:1.25rem}.ga-ch__code pre code [data-line]{transition:opacity .15s ease}.ga-ch__code[data-callout-hovering] pre code [data-line]{opacity:.2}.ga-ch__code[data-callout-hovering] pre code [data-callout-active]{opacity:1;background-color:rgba(245,182,66,.12);box-shadow:inset 2px 0 0 #f5b642}.dark .ga-ch__code[data-callout-hovering] pre code [data-callout-active]{background-color:rgba(245,182,66,.16)}