.catalog-tabs{display:flex;gap:4px;margin:0 0 24px;border-bottom:1px solid var(--line);overflow-x:auto}.catalog-tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 16px;font:600 14px/1.2 var(--sans);color:var(--muted);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.catalog-tab:hover{color:var(--ink)}.catalog-tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.catalog-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.catalog-tab-count{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--panel2);color:var(--muted)}.catalog-tab[aria-selected=true] .catalog-tab-count{background:var(--accent-soft);color:var(--accent)}.catalog-empty{color:var(--muted);font-size:14px;margin:8px 0 24px}.course-menu-panel.three-col{width:min(960px,calc(100vw - 32px));grid-template-columns:190px 230px minmax(0,1fr)}.course-menu-tutorials{background:var(--panel)}.course-menu-heading--soon{margin-top:12px}.course-menu-course--soon{color:var(--faint);cursor:default;font-size:13px}.course-menu-course--soon:hover{background:none;color:var(--faint)}.course-menu-topics--empty{display:flex;align-items:center;justify-content:center;padding:24px;color:var(--muted);font-size:14px;text-align:center}@media (max-width: 900px){.course-menu-panel.three-col{grid-template-columns:28% 34% minmax(0,1fr)}}@media (max-width: 600px){.catalog-tabs{flex-wrap:wrap;gap:8px;border-bottom:0;overflow-x:visible}.catalog-tab{margin-bottom:0;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.catalog-tab[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft)}}.support-menu{position:relative;flex-shrink:0}.support-trigger{color:var(--ink)}.support-options{position:absolute;right:0;top:calc(100% + .5rem);box-sizing:border-box;width:min(11rem,calc(100vw - 2rem));padding:.25rem;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0002;z-index:100}.support-options>*{display:flex;align-items:center;gap:.5rem;box-sizing:border-box;width:100%;min-height:44px;padding:.5rem .75rem;border:0;border-radius:4px;background:transparent;color:inherit;text-align:left;font:inherit;font-size:.875rem;cursor:pointer;text-decoration:none}.support-options svg{flex-shrink:0}.support-options>*:hover{background:var(--panel2);text-decoration:none}.support-menu :focus-visible,.support-dialog :focus-visible,.support-footer-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.support-dialog{box-sizing:border-box;width:min(44rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:1.5rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);overflow:auto}.support-dialog::backdrop{background:#0009}.support-heading{display:flex;align-items:center;justify-content:flex-end}.support-accessible-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.support-heading button{flex-shrink:0;font-size:1.5rem}.support-dialog iframe{display:block;width:100%;height:min(36rem,calc(100dvh - 12rem));border:0;background:#fff}.support-fallback{font-size:.875rem}.support-footer-button{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.support-footer-button:hover{text-decoration:underline}@media (max-width: 480px){.support-dialog{padding:1rem}}.home2{max-width:1280px;margin:0 auto;padding:64px 40px 96px}.home2 h1,.home2 h2,.home2 h3{font-weight:500;color:var(--ink);letter-spacing:-.01em}.h2-eyebrow{display:block;font-size:13px;color:var(--accent);margin-bottom:18px}.h2-note{font-size:13px;color:var(--muted);margin:12px 0 0}.h2-sub{font-size:14px;color:var(--muted);margin:4px 0 0}.h2-num{display:block;font:12px var(--mono);color:var(--faint);margin-bottom:10px}.h2-btn{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 20px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit;font-size:15px;cursor:pointer;text-decoration:none}.h2-btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.h2-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.h2-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.h2-btn-sm{height:30px;padding:0 12px;font-size:13px}.h2-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:56px;align-items:center}.h2-hero h1{font-size:52px;line-height:1.12;letter-spacing:-.02em;margin:0 0 24px}.h2-lede{font-size:18px;line-height:1.6;color:var(--ink2);margin:0 0 28px;max-width:470px}.h2-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.h2-try-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}.h2-try-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;border-bottom:1px solid var(--line);background:var(--panel2);font-size:13px;color:var(--ink)}.h2-try-head small{font:11px var(--mono);color:var(--faint);margin-left:6px}.h2-try-code{margin:0;padding:16px 20px;font:14px/1.75 var(--mono);color:var(--ink);white-space:pre;overflow-x:auto;background:var(--panel)}.h2-try-editor{background:var(--panel)}.h2-try-code .ln{display:inline-block;width:24px;color:var(--faint);user-select:none}.h2-try-code .str{color:var(--ok)}.h2-try-input{font:inherit;color:inherit;border:0;border-bottom:1px dashed var(--accent);background:var(--accent-soft);padding:0 2px;outline:none}.h2-try-console{display:flex;gap:16px;align-items:baseline;padding:12px 16px;border-top:1px solid var(--line);background:var(--panel2);font-size:12px;color:var(--muted)}.h2-try-console code{font:13px var(--mono);color:var(--ink);background:none;padding:0}.h2-section{margin-top:88px}.h2-section h2{font-size:24px;margin:0}.h2-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.h2-goals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}.h2-goal{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;padding:22px;background:var(--panel)}.h2-goal h3{font-size:17px;margin:0 0 12px}.h2-goal p{font-size:14px;line-height:1.5;color:var(--ink2);margin:0 0 16px;flex:1}.h2-goal-foot{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:10px;font-size:13px;color:var(--muted)}.h2-goal-foot a{font-size:14px;color:var(--accent)}.h2-band{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:64px;padding:26px 28px;border-radius:10px;background:var(--panel2)}.h2-band strong{display:block;font-weight:500;font-size:16px;color:var(--ink);margin-bottom:6px}.h2-band p{margin:0;font-size:14px;color:var(--ink2)}.h2-band a{white-space:nowrap;color:var(--accent)}.h2-welcome h1{font-size:34px;margin:0 0 8px}.h2-stats{display:flex;flex-wrap:wrap;font-size:14px;color:var(--muted);margin:0 0 32px}.h2-stats>*+*:before{content:"·";margin:0 14px;color:var(--faint)}.h2-stats a{color:var(--accent)}.h2-resume{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow)}.h2-resume .h2-eyebrow{margin-bottom:10px}.h2-resume-title{display:flex;align-items:center;gap:12px;margin-bottom:8px}.h2-resume-title strong{font-size:22px;font-weight:500;color:var(--ink)}.h2-resume-meta{display:block;font-size:14px;color:var(--muted);margin-bottom:16px}.h2-resume-track{display:block;width:min(520px,100%);height:4px;border-radius:4px;background:var(--line);overflow:hidden}.h2-resume-track i{display:block;height:100%;background:var(--accent)}@media (max-width: 1000px){.h2-hero{grid-template-columns:1fr;gap:40px}.h2-goals{grid-template-columns:repeat(2,minmax(0,1fr))}.h2-path{grid-template-columns:1fr;gap:16px}.h2-path-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.home2{padding:36px 16px 64px}.h2-hero h1{font-size:36px}.h2-goals,.h2-path-list{grid-template-columns:1fr}.h2-resume,.h2-band{flex-direction:column;align-items:flex-start}}.h2-catalog{margin-top:96px}.cat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}.cat-head h2{font-size:26px;margin:0}.cat-jump{display:flex;flex-wrap:wrap;gap:8px}.cat-jump a{font-size:13px;color:var(--ink2);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);text-decoration:none;white-space:nowrap}.cat-jump a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.cat-path{display:grid;grid-template-columns:248px minmax(0,1fr);gap:48px;padding:40px 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--topbar-h) + 16px)}.cat-path-head{position:sticky;top:calc(var(--topbar-h) + 24px);align-self:start}.cat-path-head h3{font-size:22px;margin:0 0 10px}.cat-path-head p{font-size:14.5px;line-height:1.55;color:var(--ink2);margin:0 0 14px}.cat-path-count{font-size:13px;color:var(--muted)}.cat-groups{display:grid;min-width:0}.cat-group{display:grid;grid-template-columns:168px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid var(--line2)}.cat-group:first-child{border-top:0;padding-top:0}.cat-group:last-child{padding-bottom:0}.cat-group-title{margin:14px 0 0;font-size:14px;font-weight:500;color:var(--ink);line-height:1.35}.cat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cat-card{flex:1;display:flex;align-items:center;gap:12px;min-width:0;min-height:68px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}a.cat-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 6px 16px -6px #121a2b2e;transform:translateY(-1px);text-decoration:none}a.cat-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-card .course-logo.compact,.cat-card .course-logo{flex:0 0 auto;width:38px;height:38px;padding:6px;border-radius:8px;box-shadow:none;background:var(--panel2);border-color:var(--line2)}.cat-card-text{flex:1;min-width:0;display:grid;gap:3px}.cat-card-title{font-size:15px;font-weight:500;line-height:1.3;color:var(--ink);white-space:normal;overflow-wrap:break-word}.cat-card-meta{font-size:12.5px;color:var(--muted)}.cat-card-arrow{flex:0 0 auto;color:var(--faint);opacity:0;transform:translate(-4px);transition:all .15s ease}a.cat-card:hover .cat-card-arrow{opacity:1;transform:none;color:var(--accent)}a.cat-card:hover .cat-card-title{color:var(--accent2)}.cat-card--soon{background:transparent;border-style:dashed;cursor:default}.cat-card--soon .cat-card-title{color:var(--muted);font-weight:400}.cat-card--soon .course-logo{opacity:.45;filter:grayscale(1)}@media (max-width: 1200px){.cat-path{grid-template-columns:220px minmax(0,1fr);gap:36px}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1000px){.cat-path{grid-template-columns:1fr;gap:24px}.cat-path-head{position:static}.cat-group{grid-template-columns:1fr;gap:12px}.cat-group-title{margin:0}}@media (max-width: 640px){.home2{padding:36px 16px 64px}.cat-grid{grid-template-columns:1fr}.cat-jump{display:none}}.home2{max-width:1400px}.cat-path{grid-template-columns:220px minmax(0,1fr);gap:40px}.cat-groups{align-content:start}.cat-group{grid-template-columns:140px minmax(0,1fr);gap:20px;align-items:start}.cat-grid{align-items:start}.cat-card{min-height:64px;padding:12px 14px}@media (max-width: 1280px){.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1000px){.cat-path{grid-template-columns:1fr;gap:24px}.cat-group{grid-template-columns:1fr;gap:12px}}@media (max-width: 640px){.cat-grid{grid-template-columns:1fr}}.cat-soon-line{display:none}@media (max-width: 640px){.home2{padding:28px 16px 56px}.h2-hero{gap:28px}.h2-hero h1{font-size:32px;line-height:1.15;margin-bottom:16px}.h2-eyebrow{margin-bottom:12px}.h2-lede{font-size:16px;margin-bottom:20px}.h2-actions{display:grid;grid-template-columns:1fr;gap:10px}.h2-actions .h2-btn{justify-content:center;width:100%}.h2-try-code{font-size:12.5px;padding:12px 14px}.h2-try-code .ln{width:18px}.h2-try-console{flex-wrap:wrap;gap:6px 12px}.h2-section{margin-top:56px}.h2-section h2{font-size:22px}.h2-goals{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:18px -16px 0;padding:0 16px 6px;scrollbar-width:none}.h2-goals::-webkit-scrollbar{display:none}.h2-goal{scroll-snap-align:start;padding:18px}.h2-catalog{margin-top:56px}.cat-head{display:block;padding-bottom:0;border-bottom:0}.cat-head h2{font-size:22px}.cat-jump{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;scrollbar-width:none;position:sticky;top:var(--topbar-h);z-index:5;margin:14px -16px 0;padding:10px 16px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.cat-jump::-webkit-scrollbar{display:none}.cat-path{padding:28px 0;gap:16px;scroll-margin-top:calc(var(--topbar-h) + 64px)}.cat-path-head h3{font-size:20px;margin-bottom:6px}.cat-path-head p{font-size:14px;margin-bottom:6px}.cat-group{padding:16px 0;gap:10px}.cat-group-title{font-size:13px;color:var(--muted);font-weight:500}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cat-li-soon{display:none!important}.cat-card{flex-direction:column;align-items:flex-start;gap:10px;min-height:0;padding:12px}.cat-card .course-logo,.cat-card .course-logo.compact{width:34px;height:34px;padding:5px}.cat-card-title{font-size:14px}.cat-card-meta{font-size:12px}.cat-card-arrow{display:none}.cat-soon-line{display:block;margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}.cat-soon-line span{color:var(--ink2);font-weight:500;margin-right:4px}.h2-welcome h1{font-size:26px}.h2-resume{padding:20px;gap:16px}.h2-resume .h2-btn{width:100%;justify-content:center}.h2-band{padding:20px;gap:12px}}@media (max-width: 360px){.cat-grid{grid-template-columns:1fr}.cat-card{flex-direction:row;align-items:center}}@media (max-width: 1000px){.h2-hero{grid-template-columns:minmax(0,1fr)}.h2-hero>*{min-width:0}}@media (max-width: 640px){.h2-goals{display:grid;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;gap:10px;overflow:visible;margin:16px 0 0;padding:0;scroll-snap-type:none}.h2-goal{padding:16px;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:baseline}.h2-goal .h2-num{margin:0}.h2-goal h3{margin:0 0 6px;font-size:16px}.h2-goal p{grid-column:2;margin:0 0 12px;font-size:14px}.h2-goal-foot{grid-column:1 / -1;padding-top:12px;gap:6px}}.h2-band>div{max-width:760px}.h2-band p{line-height:1.6}.h2-band p.h2-band-note{margin-top:10px;font-size:13px;color:var(--muted)}@media (min-width: 641px){.home2{max-width:1240px;padding-left:clamp(24px,5vw,72px);padding-right:clamp(24px,5vw,72px)}.h2-hero{grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:clamp(32px,5vw,80px)}}.h2-band+.h2-band{margin-top:16px}.h2-band-brand{display:flex;align-items:center;gap:24px;min-width:0}.h2-band-logo{flex:0 0 auto;display:grid;place-items:center;padding:10px 14px;border-radius:var(--radius-md, 8px);background:#fff;border:1px solid var(--line)}.h2-band-logo img{display:block;width:150px;height:auto}@media (max-width: 640px){.h2-band-brand{flex-direction:column;align-items:flex-start;gap:14px}}.h2-band--boldcreate strong{margin-bottom:0;font-size:17px}.cat-tabs{display:flex;gap:4px;margin-top:24px;border-bottom:1px solid var(--line)}.cat-tab{font:inherit;font-size:15px;font-weight:600;color:var(--ink2);background:none;cursor:pointer;padding:10px 16px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px}.cat-tab:hover{color:var(--accent)}.cat-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.cat-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-head--sub{margin-top:16px;justify-content:flex-start}@media (max-width: 640px){.cat-tab{flex:1;padding:10px 8px;font-size:14px}}.cat-grid>li.cat-li-live{position:relative}.cat-li-live .cat-card{padding-right:52px}.cat-li-live .cat-card-arrow{display:none}.cat-card-share{position:absolute;top:50%;right:10px;transform:translateY(-50%);z-index:3}.cat-card-share .share-trigger{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--panel2, var(--panel));box-shadow:0 1px 2px #121a2b0f;color:var(--ink2);transition:background .15s ease,border-color .15s ease,color .15s ease}.cat-card-share .share-trigger:hover,.cat-card-share .share-trigger:focus-visible,.cat-card-share .share-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent2)}.cat-card-share .share-trigger svg{width:15px;height:15px;padding:0;border:0;background:none}.cat-card-share .share-popover{left:auto;right:0;top:calc(100% + 4px);width:max-content;min-width:200px;max-width:calc(100vw - 24px);z-index:40}.cat-grid>li:has(.share-popover){z-index:30}.cat-li-live .cat-card-share .share-menu .share-trigger{width:28px;height:28px;min-width:28px;padding:0;border-radius:50%}.cat-li-live .cat-card-share .share-menu .share-trigger svg{width:14px;height:14px;padding:0;flex:0 0 14px}.cat-grid{align-items:stretch;grid-auto-rows:1fr}.cat-grid>li{display:flex;min-width:0}.cat-grid>li>.cat-card{flex:1 1 auto;height:100%;min-height:84px;align-items:center;box-sizing:border-box}.cat-card-text{min-width:0;display:grid;gap:4px;align-content:center}.cat-card-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.25;overflow-wrap:anywhere}.cat-card-meta{line-height:1.2}.cat-li-live .cat-card{padding-right:50px}.cat-card-share{right:12px}.cat-card-title{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible;font-size:15px;line-height:1.3;overflow-wrap:normal;word-break:normal;hyphens:auto}.cat-li-live .cat-card{padding-right:46px}.cat-card-share{right:10px}@media (min-width: 641px){@supports (grid-template-rows: subgrid){.h2-goal{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:0}.h2-goal p{margin-bottom:16px}.h2-goal-foot{grid-row:span 2;grid-template-rows:subgrid;align-items:start}.h2-goal-foot a{font-size:clamp(13px,1.05vw,14px);text-wrap:balance}}}.h2-try-static{min-height:148px;box-sizing:border-box;cursor:text;outline:none}.h2-try-static:hover,.h2-try-static:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-soft)}.h2-try-static .ln{display:inline-block;width:24px;color:var(--faint);user-select:none}.h2-num,.h2-try-head small{color:var(--muted)}.hel{--hel-read: var(--accent, #0056d2);--hel-plan: #7c3aed;--hel-act: #d97706;--hel-observe: #0d9488}.hel-agent{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:start}.hel-left,.hel-right{min-width:0;display:flex;flex-direction:column;gap:8px}.hel-select{padding:6px 9px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:13px var(--sans);max-width:100%}.hel-goal,.hel-meta{margin:0;font-size:13.5px;color:var(--ink)}.hel-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hel-gate{border:1px dashed var(--line);border-radius:8px;padding:10px 12px}.hel-gate p{margin:0 0 8px;font-size:13.5px}.hel-loop{list-style:none;margin:4px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.hel-phase{flex:1 1 70px;border:1.5px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--panel);display:flex;flex-direction:column;min-width:70px;transition:background .2s,border-color .2s}.hel-phase b{font-size:13px;color:var(--ink)}.hel-phase span{font-size:11px;color:var(--muted)}.hel-phase.on{border-width:2.5px}.hel-read.on{border-color:var(--hel-read);background:color-mix(in srgb,var(--hel-read) 12%,transparent)}.hel-plan.on{border-color:var(--hel-plan);background:color-mix(in srgb,var(--hel-plan) 12%,transparent)}.hel-act.on{border-color:var(--hel-act);background:color-mix(in srgb,var(--hel-act) 14%,transparent)}.hel-observe.on{border-color:var(--hel-observe);background:color-mix(in srgb,var(--hel-observe) 12%,transparent)}.hel-done.on{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.hel-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.hel-step{border:1px solid var(--line);border-left:4px solid var(--hel-act);border-radius:8px;padding:7px 10px;background:var(--panel)}.hel-ph-read{border-left-color:var(--hel-read)}.hel-ph-plan{border-left-color:var(--hel-plan)}.hel-ph-observe{border-left-color:var(--hel-observe)}.hel-step.bad{border-left-color:var(--bad)}.hel-step.denied{border-left-color:var(--muted);opacity:.85}.hel-step.fin{border-left-color:var(--ok)}.hel-step-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hel-step-n{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.hel-cmd{font:12.5px var(--mono);padding:1px 7px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);word-break:break-all}.hel-pill{font:600 11.5px var(--sans);padding:1px 7px;border-radius:999px;border:1px solid var(--line)}.hel-pill.warn{color:#b45309;border-color:#d97706}.hel-pill.ok{color:var(--ok);border-color:var(--ok)}.hel-pill.bad{color:var(--bad);border-color:var(--bad)}.hel-thought{margin:4px 0;font-size:13px;color:var(--ink)}.hel-out{margin:0;font:12px/1.45 var(--mono);color:var(--muted);white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto}.hel-out.bad{color:var(--bad)}.hel-view{max-height:300px;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.hel-live{margin:0;max-height:120px;overflow:auto;font:12px var(--mono);white-space:pre-wrap}.hel-approve{border:2px solid #d97706;border-radius:8px;padding:10px 12px;background:color-mix(in srgb,#d97706 8%,transparent);display:flex;flex-direction:column;gap:6px}.hel-approve p{margin:0;font-size:13.5px}.hel-deny{border-color:var(--bad)!important;color:var(--bad)!important}.hel-result{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:8px;border:1.5px solid var(--line);font-size:13px}.hel-result.ok{border-color:var(--ok)}.hel-result.bad{border-color:var(--bad)}.hel-files{display:grid;grid-template-columns:minmax(160px,260px) minmax(0,1fr);gap:14px}.hel-tree{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:360px;overflow:auto}.hel-file{width:100%;text-align:left;border:0;background:none;padding:3px 6px;border-radius:4px;font:12.5px var(--mono);color:var(--ink);cursor:pointer;word-break:break-all}.hel-file:hover{background:var(--panel2)}.hel-file.on{background:var(--accent-soft, #e6efff)}.hel-file.changed{color:#b45309}.hel-file.rules{font-weight:700}.hel-editor{min-width:0;display:flex;flex-direction:column;gap:8px}.hel-term-log{font:12.5px var(--mono);display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto;margin-bottom:8px}.hel-prompt{font:600 12.5px var(--mono);color:var(--ok)}.hel-term-in{display:flex;gap:8px;align-items:center}.hel-term-in input{flex:1;min-width:0;padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:13px var(--mono)}.hel-table{border-collapse:collapse;width:100%;font-size:13px;margin:6px 0}.hel-table th,.hel-table td{border:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top}.hel-table th{background:var(--panel2);white-space:nowrap}.hel-meter{height:10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);overflow:hidden;max-width:420px}.hel-meter span{display:block;height:100%;background:var(--accent, #0056d2)}.hel-h{margin:12px 0 4px;font-size:13.5px}.hel-facts{margin:0;padding-left:18px;font-size:13px}.hel-facts .yes b{color:var(--ok)}.hel-facts .no{color:var(--muted)}.hel-settings fieldset{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}.hel-settings legend{font:600 13px var(--sans);padding:0 4px}.hel-profile{border:1.5px solid var(--accent, #0056d2);border-radius:10px;padding:12px 14px;margin:16px 0;display:flex;flex-direction:column;gap:8px;background:var(--panel)}.hel-profile.done{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;border-width:1px}.hel-profile.done p,.hel-profile-title{margin:0;font-size:14px}.hel-profile fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:3px}.hel-profile legend{font:600 14px var(--sans);margin-bottom:2px}.hel-tooltabs{border:1px solid var(--line);border-radius:10px;padding:6px 12px 8px;margin:14px 0;background:var(--panel)}.hel-tooltabs-bar{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:6px;overflow-x:auto}@media (max-width: 900px){.hel-agent,.hel-files{grid-template-columns:minmax(0,1fr)}}@media (max-width: 720px){.hel-profile.done{flex-direction:column;align-items:flex-start}}.hel-newfile{display:flex;gap:6px;margin-top:6px}.hel-newfile input,.hel-q input{flex:1;min-width:0;padding:5px 7px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:12px var(--mono)}.hel-q{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}.hel-q label{display:flex;flex-direction:column;gap:3px}.hel-table td.bad{color:var(--bad, #c0392b);font-weight:600}.hel-scroll{overflow-x:auto;max-width:100%}.hel-agent{gap:20px}.hel-left{position:sticky;top:0}.hel-watch{margin:0;font-size:13px;color:var(--muted)}.hel-right .hel-steps{max-height:min(62vh,640px);overflow-y:auto;padding-right:4px;scroll-behavior:smooth}.hel-step{padding:9px 12px;box-shadow:0 1px color-mix(in srgb,var(--ink) 4%,transparent)}.hel-step-head{justify-content:space-between}.hel-step-head .hel-cmd{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hel-out{background:var(--bg);border-radius:6px;padding:6px 8px;margin-top:4px}.hel-more summary{list-style:none;cursor:pointer}.hel-more summary::-webkit-details-marker{display:none}.hel-more summary span{display:inline-block;margin-top:4px;font:600 12px var(--sans);color:var(--accent, #0056d2)}.hel-more[open] summary{display:none}.hel-session{list-style:none;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:6px 0 0;padding:6px 2px;border-top:2px solid var(--line);font:700 13px var(--sans);color:var(--ink)}.hel-session span{font:400 12px var(--sans);color:var(--muted)}.hel-live{display:flex;flex-direction:column;gap:6px;margin:0;max-height:none;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--hel-plan);border-radius:8px;background:var(--panel);font:13px var(--sans);white-space:normal}.hel-live code{font:12px var(--mono);color:var(--muted);word-break:break-all}.hel-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--hel-plan);animation:hel-pulse 1s ease-in-out infinite}@keyframes hel-pulse{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.hel-live-dot{animation:none}}.hel-result{border-radius:8px}.lsb-tabs{flex-wrap:nowrap;scrollbar-width:thin}.lsb-tab{white-space:nowrap}@media (max-width: 760px){.hel-left{position:static}.hel-right .hel-steps{max-height:55vh}}.hel-thought{white-space:pre-wrap}.hel-newfile-li{position:sticky;top:0;background:var(--bg);padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--line);z-index:1}.hel-newfile{display:flex;flex-wrap:wrap;gap:6px}.hel-newfile input{flex:1 1 180px;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:12.5px var(--mono)}.hel-files{grid-template-columns:minmax(200px,280px) minmax(0,1fr);align-items:start}.hel-tree{max-height:min(70vh,640px);padding-right:4px}.hel-group{list-style:none;margin-top:6px}.hel-group>ul{list-style:none;margin:2px 0 0;padding:0 0 0 10px;border-left:1px solid var(--line)}.hel-group-name{display:block;font:600 11.5px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px}.hel-file{display:flex;align-items:center;gap:6px;padding:4px 8px;word-break:normal}.hel-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.hel-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#d97706}.hel-code-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.hel-code-head code{font:600 13px var(--mono);color:var(--ink);word-break:break-all}.hel-code-note{margin:0;font-size:12.5px}.hel-code{border:1px solid var(--line);border-radius:8px;overflow:hidden}@media (max-width: 760px){.hel-code{height:320px!important}.hel-tree{max-height:240px}}.hel-preview{display:flex;flex-direction:column;gap:10px}.hel-preview-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.hel-preview-bar p{margin:0}.hel-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.hel-seg button{border:0;background:var(--bg);color:var(--ink);padding:5px 10px;font:13px var(--sans);cursor:pointer}.hel-seg button[aria-pressed=true]{background:var(--accent, #0056d2);color:#fff}.hel-browser{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}.hel-browser-top{display:flex;gap:10px;align-items:center;padding:7px 10px;background:var(--panel2, var(--panel));border-bottom:1px solid var(--line)}.hel-dots{display:inline-flex;gap:5px}.hel-dots i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block}.hel-url{flex:1;min-width:0;font:12.5px var(--mono);color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hel-browser-body{min-height:220px}.hel-overlay{margin:0;padding:16px;min-height:220px;background:#2b1111;color:#ffb4b4;font:13px/1.5 var(--mono);white-space:pre-wrap}.hel-board{padding:14px 16px;font-family:var(--sans)}.hel-board header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:8px;color:var(--muted);font-size:13px}.hel-board header b{color:var(--ink);font-size:15px}.hel-board h2{margin:4px 0 10px;font-size:20px;color:var(--ink)}.hel-board ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.hel-board li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.hel-board-title{flex:1 1 180px;color:var(--ink);font-size:14px}.hel-board-due{font-size:12.5px;color:var(--muted)}.hel-tag{font:600 12px var(--sans);padding:1px 8px;border-radius:999px;border:1px solid var(--line)}.hel-tag.open{color:#0f766e;border-color:#0d9488}.hel-tag.closed{color:var(--muted)}.hel-board-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.hel-chip{font:12.5px var(--sans);padding:3px 9px;border-radius:999px;border:1px solid var(--ok);color:var(--ok)}.hel-chip.not-wired{border-color:#d97706;color:#b45309;border-style:dashed}.hel-chip.broken{border-color:var(--bad);color:var(--bad)}.hel-api{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr)}.hel-api-list{list-style:none;margin:0;padding:6px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.hel-api-list button{width:100%;text-align:left;border:0;background:none;padding:6px 8px;border-radius:6px;font:12.5px var(--mono);color:var(--ink);cursor:pointer;display:flex;gap:6px;align-items:center}.hel-api-list button[aria-pressed=true]{background:var(--accent-soft, #e6efff)}.hel-status{margin-left:auto;font-weight:700}.hel-status.s2{color:var(--ok)}.hel-status.s4,.hel-status.s5{color:var(--bad)}.hel-api-resp{padding:10px 14px}.hel-api-resp p{margin:0 0 6px;font-size:13px}.hel-api-resp pre{margin:0;padding:8px 10px;border-radius:6px;background:var(--panel);font:12.5px var(--mono);white-space:pre-wrap}.hel-api-note{color:#b45309;margin-top:8px!important}.hel-preview-notes{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--panel);font-size:13.5px}.hel-preview-notes ul{margin:4px 0 0;padding-left:18px}@media (max-width: 760px){.hel-api{grid-template-columns:minmax(0,1fr)}.hel-api-list{border-right:0;border-bottom:1px solid var(--line)}}.hel-stackpick{border:1px solid var(--line);border-radius:10px;padding:6px 12px 4px;margin:14px 0;background:var(--panel)}.hel-stackpick-body>:first-child{margin-top:6px}.hel-stackpick-body pre{max-width:100%;overflow-x:auto}.hel-review-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}.hel-review-list li{border:1px solid var(--line);border-radius:8px;padding:6px 10px}.hel-review-list li.bad{border-left:4px solid var(--bad, #c0392b)}.hel-review-list li.ok{border-left:4px solid var(--ok, #16a34a)}.hel-review-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;cursor:pointer}.hel-review-head code{overflow-wrap:anywhere}:root{--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--bg: #f8fafc;--panel: #ffffff;--panel2: #f1f5f9;--ink: #0f172a;--ink2: #334155;--muted: #64748b;--faint: #94a3b8;--line: #e2e8f0;--line2: #edf2f7;--brand-blue: #0047ba;--brand-blue-hover: #003a99;--brand-blue-soft: #eff6ff;--brand-orange: #f57c00;--brand-orange-hover: #e65100;--brand-orange-soft: #fff7ed;--accent: #0047ba;--accent2: #0056d2;--accent-soft: #eff6ff;--accent-secondary: #f57c00;--accent-secondary-soft: #fff7ed;--ok: #15803d;--ok-soft: #f0fdf4;--bad: #dc2626;--bad-soft: #fef2f2;--info: #0284c7;--info-soft: #f0f9ff;--warn: #d97706;--warn-soft: #fffbeb;--code-bg: #f1f5f9;--sel: #dbeafe;--kw: #7c3aed;--str: #15803d;--num: #d97706;--com: #64748b;--fn: #0047ba;--shadow: 0 1px 3px rgba(15, 23, 42, .05), 0 10px 25px -5px rgba(15, 23, 42, .06);--radius: 8px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0b1120;--panel: #0f172a;--panel2: #1e293b;--ink: #f8fafc;--ink2: #cbd5e1;--muted: #94a3b8;--faint: #64748b;--line: #1e293b;--line2: #283548;--brand-blue: #3b82f6;--brand-blue-hover: #60a5fa;--brand-blue-soft: #172554;--brand-orange: #fb923c;--brand-orange-hover: #fdba74;--brand-orange-soft: #2e1d0f;--accent: #3b82f6;--accent2: #60a5fa;--accent-soft: #172554;--accent-secondary: #fb923c;--accent-secondary-soft: #2e1d0f;--ok: #4ade80;--ok-soft: #052e16;--bad: #f87171;--bad-soft: #450a0a;--info: #38bdf8;--info-soft: #082f49;--warn: #fbbf24;--warn-soft: #451a03;--code-bg: #151f32;--sel: #1e3a8a;--kw: #c084fc;--str: #86efac;--num: #fb923c;--com: #64748b;--fn: #60a5fa;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 12px 30px rgba(0, 0, 0, .35)}}:root[data-theme=dark]{--bg: #0b1120;--panel: #0f172a;--panel2: #1e293b;--ink: #f8fafc;--ink2: #cbd5e1;--muted: #948f87;--faint: #64748b;--line: #1e293b;--line2: #283548;--brand-blue: #3b82f6;--brand-blue-hover: #60a5fa;--brand-blue-soft: #172554;--brand-orange: #fb923c;--brand-orange-hover: #fdba74;--brand-orange-soft: #2e1d0f;--accent: #3b82f6;--accent2: #60a5fa;--accent-soft: #172554;--accent-secondary: #fb923c;--accent-secondary-soft: #2e1d0f;--ok: #4ade80;--ok-soft: #052e16;--bad: #f87171;--bad-soft: #450a0a;--info: #38bdf8;--info-soft: #082f49;--warn: #fbbf24;--warn-soft: #451a03;--code-bg: #151f32;--sel: #1e3a8a;--kw: #c084fc;--str: #86efac;--num: #fb923c;--com: #64748b;--fn: #60a5fa;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 12px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:var(--accent)}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:.88em;background:var(--code-bg);padding:.1em .35em;border-radius:4px;border:1px solid var(--line2)}pre code{border:0;padding:0;background:none;white-space:pre}kbd{font-family:var(--mono);font-size:.78em;background:var(--panel);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:.1em .4em;color:var(--ink2)}h1,h2,h3,h4{font-weight:640;letter-spacing:-.01em;line-height:1.25}button{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:content-box}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{flex:0 0 auto;height:60px;display:flex;align-items:center;gap:16px;padding:0 20px;background:color-mix(in srgb,var(--panel) 90%,transparent);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line);box-shadow:0 2px 8px #0f172a08;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap;user-select:none;transition:opacity .15s ease}.brand:hover{text-decoration:none;opacity:.92}.brand-icon-wrapper{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--brand-blue-soft),var(--brand-orange-soft));border:1px solid color-mix(in srgb,var(--brand-blue) 18%,transparent);box-shadow:0 2px 6px #0047ba14}.brand-icon-wrapper img{display:block;width:24px;height:24px;border-radius:5px}.brand-title{display:inline-flex;align-items:baseline;gap:1px;font-size:18px;letter-spacing:-.03em;line-height:1}.brand-dev{font-weight:800;color:var(--brand-blue);background:linear-gradient(135deg,var(--brand-blue) 0%,#1e40af 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}:root[data-theme=dark] .brand-dev,:root:not([data-theme=light]) .brand-dev{background:linear-gradient(135deg,#60a5fa,#93c5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-tutorials{font-weight:700;color:var(--brand-orange);background:linear-gradient(135deg,var(--brand-orange) 0%,#ea580c 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em}:root[data-theme=dark] .brand-tutorials,:root:not([data-theme=light]) .brand-tutorials{background:linear-gradient(135deg,#fb923c,#fdba74);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-divider{width:1px;height:22px;background:var(--line);margin:0 4px}.brand-partner{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);transition:all .18s ease;text-decoration:none}.partner-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.partner-logo-img{display:block;height:19px;width:auto;max-width:95px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(15,23,42,.08));transition:transform .18s ease}:root[data-theme=dark] .partner-logo-img,:root:not([data-theme=light]) .partner-logo-img{filter:brightness(0) invert(1)}.topbar-secondary{display:contents}:root[data-theme=dark] .brand-partner,:root:not([data-theme=light]) .brand-partner{background:var(--panel2);border-color:var(--line)}:root[data-theme=dark] .brand-partner .partner-label,:root:not([data-theme=light]) .brand-partner .partner-label{color:var(--muted)}:root[data-theme=dark] .footer-brand-link,:root:not([data-theme=light]) .footer-brand-link{background:transparent}:root[data-theme=dark] .footer-logo-image,:root:not([data-theme=light]) .footer-logo-image{filter:brightness(0) invert(1)}.brand-partner:hover{background:var(--panel);border-color:color-mix(in srgb,var(--brand-blue) 40%,transparent);box-shadow:0 2px 8px #0047ba17;text-decoration:none}.brand-partner:hover .partner-label{color:var(--brand-blue)}.brand-partner:hover .partner-logo-img{transform:scale(1.03)}.course-menu{position:relative;align-self:stretch;display:flex;align-items:center}.course-menu-trigger{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink2);box-shadow:0 1px 2px #0f172a0a;font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease}.course-menu-trigger:hover,.course-menu-trigger:focus-visible{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:var(--panel);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.course-menu:has(.course-menu-panel.open) .course-menu-trigger{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-soft);color:var(--accent);box-shadow:none}.course-menu-chevron{width:6px;height:6px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s ease,margin .15s ease}.course-menu:has(.course-menu-panel.open) .course-menu-chevron{margin-top:3px;transform:rotate(225deg)}.course-menu-panel{position:absolute;top:calc(100% - 1px);left:0;z-index:70;display:none;width:min(760px,calc(100vw - 32px));height:min(610px,calc(100vh - 84px));grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.course-menu-panel.open{display:grid}.course-menu-courses{overflow-y:auto;padding:10px;border-right:1px solid var(--line);background:var(--panel2)}.course-menu-heading,.course-menu-kicker{margin:0;color:var(--faint);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.course-menu-heading{padding:5px 9px 8px}.course-menu-course{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px;border:0;border-radius:6px;background:transparent;color:var(--ink2);font:inherit;font-size:13px;line-height:1.3;text-align:left;cursor:pointer}.course-menu-course:hover,.course-menu-course:focus-visible,.course-menu-course.active{background:var(--panel);color:var(--accent);outline:none}.course-menu-course.active{font-weight:650;box-shadow:inset 3px 0 0 var(--accent)}.course-menu-arrow{color:var(--faint);font-size:18px;line-height:1}.course-menu-course.active .course-menu-arrow{color:var(--accent)}.course-menu-topics{display:flex;min-width:0;flex-direction:column;overflow:hidden}.course-menu-topic-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--panel)}.course-menu-topic-head div{display:flex;min-width:0;flex-direction:column;gap:3px}.course-menu-topic-head strong{overflow:hidden;color:var(--ink);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.course-menu-topic-head>span{flex:0 0 auto;color:var(--muted);font-size:11.5px}.course-menu-topic-list{overflow-y:auto;padding:6px 20px 18px}.course-menu-section{padding-top:14px}.course-menu-section-title{display:block;margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.course-menu-section-title:hover{color:var(--accent);text-decoration:none}.course-menu-topic{display:block;padding:6px 9px;border-radius:5px;color:var(--ink2);font-size:13px;line-height:1.35}.course-menu-topic:hover,.course-menu-topic:focus-visible{background:var(--panel2);color:var(--accent);text-decoration:none;outline:none}.course-menu-topic.current{background:var(--accent-soft);color:var(--accent);font-weight:650}.nav-links{display:flex;align-items:center;gap:4px;margin-left:8px}.nav-links a{padding:6px 11px;border-radius:7px;font-size:13.5px;font-weight:500;color:var(--ink2);white-space:nowrap;transition:all .15s ease}.nav-links a:hover,.nav-links a.active{background:var(--accent-soft);color:var(--accent);font-weight:600;text-decoration:none}.nav-disabled{padding:6px 10px;border-radius:7px;font-size:13.5px;color:var(--faint);white-space:nowrap;cursor:default;opacity:.6}.spacer{flex:1}.searchwrap{position:relative;flex:0 1 340px;min-width:120px}.searchwrap input{width:100%;padding:7px 11px 7px 30px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);font:inherit;font-size:13.5px;outline:none}.searchwrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.searchwrap .ico{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--faint);width:16px;height:16px;pointer-events:none}.search-icon{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:65vh;overflow:auto;display:none;z-index:60}.results.on{display:block}.results button{display:block;width:100%;text-align:left;padding:8px 12px;border:0;background:none;cursor:pointer;border-bottom:1px solid var(--line2);font-size:13.5px}.results button:last-child{border-bottom:0}.results button:hover,.results button.sel{background:var(--accent-soft)}.results .rt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.results .rm{color:var(--ink2)}.results .re{padding:14px 12px;color:var(--muted);font-size:13px}.results mark{background:var(--sel);color:inherit;border-radius:2px}.tbtn{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:6px 11px;font-size:13px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.tbtn:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle{min-width:78px;justify-content:center}.theme-icon{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.theme-icon-fill{fill:currentColor;stroke:none}.shell{flex:1;display:flex;min-height:0}.sidebar{flex:0 0 268px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:0 0 40px;position:sticky;top:54px;height:calc(100vh - 54px)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.sidebar-head-title{font-size:13px;font-weight:680;color:var(--ink)}.sidebar-head-count{font-size:11px;color:var(--faint)}.sidebar-head a{font-size:12px;color:var(--muted)}.sidebar-head a:hover{color:var(--accent)}.sgroup{padding:16px 18px 5px;font-size:10.5px;font-weight:680;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.sgroup-link{display:block;padding:16px 18px 5px;font-size:10.5px;font-weight:680;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.sgroup-link:hover,.sgroup-link.on{color:var(--accent);text-decoration:none}.slink{display:flex;align-items:center;gap:10px;width:100%;padding:7px 18px;border:0;background:none;cursor:pointer;text-align:left;font-size:14px;color:var(--ink2);border-left:3px solid transparent;transition:all .12s ease}.slink:hover{background:var(--panel2);color:var(--ink);text-decoration:none}.slink.on{background:var(--accent-soft);color:var(--accent);border-left-color:var(--accent);font-weight:600}.slink .ic{flex:0 0 20px;height:20px;display:grid;place-items:center;border-radius:5px;background:var(--panel2);font-size:10.5px;font-family:var(--mono);color:var(--muted);border:1px solid var(--line2)}.slink.on .ic{background:var(--accent);color:#fff;border-color:transparent}.slink .lbl{flex:1;min-width:0;line-height:1.35}.mainwrap{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}main{flex:1}.site-footer{display:grid;grid-template-columns:minmax(150px,1fr) minmax(280px,560px) minmax(220px,1fr);align-items:center;gap:24px;padding:28px 40px;border-top:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--panel2));color:var(--muted);font-size:12px}.footer-brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink2);font-weight:700}.footer-brand-link{display:inline-flex;align-items:center;gap:12px;color:inherit}.footer-brand-link:hover{color:var(--accent);text-decoration:none}.footer-logo-image{display:block;width:145px;height:32px;filter:drop-shadow(0 1px 1px rgba(17,33,54,.05))}.footer-disclaimer{display:flex;flex-direction:column;align-items:center;justify-self:center;gap:4px;max-width:560px;text-align:center;color:var(--muted)}.footer-disclaimer strong{color:var(--ink);font-size:12px;font-weight:700;line-height:1.2}.footer-disclaimer p{margin:0;color:var(--ink2);font-size:12.5px;line-height:1.45}.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right;justify-self:end;max-width:360px}.footer-meta p{margin:0;line-height:1.45}.wrap{max-width:1120px;margin:0 auto;padding:34px 36px 160px}.wrap.wide{max-width:1320px}.prose>p,.prose>ul,.prose>ol,.prose>blockquote{max-width:820px}.skip-link{position:absolute;left:12px;top:-48px;z-index:100;background:var(--accent);color:#fff;padding:9px 16px;border-radius:8px;font-size:13.5px;font-weight:600;transition:top .15s ease}.skip-link:focus{top:10px;text-decoration:none}.mobile-only,.sidebar-backdrop{display:none}@media (max-width: 900px){.topbar{height:112px;min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:44px 44px;grid-template-areas:"menu brand theme auth" "tools tools tools tools";gap:8px 10px;padding:8px 12px}.topbar:has(.flavor-picker){height:156px;min-height:156px;grid-template-rows:40px 40px 40px;grid-template-areas:"menu brand theme auth" "tools tools tools tools" ". flavor flavor flavor"}.sidebar{position:fixed;left:0;top:112px;bottom:0;z-index:55;transform:translate(-100%);transition:transform .18s ease;box-shadow:var(--shadow);height:auto}.app-shell:has(.flavor-picker) .sidebar{top:156px}.sidebar.open{transform:translate(0)}.sidebar-backdrop.open{display:block;position:fixed;inset:112px 0 0;background:#00000040;z-index:50}.app-shell:has(.flavor-picker) .sidebar-backdrop.open{inset-block-start:156px}.mobile-only{display:inline-flex;grid-area:menu;justify-self:start}.topbar .brand{grid-area:brand;min-width:0}.topbar>.tbtn:not(.mobile-only):not(.auth-btn){grid-area:theme}.topbar>.auth-wrap,.topbar>.auth-btn,.topbar>.auth-slot{grid-area:auth;justify-self:end}.topbar-secondary{grid-area:tools;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;min-width:0}.topbar-secondary .spacer{display:none}.brand-partner{justify-self:start;padding:2px;border:0;background:transparent;box-shadow:none}.partner-label{display:none}.partner-logo-img{height:16px;max-width:92px;filter:drop-shadow(0 0 4px rgba(0,86,210,.3))}.course-menu{align-self:center}.course-menu-trigger{min-height:30px;padding:4px 9px;font-size:12.5px}.course-menu-panel{position:fixed;top:108px;left:12px;width:calc(100vw - 24px);height:min(620px,calc(100vh - 120px));grid-template-columns:minmax(130px,38%) minmax(0,1fr)}.app-shell:has(.flavor-picker) .course-menu-panel{top:152px;height:min(620px,calc(100vh - 164px))}.course-menu-courses{padding:8px}.course-menu-course{padding:8px 7px;font-size:12px}.course-menu-topic-head{padding:13px 14px}.course-menu-topic-head>span{display:none}.course-menu-topic-list{padding:4px 10px 14px}.course-menu-topic{padding-inline:7px;font-size:12.5px}:root[data-theme=dark] .brand-partner,:root:not([data-theme=light]) .brand-partner{background:transparent;border-color:transparent}:root[data-theme=dark] .partner-logo-img,:root:not([data-theme=light]) .partner-logo-img{filter:brightness(0) invert(1)}.nav-links,.brand-divider{display:none}.searchwrap{width:100%;min-width:0}.topbar .flavor-picker{grid-area:flavor;justify-self:end}.searchwrap input{font-size:13px}.wrap{padding:18px 16px 120px}.site-footer{display:flex;align-items:flex-start;flex-direction:column;gap:16px;padding:20px 18px}.footer-disclaimer{align-items:flex-start;text-align:left}.footer-meta{align-items:flex-start;text-align:left;justify-self:auto}}@media (max-width: 420px){.topbar{column-gap:6px;padding-inline:8px}.brand{gap:6px}.brand-title{font-size:16px}.topbar>.tbtn:not(.mobile-only){padding-inline:8px}}.auth-slot{display:inline-block;width:84px}.auth-wrap{position:relative;display:inline-flex}.auth-btn{gap:7px;white-space:nowrap}.auth-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none}.auth-initials{display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:#fff;background:var(--accent)}.auth-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis}.auth-menu{position:absolute;top:calc(100% + 6px);right:0;left:auto;z-index:60;min-width:208px;max-width:min(260px,calc(100vw - 24px));padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 10px 28px #0000002e}.auth-menu-head{display:flex;flex-direction:column;gap:2px;margin:0;padding:8px 10px 10px;font-size:12.5px;color:var(--ink);border-bottom:1px solid var(--line2)}.auth-menu-email{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.auth-menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;margin-top:4px;text-align:left;font:inherit;font-size:13px;color:var(--ink);background:transparent;border:0;border-radius:7px;cursor:pointer}.auth-menu-item:hover{background:var(--panel2)}.auth-provider-icon{width:18px;height:18px;flex:none}.auth-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (max-width: 640px){.auth-name{display:none}.auth-slot{width:44px}}.course-menu-trigger:focus-visible,.course-menu-course:focus-visible,.course-menu-topic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.course-menu-course:focus-visible,.course-menu-topic:focus-visible{outline-offset:-2px}.course-menu-trigger:focus-visible{box-shadow:0 0 0 4px var(--accent-soft)}.auth-menu .auth-menu-head{text-transform:none;letter-spacing:normal;font-size:13px;font-weight:400}.auth-menu .auth-menu-head strong{font-size:13px;font-weight:650;color:var(--ink)}.auth-menu .auth-menu-sub{display:block;margin-top:2px;font-size:11.5px;font-weight:400;color:var(--muted)}.auth-menu-note{margin:6px 0 0;padding:8px 10px 4px;border-top:1px solid var(--line2);font-size:11.5px;line-height:1.4;color:var(--muted)}.sidebar-head a{display:inline-block;padding:4px 0;margin:-4px 0}.brand-partner{min-height:28px;box-sizing:border-box}.course-menu-panel .course-menu-topic-head{align-items:flex-start}.course-menu-panel .course-menu-topic-head .course-menu-topic-title{display:flex;flex-direction:row;align-items:flex-start;gap:14px;flex:1 1 auto;min-width:0;text-align:left}.course-menu-panel .course-menu-topic-head .course-menu-topic-title .course-logo{flex:0 0 auto}.course-menu-panel .course-menu-topic-head .course-menu-topic-title>div{display:flex;flex-direction:column;align-items:flex-start;flex:1 1 auto;min-width:0;text-align:left}.course-menu-panel .course-menu-topic-head .course-menu-topic-title strong{display:block;max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.25}.course-menu-panel .course-menu-topic-head .course-menu-facts{flex:0 0 auto;padding-top:4px}.crumb{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:6px;display:flex;gap:6px;flex-wrap:wrap}.crumb a{color:var(--faint)}.crumb a:hover{color:var(--accent)}h1.title{font-size:31px;font-weight:680;letter-spacing:-.025em;margin:0 0 14px;line-height:1.15;color:var(--ink)}.lede{font-size:17px;color:var(--ink2);line-height:1.62;margin:0 0 26px}.lesson-title-row{display:block}.lesson-title-copy{min-width:0}.share-menu{display:flex;justify-content:flex-end;margin:0;position:fixed;right:max(24px,calc((100vw - 1320px)/2));top:198px;z-index:18}.share-menu-compact{margin:0;position:relative;right:auto;top:auto;z-index:2}.share-menu-compact .share-trigger{border-radius:50%;height:34px;padding:3px;width:34px}.share-menu-compact .share-trigger span{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.share-menu-compact .share-trigger svg{height:26px;width:26px}.share-menu-compact .share-popover{right:0;top:100%}.course-card-main-link{color:inherit;text-decoration:none}.course-card-main-link:hover{text-decoration:none}.share-trigger{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink2);cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:650;gap:8px;padding:10px 13px}.share-trigger svg{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:50%;height:28px;padding:5px;width:28px}.share-trigger:hover,.share-trigger:focus-visible{border-color:var(--accent);color:var(--accent)}.share-popover{background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);display:grid;gap:2px;margin-top:6px;min-width:190px;padding:6px;position:absolute;right:0;z-index:20}.share-popover button,.share-popover a{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--ink2);cursor:pointer;display:flex;font:inherit;font-size:13px;gap:10px;padding:7px 9px;text-align:left;text-decoration:none;white-space:nowrap}.share-popover svg{background:color-mix(in srgb,var(--ink2) 7%,var(--panel));border:1px solid color-mix(in srgb,var(--ink2) 20%,var(--line));border-radius:50%;flex:0 0 30px;height:30px;padding:6px;width:30px}.share-popover .share-icon-linkedin{background:#0a66c2;border-color:#0a66c2;color:#fff;padding:7px}.share-popover .share-icon-teams{background:#6264a7;border-color:#6264a7;color:#fff;padding:7px}.share-popover .share-icon-whatsapp{background:#25d366;border-color:#25d366;color:#fff}.share-popover .share-icon-x{background:#111;border-color:#111;color:#fff}.share-popover button:hover .share-icon-linkedin,.share-popover button:focus-visible .share-icon-linkedin,.share-popover a:hover .share-icon-linkedin,.share-popover a:focus-visible .share-icon-linkedin{background:#0a66c2;border-color:#0a66c2;color:#fff}.share-popover button:hover .share-icon-teams,.share-popover button:focus-visible .share-icon-teams,.share-popover a:hover .share-icon-teams,.share-popover a:focus-visible .share-icon-teams{background:#6264a7;border-color:#6264a7;color:#fff}.share-popover button:hover .share-icon-whatsapp,.share-popover button:focus-visible .share-icon-whatsapp,.share-popover a:hover .share-icon-whatsapp,.share-popover a:focus-visible .share-icon-whatsapp{background:#25d366;border-color:#25d366;color:#fff}.share-popover button:hover .share-icon-x,.share-popover button:focus-visible .share-icon-x,.share-popover a:hover .share-icon-x,.share-popover a:focus-visible .share-icon-x{background:#111;border-color:#111;color:#fff}.share-popover button:hover svg,.share-popover button:focus-visible svg,.share-popover a:hover svg,.share-popover a:focus-visible svg{background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}.share-popover button:hover,.share-popover button:focus-visible,.share-popover a:hover,.share-popover a:focus-visible{background:var(--wash);color:var(--accent);outline:none}@media (max-width: 700px){.share-menu{justify-content:flex-start;margin:-8px 0 22px;position:sticky;right:auto;top:66px}.share-popover{left:0;right:auto}}.jump{position:sticky;top:66px;z-index:8;display:grid;width:min(320px,100%);margin:-132px 0 74px auto;pointer-events:none}.jump-toggle{width:100%;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 94%,transparent);box-shadow:var(--shadow);color:var(--ink2);cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:9px 12px;text-align:left;pointer-events:auto;backdrop-filter:blur(10px)}.jump-toggle-label{grid-column:1;grid-row:1;color:var(--faint);font-size:10.5px;font-weight:750;letter-spacing:.08em;line-height:1.1;text-transform:uppercase}.jump-toggle-current{grid-column:1;grid-row:2;color:var(--ink);font-size:13px;font-weight:620;line-height:1.25;overflow:visible;text-overflow:ellipsis;white-space:nowrap}.jump-toggle-icon{align-self:center;color:var(--muted);height:18px;grid-column:2;grid-row:1 / span 2;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;fill:none;transition:transform .15s ease;width:18px}.jump-toggle[aria-expanded=true]{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.jump-toggle[aria-expanded=true] .jump-toggle-icon{transform:rotate(180deg)}.jump-menu{position:absolute;top:calc(100% + 8px);right:0;width:100%;max-height:min(58vh,420px);overflow:auto;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);display:none;pointer-events:auto}.jump-menu.open{display:grid}.jump-link{border-radius:6px;color:var(--muted);font-size:13px;line-height:1.3;padding:7px 9px}.jump-link.level-3{padding-left:22px;font-size:12.5px}.jump-link:hover{background:var(--panel2);color:var(--ink);text-decoration:none}.jump-link.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.prose h2{font-size:22px;margin:44px 0 14px;padding-top:6px;scroll-margin-top:70px}.prose h2:first-of-type{margin-top:6px}.prose h3{font-size:17px;margin:28px 0 10px;color:var(--ink);scroll-margin-top:70px}.prose p{margin:0 0 16px;color:var(--ink2);text-align:justify;text-justify:inter-word;hyphens:auto}.prose li{text-align:justify;text-justify:inter-word}@media (max-width: 720px){.prose p,.prose li{text-align:left;hyphens:manual}}.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:var(--ink2)}.prose li{margin-bottom:7px}.prose li::marker{color:var(--faint)}.prose strong{color:var(--ink)}.prose table{border-collapse:collapse}.callout{display:flex;gap:12px;padding:13px 16px;border-radius:var(--radius);margin:0 0 20px;font-size:14px;border:1px solid var(--line);background:var(--panel);line-height:1.55}.callout .tag{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:5px;height:fit-content;margin-top:1px;white-space:nowrap}.callout .body{color:var(--ink2);min-width:0}.callout .body>*:last-child{margin-bottom:0}.c-note{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.c-note .tag{background:var(--info);color:#fff}.c-tip{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.c-tip .tag{background:var(--ok);color:#fff}.c-warn{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}.c-warn .tag{background:var(--bad);color:#fff}.c-key{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.c-key .tag{background:var(--accent);color:#fff}.c-caution{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.c-caution .tag{background:var(--warn);color:#fff}.tscroll{overflow-x:auto;margin:0 0 22px}.reftable{width:100%;border-collapse:collapse;font-size:13.5px;margin:0;min-width:480px;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.reftable th{text-align:left;padding:9px 13px;background:var(--panel2);font-weight:640;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line)}.reftable td{padding:9px 13px;border-bottom:1px solid var(--line2);vertical-align:top;color:var(--ink2)}.reftable tr th,.reftable tr td{border:1px solid var(--line2)}.reftable tr:last-child td{border-bottom:0}.reftable code{white-space:nowrap;font-size:.85em}.cell{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:0 0 22px;overflow:hidden;box-shadow:var(--shadow)}.cell-head{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 14px;background:var(--panel2);border-bottom:1px solid var(--line);min-height:42px}.cell-title{flex:1;font-size:12.5px;color:var(--muted);font-weight:560;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-shortcut-hint{font-size:11px;color:var(--faint);font-family:var(--mono);white-space:nowrap;display:none}@media (min-width: 720px){.cell-shortcut-hint{display:inline}}.btn{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:5px 12px;font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;color:var(--ink2);display:inline-flex;align-items:center;gap:5px;transition:all .15s ease}.btn:hover{border-color:var(--accent);color:var(--accent);background:var(--panel2)}.btn.primary{background:var(--brand-orange);border-color:var(--brand-orange);color:#fff;font-weight:600;box-shadow:0 1px 2px #f57c0033}.btn.primary:hover{background:var(--brand-orange-hover);border-color:var(--brand-orange-hover);color:#fff}.btn.brand{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff;font-weight:600}.btn.brand:hover{background:var(--brand-blue-hover);border-color:var(--brand-blue-hover);color:#fff}.btn:disabled{opacity:.5;cursor:default}.btn:disabled:hover{border-color:var(--line);color:var(--ink2);background:var(--panel)}.cell-workspace.side-by-side{display:grid;grid-template-columns:minmax(0,var(--editor-share, 50%)) 7px minmax(0,1fr);align-items:stretch}.cell-editor{height:var(--cell-h, 160px);min-width:0}.cell-output{min-width:0;border-top:1px solid var(--line);background:var(--panel);overflow:auto}.cell-workspace.side-by-side .cell-output{min-height:var(--cell-h, 160px);border-top:0}.cell-resizer{position:relative;z-index:2;width:7px;cursor:col-resize;background:var(--panel2);border:0;border-right:1px solid var(--line);border-left:1px solid var(--line);touch-action:none}.cell-resizer:after{content:"";position:absolute;top:50%;left:2px;width:1px;height:32px;transform:translateY(-50%);background:var(--faint)}.cell-resizer:hover,.cell-resizer:focus-visible{outline:none;background:var(--accent-soft);border-color:var(--accent)}.cell-output-head{padding:6px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);background:var(--panel2)}.cell-output pre{margin:0;padding:12px 14px;font-family:var(--mono);font-size:12.8px;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;color:var(--ink2)}.cell-output pre.err{color:var(--bad)}.cell-output-empty{padding:12px 14px;color:var(--faint);font-size:12.5px}.cell-preview{display:block;width:100%;height:calc(var(--cell-h, 220px) - 27px);min-height:160px;border:0;background:#fff}.cell-static pre{margin:0;padding:14px;overflow-x:auto;font-family:var(--mono);font-size:13px}@media (max-width: 760px){.cell-workspace.side-by-side{grid-template-columns:minmax(0,1fr)}.cell-resizer{display:none}.cell-workspace.side-by-side .cell-output{min-height:120px;border-top:1px solid var(--line)}}.sql-output-wrap{display:flex;flex-direction:column;gap:12px}.sql-output-empty{padding:12px 16px;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.sql-output-muted{font-style:italic}.sql-table-container{overflow:hidden}.sql-table-scroll{overflow-x:auto;max-height:340px;overflow-y:auto}.sql-reftable{margin:0;border:0;border-radius:0;width:100%;min-width:100%;border-collapse:collapse}.sql-reftable th{position:sticky;top:0;background:var(--panel2);z-index:2;box-shadow:inset 0 -1px 0 var(--line);font-family:var(--mono);font-size:11.5px}.sql-th-index{width:36px;text-align:center;color:var(--faint);font-weight:500}.sql-td-index{width:36px;text-align:center;color:var(--faint);font-family:var(--mono);font-size:11px;user-select:none;background:var(--panel2);border-right:1px solid var(--line2)}.sql-cell-null{color:var(--faint);font-style:italic}.sql-cell-null em{font-style:normal;opacity:.75;font-family:var(--mono);font-size:.85em}.sql-table-more{padding:8px 14px;font-size:11.5px;color:var(--muted);background:var(--panel2);border-top:1px solid var(--line2);font-family:var(--mono)}.sql-output-summary{padding:7px 14px;font-size:11.5px;color:var(--muted);background:var(--panel2);border-top:1px solid var(--line);font-weight:560;letter-spacing:.02em}.nav-foot{display:flex;justify-content:space-between;gap:12px;margin-top:56px;padding-top:20px;border-top:1px solid var(--line)}.nav-foot a{border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:10px 14px;cursor:pointer;font-size:13.5px;text-align:left;max-width:47%;color:var(--ink2)}.nav-foot a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.nav-foot a.next{text-align:right;margin-left:auto}.nav-foot small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--faint)}.section-lesson-list{display:grid;gap:10px;margin-top:28px}.section-lesson-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink2)}.section-lesson-card:hover{border-color:var(--accent);color:var(--ink2);text-decoration:none}.section-lesson-index{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel2);color:var(--faint);font:700 12px var(--mono)}.section-lesson-body{min-width:0;display:grid;gap:4px}.section-lesson-title{color:var(--ink);font-weight:650}.section-lesson-summary{color:var(--muted);font-size:13.5px;line-height:1.5}.section-lesson-arrow{color:var(--accent);font-weight:700}@media (max-width: 720px){.lesson-title-row{padding-right:0}.jump{top:58px;width:100%;margin:0 0 18px}.jump-toggle,.jump-menu{width:100%}.jump-menu{right:auto}.jump-menu{max-height:48vh}.tscroll{overflow-x:visible}.reftable{min-width:0;table-layout:fixed;font-size:12px}.reftable th,.reftable td{padding:8px 9px;white-space:normal;word-break:break-word}.reftable code{white-space:normal}}.home-page{display:flex;flex-direction:column;min-height:100%}.hero-enterprise{position:relative;overflow:hidden;padding:72px 24px 60px;background:radial-gradient(1000px circle at 50% -20%,color-mix(in srgb,var(--brand-blue) 14%,transparent),transparent 70%),radial-gradient(700px circle at 90% 20%,color-mix(in srgb,var(--brand-orange) 8%,transparent),transparent 60%),linear-gradient(180deg,var(--panel) 0%,var(--bg) 100%);border-bottom:1px solid var(--line)}.hero-enterprise-grid-pattern{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,color-mix(in srgb,var(--line) 45%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--line) 45%,transparent) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);opacity:.7}.hero-enterprise-inner{position:relative;max-width:1080px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center}.hero-badge-enterprise{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;border-radius:9999px;background:var(--panel);border:1px solid var(--line);box-shadow:0 1px 3px #0f172a0d;margin-bottom:24px;font-size:12px;font-weight:600;color:var(--ink2)}.hero-badge-enterprise .badge-indicator{width:7px;height:7px;border-radius:50%;background:var(--brand-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-blue) 25%,transparent)}.hero-enterprise h1{font-size:clamp(34px,5vw,54px);font-weight:800;letter-spacing:-.035em;line-height:1.12;margin:0 0 18px;color:var(--ink);max-width:860px}.hero-enterprise .hero-headline-gradient{background:linear-gradient(135deg,var(--brand-blue) 0%,#1e40af 50%,var(--brand-orange) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}:root[data-theme=dark] .hero-enterprise .hero-headline-gradient,:root:not([data-theme=light]) .hero-enterprise .hero-headline-gradient{background:linear-gradient(135deg,#60a5fa,#93c5fd,#fb923c);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-enterprise p.hero-subtitle{font-size:clamp(16px,1.8vw,19px);line-height:1.6;color:var(--muted);max-width:680px;margin:0 0 32px}.hero-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.hero-support-line{font-size:14px;line-height:1.5;color:var(--muted);margin:0 0 32px}.hero-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:11px 24px;background:var(--brand-blue);color:#fff!important;font-size:14.5px;font-weight:600;border-radius:9px;box-shadow:0 2px 8px color-mix(in srgb,var(--brand-blue) 35%,transparent),0 1px 2px #00000014;transition:all .16s ease;border:1px solid color-mix(in srgb,var(--brand-blue) 90%,black)}.hero-btn-primary:hover{background:var(--brand-blue-hover);box-shadow:0 4px 14px color-mix(in srgb,var(--brand-blue) 45%,transparent);transform:translateY(-1px);text-decoration:none}.hero-btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:var(--panel);color:var(--ink)!important;font-size:14.5px;font-weight:600;border-radius:9px;border:1px solid var(--line);box-shadow:0 1px 3px #0f172a0d;transition:all .16s ease}.hero-btn-secondary:hover{background:var(--panel2);border-color:color-mix(in srgb,var(--line) 80%,var(--ink));transform:translateY(-1px);text-decoration:none}.enterprise-value-props{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;max-width:960px;margin:12px auto 0;text-align:left}.value-prop-card{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:color-mix(in srgb,var(--panel) 85%,transparent);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 8px #0f172a05;transition:border-color .15s ease,transform .15s ease}.value-prop-card:hover{border-color:color-mix(in srgb,var(--brand-blue) 35%,transparent);transform:translateY(-1px)}.value-prop-icon{flex-shrink:0;width:36px;height:36px;border-radius:9px;background:var(--brand-blue-soft);color:var(--brand-blue);display:flex;align-items:center;justify-content:center}.value-prop-title{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:3px}.value-prop-desc{font-size:12px;line-height:1.45;color:var(--muted);margin:0}.catalog-container{width:100%;max-width:1180px;margin:0 auto;padding:48px 24px 80px;box-sizing:border-box}.community-band{border-top:1px solid var(--line);background:radial-gradient(800px circle at 15% 120%,color-mix(in srgb,var(--brand-blue) 10%,transparent),transparent 70%),radial-gradient(600px circle at 85% -20%,color-mix(in srgb,var(--brand-orange) 7%,transparent),transparent 65%),linear-gradient(180deg,var(--bg) 0%,var(--panel) 100%);padding:56px 24px 64px}.community-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:40px}.community-eyebrow{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-orange);margin-bottom:10px}.community-copy h2{font-size:clamp(21px,2.4vw,27px);font-weight:750;letter-spacing:-.02em;color:var(--ink);margin:0 0 12px}.community-copy p{font-size:15px;line-height:1.68;color:var(--ink2);margin:0;max-width:62ch}.community-card{display:flex;align-items:flex-start;gap:14px;padding:18px 18px 18px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);color:var(--ink)!important;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.community-card:hover{text-decoration:none;transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand-blue) 45%,var(--line));box-shadow:0 6px 20px color-mix(in srgb,var(--brand-blue) 14%,transparent)}.community-card-icon{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--brand-orange-soft);color:var(--brand-orange);border:1px solid color-mix(in srgb,var(--brand-orange) 25%,transparent)}.community-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}.community-card-title{font-size:14.5px;font-weight:650;color:var(--ink)}.community-card-desc{font-size:13px;line-height:1.5;color:var(--muted)}.community-card-arrow{margin-left:auto;align-self:center;font-size:16px;color:var(--brand-blue);transition:transform .16s ease}.community-card:hover .community-card-arrow{transform:translate(3px)}@media (max-width: 860px){.community-inner{grid-template-columns:minmax(0,1fr);gap:26px}}@media (prefers-reduced-motion: reduce){.community-card,.community-card-arrow{transition:none}.community-card:hover,.community-card:hover .community-card-arrow{transform:none}}.catalog-header{margin-top:0;margin-bottom:24px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px}.catalog-header-text h2{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--ink);margin:0 0 6px}.catalog-header-text p{font-size:14px;color:var(--muted);margin:0}.catalog-badge-count{font-size:12px;font-weight:600;padding:4px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink2)}.catalog-section-divider{display:flex;align-items:center;gap:14px;margin:48px 0 20px}.catalog-section-divider .divider-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap}.catalog-section-divider .divider-line{height:1px;flex:1;background:var(--line)}.enterprise-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;overflow:visible}.course-card-shell{min-width:0;position:relative}.course-card-share{position:absolute;right:24px;top:24px;z-index:12}.course-card-shell:has(.share-popover){z-index:20}.enterprise-course-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:24px;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 1px 3px #0f172a0a;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s cubic-bezier(.16,1,.3,1),border-color .18s ease;text-decoration:none!important}.enterprise-course-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand-blue),var(--brand-orange));opacity:0;transition:opacity .18s ease}.enterprise-course-card:hover{border-color:color-mix(in srgb,var(--brand-blue) 45%,transparent);box-shadow:0 10px 24px -6px #0f172a14,0 4px 8px -2px #0f172a0a;transform:translateY(-3px)}.enterprise-course-card:hover:before{opacity:1}.enterprise-course-card:has(.share-popover){z-index:10}.enterprise-course-grid:has(.share-popover){position:relative;z-index:9}.card-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.course-logo{width:48px;height:48px;border-radius:10px;padding:7px;background:#fff;border:1px solid color-mix(in srgb,var(--brand-blue) 16%,var(--line));display:grid;place-items:center;box-shadow:0 2px 5px #0f172a0a;flex:0 0 auto}.course-logo img{display:block;width:100%;height:100%;object-fit:contain}.course-logo.compact{width:40px;height:40px;border-radius:8px;padding:6px}.course-logo--scss{border-radius:50%;border-color:#ce6798;background:#ce6798;padding:8px}.course-logo--scss img{filter:brightness(0) invert(1)}.card-status-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;text-transform:uppercase;letter-spacing:.05em}.card-status-badge.active{background:var(--ok-soft);color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent)}.card-status-badge.maintenance{background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.card-status-badge.planned{background:var(--panel2);color:var(--faint);border:1px solid var(--line)}.enterprise-course-card h3{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-.015em}.enterprise-course-card p{margin:0 0 20px;max-width:42ch;font-size:13.5px;color:var(--muted);line-height:1.55;flex:1;min-height:3.1em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.card-footer-meta{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--line2);font-size:12px;color:var(--faint);margin-top:auto}.card-stats-pill{display:inline-flex;align-items:center;gap:5px;font-weight:550;color:var(--ink2)}.card-action-link{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--brand-blue);transition:transform .15s ease,color .15s ease}.enterprise-course-card:hover .card-action-link{color:var(--brand-orange);transform:translate(3px)}.coming-soon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.coming-soon-card{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--panel);border:1px dashed var(--line);border-radius:9px;color:var(--muted)}.coming-soon-card .cs-info{min-width:0;flex:1}.coming-soon-card .cs-title{font-size:13px;font-weight:600;color:var(--ink2);line-height:1.2}.coming-soon-card .cs-description{margin:5px 0 8px;max-width:38ch;min-height:2.8em;color:var(--muted);font-size:12px;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.coming-soon-card .cs-sub{font-size:11px;color:var(--faint)}@media (max-width: 860px){.hero-enterprise{padding:48px 18px 40px}.enterprise-value-props{grid-template-columns:1fr;max-width:480px}.catalog-container{padding:32px 18px 60px}}.hero{padding:64px 24px 36px;text-align:center;border-bottom:1px solid var(--line);background:var(--panel)}.hero h1{font-size:40px;margin:0 0 12px;letter-spacing:-.03em}.hero p{font-size:17px;color:var(--ink2);max-width:640px;margin:0 auto}.hero-features{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0 6px}.hero-feature{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:560;color:var(--ink2);background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:6px 13px}.hero-feature .dot{color:var(--ok);font-size:13px}.stats-strip{display:flex;justify-content:center;gap:40px;padding:22px 24px;border-bottom:1px solid var(--line);background:var(--panel2);flex-wrap:wrap}.stat{text-align:center}.stat b{display:block;font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.stat span{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:28px}.course-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:9px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;position:relative;overflow:hidden}.course-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand-blue),var(--brand-orange));opacity:0;transition:opacity .15s ease}.course-card:hover{border-color:color-mix(in srgb,var(--brand-blue) 40%,transparent);text-decoration:none;box-shadow:var(--shadow);transform:translateY(-3px)}.course-card:hover:before{opacity:1}.course-card .ic{width:36px;height:36px;border-radius:8px;background:var(--accent-soft);color:var(--brand-blue);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:13.5px}.course-card h3{margin:0;font-size:16px;color:var(--ink)}.course-card p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.course-card .meta{font-size:11.5px;color:var(--faint);margin-top:auto;display:flex;align-items:center;gap:6px}.course-card .go{margin-left:auto;opacity:0;transform:translate(-4px);transition:opacity .15s ease,transform .15s ease;color:var(--brand-orange);font-weight:700}.course-card:hover .go{opacity:1;transform:translate(0)}.pill{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:20px;background:var(--code-bg);color:var(--muted);border:1px solid var(--line2)}.section-label{font-size:12px;font-weight:680;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:40px 0 14px}.course-toc-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:9px;margin:0 -12px}.course-toc-item:hover{background:var(--panel2);text-decoration:none}.course-toc-num{flex:0 0 24px;height:24px;border-radius:50%;background:var(--code-bg);color:var(--muted);display:grid;place-items:center;font-size:11px;font-family:var(--mono);font-weight:700;border:1px solid var(--line2)}.course-toc-body{flex:1;min-width:0}.course-toc-title{color:var(--ink);font-size:14.5px}.course-toc-summary{color:var(--faint);font-size:12.5px;margin-top:1px}.exercises{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:0 0 22px;overflow:hidden;box-shadow:var(--shadow)}.exercises-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:var(--panel2);border-bottom:1px solid var(--line)}.exercises-tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.exercises-count{font-size:12px;color:var(--muted)}.exercises-list{list-style:none;margin:0;padding:4px 0}.exercise-item{padding:12px 16px;border-bottom:1px solid var(--line2)}.exercise-item:last-child{border-bottom:0}.exercise-prompt{display:flex;gap:11px;align-items:flex-start;color:var(--ink2);font-size:14px;line-height:1.55}.exercise-fnname{color:var(--muted);font-size:13px}.exercise-num{flex:0 0 22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:11.5px;font-weight:700;margin-top:1px}.exercise-actions{display:flex;gap:8px;margin:8px 0 0 33px}.exercise-hint,.exercise-answer{margin:8px 0 0 33px;padding:9px 12px;border-radius:8px;font-size:13.5px;line-height:1.55}.exercise-hint{background:var(--warn-soft);color:var(--ink2)}.exercise-answer{background:var(--ok-soft);color:var(--ink2);font-family:var(--mono);font-size:12.8px;white-space:pre-wrap}@media (max-width: 720px){.exercise-actions{margin-left:0;flex-wrap:wrap;align-items:flex-start}.exercise-actions .btn,.exercise-actions .exercise-scenario{flex:0 0 auto}.exercise-hint,.exercise-answer,.exercise-verdict{margin-left:0}}.faq{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:0 0 22px;overflow:hidden}.faq-head{padding:11px 16px;background:var(--panel2);border-bottom:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.faq-item{border-bottom:1px solid var(--line2)}.faq-item:last-child{border-bottom:0}.faq-q{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:12px 16px;border:0;background:none;cursor:pointer;font-size:14px;color:var(--ink);font-weight:560}.faq-q:hover{background:var(--panel2)}.faq-chevron{flex:0 0 16px;color:var(--accent);font-weight:700}.faq-a{padding:0 16px 14px 42px;color:var(--ink2);font-size:13.8px;line-height:1.6}.git-playground{margin:0 0 24px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.git-playground-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px;background:var(--panel2);border-bottom:1px solid var(--line)}.git-playground-head h3{margin:3px 0 4px;font-size:18px}.git-playground-head p{margin:0;color:var(--muted);font-size:13px}.git-model-label{display:inline-block;color:var(--accent);font:700 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.git-playground-tabs{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.git-playground-tabs button{border:0;background:transparent;border-radius:6px;padding:5px 9px;color:var(--muted);cursor:pointer;font-size:12px}.git-playground-tabs button:hover,.git-playground-tabs button.active{color:var(--accent);background:var(--accent-soft)}.git-playground-body{display:grid;grid-template-columns:minmax(260px,1fr) minmax(240px,1fr);min-height:250px}.git-terminal{display:flex;min-height:0;flex-direction:column;background:var(--term-bg, var(--code-bg));border-right:1px solid var(--line)}.git-terminal-output{flex:1;min-height:190px;overflow:auto;padding:13px;color:var(--term-ink, var(--ink2));font:12px/1.55 var(--mono);white-space:pre-wrap}.git-terminal-output .error{color:var(--bad)}.git-command-form{display:flex;align-items:center;gap:7px;padding:9px 11px;border-top:1px solid var(--line);color:var(--accent);font:12px var(--mono)}.git-command-form input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--term-ink, var(--ink));font:inherit}.git-model-view{min-width:0;padding:13px;overflow:auto}.git-status-line{margin-bottom:13px;color:var(--muted);font:11px var(--mono)}.git-commit-row{position:relative;display:flex;gap:8px;min-height:49px;color:var(--ink2);font:12px/1.45 var(--mono)}.git-commit-row>div{min-width:0;overflow-wrap:anywhere}.git-commit-dot{z-index:1;width:16px;color:var(--info);background:var(--panel);font-size:15px;line-height:17px}.git-commit-dot.head{color:var(--accent)}.git-commit-line{position:absolute;left:7px;top:16px;bottom:-4px;border-left:1px solid var(--line)}.git-ref{margin-left:5px;padding:2px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:10px}.git-three-areas{display:grid;gap:8px}.git-three-areas>div,.git-ref-list>div{display:flex;justify-content:space-between;gap:10px;padding:9px;border:1px solid var(--line2);border-radius:7px;background:var(--panel2);font-size:12px}.git-three-areas span,.git-ref-list span{color:var(--muted);font-family:var(--mono);font-size:11px}.git-ref-list{display:grid;gap:7px}.git-ref-list code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-muted{color:var(--faint);font-size:12px}@media (max-width: 700px){.git-playground-head{flex-direction:column}.git-playground-body{grid-template-columns:1fr}.git-terminal{border-right:0;border-bottom:1px solid var(--line)}}:is(.exercise-item,.exercise).solved .exercise-num{background:var(--ok);color:#fff}.exercise-editor{margin:10px 0 0 33px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--code-bg)}.htmlex-editor{display:block;width:calc(100% - 33px);box-sizing:border-box;margin:10px 0 0 33px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--code-bg);color:var(--ink);font-family:var(--mono);font-size:13px;line-height:1.55;resize:vertical}textarea.exercise-editor,textarea.scssex-editor{display:block;width:calc(100% - 33px);max-width:calc(100% - 33px);min-width:0;box-sizing:border-box;margin:10px 0 0 33px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;overflow:auto;background:var(--code-bg);color:var(--ink);caret-color:var(--ink);font-family:var(--mono);font-size:13px;line-height:1.55;resize:vertical}.htmlex-editor{max-width:calc(100% - 33px);min-width:0}:is(textarea.exercise-editor,textarea.scssex-editor,.htmlex-editor):focus-visible{outline:2px solid var(--accent);outline-offset:1px}.exercise-verdict{margin:9px 0 0 33px;padding:9px 12px;border-radius:8px;font-size:13.2px;line-height:1.5;border:1px solid transparent}.exercise-verdict.v-correct{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.exercise-verdict.v-wrong{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.exercise-verdict.v-error{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 30%,transparent);font-family:var(--mono);font-size:12.6px}.exercise-answer pre{margin:0;white-space:pre-wrap}.exercise-answer code{background:none;border:0;padding:0;white-space:pre-wrap}.dialects{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:0 0 22px;overflow:hidden}.dialects-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--line)}.dialects-tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.dialects-topic{font-size:13px;color:var(--muted)}.dialects-head .spacer{flex:1}.dialects-tabs{display:flex;gap:4px;flex-wrap:wrap}.dialect-tab{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;padding:3px 11px;font-size:12.2px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.dialect-tab:hover{border-color:var(--accent);color:var(--accent)}.dialect-tab.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.dialect-runs{color:var(--ok);font-size:15px;line-height:1}.dialects-code{margin:0;padding:13px 15px;background:var(--code-bg);font-family:var(--mono);font-size:12.9px;line-height:1.6;overflow-x:auto;color:var(--ink2)}.dialects-code code{background:none;border:0;padding:0;white-space:pre}.dialects-note{padding:10px 15px;border-top:1px solid var(--line2);font-size:12.8px;color:var(--muted);line-height:1.55;background:var(--panel)}.quiz{border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:0 0 22px;overflow:hidden;box-shadow:var(--shadow)}.quiz-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:var(--panel2);border-bottom:1px solid var(--line)}.quiz-tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.quiz-count{font-size:12px;color:var(--muted)}.quiz-list{list-style:none;margin:0;padding:4px 0}.quiz-item{padding:13px 16px;border-bottom:1px solid var(--line2)}.quiz-item:last-child{border-bottom:0}.quiz-q{display:flex;gap:11px;align-items:flex-start;color:var(--ink2);font-size:14px;line-height:1.55}.quiz-num{flex:0 0 22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:700 11.5px var(--mono)}.quiz-options{display:flex;flex-direction:column;gap:6px;margin:10px 0 0 33px}.quiz-option{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 12px;font-size:13.4px;color:var(--ink2);cursor:pointer;line-height:1.5}.quiz-option:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.quiz-option:disabled{cursor:default}.quiz-option.right{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:600}.quiz-option.wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad);text-decoration:line-through}.quiz-feedback{margin:9px 0 0 33px;padding:9px 12px;border-radius:8px;font-size:13.2px;line-height:1.55}.quiz-feedback.right{background:var(--ok-soft);color:var(--ink2)}.quiz-feedback.wrong{background:var(--warn-soft);color:var(--ink2)}.progwrap{margin:6px 18px 2px;padding:12px 0 0;border-top:1px solid var(--line2)}.progbar{height:5px;border-radius:3px;background:var(--line2);overflow:hidden}.progbar i{display:block;height:100%;background:var(--accent);transition:width .35s ease}.progtxt{font-size:11.5px;color:var(--muted);margin-top:6px;display:flex;justify-content:space-between;align-items:center}.progtxt button{border:0;background:none;color:var(--faint);cursor:pointer;font-size:11.5px;padding:0}.progtxt button:hover{color:var(--accent);text-decoration:underline}.slink .cnt{font-size:11px;font-family:var(--mono);color:var(--faint);flex:0 0 auto;margin-left:auto}.slink .cnt.done{color:var(--ok);font-weight:700}.slink.complete .ic{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.lesson-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 20px}.chip{font-size:11.5px;padding:3px 10px;border-radius:20px;border:1px solid var(--line);background:var(--panel);color:var(--muted)}.chip.level-fresher{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent);color:var(--ok)}.chip.level-both{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 30%,transparent);color:var(--info)}.chip.level-experienced{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.schema-panel{margin-left:auto}.schema-panel.open{width:100%;margin-left:0}.schema-toggle{font-size:12.2px}.schema-body{margin-top:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel);padding:14px 16px;box-shadow:var(--shadow)}.schema-note{font-size:12.4px;color:var(--muted);margin-bottom:12px}.schema-error{font-size:12.4px;color:var(--bad);font-family:var(--mono)}.schema-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}.schema-table{border:1px solid var(--line2);border-radius:9px;overflow:hidden}.schema-table-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 10px;background:var(--panel2);border-bottom:1px solid var(--line2)}.schema-table-name{font:700 12.6px var(--mono);color:var(--accent)}.schema-table-rows{font-size:11px;color:var(--faint)}.schema-cols{list-style:none;margin:0;padding:6px 10px 8px}.schema-cols li{display:flex;align-items:baseline;gap:6px;padding:2px 0;font-size:12.1px}.schema-col{font-family:var(--mono);color:var(--ink2)}.schema-col.pk{font-weight:700;color:var(--ink)}.schema-type{font-size:10.5px;color:var(--faint);margin-left:auto;font-family:var(--mono)}.schema-flag{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent)}.schema-flag.null{background:var(--line2);color:var(--faint)}.exercises-how{margin:0;padding:10px 16px;font-size:13.5px;line-height:1.55;color:var(--ink2);border-bottom:1px solid var(--line2)}.exercises-head h3{display:none}.exercise-run{margin:10px 0 0 33px;border:1px solid var(--line2);border-radius:8px;overflow:hidden;background:var(--panel)}.exercise-run-head{padding:6px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);background:var(--panel2);border-bottom:1px solid var(--line2)}.exercise-run pre{margin:0;padding:12px 14px;font-family:var(--mono);font-size:12.8px;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;color:var(--ink2);background:var(--code-bg);border:0;border-radius:0}.exercise-run.err pre{color:var(--bad)}.exercise-run .cell-output-warning pre{color:var(--warn);border-top:1px solid var(--line2)}.exercise-verdict.v-ok,.exercise-verdict.v-correct{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.exercise-verdict.v-bad,.exercise-verdict.v-wrong,.exercise-verdict.v-error{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 30%,transparent);font-family:inherit;font-size:13.2px}.exercise-answer,.exercise-reveal{margin:8px 0 0 33px;padding:10px 12px;border-radius:8px;background:var(--ok-soft);color:var(--ink2);font-family:inherit;font-size:13px;line-height:1.55;white-space:normal}:is(.exercise-answer,.exercise-reveal) pre{margin:0 0 8px;padding:10px 12px;background:var(--code-bg);border-radius:6px;font:12.3px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;overflow-x:auto}:is(.exercise-answer,.exercise-reveal) pre:last-child{margin-bottom:0}:is(.exercise-answer,.exercise-reveal) p:last-child{margin-bottom:0}.exercises ol,.exercises ul.exercises-list{list-style:none;margin:0;padding:0}.exercises :is(.exercise-item,.exercise){padding:12px 16px 16px;border-bottom:1px solid var(--line2);list-style:none}.exercises :is(.exercise-item,.exercise):last-child{border-bottom:0}.exercises :is(.exercise-item,.exercise)::marker{content:none}.exercise-verdict{margin-top:10px}.exercises .exercise-run{margin:10px 0 0 33px}.cell-stdin{border-top:1px solid var(--line);background:var(--panel)}.cell-stdin-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);background:var(--panel2);border-bottom:1px solid var(--line2)}.cell-stdin-hint{text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--muted)}.cell-stdin-box{display:block;width:100%;box-sizing:border-box;margin:0;border:0;border-radius:0;resize:vertical;min-height:44px;padding:10px 14px;font:12.8px/1.5 var(--mono);background:var(--code-bg);color:var(--ink);outline:none}.cell-stdin-box::placeholder{color:var(--faint)}.cell-stdin-box:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.exercises .exercise-stdin{margin:10px 0 0 33px;border:1px solid var(--line2);border-radius:8px;overflow:hidden}.cell-console{display:flex;flex-direction:column;overflow:hidden}.cell-console-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line2)}.cell-console-head+.cell-console-stdin{border-bottom:1px solid var(--line)}.cell-console-stdin{resize:vertical;min-height:58px;max-height:200px}.cell-console-body{flex:1 1 auto;min-height:90px;overflow:auto;background:var(--panel)}.cell-console-body pre{max-height:none}.cell-console-clear{border:1px solid var(--line2);background:transparent;color:var(--muted);border-radius:6px;padding:1px 8px;font-size:11px;letter-spacing:0;text-transform:none;cursor:pointer}.cell-console-clear:hover{color:var(--ink);border-color:var(--line)}.cell-console-warnings{margin:0;padding:8px 14px 10px 30px;font:12px/1.5 var(--mono);color:var(--warn);border-top:1px solid var(--line2)}:root{--lesson-tool-h: 54px}.lesson-share-anchor{position:relative;height:0;margin:-132px 0 0;z-index:9}.lesson-share-anchor .share-menu{position:absolute;right:0;top:0;margin:0}.lesson-share-anchor .share-trigger{box-sizing:border-box;height:var(--lesson-tool-h);padding:0 16px;box-shadow:var(--shadow)}.lesson-share-anchor:not(:has(+.jump)){height:var(--lesson-tool-h);margin:0 0 18px}.jump{margin-right:120px}.jump-toggle{box-sizing:border-box;min-height:var(--lesson-tool-h)}.share-trigger:focus-visible,.share-popover button:focus-visible,.share-popover a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.share-popover button:focus-visible,.share-popover a:focus-visible{outline-offset:-2px}.crumb a{display:inline-block;padding:5px 0;margin:-5px 0}.card-action-link{padding:4px 0;margin:-4px 0;min-height:24px;box-sizing:border-box}.lesson-title-copy h1.title{padding-right:450px}.lesson-share-anchor{margin-top:-140px}.jump{margin-top:-140px;margin-bottom:82px}@media (max-width: 1100px){.lesson-title-copy h1.title{padding-right:0}.lesson-share-anchor{position:relative;height:0;margin:0}.lesson-share-anchor .share-menu{position:absolute;right:0;top:0;display:flex;margin:0}.lesson-share-anchor .share-popover{left:auto;right:0}.jump{width:auto;margin:0 118px 18px 0}.jump-menu{right:auto}.lesson-share-anchor:not(:has(+.jump)){height:var(--lesson-tool-h);margin:0 0 18px}}:root{--topbar-h: 60px}@media (max-width: 900px){:root{--topbar-h: 112px}:root:has(.topbar .flavor-picker){--topbar-h: 156px}}.jump{top:calc(var(--topbar-h) + 6px)}.dock,.gitfig{--c1: #0047ba;--c2: #f57c00;--c3: #15803d;--c4: #7c3aed;--c5: #0284c7;--c6: #dc2626;--term-bg: #f1f5f9;--term-ink: #334155}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .dock,:root:not([data-theme=light]) .gitfig{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}}:root[data-theme=dark] .dock,:root[data-theme=dark] .gitfig{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}.dock{position:fixed;bottom:0;left:var(--dock-left, 268px);right:var(--dock-right, 0px);height:46vh;min-height:220px;max-height:80vh;display:flex;flex-direction:column;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -8px 24px #0000001a;z-index:45}.dock.off{display:none}.dock-grip{position:absolute;top:-3px;left:0;right:0;height:7px;cursor:row-resize;z-index:5}.dock-grip:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}.dock-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel2);flex-wrap:wrap}.dock-head .dt{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:4px}.dock-head select{font:inherit;font-size:12.5px;padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);max-width:230px}.vtab{border:0;background:none;padding:5px 9px;border-radius:7px;font-size:12.5px;cursor:pointer;color:var(--muted)}.vtab:hover{background:var(--code-bg);color:var(--ink)}.vtab.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.dock-body{flex:1;display:flex;min-height:0}.term{flex:0 0 46%;min-width:300px;display:flex;flex-direction:column;background:var(--term-bg);border-right:1px solid var(--line);min-height:0}.term-out{flex:1;overflow-y:auto;padding:10px 13px;font:12.6px/1.55 var(--mono);color:var(--term-ink);white-space:pre-wrap;word-break:break-word}.term-out .c{color:var(--accent);font-weight:600}.term-out .e{color:var(--bad)}.term-out .h{color:var(--muted)}.term-out .ok{color:var(--ok)}.term-in{flex:0 0 auto;display:flex;align-items:baseline;gap:7px;border-top:1px solid var(--line);padding:8px 13px;font:12.6px/1.5 var(--mono);background:var(--term-bg)}.term-in .ps{color:var(--accent);white-space:nowrap}.term-in input{flex:1;border:0;background:none;outline:none;font:inherit;color:var(--term-ink);min-width:40px}.viz{flex:1;min-width:0;overflow:auto;background:var(--panel);position:relative}.viz-pad{padding:12px 14px}.hint-bar{padding:6px 13px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line2);background:var(--panel2);display:flex;gap:14px;flex-wrap:wrap}.hint-bar b{color:var(--ink2);font-weight:600}.gnode{cursor:pointer}.gnode circle{stroke-width:2}.gsub{font:11.5px var(--sans);fill:var(--ink2)}.goid{font:11px var(--mono);fill:var(--faint)}.gref{font:10.5px var(--mono);font-weight:600}.glink{fill:none;stroke-width:2}.gsel{outline:none}.trees{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.tcol{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel2);min-width:0}.tcol h4{margin:0;padding:7px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel);border-bottom:1px solid var(--line);font-weight:700;display:flex;justify-content:space-between}.tcol h4 span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--faint)}.trow{display:flex;gap:8px;padding:5px 10px;font:11.8px/1.45 var(--mono);border-bottom:1px solid var(--line2);align-items:baseline}.trow:last-child{border-bottom:0}.trow .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}.trow .oid{color:var(--faint);font-size:10.5px}.trow.same .nm{color:var(--muted)}.trow.diff{background:var(--warn-soft)}.trow.diff .nm{color:var(--warn);font-weight:600}.trow.gone{background:var(--bad-soft)}.trow.gone .nm{color:var(--bad);text-decoration:line-through}.trow.add{background:var(--ok-soft)}.trow.add .nm{color:var(--ok);font-weight:600}.trow.conf{background:var(--bad-soft)}.trow.conf .nm{color:var(--bad);font-weight:700}.trow button{border:0;background:none;color:var(--faint);cursor:pointer;font-size:10.5px;padding:0 2px}.trow button:hover{color:var(--accent)}.tempty{padding:10px;color:var(--faint);font-size:12px;font-style:italic}.objgrid{display:flex;flex-direction:column;gap:4px}.objrow{display:flex;gap:9px;align-items:baseline;font:11.8px var(--mono);padding:5px 8px;border-radius:7px;border:1px solid var(--line2);background:var(--panel2);cursor:pointer}.objrow:hover{border-color:var(--accent)}.objrow.new{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.objrow .ty{flex:0 0 46px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.objrow .ty.blob{color:var(--c3)}.objrow .ty.tree{color:var(--c2)}.objrow .ty.commit{color:var(--c1)}.objrow .ty.tag{color:var(--c4)}.objrow .oid{color:var(--ink2)}.objrow .pv{flex:1;min-width:0;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.objbody{font:11.5px/1.5 var(--mono);white-space:pre-wrap;padding:8px 10px;background:var(--code-bg);border:1px solid var(--line2);border-radius:7px;margin:2px 0 6px;color:var(--ink2)}.grouphd{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);font-weight:700;margin:10px 0 4px}.grouphd:first-child{margin-top:0}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font:12px var(--mono);align-items:baseline}.kv dt{color:var(--muted)}.kv dd{margin:0;color:var(--ink2);word-break:break-all}.reflist{font:12px var(--mono)}.reflist .rw{display:flex;gap:10px;padding:4px 6px;border-bottom:1px solid var(--line2)}.reflist .rw:last-child{border-bottom:0}.reflist .rn{flex:0 0 46%;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reflist .rv{color:var(--accent)}.reflist .rs{color:var(--faint);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.dock-open{padding-bottom:48vh}.dock-launch{position:fixed;right:16px;bottom:16px;z-index:44;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 4px 14px #0000001f}.dock-launch:hover{border-color:var(--accent);color:var(--accent)}.dock-launch kbd{font:11px var(--mono);color:var(--faint);border:1px solid var(--line2);border-radius:4px;padding:0 4px}.cell-ran{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line2);background:var(--panel2)}.cell-ran.err{color:var(--bad)}.cell-ran button{border:0;background:none;color:var(--accent);cursor:pointer;font:inherit;font-size:12.5px;text-decoration:underline;padding:0}.gitfig{margin:22px 0;padding:16px 16px 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.gitfig-svg svg{display:block;width:100%;height:auto}.gitfig figcaption{margin-top:10px;font-size:13px;line-height:1.55;color:var(--muted);text-align:center}@media (max-width: 900px){.dock{left:0;right:0}}@media (max-width: 720px){.dock{height:58vh;max-height:78vh}.dock-body{flex-direction:column}.term{flex:1 1 45%;min-width:0;min-height:0;border-right:0;border-bottom:1px solid var(--line)}.viz{flex:1 1 55%;min-height:0}.dock-head{row-gap:5px;padding:6px 10px}.dock-head select{max-width:150px}.vtab{padding:4px 7px;font-size:12px}.trees{grid-template-columns:1fr}body.dock-open{padding-bottom:60vh}}.cell-output pre.expected-err{color:var(--warn)}.chip.level-reference{background:var(--panel2);border-color:var(--line);color:var(--muted)}.exercises-how{margin:0;padding:9px 14px;font-size:12.8px;line-height:1.55;color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--line)}.exercises-how b{color:var(--ink2)}.exercise-run{margin:8px 0 0;border:1px solid var(--line2);border-radius:8px;overflow:hidden}.exercise-run-head{padding:5px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--line2)}.exercise-run pre{margin:0;padding:9px 11px;font:12.3px/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--ink2);background:var(--code-bg);max-height:220px;overflow:auto}.dock-winctl{display:inline-flex;align-items:center;gap:2px;margin-left:6px;padding-left:8px;border-left:1px solid var(--line)}.dock-ctl{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;padding:0}.dock.min{height:auto;min-height:0}.dock.min .dock-body,.dock.min .dock-grip{display:none}.dock.min .dock-head{border-bottom:0}.dock.max{top:var(--topbar-h, 60px);height:auto;max-height:none}.dock.max .dock-grip{display:none}body.dock-open.dock-min{padding-bottom:56px}body.dock-open.dock-max{overflow:hidden}.dash,.certs{--dash-gap: 20px;--dash-radius: 14px;--dash-card: var(--surface-1, var(--card-bg, #fff));--dash-line: var(--border, rgba(127, 137, 155, .24));--dash-ink: var(--text, #16202e);--dash-mute: var(--text-muted, #64748b);--dash-accent: var(--accent, #2563eb);--dash-good: #16a34a;max-width:1120px;margin:0 auto;padding:28px 20px 72px;color:var(--dash-ink)}:root[data-theme=dark] .dash,:root[data-theme=dark] .certs{--dash-card: var(--surface-1, #141b26);--dash-line: rgba(148, 163, 184, .2);--dash-good: #4ade80}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .dash,:root:not([data-theme=light]) .certs{--dash-card: var(--surface-1, #141b26);--dash-line: rgba(148, 163, 184, .2);--dash-good: #4ade80}}.dash-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:26px}.dash-head h1{margin:0 0 6px;font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem);line-height:1.15;letter-spacing:-.02em}.dash-sub{margin:0;max-width:62ch;color:var(--dash-mute);font-size:.94rem}.dash-badge{display:inline-flex;align-items:center;gap:7px;margin:0;padding:7px 12px;border:1px solid var(--dash-line);border-radius:999px;background:var(--dash-card);color:var(--dash-mute);font-size:.8rem;font-weight:600;text-decoration:none;white-space:nowrap}.dash-badge.is-account{color:var(--dash-good);border-color:color-mix(in srgb,var(--dash-good) 35%,transparent)}.dash-badge.is-offline{color:#b45309;border-color:#b4530959}.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:var(--dash-gap)}.kpi{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "value value" "foot foot";gap:2px 8px;padding:14px 16px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card)}.kpi-icon{grid-area:icon;display:grid;place-items:center;color:var(--dash-accent)}.kpi-label{grid-area:label;align-self:center;color:var(--dash-mute);font-size:.78rem;font-weight:600;letter-spacing:.01em}.kpi-value{grid-area:value;margin-top:6px;font-size:1.7rem;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi-foot{grid-area:foot;color:var(--dash-mute);font-size:.78rem}.dash-resume{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:var(--dash-gap);padding:20px 22px;border:1px solid color-mix(in srgb,var(--dash-accent) 30%,var(--dash-line));border-radius:var(--dash-radius);background:linear-gradient(100deg,color-mix(in srgb,var(--dash-accent) 10%,transparent),transparent 62%),var(--dash-card)}.dash-eyebrow{display:block;margin-bottom:4px;color:var(--dash-accent);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dash-resume h2{margin:0 0 4px;font-size:1.15rem;letter-spacing:-.01em}.dash-resume p{margin:0;color:var(--dash-mute);font-size:.86rem}.dash-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:10px;background:var(--dash-accent);color:#fff;font:inherit;font-weight:650;font-size:.9rem;text-decoration:none;cursor:pointer}.dash-cta:hover{filter:brightness(1.07)}.dash-cta:disabled{opacity:.6;cursor:progress}.dash-section{margin-bottom:28px}.dash-section-title{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:.86rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dash-mute)}.dash-count{padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--dash-mute) 16%,transparent);font-size:.75rem;letter-spacing:0}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.dash-empty{padding:30px;border:1px dashed var(--dash-line);border-radius:var(--dash-radius);color:var(--dash-mute);text-align:center}.ccard{display:flex;flex-direction:column;gap:14px;padding:16px 18px 14px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card);transition:border-color .15s ease,transform .15s ease}.ccard:hover{border-color:color-mix(in srgb,var(--dash-accent) 45%,var(--dash-line))}.ccard.is-idle{opacity:.86}.ccard.is-done{border-color:color-mix(in srgb,var(--dash-good) 40%,var(--dash-line))}.ccard-head{display:flex;align-items:center;gap:12px}.ccard-logo{width:28px;height:28px;object-fit:contain;flex:none}.ccard-logo-fallback{display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--dash-accent) 16%,transparent);color:var(--dash-accent);font-weight:700}.ccard-titles{flex:1 1 auto;min-width:0}.ccard-titles h3{margin:0;font-size:1rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ccard-titles p{margin:2px 0 0;color:var(--dash-mute);font-size:.78rem}.ccard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:10px 0;border-top:1px solid var(--dash-line);border-bottom:1px solid var(--dash-line)}.ccard-stats dt{color:var(--dash-mute);font-size:.72rem;letter-spacing:.02em}.ccard-stats dd{margin:2px 0 0;font-size:.98rem;font-weight:650;font-variant-numeric:tabular-nums}.ccard-stats dd span{color:var(--dash-mute);font-weight:500;font-size:.82rem}.ccard-bar{display:block;height:6px;border-radius:999px;background:color-mix(in srgb,var(--dash-mute) 20%,transparent);overflow:hidden}.ccard-bar>span{display:block;height:100%;border-radius:inherit;background:var(--dash-accent);transition:width .35s ease}.ccard.is-done .ccard-bar>span{background:var(--dash-good)}.ccard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.ccard-link{display:inline-flex;align-items:center;gap:6px;color:var(--dash-accent);font-size:.86rem;font-weight:650;text-decoration:none}.ccard-link:hover{text-decoration:underline}.ccard-done{display:inline-flex;align-items:center;gap:5px;color:var(--dash-good);font-size:.8rem;font-weight:650}.ccard-actions{display:inline-flex;align-items:center;gap:12px}.ccard-reset{appearance:none;background:transparent;border:1px solid color-mix(in srgb,var(--dash-mute) 40%,transparent);border-radius:6px;padding:3px 10px;color:var(--dash-mute);font:inherit;font-size:.8rem;font-weight:650;cursor:pointer}.ccard-reset:hover:not(:disabled){color:var(--dash-accent);border-color:var(--dash-accent)}.ccard-reset:focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}.ccard-reset:disabled{opacity:.6;cursor:progress}.dash-modal{width:min(420px,calc(100vw - 32px));margin:auto;padding:24px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card);color:var(--dash-ink);box-shadow:0 24px 60px #0f172a47;font:inherit;animation:dash-modal-in .18s cubic-bezier(.2,.8,.2,1)}.dash-modal::backdrop{background:#0f172a8c;backdrop-filter:blur(2px);animation:dash-fade-in .18s ease-out}.dash-modal h2{margin:0 0 8px;font-size:1.12rem;font-weight:700}.dash-modal p{margin:0 0 22px;color:var(--dash-mute);font-size:.92rem;line-height:1.55}.dash-modal p b{color:var(--dash-ink)}.dash-modal-actions{display:flex;justify-content:flex-end;gap:10px}.dash-modal-btn{appearance:none;min-width:88px;padding:8px 16px;border:1px solid var(--dash-line);border-radius:8px;background:transparent;color:var(--dash-ink);font:inherit;font-size:.88rem;font-weight:650;cursor:pointer;transition:background .12s,border-color .12s,transform 80ms}.dash-modal-btn:hover:not(:disabled){border-color:var(--dash-accent)}.dash-modal-btn:active:not(:disabled){transform:translateY(1px)}.dash-modal-btn:focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}.dash-modal-btn.is-danger{background:#dc2626;border-color:#dc2626;color:#fff}.dash-modal-btn.is-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.dash-modal-btn:disabled{opacity:.6;cursor:progress}@keyframes dash-modal-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes dash-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.dash-modal,.dash-modal::backdrop{animation:none}}.ring{flex:none}.ring-track{stroke:color-mix(in srgb,var(--dash-mute) 22%,transparent)}.ring-value{stroke:var(--dash-accent);transition:stroke-dasharray .4s ease}.ring.is-complete .ring-value{stroke:var(--dash-good)}.ring-text{fill:currentColor;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.ring-pct{font-size:8px;fill:var(--dash-mute)}.dash-foot-link{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card);color:inherit;text-decoration:none}.dash-foot-link:hover{border-color:color-mix(in srgb,var(--dash-accent) 45%,var(--dash-line))}.dash-foot-link>span{flex:1 1 auto;display:flex;flex-direction:column}.dash-foot-link em{color:var(--dash-mute);font-style:normal;font-size:.83rem}.dash-foot-link>svg:first-child{color:var(--dash-accent)}.certs-note,.certs-error{margin:0 0 20px;padding:12px 16px;border-radius:10px;font-size:.88rem}.certs-note{border:1px solid var(--dash-line);background:color-mix(in srgb,var(--dash-accent) 7%,transparent)}.certs-error{border:1px solid rgba(220,38,38,.4);background:#dc262614}.certs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.cert,.cert-claim{padding:20px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card)}.cert-claim{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.cert-claim h3{margin:0;font-size:1.05rem}.cert-claim p{margin:0;color:var(--dash-mute);font-size:.84rem}.cert-claim>svg{color:var(--dash-accent)}.cert-seal{display:grid;place-items:center;width:46px;height:46px;margin-bottom:12px;border-radius:50%;background:color-mix(in srgb,var(--dash-accent) 14%,transparent);color:var(--dash-accent)}.cert>.cert-seal svg{display:block;width:26px;height:26px}.cert-eyebrow{margin:0 0 4px;color:var(--dash-mute);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.cert-course{margin:0 0 2px;font-size:1.1rem}.cert-holder{margin:0 0 14px;color:var(--dash-mute);font-size:.88rem}.cert-meta{display:grid;grid-template-columns:repeat(3,auto);gap:10px;margin:0 0 14px}.cert-meta dt{color:var(--dash-mute);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.cert-meta dd{margin:2px 0 0;font-size:.85rem;font-weight:600}.cert-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.certs-progress{list-style:none;margin:0;padding:0;display:grid;gap:10px}.certs-progress li{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,2fr) auto auto;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--dash-line);border-radius:12px;background:var(--dash-card)}.certs-progress-name{font-weight:600;font-size:.9rem}.certs-progress-pct{color:var(--dash-mute);font-size:.82rem;font-variant-numeric:tabular-nums}.certpage{max-width:1120px}.cert-sheet{--ink: #111827;--ink-soft: #4b5563;--brand: #0b4fc0;--brand-2: #f15a24;--line: #cbd2dc;position:relative;width:297mm;height:210mm;margin:0 auto 20px;padding:18mm 18mm 15mm;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;border-radius:4px;background:#fff;color:var(--ink);text-align:center;font-family:IBM Plex Sans,Segoe UI,system-ui,-apple-system,Helvetica,Arial,sans-serif;box-shadow:0 18px 46px #0f1b2d24;transform-origin:top center;transform:scale(var(--cert-scale, 1))}@media (max-width: 1180px){.cert-sheet{--cert-scale: .82;margin-bottom:-30mm}}@media (max-width: 960px){.cert-sheet{--cert-scale: .66;margin-bottom:-66mm}}@media (max-width: 760px){.cert-sheet{--cert-scale: .48;margin-bottom:-108mm}}@media (max-width: 560px){.cert-sheet{--cert-scale: .34;margin-bottom:-138mm}}.cert-frame{position:absolute;inset:4mm;border:.5mm solid var(--brand);border-radius:2mm;pointer-events:none}.cert-accent{position:absolute;top:3.6mm;left:50%;width:32mm;height:1.1mm;transform:translate(-50%);border-radius:0 0 .6mm .6mm;background:var(--brand-2);pointer-events:none}.cert-watermark{position:absolute;left:50%;top:50%;width:96mm;height:80mm;transform:translate(-50%,-40%);pointer-events:none}.cert-watermark path{fill:none;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.cert-watermark .cert-wm-l{stroke:var(--brand);opacity:.045}.cert-watermark .cert-wm-r{stroke:var(--brand-2);opacity:.045}.cert-sheet-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8mm;padding:0 2mm}.cert-brand{display:inline-flex;align-items:center;gap:3mm}.cert-brand img{width:13mm;height:13mm;border-radius:2.4mm}.cert-brand-name{font-size:7.6mm;line-height:1;letter-spacing:-.015em;font-weight:700}.cert-brand-name b{color:var(--brand);font-weight:700}.cert-brand-name i{color:var(--brand-2);font-style:normal;font-weight:700}.cert-partner{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2.4mm}.cert-partner-label{font-size:2.7mm;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.cert-partner img{height:9mm;width:auto;display:block}.cert-sheet-body{position:relative;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:6mm}.cert-sheet .cert-eyebrow{margin:0;color:var(--brand);font-size:6.4mm;font-weight:700;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase}.cert-divider{display:flex;align-items:center;gap:2.4mm;margin:4.5mm 0 5mm}.cert-divider i{display:block;width:23mm;height:.25mm;background:var(--line)}.cert-divider em{display:block;width:2.4mm;height:2.4mm;transform:rotate(45deg);background:var(--brand-2)}.cert-sheet-awarded{margin:0;color:var(--ink-soft);font-size:5mm;line-height:1.3}.cert-sheet-name{margin:3mm 0 3.5mm;font-family:"Source Serif 4","Source Serif Pro",Iowan Old Style,Palatino Linotype,Palatino,Georgia,Times New Roman,serif;font-size:18mm;line-height:1.08;font-weight:600;letter-spacing:-.012em;color:var(--ink)}.cert-sheet-course{margin:4mm 0 0;font-size:10mm;line-height:1.15;font-weight:700;letter-spacing:-.01em;color:var(--brand)}.cert-sheet-foot{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8mm;padding:0 2mm;text-align:left}.cert-issuer{display:flex;align-items:center;gap:4.5mm}.cert-seal-mark{width:26mm;height:26mm;flex:none;display:block}.cert-seal-ring{fill:#fff;stroke:var(--brand);stroke-width:1.6}.cert-seal-text{fill:var(--brand);font-size:8.4px;font-weight:700;letter-spacing:.08em}.cert-seal-disc{fill:var(--brand)}.cert-seal-check{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.cert-issuer-text{display:flex;flex-direction:column;gap:1mm;line-height:1.3}.cert-issuer-text strong{font-size:4.2mm;font-weight:700;color:var(--ink)}.cert-issuer-text span{font-size:3.6mm;color:var(--ink-soft);max-width:52mm}.cert-issuer-text small{margin-top:1mm;font-size:3.2mm;color:var(--ink-soft)}.cert-date{display:flex;flex-direction:column;align-items:center;gap:1.6mm;padding-bottom:1mm}.cert-date span{font-size:2.9mm;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.cert-date strong{font-size:5.6mm;font-weight:700;color:var(--ink)}.cert-credential{display:flex;align-items:flex-end;justify-content:flex-end;gap:4mm}.cert-credential-text{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:.8mm;line-height:1.3}.cert-credential-label{font-size:2.9mm;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.cert-credential-id{font-size:4.6mm;font-weight:700;letter-spacing:.04em;color:var(--ink)}.cert-credential-verify{margin-top:1.2mm;font-size:3.2mm;color:var(--ink-soft)}.cert-credential-link{max-width:54mm;font-size:3.4mm;font-weight:600;color:var(--brand);text-decoration:none;overflow-wrap:anywhere}.cert-qr{margin:0;flex:none}.cert-qr svg{display:block;width:23mm;height:23mm;padding:2.4mm;background:#fff;border:.25mm solid #e3e7ee;border-radius:1.6mm}.cert-print-btn{background:transparent;border:.2mm solid #d9dfe8;border-radius:1.4mm;padding:1.4mm 3mm;font:inherit;cursor:pointer;color:#0f1b2d}.cert-page-actions{display:flex;gap:16px;align-items:center;justify-content:center;margin-bottom:18px}@media print{@page{size:A4 landscape;margin:0}html,body{margin:0!important;padding:0!important;background:#fff!important}.topbar,.sidebar,.site-footer,.no-print,.dash-badge,.skip-link{display:none!important}.app-shell,.shell,.mainwrap,main{display:block!important;margin:0!important;padding:0!important}.dash,.certpage{max-width:none;margin:0;padding:0}.cert-sheet{width:297mm;height:210mm;margin:0;border-radius:0;box-shadow:none;transform:none!important;page-break-inside:avoid;break-inside:avoid}.cert-sheet,.cert-frame,.cert-accent,.cert-watermark,.cert-seal-mark,.cert-qr svg,.cert-divider i,.cert-divider em{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.auth-wrap{position:relative}.auth-btn{display:inline-flex;align-items:center;gap:8px}.auth-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none}.auth-initials{display:grid;place-items:center;background:var(--accent, #2563eb);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}.auth-name{max-width:9ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-chev{transition:transform .15s ease}.auth-chev.up{transform:rotate(180deg)}.auth-slot{display:inline-block;width:92px;height:34px}.auth-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:232px;padding:6px;border:1px solid var(--border, rgba(127, 137, 155, .24));border-radius:12px;background:var(--surface-1, #fff);box-shadow:0 14px 38px #0f172a29}:root[data-theme=dark] .auth-menu{background:var(--surface-1, #161e2b)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .auth-menu{background:var(--surface-1, #161e2b)}}.auth-menu-head{margin:0;padding:8px 10px 6px;color:var(--text-muted, #64748b);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.auth-identity{display:flex;gap:10px;align-items:center;padding:10px}.auth-identity-text{display:flex;flex-direction:column;min-width:0}.auth-identity-text b{font-size:.9rem}.auth-menu-email{color:var(--text-muted, #64748b);font-size:.76rem;max-width:21ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-menu-sep{height:1px;margin:5px 4px;background:var(--border, rgba(127, 137, 155, .22))}.auth-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;color:inherit;font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.auth-menu-item:hover,.auth-menu-item:focus-visible{background:color-mix(in srgb,var(--accent, #2563eb) 12%,transparent);outline:none}.auth-menu-item>.dt-icon{color:var(--text-muted, #64748b);flex:none}.auth-menu-item:hover>.dt-icon{color:var(--accent, #2563eb)}.auth-menu-danger:hover,.auth-menu-danger:focus-visible{background:#dc26261f;color:#dc2626}.auth-menu-danger:hover>.dt-icon{color:#dc2626}@media (max-width: 720px){.auth-name{display:none}.dash-resume{flex-direction:column;align-items:flex-start}.certs-progress li{grid-template-columns:1fr auto}.certs-progress li .ccard-bar{grid-column:1 / -1}}.profile-form{display:grid;gap:14px}.profile-card{padding:18px 20px;border:1px solid var(--dash-line);border-radius:var(--dash-radius);background:var(--dash-card)}.profile-legend{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dash-mute)}.profile-legend>svg{color:var(--dash-accent)}.profile-identity{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.profile-photo{flex:none;width:96px;height:96px;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--dash-accent) 12%,transparent);display:grid;place-items:center;border:1px solid var(--dash-line)}.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-initials{font-size:1.9rem;font-weight:700;color:var(--dash-accent)}.profile-identity-text{flex:1 1 260px;min-width:0}.profile-name{margin:0;font-size:1.1rem;font-weight:700}.profile-email{margin:2px 0 0;color:var(--dash-mute);font-size:.88rem}.profile-provider{margin:2px 0 0;color:var(--dash-mute);font-size:.8rem}.profile-photo-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}.profile-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--dash-line);border-radius:9px;background:var(--dash-card);color:inherit;font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}.profile-btn:hover{border-color:color-mix(in srgb,var(--dash-accent) 50%,var(--dash-line))}.profile-btn-quiet{border-color:transparent;color:var(--dash-mute)}.profile-btn-quiet:hover{color:inherit}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 18px}.profile-field{display:flex;flex-direction:column;gap:5px;margin:0}.profile-field label{font-size:.84rem;font-weight:600}.profile-field input{padding:9px 11px;border:1px solid var(--dash-line);border-radius:9px;background:var(--bg, #fff);color:inherit;font:inherit;font-size:.92rem}.profile-field input:focus-visible{outline:2px solid color-mix(in srgb,var(--dash-accent) 60%,transparent);outline-offset:1px;border-color:var(--dash-accent)}.profile-hint{color:var(--dash-mute);font-size:.78rem;line-height:1.4}.profile-hint-inline{margin:0}.profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding-top:2px}.profile-msg{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.86rem;font-weight:600}.profile-msg.is-ok{color:var(--dash-good)}.profile-msg.is-bad{color:#dc2626}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.dash-empty-cta{display:flex;flex-direction:column;align-items:center;gap:14px}.dash-empty-cta p{margin:0;line-height:1.55}.dash-foot{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}:root[data-theme=dark] .dash,:root[data-theme=dark] .certs{--dash-card: #0f172a;--dash-line: #334155;--dash-ink: #f1f5f9;--dash-mute: #a7b4c7;--dash-accent: #7cb4ff;--dash-good: #4ade80;--dash-cta-bg: #2563eb;--dash-cta-bg-hover: #1d4ed8;color:var(--dash-ink)}:root[data-theme=dark] .dash :is(h1,h2,h3,h4,strong,dd,.kpi-value,.profile-name,.profile-field label,.certs-progress-name):not(.cert-sheet *){color:var(--dash-ink)}:root[data-theme=dark] .dash :is(dd>span,dt,.kpi-label,.kpi-foot,.dash-sub,.dash-count,.dash-eyebrow,.ccard-titles p):not(.cert-sheet *){color:var(--dash-mute)}:root[data-theme=dark] .dash .ring-text{fill:var(--dash-ink)}:root[data-theme=dark] .dash .ring-pct{fill:var(--dash-mute)}:root[data-theme=dark] .dash .ring-track{stroke:#334155}:root[data-theme=dark] .dash .dash-cta{background:var(--dash-cta-bg);color:#fff}:root[data-theme=dark] .dash .dash-cta:hover{background:var(--dash-cta-bg-hover);filter:none}:root[data-theme=dark] .dash .dash-cta:focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}:root[data-theme=dark] .dash .dash-cta:disabled{background:#334155;color:#cbd5e1;opacity:1}:root[data-theme=dark] .dash :is(.ccard-link,.dash-foot-link,.dash-badge,.profile-btn,.ccard-reset):focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}:root[data-theme=dark] .dash .ccard-reset{color:var(--dash-mute);border-color:#475569}:root[data-theme=dark] .dash :is(.ccard-reset,.profile-btn,.dash-modal-btn):disabled{opacity:1;color:#94a3b8}:root[data-theme=dark] .dash .profile-btn-quiet:hover{color:var(--dash-ink)}:root[data-theme=dark] .dash .dash-badge.is-offline{color:#fbbf24;border-color:#fbbf2466}:root[data-theme=dark] .dash .profile-msg.is-bad,:root[data-theme=dark] .dash .certs-error{color:#fca5a5}:root[data-theme=dark] .dash .profile-field input{background:#0b1120;color:var(--dash-ink);border-color:#475569}:root[data-theme=dark] .dash .profile-field input::placeholder{color:#8a97ab;opacity:1}:root[data-theme=dark] .dash .profile-field input:disabled,:root[data-theme=dark] .dash .profile-field input[readonly]{background:#1e293b;color:#a7b4c7}:root[data-theme=dark] .dash .profile-hint{color:var(--dash-mute)}:root[data-theme=dark] .auth-menu{color:#f1f5f9;border-color:#334155}:root[data-theme=dark] .auth-menu :is(.auth-menu-item>.dt-icon){color:#a7b4c7}:root[data-theme=dark] .auth-menu-danger:hover,:root[data-theme=dark] .auth-menu-danger:focus-visible{color:#fca5a5}:root[data-theme=dark] .auth-menu-danger:hover>.dt-icon{color:#fca5a5}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .dash,:root:not([data-theme=light]) .certs{--dash-card: #0f172a;--dash-line: #334155;--dash-ink: #f1f5f9;--dash-mute: #a7b4c7;--dash-accent: #7cb4ff;--dash-good: #4ade80;--dash-cta-bg: #2563eb;--dash-cta-bg-hover: #1d4ed8;color:var(--dash-ink)}:root:not([data-theme=light]) .dash :is(h1,h2,h3,h4,strong,dd,.kpi-value,.profile-name,.profile-field label,.certs-progress-name):not(.cert-sheet *){color:var(--dash-ink)}:root:not([data-theme=light]) .dash :is(dd>span,dt,.kpi-label,.kpi-foot,.dash-sub,.dash-count,.dash-eyebrow,.ccard-titles p):not(.cert-sheet *){color:var(--dash-mute)}:root:not([data-theme=light]) .dash .ring-text{fill:var(--dash-ink)}:root:not([data-theme=light]) .dash .ring-pct{fill:var(--dash-mute)}:root:not([data-theme=light]) .dash .ring-track{stroke:#334155}:root:not([data-theme=light]) .dash .dash-cta{background:var(--dash-cta-bg);color:#fff}:root:not([data-theme=light]) .dash .dash-cta:hover{background:var(--dash-cta-bg-hover);filter:none}:root:not([data-theme=light]) .dash .dash-cta:focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}:root:not([data-theme=light]) .dash .dash-cta:disabled{background:#334155;color:#cbd5e1;opacity:1}:root:not([data-theme=light]) .dash :is(.ccard-link,.dash-foot-link,.dash-badge,.profile-btn,.ccard-reset):focus-visible{outline:2px solid var(--dash-accent);outline-offset:2px}:root:not([data-theme=light]) .dash .ccard-reset{color:var(--dash-mute);border-color:#475569}:root:not([data-theme=light]) .dash :is(.ccard-reset,.profile-btn,.dash-modal-btn):disabled{opacity:1;color:#94a3b8}:root:not([data-theme=light]) .dash .profile-btn-quiet:hover{color:var(--dash-ink)}:root:not([data-theme=light]) .dash .dash-badge.is-offline{color:#fbbf24;border-color:#fbbf2466}:root:not([data-theme=light]) .dash .profile-msg.is-bad,:root:not([data-theme=light]) .dash .certs-error{color:#fca5a5}:root:not([data-theme=light]) .dash .profile-field input{background:#0b1120;color:var(--dash-ink);border-color:#475569}:root:not([data-theme=light]) .dash .profile-field input::placeholder{color:#8a97ab;opacity:1}:root:not([data-theme=light]) .dash .profile-field input:disabled,:root:not([data-theme=light]) .dash .profile-field input[readonly]{background:#1e293b;color:#a7b4c7}:root:not([data-theme=light]) .dash .profile-hint{color:var(--dash-mute)}:root:not([data-theme=light]) .auth-menu{color:#f1f5f9;border-color:#334155}:root:not([data-theme=light]) .auth-menu :is(.auth-menu-item>.dt-icon){color:#a7b4c7}:root:not([data-theme=light]) .auth-menu-danger:hover,:root:not([data-theme=light]) .auth-menu-danger:focus-visible{color:#fca5a5}:root:not([data-theme=light]) .auth-menu-danger:hover>.dt-icon{color:#fca5a5}}:root[data-theme=dark] .dash .cert-sheet{color:#0f1b2d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .dash .cert-sheet{color:#0f1b2d}}.dash-foot{gap:20px;margin-top:32px}.dash-foot-link{gap:16px;padding:20px 22px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.dash-foot-link:hover{box-shadow:0 6px 18px color-mix(in srgb,var(--dash-accent) 12%,transparent);transform:translateY(-1px)}.dash-foot-link>svg:first-child{flex:none;box-sizing:content-box;padding:11px;border-radius:12px;background:color-mix(in srgb,var(--dash-accent) 12%,transparent)}.dash-foot-link>span{gap:4px;min-width:0}.dash-foot-link b{font-size:1rem}.dash-foot-link em{line-height:1.45}.dash-foot-link>svg:last-child{flex:none;box-sizing:content-box;padding:8px;border-radius:999px;border:1px solid var(--dash-line);color:var(--dash-mute);transition:transform .15s ease,color .15s ease,border-color .15s ease}.dash-foot-link:hover>svg:last-child{transform:translate(3px);color:var(--dash-accent);border-color:color-mix(in srgb,var(--dash-accent) 45%,var(--dash-line))}@media (prefers-reduced-motion: reduce){.dash-foot-link,.dash-foot-link>svg:last-child{transition:none}.dash-foot-link:hover,.dash-foot-link:hover>svg:last-child{transform:none}}.word-dock,.word-dock-launch{--c1: #0047ba;--c2: #f57c00;--c3: #15803d;--c4: #7c3aed;--c5: #0284c7;--c6: #dc2626;--term-bg: #f1f5f9;--term-ink: #334155}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .word-dock,:root:not([data-theme=light]) .word-dock-launch{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}}:root[data-theme=dark] .word-dock,:root[data-theme=dark] .word-dock-launch{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}.word-dock{position:fixed;bottom:0;left:var(--dock-left, 268px);right:var(--dock-right, 0px);height:50vh;min-height:240px;max-height:85vh;display:flex;flex-direction:column;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -8px 24px #0000001a;z-index:45}.word-dock.off{display:none}.word-dock.maximized{inset:0;height:100vh!important;max-height:100vh;border-top:0;z-index:50}.word-dock.maximized .word-dock-grip{display:none}.word-dock-grip{position:absolute;top:-3px;left:0;right:0;height:7px;cursor:row-resize;z-index:5}.word-dock-grip:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}.word-dock-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel2);flex-wrap:wrap}.word-dock-head .dt{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:4px}.word-dock-head .hint{font-size:12px;color:var(--muted)}.word-dock-head .vtab{border:0;background:none;padding:5px 9px;border-radius:7px;font-size:12.5px;cursor:pointer;color:var(--muted)}.word-dock-head .vtab:hover{background:var(--code-bg);color:var(--ink)}.word-dock-head .vtab:disabled{opacity:.5;cursor:not-allowed}.word-dock-status{font-size:12px;color:var(--accent);background:var(--accent-soft, color-mix(in srgb, var(--accent) 12%, transparent));border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:7px;padding:3px 8px;margin-right:4px}.chip-mini{font-size:11.5px;color:var(--muted);background:var(--code-bg);border:1px solid var(--line2);border-radius:7px;padding:3px 8px}.word-dock-body{flex:1;display:flex;min-height:0;background:var(--panel)}.word-dock-editor{flex:1;min-width:0;min-height:0;display:flex}.word-dock-editor>[data-word-editor]{flex:1;min-height:0;width:100%;margin:0;border:0;border-radius:0;background:var(--panel)}.word-dock-loading{flex:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);background:var(--panel2)}body.word-dock-open{padding-bottom:50vh}.word-dock-launch{position:fixed;right:16px;bottom:16px;z-index:44;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 4px 14px #0000001f}.word-dock-launch:hover{border-color:var(--accent);color:var(--accent)}.word-dock-launch kbd{font:11px var(--mono);color:var(--faint);border:1px solid var(--line2);border-radius:4px;padding:0 4px}@media (max-width: 900px){.word-dock{left:0;right:0}.word-dock-head .hint{display:none}}@media (max-width: 720px){.word-dock{height:60vh;max-height:78vh}body.word-dock-open{padding-bottom:62vh}.word-dock-head{row-gap:5px;padding:6px 10px}}.word-exercise-steps{margin:8px 0 4px 34px;padding:0}.word-exercise-steps li{margin:3px 0}.word-exercise-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px 34px}.word-exercise.solved .quiz-num{background:var(--ok, #16a34a);color:#fff}.word-assignment-title{margin:6px 0 4px;font-size:1.15rem}.word-assignment-brief{margin:0 0 10px}.word-assignment-preview{margin:12px 0;text-align:center}.word-assignment-preview img{max-width:100%;height:auto;border:1px solid var(--line, #ddd);border-radius:8px}.word-assignment-preview figcaption{font-size:12.5px;color:var(--muted);margin-top:4px}.word-assignment-actions{margin-left:0;align-items:center}:root[data-theme=dark] .word-dock [id$=_pageContainer] canvas{filter:invert(.92) hue-rotate(180deg)}:root[data-theme=dark] .word-dock .e-documenteditor-optionspane>div:first-child,:root[data-theme=dark] .word-dock .e-de-background{background:var(--panel2)}.word-dock.minimized{min-height:0!important}.word-dock.minimized .word-dock-body,.word-dock.minimized .word-dock-grip{display:none}.word-dock-head .dock-size{display:inline-flex;align-items:center;gap:2px}.excel-dock,.excel-dock-launch,.pdf-dock,.pdf-dock-launch,.ppt-dock,.ppt-dock-launch{--c1: #0047ba;--c2: #f57c00;--c3: #15803d;--c4: #7c3aed;--c5: #0284c7;--c6: #dc2626;--term-bg: #f1f5f9;--term-ink: #334155}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .excel-dock,:root:not([data-theme=light]) .excel-dock-launch,:root:not([data-theme=light]) .pdf-dock,:root:not([data-theme=light]) .pdf-dock-launch,:root:not([data-theme=light]) .ppt-dock,:root:not([data-theme=light]) .ppt-dock-launch{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}}:root[data-theme=dark] .excel-dock,:root[data-theme=dark] .excel-dock-launch,:root[data-theme=dark] .pdf-dock,:root[data-theme=dark] .pdf-dock-launch,:root[data-theme=dark] .ppt-dock,:root[data-theme=dark] .ppt-dock-launch{--c1: #3b82f6;--c2: #fb923c;--c3: #4ade80;--c4: #a78bfa;--c5: #38bdf8;--c6: #f87171;--term-bg: #151f32;--term-ink: #cbd5e1}.excel-dock,.pdf-dock,.ppt-dock{position:fixed;bottom:0;left:var(--dock-left, 268px);right:var(--dock-right, 0px);height:50vh;min-height:240px;max-height:85vh;display:flex;flex-direction:column;background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -8px 24px #0000001a;z-index:45}.excel-dock.off,.pdf-dock.off,.ppt-dock.off{display:none}.excel-dock.maximized,.pdf-dock.maximized,.ppt-dock.maximized{inset:0;height:100vh!important;max-height:100vh;border-top:0;z-index:50}.excel-dock.maximized .excel-dock-grip,.pdf-dock.maximized .pdf-dock-grip,.ppt-dock.maximized .ppt-dock-grip{display:none}.excel-dock-grip,.pdf-dock-grip,.ppt-dock-grip{position:absolute;top:-3px;left:0;right:0;height:7px;cursor:row-resize;z-index:5}.excel-dock-grip:hover,.pdf-dock-grip:hover,.ppt-dock-grip:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}.excel-dock-head,.pdf-dock-head,.ppt-dock-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--panel2);flex-wrap:wrap}.excel-dock-head .dt,.pdf-dock-head .dt,.ppt-dock-head .dt{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:4px}.excel-dock-head .hint,.pdf-dock-head .hint,.ppt-dock-head .hint{font-size:12px;color:var(--muted)}.excel-dock-head .vtab,.pdf-dock-head .vtab,.ppt-dock-head .vtab{border:0;background:none;padding:5px 9px;border-radius:7px;font-size:12.5px;cursor:pointer;color:var(--muted)}.excel-dock-head .vtab:hover,.pdf-dock-head .vtab:hover,.ppt-dock-head .vtab:hover{background:var(--code-bg);color:var(--ink)}.excel-dock-head .vtab:disabled,.pdf-dock-head .vtab:disabled,.ppt-dock-head .vtab:disabled{opacity:.5;cursor:not-allowed}.excel-dock-status,.pdf-dock-status,.ppt-dock-status{font-size:12px;color:var(--accent);background:var(--accent-soft, color-mix(in srgb, var(--accent) 12%, transparent));border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:7px;padding:3px 8px;margin-right:4px}.excel-dock-body,.pdf-dock-body,.ppt-dock-body{flex:1;display:flex;min-height:0;background:var(--panel)}.excel-dock-editor,.pdf-dock-editor,.ppt-dock-editor{flex:1;min-width:0;min-height:0;display:flex}.excel-dock-editor>[data-excel-editor]{flex:1;min-height:0;width:100%;margin:0;border:0;border-radius:0;background:var(--panel)}.pdf-dock-editor>[data-pdf-editor]{flex:1;min-height:0;width:100%;margin:0;border:0;border-radius:0;background:var(--panel)}.ppt-dock-editor>div{flex:1;min-height:0;width:100%;margin:0;border:0;border-radius:0}.ppt-dock .pptxv-protected-view[hidden]{display:none!important}.ppt-dock .pptxv-placeholder-prompt{pointer-events:auto!important;cursor:text}.excel-dock-loading,.pdf-dock-loading,.ppt-dock-loading{flex:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);background:var(--panel2)}body.excel-dock-open,body.pdf-dock-open,body.ppt-dock-open{padding-bottom:50vh}.excel-dock-launch,.pdf-dock-launch,.ppt-dock-launch{position:fixed;right:16px;bottom:16px;z-index:44;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 4px 14px #0000001f}.excel-dock-launch:hover,.pdf-dock-launch:hover,.ppt-dock-launch:hover{border-color:var(--accent);color:var(--accent)}.excel-dock-launch kbd,.pdf-dock-launch kbd,.ppt-dock-launch kbd{font:11px var(--mono);color:var(--faint);border:1px solid var(--line2);border-radius:4px;padding:0 4px}.pdf-docs-launch,.excel-docs-launch,.word-docs-launch{bottom:72px!important}.pdf-viewer-wrap{display:flex;flex-direction:column;width:100%;height:100%}.pdf-branding{flex:0 0 auto;height:48px;display:flex;align-items:center;padding:0 24px;background:#fff;border-bottom:1px solid #d9d9d9;font-size:18px;font-weight:500;color:#f97316}.pdf-branding:before{content:"PDF SANDBOX";margin-right:48px;font-size:13px;font-weight:700;letter-spacing:.12em;color:#94a3b8}.word-viewer-wrap{display:flex;flex-direction:column;width:100%;height:100%}.word-branding{flex:0 0 auto;height:56px;display:flex;align-items:center;padding:0 24px;background:#fff;border-bottom:1px solid #d6dce5;font-size:22px;font-weight:400;color:#f97316}.word-branding:before{content:"WORD SANDBOX";margin-right:48px;color:#a3b3c6;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.excel-viewer-wrap{display:flex;flex-direction:column;width:100%;height:100%}.excel-dock-head{display:flex;align-items:center;height:44px;padding:0 16px;border-bottom:1px solid var(--line, #e5e7eb);background:var(--panel2, #fff)}.excel-dock-head .dt{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--faint, #b3c0cf);text-transform:uppercase}.excel-powered{margin-left:36px;font-size:18px;font-weight:400;color:#f97316}.word-dock-head{display:flex;align-items:center;height:44px;padding:0 16px;border-bottom:1px solid var(--line, #e5e7eb);background:var(--panel2, #fff)}.word-dock-head .vtab{color:var(--muted, #5b6470)}.word-dock-head .vtab:hover{color:var(--ink)}.word-dock-head .dt{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--faint, #b3c0cf);text-transform:uppercase}.word-powered{margin-left:36px;font-size:18px;font-weight:400;color:#f97316}.ppt-dock-head{display:flex;align-items:center;height:44px;padding:0 16px;border-bottom:1px solid var(--line, #e5e7eb);background:var(--panel2, #fff)}.ppt-dock-head .dt{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--faint, #b3c0cf);text-transform:uppercase}.ppt-powered{margin-left:36px;font-size:18px;font-weight:400;color:#f97316}.vtab{background:none;border:none;cursor:pointer}.pdf-powered{margin-left:36px;font-size:18px;font-weight:400;color:#f97316}.maximize-btn{font-size:26px;line-height:1}@media (max-width: 900px){.excel-dock,.pdf-dock,.ppt-dock{left:0;right:0}.excel-dock-head .hint,.pdf-dock-head .hint,.ppt-dock-head .hint{display:none}}@media (max-width: 720px){.excel-dock,.pdf-dock,.ppt-dock{height:60vh;max-height:78vh}body.excel-dock-open,body.pdf-dock-open,body.ppt-dock-open{padding-bottom:62vh}.excel-dock-head,.pdf-dock-head,.ppt-dock-head{row-gap:5px;padding:6px 10px}}.excel-dock-head .vtab,.ppt-dock-head .vtab{color:var(--muted, #5b6470)}.excel-dock-head .vtab:hover,.ppt-dock-head .vtab:hover{color:var(--ink)}:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content,:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content .e-table,:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content td.e-cell{background-color:#1f1f1f;color:#f2f2f2}:root[data-theme=dark] .pdf-dock .e-pv-page-div{filter:invert(.92) hue-rotate(180deg)}:root[data-theme=dark] .ppt-dock .pptxv-stage,:root[data-theme=dark] .ppt-dock .pptxv-thumb-frame{filter:invert(.92) hue-rotate(180deg)}:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content td.e-cell,:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content .e-row,:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-sheet-content .e-table{border-color:#3b3b3b}:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-spreadsheet-edit,:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-spreadsheet-edit *{background-color:#1f1f1f;color:#f2f2f2}:root[data-theme=dark] [data-excel-editor] .e-spreadsheet .e-spreadsheet-edit{caret-color:#f2f2f2}.ppt-dock .pptxv-inline-editing-source>.pptxv-placeholder-prompt{visibility:hidden}:root[data-theme=dark] .ppt-dock .pptxv-inline-text-editor{filter:invert(.92) hue-rotate(180deg)}html body.word-dock-open,html body.excel-dock-open,html body.ppt-dock-open{padding-bottom:calc(var(--dock-h, 50vh) + 16px)}.dock-partner{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:12.5px;gap:7px;margin-right:10px;padding:4px 11px 4px 6px;text-decoration:none;transition:border-color .15s ease,color .15s ease;white-space:nowrap}.dock-partner strong{color:var(--ink);font-weight:650}.dock-partner-icon{border-radius:50%;display:block;height:18px;object-fit:contain;width:18px}:root[data-theme=dark] .dock-partner-icon{filter:invert(1) hue-rotate(180deg)}.dock-partner-arrow{color:var(--faint);font-size:12px}.dock-partner:hover{border-color:var(--accent);color:var(--accent)}.dock-partner:hover strong,.dock-partner:hover .dock-partner-arrow{color:var(--accent)}@media (max-width: 720px){.dock-partner{display:none}}:root{--sf-accent: #0047ba;--sf-accent-soft: rgba(0, 71, 186, .12)}:root[data-theme=dark]{--sf-accent: #3b82f6;--sf-accent-soft: rgba(59, 130, 246, .2)}[data-excel-editor] .e-spreadsheet .e-active-cell,[data-excel-editor] .e-spreadsheet .e-selection,[data-excel-editor] .e-spreadsheet .e-colresize-handler,[data-excel-editor] .e-spreadsheet .e-rowresize-handler,[data-excel-editor] .e-spreadsheet .e-comment-container:hover,[data-excel-editor] .e-spreadsheet .e-comment-container.active{border-color:var(--sf-accent)!important}[data-excel-editor] .e-spreadsheet .e-selection{background-color:var(--sf-accent-soft)!important}[data-excel-editor] .e-spreadsheet .e-autofill,[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-indicator,[data-excel-editor] .e-spreadsheet .e-ss-overlay-active .e-ss-overlay-t,[data-excel-editor] .e-spreadsheet .e-ss-overlay-active .e-ss-overlay-r,[data-excel-editor] .e-spreadsheet .e-ss-overlay-active .e-ss-overlay-b,[data-excel-editor] .e-spreadsheet .e-ss-overlay-active .e-ss-overlay-l{background-color:var(--sf-accent)!important}[data-excel-editor] .e-spreadsheet .e-selectall.e-highlight{border-color:var(--sf-accent)!important}[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-text,[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-icon,[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-toolbar-item:hover .e-tab-text,[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-tab-wrap:focus .e-tab-text,[data-excel-editor] .e-spreadsheet .e-ribbon .e-tab-header .e-toolbar-item.e-active .e-tab-text{color:var(--sf-accent)!important}[data-excel-editor] .e-spreadsheet .e-tab .e-tab-header .e-tab-wrap:focus{background:var(--sf-accent-soft)!important}@media (max-width: 720px){html .dock-launch,html .word-dock-launch,html .excel-dock-launch,html .pdf-dock-launch,html .ppt-dock-launch{right:12px;bottom:12px;padding:6px 12px;font-size:12px;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(6px)}.dock-launch kbd,.word-dock-launch kbd,.excel-dock-launch kbd,.pdf-dock-launch kbd,.ppt-dock-launch kbd,.launch-long{display:none}}body:has(.dock-launch,.word-dock-launch,.excel-dock-launch,.pdf-dock-launch,.ppt-dock-launch) .site-footer{padding-bottom:72px}.ppt-dock.minimized,.excel-dock.minimized,.pdf-dock.minimized{min-height:0!important}:is(.ppt-dock,.excel-dock,.pdf-dock).minimized :is(.ppt-dock-body,.excel-dock-body,.ppt-dock-grip,.excel-dock-grip){display:none}:is(.ppt-dock-head,.excel-dock-head) .dock-size{display:inline-flex;align-items:center;gap:2px}.dock-size{display:inline-flex;gap:2px}.dock-size-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:none;color:var(--muted);width:28px;height:26px;border-radius:6px;cursor:pointer;font-size:13px;line-height:1}.dock-size-btn:hover{color:var(--ink);background:var(--panel);border-color:var(--line)}:root{--color-white: #ffffff;--color-black: #000000;--color-transparent: transparent;--color-neutral-50: #f2f3f7;--color-neutral-100: #e8eaf0;--color-neutral-200: #dde0e8;--color-neutral-300: #c5c9d8;--color-neutral-400: #b5baca;--color-neutral-500: #7c84a1;--color-neutral-600: #505875;--color-neutral-700: #424a64;--color-neutral-800: #30364d;--color-neutral-900: #181c2c;--color-neutral-950: #0d0f1a;--color-primary-50: #ddeeff;--color-primary-100: #b3d4ff;--color-primary-200: #80b8ff;--color-primary-300: #4d9cff;--color-primary-400: #1a80ff;--color-primary-500: #0057ff;--color-primary-600: #0043db;--color-primary-700: #0031b7;--color-primary-800: #0052b4;--color-primary-900: #001154;--color-primary-950: #00187a;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-500: #6da544;--color-success-700: #4a7d28;--color-success-900: #1a3a0a;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-500: #ffda44;--color-warning-700: #c28c00;--color-warning-900: #402a00;--color-error-50: #fbe9e9;--color-error-200: #f5b3b3;--color-error-500: #d82222;--color-error-600: #d80027;--color-error-700: #991b1b;--color-error-800: #9a0f0f;--color-error-900: #5f1616;--color-bg-page: var(--color-white);--color-bg-subtle: var(--color-neutral-50);--color-bg-overlay: rgba(18,26,43,.5);--color-text-primary: var(--color-neutral-900);--color-text-body: var(--color-neutral-700);--color-text-muted: var(--color-neutral-500);--color-text-inverse: var(--color-white);--color-border-default: var(--color-neutral-200);--color-border-strong: var(--color-neutral-400);--color-link: var(--color-primary-600);--color-link-hover: var(--color-primary-700);--color-focus-ring: var(--color-primary-500);--shadow-color-sm: rgba(18,26,43,.06);--shadow-color-md: rgba(18,26,43,.1);--shadow-color-dark: rgba(0,0,0,.08)}:root{--font-primary: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-secondary: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Roboto Mono", "Courier New", monospace;--font-instrument: "Instrument Sans", system-ui, sans-serif;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--text-h1-size: 60px;--text-h1-line: 72px;--text-h1-weight: var(--fw-medium);--text-h1-ls: -.02em;--text-h2-size: 48px;--text-h2-line: 60px;--text-h2-weight: var(--fw-medium);--text-h2-ls: -.02em;--text-h3-size: 36px;--text-h3-line: 44px;--text-h3-weight: var(--fw-medium);--text-h3-ls: -.02em;--text-h4-size: 30px;--text-h4-line: 38px;--text-h4-weight: var(--fw-medium);--text-h5-size: 24px;--text-h5-line: 32px;--text-h5-weight: var(--fw-medium);--text-h6-size: 20px;--text-h6-line: 28px;--text-h6-weight: var(--fw-medium);--text-body-lg-size: 18px;--text-body-lg-line: 28px;--text-body-md-size: 16px;--text-body-md-line: 24px;--text-body-sm-size: 14px;--text-body-sm-line: 20px;--text-body-xs-size: 12px;--text-body-xs-line: 18px;--text-accent-lg-size: 18px;--text-accent-lg-weight: var(--fw-medium);--text-accent-md-size: 16px;--text-accent-md-weight: var(--fw-medium);--text-accent-sm-size: 14px;--text-accent-sm-weight: var(--fw-medium);--text-label-sm: 12px;--text-label-md: 14px;--text-label-lg: 16px;--text-code-size: 14px;--text-code-line: 20px;--ls-tight: -.02em;--ls-normal: 0em;--ls-wide: .015em}:root{--spacing-0: 0px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-9: 36px;--spacing-10: 40px;--spacing-12: 48px;--spacing-14: 56px;--spacing-16: 64px;--spacing-20: 80px;--spacing-24: 96px;--spacing-32: 128px;--spacing-xs: var(--spacing-2);--spacing-sm: var(--spacing-3);--spacing-md: var(--spacing-4);--spacing-lg: var(--spacing-6);--spacing-xl: var(--spacing-8);--spacing-2xl: var(--spacing-12);--spacing-3xl: var(--spacing-16);--spacing-4xl: var(--spacing-24);--padding-btn-sm: 6px 14px;--padding-btn-md: 10px 18px;--padding-btn-lg: 12px 20px;--padding-btn-xl: 16px 28px;--padding-card: var(--spacing-6);--gap-form: var(--spacing-5);--gap-section: var(--spacing-16)}:root{--radius-none: 0px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--radius-btn: var(--radius-sm);--radius-input: var(--radius-sm);--radius-card: var(--radius-lg);--radius-badge: var(--radius-xs);--radius-badge-pill: var(--radius-full);--radius-modal: var(--radius-xl);--radius-tooltip: var(--radius-xs);--radius-avatar: var(--radius-full)}:root{--shadow-xs: 0px 1px 2px 0px rgba(18,26,43,.06);--shadow-sm: 0px 2px 4px -2px rgba(18,26,43,.06), 0px 4px 6px -2px rgba(18,26,43,.1);--shadow-md: 0px 4px 8px -2px rgba(18,26,43,.1), 0px 2px 4px -2px rgba(18,26,43,.06);--shadow-lg: 0px 12px 16px -4px rgba(18,26,43,.1), 0px 4px 6px -2px rgba(18,26,43,.06);--shadow-xl: 0px 20px 24px -4px rgba(18,26,43,.1), 0px 8px 8px -4px rgba(18,26,43,.06);--shadow-card: 0px 4px 6px -2px rgba(18,26,43,.1), 0px 2px 4px -2px rgba(18,26,43,.06);--shadow-raised: 0px 4px 4px 0px rgba(0,0,0,.25);--border-default: inset 0 0 0 1px rgb(221,224,232);--border-strong: inset 0 0 0 1px rgb(181,186,202);--border-focus: inset 0 0 0 2px rgb(0,87,255)}:root{--sans: var(--font-primary);--mono: var(--font-mono);--bg: var(--color-white);--panel: var(--color-white);--panel2: var(--color-neutral-50);--wash: var(--color-neutral-50);--ink: var(--color-neutral-900);--ink2: var(--color-neutral-700);--muted: var(--color-neutral-600);--faint: var(--color-neutral-500);--line: var(--color-neutral-200);--line2: var(--color-neutral-100);--accent: var(--color-primary-500);--accent2: var(--color-primary-600);--accent-hover: var(--color-primary-600);--accent-soft: #eaf2ff;--accent-secondary: var(--accent);--accent-secondary-soft: var(--accent-soft);--brand-blue: var(--color-primary-500);--brand-blue-soft: #eaf2ff;--fn: var(--color-primary-600);--sel: var(--color-primary-50);--ok: var(--color-success-700);--ok-soft: var(--color-success-50);--bad: var(--color-error-600);--bad-soft: var(--color-error-50);--shadow: var(--shadow-md);--radius: var(--radius-md);--topbar-h: 64px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f1220;--panel: #151a2b;--panel2: #1b2135;--wash: #1b2135;--ink: #f2f3f7;--ink2: #c5c9d8;--muted: #9aa1ba;--faint: #7c84a1;--line: #2a3047;--line2: #222840;--accent: #4d8bff;--accent2: #7aa8ff;--accent-hover: #7aa8ff;--accent-soft: #16244a;--accent-secondary: var(--accent);--accent-secondary-soft: var(--accent-soft);--brand-blue-soft: #16244a}}:root[data-theme=dark]{--bg: #0f1220;--panel: #151a2b;--panel2: #1b2135;--wash: #1b2135;--ink: #f2f3f7;--ink2: #c5c9d8;--muted: #9aa1ba;--faint: #7c84a1;--line: #2a3047;--line2: #222840;--accent: #4d8bff;--accent2: #7aa8ff;--accent-hover: #7aa8ff;--accent-soft: #16244a;--accent-secondary: var(--accent);--accent-secondary-soft: var(--accent-soft);--brand-blue-soft: #16244a}@media (max-width: 900px){:root{--topbar-h: 56px}:root:has(.sf-topbar .flavor-picker){--topbar-h: 100px}}body{font-family:var(--sans);background:var(--bg);color:var(--ink2);-webkit-font-smoothing:antialiased}a{color:var(--accent2)}code,pre,kbd,samp{font-family:var(--mono)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.prose h2,.prose h3,h1.title{font-weight:500;color:var(--ink)}.crumb{text-transform:none;letter-spacing:0;font-weight:400;font-size:13px}.sgroup,.sgroup-link{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--muted)}.slink.on{font-weight:500}.btn-run,.run-btn,.cell-run,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.sf-topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:8px;height:var(--topbar-h);min-height:0;padding:0 24px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:none;grid-template-columns:none;grid-template-rows:none;grid-template-areas:none}.tb-brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-width:0}.sf-topbar .brand{gap:10px}.tb-partner{display:inline-flex;align-items:center;gap:6px;padding-left:12px;border-left:1px solid var(--line);color:var(--muted);font-size:12px;text-decoration:none}.tb-partner:hover{text-decoration:none;color:var(--muted)}.tb-partner img{display:block;height:15px;width:auto}:root[data-theme=dark] .tb-partner img{filter:brightness(0) invert(1);opacity:.85}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .tb-partner img{filter:brightness(0) invert(1);opacity:.85}}.tb-nav{display:flex;align-items:center;gap:2px;margin-left:20px;height:100%}.tb-link,.course-menu-trigger{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:0;border-radius:var(--radius-btn);background:transparent;font:400 15px var(--sans);color:var(--ink);text-decoration:none;cursor:pointer;white-space:nowrap}.tb-link:hover,.course-menu-trigger:hover{background:var(--panel2);color:var(--ink);text-decoration:none}.tb-link.active{color:var(--accent2)}.course-menu-trigger[aria-expanded=true]{background:var(--accent-soft);color:var(--accent2)}.tb-spacer{flex:1}.tb-search{flex:0 1 340px;min-width:0}.tb-actions{display:flex;align-items:center;gap:4px;margin-left:8px}.tb-icon{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:var(--radius-btn);background:transparent;color:var(--ink2);cursor:pointer}.tb-icon:hover{background:var(--panel2);color:var(--ink)}.tb-icon .theme-icon{width:20px;height:20px}.tb-search-toggle,.tb-menu{display:none}.sf-topbar .auth-btn{height:36px;padding:0 14px;margin-left:4px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--panel);color:var(--ink);font:500 14px var(--sans)}.sf-topbar .auth-btn:hover{border-color:var(--accent);color:var(--accent2)}.sf-topbar .flavor-picker{display:flex;align-items:center;gap:8px;margin-left:8px;font-size:13px;color:var(--muted)}.sf-topbar .flavor-picker-label{text-transform:none;letter-spacing:0;font-weight:400}.sf-topbar .flavor-select{height:34px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--panel);color:var(--ink);font:14px var(--sans);padding:0 8px}.searchwrap{width:100%;flex:1 1 auto;min-width:0;position:relative}.searchwrap input{width:100%;height:40px;border-radius:var(--radius-input);border:1px solid var(--line);background:var(--panel2);font:14px var(--sans);color:var(--ink);padding:0 56px 0 38px}.searchwrap input::placeholder{color:var(--faint)}.searchwrap input:focus{background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.search-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:11px var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-xs);padding:1px 6px;background:var(--panel);pointer-events:none}.searchwrap .results{top:calc(100% + 8px);border-radius:var(--radius-modal);border:1px solid var(--line);box-shadow:var(--shadow-xl);padding:8px;background:var(--panel);max-height:min(70vh,560px);overflow:auto}.searchwrap .results .rgroup{font-size:12px;color:var(--muted);padding:8px 12px 6px}.searchwrap .results button{border:0;border-radius:var(--radius-btn);padding:10px 12px;display:grid;gap:2px;width:100%;text-align:left}.searchwrap .results button.sel,.searchwrap .results button:hover{background:var(--accent-soft)}.searchwrap .results .rm{font-size:15px;color:var(--ink)}.searchwrap .results .rt{font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0}.searchwrap .results .rfoot{display:flex;gap:18px;padding:10px 12px 4px;margin-top:6px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.course-menu{position:relative;height:100%;display:flex;align-items:center}.course-menu-panel{top:calc(100% + 1px);border-radius:0 0 var(--radius-modal) var(--radius-modal);border:1px solid var(--line);border-top:0;box-shadow:var(--shadow-xl);width:min(1040px,calc(100vw - 48px));height:min(640px,calc(100vh - var(--topbar-h) - 24px))}.course-menu-heading,.course-menu-kicker{text-transform:none!important;letter-spacing:0!important;font-size:13px!important;font-weight:400!important;color:var(--muted)!important}.course-menu-categories{background:var(--panel2)}.course-menu-course{font-size:14.5px;border-radius:var(--radius-btn);color:var(--ink2)}.course-menu-course.active{background:var(--accent-soft);color:var(--accent2)}.course-menu-topic{font-size:14.5px}.course-menu-topic.current{color:var(--accent2)}.course-menu-section-title{text-transform:none;letter-spacing:0;font-size:13px;font-weight:400;color:var(--muted)}.course-menu-topic-head strong{font-size:22px;font-weight:500;color:var(--ink)}.course-menu-path-text{display:grid;gap:2px;text-align:left}.course-menu-path-text small{font-size:12px;color:var(--muted)}.course-menu-group+.course-menu-group{margin-top:14px}.course-menu-topic-head{align-items:flex-start;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.course-menu-desc{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--ink2);max-width:340px}.course-menu-facts{font-size:13px;color:var(--muted);white-space:nowrap}.course-menu-section-title{display:flex!important;justify-content:space-between;gap:12px}.course-menu-section-title small{font-size:12px;color:var(--faint)}.sf-footer{display:block;padding:0;border-top:1px solid var(--line);background:var(--panel2);color:var(--ink2);font-size:14px;grid-template-columns:none}.sf-footer-main{max-width:1280px;margin:0 auto;padding:48px 40px 36px;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:48px}.sf-footer-brand p{margin:16px 0 0;max-width:460px;line-height:1.6;color:var(--ink2)}.sf-footer .footer-logo-image{width:140px;height:auto;filter:none}:root[data-theme=dark] .sf-footer .footer-logo-image{filter:brightness(0) invert(1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .sf-footer .footer-logo-image{filter:brightness(0) invert(1)}}.sf-footer-col{display:grid;align-content:start;gap:10px}.sf-footer-col strong{font-weight:500;color:var(--ink);margin-bottom:4px}.sf-footer-col a{color:var(--ink2);text-decoration:none}.sf-footer-col a:hover{color:var(--accent2);text-decoration:underline}.sf-footer-bottom{max-width:1280px;margin:0 auto;padding:18px 40px 28px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.sf-footer-bottom p{margin:0}.sidebar{top:var(--topbar-h);height:calc(100vh - var(--topbar-h))}@media (max-width: 1100px){.tb-link-dash{display:none}.tb-search{flex-basis:260px}}@media (max-width: 900px){.sf-topbar{height:var(--topbar-h);padding:0 12px;gap:4px;flex-wrap:wrap;align-content:center}.tb-menu{display:inline-grid;margin-left:-4px}.tb-partner,.tb-link-paths,.tb-link-dash{display:none}.tb-nav{margin-left:auto;height:56px;order:2}.tb-spacer{display:none}.tb-actions{order:3;margin-left:0}.tb-search-toggle{display:inline-grid}.course-menu-trigger{height:34px;padding:0 10px;font-size:14px}.tb-search{display:none}.sf-topbar.search-open .tb-search{display:block;position:absolute;left:0;right:0;top:100%;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow-md)}.sf-topbar.search-open .tb-search-toggle{background:var(--accent-soft);color:var(--accent2)}.search-kbd{display:none}.searchwrap input{height:44px;font-size:16px;padding-right:12px}.searchwrap .results{position:fixed;left:12px;right:12px;top:calc(var(--topbar-h) + 72px);max-height:calc(100vh - var(--topbar-h) - 96px)}.sf-topbar .flavor-picker{order:4;flex:0 0 100%;height:44px;margin:0;padding-left:4px;border-top:1px solid var(--line2)}.course-menu{position:static}.course-menu-panel{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:0;width:auto;height:auto;border-radius:0;border:0;border-top:1px solid var(--line);box-shadow:none}.app-shell:has(.flavor-picker) .course-menu-panel{top:var(--topbar-h);height:auto}.sidebar{top:var(--topbar-h)}.app-shell:has(.flavor-picker) .sidebar{top:var(--topbar-h)}.sidebar-backdrop.open{inset:var(--topbar-h) 0 0 0}.sf-footer-main{grid-template-columns:1fr 1fr;gap:32px;padding:36px 20px 24px}.sf-footer-brand{grid-column:1 / -1}.sf-footer-bottom{padding:16px 20px 24px}}@media (max-width: 420px){.sf-topbar .brand-title{font-size:17px}.sf-topbar .brand-icon-wrapper{width:28px;height:28px}.sf-topbar .auth-btn{padding:0 10px;font-size:13px}.tb-icon{width:36px;height:36px}.course-menu-trigger{padding:0 8px}}@media (max-width: 360px){.theme-toggle{display:none}}.sf-footer-main,.sf-footer-bottom{max-width:1400px}.tb-actions{margin-left:12px}@media (max-width: 900px){.sf-topbar{flex-wrap:nowrap}.sf-topbar:has(.flavor-picker){flex-wrap:wrap}.tb-brand{flex:0 1 auto;min-width:0;overflow:hidden}.tb-nav{flex:0 0 auto}.tb-actions{flex:0 0 auto;gap:0}.sf-topbar .auth-btn{margin-left:4px}}@media (max-width: 480px){.tb-brand{flex:0 0 auto;overflow:visible}.sf-topbar{padding:0 10px;gap:2px}.tb-icon{width:34px;height:34px}.course-menu-trigger{padding:0 6px;font-size:14px}.course-menu-chevron{display:none}.sf-topbar .auth-btn{height:34px;padding:0 10px;font-size:13px}.sf-topbar:has(.tb-menu) .tb-nav{display:none}.sf-topbar:has(.tb-menu) .tb-actions{margin-left:auto}}@media (max-width: 360px){.sf-topbar .brand-title{font-size:16px}.sf-topbar .brand-icon-wrapper{display:none}}.sf-topbar .theme-toggle{min-width:0;padding:0;gap:0;border:0}.cm-mobile-head{display:none}@media (max-width: 900px){.course-menu-panel.three-col.open{display:flex;flex-direction:column;grid-template-columns:none}.cm-mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;height:52px;padding:0 8px 0 16px;border-bottom:1px solid var(--line);background:var(--panel)}.cm-mobile-head strong{font-size:16px;font-weight:500;color:var(--ink)}.cm-back{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:8px 0;font:500 15px var(--sans);color:var(--accent2);cursor:pointer}.cm-back span{font-size:22px;line-height:1}.cm-close{width:40px;height:40px;border:0;background:none;font-size:26px;line-height:1;color:var(--ink2);cursor:pointer;border-radius:var(--radius-btn)}.cm-close:hover{background:var(--panel2)}.course-menu-panel.three-col>.course-menu-courses,.course-menu-panel.three-col>.course-menu-topics{display:none;flex:1 1 auto;min-height:0;width:100%;border:0;overflow-y:auto}.course-menu-panel.step-0>.course-menu-categories,.course-menu-panel.step-1>.course-menu-tutorials,.course-menu-panel.step-2>.course-menu-topics{display:block}.course-menu-courses{padding:8px 12px 24px;background:var(--panel)}.course-menu-categories>.course-menu-heading{display:none}.course-menu-course{width:100%;min-height:52px;padding:10px 12px;font-size:16px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px}.course-menu-course-name{gap:12px;min-width:0}.course-menu-course-name>span:last-child{white-space:normal;overflow:visible;text-overflow:clip}.course-menu-course .course-logo.compact{width:32px;height:32px;flex:0 0 auto}.course-menu-path-text>span{white-space:normal}.course-menu-arrow{font-size:20px;color:var(--faint)}.course-menu-heading{padding:14px 12px 6px}.course-menu-course--soon{min-height:44px;font-size:15px}.course-menu-topics{padding:0}.course-menu-topic-head{padding:16px;display:block}.course-menu-topic-head>span{display:block;margin-top:8px}.course-menu-desc{max-width:none}.course-menu-topic-list{padding:4px 16px 32px;overflow:visible}.course-menu-topic{display:block;padding:10px 8px;font-size:15px}.course-menu-section-title{padding:14px 8px 4px}}@media (max-width: 900px){.course-menu-panel.three-col{left:0;right:0;width:auto;max-width:none}.course-menu-course .course-menu-course-name{display:inline-flex;flex-direction:row;align-items:center;text-align:left}}@media (min-width: 901px){.sf-footer-main,.sf-footer-bottom{max-width:1240px;padding-left:clamp(24px,5vw,72px);padding-right:clamp(24px,5vw,72px)}}@media (min-width: 901px){.sf-footer-main{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.6fr);gap:40px}}.sf-footer-products ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.sf-footer-products a{display:inline-flex;align-items:center;gap:10px;color:var(--ink2);text-decoration:none}.sf-footer-products a:hover span{color:var(--accent2);text-decoration:underline}.sf-footer-products img{width:24px;height:24px;padding:3px;flex:0 0 auto;border-radius:6px;background:#fff;border:1px solid var(--line);object-fit:contain}@media (max-width: 900px){.sf-footer-products{grid-column:1 / -1}}:root{--dock-right: 0px !important}.dock,.word-dock,.excel-dock,.pdf-dock,.ppt-dock,.sd-dock{right:0!important}:root[data-theme=dark] .e-de-blink-cursor,:root[data-theme=dark] .e-de-cursor{border-left-color:#fff!important;background-color:#fff!important}:root[data-theme=dark] :is(.word-dock,.excel-dock,.ppt-dock,.pdf-dock,.e-documenteditor,.e-documenteditorcontainer,.e-spreadsheet,.e-pdfviewer) :is(input,textarea,[contenteditable],[contenteditable] *){caret-color:#fff!important}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .e-de-blink-cursor,:root:not([data-theme=light]) .e-de-cursor{border-left-color:#fff!important;background-color:#fff!important}:root:not([data-theme=light]) :is(.word-dock,.excel-dock,.ppt-dock,.pdf-dock,.e-documenteditor,.e-documenteditorcontainer,.e-spreadsheet,.e-pdfviewer) :is(input,textarea,[contenteditable],[contenteditable] *){caret-color:#fff!important}}@media (max-width: 560px){:root:has(.lesson-bar--inline):has(.sf-topbar .flavor-picker){--topbar-h: 112px}:root:has(.sf-topbar.tb-collapsed .lesson-bar--inline):has(.sf-topbar .flavor-picker){--topbar-h: 56px}.sf-topbar.tb-collapsed:has(.lesson-bar--inline):has(.flavor-picker){height:112px}.sf-topbar:has(.lesson-bar--inline) .flavor-picker{order:1;flex:0 0 auto;height:56px;margin:0 0 0 6px;padding:0;border:0;background:transparent;box-shadow:none}.sf-topbar:has(.lesson-bar--inline) .flavor-picker-label,.sf-topbar:has(.lesson-bar--inline) .flavor-saved{display:none}.sf-topbar:has(.lesson-bar--inline) .flavor-select{height:34px;width:auto;max-width:96px;font-size:13.5px;padding:0 6px}.sf-topbar:has(.lesson-bar--inline) .tb-sandbox-slot{order:2}.sf-topbar:has(.lesson-bar--inline) .tb-actions{order:3}}@media (max-width: 400px){.sf-topbar:has(.lesson-bar--inline):has(.flavor-picker) .brand-title{display:none}}.lesson-bar--inline .share-popover{left:auto;right:0;top:100%;width:max-content;min-width:200px;max-width:calc(100vw - 24px);z-index:60}.lesson-bar--inline .share-popover button,.lesson-bar--inline .share-popover a{display:flex}.share-popover img.share-icon-img{flex:0 0 30px;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;object-fit:contain;display:block}.share-popover img.share-icon-teams{border-radius:6px;background:#fff}.course-logo.course-logo--scss{border-radius:8px;background:var(--panel);border-color:var(--line)}.course-logo.course-logo--scss img{filter:none}@media print{@page{size:A4 landscape;margin:0}html,body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}body:has(.cert-sheet) *{visibility:hidden!important}body:has(.cert-sheet) .cert-sheet,body:has(.cert-sheet) .cert-sheet *{visibility:visible!important}body:has(.cert-sheet) .cert-sheet{position:fixed!important;inset:0 auto auto 0!important;margin:0!important;width:297mm!important;height:210mm!important;transform:none!important;z-index:2147483647}body:has(.cert-sheet) .app-shell,body:has(.cert-sheet) .shell,body:has(.cert-sheet) main{height:auto!important;min-height:0!important;overflow:visible!important}}.share-popover img.share-icon-linkedin{border-radius:6px;background:transparent;border:0;padding:0}.lesson-loading{padding:8px 0 32px}.lesson-loading-head{display:flex;align-items:center;gap:10px;color:var(--muted);font:500 14px var(--sans);margin-bottom:20px}.lesson-spinner,.boot-spinner{width:18px;height:18px;border-radius:50%;flex:none;border:2px solid color-mix(in srgb,var(--accent, #0057ff) 22%,transparent);border-top-color:var(--accent, #0057ff);animation:dt-spin .8s linear infinite}.lesson-skel{display:grid;gap:12px}.lesson-skel i{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--line2, #eef0f4) 0%,var(--line, #e2e5ea) 50%,var(--line2, #eef0f4) 100%);background-size:200% 100%;animation:dt-shimmer 1.2s ease-in-out infinite}@keyframes dt-spin{to{transform:rotate(360deg)}}@keyframes dt-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.lesson-spinner,.boot-spinner,.lesson-skel i{animation:none}}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0a0a0b;--panel: #131315;--panel2: #1b1b1e;--wash: #18181b;--surface-1: #161618;--code-bg: #111113;--ink: #ededef;--ink2: #c4c4c9;--muted: #9b9ba3;--faint: #75757d;--line: #27272a;--line2: #1f1f22;--accent: #4d8bff;--accent2: #7aa8ff;--accent-hover: #7aa8ff;--accent-soft: #15203a;--accent-secondary-soft: #2a1d10;--brand-blue-soft: #15203a;--sel: #1e3a8a;--shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 12px 32px rgba(0, 0, 0, .5)}}:root[data-theme=dark]{--bg: #0a0a0b;--panel: #131315;--panel2: #1b1b1e;--wash: #18181b;--surface-1: #161618;--code-bg: #111113;--ink: #ededef;--ink2: #c4c4c9;--muted: #9b9ba3;--faint: #75757d;--line: #27272a;--line2: #1f1f22;--accent: #4d8bff;--accent2: #7aa8ff;--accent-hover: #7aa8ff;--accent-soft: #15203a;--accent-secondary-soft: #2a1d10;--brand-blue-soft: #15203a;--sel: #1e3a8a;--shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 12px 32px rgba(0, 0, 0, .5)}
