/* ===== Lịch hẹn B — "Bản sắc" (anh duyệt hình 10/10/2026) =====
   Mọi lớp mang tiền tố `lh-` (app.css là một tệp toàn cục; `.so .trong .chon .the .hang` đã có chủ). Không viền: phân vùng bằng
   mảng màu. Mọi màu qua token; màu mới thì trộn token bằng color-mix, không thêm mã màu. Icon nét (Lucide, ISC) vẽ bằng `mask`
   tô `currentColor`. Bản sắc chỉ ở vùng KHÔNG chứa dữ liệu: tờ lịch bloc (ngày âm), ô ấn triện số ghế, mây cuộn. */
:root{
  /* màu trạng thái / loại hẹn cần chú ý của lịch (trước là mã hex trong lichhen.js) — mượn các sắc đã có của bộ SOP */
  --lh-tt-den:var(--sop-lien-ket); --lh-tt-den-nhat:var(--sop-lien-ket-nhat); --lh-tt-lam:var(--sop-p3); --lh-tt-lam-nhat:var(--sop-p3-nhat);
  --lh-qt-tu-van:var(--canh); --lh-qt-implant:var(--loi); --lh-qt-su:var(--sop-p3); --lh-qt-nieng:var(--sop-p4); --lh-qt-moi:var(--sop-lien-ket);
  --lhi-trai:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E");
  --lhi-phai:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
  --lhi-tim:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14z'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
  --lhi-cong:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
  --lhi-canh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  --lhi-khay:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E");
  --lhi-loc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 4h-7'/%3E%3Cpath d='M10 4H3'/%3E%3Cpath d='M21 12h-9'/%3E%3Cpath d='M8 12H3'/%3E%3Cpath d='M21 20h-5'/%3E%3Cpath d='M12 20H3'/%3E%3Cpath d='M14 2v4'/%3E%3Cpath d='M8 10v4'/%3E%3Cpath d='M16 18v4'/%3E%3C/svg%3E");
  --lhi-gon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16'/%3E%3Cpath d='M4 9.7h16'/%3E%3Cpath d='M4 14.3h16'/%3E%3Cpath d='M4 19h16'/%3E%3C/svg%3E");
  --lhi-vua:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 18h16'/%3E%3C/svg%3E");
  --lhi-thoang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M4 17h16'/%3E%3C/svg%3E");
  --lhi-xong:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.1V12a10 10 0 1 1-5.9-9.1'/%3E%3Cpath d='m9 11 3 3L22 4'/%3E%3C/svg%3E");
  --lhi-xn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --lhi-cho:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
  --lhi-den:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M9 3a4 4 0 1 0 0 8 4 4 0 0 0 0-8z'/%3E%3Cpath d='m16 11 2 2 4-4'/%3E%3C/svg%3E");
  --lhi-lam:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
  --lhi-huy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='m9 9 6 6'/%3E%3C/svg%3E");
  --lhi-vang:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M9 3a4 4 0 1 0 0 8 4 4 0 0 0 0-8z'/%3E%3Cpath d='m17 8 5 5'/%3E%3Cpath d='m22 8-5 5'/%3E%3C/svg%3E");
  --lhi-anh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z'/%3E%3Cpath d='M12 10a3 3 0 1 0 0 6 3 3 0 0 0 0-6z'/%3E%3C/svg%3E");
  --lhi-hop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7.5 4.27 9 5.15'/%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpath d='m3.3 7 8.7 5 8.7-5'/%3E%3Cpath d='M12 22V12'/%3E%3C/svg%3E");
  --lhi-keo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h.01'/%3E%3Cpath d='M9 12h.01'/%3E%3Cpath d='M9 18h.01'/%3E%3Cpath d='M15 6h.01'/%3E%3Cpath d='M15 12h.01'/%3E%3Cpath d='M15 18h.01'/%3E%3C/svg%3E");
  --lhi-luoi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M5 4h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M10 4v18'/%3E%3Cpath d='M16 10v12'/%3E%3C/svg%3E");
  --lhi-ds:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13'/%3E%3Cpath d='M8 12h13'/%3E%3Cpath d='M8 18h13'/%3E%3Cpath d='M3 6h.01'/%3E%3Cpath d='M3 12h.01'/%3E%3Cpath d='M3 18h.01'/%3E%3C/svg%3E");
  --lhi-lich:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M5 4h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3C/svg%3E");
  --lhi-dong:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
  --lhi-xuong:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.lh-boc{
  --lh-ngoai-ca:color-mix(in srgb, var(--nhan) 6%, var(--nen));
  --lh-may:color-mix(in srgb, var(--nhan) 26%, transparent);
  --lh-cot-gio:56px; --lh-cot-min:168px; --lh-tren:220px;
  position:relative;
}
.lh-i{display:inline-block;width:18px;height:18px;flex:none;background:currentColor;
  -webkit-mask:var(--lhi) center/contain no-repeat;mask:var(--lhi) center/contain no-repeat}
.lh-i-trai{--lhi:var(--lhi-trai)} .lh-i-phai{--lhi:var(--lhi-phai)} .lh-i-tim{--lhi:var(--lhi-tim)} .lh-i-cong{--lhi:var(--lhi-cong)}
.lh-i-canh{--lhi:var(--lhi-canh)} .lh-i-khay{--lhi:var(--lhi-khay)} .lh-i-loc{--lhi:var(--lhi-loc)} .lh-i-gon{--lhi:var(--lhi-gon)}
.lh-i-vua{--lhi:var(--lhi-vua)} .lh-i-thoang{--lhi:var(--lhi-thoang)} .lh-i-xong{--lhi:var(--lhi-xong)} .lh-i-xn{--lhi:var(--lhi-xn)}
.lh-i-luoi{--lhi:var(--lhi-luoi)} .lh-i-ds{--lhi:var(--lhi-ds)} .lh-i-lich{--lhi:var(--lhi-lich)} .lh-i-dong{--lhi:var(--lhi-dong)}
.lh-i-xuong{--lhi:var(--lhi-xuong)}

/* ---------- khung ---------- */
.lh-man{display:flex;flex-direction:column;gap:14px;position:relative}
.lh-man.dang-tai .lh-luoi,.lh-man.dang-tai .lh-ds{opacity:.55;transition:opacity .15s}

/* ---------- đầu trang: MỘT hàng ---------- */
.lh-dau{display:flex;align-items:center;gap:10px;position:relative;z-index:20;padding:2px 0 10px}
.lh-may{pointer-events:none;color:var(--lh-may)}
.lh-may path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
.lh-may-dai{position:absolute;z-index:-1;left:300px;bottom:-14px;width:360px;height:108px;opacity:.75}
.lh-to{position:relative;flex:none;display:flex;align-items:center}
.lh-to-nut{border:0;cursor:pointer;background:var(--the);border-radius:12px;box-shadow:var(--bong-the);
  width:100px;min-height:76px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--chu)}
.lh-to-chu{display:contents}
.lh-to-thang{order:1;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--chu3);white-space:nowrap}
.lh-to-so{order:2;font-size:28px;line-height:1;font-weight:800;color:var(--nhan);font-variant-numeric:tabular-nums}
.lh-to-am{order:3;font-size:10px;color:var(--chu2);white-space:nowrap}
.lh-to-am-du,.lh-to-gio{display:none}
.lh-to input.lh-o-ngay{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
.lh-tieu{flex:none;min-width:0;margin-right:6px}
.lh-tieu h2{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--chu)}
.lh-dem{margin:2px 0 0;font-size:12.5px;color:var(--chu2);white-space:nowrap}

.lh-nut-ic,.lh-nut-chu{border:0;cursor:pointer;background:var(--the);color:var(--chu2);border-radius:12px;height:40px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;position:relative;font:inherit;box-shadow:var(--bong-the)}
.lh-dau button.lh-nut-ic,.lh-khay button.lh-nut-ic{width:40px;padding:0;flex:none}
.lh-dau button.lh-nut-chu,.lh-menu button.lh-nut-chu{padding:0 14px;font-size:14px;font-weight:600;color:var(--chu);white-space:nowrap}
.lh-nut-ic:hover,.lh-nut-chu:hover{background:color-mix(in srgb, var(--nhan) 7%, var(--the))}
.lh-di{display:flex;align-items:center;background:var(--the);border-radius:12px;box-shadow:var(--bong-the);padding:2px;flex:none}
.lh-di .lh-nut-ic,.lh-di .lh-nut-chu{background:transparent;box-shadow:none;height:36px}
.lh-di .lh-nut-chu{padding:0 10px}
.lh-tim{display:flex;align-items:center;gap:8px;background:var(--the);border-radius:12px;box-shadow:var(--bong-the);
  height:40px;padding:0 6px 0 12px;flex:1 1 200px;min-width:120px;max-width:320px;color:var(--chu3)}
.lh-tim input.lh-o-tim{flex:1;min-width:0;border:0;outline:0;background:transparent;box-shadow:none;font:inherit;font-size:14px;color:var(--chu);height:100%;min-height:0;padding:0}
.lh-o-tim::-webkit-search-cancel-button{cursor:pointer}
.lh-tim:focus-within{box-shadow:0 0 0 2px var(--nhan-nhat)}
.lh-tim-moi-ngay{border:0;background:transparent;color:var(--chu3);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;cursor:pointer;padding:0}
.lh-tim-moi-ngay:hover{background:var(--nen);color:var(--nhan)}
.lh-cao{display:flex;background:var(--the);border-radius:12px;box-shadow:var(--bong-the);padding:2px;flex:none}
.lh-dau .lh-cao button.lh-nut-ic{background:transparent;box-shadow:none;width:36px;height:36px;border-radius:10px;color:var(--chu3)}
.lh-dau .lh-cao button.lh-nut-ic[aria-pressed="true"]{background:var(--nhan-nhat);color:var(--nhan)}
.lh-vu{position:relative;flex:none}
.lh-nut-hien.bat{color:var(--nhan)}
.lh-dem-nho{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:var(--nhan-nhat);color:var(--nhan);font-size:11px;font-weight:700;line-height:1}
.lh-nut-canh .lh-dem-nho,.lh-nut-khay .lh-dem-nho{position:absolute;top:-6px;right:-6px;background:var(--loi);color:var(--the)}
.lh-nut-khay .lh-dem-nho{background:var(--nhan)}
.lh-nut-canh.co{color:var(--canh)}
.lh-dau .lh-cta{border:0}
.lh-cta{height:40px;display:inline-flex;align-items:center;gap:8px;flex:none;margin-left:auto;border-radius:12px;padding:0 18px}
.lh-nut-khay,.lh-tabs,.lh-khay-dong,.lh-nut-tim-mo,.lh-dem-ngay{display:none}

/* ---------- menu nổi (Hiển thị · ⚠) ---------- */
.lh-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:340px;max-width:calc(100vw - 32px);
  max-height:min(72vh, 600px);overflow:auto;background:var(--the);border-radius:16px;box-shadow:var(--bong);padding:14px}
.lh-menu h4{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--chu3)}
.lh-menu-nhom{margin:0 0 14px}
.lh-menu-nhom .lh-chips + .lh-chips{margin-top:6px}
.lh-tim-menu{max-width:none;box-shadow:none;background:var(--nen);margin:0 0 14px}
.lh-chips{display:flex;flex-wrap:wrap;gap:6px}
.lh-chon{border:0;background:var(--nen);color:var(--chu2);border-radius:999px;padding:0 12px;min-height:34px;font:inherit;font-size:13px;
  display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.lh-chon[data-so]::after{content:attr(data-so);font-size:11px;color:var(--chu2)}
.lh-chon[aria-pressed="true"]{background:var(--nhan-nhat);color:var(--nhan);font-weight:600}
.lh-chon[aria-pressed="true"]::after{color:var(--nhan)}
.lh-chon:disabled{opacity:.45;cursor:default}
.lh-chu-giai{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--chu2)}
.lh-ky{display:inline-flex;align-items:center;gap:6px;--lh-mau:currentColor}
.lh-ky::before{content:'';width:14px;height:14px;background:currentColor;-webkit-mask:var(--lh-tt) center/contain no-repeat;mask:var(--lh-tt) center/contain no-repeat}
.lh-ky.ky-canh{--lh-tt:var(--lhi-canh)} .lh-ky.ky-cdha{--lh-tt:var(--lhi-anh)} .lh-ky.ky-vt{--lh-tt:var(--lhi-hop)}
.lh-off{display:inline-flex;align-items:center;border-radius:999px;background:var(--nen);padding:6px 12px;font-size:13px;color:var(--chu2)}
.lh-bo-loc{width:100%;box-shadow:none;background:var(--nen)}
.lh-canh-muc{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:0;cursor:pointer;background:var(--nen);
  border-radius:12px;padding:10px 12px;margin:0 0 6px;font:inherit;color:var(--chu)}
.lh-canh-muc .lh-i{color:var(--canh);margin-top:1px}
.lh-canh-muc.loi .lh-i{color:var(--loi)}
.lh-canh-muc b{display:block;font-size:13px}
.lh-canh-muc small{display:block;font-size:12px;color:var(--chu2);margin-top:2px}
.lh-menu-trong{margin:0;font-size:13px;color:var(--chu3)}

/* ---------- thân: lưới + khay ---------- */
.lh-than{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.lh-vung{min-width:0}
.lh-bang{overflow:auto;height:calc(100dvh - var(--lh-tren) - 24px);min-height:360px;border-radius:16px;overscroll-behavior:contain}
.lh-man.che-do-ds .lh-bang{display:none}
.lh-man:not(.che-do-ds) .lh-bang-ds{display:none}
.lh-ds{display:none}

/* LƯỚI — MỘT CSS grid: hàng 1 là đầu cột, mỗi hàng sau là 5 phút (--lh-cao = chiều cao 15 phút theo Gọn/Vừa/Thoáng). */
.lh-luoi{--cao-buoc:var(--lh-cao);display:grid;position:relative;min-width:min-content;column-gap:8px;padding:0 4px 12px 0;
  grid-template-columns:var(--lh-cot-gio) repeat(var(--lh-n, 1), minmax(var(--lh-cot-min), 1fr));
  grid-template-rows:72px repeat(var(--lh-k, 1), calc(var(--lh-cao) / 3))}
.lh-lop{display:contents}
.lh-goc{grid-row:1;grid-column:1;position:sticky;top:0;left:0;z-index:9;background:var(--nen)}
.lh-dau-nen{grid-row:1;grid-column:1 / -1;position:sticky;top:0;z-index:6;background:var(--nen)}
.lh-gio-nen{grid-row:1 / -1;grid-column:1;position:sticky;left:0;z-index:4;background:var(--nen)}
.lh-nhan-gio{grid-column:1;position:sticky;left:0;z-index:5;align-self:start;margin-top:-2px;
  padding-right:10px;text-align:right;font-size:12px;font-weight:600;color:var(--chu2);font-variant-numeric:tabular-nums;pointer-events:none}
.lh-dau-cot{grid-row:1;position:sticky;top:0;z-index:7;margin-bottom:8px;min-width:0;background:var(--the);border-radius:12px;
  box-shadow:var(--bong-the);display:flex;align-items:center;gap:10px;padding:8px 12px}
/* Ô ẤN TRIỆN: số ghế trong ô vuông hơi nghiêng, như con dấu son — mảng màu, không viền. */
.lh-an{flex:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 5px;
  border-radius:6px;transform:rotate(-4deg);background:color-mix(in srgb, var(--nhan) 14%, var(--the));color:var(--nhan);
  font-family:"Be Vietnam Pro",sans-serif;font-size:16px;font-weight:800;line-height:1;letter-spacing:-.02em}
.lh-an.co-so::before{content:'GHẾ';font-size:10px;font-weight:700;letter-spacing:.08em;margin-bottom:2px}
.lh-dau-ten{display:flex;flex-direction:column;min-width:0}
.lh-dau-bs{font-size:14px;color:var(--chu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lh-dau-bs::before{content:'BS. ';font-size:12px;font-weight:600;color:var(--chu3)}
.lh-dau-bs.la-pt::before,.lh-dau-pt.la-pt::before{content:'PT. '}
.lh-dau-pt{font-size:12px;color:var(--chu2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Nền cột: ngoài ca là mảng tím rất nhạt, trong ca là mảng trắng (gradient theo giờ ca); khe nền 2px mỗi 30' thay đường kẻ. */
.lh-nen-cot{grid-row:2 / -1;position:relative;border-radius:12px;background-color:var(--lh-ngoai-ca);
  background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--lh-cao) * 2 - 2px), var(--nen) calc(var(--lh-cao) * 2 - 2px), var(--nen) calc(var(--lh-cao) * 2)),
    var(--lh-nen-ca, none)}
.lh-nen-bat{position:absolute;inset:0;border-radius:12px}
.lh-nen-bat.dang-chon-gio .o-trong-goi{display:none}
.lh-nghi{grid-column:2 / -1;z-index:1;pointer-events:none;display:flex;align-items:center;border-radius:16px;
  background:color-mix(in srgb, var(--chu) 6%, var(--nen))}
/* nhãn dính trái: dải trải qua mọi cột (rộng hơn khung nhìn) nên căn giữa là chạy mất khỏi màn */
.lh-nghi span{position:sticky;left:calc(var(--lh-cot-gio) + 24px);margin-left:24px;background:var(--the);border-radius:999px;padding:6px 16px;font-size:13px;color:var(--chu2)}

/* THẺ HẸN — năm phần tử; icon trạng thái / cảnh báo / CĐHA / vật tư là giả-phần-tử bật bằng lớp. */
.lh-the{position:relative;z-index:2;align-self:stretch;min-height:0;overflow:hidden;cursor:pointer;
  margin:2px 0 1px calc(100% * var(--lan, 0) / var(--tong, 1));width:calc(100% / var(--tong, 1) - 3px);
  display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:12px;
  background:var(--nhan-nhat);color:var(--chu);--lh-tt:var(--lhi-xn);--lh-mau:var(--nhan)}
.lh-the:hover{background:color-mix(in srgb, var(--nhan) 16%, var(--the))}
.lh-the:focus-visible{outline:2px solid var(--nhan);outline-offset:1px}
.lh-the-dau{display:flex;align-items:center;gap:4px;font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600;
  color:var(--nhan);white-space:nowrap}
.lh-the-dau::after{content:'';order:3;margin-left:auto;width:16px;height:16px;flex:none;background:var(--lh-mau);
  -webkit-mask:var(--lh-tt) center/contain no-repeat;mask:var(--lh-tt) center/contain no-repeat}
.lh-the.co-canh .lh-the-dau::before,.lh-the.co-qt .lh-the-dau::before{content:'';order:2;margin-left:auto;width:16px;height:16px;flex:none;
  background:var(--canh);-webkit-mask:var(--lhi-canh) center/contain no-repeat;mask:var(--lhi-canh) center/contain no-repeat}
.lh-the.co-canh .lh-the-dau::after,.lh-the.co-qt .lh-the-dau::after{margin-left:0}
.lh-the.di-ung .lh-the-dau::before{background:var(--loi)}
.lh-the.co-qt .lh-the-dau::before{background:var(--nhan)}
.lh-the-ten{font-size:14px;line-height:1.3;font-weight:700;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lh-the-dv{font-size:12.5px;line-height:1.35;color:var(--chu2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lh-the.co-cdha .lh-the-dv::before,.lh-the.co-vt .lh-the-ten::after{content:'';display:inline-block;vertical-align:-2px;width:13px;height:13px;
  background:var(--chu3);-webkit-mask:var(--lhi-anh) center/contain no-repeat;mask:var(--lhi-anh) center/contain no-repeat}
.lh-the.co-cdha .lh-the-dv::before{margin-right:4px}
.lh-the.co-vt .lh-the-ten::after{margin-left:6px;background:var(--canh);-webkit-mask-image:var(--lhi-hop);mask-image:var(--lhi-hop)}
.lh-the.co-vt.vt-du .lh-the-ten::after{background:var(--tot)}
.lh-the.lun{padding:0 36px 0 8px;flex-direction:row;align-items:center;gap:8px}
.lh-the.lun .lh-the-dau{flex:none;width:5ch;overflow:hidden}
.lh-the.lun .lh-the-dau::before{display:none}
.lh-the.lun .lh-the-dau::after{position:absolute;right:8px;top:50%;margin-top:-8px}
.lh-the.lun .lh-the-dv,.lh-the.hai-tang .lh-the-dv{display:none}
.lh-the.lun .lh-the-ten,.lh-the.hai-tang .lh-the-ten,.lh-the.ba-tang .lh-the-ten,.lh-the.ba-tang .lh-the-dv{-webkit-line-clamp:1}
.lh-the.lun .lh-the-ten{min-width:0;white-space:nowrap;text-overflow:ellipsis;display:block}
.lh-the.hai-tang,.lh-the.ba-tang{padding:6px 10px}
.lh-the.lun .lh-the-den{right:30px}
.lh-the.lun:has(.lh-the-den:not([hidden])){padding-right:60px}
.lh-the-den{position:absolute;right:6px;bottom:6px;width:28px;height:28px;border:0;border-radius:50%;padding:0;cursor:pointer;
  background:var(--the);color:var(--tot);display:grid;place-items:center}
.lh-the-den::before{content:'';width:16px;height:16px;background:currentColor;-webkit-mask:var(--lhi-den) center/contain no-repeat;mask:var(--lhi-den) center/contain no-repeat}
.lh-the-den:hover{background:var(--tot-nhat)}
.lh-the.lun .lh-the-den{top:50%;bottom:auto;transform:translateY(-50%);width:24px;height:24px}
.lh-the.hai-tang .lh-the-den{bottom:4px;width:24px;height:24px}
.tt-pending{--lh-tt:var(--lhi-cho);--lh-mau:var(--canh)}
.tt-confirmed{--lh-tt:var(--lhi-xn);--lh-mau:var(--nhan)}
.tt-arrived{--lh-tt:var(--lhi-den);--lh-mau:var(--tot)}
.tt-in_treatment{--lh-tt:var(--lhi-lam);--lh-mau:var(--nhan)}
.tt-completed{--lh-tt:var(--lhi-xong);--lh-mau:var(--tot)}
.tt-cancelled{--lh-tt:var(--lhi-huy);--lh-mau:var(--chu3)}
.tt-no_show{--lh-tt:var(--lhi-vang);--lh-mau:var(--loi)}
.lh-the.tt-pending{background:color-mix(in srgb, var(--nhan) 5%, var(--the))}
.lh-the.tt-in_treatment{background:color-mix(in srgb, var(--nhan) 20%, var(--the))}
.lh-the.tt-completed{background:var(--chim)}
.lh-the.tt-completed .lh-the-dau{color:var(--chu2)}
.lh-the.tt-cancelled,.lh-the.tt-no_show{background:var(--chim);opacity:.72}
.lh-the.tt-cancelled .lh-the-ten,.lh-the.tt-no_show .lh-the-ten{text-decoration:line-through}
.lh-the.tt-cancelled .lh-the-dau,.lh-the.tt-no_show .lh-the-dau{color:var(--chu2)}
.lh-ky::before{background:var(--lh-mau)}
.lh-man.dang-keo .lh-the{pointer-events:none}
.lh-man.dang-keo .lh-the.dang-keo-nay{opacity:.5}

/* vạch "bây giờ" + nhãn giờ dính trong cột giờ */
.lh-lop-vach{grid-column:2 / -1;grid-row:2 / -1;position:relative;z-index:3;pointer-events:none}
.lh-vach{border-top:0;height:2px;margin-top:-1px;background:var(--nhan);z-index:3}
.lh-vach::after{content:'';position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--nhan)}
.lh-cot-nay{grid-column:1;grid-row:2 / -1;position:sticky;left:0;z-index:5;pointer-events:none}
.lh-nhan-nay{position:absolute;right:4px;transform:translateY(-50%);background:var(--nhan);color:var(--the);border-radius:6px;padding:2px 6px;
  font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600}
.lh-vet-tha{z-index:4;pointer-events:none;margin:2px 0;border-radius:12px;padding:6px 10px;
  background:color-mix(in srgb, var(--nhan) 18%, transparent);color:var(--nhan);font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:600}

/* ---------- khay "Chờ xếp lịch" ---------- */
.lh-khay{background:var(--the);border-radius:16px;box-shadow:var(--bong-the);padding:16px;display:flex;flex-direction:column;gap:8px;
  height:calc(100dvh - var(--lh-tren) - 24px);min-height:360px;overflow:auto;position:relative}
.lh-khay-dau{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.lh-khay-dau h3{margin:0;font-size:16px;font-weight:700;color:var(--chu)}
.lh-khay-dau .lh-nut-ic{margin-left:auto;box-shadow:none;background:transparent;color:var(--chu3)}
.lh-khay-dau .lh-khay-dong{margin-left:0}
.lh-tim-khay{max-width:none;box-shadow:none;background:var(--nen);flex:none}
.lh-khay-ds{display:flex;flex-direction:column;gap:8px}
.lh-cho{position:relative;background:var(--nen);border-radius:12px;padding:12px 12px 12px 32px;cursor:grab;display:flex;flex-wrap:wrap;gap:4px 6px}
.lh-cho::before{content:'';position:absolute;left:8px;top:13px;width:16px;height:16px;background:var(--chu3);
  -webkit-mask:var(--lhi-keo) center/contain no-repeat;mask:var(--lhi-keo) center/contain no-repeat}
.lh-cho:hover{background:color-mix(in srgb, var(--nhan) 6%, var(--nen))}
.lh-cho b{flex:1 0 100%;font-size:14px;color:var(--chu)}
.lh-cho small{flex:1 0 100%;font-size:12.5px;color:var(--chu2)}
.lh-cho.cap-cuu b{color:var(--loi)}
.lh-chip{display:inline-flex;align-items:center;border-radius:8px;background:var(--the);padding:3px 8px;font-size:12px;color:var(--chu2);margin-top:4px}
.lh-chip-tim{background:var(--nhan-nhat);color:var(--nhan)}
.lh-khay-trong{margin:6px 0;font-size:13px;color:var(--chu3)}
.lh-may-khoi{flex:none;margin-top:auto;width:100%;height:96px}

/* ---------- danh sách "Kế tiếp" (chỉ màn hẹp) ---------- */
.lh-ke{background:var(--the);border-radius:16px;box-shadow:var(--bong-the);padding:16px;display:flex;flex-direction:column;gap:12px;cursor:pointer}
.lh-ke-dau{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lh-ke-nhan{background:var(--nhan-nhat);color:var(--nhan);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.lh-ke-gio{font-family:"IBM Plex Mono",monospace;font-size:15px;color:var(--chu)}
.lh-ke-con{font-size:14px;font-weight:600;color:var(--nhan)}
.lh-chip-ghe{margin-left:auto;background:var(--nhan-nhat);color:var(--nhan);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}
.lh-ke-khach{display:flex;align-items:center;gap:12px;background:var(--nen);border-radius:14px;padding:12px}
.lh-chu-cai{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--nhan-nhat);color:var(--nhan);font-size:20px;font-weight:800}
.lh-ke-chu{display:flex;flex-direction:column;min-width:0}
.lh-ke-ten{font-size:17px;color:var(--chu)}
.lh-ke-dv{font-size:14px;color:var(--chu2)}
.lh-ke-chan{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lh-ke-tt{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--chu2)}
.lh-ke-tt::before,.lh-dong-tt::before{content:'';width:16px;height:16px;flex:none;background:var(--lh-mau);
  -webkit-mask:var(--lh-tt) center/contain no-repeat;mask:var(--lh-tt) center/contain no-repeat}
.lh-nut-den-to{margin-left:auto;border:0;cursor:pointer;min-height:44px;padding:0 16px;border-radius:12px;background:var(--tot-nhat);color:var(--tot);
  display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;font-weight:700}
.lh-nut-den-to::before{content:'';width:18px;height:18px;background:currentColor;-webkit-mask:var(--lhi-den) center/contain no-repeat;mask:var(--lhi-den) center/contain no-repeat}
.lh-ds-tieu{margin:22px 0 10px;font-size:20px;font-weight:700;color:var(--chu)}
.lh-xong-gop{width:100%;border:0;cursor:pointer;background:var(--the);border-radius:14px;min-height:52px;padding:0 16px;margin:0 0 10px;
  display:flex;align-items:center;gap:10px;font:inherit;font-size:15px;color:var(--chu2);box-shadow:var(--bong-the)}
.lh-xong-gop .lh-i-xong{color:var(--tot)}
.lh-xong-gop .lh-i-xuong{margin-left:auto;transition:transform .2s}
.lh-ds.mo-xong .lh-xong-gop .lh-i-xuong{transform:rotate(180deg)}
.lh-ds-dong{display:flex;flex-direction:column;gap:10px}
.lh-ds:not(.mo-xong) .lh-dong.qua{display:none}
.lh-dong{position:relative;background:var(--the);border-radius:16px;box-shadow:var(--bong-the);padding:14px 16px;cursor:pointer;
  display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;min-height:44px}
.lh-dong.qua{opacity:.7}
.lh-dong-gio{font-family:"IBM Plex Mono",monospace;font-size:16px;color:var(--chu)}
.lh-dong-tt{display:inline-flex;align-items:center;gap:6px;justify-self:end;font-size:13px;color:var(--chu2)}
.lh-dong-ten{grid-column:1 / -1;font-size:16px;color:var(--chu)}
.lh-dong-dv{grid-column:1;font-size:14px;color:var(--chu2)}
.lh-dong .lh-the-den{position:static;grid-column:2;grid-row:2 / 4;justify-self:end;width:44px;height:44px;background:var(--tot-nhat)}
.lh-dong .lh-the-den::before{width:20px;height:20px}
.lh-ds-nay{display:flex;align-items:center;gap:10px;padding:2px 4px;color:var(--nhan)}
.lh-ds-nay b{font-family:"IBM Plex Mono",monospace;font-size:14px}
.lh-ds-nay i{flex:1;height:2px;border-radius:2px;background:color-mix(in srgb, var(--nhan) 25%, transparent);position:relative}
.lh-ds-nay i::before{content:'';position:absolute;left:0;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--nhan)}
.lh-ds-nay small{font-size:13px;color:var(--chu2)}
.lh-ds-trong{background:var(--the);border-radius:16px;padding:18px;text-align:center}
.lh-ds-trong p{margin:0;font-size:14px;color:var(--chu2)}
.lh-ds-trong .lh-may-khoi{height:80px;margin:0 auto 6px;max-width:240px}

/* ---------- 390px: danh sách mặc định, lưới mở bằng một chạm, khay thành nút, Đặt hẹn ghim đáy ---------- */
@media (max-width:760px){
  .lh-boc{--lh-cot-gio:46px;--lh-cot-min:148px}
  .lh-man{gap:12px;padding-bottom:96px}
  .lh-man.co-cta{padding-bottom:156px}
  .lh-dau{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;padding:0;
    grid-template-areas:"tieu tieu tieu canh khay" "to to to to to" "di di cao cao hien" "tim tim tim tim tim"}
  .lh-may-dai{left:auto;right:-20px;top:-18px;bottom:auto;width:260px;height:78px}
  .lh-boc{margin-top:-36px}
  .lh-tieu{grid-area:tieu;align-self:center;padding-left:44px}
  .lh-tieu h2{font-size:24px}
  .lh-to{grid-area:to;display:block}
  .lh-to-nut{width:100%;min-height:0;padding:16px 18px;border-radius:16px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 14px;text-align:left}
  .lh-to-so{order:0;font-size:64px;letter-spacing:-.04em}
  .lh-to-chu{order:1;display:flex;flex-direction:column;gap:4px;min-width:0}
  .lh-to-thang{order:0;font-size:13px}
  .lh-to-am{display:none}
  .lh-to-am-du{order:1;display:block;font-size:15px;color:var(--chu2);white-space:normal}
  .lh-to-gio{display:inline-flex;align-items:center;gap:6px;position:absolute;top:14px;right:14px;background:var(--nen);border-radius:999px;padding:6px 12px;
    font-family:"IBM Plex Mono",monospace;font-size:14px;color:var(--chu)}
  .lh-to-gio[hidden]{display:none}
  .lh-to-gio i{width:8px;height:8px;border-radius:50%;background:var(--nhan)}
  .lh-di{grid-area:di;justify-self:start}
  .lh-dau .lh-di button.lh-nut-ic,.lh-dau .lh-di button.lh-nut-chu{height:44px}
  .lh-dau .lh-di button.lh-nut-ic{width:44px}
  .lh-cao{grid-area:cao;justify-self:end}
  .lh-dau .lh-cao button.lh-nut-ic{width:44px;height:44px}
  .lh-dau .lh-cao button.lh-nut-ic[aria-pressed="false"]{display:none}
  .lh-dau .lh-cao button.lh-nut-ic[aria-pressed="true"]{background:transparent;color:var(--chu2)}
  .lh-vu:has(.lh-nut-hien){grid-area:hien}
  .lh-dau button.lh-nut-hien{width:48px;height:44px;padding:0}
  .lh-chu-hien{display:none}
  .lh-nut-hien .lh-dem-nho{position:absolute;top:-6px;right:-6px}
  .lh-vu:has(.lh-nut-canh){grid-area:canh}
  .lh-tim{grid-area:tim;max-width:none;height:44px}
  .lh-dau button.lh-nut-ic,.lh-khay button.lh-nut-ic{width:44px;height:44px}
  .lh-nut-canh,.lh-nut-khay{border-radius:50%}
  .lh-nut-khay{display:inline-flex;grid-area:khay}
  .lh-man:not(.xem-luoi) .lh-di,.lh-man:not(.xem-luoi) .lh-cao,.lh-man:not(.xem-luoi) .lh-vu:has(.lh-nut-hien),.lh-man:not(.xem-luoi) .lh-tim{display:none}
  .lh-man:not(.xem-luoi) .lh-dau{grid-template-areas:"tieu tieu tieu canh khay" "to to to to to"}
  /* Lưới cả phòng khám: nhường chiều cao cho lưới — tờ lịch thu vào dòng phụ dưới tiêu đề, ô tìm mở bằng icon. */
  .lh-man.xem-luoi .lh-to{display:none}
  .lh-man.xem-luoi .lh-dem-ngay{display:inline}
  .lh-man.xem-luoi .lh-dau{grid-template-areas:"tieu tieu tieu canh khay" "di di cao tim-mo hien" "tim tim tim tim tim"}
  .lh-man.xem-luoi:not(.tim-mo) .lh-tim{display:none}
  .lh-man.xem-luoi .lh-nut-tim-mo{display:inline-flex;grid-area:tim-mo}
  .lh-man.tim-mo .lh-nut-tim-mo{background:var(--nhan-nhat);color:var(--nhan)}
  .lh-dau button.lh-nut-ic.lh-nut-tim-mo{width:44px}
  .lh-cta{position:fixed;left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom, 0px));z-index:39;height:52px;justify-content:center;
    margin:0;border-radius:16px;font-size:16px}
  .lh-menu{position:fixed;left:16px;right:16px;top:auto;bottom:calc(80px + env(safe-area-inset-bottom, 0px));width:auto;max-height:70vh;z-index:60}
  .lh-tabs{display:flex;background:var(--the);border-radius:16px;box-shadow:var(--bong-the);padding:4px;gap:4px}
  .lh-tab{flex:1;border:0;cursor:pointer;background:transparent;border-radius:12px;min-height:48px;font:inherit;font-size:16px;color:var(--chu2)}
  .lh-tab[aria-selected="true"]{background:var(--nhan-nhat);color:var(--nhan);font-weight:600}
  .lh-than{display:block}
  .lh-man:not(.xem-luoi) .lh-ds{display:block}
  .lh-man:not(.xem-luoi) .lh-bang,.lh-man:not(.xem-luoi) .lh-bang-ds{display:none}
  .lh-bang{height:calc(100dvh - var(--lh-tren) - 96px);min-height:420px}
  .lh-man.co-cta .lh-bang{height:calc(100dvh - var(--lh-tren) - 156px)}
  .lh-luoi{grid-template-rows:64px repeat(var(--lh-k, 1), calc(var(--lh-cao) / 3));column-gap:6px}
  .lh-dau-cot{padding:8px;gap:8px}
  .lh-an{min-width:34px;height:36px;font-size:15px}
  .lh-the-den{width:32px;height:32px}
  .lh-khay{position:fixed;left:0;right:0;bottom:0;z-index:70;height:auto;max-height:78vh;min-height:0;border-radius:18px 18px 0 0;
    padding:16px 16px calc(20px + env(safe-area-inset-bottom, 0px));transform:translateY(105%);transition:transform .22s ease-out;box-shadow:var(--bong)}
  .lh-man.khay-mo .lh-khay{transform:none}
  .lh-man.khay-mo::after{content:'';position:fixed;inset:0;z-index:69;background:color-mix(in srgb, var(--navy) 40%, transparent)}
  .lh-khay-dong{display:inline-flex}
  .lh-cho{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.lh-khay,.lh-xong-gop .lh-i-xuong{transition:none}}

/* ---------- bộ chọn có ô tìm trong biểu mẫu đặt hẹn ---------- */
.lh-ct{position:relative}
.lh-ct select[hidden]{display:none}
.lh-ct button.lh-ct-nut{width:100%;min-height:40px;height:auto;border:0;border-radius:10px;background:var(--nen);color:var(--chu);font:inherit;font-size:14px;
  display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;padding:0 12px;text-align:left;white-space:nowrap;cursor:pointer}
.lh-ct-nut.trong{color:var(--chu3)}
.lh-ct-nut:focus-visible{outline:2px solid var(--nhan);outline-offset:1px}
.lh-ct-chu{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lh-ct-bang{margin-top:6px;background:var(--the);border-radius:12px;box-shadow:var(--bong);padding:8px}
.lh-tim-ct{max-width:none;box-shadow:none;background:var(--nen);height:40px;margin-bottom:6px}
.lh-ct-ds{max-height:260px;overflow:auto;display:flex;flex-direction:column}
.lh-ct-nhom{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--chu3);padding:8px 8px 4px}
.lh-ct button.lh-ct-muc{flex:none;display:block;width:100%;height:auto;border:0;background:transparent;text-align:left;font:inherit;font-size:14px;line-height:1.35;color:var(--chu);border-radius:8px;padding:10px 8px;min-height:44px;cursor:pointer}
.lh-ct-muc:hover,.lh-ct-muc:focus-visible{background:var(--nen)}
.lh-ct-muc.dang{background:var(--nhan-nhat);color:var(--nhan);font-weight:600}
.lh-ct-bo{color:var(--chu3)}
.lh-ct-trong{margin:8px;font-size:13px;color:var(--chu3)}

/* `hidden` luôn thắng: nhiều lớp trên đặt `display` riêng; `:not(#_)` nâng độ ưu tiên mà không cần !important. */
.lh-boc [hidden]:not(#_){display:none}
