/* v370. Standards for the verified v358 interface, not a replacement layout.
   No PDF geometry, global workbench, new modes, or dock positioning here. */
:root[data-ui-polish] {
  --sans-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --polish-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --polish-paper: light-dark(#ffffff, #1c1c1e);
  --polish-panel: light-dark(#ffffff, #232325);
  --polish-fill: light-dark(#f5f5f7, #2c2c2e);
  --polish-hover: light-dark(#ededf0, #38383a);
  --polish-ink: light-dark(#1d1d1f, #f5f5f7);
  --polish-muted: light-dark(#6e6e73, #a1a1a6);
  --polish-line: light-dark(#e5e5e8, #3a3a3c);
  --polish-control-line: light-dark(#b8b8bf, #636366);
  --polish-accent: light-dark(#0068d9, #8bbfff);
  --polish-danger: light-dark(#b4232b, #ff8585);
  --polish-shadow: 0 8px 30px light-dark(rgb(0 0 0 / .10), rgb(0 0 0 / .30)), 0 1px 4px rgb(0 0 0 / .05);
  --polish-fast: 140ms;
  --polish-normal: 200ms;
  --polish-ease: cubic-bezier(.22, 1, .36, 1);
  --polish-reading: 17px;
  --bg: var(--polish-paper);
  --bg-dim: var(--polish-paper);
  --surface: var(--polish-fill);
  --text: var(--polish-ink);
  --text-dim: var(--polish-muted);
  --text-muted: var(--polish-muted);
  --text-faint: var(--polish-muted);
  --border: var(--polish-control-line);
  --border-dim: var(--polish-line);
  --link-blue: var(--polish-accent);
}
:root[data-ui-polish] body { font-family: var(--sans-font); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:root[data-ui-polish] :is(button,input,select,textarea,summary) { font-family: var(--sans-font); }
:root[data-ui-polish] :is(button,summary) { transition: color var(--polish-fast), background-color var(--polish-fast), border-color var(--polish-fast), opacity var(--polish-fast); -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
:root[data-ui-polish] button:not(:disabled):active { opacity: .76; }
:root[data-ui-polish] :is(button,summary):not(:disabled) { cursor: pointer; }
:root[data-ui-polish] :is(button,a,summary,input,select,textarea,[tabindex]):focus-visible { outline: 2px solid var(--polish-accent); outline-offset: 2px; }
:root[data-ui-polish] :is(input,textarea)::placeholder { color: var(--polish-muted); opacity: .9; }
:root[data-ui-polish] :is(input[type="checkbox"],input[type="radio"],input[type="range"]) { accent-color: var(--polish-accent); }
:root[data-ui-polish] .ui-icon { display: block; flex-shrink: 0; pointer-events: none; }

/* Existing main page and navigation: preserve positions and the original flow. */
:root[data-ui-polish] .site-header h2 { font-weight: 650; letter-spacing: 0; }
:root[data-ui-polish] .site-header nav a { color: var(--polish-muted); line-height: 1.55; transition: color var(--polish-fast); }
:root[data-ui-polish] .site-header nav a:is(:hover,[aria-current="page"]) { color: var(--polish-ink); }
:root[data-ui-polish] .reader-site-frame .site-header { left: calc(var(--reader-edge,18px) + var(--reader-left-rail,150px)/2); transform: translateX(-50%); }

/* Spotlight and read-follow share --read-unread-opacity. Both control
   surfaces write the same persisted value, so the reading contrast never
   changes merely because the user switches tools.

   The verified v358 CSS fades each transparent PDF text span with a rectangular
   veil. That is useful for progressive read-follow, but in Safari dark mode it
   exposes a grey block behind every line. Text spotlight therefore uses a
   continuous page-content fade and restores only the exact selected character
   rectangles as canvas crops. There are no per-line masks or whole-span glow. */
:root[data-ui-polish] body.reader-text-spotlight-active.reader-text-spotlight-has-selection :is(.pdf-canvas,.pdf-night-original-image-layer) {
  opacity: clamp(.14, calc(1 - var(--text-spotlight-inactive-opacity, .68)), .58);
  transition: opacity var(--polish-fast) linear;
}
:root[data-ui-polish] body.reader-text-spotlight-active.reader-text-spotlight-has-selection .pdf-text-layer span[data-read-text] {
  color: transparent !important;
  background: none !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
}
:root[data-ui-polish] body.reader-text-spotlight-active.reader-text-spotlight-has-selection .pdf-text-layer span[data-read-text].is-text-spotlight-selected {
  color: transparent !important;
  background: none !important;
  -webkit-text-fill-color: transparent !important;
}
:root[data-ui-polish] body.reader-pdf-night-invert.reader-text-spotlight-active.reader-text-spotlight-has-selection .pdf-text-layer span[data-read-text].is-text-spotlight-selected {
  color: transparent !important;
  background: none !important;
  -webkit-text-fill-color: transparent !important;
}
:root[data-ui-polish] .pdf-text-spotlight-focus-layer { position: absolute; inset: 0; z-index: .75; overflow: hidden; pointer-events: none; }
:root[data-ui-polish] .pdf-text-spotlight-focus-crop { position: absolute; display: block; max-width: none; opacity: 1; pointer-events: none; }
:root[data-ui-polish] body.reader-pdf-night-dim .pdf-text-spotlight-focus-crop { filter: brightness(.82) contrast(1.04); }
:root[data-ui-polish] body.reader-pdf-night-invert .pdf-text-spotlight-focus-crop { filter: invert(.92) hue-rotate(180deg); }

/* Question and Markdown explanations use a second PDF-follow path. The old
   implementation painted an opaque veil on every text span, which surfaced as
   grey/white bars in Safari dark mode. Fade the page content once and restore
   only the authoritative source rectangles from the original PDF canvas. */
:root[data-ui-polish] body.markdown-pdf-focus-active .pdf-page-shell.markdown-pdf-focus-active :is(.pdf-canvas,.pdf-night-original-image-layer) {
  opacity: clamp(.14, calc(1 - var(--read-unread-opacity, .68)), .58);
  transition: opacity var(--polish-fast) linear;
}
:root[data-ui-polish] body.markdown-pdf-focus-active .pdf-page-shell.markdown-pdf-focus-active .pdf-text-layer span[data-read-text],
:root[data-ui-polish] body.markdown-pdf-focus-active .pdf-page-shell.markdown-pdf-focus-active .pdf-text-layer span[data-read-text].markdown-pdf-focus-current {
  color: transparent !important;
  background: none !important;
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
}
:root[data-ui-polish] .markdown-pdf-focus-layer { position: absolute; inset: 0; z-index: .74; overflow: hidden; pointer-events: none; }
:root[data-ui-polish] .markdown-pdf-focus-crop { position: absolute; display: block; max-width: none; opacity: 1; pointer-events: none; }
:root[data-ui-polish] body.reader-pdf-night-dim .markdown-pdf-focus-crop { filter: brightness(.82) contrast(1.04); }
:root[data-ui-polish] body.reader-pdf-night-invert .markdown-pdf-focus-crop { filter: invert(.92) hue-rotate(180deg); }
:root[data-ui-polish] .reader-spotlight-opacity-control { display: grid; grid-template-columns: minmax(0,1fr) minmax(76px,1fr) 34px; gap: 8px; align-items: center; margin-top: 6px; padding: 8px 6px 4px; border-top: 1px solid var(--polish-line); color: var(--polish-muted); font-size: 12px; }
:root[data-ui-polish] .reader-spotlight-opacity-control span { color: var(--polish-ink); font-size: 12px; }
:root[data-ui-polish] .reader-spotlight-opacity-control small { display: block; color: var(--polish-muted); font-size: 10px; }
:root[data-ui-polish] .reader-spotlight-opacity-control input { width: 100%; min-width: 0; }
:root[data-ui-polish] .reader-spotlight-opacity-control output { color: var(--polish-muted); font: 11px/1.4 var(--polish-mono); text-align: right; }

/* PDF.js paints text and raster art into one canvas. Night mode inverts the
   base canvas for legible text, then these crops restore only real image
   operators from the original canvas without filters. */
:root[data-ui-polish] .pdf-night-original-image-layer { position: absolute; inset: 0; z-index: .5; display: none; overflow: hidden; pointer-events: none; }
:root[data-ui-polish] .pdf-night-original-image { position: absolute; display: block; max-width: none; filter: none !important; pointer-events: none; }
:root[data-ui-polish] body.reader-pdf-night-invert .pdf-night-original-image-layer { display: block; }
:root[data-ui-polish] .reader-activity-bar { border-color: var(--polish-line); background: var(--polish-panel); border-radius: 10px; box-shadow: 0 3px 14px rgb(0 0 0 / .06); backdrop-filter: none; }
:root[data-ui-polish] .reader-activity-bar button { border-radius: 6px; color: var(--polish-muted); }
:root[data-ui-polish] .reader-activity-bar button:hover { color: var(--polish-ink); background: var(--polish-hover); }
:root[data-ui-polish] .reader-activity-bar button.is-active { color: var(--polish-ink); background: var(--polish-fill); }
:root[data-ui-polish] .reader-activity-bar button svg { width: 18px; height: 18px; stroke-width: 1.75; }
:root[data-ui-polish] .pdf-toolbar button { width: 26px; height: 28px; padding: 5px; border-radius: 5px; color: var(--polish-muted); }
:root[data-ui-polish] .pdf-toolbar button svg { width: 16px; height: 16px; }
:root[data-ui-polish] .pdf-toolbar button:hover { color: var(--polish-ink); background: var(--polish-hover); }
:root[data-ui-polish] .pdf-toolbar :is(input,span) { font-size: 14px; font-variant-numeric: tabular-nums; }
:root[data-ui-polish] :is(.limiter > h1,.questions-head h1) { font-size: 28px; line-height: 1.3; font-weight: 600; letter-spacing: 0; }
:root[data-ui-polish] .entry-links { font-size: 14px; color: var(--polish-muted); }
:root[data-ui-polish] .plain-list a { padding-block: 16px; font-size: 18px; line-height: 1.5; font-weight: 500; }
:root[data-ui-polish] .plain-list small { font-size: 13px; color: var(--polish-muted); font-weight: 400; }
:root[data-ui-polish] .questions-head p { color: var(--polish-muted); font-size: 14px; line-height: 1.65; }
:root[data-ui-polish] .question-stats-grid strong { font-size: 26px; font-weight: 600; letter-spacing: 0; font-variant-numeric: tabular-nums; }
:root[data-ui-polish] :is(.question-list-summary,.recent-attempts,.question-card-actions,.coverage-panel,.review-controls) { font-size: 13px; line-height: 1.5; }
:root[data-ui-polish] .question-card-stem { font-size: var(--polish-reading); line-height: 1.75; }
:root[data-ui-polish] .question-card-options .option { font-size: 16px; line-height: 1.6; min-height: 40px; border-radius: 6px; }

/* One vocabulary for existing windows, including question-bank note previews. */
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock,.practice-panel) {
  --reader-panel-bg: var(--polish-panel);
  --reader-panel-bg-strong: var(--polish-panel);
  --reader-panel-border: var(--polish-line);
  --reader-panel-text-muted: var(--polish-muted);
  font-family: var(--sans-font);
  font-size: 14px;
  line-height: 1.55;
  color: var(--polish-ink);
}
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) { background: var(--polish-panel); border: 1px solid var(--polish-line); border-radius: 12px; box-shadow: var(--polish-shadow); backdrop-filter: none; -webkit-backdrop-filter: none; transition: opacity var(--polish-normal) var(--polish-ease), visibility var(--polish-normal); }
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) > header { min-height: 46px; padding: 8px 12px; gap: 8px; align-items: center; background: var(--polish-panel); border-bottom-color: var(--polish-line); }
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) > header :is(strong,h2) { font-size: 15px; font-weight: 600; line-height: 1.4; letter-spacing: 0; }
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) > header small { color: var(--polish-muted); font-size: 12px; line-height: 1.5; }
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) > nav { gap: 4px; padding: 6px 10px; border-bottom-color: var(--polish-line); }
:root[data-ui-polish] :is([data-floating-window],.question-note-dock,.question-resource-dock) > nav button { font-size: 13px; line-height: 1.5; border-radius: 5px; }
:root[data-ui-polish] .ui-polish-icon-button { display: inline-grid !important; place-items: center; flex: 0 0 32px !important; box-sizing: border-box; width: 32px !important; height: 32px !important; min-width: 32px !important; min-height: 32px !important; max-width: 32px !important; max-height: 32px !important; inline-size: 32px !important; block-size: 32px !important; min-inline-size: 32px !important; max-inline-size: 32px !important; min-block-size: 32px !important; max-block-size: 32px !important; aspect-ratio: 1; padding: 0 !important; border: 0; border-radius: 6px; background: transparent; color: var(--polish-muted); line-height: 1; }
:root[data-ui-polish] .ui-polish-icon-button svg { width: 16px; height: 16px; display: block; }
:root[data-ui-polish] .ui-polish-close { border-radius: 50% !important; }
:root[data-ui-polish] .ui-polish-icon-button:hover { color: var(--polish-ink); background: var(--polish-hover); }
:root[data-ui-polish] :is(.ui-polish-icon-button,.learning-icon-button).is-confirming { color: var(--polish-danger); background: color-mix(in srgb,var(--polish-danger) 12%,transparent); }

/* Form and menu rhythm: 12px metadata, 13px commands, 14px fields. */
:root[data-ui-polish] :is(.learning-ai-settings-form,.read-aloud-settings-menu,.learning-manager-content,.paragraph-visualization-body,.section-lesson-options,.selection-map-node-form,.question-filters,.review-login,.review-controls) :is(input:not([type="checkbox"]):not([type="range"]):not([type="radio"]),select,textarea) { min-width: 0; min-height: 34px; padding: 7px 9px; border: 1px solid var(--polish-control-line); border-radius: 6px; background: var(--polish-paper); color: var(--polish-ink); font-size: 14px; line-height: 1.5; box-shadow: none; }
:root[data-ui-polish] :is(.learning-ai-settings-form,.read-aloud-settings-menu,.question-filters,.review-login,.review-controls) label { min-width: 0; font-size: 13px; line-height: 1.5; gap: 8px; }
:root[data-ui-polish] :is(.learning-manager-content,.paragraph-visualization-body,.section-lesson-options,.selection-map-node-form,.question-filters,.review-login,.review-controls,.learning-ai-settings-form) button { min-height: 32px; border-radius: 6px; font: 13px/1.5 var(--sans-font); }
:root[data-ui-polish] :is(.markdown-note-more-menu,.markdown-note-picker-menu,.read-aloud-settings-menu,.learning-conversation-menu,.learning-image-jobs-menu,.selection-map-source-menu,.question-pins-menu,.reader-spotlight-menu,.reader-toc-panel,.book-switch) { border: 1px solid var(--polish-line); border-radius: 8px; background: var(--polish-panel); color: var(--polish-ink); box-shadow: var(--polish-shadow); backdrop-filter: none; font-size: 13px; line-height: 1.5; }
:root[data-ui-polish] :is(.markdown-note-more-menu,.markdown-note-picker-menu,.learning-conversation-menu,.learning-image-jobs-menu,.selection-map-source-menu,.question-pins-menu,.reader-spotlight-menu) { padding: 8px; }
:root[data-ui-polish] :is(.markdown-note-more-menu,.markdown-note-picker-menu,.learning-conversation-menu,.learning-image-jobs-menu,.selection-map-source-menu) button { min-height: 32px; padding: 7px 8px; border-radius: 5px; font-size: 13px; line-height: 1.5; }
:root[data-ui-polish] :is(.markdown-note-more-menu,.markdown-note-picker-menu,.learning-conversation-menu,.learning-image-jobs-menu) button:hover { background: var(--polish-hover); }
:root[data-ui-polish] :is(.markdown-note-more-menu,.markdown-note-picker-menu,.question-pins-menu,.reader-spotlight-menu) :is(small,strong) { font-size: 12px; line-height: 1.5; }
:root[data-ui-polish] .toc-list button { font-size: 13px; line-height: 1.55; min-height: 30px; border-radius: 5px; }
:root[data-ui-polish] .toc-list button.is-active { color: var(--polish-ink); background: var(--polish-fill); font-weight: 600; transform: none; }

/* Keep the live editor and toolbar exactly where v358 placed them. */
:root[data-ui-polish] .markdown-note-picker-trigger { font-size: 14px; font-weight: 500; }
:root[data-ui-polish] .markdown-note-toolbar { gap: 3px; padding: 4px 10px; border-bottom-color: var(--polish-line); background: transparent; }
:root[data-ui-polish] .markdown-note-toolbar button { min-width: 30px; width: 30px; height: 32px; min-height: 32px; padding: 5px; border-radius: 5px; font-size: 13px; }
:root[data-ui-polish] .markdown-note-toolbar button svg { width: 16px; height: 16px; }
:root[data-ui-polish] .markdown-note-toolbar :is(.markdown-note-text-toggle,.markdown-note-view-actions button) { width: auto; padding-inline: 7px; }
:root[data-ui-polish] .markdown-note-toolbar button:hover { background: var(--polish-hover); color: var(--polish-ink); }
:root[data-ui-polish] .markdown-rich-toolbar.markdown-note-toolbar .markdown-note-more-menu button { min-height: 34px !important; height: auto !important; padding: 7px 8px !important; font-size: 13px; line-height: 1.5; }
:root[data-ui-polish] .markdown-note-workspace > input { min-height: 52px; padding: 12px 20px; border: 0; border-bottom: 1px solid var(--polish-line); font-size: 20px; line-height: 1.4; font-weight: 600; }
:root[data-ui-polish] .markdown-note-workspace > .markdown-visual-editor { padding: 20px 24px 64px; }
:root[data-ui-polish] .markdown-note-workspace > textarea { padding: 20px 24px 64px; font: 14px/1.75 var(--polish-mono); }
:root[data-ui-polish] .markdown-visual-editor { color: var(--polish-ink); font-family: var(--sans-font); font-size: var(--polish-reading); line-height: 1.75; }
:root[data-ui-polish] .markdown-visual-editor :is(p,ul,ol,li,blockquote,table,th,td):not(svg *):not(.katex *) { font-size: inherit; line-height: 1.75; }
:root[data-ui-polish] .markdown-visual-editor > :is(p,ul,ol) { margin-block: .65em; line-height: 1.75; }
:root[data-ui-polish] .markdown-visual-editor h2:not(svg *):not(.katex *) { margin: 1.3em 0 .55em; font-size: 1.5em; line-height: 1.35; font-weight: 600; }
:root[data-ui-polish] .markdown-visual-editor h3:not(svg *):not(.katex *) { margin: 1.3em 0 .5em; font-size: 1.2em; line-height: 1.45; font-weight: 600; }
:root[data-ui-polish] .markdown-visual-editor :is(h4,h5,h6):not(svg *):not(.katex *) { font-size: 1.08em; line-height: 1.5; font-weight: 600; }
:root[data-ui-polish] .markdown-visual-editor > :first-child { margin-top: 0; }
:root[data-ui-polish] .markdown-visual-editor li + li { margin-top: .2em; }
:root[data-ui-polish] .markdown-visual-editor blockquote { margin: 1em 0; padding: 0 0 0 16px; border-left: 2px solid var(--polish-control-line); border-radius: 0; background: transparent; color: var(--polish-muted); }
:root[data-ui-polish] .markdown-visual-editor :is(pre,table) { border-color: var(--polish-line); }
:root[data-ui-polish] .markdown-note-statusbar { min-height: 28px; padding: 5px 14px; background: transparent; color: var(--polish-muted); font-size: 12px; line-height: 1.5; }
:root[data-ui-polish] .markdown-context-toolbar { padding: 6px; border-color: var(--polish-line); border-radius: 8px; background: var(--polish-panel); box-shadow: var(--polish-shadow); }
:root[data-ui-polish] .markdown-context-toolbar button { min-width: 30px; min-height: 30px; font-size: 13px; border-radius: 5px; }

/* AI conversation and settings remain the original pages and popovers. */
:root[data-ui-polish] .learning-sidebar { color: var(--polish-ink); font-size: 14px; }
:root[data-ui-polish] :is(.learning-dialogue,.tutor-messages) .learning-message-markdown { font-size: 16px; line-height: 1.75; }
:root[data-ui-polish] :is(.learning-dialogue,.tutor-messages) .learning-message-markdown :is(p,ul,ol,li,blockquote,table,th,td):not(svg *):not(.katex *) { font-size: inherit; line-height: 1.75; }
:root[data-ui-polish] :is(.learning-dialogue,.tutor-messages) .learning-message-markdown p { margin-block: .7em; }
:root[data-ui-polish] .learning-dialogue-item { border-color: var(--polish-line); border-radius: 8px; box-shadow: none; }
:root[data-ui-polish] .learning-message-box { padding: 8px; gap: 8px; border: 1px solid var(--polish-line); border-radius: 10px; background: var(--polish-panel); box-shadow: none; }
:root[data-ui-polish] .learning-message-box textarea { font-size: 15px; line-height: 1.6; }
:root[data-ui-polish] .learning-message-box button { display: grid; place-items: center; min-width: 32px; min-height: 32px; border-radius: 50%; }
:root[data-ui-polish] .learning-ai-settings-form { width: min(560px,calc(100vw - 24px)); padding: 0 20px 20px; gap: 14px; max-height: min(84dvh,680px); border-color: var(--polish-line); border-radius: 12px; background: var(--polish-panel); box-shadow: var(--polish-shadow); backdrop-filter: none; }
:root[data-ui-polish] .learning-ai-settings-portal[popover] { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: visible; }
:root[data-ui-polish] .learning-ai-settings-head { min-height: 60px; padding: 8px 12px 8px 20px; margin: 0 -20px 2px; background: var(--polish-panel); border-color: var(--polish-line); }
:root[data-ui-polish] .learning-ai-settings-head strong { font-size: 20px; line-height: 1.4; font-weight: 600; }
:root[data-ui-polish] .learning-ai-settings-head small { font-size: 12px; line-height: 1.5; }
:root[data-ui-polish] .learning-ai-settings-form label { grid-template-columns: 88px minmax(0,1fr); gap: 12px; }
:root[data-ui-polish] .learning-ai-settings-form p { font-size: 13px; line-height: 1.6; }
:root[data-ui-polish] .learning-ai-settings-form > div { gap: 8px; }
:root[data-ui-polish] .learning-ai-settings-form .learning-ai-settings-head { gap: 14px; }
:root[data-ui-polish] .learning-ai-settings-form button:not(.ui-polish-icon-button) { min-height: 34px; padding: 6px 10px; border: 1px solid var(--polish-line); border-radius: 6px; }
:root[data-ui-polish] .learning-ai-settings-form [data-learning-ai-save] { color: var(--polish-paper); background: var(--polish-ink); border-color: transparent; font-weight: 500; }
:root[data-ui-polish] .learning-ai-settings-version { font-size: 12px; line-height: 1.5; color: var(--polish-muted); }
:root[data-ui-polish] .learning-ai-settings-backdrop { background: light-dark(rgb(0 0 0 / .24),rgb(0 0 0 / .45)); backdrop-filter: none; }

/* Plugin panels: consistent rows and actions without changing their contents. */
:root[data-ui-polish] .library-manager-dock .learning-manager-content { padding: 8px 16px 16px; }
:root[data-ui-polish] .library-manager-dock .learning-manager-list { gap: 0; }
:root[data-ui-polish] .library-manager-dock .learning-manager-list article { padding: 12px 4px; border: 0; border-bottom: 1px solid var(--polish-line); border-radius: 0; background: transparent; }
:root[data-ui-polish] .library-manager-dock .learning-manager-list article:is(.is-selected,:has(input:checked)) { background: var(--polish-fill); }
:root[data-ui-polish] .learning-manager-actions { align-items: center; gap: 4px; }
:root[data-ui-polish] .learning-manager-actions .learning-icon-button { color: var(--polish-muted); border-radius: 50%; }
:root[data-ui-polish] .learning-manager-actions .learning-icon-button:hover { background: var(--polish-hover); color: var(--polish-ink); }
:root[data-ui-polish] .learning-manager-actions .is-danger:hover { color: var(--polish-danger); }
:root[data-ui-polish] :is(.learning-manager-list,.paragraph-visualization-item-copy,.section-lesson-unit) strong { font-size: 14px; line-height: 1.5; font-weight: 500; }
:root[data-ui-polish] :is(.learning-manager-list,.paragraph-visualization-item-copy,.section-lesson-unit) small { font-size: 12px; line-height: 1.5; color: var(--polish-muted); }
:root[data-ui-polish] :is(.section-lesson-unit-list,.paragraph-visualization-body) { padding: 14px; }
:root[data-ui-polish] :is(.paragraph-visualization-item,.section-lesson-unit) { padding: 10px 6px; border: 0; border-bottom: 1px solid var(--polish-line); border-radius: 0; background: transparent; box-shadow: none; }
:root[data-ui-polish] :is(.paragraph-visualization-item,.section-lesson-unit).is-selected { background: var(--polish-fill); }
:root[data-ui-polish] .paragraph-visualization-item-copy strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
:root[data-ui-polish] .section-lesson-unit.is-focused { box-shadow: inset 2px 0 var(--polish-accent); }
:root[data-ui-polish] .selection-map-dock > header { gap: 8px; flex-wrap: wrap; }
:root[data-ui-polish] .selection-map-dock > header nav { flex-wrap: wrap; gap: 4px; }
:root[data-ui-polish] :is(.selection-map-toolbar,.selection-map-hint,.selection-map-meta,.selection-map-node-form) { font-size: 13px; line-height: 1.5; }
:root[data-ui-polish] .selection-map-export > div { padding: 6px; border: 1px solid var(--polish-line); border-radius: 8px; background: var(--polish-panel); box-shadow: var(--polish-shadow); }
:root[data-ui-polish] .selection-map-export > div a { min-height: 34px; padding: 7px 9px; font-size: 13px; border-radius: 5px; }
:root[data-ui-polish] :is(.resource-dock-text,.note-form textarea) { font-size: 16px; line-height: 1.75; }
:root[data-ui-polish] :is(.learning-manager-empty,.paragraph-visualization-empty,.section-lesson-empty,.selection-map-empty) { font-size: 14px; line-height: 1.65; color: var(--polish-muted); }
:root[data-ui-polish] :is(.learning-mainline-head small,.learning-graph-copy small,.learning-branch-row small,.learning-provider-badge,.learning-image-jobs-menu small,.learning-conversation-menu small,.selection-map-meta small,.selection-map-heading small,.selection-map-task-status,.selection-map-node-source,.selection-map-node-comment,.paragraph-visualization-pptx-status,.section-lesson-selection small,.section-lesson-unit-status,.section-lesson-progress-copy small) { font-size: 12px; line-height: 1.5; color: var(--polish-muted); }
:root[data-ui-polish] .read-aloud-settings-menu { padding: 12px; }
:root[data-ui-polish] .read-aloud-settings-menu label { font-size: 13px; }
:root[data-ui-polish] #read-aloud-dock { border-color: var(--polish-line); background: var(--polish-panel); box-shadow: var(--polish-shadow); }
:root[data-ui-polish] #read-aloud-dock .read-aloud-source strong { font-size: 13px; font-weight: 500; }
:root[data-ui-polish] #read-aloud-dock .read-aloud-source small { font-size: 12px; color: var(--polish-muted); }
:root[data-ui-polish] #read-aloud-dock .read-aloud-control-button svg { width: 16px; height: 16px; stroke-width: 1.75; }

/* Question bank: a focused Typora-width practice surface inside the blog's
   navigation geometry. Secondary catalogs and audits use disclosure instead
   of competing with the current question. */
:root[data-ui-polish] body.questions-page { --question-content-width: 980px; --question-reading-width: 760px; }
:root[data-ui-polish] body.questions-page .site-frame { --question-nav-width: 150px; --question-nav-gap: 42px; --question-content-half: 490px; --question-nav-left: max(48px,calc(50vw - var(--question-content-half) - var(--question-nav-width) - var(--question-nav-gap))); }
:root[data-ui-polish] body.questions-page .site-header { box-sizing: border-box; width: min(calc(100vw - 40px),1020px); max-width: 1020px; padding: 18px 20px 22px; }
:root[data-ui-polish] body.questions-page .questions-layout { box-sizing: border-box; width: min(100%,var(--question-content-width)); max-width: var(--question-content-width); padding: 12px 20px 80px; }
:root[data-ui-polish] body.questions-page .questions-head { width: min(100%,var(--question-reading-width)); max-width: none; margin: 0 auto 14px; }
:root[data-ui-polish] body.questions-page .questions-head h1 { margin: 0 0 4px; font-size: 28px; line-height: 1.3; font-weight: 600; }
:root[data-ui-polish] body.questions-page .questions-head p { margin: 0; font-size: 13px; line-height: 1.55; }

:root[data-ui-polish] body.questions-page .question-stats,
:root[data-ui-polish] body.questions-page .question-filter-panel,
:root[data-ui-polish] body.questions-page .question-secondary-tools,
:root[data-ui-polish] body.questions-page .question-list-summary,
:root[data-ui-polish] body.questions-page .question-list,
:root[data-ui-polish] body.questions-page .load-more { width: min(100%,var(--question-reading-width)); margin-right: auto; margin-left: auto; }
:root[data-ui-polish] body.questions-page .question-stats { margin-top: 0; margin-bottom: 12px; overflow: hidden; border: 1px solid var(--polish-line); border-radius: 10px; background: var(--polish-panel); }
:root[data-ui-polish] body.questions-page .question-stats-grid button { grid-template-columns: 20px auto minmax(0,1fr); grid-template-areas: "icon value label" "icon helper helper"; column-gap: 7px; min-height: 54px; padding: 9px 11px; }
:root[data-ui-polish] body.questions-page .question-stats-grid button > i { grid-area: icon; align-self: center; color: var(--polish-muted); }
:root[data-ui-polish] body.questions-page .question-stats-grid button > i .ui-icon { width: 16px; height: 16px; }
:root[data-ui-polish] body.questions-page .question-stats-grid button > strong { grid-area: value; align-self: end; font-size: 15px; line-height: 1.3; font-weight: 600; }
:root[data-ui-polish] body.questions-page .question-stats-grid button > span { grid-area: label; align-self: end; color: var(--polish-ink); font-size: 13px; }
:root[data-ui-polish] body.questions-page .question-stats-grid button > small { grid-area: helper; align-self: start; font-size: 11px; }
:root[data-ui-polish] body.questions-page .recent-attempts { margin: 0; padding: 8px 12px; }

:root[data-ui-polish] body.questions-page .question-filter-panel { margin-top: 0; margin-bottom: 8px; border: 1px solid var(--polish-line); border-radius: 10px; background: var(--polish-panel); }
:root[data-ui-polish] body.questions-page .question-filter-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 8px 12px; list-style: none; cursor: pointer; }
:root[data-ui-polish] body.questions-page .question-filter-panel > summary::-webkit-details-marker { display: none; }
:root[data-ui-polish] body.questions-page .question-filter-panel > summary > span { display: inline-flex; align-items: center; gap: 7px; color: var(--polish-ink); font-size: 13px; font-weight: 500; }
:root[data-ui-polish] body.questions-page .question-filter-panel > summary > small { overflow: hidden; color: var(--polish-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
:root[data-ui-polish] body.questions-page .question-filter-panel > summary::after { content: ""; width: 7px; height: 7px; margin-left: 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform var(--polish-fast); }
:root[data-ui-polish] body.questions-page .question-filter-panel[open] > summary::after { transform: rotate(225deg) translate(-1px,-1px); }
:root[data-ui-polish] body.questions-page .question-filters { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0; padding: 12px; border-top: 1px solid var(--polish-line); }
:root[data-ui-polish] body.questions-page .question-filters label:first-child { grid-column: span 2; }
:root[data-ui-polish] body.questions-page .question-filters button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; gap: 7px; align-self: end; color: var(--polish-paper); background: var(--polish-ink); border-color: transparent; }

:root[data-ui-polish] body.questions-page .question-secondary-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; margin-bottom: 14px; }
:root[data-ui-polish] body.questions-page :is(.practice-entry,.coverage-panel) { margin: 0; padding: 0; border: 1px solid var(--polish-line); border-radius: 10px; background: var(--polish-panel); }
:root[data-ui-polish] body.questions-page :is(.practice-catalog,.coverage-summary) { margin: 0; }
:root[data-ui-polish] body.questions-page :is(.practice-catalog,.coverage-summary) > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; padding: 8px 11px; list-style: none; }
:root[data-ui-polish] body.questions-page :is(.practice-catalog,.coverage-summary) > summary::-webkit-details-marker { display: none; }
:root[data-ui-polish] body.questions-page :is(.practice-catalog,.coverage-summary) > summary :is(span,strong) { display: inline-flex; align-items: center; gap: 7px; color: var(--polish-ink); font-size: 12px; font-weight: 500; }
:root[data-ui-polish] body.questions-page :is(.practice-catalog,.coverage-summary) > summary small,
:root[data-ui-polish] body.questions-page .coverage-summary > summary span { color: var(--polish-muted); font-size: 11px; }
:root[data-ui-polish] body.questions-page .practice-catalog-grid { grid-template-columns: .8fr 1.35fr 1fr; gap: 12px; padding: 12px; border-top: 1px solid var(--polish-line); }
:root[data-ui-polish] body.questions-page .coverage-summary > small { display: block; padding: 0 11px 10px; }
:root[data-ui-polish] body.questions-page .coverage-panel-grid { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px; border-top: 1px solid var(--polish-line); }
:root[data-ui-polish] body.questions-page .coverage-panel:has(.coverage-summary[open]) { grid-column: 1 / -1; }

:root[data-ui-polish] body.questions-page .question-list-summary { min-height: 22px; margin-top: 0; margin-bottom: 8px; padding: 0 2px; }
:root[data-ui-polish] body.questions-page .question-list-summary > small { display: none; }
:root[data-ui-polish] body.questions-page .question-list { gap: 14px; }
:root[data-ui-polish] body.questions-page .question-card { gap: 12px; padding: 20px 22px; border: 1px solid var(--polish-line); border-radius: 12px; background: var(--polish-panel); box-shadow: none; }
:root[data-ui-polish] body.questions-page .question-card:last-child { border-bottom: 1px solid var(--polish-line); }
:root[data-ui-polish] body.questions-page .question-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
:root[data-ui-polish] body.questions-page .question-card-head strong { font-size: 15px; line-height: 1.4; }
:root[data-ui-polish] body.questions-page .question-card-head > span { padding: 2px 7px; border-radius: 999px; background: var(--polish-fill); font-size: 11px; }
:root[data-ui-polish] body.questions-page .question-browse-meta { margin-top: -6px; font-size: 11px; }
:root[data-ui-polish] body.questions-page .question-card-stem { font-size: 17px; line-height: 1.72; font-weight: 500; }
:root[data-ui-polish] body.questions-page .key-point-pills { opacity: .78; }
:root[data-ui-polish] body.questions-page .question-card-options { gap: 8px; }
:root[data-ui-polish] body.questions-page .question-card-options .option { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: center; min-height: 48px; padding: 9px 12px; border: 1px solid var(--polish-line); border-radius: 10px; background: transparent; color: var(--polish-ink); font-size: 16px; line-height: 1.55; text-align: left; box-shadow: none; transition: border-color var(--polish-fast),background-color var(--polish-fast),color var(--polish-fast); }
:root[data-ui-polish] body.questions-page .question-card-options .option:hover { border-color: var(--polish-control-line); background: var(--polish-fill); }
:root[data-ui-polish] body.questions-page .question-card-options .option.is-selected { border-color: var(--polish-accent); background: color-mix(in srgb,var(--polish-accent) 9%,transparent); }
:root[data-ui-polish] body.questions-page .question-card-options .option > strong { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--polish-control-line); border-radius: 50%; font-size: 12px; font-weight: 600; }
:root[data-ui-polish] body.questions-page .question-card-options .option.is-selected > strong { color: var(--polish-paper); border-color: var(--polish-accent); background: var(--polish-accent); }

:root[data-ui-polish] body.questions-page .question-card-actions { position: relative; display: flex; align-items: center; gap: 6px; min-height: 38px; padding-top: 12px; border-top: 1px solid var(--polish-line); }
:root[data-ui-polish] body.questions-page .question-card-actions > button,
:root[data-ui-polish] body.questions-page .question-card-more > summary { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; padding: 6px 10px; border: 1px solid var(--polish-line); border-radius: 7px; background: transparent; color: var(--polish-muted); font-size: 12px; list-style: none; }
:root[data-ui-polish] body.questions-page .question-card-actions > .question-primary-action { color: var(--polish-paper); border-color: var(--polish-ink); background: var(--polish-ink); font-weight: 500; }
:root[data-ui-polish] body.questions-page .question-card-actions > button:hover,
:root[data-ui-polish] body.questions-page .question-card-more > summary:hover { color: var(--polish-ink); background: var(--polish-fill); }
:root[data-ui-polish] body.questions-page .question-card-actions > .question-primary-action:hover { color: var(--polish-paper); background: color-mix(in srgb,var(--polish-ink) 88%,transparent); }
:root[data-ui-polish] body.questions-page .question-card-actions .ui-icon { width: 15px; height: 15px; }
:root[data-ui-polish] body.questions-page .question-card-actions > .question-result { margin-left: auto; }
:root[data-ui-polish] body.questions-page .question-card-more { position: relative; margin: 0; }
:root[data-ui-polish] body.questions-page .question-card-more > summary::-webkit-details-marker { display: none; }
:root[data-ui-polish] body.questions-page .question-card-more > summary span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
:root[data-ui-polish] body.questions-page .question-card-more > div { position: absolute; right: 0; bottom: calc(100% + 7px); z-index: 8; display: grid; min-width: 180px; padding: 6px; border: 1px solid var(--polish-line); border-radius: 9px; background: var(--polish-panel); box-shadow: var(--polish-shadow); }
:root[data-ui-polish] body.questions-page .question-card-more > div :is(button,a) { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--polish-ink); font-size: 12px; text-align: left; }
:root[data-ui-polish] body.questions-page .question-card-more > div :is(button,a):hover { background: var(--polish-fill); text-decoration: none; }
:root[data-ui-polish] body.questions-page .question-card-more > div button:disabled { color: var(--polish-muted); opacity: .5; }

:root[data-ui-polish] body.questions-page .question-stats-skeleton { display: grid; grid-template-columns: repeat(4,1fr); }
:root[data-ui-polish] body.questions-page .question-stats-skeleton i { height: 54px; border-right: 1px solid var(--polish-line); background: linear-gradient(100deg,var(--polish-panel) 20%,var(--polish-fill) 42%,var(--polish-panel) 64%); background-size: 220% 100%; animation: polish-question-skeleton 1.3s ease-in-out infinite; }
:root[data-ui-polish] body.questions-page .question-stats-skeleton i:last-child { border-right: 0; }
:root[data-ui-polish] body.questions-page .question-card-skeleton { display: grid; gap: 11px; padding: 20px 22px; border: 1px solid var(--polish-line); border-radius: 12px; background: var(--polish-panel); }
:root[data-ui-polish] body.questions-page .question-card-skeleton :is(i,span) { display: block; height: 12px; border-radius: 4px; background: linear-gradient(100deg,var(--polish-fill) 20%,var(--polish-hover) 42%,var(--polish-fill) 64%); background-size: 220% 100%; animation: polish-question-skeleton 1.3s ease-in-out infinite; }
:root[data-ui-polish] body.questions-page .question-card-skeleton .is-meta { width: 20%; height: 10px; }
:root[data-ui-polish] body.questions-page .question-card-skeleton .is-stem { width: 92%; height: 15px; }
:root[data-ui-polish] body.questions-page .question-card-skeleton .is-short { width: 62%; }
:root[data-ui-polish] body.questions-page .question-card-skeleton span { height: 46px; border-radius: 9px; }
@keyframes polish-question-skeleton { 0% { background-position: 100% 0; } 100% { background-position: -120% 0; } }

@media (min-width: 1480px) {
  :root[data-ui-polish] body.questions-page .site-header { position: absolute; top: 40px; left: var(--question-nav-left); width: var(--question-nav-width); max-width: var(--question-nav-width); padding: 0; margin: 0; }
  :root[data-ui-polish] body.questions-page .questions-layout { padding-top: 20px; }
}

@media (max-width: 760px) {
  :root[data-ui-polish] body.questions-page .site-header { width: 100%; padding-inline: 0; }
  :root[data-ui-polish] body.questions-page .questions-layout { padding: 10px 0 64px; }
  :root[data-ui-polish] body.questions-page .question-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  :root[data-ui-polish] body.questions-page .question-stats-grid button:nth-child(2) { border-right: 0; }
  :root[data-ui-polish] body.questions-page .question-filters { grid-template-columns: 1fr; }
  :root[data-ui-polish] body.questions-page .question-filters label:first-child { grid-column: auto; }
  :root[data-ui-polish] body.questions-page .question-secondary-tools { grid-template-columns: 1fr; }
  :root[data-ui-polish] body.questions-page .practice-catalog-grid,
  :root[data-ui-polish] body.questions-page .coverage-panel-grid { grid-template-columns: 1fr; }
  :root[data-ui-polish] body.questions-page .question-card { padding: 17px 16px; border-radius: 10px; }
  :root[data-ui-polish] body.questions-page .question-card-stem { font-size: 16px; }
  :root[data-ui-polish] body.questions-page .question-card-options .option { font-size: 15px; }
}

@media (max-width: 760px) {
  :root[data-ui-polish] .markdown-note-workspace > .markdown-visual-editor { padding: 16px 18px 48px; }
  :root[data-ui-polish] .markdown-note-workspace > input { padding-inline: 18px; font-size: 19px; }
  :root[data-ui-polish] .learning-ai-settings-form { padding-inline: 16px; }
  :root[data-ui-polish] .learning-ai-settings-head { margin-inline: -16px; padding-left: 16px; }
  :root[data-ui-polish] .learning-ai-settings-form label { grid-template-columns: 72px minmax(0,1fr); gap: 8px; }
  :root[data-ui-polish] .pdf-toolbar button { width: 24px; padding-inline: 4px; }
}
@media (pointer: coarse) {
  :root[data-ui-polish] :is(.learning-ai-settings-form,.read-aloud-settings-menu,.question-filters,.review-login) :is(input:not([type="checkbox"]):not([type="range"]),select,textarea) { font-size: 16px; min-height: 40px; }
  :root[data-ui-polish] .markdown-rich-toolbar.markdown-note-toolbar .markdown-note-more-menu button { min-height: 40px !important; }
}
@media (max-width: 360px) {
  :root[data-ui-polish] .markdown-note-toolbar { height: auto; flex-wrap: wrap; row-gap: 4px; }
  :root[data-ui-polish] .markdown-note-format-actions { flex-basis: 100%; }
}

@media (max-width: 860px) {
  :root[data-ui-polish] .reader-site-frame .site-header { left: 20px; transform: none; }
}
@media (prefers-contrast: more) {
  :root[data-ui-polish] { --polish-muted: light-dark(#414145,#c7c7cc); --polish-line: var(--polish-control-line); }
}
@media (prefers-reduced-motion: reduce) {
  :root[data-ui-polish] { --polish-fast: 0ms; --polish-normal: 0ms; }
  :root[data-ui-polish] :is(button,summary,[data-floating-window],.learning-ai-settings-form,.reader-activity-bar,.markdown-context-toolbar) { animation: none !important; transition: none !important; }
  :root[data-ui-polish] body.questions-page .question-card-skeleton :is(i,span),
  :root[data-ui-polish] body.questions-page .question-stats-skeleton i { animation: none !important; }
}
