.book{max-width:52rem;margin-inline:auto;padding-inline:1.2rem;position:relative;z-index:1}.book-actions{position:sticky;top:0;z-index:20;display:flex;gap:.6rem;align-items:center;justify-content:flex-end;padding:.7rem 0;background:linear-gradient(180deg,var(--bg) 70%,transparent)}.book-print{display:inline-flex;align-items:center;gap:.5rem;background:var(--cyan);color:var(--navy);font-weight:700;font-size:.9rem;border:none;border-radius:var(--radius-sm);padding:.6rem 1.1rem;cursor:pointer;text-decoration:none}.book-print:hover{background:var(--cyan-bright)}.book-back{color:var(--text-muted);font-size:.86rem;text-decoration:none;margin-right:auto}.book-back:hover{color:var(--cyan)}.book-cover{min-height:78vh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding-block:var(--space-3xl);border-bottom:1px solid var(--border-soft)}.book-cover-brand{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.book-cover-brand span{color:var(--cyan)}.book-cover h1{font-size:clamp(2.4rem,7vw,4rem);line-height:1.05;letter-spacing:-.02em;margin-block:var(--space-lg) var(--space-md)}.book-cover .sub{font-size:1.1rem;color:var(--text-muted);max-width:34rem;margin-inline:auto;line-height:1.55}.book-cover .meta{margin-top:var(--space-2xl);font-family:var(--font-mono);font-size:.82rem;color:var(--text-faint);display:flex;flex-direction:column;gap:.25rem}.book-cover .meta b{color:var(--cyan-dim);font-weight:600}.book-cover-rule{width:64px;height:3px;background:var(--cyan);margin:var(--space-lg) auto 0;border-radius:2px}.book-intro{max-width:46rem;margin-inline:auto;padding-block:var(--space-2xl);border-bottom:1px solid var(--border-soft)}.book-intro h2{font-size:1.6rem;letter-spacing:-.01em;margin-bottom:var(--space-md)}.book-intro p{color:var(--text-muted);line-height:1.75}.book-intro-lead{font-size:1.08rem;color:var(--text)}.book-intro p+p{margin-top:.9em}.book-intro strong{color:var(--text);font-weight:700}.book-intro em{font-style:italic;color:var(--text)}.book-intro-sign{margin-top:var(--space-lg);color:var(--cyan-dim);font-size:.85rem}.book-toc{padding-block:var(--space-2xl);border-bottom:1px solid var(--border-soft)}.book-toc h2{font-size:1.5rem;margin-bottom:var(--space-lg)}.book-part-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--cyan);margin:var(--space-lg) 0 .5rem}.book-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.book-toc a{display:flex;align-items:baseline;gap:.7rem;text-decoration:none;padding:.3rem .2rem;border-radius:5px;color:var(--text-muted)}.book-toc a:hover{color:var(--cyan);background:var(--cyan-glow)}.book-toc .num{font-family:var(--font-mono);font-size:.8rem;color:var(--violet);min-width:1.8rem}.book-toc .dots{flex:1;border-bottom:1px dotted var(--border);transform:translateY(-3px)}.book-toc-pg{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);min-width:1.4rem;text-align:right}.book-toc-pg:empty{display:none}.book-chapter{padding-block:var(--space-3xl) var(--space-2xl);border-bottom:1px solid var(--border-soft)}.book-chapter:last-child{border-bottom:none}.book-ch-head{margin-bottom:var(--space-lg)}.book-ch-part{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--cyan-dim)}.book-ch-num{font-family:var(--font-mono);font-size:3rem;font-weight:800;color:var(--violet);line-height:1;opacity:.9}.book-ch-title{font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:-.01em;margin-top:.3rem}.book-ch-lead{color:var(--text-muted);font-size:1.02rem;line-height:1.6;margin-top:.6rem;max-width:46rem}.book-ch-tools{margin-top:var(--space-md);font-size:.82rem;color:var(--text-faint)}.book-ch-tools a{color:var(--cyan);text-decoration:none}.book-ch-tools a:hover{text-decoration:underline}.book-ch-qr{display:none;align-items:center;gap:.75rem;margin-top:var(--space-md)}.book-ch-qr-code{flex:0 0 auto;width:84px;height:84px;background:#fff;padding:5px;border:1px solid #dbe2ec;border-radius:6px}.book-ch-qr-code svg{width:100%;height:100%;display:block}.book-ch-qr-txt{font-size:.72rem;line-height:1.35;color:var(--text-faint);max-width:15rem}.book.paper .book-ch-qr{display:flex}.book-chapter .g-body{margin-top:var(--space-lg)}.book-chapter .g-body h2{margin-top:1.8em}.book-end{text-align:center;padding-block:var(--space-2xl);color:var(--text-faint);font-size:.9rem}.book-end b{color:var(--cyan)}.book-end-ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;color:var(--cyan)}.book-end-ico svg{width:100%;height:100%}.book .data-table{table-layout:auto;width:100%;font-size:.82rem}.book .data-table th,.book .data-table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:top}@media print{.book .table-wrap{overflow:visible}}@page{margin:16mm 14mm}@media print{:root{color-scheme:light}html,body{background:#fff!important;background-image:none!important}body:before,body:after{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.hdr,.book-actions,footer,#sr,.book-back,.g-progress{display:none!important}.book{max-width:none;margin:0;padding:0;--bg: #fff;--bg-elev: #f2f5fa;--bg-card: #fff;--text: #14213d;--text-muted: #45526b;--text-faint: #6a778c;--border: #c9d3e2;--border-soft: #dbe2ec;--cyan: #0b7d75;--cyan-dim: #0a6f68;--violet: #6d4fd0}.book-cover{min-height:94vh;page-break-after:always;break-after:page;border:none}.book-intro{page-break-after:always;break-after:page;border:none}.book-intro,.book-intro p,.book-intro h2{break-inside:avoid}.book-toc{page-break-after:always;break-after:page;border:none}.book-chapter{page-break-before:always;break-before:page;border:none;padding-block:0 var(--space-lg)}.book-chapter:first-of-type{page-break-before:avoid}.book-ch-qr{display:flex}.g-fig,.g-tip,.g-warn,.g-note,.g-steps>li,table,.term,.book-ch-qr{break-inside:avoid;page-break-inside:avoid}h1,h2,h3{break-after:avoid;page-break-after:avoid}.book-ch-head{break-after:avoid}a{color:var(--cyan)!important;text-decoration:none}.g-body{font-size:10.5pt}}body:has(.book.paper){background:#fff!important;background-image:none!important}body:has(.book.paper):before{display:none!important}.book.paper{--bg: #fff;--bg-elev: #f2f5fa;--bg-card: #fff;--bg-card-hover: #eef2f8;--navy: #0e1c3d;--border: #c9d3e2;--border-soft: #dbe2ec;--text: #14213d;--text-muted: #45526b;--text-faint: #6a778c;--cyan: #0b7d75;--cyan-dim: #0a6f68;--cyan-bright: #086b64;--cyan-glow: rgba(11, 125, 117, .12);--violet: #6d4fd0;--violet-dim: #5a3fb8;--violet-glow: rgba(109, 79, 208, .12);background:#fff;color:var(--text-muted)}.book.paper .g-fig{background:#f6f8fc;border-color:#dbe2ec}.book.paper .g-fig figcaption{color:#5a6a82}.book.paper .g-warn{background:#b7791f17;border-left-color:#b7791f}.book.paper .g-warn:before{color:#9a6a00}.book.paper .g-tip{background:#0b7d7514}.book.paper .term{background:#f4f7fb;border-color:#dbe2ec;box-shadow:none}.book.paper .term-bar{background:#e9eef5;border-bottom-color:#dbe2ec}.book.paper .term-title{color:#6a778c}.book.paper .term-body{color:#182338}.book.paper .c-prompt{color:#0b7d75}.book.paper .c-accent{color:#0a6f68}.book.paper .c-key,.book.paper .c-dim{color:#6a778c}.book.paper .c-warn{color:#9a6a00}.book.paper .c-bad{color:#c62f2f}.book.paper .c-ok{color:#1c8348}.book.paper table{background:#fff}.book.paper th,.book.paper td{border-color:#dbe2ec;color:#1a2740}.book.paper thead th,.book.paper table th{background:#eef2f8;color:#12203a}.book.paper [fill="#e8f0ff" i]{fill:#14213d}.book.paper [stroke="#e8f0ff" i]{stroke:#14213d}.book.paper [fill="#8fa8c8" i]{fill:#51617d}.book.paper [stroke="#8fa8c8" i]{stroke:#6a778c}.book.paper [fill="#49e2da" i]{fill:#0b7d75}.book.paper [stroke="#49e2da" i]{stroke:#0b7d75}.book.paper [stroke="#1e3a6b" i]{stroke:#b9c4d6}.book.paper [fill="#1e3a6b" i]{fill:#e9eef5}.book.paper [stroke="#ffcf3a" i]{stroke:#b7791f}.book.paper [fill="#ffcf3a" i]{fill:#9a6a00}.book.paper [stroke="#ff6b6b" i]{stroke:#d13b3b}.book.paper [fill="#ff6b6b" i]{fill:#c62f2f}.book.paper [stroke="#2ec16e" i]{stroke:#1f8f4e}.book.paper [fill="#2ec16e" i]{fill:#1c8348}.book.paper [fill*="rgba(73,226,218" i]{fill:#0b7d751a}.book.paper [fill*="rgba(255,107,107" i]{fill:#c62f2f1a}.book.paper [fill*="rgba(46,193,110" i]{fill:#1c83481a}.book.paper [fill*="rgba(255,207,58" i]{fill:#b7791f1f}
