/*
  COLLEGE ESSAY GRADER — Home grader stylesheet (build 2026-10-23.home18)

  Generated by `node tools/home-loader-build.mjs` from:
    snippets/home-personal-statement-frontend.html

  Do not edit by hand: the next build overwrites it, and `tests/home-loader.test.mjs`
  refuses a file that is not what the tool produces. WordPress holds a short loader
  (snippets/home-loader.html) that points at this build id; rolling back is pointing at
  another one (docs/motor-m1-cargador.md). BUILD.json, beside these files, records which
  sources produced them: an id is never reused with other content.
*/

:root {
        --primary: #002856;
        --primary-hover: #001c3d;
        --accent: #ffbf00;
        --accent-hover: #d6a100;
        --bg-gray: #f8fafc;
        --border: #e2e8f0;
        --text-dark: #1e293b;
        --text-light: #64748b;
        --success: #16a34a;
        --success-hover: #15803d;
        --error: #dc2626;
        --error-bg: #fef2f2;
        --warning-bg: #fbf7e8;
        --warning: #8a6d00;
        --lemon-purple: #7047eb;
    }

    #home-ps-grader-widget,
    #home-ps-grader-widget *,
    #home-ps-grader-widget *::before,
    #home-ps-grader-widget *::after {
        box-sizing: border-box;
    }

    /* Neutralize the theme's TOC anchor-offset heading pseudo-elements
       inside the grader widget (hit-test regression 2026-09-07): the
       ASAP theme inflates every .the-content h2/h3 border box upward
       (70px desktop, 150px mobile) via a layout-participating ::before,
       which silently swallows taps on the controls above the widget's
       headings. Removing the pseudo restores the real tap targets. */
    #home-ps-grader-widget h2::before,
    #home-ps-grader-widget h3::before,
    #home-ps-grader-widget h2 span::before,
    #home-ps-grader-widget h3 span::before {
        content: none !important;
        display: none !important;
    }

    /* Stack the widget above later article headings' pseudo extensions
       (covers the pricing zone below the widget). */
    #home-ps-grader-widget {
        position: relative;
        z-index: 1;
    }
    .home-ps-auth-btn {
        background: #fff;
        border: 1px solid #cbd5e1;
        padding: 10px 16px;
        border-radius: 8px;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-weight: 700;
        font-family: inherit;
        color: var(--text-dark);
        text-decoration: none;
        transition: all 0.2s ease;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .home-ps-auth-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
    }
    .home-ps-grader-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 2.5rem;
        max-width: 1200px;
        margin: 1rem auto 3rem;
        background: white;
        /* M7-color (17-10-2026): igual que en el campus y el analizador — el bloque cover/columns del
           tema pinta su texto en blanco y el widget, sobre su tarjeta clara, lo heredaba. El color se
           fija aquí y lo hereda todo el texto del widget (los botones ya traen su propio color). */
        color: var(--text-dark);
        padding: 2rem;
        border-radius: 12px;
        box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        align-items: start;
        scroll-margin-top: 120px;
        width: 100%;
        max-width: 1200px;
        min-width: 0;
        box-sizing: border-box;
    }

    #home-ps-grader-widget .input-section,
    #home-ps-grader-widget .results-section,
    #home-ps-grader-widget .home-ps-field-grid,
    #home-ps-grader-widget .home-ps-field-group,
    #home-ps-grader-widget .home-ps-value-block,
    #home-ps-grader-widget .home-ps-value-grid,
    #home-ps-grader-widget .home-ps-value-card,
    #home-ps-grader-widget .home-ps-note-box,
    #home-ps-grader-widget .home-ps-essay-card,
    #home-ps-grader-widget .home-ps-textarea-wrapper,
    #home-ps-grader-widget .captcha-container,
    #home-ps-grader-widget .score-container,
    #home-ps-grader-widget .home-ps-score-block,
    #home-ps-grader-widget .home-ps-q,
    #home-ps-grader-widget .home-ps-q-card,
    #home-ps-grader-widget .home-ps-q-panel,
    #home-ps-grader-widget .feedback-item,
    #home-ps-grader-widget .prompt-grid,
    #home-ps-grader-widget .prompt-mini-card,
    #home-ps-grader-widget .home-ps-next-actions,
    #home-ps-grader-widget #home-ps-buy-credits-container {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    #home-ps-grader-widget h2,
    #home-ps-grader-widget h3,
    #home-ps-grader-widget p,
    #home-ps-grader-widget label,
    #home-ps-grader-widget small,
    #home-ps-grader-widget .home-ps-value-card,
    #home-ps-grader-widget .home-ps-note-box {
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: normal;
    }
    .home-ps-field-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.9rem;
        margin-bottom: 1rem;
        min-width: 0;
    }

    .home-ps-field-group {
        min-width: 0;
    }

    .home-ps-field-group label {
        display: block;
        margin-bottom: 0.35rem;
        color: var(--text-dark);
        font-weight: 800;
        font-size: 0.9rem;
    }

    .home-ps-input,
    .home-ps-select {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
        padding: 0.85rem 0.9rem;
        border: 2px solid var(--border);
        border-radius: 8px;
        background: #fff;
        color: var(--text-dark);
        font: inherit;
        text-overflow: ellipsis;
    }

    .home-ps-value-block {
        margin: 1rem 0 1.25rem;
        padding: 1.2rem;
        border: 1px solid #c5d8ec;
        border-radius: 12px;
        background: linear-gradient(145deg, #ffffff, #eef4fa);
    }

    .home-ps-value-block h3 {
        margin: 0 0 0.5rem;
        color: #101d33;
    }

    .home-ps-value-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.6rem;
        margin-top: 0.8rem;
    }

    /* Tablet: 2 columnas × 3 filas. */
    @media (min-width: 769px) and (max-width: 1100px) {
        .home-ps-value-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    /* Tarjetas compactas de "What You'll Get": solo título y descripción,
       con dos tintes suaves alternados. */
    .home-ps-value-card {
        padding: 0.7rem 0.8rem;
        border-radius: 10px;
        background: #f5f9fd;
        border: 1px solid #d7e5f3;
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    }

    .home-ps-value-card:nth-child(even) {
        background: #fdfaf2;
        border-color: #efe3c9;
    }

    .home-ps-value-title {
        display: block;
        font-weight: 700;
        font-size: 0.92rem;
        line-height: 1.3;
        color: #182b49;
    }

    .home-ps-value-desc {
        display: block;
        margin-top: 0.12rem;
        font-size: 0.82rem;
        line-height: 1.35;
        font-weight: 400;
        color: var(--text-light, #64748b);
    }

    .home-ps-saved-note {
        margin-top: 0.8rem;
        font-weight: 800;
        color: #166534;
    }

    .home-ps-next-actions {
        display: flex;
        gap: 0.65rem;
        flex-wrap: wrap;
        margin-top: 0.9rem;
    }

    .home-ps-next-actions button,
    .home-ps-next-actions a {
        flex: 1 1 150px;
        text-align: center;
    }

    #ceg-reviews-root > .ceg-reviews-launch {
        display: none !important;
    }

    .input-section p {
        color: var(--text-light);
        margin-bottom: 1.5rem;
    }

    /* LCP (home-lcp): el bloque de entrada —título y párrafo de presentación— viaja con clases
       propias y sin scope, para que el propietario pueda pegarlo como HTML estático encima del
       cargador y el widget no lo dibuje (opción omitirBloqueDeEntrada). El estilo es el que antes
       llevaba el título en línea; el !important resiste el inflado de h2 del tema ASAP. */
    .home-ps-entrada {
        margin: 0 0 16px;
    }

    .home-ps-entrada__titulo {
        color: #111827 !important;
        -webkit-text-fill-color: #111827 !important;
        margin: 0 0 16px !important;
        font-size: 36px !important;
        line-height: 1.15 !important;
        font-weight: 800 !important;
    }

    .home-ps-entrada__parrafo {
        color: var(--text-light);
        margin-bottom: 1.5rem;
    }

    .home-ps-note-box {
        background: var(--warning-bg);
        border: 1px solid #efe0a4;
        border-left: 4px solid #ffcd00;
        padding: 1rem;
        border-radius: 8px;
        margin-bottom: 1.2rem;
        color: var(--text-dark);
        font-size: 0.92rem;
        line-height: 1.55;
    }

    .home-ps-essay-card {
        margin: 0 0 1.2rem;
        padding: 1rem 1.1rem;
        border: 1px solid var(--border);
        border-radius: 12px;
        background: #fbfdff;
        box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    }

    .home-ps-essay-card h3 {
        margin: 0 0 0.7rem;
        color: var(--primary);
        font-size: 1.05rem;
    }

    .home-ps-essay-card .home-ps-input-group {
        margin-bottom: 0.7rem;
    }

    .home-ps-textarea-wrapper {
        position: relative;
        background: #fff;
        border: 2px solid var(--border);
        border-radius: 8px;
        transition: border-color 0.2s;
        margin-bottom: 0;
        overflow: hidden;
    }

    .home-ps-textarea-wrapper:focus-within {
        border-color: var(--accent);
    }

    .home-ps-essay-textarea {
        width: 100%;
        /* M2c · el bloque de móvil: era `height` (260 escritorio / 170 móvil), una caja que no crece
           con lo que se escribe. El alto mínimo por rango de palabras —y el `min-height` de cada
           rango— vive en `snippets/motor-movil-reset.css`. */
        min-height: 260px;
        padding: 0.9rem;
        border: none;
        outline: none;
        resize: vertical;
        font-size: 14px;
        line-height: 1.55;
        box-sizing: border-box;
        border-radius: 8px;
        font-family: inherit;
        display: block;
    }

    .home-ps-word-count {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding: 0.3rem 0.6rem;
        text-align: right;
        font-size: 11px;
        color: var(--text-light);
        border-top: 1px solid var(--border);
        background: #fafafa;
        border-radius: 0 0 8px 8px;
    }

    /* C13 P2 of the M2b round: a draft below the official 250-word minimum is still read, so this
       notice is information and not an error — the house colour, on its own line under the count. */
    .home-ps-word-count .home-ps-word-count__notice {
        display: block;
        margin-top: 0.35rem;
        font-weight: 600;
        color: var(--primary);
    }

    .captcha-container {
        margin-top: 1.2rem;
        display: flex;
        justify-content: center;
        min-width: 0;
        max-width: 100%;
        overflow-x: clip;
    }

    #home-ps-grader-widget .cf-turnstile,
    #home-ps-grader-widget .cf-turnstile iframe,
    #home-ps-grader-widget #home-ps-primary-turnstile,
    #home-ps-grader-widget #home-ps-primary-turnstile iframe {
        max-width: 100% !important;
    }

    /* Punto 2 del propietario (14-10-2026): el aviso de la segunda opinión tiene su PROPIO recuadro,
       dentro de su tarjeta, y se lee con la misma forma que el de la Primary. Antes el error salía
       en el recuadro de la Primary —debajo de su formulario y junto a su botón— y parecía pedir su
       reto otra vez. */
    #home-ps-message-box,
    #home-ps-elite-message {
        margin-top: 1rem;
        padding: 0.9rem 1rem;
        border-radius: 8px;
        font-size: 0.95rem;
        line-height: 1.5;
        border: 1px solid var(--error);
        background: var(--error-bg);
        color: var(--error);
    }

    /* M9 mantenimiento 1021b · «Report an issue» en el recuadro de error de la Primary. */
    #home-ps-message-box .home-ps-report-issue-btn {
        display: block;
        margin-top: 10px;
        padding: 8px 14px;
        border: 1px solid var(--border, #dbe4ef);
        border-radius: 8px;
        background: #fff;
        color: #0f172a;
        font: inherit;
        font-weight: 700;
        cursor: pointer;
    }
    #home-ps-message-box .home-ps-report-issue-btn:disabled {
        opacity: 0.6;
        cursor: default;
    }

    #home-ps-analyze-btn {
        width: 100%;
        padding: 1.1rem;
        margin-top: 1.2rem;
        background-color: var(--primary);
        color: white;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        font-weight: 700;
        font-size: 1rem;
        transition: all 0.3s;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    #home-ps-analyze-btn:hover {
        background-color: var(--primary-hover);
        transform: translateY(-1px);
    }

    #home-ps-analyze-btn:disabled {
        opacity: 0.7;
        cursor: not-allowed;
    }

    .home-ps-elite-card {
        margin-top: 1rem;
        padding: 1.25rem;
        border: 1px solid #93c5fd;
        border-radius: 12px;
        background: linear-gradient(145deg, #eff6ff, #f0f9ff);
        color: #1e3a8a;
    }

    .home-ps-elite-card h3 {
        margin: 0 0 0.45rem;
        color: #1e40af;
        font-size: 1.2rem;
    }

    .home-ps-elite-card p {
        margin: 0.35rem 0;
    }

    #home-ps-elite-turnstile-wrap {
        justify-content: center;
    }

    .home-ps-elite-meta {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
        margin: 0.8rem 0;
        font-size: 0.82rem;
        font-weight: 800;
    }

    .home-ps-elite-meta span {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-width: 0;
        min-height: 48px;
        box-sizing: border-box;
        padding: 0.4rem 0.65rem;
        border: 1px solid #93c5fd;
        border-radius: 999px;
        background: #fff;
        text-align: center;
    }

    #home-ps-elite-btn {
        width: 100%;
        min-height: 48px;
        border: 0;
        border-radius: 8px;
        background: #1d4ed8;
        color: #fff;
        cursor: pointer;
        font: inherit;
        font-weight: 800;
    }

    #home-ps-elite-btn:disabled {
        cursor: not-allowed;
        opacity: 0.52;
    }

    #home-ps-elite-buy,
    #home-ps-elite-view {
        display: inline-flex;
        margin-top: 0.7rem;
        color: #1d4ed8;
        font-weight: 800;
    }

    .home-ps-elite-summary {
        margin: 1rem 0;
        padding: 1.25rem;
        border: 1px solid #93c5fd;
        border-radius: 12px;
        background: linear-gradient(145deg, #ffffff, #eef4fa);
        color: var(--text-dark) !important;
        opacity: 1 !important;
        visibility: visible !important;
        scroll-margin-top: 120px;
    }

    .home-ps-elite-summary p,
    .home-ps-elite-summary li,
    .home-ps-elite-summary__metric span {
        color: var(--text-dark) !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .home-ps-elite-summary h3,
    .home-ps-elite-summary h4 {
        color: #1e40af;
    }

    .home-ps-elite-summary h3 {
        margin: 0 0 0.9rem;
    }

    .home-ps-elite-summary h4 {
        margin: 1rem 0 0.4rem;
        font-size: 0.96rem;
    }

    .home-ps-elite-summary ul {
        margin: 0.4rem 0 0;
        padding-left: 1.2rem;
    }

    .home-ps-elite-summary__success {
        margin-bottom: 1rem;
        padding: 0.85rem 1rem;
        border: 1px solid #22c55e;
        border-radius: 8px;
        background: #dcfce7;
        color: #166534;
        font-weight: 800;
    }

    .home-ps-elite-summary__metrics {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .home-ps-elite-summary__metric {
        min-width: 0;
        padding: 0.75rem;
        border: 1px solid #cfdff0;
        border-radius: 8px;
        background: #fff;
    }

    .home-ps-elite-summary__metric strong {
        display: block;
        margin-bottom: 0.3rem;
        color: #1e40af;
    }

    .home-ps-elite-summary__metric span {
        display: block;
        position: relative;
        z-index: 1;
        font-weight: 700;
    }

    #home-ps-elite-summary-view {
        width: 100%;
        margin-top: 1rem;
    }

    #home-ps-comparison-results:empty {
        display: none;
    }

    #home-ps-comparison-results:not(:empty) {
        margin: 1rem 0;
    }

    .home-ps-next-actions.hidden {
        display: none;
    }

    #home-ps-feedback-list,
    .home-ps-elite-summary:not(.hidden),
    #home-ps-comparison-results:not(:empty) {
        max-height: 640px;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: thin;
        scrollbar-color: #cbd5e1 #f1f1f1;
    }

    #home-ps-feedback-list::-webkit-scrollbar,
    .home-ps-elite-summary::-webkit-scrollbar,
    #home-ps-comparison-results::-webkit-scrollbar {
        width: 6px;
    }

    #home-ps-feedback-list::-webkit-scrollbar-track,
    .home-ps-elite-summary::-webkit-scrollbar-track,
    #home-ps-comparison-results::-webkit-scrollbar-track {
        background: #f1f1f1;
        border-radius: 10px;
    }

    #home-ps-feedback-list::-webkit-scrollbar-thumb,
    .home-ps-elite-summary::-webkit-scrollbar-thumb,
    #home-ps-comparison-results::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 10px;
    }

    #home-ps-buy-credits-container {
        margin-top: 1.5rem;
        padding: 1.25rem;
        background: #fdf2ff;
        border: 2px solid #d8b4fe;
        border-radius: 10px;
        text-align: center;
    }

    #home-ps-credit-status-msg {
        margin: 0 0 0.45rem;
        font-size: 0.95rem;
        font-weight: 800;
        color: #7e22ce;
    }

    .buy-btn-group {
        display: flex;
        gap: 10px;
        justify-content: center;
        margin-top: 10px;
        flex-wrap: wrap;
    }

    .buy-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background-color: var(--lemon-purple);
        color: white !important;
        padding: 0.85rem 1rem;
        border-radius: 8px;
        text-decoration: none !important;
        font-weight: 800;
        transition: all 0.25s ease;
        font-size: 0.9rem;
        flex: 1;
        min-width: 180px;
        border: none;
        cursor: pointer;
        text-align: center;
        line-height: 1.25;
    }

    .buy-btn.premium {
        background-color: var(--success);
        border: 2px solid var(--success-hover);
    }

    .buy-btn:hover {
        opacity: 0.95;
        transform: translateY(-1px);
    }

    .pricing-link-wrap {
        margin-top: 0.9rem;
        font-size: 0.82rem;
        color: var(--text-light);
    }

    .pricing-link-wrap a {
        color: var(--primary);
        font-weight: 800;
        text-decoration: none;
    }

    .pricing-link-wrap a:hover {
        text-decoration: underline;
    }

    .results-section {
        border-left: none;
        border-top: 1px solid var(--border);
        padding-left: 0;
        padding-top: 2.5rem;
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
        height: auto;
        max-height: none;
        overflow-y: visible;
        overflow-x: hidden;
        padding-right: 0;
        align-self: start;
    }

    .score-container {
        text-align: center;
        margin-bottom: 2rem;
        padding: 2rem;
        background: #eef4fa;
        border-radius: 12px;
        border: 1px solid #c5d8ec;
    }

    .score-circle {
        font-size: 3rem;
        font-weight: 800;
        color: var(--primary);
    }

    .score-label {
        display: block;
        color: var(--text-light);
        text-transform: uppercase;
        letter-spacing: 1px;
        font-size: 0.8rem;
        margin-top: 0.5rem;
    }

    .feedback-item {
        background: #fff;
        border: 1px solid var(--border);
        padding: 1rem;
        border-radius: 8px;
        margin-bottom: 1rem;
        border-left: 4px solid var(--accent);
    }

    .feedback-item h3 {
        margin-top: 0;
        margin-bottom: 0.6rem;
        font-size: 1rem;
        color: var(--text-dark);
    }

    .feedback-item p {
        margin-bottom: 0;
        color: var(--text-dark);
        line-height: 1.6;
    }

    .feedback-item ul {
        margin: 0.5rem 0 0;
        padding-left: 1.2rem;
    }

    .feedback-item li {
        margin-bottom: 0.4rem;
        line-height: 1.5;
    }

    .prompt-grid {
        display: grid;
        gap: 0.8rem;
    }

    .prompt-mini-card {
        background: #f8fafc;
        border: 1px solid var(--border);
        padding: 0.85rem;
        border-radius: 8px;
    }

    .prompt-mini-card strong {
        display: block;
        margin-bottom: 0.35rem;
        color: var(--text-dark);
    }

    .prompt-mini-card p {
        margin: 0;
        color: var(--text-dark);
        line-height: 1.55;
    }

    .hidden {
        display: none !important;
    }

    .home-ps-processing-note {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.6rem;
        margin-top: 0.85rem;
        padding: 0.7rem 0.9rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: #f8fafc;
        color: #475569;
        font-size: 0.88rem;
        font-weight: 600;
    }

    .home-ps-processing-note.hidden {
        display: none;
    }

    .home-ps-processing-spinner {
        display: inline-block;
        width: 16px;
        height: 16px;
        flex: 0 0 auto;
        border: 2px solid #cbd5e1;
        border-top-color: var(--primary);
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }


@media (max-width: 768px) {
#home-ps-grader-widget > .input-section > h2,
.home-ps-entrada__titulo {
    margin-top: 0 !important;
    font-size: 30px !important;
}
        .home-ps-grader-container {
            grid-template-columns: minmax(0, 1fr);
            width: 100%;
            max-width: 100%;
            min-width: 0;
            padding: 1.2rem 16px;
            gap: 1.5rem;
            scroll-margin-top: 140px;
            overflow-x: clip;
        }

        #home-ps-grader-widget > .input-section {
            margin-top: 0 !important;
            padding-top: 0 !important;
        }

        #home-ps-grader-widget > .input-section > h2,
        .home-ps-entrada__titulo {
            margin-top: 0 !important;
        }

        #home-ps-grader-widget .home-ps-value-block,
        #home-ps-grader-widget .home-ps-elite-card {
            padding-top: 1rem !important;
        }

        #home-ps-grader-widget .home-ps-value-block > h3,
        #home-ps-grader-widget .home-ps-elite-card > h3 {
            margin-top: 0 !important;
        }

        .home-ps-field-grid,
        .home-ps-value-grid {
            grid-template-columns: minmax(0, 1fr);
        }

        .home-ps-elite-summary__metrics {
            grid-template-columns: minmax(0, 1fr);
        }

        .home-ps-elite-meta {
            grid-template-columns: minmax(0, 1fr);
        }

        #home-ps-grader-widget .input-section,
        #home-ps-grader-widget .results-section,
        #home-ps-grader-widget .home-ps-field-grid > *,
        #home-ps-grader-widget .home-ps-value-grid > *,
        #home-ps-grader-widget .prompt-grid > *,
        #home-ps-grader-widget .home-ps-next-actions > *,
        #home-ps-grader-widget .buy-btn-group > * {
            min-width: 0;
            max-width: 100%;
        }

        #home-ps-grader-widget input,
        #home-ps-grader-widget select,
        #home-ps-grader-widget textarea,
        #home-ps-grader-widget button {
            width: 100%;
            max-width: 100%;
            min-width: 0;
        }

        #home-ps-grader-widget textarea {
            resize: vertical;
        }

        .home-ps-next-actions,
        .buy-btn-group {
            flex-direction: column;
        }

        .home-ps-essay-textarea {
            min-height: 170px;
        }

        .results-section {
            border-left: none;
            padding-left: 0;
            padding-right: 0;
            border-top: 1px solid var(--border);
            padding-top: 2rem;
            max-height: none !important;
            height: auto !important;
            overflow: visible !important;
            overflow-y: visible !important;
        }

        .buy-btn {
            width: 100%;
            min-width: 0;
            max-width: 100%;
        }
    }

    @media (max-width: 340px) {
        .home-ps-grader-container {
            padding-left: 10px;
            padding-right: 10px;
        }
    }

#ceg-home-auth-bar {
        width: 100%;
        max-width: 960px;
        min-width: 0;
        box-sizing: border-box;
        margin: 0 auto 10px;
        padding: 0;
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
        position: relative;
        z-index: 20;
        pointer-events: auto;
    }

    .ceg-home-auth-btn {
        background: #fff;
        border: 1px solid #cbd5e1;
        padding: 10px 16px;
        border-radius: 8px;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        font-weight: 700;
        font-family: inherit;
        font-size: 1rem;
        color: var(--text-dark, #1e293b);
        text-decoration: none;
        transition: all 0.2s ease;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .ceg-home-auth-btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
    }

    .ceg-home-auth-btn:focus-visible {
        outline: 2px solid var(--primary, #002856);
        outline-offset: 2px;
    }

    #ceg-home-auth-panel {
        display: flex;
        align-items: center;
        gap: 14px;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding: 10px 16px;
        border: 1px solid #cbd5e1;
        border-radius: 8px;
        background: #f8fafc;
    }

    /* Estado desconectado: únicamente el botón de Google, sin panel vacío. */
    #ceg-home-auth-panel[hidden],
    #ceg-home-auth-google-btn[hidden],
    .ceg-home-auth-badge[hidden] {
        display: none !important;
    }

    .ceg-home-auth-name {
        font-weight: 700;
        color: var(--text-dark, #1e293b);
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .ceg-home-auth-badges {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        min-width: 0;
    }

    .ceg-home-auth-badge {
        display: inline-flex;
        align-items: center;
        padding: 4px 10px;
        border-radius: 999px;
        font-size: 0.9rem;
        font-weight: 600;
        background: #e2e8f0;
        color: #0f172a;
        white-space: nowrap;
    }

    .ceg-home-auth-badge-free {
        background: #dcfce7;
        color: #14532d;
    }

    .ceg-home-auth-actions {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin-left: auto;
        min-width: 0;
    }

    @media (max-width: 768px) {
        #ceg-home-auth-bar {
            width: 100%;
            max-width: 100%;
            padding: 0 16px;
            overflow-x: clip;
        }

        #ceg-home-auth-panel {
            flex-direction: column;
            align-items: stretch;
            gap: 8px;
            padding: 10px 12px;
            width: 100%;
        }

        .ceg-home-auth-name,
        .ceg-home-auth-badges {
            width: 100%;
        }

        .ceg-home-auth-actions {
            margin-left: 0;
            width: 100%;
            justify-content: space-between;
            gap: 8px;
        }

        .ceg-home-auth-actions .ceg-home-auth-btn {
            flex: 1 1 auto;
            min-height: 44px;
        }
    }

.ceg-reviews-launch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin-top: 0;
    padding: 9px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #132238;
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    transition: border-color 0.18s ease, box-shadow 0.18s ease,
      transform 0.18s ease;
  }

  .ceg-reviews-launch:hover {
    border-color: #2563eb;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.12);
    transform: translateY(-1px);
  }

  .ceg-reviews-backdrop {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 24px;
    overflow: hidden;
    background: rgba(15, 23, 42, 0.68);
  }

  .ceg-reviews-backdrop.is-open {
    display: flex;
  }

  .ceg-reviews-modal {
    display: flex;
    flex-direction: column;
    width: min(900px, 100%);
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.34);
    color: #132238;
    font-family: inherit;
  }

  .ceg-reviews-header {
    position: sticky;
    z-index: 50;
    top: 0;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
  }

  .ceg-reviews-title {
    margin: 0 !important;
    color: #132238;
    font-size: 23px;
    font-weight: 900;
    line-height: 1.2;
  }

  .ceg-reviews-close {
    position: relative;
    z-index: 60;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #334155;
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
  }

  .ceg-reviews-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 20px 22px 24px;
  }

  .ceg-reviews-privacy {
    margin: 0 0 18px !important;
    padding: 12px 14px;
    border-left: 4px solid #2563eb;
    border-radius: 8px;
    background: #eff6ff;
    color: #334155;
    font-size: 14px;
    line-height: 1.5;
  }

  .ceg-reviews-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    background: #f8fafc;
  }

  .ceg-reviews-cta__text {
    margin: 0 !important;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
  }

  .ceg-reviews-cta__button {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 0;
    border-radius: 8px;
    background: #2563eb;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
  }

  .ceg-reviews-cta__button:hover {
    background: #1d4ed8;
  }

  .ceg-reviews-message {
    margin: 18px 0 !important;
    padding: 18px;
    border-radius: 10px;
    background: #f8fafc;
    color: #475569;
    text-align: center;
  }

  .ceg-reviews-message.is-error {
    background: #fef2f2;
    color: #b91c1c;
  }

  .ceg-reviews-list {
    display: grid;
    gap: 14px;
  }

  .ceg-review-card {
    padding: 17px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
  }

  /* The Elite Second Opinion card is nested inside its exact Primary card
     so the parent_review_id pairing is visible at a glance. */
  .ceg-review-card--elite-child {
    margin-top: 16px;
    border-color: #c4b5fd;
    background: #f5f3ff;
  }

  .ceg-review-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
  }

  .ceg-review-card__name {
    margin: 0 !important;
    color: #132238;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.35;
  }

  .ceg-review-card__date {
    flex: 0 0 auto;
    color: #64748b;
    font-size: 13px;
    line-height: 1.4;
  }

  .ceg-review-card__title,
  .ceg-review-card__prompt {
    margin: 7px 0 0 !important;
    color: #475569;
    font-size: 14px;
    line-height: 1.45;
  }

  .ceg-review-card__title {
    color: #1e293b;
    font-weight: 800;
  }

  .ceg-review-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 13px;
  }

  .ceg-review-chip {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
  }

  .ceg-review-card__actions {
    position: relative;
    z-index: 2;
    pointer-events: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
  }

  .ceg-review-action {
    position: relative;
    pointer-events: auto;
    touch-action: manipulation;
    min-height: 36px;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #1e293b;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
  }

  .ceg-review-action--primary {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
  }

  .ceg-review-action--danger {
    border-color: #fecaca;
    color: #b91c1c;
  }

  .ceg-review-action--compare {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
  }

  .ceg-review-action:disabled {
    cursor: wait;
    opacity: 0.6;
  }

  .ceg-review-detail {
    display: none;
  }

  .ceg-review-detail.is-visible {
    display: block;
  }

  .ceg-review-detail__back {
    margin-bottom: 16px;
  }

  .ceg-review-detail__score {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #64748b;
  }

  .ceg-review-detail__heading {
    margin: 0 0 6px !important;
    color: #132238;
    font-size: 21px;
    font-weight: 900;
  }

  .ceg-review-detail__subheading {
    margin: 22px 0 9px !important;
    color: #132238;
    font-size: 17px;
    font-weight: 900;
  }

  .ceg-review-detail__essay {
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    color: #1e293b;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.65;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }

  .ceg-review-result {
    display: grid;
    gap: 16px;
  }

  .ceg-review-section {
    padding: 15px 16px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
  }

  .ceg-review-section__title {
    margin: 0 0 8px !important;
    color: #132238;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.35;
  }

  .ceg-review-section__text {
    margin: 0 !important;
    color: #334155;
    font-size: 14px;
    line-height: 1.55;
    white-space: pre-wrap;
  }

  .ceg-review-section__list {
    margin: 0 !important;
    padding-left: 20px;
    color: #334155;
    font-size: 14px;
    line-height: 1.55;
  }

  .ceg-review-result--elite .ceg-review-section__text,
  .ceg-review-result--elite .ceg-review-section__list,
  .ceg-review-result--elite .ceg-review-section__list li {
    color: #334155 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ceg-review-score {
    display: flex;
    align-items: baseline;
    gap: 6px;
  }

  .ceg-review-score__value {
    color: #2563eb;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
  }

  .ceg-review-score__maximum {
    color: #64748b;
    font-size: 15px;
    font-weight: 800;
  }

  .ceg-review-detail__bottom-back {
    margin-top: 18px;
  }

  .ceg-review-comparison {
    display: none;
  }

  .ceg-review-comparison.is-visible {
    display: block;
  }

  .ceg-comparison-heading {
    margin: 0 0 6px !important;
    color: #132238;
    font-size: 23px;
    font-weight: 900;
    line-height: 1.25;
  }

  .ceg-comparison-intro {
    margin: 0 0 16px !important;
    color: #64748b;
    font-size: 14px;
    line-height: 1.5;
  }

  .ceg-comparison-selector {
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    background: #f8fafc;
  }

  .ceg-comparison-selector__label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 13px;
    font-weight: 900;
  }

  .ceg-comparison-selector__select {
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #1e293b;
    font: inherit;
    font-size: 14px;
  }

  .ceg-comparison-loading,
  .ceg-comparison-error {
    margin: 14px 0 0 !important;
    padding: 14px;
    border-radius: 9px;
    background: #f8fafc;
    color: #475569;
    font-size: 14px;
    text-align: center;
  }

  .ceg-comparison-error {
    background: #fef2f2;
    color: #b91c1c;
  }

  .ceg-comparison-version-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .ceg-comparison-version {
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
  }

  .ceg-comparison-version__label {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
  }

  .ceg-comparison-version__date {
    display: block;
    margin-top: 7px;
    color: #334155;
    font-size: 13px;
    line-height: 1.4;
  }

  .ceg-comparison-version__score {
    display: block;
    margin-top: 9px;
    color: #132238;
    font-size: 27px;
    font-weight: 900;
    line-height: 1;
  }

  .ceg-comparison-score-change {
    margin: 12px 0 16px !important;
    padding: 12px 14px;
    border-radius: 9px;
    font-size: 15px;
    font-weight: 900;
    text-align: center;
  }

  .ceg-comparison-score-change.is-positive {
    background: #ecfdf5;
    color: #15803d;
  }

  .ceg-comparison-score-change.is-neutral {
    background: #f1f5f9;
    color: #475569;
  }

  .ceg-comparison-score-change.is-negative {
    background: #fef2f2;
    color: #b91c1c;
  }

  .ceg-comparison-section {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
  }

  .ceg-comparison-section__title {
    margin: 0 0 8px !important;
    color: #132238;
    font-size: 15px;
    font-weight: 900;
  }

  .ceg-comparison-section__list {
    margin: 0 !important;
    padding-left: 20px;
    color: #334155;
    font-size: 14px;
    line-height: 1.55;
  }

  .ceg-comparison-section__empty {
    margin: 0 !important;
    color: #64748b;
    font-size: 14px;
    line-height: 1.5;
  }

  .ceg-comparison-cta {
    margin-top: 18px;
    padding: 15px;
    border-radius: 10px;
    background: #eff6ff;
  }

  .ceg-comparison-cta__text {
    margin: 0 0 11px !important;
    color: #1e3a8a;
    font-size: 14px;
    font-weight: 900;
  }

  .ceg-comparison-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }

  .ceg-comparison-buy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 7px;
    background: #16a34a;
    color: #fff !important;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none !important;
  }

  @media (max-width: 767px) {
    .ceg-reviews-backdrop {
      align-items: center;
      padding: 10px;
      overflow: hidden;
    }

    .ceg-reviews-modal {
      width: 100%;
      max-width: 100%;
      max-height: calc(100vh - 20px);
      max-height: calc(100dvh - 20px);
      border-radius: 14px;
      box-sizing: border-box;
    }

    .ceg-reviews-header {
      padding: 13px 14px;
    }

    .ceg-reviews-title {
      font-size: 20px;
    }

    .ceg-reviews-close {
      width: 44px;
      height: 44px;
      min-width: 44px;
      min-height: 44px;
    }

    .ceg-reviews-body {
      min-height: 0;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      padding: 14px 14px 18px;
    }

    .ceg-reviews-privacy,
    .ceg-reviews-cta,
    .ceg-review-card,
    .ceg-review-section {
      padding: 12px;
    }

    .ceg-reviews-list {
      grid-template-columns: minmax(0, 1fr);
    }

    .ceg-review-card__top {
      display: block;
    }

    .ceg-review-card__date {
      display: block;
      margin-top: 5px;
    }

    .ceg-reviews-cta {
      align-items: stretch;
      flex-direction: column;
    }

    .ceg-reviews-cta__button {
      width: 100%;
      min-height: 44px;
      white-space: normal;
    }

    .ceg-review-card__actions {
      align-items: stretch;
      flex-direction: column;
      flex-wrap: wrap;
    }

    .ceg-review-action {
      width: 100%;
      min-height: 44px;
      white-space: normal;
    }

    .ceg-reviews-launch {
      min-height: 44px;
    }

    .ceg-comparison-version-grid,

    .ceg-comparison-selector,
    .ceg-comparison-version,

    .ceg-comparison-selector__select,
    .ceg-comparison-buy {
      min-height: 44px;
    }

    .ceg-comparison-cta__actions {
      align-items: stretch;
      flex-direction: column;
    }

    .ceg-comparison-buy {
      width: 100%;
      box-sizing: border-box;
    }
  }
  .ceg-elite-card {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #c4b5fd;
    border-radius: 14px;
    background: linear-gradient(145deg, #f5f3ff, #faf5ff);
  }

  .ceg-elite-card h4 {
    margin: 0 0 8px;
    color: #4c1d95;
    font-size: 18px;
  }

  .ceg-elite-card__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
  }

  .ceg-elite-card__actions .ceg-review-action {
    flex: 1 1 210px;
  }

  .ceg-elite-badge {
    border-color: #8b5cf6 !important;
    background: #f5f3ff !important;
    color: #5b21b6 !important;
  }

  .home-ps-saved-elite-backdrop {
    position: fixed;
    z-index: 1000001;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 23, 42, 0.58);
  }

  .home-ps-saved-elite-backdrop.is-open { display: flex; }

  .home-ps-saved-elite-modal {
    width: min(560px, 100%);
    max-height: min(700px, calc(100vh - 40px));
    overflow-y: auto;
    box-sizing: border-box;
    padding: 22px;
    border: 1px solid #c4b5fd;
    border-radius: 14px;
    background: #fff;
    color: #1e293b;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
  }

  .home-ps-saved-elite-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
  .home-ps-saved-elite-title { margin: 0; color: var(--primary); font-size: 1.25rem; }
  .home-ps-saved-elite-close { border: 0; background: transparent; color: #64748b; font-size: 28px; line-height: 1; cursor: pointer; }
  #home-ps-saved-elite-turnstile { display: flex; justify-content: center; min-height: 70px; margin: 16px 0; }
  .home-ps-saved-elite-processing { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 12px 0; color: #475569; font-weight: 700; }
  .home-ps-saved-elite-processing.hidden { display: none; }
  .home-ps-saved-elite-spinner { width: 18px; height: 18px; border: 2px solid #ddd6fe; border-top-color: var(--primary); border-radius: 50%; animation: spin 0.8s linear infinite; }
  .home-ps-saved-elite-message { min-height: 22px; margin: 12px 0; color: #475569; }
  .home-ps-saved-elite-message.is-error { color: #b91c1c; }
  .home-ps-saved-elite-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
  .home-ps-saved-elite-actions button { min-height: 42px; padding: 10px 14px; border-radius: 8px; font: inherit; font-weight: 800; cursor: pointer; }
  #home-ps-saved-elite-cancel { border: 1px solid #cbd5e1; background: #fff; color: #334155; }
  #home-ps-saved-elite-submit { border: 1px solid var(--primary); background: var(--primary); color: #fff; }
  #home-ps-saved-elite-submit:disabled { cursor: not-allowed; opacity: 0.65; }

  .home-ps-report-backdrop {
    position: fixed;
    z-index: 1000001;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 24px;
    background: rgba(15, 23, 42, 0.72);
  }

  .home-ps-report-backdrop.is-open { display: flex; }

  .home-ps-report-modal {
    width: min(620px, 100%);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    padding: 1.25rem;
    border-radius: 14px;
    background: #fff;
    color: #1e293b;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.34);
  }

  .home-ps-report-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
  }

  .home-ps-report-title { margin: 0; color: #1e293b; }
  .home-ps-report-close { border: 0; background: transparent; color: #64748b; font-size: 28px; line-height: 1; cursor: pointer; }
  .home-ps-report-field { display: block; margin-top: 14px; color: #334155; font-weight: 800; }
  .home-ps-report-field select,
  .home-ps-report-field textarea { width: 100%; box-sizing: border-box; margin-top: 6px; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #1e293b; font: inherit; }
  .home-ps-report-field textarea { min-height: 130px; resize: vertical; }
  .home-ps-report-consent { display: flex; align-items: flex-start; gap: 8px; margin-top: 12px; color: #475569; font-size: 14px; }
  #home-ps-report-turnstile { display: flex; justify-content: center; min-height: 70px; margin: 12px 0; }
  .home-ps-report-message { min-height: 21px; margin: 8px 0; color: #475569; font-size: 14px; }
  .home-ps-report-message.is-error { color: #dc2626; }
  .home-ps-report-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
  .home-ps-report-actions button { min-height: 44px; padding: 10px 16px; border-radius: 8px; font: inherit; font-weight: 800; cursor: pointer; }
  #home-ps-report-cancel { border: 1px solid #cbd5e1; background: #fff; color: #334155; }
  #home-ps-report-submit { border: 1px solid var(--primary); background: var(--primary); color: #fff; }
  #home-ps-report-submit:disabled { cursor: not-allowed; opacity: 0.6; }

/* Adaptación del botón de apertura (única): la Home entra por su barra de
   cuenta, así que el lanzador propio del módulo no debe pintarse. El bloque
   publicado solo lo ocultaba entre 769 y 1100 px. */
#ceg-reviews-root > .ceg-reviews-launch {
    display: none !important;
}

/* --- M2b §2.2/§2.3 · La lectura cualitativa de esta página -------------------------------
   Las mismas piezas de la vista de fase 5 de Brown (`my-essay-reviews.html`,
   `.brown-brief-v5 .v5-*`), con los nombres de esta página: una tarjeta por ensayo, una fila por
   criterio que falta, y los dos lectores frente a frente en la comparación. Todo cuelga de
   `.home-ps-q`, así que la vista numérica de siempre (§2.4, las filas con nota) no cambia ni un
   píxel. Las caras que se nombran son las del modelo aprobado, cada una con su pila del sistema
   detrás: esta página no carga ninguna tipografía. El contraste de cada texto sobre su fondo es
   4.5:1 o mejor. --- */
.home-ps-q{--home-ps-q-line:#dfe3e8;--home-ps-q-card:#fff;--home-ps-q-ink:#1b2430;--home-ps-q-muted:#5b6471;--home-ps-q-amber:#8a4b0f;--home-ps-q-amber-bg:#fdf1e3;--home-ps-q-green:#1f6b3a;--home-ps-q-green-bg:#eaf5ee;--home-ps-q-blue:#0b4f8a;--home-ps-q-blue-bg:#eef4fb;background:#f3f4f6;color:var(--home-ps-q-ink);padding:20px 16px;border-radius:14px;line-height:1.55;font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}
.home-ps-q h2,.home-ps-q h3,.home-ps-q h4,.home-ps-q h5,.home-ps-q .home-ps-q-title{font-family:'Space Grotesk','IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.home-ps-q .home-ps-q-kicker{margin:0;color:var(--home-ps-q-muted);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.home-ps-q .home-ps-q-title{margin:6px 0 2px;font-size:1.7rem;color:#111827}
.home-ps-q .home-ps-q-panel-heading{margin:0 0 8px;font-size:1.4rem;color:#111827}
.home-ps-q .home-ps-q-reader,.home-ps-q .home-ps-q-note{margin:0;color:var(--home-ps-q-muted);font-size:.92rem}
.home-ps-q .home-ps-q-block{margin:22px 0 0}
.home-ps-q .home-ps-q-heading{margin:0;color:#111827;font-size:1.05rem}
.home-ps-q .home-ps-q-heading+.home-ps-q-note{margin-top:4px}
.home-ps-q .home-ps-q-actions{margin:10px 0 0;padding-left:22px}
.home-ps-q .home-ps-q-action{margin:12px 0;padding-left:4px}
.home-ps-q .home-ps-q-where{margin:0;color:var(--home-ps-q-blue);font-weight:700}
.home-ps-q .home-ps-q-action-text{margin:2px 0 0}
.home-ps-q .home-ps-q-status,.home-ps-q .home-ps-q-how,.home-ps-q .home-ps-q-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.82rem;font-weight:800;white-space:nowrap}
.home-ps-q .home-ps-q-status--ready,.home-ps-q .home-ps-q-how--ready,.home-ps-q .home-ps-q-chip--ready{background:var(--home-ps-q-green-bg);color:var(--home-ps-q-green)}
.home-ps-q .home-ps-q-status--work,.home-ps-q .home-ps-q-how--work,.home-ps-q .home-ps-q-chip--work{background:var(--home-ps-q-amber-bg);color:var(--home-ps-q-amber)}
.home-ps-q details{margin-top:12px;border:1px solid var(--home-ps-q-line);border-radius:10px;background:var(--home-ps-q-card)}
.home-ps-q details>summary{display:flex;align-items:center;min-height:44px;box-sizing:border-box;padding:10px 14px;cursor:pointer;font-weight:700;color:#111827}
.home-ps-q details>summary:focus-visible{outline:2px solid var(--home-ps-q-blue);outline-offset:-2px}
.home-ps-q details>p,.home-ps-q details>ul,.home-ps-q details>div{margin:0;padding:0 14px 12px}
.home-ps-q .home-ps-q-list{margin:8px 0 0;padding-left:20px}
.home-ps-q .home-ps-q-prompt{margin:8px 0 0;color:var(--home-ps-q-muted);font-size:.88rem;border-left:3px solid var(--home-ps-q-line);padding-left:10px}
.home-ps-q .home-ps-q-card{margin:22px 0 0;padding:18px 16px;border:1px solid var(--home-ps-q-line);border-radius:12px;background:var(--home-ps-q-card);scroll-margin-top:12px}
.home-ps-q .home-ps-q-card-head{margin:0 0 4px}
.home-ps-q .home-ps-q-card-title{margin:0;font-size:1.18rem;color:#111827}
.home-ps-q .home-ps-q-card-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:6px 0 0}
/* C13 P2 (13-10-2026): el recuento de palabras de la tarjeta y, debajo, el aviso del mínimo oficial
   dentro de la revisión. Su tamaño es el del texto que se lee —no el de un pie de página— porque es
   información que el alumno tiene que poder leer sin volver al formulario. */
.home-ps-q .home-ps-q-words{color:var(--home-ps-q-muted);font-size:.92rem}
.home-ps-q .home-ps-q-below{margin:6px 0 0;color:var(--home-ps-q-amber);font-size:.95rem;font-weight:700}
.home-ps-q .home-ps-q-change{margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--home-ps-q-line)}
.home-ps-q .home-ps-q-change-head{margin:0;font-size:1rem;color:#111827}
.home-ps-q .home-ps-q-under{margin:6px 0 0}
.home-ps-q .home-ps-q-quote{margin:8px 0 0;padding:8px 10px;border-left:4px solid #c4a68e;background:#faf8f6;font-family:'IBM Plex Serif',Georgia,serif;font-style:italic;color:#38424f}
.home-ps-q .home-ps-q-proposal{margin:10px 0 0;padding:12px 14px;border:1px solid #c9dcf0;border-left:5px solid var(--home-ps-q-blue);border-radius:8px;background:var(--home-ps-q-blue-bg)}
.home-ps-q .home-ps-q-proposal-label{margin:0;color:var(--home-ps-q-blue);font-weight:800;font-size:.84rem;letter-spacing:.04em;text-transform:uppercase}
.home-ps-q .home-ps-q-proposal-text{margin:4px 0 0}
.home-ps-q .home-ps-q-other{margin:12px 0 0;padding:10px 12px;border:1px dashed #c4a68e;border-radius:8px}
.home-ps-q .home-ps-q-other-label{margin:0;color:var(--home-ps-q-amber);font-weight:800;font-size:.84rem;letter-spacing:.04em;text-transform:uppercase}
.home-ps-q .home-ps-q-already>summary{font-size:.96rem}
.home-ps-q .home-ps-q-chips{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.home-ps-q .home-ps-q-chip-item{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--home-ps-q-line);border-radius:10px;background:var(--home-ps-q-card)}
.home-ps-q .home-ps-q-chip-where{font-weight:700;color:#111827}
.home-ps-q .home-ps-q-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.home-ps-q .home-ps-q-reading{padding:12px;border:1px solid var(--home-ps-q-line);border-radius:10px;background:var(--home-ps-q-card)}
.home-ps-q .home-ps-q-reading-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0}
.home-ps-q .home-ps-q-who{color:var(--home-ps-q-blue);font-weight:800}
.home-ps-q .home-ps-q-reading-text{margin:8px 0 0}
.home-ps-q .home-ps-q-reading-offer{margin:8px 0 0;padding:8px 10px;border-left:4px solid var(--home-ps-q-blue);background:var(--home-ps-q-blue-bg);border-radius:6px}
.home-ps-q .home-ps-q-crits{margin:12px 0 0}
.home-ps-q .home-ps-q-crit{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--home-ps-q-line)}
.home-ps-q .home-ps-q-crit-head{margin:0;font-size:1rem;color:#111827}
.home-ps-q .home-ps-q-agree-row{margin:0;padding:12px 14px;border-top:1px solid var(--home-ps-q-line)}
.home-ps-q .home-ps-q-agree-where{margin:0;font-weight:700;color:#111827}
.home-ps-q .home-ps-q-tag{display:inline-block;padding:2px 8px;border-radius:999px;background:#f1ede9;color:#4e3629;font-size:.78rem;font-weight:800}
.home-ps-q .home-ps-q-other-line{margin:8px 0 0;font-size:.94rem;color:#334155}
.home-ps-q .home-ps-q-quote-inline{font-family:'IBM Plex Serif',Georgia,serif;font-style:italic;color:#38424f}
.home-ps-q .home-ps-q-reason{margin:0;font-size:.94rem;color:#334155}
/* Punto 3 (14-10-2026): en la fila de una razón el nombre del lector y su frase se leían pegados
   («PrimaryYour essay…»), porque el nombre es un `span` y su frase le sigue sin nada en medio. El
   hueco lo pone la hoja de estilo, con la misma medida que las frases de «What to do next» —que ya lo
   llevaban—, y vale para las dos filas donde un lector dice algo: la razón de la coincidencia y la
   línea de la otra lectura. Así la separación no depende de un espacio suelto en el marcado. */
.home-ps-q .home-ps-q-reason .home-ps-q-who,.home-ps-q .home-ps-q-other-line .home-ps-q-who{margin-right:6px}
.home-ps-q .home-ps-q-next-head{margin:14px 0 0;font-size:.95rem;color:#111827}
.home-ps-q .home-ps-q-next-list{margin:8px 0 0;padding-left:20px}
.home-ps-q .home-ps-q-next-where{margin:0;font-weight:700;color:var(--home-ps-q-blue)}
.home-ps-q .home-ps-q-next-text{margin:4px 0 0}
.home-ps-q .home-ps-q-next-text .home-ps-q-who{margin-right:6px}
.home-ps-q .home-ps-q-next-more>summary{color:var(--home-ps-q-blue)}
.home-ps-q .home-ps-q-next-more>h5{padding:0 14px}
.home-ps-q .home-ps-q-foot{margin:18px 0 0;padding:10px 12px;border-left:4px solid #c4a68e;background:#faf8f6;border-radius:6px}
@media(max-width:720px){.home-ps-q .home-ps-q-columns{grid-template-columns:1fr}}

/* ==== CEG · EL WIDGET BAJO EL TEMA — reinicio acotado (M2c · el bloque de móvil, 15-10-2026) ====

   Qué es esto. Todo lo que el tema de la página (ASAP: `main.min.css` + sus bloques de estilo en
   línea) le hace al widget y no debería —corregido DENTRO del widget, y solo dentro del widget—.
   El propietario lo vio en su móvil el 15-10-2026, en la home pública y en la página de Brown:
   botones de un tercio de pantalla, las listas en una columna estrecha, aire de más entre bloques,
   el Turnstile saliéndose de su tarjeta y, en el formulario, el aire de encima de cada título, los
   títulos grandes y las cajas de texto bajas.

   De dónde sale cada regla. No es una opinión: lo mide `tools/movil-capturas.mjs`, que pinta el
   widget dentro del tema de verdad —los mismos ancestros y el mismo CSS, `wp-snapshots/tema-asap/`—
   a 360 y 390 px, y para cada propiedad nombra la regla que gana. Las que ganaban eran del tema:

     .the-content ul li  → margin-left: 40px      (la lista del informe: texto a 93 px de 264)
     .the-content ul li  → font-size: 18px
     .the-content h3     → margin-top: 2rem !important    (32 px de aire dentro de cada tarjeta)
     h1…h6               → font-family: Lora !important
     h3 / h2             → font-size: 28px / 32px
     p                   → margin: 0 0 24px
     .home-ps-next-actions > * → flex: 1 1 150px  (esta es del widget: en columna, 150 px de ALTO)

   Este bloque viaja IDÉNTICO en los dos snippets que lo necesitan (la home y Brown):
   `tests/motor-movil-bajo-el-tema.test.mjs` lo exige byte a byte, para que no se separen, y mide sus
   siete puntos con el tema cargado.

   ================================================================================================ */

/* 1 · El ritmo. Un artículo del tema escribe sus párrafos con 24 px por debajo y sus bloques con
   19,2; el widget tiene sus propias tarjetas y sus propios márgenes. Aquí hay un solo ritmo, un poco
   más corto que el del artículo, para que el mismo hueco signifique lo mismo en todo el widget. */
#home-ps-grader-widget p,
#brown-grader-widget p {
  margin: 0 0 1rem !important;
}
#home-ps-grader-widget p:last-child,
#brown-grader-widget p:last-child {
  margin-bottom: 0 !important;
}

/* 2 · Las listas. `.the-content ul li{margin-left:40px}` es del tema, y la hoja del widget nunca lo
   pisó: con el `padding-left` de la lista, el texto empezaba a 93 px de una columna de 264. La
   sangría pasa a ser la de la lista, y el punto queda fuera del texto, como en un informe. */
#home-ps-grader-widget ul,
#home-ps-grader-widget ol,
#brown-grader-widget ul,
#brown-grader-widget ol {
  margin: .5rem 0 .75rem !important;
  padding-left: 1.15rem !important;
  list-style-position: outside;
}
#home-ps-grader-widget li,
#brown-grader-widget li {
  margin: 0 0 .35rem !important;
  padding-left: 0 !important;
}
#home-ps-grader-widget li:last-child,
#brown-grader-widget li:last-child {
  margin-bottom: 0 !important;
}
#home-ps-grader-widget li ul,
#home-ps-grader-widget li ol,
#brown-grader-widget li ul,
#brown-grader-widget li ol {
  margin: .35rem 0 0 !important;
}


/* 3 · Los títulos. El tema fuerza la tipografía de sus encabezados con `!important` (Lora), su
   tamaño (h2 32 px, h3 28 px) y su aire (`.the-content h3{margin-top:2rem!important}` y
   `.the-content h2{margin-top:2.5rem!important}`, que dentro de una tarjeta se leen como 32 px de
   hueco entre el borde y el título: el punto 5 del propietario). El widget recupera su tipografía
   —la de la página, que es la que hereda todo lo demás— y una escala propia, algo más corta en
   móvil, donde la columna mide 264 px: el título de una tarjeta de prompt se lee a 18 px y no a los
   24–28 px del tema, que es el punto 6. El aire de arriba es uno solo para todo el widget —20 px— y
   el de un título que abre su caja es cero: el hueco del borde lo pone la caja, no el título. El
   título propio de la home (su h2 de sección) no entra aquí: tiene su propia regla desde el bloque
   anterior, y pesa más que esta. */
#home-ps-grader-widget h1,
#home-ps-grader-widget h2,
#home-ps-grader-widget h3,
#home-ps-grader-widget h4,
#home-ps-grader-widget h5,
#home-ps-grader-widget h6,
#brown-grader-widget h1,
#brown-grader-widget h2,
#brown-grader-widget h3,
#brown-grader-widget h4,
#brown-grader-widget h5,
#brown-grader-widget h6 {
  font-family: inherit !important;
  margin: 1.25rem 0 .5rem !important;
  line-height: 1.3;
}
#home-ps-grader-widget h1:first-child,
#home-ps-grader-widget h2:first-child,
#home-ps-grader-widget h3:first-child,
#home-ps-grader-widget h4:first-child,
#home-ps-grader-widget h5:first-child,
#home-ps-grader-widget h6:first-child,
#brown-grader-widget h1:first-child,
#brown-grader-widget h2:first-child,
#brown-grader-widget h3:first-child,
#brown-grader-widget h4:first-child,
#brown-grader-widget h5:first-child,
#brown-grader-widget h6:first-child {
  margin-top: 0 !important;
}
#home-ps-grader-widget h1,
#brown-grader-widget h1 { font-size: 1.75rem; }
#home-ps-grader-widget h2,
#brown-grader-widget h2 { font-size: 1.5rem; }
#home-ps-grader-widget h3,
#brown-grader-widget h3 { font-size: 1.25rem; }
#home-ps-grader-widget h4,
#brown-grader-widget h4 { font-size: 1rem; }
#home-ps-grader-widget h5,
#home-ps-grader-widget h6,
#brown-grader-widget h5,
#brown-grader-widget h6 { font-size: .9375rem; }
@media (max-width: 480px) {
  #home-ps-grader-widget h1,
  #brown-grader-widget h1 { font-size: 1.5rem; }
  #home-ps-grader-widget h2,
  #brown-grader-widget h2 { font-size: 1.375rem; }
  #home-ps-grader-widget h3,
  #brown-grader-widget h3 { font-size: 1.125rem; }
}

/* 4 · Los botones. La barra de tres acciones del informe es una fila con `flex: 1 1 150px` por botón
   —150 px de ancho mínimo, que es lo que se quiso—, pero en móvil la hoja propia la pone en columna
   y ese mismo `flex-basis` se lee como ALTURA: cada botón pasaba a medir 150 px, un tercio de la
   pantalla, y los tres juntos 470 px. En columna, el alto lo pone el contenido, y el mínimo cómodo
   para un dedo es 44 px. */
@media (max-width: 768px) {
  #home-ps-grader-widget .home-ps-next-actions > *,
  #home-ps-grader-widget .buy-btn-group > *,
  #brown-grader-widget .brown-final-actions > * {
    flex: 0 1 auto !important;
    height: auto;
    min-height: 44px;
  }
}
#home-ps-grader-widget button,
#home-ps-grader-widget a.home-ps-auth-btn,
#brown-grader-widget button,
#brown-grader-widget .brown-final-actions a {
  min-height: 44px;
  box-sizing: border-box;
}
/* 5 · El Turnstile. Su marco mide 300 px de ancho y no cabía en una tarjeta de 264: se salía por la
   derecha de la pantalla. El widget mide su caja antes de pedir el tamaño (`cegTurnstileSize`, el
   bloque CEG · EL RETO MEDIDO de los snippets: «compact», 150×140, donde no caben los 300) y aquí se
   le cierra la puerta a cualquier marco que aún llegue a 300 px: nunca más ancho que su caja, y
   centrado, con el alto reservado para que el reto no empuje el resto al aparecer. */
#home-ps-grader-widget .captcha-container,
#home-ps-grader-widget [id*="turnstile"],
#home-ps-grader-widget .cf-turnstile,
#brown-grader-widget .brown-turnstile,
#brown-grader-widget [id*="turnstile"],
#brown-grader-widget .cf-turnstile {
  max-width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
  overflow-x: clip;
}
#home-ps-grader-widget .cf-turnstile,
#home-ps-grader-widget [id*="turnstile"] iframe,
#brown-grader-widget .cf-turnstile,
#brown-grader-widget [id*="turnstile"] iframe {
  max-width: 100% !important;
  /* `min-width` también: un marco con `min-width:300px` gana a `max-width` (así lo dice la regla de
     la caja), y entonces el recorte no recortaría nada. Se prueban las dos, a propósito. */
  min-width: 0 !important;
}

/* 6 · Las cajas de texto. Eran 170 px fijas en la home (260 en escritorio, 170 en móvil, con un
   `height` que no crece) y 165 en cada prompt de Brown —la misma caja para el prompt de 100–150
   palabras que para el de 150–250—. Ahora el mínimo es proporcional a lo que el prompt pide, la caja
   crece con lo que se escribe (el `height` fijo se retira) y se puede estirar a mano: en un móvil, la
   de 100–150 admite unas ocho líneas y la de 150–250, diez. */
#home-ps-grader-widget textarea,
#brown-grader-widget textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  height: auto !important;
  resize: vertical;
}
#home-ps-grader-widget textarea[data-words="100-150"],
#brown-grader-widget textarea[data-words="100-150"] { min-height: 12rem !important; }
#home-ps-grader-widget textarea[data-words="150-250"],
#brown-grader-widget textarea[data-words="150-250"] { min-height: 15rem !important; }
#home-ps-grader-widget textarea[data-words="250-650"],
#brown-grader-widget textarea[data-words="250-650"] { min-height: 18rem !important; }
#home-ps-grader-widget textarea[data-words],
#brown-grader-widget textarea[data-words] {
  font-size: 1rem;
  line-height: 1.5;
}
@media (max-width: 480px) {
  /* La columna es más estrecha, así que las mismas palabras ocupan más líneas: un poco más altas. */
  #home-ps-grader-widget textarea[data-words="100-150"],
  #brown-grader-widget textarea[data-words="100-150"] { min-height: 13rem !important; }
  #home-ps-grader-widget textarea[data-words="150-250"],
  #brown-grader-widget textarea[data-words="150-250"] { min-height: 16rem !important; }
  #home-ps-grader-widget textarea[data-words="250-650"],
  #brown-grader-widget textarea[data-words="250-650"] { min-height: 20rem !important; }
}

/* ==== CEG · EL WIDGET BAJO EL TEMA — fin ==== */

/* ==== CEG · CONSENTIMIENTO — tarjeta, opciones y nota (pieza compartida · 5 widgets) ====

   La pieza `snippets/motor-consentimiento.js` dibuja esta tarjeta dentro del widget. Antes, el
   `<fieldset>`/`<legend>` del navegador la dejaba con su borde y su sangría, los radios salían
   pegados («YesO No»), la nota entera ocupaba media pantalla y la pregunta caía debajo del botón.
   Este bloque —acotado a `[data-ceg-consent]`— la convierte en una tarjeta como las demás del
   widget: el `fieldset` se resetea (sin borde ni legend del navegador), Yes/No son dos botones del
   mismo tamaño con el elegido marcado en el acento del tema (`var(--accent)` en la home,
   `var(--brown)` en Brown, `var(--tema-acento)` en UC/Ivy), y la nota se pliega con «Read more».

   Viaja IDÉNTICO en los 5 widgets, como la pieza JS; `tests/motor-consentimiento.test.mjs` lo exige
   byte a byte.
   ================================================================================================ */

/* 1 · La tarjeta: como los demás avisos del widget (fondo claro, borde suave, esquinas, padding). */
[data-ceg-consent] {
  --ceg-consent-acento: var(--accent, var(--brown, var(--tema-acento, #0b4f8a)));
  --ceg-consent-borde: #e2e8f0;
  --ceg-consent-fondo: #f8fafc;
  margin: 0 0 1rem;
  padding: 1rem 1rem .9rem;
  border: 1px solid var(--ceg-consent-borde);
  border-radius: 12px;
  background: var(--ceg-consent-fondo);
  color: inherit;
  font: inherit;
  line-height: 1.5;
  box-sizing: border-box;
}

/* 2 · El fieldset, reseteado: sin el borde ni el legend del navegador. */
[data-ceg-consent] .ceg-consent-campo {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

/* 3 · La pregunta: en negrita y del tamaño del texto normal (sin la caja del legend). */
[data-ceg-consent] .ceg-consent-pregunta {
  display: block;
  float: none;
  width: auto;
  padding: 0;
  margin: 0 0 .6rem;
  border: 0;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.4;
}

/* 4 · Yes / No: dos botones del mismo tamaño, uno al lado del otro y con separación. */
[data-ceg-consent] .ceg-consent-opciones {
  display: flex;
  gap: .6rem;
  margin: 0 0 .8rem;
}
[data-ceg-consent] .ceg-consent-opcion {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .6rem .75rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: inherit;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
}

/* El radio real sigue existiendo (accesibilidad y teclado): invisible, pero cubre la etiqueta. */
[data-ceg-consent] .ceg-consent-radio {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

/* 5 · El elegido, marcado con el color del tema de la ficha. */
[data-ceg-consent] .ceg-consent-opcion:has(.ceg-consent-radio:checked) {
  border-color: var(--ceg-consent-acento);
  box-shadow: inset 0 0 0 1px var(--ceg-consent-acento);
  color: var(--ceg-consent-acento);
  font-weight: 700;
}

/* Foco visible (teclado). */
[data-ceg-consent] .ceg-consent-opcion:has(.ceg-consent-radio:focus-visible) {
  outline: 2px solid var(--ceg-consent-acento);
  outline-offset: 2px;
}

/* 6 · La nota: pequeña (≈0.85rem) y en color suave. */
[data-ceg-consent] .ceg-consent-nota {
  margin: 0;
  font-size: .85rem;
  line-height: 1.45;
  color: #64748b;
}

/* 7 · «Read more» / «Show less»: un botón real (teclado), con aria-expanded. */
[data-ceg-consent] .ceg-consent-leer {
  display: inline;
  margin: 0 0 0 .35rem;
  padding: 0;
  min-height: 0;
  border: 0;
  background: none;
  color: var(--ceg-consent-acento);
  font: inherit;
  font-size: .85rem;
  line-height: inherit;
  vertical-align: baseline;
  text-decoration: underline;
  cursor: pointer;
}
[data-ceg-consent] .ceg-consent-leer:hover {
  text-decoration: none;
}
[data-ceg-consent] .ceg-consent-leer:focus-visible {
  outline: 2px solid var(--ceg-consent-acento);
  outline-offset: 2px;
  border-radius: 2px;
  text-decoration: none;
}

/* 8 · Móvil (390 px): los dos botones caben en una línea o se apilan limpios; nada se sale. */
@media (max-width: 390px) {
  [data-ceg-consent] .ceg-consent-opciones {
    flex-wrap: wrap;
  }
  [data-ceg-consent] .ceg-consent-opcion {
    flex: 1 1 100%;
  }
}

/* ==== CEG · CONSENTIMIENTO — fin ==== */
