/* Handbook pages use the existing TrainNotes colours and typography. */
.book { background: var(--ink); }
.book .header-inner { width: min(1360px,calc(100% - 40px)); }
.book-top-nav { display:flex;gap:24px;margin-left:auto; }
.book-top-nav a { text-decoration:none;color:var(--muted);font-size:14px; }
.book-top-nav a[aria-current] { color:var(--blue); }
.book-menu { display:none; }
.book-shell { width:min(1360px,calc(100% - 40px));margin:0 auto;display:grid;grid-template-columns:240px minmax(0,900px);gap:clamp(28px,5vw,76px);align-items:start; }
.book-sidebar { position:sticky;top:96px;max-height:calc(100dvh - 112px);overflow:auto;padding:24px 12px 30px 0;font-size:13px;scrollbar-width:thin;scrollbar-color:var(--line) transparent; }
.book-sidebar a { display:block;padding:7px 12px;text-decoration:none;color:var(--muted);border-left:2px solid transparent; }
.book-sidebar a:hover,.book-sidebar a[aria-current] { color:var(--blue);background:var(--surface);border-color:var(--blue); }
.book-sidebar .book-home,.book-sidebar .concept-entry { font-size:15px;font-weight:750;color:var(--paper);margin-bottom:8px; }
.book-sidebar .concept-entry { color:var(--blue); }
.book-sidebar summary { padding:14px 0 8px;cursor:pointer;color:var(--paper);font-weight:700; }
.book-article { min-width:0;padding:30px 0 64px; }
.book-article h1 { max-width:850px;font-size:clamp(34px,3.4vw,52px);line-height:1.12;letter-spacing:-.045em;margin:12px 0 20px; }
.book-lead { max-width:780px;font-size:20px;color:var(--muted);line-height:1.65; }
.book-breadcrumb { margin:28px 0 10px;font-size:12px;color:var(--muted); }
.book-breadcrumb a { color:var(--blue);text-decoration:none; }
.book-article section { padding:26px 0 20px;scroll-margin-top:105px; }
.book-article h2 { font-size:clamp(26px,2.2vw,35px);letter-spacing:-.025em;margin:0 0 17px;line-height:1.25; }
.book-article h3 { font-size:20px;line-height:1.35; }
.book-article p,.book-article li { color:var(--muted);line-height:1.75; }
.book-article p { max-width:800px; }
.book-article strong { color:var(--paper); }
.book-article a { text-underline-offset:4px; }
.book-article section > p a,.book-article section > ul a,.related a { color:var(--blue); }
.book-article li+li { margin-top:12px; }
.procedure { padding-left:27px; }
.procedure li { padding-left:5px; }
.procedure li::marker { color:var(--blue);font-weight:750; }
.article-toc { margin:28px 0 10px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px; }
.article-toc strong { display:block;font-size:13px;margin-bottom:8px; }
.article-toc a { display:inline-block;color:var(--blue);font-size:14px;margin:3px 18px 5px 0; }
.worked-example { margin:24px 0;padding:18px 22px;border-left:3px solid var(--blue);background:var(--surface); }
.worked-example > strong { color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.06em; }
.worked-example p { margin:8px 0 0; }
.book-figure { width:min(400px,100%);margin:28px 0 12px; }
.book-image { display:block;cursor:zoom-in;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface); }
.book-image img { width:100%;height:auto; }
.book-figure figcaption { padding:12px 2px 0;font-size:14px;color:var(--muted);line-height:1.65; }
.book-article table { display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:24px 0;border:1px solid var(--line);font-size:15px; }
.book-article td,.book-article th { padding:14px 16px;border:1px solid var(--line);text-align:left;vertical-align:top; }
.book-article th { color:var(--paper);background:var(--surface); }
.book-article td { color:var(--muted); }
.related { margin-top:40px;border-top:1px solid var(--line);padding-top:26px; }
.related h2 { font-size:22px; }
.related a { display:inline-block;margin:0 24px 12px 0; }
.book-footer { margin-top:42px;padding-top:24px;border-top:1px solid var(--line); }
.book-footer a { color:var(--blue);margin-right:24px;font-size:14px; }
.book-footer p { font-size:12px;line-height:1.6; }
.entry-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.book-entry { padding:22px;display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:12px; }
.book-entry:hover { border-color:var(--blue); }
.book-entry strong { display:block;font-size:20px;margin-bottom:8px; }
.book-entry span { color:var(--muted);font-size:15px;line-height:1.65; }
.chapter-groups { display:grid;grid-template-columns:1fr 1fr;gap:0 30px; }
.chapter-groups h3 { margin:0 0 14px; }
.chapter-groups ul { list-style:none;padding:0;margin:0; }
.chapter-groups li+li { margin-top:8px; }
.chapter-groups a { color:var(--blue);font-size:15px; }
.book-search { position:relative;max-width:800px; }
.book-search label { display:block;font-size:13px;color:var(--muted);margin-bottom:7px; }
.book-search input { display:block;width:100%;min-height:50px;padding:12px 16px;color:var(--paper);background:var(--surface);border:1px solid var(--line);border-radius:12px; }
.book-search input::placeholder { color:var(--muted);opacity:.9; }
.manual-results { position:absolute;z-index:60;left:0;right:0;top:100%;margin-top:8px;max-height:75dvh;overflow-y:auto;background:var(--ink-raised);border:1px solid var(--line);border-radius:12px;padding:8px 18px; }
.manual-results[hidden] { display:none; }
.manual-result { padding:16px 0;border-bottom:1px solid var(--line); }
.manual-result:last-child { border-bottom:0; }
.manual-result > a { font-weight:750;color:var(--blue);font-size:17px; }
.manual-result small { display:block;font-size:11px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em; }
.manual-result p { font-size:14px;line-height:1.6;margin:8px 0; }
.result-tasks { display:flex;flex-wrap:wrap;gap:9px 18px; }
.result-tasks a { font-size:13px;color:var(--paper); }
.alphabet { display:flex;flex-wrap:wrap;gap:8px;padding:20px 0; }
.alphabet a { display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;color:var(--blue);text-decoration:none; }
.concept { padding:20px 0;border-top:1px solid var(--line);scroll-margin-top:110px; }
.concept h3 { margin:0 0 12px; }
.concept ul { margin-bottom:8px; }
.concept a { color:var(--blue); }
.concept-see { font-size:13px; }
.book-viewer { margin:auto;padding:14px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);color:var(--paper);background:var(--ink-raised);border:1px solid var(--line);border-radius:14px; }
.book-viewer::backdrop { background:rgba(0,0,0,.88); }
.viewer-controls { display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px; }
.viewer-controls button,.viewer-controls a { padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:9px;font-size:14px;color:var(--paper);cursor:pointer;text-decoration:none; }
.book-viewer img { width:auto;max-height:calc(100dvh - 130px);margin:auto; }
.book-viewer.zoomed { width:calc(100vw - 24px);overflow:auto; }
.book-viewer.zoomed img { width:1206px;max-height:none;max-width:none; }
.book-viewer.zoomed .viewer-controls { position:sticky;top:0;left:0;background:var(--ink-raised);padding:8px 0; }
.book-viewer p { font-size:13px;color:var(--muted);margin-bottom:0; }
@media(max-width:1000px) { .book-shell { grid-template-columns:205px minmax(0,1fr);gap:30px; }.book-figure { width:min(370px,100%); } }
@media(max-width:760px) { .book .header-inner { width:calc(100% - 32px); }.book-top-nav { display:none; }.book-menu { display:block;margin-left:auto;padding:9px 12px;color:var(--blue);background:var(--surface);border:1px solid var(--line);border-radius:9px;font-size:14px; }.book-shell { width:calc(100% - 32px);display:block; }.book-sidebar { position:static;display:none;max-height:none;padding:20px 0;border-bottom:1px solid var(--line); }.book-sidebar.open { display:block; }.book-article { padding-top:24px; }.book-lead { font-size:18px; }.book-article h1 { font-size:35px; }.entry-grid,.chapter-groups { grid-template-columns:1fr; }.book-figure { width:min(400px,100%); }.manual-results { position:relative;margin-top:10px;max-height:70dvh; }.article-toc { padding:16px; }.book-article td,.book-article th { padding:10px;font-size:13px; } }
@media print { .book-sidebar,.site-header,.book-search,.book-footer,.article-toc { display:none; }.book-shell { display:block;width:100%; }.book { background:white; }.book-article h1,.book-article h2,.book-article h3,.book-article strong { color:#101829; }.book-article p,.book-article li { color:#253650; }.book-figure { width:200px;break-inside:avoid; }.worked-example { background:#eef4ff; } }
