/* ==========================================
   Identidad de marca (Pitágoras IA / Legal IA). La paleta y la tipografía
   viven en wwwroot/lib/bootstrap/dist/css/bootstrap.css, recompilado desde
   Sass (ver scss/bootstrap-custom.scss) para que TODOS los componentes de
   Bootstrap (botones, checkboxes marcados, focus rings, badges...) usen la
   marca, no solo las clases utilitarias. Acá solo van los ajustes al markup
   propio que Bootstrap no cubre (ej. .navbar-brand no es un <h*>).
   ========================================== */
.navbar-brand {
    font-family: "Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem var(--bs-body-bg), 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.5);
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ==========================================
   Estilos Reutilizables para Renderizado Markdown / IA
   ========================================== */
.markdown-content {
    font-size: 0.875rem;
    line-height: 1.5;
}

    .markdown-content p {
        margin-bottom: 0.5rem;
    }

        .markdown-content p:last-child {
            margin-bottom: 0;
        }

    .markdown-content h1,
    .markdown-content h2,
    .markdown-content h3,
    .markdown-content h4 {
        font-size: 0.95rem;
        font-weight: 700;
        margin-top: 0.75rem;
        margin-bottom: 0.35rem;
        color: var(--bs-emphasis-color);
    }

    .markdown-content ul,
    .markdown-content ol {
        padding-left: 1.2rem;
        margin-bottom: 0.5rem;
    }

    .markdown-content li {
        margin-bottom: 0.2rem;
    }

    .markdown-content strong {
        /* Color de marca para resaltados, pero el emphasis ya calculado por
           Bootstrap para tener buen contraste en cada tema -- el --bs-primary
           crudo (#6d5ef5) queda entre 4.1:1 y 4.6:1, al filo de AA en ambos
           modos y percibido como "difícil de leer". */
        color: var(--bs-primary-text-emphasis);
    }

    .markdown-content blockquote {
        border-left: 3px solid var(--bs-border-color);
        padding-left: 0.75rem;
        margin: 0.5rem 0;
        color: var(--bs-secondary-color);
    }

/* ==========================================
   Editor de texto enriquecido (<EditorAsistido> / Quill)
   Nota: el tema Quill "snow" (lib/quill/quill.snow.css) es CSS de terceros
   con colores propios fijos en claro; no se retematiza para modo oscuro acá
   -- el editor queda como una isla clara dentro de una página oscura. Si se
   necesita, es un trabajo aparte (override completo de quill.snow.css), no
   algo que se resuelva con los dos colores de abajo.
   ========================================== */
.editor-asistido .ql-toolbar.ql-snow {
    border-color: #dee2e6;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    background-color: #f8f9fa;
}

.editor-asistido .ql-container.ql-snow {
    border-color: #dee2e6;
    border-bottom-left-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
    font-size: 0.875rem;
    /* Completa la isla clara: sin esto el área de texto queda transparente y
       hereda el fondo casi negro de la página en modo oscuro, con lo que el
       placeholder de Quill (rgba(0,0,0,.6) fijo, ver quill.snow.css) se
       vuelve negro sobre negro. */
    background-color: #fff;
}

.editor-asistido .ql-editor {
    line-height: 1.5;
    color: #212529;
}

.editor-asistido--ro {
    opacity: 0.65;
    pointer-events: none;
}

