.learn-home{overflow-wrap:anywhere;padding-top:0}.learn-direction{--focus-ring:var(--accent-ink);background:var(--accent-surface);color:var(--accent-ink);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.6rem clamp(2rem,5vw,5rem);padding:clamp(1.5rem,4.5vw,3.5rem);display:grid}.learn-direction-content,.learn-lesson-link>div,.learn-review-row>div,.learn-queued-row>div{min-width:0}.learn-direction h1{max-width:22ch;font-family:var(--font-sans);letter-spacing:-.035em;text-wrap:balance;margin:0 0 1.35rem;font-size:clamp(2rem,4.1vw,3.6rem);font-weight:700;line-height:1.12}.learn-direction .lesson-meta{color:var(--accent-ink)}.learn-read-link{background:var(--accent-ink);min-width:15rem;min-height:52px;color:var(--accent-surface);white-space:nowrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:.8rem 1.15rem;font-weight:700;line-height:1.3;text-decoration:none;transition:opacity .12s;display:inline-flex}.learn-read-link:hover{opacity:.86}.learn-direction .learn-read-link:focus-visible{outline-color:var(--accent-ink)}.learn-direction-reason{grid-column:1/-1;max-width:76ch;margin:0;font-size:1.05rem;line-height:1.65}.learn-context{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,.7fr) minmax(0,2fr);gap:1rem 2.5rem;padding:1.7rem 0;display:grid}.learn-context h2{margin:0;font-size:.98rem;font-weight:700}.learn-context p{max-width:80ch;color:var(--fg-muted);margin:0}.learn-intro{padding:1rem 0 1.5rem}.learn-intro h1{letter-spacing:-.025em;margin:0 0 .7rem;font-size:clamp(2rem,5vw,3rem);line-height:1.2}.learn-intro p{max-width:64ch;color:var(--fg-muted);margin:0}.learn-service-status:empty{display:none}.learn-loading{color:var(--fg-muted);margin:1rem 0;font-size:.92rem}.learn-notice{border:1px solid var(--border-strong);background:var(--bg-card);justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;padding:1rem 1.2rem;display:flex}.learn-notice p{margin:0}.learn-notice>div{flex:1;min-width:0}.learn-notice .learn-button{white-space:nowrap;overflow-wrap:normal;flex-shrink:0}.learn-notice .learn-error-detail{color:var(--error);margin-top:.35rem;font-size:.88rem}.learn-button{border:1px solid var(--border-strong);min-height:44px;color:var(--fg);font:inherit;text-align:center;cursor:pointer;background:0 0;border-radius:3px;justify-content:center;align-items:center;padding:.6rem .95rem;font-size:.9rem;font-weight:700;line-height:1.4;text-decoration:none;transition:background .12s;display:inline-flex}.learn-button:hover:not(:disabled){background:var(--bg-card-hover)}.learn-button:disabled{color:var(--fg-muted);cursor:not-allowed}.learn-home :where(a,button):focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}.learn-section{margin-top:clamp(2rem,5vw,3.5rem)}.learn-section-heading{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-bottom:1rem;display:flex}.learn-section-heading h2{letter-spacing:-.015em;margin:0;font-size:clamp(1.4rem,3vw,1.7rem);line-height:1.3}.learn-section-heading p{color:var(--fg-muted);margin:0;font-size:.9rem}.learn-lesson-list{margin:0;padding:0;list-style:none}.learn-lesson-list>li{border-bottom:1px solid var(--border)}.learn-lesson-link{min-height:44px;color:var(--fg);justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 0;text-decoration:none;display:flex}.learn-lesson-link:hover h3{color:var(--link);text-underline-offset:4px;text-decoration:underline}.learn-lesson-link h3,.learn-review-row h3,.learn-queued-row h3{margin:0 0 .65rem;font-size:clamp(1.1rem,2vw,1.3rem);font-weight:700;line-height:1.4}.learn-row-arrow{color:var(--link);flex-shrink:0;font-size:1.4rem}.learn-row-reason,.learn-row-source{max-width:85ch;color:var(--fg-muted);margin:.65rem 0 0;font-size:.95rem;line-height:1.6}.learn-review-row,.learn-queued-row{grid-template-columns:minmax(0,1fr) minmax(180px,auto);align-items:center;gap:1rem 2rem;padding:1.5rem 0;display:grid}.learn-row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:.65rem;max-width:360px;display:flex}.learn-row-actions p{flex-basis:100%;margin:0;font-size:.9rem}.learn-review-cadence,.learn-queued-topic,.learn-queued-label{color:var(--fg-muted);margin:.5rem 0 0;font-size:.88rem}.learn-queued-label{margin:0 0 .5rem}.learn-queued .learn-section-heading h2{font-size:1.3rem}.learn-inline-error{color:var(--error)}.learn-review-notice{color:var(--fg-muted)}.learn-retrieval{flex-wrap:wrap;gap:.5rem 1.75rem;margin-top:2rem;display:flex}.learn-retrieval a{align-items:center;gap:.75rem;min-height:44px;display:inline-flex}@media (width<=900px){.learn-direction{grid-template-columns:minmax(0,1fr);gap:1.5rem}.learn-direction h1{max-width:none}.learn-read-link{justify-self:start}}@media (width<=700px){.learn-context{grid-template-columns:minmax(0,1fr);gap:.5rem;padding:1.5rem 0}@media (width<=600px){.learn-read-link{width:100%;min-width:0}}.learn-notice,.learn-section-heading{flex-direction:column;align-items:flex-start}.learn-review-row,.learn-queued-row{grid-template-columns:minmax(0,1fr)}.learn-row-actions{justify-content:flex-start;max-width:none}}@media (width<=380px){.learn-direction{padding:1.3rem}.learn-direction h1{font-size:1.85rem}.learn-lesson-link{gap:.75rem}}@media (prefers-reduced-motion:reduce){.learn-read-link,.learn-button{transition:none}}.lesson-collection{overflow-wrap:anywhere;max-width:960px;padding-top:clamp(1.5rem,4vw,3rem)}.collection-heading{margin-bottom:2rem}.collection-heading h1{letter-spacing:-.03em;margin:0 0 .6rem;font-size:clamp(2rem,5vw,3.2rem);line-height:1.15}.collection-heading p{color:var(--fg-muted);margin:0}.collection-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.collection-list>li{border-bottom:1px solid var(--border)}.collection-lesson-link{min-height:44px;color:var(--fg);justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 0;text-decoration:none;display:flex}.collection-lesson-content{min-width:0}.collection-lesson-link h2{letter-spacing:-.01em;margin:0 0 .7rem;font-size:clamp(1.15rem,2.5vw,1.45rem);line-height:1.35}.collection-lesson-link:hover h2{color:var(--link);text-underline-offset:4px;text-decoration:underline}.collection-source{max-width:80ch;color:var(--fg-muted);margin:.75rem 0 0;font-size:.95rem}.collection-read-date{color:var(--fg-subtle);margin:.65rem 0 0;font-size:.88rem}.collection-row-arrow{color:var(--link);flex-shrink:0;font-size:1.4rem}.collection-loading{color:var(--fg-muted)}.collection-error{border:1px solid var(--border-strong);background:var(--bg-card);justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;padding:1rem 1.2rem;display:flex}.collection-error p{margin:0}.collection-error .collection-error-detail{color:var(--error);margin-top:.4rem;font-size:.9rem}.collection-error button{border:1px solid var(--border-strong);min-height:44px;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:3px;padding:.6rem 1rem;transition:background .12s}.collection-error button:hover:not(:disabled){background:var(--bg-card-hover)}.collection-error button:disabled{color:var(--fg-muted);cursor:not-allowed}.collection-empty{border-top:1px solid var(--border);padding:2rem 0}.collection-empty h2{margin:0 0 .65rem;font-size:1.4rem;line-height:1.3}.collection-empty p{color:var(--fg-muted);margin:0 0 1rem}.collection-empty a{align-items:center;gap:1rem;min-height:44px;display:inline-flex}.lesson-collection :where(a,button):focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}@media (width<=500px){.collection-error{flex-direction:column;align-items:flex-start}.collection-lesson-link{gap:.75rem;padding:1.25rem 0}}@media (prefers-reduced-motion:reduce){.collection-error button{transition:none}}.reader.reader--study{width:100%;max-width:68ch;color:var(--fg);font-family:var(--font-reading,var(--font-sans));overflow-wrap:anywhere;margin:0 auto;padding:0 0 3rem;font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem)}.reader--study .reader-header{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 2rem;display:flex}.reader--study .back{min-height:44px;color:var(--fg-muted);font-family:var(--font-sans);align-items:center;padding:.5rem 0;font-size:.9375rem;text-decoration:none;display:inline-flex}.reader--study .back:hover{color:var(--fg);text-underline-offset:.25em;text-decoration:underline}.reader--study .reader-title-block{margin-bottom:2.25rem}.reader--study .reader-title-block h1,.reader.reader--study.reader-state h1{max-width:25ch;color:var(--fg);font-family:var(--font-sans);letter-spacing:-.035em;text-wrap:balance;margin:0 0 1.25rem;font-size:clamp(2rem,1.3rem + 2.8vw,3.125rem);font-weight:700;line-height:1.14}.reader--study .reader-reading-meta,.reader--study .reader-meta{min-width:0;color:var(--fg-muted);font-family:var(--font-sans);text-transform:none;letter-spacing:normal;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.875rem;line-height:1.6;display:flex}.reader--study .reader-meta .topic{color:var(--fg-muted)}.reader--study .reader-read-state{color:var(--fg-muted);white-space:nowrap}.reader--study .btn-primary,.reader--study .btn-secondary,.reader--study .btn-feedback{border:1px solid var(--border-strong);min-height:44px;color:var(--fg);background:var(--bg-card);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;border-radius:.5rem;padding:.65rem 1.125rem;font-size:.9375rem;font-weight:600;line-height:1.4;transition:none}.reader--study .btn-primary{color:var(--accent-ink);border-color:var(--accent-surface);background:var(--accent-surface)}.reader--study .btn-primary:hover:not(:disabled){color:var(--accent-ink);border-color:var(--accent-ink);background:var(--accent-surface)}.reader--study .btn-secondary:hover:not(:disabled),.reader--study .btn-feedback:hover:not(:disabled){border-color:var(--fg-muted);background:var(--bg-card-hover)}.reader--study .reader-save{min-width:6.5rem}.reader--study .reader-save-active,.reader--study .reader-save-active:hover:not(:disabled){color:var(--accent-ink);border-color:var(--accent-surface);background:var(--accent-surface)}.reader--study button:disabled{cursor:not-allowed;opacity:.65}.reader--study .reader-disclosure{border:0;border-top:1px solid var(--border);font-family:var(--font-sans);margin:0;padding:0;font-size:1rem}.reader--study .reader-disclosure>summary{min-height:56px;color:var(--fg);cursor:pointer;margin-left:1.125rem;padding:1rem 0;font-size:1rem;font-weight:600;line-height:1.6;list-style-position:outside}.reader--study .reader-disclosure>summary::marker{color:var(--fg-subtle);font-size:.8em}.reader--study .reader-disclosure>summary:hover{color:var(--link)}.reader--study .reader-disclosure-hint{color:var(--fg-muted);margin-left:.75rem;font-size:.875rem;font-weight:400;display:inline-block}.reader--study .reader-disclosure-content{padding:.25rem 0 1.5rem}.reader--study .reader-sources{border-bottom:1px solid var(--border);margin:-.5rem 0 2.25rem}.reader--study .source-event{border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-card);border-radius:.5rem;margin:0 0 1.25rem;padding:1rem;font-size:1rem;line-height:1.65}.reader--study .source-event strong{color:var(--fg)}.reader--study .source-ref{color:var(--fg-muted);font-family:var(--font-mono);margin-top:.5rem;font-size:.8125rem;display:block}.reader--study .citations{border:0;margin:0;padding:0}.reader--study .citations h2{color:var(--fg);margin:0 0 .5rem;font-size:1rem;font-weight:600}.reader--study .citations li{word-break:normal;overflow-wrap:anywhere;margin:0;font-size:.9375rem}.reader--study .citations a{color:var(--link);text-underline-offset:.2em;padding:.6rem 0;text-decoration:underline;display:inline-block}.reader--study .body{max-width:68ch;color:var(--fg);font-family:var(--font-reading,var(--font-sans));font-size:inherit;line-height:1.8}.reader--study .body p{margin:0 0 1.3em}.reader--study .body :is(h2,h3,h4){color:var(--fg);font-family:var(--font-sans);letter-spacing:-.02em;margin:2em 0 .7em;font-weight:700;line-height:1.3}.reader--study .body h2{font-size:1.4em}.reader--study .body h3{font-size:1.175em}.reader--study .body h4{font-size:1em}.reader--study .body>:first-child{margin-top:0}.reader--study .body>:last-child{margin-bottom:0}.reader--study .body :is(ul,ol){margin:0 0 1.3em;padding-left:1.4em}.reader--study .body li{margin-bottom:.55em;padding-left:.15em}.reader--study .body code{color:var(--fg);background:var(--bg-card);font-family:var(--font-mono);border-radius:.2rem;padding:.1em .3em;font-size:.85em}.reader--study .body pre{border:1px solid var(--border);background:var(--bg-card);max-width:100%;font-family:var(--font-mono);overflow-wrap:normal;border-radius:.5rem;margin:1.5em 0;padding:1rem;font-size:.85em;line-height:1.65;overflow-x:auto}.reader--study .body pre code{font-size:inherit;overflow-wrap:normal;background:0 0;padding:0}.reader--study .body blockquote{border-left:2px solid var(--border-strong);color:var(--fg-muted);margin:1.5em 0;padding:.25rem 0 .25rem 1.25rem}.reader--study .body blockquote p:last-child{margin-bottom:0}.reader--study .body .callout{border:1px solid var(--border);color:var(--fg);background:var(--bg-card);border-radius:.5rem;margin:1.5em 0;padding:1rem 1.125rem}.reader--study .body .callout-title{color:var(--fg);font-family:var(--font-sans);letter-spacing:normal;text-transform:none;margin:0 0 .35rem;font-size:1rem;font-weight:700}.reader--study .body :is(.callout-warn,.callout-remember) .callout-title{color:var(--accent)}.reader--study .body .callout p{margin:.35rem 0 0}.reader--study .body a{color:var(--link);text-underline-offset:.2em;text-decoration:underline}.reader--study .body .topic-link{color:var(--link);border-bottom:1px dashed var(--link);text-decoration:none}.reader--study .body .topic-link-missing{border:0;border-bottom:1px dotted var(--link);min-height:0;color:var(--link);font:inherit;text-align:inherit;cursor:pointer;background:0 0;border-radius:0;padding:0 .05em}.reader--study .body .topic-link-missing:after{content:" +";opacity:1}.reader--study .body :is(.topic-link,.topic-link-missing):hover{color:var(--link);border-bottom-color:var(--link);border-bottom-style:solid}.reader--study .body :is(.topic-link-queued,.topic-link-unavailable,.topic-link-unresolved),.reader--study .body :is(.topic-link-queued,.topic-link-unavailable,.topic-link-unresolved):hover{color:var(--fg-muted);border-bottom:1px dotted var(--fg-subtle);cursor:help}.reader--study .reader-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin:2.75rem 0 1.75rem;padding:1.5rem 0 0;display:flex}.reader--study .reader-actions .btn-primary{min-width:10rem;min-height:48px}.reader--study .reader-finish-hint{min-width:12rem;color:var(--fg-muted);font-family:var(--font-sans);flex:1;margin:0;font-size:.875rem;line-height:1.6}.reader--study .reader-action-error{flex-basis:100%}.reader--study .ask-more-log{overscroll-behavior:contain;scroll-behavior:auto;gap:.75rem;max-height:min(50vh,26rem);margin:1rem 0;padding:0;overflow:hidden auto}.reader--study .ask-bubble{border:1px solid var(--border);white-space:normal;border-radius:.5rem;max-width:95%;padding:.875rem 1rem;font-size:1rem;line-height:1.65}.reader--study .ask-bubble-user{background:var(--bg-card-hover)}.reader--study .ask-bubble-assistant{background:var(--bg-card)}.reader--study .ask-bubble p{white-space:pre-wrap;margin:.35rem 0 0}.reader--study .ask-speaker{color:var(--fg-muted);font-size:.8125rem;font-weight:600}.reader--study .ask-bubble-pending{color:var(--fg-muted);font-style:normal}.reader--study .ask-more-form,.reader--study .feedback-form{grid-template-columns:minmax(0,1fr);align-items:start;gap:.625rem;margin:0;display:grid}.reader--study .ask-more-form label,.reader--study .feedback-form label{color:var(--fg);font-size:.9375rem;font-weight:600}.reader--study .ask-more-form textarea,.reader--study .feedback-form textarea{border:1px solid var(--border-strong);width:100%;min-width:0;min-height:6rem;color:var(--fg);background:var(--bg-card);font-family:var(--font-sans);resize:vertical;border-radius:.5rem;padding:.875rem 1rem;font-size:1rem;line-height:1.6}.reader--study textarea::placeholder{color:var(--fg-subtle);opacity:1}.reader--study .ask-more-form textarea:focus,.reader--study .feedback-form textarea:focus{border-color:var(--focus-ring);outline:3px solid var(--focus-ring);outline-offset:3px}.reader--study .ask-more-form button,.reader--study .feedback-form button{justify-self:end;min-width:6.5rem}.reader--study .next,.reader--study .related-topics{border-top:1px solid var(--border);font-family:var(--font-sans);margin:1.5rem 0 0;padding:1.5rem 0 0}.reader--study .next h2,.reader--study .related-topics h2{color:var(--fg);letter-spacing:-.02em;text-transform:none;margin:0 0 1rem;font-size:1.25rem;font-weight:700;line-height:1.3}.reader--study .next-list,.reader--study .related-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.reader--study .next-list .next-item,.reader--study .related-list .related-item{border:0;border-bottom:1px solid var(--border);opacity:1;min-width:0;margin:0;padding:1rem 0}.reader--study .next-list .next-item:last-child,.reader--study .related-list .related-item:last-child{border-bottom:0}.reader--study .next-list .next-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.reader--study .next-title{min-width:0;color:var(--fg);font-size:1.0625rem;font-weight:600;line-height:1.5}.reader--study .next-row .next-title{flex:16rem}.reader--study .next-link{min-height:44px;color:var(--fg);justify-content:space-between;align-items:baseline;gap:1rem;padding:.25rem 0;text-decoration:none;transition:none;display:flex}.reader--study .next-link:hover .next-title{color:var(--link);text-underline-offset:.2em;text-decoration:underline}.reader--study .next-arrow,.reader--study .next-link:hover .next-arrow{color:var(--link);flex-shrink:0;transition:none;transform:none}.reader--study .next-item p,.reader--study .related-item p{margin:.4rem 0 0;font-size:.9375rem;line-height:1.65}.reader--study .next-badge{color:var(--fg-muted);border-color:var(--border);text-transform:none;letter-spacing:normal;padding:.25rem .625rem;font-size:.8125rem}.reader--study .next-generate{min-height:44px;color:var(--link);white-space:nowrap;flex-shrink:0;padding:.5rem 0;font-size:.9375rem}.reader--study .lesson-feedback{border-bottom:1px solid var(--border);margin-top:1.5rem}.reader--study .feedback-group{flex-wrap:wrap;gap:.625rem;margin:0 0 1.25rem;display:flex}.reader--study .btn-feedback-active,.reader--study .btn-feedback-active:hover:not(:disabled){color:var(--fg);border-color:var(--fg);background:var(--bg-card-hover)}.reader--study .reader-rating-label{color:var(--fg);margin:0 0 .375rem;font-size:.9375rem;font-weight:600}.reader--study .rating-stars{flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 1.25rem;display:flex}.reader--study .btn-star{min-width:44px;min-height:44px;color:var(--fg-muted);border-radius:.375rem;flex:0 0 44px;padding:.25rem;font-size:1.5rem}.reader--study .btn-star-active,.reader--study .btn-star:hover:not(:disabled){color:var(--accent)}.reader--study .muted{color:var(--fg-muted)}.reader--study .small{font-size:.875rem;line-height:1.65}.reader--study .error,.reader--study .form-error,.reader--study .error-inline{color:var(--error);font-family:var(--font-sans);overflow-wrap:anywhere;background:0 0;border:0;margin:.75rem 0;padding:0;font-size:.9375rem;line-height:1.65}.reader--study .reader-library-notice{font-family:var(--font-sans);padding:1rem 0}.reader--study .reader-empty-body{border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-card);border-radius:.5rem;padding:1.25rem;font-size:1rem}.reader--study .reader-announcement{white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.reader--study :is(a,button,textarea,summary):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.reader.reader--study.reader-state{padding-top:1rem}.reader--study.reader-state .back{margin-bottom:1.5rem}@media (width<=480px){.reader--study .reader-header{margin-bottom:1.5rem}.reader--study .reader-disclosure-hint{margin-left:0;display:block}.reader--study .reader-actions .btn-primary{width:100%}.reader--study .reader-finish-hint{flex-basis:100%;min-width:0}.reader--study .ask-more-form button,.reader--study .feedback-form button{justify-self:stretch}.reader--study .ask-bubble{max-width:100%}.reader--study .rating-value{margin-left:0}}@media (prefers-reduced-motion:reduce){.reader--study *,.reader--study :before,.reader--study :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111722;--bg-card:#1a2332;--bg-card-hover:#242f40;--bg-subtle:#202a3a;--bg-elev:#1a2332;--fg:#edf1f7;--fg-muted:#bbc5d5;--fg-subtle:#99a8bd;--border:#374357;--border-strong:#78879d;--accent:#efd568;--accent-surface:#dfc55b;--accent-ink:#171d29;--accent-hover:#ecd474;--link:#b3cdf5;--focus-ring:#b3cdf5;--error:#ff9caa;--error-surface:#39232e;--success:#9cd4b5;--success-surface:#1e3430;--warning:#efd568;--warning-surface:#342e1e;--page-gutter:clamp(18px, 3.5vw, 44px);--content-width:1180px;--font-sans:"Trebuchet MS", "Segoe UI", ui-sans-serif, system-ui, sans-serif;--font-reading:var(--font-sans);--font-serif:var(--font-reading);--font-mono:"SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f8;--bg-card:#fff;--bg-card-hover:#edf0f5;--bg-subtle:#edf0f5;--bg-elev:#fff;--fg:#171d29;--fg-muted:#566273;--fg-subtle:#637187;--border:#d4dbe5;--border-strong:#758298;--accent:#765b0b;--accent-surface:#f6d94d;--accent-ink:#171d29;--accent-hover:#edce34;--link:#28568e;--focus-ring:#28568e;--error:#a62e43;--error-surface:#fff0f3;--success:#286847;--success-surface:#edf5f0;--warning:#765b0b;--warning-surface:#faf3dc}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);min-height:100vh;margin:0;padding:0;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit}button,select,summary,a{touch-action:manipulation}button,select{min-height:44px}button:disabled{cursor:not-allowed}input,select,textarea{max-width:100%}textarea{min-width:0}a{color:var(--link);text-underline-offset:4px}:where(a,button,input,select,textarea,summary,[role=button]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}::selection{background:var(--accent-surface);color:var(--accent-ink)}[hidden]{display:none!important}.skip-link{left:var(--page-gutter);z-index:200;background:var(--accent-surface);color:var(--accent-ink);padding:12px 18px;font-weight:700;position:fixed;top:12px}.skip-link:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden}.signin{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.signin h1{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--fg);margin:0 0 1rem;font-size:4rem}.signin p{max-width:400px;color:var(--fg-muted);margin-bottom:2rem;font-size:1.05rem}.signin .hint{color:var(--fg-subtle);margin-top:1rem;font-size:.9rem}.app-shell{max-width:calc(var(--content-width) + 2 * var(--page-gutter));padding:0 var(--page-gutter) 4rem;min-height:100vh;margin:0 auto}.topbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:10;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"brand navigation account";align-items:center;gap:1.1rem;padding:1.15rem 0;font-size:.95rem;line-height:1.4;display:grid;position:sticky;top:0}.brand{letter-spacing:0;grid-area:brand;align-items:center;gap:.45rem;min-width:0;display:inline-flex}.brand-name{min-height:44px;font-family:var(--font-sans);color:var(--fg);letter-spacing:-.005em;flex-shrink:0;align-items:center;gap:.55rem;font-size:1.65rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent-surface);width:29px;height:29px;color:var(--accent-ink);padding:5px}.brand-name:hover{opacity:.85}.brand-sep{color:var(--fg-subtle);font-size:1rem;font-weight:400;line-height:1}.brand-repo{color:var(--fg);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:190px;font-family:inherit;font-size:.95rem;font-weight:500;overflow:hidden}.brand-repo-select{cursor:pointer;appearance:none;background-color:#0000;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 6px),calc(100% - 2px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:none;min-height:44px;padding:0 1.1rem 0 0;line-height:1.4}.brand-repo-select:hover{color:var(--fg)}.brand-repo-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.topbar nav{flex:1;grid-area:navigation;gap:1.4rem;font-size:.95rem;display:flex}.topbar nav a{min-height:44px;color:var(--fg-muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem 0;line-height:1.4;text-decoration:none;display:inline-flex}.topbar nav a.active{font-weight:700}.topbar nav a.active,.topbar nav a:hover{color:var(--fg);border-bottom-color:var(--accent)}.signout{color:var(--fg-subtle);white-space:nowrap;flex-shrink:0;font-size:.85rem;text-decoration:none}.signout:hover{color:var(--fg-muted)}.topbar-right{flex-shrink:0;grid-area:account;justify-self:end;align-items:center;gap:.6rem;min-width:0;margin-left:auto;display:flex}.topbar-right>*{flex-shrink:0}.user-info{color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.8rem;overflow:hidden}.theme-toggle{border:1px solid var(--border);cursor:pointer;color:var(--fg-muted);background:0 0;border-radius:6px;padding:.2rem .4rem;font-size:.85rem;line-height:1}.theme-toggle:hover{border-color:var(--fg-muted)}.lang-toggle{border:1px solid var(--border);cursor:pointer;color:var(--accent);letter-spacing:.04em;background:0 0;border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:600;line-height:1}.lang-toggle:hover{border-color:var(--accent)}.repo-picker{border:1px solid var(--border);cursor:pointer;color:var(--fg-muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:6px;min-width:110px;max-width:180px;padding:.2rem .5rem;font-family:inherit;font-size:.78rem;line-height:1;overflow:hidden}.repo-picker:hover{border-color:var(--fg-muted)}.user-menu{position:relative}.user-menu-trigger{border:1px solid var(--border);font:inherit;color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.35rem;max-width:160px;padding:.5rem .65rem;font-size:.9rem;line-height:1.2;display:inline-flex}.user-menu-trigger:hover,.user-menu-trigger[aria-expanded=true]{border-color:var(--fg-muted);color:var(--fg)}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.user-menu-caret{opacity:.7;font-size:.7rem}.user-menu-popover{min-width:210px;max-width:calc(100vw - 2 * var(--page-gutter));background:var(--bg-card);border:1px solid var(--border-strong);z-index:100;border-radius:5px;flex-direction:column;gap:.05rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 10px 28px #0a142329}.user-menu-popover a,.user-menu-popover button{color:var(--fg);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;min-height:44px;padding:.5rem .7rem;font-size:.9rem;text-decoration:none;display:flex}.user-menu-popover a:hover,.user-menu-popover button:hover{background:var(--bg-subtle,#0000000a)}.user-menu-popover a.active{color:var(--accent)}.user-menu-value{color:var(--fg-muted);letter-spacing:.04em;font-size:.78rem}.user-menu-sep{background:var(--border);height:1px;margin:.35rem 0}main{min-width:0;padding-top:2rem;scroll-margin-top:8rem}main:focus{outline:none}.lesson-meta{color:var(--fg-muted);font-family:var(--font-sans);flex-wrap:wrap;align-items:center;gap:.45rem 1rem;font-size:.875rem;line-height:1.5;display:flex}.lesson-meta>*{overflow-wrap:anywhere;min-width:0}.list-heading{font-family:var(--font-serif);margin:0 0 1rem;font-size:1.6rem;font-weight:500}.list{flex-direction:column;gap:.75rem;display:flex}.card{color:var(--fg);background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem;text-decoration:none;transition:background .15s,border-color .15s;display:block}.card:hover{background:var(--bg-card-hover);border-color:var(--accent)}.card-meta{color:var(--fg-muted);text-transform:lowercase;gap:.75rem;margin-bottom:.5rem;font-size:.78rem;display:flex}.card-meta .topic{color:var(--accent)}.card-title{font-family:var(--font-serif);margin:0 0 .5rem;font-size:1.25rem;font-weight:500;line-height:1.3}.card-source{color:var(--fg-subtle);margin:0;font-size:.85rem}.card-review{border-style:dashed}.review-actions{gap:.5rem;margin-top:.75rem;display:flex}.reader{font-family:var(--font-serif)}.reader-header{font-family:var(--font-sans);justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.back{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-size:.9rem}.back:hover{color:var(--fg)}.reader-meta{color:var(--fg-muted);text-transform:lowercase;font-size:.78rem}.reader-meta .topic{color:var(--accent)}.reader h1{letter-spacing:-.01em;margin:0 0 1.5rem;font-size:2rem;font-weight:500;line-height:1.2}.source-event{font-family:var(--font-sans);color:var(--fg-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:4px;margin-bottom:1.5rem;padding:.6rem .8rem;font-size:.92rem}.source-event strong{color:var(--fg)}.source-ref{color:var(--fg-subtle);font-size:.85em}.body{font-size:1.1rem;line-height:1.75}.body p{margin:0 0 1rem}.body h2,.body h3,.body h4{font-family:var(--font-serif);margin:1.8rem 0 .6rem;font-weight:500}.body h2{font-size:1.4rem}.body h3{font-size:1.2rem}.body h4{color:var(--accent);font-size:1.05rem}.body code{font-family:var(--font-mono);background:var(--bg-card);border-radius:3px;padding:.1em .35em;font-size:.92em}.body pre{background:var(--bg-card);font-family:var(--font-mono);border-radius:6px;padding:.8rem 1rem;font-size:.85em;overflow-x:auto}.body pre code{background:0 0;padding:0}.body a{color:var(--link);text-underline-offset:2px;text-decoration:underline}.body ul,.body ol{margin:0 0 1rem;padding-left:1.5rem}.body li{margin-bottom:.5rem}.citations,.next,.related-topics{font-family:var(--font-sans);border-top:1px solid var(--border);margin-top:2rem;padding-top:1.2rem}.citations h4,.next h4,.related-topics h4{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);margin:0 0 .6rem;font-size:.85rem}.citations ul{margin:0;padding:0;list-style:none}.citations li{word-break:break-all;margin-bottom:.3rem;font-size:.88rem}.citations a{color:var(--link);text-decoration:none}.citations a:hover{text-decoration:underline}.next ul{margin:0;padding:0;list-style:none}.next li{border-left:2px solid var(--border);margin-bottom:1rem;padding-left:1rem}.next li strong{color:var(--fg);font-size:1rem}.next li p{margin:.2rem 0 0;font-size:.9rem}.next-list .next-item{border-left:2px solid var(--border);margin-bottom:1rem;padding-left:1rem}.next-list .next-row{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.next-title{color:var(--fg);font-size:1rem;font-weight:600}.next-link{color:var(--fg);align-items:baseline;gap:.5rem;text-decoration:none;transition:color .15s;display:flex}.next-link:hover,.next-link:hover .next-title{color:var(--link)}.next-arrow{color:var(--link);font-size:1.1rem;transition:transform .15s}.next-link:hover .next-arrow{transform:translate(3px)}.next-list .next-item-link{border-left-color:var(--link)}.next-list .next-item-queued{border-left-color:var(--fg-muted);opacity:.85}.next-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.72rem}.related-list{margin:.4rem 0 0;padding:0;list-style:none}.related-item{border-left:2px solid var(--link);margin-bottom:.8rem;padding-left:1rem}.related-item p{margin:.2rem 0 0;font-size:.85rem}.btn-link{font:inherit;color:var(--link);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.88rem;text-decoration:none}.btn-link:hover{text-decoration:underline}.btn-link:disabled{color:var(--fg-muted);cursor:progress;text-decoration:none}.error-inline{color:#c44;margin:.3rem 0 0;font-size:.82rem}.spinner{border:2px solid var(--fg-muted);vertical-align:-.1em;border-top-color:#0000;border-radius:50%;width:.8em;height:.8em;margin-right:.4em;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.body blockquote{border-left:1px solid var(--border-strong);color:var(--fg-muted);margin:1rem 0;padding:.4rem 0 .4rem 1rem;font-style:italic}.callout{border:1px solid var(--callout-accent,var(--border));background:var(--callout-bg,var(--bg-card));border-radius:4px;margin:1.25rem 0;padding:.85rem 1rem;font-style:normal;display:block}.callout p{margin:.25rem 0 0}.callout-title{letter-spacing:.06em;text-transform:uppercase;color:var(--callout-accent,var(--accent));font-size:.78rem;font-weight:600}.callout-key,.callout-tip{--callout-accent:var(--link);--callout-bg:var(--bg-card)}.callout-warn{--callout-accent:var(--warning);--callout-bg:var(--warning-surface)}.callout-remember{--callout-accent:var(--accent);--callout-bg:var(--bg-card)}.body .topic-link{color:var(--accent);border-bottom:1px dashed var(--accent);cursor:pointer;font:inherit;background:0 0;padding:0;text-decoration:none}.body .topic-link:hover{border-bottom-style:solid}.body .topic-link-missing{color:var(--fg-muted);border-bottom:1px dotted var(--fg-muted);cursor:pointer;font:inherit;background:0 0;padding:0 .15em}.body .topic-link-missing:after{content:" ✨";opacity:.7;font-size:.85em}.body .topic-link-missing:hover{color:var(--accent);border-bottom-color:var(--accent)}.body .topic-link-missing:disabled{cursor:progress;opacity:.6}.body .topic-link-unresolved{color:var(--fg-muted);border-bottom:1px dotted var(--fg-subtle)}.body .topic-link-unavailable{color:var(--fg-muted);border-bottom:1px dotted var(--fg-subtle);cursor:help}.list-heading-muted{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2rem;font-size:.95rem}.card-queued{opacity:.85;background:var(--bg-card);color:inherit;font:inherit;text-align:left;border-style:dashed;width:100%;display:block}.card-queued:not(:disabled){cursor:pointer}.card-queued:not(:disabled):hover{opacity:1;border-color:var(--accent)}.card-queued:disabled{cursor:progress;box-shadow:none;transform:none}.card-queued .next-badge .spinner{vertical-align:-.1em;width:.7em;height:.7em;margin-right:.25rem}.card-hint{margin:.5rem 0 0;font-size:.8rem}.learning-path-intro{margin:-.25rem 0 1rem;font-size:.9rem}.recommendation-reason{color:var(--accent);font-size:.8rem;font-family:var(--font-sans);align-items:baseline;gap:.35em;margin:.4rem 0 0;display:flex}.recommendation-icon{opacity:.8;flex-shrink:0;font-size:.65rem}.reader-actions{border-top:1px solid var(--border);font-family:var(--font-sans);gap:.75rem;margin-top:2rem;padding-top:1.5rem;display:flex}.btn-primary,.btn-secondary{font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid;border-radius:4px;justify-content:center;align-items:center;gap:.65rem;max-width:100%;min-height:44px;padding:.6rem 1.2rem;font-size:.95rem;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent-surface);color:var(--accent-ink);border-color:var(--accent-surface);font-weight:700}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{color:var(--fg);border-color:var(--border-strong)}.btn-secondary:hover{border-color:var(--fg-muted)}.feedback-group{gap:.4rem;margin-left:auto;display:inline-flex}.btn-feedback{font-family:var(--font-sans);border:1px solid var(--border);cursor:pointer;color:var(--fg);background:0 0;border-radius:6px;min-width:44px;padding:.5rem .7rem;font-size:1rem;line-height:1}.btn-feedback:hover{border-color:var(--fg-muted)}.btn-feedback-active{border-color:var(--accent-surface);background:var(--accent-surface);color:var(--accent-ink)}.about{font-family:var(--font-serif);max-width:70ch;margin-inline:auto}.about h2{margin:0 0 1rem;font-size:1.8rem;font-weight:500}.about h3{color:var(--accent);margin:1.5rem 0 .5rem;font-size:1.2rem;font-weight:500}.about ul{padding-left:1.5rem}.about li{margin-bottom:.4rem}.admin{font-family:var(--font-serif);max-width:720px;margin-inline:auto}.admin h2{margin:0 0 .5rem;font-size:1.8rem;font-weight:500}.admin h3{color:var(--accent);margin:2rem 0 .75rem;font-size:1.1rem;font-weight:500}.admin-invite form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.admin-invite label{color:var(--fg-muted);margin-bottom:.3rem;font-size:.8rem;display:block}.admin-invite input{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;flex:220px;padding:.55rem .75rem;font-family:inherit;font-size:1rem}.admin-invite input:focus{outline:2px solid var(--accent);outline-offset:1px}.admin-invite .error{text-align:left;margin-top:.5rem;padding:0}.admin-autogen-form{grid-template-columns:max-content 1fr;align-items:center;gap:.5rem 1rem;max-width:32rem;margin:.5rem 0 .75rem;display:grid}.admin-autogen-toggle{color:var(--fg);grid-column:1/-1;align-items:center;gap:.6rem;margin-bottom:.4rem;font-weight:500;display:flex}.admin-autogen-toggle input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.admin-autogen-form label{color:var(--fg-muted);margin:0;font-size:.85rem}.admin-autogen-form select,.admin-autogen-form input[type=number]{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;min-width:6rem;max-width:12rem;padding:.45rem .65rem;font-family:inherit;font-size:.95rem}.admin-autogen-form select:disabled,.admin-autogen-form input[type=number]:disabled{opacity:.55;cursor:not-allowed}.admin-autogen-form button[type=submit]{grid-column:1/-1;justify-self:start;margin-top:.4rem}.share-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.share-row{border:1px solid var(--border);border-radius:6px;align-items:center;gap:1rem;padding:.6rem .85rem;display:flex}.share-row a{color:var(--fg);font-weight:500;text-decoration:none}.share-row a:hover{color:var(--accent);text-decoration:underline}.share-row>.muted{flex:1;font-size:.85rem}.share-row button{flex-shrink:0}.share-list-revoked .share-row{opacity:.7}.admin-revoked{margin-top:1.5rem}.admin-revoked summary{cursor:pointer;color:var(--fg-muted);margin-bottom:.75rem;font-size:.9rem}.loading,.error,.empty{text-align:center;color:var(--fg-muted);padding:4rem 1rem}.error{color:var(--error)}.empty h2{font-family:var(--font-serif);color:var(--fg);margin:0 0 .5rem;font-size:1.5rem}.muted{color:var(--fg-muted)}.empty h1{color:var(--fg);margin:0 0 .7rem;font-size:2rem}@media (width<=1000px){.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand account""navigation navigation";row-gap:.55rem;padding:.7rem 0 .3rem}.topbar nav{gap:1.8rem}}@media (width<=600px){.topbar{column-gap:.5rem}.topbar nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;font-size:.875rem;display:grid}.topbar nav a{padding:.4rem .1rem}.brand-name{gap:.4rem;font-size:1.4rem}.brand-mark{width:24px;height:24px;padding:4px}.brand{gap:.3rem}.brand-repo{max-width:135px;font-size:.8rem}.brand-sep{font-size:.85rem}.topbar-right{gap:.35rem}.user-menu-trigger{max-width:90px;padding-inline:.45rem;font-size:.8rem}.quota-badge{padding-inline:.4rem;font-size:.75rem}main{padding-top:1.25rem}.review-actions,.reader-actions{flex-wrap:wrap}.share-row{flex-wrap:wrap;gap:.65rem}}.add-repo-link{font-family:var(--font-sans);color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:6px;padding:.35rem .7rem;font-size:.85rem;text-decoration:none}.add-repo-link:hover,.add-repo-link.active{background:var(--accent);color:var(--bg)}.quota-badge{font-family:var(--font-sans);font-variant-numeric:tabular-nums;background:var(--bg-subtle,#0000000d);color:var(--fg-muted);border:1px solid var(--border);border-radius:999px;padding:.25rem .6rem;font-size:.8rem}.quota-badge.warn{color:var(--warning);border-color:var(--warning);background:var(--warning-surface)}.quota-badge.danger{color:var(--error);border-color:var(--error);background:var(--error-surface)}.page-narrow{max-width:640px;margin:0 auto;padding:2rem 1rem}.add-repo-form{flex-direction:column;gap:1.25rem;margin-top:1.5rem;display:flex}.field{font-family:var(--font-sans);flex-direction:column;gap:.4rem;display:flex}.field-label{color:var(--fg);font-size:.85rem;font-weight:600}.field input{border:1px solid var(--border);background:var(--bg);color:var(--fg);font-size:1rem;font-family:var(--font-sans);border-radius:6px;padding:.6rem .8rem}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.field-hint{color:var(--fg-muted);font-size:.8rem}.form-error{background:var(--error-surface);border:1px solid var(--error);color:var(--error);font-family:var(--font-sans);border-radius:4px;padding:.6rem .9rem;font-size:.9rem}.form-actions{gap:.75rem;margin-top:.5rem;display:flex}.empty-state{text-align:center;max-width:540px;font-family:var(--font-sans);margin:4rem auto}.empty-state h2{font-family:var(--font-serif);margin:0 0 1rem;font-size:1.8rem}.empty-state p{margin:.6rem 0;line-height:1.55}.empty-state .btn-primary{margin-top:1.2rem}.small{font-size:.85rem}.topic-atlas{padding:0 0 2rem}.topic-atlas-header{margin-bottom:1.75rem}.topic-atlas-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;display:flex}.topic-atlas-header h1{font-family:var(--font-sans);letter-spacing:-.035em;margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:600}.topic-atlas-header>p{max-width:65ch}.topic-atlas-mode-toggle{border:1px solid var(--border);background:var(--bg-card);border-radius:4px;padding:.2rem;display:inline-flex}.atlas-mode-btn{color:var(--fg-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:2px;padding:.3rem .7rem;font-size:.84rem}.atlas-mode-btn.active{background:var(--accent-surface);color:var(--accent-ink);font-weight:700}.topic-atlas-stats{flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:.75rem;display:flex}.atlas-stat{color:var(--fg-muted);align-items:center;gap:.3rem;padding:0;font-size:.875rem;display:inline-flex}.atlas-stat strong{color:var(--fg);font-weight:600}.topic-atlas-quick-list{gap:.45rem;margin-top:.75rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.atlas-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--fg-muted);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;padding:.33rem .62rem;font-size:.8rem}.atlas-chip.active,.atlas-chip:hover{color:var(--fg);border-color:var(--accent)}.topic-atlas-canvas{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:1rem;padding:.75rem;display:grid;position:relative;overflow:hidden}@media (width>=880px){.topic-atlas-canvas{grid-template-columns:minmax(0,1fr) minmax(220px,280px)}}.topic-atlas-viewport{-webkit-overflow-scrolling:touch;overflow:auto}.topic-atlas-canvas svg{touch-action:pan-x pan-y pinch-zoom;width:100%;min-width:680px;height:auto;display:block}.atlas-edge{stroke:var(--border);stroke-width:1px;transition:stroke .12s,stroke-width .12s,opacity .12s}.atlas-edge.active{stroke:var(--accent);stroke-width:1.5px}.atlas-node{transition:opacity .12s,transform .12s}.atlas-node.dimmed{opacity:1}.atlas-node.dimmed circle{stroke:var(--border-strong)}.atlas-node circle{fill:var(--bg-card);stroke:var(--accent);stroke-width:1.5px;transition:fill .12s,stroke-width .12s}.atlas-node:hover circle,.atlas-node:focus-visible circle{fill:var(--bg-card-hover);stroke-width:2.5px}.atlas-node-queued circle{stroke-dasharray:3 3;opacity:.7}.atlas-node-count{fill:var(--fg);pointer-events:none;font-size:.85rem;font-weight:600}.atlas-node-label{fill:var(--fg-muted);pointer-events:none;font-size:.7rem}.atlas-node.has-primary{cursor:pointer}.topic-atlas-detail{border-left:1px solid var(--border);min-width:0;padding-left:1rem}@media (width<=879px){.topic-atlas-detail{border-left:none;border-top:1px solid var(--border);padding-top:1rem;padding-left:0}.topic-atlas-canvas svg{min-width:620px}}.topic-atlas-detail h3{font-family:var(--font-serif);margin:0 0 .5rem;font-size:1.1rem}.topic-atlas-detail ul{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.topic-atlas-detail li{font-size:.9rem}.topic-atlas-list{border-top:1px solid var(--border)}.topic-atlas-list-item{border-bottom:1px solid var(--border);grid-template-columns:minmax(150px,.65fr) minmax(0,1.35fr);gap:1.5rem;min-width:0;padding:1.5rem 0;display:grid}.topic-atlas-list-head{min-width:0}.topic-atlas-list-head h3{font-family:var(--font-serif);overflow-wrap:anywhere;margin:0;font-size:1.15rem}.topic-atlas-pill{color:var(--fg-muted);white-space:nowrap;margin-top:.5rem;font-size:.85rem;display:inline-block}.topic-atlas-list-item ul{flex-direction:column;gap:.33rem;margin:0;padding:0;list-style:none;display:flex}.topic-atlas-list-item li,.topic-atlas-list-item .btn-link{overflow-wrap:anywhere;min-width:0}.topic-create{margin-top:1.25rem}.topic-create>summary{min-height:44px;color:var(--link);cursor:pointer;align-items:center;display:inline-flex}.topic-create>summary:before{content:"+";margin-right:.6rem;font-size:1.25rem}.topic-create[open]>summary:before{content:"−"}@media (width<=600px){.topic-atlas-list-item{grid-template-columns:minmax(0,1fr);gap:.65rem}.topic-atlas-list-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.topic-atlas-pill{margin-top:0}}.atlas-node-ghost{cursor:pointer}.atlas-node-ghost circle{fill:#0000;stroke:var(--fg-subtle);stroke-width:1.5px;stroke-dasharray:4 3;opacity:.6}.atlas-node-ghost:hover circle,.atlas-node-ghost:focus-visible circle{stroke:var(--accent);opacity:.9}.atlas-node-ghost .atlas-node-label{fill:var(--fg-subtle);font-style:italic}.atlas-generate-form{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.atlas-generate-input{background:var(--bg-card);border:1px solid var(--border);min-width:0;color:var(--fg);font:inherit;border-radius:6px;flex:1;padding:.4rem .7rem;font-size:.875rem}.atlas-generate-input::placeholder{color:var(--fg-subtle)}.atlas-generate-input:focus{border-color:var(--accent);outline:none}.atlas-generate-btn{white-space:nowrap;padding:.4rem .85rem;font-size:.875rem}.atlas-ghost-generate{margin-top:.75rem}.atlas-generate-error{margin-top:.4rem;font-size:.82rem}.topic-atlas-suggested{margin-top:1.5rem}.topic-atlas-suggested-heading{font-family:var(--font-serif);color:var(--fg-muted);margin:0 0 .75rem;font-size:1rem}.topic-atlas-list-item-ghost{border-style:dashed}.topic-atlas-pill-ghost{color:var(--fg-subtle);border-color:var(--fg-subtle);font-style:italic}.ask-more{border-top:1px solid var(--border);margin-top:2rem;padding-top:1.25rem}.ask-more-head{align-items:center;margin-bottom:.5rem;display:flex}.ask-more-head h4{font-family:var(--font-serif);margin:0;font-size:1.15rem}.ask-more-hint{margin:0 0 .75rem}.ask-more-log{flex-direction:column;gap:.5rem;max-height:50vh;margin-bottom:.75rem;padding:.25rem 0;display:flex;overflow-y:auto}.ask-more-empty{margin:0}.ask-bubble{border:1px solid var(--border);white-space:pre-wrap;word-wrap:break-word;border-radius:12px;max-width:90%;padding:.6rem .8rem;font-size:.95rem;line-height:1.45}.ask-bubble-user{background:var(--bg-card-hover);border-color:var(--accent);align-self:flex-end}.ask-bubble-assistant{background:var(--bg-card);align-self:flex-start}.ask-bubble-pending{color:var(--fg-muted);align-items:center;gap:.5rem;font-style:italic;display:flex}.ask-more-form{align-items:flex-end;gap:.5rem;display:flex}.ask-more-form textarea{resize:vertical;border:1px solid var(--border);background:var(--bg);min-height:2.5rem;color:var(--fg);border-radius:8px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.95rem;line-height:1.4}.ask-more-form textarea:focus{border-color:var(--accent);outline:none}.ask-more-form button{flex-shrink:0}.lesson-feedback{border-top:1px solid var(--border);font-family:var(--font-sans);margin-top:2rem;padding-top:1.5rem}.lesson-feedback h4{margin:0 0 .6rem;font-size:1rem}.rating-stars{align-items:center;gap:.2rem;margin-bottom:.75rem;display:flex}.btn-star{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;padding:.15rem .2rem;font-size:1.3rem;line-height:1}.btn-star:hover:not(:disabled),.btn-star-active{color:var(--accent)}.btn-star:disabled{cursor:default;opacity:.6}.rating-value{margin-left:.4rem}.feedback-form{align-items:flex-end;gap:.5rem;margin-bottom:.5rem;display:flex}.feedback-form textarea{resize:vertical;border:1px solid var(--border);background:var(--bg);min-height:2.5rem;color:var(--fg);border-radius:8px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.95rem;line-height:1.4}.feedback-form textarea:focus{border-color:var(--accent);outline:none}.feedback-form button{flex-shrink:0}.settings-section{margin:2rem 0 2.5rem}.settings-section-head h2{font-family:var(--font-serif);margin:0 0 .5rem;font-size:1.4rem}.settings-section-head p{margin:0 0 1rem;line-height:1.55}.settings-token-card{border:1px solid var(--border);background:var(--bg-elev,var(--bg));border-radius:8px;flex-direction:column;gap:.75rem;padding:1rem 1.2rem;display:flex}.settings-token-status{align-items:center;gap:.6rem;display:flex}.status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.status-ok{background:var(--success)}.settings-token-scopes{font-family:var(--font-mono,monospace)}.settings-token-form{border:1px dashed var(--border);border-radius:8px;flex-direction:column;gap:1rem;padding:1rem 1.2rem;display:flex}.form-ok{background:var(--success-surface);border:1px solid var(--success);color:var(--success);font-family:var(--font-sans);border-radius:4px;padding:.6rem .9rem;font-size:.9rem}.link-button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.add-repo-tabs{border-bottom:1px solid var(--border);gap:.5rem;margin:1rem 0 1.5rem;display:flex}.add-repo-tab{font:inherit;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.6rem 1rem}.add-repo-tab.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.add-repo-tab:hover{color:var(--fg)}.add-repo-browse{flex-direction:column;gap:1rem;display:flex}.add-repo-filter{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.add-repo-filter input[type=search]{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;flex:1;padding:.55rem .8rem;font-size:.95rem}.repo-list{border:1px solid var(--border);border-radius:8px;max-height:60vh;margin:0;padding:0;list-style:none;overflow-y:auto}.repo-list-item{border-bottom:1px solid var(--border)}.repo-list-item:last-child{border-bottom:none}.repo-list-item label{cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.repo-list-item input[type=checkbox]{flex-shrink:0;margin-top:.2rem}.repo-list-item.disabled label{cursor:not-allowed;opacity:.55}.repo-list-item.selected{background:#0080ff0f}.repo-list-item:hover:not(.disabled){background:#7f7f7f0f}.repo-list-meta{flex-direction:column;gap:.3rem;min-width:0;display:flex}.repo-list-name{flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:600;display:flex}.repo-list-desc{line-height:1.4}.repo-list-stats{flex-wrap:wrap;gap:.8rem;display:flex}.badge{border:1px solid var(--border);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:500;display:inline-block}.badge-private{color:var(--warning);border-color:var(--warning);background:var(--warning-surface)}.badge-ok{color:var(--success);border-color:var(--success);background:var(--success-surface)}.badge-warn{color:var(--error);border-color:var(--error);background:var(--error-surface)}:where(.field input,.admin-invite input,.admin-autogen-form select,.admin-autogen-form input[type=number],.atlas-generate-input,.add-repo-filter input[type=search]){border-color:var(--border-strong);min-height:44px}:where(input,textarea)::placeholder{color:var(--fg-subtle);opacity:1}.rating-stars{flex-wrap:wrap}.page-narrow,.admin,.about,.empty-state{min-width:0}.page-narrow{width:100%;padding-inline:0}.btn-link,.link-button{min-height:44px}.app-shell :is(a,button,input,select,textarea,summary,[role=button]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
