/* Portal components use portal.css. Only the preserved article needs adapters. */
/* Retired navigation must never paint while the shared shell scripts load.
   Keep its nodes for section links and legacy canvas initialization. */
.layout > aside:is(.toc,.sidebar) { display:none!important; }
html:root { --bg:var(--paper); --bg-soft:var(--accent-soft); --bg-code:var(--accent-soft); --fg:var(--ink); --fg-soft:var(--muted); --fg-muted:var(--muted); --border:var(--line); --panel:var(--surface); --blue:var(--ink); --blue-soft:var(--accent-soft); --green:var(--ink); --green-soft:var(--accent-soft); --orange:var(--ink); --orange-soft:var(--accent-soft); --thm-bg:var(--surface); --thm-border:var(--ink); --def-bg:var(--surface); --def-border:var(--ink); --ex-bg:var(--surface); --ex-border:var(--ink); --warn-bg:var(--surface); --warn-border:var(--ink); --play-bg:var(--surface); --play-border:var(--ink); }
body:is(.portal-detail,.lesson-page) { font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; background:var(--paper); color:var(--ink); }
.portal-detail [hidden] { display:none!important; }
.portal-detail > .layout { display:none; }
.portal-detail-sidebar { width:296px; height:100vh; position:fixed; top:0; left:0; padding:28px 18px 18px; background:var(--surface)!important; color:var(--ink)!important; box-shadow:none!important; border-right:1px solid var(--line)!important; font:inherit; overflow:hidden; }
.portal-detail-sidebar .brand { display:flex; flex-shrink:0; align-items:center; gap:11px; padding:0 9px 30px; font-size:14px; color:var(--ink)!important; text-decoration:none; }
.portal-detail-sidebar .brand strong { display:block; }
.portal-detail-sidebar nav { margin:0; min-height:0; overflow:auto; }
.portal-detail-sidebar .nav-module-toggle { width:100%; color:var(--ink)!important; background:transparent!important; border:0!important; font:12px/1.55 Inter,system-ui,sans-serif; padding:9px 8px; }
.portal-detail-sidebar .nav-module-toggle:hover { background:var(--accent-soft)!important; }
.portal-detail-sidebar .nav-lessons a { color:var(--muted)!important; background:transparent!important; border-radius:0; font:11px/1.55 Inter,system-ui,sans-serif; padding:5px 8px; }
.portal-detail-sidebar .nav-lessons a:hover { color:var(--ink)!important; background:var(--accent-soft)!important; }
.portal-detail-sidebar .nav-lessons a[aria-current="page"] { color:var(--ink)!important; background:var(--accent-soft)!important; border-left:2px solid var(--ink); font-weight:700; }
.portal-detail-sidebar .brand-mark { flex-shrink:0; }
.portal-detail-sidebar .nav-lessons a { white-space:normal; }
.portal-detail-sidebar .sidebar-heading { margin-top:16px; }
:is(.portal-detail,.lesson-page) .detail-toolbar { margin:0 0 0 296px; padding:0 7vw; max-width:1300px; height:72px; display:flex; align-items:center; justify-content:space-between; font:12px/1.5 Inter,system-ui,sans-serif; }
.detail-toolbar a { color:var(--ink); text-decoration:none; font-weight:700; }
.detail-tools { display:flex; gap:8px; }
.detail-tools .article-colab { display:inline-flex; align-items:center; justify-content:center; width:auto; min-height:36px; padding:7px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--ink); font:600 13px/1.4 system-ui,sans-serif; text-decoration:none; white-space:nowrap; }
.detail-tools .article-colab:disabled { color:var(--muted); cursor:not-allowed; }
.detail-tools .article-colab:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.detail-content a.colab-btn { background:var(--ink); color:var(--paper); }
.detail-tools button { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; padding:7px; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; cursor:pointer; }
:is(.portal-detail,.lesson-page) main.detail-content { margin:0 0 0 296px; width:calc(100% - 296px); max-width:1300px; padding:32px 7vw 100px!important; min-width:0; color:var(--ink); }
.detail-content h1 { font:700 clamp(38px,5vw,68px)/1.06 Georgia,serif; letter-spacing:-.045em; color:var(--ink); }
.detail-content h2 { font:600 31px/1.2 Georgia,serif; color:var(--ink); border:0; padding:0; margin:32px 0 18px; }
.detail-content h3 { font:600 23px/1.3 Georgia,serif; color:var(--ink); }
.detail-content h4 { color:var(--ink); }
.detail-content p,.detail-content li { line-height:1.8; max-width:78ch; }

.reading-guide h3 { margin:0 0 12px; font:600 22px/1.3 Georgia,serif; }
.reading-guide p { margin:10px 0; }
.reading-guide summary,.detail-content details summary { cursor:pointer; font-weight:650; padding:10px 0; }
.reading-guide details { margin-top:14px; border-top:1px solid var(--line); }

:is(.portal-detail,.lesson-page) .search { background:var(--accent-soft); }
.detail-content > section { margin:28px 0; scroll-margin-top:24px; }

.detail-content a { color:var(--ink); }
.detail-content code { background:var(--accent-soft); color:var(--ink); }
.detail-content pre { background:#181818; color:#f5f5f2; border:1px solid #444; padding:20px; border-radius:12px; overflow:auto; }
.detail-content pre code { background:transparent; color:inherit; }
.detail-content table { position:relative; width:100%; border-collapse:collapse; display:block; overflow:auto; }
.detail-content td,.detail-content th { border:1px solid var(--line); padding:10px; }
.detail-content .katex-display { overflow-x:auto; overflow-y:hidden; }
.detail-content canvas,.detail-content iframe { max-width:100%; }
:root { --chart-accent:#315f80; }
.dark { --chart-accent:#8fc4e8; }
.article-visual-scroll { max-width:100%; overflow-x:auto; margin-block:20px; overscroll-behavior-x:contain; }
.article-visual-scroll:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.article-visual-scroll > svg,.detail-content .article-visual-scroll > canvas { display:block; min-width:640px; height:auto; }
.detail-content .flow .node { position:static; width:auto; height:auto; min-width:110px; border-radius:12px; padding:16px; flex:1; background:var(--surface); color:var(--ink); }
.detail-views { display:flex; gap:10px; margin-bottom:28px; }
.detail-views [aria-current="page"] { background:var(--ink); color:var(--surface)!important; }
.portal-detail :focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.guide-toggle { position:fixed; top:18px; right:18px; z-index:8; border:1px solid var(--line); background:var(--surface); color:var(--ink); padding:9px 12px; border-radius:10px; cursor:pointer; box-shadow:var(--shadow-small); font:600 12px/1.4 system-ui,sans-serif; }
.guide-panel { position:fixed; right:0; top:0; bottom:0; width:236px; padding:80px 18px 24px; overflow:auto; background:var(--surface); color:var(--ink); border-left:1px solid var(--line); z-index:7; box-shadow:var(--shadow-small); }
.guide-panel h2 { font:600 22px/1.3 Georgia,serif; margin:0 0 20px; }
.guide-panel a { display:block; color:var(--muted); text-decoration:none; font:12px/1.6 system-ui,sans-serif; padding:8px 4px; border-bottom:1px solid var(--line); }
.guide-panel a:hover { color:var(--ink); }
.portal-detail .detail-toolbar { padding-right:180px; }
@media(min-width:1200px) {
  .portal-detail.guide-open main.detail-content { width:calc(100% - 532px); padding-left:4vw!important; padding-right:4vw!important; }
  .portal-detail.guide-open .detail-toolbar { margin-right:236px; padding-right:4vw; }
  .portal-detail.guide-open.rail-collapsed main.detail-content { width:calc(100% - 236px); }
}
@media(max-width:850px) { .portal-detail main.detail-content { margin:0; width:100%; padding:24px 22px 70px!important; } .portal-detail .detail-toolbar { margin:0; padding:0 22px 0 64px; } .detail-content>section { padding:20px; } }
@media(max-width:850px) { .portal-detail .detail-toolbar { height:120px; padding-top:60px; padding-left:22px; } }
