/* gestx grid – tema gestx sopra tabulator.min.css */
.gx-grid{--g-ink:#0F172A;--g-mut:#64748B;--g-line:#E2E8F0;--g-line2:#CBD5E1;--g-em:#059669;--g-em3:#10B981;--g-mint:#ECFDF5;--g-sel:#D1FAE5;--g-head:#F8FAFC;
  position:relative;display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid var(--g-line);border-radius:12px;overflow:hidden;font:500 13px/1.35 var(--gx-font,'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif);color:var(--g-ink)}
.gx-grid-host{display:none}
.gx-grid{max-width:100%;min-width:0;box-sizing:border-box}
.gx-grid__toolbar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--g-line);background:#fff}
/* run 16: le vecchie barre hanno style="height:30px" pensato per i pulsanti EasyUI da 24px; con i pulsanti gx piu' alti il contenuto usciva e copriva l'intestazione della griglia */
.gx-grid__toolbar[style*="height"]{height:auto !important;min-height:30px}
.gx-grid__table{flex:1 1 auto;min-height:0;outline:none}
.gx-grid .tabulator{border:0;background:#fff;font-size:13px}
.gx-grid .tabulator .tabulator-header{background:var(--g-head);border-bottom:1px solid var(--g-line);color:#334155;font-weight:700}
.gx-grid .tabulator .tabulator-header .tabulator-col{background:var(--g-head);border-right:1px solid var(--g-line)}
.gx-grid .tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:7px 8px 5px}
.gx-grid .tabulator .tabulator-col-title{font:700 11.5px/1.2 var(--gx-font-h,'Sora','Manrope',system-ui,sans-serif);letter-spacing:.02em;text-transform:uppercase;color:#475569}
.gx-grid .tabulator .tabulator-header-filter{margin-top:5px}
.gx-grid .tabulator .tabulator-header-filter input,.gx-grid .gx-gf-in{width:100%;box-sizing:border-box;height:26px;padding:3px 7px;border:1px solid var(--g-line2);border-radius:7px;background:#fff;font:500 12px/1 inherit;font-family:inherit;color:var(--g-ink);text-transform:none;letter-spacing:0}
.gx-grid .tabulator .tabulator-header-filter input:focus,.gx-grid .gx-gf-in:focus{outline:none;border-color:var(--g-em3);box-shadow:0 0 0 3px rgba(16,185,129,.22)}
.gx-grid .tabulator .tabulator-header-filter input::placeholder,.gx-gf-in::placeholder{color:#94A3B8}
.gx-gf-range{display:flex;align-items:center;gap:3px}.gx-gf-range .gx-gf-in{min-width:0;flex:1 1 0;padding:3px 5px}
.gx-gf-sep{color:#94A3B8;font-size:11px}
.gx-gf-sel{padding-right:18px;appearance:auto}
.gx-grid .tabulator-row{border-bottom:1px solid #F1F5F9;min-height:32px}
.gx-grid .tabulator-row .tabulator-cell{padding:7px 8px;border-right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gx-grid--striped .tabulator-row.tabulator-row-even{background:#FAFBFC}
.gx-grid .tabulator-row.tabulator-selectable:hover{background:#F0FDF4;cursor:pointer}
.gx-grid .tabulator-row.tabulator-selected,.gx-grid .tabulator-row.tabulator-selected:hover{background:var(--g-sel);box-shadow:inset 3px 0 0 var(--g-em)}
.gx-grid .tabulator-row .tabulator-cell.tabulator-frozen{background:inherit}
.gx-grid .gx-g-rn{color:#94A3B8;font-variant-numeric:tabular-nums;font-size:11.5px}
.gx-grid .tabulator-cell[tabulator-field] {font-variant-numeric:tabular-nums}
.gx-grid .tabulator .tabulator-footer{background:#fff;border-top:1px solid var(--g-line);padding:6px 8px;font-weight:600;color:var(--g-mut)}
.gx-grid .tabulator .tabulator-footer .tabulator-page{border:1px solid var(--g-line2);border-radius:8px;background:#fff;color:#1E293B;padding:3px 9px;margin:0 2px;font-weight:700}
.gx-grid .tabulator .tabulator-footer .tabulator-page.active{background:var(--g-em);border-color:var(--g-em);color:#fff}
.gx-grid .tabulator .tabulator-footer .tabulator-page:not(.disabled):hover{background:var(--g-mint);color:var(--g-em)}
.gx-grid .tabulator .tabulator-footer .tabulator-page-size{border:1px solid var(--g-line2);border-radius:8px;padding:3px 6px}
.gx-grid .tabulator .tabulator-placeholder .tabulator-placeholder-contents{color:var(--g-mut);font-weight:600}
.gx-grid.is-loading::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,transparent,var(--g-em3),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:gx-gload 1s linear infinite;z-index:5}
@keyframes gx-gload{from{background-position:-40% 0}to{background-position:140% 0}}
/* barra mobile + pannello filtri */
.gx-grid__mbar{display:none;gap:6px;padding:6px 8px;border-bottom:1px solid var(--g-line);background:#fff}
.gx-gbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--g-line2);border-radius:9px;background:#fff;color:#1E293B;font:700 12.5px/1 inherit;font-family:inherit;cursor:pointer}
.gx-gbtn--pri{background:linear-gradient(180deg,#10B981,#059669);border-color:#059669;color:#fff}
.gx-gbtn[aria-expanded=true],.gx-gbtn[aria-pressed=true]{background:var(--g-mint);border-color:#6EE7B7;color:#047857}
.gx-gbadge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#059669;color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center}
.gx-grid__fsheet{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border-bottom:1px solid var(--g-line);background:#F8FAFC;max-height:55vh;overflow:auto}
.gx-fs-row{display:grid;grid-template-columns:38% 1fr;align-items:center;gap:8px}
.gx-fs-lbl{font-weight:700;font-size:12px;color:#475569}
.gx-fs-slot .tabulator-header-filter{margin:0}
.gx-fs-slot input,.gx-fs-slot select{width:100%;box-sizing:border-box;height:34px;padding:4px 9px;border:1px solid var(--g-line2);border-radius:8px;font:500 14px/1 inherit;font-family:inherit;background:#fff}
.gx-fs-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}
@media (max-width:639.98px){
  .gx-grid__mbar{display:flex}
  .gx-grid .tabulator-row .tabulator-cell{padding:9px 8px}
  .gx-grid .tabulator .tabulator-footer .tabulator-paginator{display:flex;flex-wrap:wrap;justify-content:center;gap:2px}
  .gx-grid .tabulator .tabulator-footer .tabulator-page{min-width:34px;min-height:32px}
}
/* modalità schede (mobile) */
.gx-grid--cards .tabulator .tabulator-header{display:none}
.gx-grid--cards .tabulator .tabulator-tableholder{overflow-x:hidden!important}
.gx-grid--cards .tabulator .tabulator-table{display:block!important;width:100%!important;min-width:0!important;padding:8px;box-sizing:border-box}
.gx-grid--cards .tabulator-row{display:block!important;width:auto!important;margin:0 0 8px;border:1px solid var(--g-line);border-radius:12px;background:#fff!important;padding:6px 10px;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.gx-grid--cards .tabulator-row.tabulator-selected{border-color:#6EE7B7;box-shadow:0 0 0 2px rgba(16,185,129,.25)}
.gx-grid--cards .tabulator-row .tabulator-cell{display:flex!important;width:auto!important;min-height:0;padding:3px 0;white-space:normal;border:0;justify-content:space-between;gap:12px;text-align:right!important;position:static!important;left:auto!important}
.gx-grid--cards .tabulator-row .tabulator-cell::before{content:attr(data-label);flex:none;max-width:45%;color:var(--g-mut);font-weight:700;font-size:11.5px;text-align:left;text-transform:uppercase;letter-spacing:.02em}
.gx-grid--cards .tabulator-row .tabulator-cell:nth-child(2){font-weight:800;font-size:14px}
.gx-grid--cards .tabulator-row .tabulator-cell:empty,.gx-grid--cards .tabulator-row .tabulator-cell.gx-g-rn{display:none!important}
.gx-grid--cards .tabulator-row .tabulator-cell.gx-g-chk{justify-content:flex-start}
.gx-grid [hidden]{display:none!important}
.gx-grid.gx-grid--fit{height:100%}
.gx-grid--cards .tabulator-row .tabulator-cell{height:auto!important}
.gx-grid--cards .tabulator-row .tabulator-cell[style*="display: none"]{display:none!important}
.gx-grid--cards .tabulator-row{min-height:0!important}
.gx-gf-in.is-bad{border-color:#DC2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.15)!important}
.gx-gf-range--one .gx-gf-in{padding:3px 6px}
.gx-fs-slot .gx-gf-range--one input{text-align:left}
@media (max-width:639.98px){
  .gx-grid .tabulator .tabulator-footer .tabulator-footer-contents{flex-direction:column;gap:6px}
  .gx-grid .tabulator .tabulator-footer .tabulator-page-counter{order:2}
  .gx-grid .tabulator .tabulator-footer label{display:none}
}

/* ordinamento gestito dalla griglia (come EasyUI): freccia sui campi in sortName */
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sortable .tabulator-col-content{cursor:pointer}
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sortable .tabulator-col-title{padding-right:16px;position:relative}
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sort-asc .tabulator-col-title::after,
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sort-desc .tabulator-col-title::after{content:"";position:absolute;right:3px;top:50%;margin-top:-3px;border-left:5px solid transparent;border-right:5px solid transparent}
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sort-asc .tabulator-col-title::after{border-bottom:6px solid var(--g-em)}
.gx-grid .tabulator .tabulator-header .tabulator-col.gx-sort-desc .tabulator-col-title::after{border-top:6px solid var(--g-em)}
/* griglie di dettaglio: righe con le classi EasyUI (datagrid-row ha un'altezza fissa nel tema), spunte, editor, gruppi */
.gx-grid .tabulator-row.datagrid-row{height:auto}
.gx-grid .tabulator-cell.gx-g-check{padding:0!important;display:inline-flex;align-items:center;justify-content:center}
.gx-grid .datagrid-cell-check,.gx-grid .datagrid-header-check{display:flex;align-items:center;justify-content:center;width:100%}
.gx-grid .datagrid-cell-check input,.gx-grid .datagrid-header-check input{appearance:auto!important;-webkit-appearance:checkbox!important;display:inline-block!important;width:16px!important;height:16px!important;min-width:16px;flex:none;margin:0!important;padding:0!important;border:0!important;background:none!important;accent-color:var(--g-em);cursor:pointer}
.gx-grid .tabulator-row.datagrid-row-editing{background:#FFFBEB}
.gx-grid .tabulator-row.datagrid-row-editing .tabulator-cell{overflow:visible;padding-top:2px;padding-bottom:2px}
.gx-grid .datagrid-editable{width:100%}
.gx-grid .gx-g-editor{width:100%;box-sizing:border-box;height:26px;padding:2px 6px;border:1px solid #CBD5E1;border-radius:6px;font:inherit;background:#fff}
.gx-grid .gx-g-editor:focus{outline:2px solid rgba(16,185,129,.35);border-color:var(--g-em)}
.gx-grid textarea.gx-g-editor{height:auto;min-height:44px}
.gx-grid input[type=checkbox].gx-g-editor{width:16px;height:16px}
.gx-grid .gx-g-editor.validatebox-invalid{border-color:#EF4444;background:#FEF2F2}
.gx-grid .tabulator-row.tabulator-group{background:#F8FAFC;border-top:1px solid var(--g-line);border-bottom:1px solid var(--g-line);color:#0F172A;font-weight:700;padding:6px 8px;min-height:0}
.gx-grid .tabulator-row.tabulator-group:hover{background:#F1F5F9}
.gx-grid .tabulator-row.tabulator-group .datagrid-group-title{color:inherit}
.gx-grid--cards .tabulator-row.tabulator-group{border:0;border-radius:0;box-shadow:none;background:transparent!important;padding:10px 4px 4px;margin:0}
.gx-grid--cards .tabulator-row .tabulator-cell.gx-g-check{display:flex!important;justify-content:flex-end}
.gx-grid--cards .tabulator-row.datagrid-row-editing .tabulator-cell .datagrid-editable{max-width:60%}
.gx-grid .gx-gcheckall{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;flex:none}
.gx-grid .gx-gcheckall .datagrid-header-check{display:inline-flex;width:auto}
.gx-grid__mbar{flex-wrap:wrap}

/* detailview: dettaglio sotto la riga (testo normale, a capo come in EasyUI) */
.gx-grid .gx-g-detail { display: block; white-space: normal; cursor: default; text-align: left; }
.gx-grid .gx-g-exp .datagrid-row-expander { vertical-align: middle; }

/* piè di pagina (showFooter): righe footer di EasyUI nella riga dei calcoli, con il testo delle righe normali */
.gx-grid .tabulator-row.tabulator-calcs { color: #333; background: #fafafa; font-weight: normal; }
.gx-grid .tabulator-calcs .tabulator-cell { vertical-align: top; }
.gx-grid .gx-g-footer-line { padding: 0; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* modifica per cella (enableCellEditing): la cella corrente come in EasyUI */
.gx-grid .tabulator-cell.gx-g-cell-current {
    background: #0081c2;
    color: #fff;
}
.gx-grid .tabulator-row.datagrid-row-editing .tabulator-cell.gx-g-cell-current {
    background: transparent;
    color: inherit;
}
