.material-upload { margin: 36px 0 28px; padding: clamp(20px, 4vw, 36px); border: 1px solid var(--border, var(--line)); border-radius: 14px; background: var(--panel); }
.library-add-dialog { width:min(760px,calc(100vw - 32px)); max-width:none; max-height:min(calc(92vh / var(--ui-zoom, 1)),900px); overflow:auto; overscroll-behavior:contain; padding:0; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:var(--panel); box-shadow:0 24px 80px #0009; }
.library-add-dialog::backdrop { background:var(--overlay); backdrop-filter:blur(2px); }
.library-add-dialog-header { position:sticky; top:0; z-index:2; display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:16px; padding:0 22px; border-bottom:1px solid var(--line); color:var(--ink); background:var(--panel); font:400 17px/1.2 var(--serif,Georgia,serif); }
.library-add-dialog-close { min-height:34px; padding:6px 10px; border:1px solid var(--line); border-radius:5px; color:var(--muted); background:var(--panel-raised); font:12px var(--sans,Arial,sans-serif); cursor:pointer; }
.library-add-dialog-close:hover { border-color:var(--accent-border); color:var(--gold-soft); }
.library-add-dialog>.material-upload { margin:0; padding:22px 24px 25px; border:0; border-radius:0; background:transparent; }
.library-add-dialog .material-upload h2 { font-size:30px; }
.library-add-dialog .material-upload .lede { font-size:14px; }
.library-add-dialog .material-editor { max-width:none; margin:18px 0 0; padding:0; border:0; border-radius:0; background:transparent; }
.library-add-dialog .material-editor textarea { min-height:200px; }
.material-upload-storage { margin-top:20px; border-top:1px solid var(--line); }
.material-upload-storage>summary { display:flex; min-height:46px; align-items:center; justify-content:space-between; padding:8px 0; color:var(--muted); font-size:13px; cursor:pointer; list-style:none; }
.material-upload-storage>summary::-webkit-details-marker { display:none; }
.material-upload-storage>summary::after { content:"+"; color:var(--gold); font-size:18px; }
.material-upload-storage[open]>summary::after { content:"−"; }
.material-upload-storage>.material-storage { margin:0; padding-bottom:10px; border:0; }
.material-upload h2 { font-size: clamp(28px, 3vw, 38px); margin: 2px 0 8px; }
.material-upload .lede { max-width: 65ch; }
.material-editor { display: grid; gap: 18px; }
.material-editor textarea { min-height: 170px; resize: vertical; }
.material-editor .btn { justify-self: start; }
.material-help, .material-result-notice, .material-connection { color: var(--muted); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.material-connection, .material-result-notice { border-left: 2px solid var(--accent); padding: 10px 14px; background: color-mix(in srgb, var(--ink) 2%, transparent); }
.material-file { display: grid; gap: 6px; padding: 18px; border: 1px dashed var(--line-strong); border-radius: 8px; cursor: pointer; }
.material-file input { max-width: 100%; font-size: 13px; }
.material-file:focus-within { outline: 2px solid var(--accent); outline-offset: 3px; }
.material-check { display: flex; gap: 9px; align-items: start; font-size: 14px; cursor: pointer; }
.material-check input { width: 17px; height: 17px; margin-top: 3px; flex-shrink: 0; accent-color: var(--accent); }
.material-ai-settings { min-width: 0; padding: 16px; border: 1px solid var(--border, var(--line)); border-radius: 8px; }
.material-ai-settings legend { padding: 0 8px; font-size: 14px; }
.material-ai-settings input[type=number] { max-width: 140px; }
.material-format-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.material-workspace { border: 1px solid var(--border, var(--line)); border-radius: 10px; margin: 14px 0; background: var(--panel); }
.material-workspace-title { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 20px; cursor: pointer; list-style: none; }
.material-workspace-title::after { content: "+"; font-size: 24px; }
.material-workspace[open] > .material-workspace-title::after { content: "−"; }
.material-workspace-title h3 { font-size: 24px; margin: 3px 0; overflow-wrap: anywhere; }
.material-workspace-body { display: grid; gap: 22px; padding: 0 20px 24px; }
.material-original > summary, .material-answer-key > summary { cursor: pointer; padding: 12px 0; color: var(--text, var(--ink)); font-size: 14px; }
/* Disclosure rows use one chevron instead of the browser triangle. */
.material-original > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; }
.material-original > summary::-webkit-details-marker { display: none; }
.material-original > summary::after { content: ""; flex: none; width: 7px; height: 7px; margin-right: 4px; border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted); transform: translateY(-2px) rotate(45deg); transition: transform .16s ease; }
.material-original[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.material-original > summary:hover { color: var(--gold-soft); }
@media (prefers-reduced-motion: reduce) { .material-original > summary::after { transition: none; } }
.material-original .material-editor { margin: 14px 0; }
.material-original .material-markdown { max-height: calc(65vh / var(--ui-zoom, 1)); overflow: auto; }
.material-ai-output { min-width: 0; }
.material-job-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }
.material-job-progress { width: 100%; height: 8px; margin: 16px 0; accent-color: var(--accent); }
.material-job-error, .is-error { color: var(--red); font-size: 14px; overflow-wrap: anywhere; }
.material-result-summary { margin: 24px 0; }
.material-result-summary .material-markdown { max-width: 72ch; }
.material-source-links { display: flex; flex-wrap: wrap; gap: 12px; max-height: 130px; overflow: auto; margin-top: 14px; }
.material-source-block { padding: 14px; margin: 10px 0; background: color-mix(in srgb, var(--ink) 3%, transparent); border-radius: 6px; scroll-margin: 24px; }
.material-source-block p { white-space: pre-wrap; }
.material-evidence { margin: 12px 0; padding: 8px 14px; border-left: 2px solid var(--line-strong); color: var(--muted); font-size: 14px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.material-generated-questions { margin-top: 24px; }
.material-question { border-top: 1px solid var(--border, var(--line)); margin-top: 12px; }
.material-question > summary { display: flex; align-items: start; gap: 12px; padding: 16px 0; cursor: pointer; list-style: none; }
.material-question > summary input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 5px; accent-color: var(--accent); }
.material-question > summary strong { display: block; font-size: 15px; line-height: 1.6; }
.material-question-body { padding: 0 0 16px 30px; }
.material-answer-key pre { overflow: auto; max-height: 350px; white-space: pre-wrap; font-size: 13px; }
@media (max-width: 700px) { .material-format-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .material-workspace-title { flex-wrap: wrap; gap: 8px; padding: 16px; } .material-workspace-body { padding-left: 16px; padding-right: 16px; } .material-upload { padding: 18px; } }
@media (max-width: 600px) { .library-add-dialog { width:100%; max-width:none; max-height:calc(100dvh / var(--ui-zoom, 1)); height:calc(100dvh / var(--ui-zoom, 1)); margin:0; padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom); border-radius:0; } .library-add-dialog>.material-upload { padding:18px 16px 24px; } .library-add-dialog .material-upload h2 { font-size:26px; } }
@media (max-width: 420px) { .material-format-grid { grid-template-columns: 1fr; } }
.material-storage { margin: 24px 0; padding-bottom: 20px; border-bottom: 1px solid var(--border, var(--line)); }
.material-storage .field { width: 100%; min-width: 0; max-width: 480px; }
.material-storage .actions { flex-wrap: wrap; }
.material-storage .actions > span { flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.material-storage ul { overflow-wrap: anywhere; }
.material-storage select { width: 100%; max-width: 100%; min-height: 44px; }
.material-storage { overflow-wrap: anywhere; }
.material-storage .btn { max-width: 100%; white-space: normal; }

/* «Мой конспект» (web/summary-editor.js): редактор с лекцией. Только токены из style.css, без новых цветов и теней. */
.library-add-dialog.is-summary-editor { width: min(1320px, calc(100vw - 24px)); height: calc((100vh - 24px) / var(--ui-zoom, 1)); max-height: calc((100vh - 24px) / var(--ui-zoom, 1)); overflow: hidden; }
.summary-editor { display: flex; flex-direction: column; gap: 16px; height: 100%; min-height: 0; padding: 18px 22px 22px; color: var(--ink); }
.summary-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.summary-back { min-height: 40px; padding: 6px 4px; border: 0; background: transparent; color: var(--muted); font: 14px var(--sans); cursor: pointer; }
.summary-back:hover { color: var(--gold-soft); }
.summary-title { flex: 1 1 320px; min-width: 0; padding: 2px 0; border: 0; background: transparent; color: var(--ink); font: 400 clamp(28px, 3.4vw, 40px)/1.15 var(--serif); }
/* Inline title: a quiet underline on hover and focus instead of a box around the large heading. */
.summary-title { border-bottom: 1px solid transparent; border-radius: 0; transition: border-color .15s ease; }
.summary-title:hover { border-bottom-color: var(--line); }
.summary-title:focus-visible { outline: none; border-bottom-color: var(--gold-soft); }
.summary-title::placeholder { color: var(--muted); opacity: .7; }
.summary-status { margin: 0 0 0 auto; color: var(--muted); font-size: 13px; line-height: 1.4; white-space: nowrap; font-variant-numeric: tabular-nums; }
.summary-video { display: grid; gap: 8px; }
.summary-field-label { color: var(--muted); font-size: 13px; }
.summary-video-row { display: flex; flex-wrap: wrap; gap: 8px; }
.summary-video-input { flex: 1 1 260px; min-width: 0; min-height: 40px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-raised); color: var(--ink); font: 15px var(--sans); }
.summary-body { display: grid; flex: 1 1 auto; gap: 24px; min-height: 0; grid-template-columns: minmax(0, 1fr); }
.summary-player { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--ground); }
.summary-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.summary-column { display: flex; flex-direction: column; gap: 12px; min-width: 0; min-height: 0; overflow: hidden; }
/* Без лекции окно уже: строка конспекта остаётся читаемой, справа нет пустой половины. */
.library-add-dialog.is-summary-editor:not(:has(.has-video)) { width: min(880px, calc(100vw - 24px)); }
.summary-body { grid-template-rows: minmax(0, 1fr); }
.summary-editor.has-video .summary-body { grid-template-rows: auto minmax(0, 1fr); }
@media (min-width: 1100px) {
  .summary-editor.has-video .summary-body { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); grid-template-rows: minmax(0, 1fr); }
  .summary-editor.has-video .summary-player { align-self: start; }
}
.summary-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; padding: 10px 14px; border-left: 2px solid var(--accent); border-radius: 8px; background: var(--panel-raised); color: var(--ink); font-size: 14px; line-height: 1.5; }
.summary-notice p { margin: 0; overflow-wrap: anywhere; }
.summary-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.summary-tool { min-height: 36px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-raised); color: var(--muted); font: 13px var(--sans); cursor: pointer; }
.summary-tool:hover { border-color: var(--line-strong); color: var(--ink); }
.summary-mode { display: inline-flex; margin-left: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; }
.summary-mode-button { min-height: 36px; padding: 6px 12px; border: 0; background: transparent; color: var(--muted); font: 13px var(--sans); cursor: pointer; }
.summary-mode-button[aria-pressed="true"] { color: var(--gold-soft); background: var(--accent-surface); }
.summary-text, .summary-preview { width: 100%; flex: 1 1 auto; min-height: 220px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-raised); color: var(--ink); font: 400 16px/1.6 var(--sans); overflow-wrap: anywhere; }
.summary-text { display: block; resize: none; }
.summary-preview { overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.summary-empty { color: var(--muted); }
.summary-timecode { display: inline; padding: 0 2px; border: 0; border-radius: 4px; background: transparent; color: var(--gold-soft); font: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--gold) 55%, transparent); text-underline-offset: 3px; cursor: pointer; }
.summary-timecode:hover { color: var(--ink); }
/* Главное действие всегда видно: подписи слева, кнопка справа. */
.summary-footer { display: grid; flex: none; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; align-items: center; padding-top: 14px; border-top: 1px solid var(--line); }
.summary-footer > * { grid-column: 1; }
.summary-count { margin: 0; color: var(--ink); font-size: 14px; font-variant-numeric: tabular-nums; }
.summary-footer .material-help { margin: 0; }
.summary-note { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.summary-error { margin: 0; color: var(--red); font-size: 13px; line-height: 1.5; }
.summary-generate { grid-column: 2; grid-row: 1 / span 4; justify-self: end; }
/* Узкий экран: плеер и конспект друг под другом, окно прокручивается целиком, панель с кнопкой прилипает к низу. */
@media (max-width: 1099px) {
  .library-add-dialog.is-summary-editor { overflow-y: auto; }
  .summary-editor { height: auto; min-height: 100%; overflow: visible; }
  .summary-body, .summary-editor.has-video .summary-body { grid-template-rows: none; }
  .summary-column { overflow: visible; }
  .summary-text, .summary-preview { flex: none; min-height: calc(55vh / var(--ui-zoom, 1)); }
  .summary-footer { position: sticky; bottom: 0; z-index: 1; padding-bottom: 12px; background: var(--panel); }
}
@media (max-width: 600px) {
  .library-add-dialog.is-summary-editor { width: 100%; height: calc(100dvh / var(--ui-zoom, 1)); max-height: calc(100dvh / var(--ui-zoom, 1)); padding: 0; border-radius: 0; }
  .summary-editor { padding: 14px 16px 18px; }
  .summary-status { margin-left: 0; white-space: normal; }
  .summary-mode { margin-left: 0; }
  .summary-footer { grid-template-columns: minmax(0, 1fr); }
  .summary-generate { grid-column: 1; grid-row: auto; justify-self: stretch; }
}
/* The editor sets display on its boxes, so the hidden attribute needs an explicit rule to win. */
.summary-editor [hidden] { display: none !important; }

/* Output language chip (decision 30.10.2026): compact, shared select, same trigger look as the account size control. */
.material-language { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; max-width: 100%; color: var(--muted); font-size: 13px; }
.material-language .ui-select-trigger { width: auto; min-width: 160px; max-width: 100%; min-height: 38px; padding: 6px 10px 6px 13px; color: var(--ink); border: 1px solid var(--line); border-radius: 7px; background: var(--panel); }
