/* public/css/quill-view.css */

/* ==========================================================================
   MF Quill Content / Render Layer
   Единый слой для:
   - статического рендера контента на страницах чтения
   - отображения контента внутри .ql-editor
   ========================================================================== */

:root{
  --mf-qc-text: var(--text, var(--ink, #1f2937));
  --mf-qc-muted: var(--muted, var(--ink-muted, #6b7280));
  --mf-qc-border: var(--border, var(--border-color, rgba(100,116,139,.26)));
  --mf-qc-surface: var(--surface-1, #ffffff);
  --mf-qc-surface-2: var(--surface-2, #f7f8fb);
  --mf-qc-link: var(--link, var(--accent, #2563eb));

  --qa-brd: rgba(124,130,255,.35);
  --qa-bg1: rgba(124,130,255,.08);
  --qa-bg2: rgba(124,130,255,.02);
  --qa-accent-1: #7c82ff;
  --qa-accent-2: #00e6c3;
}

:where(.mf-quill-render, .ql-container .ql-editor){
  color: var(--mf-qc-text);
  line-height: 1.65;
  font-size: 1rem;
  word-break: break-word;
  overflow-wrap: anywhere;
}

:where(.mf-quill-render, .ql-container .ql-editor) > :first-child{
  margin-top: 0 !important;
}

:where(.mf-quill-render, .ql-container .ql-editor) > :last-child{
  margin-bottom: 0 !important;
}

/* Не даём глобальным reset-ам убивать форматирование */
:where(.mf-quill-render, .ql-container .ql-editor) b,
:where(.mf-quill-render, .ql-container .ql-editor) strong{
  font-weight: 700 !important;
}

:where(.mf-quill-render, .ql-container .ql-editor) i,
:where(.mf-quill-render, .ql-container .ql-editor) em{
  font-style: italic !important;
}

:where(.mf-quill-render, .ql-container .ql-editor) u{
  text-decoration: underline !important;
}

:where(.mf-quill-render, .ql-container .ql-editor) s,
:where(.mf-quill-render, .ql-container .ql-editor) strike{
  text-decoration: line-through !important;
}

:where(.mf-quill-render, .ql-container .ql-editor) p,
:where(.mf-quill-render, .ql-container .ql-editor) ul,
:where(.mf-quill-render, .ql-container .ql-editor) ol,
:where(.mf-quill-render, .ql-container .ql-editor) blockquote,
:where(.mf-quill-render, .ql-container .ql-editor) pre,
:where(.mf-quill-render, .ql-container .ql-editor) figure{
  margin: 0 0 1em;
}

:where(.mf-quill-render, .ql-container .ql-editor) h1{
  margin: 1.05em 0 .55em;
  font-size: 1.6em !important;
  font-weight: 800 !important;
  line-height: 1.2;
}

:where(.mf-quill-render, .ql-container .ql-editor) h2{
  margin: 1em 0 .52em;
  font-size: 1.35em !important;
  font-weight: 800 !important;
  line-height: 1.25;
}

:where(.mf-quill-render, .ql-container .ql-editor) h3{
  margin: .95em 0 .5em;
  font-size: 1.2em !important;
  font-weight: 800 !important;
  line-height: 1.3;
}

:where(.mf-quill-render, .ql-container .ql-editor) ul,
:where(.mf-quill-render, .ql-container .ql-editor) ol{
  padding-left: 1.45em;
}

:where(.mf-quill-render, .ql-container .ql-editor) li{
  margin: .25em 0;
}

:where(.mf-quill-render, .ql-container .ql-editor) blockquote{
  padding: .85em 1em;
  border-left: 4px solid var(--mf-qc-border);
  background: color-mix(in srgb, var(--mf-qc-surface-2) 88%, transparent);
  border-radius: 0 12px 12px 0;
  color: var(--mf-qc-text);
}

:where(.mf-quill-render, .ql-container .ql-editor) pre,
:where(.mf-quill-render, .ql-container .ql-editor) pre.ql-syntax{
  padding: 12px 14px;
  border: 1px solid var(--mf-qc-border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--mf-qc-surface-2) 94%, transparent);
  overflow: auto;
  white-space: pre-wrap;
}

:where(.mf-quill-render, .ql-container .ql-editor) code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

:where(.mf-quill-render, .ql-container .ql-editor) a{
  color: var(--mf-qc-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

:where(.mf-quill-render, .ql-container .ql-editor) a:hover{
  text-decoration-thickness: 2px;
}

/* Align from Quill classes */
:where(.mf-quill-render, .ql-container .ql-editor) .ql-align-center{
  text-align: center;
}
:where(.mf-quill-render, .ql-container .ql-editor) .ql-align-right{
  text-align: right;
}
:where(.mf-quill-render, .ql-container .ql-editor) .ql-align-justify{
  text-align: justify;
}

/* Quill indent classes */
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-1:not(.ql-direction-rtl){ padding-left: 3em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-2:not(.ql-direction-rtl){ padding-left: 6em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-3:not(.ql-direction-rtl){ padding-left: 9em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-4:not(.ql-direction-rtl){ padding-left: 12em; }

:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-1.ql-direction-rtl{ padding-right: 3em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-2.ql-direction-rtl{ padding-right: 6em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-3.ql-direction-rtl{ padding-right: 9em; }
:where(.mf-quill-render, .ql-container .ql-editor) .ql-indent-4.ql-direction-rtl{ padding-right: 12em; }

/* MF first-line indent */
:where(.mf-quill-render, .ql-container .ql-editor) .mf-ti-1{ text-indent: 2em; }
:where(.mf-quill-render, .ql-container .ql-editor) .mf-ti-2{ text-indent: 4em; }
:where(.mf-quill-render, .ql-container .ql-editor) .mf-ti-3{ text-indent: 6em; }
:where(.mf-quill-render, .ql-container .ql-editor) .mf-ti-4{ text-indent: 8em; }

/* Images */
:where(.mf-quill-render, .ql-container .ql-editor) img{
  display: block;
  max-width: min(100%, 560px);
  height: auto;
  margin: 12px auto;
  border-radius: 12px;
  border: 1px solid var(--mf-qc-border);
  background: var(--mf-qc-surface);
  box-shadow: var(--shadow-1, 0 8px 20px rgba(15,23,42,.08));
}

:where(.mf-quill-render, .ql-container .ql-editor) figure{
  max-width: min(100%, 580px);
  margin-left: auto;
  margin-right: auto;
  border-radius: 14px;
  border: 1px solid var(--mf-qc-border);
  background: var(--mf-qc-surface);
  box-shadow: var(--shadow-2, 0 12px 28px rgba(15,23,42,.12));
  overflow: hidden;
}

:where(.mf-quill-render, .ql-container .ql-editor) figure img{
  margin: 0;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}

:where(.mf-quill-render, .ql-container .ql-editor) figcaption{
  padding: 10px 12px;
  font-size: .92rem;
  color: var(--mf-qc-muted);
  border-top: 1px solid var(--mf-qc-border);
  background: color-mix(in srgb, var(--mf-qc-surface-2) 88%, transparent);
}

/* Plain audio */
:where(.mf-quill-render, .ql-container .ql-editor) audio{
  display: block;
  width: min(100%, 720px);
  margin: 12px auto;
}

/* q-footnote */
:where(.mf-quill-render, .ql-container .ql-editor) .q-footnote{
  font-size: .72em;
  line-height: 1;
  vertical-align: super;
  cursor: help;
  color: var(--mf-qc-link);
  font-weight: 700;
}

/* Legacy/simple q-audio block */
:where(.mf-quill-render, .ql-container .ql-editor) .q-audio{
  --qa-brd-local: var(--qa-brd);
  --qa-bg1-local: var(--qa-bg1);
  --qa-bg2-local: var(--qa-bg2);

  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: min(100%, 720px);
  margin: 12px auto;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid var(--qa-brd-local);
  background:
    linear-gradient(180deg, var(--qa-bg1-local), var(--qa-bg2-local)),
    radial-gradient(80% 120% at 0% 0%, color-mix(in srgb, var(--qa-accent-1) 15%, transparent), transparent),
    radial-gradient(80% 120% at 100% 100%, color-mix(in srgb, var(--qa-accent-2) 10%, transparent), transparent);
  box-shadow:
    0 8px 24px color-mix(in srgb, var(--qa-accent-1) 12%, transparent),
    inset 0 0 0 1px rgba(255,255,255,.03);
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio > audio{
  display: none;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-body{
  display: flex;
  align-items: center;
  gap: 12px;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-viz{
  flex: 1 1 auto;
  height: 50px;
  display: block;
  border-radius: 8px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--qa-accent-1) 8%, transparent), transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--qa-accent-1) 15%, transparent);
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-controls{
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--qa-accent-1) 35%, transparent);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--qa-accent-1) 12%, transparent),
    color-mix(in srgb, var(--qa-accent-1) 4%, transparent)
  );
  box-shadow: 0 2px 6px rgba(0,0,0,.12), inset 0 0 0 1px rgba(255,255,255,.06);
  color: var(--qa-accent-1);
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-seek-wrap{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-time{
  font-size: .88rem;
  color: var(--mf-qc-muted);
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-vol-wrap{
  display: flex;
  align-items: center;
  gap: 8px;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-vol{
  width: 120px;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio input[type="range"]{
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 22px;
  background: transparent;
  cursor: pointer;
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio input[type="range"]::-webkit-slider-runnable-track{
  height: 6px;
  border-radius: 9999px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--qa-accent-1) 80%, transparent),
    color-mix(in srgb, var(--qa-accent-2) 80%, transparent)
  );
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  margin-top: -5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 2px var(--qa-accent-1), 0 4px 10px color-mix(in srgb, var(--qa-accent-1) 35%, transparent);
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio input[type="range"]::-moz-range-track{
  height: 6px;
  border-radius: 9999px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--qa-accent-1) 80%, transparent),
    color-mix(in srgb, var(--qa-accent-2) 80%, transparent)
  );
}

:where(.mf-quill-render, .ql-container .ql-editor) .q-audio input[type="range"]::-moz-range-thumb{
  width: 16px;
  height: 16px;
  border: none;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 2px var(--qa-accent-1), 0 4px 10px color-mix(in srgb, var(--qa-accent-1) 35%, transparent);
}

@media (max-width: 640px){
  :where(.mf-quill-render, .ql-container .ql-editor){
    font-size: .98rem;
  }

  :where(.mf-quill-render, .ql-container .ql-editor) img{
    max-width: 100%;
  }

  :where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-controls{
    flex-wrap: wrap;
  }

  :where(.mf-quill-render, .ql-container .ql-editor) .q-audio .qa-vol{
    width: 100px;
  }
}