/* ================================================================
   SISDOC - PrimeFaces Tailwind Theme
   Reset completo dos estilos nativos do PrimeFaces 7.0 (theme: none)
   para visual consistente com Tailwind CSS (slate/sky palette)
   ================================================================ */

/* ========== Global Reset ========== */

body .ui-widget,
body .ui-widget-content,
body .ui-widget-header {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

body .ui-helper-hidden {
    display: none !important;
}

body .ui-helper-clearfix::after {
    content: '';
    display: table;
    clear: both;
}

body .ui-corner-all,
body .ui-corner-top,
body .ui-corner-bottom,
body .ui-corner-left,
body .ui-corner-right,
body .ui-corner-tl,
body .ui-corner-tr,
body .ui-corner-bl,
body .ui-corner-br {
    border-radius: 0.5rem;
}

body .ui-icon {
    text-indent: 0;
    color: inherit;
}

/* ========== Button - Tailwind Reset ========== */

body .ui-button,
body .ui-button.ui-state-default {
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
    padding: 0.5rem 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: #374151;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease,
        opacity 0.15s ease;
    text-shadow: none;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    position: relative;
}

body .ui-button.ui-state-hover {
    border-color: #9ca3af;
    background: #f9fafb;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
}

body .ui-button.ui-state-active,
body .ui-button.ui-state-focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
    outline: none;
}

body .ui-button.ui-state-disabled,
body .ui-button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f9fafb;
    border-color: #e5e7eb;
    box-shadow: none;
}

body .ui-button .ui-button-text {
    padding: 0;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
}

body .ui-button .ui-button-icon-left,
body .ui-button .ui-button-icon-right {
    position: static;
    margin: 0;
    font-size: 1em;
}

body .ui-button.ui-button-text-icon-left {
    padding-left: 1rem;
    padding-right: 1rem;
}

body .ui-button.ui-button-text-icon-right {
    padding-left: 1rem;
    padding-right: 1rem;
}

body .ui-button.ui-button-icon-only {
    padding: 0px;
    min-width: auto;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body .ui-button.ui-button-icon-only .ui-icon {
    font-size: 0.875rem;
    position: static;
    left: auto;
    top: auto;
    margin: 0;
}

/* ========== Button Variants ========== */

body .ui-button.btn-primary {
    background: #0891b2;
    border-color: #0891b2;
    color: #ffffff;
}

body .ui-button.btn-primary.ui-state-hover {
    background: #0e7490;
    border-color: #0e7490;
}

body .ui-button.btn-primary.ui-state-active,
body .ui-button.btn-primary.ui-state-focus {
    background: #075985;
    border-color: #075985;
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.3);
}

body .ui-button.btn-danger {
    background: #dc2626;
    border-color: #dc2626;
    color: #ffffff;
}

body .ui-button.btn-danger.ui-state-hover {
    background: #b91c1c;
    border-color: #b91c1c;
}

body .ui-button.btn-danger.ui-state-active,
body .ui-button.btn-danger.ui-state-focus {
    background: #991b1b;
    border-color: #991b1b;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.3);
}

body .ui-button.btn-success {
    background: #059669;
    border-color: #059669;
    color: #ffffff;
}

body .ui-button.btn-success.ui-state-hover {
    background: #047857;
    border-color: #047857;
}

body .ui-button.btn-success.ui-state-active,
body .ui-button.btn-success.ui-state-focus {
    background: #065f46;
    border-color: #065f46;
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.3);
}

body .ui-button.btn-warning {
    background: #d97706;
    border-color: #d97706;
    color: #ffffff;
}

body .ui-button.btn-warning.ui-state-hover {
    background: #b45309;
    border-color: #b45309;
}

body .ui-button.btn-warning.ui-state-active,
body .ui-button.btn-warning.ui-state-focus {
    background: #92400e;
    border-color: #92400e;
    box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.3);
}

/* ========== Button Size: Small ========== */

body .ui-button.btn-sm {
    font-size: 0.8125rem;
    line-height: 1rem;
    padding: 0.25rem 0.625rem;
    border-radius: 0.375rem;
}

/* ========== CommandLink - Tailwind Reset ========== */

body .ui-commandlink {
    color: #0891b2;
    text-decoration: none;
    font-weight: 500;
    font-size: inherit;
    transition: color 0.15s ease;
}

body .ui-commandlink:hover {
    color: #0891b2;
    text-decoration: underline;
}

/* ========== Input - Tailwind Reset ========== */

body .ui-inputfield:not([type='hidden']),
body .ui-inputtext:not([type='hidden']),
body .ui-inputtextarea,
body .ui-selectbooleancheckbox,
body .ui-spinner .ui-spinner-input,
body .ui-calendar .ui-inputfield:not([type='hidden']),
body .ui-password .ui-inputfield:not([type='hidden']),
body .ui-inputnumber .ui-inputfield:not([type='hidden']),
body .ui-inputnumber input:not([type='hidden']) {
    font-family: inherit !important;
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
    color: #334155 !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.5rem !important;
    padding: 0.5rem 0.75rem !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    box-shadow: none !important;
    outline: none !important;
}

body .ui-inputfield:not([type='hidden']):hover,
body .ui-inputtext:not([type='hidden']):hover,
body .ui-inputtextarea:hover,
body .ui-spinner .ui-spinner-input:hover,
body .ui-calendar .ui-inputfield:not([type='hidden']):hover,
body .ui-password .ui-inputfield:not([type='hidden']):hover,
body .ui-inputnumber .ui-inputfield:not([type='hidden']):hover,
body .ui-inputnumber input:not([type='hidden']):hover {
    border-color: #cbd5e1 !important;
}

body .ui-inputfield:not([type='hidden']):focus,
body .ui-inputtext:not([type='hidden']):focus,
body .ui-inputtextarea:focus,
body .ui-spinner .ui-spinner-input:focus,
body .ui-calendar .ui-inputfield:not([type='hidden']):focus,
body .ui-password .ui-inputfield:not([type='hidden']):focus,
body .ui-inputnumber .ui-inputfield:not([type='hidden']):focus,
body .ui-inputnumber input:not([type='hidden']):focus {
    border-color: #0891b2 !important;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15) !important;
}

body .ui-inputfield:not([type='hidden']).ui-state-disabled,
body .ui-inputtext:not([type='hidden']).ui-state-disabled,
body .ui-inputnumber .ui-inputfield.ui-state-disabled:not([type='hidden']),
body .ui-inputnumber input.ui-state-disabled:not([type='hidden']) {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f8fafc !important;
}

body .ui-inputfield:not([type='hidden'])::placeholder,
body .ui-inputtext:not([type='hidden'])::placeholder {
    color: #94a3b8;
}

/* ========== SelectBooleanCheckbox ========== */

body .ui-chkbox .ui-chkbox-box {
    border: 2.5px solid #cbd5e1;
    border-radius: 0.375rem;
    width: 1.375rem;
    height: 1.375rem;
    background: #ffffff;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

body .ui-chkbox .ui-chkbox-box:hover:not(.ui-state-disabled) {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.1);
}

body .ui-chkbox .ui-chkbox-box.ui-state-active {
    background: #0891b2;
    border-color: #0891b2;
}

body .ui-chkbox .ui-chkbox-box.ui-state-active .ui-chkbox-icon {
    color: #ffffff;
    font-size: 0.875rem;
}

body .ui-chkbox .ui-chkbox-box.ui-state-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

body .ui-chkbox .ui-chkbox-label {
    font-size: 0.875rem;
    color: #334155;
    margin-left: 0.625rem;
    cursor: pointer;
}

/* ========== SelectOneRadio ========== */

body .ui-radiobutton .ui-radiobutton-box {
    border: 2px solid #cbd5e1;
    border-radius: 9999px;
    width: 1.125rem;
    height: 1.125rem;
    background: #ffffff;
    transition: all 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body .ui-radiobutton .ui-radiobutton-box:hover {
    border-color: #94a3b8;
}

body .ui-radiobutton .ui-radiobutton-box.ui-state-active {
    border-color: #0891b2;
}

body .ui-radiobutton .ui-radiobutton-box.ui-state-active .ui-radiobutton-icon {
    background: #0891b2;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    border: none;
}

body .ui-radiobutton .ui-radiobutton-label {
    font-size: 0.875rem;
    color: #334155;
    margin-left: 0.5rem;
}

/* ========== SelectBooleanButton ========== */

body .ui-selectbooleanbutton {
    border: 1px solid #cbd5e1;
    border-radius: 0.5rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #475569;
    background: #ffffff;
    transition: all 0.15s ease;
    box-shadow: none;
}

body .ui-selectbooleanbutton:hover {
    border-color: #94a3b8;
}

body .ui-selectbooleanbutton.ui-state-active {
    background: #0891b2;
    border-color: #0891b2;
    color: #ffffff;
}

/* ========== SelectOneButton ========== */

body .ui-selectonebutton .ui-button {
    border: 1px solid #cbd5e1;
    border-radius: 0;
    background: #ffffff;
    color: #475569;
    margin: 0 -1px 0 0;
}

body .ui-selectonebutton .ui-button:first-child {
    border-radius: 0.5rem 0 0 0.5rem;
}

body .ui-selectonebutton .ui-button:last-child {
    border-radius: 0 0.5rem 0.5rem 0;
}

body .ui-selectonebutton .ui-button.ui-state-active {
    background: #0891b2;
    border-color: #0891b2;
    color: #ffffff;
}

/* ========== OutputLabel ========== */

body .ui-outputlabel {
    font-size: 0.875rem;
    font-weight: 500;
    color: #334155;
    margin-bottom: 0.25rem;
    display: block;
}

body .ui-outputlabel.ui-state-error {
    color: #dc2626;
}

body .ui-outputlabel .ui-outputlabel-rfi {
    color: #ef4444;
    margin-left: 0.125rem;
}

/* ========== Calendar (DatePicker) ========== */

body .ui-datepicker {
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    background: #ffffff;
    padding: 0.75rem;
    width: 20rem;
}

body .ui-datepicker .ui-datepicker-header {
    background: transparent;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    padding: 0 0 0.5rem;
    color: #0f172a;
}

body .ui-datepicker .ui-datepicker-prev,
body .ui-datepicker .ui-datepicker-next {
    background: transparent;
    border: none;
    border-radius: 0.375rem;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    margin: 0;
    top: auto;
}

body .ui-datepicker .ui-datepicker-prev:hover,
body .ui-datepicker .ui-datepicker-next:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-datepicker .ui-datepicker-title {
    color: #0f172a;
    font-weight: 600;
    font-size: 0.875rem;
}

body .ui-datepicker .ui-datepicker-title select {
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    padding: 0.125rem 0.25rem;
    font-size: 0.8125rem;
    color: #334155;
    background: #ffffff;
}

body .ui-datepicker table {
    font-size: 0.8125rem;
    margin: 0.5rem 0 0;
}

body .ui-datepicker th {
    color: #64748b;
    font-weight: 600;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.25rem;
    border: none;
    background: transparent;
}

body .ui-datepicker td {
    padding: 0.125rem;
    border: none;
}

body .ui-datepicker td a,
body .ui-datepicker td span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.375rem;
    color: #334155;
    text-decoration: none;
    transition: all 0.15s ease;
    border: none;
}

body .ui-datepicker td a:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-datepicker td.ui-datepicker-today a,
body .ui-datepicker td.ui-datepicker-today span {
    background: #f1f5f9;
    color: #0f172a;
    font-weight: 600;
}

body .ui-datepicker td.ui-datepicker-current-day a,
body .ui-datepicker td.ui-datepicker-selected a,
body .ui-datepicker td .ui-state-active {
    background: #0891b2;
    color: #ffffff;
}

body .ui-datepicker .ui-datepicker-monthpicker a {
    color: #334155;
    font-size: 0.875rem;
    padding: 0.5rem;
    border-radius: 0.375rem;
}

body .ui-datepicker .ui-datepicker-monthpicker a:hover {
    background: #f1f5f9;
}

body .ui-datepicker .ui-timepicker {
    border-top: 1px solid #e2e8f0;
    padding: 0.5rem 0 0;
}

body .ui-datepicker .ui-timepicker select {
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    padding: 0.125rem 0.25rem;
    font-size: 0.8125rem;
    color: #334155;
    background: #ffffff;
}

body .ui-datepicker .ui-datepicker-buttonbar {
    border-top: 1px solid #e2e8f0;
    padding: 0.5rem 0 0;
}

body .ui-datepicker .ui-datepicker-buttonbar .ui-button {
    font-size: 0.8125rem;
    padding: 0.375rem 0.75rem;
}

/* ========== DataTable - Tailwind Style ========== */

/* Remove COMPLETAMENTE os estilos ui-state-default dos headers */
body .ui-datatable thead th.ui-state-default,
body .ui-datatable thead th[class*='ui-state'] {
    all: unset !important;
    display: table-cell !important;
    vertical-align: middle !important;
}

/* Reaplica estilos personalizados após remover ui-state-default */
body .ui-datatable thead th {
    display: table-cell !important;
    vertical-align: middle !important;
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%) !important;
    color: #1e293b !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.075em !important;
    padding: 0.875rem 1rem !important;
    border-bottom: 2px solid #cbd5e1 !important;
    border-right: 1px solid #e2e8f0 !important;
    border-left: none !important;
    border-top: none !important;
    white-space: nowrap !important;
    position: relative !important;
    box-shadow: none !important;
    text-shadow: none !important;
    background-image: none !important;
    cursor: default !important;
    transition: all 0.2s ease !important;
    text-align: left !important;
}

body .ui-datatable thead th:last-child {
    border-right: none !important;
}

/* Colunas ordenáveis */
body .ui-datatable thead th.ui-sortable-column {
    cursor: pointer !important;
}

body .ui-datatable thead th.ui-sortable-column:hover {
    background: linear-gradient(to bottom, #f0fdfa 0%, #ecfeff 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
}

body .ui-datatable thead th.ui-sortable-column:active {
    transform: translateY(0) !important;
}

/* Coluna ordenada ativa */
body .ui-datatable thead th.ui-state-highlight {
    background: linear-gradient(to bottom, #f0fdfa 0%, #ecfeff 100%) !important;
    color: #0e7490 !important;
    border-bottom-color: #0891b2 !important;
}

/* Header do DataTable */
body .ui-datatable .ui-datatable-header {
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%) !important;
    color: #1e293b !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    padding: 1rem 1.25rem !important;
    border: none !important;
    border-bottom: 2px solid #cbd5e1 !important;
    border-radius: 0.75rem 0.75rem 0 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

/* Remove ui-widget-header e ui-corner-top styles */
body .ui-datatable .ui-datatable-header.ui-widget-header {
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%) !important;
    color: #1e293b !important;
    border: none !important;
    border-bottom: 2px solid #cbd5e1 !important;
    border-radius: 0.75rem 0.75rem 0 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body .ui-datatable .ui-datatable-header.ui-corner-top {
    border-radius: 0.75rem 0.75rem 0 0 !important;
}

body .ui-datatable {
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    overflow: hidden;
    background: #ffffff;
    font-size: 0.875rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    margin-top: 1rem;
    width: 100%;
    position: relative;
}

body .ui-datatable table {
    border-collapse: collapse;
    width: 100%;
    table-layout: auto !important;
    border-radius: 0 !important;
}

body .ui-datatable .ui-datatable-tablewrapper {
    border: none;
    border-radius: 0 !important;
}

/* Quando não há header, mantém borda arredondada no topo */
body .ui-datatable:not(:has(.ui-datatable-header)) .ui-datatable-tablewrapper {
    border-radius: 0.75rem 0.75rem 0 0 !important;
}

/* Remove bordas arredondadas de elementos internos */
body .ui-datatable thead th,
body .ui-datatable .ui-datatable-data td,
body .ui-datatable .ui-datatable-tfoot td {
    border-radius: 0 !important;
}

/* Borda arredondada no primeiro header quando não há header externo */
body .ui-datatable:not(:has(.ui-datatable-header)) thead tr:first-child th:first-child {
    border-top-left-radius: 0.75rem !important;
}

body .ui-datatable:not(:has(.ui-datatable-header)) thead tr:first-child th:last-child {
    border-top-right-radius: 0.75rem !important;
}

/* Tfoot styles */
body .ui-datatable .ui-datatable-tfoot td {
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%) !important;
    color: #1e293b !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.075em !important;
    padding: 0.875rem 1rem !important;
    border-top: 2px solid #cbd5e1 !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
}

/* Suporte para alinhamento de texto nos headers */
body .ui-datatable thead th.text-center,
body .ui-datatable .ui-datatable-tfoot td.text-center {
    text-align: center !important;
}

body .ui-datatable thead th.text-left,
body .ui-datatable .ui-datatable-tfoot td.text-left {
    text-align: left !important;
}

body .ui-datatable thead th.text-right,
body .ui-datatable .ui-datatable-tfoot td.text-right {
    text-align: right !important;
}

/* Remove ui-state-default styles from datatable headers */
body .ui-datatable thead th.ui-state-default {
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%) !important;
    border: none !important;
    border-bottom: 2px solid #cbd5e1 !important;
    border-right: 1px solid #e2e8f0 !important;
    color: #1e293b !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-radius: 0 !important;
    padding: 0.875rem 1rem !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.075em !important;
    /* Remove ALL ui-state-default styles */
    background-image: none !important;
    background-color: #f8fafc !important;
    border-top: none !important;
    border-left: none !important;
    filter: none !important;
}

body .ui-datatable thead th.ui-state-default:last-child {
    border-right: none !important;
}

/* Hover state para ui-state-default */
body .ui-datatable thead th.ui-state-default.ui-sortable-column:hover {
    background: linear-gradient(to bottom, #f0fdfa 0%, #ecfeff 100%) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
    background-image: none !important;
    filter: none !important;
}

/* Active state para colunas ordenadas */
body .ui-datatable thead th.ui-state-default.ui-state-highlight {
    background: linear-gradient(to bottom, #f0fdfa 0%, #ecfeff 100%) !important;
    color: #0e7490 !important;
    border-bottom-color: #0891b2 !important;
    background-image: none !important;
    filter: none !important;
}

body .ui-datatable thead th .ui-column-title {
    color: #1e293b !important;
    display: inline-block;
    vertical-align: middle;
}

/* Melhorar aparência dos icones de sorting */
body .ui-datatable .ui-sortable-column-icon {
    display: inline-block !important;
    vertical-align: middle !important;
    opacity: 0.6;
    transition: all 0.2s ease;
    width: auto !important;
    height: auto !important;
    background-image: none !important;
    text-indent: 0 !important;
    margin-left: 0.5rem !important;
}

/* Icones de sorting com Font Awesome */
body .ui-datatable .ui-sortable-column-icon.ui-icon-triangle-1-n::before {
    content: '\f106' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.625rem !important;
}

body .ui-datatable .ui-sortable-column-icon.ui-icon-triangle-1-s::before {
    content: '\f107' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.625rem !important;
}

body .ui-datatable .ui-sortable-column-icon.ui-icon-carat-2-n-s::before {
    content: '\f078' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.625rem !important;
}

body .ui-datatable .ui-sortable-column-icon.ui-icon-carat-2-n-s {
    opacity: 0.8 !important;
}

body .ui-datatable .ui-sortable-column {
    cursor: pointer;
    transition: all 0.2s ease;
}

body .ui-datatable .ui-sortable-column:hover {
    background: linear-gradient(to bottom, #f0fdfa 0%, #ecfeff 100%) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

body .ui-datatable .ui-sortable-column:active {
    transform: translateY(0);
}

body .ui-datatable .ui-sortable-column-icon {
    margin-left: 0.5rem;
    color: #64748b;
    font-size: 0.625rem;
    opacity: 0.7;
    transition: opacity 0.15s ease, color 0.15s ease;
}

body .ui-datatable .ui-sortable-column:hover .ui-sortable-column-icon {
    opacity: 1;
    color: #0891b2;
}

body .ui-datatable .ui-sortable-column.ui-state-highlight {
    background: #f0fdfa;
    color: #0e7490;
}

body .ui-datatable .ui-sortable-column.ui-state-highlight .ui-column-title {
    color: #0e7490;
}

body .ui-datatable .ui-sortable-column.ui-state-highlight .ui-sortable-column-icon {
    color: #3b82f6;
}

body .ui-datatable .ui-datatable-data tr,
body .ui-datatable .ui-datatable-data-even,
body .ui-datatable .ui-datatable-data-odd {
    background: #ffffff;
    transition: all 0.2s ease;
    box-shadow: none !important;
}

body .ui-datatable .ui-datatable-data-odd {
    background: #f8fafc;
}

body .ui-datatable .ui-datatable-data tr:hover,
body .ui-datatable .ui-datatable-data-even:hover,
body .ui-datatable .ui-datatable-data-odd:hover {
    background: linear-gradient(to right, #f0f9ff 0%, #e0f2fe 100%);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}

body .ui-datatable .ui-datatable-data td {
    padding: 0.75rem 1rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: 1px solid #f1f5f9 !important;
    color: #334155 !important;
    font-size: 0.8125rem !important;
    vertical-align: middle !important;
    background: transparent !important;
}

body .ui-datatable .ui-datatable-data td:last-child {
    border-right: none !important;
}

/* Suporte para alinhamento de texto nas células */
body .ui-datatable .ui-datatable-data td.text-center {
    text-align: center !important;
}

body .ui-datatable .ui-datatable-data td.text-left {
    text-align: left !important;
}

body .ui-datatable .ui-datatable-data td.text-right {
    text-align: right !important;
}

body .ui-datatable .ui-datatable-data td .ui-commandlink {
    color: #0891b2;
    font-weight: 500;
    transition: color 0.15s ease;
}

body .ui-datatable .ui-datatable-data td .ui-commandlink:hover {
    color: #0891b2;
    text-decoration: underline;
}

body .ui-datatable .ui-datatable-data tr:last-child td {
    border-bottom: none;
}

body .ui-datatable .ui-datatable-data td .ui-button {
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
    margin: 0 0.125rem;
}

body .ui-datatable .ui-state-highlight,
body .ui-datatable .ui-datatable-data tr.ui-state-highlight {
    background: linear-gradient(to right, #ecfeff 0%, #a5f3fc 100%) !important;
    box-shadow: inset 3px 0 0 #0891b2;
}

body .ui-datatable .ui-state-highlight td {
    color: #0c4a6e !important;
    font-weight: 500;
}

body .ui-datatable .ui-state-highlight:hover {
    background: linear-gradient(to right, #a5f3fc 0%, #93c5fd 100%) !important;
}

body .ui-datatable .ui-datatable-footer {
    background: linear-gradient(to bottom, #f8fafc 0%, #f1f5f9 100%);
    color: #475569;
    font-size: 0.8125rem;
    font-weight: 500;
    padding: 0.875rem 1rem;
    border-top: 2px solid #e2e8f0;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-radius: 0 0 0.75rem 0.75rem !important;
}

body .ui-datatable .ui-datatable-footer td {
    padding: 0;
    border: none;
}

body .ui-datatable .ui-datatable-data tr.ui-datatable-empty-message td {
    background: #ffffff;
    color: #94a3b8;
    font-style: italic;
    font-size: 0.875rem;
    padding: 3rem 1rem;
    text-align: center;
    position: relative;
}

body .ui-datatable .ui-row-toggler {
    transition: transform 0.2s ease;
    background: none !important;
    text-indent: 0 !important;
    width: 24px !important;
    height: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer;
}

body .ui-datatable .ui-row-toggler::before {
    content: '\f107' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    color: #64748b !important;
    transition: transform 0.2s ease;
}

body .ui-datatable .ui-row-toggler.ui-state-active::before,
body .ui-datatable .ui-row-toggler[aria-expanded='true']::before {
    transform: rotate(180deg);
}

body .ui-datatable .ui-expanded-row-content td {
    background: #f8fafc;
    padding: 1rem;
    border-bottom: 1px solid #e2e8f0;
}

body .ui-datatable .ui-column-resizer {
    width: 8px;
    margin: 0;
    background: transparent;
    transition: background 0.15s ease;
}

body .ui-datatable .ui-column-resizer:hover {
    background: #0891b2;
}

body .ui-datatable .ui-column-filter {
    font-size: 0.8125rem;
}

body .ui-datatable .ui-column-filter .ui-inputfield {
    border: 1px solid #cbd5e1;
    border-radius: 0.375rem;
    padding: 0.375rem 0.625rem;
    font-size: 0.75rem;
    color: #334155;
    width: 100%;
    transition: all 0.15s ease;
    background: #ffffff;
}

body .ui-datatable .ui-column-filter .ui-inputfield:hover {
    border-color: #94a3b8;
}

body .ui-datatable .ui-column-filter .ui-inputfield:focus {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15);
    background: #ffffff;
    outline: none;
}

body .ui-datatable .ui-datatable-loading {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(4px);
}

body .ui-datatable-loading-content {
    color: #0891b2;
    font-size: 0.875rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

body .ui-datatable-loading-content .ui-icon-loading {
    color: #0891b2;
    font-size: 1.25rem;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

body .ui-datatable .ui-rowgroup-toggler {
    color: #64748b;
    font-size: 0.8125rem;
}

body .ui-datatable .ui-subtable td {
    background: #f8fafc;
    padding: 0.5rem 1rem;
    border-color: #e2e8f0;
}

/* ========== DataList ========== */

body .ui-datalist {
    border: none;
    background: transparent;
    padding: 0;
}

body .ui-datalist .ui-datalist-header {
    background: transparent;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    padding: 0.75rem 0;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.875rem;
}

body .ui-datalist .ui-datalist-content {
    padding: 0;
    border: none;
}

body .ui-datalist .ui-datalist-data li {
    padding: 0.5rem 0;
    border-bottom: 1px solid #f1f5f9;
    list-style: none;
}

body .ui-datalist .ui-datalist-data li:last-child {
    border-bottom: none;
}

body .ui-datalist .ui-datalist-no-data {
    color: #94a3b8;
    font-style: italic;
    padding: 1rem 0;
    text-align: center;
}

/* ========== Paginator - Tailwind Style ========== */

body .ui-paginator {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-top: 1px solid #e2e8f0;
    border-radius: 0 0 0.75rem 0.75rem;
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.8125rem;
    color: #64748b;
}

body .ui-paginator .ui-paginator-pages {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

body .ui-paginator .ui-paginator-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    background: transparent;
    color: #475569;
    font-weight: 500;
    font-size: 0.8125rem;
    cursor: pointer;
    transition: all 0.15s ease;
    margin: 0;
    text-decoration: none;
}

body .ui-paginator .ui-paginator-page:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-paginator .ui-paginator-page.ui-state-active {
    background: #0891b2;
    color: #ffffff;
    border-color: #0891b2;
}

body .ui-paginator .ui-paginator-first,
body .ui-paginator .ui-paginator-prev,
body .ui-paginator .ui-paginator-next,
body .ui-paginator .ui-paginator-last {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    margin: 0;
    font-size: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
}

body .ui-paginator .ui-paginator-first:hover,
body .ui-paginator .ui-paginator-prev:hover,
body .ui-paginator .ui-paginator-next:hover,
body .ui-paginator .ui-paginator-last:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-paginator .ui-paginator-first.ui-state-disabled,
body .ui-paginator .ui-paginator-prev.ui-state-disabled,
body .ui-paginator .ui-paginator-next.ui-state-disabled,
body .ui-paginator .ui-paginator-last.ui-state-disabled {
    opacity: 0.4;
    cursor: default;
    background: transparent;
}

/* Paginator icons - Font Awesome */
body .ui-paginator .ui-paginator-first .ui-icon,
body .ui-paginator .ui-paginator-prev .ui-icon,
body .ui-paginator .ui-paginator-next .ui-icon,
body .ui-paginator .ui-paginator-last .ui-icon {
    background-image: none !important;
    text-indent: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    position: static !important;
    display: inline-block !important;
}

body .ui-paginator .ui-paginator-first .ui-icon::before,
body .ui-paginator .ui-paginator-prev .ui-icon::before,
body .ui-paginator .ui-paginator-next .ui-icon::before,
body .ui-paginator .ui-paginator-last .ui-icon::before {
    display: inline-block !important;
    font-size: 0.75rem !important;
}

body .ui-paginator .ui-paginator-first .ui-icon::before {
    content: '\f100' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

body .ui-paginator .ui-paginator-prev .ui-icon::before {
    content: '\f104' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

body .ui-paginator .ui-paginator-next .ui-icon::before {
    content: '\f105' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

body .ui-paginator .ui-paginator-last .ui-icon::before {
    content: '\f101' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
}

body .ui-paginator .ui-paginator-rpp-options {
    margin-left: 0.5rem;
    font-size: 0.8125rem;
}

body .ui-paginator .ui-paginator-rpp-options select {
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    padding: 0.25rem 0.5rem;
    font-size: 0.8125rem;
    color: #475569;
    background: #ffffff;
    cursor: pointer;
}

body .ui-paginator .ui-paginator-rpp-options label {
    color: #64748b;
    font-weight: 500;
}

body .ui-paginator .ui-paginator-current {
    color: #64748b;
    font-weight: 500;
    margin-right: 0.5rem;
}

/* ========== Dialog - Tailwind Style ========== */

body .ui-dialog {
    border: none;
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    background: #ffffff;
    padding: 0;
    overflow: hidden;
}

body .ui-dialog .ui-dialog-titlebar {
    background: #ffffff;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0.75rem 0.75rem 0 0;
    padding: 1rem 1.25rem;
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
}

body .ui-dialog .ui-dialog-title {
    color: #0f172a;
    font-weight: 600;
    float: none;
}

body .ui-dialog .ui-dialog-titlebar-icon {
    background: transparent;
    border: none;
    border-radius: 0.375rem;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    margin: 0;
}

body .ui-dialog .ui-dialog-titlebar-icon:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-dialog .ui-dialog-content {
    background: #ffffff;
    padding: 1.25rem;
    border: none;
    color: #334155;
    font-size: 0.875rem;
    overflow: auto;
}

body .ui-dialog .ui-dialog-footer {
    background: #ffffff;
    border: none;
    border-top: 1px solid #e2e8f0;
    border-radius: 0 0 0.75rem 0.75rem;
    padding: 0.75rem 1.25rem;
    text-align: right;
}

body .ui-dialog .ui-dlg-resizable-se {
    width: 1rem;
    height: 1rem;
}

body .ui-dialog-mask {
    background: rgba(15, 23, 42, 0.5);
}

body .ui-dialog.ui-overlay-visible {
    animation: none;
}

/* ========== ConfirmDialog ========== */

body .ui-confirm-dialog .ui-dialog-content {
    padding: 1.5rem 1.25rem;
    text-align: center;
}

body .ui-confirm-dialog .ui-confirm-dialog-message {
    color: #475569;
    font-size: 0.9375rem;
    margin: 0.5rem 0 1rem;
}

body .ui-confirm-dialog .ui-confirm-dialog-severity {
    margin: 0;
}

/* ========== Panel - Tailwind Style ========== */

body .ui-panel {
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    background: #ffffff;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    overflow: hidden;
}

body .ui-panel .ui-panel-titlebar {
    background: #f8fafc;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0.75rem 0.75rem 0 0;
    padding: 0.75rem 1rem;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.875rem;
}

body .ui-panel .ui-panel-title {
    color: #0f172a;
}

body .ui-panel .ui-panel-titlebar-icon {
    background: transparent;
    border: none;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    border-radius: 0.25rem;
    margin: 0;
}

body .ui-panel .ui-panel-titlebar-icon:hover {
    background: #e2e8f0;
    color: #0f172a;
}

body .ui-panel .ui-panel-content {
    background: #ffffff;
    border: none;
    padding: 1rem;
    color: #334155;
    font-size: 0.875rem;
}

body .ui-panel .ui-panel-footer {
    background: #f8fafc;
    border: none;
    border-top: 1px solid #e2e8f0;
    border-radius: 0 0 0.75rem 0.75rem;
    padding: 0.75rem 1rem;
}

/* ========== PanelGrid ========== */

body .ui-panelgrid {
    border: none !important;
    background: transparent;
    padding: 0;
}

body .ui-panelgrid .ui-panelgrid-header,
body .ui-panelgrid .ui-panelgrid-footer {
    background: transparent;
    border: none !important;
    padding: 0.5rem 0;
}

body .ui-panelgrid td,
body .ui-panelgrid th,
body .ui-panelgrid tr {
    border: none !important;
    padding: 0.25rem 0.5rem;
    background: transparent;
}

body .ui-panelgrid .ui-grid-responsive {
    border: none !important;
}

/* ========== TabView - Tailwind Style ========== */

.ui-widget.ui-widget-content {
    border: none;
}

body .ui-tabs {
    border: none;
    background: transparent;
    padding: 0;
}

body .ui-tabs .ui-tabs-nav {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
}

body .ui-tabs .ui-tabs-nav li {
    border: none;
    border-radius: 0;
    background: transparent;
    margin: 0;
    padding: 0;
    top: 0;
}

body .ui-tabs .ui-tabs-nav li a {
    border: none;
    border-radius: 0.5rem 0.5rem 0 0;
    background: transparent;
    color: #64748b;
    font-weight: 500;
    font-size: 0.875rem;
    padding: 0.625rem 1rem;
    transition: all 0.15s ease;
}

body .ui-tabs .ui-tabs-nav li a:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
    background: #ffffff;
    color: #0891b2;
    border-bottom: 2px solid #0891b2;
    margin-bottom: -2px;
    font-weight: 600;
}

body .ui-tabs .ui-tabs-panel {
    background: #ffffff;
    border: none;
    padding: 1rem 0;
}

/* ========== Messages / Growl ========== */

body .ui-messages {
    border: none;
    border-radius: 0.75rem;
    padding: 0;
    background: transparent;
    margin: 0.5rem 0;
}

body .ui-messages ul {
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}

body .ui-messages.ui-messages-info {
    background: #f0fdfa;
    border: 1px solid #a5f3fc;
    color: #0e7490;
}

body .ui-messages.ui-messages-warn {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

body .ui-messages.ui-messages-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

body .ui-messages.ui-messages-fatal {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #7f1d1d;
}

body .ui-messages .ui-messages-close {
    background: transparent;
    border: none;
    color: inherit;
    opacity: 0.5;
    cursor: pointer;
    margin-left: auto;
    font-size: 1.125rem;
}

body .ui-messages .ui-messages-close:hover {
    opacity: 1;
}

body .ui-messages .ui-messages-icon {
    font-size: 1.125rem;
}

body .ui-messages .ui-messages-summary {
    font-weight: 600;
}

body .ui-growl {
    border: none;
    background: transparent;
}

body .ui-growl-item-container {
    margin: 0.25rem 0;
}

body .ui-growl-item {
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
}

body .ui-growl-item.ui-growl-info {
    background: #f0fdfa;
    border: 1px solid #a5f3fc;
    color: #0e7490;
}

body .ui-growl-item.ui-growl-warn {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

body .ui-growl-item.ui-growl-error,
body .ui-growl-item.ui-growl-fatal {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

body .ui-growl-item .ui-growl-image {
    font-size: 1.25rem;
    margin: 0;
}

body .ui-growl-item .ui-growl-title {
    font-weight: 600;
    font-size: 0.875rem;
}

body .ui-growl-item .ui-growl-message {
    font-size: 0.8125rem;
    margin: 0.125rem 0 0;
}

body .ui-growl-item .ui-growl-close {
    background: transparent;
    border: none;
    color: inherit;
    opacity: 0.5;
    cursor: pointer;
    margin: 0 0 0 auto;
    font-size: 1rem;
}

body .ui-growl-item .ui-growl-close:hover {
    opacity: 1;
}

/* ========== Toolbar ========== */

body .ui-toolbar {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 0.5rem 0.75rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

body .ui-toolbar .ui-toolbar-group-left,
body .ui-toolbar .ui-toolbar-group-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ========== PickList ========== */

.ui-picklist {
    width: inherit;
    display: block;
}

.ui-picklist-list {
    width: 100% !important;
    height: 400px !important;
}

body .ui-picklist .ui-picklist-list {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #ffffff;
    overflow: hidden;
}

body .ui-picklist .ui-picklist-list-header {
    background: #f8fafc;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    padding: 0.5rem 0.75rem;
    color: #0f172a;
    font-weight: 600;
    font-size: 0.8125rem;
}

body .ui-picklist .ui-picklist-list-content {
    border: none;
}

body .ui-picklist .ui-picklist-list li {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
    font-size: 0.875rem;
    transition: background-color 0.15s ease;
    border-radius: 0;
}

body .ui-picklist .ui-picklist-list li:last-child {
    border-bottom: none;
}

body .ui-picklist .ui-picklist-list li:hover {
    background: #f1f5f9;
}

body .ui-picklist .ui-picklist-list li.ui-state-highlight {
    background: #f0fdfa;
    color: #0e7490;
}

body .ui-picklist .ui-picklist-list li.ui-state-disabled {
    opacity: 0.5;
}

body .ui-picklist .ui-picklist-filter-container {
    padding: 0.375rem 0.5rem;
    border-bottom: 1px solid #e2e8f0;
}

body .ui-picklist .ui-picklist-filter-container .ui-inputfield {
    border-radius: 0.375rem;
    font-size: 0.8125rem;
    padding: 0.375rem 0.5rem;
}

body .ui-picklist-buttons {
    width: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

body .ui-picklist-buttons .ui-button {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    color: #64748b;
    padding: 0.375rem;
    transition: all 0.15s ease;
}

body .ui-picklist-buttons .ui-button:hover {
    background: #f1f5f9;
    color: #0f172a;
    border-color: #cbd5e1;
}

/* ========== Separator ========== */

body .ui-separator {
    border: none;
    border-top: 1px solid #e2e8f0;
    margin: 0.75rem 0;
}

body .ui-separator.ui-separator-horizontal {
    border-top: 1px solid #e2e8f0;
}

body .ui-separator.ui-separator-vertical {
    border-left: 1px solid #e2e8f0;
    border-top: none;
}

/* ========== ScrollPanel ========== */

body .ui-scrollpanel {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #ffffff;
    padding: 0;
}

body .ui-scrollpanel .ui-scrollpanel-container {
    border: none;
}

body .ui-scrollpanel .ui-scrollpanel-bar {
    background: #e2e8f0;
    border-radius: 0.5rem;
    border: none;
}

body .ui-scrollpanel .ui-scrollpanel-bar:hover {
    background: #cbd5e1;
}

body .ui-scrollpanel .ui-scrollpanel-thumb {
    background: #94a3b8;
    border-radius: 0.5rem;
    border: none;
}

body .ui-scrollpanel .ui-scrollpanel-thumb:hover {
    background: #64748b;
}

/* ========== Tooltip ========== */

body .ui-tooltip {
    background: #1e293b;
    color: #f1f5f9;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.375rem 0.625rem;
    border-radius: 0.375rem;
    border: none;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    max-width: 15rem;
}

body .ui-tooltip.ui-tooltip-top .ui-tooltip-arrow {
    border-top-color: #1e293b;
}

body .ui-tooltip.ui-tooltip-bottom .ui-tooltip-arrow {
    border-bottom-color: #1e293b;
}

/* ========== FileUpload ========== */

body .ui-fileupload {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #ffffff;
    padding: 1rem;
}

body .ui-fileupload .ui-fileupload-buttonbar {
    background: #f8fafc;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    padding: 0.5rem 0.75rem;
}

body .ui-fileupload .ui-fileupload-content {
    background: #ffffff;
    border: none;
    padding: 0.75rem;
    border-radius: 0;
}

body .ui-fileupload .ui-fileupload-files {
    border: none;
    padding: 0;
}

body .ui-fileupload .ui-fileupload-files .ui-fileupload-row {
    background: #ffffff;
    border: none;
    border-bottom: 1px solid #f1f5f9;
    padding: 0.5rem 0;
    font-size: 0.8125rem;
    color: #475569;
}

body .ui-fileupload-choose {
    background: #0891b2;
    border: none;
    color: #ffffff;
    border-radius: 0.5rem;
    font-weight: 500;
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
    transition: background-color 0.15s ease;
}

body .ui-fileupload-choose:hover {
    background: #0891b2;
}

body .ui-fileupload-cancel {
    background: transparent;
    border: 1px solid #e2e8f0;
    color: #64748b;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
    padding: 0.375rem 0.75rem;
    transition: all 0.15s ease;
}

body .ui-fileupload-cancel:hover {
    background: #f1f5f9;
    color: #0f172a;
}

/* ========== Spinner ========== */

body .ui-spinner {
    border: 1px solid #cbd5e1;
    border-radius: 0.5rem;
    background: #ffffff;
    overflow: hidden;
}

body .ui-spinner .ui-spinner-input {
    border: none;
    border-radius: 0;
}

body .ui-spinner .ui-spinner-button {
    background: #f8fafc;
    border: none;
    border-left: 1px solid #e2e8f0;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    width: 2rem;
}

body .ui-spinner .ui-spinner-button:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-spinner .ui-spinner-button.ui-state-disabled {
    opacity: 0.5;
}

/* ========== Slider ========== */

body .ui-slider {
    border: none;
    background: #e2e8f0;
    border-radius: 0.25rem;
    height: 0.375rem;
}

body .ui-slider .ui-slider-handle {
    background: #ffffff;
    border: 2px solid #0891b2;
    border-radius: 9999px;
    width: 1.25rem;
    height: 1.25rem;
    top: 50%;
    transform: translate(-50%, -50%);
    cursor: grab;
    transition: box-shadow 0.15s ease;
}

body .ui-slider .ui-slider-handle:hover {
    box-shadow: 0 0 0 4px rgba(8, 145, 178, 0.15);
}

body .ui-slider .ui-slider-range {
    background: #0891b2;
    border-radius: 0.25rem;
}

/* ========== Password ========== */

body .ui-password {
    position: relative;
}

body .ui-password .ui-password-panel {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    padding: 0.75rem;
}

body .ui-password .ui-password-meter {
    height: 0.25rem;
    border-radius: 0.125rem;
    background: #e2e8f0;
    margin: 0.25rem 0;
}

body .ui-password .ui-password-meter-label {
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 500;
}

body .ui-password .ui-password-toggle {
    background: transparent;
    border: none;
    color: #64748b;
    cursor: pointer;
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.25rem;
}

body .ui-password .ui-password-toggle:hover {
    color: #334155;
}

/* ========== MenuButton ========== */

body .ui-menubutton {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #ffffff;
    padding: 0;
}

body .ui-menubutton .ui-button {
    background: transparent;
    border: none;
    color: #475569;
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
}

body .ui-menubutton .ui-button:hover {
    background: #f1f5f9;
}

body .ui-menu {
    width: 23em;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    background: #ffffff;
    padding: 0.25rem;
}

body .ui-menu .ui-menuitem {
    border: none;
    border-radius: 0.375rem;
    margin: 0.125rem 0;
}

body .ui-menu .ui-menuitem .ui-menuitem-link {
    color: #334155;
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.375rem;
    transition: background-color 0.15s ease;
}

body .ui-menu .ui-menuitem .ui-menuitem-link:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-menu .ui-menuitem.ui-state-highlight .ui-menuitem-link {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-menu .ui-menu-separator {
    border-top: 1px solid #e2e8f0;
    margin: 0.25rem 0.5rem;
}

body .ui-menu .ui-menuitem-text {
    color: inherit;
}

body .ui-menu .ui-menuitem-icon {
    color: #64748b;
}

body .ui-menu .ui-menuitem .ui-menuitem-link:hover .ui-menuitem-icon {
    color: #0f172a;
}

/* ========== Sidebar ========== */

body .ui-sidebar {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 4px 0 6px -1px rgb(0 0 0 / 0.1);
    border-radius: 0;
}

body .ui-sidebar .ui-sidebar-close {
    background: transparent;
    border: none;
    color: #64748b;
    cursor: pointer;
    transition: all 0.15s ease;
    border-radius: 0.375rem;
    position: relative;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

body .ui-sidebar .ui-sidebar-close .ui-icon {
    display: none;
}

body .ui-sidebar .ui-sidebar-close::after {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    content: '\f00d';
}

body .ui-sidebar h2 {
    font-size: 1.125rem;
    font-weight: 600;
    color: #0f172a;
    padding: 1rem 1.5rem;
    margin: 0;
    border-bottom: 1px solid #e2e8f0;
}

body .ui-sidebar .ui-sidebar-close:hover {
    background: #f1f5f9;
    color: #0f172a;
}

body .ui-sidebar .ui-sidebar-content {
    padding: 1rem;
    font-size: 0.875rem;
    color: #334155;
}

body .ui-sidebar-mask {
    background: rgba(15, 23, 42, 0.5);
}

/* ========== InputNumber ========== */

body .ui-inputnumber {
    display: inline-block;
}

body .ui-inputnumber .ui-inputfield {
    text-align: right;
}

/* ========== OverlayPanel (used by tooltips, menus) ========== */

body .ui-overlaypanel {
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    background: #ffffff;
    padding: 0.75rem;
}

/* ========== Input Group ========== */

.input-group {
    display: flex;
    align-items: stretch;
    width: 100%;
    gap: 0;
    border-radius: 0.5rem;
    position: relative;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.input-group > .ui-inputfield,
.input-group > .ui-inputtext,
.input-group > .ui-selectonemenu,
.input-group > .ui-spinner,
.input-group > input {
    flex: 1;
    min-width: 0;
    border-radius: 0;
    border-right: none;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    color: #334155;
    line-height: 1.25rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    outline: none;
}

.input-group > .ui-inputfield:first-child,
.input-group > .ui-inputtext:first-child,
.input-group > .ui-selectonemenu:first-child,
.input-group > .ui-spinner:first-child,
.input-group > input:first-child {
    border-radius: 0.5rem 0 0 0.5rem;
}

.input-group > .ui-inputfield:focus,
.input-group > .ui-inputtext:focus,
.input-group > .ui-selectonemenu:focus,
.input-group > input:focus {
    border-color: #0891b2;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15);
    z-index: 1;
}

.input-group > .ui-selectonemenu {
    border-radius: 0;
}

.input-group-btn {
    display: flex;
    align-items: stretch;
}

.input-group-btn > .ui-button,
.input-group-btn > button {
    border-radius: 0;
    white-space: nowrap;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: none;
    color: #475569;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease, color 0.15s ease;
    height: 100%;
}

.input-group-btn:last-child > .ui-button,
.input-group-btn:last-child > button {
    border-radius: 0 0.5rem 0.5rem 0;
}

.input-group-btn > .ui-button:hover,
.input-group-btn > button:hover {
    background: #f1f5f9;
    color: #1e293b;
}

.input-group-addon {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #64748b;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    white-space: nowrap;
}

.input-group-addon:first-child {
    border-radius: 0.5rem 0 0 0.5rem;
    border-right: none;
}

.input-group-addon:last-child {
    border-radius: 0 0.5rem 0.5rem 0;
    border-left: none;
}

.input-group-prepend {
    display: flex;
    align-items: stretch;
}

.input-group-prepend > .ui-button,
.input-group-prepend > button {
    border-radius: 0.5rem 0 0 0.5rem;
    border-right: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease, color 0.15s ease;
    height: 100%;
}

.input-group-prepend > .ui-button:hover,
.input-group-prepend > button:hover {
    background: #f1f5f9;
    color: #1e293b;
}

.input-group-append {
    display: flex;
    align-items: stretch;
}

.input-group-append > .ui-button,
.input-group-append > button {
    border-radius: 0 0.5rem 0.5rem 0;
    border-left: none;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #475569;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease, color 0.15s ease;
    height: 100%;
}

.input-group-append > .ui-button:hover,
.input-group-append > button:hover {
    background: #f1f5f9;
    color: #1e293b;
}

.input-group-sm > .ui-inputfield,
.input-group-sm > .ui-inputtext,
.input-group-sm > .ui-selectonemenu,
.input-group-sm > .ui-spinner,
.input-group-sm > input {
    padding: 0.375rem 0.5rem;
    font-size: 0.8125rem;
}

.input-group-sm > .input-group-btn > .ui-button,
.input-group-sm > .input-group-btn > button,
.input-group-sm > .input-group-prepend > .ui-button,
.input-group-sm > .input-group-prepend > button {
    font-size: 0.8125rem;
    padding: 0.375rem 0.5rem;
}

/* ========== Bootstrap-Compatible: Dropdown ========== */

.dropdown {
    position: relative;
}

.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 100;
    min-width: 10rem;
    padding: 0.25rem;
    margin-top: 0.25rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    list-style: none;
}

.dropdown-menu li {
    margin: 0;
}

.dropdown-menu li a,
.dropdown-menu li .ui-commandlink {
    display: block;
    padding: 0.5rem 0.75rem;
    clear: both;
    font-weight: 500;
    color: #334155;
    font-size: 0.8125rem;
    white-space: nowrap;
    text-decoration: none;
    border-radius: 0.375rem;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.dropdown-menu li a:hover,
.dropdown-menu li .ui-commandlink:hover {
    background: #f1f5f9;
    color: #0f172a;
    text-decoration: none;
}

.dropdown-menu .ui-separator,
.dropdown-menu li[role='separator'] {
    border-top: 1px solid #e2e8f0;
    margin: 0.25rem 0;
    padding: 0;
}

.dropdown-menu .dropdown-header {
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.5rem 0.75rem 0.25rem;
}

/* ========== Legacy / Project-specific overrides ========== */

.noHeader.ui-datatable {
    width: 100%;
    max-height: 600px;
    overflow-y: auto;
}

.noHeader.ui-datatable table thead tr {
    display: none;
}

/* Imagens de PDF em DataTables - reduzir tamanho */
.folder-img,
.ui-datatable img.folder-img,
.noHeader.ui-datatable img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.relatorio {
    margin: 0 10px;
}

.relatorio > button.ui-button {
    background: inherit !important;
    color: white;
    border: 0;
    margin: 1px 0;
}

.dt-list-no-border > div {
    border: 0;
}

.ui-tabs .ui-tabs-panel {
    padding: 3rem 0 1rem !important;
}

.w-full > input {
    width: 100%;
}

/* ========== Fix: Tailwind Preflight vs PrimeFaces hidden-accessible ========== */

.ui-helper-hidden-accessible {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    -webkit-clip-path: inset(50%) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
}

/* ========== SelectOneMenu ========== */

body .ui-selectonemenu,
body .ui-selectonemenu.ui-state-default {
    display: flex;
    position: relative;
    width: 100%;
    min-width: 0;
    cursor: pointer;
    vertical-align: middle;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    align-items: stretch;
}

/* Support w-full class from Tailwind */
.w-full.ui-selectonemenu,
.w-full > .ui-selectonemenu,
.ui-selectonemenu.w-full {
    width: 100% !important;
    display: flex !important;
}

body .ui-selectonemenu .ui-selectonemenu-label,
body .ui-selectonemenu .ui-selectonemenu-label.ui-inputfield {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    padding: 0.5rem 2.25rem 0.5rem 0.75rem;
    border: 1px solid #cbd5e1 !important;
    border-radius: 0.5rem !important;
    background: #ffffff !important;
    background-image: none !important;
    color: #0f172a;
    font-size: 0.875rem;
    line-height: 1.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-shadow: none !important;
    text-indent: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
    float: none !important;
}

body .ui-selectonemenu:hover .ui-selectonemenu-label {
    border-color: #94a3b8 !important;
}

body .ui-selectonemenu.ui-state-hover .ui-selectonemenu-label {
    border-color: #94a3b8 !important;
    background: #ffffff !important;
    background-image: none !important;
    color: #0f172a !important;
}

body .ui-selectonemenu.ui-state-focus .ui-selectonemenu-label,
body .ui-selectonemenu:focus-within .ui-selectonemenu-label {
    border-color: #0891b2 !important;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15) !important;
    outline: none;
}

body .ui-selectonemenu.ui-state-disabled,
body .ui-selectonemenu.ui-state-disabled.ui-state-default {
    opacity: 1 !important;
}

body .ui-selectonemenu.ui-state-disabled .ui-selectonemenu-label {
    background: #f8fafc !important;
    color: #94a3b8;
    cursor: not-allowed;
}

body .ui-selectonemenu.ui-state-disabled .ui-selectonemenu-trigger {
    cursor: not-allowed;
}

body .ui-selectonemenu.ui-state-disabled .ui-selectonemenu-trigger .ui-icon-triangle-1-s::before {
    color: #94a3b8;
}

body .ui-selectonemenu .ui-selectonemenu-trigger,
body .ui-selectonemenu .ui-selectonemenu-trigger.ui-state-default,
body .ui-selectonemenu .ui-selectonemenu-trigger.ui-corner-right,
body .ui-selectonemenu .ui-selectonemenu-trigger.ui-state-default.ui-corner-right {
    position: absolute;
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: 2.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 0.375rem 0.375rem 0 !important;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.15s;
    margin: 0 !important;
    box-shadow: none !important;
}

body .ui-selectonemenu:hover .ui-selectonemenu-trigger {
    background: #f1f5f9 !important;
}

body .ui-selectonemenu .ui-selectonemenu-trigger.ui-state-hover,
body .ui-selectonemenu .ui-selectonemenu-trigger.ui-state-hover.ui-corner-right,
body .ui-selectonemenu .ui-selectonemenu-label.ui-state-hover {
    background: #f1f5f9 !important;
    background-image: none !important;
    border-color: inherit !important;
    color: inherit !important;
    box-shadow: none !important;
}

body .ui-selectonemenu .ui-selectonemenu-trigger .ui-icon {
    background-image: none !important;
    text-indent: 0 !important;
}

body .ui-selectonemenu .ui-selectonemenu-trigger .ui-icon-triangle-1-s {
    background: none !important;
    width: auto !important;
    height: auto !important;
}

body .ui-selectonemenu .ui-selectonemenu-trigger .ui-icon-triangle-1-s::before {
    content: '\f078' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.75rem;
    color: #64748b;
}

body .ui-selectonemenu.ui-state-focus .ui-selectonemenu-trigger .ui-icon-triangle-1-s::before,
body .ui-selectonemenu:focus-within .ui-selectonemenu-trigger .ui-icon-triangle-1-s::before {
    color: #0891b2;
}

/* Fix: Ensure ui-corner-right doesn't override trigger border-radius */
body .ui-selectonemenu .ui-selectonemenu-trigger.ui-corner-right {
    border-radius: 0 0.375rem 0.375rem 0 !important;
}

/* Fix: Override ui-helper-hidden when panel has display:block inline */
body .ui-selectonemenu-panel[style*='display: block'],
body .ui-selectonemenu-panel[style*='display:block'] {
    display: block !important;
}

/* SelectOneMenu panel (dropdown) */

body .ui-selectonemenu-panel,
body .ui-selectonemenu-panel.ui-widget-content {
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.5rem !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1) !important;
    background: #ffffff !important;
    background-image: none !important;
    overflow: hidden;
    padding: 0 !important;
}

/* Filter input */

body .ui-selectonemenu-panel .ui-selectonemenu-filter-container {
    padding: 0.5rem;
    border-bottom: 1px solid #e2e8f0;
    position: relative;
}

body .ui-selectonemenu-panel .ui-selectonemenu-filter,
body .ui-selectonemenu-panel .ui-selectonemenu-filter.ui-inputfield {
    width: 100%;
    padding: 0.4rem 0.5rem 0.4rem 2rem !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 0.375rem !important;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #0f172a;
    background: #ffffff !important;
    background-image: none !important;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
    box-shadow: none !important;
    text-indent: 0 !important;
    margin: 0 !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-filter:focus {
    border-color: #0891b2 !important;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.15) !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-filter-container .ui-icon-search {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background-image: none !important;
    text-indent: 0 !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-filter-container .ui-icon-search::before {
    content: '\f002';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.75rem;
    color: #94a3b8;
}

body .ui-selectonemenu-panel .ui-selectonemenu-items-wrapper {
    padding: 0.25rem 0;
    max-height: 15rem;
    overflow-y: auto;
    border: none !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-items-wrapper .ui-selectonemenu-list {
    padding: 0;
    margin: 0;
    list-style: none;
    border: none !important;
    background: none !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-item,
body .ui-selectonemenu-panel .ui-selectonemenu-list-item {
    padding: 0.5rem 0.75rem !important;
    font-size: 0.875rem;
    color: #0f172a;
    cursor: pointer;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    transition: background-color 0.1s;
    background: none !important;
    background-image: none !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-item:hover,
body .ui-selectonemenu-panel .ui-selectonemenu-list-item:hover,
body .ui-selectonemenu-panel .ui-selectonemenu-item.ui-state-hover,
body .ui-selectonemenu-panel .ui-selectonemenu-list-item.ui-state-hover {
    background: #f1f5f9 !important;
    background-image: none !important;
    color: #0f172a;
    border-color: transparent !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-item.ui-state-highlight,
body .ui-selectonemenu-panel .ui-selectonemenu-list-item.ui-state-highlight {
    background: #e0f2fe !important;
    background-image: none !important;
    color: #0e7490 !important;
    border-color: transparent !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-item.ui-selectonemenu-item-group {
    font-weight: 600;
    color: #475569;
    padding-top: 0.625rem !important;
    border-top: 1px solid #f1f5f9 !important;
}

body .ui-selectonemenu-panel .ui-selectonemenu-item.ui-selectonemenu-item-group:first-child {
    border-top: none !important;
}

/* SelectOneMenu inside input-group */

.input-group > .ui-selectonemenu {
    flex: 1 1 auto;
    min-width: 0;
}

.input-group > .ui-selectonemenu .ui-selectonemenu-label {
    border-radius: 0 !important;
}

.input-group > .ui-selectonemenu:first-child .ui-selectonemenu-label {
    border-top-left-radius: 0.5rem !important;
    border-bottom-left-radius: 0.5rem !important;
}

.input-group > .ui-selectonemenu:last-child .ui-selectonemenu-label {
    border-top-right-radius: 0.5rem !important;
    border-bottom-right-radius: 0.5rem !important;
}

.input-group > .ui-selectonemenu:last-child:hover .ui-selectonemenu-trigger {
    border-radius: 0 0.5rem 0.5rem 0;
}

.input-group > .ui-selectonemenu:not(:first-child):not(:last-child) .ui-selectonemenu-label {
    border-radius: 0 !important;
}

/* w-full support for SelectOneMenu */

.w-full.ui-selectonemenu,
body .ui-selectonemenu.w-full {
    display: block;
    width: 100% !important;
}

/* ========== SelectOneButton ========== */

body .ui-selectonebutton {
    display: inline-flex;
    width: auto;
}

body .ui-selectonebutton .ui-button {
    flex: 1 1 0%;
    padding: 0.5rem 1rem;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #475569;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    margin: 0;
    border-radius: 0;
}

body .ui-selectonebutton .ui-button:not(:first-child) {
    border-left: 0;
}

body .ui-selectonebutton .ui-button:first-child {
    border-top-left-radius: 0.5rem;
    border-bottom-left-radius: 0.5rem;
}

body .ui-selectonebutton .ui-button:last-child {
    border-top-right-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}

body .ui-selectonebutton .ui-button:hover {
    background: #f8fafc;
    color: #0f172a;
}

body .ui-selectonebutton .ui-button.ui-state-active {
    background: #0891b2;
    border-color: #0891b2;
    color: #ffffff;
}

body .ui-selectonebutton .ui-button.ui-state-active:hover {
    background: #0891b2;
    border-color: #0891b2;
}

/* w-full support for SelectOneButton */

.w-full.ui-selectonebutton,
body .ui-selectonebutton.w-full {
    display: flex !important;
    width: 100% !important;
}

/* FontAwesome icon vertical alignment in buttons */

.ui-button-icon-only .ui-icon.fa,
.ui-button-text-icon-left .ui-icon.fa,
.ui-button-text-icon-right .ui-icon.fa,
.ui-button-icon-only .ui-icon.fab,
.ui-button-text-icon-left .ui-icon.fab,
.ui-button-text-icon-right .ui-icon.fab,
.ui-button-icon-only .ui-icon.far,
.ui-button-text-icon-left .ui-icon.far,
.ui-button-text-icon-right .ui-icon.far,
.ui-button-icon-only .ui-icon.fas,
.ui-button-text-icon-left .ui-icon.fas,
.ui-button-text-icon-right .ui-icon.fas,
.ui-button-icon-only .ui-icon.fal,
.ui-button-text-icon-left .ui-icon.fal,
.ui-button-text-icon-right .ui-icon.fal {
    margin-top: 0px;
    background-image: none !important;
    text-indent: 0 !important;
    overflow: visible !important;
    width: auto !important;
    height: auto !important;
    display: inline-block !important;
}

/* Page title */

h1 .text-title-bold,
.text-title-bold {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1e293b;
    display: block;
    margin: 0;
}

/* ========== Calendar trigger button icon ========== */

body .ui-datepicker-trigger .ui-icon-calendar {
    background-image: none !important;
    text-indent: 0 !important;
    overflow: visible !important;
    width: auto !important;
    height: auto !important;
}

body .ui-datepicker-trigger .ui-icon-calendar::before {
    content: '\f073';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.875rem;
    display: inline-block;
}

/* ========== MenuButton variant support ========== */

.ui-menubutton.btn-primary > .ui-button {
    background: #0891b2 !important;
    border-color: #0891b2 !important;
    color: #ffffff !important;
}
.ui-menubutton.btn-primary > .ui-button.ui-state-hover {
    background: #0e7490 !important;
    border-color: #0e7490 !important;
}

.ui-menubutton.btn-success > .ui-button {
    background: #059669 !important;
    border-color: #059669 !important;
    color: #ffffff !important;
}
.ui-menubutton.btn-success > .ui-button.ui-state-hover {
    background: #047857 !important;
    border-color: #047857 !important;
}

.ui-menubutton.btn-danger > .ui-button {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
}
.ui-menubutton.btn-danger > .ui-button.ui-state-hover {
    background: #b91c1c !important;
    border-color: #b91c1c !important;
}

.ui-menubutton.btn-warning > .ui-button {
    background: #d97706 !important;
    border-color: #d97706 !important;
    color: #ffffff !important;
}
.ui-menubutton.btn-warning > .ui-button.ui-state-hover {
    background: #b45309 !important;
    border-color: #b45309 !important;
}

.field-readonly {
    display: block;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    color: #334155;
    line-height: 1.25rem;
}

.ui-menubutton .ui-icon-triangle-1-s {
    background: none !important;
    text-indent: 0 !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.625rem !important;
    color: inherit !important;
}
.ui-menubutton .ui-icon-triangle-1-s::before {
    content: '\f078';
}

/* ========== DataTable Action Column Widths ========== */

body .ui-datatable td.col-action,
body .ui-datatable th.col-action,
body .ui-datatable colgroup col.col-action {
    white-space: nowrap !important;
}

body .ui-datatable td.col-action-sm,
body .ui-datatable th.col-action-sm,
body .ui-datatable colgroup col.col-action-sm {
    white-space: nowrap !important;
}

body .ui-datatable td.col-action-md,
body .ui-datatable th.col-action-md,
body .ui-datatable colgroup col.col-action-md {
    white-space: nowrap !important;
}

body .ui-datatable td.col-action-lg,
body .ui-datatable th.col-action-lg,
body .ui-datatable colgroup col.col-action-lg {
    white-space: nowrap !important;
}

body .ui-datatable td.col-action-xl,
body .ui-datatable th.col-action-xl,
body .ui-datatable colgroup col.col-action-xl {
    white-space: nowrap !important;
}

body .ui-datatable td.col-action,
body .ui-datatable td.col-action-sm,
body .ui-datatable td.col-action-md,
body .ui-datatable td.col-action-lg,
body .ui-datatable td.col-action-xl {
    display: flex !important;
    align-items: center;
    justify-content: center !important;
    gap: 6px;
    flex-wrap: nowrap;
}

/* ========== PickList ========== */

body .ui-picklist {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 6px !important;
    width: 100% !important;
}

body .ui-picklist .ui-picklist-list-wrapper {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    float: none !important;
}

body .ui-picklist .ui-picklist-buttons {
    flex: 0 0 auto !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 2px !important;
}

body .ui-picklist .ui-picklist-buttons .ui-picklist-buttons-cell {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button {
    position: relative !important;
    width: 36px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    border-radius: 6px !important;
    transition: all 0.15s ease !important;
    font-size: 0 !important;
    line-height: 32px !important;
    text-align: center !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button:hover {
    background: #e2e8f0 !important;
    border-color: #94a3b8 !important;
    color: #1e293b !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-button-text {
    display: none !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-button-icon-left {
    display: inline-block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    background-image: none !important;
    text-indent: 0 !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrow-1-e::before {
    content: '\f105' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrowstop-1-e::before {
    content: '\f101' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrow-1-w::before {
    content: '\f104' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrowstop-1-w::before {
    content: '\f100' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-button-text {
    display: none !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-button-icon-left {
    display: inline-block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    background-image: none !important;
    text-indent: 0 !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon {
    background-image: none !important;
    text-indent: 0 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrow-1-e::before {
    content: '\f105' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrowstop-1-e::before {
    content: '\f101' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrow-1-w::before {
    content: '\f104' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon-arrowstop-1-w::before {
    content: '\f100' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
}

/* Fallback para garantir que os icones aparecam */
body .ui-picklist .ui-picklist-buttons .ui-button .ui-icon {
    display: inline-block !important;
    background-image: none !important;
    text-indent: 0 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

body .ui-picklist td.ui-picklist-buttons .ui-button .ui-icon {
    display: inline-block !important;
    background-image: none !important;
    text-indent: 0 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

body .ui-picklist .ui-picklist-buttons .ui-button:hover {
    background: #e2e8f0 !important;
    border-color: #94a3b8 !important;
    color: #1e293b !important;
}

body .ui-picklist td.ui-picklist-list-wrapper {
    width: 46% !important;
    vertical-align: top !important;
}

body .ui-picklist td.ui-picklist-buttons {
    width: 8% !important;
    min-width: 50px !important;
    vertical-align: middle !important;
    text-align: center !important;
}

body .ui-picklist td.ui-picklist-buttons .ui-button {
    display: block !important;
    width: 36px !important;
    height: 32px !important;
    margin: 4px auto !important;
    padding: 0 !important;
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    border-radius: 6px !important;
    transition: all 0.15s ease !important;
}

body .ui-picklist td.ui-picklist-buttons .ui-button:hover {
    background: #e2e8f0 !important;
    border-color: #94a3b8 !important;
    color: #1e293b !important;
}

body .ui-picklist .ui-picklist-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background: #fff !important;
    min-height: 120px !important;
    max-height: 280px !important;
    overflow-y: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

body .ui-picklist .ui-picklist-list li.ui-picklist-item {
    padding: 6px 12px !important;
    border-bottom: 1px solid #f1f5f9 !important;
    color: #334155 !important;
    font-size: 0.8125rem !important;
    cursor: pointer !important;
    transition: background 0.1s ease !important;
    white-space: normal !important;
    word-break: break-word !important;
}

body .ui-picklist .ui-picklist-list li.ui-picklist-item:hover {
    background: #f0f9ff !important;
}

body .ui-picklist .ui-picklist-list li.ui-picklist-item.ui-state-highlight {
    background: #ecfeff !important;
    color: #0e7490 !important;
    border-color: #a5f3fc !important;
}

body .ui-picklist .ui-picklist-caption {
    background: #f8fafc !important;
    border: 1px solid #cbd5e1 !important;
    border-bottom: none !important;
    border-radius: 8px 8px 0 0 !important;
    padding: 8px 14px !important;
    font-weight: 600 !important;
    font-size: 0.8125rem !important;
    color: #475569 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    letter-spacing: 0.025em !important;
}

body .ui-picklist .ui-picklist-caption + .ui-picklist-list {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

body .ui-picklist .ui-picklist-filter-container {
    padding: 6px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    background: #f8fafc !important;
}

body .ui-picklist .ui-picklist-filter-container input.ui-picklist-filter {
    width: 100% !important;
    padding: 6px 10px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    font-size: 0.8125rem !important;
    background: #fff !important;
    color: #334155 !important;
    outline: none !important;
    box-sizing: border-box !important;
}

body .ui-picklist .ui-picklist-filter-container input.ui-picklist-filter:focus {
    border-color: #0891b2 !important;
    box-shadow: 0 0 0 2px rgba(8, 145, 178, 0.15) !important;
}

body .ui-picklist .ui-picklist-filter-container .ui-icon {
    right: 12px !important;
}

body .ui-picklist .ui-picklist-checkbox {
    margin-right: 6px !important;
}

/* ========== FIX: SelectOneMenu Trigger - Maximum Specificity ========== */
/* These rules ensure PrimeFaces default styles don't override our custom styles */

/* Trigger with all possible PrimeFaces classes - maximum specificity */
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right.ui-state-hover,
body .ui-selectonemenu > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right {
    position: absolute !important;
    top: 3px !important;
    right: 5px !important;
    bottom: 0px !important;
    width: 2.25rem !important;
    height: 2rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #ffffff !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 0.375rem 0.375rem 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    transition: background-color 0.15s ease !important;
}

/* Ensure ui-corner-right never overrides our border-radius */
body .ui-selectonemenu > .ui-selectonemenu-trigger.ui-corner-right,
body .ui-selectonemenu > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
body .ui-selectonemenu.ui-widget > .ui-selectonemenu-trigger.ui-corner-right,
body .ui-selectonemenu.ui-widget > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
body .ui-selectonemenu.ui-widget.ui-state-default > .ui-selectonemenu-trigger.ui-corner-right,
body .ui-selectonemenu.ui-widget.ui-state-default > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
body .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all > .ui-selectonemenu-trigger.ui-corner-right,
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right {
    border-radius: 0 0.375rem 0.375rem 0 !important;
}

/* Trigger hover state with maximum specificity */
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all:hover
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right.ui-state-hover,
body .ui-selectonemenu:hover > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right {
    background: #f1f5f9 !important;
}

/* Icon styling with maximum specificity */
body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right
    > .ui-icon.ui-icon-triangle-1-s,
body .ui-selectonemenu > .ui-selectonemenu-trigger.ui-corner-right > .ui-icon.ui-icon-triangle-1-s {
    background: none !important;
    background-image: none !important;
    text-indent: 0 !important;
    width: auto !important;
    height: auto !important;
}

body
    .ui-selectonemenu.ui-widget.ui-state-default.ui-corner-all
    > .ui-selectonemenu-trigger.ui-state-default.ui-corner-right
    > .ui-icon.ui-icon-triangle-1-s::before,
body .ui-selectonemenu > .ui-selectonemenu-trigger.ui-corner-right > .ui-icon.ui-icon-triangle-1-s::before {
    content: '\f078' !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 0.625rem !important;
    color: #64748b !important;
}

/* ========== AutoComplete ========== */

.ui-autocomplete {
    width: 100% !important;
    cursor: pointer;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    position: relative;
    display: inline-block;
}

/* ========== Full width inputs - Global (Highest Priority) ========== */
body .ui-inputfield:not([type='hidden']),
body .ui-inputtext:not([type='hidden']),
body .ui-inputtextarea,
body .ui-selectonemenu,
body .ui-spinner input:not([type='hidden']),
body .ui-autocomplete input:not([type='hidden']),
body .ui-autocomplete .ui-autocomplete-input:not([type='hidden']),
body .ui-calendar input:not([type='hidden']),
body .ui-password input:not([type='hidden']),
body .ui-inputnumber input:not([type='hidden']) {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
