/* =========================================================
   CCSI - unified_styles.css
   Ajuste visual seguro para legado PrimeFaces 7
   - melhora leitura, espaçamento e contraste
   - mantém estrutura do Omega/PrimeFaces
   - colore botões apenas por classes de ação
========================================================= */

:root{
    --primary:#1572d3;
    --primary-dark:#0f5db1;
    --primary-soft:#eaf4ff;
    --success:#1f9d55;
    --success-dark:#167c42;
    --danger:#d64545;
    --danger-dark:#b93535;
    --warning:#f08c17;
    --warning-dark:#cb710f;
    --secondary:#667085;
    --secondary-dark:#475467;
    --text:#1f2937;
    --muted:#667085;
    --bg:#eef2f6;
    --bg-soft:#f8fafc;
    --surface:#ffffff;
    --surface-2:#f4f6f8;
    --border:#d9e2ec;
    --border-strong:#c7d2df;
    --sidebar-width:280px;
    --topbar-height:56px;
    --radius-sm:8px;
    --radius-md:12px;
    --radius-lg:16px;
    --shadow-sm:0 1px 2px rgba(16,24,40,.08);
    --shadow-md:0 10px 24px rgba(16,24,40,.08);
    --shadow-lg:0 18px 38px rgba(16,24,40,.12);
}

*{ box-sizing:border-box; }
html{ font-size:14px; }
body,
.ui-widget{
    font-family: Arial, Helvetica, sans-serif !important;
    color:var(--text);
}
body{
    margin:0;
    padding:0;
    background:linear-gradient(180deg,#f7f9fc 0%, #eef2f6 100%);
}
a{ color:var(--primary); text-decoration:none; }
a:hover{ color:var(--primary-dark); }
.wrapper{ min-height:100vh; }

/* =========================
   Topbar
========================= */
.topbar{
    position:sticky;
    top:0;
    width:100%;
    background:linear-gradient(90deg,#1565c0 0%, #1e88e5 55%, #1976d2 100%);
    color:#fff;
    box-shadow:0 4px 14px rgba(21,101,192,.22);
    z-index:1000;
}
.topbar-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 16px;
    min-height:var(--topbar-height);
}
.topbar-left,.topbar-right{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}
.topbar-title,
.topbar-alert,
.topbar-user-line{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.topbar-title{
    font-weight:700;
    font-size:14px;
    letter-spacing:.2px;
    max-width:42vw;
}
.topbar-alert{
    max-width:30vw;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    font-weight:700;
}
.topbar-user{
    display:flex;
    flex-direction:column;
    gap:2px;
    line-height:1.1;
    max-width:36vw;
    min-width:0;
}
.topbar-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:10px;
    color:#fff;
    transition:background-color .2s ease, transform .2s ease;
}
.topbar-btn:hover{
    background:rgba(255,255,255,.14);
    color:#fff;
    transform:translateY(-1px);
}

/* =========================
   Sidebar / Main
========================= */
.sidebar{
    width:var(--sidebar-width);
    position:fixed;
    left:0;
    top:var(--topbar-height);
    height:calc(100vh - var(--topbar-height));
    overflow:hidden;
    background:linear-gradient(180deg,#ffffff 0%, #f5f7fa 100%);
    border-right:1px solid var(--border);
    box-shadow:8px 0 24px rgba(15,23,42,.06);
    pointer-events:auto;
    z-index:999;
}
.sidebar .sidebar-inner{
    height:100%;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    padding:16px 14px 80px;
}
.sidebar .logo{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:12px 8px 16px;
    margin-bottom:6px;
    background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%);
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:var(--shadow-sm);
}
.sidebar .app-menu,
.sidebar .ui-panelmenu{ width:100%; }
.sidebar .ui-panelmenu .ui-panelmenu-content{
    overflow-y:auto !important;
    overflow-x:hidden !important;
}
.sidebar .ui-menuitem-text{ white-space:normal; }
.menu-separator{ height:1px; background:#d6dde6; border:none; margin:10px 0; pointer-events:none; }

.sidebar-backdrop{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.45);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    z-index:998;
}

.wrapper .main{
    margin-left:var(--sidebar-width);
    width:calc(100% - var(--sidebar-width));
    min-height:100vh;
    padding:16px 18px 28px;
}
.layout-content{ padding:0; }
.content-wrapper{ max-width:1480px; margin:0 auto; }

/* =========================
   Menu PrimeFaces
========================= */
.sidebar .ui-panelmenu .ui-panelmenu-header > a,
.sidebar .ui-panelmenu .ui-submenu-header > a,
.sidebar .ui-panelmenu .ui-menuitem-link{
    border-radius:10px !important;
}
.sidebar .ui-panelmenu .ui-panelmenu-header{
    margin:0 0 8px;
}
.sidebar .ui-panelmenu .ui-panelmenu-header > a{
    background:linear-gradient(180deg,#ffffff 0%, #f2f4f7 100%) !important;
    border:1px solid var(--border) !important;
    color:#1d4f91 !important;
    font-weight:700 !important;
    box-shadow:var(--shadow-sm);
}
.sidebar .ui-panelmenu .ui-panelmenu-header.ui-state-active > a,
.sidebar .ui-panelmenu .ui-panelmenu-header > a:hover{
    background:linear-gradient(180deg,#edf5ff 0%, #dbeafe 100%) !important;
    border-color:#b7d3f5 !important;
    color:#0f5db1 !important;
}
.sidebar .ui-panelmenu .ui-panelmenu-content{
    border:1px solid var(--border) !important;
    border-top:none !important;
    border-radius:0 0 12px 12px !important;
    background:#fff !important;
    margin:-8px 0 10px;
    padding:8px !important;
}
.sidebar .ui-panelmenu .ui-menuitem-link{
    margin:2px 0;
    padding:10px 12px !important;
    border:1px solid transparent !important;
    color:#344054 !important;
}
.sidebar .ui-panelmenu .ui-menuitem-link:hover,
.sidebar .ui-panelmenu .ui-menuitem-link.ui-state-hover{
    background:#f5f9ff !important;
    border-color:#d6e7fb !important;
    color:#0f5db1 !important;
}
.sidebar .ui-panelmenu .ui-menuitem-link .ui-menuitem-text{
    font-weight:600;
}
.sidebar .ui-panelmenu .ui-icon{
    color:#0f5db1 !important;
}

/* =========================
   Estrutura PrimeFaces base
========================= */
.ui-panel,
.ui-widget-content,
.ui-datatable,
.ui-tabs,
.ui-panelgrid{
    border-radius:var(--radius-md);
}
.ui-panel{
    margin-bottom:18px;
    border:1px solid var(--border);
    background:var(--surface);
    box-shadow:var(--shadow-md);
}
.ui-panel .ui-panel-titlebar{
    border:0;
    border-bottom:1px solid #e8eef5;
    border-radius:var(--radius-md) var(--radius-md) 0 0;
    background:linear-gradient(180deg,#fdfefe 0%, #f3f7fb 100%);
    color:#294b6b;
    font-weight:700;
    padding:12px 16px;
}
.ui-widget-content{
    background:var(--surface);
    color:var(--text);
}
.ui-widget-header{
    color:#294b6b;
}
.ui-inputfield,
.ui-selectonemenu,
.ui-selectcheckboxmenu,
.ui-autocomplete-input,
textarea,
input[type="text"],
input[type="password"]{
    border-radius:8px !important;
    border-color:var(--border-strong) !important;
    box-shadow:none !important;
}
.ui-inputfield:focus,
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus{
    border-color:#94c0f7 !important;
    box-shadow:0 0 0 3px rgba(21,114,211,.12) !important;
}
.ui-selectonemenu,
.ui-inputfield{
    min-height:36px;
}
.ui-datatable table{ width:100%; }
.ui-datatable thead th{
    background:linear-gradient(180deg,#fbfcfe 0%, #eef3f8 100%) !important;
    color:#334155 !important;
    border-color:#dde6f0 !important;
    font-weight:700 !important;
}
.ui-datatable tbody tr:nth-child(even){
    background:#fbfcfd;
}
.ui-datatable tbody tr:hover td{
    background:#f4f8fc !important;
}
.ui-datatable .ui-datatable-data > tr > td,
.ui-datatable .ui-datatable-data-empty td{
    vertical-align:top;
    border-color:#e6edf4 !important;
    padding:10px 12px !important;
}
.ui-paginator{
    background:transparent !important;
    border:none !important;
}

/* Pesquisa rápida, boxes e ações laterais */
.ui-panelgrid,
.ui-datagrid,
.ui-widget-content .ui-panelgrid{
    border-color:#e7edf4 !important;
}
.ui-panelgrid .ui-panelgrid-cell{
    padding:10px 12px;
}
.ui-toolbar,
.toolbar,
.actions-box,
.action-box,
.quick-box{
    background:linear-gradient(180deg,#ffffff 0%, #f7f9fc 100%);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-sm);
}

/* =========================
   Botões PrimeFaces 7
   Fonte única dos estilos de botão
========================= */
.ui-button,
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-secondary{
    border-radius:10px !important;
    box-shadow:var(--shadow-sm);
    transition:background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease, filter .2s ease;
}

.ui-button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:44px !important;
    padding:0 14px !important;
    vertical-align:middle;
}

.ui-button:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 16px rgba(15,23,42,.12);
}

.ui-button .ui-button-text{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:44px !important;
    padding:0 !important;
    line-height:1.15 !important;
    white-space:normal !important;
    text-align:center !important;
    font-size:13px !important;
    font-weight:700 !important;
    letter-spacing:.15px;
}

.ui-button .ui-icon,
.ui-button .ui-button-text,
.ui-button.ui-state-default .ui-icon,
.ui-button.ui-state-default .ui-button-text{
    color:inherit !important;
}

.ui-button.btn-primary,
.ui-button.ui-state-default.btn-primary,
.btn-primary .ui-button,
.btn-primary{
    background:linear-gradient(180deg,var(--primary) 0%, var(--primary-dark) 100%) !important;
    border:1px solid var(--primary-dark) !important;
    color:#fff !important;
}
.ui-button.btn-primary:hover,
.ui-button.ui-state-hover.btn-primary,
.btn-primary:hover{
    background:linear-gradient(180deg,#1a7ce2 0%, var(--primary-dark) 100%) !important;
    border-color:var(--primary-dark) !important;
    color:#fff !important;
}

.ui-button.btn-success,
.ui-button.ui-state-default.btn-success,
.btn-success .ui-button,
.btn-success{
    background:linear-gradient(180deg,var(--success) 0%, var(--success-dark) 100%) !important;
    border:1px solid var(--success-dark) !important;
    color:#fff !important;
}
.ui-button.btn-success:hover,
.ui-button.ui-state-hover.btn-success,
.btn-success:hover{
    background:linear-gradient(180deg,#27b862 0%, var(--success-dark) 100%) !important;
    border-color:var(--success-dark) !important;
    color:#fff !important;
}

.ui-button.btn-danger,
.ui-button.ui-state-default.btn-danger,
.btn-danger .ui-button,
.btn-danger{
    background:linear-gradient(180deg,var(--danger) 0%, var(--danger-dark) 100%) !important;
    border:1px solid var(--danger-dark) !important;
    color:#fff !important;
}
.ui-button.btn-danger:hover,
.ui-button.ui-state-hover.btn-danger,
.btn-danger:hover{
    background:linear-gradient(180deg,#e05454 0%, var(--danger-dark) 100%) !important;
    border-color:var(--danger-dark) !important;
    color:#fff !important;
}

.ui-button.btn-warning,
.ui-button.ui-state-default.btn-warning,
.btn-warning .ui-button,
.btn-warning{
    background:linear-gradient(180deg,var(--warning) 0%, var(--warning-dark) 100%) !important;
    border:1px solid var(--warning-dark) !important;
    color:#fff !important;
}
.ui-button.btn-warning:hover,
.ui-button.ui-state-hover.btn-warning,
.btn-warning:hover{
    background:linear-gradient(180deg,#f89a2c 0%, var(--warning-dark) 100%) !important;
    border-color:var(--warning-dark) !important;
    color:#fff !important;
}

.ui-button.btn-secondary,
.ui-button.ui-state-default.btn-secondary,
.btn-secondary .ui-button,
.btn-secondary{
    background:linear-gradient(180deg,var(--secondary) 0%, var(--secondary-dark) 100%) !important;
    border:1px solid var(--secondary-dark) !important;
    color:#fff !important;
}
.ui-button.btn-secondary:hover,
.ui-button.ui-state-hover.btn-secondary,
.btn-secondary:hover{
    background:linear-gradient(180deg,#76839a 0%, var(--secondary-dark) 100%) !important;
    border-color:var(--secondary-dark) !important;
    color:#fff !important;
}

/* botão padrão do legado sem classe de ação */
.ui-button.ui-state-default:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-secondary){
    background:linear-gradient(180deg,#ffffff 0%, #eef3f8 100%) !important;
    border:1px solid var(--border-strong) !important;
    color:var(--text) !important;
}
.ui-button.ui-state-default:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-secondary):hover,
.ui-button.ui-state-hover:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-secondary){
    background:linear-gradient(180deg,#ffffff 0%, #e6eef8 100%) !important;
    border-color:#b7c7d8 !important;
    color:var(--text) !important;
}

/* temas: regras de botão centralizadas aqui */
body[data-theme="dark"] .ui-button,
body[data-theme="dark"] .ui-button.ui-state-default{
    filter:brightness(.97) !important;
}

body[data-theme="ipc"] .ui-button.ui-state-default
:not(.btn-success):not(.btn-warning):not(.btn-danger):not(.btn-secondary):not(.btn-primary)
:not([style*="background"]):not([style*="background-color"]){
    background:#D6C84C !important;
    border-color:#b9ab35 !important;
    color:#111 !important;
}
body[data-theme="ipc"] .ui-button.ui-state-hover
:not(.btn-success):not(.btn-warning):not(.btn-danger):not(.btn-secondary):not(.btn-primary)
:not([style*="background"]):not([style*="background-color"]),
body[data-theme="ipc"] .ui-button:hover
:not(.btn-success):not(.btn-warning):not(.btn-danger):not(.btn-secondary):not(.btn-primary)
:not([style*="background"]):not([style*="background-color"]){
    filter:brightness(.96) !important;
}

body[data-theme="high"] .ui-button.ui-state-default
:not(.btn-success):not(.btn-warning):not(.btn-danger):not(.btn-secondary):not(.btn-primary)
:not([style*="background"]):not([style*="background-color"]){
    background:#fff !important;
    color:#000 !important;
    border:2px solid #fff !important;
}

body[data-theme="blue"] .ui-button.ui-state-default
:not(.btn-success):not(.btn-warning):not(.btn-danger):not(.btn-secondary):not(.btn-primary)
:not([style*="background"]):not([style*="background-color"]){
    background:#2563eb !important;
    border-color:#1d4ed8 !important;
    color:#fff !important;
}

/* login portal: botões especiais centralizados aqui */
.page-auth-portal .btn-primary{
    background:linear-gradient(180deg, var(--portal-blue-600, #0b78b8), var(--portal-blue-700, #0a5f93)) !important;
    color:#fff !important;
    border-color:var(--portal-blue-700, #0a5f93) !important;
}
.page-auth-portal .btn-ghost{
    color:#fff !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.18) !important;
}

/* grupo lateral de ações */
.ui-panel .ui-button,
.actions-column .ui-button,
.action-buttons .ui-button{
    min-height:40px;
}
.actions-column .ui-button,
.action-buttons .ui-button{
    width:100%;
    margin-bottom:8px;
}

/* estados utilitários */
.text-success{ color:var(--success) !important; }
.text-danger{ color:var(--danger) !important; }
.text-warning{ color:var(--warning) !important; }
.text-primary{ color:var(--primary) !important; }
.bg-success{ background:var(--success) !important; color:#fff !important; }
.bg-danger{ background:var(--danger) !important; color:#fff !important; }
.bg-warning{ background:var(--warning) !important; color:#fff !important; }
.bg-primary{ background:var(--primary) !important; color:#fff !important; }

/* badge/status comuns do legado */
.status-badge,
.badge,
.label-status,
.status-ok{
    display:inline-block;
    padding:8px 12px;
    border-radius:999px;
    font-weight:700;
    box-shadow:var(--shadow-sm);
}
.status-ok,
.status-assinado{
    background:linear-gradient(180deg,#22a95f 0%, #18884a 100%) !important;
    color:#fff !important;
}

.footer{
    margin-left:var(--sidebar-width);
    width:calc(100% - var(--sidebar-width));
    padding:10px 18px 16px;
    color:var(--muted);
    display:flex;
    align-items:center;
    gap:8px;
}
.footer-text{ font-size:12px; }

@media (max-width:991.98px){
    .wrapper .main,
    .footer{
        margin-left:0 !important;
        width:100% !important;
    }
    .sidebar{
        top:var(--topbar-height) !important;
        height:calc(100vh - var(--topbar-height)) !important;
        transform:translateX(-110%) !important;
        transition:transform .2s ease;
    }
    html.sidebar-open .sidebar{
        transform:translateX(0) !important;
    }
    html.sidebar-open .sidebar-backdrop{
        opacity:1;
        pointer-events:auto;
    }
    .topbar-title{ max-width:34vw; }
    .topbar-alert,
    .topbar-user-hide-md,
    .topbar-user-hide-sm{ display:none; }
    .wrapper .main{ padding:12px; }
}

/* =========================================================
   CCSI-V1.1.3 - Refinamento visual seguro para produção
   - Somente CSS: não altera Ajax, tabView, autocomplete, upload ou forms.
   - Padroniza cores por intenção do botão.
   - Melhora responsividade sem trocar PrimeFaces 7.
========================================================= */

/* Mapa visual oficial dos botões por intenção */
.ui-button.btn-primary,
.ui-button.ui-state-default.btn-primary,
input.btn-primary,
button.btn-primary,
a.btn-primary,
.btn-primary.ui-button,
.btn-primary {
    background:linear-gradient(180deg,#1976d2 0%, #0d47a1 100%) !important;
    border:1px solid #0d47a1 !important;
    color:#fff !important;
    text-shadow:none !important;
}
.ui-button.btn-primary:hover,
input.btn-primary:hover,
button.btn-primary:hover,
a.btn-primary:hover,
.btn-primary.ui-state-hover {
    background:linear-gradient(180deg,#1e88e5 0%, #0d47a1 100%) !important;
    border-color:#0b3d8a !important;
    color:#fff !important;
}

.ui-button.btn-danger,
.ui-button.ui-state-default.btn-danger,
input.btn-danger,
button.btn-danger,
a.btn-danger,
.btn-danger.ui-button,
.btn-danger {
    background:linear-gradient(180deg,#d32f2f 0%, #9f1f1f 100%) !important;
    border:1px solid #9f1f1f !important;
    color:#fff !important;
    text-shadow:none !important;
}
.ui-button.btn-danger:hover,
input.btn-danger:hover,
button.btn-danger:hover,
a.btn-danger:hover,
.btn-danger.ui-state-hover {
    background:linear-gradient(180deg,#e53935 0%, #9f1f1f 100%) !important;
    border-color:#8b1a1a !important;
    color:#fff !important;
}

.ui-button.btn-success,
.ui-button.ui-state-default.btn-success,
input.btn-success,
button.btn-success,
a.btn-success,
.btn-success.ui-button,
.btn-success {
    background:linear-gradient(180deg,#1b9a59 0%, #0f6f3f 100%) !important;
    border:1px solid #0f6f3f !important;
    color:#fff !important;
    text-shadow:none !important;
}
.ui-button.btn-success:hover,
input.btn-success:hover,
button.btn-success:hover,
a.btn-success:hover,
.btn-success.ui-state-hover {
    background:linear-gradient(180deg,#20ad66 0%, #0f6f3f 100%) !important;
    border-color:#0d5f36 !important;
    color:#fff !important;
}

.ui-button.btn-warning,
.ui-button.ui-state-default.btn-warning,
input.btn-warning,
button.btn-warning,
a.btn-warning,
.btn-warning.ui-button,
.btn-warning {
    background:linear-gradient(180deg,#f59e0b 0%, #b45309 100%) !important;
    border:1px solid #b45309 !important;
    color:#fff !important;
    text-shadow:none !important;
}
.ui-button.btn-warning:hover,
input.btn-warning:hover,
button.btn-warning:hover,
a.btn-warning:hover,
.btn-warning.ui-state-hover {
    background:linear-gradient(180deg,#f8aa22 0%, #b45309 100%) !important;
    border-color:#92400e !important;
    color:#fff !important;
}

.ui-button.btn-secondary,
.ui-button.ui-state-default.btn-secondary,
input.btn-secondary,
button.btn-secondary,
a.btn-secondary,
.btn-secondary.ui-button,
.btn-secondary {
    background:linear-gradient(180deg,#64748b 0%, #475569 100%) !important;
    border:1px solid #475569 !important;
    color:#fff !important;
    text-shadow:none !important;
}
.ui-button.btn-secondary:hover,
input.btn-secondary:hover,
button.btn-secondary:hover,
a.btn-secondary:hover,
.btn-secondary.ui-state-hover {
    background:linear-gradient(180deg,#718096 0%, #475569 100%) !important;
    border-color:#334155 !important;
    color:#fff !important;
}

.ui-button.btn-primary .ui-button-text,
.ui-button.btn-danger .ui-button-text,
.ui-button.btn-success .ui-button-text,
.ui-button.btn-warning .ui-button-text,
.ui-button.btn-secondary .ui-button-text,
.ui-button.btn-primary .ui-icon,
.ui-button.btn-danger .ui-icon,
.ui-button.btn-success .ui-icon,
.ui-button.btn-warning .ui-icon,
.ui-button.btn-secondary .ui-icon {
    color:#fff !important;
}

.ui-button.ui-state-disabled,
.ui-button[disabled],
input[disabled].btn-primary,
input[disabled].btn-danger,
input[disabled].btn-success,
input[disabled].btn-warning,
input[disabled].btn-secondary {
    opacity:.68 !important;
    cursor:not-allowed !important;
    transform:none !important;
    box-shadow:none !important;
}

/* Ergonomia geral de formulário */
.ui-panelgrid .ui-panelgrid-cell label,
.ui-outputlabel {
    font-weight:700;
    color:#344054;
    line-height:1.25;
}

.ui-panelgrid .ui-inputfield,
.ui-panelgrid .ui-selectonemenu,
.ui-panelgrid .ui-autocomplete,
.ui-panelgrid .ui-autocomplete-input,
.ui-panelgrid textarea,
.ui-panel .ui-inputfield,
.ui-panel .ui-selectonemenu,
.ui-panel .ui-autocomplete,
.ui-panel .ui-autocomplete-input,
.ui-panel textarea {
    width:100% !important;
    max-width:100% !important;
}

.ui-selectonemenu .ui-selectonemenu-label,
.ui-autocomplete-input,
.ui-inputfield,
textarea {
    color:#1f2937 !important;
    background:#fff !important;
}

.ui-selectonemenu-panel,
.ui-autocomplete-panel,
.ui-datepicker,
.ui-overlaypanel,
.ui-dialog {
    z-index:10050 !important;
}

.ui-autocomplete-panel .ui-autocomplete-items,
.ui-selectonemenu-panel .ui-selectonemenu-items {
    max-width:95vw;
}

.ui-autocomplete-panel .ui-autocomplete-item,
.ui-selectonemenu-panel .ui-selectonemenu-item {
    line-height:1.35;
    padding:9px 12px !important;
    color:#1f2937 !important;
}

.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight,
.ui-autocomplete-panel .ui-state-highlight,
.ui-selectonemenu-panel .ui-state-highlight {
    background:#1976d2 !important;
    border-color:#0d47a1 !important;
    color:#fff !important;
}

/* Abas: melhora navegação sem mexer no componente */
.ui-tabs .ui-tabs-nav {
    display:flex !important;
    flex-wrap:wrap !important;
    gap:4px;
    align-items:flex-end;
    padding:8px 8px 0 !important;
    background:#f8fafc !important;
    border-color:#d9e2ec !important;
}
.ui-tabs .ui-tabs-nav li {
    float:none !important;
    margin:0 !important;
    border-radius:8px 8px 0 0 !important;
}
.ui-tabs .ui-tabs-nav li a {
    padding:10px 14px !important;
    font-weight:700;
    color:#334155 !important;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected,
.ui-tabs .ui-tabs-nav li.ui-state-active {
    border-color:#9fc5f8 !important;
    background:#fff !important;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
.ui-tabs .ui-tabs-nav li.ui-state-active a {
    color:#0d47a1 !important;
}
.ui-tabs .ui-tabs-panel {
    padding:16px !important;
}

/* Tabelas largas: mantém layout e libera rolagem horizontal controlada */
.ui-datatable,
.ui-datatable .ui-datatable-tablewrapper {
    width:100%;
    max-width:100%;
}
.ui-datatable .ui-datatable-tablewrapper {
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
}
.ui-datatable table {
    min-width:720px;
}
.ui-datatable-reflow table,
.ui-datatable table[role="grid"] {
    border-collapse:collapse;
}

/* Botões em grades/ações: leitura melhor sem alterar submit/ajax */
.ui-panelgrid .ui-button,
.ui-panel .ui-button,
.ui-datatable .ui-button,
.ui-dialog .ui-button,
input[type="submit"],
button.btn-primary,
button.btn-danger,
button.btn-success,
button.btn-warning,
button.btn-secondary {
    margin:3px 2px;
    min-width:96px;
}

/* Responsividade progressiva */
@media (max-width:1366px){
    html{ font-size:13px; }
    .wrapper .main{ padding:12px 14px 24px !important; }
    .content-wrapper{ max-width:100% !important; }
    .ui-panel .ui-panel-titlebar{ padding:10px 12px !important; }
    .ui-panelgrid .ui-panelgrid-cell{ padding:8px 10px !important; }
    .ui-button .ui-button-text{ font-size:12px !important; }
}

@media (max-width:991.98px){
    .ui-tabs .ui-tabs-nav{
        flex-wrap:nowrap !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        white-space:nowrap;
    }
    .ui-tabs .ui-tabs-nav li{
        flex:0 0 auto;
    }
    .ui-tabs .ui-tabs-panel{
        padding:12px !important;
    }
    .ui-panelgrid,
    .ui-panelgrid tbody,
    .ui-panelgrid tr,
    .ui-panelgrid .ui-panelgrid-cell{
        display:block !important;
        width:100% !important;
    }
    .ui-g-12,
    .ui-g-11,
    .ui-g-10,
    .ui-g-9,
    .ui-g-8,
    .ui-g-7,
    .ui-g-6,
    .ui-g-5,
    .ui-g-4,
    .ui-g-3,
    .ui-g-2,
    .ui-g-1,
    .ui-md-12,
    .ui-md-11,
    .ui-md-10,
    .ui-md-9,
    .ui-md-8,
    .ui-md-7,
    .ui-md-6,
    .ui-md-5,
    .ui-md-4,
    .ui-md-3,
    .ui-md-2,
    .ui-md-1,
    .ui-lg-12,
    .ui-lg-11,
    .ui-lg-10,
    .ui-lg-9,
    .ui-lg-8,
    .ui-lg-7,
    .ui-lg-6,
    .ui-lg-5,
    .ui-lg-4,
    .ui-lg-3,
    .ui-lg-2,
    .ui-lg-1{
        width:100% !important;
        float:none !important;
        clear:both;
    }
    .ui-button,
    input[type="submit"].btn-primary,
    input[type="submit"].btn-danger,
    input[type="submit"].btn-success,
    input[type="submit"].btn-warning,
    input[type="submit"].btn-secondary{
        width:100% !important;
        margin:5px 0 !important;
    }
    .ui-dialog{
        width:94vw !important;
        left:3vw !important;
    }
}

@media (max-width:640px){
    .wrapper .main{ padding:10px !important; }
    .ui-panel{ border-radius:10px !important; }
    .ui-panel .ui-panel-titlebar{ font-size:13px !important; }
    .ui-tabs .ui-tabs-nav li a{ padding:9px 10px !important; }
    .ui-datatable table{ min-width:640px; }
}
