    .table-card {
      border: 1px solid #1c1a1d1f;
      border-radius: 10px;
      overflow: hidden;
      background: #fff;
    }

    /* Desktop / Tablet table */
    table {
      width:100%;
      border-collapse: separate;
      border-spacing: 0;
    }

    thead th{
      background-color: #109ea5;
      color:#ffffff;
      text-align:left;
      padding: 14px 16px;
      font-size: 14px;
      line-height: 1.3;
      position: sticky; /* nice on scroll (supported in modern browsers) */
      top: 0;
      z-index: 1;
    }

    tbody td{
      padding: 14px 16px;
      vertical-align: top;
      border-top: 1px solid #1c1a1d1f;
      font-size: 14px;
      line-height: 1.65;
      color: #1c1a1d;
    }

    tbody tr:nth-child(odd){ background-color: #f2f2f2; }
    tbody tr:nth-child(even){ background-color: #ffffff; }

    .col-topic{
      width: 22%;
      font-weight: 700;
      white-space: normal;
    }

    /* ul{
      margin: 0;
      padding-left: 18px;
    }
    li{ margin: 0 0 6px; }
    li:last-child{ margin-bottom: 0; } */

    /* Mobile: stack rows as cards */
    @media (max-width: 820px){
      body { padding: 16px; }

      thead {
        display: none;
      }

      table, tbody, tr, td{
        display: block;
      }

      tbody tr{
        border-top: 1px solid #1c1a1d1f;
        padding: 10px 12px;
      }

      tbody td{
        border: 0;
        padding: 10px 10px 12px;
      }

      tbody td + td{
        margin-top: 6px;
      }

      /* label each cell */
      tbody td[data-label]::before{
        content: attr(data-label);
        display: inline-block;
        font-weight: 800;
        margin-bottom: 6px;
      }

      .col-topic{
        width: 100%;
        font-weight: 800;
        font-size: 15px;
      }

      /* small accent header per row */
      tbody td.col-topic{
        border-radius: 10px;
        padding: 10px 12px;
        margin: 2px 0 10px;
        background-color: #109ea5;
        color: #ffffff !important;
      }

      /* keep zebra feel but softer as cards */
      tbody tr:nth-child(odd){ background-color: #f2f2f2; }
      tbody tr:nth-child(even){ background-color: #ffffff; }
    }
    .noted {
      margin:0;
      padding:12px 16px;
      font-size:12px;
      opacity:.75;
      border-top:1px solid #ebebeb;
      text-align: left;
      background-color: #f2f2f2;
    }