/* M2 reading library, document editor, imports, and review collection. */
body[data-access="locked"] .library { display:none; }
body[data-access="locked"] .workspace { grid-template-columns:1fr; max-width:700px; }
#access-panel input { display:block; width:100%; padding:12px; margin:10px 0 18px; min-height:44px; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:7px; }
#automation-panel { margin-block:12px; }
#automation-panel summary { min-height:44px; cursor:pointer; padding-block:12px; }
#automation-panel label { line-height:1.8; }
#automation-panel .analysis-tools { border:0; }
#job-status { overflow-wrap:anywhere; }
.speech-controls { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-block:12px; }
.speech-controls label { font-size:11px; }
.speech-controls select { min-height:44px; max-width:100%; min-width:0; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:7px; padding:7px; }
#speech-voice { flex:1 1 150px; }
.speech-note { font-size:11px; }
#difficulty-panel, #hint-panel, #cue-panel { margin-block:12px; }
#difficulty-panel > summary, #hint-panel > summary, #cue-panel > summary { min-height:44px; cursor:pointer; padding-block:12px; }
.difficulty-form { padding-block:12px; border-top:1px solid var(--line); }
.difficulty-form label { display:block; margin-top:12px; }
.difficulty-form input, .difficulty-form select, #library-level, #question-picker, #question-template, #message-role { min-height:44px; width:100%; max-width:100%; min-width:0; border:1px solid var(--line); border-radius:7px; padding:8px; color:var(--ink); background:var(--surface); }
.difficulty-form button { margin-top:10px; }
.hint-card, .cue-card, .message-card { padding:12px; margin-block:10px; border:1px solid var(--line); border-radius:8px; overflow-wrap:anywhere; }
.hint-card h3, .message-card h3 { font-size:12px; }
.hint-card p, .message-card p { white-space:pre-wrap; }
@media(max-width:720px){.library > label, #library-level, #library-filter-notice { grid-column:1/-1; }.speech-controls { gap:5px; }.speech-controls button { font-size:11px; }}
.library-action { display:block; width:100%; text-align:left; margin-top:9px; }
#document-list { display:grid; gap:8px; max-height:50vh; overflow:auto; padding:4px; margin-inline:-4px; }
.document-link:not([aria-current]) { background:var(--surface); }
.document-link[aria-current] { border-color:var(--accent); }
.document-controls, .analysis-tools, .sentence-navigation { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0; }
.document-controls label { font-size:11px; color:var(--muted); margin-left:auto; }
.document-controls select, .sentence-navigation select, #collection-filter { max-width:100%; min-width:0; padding:8px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); font-size:12px; min-height:44px; }
.sentence-navigation { flex-wrap:nowrap; }
.sentence-navigation select { flex:1; width:0; }
.sentence-navigation button { flex-shrink:0; }
progress.completion-track { display:block; width:100%; appearance:none; border:0; }
progress.completion-track::-webkit-progress-bar { background:var(--line); }
progress.completion-track::-webkit-progress-value { background:var(--accent); }
progress.completion-track::-moz-progress-bar { background:var(--accent); }
.info-banner { padding:12px 16px; font-size:12px; background:var(--accent-soft); border:1px solid var(--line); border-radius:8px; }
.sentence-context { border-top:1px solid var(--line); margin-bottom:18px; font-size:12px; }
.sentence-context summary { min-height:44px; display:flex; align-items:center; color:var(--muted); }
.sentence-context p { overflow-wrap:anywhere; }
.analysis-tools { padding-bottom:12px; border-bottom:1px solid var(--line); }
.analysis-tools .muted { margin-left:auto; }
.collection-card { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:18px; margin:14px 0; overflow-wrap:anywhere; }
.collection-card h2 { font-size:13px; margin:0 0 12px; }
.collection-card .english { font-size:calc(21px * var(--reading-scale)); }
.wide-dialog { width:min(760px,calc(100% - 24px)); max-height:calc(100% - 24px); overflow:auto; }
dialog input:not([type="checkbox"]), dialog textarea { width:100%; min-width:0; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:11px; font-size:14px; }
dialog input:not([type="checkbox"]) { min-height:44px; }
dialog textarea { resize:vertical; }
dialog textarea[readonly] { font-family:ui-monospace,monospace; font-size:12px; }
dialog input[type="file"] { overflow:hidden; }
dialog .help-choice { align-items:flex-start; min-height:44px; line-height:1.8; margin:15px 0; }
dialog .help-choice input { margin-top:5px; flex-shrink:0; }
dialog button { margin-top:8px; }
dialog .settings-heading button { margin-top:0; }
dialog hr { border:0; border-top:1px solid var(--line); margin:25px 0; }
dialog p { overflow-wrap:anywhere; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-grid > div { min-width:0; }
.dialog-notice { white-space:pre-wrap; font-size:12px; min-height:1.8em; }
.dialog-notice[data-kind="error"] { color:var(--danger); }
@media (max-width:720px) {
  .library { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .library h2, #document-list, #more-documents { grid-column:1/-1; }
  .library .library-action { margin:0; font-size:11px; min-width:0; }
  #document-list { max-height:190px; margin-top:6px; }
  .document-link { display:block; }
  .document-link span { display:block; margin-top:4px; }
  .document-controls { gap:5px; }
  .document-controls label { margin-left:0; }
  .document-controls select { flex:1; }
  .sentence-navigation { gap:4px; }
  .sentence-navigation button { font-size:11px; padding-inline:5px; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .wide-dialog { padding:18px; }
  .analysis-tools { gap:4px; }
  .analysis-tools .muted { margin-left:0; width:100%; }
}

#offline-conflicts pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; }
#connection-status:empty { display:none; }
#exercise-tools, #reflection-tools { margin-block:16px; }
#review-items button { text-align:left; white-space:normal; overflow-wrap:anywhere; }
.site-header { flex-wrap:wrap; }
.site-header > .brand { margin-right:auto; }
.site-header > button { margin-left:0; }
#connection-status { flex-basis:100%; order:2; }
body[data-access="locked"] :is(#open-practice, #open-offline) { display:none; }
/* Reading supply: one column on narrow devices; prose wraps at 200% text size. */
.content-card { padding:18px; margin-block:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow-wrap:anywhere; }
.content-card h4, .content-card h5 { margin: .5rem 0; }
.content-card button { margin: .25rem; }
#reading-dialog fieldset { min-width: 0; margin: 1rem 0; }
#reading-dialog details { margin: 1rem 0; }
#reading-dialog summary { cursor: pointer; font-weight: 600; }
#reading-dialog form { margin-top: 1rem; }
#reading-dialog input, #reading-dialog select, #reading-dialog textarea { max-width: 100%; min-width: 0; }
.source-grid, .publisher-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-block:24px; }
@media(min-width:760px) { .source-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.source-hub-title { margin-bottom:8px; font-size:clamp(21px,4vw,30px); letter-spacing:-.035em; }
.source-card, .publisher-card { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0; padding:22px; text-align:left; white-space:normal; overflow-wrap:anywhere; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--ink); }
.source-card strong, .publisher-card strong { font-size:20px; }
.source-card > span:not(.eyebrow):not(.source-symbol):not(.source-card-action) { color:var(--muted); font-weight:400; font-size:13px; line-height:1.7; }
.source-card:hover, .publisher-card:hover { border-color:var(--accent); background:var(--accent-soft); }
.source-card-featured { background:var(--accent-soft); }
.source-symbol, .publisher-mark { display:flex; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; padding:0; white-space:nowrap; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); color:var(--accent); font-weight:800; font-size:18px; }
.source-card-action { margin-top:auto; padding-top:10px; color:var(--accent); font-size:12px; font-weight:700; }
#registration-file-tools { margin-block:16px; }
#registration-file-tools summary { min-height:44px; cursor:pointer; align-content:center; }
.source-back { margin-bottom:12px; }
.news-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-block:16px; }
.news-list-heading h3 { margin:6px 0; font-size:24px; }
.news-list-heading > button { white-space:nowrap; }
.news-article-list { list-style:none; padding:0; margin:24px 0; counter-reset:articles; }
.news-article { display:flex; align-items:center; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.news-article::before { counter-increment:articles; content:counter(articles,decimal-leading-zero); align-self:flex-start; color:var(--muted); font-size:12px; padding-top:7px; }
.news-article-copy { flex:1; min-width:0; }
.news-article h4 { margin:0; font-family:Georgia,serif; font-size:20px; line-height:1.5; overflow-wrap:anywhere; }
.news-article .muted { font-size:12px; margin:8px 0; }
.news-article > button { flex-shrink:0; font-size:12px; }
.news-row-notice { margin:0; font-size:12px; color:var(--muted); }
@media(max-width:520px) {
  .source-grid, .publisher-grid { gap:10px; }
  .source-card, .publisher-card { padding:16px; gap:8px; }
  .source-card strong, .publisher-card strong { font-size:17px; }
  .source-card .eyebrow, .publisher-card .eyebrow { font-size:9px; letter-spacing:.08em; }
  .news-article { flex-wrap:wrap; gap:10px; }
  .news-article-copy { flex-basis:calc(100% - 34px); }
  .news-article > button { margin-left:26px; }
  .news-list-heading { align-items:flex-start; }
  .news-list-heading h3 { font-size:21px; }
}
@media(max-width:400px) {
  .source-grid, .publisher-grid { grid-template-columns:minmax(0,1fr); }
  .source-card, .publisher-card { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:14px; row-gap:4px; }
  .source-card > .source-symbol, .publisher-card > .publisher-mark { grid-column:1; grid-row:1 / span 3; }
  .source-card > :not(.source-symbol), .publisher-card > :not(.publisher-mark) { grid-column:2; }
  .source-card > .eyebrow, .publisher-card > .eyebrow { display:none; }
  .source-card-action { padding-top:4px; }
}

/* Keep the active sentence central; open library and secondary tools on demand. */
.workspace { display:block; max-width:860px; }
.site-header { max-width:1120px; gap:16px; min-height:80px; padding:16px 24px; margin:20px auto 0; background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.primary-nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
main { padding:40px 30px; }
.reader-heading { align-items:flex-start; margin-bottom:24px; }
.reader-heading > div:first-child { min-width:0; }
.reader-heading h1 { overflow-wrap:anywhere; }
.reader-heading-actions { display:flex; flex-direction:column; align-items:flex-end; gap:12px; flex-shrink:0; }
#open-full-text { white-space:nowrap; }
.primary-nav button:hover, .primary-nav button:focus-visible { color:var(--accent); background:var(--accent-soft); }
.sentence-navigation { background:var(--surface); border:1px solid var(--line); padding:6px; border-radius:12px; margin-bottom:18px; }
.sentence-navigation select { background:var(--surface-soft); }
#library-dialog .library { display:block; padding:0; border:0; }
#library-dialog .library-action { display:inline-block; width:auto; margin:0 12px 16px 0; }
#library-dialog .section-label { margin:16px 0 8px; }
#library-dialog #document-list { margin-top:16px; max-height:50vh; }
#library-dialog .document-link { display:block; }
#library-dialog .document-link span { display:block; margin-top:5px; }
#library-dialog .document-link strong { margin:0; }
.app-menu { position:relative; }
.app-menu > summary { min-height:44px; display:flex; align-items:center; padding:8px 12px; font-size:12px; border:1px solid var(--line); border-radius:8px; list-style:none; }
.app-menu-items { position:absolute; right:0; top:calc(100% + 8px); z-index:5; min-width:190px; padding:8px; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 30px #102b2220; }
.app-menu-items button { display:block; text-align:left; width:100%; }
.compact-disclosure > summary, .reader-tools > summary { min-height:44px; display:flex; align-items:center; gap:12px; color:var(--muted); font-size:12px; list-style:none; }
.compact-disclosure > summary::after, .reader-tools > summary::after { content:"＋"; margin-left:auto; }
.compact-disclosure[open] > summary::after, .reader-tools[open] > summary::after { content:"−"; }
#document-tools { margin-bottom:20px; padding:0 16px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
#document-tools .document-meta { margin-block:4px 12px; }
.speech-controls { margin:0 0 12px; }
#speech-options { flex:1; min-width:130px; }
#speech-options[open] { flex-basis:100%; border:1px solid var(--line); border-radius:10px; padding:0 12px 12px; }
#speech-options label { display:block; margin:8px 0; }
#speech-options select { width:100%; }
.reader-tools { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:0 16px; margin:12px 0 28px; }
.reader-tools > summary { color:var(--ink); font-weight:650; }
.reader-tools > summary span { font-weight:400; color:var(--muted); font-size:11px; }
.reader-tools .analysis-tools { border:0; margin-bottom:0; }
.tool-actions { display:flex; gap:8px; flex-wrap:wrap; }
#analysis-version { font-size:11px; }
.save-notice { margin-bottom:10px; }
.analysis-heading { margin-bottom:16px; }
body[data-access="locked"] .private-action { display:none; }
@media(max-width:720px) {
  .site-header { padding:12px 20px; gap:8px; margin:0; border-radius:0; border-width:0 0 1px; box-shadow:none; }
  .primary-nav { order:3; flex-basis:100%; justify-content:space-between; }
  .primary-nav button { font-size:12px; padding-inline:8px; }
  main { padding:24px 20px; }
  .source-text { font-size:calc(25px * var(--reading-scale)); }
  .reader-tools > summary span { font-size:10px; }
  #connection-status { order:4; }
  .reader-heading { flex-wrap:wrap; gap:16px; }
  .reader-heading-actions { flex-direction:row; align-items:center; justify-content:space-between; width:100%; }
  .sentence-navigation { gap:4px; }
  .sentence-navigation button { padding-inline:8px; }
  .analysis-section > summary { padding-inline:14px; gap:10px; }
  .analysis-body { padding-inline:14px; }
}
#reading-dialog [data-reading-panel] > h3 { margin-top:0; }

/* A continuous reading surface preserves the saved text and paragraph breaks. */
#full-text-dialog { width:min(900px,calc(100% - 24px)); }
#full-text-dialog .settings-heading { align-items:flex-start; }
#full-text-dialog .settings-heading > div { min-width:0; overflow-wrap:anywhere; }
#full-text-dialog .settings-heading > button { flex-shrink:0; border-color:var(--line); background:var(--surface); }
.full-text-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.full-text-toolbar p { margin:0; }
.full-text-toolbar a { color:var(--accent); }
.full-text-content { white-space:pre-wrap; overflow-wrap:anywhere; font-family:Georgia,"Noto Serif",serif; font-size:calc(21px * var(--reading-scale)); line-height:2; padding:28px; margin-top:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.full-text-sentence { display:inline; padding:3px 0; min-height:44px; font:inherit; color:inherit; text-align:left; border:0; border-radius:4px; background:transparent; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.full-text-sentence:hover, .full-text-sentence:focus-visible { color:var(--accent); background:var(--accent-soft); }
.full-text-sentence[aria-current] { background:var(--accent-soft); text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:5px; }
@media(max-width:600px) { dialog { padding:20px; } .full-text-content { padding:18px; font-size:calc(19px * var(--reading-scale)); } }

/* Home keeps one reading action in focus; review is optional. */
body[data-view="home"] .workspace { max-width:800px; }
.primary-nav [aria-current="page"] { color:var(--accent); background:var(--accent-soft); }
.home-heading { margin:12px 0 28px; }
.home-heading h1 { font-size:32px; }
.home-heading .muted { margin-bottom:0; }
#home-notice:empty { display:none; }
.home-card { padding:32px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); min-width:0; overflow-wrap:anywhere; }
.home-card h2 { margin:0; font-size:24px; line-height:1.5; letter-spacing:-.5px; }
.home-continue { border-top:3px solid var(--accent); }
.home-excerpt { font-family:Georgia,serif; font-size:24px; line-height:1.7; margin:20px 0 12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.home-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding-top:14px; }
.home-alternatives { display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:24px; padding-top:16px; border-top:1px solid var(--line); }
.home-review { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; margin-top:20px; padding:12px 4px; }
.home-review h2 { font-size:16px; margin:0; }
.home-review p { font-size:13px; margin:6px 0 0; }
@media(max-width:720px) {
  .primary-nav { gap:0; }
  .primary-nav button { padding-inline:6px; }
  .home-heading h1 { font-size:26px; }
  .home-card { padding:22px; }
  .home-card h2 { font-size:21px; }
  .home-excerpt { font-size:21px; }
}

.update-versions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.update-versions > div { background: var(--surface-soft); border: 1px solid var(--line); border-radius: 12px; padding: 16px; min-width: 0; }
.update-versions dt { color: var(--muted); font-size: .85em; }
.update-versions dd { margin: 8px 0 0; font-weight: 700; overflow-wrap: anywhere; }
#update-progress { width: 100%; margin: 4px 0 16px; accent-color: var(--accent); }
#update-approval { margin-top: 20px; }
#updates-dialog .analysis-tools { flex-wrap: wrap; }
@media (max-width: 400px) { .update-versions { grid-template-columns: 1fr; } }

.analysis-registration { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; margin-top:16px; color:var(--muted); font-size:13px; }
#analysis-registration-progress { width:160px; max-width:100%; height:7px; accent-color:var(--accent); }
.analysis-registration-help { margin-bottom:4px; }
#analysis-job-banner { margin-top:12px; }
#analysis-job-progress { display:block; width:100%; margin-top:10px; accent-color:var(--accent); }
#job-status { margin-bottom:0; overflow-wrap:anywhere; }

#registration-progress { display:block; width:100%; margin-block:12px; accent-color:var(--accent); }
#registration-jobs:empty { display:none; }
#registration-jobs .document-link { margin-bottom:10px; }
#registration-provider, #registration-notice { overflow-wrap:anywhere; }

/* A small library overview and one learning task at a time. */
.library-actions, .search-controls, .practice-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.library-actions { justify-content:space-between; margin-bottom:20px; }
.search-controls { flex-wrap:nowrap; margin-block:8px 18px; }
.search-controls input { flex:1; width:0; }
.search-controls button { flex-shrink:0; margin-top:0; }
#library-search-form label, .practice-search label { font-size:13px; font-weight:650; }
.library-levels { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:6px; }
.library-level { min-width:0; min-height:64px; margin:0; padding:9px 4px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--muted); }
.library-level span, .library-level strong { display:block; }
.library-level span { font-size:12px; }
.library-level strong { margin-top:4px; font-size:18px; color:var(--ink); }
.library-level[aria-pressed="true"] { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }
.library-level-note { margin:10px 0 20px; font-size:11px; }
#library-filter-notice:empty { display:none; }
#library-dialog #document-list { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; overflow:visible; margin:12px 0; padding:0; }
#library-dialog .document-link { min-width:0; margin:0; padding:18px; }
#library-dialog .document-link strong { font-size:14px; line-height:1.6; }
#library-dialog #more-documents { display:block; margin:12px auto; }
#library-jobs { border-top:1px solid var(--line); margin-top:24px; }
.practice-nav { display:flex; gap:6px; padding:5px; margin:20px 0; border-radius:12px; background:var(--surface-soft); }
.practice-nav button { flex:1; min-width:0; margin:0; }
.practice-nav [aria-pressed="true"] { background:var(--surface); color:var(--accent); box-shadow:var(--shadow); }
#practice-notice { font-size:13px; line-height:1.8; color:var(--muted); }
#practice-notice:empty { display:none; }
#review-form { padding:20px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
#review-front { font-size:calc(25px * var(--reading-scale)); line-height:1.7; margin-top:0; }
#review-form > label { display:block; font-size:13px; margin-block:18px 8px; }
#review-meaning { font-size:14px; color:var(--muted); }
#review-ratings { display:flex; flex-wrap:wrap; gap:6px; }
#review-ratings button { flex:1; min-width:60px; border:1px solid var(--line); }
.practice-empty { padding:24px 12px; font-size:14px; line-height:1.9; color:var(--muted); }
.practice-extra { margin-top:24px; padding-top:8px; border-top:1px solid var(--line); }
.practice-extra > summary, #exercise-tools > summary { min-height:44px; padding-block:12px; cursor:pointer; font-size:13px; font-weight:650; }
#review-settings { margin-top:18px; }
#expression-form { padding:18px; margin:16px 0; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
#expression-form label { display:block; font-size:12px; margin-block:12px 6px; }
.expression-row { margin-block:8px; }
.expression-entry { width:100%; display:block; text-align:left; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow-wrap:anywhere; }
.expression-entry strong, .expression-entry span { display:block; }
.expression-entry span { margin-top:6px; color:var(--muted); font-size:13px; }
.expression-entry:hover { border-color:var(--accent); }
#reflection-tools { border-top:1px solid var(--line); margin-top:18px; padding-top:12px; }
@media(max-width:720px) {
  .library-levels { grid-template-columns:repeat(4,minmax(0,1fr)); }
  #library-dialog #document-list { grid-template-columns:minmax(0,1fr); }
  .library-actions button { font-size:12px; }
  #review-form { padding:16px; }
}
