/* Infirise Technologies (infirise.com): SLA and finance tables. Below 720px each row becomes a card. */

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #ffffff; }
.tbl { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.tbl th, .tbl td { padding: 14px 18px; text-align: left; }
.tbl tbody tr { border-top: 1px solid var(--line); }

.sla thead tr { background: var(--navy); color: #ffffff; }
.sla thead th { font-weight: 600; }
.sla tbody th { color: var(--p); font-weight: 700; }

.fin thead th, .fin thead td { padding: 16px 18px; background: var(--soft); color: var(--muted); font-weight: 600; }
.fin thead .fin-us { background: var(--azure); color: #ffffff; font-weight: 700; }
.fin tbody th { color: var(--navy); font-weight: 600; }
.fin tbody td { color: var(--muted); }
.fin tbody .fin-us { background: #F3F8FC; color: var(--ink); font-weight: 500; }

@media (max-width: 719px) {
  .table-wrap { overflow: visible; border: 0; border-radius: 0; background: none; }
  .tbl { min-width: 0; }
  .tbl, .tbl tbody, .tbl tr, .tbl th, .tbl td { display: block; }
  .tbl thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .tbl tbody { display: flex; flex-direction: column; gap: 12px; }
  .tbl tbody tr { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #ffffff; }
  .tbl th, .tbl td { padding: 0; }
  .tbl td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: var(--muted);
    font: 600 11px/1.4 var(--font-body);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .sla tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; border-top: 4px solid var(--p); }
  .sla tbody th { grid-column: 1 / -1; font: 700 17px/1.3 var(--font-display); }
  .sla tbody td:nth-of-type(1) {
    grid-column: 1 / -1;
    margin-bottom: 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  /* Label and value share two subgrid rows, so values line up even when one label wraps. */
  .sla td[data-label] { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 2px; justify-items: start; }
  .sla td[data-label]::before { align-self: end; margin-bottom: 0; }

  .fin tbody tr { display: flex; flex-direction: column; gap: 10px; }
  .fin tbody th { font: 700 17px/1.3 var(--font-display); }
  .fin tbody td { padding: 10px 12px; border-radius: 10px; background: var(--soft); }
  .fin tbody .fin-us { border: 1px solid #D6E4F2; }
  .fin tbody .fin-us::before { color: var(--azure); }
}
