body .grid {
    margin: 0;
}



body .ql-container {
    font-size: inherit;
    min-height: 6rem;
}






body .ui-accordion .ui-accordion-content {
    border: 1px solid #dee2e6;
    background: #fff;
    color: #495057;
    padding: .5rem;
    margin: 0;
    position: static;
    border-top: 0 none;
}


body .ui-accordion-header .ui-panel-actions {
    margin-top: -8px;
}


body .ui-autocomplete .ui-autocomplete-multiple-container {
    /* display: flex;
    flex-direction: column;
    gap: 0.25rem; */
    width: 100%;
}


body .ui-autocomplete .ui-autocomplete-multiple-container .ui-autocomplete-token .ui-autocomplete-token-label {
    overflow: hidden;
    text-overflow: ellipsis;
}


body .ui-badge .ui-badge-icon {
    margin-right: .4em;
}

body .ui-button.ui-button-icon-only {
    width: 2.357rem;
    height: 2.357rem;
}

body .ui-button.rounded-button.ui-button-icon-only {
    height: auto;
}

body .ui-button.rounded-button.ui-button-icon-only .ui-button-text {
    padding: 0;
}


body .ui-calendar .ui-button.ui-button-icon-only {
    height: auto;
}



body .ui-card .ui-card-body {
    height: 100%;
    display: flex;
    flex-direction: column;
	gap: 0.5rem;
    padding: .5rem .5rem;
}

body .ui-card .ui-card-title,
body .ui-card .ui-card-content,
body .ui-card .ui-card-footer {
    padding: 0;
    margin: 0;
}

body .ui-card .ui-card-content {
	flex: 1;
	overflow: auto;
}


body .ui-chips .ui-chips-container {
    padding: .5rem
}



body .ui-datagrid .ui-datagrid-content {
    padding: 0.125rem;
}


body .ui-datalist .ui-datalist-content {
    padding: 0.125rem;
}

body .ui-datatable .ui-datatable-data > tr > td,
body .ui-datatable thead > tr > td,
body .ui-datatable thead > tr > th,
body .ui-datatable tfoot > tr > td,
body .ui-datatable tfoot > tr > th {
	overflow: hidden;
    text-overflow: ellipsis;
}

body .ui-datatable.ui-datatable-sm .ui-datatable-data > tr > td,
body .ui-datatable.ui-datatable-sm thead > tr > td,
body .ui-datatable.ui-datatable-sm thead > tr > th,
body .ui-datatable.ui-datatable-sm tfoot > tr > td,
body .ui-datatable.ui-datatable-sm tfoot > tr > th {
    padding: 0.3rem 0.5rem;
}

body .ui-datatable.ui-datatable-sm .ui-datatable-tablewrapper .ui-button {
    height: 1.8rem;
}

body .ui-datatable.ui-datatable-sm .ui-datatable-tablewrapper .ui-button.ui-button-icon-only {
    width: 1.8rem;
}

body .ui-datatable.ui-datatable-sm .ui-datatable-tablewrapper .ui-button.ui-button-text-icon-left .ui-button-text {
    padding: 0 1rem 0 2rem;
}

body .ui-datatable.ui-datatable-sm .ui-datatable-tablewrapper .ui-button.ui-button-text-icon-right .ui-button-text {
    padding: 0 2rem 0 1rem;
}


body .ui-datatable .ui-column-filter, 
body .ui-datatable .ui-column-customfilter, 
body .ui-datatable .ui-column-custom-filter {
    margin: 0.2rem auto auto auto;
}


body .ui-datatable .ui-selection-column .ui-chkbox-all {
    margin: auto;   
}

body .ui-datatable.ui-datatable-scrollable .ui-datatable-scrollable-header .ui-datatable-scrollable-header-box th .ui-column-title-container {
    display: flex;
    white-space: nowrap;
}

body .ui-datatable.ui-datatable-scrollable .ui-datatable-scrollable-header .ui-datatable-scrollable-header-box th .ui-column-title {
    overflow: hidden;
    text-overflow: ellipsis;
}

body .ui-datatable-scrollable-body {
    flex: 1;
}

body .ui-datatable.ui-datatable-striped .ui-datatable-data>tr.ui-datatable-odd {
    background: #eee;
}


body .ui-datatable-reflow .ui-datatable-data td[role="gridcell"] .ui-column-title {
    font-weight: bold;
    text-align: left;
}

@media (max-width: 640px) {
	body .ui-datatable.ui-datatable-reflow table {
    	table-layout: fixed;
	}
	
	body .ui-datatable.ui-datatable-reflow table td, body .ui-datatable.ui-datatable-reflow table th {
    	max-width: 100%;
	}
	
    body .ui-datatable-reflow .ui-datatable-data td[role="gridcell"]:not(.ui-helper-hidden) {
        display: flex;
        justify-content: space-between;
        border: 0 none;
        width: 100%;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }
}

body .ui-datepicker .ui-datepicker-calendar td {
    padding: 0.1rem;
}

body .ui-datepicker .ui-datepicker-calendar {
    margin: 0.1rem 0;
}

body .ui-datepicker .ui-datepicker-group,
body .p-datepicker-panel .ui-timepicker {
    padding: 0.1rem;
}

body .p-datepicker:has(input[type="hidden"]) > button.ui-datepicker-trigger {
	border-radius: 4px;
}

body .ui-datepicker-month,
body .ui-datepicker-year {
    border: 1px solid #ced4da;
    border-radius: 4px;
    color: #495057;
}

body .ui-datepicker .ui-datepicker-buttonbar {
    padding: 0.1rem 0;
}

body .ui-datepicker .ui-datepicker-buttonbar,
body .p-datepicker-panel .ui-timepicker, 
body .ui-datepicker .ui-datepicker-group, 
body .ui-datepicker .ui-datepicker-calendar td {
    padding: 0;
}

body .ui-datepicker .ui-datepicker-calendar {
    margin: 0;
}


body .ui-datepicker .ui-datepicker-calendar td > a, 
body .ui-datepicker .ui-datepicker-calendar td > span {
    width: 2rem;
    height: 2rem;
    line-height: 2rem;
}

body .ui-datepicker .ui-picker-up, 
body .ui-datepicker .ui-picker-down {
    width: 1rem;
    height: 1rem;
    line-height: 1rem;
}

body .ui-datepicker .ui-timepicker-timeinput input, 
body .ui-datepicker .ui-timepicker-timeinput .ui-separator>span {
    padding: 0.25rem 0.25rem;
    line-height: 1rem;
}

body .p-datepicker.ui-calendar.ui-inputwrapper-focus {
    border-color: #2196f3;
    outline: 0 none;
    box-shadow: 0 0 0 .2em #a6d5fa;
    border-radius: 4px;
}



body .ui-dialog .ui-dialog-content {
    padding: 0.5rem 1rem;
}

body .ui-dialog .ui-dialog-titlebar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid #dee2e6;
    background: #f8f9fa;
    color: #495057;
    padding: 1rem;
    font-weight: 700;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
}

body .ui-dialog .ui-dialog-titlebar .ui-dialog-title {
    flex: 1 1 0%;
    overflow: hidden;
    font-size: 1rem;
}

body .ui-dialog.ui-resizable .ui-dialog-content {
    overflow: auto;
    max-height: 70vh;
    min-width: 40vw;
}


body .ui-float-label > input:focus ~ label, 
body .ui-float-label > input.ui-state-filled ~ label, 
body .ui-float-label > textarea:focus ~ label, 
body .ui-float-label > textarea.ui-state-filled ~ label, 
body .ui-float-label > .ui-inputwrapper-focus ~ label, 
body .ui-float-label>.ui-inputwrapper-filled ~ label {
    font-size: 14px;
    font-weight: bold;
    margin-left: 0;
}


body .ui-growl {
	top: 5rem;
    /* bottom: 2rem;
    top: unset; */
    z-index: 9999 !important;
}


body .ui-growl,
body .ui-growl-message {
    width: auto;
    min-width: 300px;
    max-width: 80vw;
}

body .ui-growl-message {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

body .ui-growl-message p:empty {
    display: none;
}

body .ui-growl-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

body .ui-growl-title {
    padding: 0;
}



body .ui-inputgroup {
    align-items: center;
}

body .ui-inputgroup .ui-inputgroup-addon {
    flex-shrink: 0;
}

body .ui-inputgroup > .ui-inputgroup-addon:has( > .ui-radiobutton) {
    padding: 0.4rem 0.5rem;
}

body .ui-inputgroup > button.ui-button.ui-button-icon-only {
	width: 2.357rem;
    height: auto;
}


body .ui-linkbutton a {
    text-decoration: none;
    font-weight: 400;
}



body .ui-paginator .ui-paginator-current,
body .ui-paginator .ui-paginator-rpp-options {
    margin: 0.2rem 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    color: #495057;
    white-space: pre;
}

body .ui-paginator .ui-paginator-rpp-options {
    border: 1px solid #ced4da;
    border-radius: 4px;
}


/* Target mobile devices (adjust the max-width as needed for your specific breakpoints) */
@media screen and (max-width: 768px) {
    /* Make the main paginator container a flexbox and allow it to wrap */
    .ui-paginator {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important; /* Center the items */
        padding: 0.5rem !important;
    }

    /* Target the text elements: "record x - y di z" (ui-paginator-current) 
       and "pagina a di b" (custom text if any, but usually handled by current) */
    .ui-paginator .ui-paginator-current {
        flex-basis: 100% !important; /* Force this element to take full width, pushing next items to a new line */
        text-align: center !important;
        margin-bottom: 0.5rem !important; /* Add some space below it */
    }

    /* Target the navigation links and page number container */
    .ui-paginator .ui-paginator-first,
    .ui-paginator .ui-paginator-prev,
    .ui-paginator .ui-paginator-pages,
    .ui-paginator .ui-paginator-next,
    .ui-paginator .ui-paginator-last {
         /* Keep them inline with each other */
         display: inline-block !important; 
    }

    /* Target the dropdown for rows per page ("10 v") */
    .ui-paginator .ui-paginator-rpp-options {
        flex-basis: 100% !important; /* Force to a new line below the arrows/numbers */
        text-align: center !important;
        margin-top: 0.5rem !important; /* Space above it */
        justify-content: center !important;
    }
}


body .ui-panel {
    display: flex;
    flex-direction: column;
}

body .ui-panel .ui-panel-titlebar + .ui-panel-content {
    flex: 1;
}

body .ui-panel .ui-panel-content {
    padding: 0.25rem;
}



body .ui-panelgrid .ui-panelgrid-cell {
    padding: .25rem .5rem;
}



body .ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-items .ui-selectcheckboxmenu-item {
    padding: .25rem 1rem;
}

body .ui-selectmanycheckbox.ui-grid.ui-grid-responsive > .ui-g > .ui-g-12 {
    display: flex;
    align-items: center;
}

body .ui-selectonebutton {
    white-space: nowrap;
}

body .ui-selectonelistbox,
body .ui-selectmanymenu, 
body .ui-multiselectlistbox-listcontainer {
    width: auto;
}


body .ui-selectonemenu {
    max-width: 100%;
}

body .ui-selectonemenu .ui-selectonemenu-label {
    text-overflow: ellipsis;
}


body .ui-selectonemenu-panel {
    max-width: 80vw;
}

body .ui-selectonemenu-item {
    overflow: hidden !important;
    text-overflow: ellipsis;
}

body .ui-selectonemenu .ui-selectonemenu-trigger {
	background-color: var(--primary-color);
}

body .ui-selectonemenu .ui-selectonemenu-trigger .ui-icon {
	color: var(--primary-color-text);
}


body .ui-tabmenu .ui-tabmenu-nav {
    overflow-x: auto;
    margin: 0;
    padding: 0;
}


body .ui-tabs li.ui-tabs-actions {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
}

body .ui-tabs li.ui-tabs-actions.ui-tabs-actions-global {
  position: relative;
}

body .ui-tabs li.ui-tabs-actions .ui-button.ui-button-icon-only.ui-button-flat {
  /* Definiamo una dimensione fissa per l'area cliccabile (hit-area) */
    width: 2.5rem !important;
    height: 2.5rem !important;
    
    /* Usiamo flexbox per centrare l'icona, annullando la logica di PrimeFaces */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body .ui-tabs li.ui-tabs-actions .ui-button.ui-button-icon-only.ui-button-flat .ui-icon {
    /* Rimuoviamo il posizionamento assoluto e i margini negativi di PF */
    position: static !important;
    margin: 0 !important;
    
    /* Ingrandiamo l'icona (equivalente a un text-xl/2xl) */
    font-size: 1.5rem !important;
}

body .ui-tabs li.ui-tabs-actions .ui-button.ui-button-icon-only.ui-button-flat .ui-button-text {
    display: none;
}


body .ui-tabs.ui-tabs-top {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

body .ui-tabs.ui-tabs-top .ui-tabs-panels {
	flex: 1 1 0%;
    overflow: hidden;
}

body .ui-tabs .ui-tabs-panels .ui-tabs-panel {
    height: 100%;
    overflow: auto;
    padding: 0.5rem;
    margin: 0;
}

body .ui-tabs.ui-tabs-left > .ui-tabs-nav li.ui-tabs-header {
    padding: 0.5rem 1rem;
}

body .ui-tabs.ui-tabs-left > .ui-tabs-nav li.ui-tabs-header a {
    text-overflow: ellipsis;
    overflow: hidden;
    line-height: normal;
}


body .ui-tag-value {
    white-space: nowrap;
}



body .ui-tree .ui-tree-container .ui-treenode .ui-treenode-content .ui-tree-toggler {
    flex: 0;
}

body .ui-tree .ui-treenode-label {
    overflow: hidden;
    text-overflow: ellipsis;
}

body .ui-tree .ui-tree-container .ui-treenode .ui-treenode-content.ui-tree-selectable.ui-state-hover {
    background: #fdf2e3;
    color: #495057;
}

body .ui-tree-selectable,
body .ui-tree-selectable * {
    cursor: pointer;
}


