/* ═══════════════════════════════════════════════════════════════
   Quill Premium (Global)
   Escopo: editor Quill .ql-* em todo sistema
   Objetivo: visual premium consistente em light/dark
   ═══════════════════════════════════════════════════════════════ */

:root {
    --qp-border: #c9d8e6;
    --qp-border-strong: #b4c8dc;
    --qp-bg: #ffffff;
    --qp-toolbar-bg: linear-gradient(180deg, #f8fbff 0%, #f2f7fc 100%);
    --qp-text: #132031;
    --qp-muted: #64768a;
    --qp-accent: #0f4c5c;
    --qp-accent-soft: rgba(15, 76, 92, 0.14);
    --qp-link: #0d6f86;
    --qp-shadow: 0 12px 28px rgba(16, 35, 52, 0.08);
    --qp-radius: 14px;
}

.ql-container.ql-snow,
.ql-toolbar.ql-snow {
    border-color: var(--qp-border);
}

.ql-toolbar.ql-snow {
    background: var(--qp-toolbar-bg);
    border-top-left-radius: var(--qp-radius);
    border-top-right-radius: var(--qp-radius);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.03);
    padding: 10px 12px;
}

.ql-container.ql-snow {
    background: var(--qp-bg);
    border-bottom-left-radius: var(--qp-radius);
    border-bottom-right-radius: var(--qp-radius);
    box-shadow: var(--qp-shadow);
}

.ql-editor {
    color: var(--qp-text);
    font-size: 1rem;
    line-height: 1.68;
    min-height: 240px;
    padding: 16px 18px;
}

.ql-editor.ql-blank::before {
    color: var(--qp-muted);
    font-style: normal;
}

.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4 {
    color: var(--qp-text);
    letter-spacing: -0.01em;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.ql-editor h1 { font-size: 1.75rem; }
.ql-editor h2 { font-size: 1.42rem; }
.ql-editor h3 { font-size: 1.2rem; }
.ql-editor h4 { font-size: 1.05rem; }

.ql-editor p,
.ql-editor li,
.ql-editor blockquote {
    color: var(--qp-text);
}

.ql-editor blockquote {
    border-left: 4px solid color-mix(in srgb, var(--qp-accent) 58%, white 42%);
    background: color-mix(in srgb, var(--qp-accent) 8%, white 92%);
    border-radius: 8px;
    margin: 0.95rem 0;
    padding: 0.6rem 0.85rem;
}

.ql-editor a {
    color: var(--qp-link);
    text-decoration-color: color-mix(in srgb, var(--qp-link) 50%, transparent 50%);
    text-underline-offset: 2px;
}

.ql-editor a:hover {
    text-decoration-color: currentColor;
}

.ql-editor img {
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--qp-border) 75%, white 25%);
    max-width: 100%;
}

.ql-editor img:not([height]) {
    height: auto;
}

.ql-snow .ql-stroke {
    stroke: color-mix(in srgb, var(--qp-text) 72%, white 28%);
}

.ql-snow .ql-fill {
    fill: color-mix(in srgb, var(--qp-text) 72%, white 28%);
}

.ql-snow .ql-picker {
    color: color-mix(in srgb, var(--qp-text) 72%, white 28%);
}

.ql-snow .ql-picker-options {
    border-color: var(--qp-border);
    border-radius: 10px;
    background: var(--qp-bg);
    box-shadow: 0 10px 24px rgba(17, 36, 54, 0.12);
}

.ql-snow button,
.ql-snow .ql-picker-label {
    border-radius: 8px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-picker-label:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow .ql-picker-label:focus {
    background: var(--qp-accent-soft);
}

.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-picker-label.ql-active,
.ql-snow .ql-picker-item.ql-selected {
    color: var(--qp-accent);
}

.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-picker-label:hover .ql-stroke {
    stroke: var(--qp-accent);
}

.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow .ql-picker-label:hover .ql-fill {
    fill: var(--qp-accent);
}

.ql-snow .ql-tooltip {
    border: 1px solid var(--qp-border);
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(17, 36, 54, 0.14);
    background: var(--qp-bg);
    color: var(--qp-text);
}

.ql-snow .ql-tooltip input[type=text] {
    border-radius: 8px;
    border: 1px solid var(--qp-border);
    color: var(--qp-text);
}

.ql-snow .ql-tooltip a.ql-action,
.ql-snow .ql-tooltip a.ql-remove {
    color: var(--qp-accent);
}

.ql-snow .ql-tooltip input[type=text]:focus {
    border-color: color-mix(in srgb, var(--qp-accent) 58%, white 42%);
    outline: none;
}

.ql-container.ql-snow:focus-within,
.ql-toolbar.ql-snow:focus-within {
    border-color: color-mix(in srgb, var(--qp-accent) 44%, white 56%);
}

[data-bs-theme=dark] {
    --qp-border: rgba(134, 179, 198, 0.28);
    --qp-border-strong: rgba(134, 179, 198, 0.4);
    --qp-bg: rgba(9, 24, 35, 0.95);
    --qp-toolbar-bg: linear-gradient(180deg, rgba(16, 37, 52, 0.96) 0%, rgba(10, 28, 40, 0.96) 100%);
    --qp-text: #d9e8f2;
    --qp-muted: #95afbf;
    --qp-accent: #7cc2d2;
    --qp-accent-soft: rgba(124, 194, 210, 0.18);
    --qp-link: #8ed6e8;
    --qp-shadow: 0 14px 34px rgba(2, 10, 18, 0.48);
}

[data-bs-theme=dark] .ql-editor blockquote {
    border-left-color: rgba(124, 194, 210, 0.74);
    background: rgba(20, 48, 64, 0.8);
}

[data-bs-theme=dark] .ql-editor a {
    text-decoration-color: rgba(142, 214, 232, 0.4);
}

[data-bs-theme=dark] .ql-snow .ql-picker-options,
[data-bs-theme=dark] .ql-snow .ql-tooltip {
    border-color: var(--qp-border-strong);
    box-shadow: 0 14px 30px rgba(0, 8, 14, 0.55);
}

[data-bs-theme=dark] .ql-editor img {
    border-color: rgba(134, 179, 198, 0.38);
}
