/* The Grammar Book extends the existing reading/reference typography and palette. */
.book-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:28px 0 18px}
.book-modes{display:flex;flex-wrap:wrap;gap:8px}
.book-modes button,.book-levels button{font:inherit;font-size:13px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);padding:9px 14px;cursor:pointer}
.book-modes button[aria-pressed="true"],.book-levels button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.book-search-label{display:grid;gap:8px;min-width:240px;font-size:12px;color:var(--page-muted)}
.book-search-label input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:10px 13px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px}
.book-search-label input::placeholder{color:var(--page-muted);opacity:1}
.book-levels{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 28px}
.book-levels[hidden]{display:none}
.book-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:38px;align-items:start}
.book-index{position:sticky;top:24px;min-width:0}
.book-index summary{font-size:13px;font-weight:600;cursor:pointer;min-height:44px;align-content:center}
.book-index #book-match-count{font-size:12px;color:var(--page-muted);margin:4px 0 16px}
.book-index nav{max-height:65vh;overflow:auto;scrollbar-color:var(--line) transparent;scrollbar-width:thin;padding-right:8px}
.book-index ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.book-index button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;width:100%;padding:11px 12px;min-height:58px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;font-size:13px;line-height:1.45;color:var(--ink);cursor:pointer}
.book-index button small{font-size:11px;color:var(--page-muted)}
.book-index button:hover{background:var(--light)}
.book-index button[aria-current="true"]{background:var(--light);border-color:var(--line)}
.book-reading{min-width:0}
.book-index a[data-book-entry]{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;width:100%;padding:11px 12px;min-height:58px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;font-size:13px;line-height:1.45;color:var(--ink);text-decoration:none}
.book-index a[data-book-entry] small{font-size:11px;color:var(--page-muted)}
.book-index a[data-book-entry]:is(:hover,[aria-current="true"]){background:var(--light);border-color:var(--line)}
.book-related a.text-button,.book-article-footer a.text-button{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.sidebar a.nav-item{text-decoration:none}
.book-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;line-height:1.8;margin:0 0 22px;color:var(--page-muted)}
.book-breadcrumbs a{color:var(--purple);text-underline-offset:3px}
#grammar-book a:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.book-static-nav{display:flex;flex-wrap:wrap;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:28px}
.book-static-nav a{color:var(--purple);min-height:44px;align-content:center;text-underline-offset:3px}
.book-static-shell{max-width:1160px;margin:auto;padding:28px}
.public-learning-page{min-width:0}
.public-article{margin-top:32px}
.public-article .reading-lines{margin:28px 0 40px}
.public-article .reading-lines p{font-size:21px;line-height:1.85}
.public-article h2{font-size:22px;line-height:1.5;margin:32px 0 14px}
.public-article h3{font-size:17px;line-height:1.6;margin:24px 0 12px}
.public-article p{font-size:15px;line-height:1.9;margin-bottom:16px;overflow-wrap:anywhere}
.public-article a,.public-learning-page .book-prose a,.public-learning-page>p a{color:var(--purple);text-underline-offset:3px}
.public-learning-page .primary{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none}
.public-article details{line-height:1.9;margin:16px 0 26px}
.public-article summary,.public-word-group summary{min-height:44px;cursor:pointer;align-content:center}
.public-action{margin:32px 0!important}
.public-index{list-style:none;margin:28px 0;padding:0;display:grid;gap:0}
.public-index li{padding:20px 0;border-bottom:1px solid var(--line);display:grid;gap:8px}
.public-index a{font-size:18px;line-height:1.5;color:var(--purple);text-underline-offset:4px}
.public-index span{font-size:13px;line-height:1.8;color:var(--page-muted)}
.public-dialogue-turn{border-top:1px solid var(--line);padding:8px 0 24px}
.public-speaker{font-size:12px!important;color:var(--page-muted);margin-bottom:6px!important}
.public-german{font-family:Georgia,serif;font-size:22px!important;line-height:1.7!important}
.public-word-group{padding:16px 0;border-bottom:1px solid var(--line)}
.public-word-group summary{font-size:17px;font-weight:600}
.public-word-list{margin-top:18px}
.public-word-list>div{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2fr);gap:22px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.public-word-list dd{margin:0}.public-word-list small{display:block;color:var(--page-muted);margin-top:5px}
.public-guide-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:var(--purple);text-underline-offset:3px;margin-top:10px}
.public-learning-page :is(a,summary):focus-visible{outline:2px solid var(--purple);outline-offset:4px}
@media(max-width:560px){.book-static-shell{padding:18px}.book-static-shell #main{padding:20px 0}.public-article p{font-size:14px}.public-german{font-size:21px!important}.public-word-list>div{grid-template-columns:minmax(100px,1fr) minmax(0,1.5fr);gap:14px}.public-learning-page h1{overflow-wrap:anywhere}}
@media(max-width:560px){.public-article .reading-lines p{font-size:19px}}
.book-article{max-width:75ch;padding-bottom:16px}
.book-article-header{padding:8px 0 26px;border-bottom:1px solid var(--line);margin-bottom:30px}
.book-article-header .level-pill,.book-verb-kind{display:inline-block;margin-bottom:14px}
.book-article-header h2{font-size:28px;line-height:1.3;letter-spacing:-.02em;margin:0 0 16px;font-weight:600;scroll-margin-top:28px;overflow-wrap:anywhere}
.book-article-header p,.book-prose p,.book-verb-note{font-size:15px;line-height:1.9;color:var(--ink);max-width:72ch;margin:0}
.book-article h3{font-size:17px;line-height:1.4;letter-spacing:-.01em;font-weight:600;margin:0 0 12px;color:var(--ink)}
.book-prose section,.book-examples,.book-tables,.book-tip,.book-mistake,.book-principal-parts{margin:0 0 32px}
.book-prose p+p{margin-top:14px}
.book-examples figure{margin:0;padding:16px 0;border-bottom:1px solid var(--line)}
.book-examples figure:last-child{border-bottom:0}
.book-examples p{font-family:Georgia,serif;font-size:22px;line-height:1.65;color:var(--ink);margin:0 0 7px;overflow-wrap:anywhere}
.book-examples figcaption{font-size:13px;line-height:1.75;color:var(--page-muted)}
.book-tip,.book-mistake{padding-top:24px;border-top:1px solid var(--line)}
.book-table-scroll{overflow:auto;max-width:100%;margin:18px 0 24px;scrollbar-color:var(--purple) transparent;scrollbar-width:thin;border:1px solid var(--line);border-radius:10px}
.book-table-scroll table{border-collapse:collapse;width:100%;min-width:480px;font-size:13px}
.book-table-scroll caption{caption-side:top;padding:14px 16px;text-align:left;color:var(--ink);font-size:13px;font-weight:600;line-height:1.6}
.book-table-scroll th,.book-table-scroll td{padding:13px 15px;line-height:1.6;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;color:var(--ink)}
.book-table-scroll thead{background:var(--light)}
.book-table-scroll tbody th{font-weight:500}
.book-table-scroll tr:last-child :is(th,td){border-bottom:0}
.book-table-scroll thead span{display:block;font-size:11px;font-weight:400;color:var(--page-muted);margin-top:4px}
.book-conjugations{min-width:600px!important}
.book-conjugations td{min-width:125px}
.book-conjugations th:first-child{min-width:105px}
.book-table-hint{font-size:12px;color:var(--page-muted);line-height:1.7;margin:8px 0 18px}
.book-verb-kind{font-size:12px;color:var(--page-muted);text-transform:capitalize}
.book-verb-note{margin-bottom:24px}
.book-principal-parts{padding:22px 0;border-block:1px solid var(--line)}
.book-principal-parts p{font-size:17px;line-height:1.8;overflow-wrap:anywhere;margin:0}
.book-article-footer{padding-top:24px;border-top:1px solid var(--line);margin-top:36px}
.book-article-footer>p{font-size:12px;line-height:1.7;color:var(--page-muted);margin:14px 0 22px}
.book-related{display:grid;justify-items:start;gap:4px}
.book-related>span{font-size:12px;color:var(--page-muted);margin-bottom:5px}
.book-related .text-button{font-size:13px;min-height:44px;text-align:left}
.book-sources{margin:40px 0 24px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;line-height:1.8;color:var(--page-muted)}
.book-sources summary{cursor:pointer;min-height:44px;align-content:center}
.book-sources p{max-width:75ch;margin:12px 0}
.book-sources ul{padding-left:20px;display:grid;gap:8px}
.book-sources a{color:var(--purple);text-decoration:underline;text-underline-offset:3px}
.book-empty,.book-loading{padding:28px 0;color:var(--page-muted);line-height:1.8}
.book-empty h2{font-size:22px;line-height:1.4;color:var(--ink);margin-bottom:12px}
.book-empty p,.book-loading p{margin-bottom:18px}
#grammar-book :is(button,input,summary,.book-table-scroll):focus-visible{outline:2px solid var(--purple);outline-offset:3px}
@media(max-width:1100px){.book-layout{grid-template-columns:205px minmax(0,1fr);gap:28px}.book-tools{align-items:stretch;flex-direction:column;gap:20px}.book-search-label{min-width:0;max-width:480px}}
@media(max-width:900px){.book-layout{grid-template-columns:1fr;gap:28px}.book-index{position:static;border-bottom:1px solid var(--line);padding-bottom:12px}.book-index nav{max-height:330px}.book-article{max-width:75ch}.book-index #book-match-count{margin-bottom:8px}}
@media(max-width:560px){.book-tools{margin-top:24px}.book-modes{gap:7px}.book-modes button{flex:1;padding-inline:10px;font-size:12px}.book-article-header h2{font-size:25px}.book-article-header p,.book-prose p,.book-verb-note{font-size:14px;line-height:1.9}.book-examples p{font-size:21px}.book-levels button{padding-inline:12px}.book-article-footer .primary{width:100%;justify-content:center}.book-layout{gap:22px}.book-table-scroll :is(td,th){padding:12px}}
