


html { -webkit-text-size-adjust: 100%; }
:root { --muted: #5B6472; }                     
.text-muted { color: #5B6472 !important; }
:focus-visible { outline: 2px solid #2563EB; outline-offset: 2px; }


.badge, .badge-stato, .badge-tipo, .badge-sincro, .pag-badge, .targa-badge,
.badge-contattato, .badge-status-ok, .badge-status-err, .stat-chip .stat-val, .fonte-badge,
[class^="badge-"], [class*=" badge-"] { white-space: nowrap; }


@media (min-width: 641px) { .rev-table td.c-pag { white-space: nowrap; } }


.app-table thead th { font-size: .74rem; color: #4B5563; letter-spacing: .4px; }
.app-table td { font-size: .88rem; line-height: 1.35; }

.app-table thead th, .app-table td { padding-left: .5rem; padding-right: .5rem; }
.app-table thead th:first-child, .app-table td:first-child { padding-left: 1rem; }
.app-table thead th:last-child, .app-table td:last-child { padding-right: 1rem; }

@media (min-width: 992px) {
  .app-table thead tr:has(th[style*="width"]) th:not([style*="width"]):not(:empty) { min-width: 170px; }
}

@media (min-width: 768px) {
  .table-responsive > .app-table td.ui-actions:last-child {
    position: sticky; right: 0; z-index: 1; background: #fff;
    box-shadow: -8px 0 8px -8px rgba(17, 24, 39, .18);
  }
  .table-responsive > .app-table tr:hover td.ui-actions:last-child { background: #FAFBFC; }
  .table-responsive > .app-table thead th:last-child:empty { position: sticky; right: 0; z-index: 1; background: var(--bg, #F2F3F5); }
}
.app-table td .amt, .app-table td.amt { white-space: nowrap; }

.app-table td.amt > div > span { display: block; margin-left: 0 !important; }
.table-responsive { -webkit-overflow-scrolling: touch; }


.form-control::placeholder, input::placeholder, textarea::placeholder { color: #8A93A0; opacity: 1; }


.ui-field { display: contents; }


.cal-grid { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
.cal-grid > * { min-width: 0; }
.cal-grid > * > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }


.btn-action { min-width: 32px; min-height: 32px; }


.modal-body { overscroll-behavior: contain; }


@media (max-width: 767.98px) {

  
  .app-nav { padding: 0 .6rem !important; gap: .4rem !important; }
  .app-nav-brand span { display: none; }
  .nav-pill-btn { padding: .32rem .6rem; }
  .app-nav > .nav-icon-btn { display: none; }

  
  input:not([type=checkbox]):not([type=radio]), select, textarea,
  .form-control, .form-select { font-size: 16px !important; }
  .form-control, .form-select { min-height: 42px; }
  .btn:not(.btn-sm):not(.btn-close) { min-height: 42px; }

  
  .ft-tab-bar, .nav-tabs, .nav-pills {
    max-width: 100%; overflow-x: auto; flex-wrap: nowrap !important;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  .ft-tab-bar::-webkit-scrollbar, .nav-tabs::-webkit-scrollbar, .nav-pills::-webkit-scrollbar { display: none; }
  .ft-tab-btn, .nav-tabs .nav-link, .nav-pills .nav-link { flex: 0 0 auto; white-space: nowrap; }

  
  .filters-bar { display: grid !important; grid-template-columns: 1fr 1fr; gap: .5rem !important; align-items: end; }
  .filters-bar > * { width: 100% !important; min-width: 0 !important; margin: 0 !important; }
  .filters-bar > .filter-label { width: auto !important; }
  .filters-bar > .ui-field { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
  .filters-bar > .ui-field > * { width: 100% !important; min-width: 0 !important; margin: 0 !important; flex: 0 0 auto !important; }
  .filters-bar > .ui-field > .filter-label { font-size: .7rem; }
  
  .filters-bar > input[type=text], .filters-bar > input[type=search],
  .filters-bar > :has(> input[type=text]), .filters-bar > :has(> input[type=search]) { grid-column: 1 / -1; }

  
  .sec-header { flex-wrap: wrap; row-gap: .6rem; }
  .sec-header > .ms-auto { margin-left: 0 !important; width: 100%; flex-wrap: wrap; }

  
  .dash-kpi-row { grid-template-columns: 1fr 1fr !important; gap: .6rem !important; padding: 0 .75rem !important; }
  .dash-kpi { padding: .8rem .8rem .75rem !important; }
  .dash-kpi-head { flex-direction: column; align-items: flex-start; gap: .45rem; margin-bottom: .35rem; }
  .dash-kpi-icon { width: 34px; height: 34px; font-size: .95rem; }
  .dash-kpi-label { font-size: .74rem; letter-spacing: .03em; line-height: 1.25; }
  .dash-kpi-sub { font-size: .72rem; line-height: 1.3; margin-top: .2rem !important; }
  .dash-kpi-value { font-size: 1.25rem; }

  
  table.ui-cards { min-width: 0 !important; width: 100% !important; border: 0; }
  table.ui-cards thead { display: none; }
  table.ui-cards, table.ui-cards tbody { display: block; }
  table.ui-cards tbody tr {
    display: block; position: relative;
    background: #fff; border: 1px solid #E4E6EA; border-radius: 12px;
    margin: 0 0 .6rem; padding: .55rem .8rem;
    box-shadow: 0 1px 2px rgba(17, 24, 39, .05);
  }
  table.ui-cards tbody tr:hover { background: #fff; }
  table.ui-cards tbody tr.row-tipo-inc { border-left: 4px solid var(--green, #16A34A); }
  table.ui-cards tbody tr.row-tipo-pag { border-left: 4px solid var(--red, #DC2626); }
  table.ui-cards tbody td {
    display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; column-gap: .5rem; row-gap: .2rem;
    overflow-wrap: anywhere; word-break: break-word;
    padding: .28rem 0 !important; border: 0 !important; background: transparent !important;
    text-align: right !important; max-width: none !important; width: auto !important;
    white-space: normal !important; overflow: visible !important; font-size: .92rem;
  }
  table.ui-cards tbody td::before {
    content: attr(data-label); flex: 0 0 auto; max-width: 42%; margin-right: auto;
    text-align: left; font-size: .7rem; font-weight: 700; letter-spacing: .4px;
    text-transform: uppercase; color: #6B7280;
  }
  table.ui-cards tbody td > * { max-width: 100%; }
  
  table.ui-cards tbody td.ui-long { display: block; text-align: left !important; }
  table.ui-cards tbody td.ui-long::before { display: block; max-width: none; margin-bottom: .15rem; }
  table.ui-cards tbody td.ui-long * { white-space: normal !important; max-width: 100% !important; }
  
  table.ui-cards tbody td.ui-first { font-weight: 700; font-size: .95rem; border-bottom: 1px solid #F0F1F3 !important; padding-bottom: .45rem !important; margin-bottom: .2rem; }
  table.ui-cards tbody td[data-label=""] { justify-content: flex-end; }
  table.ui-cards tbody td[data-label=""]::before { display: none; }
  table.ui-cards tbody td.ui-empty { display: none !important; }
  table.ui-cards tbody td.ui-actions { justify-content: flex-end; gap: .4rem; padding-top: .45rem !important; }
  table.ui-cards tbody td.ui-actions::before { display: none; }
  table.ui-cards tbody td[colspan] { display: block; text-align: center !important; }
  table.ui-cards tbody td[colspan]::before { display: none; }
  table.ui-cards tbody tr:has(> td[colspan]:only-child) { box-shadow: none; }
  
  .ui-cards-wrap { background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible !important; }
  .ui-cards-wrap > .table-responsive, .table-responsive:has(> table.ui-cards) { overflow: visible !important; }
}


:root {
  --ui-radius: 14px;
  --ui-border: #E5E7EB;
  --ui-shadow: 0 1px 2px rgba(17,24,39,.04), 0 4px 14px rgba(17,24,39,.05);
  --ui-shadow-hover: 0 2px 4px rgba(17,24,39,.06), 0 10px 24px rgba(17,24,39,.08);
}


.sec-header {
  background: #fff; border: 1px solid var(--ui-border); border-radius: var(--ui-radius);
  box-shadow: var(--ui-shadow); padding: .9rem 1.1rem; gap: .9rem !important; margin-bottom: 1.1rem !important;
}
.sec-header-icon { width: 44px !important; height: 44px !important; border-radius: 12px !important; font-size: 1.25rem !important;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.08); }
.sec-header-text h5 { font-size: 1.2rem !important; font-weight: 800 !important; letter-spacing: -.2px; margin: 0; color: #111; }
.sec-header-text small { font-size: .82rem !important; }
.sec-header .btn { border-radius: 10px; font-weight: 600; }


.btn-primary { background: #111 !important; border-color: #111 !important; color: #086AD8 !important; }
.btn-primary:hover, .btn-primary:focus { background: #2A2A2A !important; border-color: #2A2A2A !important; color: #086AD8 !important; }
.btn-outline-primary { color: #111 !important; border-color: #D1D5DB !important; background: #fff; }
.btn-outline-primary:hover { background: #111 !important; border-color: #111 !important; color: #086AD8 !important; }
.btn-outline-success { color: #15803D !important; border-color: #BBF7D0 !important; background: #F0FDF4 !important; }
.btn-outline-success:hover { background: #15803D !important; border-color: #15803D !important; color: #fff !important; }
.btn-outline-secondary { border-color: #D1D5DB !important; color: #374151 !important; background: #fff; }
.btn-outline-secondary:hover { background: #F3F4F6 !important; color: #111 !important; }
.btn-reset { border-radius: 10px !important; background: #fff !important; border-color: #E5E7EB !important; color: #374151 !important; font-weight: 600; min-height: 34px; }
.btn-reset:hover { background: #F9FAFB !important; border-color: #9CA3AF !important; color: #111 !important; }
.btn-reset.ui-icon-only { padding: .38rem .6rem !important; }


.ft-tab-bar, .pres-tabs-bar {
  background: #fff !important; border: 1px solid var(--ui-border) !important; border-radius: 12px !important;
  padding: 4px !important; gap: 4px !important; box-shadow: var(--ui-shadow); width: fit-content;
}
.ft-tab-btn, .pres-tab { border-radius: 9px !important; font-weight: 700 !important; font-size: .84rem !important; padding: .45rem 1.05rem !important; color: #4B5563 !important; }
.ft-tab-btn:hover:not(.active), .pres-tab:hover:not(.active) { background: #F3F4F6 !important; color: #111 !important; }
.ft-tab-btn.active, .pres-tab.active { background: #111 !important; color: #086AD8 !important; box-shadow: none !important; }


.stats-strip { gap: .7rem !important; }
.stats-strip .stat-chip, .home-stat-card, .pres-stats-card {
  background: #fff !important; border: 1px solid var(--ui-border) !important; border-radius: var(--ui-radius) !important;
  box-shadow: var(--ui-shadow) !important; padding: .8rem 1rem !important; text-align: left !important;
  border-left: 4px solid var(--chip-accent, #086AD8) !important; transition: box-shadow .15s;
}
.stats-strip .stat-chip { min-width: 170px; }
.stats-strip .stat-chip:hover, .home-stat-card:hover { box-shadow: var(--ui-shadow-hover) !important; }
.stats-strip .stat-label, .home-stat-card .hsc-label, .pres-stats-card .pres-stats-label {
  font-size: .68rem !important; font-weight: 800 !important; letter-spacing: .06em !important; text-transform: uppercase; color: #6B7280 !important;
}
.stats-strip .stat-val, .home-stat-card .hsc-val, .pres-stats-card .pres-stats-val {
  font-size: 1.35rem !important; font-weight: 800 !important; letter-spacing: -.3px; line-height: 1.2; margin-top: .15rem;
}
.home-stats-row { justify-content: flex-start !important; max-width: none !important; gap: .7rem !important; }
.home-stat-card { flex: 1 1 210px !important; max-width: 300px !important; min-width: 180px !important; display: grid !important;
  grid-template-columns: 40px 1fr; column-gap: .75rem; align-items: center; }
.home-stat-card .hsc-icon { grid-row: 1 / span 3; width: 40px; height: 40px; border-radius: 11px; background: #F3F4F6;
  display: flex !important; align-items: center; justify-content: center; font-size: 1.15rem !important; margin: 0 !important; }
.home-stat-card > :not(.hsc-icon) { grid-column: 2; }
.pres-stats-card { min-width: 130px !important; }


.app-card { border-radius: var(--ui-radius) !important; border-color: var(--ui-border) !important; box-shadow: var(--ui-shadow) !important; }
.app-table thead th { background: #F9FAFB; }
.filters-bar {
  border-radius: var(--ui-radius) !important; border-color: var(--ui-border) !important; box-shadow: var(--ui-shadow);
  padding: .75rem 1rem !important; gap: .55rem !important;
}
.filters-bar .form-control, .filters-bar .form-select { border-radius: 10px !important; background-color: #F9FAFB !important; border-color: #E5E7EB !important; min-height: 36px; }
.filters-bar .form-control:focus, .filters-bar .form-select:focus { background-color: #fff !important; border-color: #111 !important; box-shadow: 0 0 0 3px rgba(8,106,216,.35) !important; }
.filters-bar .filter-label { font-size: .68rem !important; font-weight: 800 !important; letter-spacing: .06em; color: #6B7280 !important; }

.ui-search { position: relative; flex: 1 1 240px; max-width: 340px; min-width: 200px; }
.ui-search > i { position: absolute; left: .7rem; top: 50%; transform: translateY(-50%); color: #9CA3AF; pointer-events: none; z-index: 1; }
.ui-search > input { padding-left: 2.1rem !important; width: 100% !important; }
.ui-periodo { min-width: 150px; font-weight: 600; width: auto !important; }

.ui-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: -.35rem 0 .9rem; }
.ui-chips:empty { display: none; }
.ui-chip { display: inline-flex; align-items: center; gap: .35rem; background: #FFFBEB; border: 1px solid #FDE68A; color: #78350F;
  border-radius: 999px; padding: .18rem .3rem .18rem .65rem; font-size: .76rem; font-weight: 600; }
.ui-chip b { font-weight: 800; }
.ui-chip button { border: 0; background: rgba(120,53,15,.12); color: #78350F; width: 20px; height: 20px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; line-height: 1; padding: 0; }
.ui-chip button:hover { background: #78350F; color: #fff; }
.ui-chip-reset { border: 0; background: transparent; color: #6B7280; font-size: .76rem; font-weight: 700; text-decoration: underline; padding: 0 .2rem; }
.ui-filtri-toggle { display: none; }


.tip-chip { display: inline-block; white-space: nowrap; font-size: .74rem; font-weight: 700; border-radius: 999px; padding: .12rem .55rem;
  background: #F3F4F6; color: #374151; border: 1px solid transparent; }
.tip-chip.t-carr { background: #FFF7ED; color: #C2410C; border-color: #FED7AA; }
.tip-chip.t-mecc { background: #EFF6FF; color: #1D4ED8; border-color: #BFDBFE; }
.tip-chip.t-rev  { background: #F0FDFA; color: #0F766E; border-color: #99F6E4; }
.tip-chip.t-veic { background: #F5F3FF; color: #6D28D9; border-color: #DDD6FE; }
.tip-chip.t-lav  { background: #ECFEFF; color: #0E7490; border-color: #A5F3FC; }
.tip-chip.t-altri{ background: #F3F4F6; color: #4B5563; border-color: #E5E7EB; }


.sec-home.dash-home-v2 { min-height: 0 !important; justify-content: flex-start !important; padding-top: 1.5rem !important; }
.dash-kpi { border-radius: var(--ui-radius) !important; box-shadow: var(--ui-shadow) !important; transition: box-shadow .15s, transform .15s; }
.dash-kpi:hover { box-shadow: var(--ui-shadow-hover) !important; transform: translateY(-1px); }


#secPresenze { max-width: 1500px; margin: 0 auto; padding: 1.5rem 1.25rem; }
#secPresenze .pres-nav-bar { border-radius: var(--ui-radius) !important; border: 1px solid var(--ui-border); box-shadow: var(--ui-shadow); background: #fff; }


@media (max-width: 1600px) and (min-width: 768px) {
  .app-nav { gap: .5rem !important; }
  .app-nav .nav-pill-btn { padding: .32rem .62rem !important; font-size: .8rem !important; }
  .app-nav .nav-stats { display: none !important; }
}
@media (max-width: 1280px) and (min-width: 768px) {
  .app-nav .nav-pill-btn { padding: .3rem .5rem !important; font-size: .76rem !important; gap: .25rem !important; }
  .app-nav-brand span { display: none; }
}


@media (max-width: 767.98px) {
  .sec-header { padding: .75rem .85rem; }
  .ft-tab-bar, .pres-tabs-bar { width: 100%; }
  .ui-search { max-width: none; grid-column: 1 / -1; }
  .ui-filtri-toggle { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; grid-column: 1 / -1;
    border: 1px solid #E5E7EB; background: #fff; border-radius: 10px; min-height: 42px; font-weight: 700; color: #111; }
  .ui-filtri-toggle .n { background: #111; color: #086AD8; border-radius: 999px; padding: 0 .45rem; font-size: .74rem; }
  .filters-bar.ui-collapsed > *:not(.ui-search):not(.ui-filtri-toggle):not(.ms-auto) { display: none !important; }
  .filters-bar > .ms-auto { grid-column: 1 / -1; justify-content: flex-start; }
  .ui-chips { margin-top: -.2rem; }

  
  table.ui-cards tbody tr { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: .8rem; padding: .6rem .8rem !important; }
  table.ui-cards tbody td { display: block !important; text-align: left !important; padding: .22rem 0 !important; min-width: 0; }
  table.ui-cards tbody td::before { display: block !important; max-width: none !important; margin: 0 0 .05rem !important; font-size: .64rem !important; }
  table.ui-cards tbody td.ui-first, table.ui-cards tbody td.ui-long, table.ui-cards tbody td.ui-actions,
  table.ui-cards tbody td[colspan] { grid-column: 1 / -1; }
  table.ui-cards tbody td.ui-first::before { display: none !important; }
  table.ui-cards tbody td.ui-actions { display: flex !important; justify-content: flex-end; border-top: 1px solid #F0F1F3 !important; margin-top: .25rem; padding-top: .45rem !important; }
  table.ui-cards tbody td.ui-actions::before { display: none !important; }
  table.ui-cards tbody td.ui-empty { display: none !important; }
  .stats-strip .stat-chip, .home-stat-card { min-width: 0 !important; flex: 1 1 45% !important; }
  .stats-strip .stat-val, .home-stat-card .hsc-val { font-size: 1.1rem !important; }
  #secPresenze { padding: .8rem .6rem; }
}


:root { --kam-ink: #1E2327; --kam-oro: #086AD8; --kam-oro-dk: #0757B3; --kam-crema: #EEF1F3; }
body { background-color: var(--kam-crema); }
.app-nav { background: var(--kam-ink) !important; border-bottom-color: var(--kam-oro) !important; }
.app-nav-brand span { color: var(--kam-oro) !important; letter-spacing: .2px; }
.app-nav-brand img { border-radius: 8px; }
.kam-demo-badge { display: inline-block; margin-left: .45rem; padding: .05rem .45rem; border-radius: 999px;
  border: 1px solid rgba(8,106,216,.55); color: var(--kam-oro); font-size: .62rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }
