/* Trang Dự án (public/assets/du-an.js — spec 2026-11-04 mục 6, 9). Biến màu của hub.css; lớp riêng bắt đầu bằng da-.
   Phông: chỉ var(--font) của hub.css (body đã đặt) — không khai phông nào khác; số tabular-nums.
   Không tràn ở 390 px: ô số container-type + cqi; tên / địa chỉ overflow-wrap: anywhere (mã dự án / mã đơn thì 1 dòng, không ngắt giữa mã — mã
   hàng SKU dài vẫn xuống dòng); bảng → thẻ ở ≤ 700 px (mobile.js CARDS.hub + mobile.css); hàng nút trạng thái cuộn ngang. 3 khổ: ≥ 1024 px cột trái
   220 px; 701–1023 px hàng tab trên đầu; ≤ 700 px hàng tab dính khi cuộn.
   index.html nạp tệp này trên mọi trang → MỌI luật nằm dưới lớp gốc của phần nó tô: .page-du-an = trang Dự án (app.js freshPage: "page
   page-du-an"; hộp Chuyển dự án / Sửa thông tin có .da-head, .da-tabs… của riêng nó — du-an-transfer.css, dưới .da-modal); .da-modal /
   .modal-backdrop.da-backdrop = khung chung của mọi hộp Dự án trên điện thoại (cuối khối ≤ 700 px). test/du-an-ui.test.mjs kiểm từng bộ chọn. */

/* ---------------------------------------------------------------- nhãn tông, mã
   tone của máy chủ (server/du-an/numbers.js): bad đỏ · warn cam · info xanh dương · muted xám · ok xanh lá. warn / info / muted / ok là lớp
   dp-tone-* của Điều phối (dieu-phoi.css — index.html nạp trên mọi trang, trước file này): không chép lại ở đây; chỉ thêm đỏ (Điều phối chưa có). */
.page-du-an .badge.dp-tone-bad { background: var(--bad-soft); color: var(--bad-ink); border-color: transparent; }
.page-du-an .badge.da-new { background: #ccfbf1; color: #0f766e; border-color: #99f6e4; }
/* Mã dự án / mã đơn / mã hóa đơn nằm trên 1 dòng, không bao giờ ngắt giữa mã ("DA-" / "00006": Chrome, Safari ngắt được ngay sau dấu "-"): dp-code
   (lớp của Điều phối) cho mã đứng riêng, da-nobr cho mã nằm trong câu chữ (du-an.js nobrCodes bọc từng mã khi vẽ). Tên, địa chỉ, khách quanh mã vẫn
   xuống dòng (overflow-wrap: anywhere ở từng ô). Mã hàng (SKU) ở bảng Hàng hoá có thể rất dài → vẫn xuống dòng được, thẻ 390 px không tràn ngang. */
.page-du-an .dp-code, .page-du-an .da-nobr { white-space: nowrap; }
.page-du-an .da-goods .dp-code { white-space: normal; overflow-wrap: anywhere; }
.page-du-an .da-st-sub { display: block; margin-top: 2px; font-size: 11.5px; font-weight: 400; color: var(--faint); }
.page-du-an .da-badges { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-width: 0; }

/* ---------------------------------------------------------------- khung: cột trái (≥ 1024 px, nền tối như ảnh p.16), hàng tab */
.page-du-an .da-shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: 100%; }
.page-du-an .da-side { background: #0f172a; color: #cbd5e1; }
.page-du-an .da-side-in { position: sticky; top: 0; display: flex; flex-direction: column; gap: 16px; padding: 22px 14px 28px; }
.page-du-an .da-brand small { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; color: #5eead4; }
.page-du-an .da-brand b { display: block; margin-top: 2px; font-size: 17px; color: #fff; }
.page-du-an .da-menu { display: flex; flex-direction: column; gap: 4px; }
.page-du-an .da-menu a { padding: 9px 12px; border-radius: 9px; color: #cbd5e1; font-weight: 600; font-size: 14px; text-decoration: none; }
.page-du-an .da-menu a:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }
.page-du-an .da-menu a.active { background: #0d9488; color: #fff; }
.page-du-an .da-side-btn { width: 100%; white-space: normal; background: transparent; border: 1px solid #5eead4; color: #ccfbf1; }
.page-du-an .da-side-btn:hover { background: rgba(94, 234, 212, 0.12); color: #fff; }
.page-du-an .da-side-note { margin: 0; font-size: 12px; line-height: 1.5; color: #94a3b8; }
.page-du-an .da-main { min-width: 0; padding: 24px 28px 72px; }
.page-du-an .da-nav { display: none; }
.page-du-an .da-nav a.active { background: #0d9488; box-shadow: 0 2px 8px rgba(13, 148, 136, 0.3); }
.page-du-an .da-phone { display: none; }

/* ---------------------------------------------------------------- đầu trang, bộ lọc */
.page-du-an .da-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; margin-bottom: 16px; }
.page-du-an .da-head-l { min-width: 0; }
.page-du-an .da-head h1 { margin: 0; font-size: 24px; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.page-du-an .da-head p { margin: 4px 0 0; color: var(--dim); font-size: 13.5px; }
.page-du-an .da-date { display: block; margin-bottom: 2px; color: var(--faint); font-size: 12.5px; font-weight: 600; }
.page-du-an .da-head-r { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.page-du-an .da-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.page-du-an .da-filters .input { width: auto; max-width: 100%; min-width: 0; }
.page-du-an .da-filters select:disabled { opacity: 0.55; }
.page-du-an .da-searching { font-size: 12.5px; font-weight: 600; color: var(--warn-ink); }
.page-du-an .da-toolbar { align-items: center; }
.page-du-an .da-toolbar .da-q { flex: 1 1 260px; max-width: 380px; }
.page-du-an .da-alert .btn { margin-left: 6px; }
.page-du-an .da-band { display: flex; flex-direction: column; gap: 6px; }
.page-du-an .da-band-row { display: flex; align-items: center; gap: 6px 10px; flex-wrap: wrap; }
.page-du-an .da-checkin { display: none; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0 0; font-size: 13px; color: var(--faint); }

/* ---------------------------------------------------------------- ô số (co theo bề rộng ô: "123.457 tr" không tràn) */
.page-du-an .da-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.page-du-an .da-tiles-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.page-du-an .da-tiles-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.page-du-an .da-tile {
  container-type: inline-size; display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 14px 16px;
  font: inherit; text-align: left; color: var(--ink); text-decoration: none;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow);
}
.page-du-an button.da-tile, .page-du-an a.da-tile { cursor: pointer; transition: border-color 0.15s, box-shadow 0.15s; }
.page-du-an button.da-tile:hover, .page-du-an a.da-tile:hover { border-color: #5eead4; box-shadow: 0 3px 12px rgba(13, 148, 136, 0.12); }
.page-du-an .da-tile-lbl { font-size: 12px; font-weight: 600; color: var(--dim); }
.page-du-an .da-tile-val { font-size: min(26px, 10cqi); font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.page-du-an .da-tile-val.pos { color: var(--good-ink); }
.page-du-an .da-tile-val.neg { color: var(--bad); }
.page-du-an .da-tile-val.da-tile-text { font-size: min(17px, 8cqi); font-weight: 600; }
.page-du-an .da-tile-sub { font-size: 12px; color: var(--faint); overflow-wrap: anywhere; }
.page-du-an .da-tile .neg { color: var(--bad); }

/* ---------------------------------------------------------------- Tổng quan */
.page-du-an .da-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 16px; align-items: start; }
.page-du-an .da-count { font-size: 12.5px; font-weight: 600; color: var(--faint); }
.page-du-an .da-attn-list, .page-du-an .da-prog-list { display: flex; flex-direction: column; }
.page-du-an .da-attn-row, .page-du-an .da-prog-row { display: flex; min-width: 0; padding: 9px 4px; border-top: 1px solid var(--border); color: inherit; text-decoration: none; }
.page-du-an .da-attn-row:first-child, .page-du-an .da-prog-row:first-child { border-top: none; }
.page-du-an a.da-attn-row:hover, .page-du-an a.da-prog-row:hover { background: #f0fdfa; }
.page-du-an .da-attn-row { align-items: flex-start; gap: 10px; }
.page-du-an .da-attn-row .badge { flex: 0 0 auto; margin-top: 1px; }
.page-du-an .da-attn-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.page-du-an .da-attn-txt b { font-weight: 600; overflow-wrap: anywhere; }
.page-du-an .da-attn-txt small { font-size: 12.5px; color: var(--faint); overflow-wrap: anywhere; }
.page-du-an .da-attn-more { margin-top: 8px; } /* "Xem thêm" của Cần chú ý — lớp riêng (.da-more là khung menu "⋯") */
.page-du-an .da-prog-row { flex-direction: column; gap: 2px; }
.page-du-an .da-prog-top { display: flex; align-items: center; gap: 4px 8px; flex-wrap: wrap; min-width: 0; }
.page-du-an .da-pname { min-width: 0; overflow-wrap: anywhere; }
.page-du-an .da-daycell b { font-size: 16px; font-variant-numeric: tabular-nums; }
.page-du-an .da-wd { display: block; font-size: 11.5px; color: var(--faint); }
.page-du-an .da-goodscell { min-width: 180px; max-width: 420px; overflow-wrap: anywhere; }

/* ---------------------------------------------------------------- Danh sách */
.page-du-an .da-sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 0; margin: 0 0 12px; font-size: 13.5px; color: var(--dim); font-variant-numeric: tabular-nums; }
.page-du-an .da-sum b { color: var(--ink); }
.page-du-an .da-sum-lead { margin-right: 6px; }
.page-du-an .da-sep { white-space: pre; } /* " · " giữa các mục (mục của flex bỏ khoảng trắng đầu / cuối) */
.page-du-an .da-list-card, .page-du-an .da-tcard { padding: 8px 14px; }
.page-du-an .da-table-wrap { overflow-x: auto; }
.page-du-an .table.da-list td, .page-du-an .table.da-soon td, .page-du-an .table.da-deliv td, .page-du-an .table.da-orders td, .page-du-an .table.da-goods td { vertical-align: top; }
.page-du-an .da-list tbody tr, .page-du-an .da-soon tbody tr[data-href] { cursor: pointer; }
.page-du-an .da-list tbody tr:focus-visible, .page-du-an .da-soon tbody tr[data-href]:focus-visible { outline-offset: -2px; }
.page-du-an .da-pcell { min-width: 220px; max-width: 420px; }
.page-du-an .da-ptop { display: flex; align-items: center; gap: 4px 8px; flex-wrap: wrap; min-width: 0; }
.page-du-an .da-pcell .sub, .page-du-an .da-dmeta, .page-du-an .da-fact > div, .page-du-an .da-gname { overflow-wrap: anywhere; }
.page-du-an .da-sort { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; white-space: nowrap; }
.page-du-an .da-sort:hover { color: var(--ink); }
.page-du-an .da-sort.is-asc::after { content: ' ▲'; }
.page-du-an .da-sort.is-desc::after { content: ' ▼'; }
.page-du-an .da-money { font-variant-numeric: tabular-nums; white-space: nowrap; }
.page-du-an .da-money.pos { color: var(--good-ink); }
.page-du-an .da-money.neg { color: var(--bad); font-weight: 600; }
.page-du-an .da-attn-box { max-width: 260px; font-size: 12.5px; color: #92400e; overflow-wrap: anywhere; }
.page-du-an .da-pager { padding: 10px 0 4px; }
.page-du-an .da-more-cards { width: 100%; margin: 6px 0 4px; }

/* ---------------------------------------------------------------- Chi tiết */
.page-du-an .da-dhead { display: grid; gap: 6px; margin-bottom: 14px; }
.page-du-an .da-back { justify-self: start; font-size: 13.5px; font-weight: 600; text-decoration: none; }
.page-du-an .da-dtitle { display: flex; align-items: center; gap: 6px 10px; flex-wrap: wrap; min-width: 0; }
.page-du-an .da-dtitle h1 { margin: 0; min-width: 0; font-size: 22px; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.page-du-an .da-dmeta { margin: 0; font-size: 13px; color: var(--faint); }
.page-du-an .da-dacts { display: flex; gap: 8px; flex-wrap: wrap; }
.page-du-an .da-cancelled { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: var(--surface-3); color: var(--dim); font-weight: 600; overflow-wrap: anywhere; }
.page-du-an .da-tabs { display: flex; gap: 4px; margin-bottom: 16px; padding: 4px; overflow-x: auto; scrollbar-width: none; background: var(--surface-3); border-radius: 11px; }
.page-du-an .da-tabs::-webkit-scrollbar { display: none; }
.page-du-an .da-tabs a { padding: 8px 14px; border-radius: 8px; color: var(--dim); font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.page-du-an .da-tabs a:hover { color: var(--ink); }
.page-du-an .da-tabs a.active { color: #0f766e; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1); }
.page-du-an .da-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 18px; font-size: 13.5px; }
.page-du-an .da-fact > span { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 600; color: var(--faint); }
.page-du-an .da-empty-box, .page-du-an .da-plan-empty { padding: 16px 14px; border: 1px dashed var(--border-strong); border-radius: 12px; color: var(--faint); font-size: 13px; }
.page-du-an .da-empty-box { text-align: center; }
.page-du-an .da-plan-empty { display: flex; flex-direction: column; gap: 4px; }
.page-du-an .da-plan-empty b { color: var(--ink); font-size: 15px; }
.page-du-an .da-history summary { cursor: pointer; font-weight: 600; }
.page-du-an .da-events { list-style: none; margin: 10px 0 0; padding: 0; }
.page-du-an .da-events li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 2px 12px; padding: 7px 0; border-top: 1px solid var(--border); font-size: 13px; }
.page-du-an .da-events time { color: var(--faint); font-variant-numeric: tabular-nums; }
.page-du-an .da-events span { overflow-wrap: anywhere; }
.page-du-an .da-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.page-du-an .da-steps li { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 10px; border-radius: 10px; background: var(--surface-3); color: var(--faint); }
.page-du-an .da-steps b { color: var(--dim); }
.page-du-an .da-steps span { font-size: 13px; color: var(--dim); overflow-wrap: anywhere; }
.page-du-an .da-steps small { font-size: 11.5px; }
.page-du-an .da-note { margin: 10px 0 0; font-size: 13px; color: var(--dim); }
/* Dòng mờ (đơn đã hủy — luôn ở cuối bảng): trừ ô menu "⋯" — khung nổi nằm trong ô mờ thì mờ theo, nhìn như bị khóa và lộ chữ bên dưới. */
.page-du-an .da-row-off > td:not(.da-menu-cell) { opacity: 0.55; }
.page-du-an .da-msg { max-width: 560px; margin: 32px auto; text-align: center; }
.page-du-an .da-msg h2 { margin: 0 0 8px; font-size: 18px; }
.page-du-an .da-msg p { color: var(--dim); overflow-wrap: anywhere; }

/* menu "⋯" của dòng đơn bổ sung (Gỡ khỏi dự án · Chuyển sang dự án khác): khung nổi position: fixed — du-an.js menuPos đặt top / left theo
   nút, mở lên trên khi sát đáy; nằm ngoài vùng cuộn của bảng (.da-table-wrap) nên bảng không cuộn, mép thẻ không cắt menu ở dòng cuối. */
.page-du-an .da-menu-cell { width: 1%; text-align: right; }
.page-du-an .da-more { position: relative; display: inline-block; }
.page-du-an .da-more-btn { min-width: 34px; font-size: 16px; line-height: 1; }
.page-du-an .da-pop {
  position: fixed; left: 0; top: 0; z-index: 30; display: none; flex-direction: column; min-width: 210px; padding: 6px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-lg);
}
.page-du-an .da-more.open .da-pop { display: flex; }
.page-du-an .da-pop button { padding: 9px 10px; border: 0; border-radius: 8px; background: none; font: inherit; font-size: 13.5px; text-align: left; color: var(--ink); cursor: pointer; white-space: nowrap; }
.page-du-an .da-pop button:hover, .page-du-an .da-pop button:focus-visible { background: var(--surface-3); }
.page-du-an .da-pop button[data-act='remove'] { color: var(--bad-ink); }

/* ---------------------------------------------------------------- khổ vừa và nhỏ */
@media (min-width: 1024px) {
  /* Nút "＋ Chuyển dự án từ đơn" nằm ở cột trái. */
  .page-du-an .da-xfer { display: none; }
}
@media (max-width: 1023px) {
  .page-du-an .da-shell { display: block; }
  .page-du-an .da-side { display: none; }
  .page-du-an .da-nav { display: flex; }
  .page-du-an .da-checkin { display: flex; }
}
@media (max-width: 900px) {
  .page-du-an .da-grid2 { grid-template-columns: minmax(0, 1fr); }
  .page-du-an .da-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* 5 ô 1 hàng chật quá (chữ số < 11 px) → 3 + 2; 4 ô → 2 × 2. */
  .page-du-an .da-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-du-an .da-tiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .page-du-an .da-web { display: none !important; }
  .page-du-an span.da-phone, .page-du-an b.da-phone { display: inline; }
  .page-du-an div.da-phone { display: block; }
  .page-du-an .da-main { padding: 0 12px 72px; }
  /* Hàng tab trên cùng, dính khi cuộn (không dùng thanh dưới đáy — Safari iPhone có thanh công cụ ở đáy): cao 6 + 40 + 6 px + viền 1 px. */
  .page-du-an .da-nav { position: sticky; top: 0; z-index: 6; margin: 0 -12px 12px; padding: 6px 12px; border-width: 0 0 1px; border-radius: 0; }
  .page-du-an .da-nav a { flex: 1 1 0; text-align: center; min-height: 40px; display: flex; align-items: center; justify-content: center; }
  /* Ô "Hàng cần giao 7 ngày" cuộn tới thẻ này: đầu thẻ dừng ngay dưới hàng tab dính (53 px) + khoảng cách — không bị hàng tab che. */
  .page-du-an .da-soon-card { scroll-margin-top: 64px; }
  .page-du-an .da-head { margin-bottom: 12px; }
  .page-du-an .da-head h1 { font-size: 20px; }
  .page-du-an .da-head-r, .page-du-an .da-filters { width: 100%; }
  .page-du-an .da-filters .input { flex: 1 1 140px; }
  .page-du-an .da-filters select[data-f='mode'] { flex-basis: 100%; } /* "Chuyển dự án trong tháng" không bị cắt chữ */
  .page-du-an .da-toolbar .da-q { flex: 1 1 100%; max-width: none; }
  .page-du-an .da-xfer { width: 100%; }
  .page-du-an .da-xfer-alt { display: none; } /* người có Tổng quan: nút ở đầu Tổng quan */
  .page-du-an .da-view .dp-seg button { min-height: 40px; }
  /* Vùng chạm ≥ 40 px (mục 9): "← Dự án", mọi nút nhỏ của trang (＋ Gắn đơn bổ sung, Xem tất cả, Mở Công việc của tôi, Chuyển sang <chi
     nhánh>, Thử lại…) — hub.css cho btn-sm 34 px —, mã đơn mở Điều phối trên thẻ Giao hàng theo đơn / Đơn hàng của dự án, SĐT / "Mở bản
     đồ" ở Thông tin, dòng "Lịch sử dự án (n)". */
  .page-du-an .da-back { display: inline-flex; align-items: center; min-height: 40px; }
  .page-du-an .btn-sm { min-height: 40px; }
  .page-du-an table.m-cards a.dp-code { display: inline-flex; align-items: center; min-height: 40px; }
  /* SĐT / "Mở bản đồ" nằm giữa dòng chữ: vùng chạm 40 px tràn 10 px lên / xuống (lề âm) — chữ không bị đẩy lệch khỏi ô bên cạnh. */
  .page-du-an .da-fact a { display: inline-flex; align-items: center; min-height: 40px; margin: -10px 0; }
  .page-du-an .da-history summary { padding: 10px 0; }
  .page-du-an .da-tiles, .page-du-an .da-tiles-3, .page-du-an .da-tiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
  .page-du-an .da-tile { min-height: 40px; padding: 11px 12px; }
  .page-du-an .da-tile-val { font-size: min(22px, 10cqi); }
  /* Tổng quan: Cần chú ý lên trước Tiến độ chung. */
  .page-du-an .da-grid2 { display: flex; flex-direction: column; }
  .page-du-an .da-attn-card { order: -1; }
  .page-du-an .da-attn-row, .page-du-an .da-prog-row { min-height: 40px; padding: 10px 2px; }
  .page-du-an .da-attn-more { width: 100%; min-height: 40px; }
  /* Dòng tổng thành 3 ô Doanh thu · Đã thu · Công nợ. */
  .page-du-an .da-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .page-du-an .da-sum-lead { grid-column: 1 / -1; margin: 0; }
  .page-du-an .da-sep { display: none; }
  .page-du-an .da-sum-i { min-width: 0; padding: 9px 10px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; font-size: 12px; overflow-wrap: anywhere; }
  .page-du-an .da-sum-i::first-letter { text-transform: uppercase; }
  .page-du-an .da-sum-i > b { display: block; font-size: 15px; }
  .page-du-an .da-list-card, .page-du-an .da-tcard { padding: 4px 0; background: none; border: 0; box-shadow: none; }
  .page-du-an .da-dtitle h1 { font-size: 19px; }
  .page-du-an .da-events li { grid-template-columns: minmax(0, 1fr); }
  .page-du-an .da-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .page-du-an .da-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-du-an .da-tabs { gap: 2px; padding: 3px; }
  .page-du-an .da-tabs a { flex: 1 1 auto; min-height: 40px; display: flex; align-items: center; justify-content: center; padding: 8px 6px; font-size: 13px; }

  /* Thẻ Danh sách (mobile.js CARDS.hub → table.m-cards, ảnh 2a / 2b): ô tên là tiêu đề (đã mang sẵn dòng xám của thẻ); đường kẻ trên 3 ô tiền;
     Cần chú ý thành hộp vàng "Chú ý: …"; cả thẻ bấm được (bỏ nút Mở). */
  .page-du-an table.da-list.m-cards > * > tr > td.da-act { display: none !important; }
  .page-du-an table.da-list.m-cards > * > tr > td.da-mcell { padding-top: 8px !important; border-top: 1px solid #e2e8f0 !important; }
  .page-du-an table.da-list.m-cards > * > tr > td.da-attn-cell::before { display: none; }
  .page-du-an table.m-cards > * > tr > td .da-st-sub { display: inline; margin-left: 6px; }
  .page-du-an table.m-cards > * > tr > td.m-title .sub { font-weight: 400; } /* ô tiêu đề thẻ in đậm (mobile.css) — dòng xám thì không */
  .page-du-an table.da-orders.m-cards > * > tr > td.da-ocontent { order: 8; } /* Nội dung xuống cuối thẻ: 3 ô số đứng liền nhau */
  .page-du-an .da-attn-box { max-width: none; padding: 8px 10px; border: 1px solid #fcd34d; border-radius: 9px; background: #fffbeb; color: #92400e; }
  .page-du-an table.m-cards > * > tr.da-row-off { opacity: 0.6; }
  .page-du-an table.m-cards > * > tr.da-row-off > td { opacity: 1; }

  /* menu "⋯": trên thẻ hiện sẵn 2 nút (không nổi) */
  .page-du-an .da-more-btn { display: none; }
  .page-du-an .da-more { display: flex; width: 100%; }
  .page-du-an .da-pop { position: static; display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; width: 100%; min-width: 0; padding: 0; border: 0; background: none; box-shadow: none; }
  .page-du-an .da-pop button { flex: 1 1 0; min-height: 40px; border: 1px solid var(--border-strong); text-align: center; white-space: normal; }

  /* Hộp thoại gần toàn màn hình, thanh nút dính đáy luôn thấy — khung chung của mọi hộp Dự án (hộp lý do ở đây, hộp Chuyển dự án / Sửa
     thông tin ở du-an-transfer.css). */
  .modal-backdrop.da-backdrop { padding: 0; align-items: flex-start; }
  .da-modal, .da-modal.modal-wide { max-width: none; min-height: 100%; border-radius: 0; }
  .da-modal .modal-head { position: sticky; top: 0; z-index: 3; padding: 12px 16px 10px; background: var(--surface); border-bottom: 1px solid var(--border); }
  .da-modal .modal-body { padding: 12px 16px 20px; }
  .da-modal textarea, .da-modal select { font-size: 16px; }
  .da-modal .modal-actions { position: sticky; bottom: 0; z-index: 2; margin: 14px -16px -20px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--surface); border-top: 1px solid var(--border); }
  .da-modal .form-error { scroll-margin-bottom: 90px; }
}
