:root{color-scheme:light;--ink:#172431;--muted:#526274;--accent:#344ca1;--paper:#fff;--bg:#f3f5fa;--border:#dce3ec}
*{box-sizing:border-box}
html{scroll-padding-top:20px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--accent)}
.shell{max-width:1200px;margin:auto;padding:24px 22px 60px}
.hero{background:#182b58;color:#fff;border-radius:18px;padding:24px 30px}
.hero small{text-transform:uppercase;letter-spacing:.1em;color:#c5d2ff}
.hero h1{font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.2;margin:.35em 0}
.hero p{max-width:740px;margin:.5em 0}
.reader-search-bar{position:sticky;top:0;z-index:10;margin-top:12px;padding:10px 12px 8px;border:1px solid var(--border);border-radius:12px;background:#f3f5faf2;box-shadow:0 5px 16px #17243118;backdrop-filter:blur(10px)}
.reader-search-wrap{position:relative;max-width:760px}
.reader-search-wrap>span{position:absolute;left:13px;top:8px;color:var(--muted);font-size:1.2rem}
#reading-search{width:100%;height:42px;padding:0 14px 0 40px;border:1px solid var(--border);border-radius:7px;background:var(--paper);color:var(--ink);font:inherit;outline:none}
#reading-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #dce4ff}
.reader-search-help{margin:5px 2px 0;color:var(--muted);font-size:.78rem;line-height:1.4}
.reader-search-results{display:none;position:absolute;z-index:30;top:calc(100% + 7px);left:0;right:0;max-height:min(520px,70vh);overflow-y:auto;padding:7px;border:1px solid var(--border);border-radius:9px;background:var(--paper);box-shadow:0 18px 42px #1724312e}
.reader-search-results.open{display:block}
.search-summary{padding:7px 9px 9px;color:var(--muted);font-size:.78rem}
.search-result{width:100%;display:block;padding:10px;border:0;border-top:1px solid var(--border);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.search-result:hover,.search-result:focus{background:#edf2ff;outline:none}
.search-result strong{display:block;margin-bottom:3px;color:var(--accent);font-size:.78rem}
.search-result small{display:block;color:var(--muted);font-size:.8rem;line-height:1.45}
.reader-search-empty{padding:28px 20px;border:1px dashed var(--border);border-radius:12px;background:var(--paper);color:var(--muted);text-align:center}
mark.search-term{padding:0 .08em;border-radius:2px;background:#ffe08a;color:#202632;box-shadow:0 0 0 2px #de9e184d;scroll-margin-top:110px}
.search-hit{animation:search-pulse 1.8s ease}
@keyframes search-pulse{0%,100%{box-shadow:none}20%,70%{box-shadow:0 0 0 4px #dce4ff}}
.layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start;margin-top:16px}
.layout main{min-width:0}
.toc{position:sticky;top:16px;z-index:2;max-height:calc(100vh - 32px);overflow-y:auto;background:#ffffffed;border:1px solid var(--border);border-radius:14px;padding:16px 12px;box-shadow:0 4px 14px #17243114}
.toc h2{font-size:1rem;margin:0 6px 2px}
.toc-status{margin:0 6px 12px;color:var(--muted);font-size:.82rem}
.toc-list{display:grid;gap:4px}
.toc a{display:block;padding:8px 10px;border-radius:8px;text-decoration:none;font-size:.9rem;line-height:1.35}
.toc a[aria-current="location"]{background:#e7ecff;color:#243c8e;font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}
.toc .practice-nav{background:#fff3ce;color:#664900;font-weight:750;box-shadow:inset 3px 0 0 #d19a00}
.toc .practice-nav[aria-current="location"]{background:#ffe8a3;color:#533c00;box-shadow:inset 3px 0 0 #a97600}
.toc a:hover,.toc a:focus-visible{background:#edf2ff;text-decoration:underline}
.chapter{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:16px;scroll-margin-top:20px}
.chapter h2{line-height:1.25;margin:0 0 12px}
.chapter p{margin:0 0 14px}
.chapter ul{margin:8px 0 0;padding-left:22px}
.chapter li{margin:7px 0}
.chapter-expanded{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}
.chapter-expanded>h3{margin:0 0 8px;font-size:1.28rem}
.reading-summary{color:var(--muted)}
.objectives{padding-left:22px;margin:8px 0 24px}
.coverage-grid,.concept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.coverage-item,.concept{min-width:0;background:#f8faff;border:1px solid var(--border);border-radius:10px;padding:18px}
.coverage-item h4,.concept h3{margin:0 0 8px;color:#263b77;font-size:1.08rem}
.coverage-item p,.concept p{margin:7px 0 10px}
.coverage-item .terms{font-size:.85rem;color:var(--muted);margin:10px 0 0}
.concept.wide{grid-column:1/-1}
.section-head{margin:0 0 16px}.section-head h2{font-size:1.35rem;margin:4px 0}
.section-kicker{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.detailed-ir .formula{overflow-x:auto;margin:10px 0;padding:10px 13px;background:#e9eefc;border-radius:7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.93rem}
.detailed-ir .table-wrap{overflow-x:auto;margin:12px 0}
.detailed-ir table{width:100%;min-width:530px;border-collapse:collapse;font-size:.9rem}
.detailed-ir th,.detailed-ir td{padding:9px 11px;text-align:left;vertical-align:top;border:1px solid var(--border)}
.detailed-ir th{background:#e9eefc}
.detailed-ir .note,.detailed-ir .tip,.detailed-ir .warning{margin:12px 0;padding:12px 14px;border-radius:7px;background:#edf2ff}
.detailed-ir .warning{background:#fff5e5}
.detailed-ir .figure-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detailed-ir .figure{margin:14px 0;border:1px solid var(--border);border-radius:9px;padding:10px;background:#fff}
.detailed-ir .figure img{display:block;max-width:100%;height:auto;margin:auto}
.detailed-ir figcaption{font-size:.85rem;color:var(--muted);margin-top:7px}
.detailed-ir .relation-band,.detailed-ir .pipeline{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin:12px 0}
.detailed-ir .relation-node,.detailed-ir .box{flex:1 1 140px;padding:12px;background:#edf2ff;border-radius:8px}
.detailed-ir .relation-arrow,.detailed-ir .arrow{align-self:center;color:var(--accent);font-weight:bold}
.detailed-ir details{margin:10px 0;padding:10px 14px;border:1px solid var(--border);border-radius:8px}
.detailed-ir summary{cursor:pointer;font-weight:650}
.detailed-ir code{padding:1px 4px;border-radius:4px;background:#e9eefc;font-size:.92em}
.bank-note{font-size:.84rem;color:var(--muted);margin:5px 0 0!important}
.chapter-exercises{margin-top:22px;padding:16px 18px;background:#f2f5fc;border-top:2px solid #d5def2;border-radius:8px}
.chapter-exercises h3{margin:0 0 6px}
.chapter-exercises ol{margin:6px 0 14px;padding-left:22px}
.practice-section{border-top:5px solid #d19a00}
.practice-boundary{margin:14px 0 18px;padding:13px 15px;border-left:4px solid #d19a00;border-radius:5px;background:#fff8df;color:#4f4321}
.practice-sources{margin:18px 0;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:#f8faff}
.practice-sources h3{margin:0 0 8px}
.practice-sources ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;padding-left:20px;margin:0}
.practice-sources li{margin:0}
.practice-sources span{display:block;color:var(--muted);font-size:.78rem}
.practice-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:22px 0 8px;padding:14px;border:1px solid var(--border);border-radius:10px;background:#f4f6fb}
.practice-filters label{display:grid;gap:5px;min-width:190px;color:var(--muted);font-size:.8rem;font-weight:700}
.practice-filters select,.practice-filters button{min-height:42px;padding:8px 11px;border:1px solid #bdc8d8;border-radius:7px;background:#fff;color:var(--ink);font:inherit}
.practice-filters button{cursor:pointer;color:var(--accent);font-weight:700}
.practice-filters select:focus,.practice-filters button:focus-visible{outline:3px solid #dce4ff;border-color:var(--accent)}
.practice-count{margin:0 0 14px!important;color:var(--muted);font-size:.88rem}
.practice-list{display:grid;gap:12px}
.practice-card{padding:18px;border:1px solid var(--border);border-radius:11px;background:#fff;scroll-margin-top:110px}
.practice-card[hidden]{display:none}
.practice-meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.practice-meta span{padding:3px 8px;border-radius:999px;background:#e9eefc;color:#263b77;font-size:.72rem;font-weight:700}
.practice-meta .caution-tag{background:#fff0d4;color:#784a00}
.practice-card h3{margin:0 0 8px;color:#263b77;font-size:1.05rem}
.practice-question{margin:0 0 12px!important}
.practice-card details{margin:0;padding:0;border:0}
.practice-card summary{padding:10px 12px;border-radius:7px;background:#edf2ff;color:#263b77;cursor:pointer;font-weight:700}
.practice-card details[open] summary{border-radius:7px 7px 0 0}
.practice-answer{padding:15px 14px 3px;border:1px solid #dce4f5;border-top:0;border-radius:0 0 7px 7px;background:#f9fbff}
.practice-answer h4{margin:0 0 5px;font-size:.84rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
.practice-answer p{margin:0 0 13px}
.practice-caution{padding:10px 12px;border-left:4px solid #d19a00;background:#fff8df;color:#594719}
.practice-link{display:inline-block;font-weight:650;text-underline-offset:3px}
.eyebrow{color:var(--accent);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}
.callout{background:#edf2ff;border-left:4px solid var(--accent);padding:12px 16px;border-radius:5px}
.release-notice{margin:0 0 16px;padding:18px 20px;background:#fff8e8;border:1px solid #ead8a5;border-radius:12px}
.release-notice h2{margin:4px 0 8px;font-size:1.18rem}
.release-notice p{margin:0 0 8px}
.release-notice a{font-weight:650;text-underline-offset:3px}
.footer{color:var(--muted);font-size:.85rem;padding-top:10px}
@media(max-width:680px){.shell{padding:16px}.hero{padding:22px}.reader-search-bar{position:static}.layout{display:block}.toc{position:static;max-height:none;margin-bottom:18px}.toc-list{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter{padding:20px}.coverage-grid,.concept-grid,.detailed-ir .figure-pair,.practice-sources ul{grid-template-columns:1fr}.practice-filters{align-items:stretch}.practice-filters label,.practice-filters button{width:100%}}
@media(prefers-reduced-motion:reduce){.search-hit{animation:none}html{scroll-behavior:auto}}
@media(max-width:480px){.toc-list{grid-template-columns:1fr}}
