/**
 * CMF — CM Ferramentas Core Styles
 * v2.0.0 (2026-05-11) — auditoria /ferramentas/
 *
 * Mudanças vs v1 (criado 02/04/2026):
 *  • tokens unificados em :root via cmf-wrapper (sem conflito com CSS inline do engine)
 *  • foco visível ativo (outline 2px + offset, atende WCAG 2.4.7)
 *  • help text com contraste AA (#5c636a sobre #fff = 7:1)
 *  • respeita prefers-reduced-motion
 *  • .cmf-actions pós-resultado (copiar / imprimir)
 *  • .cmf-breadcrumb estilizado
 *  • max-width consistente desktop, full-width mobile
 *  • estilos @media print para PDF/impressão
 *
 * Tokens (definidos em .cmf-wrapper para escopo isolado):
 *  --cmf-navy / --cmf-vinho / --cmf-teal / --cmf-ouro
 *  --cmf-bg / --cmf-card / --cmf-text / --cmf-muted / --cmf-border
 *  --cmf-radius / --cmf-radius-sm
 *  --cmf-focus / --cmf-shadow
 */

/* ══════════════════════════════════════════════
   TOKENS — herda do COLOR_SYSTEM (cm-*-500) com fallback hex
   ══════════════════════════════════════════════ */
.cmf-wrapper{
    --cmf-navy:        var(--cm-navy-500,  #1B2A4A);
    --cmf-navy-600:    var(--cm-navy-600,  #142036);
    --cmf-navy-50:     var(--cm-navy-50,   #e8ebf2);
    --cmf-vinho:       var(--cm-vinho-500, #8B2332);
    --cmf-vinho-600:   var(--cm-vinho-600, #6f1c28);
    --cmf-vinho-50:    var(--cm-vinho-50,  #fce8ea);
    --cmf-teal:        var(--cm-teal-500,  #2A6B7C);
    --cmf-ouro:        var(--cm-ouro-500,  #B8860B);
    --cmf-ouro-50:     #fff8e1;
    --cmf-bg:          #f8f9fa;
    --cmf-card:        #ffffff;
    --cmf-text:        #1f2328;
    --cmf-muted:       #4a5057;             /* contraste AA */
    --cmf-border:      #d8dce0;
    --cmf-border-strong:#b6bbc0;
    --cmf-radius:      12px;
    --cmf-radius-sm:    8px;
    --cmf-focus:       0 0 0 3px rgba(139,35,50,.25);
    --cmf-shadow-sm:   0 1px 2px rgba(0,0,0,.05);
    --cmf-shadow-md:   0 4px 16px rgba(0,0,0,.06);

    max-width: 720px;
    margin: 0 auto;
    padding: 0 12px;
    color: var(--cmf-text);
    font-family: system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ══════════════════════════════════════════════
   BREADCRUMB / VOLTAR
   ══════════════════════════════════════════════ */
.cmf-breadcrumb{
    font-size: 13px;
    color: var(--cmf-muted);
    margin: 4px 0 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 6px;
    align-items: center;
    line-height: 1.4;
}
.cmf-wrapper .cmf-breadcrumb a.cmf-bc-link{
    color: var(--cmf-teal);
    text-decoration: none;
    border-bottom: 1px dotted transparent;
    transition: border-color .15s;
}
.cmf-wrapper .cmf-breadcrumb a.cmf-bc-link:hover,
.cmf-wrapper .cmf-breadcrumb a.cmf-bc-link:focus{
    border-bottom-color: var(--cmf-teal);
    color: var(--cmf-teal);
}
.cmf-breadcrumb-sep{
    opacity: .6;
}

/* ══════════════════════════════════════════════
   HEADER DA FERRAMENTA
   ══════════════════════════════════════════════ */
.cmf-tool-area{
    margin-top: 8px;
}
.cmf-tool-header{
    text-align: center;
    margin-bottom: 22px;
}
.cmf-tool-badge{
    display: inline-block;
    background: var(--cmf-vinho);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 14px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: 12px;
    line-height: 1.6;
}
.cmf-tool-title{
    color: var(--cmf-navy);
    font-size: clamp(20px, 2.8vw, 28px);
    line-height: 1.25;
    margin: 0 0 6px;
    font-weight: 700;
}
.cmf-tool-subtitle{
    color: var(--cmf-muted);
    font-size: 15px;
    line-height: 1.55;
    margin: 0 auto;
    max-width: 560px;
}

/* ══════════════════════════════════════════════
   CONTAINER E FORM (v1 .cmf-tool-form + v3 .cmf-form)
   ══════════════════════════════════════════════ */
.cmf-tool-container{
    background: var(--cmf-card);
    border: 1px solid var(--cmf-border);
    border-radius: var(--cmf-radius);
    padding: 28px 26px;
    box-shadow: var(--cmf-shadow-sm);
}
.cmf-tool-form,
.cmf-form{
    background: var(--cmf-bg);
    border: 1px solid var(--cmf-border);
    border-radius: var(--cmf-radius);
    padding: 26px 22px;
    margin: 0 0 22px;
}
.cmf-group,
.cmf-tool-form .cmf-group,
.cmf-form .cmf-group{
    margin-bottom: 18px;
}
.cmf-group:last-child{
    margin-bottom: 0;
}
.cmf-group label,
.cmf-label{
    display: block;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--cmf-navy);
    margin-bottom: 6px;
    line-height: 1.35;
}
.cmf-help{
    font-size: 12.5px;
    color: var(--cmf-muted);
    margin: 4px 0 0;
    line-height: 1.5;
}

/* ══════════════════════════════════════════════
   CONTROLES (input / select / textarea)
   ══════════════════════════════════════════════ */
.cmf-group input[type="text"],
.cmf-group input[type="number"],
.cmf-group input[type="date"],
.cmf-group input[type="email"],
.cmf-group input[type="tel"],
.cmf-group select,
.cmf-group textarea,
.cmf-input,
.cmf-select,
.cmf-textarea{
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--cmf-border-strong);
    border-radius: var(--cmf-radius-sm);
    font-size: 15.5px;
    line-height: 1.4;
    color: var(--cmf-text);
    background: var(--cmf-card);
    box-sizing: border-box;
    transition: border-color .15s, box-shadow .15s;
    font-family: inherit;
}
.cmf-group select,
.cmf-select{
    appearance: auto;
    -webkit-appearance: auto;
    cursor: pointer;
}
.cmf-group input:focus,
.cmf-group select:focus,
.cmf-group textarea:focus,
.cmf-input:focus,
.cmf-select:focus,
.cmf-textarea:focus{
    outline: none;
    border-color: var(--cmf-vinho);
    box-shadow: var(--cmf-focus);
}
.cmf-group input:disabled,
.cmf-group select:disabled,
.cmf-input:disabled,
.cmf-select:disabled{
    background: #f1f3f5;
    cursor: not-allowed;
    opacity: .75;
}
.cmf-group input::placeholder,
.cmf-input::placeholder{
    color: #9aa0a6;
}

/* ══════════════════════════════════════════════
   BOTÕES — calc (primário vinho), reset, btn genérico
   ══════════════════════════════════════════════ */
.cmf-btn-calc,
.cmf-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 22px;
    background: var(--cmf-vinho);
    color: #fff;
    border: 1px solid var(--cmf-vinho);
    border-radius: var(--cmf-radius-sm);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    line-height: 1.25;
    font-family: inherit;
    text-align: center;
    transition: background .15s, transform .12s, box-shadow .15s;
    box-shadow: var(--cmf-shadow-sm);
    margin-top: 6px;
}
.cmf-btn-calc:hover,
.cmf-btn:hover,
.cmf-btn-calc:focus,
.cmf-btn:focus{
    background: var(--cmf-vinho-600);
    border-color: var(--cmf-vinho-600);
    color: #fff;
    outline: none;
    box-shadow: var(--cmf-focus);
    transform: translateY(-1px);
}
.cmf-btn-calc:active,
.cmf-btn:active{ transform: translateY(0); }
.cmf-btn-calc:disabled,
.cmf-btn:disabled,
.cmf-btn-calc.cmf-is-loading,
.cmf-btn.cmf-is-loading{
    opacity: .65;
    cursor: progress;
    transform: none;
}
.cmf-btn-calc.cmf-is-loading::before,
.cmf-btn.cmf-is-loading::before{
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    animation: cmfSpin .7s linear infinite;
}

.cmf-btn-reset{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: auto;
    padding: 9px 20px;
    background: transparent;
    color: var(--cmf-navy);
    border: 1px solid var(--cmf-navy);
    border-radius: var(--cmf-radius-sm);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s;
    font-family: inherit;
}
.cmf-btn-reset:hover,
.cmf-btn-reset:focus{
    background: var(--cmf-navy);
    color: #fff;
    outline: none;
    box-shadow: var(--cmf-focus);
}

/* botão secundário (ex: adicionar vínculo) */
.cmf-add-vinculo{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    background: var(--cmf-navy-50);
    color: var(--cmf-navy);
    border: 1px dashed var(--cmf-navy);
    border-radius: var(--cmf-radius-sm);
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    margin: 6px 0 14px;
    transition: background .15s, transform .12s;
    font-family: inherit;
}
.cmf-add-vinculo:hover,
.cmf-add-vinculo:focus{
    background: #dde6f5;
    outline: none;
    box-shadow: var(--cmf-focus);
    transform: translateY(-1px);
}

/* ══════════════════════════════════════════════
   RESULTADO — header / main / body
   Estilo único: navy bem distinto (era gradient navy v1, OK)
   ══════════════════════════════════════════════ */
.cmf-result,
.cmf-result-card,
#cmf-resultado:not(:empty){
    background: var(--cmf-card);
    border: 1px solid var(--cmf-border);
    border-radius: var(--cmf-radius);
    overflow: hidden;
    margin-top: 22px;
    box-shadow: var(--cmf-shadow-md);
    animation: cmfFadeIn .35s ease-out;
}
.cmf-result-header{
    background: var(--cmf-navy);
    color: #fff;
    padding: 14px 22px;
    text-align: center;
}
.cmf-result-header h3{
    margin: 0;
    color: #fff !important;
    font-size: 1.05em;
    font-weight: 700;
    letter-spacing: .3px;
}
.cmf-result-main{
    background: linear-gradient(135deg, var(--cmf-navy), var(--cmf-navy-600));
    color: #fff;
    padding: 22px 20px;
    text-align: center;
}
.cmf-result-value{
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    margin: 0 0 4px;
    color: #fff;
    letter-spacing: -.5px;
    line-height: 1.1;
}
.cmf-result-label{
    font-size: 13.5px;
    color: rgba(255,255,255,.88);
    margin: 0;
}
.cmf-result-body{
    padding: 18px 22px;
    background: var(--cmf-card);
}
.cmf-result-section{
    font-size: 12px;
    font-weight: 700;
    color: var(--cmf-teal);
    text-transform: uppercase;
    letter-spacing: .7px;
    padding: 14px 0 6px;
    border-bottom: 2px solid var(--cmf-teal);
    margin-top: 8px;
}
.cmf-result-section:first-child{ margin-top: 0; padding-top: 2px; }
.cmf-result-row{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid #f0f1f3;
    font-size: 14px;
    line-height: 1.4;
}
.cmf-result-row:last-child{ border-bottom: none; }
.cmf-rk{ color: var(--cmf-muted); }
.cmf-rv{ font-weight: 600; color: var(--cmf-text); white-space: nowrap; text-align: right; }
.cmf-result-row.cmf-highlight,
.cmf-result-card .cmf-result-row.cmf-highlight{
    background: var(--cmf-vinho-50);
    margin: 6px -22px;
    padding: 11px 22px;
    border-radius: 6px;
    border-bottom: none;
}
.cmf-result-row.cmf-highlight .cmf-rk,
.cmf-result-row.cmf-highlight .cmf-rv{
    color: var(--cmf-vinho);
    font-weight: 700;
}

/* ══════════════════════════════════════════════
   ALERTAS / INFO / WARNING
   ══════════════════════════════════════════════ */
.cmf-alert,
.cmf-warning{
    background: #fff8e1;
    border: 1px solid #ffc107;
    border-left-width: 4px;
    color: #5b4708;
    padding: 12px 16px;
    border-radius: var(--cmf-radius-sm);
    margin: 14px 0;
    font-size: 13.5px;
    line-height: 1.5;
}
.cmf-info{
    background: #e7f1f6;
    border: 1px solid #a8cee0;
    border-left-width: 4px;
    color: #1d4e62;
    padding: 12px 16px;
    border-radius: var(--cmf-radius-sm);
    margin: 14px 0;
    font-size: 13.5px;
    line-height: 1.5;
}
.cmf-success{
    background: #e6f4ea;
    border: 1px solid #5b9b6c;
    border-left-width: 4px;
    color: #1f4d2a;
    padding: 12px 16px;
    border-radius: var(--cmf-radius-sm);
    margin: 14px 0;
    font-size: 13.5px;
    line-height: 1.5;
}
.cmf-error{
    background: #fce8ea;
    border: 1px solid var(--cmf-vinho);
    border-left-width: 4px;
    color: #5a1820;
    padding: 12px 16px;
    border-radius: var(--cmf-radius-sm);
    margin: 14px 0;
    font-size: 13.5px;
    line-height: 1.5;
}
.cmf-alert strong,
.cmf-warning strong,
.cmf-info strong,
.cmf-success strong,
.cmf-error strong{ color: inherit; }

.cmf-aviso-group{
    background: var(--cmf-ouro-50);
    border: 1px solid var(--cmf-ouro);
    border-left-width: 4px;
    border-radius: var(--cmf-radius-sm);
    padding: 13px 16px;
    margin: 12px 0;
}

/* ══════════════════════════════════════════════
   AÇÕES PÓS-RESULTADO (copiar / imprimir / nova consulta)
   ══════════════════════════════════════════════ */
.cmf-actions{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    padding: 16px 22px 6px;
    background: var(--cmf-card);
    border-top: 1px solid var(--cmf-border);
}
.cmf-actions .cmf-action-btn{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #fff;
    color: var(--cmf-navy);
    border: 1px solid var(--cmf-border-strong);
    border-radius: var(--cmf-radius-sm);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .12s;
    font-family: inherit;
    text-decoration: none;
}
.cmf-actions .cmf-action-btn:hover,
.cmf-actions .cmf-action-btn:focus{
    background: var(--cmf-navy-50);
    border-color: var(--cmf-navy);
    color: var(--cmf-navy);
    outline: none;
    box-shadow: var(--cmf-focus);
    transform: translateY(-1px);
}
.cmf-actions .cmf-action-btn svg{
    width: 14px;
    height: 14px;
    fill: currentColor;
}
.cmf-toast{
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: var(--cmf-navy);
    color: #fff;
    padding: 10px 20px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: var(--cmf-shadow-md);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s, transform .25s;
    z-index: 9999;
}
.cmf-toast.cmf-toast-show{
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ══════════════════════════════════════════════
   VÍNCULOS (calculadora-tempo-contribuicao / simulador-aposentadoria)
   ══════════════════════════════════════════════ */
.cmf-vinculos-list{ margin: 14px 0; }
.cmf-vinculo-item{
    background: var(--cmf-card);
    border: 1px solid var(--cmf-border);
    border-radius: var(--cmf-radius-sm);
    padding: 14px 16px;
    margin-bottom: 12px;
    box-shadow: var(--cmf-shadow-sm);
}
.cmf-vinculo-item .cmf-vinculo-head{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    font-weight: 700;
    color: var(--cmf-navy);
}
.cmf-vinculo-item button[aria-label*="Remover"],
.cmf-vinculo-item .cmf-vinculo-remove{
    background: transparent;
    color: var(--cmf-vinho);
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 4px 8px;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    transition: background .15s, border-color .15s;
}
.cmf-vinculo-item button[aria-label*="Remover"]:hover,
.cmf-vinculo-item .cmf-vinculo-remove:hover{
    background: var(--cmf-vinho-50);
    border-color: var(--cmf-vinho);
}

/* ══════════════════════════════════════════════
   FILTROS (BPC-LOAS, prazos)
   ══════════════════════════════════════════════ */
.cmf-filter-btn{
    display: inline-block;
    padding: 6px 14px;
    margin: 0 6px 8px 0;
    border: 1px solid var(--cmf-border-strong);
    border-radius: 999px;
    background: #fff;
    color: var(--cmf-muted);
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    transition: all .15s;
    font-family: inherit;
}
.cmf-filter-btn.active,
.cmf-filter-btn:hover,
.cmf-filter-btn:focus{
    background: var(--cmf-navy);
    color: #fff;
    border-color: var(--cmf-navy);
    outline: none;
    box-shadow: var(--cmf-focus);
}

/* ══════════════════════════════════════════════
   CTA WHATSAPP + DISCLAIMER
   ══════════════════════════════════════════════ */
.cmf-cta-box{
    text-align: center;
    margin: 26px 0 12px;
    padding: 22px 20px;
    background: linear-gradient(180deg, #ffffff 0%, var(--cmf-bg) 100%);
    border: 1px solid var(--cmf-border);
    border-radius: var(--cmf-radius);
}
.cmf-cta-text{
    margin: 0 0 14px;
    font-size: 15px;
    color: var(--cmf-text);
    line-height: 1.6;
}
.cmf-wrapper .cmf-btn-whatsapp{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 26px;
    background: #25D366;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(37,211,102,.32);
    transition: background .15s, transform .12s, box-shadow .15s;
}
.cmf-wrapper .cmf-btn-whatsapp:hover,
.cmf-wrapper .cmf-btn-whatsapp:focus{
    background: #1da851;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(37,211,102,.42);
    outline: none;
}
.cmf-btn-whatsapp svg{
    width: 18px;
    height: 18px;
    fill: currentColor;
}
.cmf-disclaimer{
    font-size: 12px;
    color: var(--cmf-muted);
    text-align: center;
    line-height: 1.5;
    margin: 0;
    padding: 14px 18px 18px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

/* mensagem de manutenção (sem JS) */
.cmf-maintenance{
    background: var(--cmf-ouro-50);
    border: 1px solid var(--cmf-ouro);
    border-left-width: 4px;
    color: #5b4708;
    padding: 16px 18px;
    border-radius: var(--cmf-radius-sm);
    margin: 12px 0;
    font-size: 14px;
    line-height: 1.55;
    text-align: left;
}
.cmf-maintenance strong{ color: #4a3a07; }

/* ══════════════════════════════════════════════
   UTILITÁRIOS
   ══════════════════════════════════════════════ */
.cmf-navy  { color: var(--cmf-navy); }
.cmf-vinho { color: var(--cmf-vinho); }
.cmf-teal  { color: var(--cmf-teal); }
.cmf-ouro  { color: var(--cmf-ouro); }
.cmf-muted { color: var(--cmf-muted); }
.cmf-sage  { color: var(--cmf-vinho); } /* alias legado */
.cmf-gold  { color: var(--cmf-ouro); }  /* alias legado */

/* ══════════════════════════════════════════════
   ANIMAÇÕES — respeita prefers-reduced-motion
   ══════════════════════════════════════════════ */
@keyframes cmfFadeIn{
    from{ opacity:0; transform: translateY(10px); }
    to  { opacity:1; transform: translateY(0); }
}
@keyframes cmfSpin{
    to{ transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce){
    .cmf-result,
    .cmf-result-card,
    #cmf-resultado:not(:empty){ animation: none; }
    .cmf-btn-calc:hover,
    .cmf-btn:hover,
    .cmf-btn-whatsapp:hover,
    .cmf-actions .cmf-action-btn:hover,
    .cmf-add-vinculo:hover{ transform: none; }
    .cmf-btn-calc.cmf-is-loading::before,
    .cmf-btn.cmf-is-loading::before{ animation: none; }
}

/* ══════════════════════════════════════════════
   RESPONSIVO (mobile-first break em 640px)
   ══════════════════════════════════════════════ */
@media (max-width: 640px){
    .cmf-wrapper{ padding: 0 10px; }
    .cmf-tool-container,
    .cmf-tool-form,
    .cmf-form{
        padding: 20px 16px;
    }
    .cmf-tool-title{ font-size: 21px; }
    .cmf-tool-subtitle{ font-size: 14px; }
    .cmf-btn-calc,
    .cmf-btn{
        padding: 12px 18px;
        font-size: 15.5px;
    }
    .cmf-result-row{
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        padding: 8px 0;
    }
    .cmf-result-row .cmf-rv{
        align-self: flex-end;
        font-size: 14.5px;
    }
    .cmf-result-row.cmf-highlight,
    .cmf-result-card .cmf-result-row.cmf-highlight{
        margin: 6px -16px;
        padding: 10px 16px;
    }
    .cmf-actions{ padding: 14px 16px 4px; }
    .cmf-cta-box{ padding: 18px 16px; }
}

/* ══════════════════════════════════════════════
   PRINT — ocultar navegação, otimizar resultado
   ══════════════════════════════════════════════ */
@media print{
    .cmf-tool-form,
    .cmf-form,
    .cmf-btn-calc,
    .cmf-btn,
    .cmf-btn-reset,
    .cmf-add-vinculo,
    .cmf-actions,
    .cmf-btn-whatsapp,
    .cmf-cta-box,
    .cmf-breadcrumb,
    .cmf-tool-badge{
        display: none !important;
    }
    .cmf-wrapper{
        max-width: 100%;
        padding: 0;
        color: #000;
    }
    .cmf-result,
    .cmf-result-card,
    #cmf-resultado{
        animation: none;
        box-shadow: none;
        border: 1px solid #444;
        page-break-inside: avoid;
    }
    .cmf-result-header,
    .cmf-result-main{
        background: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        border-bottom: 1px solid #444;
    }
    .cmf-result-value{ color: #000; }
    .cmf-result-label,
    .cmf-result-header h3{ color: #000 !important; }
    .cmf-result-row.cmf-highlight{
        background: #f3f3f3 !important;
    }
    .cmf-disclaimer{
        font-size: 10px;
        color: #555;
        page-break-before: avoid;
    }
}

/* ══════════════════════════════════════════════
   r3 — Defensivo: previne "branco em branco"
   Buttons sem classe cmf-* dentro do framework
   ══════════════════════════════════════════════ */
.cmf-wrapper button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]),
.cmf-tool-area button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]),
#cmf-tool-container button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]) {
    background: #fff;
    color: #1f2328;
    border: 1px solid #b6bbc0;
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}
.cmf-wrapper button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]):hover,
.cmf-tool-area button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]):hover,
#cmf-tool-container button:not([class*="cmf-"]):not([class*="kt-"]):not([class*="wp-"]):hover {
    background: #f1f3f5;
    border-color: #5c636a;
}

/* Spans descritivos cinza-leve dentro do framework: forçar contraste AA */
.cmf-wrapper p:not([class*="cmf-"]),
.cmf-tool-area p:not([class*="cmf-"]),
#cmf-tool-container p:not([class*="cmf-"]),
.cmf-result p:not([class*="cmf-"]) {
    color: #1f2328;
}
.cmf-wrapper small,
.cmf-tool-area small,
#cmf-tool-container small {
    color: #4a5057;
}

/* Badge inline genérico (ex: "Vínculo" no siglas-cnis) */
.cmf-tool-area .cmf-badge,
.cmf-tool-area [class*="badge"]:not(.cmf-tool-badge) {
    background: #e8ebf2;
    color: #1B2A4A;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
}

/* r3-extra: classes específicas de ferramentas legadas que esperam fundo escuro
   mas estavam ficando texto-branco-no-branco. Damos a elas um background navy. */
.cm-te-cta,
.cm-cta-aposentadoria,
.cm-cta-card,
.cm-te-cta-NOP, .cm-cta-NOP {
    background: linear-gradient(135deg, #1B2A4A, #142036);
    color: #fff;
    padding: 18px 22px;
    border-radius: 12px;
    margin: 16px 0;
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
.cm-te-cta p,
.cm-cta-aposentadoria p,
.cm-cta-card p {
    color: #fff;
    margin: 0 0 10px;
    line-height: 1.5;
}
.cm-te-cta a,
.cm-cta-aposentadoria a,
.cm-cta-card a {
    color: #fff !important;
    text-decoration: underline;
    text-decoration-color: rgba(255,255,255,.5);
    text-underline-offset: 3px;
}

/* r3-extra: badges inline-genéricos */
.cmf-tool-area .cmf-tag,
.cmf-tool-area .tag,
.cmf-tool-area .pill {
    display: inline-block;
    background: #e8ebf2;
    color: #1B2A4A;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}
