html, body { overscroll-behavior: none; }
.android-reader [data-reader-action="open-premium"],
.android-reader [data-reader-action="connect-drive"],
.android-reader [data-reader-action="sync-drive"],
.android-reader .reader-field-premium { display:none!important; }
.android-reader .brand { pointer-events:none; }
.android-reader .app-footer { font-size:11px; }
.android-reader #reader-premium-dialog { display:none!important; }
#reader-native-error { position:fixed; z-index:99999; inset:16px; padding:24px; background:#fff; color:#17211f; border-radius:16px; overflow:auto; }
.android-reader .reader-device-tools { display:flex; flex-wrap:wrap; gap:8px; padding:10px 0; }
.android-reader #chess-panel { scroll-behavior:auto; }
/* The board draws its own square feedback; WebView must not tint the entire touch surface. */
.android-reader .silicio-board-host,
.android-reader .silicio-board-host * { -webkit-tap-highlight-color:transparent; }
.android-reader .reader-library-menu-close { border-bottom:1px solid var(--reader-line); }
.android-reader .reader-library-more .compact-menu__surface { position:absolute; top:calc(100% + 6px); }
/* Native geometry can settle a frame after a layout switch; keep its surface inside the host. */
.android-reader #chess-board silicio-board-container,
.android-reader #chess-board silicio-board-surface { width:100%!important; height:100%!important; }
.android-reader .reader-app { --reader-header-height:0px; }
.android-reader .app-header { display:none; }
.android-reader .reader-workbench > header { flex-wrap:wrap; }
.android-reader .reader-workbench > header h2 { flex:1 1 180px; }
.android-reader .pdf-toolbar,
.android-reader .chess-toolbar { overflow:visible; min-width:0; gap:2px; }
.android-reader .pdf-toolbar { position:relative; z-index:20; }
.android-reader .has-pdf-compact-menu .pdf-toolbar { z-index:120; }
.android-reader .pdf-toolbar > .toolbar-group:first-child > [data-action="toggle-thumbnails"],
.android-reader .pdf-toolbar > .toolbar-group:nth-of-type(2) > [data-action="zoom-out"],
.android-reader .pdf-toolbar > .toolbar-group:nth-of-type(2) > [data-action="zoom-in"],
.android-reader .pdf-toolbar > .toolbar-group:nth-of-type(2) > [data-action="fit-page"],
.android-reader .pdf-toolbar > .toolbar-group:nth-of-type(2) > [data-action="rotate-pdf"],
.android-reader .pdf-toolbar > .toolbar-separator,
.android-reader .pdf-toolbar > .toolbar-spacer,
.android-reader .pdf-toolbar > .pdf-search,
.android-reader .pdf-toolbar > [data-action="close-pdf"],
.android-reader .pdf-toolbar .zoom-label,
.android-reader .chess-toolbar > :not(.toolbar-group):not(.chess-compact-menu) { display:none; }
.android-reader .pdf-toolbar > .toolbar-group:nth-of-type(2) { margin-left:auto; }
.android-reader .reader-app .pdf-panel.pdf-toolbar-narrow .pdf-toolbar > .toolbar-group:nth-of-type(2) { display:none; }
.android-reader .panel-toolbar .compact-menu { display:block; margin-left:auto; }
.android-reader .chess-toolbar .compact-menu > summary { padding-inline:6px; }
.android-reader .reader-app .reader-toolbar-icon-menu .compact-menu > summary { width:44px; min-width:44px; padding-inline:4px; justify-content:center; }
.android-reader .reader-app .reader-toolbar-icon-menu .compact-menu > summary > span { display:none; }
.android-reader .compact-menu__surface { top:50px; bottom:auto; grid-template-columns:minmax(0,1fr); max-height:calc(100dvh - 60px); background:var(--reader-surface); }
.android-reader .compact-menu__surface .text-button { min-width:0; white-space:normal; overflow-wrap:anywhere; text-align:left; line-height:1.3; }
.android-reader .compact-menu__surface .button { color:var(--reader-ink); background:var(--reader-surface-soft); }
.android-reader .reader-library-summary > * { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.android-reader .reader-library-filters { flex-wrap:wrap; }
.android-reader .reader-library-search { flex:1 1 180px; }
.android-reader .reader-book-card__actions { flex-wrap:wrap; }
.android-reader .reader-book-card__actions button { min-height:44px; }
.android-reader .reader-book-card__actions .icon-button { width:44px; min-width:44px; }
.android-reader .reader-book-card__actions .icon-button > span { display:none; }
.android-reader .reader-detail-section__heading { flex-wrap:wrap; }
.android-reader .reader-detail-section__heading > button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:760px) { .android-reader .app-dialog--library { max-width:100vw; } }
/* Short screens need one scrollable library, so the toolbar cannot squeeze books out. */
@media(max-height:480px) and (pointer:coarse) {
  .android-reader .app-dialog--library { inset:0; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; overflow-y:auto; }
  .android-reader .reader-library-shell { display:block; height:auto; }
  .android-reader .reader-library-heading { position:sticky; top:0; z-index:5; min-height:52px; padding:4px 10px; background:var(--reader-surface); }
  .android-reader .reader-library-heading .panel-kicker { display:none; }
  .android-reader .reader-library-heading__actions { flex:0 0 auto; }
  .android-reader .reader-library-content { overflow:visible; }
}
@media(max-width:420px) { .android-reader .reader-app .pdf-toolbar > .toolbar-group:nth-of-type(2) { display:none; } }
@media(max-width:640px), (max-height:600px) and (pointer:coarse) {
  .android-reader .study-notes { grid-template-columns:minmax(0,1fr); min-height:0; max-height:100dvh; overflow-y:auto; overflow-x:hidden; }
  .android-reader .study-notes > * { min-width:0; }
  .android-reader .study-sheet-heading { flex-wrap:wrap; }
  .android-reader .study-sheet-heading__actions { margin-left:auto; }
  .android-reader .study-sheet-heading h3 { font-size:0.88rem; }
  .android-reader .study-notes .variation-hint { display:none; }
  .android-reader .study-notes .card-heading { flex-wrap:wrap; gap:4px; }
  .android-reader .study-notes .comment-actions { flex-wrap:wrap; }
  .android-reader .study-notes .comment-card { min-height:190px; }
  .android-reader .study-notes .comment-card textarea { min-height:80px; }
  .android-reader .study-sheet-heading { position:sticky; top:-8px; z-index:2; background:var(--reader-surface-soft); }
  .android-reader.reader-keyboard-open .study-notes:has(#comment-textarea:focus) { height:100dvh; padding:0; grid-template-rows:minmax(0,1fr); border-radius:8px; overflow:hidden; }
  .android-reader.reader-keyboard-open .study-notes:has(#comment-textarea:focus) > :not(.comment-card) { display:none; }
  .android-reader.reader-keyboard-open .study-notes:has(#comment-textarea:focus) .comment-card { min-height:0; grid-template-rows:minmax(0,1fr); padding:0; }
  .android-reader.reader-keyboard-open .study-notes:has(#comment-textarea:focus) .comment-card > :not(textarea) { display:none; }
  .android-reader.reader-keyboard-open #comment-textarea:focus { min-height:24px; height:calc(100% - 12px); margin:6px; width:calc(100% - 12px); resize:none; }
}
:root[data-reader-theme=dark] .reader-library-heading,
:root[data-reader-theme=dark] .reader-library-content,
:root[data-reader-theme=dark] .reader-current-reading,
:root[data-reader-theme=dark] .variation-context,
:root[data-reader-theme=dark] .pdf-thumbnails { background:var(--reader-surface-soft); }
:root[data-reader-theme=dark] .study-move__button.is-current { color:#102522; }
:root[data-reader-theme=dark] .study-move__comment,
:root[data-reader-theme=dark] .study-variation { color:var(--reader-muted); }
:root[data-reader-theme=dark] .panel-status[data-kind=success] { color:var(--reader-primary-dark); }
:root[data-reader-theme=dark] .reader-app[data-mobile-layout=combined] .atril-onboarding-hint:not([hidden]) { background:var(--reader-surface); border-color:var(--reader-line-strong); }
@media(max-height:600px) and (pointer:coarse) and (orientation:landscape) {
  .android-reader .reader-app[data-mobile-layout=chess] .study-workspace { padding:0; }
  .android-reader .reader-app[data-mobile-layout=chess] .chess-panel { grid-template-columns:minmax(236px,1fr) minmax(0,1fr); grid-template-rows:minmax(0,1fr); height:100dvh; border-radius:0; }
  .android-reader .reader-app[data-mobile-layout=chess] .chess-panel > .panel-heading,
  .android-reader .reader-app[data-mobile-layout=chess] .player-label,
  .android-reader .reader-app[data-mobile-layout=chess] .board-status { display:none; }
  .android-reader .reader-app[data-mobile-layout=chess] .chess-toolbar { grid-column:1; grid-row:1; align-self:start; flex-wrap:wrap; }
  .android-reader .reader-app[data-mobile-layout=chess] .chess-workspace { grid-column:2; grid-row:1; display:block; padding:2px; overflow:visible; }
  .android-reader .reader-app[data-mobile-layout=chess] .board-column { width:min(100%,calc(100dvh - 8px)); min-width:0; }
  .android-reader .reader-app[data-mobile-layout=chess] .board-shell { padding:0; border:0; }
  .android-reader .reader-app[data-mobile-layout=chess] .board-coordinate-frame,
  .android-reader .reader-app[data-mobile-layout=chess] .chess-board { max-width:none; }
  .android-reader .reader-app[data-mobile-layout=chess] .mobile-panel-tabs { width:calc(50vw - 12px); min-width:0; }
}
.reader-workbench { padding:0; width:min(720px,96vw); max-width:96vw; max-height:90dvh; border:1px solid var(--reader-line); border-radius:16px; background:var(--reader-surface); color:var(--reader-ink); }
.reader-workbench::backdrop { background:#10252299; }
.reader-workbench > header { position:sticky; top:0; background:var(--reader-surface); z-index:3; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--reader-line); }
.reader-workbench h2 { font-size:18px; margin:0; }
.reader-workbench h3 { font-size:16px; margin:0 0 12px; }
.workbench-body { padding:16px; overflow-wrap:anywhere; }
.workbench-body section { padding:12px 0 20px; border-bottom:1px solid var(--reader-line); }
.workbench-body section[hidden] { display:none; }
#notebook-section { max-width:72%; }
.workbench-body button { margin:4px; white-space:normal; min-height:44px; }
.workbench-body textarea { width:100%; padding:10px; border:1px solid var(--reader-line); background:var(--reader-surface-soft); }
.workbench-field { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:10px 0; }
.workbench-field input,.workbench-field select { max-width:52%; min-height:44px; border:1px solid var(--reader-line); border-radius:6px; background:var(--reader-surface-soft); padding:6px; }
.workbench-field input[type=checkbox] { width:24px; }
.workbench-board { width:min(100%,380px); aspect-ratio:1; position:relative; margin:14px auto; touch-action:none; }
.workbench-board silicio-board-surface { width:100%; height:100%; }
.workbench-board coords { position:absolute; display:flex; pointer-events:none; color:var(--reader-muted); font:600 11px/1 system-ui,sans-serif; }
.workbench-board coords.ranks { top:0; left:-18px; width:16px; height:100%; }
.workbench-board coords.files { bottom:-18px; left:0; width:100%; height:16px; }
.workbench-board coords coord { flex:1; display:flex; align-items:center; justify-content:center; }
.reader-line-preview { width:min(880px,96vw); height:min(720px,94dvh); max-height:94dvh; overflow:hidden; }
.reader-line-preview[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
.reader-line-preview > header { padding:6px 10px; gap:6px; }
.reader-line-preview > .workbench-body { display:grid; grid-template-rows:minmax(90px,1fr) minmax(180px,.75fr); gap:8px; min-height:0; padding:8px; }
.line-preview-board-area { container-type:size; display:grid; place-items:center; min-width:0; min-height:0; padding:0 0 18px 18px; }
.line-preview-board-area .workbench-board { width:min(100cqw,100cqh,380px); height:min(100cqw,100cqh,380px); margin:0; }
.line-preview-tools { display:grid; grid-template-rows:auto minmax(44px,1fr) auto auto; gap:4px; min-width:0; min-height:0; }
.line-preview-status { margin:0; font-size:.85rem; }
.line-preview-moves { position:relative; overflow:auto; overscroll-behavior:contain; min-height:0; align-content:start; }
.reader-line-preview .workbench-body button { margin:0; min-width:44px; min-height:44px; padding:6px 10px; }
.line-preview-moves button { display:inline-block; font-family:"Noto Sans Symbols 2","Noto Sans Symbols",sans-serif; }
.line-preview-moves button[aria-current=step] { background:var(--reader-primary-dark); color:var(--reader-surface); outline:2px solid var(--reader-primary-dark); outline-offset:-2px; }
.line-preview-navigation { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.reader-line-preview .line-preview-navigation button { text-align:center; }
.line-preview-actions { display:grid; grid-template-columns:44px minmax(0,1fr); gap:6px; }
.reader-line-preview button:disabled { opacity:.4; }
.practice-tools { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; }
.practice-tools > p { margin:0 0 8px; font-size:.9rem; }
.practice-tools > button { margin:4px 4px 0 0 !important; }
.practice-solution { margin:8px 0; }
.practice-solution[hidden] { display:none; }
.workbench-body .practice-solution button { display:inline-block; margin:2px; font-family:"Noto Sans Symbols 2","Noto Sans Symbols",sans-serif; }
.practice-solution button[aria-current=step] { background:var(--reader-primary-dark); color:var(--reader-surface); }
.workbench-body textarea[aria-invalid=true] { border-color:var(--reader-danger); }
.workbench-body [hidden] { display:none; }
@media(min-aspect-ratio:1/1) {
  .reader-line-preview > .workbench-body { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); grid-template-rows:minmax(0,1fr); }
}
.engine-lines button { width:calc(100% - 8px); display:block; text-align:start; font-variant-numeric:tabular-nums; }
.android-reader .reader-engine-open #pdf-panel { position:relative; }
.android-reader .reader-engine-open #pdf-panel > :not(#reader-engine-panel) { visibility:hidden; }
.android-reader #reader-engine-panel { position:absolute; inset:0; z-index:30; display:grid; grid-template-rows:auto minmax(0,1fr); min-width:0; min-height:0; background:var(--reader-surface); color:var(--reader-ink); }
.android-reader #reader-engine-panel[hidden] { display:none; }
#reader-engine-panel > header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 8px; padding:6px 10px; border-bottom:1px solid var(--reader-line); }
#reader-engine-panel h2 { margin:0; font-size:1rem; }
#reader-engine-panel button { min-height:44px; white-space:normal; overflow-wrap:anywhere; }
#reader-engine-close { padding:6px 10px; font-size:.8rem; }
.reader-engine-body { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; padding:10px; }
.reader-engine-settings { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(125px,100%),1fr)); gap:8px; }
.reader-engine-settings .workbench-field { display:flex; flex-direction:column; align-items:stretch; gap:4px; margin:0; min-width:0; font-size:.8rem; }
.reader-engine-settings select { width:100%; max-width:100%; min-width:0; }
.reader-engine-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.reader-engine-actions[hidden] { display:none; }
.reader-engine-actions .button { margin:0; padding:6px 10px; font-size:.85rem; }
.reader-engine-body > [role=status] { font-size:.8rem; margin:8px 0; }
.reader-engine-body .engine-lines button { width:100%; margin:6px 0; padding:8px 10px; }
.engine-line-score { display:block; font-size:.8rem; font-weight:700; color:var(--reader-primary-dark); margin-bottom:4px; }
.engine-line-moves { display:block; font-family:"Noto Sans Symbols 2","Noto Sans Symbols","DejaVu Sans",sans-serif; font-size:1rem; line-height:1.5; word-spacing:.1em; }
@media(max-height:600px) and (pointer:coarse) and (orientation:landscape) {
  /* The fixed reading tabs would cover analysis lines. Back to book stays visible. */
  :root:not(.reader-tablet) .reader-engine-open .mobile-panel-tabs { display:none; }
  :root:not(.reader-tablet) .reader-engine-body { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr)); align-content:start; gap:6px 12px; }
  :root:not(.reader-tablet) .reader-engine-actions { align-self:end; margin-top:0; }
  :root:not(.reader-tablet) .reader-engine-body > [role=status],
  :root:not(.reader-tablet) .reader-engine-body > .engine-lines { grid-column:1/-1; }
  :root:not(.reader-tablet) .reader-engine-body > [role=status] { margin:2px 0; }
}
.workbench-body nav button { display:block; text-align:start; }
:root[data-reader-theme=dark] { color-scheme:dark; --reader-bg:#101c1a; --reader-surface:#192d28; --reader-surface-soft:#213831; --reader-ink:#f0f5f2; --reader-muted:#bfcec7; --reader-line:#3c564b; --reader-line-strong:#62796f; --reader-primary-soft:#223f35; --reader-primary-dark:#70d5ae; --reader-danger:#ff99ad; }
.invert-pdf .pdf-page > canvas { filter:invert(1) hue-rotate(180deg); }
.android-reader #reader-workbench-button { padding:6px 9px; min-height:40px; font-size:12px; }
@media(max-width:520px) { .reader-workbench { max-height:94dvh; } .workbench-body { padding:12px; } .reader-workbench .button { font-size:13px; } .workbench-field:has(#notebook-section) { flex-direction:column; align-items:stretch; gap:6px; } #notebook-section { width:100%; max-width:100%; } }

/* Insets are already applied by Android to the WebView; do not reserve them twice. */
.android-reader { --reader-safe-top:0px; --reader-safe-right:0px; --reader-safe-bottom:0px; --reader-safe-left:0px; }
.android-reader.is-fullscreen .reader-app .mobile-panel-tabs { grid-template-columns:repeat(3,minmax(0,1fr)) 44px; }
.android-reader .reader-fullscreen-access { display:none; }
.android-reader.is-fullscreen .reader-fullscreen-access { display:inline-flex; width:44px; min-width:44px; min-height:40px; align-self:center; }
.android-reader.is-fullscreen .reader-app .mobile-panel-tabs { display:grid; position:static; grid-row:2; width:auto; max-width:none; padding:2px 4px; border-radius:0; }
.android-reader.is-fullscreen .reader-app[data-mobile-layout] { grid-template-rows:0 46px minmax(0,1fr); }
.android-reader.is-fullscreen .reader-app .app-footer { display:none; }
.android-reader.is-fullscreen:not(.reader-tablet) .reader-app[data-mobile-layout=chess] .chess-panel { height:100%; }

@media(max-height:600px) and (pointer:coarse) and (orientation:landscape) {
  .android-reader.is-fullscreen:not(.reader-tablet) .reader-app[data-mobile-layout=combined] .chess-panel { height:100%; }
  .android-reader.is-fullscreen:not(.reader-tablet) .reader-app[data-mobile-layout=chess] .board-column { width:min(100%,calc(100dvh - 58px)); }
}
@media(max-width:380px) {
  .android-reader.is-fullscreen .mobile-panel-tab { gap:3px; }
  .android-reader.is-fullscreen .mobile-panel-tab > i { display:none; }
}

/* Transient status reserves space; failures remain visible until recovery. */
.reader-save-notice:not([hidden]) { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 12px; background:var(--surface,#fff); color:var(--text,#18302d); border-bottom:1px solid #b3c8c4; font-size:13px; }
.reader-save-notice span { flex:1 1 180px; }
.reader-save-notice[data-state="error"] { background:#fff0de; color:#603b09; }
.reader-save-notice button { min-height:44px; }
.reader-library-autosave-help { font-size:12px; line-height:1.45; margin:0 0 8px; }

.reader-save-notice { grid-row:3; grid-column:1; align-self:start; z-index:40; }
.android-reader .reader-app:has(.reader-save-notice:not([hidden])) .study-workspace { padding-top:calc(var(--reader-save-notice-height,80px) + 4px); }
.android-reader .reader-app > .study-workspace { grid-column:1; }
.android-reader .reader-library-toolbar #reader-save-current { width:auto; min-width:44px; min-height:44px; padding-inline:12px; white-space:nowrap; }
.android-reader .reader-library-toolbar #reader-save-current span { display:inline; }
.android-reader .reader-library-status:empty { display:none; }
