.rulebook-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.rulebook-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:8px; color:var(--primary-dark); background:var(--card); font-size:14px; font-weight:700; text-decoration:none; }
.rulebook-link:hover { border-color:var(--primary-dark); }
.rule-icon { display:block; width:20px; height:20px; flex:0 0 20px; background:currentColor; mask:var(--rule-icon) center / contain no-repeat; }
.book-icon { --rule-icon:url('/assets/icons/book-open.svg'); }
.external-icon { --rule-icon:url('/assets/icons/external-link.svg'); }
.previous-icon { --rule-icon:url('/assets/icons/chevron-left.svg'); }
.next-icon { --rule-icon:url('/assets/icons/chevron-right.svg'); }
.zoom-in-icon { --rule-icon:url('/assets/icons/zoom-in.svg'); }
.zoom-out-icon { --rule-icon:url('/assets/icons/zoom-out.svg'); }
.fullscreen-icon { --rule-icon:url('/assets/icons/maximize.svg'); }
.download-icon { --rule-icon:url('/assets/icons/download.svg'); }
.reader-page { margin:0; color:var(--ink); background:var(--paper); font:16px var(--ui-font); letter-spacing:0; }
.reader-page * { box-sizing:border-box; }
.reader-page { height:100vh; height:100dvh; display:flex; flex-direction:column; }
.reader-page main { display:flex; flex:1; flex-direction:column; min-height:0; }
.reader-page [hidden] { display:none !important; }
.reader-page a { color:var(--primary-dark); }
.reader-page button,.reader-page input { font:inherit; }
.reader-page button,.reader-page a { touch-action:manipulation; }
.reader-page :focus-visible { outline:3px solid var(--ui-accent); outline-offset:3px; }
.reader-header { display:flex; flex-shrink:0; align-items:center; gap:16px; flex-wrap:wrap; padding:16px 24px; border-bottom:1px solid var(--line); }
.reader-brand { flex:0 0 auto; }
.reader-brand img { width:44px; height:48px; object-fit:contain; display:block; }
.reader-heading { flex:1; min-width:0; }
.reader-heading h1 { margin:0; font-size:20px; line-height:1.35; overflow-wrap:anywhere; }
.reader-heading p { margin:4px 0 0; font-size:14px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reader-actions { display:flex; gap:8px; align-items:center; }
.reader-icon { display:inline-flex; justify-content:center; align-items:center; width:44px; height:44px; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--primary-dark); cursor:pointer; flex:0 0 44px; text-decoration:none; }
.reader-icon:hover { border-color:var(--primary-dark); }
.reader-icon:disabled { opacity:.4; cursor:default; }
.reader-toolbar { display:flex; flex-shrink:0; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-top:auto; padding:12px 24px; padding-bottom:max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--paper); }
.reader-group { display:flex; align-items:center; gap:8px; }
.reader-language { display:flex; gap:4px; }
.reader-language a { display:flex; align-items:center; min-height:44px; padding:10px 14px; border-radius:6px; text-decoration:none; font-size:14px; font-weight:700; }
.reader-language a[aria-current] { background:var(--ui-accent); color:var(--ui-on-accent); }
.reader-page-number { width:58px; min-height:44px; padding:8px; text-align:center; border:1px solid var(--line); border-radius:6px; background:var(--card); color:var(--ink); }
.reader-total { min-width:40px; font-variant-numeric:tabular-nums; font-size:14px; }
.reader-status { flex-shrink:0; margin:0; padding:12px 24px; color:var(--muted); font-size:14px; line-height:1.5; }
.reader-surface { flex:1; min-height:0; padding:16px; overflow:auto; background:var(--ui-surface); }
.reader-canvas-wrap { width:max-content; min-width:100%; text-align:center; }
#pdfCanvas { display:block; margin:0 auto; background:#fff; box-shadow:0 2px 12px #0002; }
#nativePdf { width:100%; height:100%; min-height:0; border:0; background:#fff; }
.reader-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:600px) { .reader-header { display:grid; grid-template-columns:44px 44px minmax(0,1fr); padding:12px; gap:12px; } .reader-actions { grid-column:1 / -1; justify-self:end; } .reader-heading h1 { font-size:18px; } .reader-toolbar { display:grid; grid-template-columns:1fr auto; padding:10px 12px; padding-bottom:max(10px,env(safe-area-inset-bottom)); gap:8px; } #pageControls { grid-column:1 / -1; grid-row:2; justify-content:center; } #zoomControls { grid-column:2; grid-row:1; } .reader-surface { padding:8px; } .reader-status { padding:12px; } .reader-language a { padding:10px; } }
