/* Android visual finish. The Silicio board, pieces and layout geometry stay in their own stylesheets. */
.android-reader {
  --reader-muted: #5e706b;
  --reader-shadow: 0 12px 36px rgb(17 48 42 / 12%);
  --reader-control: var(--reader-surface);
  --reader-control-hover: var(--reader-primary-soft);
}
.android-reader[data-reader-theme=dark] {
  --reader-shadow: 0 12px 36px rgb(0 0 0 / 24%);
  --reader-control: #243d35;
  --reader-control-hover: #2d4c41;
}
.android-reader .button {
  color:var(--reader-ink); background:var(--reader-control);
  border-color:var(--reader-line-strong); border-radius:10px; box-shadow:none;
  line-height:1.35;
}
.android-reader .button--primary { color:#fff; background:#177b69; border-color:#177b69; }
.android-reader .button--secondary { color:var(--reader-primary-dark); background:var(--reader-primary-soft); border-color:var(--reader-line); }
.android-reader .button--danger { color:#fff; background:#a41e3c; border-color:#a41e3c; }
.android-reader .button--ghost { color:var(--reader-danger); background:var(--reader-surface); border-color:var(--reader-line-strong); }
@media(hover:hover) {
  .android-reader .button:hover { background:var(--reader-control-hover); border-color:var(--reader-primary-dark); }
  .android-reader .button--primary:hover { color:#fff; background:#126858; }
  .android-reader .button--danger:hover { color:#fff; background:#861730; }
}
.android-reader .button:active { box-shadow:inset 0 0 0 2px var(--reader-line-strong); }
.android-reader :is(button,summary,input,select,textarea):focus-visible {
  outline:3px solid var(--reader-primary-dark); outline-offset:2px;
}
.android-reader :is(input,textarea)::placeholder { color:var(--reader-muted); opacity:1; }
.android-reader .app-dialog::backdrop,
.android-reader .reader-workbench::backdrop { background:rgb(10 28 24 / 56%); }
.android-reader .compact-menu__surface { border-radius:12px; box-shadow:var(--reader-shadow); }
.android-reader .compact-menu__surface .text-button { border-radius:8px; min-height:44px; }

/* The library's fixed area is for finding books; backup guidance accompanies backup actions. */
.android-reader .reader-library-heading { background:var(--reader-surface); padding:10px 16px; gap:12px; }
.android-reader .reader-library-heading h2 { font-size:1.2rem; letter-spacing:-.025em; line-height:1.25; }
.android-reader .reader-library-heading > div:first-child { min-width:0; }
.android-reader .reader-library-heading__actions { flex:0 0 auto; margin-left:auto; }
.android-reader .reader-library-heading :is(.panel-kicker,.reader-access-pill) { display:none; }
.android-reader .reader-library-toolbar { min-height:56px; padding:6px 12px; border-bottom:0; }
.android-reader .reader-library-filters { padding:6px 12px 10px; background:var(--reader-surface); }
.android-reader .reader-library-search { background:var(--reader-surface-soft); border-color:var(--reader-line); border-radius:10px; }
.android-reader .reader-library-filter-label select { background:var(--reader-surface-soft); border-color:var(--reader-line); min-height:44px; border-radius:10px; }
.android-reader .reader-library-summary { padding:8px 14px; gap:4px 16px; font-size:.75rem; line-height:1.45; }
.android-reader .reader-library-autosave-help { margin:8px 4px 2px; padding-top:12px; border-top:1px solid var(--reader-line); color:var(--reader-muted); font-size:.75rem; line-height:1.5; }
.android-reader .reader-library-content { background:var(--reader-surface-soft); }
.android-reader .reader-premium-link { font-weight:600; text-decoration-thickness:1px; text-underline-offset:3px; }
.android-reader .reader-current-reading {
  width:100%; grid-template-columns:84px minmax(0,1fr); gap:12px 16px;
  padding:16px; background:var(--reader-surface); border:1px solid var(--reader-line);
  border-inline-start:3px solid var(--reader-primary); border-radius:12px;
  box-shadow:0 3px 12px rgb(24 48 45 / 4%);
}
.android-reader .reader-current-reading__cover { width:84px; border-radius:3px 6px 6px 3px; box-shadow:0 3px 9px rgb(12 30 26 / 14%); }
.android-reader .reader-current-reading__cover img,
.android-reader .reader-book-cover img { object-fit:contain; background:#fff; }
.android-reader .reader-current-reading h3 { font-size:1.05rem; letter-spacing:-.02em; white-space:normal; overflow-wrap:anywhere; }
.android-reader .reader-current-reading .panel-kicker { font-size:.65rem; letter-spacing:.075em; }
.android-reader .reader-current-reading__status,
.android-reader .reader-current-reading__page { font-size:.75rem; line-height:1.45; }
.android-reader .reader-current-reading__progress { height:4px; margin-top:10px; background:var(--reader-line); }
.android-reader .reader-current-reading__actions { grid-column:1/-1; flex-direction:row; gap:8px; margin:0; }
.android-reader .reader-current-reading__actions .button { flex:1 1 130px; width:auto; padding:8px; min-width:0; min-height:44px; font-size:.78rem; white-space:normal; }
.android-reader .reader-current-reading__actions .button--secondary { background:transparent; border-color:var(--reader-line); }
.android-reader .reader-library-grid { gap:12px; }
.android-reader .reader-book-card { box-shadow:none; border-radius:10px; }
.android-reader .reader-book-card h3 { font-size:.95rem; letter-spacing:-.015em; }
.android-reader .reader-book-card__author { font-size:.75rem; color:var(--reader-muted); }
.android-reader .reader-book-card__progress { height:4px; background:var(--reader-line); }
.android-reader .reader-book-cover { align-self:start; aspect-ratio:.72; min-height:0; border-radius:3px 6px 6px 3px; box-shadow:0 2px 7px rgb(12 30 26 / 12%); }
.android-reader .reader-detail-item__actions { flex-wrap:wrap; }
.android-reader .reader-detail-item__actions .icon-button { width:auto; min-width:44px; min-height:44px; padding:6px 10px; gap:6px; font-size:.78rem; color:var(--reader-danger); }
@media(min-width:600px) {
  .android-reader .reader-current-reading { grid-template-columns:100px minmax(0,1fr); column-gap:20px; }
  .android-reader .reader-current-reading__cover { width:100px; grid-row:1/3; }
  .android-reader .reader-current-reading__actions { grid-column:2; justify-content:flex-start; }
  .android-reader .reader-current-reading__actions .button { flex:0 1 auto; padding-inline:14px; }
}

/* Notebook, practice and analysis share the same control and typography hierarchy. */
.android-reader .reader-workbench { box-shadow:var(--reader-shadow); }
.android-reader .reader-workbench > header { padding:10px 14px; gap:8px; }
.android-reader .reader-workbench > header h2 { font-size:1.0625rem; letter-spacing:-.02em; }
.android-reader .reader-workbench > header .button,
.android-reader #reader-engine-close { color:var(--reader-primary-dark); background:transparent; border-color:var(--reader-line); }
.android-reader .workbench-body { font-size:.875rem; line-height:1.5; }
.android-reader .workbench-body h3 { font-size:.9375rem; letter-spacing:-.015em; }
.android-reader .workbench-body section:last-child { border-bottom:0; padding-bottom:0; }
.android-reader .workbench-body p { color:var(--reader-muted); }
.android-reader .workbench-field { line-height:1.4; gap:12px; }
.android-reader .workbench-field :is(input,select),
.android-reader .workbench-body textarea { border-radius:8px; background:var(--reader-surface); border-color:var(--reader-line-strong); padding:8px; }
.android-reader .workbench-field input[type=checkbox] { accent-color:var(--reader-primary-dark); }
.android-reader .workbench-body textarea[aria-invalid=true] { border-color:var(--reader-danger); }
.android-reader .workbench-body .button { font-size:.8125rem; }
.android-reader #notebook-section { background:var(--reader-primary-soft); color:var(--reader-primary-dark); font-weight:600; }
.android-reader #reader-engine-panel > header { padding:6px 10px; }
.android-reader #reader-engine-title { letter-spacing:-.02em; }
.android-reader .reader-engine-settings .workbench-field { flex-direction:row; align-items:center; justify-content:space-between; font-weight:600; }
.android-reader .reader-engine-settings select { width:auto; max-width:72%; min-width:105px; font-size:.8125rem; background:var(--reader-surface-soft); }
.android-reader .reader-engine-body > [role=status] { color:var(--reader-muted); font-size:.75rem; line-height:1.5; }
.android-reader .engine-lines .button { border-color:var(--reader-line); border-inline-start:3px solid var(--reader-primary); border-radius:10px; background:var(--reader-control); padding:10px 12px; }
.android-reader .engine-line-score { font-size:.75rem; font-weight:600; margin-bottom:6px; }
.android-reader .engine-line-moves { color:var(--reader-ink); font-weight:400; font-size:.95rem; line-height:1.65; word-spacing:.08em; }
.android-reader .reader-line-preview .line-preview-moves button[aria-current=step],
.android-reader .practice-solution button[aria-current=step] { color:var(--reader-surface); background:var(--reader-primary-dark); border-color:var(--reader-primary-dark); }
.android-reader .reader-line-preview > header { padding:6px 10px; }
.android-reader .reader-line-preview .workbench-body { font-size:.8125rem; }

@media(max-height:480px) and (pointer:coarse) {
  .android-reader .reader-library-heading { min-height:52px; padding:4px 10px; }
}
