/* Danh sách bệnh nhân là một màn hình toàn trang độc lập; không thay đổi bản in báo cáo. */
@media screen {
  #gb-report-app .gb-list-header { grid-template-columns:minmax(0,1fr) auto; }
  #gb-report-app .gb-list-action { width:auto !important; display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  #gb-report-app .gb-list-action .button { width:auto !important; margin:0; padding:8px 12px; font-size:14px; white-space:nowrap; }

  html.gb-directory-open,
  body.gb-directory-open { overflow:hidden !important; }

  #gb-patient-directory-screen[hidden],
  #gb-patient-directory-screen [hidden] { display:none !important; }

  #gb-patient-directory-screen {
    position:fixed;
    inset:0;
    z-index:2147483000;
    width:100vw;
    height:100vh;
    height:100dvh;
    background:#eef5f2;
    color:#1d3f36;
    font-family:"Segoe UI",Arial,sans-serif;
    overflow:hidden;
  }

  #gb-patient-directory-screen .gb-directory-shell {
    width:100%;
    height:100%;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    background:#f8fbfa;
  }

  #gb-patient-directory-screen .gb-directory-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:14px 22px;
    border-bottom:1px solid #c8ddd5;
    background:#ffffff;
    box-shadow:0 2px 10px rgba(26,72,59,.08);
  }

  #gb-patient-directory-screen .gb-directory-heading { min-width:0; }
  #gb-patient-directory-screen .gb-directory-heading h2 {
    margin:0;
    font-size:22px;
    line-height:1.2;
    letter-spacing:.02em;
    color:#145f50;
  }
  #gb-patient-directory-screen .gb-directory-heading p {
    margin:4px 0 0;
    font-size:13px;
    color:#5b766e;
  }

  #gb-patient-directory-screen .gb-directory-back {
    flex:0 0 auto;
    min-height:40px;
    margin:0;
    padding:8px 14px;
    border:1px solid #9fc9bb;
    border-radius:8px;
    background:#fff;
    color:#145f50;
    font-weight:650;
    white-space:nowrap;
    cursor:pointer;
  }

  #gb-patient-directory-screen .gb-directory-content {
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
    gap:10px;
    padding:14px 20px 18px;
    overflow:hidden;
  }

  #gb-patient-directory-screen .gb-directory-filters {
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:10px;
    padding:12px;
    border:1px solid #c9ddd6;
    border-radius:10px;
    background:#fff;
  }

  #gb-patient-directory-screen .gb-directory-filters label {
    display:grid;
    gap:4px;
    min-width:150px;
    font-size:13px;
    font-weight:600;
    color:#315c50;
  }

  #gb-patient-directory-screen .gb-directory-filters :is(input,select) {
    min-height:40px;
    box-sizing:border-box;
    padding:7px 9px;
    border:1px solid #b7dacf;
    border-radius:7px;
    background:#fff;
    color:#193e38;
    font:14px "Segoe UI",Arial,sans-serif;
  }

  #gb-patient-directory-screen .gb-directory-filters select { min-width:220px; max-width:320px; }
  #gb-patient-directory-screen .gb-directory-submit { min-height:40px; margin:0; padding:8px 15px; border-radius:7px; }

  #gb-patient-directory-screen .gb-directory-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    min-height:26px;
  }

  #gb-patient-directory-screen :is(.gb-directory-hint,.gb-directory-status) {
    margin:0;
    font-size:13px;
    line-height:1.4;
    color:#496b62;
  }
  #gb-patient-directory-screen .gb-directory-status { font-weight:650; text-align:right; }

  #gb-patient-directory-screen .gb-directory-scroll {
    min-height:0;
    height:100%;
    overflow:auto;
    border:1px solid #c7ddd3;
    border-radius:10px;
    background:#fff;
  }

  #gb-patient-directory-screen table {
    width:100%;
    min-width:930px;
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
    font:14px/1.4 "Segoe UI",Arial,sans-serif;
  }

  #gb-patient-directory-screen .gd-no { width:52px; }
  #gb-patient-directory-screen .gd-type { width:125px; }
  #gb-patient-directory-screen .gd-name { width:205px; }
  #gb-patient-directory-screen .gd-age { width:58px; }
  #gb-patient-directory-screen .gd-gender { width:62px; }
  #gb-patient-directory-screen .gd-date { width:115px; }

  #gb-patient-directory-screen :is(th,td) {
    padding:9px 10px;
    border:0;
    border-bottom:1px solid #dce8e1;
    text-align:left;
    vertical-align:top;
    white-space:normal;
    overflow-wrap:break-word;
  }

  #gb-patient-directory-screen th {
    position:sticky;
    top:0;
    z-index:2;
    background:#166b5a;
    color:white;
    font-weight:700;
    font-size:13px;
  }

  #gb-patient-directory-screen td { background:#fff; color:#203d33; }
  #gb-patient-directory-screen tbody tr:nth-child(even) td { background:#f3f8f5; }
  #gb-patient-directory-screen tbody tr:hover td { background:#eaf5f0; }

  #gb-patient-directory-screen :is(th,td):is(:nth-child(1),:nth-child(4),:nth-child(5),:nth-child(7)) {
    text-align:center;
    white-space:nowrap;
  }

  #gb-patient-directory-screen a {
    color:#07634f;
    font-size:15px;
    font-weight:750;
    text-transform:uppercase;
    text-decoration:underline;
    text-underline-offset:2px;
  }

  #gb-patient-directory-screen :is(a,input,select,button,.gb-directory-scroll):focus-visible {
    outline:2px solid #128273;
    outline-offset:2px;
  }

  .gb-report-full .gb-patient-card[id^="gb-patient-"] { scroll-margin-top:45px; }
  .gb-report-full .gb-patient-card[id^="gb-patient-"]:target { outline:2px solid #168270; outline-offset:2px; }
}

@media screen and (max-width:1023px) {
  #gb-report-app .gb-list-action { justify-content:flex-start; }
  #gb-report-app .gb-list-action .button { min-height:44px; flex:0 1 auto; }

  #gb-patient-directory-screen .gb-directory-header {
    align-items:flex-start;
    padding:11px 12px;
  }
  #gb-patient-directory-screen .gb-directory-heading h2 { font-size:18px; }
  #gb-patient-directory-screen .gb-directory-heading p { display:none; }
  #gb-patient-directory-screen .gb-directory-back {
    min-height:42px;
    padding:7px 10px;
    font-size:13px;
  }

  #gb-patient-directory-screen .gb-directory-content {
    padding:10px;
    gap:8px;
  }

  #gb-patient-directory-screen .gb-directory-filters {
    padding:9px;
    gap:8px;
  }

  #gb-patient-directory-screen .gb-directory-filters label { min-width:0; flex:1 1 135px; }
  #gb-patient-directory-screen .gb-directory-filters :is(input,select) {
    min-height:44px;
    width:100%;
    max-width:100%;
    font-size:16px;
  }
  #gb-patient-directory-screen .gb-directory-filters select { min-width:0; }
  #gb-patient-directory-screen .gb-directory-submit { min-height:44px; flex:1 1 150px; }

  #gb-patient-directory-screen .gb-directory-meta {
    display:block;
  }
  #gb-patient-directory-screen .gb-directory-hint { display:none; }
  #gb-patient-directory-screen .gb-directory-status { text-align:left; }

  #gb-patient-directory-screen table { min-width:820px; }
}

@media screen and (max-width:600px) {
  #gb-patient-directory-screen .gb-directory-heading h2 { font-size:16px; }
  #gb-patient-directory-screen .gb-directory-back { font-size:12px; padding:7px 9px; }
  #gb-patient-directory-screen .gb-directory-content { grid-template-rows:auto auto minmax(0,1fr); }
  #gb-patient-directory-screen .gb-directory-filters label { flex:1 1 calc(50% - 8px); }
  #gb-patient-directory-screen .gb-directory-filters label:nth-child(3) { flex-basis:100%; }
  #gb-patient-directory-screen .gb-directory-submit { flex-basis:100%; }
}
