/* ================= báo cáo ================= */
.rseg{display:inline-flex;height:44px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-sm);overflow:hidden}
.rseg button{background:none;border:none;border-radius:0;padding:0 17px;font-size:14px;
  font-weight:580;color:var(--muted);border-left:1px solid var(--border)}
.rseg button:first-child{border-left:none}
.rseg button:hover{background:var(--surface-2);color:var(--text)}
.rseg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.datebar #repNow,.datebar #repCsv{height:44px;padding:0 15px}

/* 148px để trên điện thoại 390px vẫn xếp được hai ô một hàng — năm ô mỗi ô một hàng
   thì phải cuộn hết màn hình mới xem được năm con số quan trọng nhất */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:11px;margin-bottom:14px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:14px 15px 13px;box-shadow:var(--sh);min-width:0}
.kpi .k{font-size:11px;font-weight:680;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
/* Số tiền không được xuống dòng: "38.154.335" một dòng và "₫" một dòng đọc thành
   hai thứ khác nhau. Thà chữ nhỏ đi còn hơn cắt con số làm đôi. */
.kpi .v{font-size:25px;font-weight:700;letter-spacing:-.025em;margin:5px 0 2px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi .v .sm2{display:none}
.kpi .d{font-size:12px;color:var(--muted)}
.kpi .d b{font-weight:660}
.kpi .d .up{color:var(--run)} .kpi .d .dn{color:var(--danger)}
.kpi.big .v{color:var(--accent)}
/* Media query phải nằm SAU khối .kpi ở trên: cùng độ ưu tiên thì luật đứng sau thắng,
   để ở khối @media 620px phía trên file thì nó bị chính mấy dòng này ghi đè. */
@media(max-width:620px){
  .kpi{padding:12px 13px 11px}
  .kpi .v{font-size:20px;margin:4px 0 2px}
  .kpi .v .lg{display:none}
  .kpi .v .sm2{display:inline}
  .kpi .k{font-size:10px}
  .kpi .d{font-size:11.5px}
}

/* dòng tiền: nhãn trái, số phải, số cùng bề rộng chữ để cột số thẳng hàng */
.mline{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:8px 0;font-size:14px}
.mline+.mline{border-top:1px dashed var(--border)}
.mline .l{color:var(--muted)}
/* text-align:right phải nằm ở chính .n, không chỉ ở dòng phụ bên dưới. Bề rộng của .n
   do đứa con rộng nhất quyết định — thường là dòng phụ ("không phiên nào") — nên nếu
   .n không tự căn phải thì con số nằm bên trái còn dòng phụ nằm bên phải, và cột số
   của cả khối không thẳng hàng. */
.mline .n{font-weight:640;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.mline.cut .l,.mline.cut .n{color:var(--danger)}
.mline.sum{border-top:1.5px solid var(--border-strong);margin-top:3px;padding-top:11px}
.mline.sum .l{color:var(--text);font-weight:620}
.mline.sum .n{font-size:19px;font-weight:700}
.mline .sm{display:block;font-size:11.5px;color:var(--faint);font-weight:500;text-align:right}

/* thanh ngang: dùng cho lấp đầy từng phòng và cho món bán chạy */
.brow{display:grid;grid-template-columns:1fr 62px;gap:11px;align-items:center;
  padding:7px 0;font-size:13.5px}
.brow+.brow{border-top:1px dashed var(--border)}
.brow .bl{min-width:0}
.brow .bn{display:block;font-weight:580;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brow .bar{height:7px;border-radius:4px;background:var(--surface-3);margin-top:5px;overflow:hidden}
.brow .bar i{display:block;height:100%;border-radius:4px;background:var(--accent)}
.brow.run .bar i{background:var(--run)}
.brow .bv{text-align:right;font-weight:660;font-variant-numeric:tabular-nums;font-size:13px}
.brow .bs{display:block;font-size:11px;color:var(--faint);font-weight:500;text-align:right}

/* vì sao huỷ */
.whywrap{margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}
.whyh{font-size:12.5px;font-weight:680;letter-spacing:.03em;text-transform:uppercase;
  color:var(--faint);margin-bottom:9px}
.whyg{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:11.5px;font-weight:660;letter-spacing:.03em;text-transform:uppercase;
  color:var(--muted);margin:12px 0 3px}
.whyg:first-of-type{margin-top:0}
.whyg b{font-family:var(--mono);font-size:12px;color:var(--text);letter-spacing:0}

/* biểu đồ cột theo khung giờ */
.hbars{display:flex;align-items:flex-end;gap:3px;height:132px;margin:4px 0 7px}
.hbars>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-width:0}
.hbars i{display:block;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}
.hbars .pk i{background:var(--run)}
.hbars .lo i{background:var(--surface-3)}
.hlabs{display:flex;gap:3px;font-size:9.5px;color:var(--faint);font-family:var(--mono)}
.hlabs>div{flex:1;text-align:center;min-width:0;overflow:hidden}

.rtable{width:100%;border-collapse:collapse;font-size:13px}
.rtable th{text-align:left;font-size:10.5px;font-weight:680;letter-spacing:.045em;
  text-transform:uppercase;color:var(--faint);padding:0 8px 7px 0;white-space:nowrap}
.rtable td{padding:8px 8px 8px 0;border-top:1px dashed var(--border);vertical-align:top}
.rtable td.n,.rtable th.n{text-align:right;font-variant-numeric:tabular-nums;
  white-space:nowrap;padding-right:0}
.rtable td.n b{font-weight:640}
.rtable .warn{color:var(--danger);font-weight:640}
.rwrap{overflow-x:auto}
.repcols{display:grid;grid-template-columns:1fr 1fr;gap:13px;align-items:start}
@media(max-width:900px){.repcols{grid-template-columns:1fr}}

.note{border-left:3px solid var(--border-strong);background:var(--surface-2);padding:12px 15px;
  border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:13px;color:var(--muted);line-height:1.55;margin-top:15px}
.note b{color:var(--text)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--text);color:var(--bg);
  padding:11px 20px;border-radius:24px;font-size:14px;font-weight:560;box-shadow:var(--sh);z-index:80;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:88vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(-4px)}
