/*
========================================
THEME NEO A11Y - SGP
========================================
Variante de acessibilidade do tema neo, focada em usuários com baixa visão.
Carregado APÓS admin_neo.css (sobrescreve tokens/regras específicas).
========================================
*/

/* 1) tokens — escala de tipografia ampliada */
:root {
    /* base body de 13px → 16px (ampliação de ~23%) */
    --text-size-default: 16px;
    --text-size-small: 14px;
    --text-size-large: 17px;

    /* escala completa proporcionalmente ampliada */
    --text-size-xs: 13px;
    --text-size-sm: 14px;
    --text-size-md: 16px;
    --text-size-lg: 17px;
    --text-size-xl: 19px;
    --text-size-2xl: 22px;
    --text-size-3xl: 26px;

    /* contraste máximo: texto preto puro sobre branco puro */
    --color-text-primary: #000000;
    --color-text-secondary: #424242;
    --color-text-primary-dark: #ffffff;
    --color-text-secondary-dark: #e0e0e0;

    /* bordas mais escuras pra delimitar elementos com clareza */
    --color-border-primary: #595959;
    --color-border-secondary: #8a8a8a;
    --color-border-focus: #000000;
    --color-border-hover-strong: #000000;

    /* fundos mantidos brancos puros */
    --color-bg: #ffffff;
    --color-bg-secondary: #f5f5f5;
    --color-bg-tertiary: #ebebeb;

    /* hover com mais contraste */
    --color-hover-primary: #d4d4d4;

    /* accent com maior saturação pra ser detectável */
    --color-accent: #c84300;
    --color-accent-hover: #a83700;

    /* status com cores aprimoradas pra contraste */
    --color-success: #006400;
    --color-warning: #8a5b00;
    --color-error: #b00020;
    --color-info: #003c8f;

    /* foco extra forte */
    --box-shadow-focus: 0 0 0 4px rgba(200, 67, 0, 0.45), 0 0 0 6px #000000;

    /* radius reduzido pra leitura mais "firme" (menos visual fluffy) */
    --radius-default: .35em;
    --radius-sm: .25em;
    --radius-lg: .5em;
}

/* 2) base global — tipografia ampliada com line-height generoso */
html,
body {
    font-size: var(--text-size-default) !important;
}

body {
    line-height: 1.6 !important;
    color: var(--color-text-primary) !important;
}

/* 3) headings com peso reforçado */
h1 {
    font-size: var(--text-size-3xl) !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

h2 {
    font-size: var(--text-size-2xl) !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

h3 {
    font-size: var(--text-size-xl) !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

/* 4) links — sublinhado permanente em toda a interface */
a:not(.button):not(.buttonsm):not(.buttonxs):not(.buttonxss):not(.buttonfa):not(.ui-button):not(.paginate_button):not(.ui-tabs-anchor):not(.dir) {
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    text-decoration-thickness: 2px !important;
}

a:hover:not(.button):not(.buttonsm):not(.buttonxs):not(.buttonxss):not(.buttonfa):not(.ui-button):not(.paginate_button) {
    text-decoration-thickness: 3px !important;
}

/* 5) foco visível em todos elementos interativos */
*:focus-visible {
    outline: 3px solid var(--color-accent) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.5) !important;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.button:focus-visible,
.buttonsm:focus-visible,
.buttonxs:focus-visible,
.buttonxss:focus-visible,
.buttonfa:focus-visible {
    outline: 3px solid var(--color-accent) !important;
    outline-offset: 2px !important;
}

/* 6) inputs maiores e com bordas fortes (excluindo checkbox/radio que têm aparência própria) */
input:not(.button):not(.buttonsm):not(.buttonxs):not(.buttonxss):not(.buttonfa):not(.select2-search__field):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select,
textarea {
    border: 2px solid var(--color-border-primary) !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    font-size: var(--text-size-md) !important;
    color: var(--color-text-primary) !important;
    background: var(--color-bg) !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus,
select:focus,
textarea:focus {
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 4px rgba(200, 67, 0, 0.30), 0 0 0 6px #000000 !important;
}

/* checkboxes e radios: maiores, com cor de marcação visível */
input[type="checkbox"],
input[type="radio"] {
    width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    min-width: 22px !important;
    padding: 0 !important;
    margin: 0 6px 0 0 !important;
    accent-color: var(--color-accent) !important;
    cursor: pointer;
    vertical-align: middle;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
    outline: 3px solid var(--color-accent) !important;
    outline-offset: 3px !important;
}

input::placeholder,
textarea::placeholder {
    color: #595959 !important;
    opacity: 1 !important;
}

/* 6.1) inputs do header (search) — mantém translúcido sobre fundo escuro */
#id_clientebusca,
#id_clientebuscatipo {
    background: rgba(255, 255, 255, 0.10) !important;
    color: var(--color-text-primary-dark) !important;
    border: 2px solid rgba(255, 255, 255, 0.30) !important;
}

#id_clientebusca::placeholder {
    color: rgba(255, 255, 255, 0.75) !important;
}

#id_clientebusca:hover,
#id_clientebuscatipo:hover {
    background: rgba(255, 255, 255, 0.18) !important;
    color: var(--color-text-primary-dark) !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
}

#id_clientebusca:focus,
#id_clientebuscatipo:focus {
    background: rgba(255, 255, 255, 0.22) !important;
    color: var(--color-text-primary-dark) !important;
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 4px rgba(200, 67, 0, 0.45), 0 0 0 6px rgba(255, 255, 255, 0.5) !important;
}

#id_clientebusca:focus::placeholder,
#id_clientebusca:hover::placeholder {
    color: rgba(255, 255, 255, 0.9) !important;
}

/* 7) labels mais legíveis */
label,
.aligned label,
.add_content_sub p label,
.add_content_sub_no_border p label {
    font-size: var(--text-size-md) !important;
    font-weight: 600 !important;
    color: var(--color-text-primary) !important;
}

/* 8) botões com altura mínima 44px (WCAG 2.5.5) e bordas fortes */
.button,
.buttonsm,
.buttonxs,
.buttonxss,
.buttonfa,
.ui-button {
    min-height: 44px !important;
    padding: 10px 18px !important;
    border-width: 2px !important;
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

.buttonxs {
    min-height: 38px !important;
    padding: 7px 14px !important;
    font-size: var(--text-size-sm) !important;
}

.buttonxss {
    min-height: 34px !important;
    padding: 6px 12px !important;
    font-size: var(--text-size-sm) !important;
}

.buttonfa {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 8px !important;
}

/* botões coloridos: garantir contraste branco puro sobre fundo */
.orange,
a.orange,
.green,
a.green,
.red,
a.red,
.blue,
a.blue,
.black,
a.black,
.gray,
a.gray {
    color: #ffffff !important;
}

/* 9) header com texto mais legível */
#header-right,
#header-right ul li {
    font-size: var(--text-size-md) !important;
    font-weight: 500 !important;
}

#header-right ul li span {
    font-weight: 800 !important;
}

ul.sf-menu a:link,
ul.sf-menu a:visited,
ul.sf-menu a:active {
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

#headertop-right a:link,
#headertop-right a:visited,
#headertop-right a:active {
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

/* 10) tabelas — texto e bordas mais legíveis */
.tablex,
.tablex2,
.tablelist,
div.dataTables_wrapper table.display,
div.dataTables_wrapper table.dataTable {
    font-size: var(--text-size-md) !important;
    border: 2px solid var(--color-border-primary) !important;
}

.tablex th,
.tablex2 th,
.tablelist thead th,
div.dataTables_wrapper table.display thead th,
div.dataTables_wrapper table.dataTable thead th,
div.dataTables_wrapper table.display thead td,
div.dataTables_wrapper table.dataTable thead td,
div.dataTables_wrapper table.display thead th.ui-state-default,
div.dataTables_wrapper table.dataTable thead th.ui-state-default,
div.dataTables_wrapper table.display thead th.sorting,
div.dataTables_wrapper table.display thead th.sorting_asc,
div.dataTables_wrapper table.display thead th.sorting_desc,
div.dataTables_wrapper table.display thead th.sorting_disabled {
    font-size: var(--text-size-sm) !important;
    color: var(--color-text-primary) !important;
    font-weight: 800 !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 2px solid var(--color-border-primary) !important;
    border-bottom: 2px solid var(--color-border-primary) !important;
    padding: 14px 12px !important;
}

div.dataTables_wrapper table.display thead th:last-child,
div.dataTables_wrapper table.dataTable thead th:last-child,
div.dataTables_wrapper table.display thead th.ui-state-default:last-child,
div.dataTables_wrapper table.dataTable thead th.ui-state-default:last-child {
    border-right: 0 !important;
}

.tablex td,
.tablex2 td,
.tablelist tbody td,
div.dataTables_wrapper table.display tbody td,
div.dataTables_wrapper table.dataTable tbody td {
    padding: 12px !important;
    color: var(--color-text-primary) !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 2px solid var(--color-border-primary) !important;
}

div.dataTables_wrapper table.display tbody tr:hover td,
div.dataTables_wrapper table.dataTable tbody tr:hover td {
    background: #f0f0f0 !important;
}

/* 11) tabs com mais presença visual */
.tabsui.ui-tabs .ui-tabs-nav,
.ui-tabs .ui-tabs-nav {
    border: 2px solid var(--color-border-primary) !important;
}

.tabsui.ui-tabs .ui-tabs-nav .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
    min-height: 40px !important;
    padding: 10px 16px !important;
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

.tabsui.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
    border: 2px solid var(--color-border-primary) !important;
    color: var(--color-accent) !important;
    font-weight: 800 !important;
}

/* 12) cards/painéis com bordas fortes */
.add_title_sub,
.add_content_sub,
.add_content_buttons,
#box,
.ip-card,
.ip-container,
.dashboard-widget-title,
.dashboard-widget-content,
.module {
    border: 2px solid var(--color-border-primary) !important;
}

.add_title_sub {
    font-size: var(--text-size-md) !important;
    font-weight: 800 !important;
}

/* 13) dialogs/modais */
.ui-dialog {
    border: 2px solid var(--color-border-primary) !important;
}

.ui-dialog .ui-dialog-titlebar,
.ui-dialog .ui-dialog-titlebar.ui-widget-header,
div.ui-dialog .ui-dialog-titlebar,
div.ui-dialog .ui-dialog-titlebar.ui-widget-header {
    background: var(--color-bg-tertiary) !important;
    color: var(--color-text-primary) !important;
    border-bottom: 2px solid var(--color-border-primary) !important;
    min-height: 52px !important;
    height: 52px !important;
    padding: 0 16px !important;
}

.ui-dialog .ui-dialog-title {
    font-size: var(--text-size-lg) !important;
    font-weight: 800 !important;
    color: var(--color-text-primary) !important;
}

/* botão X de fechar do dialog */
.ui-dialog .ui-dialog-titlebar-close {
    background: var(--color-bg) !important;
    color: var(--color-text-primary) !important;
    border: 2px solid var(--color-border-primary) !important;
    width: 36px !important;
    height: 36px !important;
}

.ui-dialog .ui-dialog-titlebar-close:hover,
.ui-dialog .ui-dialog-titlebar-close.ui-state-hover,
.ui-dialog .ui-dialog-titlebar-close.ui-state-focus {
    background: var(--color-accent) !important;
    color: #ffffff !important;
    border-color: var(--color-accent) !important;
}

/* botões da barra de ações do modal */
.ui-dialog .ui-dialog-buttonpane button,
.ui-dialog .ui-dialog-buttonpane .ui-button {
    min-height: 44px !important;
    padding: 10px 18px !important;
    border-width: 2px !important;
    border-color: var(--color-border-primary) !important;
    background: var(--color-bg) !important;
    color: var(--color-text-primary) !important;
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

.ui-dialog .ui-dialog-buttonpane button:first-child,
.ui-dialog .ui-dialog-buttonpane .ui-button:first-child {
    background: var(--color-accent) !important;
    color: #ffffff !important;
    border-color: var(--color-accent) !important;
}

.ui-dialog .ui-dialog-buttonpane button:first-child:hover,
.ui-dialog .ui-dialog-buttonpane .ui-button:first-child:hover {
    background: var(--color-accent-hover) !important;
    border-color: var(--color-accent-hover) !important;
}

.ui-dialog .ui-dialog-buttonpane button:hover,
.ui-dialog .ui-dialog-buttonpane .ui-button:hover {
    background: var(--color-hover-primary) !important;
    border-color: var(--color-border-primary) !important;
}

/* 14) badges/tags com texto maior e sem text-shadow */
.tag,
.badge {
    font-size: var(--text-size-xs) !important;
    text-shadow: none !important;
    padding: 4px 8px !important;
    border-width: 2px !important;
}

/* 15) mensagens de erro/sucesso/aviso bem visíveis */
.fielderror,
span.error-message,
form.formx label.error,
form.formxm label.error {
    font-size: var(--text-size-sm) !important;
    font-weight: 700 !important;
    color: var(--color-error) !important;
}

ul.messagelist li,
ul.messagelist2 li {
    font-size: var(--text-size-md) !important;
    font-weight: 600 !important;
    border-width: 2px !important;
}

/* 16) datatable controls (length, filter, info, paginate) */
div.dataTables_wrapper .dataTables_length,
div.dataTables_wrapper .dataTables_filter,
div.dataTables_wrapper .dataTables_info,
div.dataTables_wrapper .dataTables_paginate {
    font-size: var(--text-size-md) !important;
}

div.dataTables_wrapper .dataTables_paginate .paginate_button {
    min-width: 44px !important;
    height: 44px !important;
    border-width: 2px !important;
    font-size: var(--text-size-md) !important;
}

/* bordas mais grossas em todos os componentes do datatables */
.fg-toolbar.ui-toolbar.ui-widget-header {
    border-width: 2px !important;
}

div.dataTables_wrapper .dataTables_filter input,
div.dataTables_wrapper .dataTables_length select {
    border-width: 2px !important;
    height: auto !important;
}

div.dataTables_wrapper:not(:has(.dataTables_filter, .dataTables_length, .dataTables_info, .dataTables_paginate, .dt-buttons)) {
    border-width: 2px !important;
}

.dataTables_wrapper .ui-state-default,
.dataTables_wrapper .ui-widget-header .ui-state-default,
.dataTables_wrapper .ui-button {
    border-width: 2px !important;
}

/* 17) select2 — alinhado aos demais inputs (fundo branco, borda forte) */
.select2-container--classic .select2-selection--single,
.select2-container--default .select2-selection--single,
.select2-container--classic .select2-selection--multiple,
.select2-container--default .select2-selection--multiple {
    min-height: 44px !important;
    border-width: 2px !important;
    border-color: var(--color-border-primary) !important;
    background: var(--color-bg) !important;
    box-shadow: none !important;
}

.select2-container--classic .select2-selection--single:hover,
.select2-container--default .select2-selection--single:hover,
.select2-container--classic .select2-selection--multiple:hover,
.select2-container--default .select2-selection--multiple:hover {
    background: var(--color-bg) !important;
    border-color: var(--color-text-primary) !important;
}

.select2-container--classic.select2-container--open .select2-selection--single,
.select2-container--classic.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--classic.select2-container--open .select2-selection--multiple,
.select2-container--classic.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--multiple {
    background: var(--color-bg) !important;
    border-color: var(--color-text-primary) !important;
    box-shadow: none !important;
    outline: none !important;
}

.select2-container--classic .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 40px !important;
    font-size: var(--text-size-md) !important;
    color: var(--color-text-primary) !important;
}

.select2-container--classic .select2-results__option,
.select2-container--default .select2-results__option {
    font-size: var(--text-size-md) !important;
    padding: 12px !important;
    min-height: 44px !important;
}

/* dropdown (popup) */
.select2-dropdown {
    border: 2px solid var(--color-border-primary) !important;
}

/* select2 disabled real (fica claramente diferenciado) */
.select2-container--disabled .select2-selection--single,
.select2-container--disabled .select2-selection--multiple {
    background: var(--color-bg-tertiary) !important;
    color: var(--color-text-secondary) !important;
    border-color: var(--color-border-secondary) !important;
    cursor: not-allowed !important;
}

/* 18) movimento reduzido — desabilita transições e animações para evitar
   distrações ou problemas para usuários sensíveis a movimento */
*,
*::before,
*::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
}

/* 19) elimina text-shadow em todo lugar — pode reduzir nitidez para baixa visão */
.tag,
.badge,
.circle,
.ui-tabs-anchor,
input,
select,
textarea,
button,
.button,
.buttonsm,
.buttonxs,
.buttonxss,
.buttonfa {
    text-shadow: none !important;
}

/* 20) skip-link helper (oculto até receber foco — útil para leitores de tela) */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--color-accent);
    color: #ffffff;
    padding: 12px 20px;
    z-index: 99999;
    font-weight: 700;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}

/* 21) ckeditor — aumenta altura da área de edição */
.cke_wysiwyg_div,
.cke_wysiwyg_frame {
    min-height: 200px !important;
    font-size: var(--text-size-md) !important;
}

/* 22) accordion — títulos legíveis */
.ui-accordion .ui-accordion-header {
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
    min-height: 44px !important;
    padding: 12px 14px 12px 36px !important;
}

/* 23) dashboard widget title — ícones e ações maiores e legíveis */
.dashboard-widget-title {
    font-size: var(--text-size-md) !important;
    font-weight: 800 !important;
    min-height: 52px !important;
    padding: 12px 16px !important;
    gap: 8px !important;
}

.dashboard-widget-title .tooltip-dashboard-btns.buttonxs {
    width: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border: 2px solid var(--color-border-primary) !important;
    background: var(--color-bg) !important;
    color: var(--color-text-primary) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.dashboard-widget-title .tooltip-dashboard-btns.buttonxs:hover {
    background: var(--color-accent) !important;
    color: #ffffff !important;
    border-color: var(--color-accent) !important;
}

.dashboard-widget-title .tooltip-dashboard-btns i {
    font-size: var(--text-size-sm) !important;
    line-height: 1 !important;
}

.dashboard-widget-title-sub {
    font-size: var(--text-size-sm) !important;
    color: var(--color-text-secondary) !important;
    font-weight: 600 !important;
}

.dashboard-widget-title span a {
    font-size: var(--text-size-sm) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    color: var(--color-text-primary) !important;
}

.dashboard-widget-title span a:hover {
    color: var(--color-accent) !important;
}
.clientebusca_content .ui-menu-item > div,
.clientebusca_content .ui-menu-item-wrapper {
    height: 96px !important;
    padding: 12px 6px 12px 12px !important;
    line-height: 1.4 !important;
}

.clientebusca_content .cl-row-name .cl-name {
    font-size: var(--text-size-md) !important;
    font-weight: 700 !important;
}

.clientebusca_content .cl-row-name .cl-id-pill {
    font-size: var(--text-size-xs) !important;
    padding: 2px 10px !important;
    font-weight: 700 !important;
}

.clientebusca_content .cl-row-meta {
    font-size: var(--text-size-sm) !important;
}

.clientebusca_content .cl-doc,
.clientebusca_content .cl-login {
    font-size: var(--text-size-sm) !important;
}

.clientebusca_content .cl-row-address {
    font-size: var(--text-size-xs) !important;
}

.clientebusca_content .cl-doc i,
.clientebusca_content .cl-login i,
.clientebusca_content .cl-row-address i {
    font-size: var(--text-size-xs) !important;
    opacity: 0.85 !important;
}

.clientebusca_content .ui-menu-item > div.ui-state-active,
.clientebusca_content .ui-menu-item > div.ui-state-focus,
.clientebusca_content .ui-menu-item-wrapper.ui-state-active,
.clientebusca_content .ui-menu-item-wrapper.ui-state-focus {
    padding: 12px 6px 12px 12px !important;
}

#id_clientebusca,
#id_clientebuscatipo {
    font-size: var(--text-size-default) !important;
    line-height: 1.4 !important;
}

#id_clientebusca::placeholder {
    font-size: var(--text-size-default) !important;
}
