/* -------------------------------------------------------------------------- */
/* Rich text editor                                                            */
/* -------------------------------------------------------------------------- */

.editor {
    width: 100%;
}

.editor .ql-toolbar.ql-snow {
    border: none;
    border-bottom: 1px solid var(--chakra-colors-border-subtle);
    background-color: var(--chakra-colors-bg-subtle);
    padding: 10px 12px;
}

.editor .ql-container.ql-snow {
    border: none;
    background-color: var(--chakra-colors-input-bg);
    color: var(--chakra-colors-text-primary);
    font-family: "Caros Regular", sans-serif;
}

.editor .ql-editor {
    min-height: 200px;
    padding: 16px;
    color: var(--chakra-colors-text-primary);
    font-family: "Caros Regular", sans-serif;
    font-size: 14px;
    line-height: 1.6;
}

.editor .ql-editor.ql-blank::before {
    color: var(--chakra-colors-input-placeholder);
    font-style: normal;
    font-family: "Caros Regular", sans-serif;
}

/* -------------------------------------------------------------------------- */
/* Toolbar                                                                     */
/* -------------------------------------------------------------------------- */

.editor .ql-toolbar button {
    border-radius: 6px;
    color: var(--chakra-colors-text-secondary);
    transition:
            background-color 0.18s ease,
            color 0.18s ease;
}

.editor .ql-toolbar button:hover {
    background-color: var(--chakra-colors-surface-hover);
    color: var(--chakra-colors-brand-primary);
}

.editor .ql-toolbar button.ql-active {
    background-color: var(--chakra-colors-brand-accent-soft);
    color: var(--chakra-colors-brand-primary);
}

.editor .ql-toolbar .ql-stroke {
    stroke: var(--chakra-colors-text-secondary);
}

.editor .ql-toolbar .ql-fill {
    fill: var(--chakra-colors-text-secondary);
}

.editor .ql-toolbar button:hover .ql-stroke,
.editor .ql-toolbar button.ql-active .ql-stroke {
    stroke: var(--chakra-colors-brand-primary);
}

.editor .ql-toolbar button:hover .ql-fill,
.editor .ql-toolbar button.ql-active .ql-fill {
    fill: var(--chakra-colors-brand-primary);
}

/* -------------------------------------------------------------------------- */
/* Toolbar pickers                                                             */
/* -------------------------------------------------------------------------- */

.editor .ql-toolbar .ql-picker {
    color: var(--chakra-colors-text-secondary);
}

.editor .ql-toolbar .ql-picker-label {
    color: var(--chakra-colors-text-secondary);
    border-radius: 6px;
}

.editor .ql-toolbar .ql-picker-label:hover {
    color: var(--chakra-colors-brand-primary);
    background-color: var(--chakra-colors-surface-hover);
}

.editor .ql-toolbar .ql-picker-options {
    background-color: var(--chakra-colors-surface-raised);
    border-color: var(--chakra-colors-border-default);
    color: var(--chakra-colors-text-primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.editor .ql-toolbar .ql-picker-item {
    color: var(--chakra-colors-text-primary);
}

.editor .ql-toolbar .ql-picker-item:hover {
    color: var(--chakra-colors-brand-primary);
    background-color: var(--chakra-colors-surface-hover);
}

/* -------------------------------------------------------------------------- */
/* Editor content                                                              */
/* -------------------------------------------------------------------------- */

.editor .ql-editor blockquote {
    border-left-color: var(--chakra-colors-brand-accent);
    color: var(--chakra-colors-text-secondary);
}

.editor .ql-editor a {
    color: var(--chakra-colors-brand-primary);
}

.editor .ql-editor h1,
.editor .ql-editor h2 {
    color: var(--chakra-colors-text-primary);
}

.editor .ql-editor p,
.editor .ql-editor li {
    color: var(--chakra-colors-text-primary);
}

/* -------------------------------------------------------------------------- */
/* Link tooltip                                                                */
/* -------------------------------------------------------------------------- */

.editor .ql-snow .ql-tooltip {
    background-color: var(--chakra-colors-surface-raised);
    border: 1px solid var(--chakra-colors-border-default);
    color: var(--chakra-colors-text-primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.editor .ql-snow .ql-tooltip input {
    background-color: var(--chakra-colors-input-bg);
    color: var(--chakra-colors-text-primary);
    border: 1px solid var(--chakra-colors-border-default);
    border-radius: 6px;
    outline: none;
}

.editor .ql-snow .ql-tooltip input:focus {
    border-color: var(--chakra-colors-brand-primary);
    box-shadow: 0 0 0 1px var(--chakra-colors-brand-primary);
}

.editor .ql-snow .ql-tooltip a.ql-action,
.editor .ql-snow .ql-tooltip a.ql-remove {
    color: var(--chakra-colors-brand-primary);
}

/* -------------------------------------------------------------------------- */
/* View mode                                                                   */
/* -------------------------------------------------------------------------- */

.editor .ql-container:not(:has(+ .ql-toolbar)) {
    color: var(--chakra-colors-text-primary);
}

/* -------------------------------------------------------------------------- */
/* Dark mode adjustments                                                      */
/* -------------------------------------------------------------------------- */

.dark .editor .ql-toolbar .ql-stroke {
    stroke: var(--chakra-colors-text-secondary);
}

.dark .editor .ql-toolbar .ql-fill {
    fill: var(--chakra-colors-text-secondary);
}

.dark .editor .ql-toolbar button:hover .ql-stroke,
.dark .editor .ql-toolbar button.ql-active .ql-stroke {
    stroke: var(--chakra-colors-brand-primary);
}

.dark .editor .ql-toolbar button:hover .ql-fill,
.dark .editor .ql-toolbar button.ql-active .ql-fill {
    fill: var(--chakra-colors-brand-primary);
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                  */
/* -------------------------------------------------------------------------- */

@media (max-width: 640px) {
    .editor .ql-toolbar.ql-snow {
        padding: 8px;
    }

    .editor .ql-editor {
        padding: 14px;
        font-size: 13px;
    }
}
