/* Khung điện thoại v2 (mockup 2026-10-14): thanh tab dưới, bảng Thêm, thanh trên 56px, dải bước dạng chip,
   nút bước dính đáy, danh sách dự án dạng thẻ 12 đoạn, bảng → thẻ. Chỉ trình bày; không đổi nghiệp vụ/API/quyền.
   Bật bằng html.bms-phone-v2 (bms-phone-shell.js) ở breakpoint điện thoại dùng chung (≤900px dọc, ≤950×500 ngang). */
html.bms-phone-v2 {
  --ph-primary: #4080ff; --ph-primary-soft: #e8f0ff; --ph-ok: #2fa85f; --ph-ok-soft: #e4f6ea; --ph-warn: #a56b00; --ph-warn-soft: #fff4dc;
  --ph-danger: #d63b3b; --ph-danger-soft: #fde8e8; --ph-ink: #16202c; --ph-muted: #66717f; --ph-line: #e3e8ef; --ph-bg: #f3f5f8; --ph-card: #fff; --ph-purple: #7b4fd6; --ph-purple-soft: #f0e8ff; --ph-chip-bg: #eef1f5; --ph-primary-ink: #1f4fb8; --ph-ok-ink: #1f7a45;
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  html.bms-phone-v2 body { background: var(--ph-bg); }
  html.bms-phone-v2 .app-shell:not([inert]) { padding-top: 0 !important; padding-bottom: 76px; }
  html.bms-phone-v2 header.topbar { position: fixed !important; top: 0; left: 0; right: 0; }
  html.bms-phone-v2 .workspace { margin-top: 56px; }
  html.bms-phone-v2 .workspace { padding: 12px 0 90px !important; }
  html.bms-phone-v2 .content { padding-left: 0 !important; padding-right: 0 !important; }
  html.bms-phone-v2 .panel { padding: 0 !important; gap: 12px; }

  /* ===== Thanh trên 56px ===== */
  html.bms-phone-v2 header.topbar { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; min-height: 56px !important; height: 56px; padding: 0 12px !important; display: flex; align-items: center; gap: 8px; background: var(--ph-card); border-bottom: 1px solid var(--ph-line); box-shadow: none !important; position: sticky; top: 0; z-index: 60; }
  html.bms-phone-v2 #mobileNavToggle, html.bms-phone-v2 .topbar-release-meta, html.bms-phone-v2 .shell-breadcrumb-root,
  html.bms-phone-v2 .shell-breadcrumbs > span:not([id]), html.bms-phone-v2 #shellBreadcrumbProjectSeparator, html.bms-phone-v2 #shellBreadcrumbProject,
  html.bms-phone-v2 .shell-global-search, html.bms-phone-v2 #floatingActionsContainer, html.bms-phone-v2 #demoModeBadge { display: none !important; }
  html.bms-phone-v2 .topbar-brand { flex: 1; min-width: 0; }
  html.bms-phone-v2 .shell-breadcrumbs { display: block; }
  html.bms-phone-v2 #shellBreadcrumbCurrent { display: block; font-size: 19px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .topbar-user-actions { gap: 4px; }
  html.bms-phone-v2 #notificationBell { width: 40px; height: 40px; border-radius: 12px; background: transparent; border: 0; box-shadow: none; }
  html.bms-phone-v2 #notificationDropdown:not([hidden]) { position: fixed !important; left: 0 !important; right: 0 !important; top: 56px !important; bottom: 64px !important; height: auto !important; width: auto !important; max-height: none !important; border-radius: 0 !important; overflow: auto; display: flex !important; flex-direction: column; box-shadow: none !important; border: 0 !important; }
  html.bms-phone-v2 #notificationDropdown:not([hidden]) > * { flex: 0 0 auto; }

  /* ===== Bỏ khối giới thiệu module ===== */
  html.bms-phone-v2 .task-page-header, html.bms-phone-v2 .section-title.relationship-title, html.bms-phone-v2 header.hrm-hero,
  html.bms-phone-v2 .tpm-hero, html.bms-phone-v2 .settings-panel > .section-title, html.bms-phone-v2 .users-panel > .section-title,
  html.bms-phone-v2 .feedback-center-panel > .section-title > div, html.bms-phone-v2 .hrm-section-heading, html.bms-phone-v2 .task-section-header > div,
  html.bms-phone-v2 .project-queue-footer, html.bms-phone-v2 .pop-nexus-explain-chip, html.bms-phone-v2 .workflow-page-heading-block h2,
  html.bms-phone-v2 .workflow-page-heading-block .workflow-page-project-context, html.bms-phone-v2 .costing-table-bar .bms-hs-full-toggle,
  html.bms-phone-v2 .deal-table-actions .bms-hs-full-toggle, html.bms-phone-v2 .bms-permission-grid__summary, html.bms-phone-v2 .workflow-v8-discussion .project-discussion-trigger-label { display: none !important; }
  html.bms-phone-v2 .feedback-center-panel > .section-title { justify-content: flex-end; }

  /* ===== Tab ngang gạch chân ===== */
  html.bms-phone-v2 .tasks-hub-tabs, html.bms-phone-v2 .relationship-tabs, html.bms-phone-v2 .hrm-tabs, html.bms-phone-v2 .bms-wave-5 .panel[data-panel="settings"] .settings-subtabs, html.bms-phone-v2 .settings-subtabs,
  html.bms-phone-v2 .ifm-tabs, html.bms-phone-v2 .wk-tabs, html.bms-phone-v2 .task-view-tabs {
    display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; overflow-x: auto; scrollbar-width: none; margin: 0 !important; padding: 0 8px !important; background: var(--ph-card); border-bottom: 1px solid var(--ph-line); border-radius: 0 !important; box-shadow: none !important; width: auto !important;
  }
  html.bms-phone-v2 .tasks-hub-tabs::-webkit-scrollbar, html.bms-phone-v2 .relationship-tabs::-webkit-scrollbar { display: none; }
  html.bms-phone-v2 .tasks-hub-tabs > button, html.bms-phone-v2 .relationship-tabs > button, html.bms-phone-v2 .hrm-tabs > button, html.bms-phone-v2 .hrm-tabs > a,
  html.bms-phone-v2 .bms-wave-5 .panel[data-panel="settings"] .settings-subtab, html.bms-phone-v2 .settings-subtabs > button, html.bms-phone-v2 .ifm-tabs > button, html.bms-phone-v2 .wk-tabs > button, html.bms-phone-v2 .task-view-tabs > button {
    flex: 0 0 auto !important; width: auto !important; min-height: 44px; padding: 0 12px !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; background: transparent !important; color: var(--ph-muted) !important; font-weight: 600; font-size: 14px; box-shadow: none !important; white-space: nowrap;
  }
  html.bms-phone-v2 .tasks-hub-tabs > button.active, html.bms-phone-v2 .relationship-tabs > button.active, html.bms-phone-v2 .hrm-tabs > button.active,
  html.bms-phone-v2 .settings-subtabs > button.active, html.bms-phone-v2 .ifm-tabs > button.active, html.bms-phone-v2 .wk-tabs > button.active, html.bms-phone-v2 .task-view-tabs > button.active {
    color: var(--ph-primary) !important; border-bottom-color: var(--ph-primary) !important;
  }
  html.bms-phone-v2 .wk-tabs > button > span { color: inherit; }

  /* ===== Số liệu dạng lưới ô 60px ===== */
  html.bms-phone-v2 .metric-grid, html.bms-phone-v2 .task-metrics, html.bms-phone-v2 .crm-v2-kpis, html.bms-phone-v2 .srm-v2-kpis,
  html.bms-phone-v2 .wk-kpis, html.bms-phone-v2 .ifm-kpi-grid, html.bms-phone-v2 .hrm-metrics, html.bms-phone-v2 .inventory-metrics,
  html.bms-phone-v2 .approval-kpis, html.bms-phone-v2 .fg-metrics, html.bms-phone-v2 .ar-metrics, html.bms-phone-v2 .qc-metrics {
    display: grid !important; grid-auto-flow: row !important; grid-auto-columns: auto !important; grid-template-areas: none !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; margin: 0 !important; overflow: visible !important;
  }
  html.bms-phone-v2 .metric-grid, html.bms-phone-v2 .task-metrics, html.bms-phone-v2 .hrm-metrics, html.bms-phone-v2 .approval-kpis, html.bms-phone-v2 .ifm-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  html.bms-phone-v2 .metric-grid > *, html.bms-phone-v2 .task-metrics > *, html.bms-phone-v2 .crm-v2-kpis > *, html.bms-phone-v2 .srm-v2-kpis > *,
  html.bms-phone-v2 .wk-kpis > *, html.bms-phone-v2 .ifm-kpi-grid > *, html.bms-phone-v2 .hrm-metrics > *, html.bms-phone-v2 .inventory-metrics > *,
  html.bms-phone-v2 .approval-kpis > *, html.bms-phone-v2 .fg-metrics > *, html.bms-phone-v2 .ar-metrics > *, html.bms-phone-v2 .qc-metrics > * {
    grid-column: auto !important; grid-row: auto !important; grid-area: auto !important;
    display: flex !important; flex-direction: column; justify-content: center; gap: 2px; min-height: 60px; padding: 8px 10px !important; margin: 0 !important; background: var(--ph-card) !important; border: 1px solid var(--ph-line) !important; border-radius: 12px !important; box-shadow: none !important; text-align: left; min-width: 0;
  }
  html.bms-phone-v2 .metric-grid > * > span, html.bms-phone-v2 .task-metrics > * > span, html.bms-phone-v2 .crm-v2-kpis > * > span, html.bms-phone-v2 .srm-v2-kpis > * > span,
  html.bms-phone-v2 .wk-kpis > * > span, html.bms-phone-v2 .ifm-kpi-grid > * > span, html.bms-phone-v2 .hrm-metrics > * > span, html.bms-phone-v2 .inventory-metrics > * > span,
  html.bms-phone-v2 .approval-kpis dt { font-size: 11px !important; color: var(--ph-muted) !important; text-transform: none !important; letter-spacing: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .metric-grid > * > strong, html.bms-phone-v2 .task-metrics > * > strong, html.bms-phone-v2 .crm-v2-kpis > * > strong, html.bms-phone-v2 .srm-v2-kpis > * > strong,
  html.bms-phone-v2 .wk-kpis > * > strong, html.bms-phone-v2 .ifm-kpi-grid > * > strong, html.bms-phone-v2 .ifm-kpi-grid > * > b, html.bms-phone-v2 .hrm-metrics > * > strong, html.bms-phone-v2 .inventory-metrics > * > strong,
  html.bms-phone-v2 .approval-kpis dd { font-size: 20px !important; line-height: 1.1; font-weight: 700; color: var(--ph-ink); margin: 0; }
  html.bms-phone-v2 .crm-v2-kpis > * > small, html.bms-phone-v2 .wk-kpis > * > small { display: none; }
  html.bms-phone-v2 .srm-v2-kpi.danger strong, html.bms-phone-v2 .wk-kpi.is-alert strong { color: var(--ph-danger) !important; }
  html.bms-phone-v2 .srm-v2-kpi.warning strong, html.bms-phone-v2 .wk-kpi.is-warn strong { color: var(--ph-warn) !important; }


  /* ===== Lưới nhiều cột của module → xếp 1 cột ===== */
  html.bms-phone-v2 .srm-v2-overview-grid, html.bms-phone-v2 .srm-v2-dashboard-grid, html.bms-phone-v2 .srm-v2-dashboard-grid.lower,
  html.bms-phone-v2 .srm-plan-list, html.bms-phone-v2 .srm-transport-reconciliation-grid, html.bms-phone-v2 .hrm-grid, html.bms-phone-v2 .tpm-grid,
  html.bms-phone-v2 .crm-v3-chart-grid, html.bms-phone-v2 .crm-pool-grid, html.bms-phone-v2 .crm-pool-detail-grid,
  html.bms-phone-v2 .settings-grid, html.bms-phone-v2 .dashboard-grid {
    display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; overflow: visible !important;
  }
  html.bms-phone-v2 .srm-v2-overview-grid > *, html.bms-phone-v2 .hrm-grid > *, html.bms-phone-v2 .tpm-grid > * { min-width: 0 !important; width: auto !important; }
  html.bms-phone-v2 .crm-v3-grid, html.bms-phone-v2 .crm-v3-rate-grid, html.bms-phone-v2 .srm-iqc-summary, html.bms-phone-v2 .srm-payment-doc-checklist,
  html.bms-phone-v2 .srm-payment-request-meta, html.bms-phone-v2 .srm-v2-consolidation-summary, html.bms-phone-v2 .ann-kpis, html.bms-phone-v2 .ann-depts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html.bms-phone-v2 .wk-kpis { grid-auto-flow: row !important; border: 0 !important; background: none !important; }
  html.bms-phone-v2 .wk-kpis > .wk-kpi { border-left: 1px solid var(--ph-line) !important; }
  /* Biểu mẫu 2–3 cột → 1 cột */
  html.bms-phone-v2 .srmIqcForm, html.bms-phone-v2 #srmExecutePaymentForm, html.bms-phone-v2 .hrm-payment-form-grid, html.bms-phone-v2 .crm-pool-fields,
  html.bms-phone-v2 .hrm-request-dialog #hrmDynamicFields, html.bms-phone-v2 .srm-tinv-fields, html.bms-phone-v2 .srm-v2-supplier-picker,
  html.bms-phone-v2 .form-grid {
    grid-template-columns: minmax(0, 1fr) !important; min-width: 0 !important;
  }

  /* ===== Thẻ chung ===== */
  html.bms-phone-v2 .dashboard-insight-card, html.bms-phone-v2 .task-workspace-card, html.bms-phone-v2 .crm-v2-card, html.bms-phone-v2 .srm-v2-card,
  html.bms-phone-v2 .wk-card, html.bms-phone-v2 .hrm-card, html.bms-phone-v2 .ifm-card, html.bms-phone-v2 .settings-card, html.bms-phone-v2 .solution-card,
  html.bms-phone-v2 .khx-card, html.bms-phone-v2 .approval-sheet, html.bms-phone-v2 .quotation-roadmap-card {
    border-radius: 14px !important; border: 1px solid var(--ph-line) !important; box-shadow: none !important; background: var(--ph-card);
  }
  html.bms-phone-v2 .dashboard-insight-card header h3, html.bms-phone-v2 .crm-v2-card h3, html.bms-phone-v2 .srm-v2-card h3 { font-size: 15px; }
  html.bms-phone-v2 .production-progress-dashboard { border-radius: 14px; overflow: hidden; }

  /* ===== Nút ===== */
  html.bms-phone-v2 .btn { min-height: 44px; border-radius: 12px !important; font-weight: 600; }
  html.bms-phone-v2 .btn.primary, html.bms-phone-v2 .btn.approve, html.bms-phone-v2 .btn.success { background: var(--ph-primary) !important; border-color: var(--ph-primary) !important; color: var(--ph-card) !important; }
  html.bms-phone-v2 .btn.approve { background: var(--ph-ok) !important; border-color: var(--ph-ok) !important; }
  html.bms-phone-v2 .btn.reject, html.bms-phone-v2 .btn.danger { background: var(--ph-danger-soft) !important; color: var(--ph-danger) !important; border-color: transparent !important; }
  html.bms-phone-v2 .bms-search, html.bms-phone-v2 .bms-search__input { border-radius: 24px !important; }

  /* ===== Thanh nút dính đáy (bước dự án) ===== */
  html.bms-phone-v2 .ph-actions { flex-wrap: wrap; position: fixed; left: 0; right: 0; bottom: 64px; z-index: 55; display: flex; gap: 10px; padding: 10px 12px; background: rgba(255,255,255,.96); border-top: 1px solid var(--ph-line); backdrop-filter: blur(8px); }
  html.bms-phone-v2 .ph-actions:empty { display: none; }
  html.bms-phone-v2 .ph-actions .btn, html.bms-phone-v2 .ph-actions button { flex: 1 1 28%; min-height: 48px; margin: 0 !important; width: auto !important; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-actions .inventory-issue-status { flex: 0 0 auto; align-self: center; }
  html.bms-phone-v2 .panel.has-ph-actions { padding-bottom: 80px !important; }
  html.bms-phone-v2 .task-section-header { padding: 0 !important; border: 0 !important; background: transparent !important; }
  html.bms-phone-v2 #taskCreateBtn, html.bms-phone-v2 #warehouseCreateBtn { position: fixed; right: 16px; bottom: 80px; z-index: 54; border-radius: 24px !important; min-height: 48px; padding: 0 18px; box-shadow: 0 6px 18px rgba(64,128,255,.35); }

  /* ===== Dải bước 1–12 dạng chip ===== */
  html.bms-phone-v2 #workflowStrip { position: sticky !important; top: 56px !important; z-index: 50; background: var(--ph-card); margin: -12px 0 0 !important; padding: 0 !important; border-bottom: 1px solid var(--ph-line); }
  html.bms-phone-v2 .workflow-v8-head { padding: 6px 8px !important; }
  html.bms-phone-v2 .workflow-v8-project-identity strong { font-size: 16px; }
  html.bms-phone-v2 .workflow-v8-project-identity span { font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 .workflow-track { display: flex !important; flex-wrap: nowrap !important; gap: 6px !important; overflow-x: auto !important; padding: 6px 12px 10px !important; scrollbar-width: none; transform: none !important; height: auto !important; }
  html.bms-phone-v2 .workflow-track::-webkit-scrollbar { display: none; }
  html.bms-phone-v2 .workflow-track { width: 100%; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box; }
  html.bms-phone-v2 .quotation-roadmap-card { max-width: 100%; min-width: 0; overflow: hidden; }
  html.bms-phone-v2 .workflow-track .workflow-node::before, html.bms-phone-v2 .workflow-track .workflow-node::after { display: none !important; content: none !important; }
  html.bms-phone-v2 .quotation-roadmap-scroll { max-width: 100% !important; overflow-x: auto !important; }
  html.bms-phone-v2 .quotation-roadmap-track { display: flex !important; flex-wrap: nowrap; min-width: 0 !important; width: max-content !important; max-width: none !important; grid-template-columns: none !important; gap: 6px; padding: 8px 2px; }
  html.bms-phone-v2, html.bms-phone-v2 body { overflow-x: hidden; }
  html.bms-phone-v2 .workspace, html.bms-phone-v2 .content, html.bms-phone-v2 .panel { overflow-x: clip; }
  html.bms-phone-v2 .quotation-document-actions, html.bms-phone-v2 .quotation-document-actions > div { flex-wrap: wrap; min-width: 0; }
  html.bms-phone-v2 .quotation-document-actions .btn { min-width: 0 !important; }
  html.bms-phone-v2 #workflowStrip:not([hidden]) { overflow: hidden !important; }
  html.bms-phone-v2 .workflow-track .workflow-node { flex: 0 0 auto !important; display: inline-flex !important; align-items: center; gap: 6px; height: 34px !important; min-height: 34px !important; max-height: 34px !important; align-self: center; width: auto !important; padding: 0 12px 0 8px !important; border-radius: 17px !important; border: 1px solid var(--ph-line) !important; background: var(--ph-card) !important; position: relative !important; transform: none !important; opacity: 1 !important; margin: 0 !important; }
  html.bms-phone-v2 .workflow-track .workflow-node strong { font-size: 13px; color: var(--ph-ink); white-space: nowrap; }
  html.bms-phone-v2 .workflow-track .workflow-node .workflow-node-number { width: 20px; height: 20px; border-radius: 50%; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; background: var(--ph-chip-bg); color: var(--ph-muted); }
  html.bms-phone-v2 .workflow-track .workflow-node.status-completed { background: var(--ph-ok-soft) !important; border-color: transparent !important; }
  html.bms-phone-v2 .workflow-track .workflow-node.status-completed .workflow-node-number { background: var(--ph-ok); color: var(--ph-card); }
  html.bms-phone-v2 .workflow-track .workflow-node.status-in_progress .workflow-node-number { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .workflow-track .workflow-node.active { background: var(--ph-primary) !important; border-color: var(--ph-primary) !important; }
  html.bms-phone-v2 .workflow-track .workflow-node.active strong, html.bms-phone-v2 .workflow-track .workflow-node.active .workflow-node-number { color: var(--ph-card); background: rgba(255,255,255,.22); }
  html.bms-phone-v2 .workflow-track .workflow-node.workflow-mobile-dashboard { display: none !important; }
  html.bms-phone-v2 .workflow-current-marker, html.bms-phone-v2 .workflow-mobile-wheel, html.bms-phone-v2 .workflow-node small,
  html.bms-phone-v2 #workflowStrip .workflow-node::before, html.bms-phone-v2 #workflowStrip .workflow-node::after { display: none !important; }
  html.bms-phone-v2 header.workflow-page-title { padding: 0 !important; margin: 0 !important; min-height: 0 !important; border: 0 !important; background: transparent !important; }

  /* Danh sách dự án (hub): không hiện thanh nút của bước 1 */
  html.bms-phone-v2 body:has(.panel[data-panel="project"].active.project-hub-mode) .ph-actions[data-panel="project"] { display: none !important; }
  html.bms-phone-v2 .ph-actions[hidden] { display: none !important; }
  /* Màn ngang: bỏ hàng tiêu đề dự án trong dải bước để còn chỗ nội dung */
  @media (max-height: 500px) {
    html.bms-phone-v2 #workflowStrip .workflow-v8-head { height: 44px !important; min-height: 44px !important; }
    html.bms-phone-v2 body:has(#workflowStrip:not([hidden])):not(:has(.panel[data-panel="project"].active.project-hub-mode)) .workspace { margin-top: 96px; }
    html.bms-phone-v2 .ph-actions { padding: 6px 12px !important; }
  }

  /* ===== Danh sách dự án → thẻ ===== */
  html.bms-phone-v2 .project-queue-table-wrap { display: none !important; }
  html.bms-phone-v2 .dashboard-queue-heading { padding: 0 !important; }
  html.bms-phone-v2 .ph-cards { display: flex; flex-direction: column; gap: 10px; }
  html.bms-phone-v2 .ph-pc { background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; cursor: pointer; }
  html.bms-phone-v2 .ph-pc.is-active { border-color: var(--ph-primary); box-shadow: 0 0 0 2px var(--ph-primary-soft); }
  html.bms-phone-v2 .ph-pc .r { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
  html.bms-phone-v2 .ph-pc .code { font-weight: 800; font-size: 16px; color: var(--ph-ink); display: flex; align-items: center; gap: 6px; }
  html.bms-phone-v2 .ph-pc .chip { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--ph-chip-bg); color: var(--ph-muted); white-space: nowrap; }
  html.bms-phone-v2 .ph-pc .chip.doing { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-pc .chip.review { background: var(--ph-warn-soft); color: var(--ph-warn); }
  html.bms-phone-v2 .ph-pc .chip.approved, html.bms-phone-v2 .ph-pc .chip.done { background: var(--ph-ok-soft); color: var(--ph-ok); }
  html.bms-phone-v2 .ph-pc .chip.rejected { background: var(--ph-danger-soft); color: var(--ph-danger); }
  html.bms-phone-v2 .ph-pc .name { font-size: 14px; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-pc .sub { font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-pc .seg { display: grid; grid-template-columns: repeat(12, 1fr); gap: 3px; }
  html.bms-phone-v2 .ph-pc .seg i { height: 5px; border-radius: 3px; background: #e3e8ef; }
  html.bms-phone-v2 .ph-pc .seg i.d { background: var(--ph-ok); }
  html.bms-phone-v2 .ph-pc .seg i.c { background: var(--ph-primary); }
  html.bms-phone-v2 .ph-pc .foot { font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 .ph-pc .money { font-weight: 700; font-size: 14px; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-pc .cmt { width: 32px; height: 32px; border: 0; background: transparent; padding: 0; display: inline-flex; }
  html.bms-phone-v2 .ph-pc .cmt svg { width: 22px; height: 22px; }

  /* ===== Bảng thường → thẻ theo dòng ===== */
  html.bms-phone-v2 .ph-tcard table, html.bms-phone-v2 .ph-tcard thead, html.bms-phone-v2 .ph-tcard tbody, html.bms-phone-v2 .ph-tcard tr, html.bms-phone-v2 .ph-tcard td { display: block; width: 100% !important; min-width: 0 !important; }
  html.bms-phone-v2 .ph-tcard thead { display: none; }
  html.bms-phone-v2 .ph-tcard tbody tr { background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; }
  html.bms-phone-v2 .ph-tcard td { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0 !important; border: 0 !important; text-align: left !important; font-size: 13px; max-width: none !important; white-space: normal !important; overflow: visible !important; }
  html.bms-phone-v2 .ph-tcard td:empty, html.bms-phone-v2 .ph-tcard td.ph-empty { display: none; }
  html.bms-phone-v2 .ph-tcard td::before { content: attr(data-label); color: var(--ph-muted); font-size: 12px; flex: 0 0 38%; }
  html.bms-phone-v2 .ph-tcard td:first-child { font-weight: 700; font-size: 14px; }
  html.bms-phone-v2 .ph-tcard td:first-child::before { display: none; }
  html.bms-phone-v2 .ph-tcard td:has(> .btn) { flex-wrap: wrap; justify-content: flex-start; gap: 6px; padding-top: 8px !important; }
  html.bms-phone-v2 .ph-tcard td:has(> .btn)::before { display: none; }
  html.bms-phone-v2 .ph-tcard td > .btn { flex: 1 1 auto; min-width: 0; margin: 0 !important; }
  html.bms-phone-v2 .ph-tcard .bms-hs-arrow, html.bms-phone-v2 .ph-tcard .bms-hs-scroller-arrows { display: none !important; }
  html.bms-phone-v2 .ph-tcard.table-wrap, html.bms-phone-v2 .ph-tcard .table-wrap { overflow: visible !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }

  /* ===== Thanh tab dưới ===== */
  html.bms-phone-v2 .ph-tabbar { position: fixed; left: 0; right: 0; bottom: 0; height: 64px; padding-bottom: env(safe-area-inset-bottom, 0); z-index: 70; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--ph-card); border-top: 1px solid var(--ph-line); }
  html.bms-phone-v2 .ph-tabbar button { border: 0; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font: 600 11px/1 Roboto, system-ui, sans-serif; color: var(--ph-muted); position: relative; padding: 0; }
  html.bms-phone-v2 .ph-tabbar button svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  html.bms-phone-v2 .ph-tabbar button.on { color: var(--ph-primary); }
  html.bms-phone-v2 .ph-tabbar .badge { position: absolute; top: 8px; left: calc(50% + 4px); min-width: 16px; height: 16px; border-radius: 8px; background: var(--ph-danger); color: var(--ph-card); font-size: 10px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
  html.bms-phone-v2 .ph-tabbar .badge:empty, html.bms-phone-v2 .ph-tabbar .badge[data-n="0"] { display: none; }

  /* ===== Bảng "Thêm" ===== */
  html.bms-phone-v2 .ph-sheet-bg { position: fixed; inset: 0; background: rgba(16,24,40,.45); z-index: 80; display: none; }
  html.bms-phone-v2 .ph-sheet-bg.open { display: block; }
  html.bms-phone-v2 .ph-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 81; background: var(--ph-card); border-radius: 20px 20px 0 0; padding: 8px 16px calc(16px + env(safe-area-inset-bottom, 0)); transform: translateY(100%); transition: transform .22s ease; max-height: 80vh; overflow: auto; }
  html.bms-phone-v2 .ph-sheet.open { transform: none; }
  html.bms-phone-v2 .ph-sheet .grip { width: 40px; height: 4px; border-radius: 2px; background: #d7dde6; margin: 4px auto 12px; }
  html.bms-phone-v2 .ph-sheet .who { display: flex; align-items: center; gap: 10px; padding: 6px 0 14px; border-bottom: 1px solid var(--ph-line); margin-bottom: 12px; }
  html.bms-phone-v2 .ph-sheet .who .av { width: 40px; height: 40px; border-radius: 50%; background: var(--ph-primary); color: var(--ph-card); display: flex; align-items: center; justify-content: center; font-weight: 700; }
  html.bms-phone-v2 .ph-sheet .who b { display: block; font-size: 15px; }
  html.bms-phone-v2 .ph-sheet .who small { color: var(--ph-muted); }
  html.bms-phone-v2 .ph-sheet .grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 6px; }
  html.bms-phone-v2 .ph-sheet .grid button { border: 0; background: transparent; display: flex; flex-direction: column; align-items: center; gap: 6px; font: 500 11.5px/1.2 Roboto, system-ui, sans-serif; color: var(--ph-ink); padding: 4px 0; }
  html.bms-phone-v2 .ph-sheet .grid button i { width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-sheet .grid button i svg { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  html.bms-phone-v2 .ph-sheet .out { margin-top: 14px; width: 100%; min-height: 46px; border-radius: 12px; border: 1px solid var(--ph-line); background: var(--ph-card); color: var(--ph-danger); font-weight: 600; }

  /* ===== Ẩn drawer menu cũ ===== */
  html.bms-phone-v2 #mainNavigation { display: none !important; }
  html.bms-phone-v2 .app-shell { grid-template-columns: 1fr !important; }
}

/* ===== Đợt 2 (rà soát vòng 1): thanh trên đủ chat/AI/tìm kiếm, Thông báo, nút bước, bảng Thêm theo nhóm, FAB, Cài đặt ===== */
html.bms-phone-v2 {
  --ph-crm: #2f6fed; --ph-crm-soft: #e3ecff; --ph-srm: #e6761a; --ph-srm-soft: #fff0e3; --ph-kho: #0e9f8f; --ph-kho-soft: #e0f6f3;
  --ph-tpm: #5a6b85; --ph-tpm-soft: #e9edf3; --ph-ifm: #7b4fd6; --ph-ifm-soft: #f0e8ff; --ph-hrm: #d63b6b; --ph-hrm-soft: #fde8ef; --ph-pop: #1f2a3a; --ph-pop-soft: #e5e9ef;
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* chat nội bộ + trợ lý AI: nằm trên thanh trên thay vì bong bóng nổi */
  html.bms-phone-v2 #floatingActionsContainer { display: flex !important; position: fixed !important; top: 8px !important; right: 96px !important; left: auto !important; bottom: auto !important; z-index: 61; flex-direction: row !important; gap: 2px !important; margin: 0 !important; padding: 0 !important; }
  html.bms-phone-v2 #floatingActionsContainer .floating-action-host { position: static !important; margin: 0 !important; }
  html.bms-phone-v2 #floatingActionsContainer button.floating-action-bubble { width: 40px !important; height: 40px !important; border-radius: 12px !important; background: transparent !important; color: var(--ph-ink) !important; box-shadow: none !important; border: 0 !important; }
  html.bms-phone-v2 #floatingActionsContainer button.floating-action-bubble svg { width: 22px; height: 22px; }
  html.bms-phone-v2 #floatingActionsContainer button.floating-action-bubble .floating-action-bubble__label { display: none !important; }
  /* tìm kiếm chung: nút 🔍 trên thanh trên, ô tìm hiện thành một hàng dưới thanh trên */
  html.bms-phone-v2 .ph-search-btn { width: 40px; height: 40px; border: 0; background: transparent; border-radius: 12px; color: var(--ph-ink); display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  html.bms-phone-v2 .ph-search-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  html.bms-phone-v2.ph-search-open .shell-global-search { display: block !important; position: fixed; top: 56px; left: 0; right: 0; z-index: 62; padding: 8px 12px; background: var(--ph-card); border-bottom: 1px solid var(--ph-line); max-width: none !important; width: auto !important; }
  html.bms-phone-v2.ph-search-open .shell-global-search .bms-search { width: 100%; }
  html.bms-phone-v2.ph-search-open #globalSearchResults { position: static !important; max-height: 60vh; overflow: auto; }
  /* badge chuông: ẩn khi 0 */
  html.bms-phone-v2 #notificationBadge[hidden] { display: none !important; }
  /* màn Thông báo: tiêu đề + nút đóng */
  html.bms-phone-v2 .ph-notif-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--ph-line); font-size: 17px; }
  html.bms-phone-v2 .ph-notif-close { width: 36px; height: 36px; border: 1px solid var(--ph-line); border-radius: 50%; background: var(--ph-card); font-size: 20px; line-height: 1; color: var(--ph-ink); }
  /* thanh nút đáy: Xóa dự án đã có trong menu ⋯; nút duyệt một hàng; ≤3 nút chia đều */
  html.bms-phone-v2 .ph-actions #deleteProjectBtn { display: none !important; }
  html.bms-phone-v2 .ph-actions { max-width: 100vw; box-sizing: border-box; }
  html.bms-phone-v2 .ph-actions > .btn, html.bms-phone-v2 .ph-actions #approvalActions > .btn { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; max-width: none !important; white-space: normal; line-height: 1.15; font-size: 14px !important; padding: 6px 8px !important; }
  html.bms-phone-v2 .ph-actions #approvalActions { display: flex !important; flex: 1 1 100%; gap: 8px; }
  html.bms-phone-v2 .ph-actions .ph-more { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--ph-line); border-radius: 12px; background: var(--ph-card); display: inline-flex; align-items: center; justify-content: center; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-actions .ph-more svg { width: 22px; height: 22px; fill: currentColor; }
  html.bms-phone-v2 .ph-actions .ph-more-menu { position: absolute; left: 12px; bottom: calc(100% + 6px); min-width: 220px; max-width: calc(100vw - 24px); background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 14px; box-shadow: 0 8px 24px rgba(22,32,44,.14); padding: 6px; display: flex; flex-direction: column; gap: 4px; }
  html.bms-phone-v2 .ph-actions .ph-more-menu[hidden] { display: none; }
  html.bms-phone-v2 .ph-actions .ph-more-menu > .btn { width: 100%; justify-content: flex-start; text-align: left; }
  /* popover Lọc không bị thanh tab che */
  html.bms-phone-v2 .bms-search__popover { top: auto !important; bottom: 76px !important; max-height: calc(100dvh - 56px - 76px - 24px) !important; overflow: auto !important; }
  /* danh sách dự án (hub): không hiện dải bước (cả màn ngang) */
  html.bms-phone-v2 body:has(.panel[data-panel="project"].active.project-hub-mode) #workflowStrip { display: none !important; }
  html.bms-phone-v2 .panel[data-panel="project"].project-hub-mode #projectQueueSection > .section-title h2,
  html.bms-phone-v2 .panel[data-panel="project"].project-hub-mode .project-queue-heading h2 { display: none !important; }
  html.bms-phone-v2 #projectQueueExpandBtn { display: none !important; }
  /* đầu bước dự án: "‹ mã · Bước n/12 · tên bước" + 💬 lên thanh trên */
  html.bms-phone-v2 #workflowStrip:not([hidden]) { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 64 !important; margin: 0 !important; background: var(--ph-card); }
  html.bms-phone-v2 body:has(#workflowStrip:not([hidden])):not(:has(.panel[data-panel="project"].active.project-hub-mode)) .workspace { margin-top: 110px; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head { height: 56px !important; min-height: 56px !important; padding: 0 8px 0 4px !important; border-bottom: 1px solid var(--ph-line) !important; display: flex !important; align-items: center !important; gap: 6px !important; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-project-identity { flex: 1 1 auto; min-width: 0; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-project-identity strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 17px; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-project-identity span { display: none !important; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-back { width: 40px; height: 40px; flex: 0 0 40px; }
  html.bms-phone-v2 #workflowStrip .workflow-track { padding-top: 8px !important; }
  html.bms-phone-v2 .workflow-page-heading-block { display: none !important; }
  /* nút nổi (+) từng module: cùng kiểu #taskCreateBtn */
  html.bms-phone-v2 .ph-fab { position: fixed !important; right: 16px !important; bottom: 80px !important; z-index: 54 !important; height: 48px !important; min-height: 48px !important; padding: 0 18px !important; border-radius: 24px !important; box-shadow: 0 6px 18px rgba(64,128,255,.35) !important; background: var(--ph-primary) !important; color: var(--ph-card) !important; border: 0 !important; font-weight: 700 !important; width: auto !important; margin: 0 !important; }
  html.bms-phone-v2 .ph-fab[hidden], html.bms-phone-v2 .panel:not(.active) .ph-fab { display: none !important; }
  html.bms-phone-v2 #newProjectBtn.ph-fab { width: 52px !important; height: 52px !important; min-height: 52px !important; border-radius: 50% !important; padding: 0 !important; font-size: 0 !important; }
  html.bms-phone-v2 #newProjectBtn.ph-fab::before { content: "+"; font-size: 28px; line-height: 1; }
  html.bms-phone-v2 #newProjectBtn.ph-fab svg { display: none; }
  /* bảng có ô nhập (BTGV, TTTV, cung ứng…): mỗi ô một dòng nhãn + ô nhập */
  html.bms-phone-v2 .ph-tcard-form td:has(input, select, textarea) { flex-direction: column; align-items: stretch; gap: 4px; }
  html.bms-phone-v2 .ph-tcard-form td:has(input, select, textarea)::before { flex: none; }
  html.bms-phone-v2 .ph-tcard-form td input, html.bms-phone-v2 .ph-tcard-form td select, html.bms-phone-v2 .ph-tcard-form td textarea { width: 100% !important; min-width: 0 !important; }
  html.bms-phone-v2 .ph-tcard td:has(> input[type="checkbox"]:only-child) { justify-content: flex-start; gap: 10px; }
  html.bms-phone-v2 .ph-tcard tfoot, html.bms-phone-v2 .ph-tcard tfoot tr, html.bms-phone-v2 .ph-tcard tfoot td { display: block; width: 100% !important; }
  /* công nợ: nút Tải lên nhỏ bên phải dòng */
  html.bms-phone-v2 .ar-payment-document { display: grid !important; grid-template-columns: 24px minmax(0, 1fr) auto !important; align-items: center; gap: 10px !important; }
  html.bms-phone-v2 .ar-payment-document > .btn { grid-column: 3; width: auto !important; min-height: 36px !important; padding: 0 12px !important; font-size: 13px !important; }
  /* Bảo trì & Nhân sự: ô số liệu dạng lưới */
  html.bms-phone-v2 .tpm-metrics { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  html.bms-phone-v2 .tpm-metrics > .tpm-metric { min-height: 60px; padding: 8px 10px !important; border-radius: 12px !important; display: flex !important; flex-direction: column; justify-content: center; gap: 2px; }
  html.bms-phone-v2 .tpm-metrics > .tpm-metric > span { font-size: 11px !important; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .tpm-metrics > .tpm-metric > strong { font-size: 20px !important; line-height: 1.1; }
  html.bms-phone-v2 .hrm-facts { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  html.bms-phone-v2 .hrm-facts > div { padding: 8px 10px !important; min-height: 60px; }
  /* Cài đặt / Phân quyền: tab xuống dòng dạng chip, thấy đủ mọi mục */
  html.bms-phone-v2 .settings-subtabs, html.bms-phone-v2 #permissionModeTabs { flex-wrap: wrap !important; overflow: visible !important; gap: 6px !important; padding: 8px 0 !important; border-bottom: 0 !important; }
  html.bms-phone-v2 .settings-subtabs > button, html.bms-phone-v2 .settings-subtab { flex: 0 0 auto !important; height: 36px !important; min-height: 36px !important; padding: 0 12px !important; border: 1px solid var(--ph-line) !important; border-radius: 18px !important; background: var(--ph-card) !important; font-size: 13px !important; }
  html.bms-phone-v2 .settings-subtabs > button.active, html.bms-phone-v2 .settings-subtabs > button[aria-selected="true"], html.bms-phone-v2 .settings-subtab.active, html.bms-phone-v2 .settings-subtab[aria-selected="true"] { background: var(--ph-primary) !important; border-color: var(--ph-primary) !important; color: var(--ph-card) !important; }
  /* Tác vụ: nhãn tab ngắn (giao diện tiếng Việt) */
  html.bms-phone-v2[lang="vi"] [data-tasks-hub-tab="approvals"], html.bms-phone-v2[lang="vi"] [data-tasks-hub-tab="announcements"] { font-size: 0 !important; }
  html.bms-phone-v2[lang="vi"] [data-tasks-hub-tab="approvals"]::before { content: "Phê duyệt"; font-size: 14px; }
  html.bms-phone-v2[lang="vi"] [data-tasks-hub-tab="announcements"]::before { content: "Thông báo"; font-size: 14px; }
  html.bms-phone-v2[lang="vi"] [data-tasks-hub-tab="announcements"] > * { font-size: 11px; }
  /* Trang chủ: việc chờ Giám đốc duyệt lên trước, tiến độ (Gantt) xuống dưới */
  html.bms-phone-v2 .panel[data-panel="dashboard"].active { display: flex !important; flex-direction: column; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] > .section-title { order: 0; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] > .metric-grid { order: 1; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] > .dashboard-insight-grid { display: contents !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .dashboard-approval-card { order: 2; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .dashboard-status-card { order: 3; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] > #productionProgressDashboard { order: 4; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .dashboard-recent-card:not(.dashboard-approval-card) { order: 5; }
  /* bảng Thêm: nhóm Nghiệp vụ / Hệ thống, ô màu chữ tắt, Đăng xuất cạnh tên */
  html.bms-phone-v2 .ph-sheet .grid { display: block; }
  html.bms-phone-v2 .ph-sheet .grid h4 { margin: 14px 0 8px; font-size: 13px; font-weight: 700; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-sheet .tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 6px; }
  html.bms-phone-v2 .ph-sheet .grid button i b { font: 800 13px/1 Roboto, system-ui, sans-serif; letter-spacing: .02em; }
  html.bms-phone-v2 .ph-sheet .grid button.tile-crm i { background: var(--ph-crm); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-srm i { background: var(--ph-srm); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-kho i { background: var(--ph-kho); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-tpm i { background: var(--ph-tpm); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-ifm i { background: var(--ph-ifm); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-hrm i { background: var(--ph-hrm); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-pop i { background: var(--ph-pop); color: var(--ph-card); }
  html.bms-phone-v2 .ph-sheet .grid button.tile-sys i { background: var(--ph-tpm-soft); color: var(--ph-tpm); }
  html.bms-phone-v2 .ph-sheet .who { display: flex; align-items: center; gap: 10px; }
  html.bms-phone-v2 .ph-sheet .who > div { flex: 1 1 auto; min-width: 0; }
  html.bms-phone-v2 .ph-sheet .who .out { margin: 0; width: auto; min-height: 36px; padding: 0 12px; font-size: 13px; }

  /* ---- đợt 3: chip trạng thái danh sách dự án */
  html.bms-phone-v2 .ph-chips { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: none; }
  html.bms-phone-v2 .ph-chips > button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 17px; border: 1px solid var(--ph-line); background: var(--ph-card); color: var(--ph-ink); font-size: 13px; font-weight: 600; }
  html.bms-phone-v2 .ph-chips > button b { font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 9px; background: var(--ph-chip-bg); }
  html.bms-phone-v2 .ph-chips > button.on { background: var(--ph-primary); border-color: var(--ph-primary); color: var(--ph-card); }
  html.bms-phone-v2 .ph-chips > button.on b { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-pc[hidden] { display: none !important; }
  /* ---- Cài đặt dạng danh sách */
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-subtabs { display: flex !important; flex-direction: column !important; gap: 0 !important; border: 1px solid var(--ph-line); border-radius: 12px; background: var(--ph-card); overflow: hidden !important; padding: 0 !important; }
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-subtabs > button { display: flex !important; align-items: center; width: 100% !important; height: 48px !important; min-height: 48px !important; max-height: none !important; padding: 0 14px !important; border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; background: transparent !important; color: var(--ph-ink) !important; font-size: 15px !important; font-weight: 600 !important; text-align: left; }
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-subtabs > button:last-child { border-bottom: 0 !important; }
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-subtabs > button::after { content: "›"; margin-left: auto; color: var(--ph-muted); font-size: 20px; }
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-tab-panels, html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .ph-settings-back { display: none !important; }
  html.bms-phone-v2 .panel[data-panel="settings"]:not(.ph-settings-list) .settings-subtabs, html.bms-phone-v2 .panel[data-panel="settings"]:not(.ph-settings-list) > .section-title { display: none !important; }
  html.bms-phone-v2 .ph-settings-back { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin: 0 0 10px; padding: 0 4px; border: 0; background: transparent; color: var(--ph-primary); font-size: 15px; font-weight: 700; text-align: left; }
  html.bms-phone-v2 .ph-settings-back span { font-size: 24px; line-height: 1; }
  html.bms-phone-v2 .ph-settings-back b { color: var(--ph-ink); }
  /* ---- mục gập BTGV / Báo giá */
  html.bms-phone-v2 .ph-fold { position: relative; cursor: pointer; padding-right: 28px !important; }
  html.bms-phone-v2 .ph-fold::after { content: "⌃"; position: absolute; right: 8px; top: 50%; transform: translateY(-50%) rotate(180deg); color: var(--ph-muted); font-size: 16px; }
  html.bms-phone-v2 .ph-closed > .ph-fold::after, html.bms-phone-v2 .ph-btgv-closed .btgv-area-title::after { transform: translateY(-50%) rotate(0deg); }
  html.bms-phone-v2 .ph-closed > :not(.ph-fold) { display: none !important; }
  html.bms-phone-v2 .ph-btgv-closed .btgv-overview-header, html.bms-phone-v2 .ph-btgv-closed #productOverview, html.bms-phone-v2 .ph-btgv-closed .costing-layout { display: none !important; }
  /* ---- Phân quyền: tab Người dùng trước; Lệnh đặt xe: ô lọc 2 cột; Bảo trì: nút thẻ thiết bị gọn */
  html.bms-phone-v2 #permissionAdvancedTab { order: -1; }
  html.bms-phone-v2 .srm-transport-filters { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
  html.bms-phone-v2 .srm-transport-filters > * { flex: 1 1 calc(50% - 4px) !important; min-width: 0 !important; }
  html.bms-phone-v2 .srm-transport-filters > :first-child { flex-basis: 100% !important; }
  html.bms-phone-v2 .tpm-quick-actions { display: flex !important; flex-wrap: nowrap !important; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  html.bms-phone-v2 .tpm-quick-actions > .btn { flex: 0 0 auto; height: 36px; min-height: 36px; padding: 0 12px; font-size: 13px; }
  html.bms-phone-v2 .tpm-row { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 8px; }
  html.bms-phone-v2 .tpm-row-actions { display: flex !important; flex-wrap: wrap !important; justify-content: flex-start !important; gap: 6px !important; }
  html.bms-phone-v2 .tpm-row-actions > .btn, html.bms-phone-v2 .tpm-row-actions > button { flex: 0 0 auto; height: 34px; min-height: 34px; padding: 0 12px; font-size: 13px; }
  /* ---- Đóng gói: danh sách 12 bước dọc với chip Đủ/Thiếu; nút tải ở thanh đáy (bản gốc ẩn) */
  html.bms-phone-v2 .panel[data-panel="documents"].has-ph-actions .document-summary-tools .btn { display: none !important; }
  html.bms-phone-v2 .document-step-list { display: flex !important; flex-direction: column !important; gap: 6px !important; height: auto !important; overflow: visible !important; }
  html.bms-phone-v2 .document-step { display: flex !important; align-items: center; gap: 10px; width: 100% !important; flex: 0 0 auto !important; height: auto !important; min-height: 48px !important; max-height: none !important; padding: 8px 12px !important; margin: 0 !important; }
  html.bms-phone-v2 .document-step > span { display: flex; flex-direction: column; gap: 2px; }
  html.bms-phone-v2 .document-step > b { flex: 0 0 auto; }
  html.bms-phone-v2 .document-step > span { flex: 1 1 auto; min-width: 0; }
  html.bms-phone-v2 .document-step::after { content: "Đủ"; flex: 0 0 auto; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 700; color: var(--ph-ok); background: var(--ph-ok-soft); }
  html.bms-phone-v2 .document-step.attention::after { content: "Thiếu"; color: var(--ph-danger); background: var(--ph-danger-soft); }
  html.bms-phone-v2 .document-step:not(.completed):not(.attention)::after { content: "Chờ"; color: var(--ph-muted); background: var(--ph-chip-bg); }
  /* ---- Trang chủ: Gantt gọn (có nút ⤢ xem ngang sẵn) */
  html.bms-phone-v2 #productionProgressDashboard .production-progress__timeline-shell { max-height: 300px; overflow: auto; }
  /* ---- vùng chạm và cỡ chữ tối thiểu */
  html.bms-phone-v2 .ph-tcard td button:not(.btn), html.bms-phone-v2 .bms-permission-grid button, html.bms-phone-v2 .wk-tabs ~ * button.wk-toggle { min-width: 32px; min-height: 32px; }
  html.bms-phone-v2 .panel input[type="checkbox"], html.bms-phone-v2 .panel input[type="radio"] { width: 20px; height: 20px; }
  html.bms-phone-v2 .panel small, html.bms-phone-v2 .panel .eyebrow, html.bms-phone-v2 .panel .muted, html.bms-phone-v2 .panel label { font-size: max(12px, 1em); }
  html.bms-phone-v2 .panel .metric-card small, html.bms-phone-v2 .panel .tpm-metric small, html.bms-phone-v2 .panel .task-metric small, html.bms-phone-v2 .panel dt { font-size: 12px !important; }

  /* ---- đợt 4 */
  html.bms-phone-v2 #notificationDropdown > header > strong { display: none !important; }
  html.bms-phone-v2 #notificationDropdown > header { justify-content: flex-end; }
  html.bms-phone-v2 .ph-tcard td input[type="checkbox"], html.bms-phone-v2 .ph-tcard td input[type="radio"] { width: 22px !important; height: 22px !important; flex: 0 0 auto !important; margin: 0; }
  html.bms-phone-v2 .ph-tcard-form td:has(> input[type="checkbox"]:only-child) { flex-direction: row !important; align-items: center; }
  html.bms-phone-v2 .ph-actions .btn.ph-outline, html.bms-phone-v2 .ph-actions .btn.ph-outline.primary { background: var(--ph-card) !important; color: var(--ph-primary) !important; border: 1px solid var(--ph-primary) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] button.btn, html.bms-phone-v2 .panel[data-panel="dashboard"] .mini-btn { min-height: 40px !important; }
  html.bms-phone-v2 .production-progress__project-code { min-height: 36px !important; }
  html.bms-phone-v2 .bms-hs-full-toggle, html.bms-phone-v2 .btgv-sp-norm-wrap input { min-height: 36px !important; }
  html.bms-phone-v2 .ph-tcard td .btn.danger, html.bms-phone-v2 .tpm-row-actions .btn.danger { background: var(--ph-card) !important; color: var(--ph-danger) !important; border: 1px solid var(--ph-line) !important; }
  html.bms-phone-v2 .project-queue-title h3 { display: none !important; }
  html.bms-phone-v2 .project-queue-title small { font-size: 13px; font-weight: 600; color: var(--ph-ink); }
  html.bms-phone-v2 #workflowStrip .workflow-v8-step-count[data-ph-step-name]:not([data-ph-step-name=""])::after { content: " · " attr(data-ph-step-name); }
  html.bms-phone-v2 .inventory-selector.workflow-page-actions { justify-content: flex-end !important; }

  /* ---- đợt 5 */
  html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list > :not(.settings-subtabs):not(.section-title) { display: none !important; }
  html.bms-phone-v2 .bms-hs-full, html.bms-phone-v2 .deal-line-toggle, html.bms-phone-v2 .deal-cost-detail-toggle, html.bms-phone-v2 .bms-permission-grid button { min-width: 32px !important; min-height: 32px !important; }
  html.bms-phone-v2 #noteCreate.ph-fab, html.bms-phone-v2 [data-ann-compose].ph-fab { width: 52px !important; height: 52px !important; min-height: 52px !important; border-radius: 50% !important; padding: 0 !important; display: grid !important; place-items: center; font-size: 0 !important; background: var(--ph-primary) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 #noteCreate.ph-fab::before, html.bms-phone-v2 [data-ann-compose].ph-fab::before { content: "+"; font-size: 28px; line-height: 1; }
  html.bms-phone-v2 #noteCreate.ph-fab svg, html.bms-phone-v2 [data-ann-compose].ph-fab svg { display: none; }

  /* ---- đợt 6: tạo/sửa dự án chỉ một nút Lưu (trên thanh đáy) */
  html.bms-phone-v2 .panel[data-panel="project"].has-ph-actions #projectEditBar { display: none !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table tbody { display: block !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table tr { display: grid !important; grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr) !important; gap: 8px 10px !important; align-items: end; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td { display: flex !important; flex-direction: column !important; width: auto !important; min-width: 0 !important; grid-area: auto !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table tr { grid-template-areas: none !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td input:not([type="checkbox"]), html.bms-phone-v2 .ph-tcard .project-sales-items-table td select { width: 100% !important; min-width: 0 !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td.project-sales-check { grid-row: 1 / span 3 !important; grid-column: 1 !important; align-self: start; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td[data-label^="ĐVT"] { grid-column: 2 !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td[data-label^="Số"] { grid-column: 3 !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td[data-label^="Mã"], html.bms-phone-v2 .ph-tcard .project-sales-items-table td[data-label^="Tên"], html.bms-phone-v2 .ph-tcard .project-sales-items-table td:last-child { grid-column: 2 / -1 !important; }
  html.bms-phone-v2 .ph-tcard .project-sales-items-table td:last-child { align-items: flex-end; }
  /* ô bắt buộc: chừa chỗ cho đầu bước và thanh nút khi trình duyệt cuộn tới ô lỗi */
  html.bms-phone-v2 .panel input, html.bms-phone-v2 .panel select, html.bms-phone-v2 .panel textarea { scroll-margin-top: 140px; scroll-margin-bottom: 160px; }

  /* ---- đợt 7: BTGV ô số liệu + dòng cấu phần gập; TTTV ô số liệu + dòng sản phẩm gập */
  html.bms-phone-v2 .ph-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
  html.bms-phone-v2 .ph-kpis > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 10px 10px; border: 1px solid var(--ph-line); border-radius: 12px; background: var(--ph-card); }
  html.bms-phone-v2 .ph-kpis small { font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-kpis b { display: block; font-size: 17px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
  html.bms-phone-v2 .ph-kpis i { font-style: normal; font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 .ph-kpis > div.is-loss b, html.bms-phone-v2 .ph-kpis > div.is-loss i { color: var(--ph-danger); }
  html.bms-phone-v2 .panel[data-panel="summary"] .deal-context { display: none !important; } /* đã thay bằng 3 ô .ph-kpis rút gọn số */
  html.bms-phone-v2 .panel[data-panel="summary"] .deal-table-bar { display: flex !important; flex-direction: column !important; gap: 10px !important; }
  html.bms-phone-v2 .ph-tcard td.ph-row-head { display: grid !important; grid-template-columns: minmax(0, 1fr) 20px; grid-template-rows: auto auto; column-gap: 8px; align-items: center; width: 100% !important; padding: 10px 2px !important; cursor: pointer; }
  html.bms-phone-v2 .ph-tcard td.ph-row-head::before { display: none !important; }
  html.bms-phone-v2 .ph-tcard td.ph-row-head b { font-size: 14px; font-weight: 700; color: var(--ph-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.bms-phone-v2 .ph-tcard td.ph-row-head span { grid-row: 2; font-size: 12px; color: var(--ph-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html.bms-phone-v2 .ph-tcard td.ph-row-head i { grid-row: 1 / span 2; width: 20px; height: 20px; border-right: 2px solid var(--ph-muted); border-bottom: 2px solid var(--ph-muted); transform: rotate(45deg) scale(.5); transition: transform .15s; }
  html.bms-phone-v2 .ph-tcard tr.ph-closed-row td.ph-row-head i { transform: rotate(-45deg) scale(.5); }
  html.bms-phone-v2 .ph-tcard tr.ph-closed-row > td:not(.ph-row-head) { display: none !important; }
  html.bms-phone-v2 .ph-tcard tr.ph-fold-row:not(.ph-closed-row) td.ph-row-head { border-bottom: 1px solid var(--ph-line); margin-bottom: 6px; }
  /* đợt 8: ⋯ trên thanh đầu bước, menu thả từ trên; ẩn ⋯ ở thanh đáy khi đã có trên đầu */
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .ph-top-more { flex: 0 0 40px; width: 40px; height: 40px; border: 1px solid var(--ph-line); border-radius: 50%; background: var(--ph-card); display: inline-flex; align-items: center; justify-content: center; color: var(--ph-ink); padding: 0; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .ph-top-more svg { width: 22px; height: 22px; fill: currentColor; }
  html.bms-phone-v2 .ph-actions.ph-top > .ph-more { display: none !important; }
  html.bms-phone-v2 .ph-actions.ph-top { backdrop-filter: none !important; } /* để menu position:fixed bám theo màn hình */
  html.bms-phone-v2 .panel.has-ph-actions .project-more-menu { display: none !important; } /* ⋯ gốc của bước 1 đã thay bằng ⋯ trên đầu bước */
  html.bms-phone-v2 .ph-actions .ph-more-menu #deleteProjectBtn { display: inline-flex !important; color: var(--ph-danger); }
  html.bms-phone-v2 .ph-actions .ph-more-menu.ph-menu-top { position: fixed; top: 120px; right: 12px; left: auto; bottom: auto; z-index: 60; }
  /* SRM › Công nợ: ô chọn tệp và nút Tải lên cùng hàng, nút không giãn hết ngang */
  html.bms-phone-v2 .srm-payment-doc-slot-form { grid-template-columns: minmax(0, 1fr) auto !important; }
  html.bms-phone-v2 .srm-payment-doc-slot-form .btn { width: auto !important; min-height: 36px !important; padding: 0 12px !important; font-size: 13px !important; }
  html.bms-phone-v2 .srm-pt-slot-btn { min-height: 36px !important; height: auto !important; padding: 0 12px !important; }
  /* BTGV: khối "Hạng mục trong BTGV" xếp dọc, căn trái */
  html.bms-phone-v2 .btgv-overview-header { flex-direction: column !important; align-items: stretch !important; gap: 8px !important; }
  html.bms-phone-v2 .btgv-overview-header > * { width: 100% !important; max-width: none !important; }
  /* Định mức tấm: nút xóa dòng đủ rộng để chạm */
  html.bms-phone-v2 .btgv-sp-del { min-width: 36px !important; }
  /* Ma trận phân quyền: ô tích to hơn để chạm */
  html.bms-phone-v2 .bms-permission-grid input[type="checkbox"] { width: 28px !important; height: 28px !important; margin: 2px !important; }
  /* Nội dung sát viền: thẻ cấp 1 bỏ viền và bo góc hai bên, giữ đệm trong thẻ */
  html.bms-phone-v2 .panel > .card, html.bms-phone-v2 .panel > section.card, html.bms-phone-v2 .panel > .production-progress-dashboard,
  html.bms-phone-v2 .ph-pc, html.bms-phone-v2 .ph-tcard tbody tr, html.bms-phone-v2 .panel[data-panel="settings"].ph-settings-list .settings-subtabs,
  html.bms-phone-v2 .tasks-hub-pane > .card, html.bms-phone-v2 .settings-tab-pane > .card { border-left: 0 !important; border-right: 0 !important; border-radius: 0 !important; }
  html.bms-phone-v2 .ph-kpis, html.bms-phone-v2 .metric-grid, html.bms-phone-v2 .approval-kpis, html.bms-phone-v2 .ph-chips, html.bms-phone-v2 .tpm-metrics, html.bms-phone-v2 .hrm-facts { padding-left: 8px; padding-right: 8px; }
  /* Chữ không nằm trong thẻ vẫn giữ 12px lề để không dính mép màn hình */
  html.bms-phone-v2 .panel > :is(h1, h2, h3, h4, p, .eyebrow, .section-title, header), html.bms-phone-v2 .panel > section > :is(h2, h3, h4, p, header), html.bms-phone-v2 .panel > div > :is(h2, h3, h4, p, header), html.bms-phone-v2 .panel > div > section > :is(h2, h3, h4, p, header),
  html.bms-phone-v2 .solution-area-title, html.bms-phone-v2 .btgv-overview-header, html.bms-phone-v2 .costing-table-bar,
  html.bms-phone-v2 .project-sales-items > header, html.bms-phone-v2 .inventory-product-heading { padding-left: 12px !important; padding-right: 12px !important; }
  /* Trang chủ: 4 ô số phẳng, không viền, mỗi ô một màu nhạt */
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 8px !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric { border: 0 !important; border-radius: 14px !important; padding: 12px 14px !important; min-height: 68px; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric > span { font-size: 12px !important; font-weight: 600; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric > strong { font-size: 22px !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(1) { background: var(--ph-primary-soft) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(1) > * { color: var(--ph-primary-ink) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(2) { background: var(--ph-purple-soft) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(2) > * { color: var(--ph-purple) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(3) { background: var(--ph-warn-soft) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(3) > * { color: var(--ph-warn) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(4) { background: var(--ph-ok-soft) !important; }
  html.bms-phone-v2 .panel[data-panel="dashboard"] .metric-grid > .metric:nth-child(4) > * { color: var(--ph-ok-ink) !important; }
  /* Phản hồi: nút nổi */
  html.bms-phone-v2 .ph-fab-feedback { font-size: 14px !important; font-weight: 700 !important; }
}

/* ===== Đợt 3: Flat Design (mockup Flat bản 20, 2026-10-15) — màu phẳng, thanh trên màu chính, thanh bước vạch + mũi tên, ô tìm kiếm thay hàng chip ===== */
html.bms-phone-v2 {
  --ph-primary: #2563eb; --ph-primary-soft: #dbeafe; --ph-primary-ink: #1d4ed8; --ph-primary-deep: #1e3a8a; --ph-ok: #16a34a; --ph-ok-soft: #dcfce7; --ph-ok-ink: #15803d;
  --ph-warn: #d97706; --ph-warn-soft: #fef3c7; --ph-danger: #dc2626; --ph-danger-soft: #fee2e2; --ph-ink: #111827; --ph-muted: #6b7280; --ph-line: #e5e7eb;
  --ph-bg: #f3f4f6; --ph-card: #fff; --ph-purple: #7c3aed; --ph-purple-soft: #ede9fe; --ph-chip-bg: #e5e7eb; --ph-seg-off: #d1d5db;
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* thanh trên và đầu bước dự án: nền màu chính, chữ/biểu tượng trắng, không viền */
  html.bms-phone-v2 header.topbar, html.bms-phone-v2 #workflowStrip:not([hidden]), html.bms-phone-v2 #workflowStrip .workflow-v8-head { background: var(--ph-primary) !important; border-bottom: 0 !important; }
  html.bms-phone-v2 #shellBreadcrumbCurrent, html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-project-identity strong, html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-step-count { color: var(--ph-card) !important; }
  html.bms-phone-v2 #notificationBell, html.bms-phone-v2 .ph-search-btn, html.bms-phone-v2 #floatingActionsContainer button.floating-action-bubble,
  html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-back, html.bms-phone-v2 #workflowStrip .workflow-v8-head .ph-top-more { color: var(--ph-card) !important; background: transparent !important; border: 0 !important; }
  html.bms-phone-v2 #notificationBell svg, html.bms-phone-v2 #workflowStrip .workflow-v8-head .workflow-v8-back svg { stroke: var(--ph-card); }
  html.bms-phone-v2 .ph-top-more svg { fill: var(--ph-card); }
  html.bms-phone-v2.ph-search-open .shell-global-search { border-bottom: 0; background: var(--ph-primary); }
  /* phẳng: thẻ không viền, không bóng; tách nhau bằng nền xám hoặc một đường mảnh */
  html.bms-phone-v2 .dashboard-insight-card, html.bms-phone-v2 .task-workspace-card, html.bms-phone-v2 .crm-v2-card, html.bms-phone-v2 .srm-v2-card,
  html.bms-phone-v2 .wk-card, html.bms-phone-v2 .hrm-card, html.bms-phone-v2 .ifm-card, html.bms-phone-v2 .settings-card, html.bms-phone-v2 .solution-card,
  html.bms-phone-v2 .khx-card, html.bms-phone-v2 .approval-sheet, html.bms-phone-v2 .quotation-roadmap-card, html.bms-phone-v2 .ph-kpis > div,
  html.bms-phone-v2 .metric-grid > *, html.bms-phone-v2 .task-metrics > *, html.bms-phone-v2 .crm-v2-kpis > *, html.bms-phone-v2 .srm-v2-kpis > *,
  html.bms-phone-v2 .wk-kpis > *, html.bms-phone-v2 .ifm-kpi-grid > *, html.bms-phone-v2 .hrm-metrics > *, html.bms-phone-v2 .inventory-metrics > *,
  html.bms-phone-v2 .approval-kpis > *, html.bms-phone-v2 .fg-metrics > *, html.bms-phone-v2 .ar-metrics > *, html.bms-phone-v2 .qc-metrics > * { border: 0 !important; box-shadow: none !important; }
  html.bms-phone-v2 .ph-pc { border: 0; border-radius: 0; border-bottom: 1px solid var(--ph-line); padding: 12px; }
  html.bms-phone-v2 .ph-pc.is-active { box-shadow: inset 3px 0 0 var(--ph-primary); }
  html.bms-phone-v2 .ph-pc .seg i { background: var(--ph-seg-off); height: 6px; border-radius: 2px; }
  html.bms-phone-v2 .ph-pc .chip { border-radius: 6px; }
  html.bms-phone-v2 .ph-tcard tbody tr { border: 0; border-bottom: 1px solid var(--ph-line); border-radius: 0; margin-bottom: 0; padding: 10px 12px; }
  html.bms-phone-v2 .ph-cards { gap: 0; background: var(--ph-card); }
  /* nút: bo 10px, không bóng; nút phụ viền 2px màu chính */
  html.bms-phone-v2 .btn, html.bms-phone-v2 .ph-actions .btn, html.bms-phone-v2 .ph-actions button { border-radius: 10px !important; box-shadow: none !important; }
  html.bms-phone-v2 .btn.secondary, html.bms-phone-v2 .btn.ghost { border: 2px solid var(--ph-primary) !important; color: var(--ph-primary) !important; background: var(--ph-card) !important; }
  html.bms-phone-v2 .ph-fab, html.bms-phone-v2 #taskCreateBtn, html.bms-phone-v2 #warehouseCreateBtn { box-shadow: none !important; border-radius: 14px !important; }
  html.bms-phone-v2 #newProjectBtn.ph-fab { border-radius: 14px !important; }
  html.bms-phone-v2 .ph-actions { background: var(--ph-card); backdrop-filter: none; }
  html.bms-phone-v2 .ph-actions .ph-more { border-radius: 10px; }
  html.bms-phone-v2 .status { border-radius: 6px; }
  html.bms-phone-v2 .ph-chips > button, html.bms-phone-v2 .ph-chips > button.on { border: 0; border-radius: 10px; }
  html.bms-phone-v2 .ph-chips > button { background: var(--ph-chip-bg); color: var(--ph-ink); }
  html.bms-phone-v2 .bms-search, html.bms-phone-v2 .bms-search__input { border-radius: 10px !important; }
  html.bms-phone-v2 .ph-tabbar button.on { color: var(--ph-primary); }
  html.bms-phone-v2 .ph-sheet .grid button i { border-radius: 12px; }
  html.bms-phone-v2 .tasks-hub-tabs, html.bms-phone-v2 .relationship-tabs, html.bms-phone-v2 .hrm-tabs, html.bms-phone-v2 .settings-subtabs, html.bms-phone-v2 .ifm-tabs, html.bms-phone-v2 .wk-tabs, html.bms-phone-v2 .task-view-tabs { border-bottom: 1px solid var(--ph-line); }

  html.bms-phone-v2 #workflowStrip .workflow-v8-head > button, html.bms-phone-v2 #workflowStrip .workflow-v8-head .project-discussion-trigger { color: var(--ph-card) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  html.bms-phone-v2 #workflowStrip .workflow-v8-head > button svg { stroke: var(--ph-card); }
  html.bms-phone-v2 body .bms-search:not(#\#), html.bms-phone-v2 body .bms-search:not(#\#) .bms-search__input, html.bms-phone-v2 body .bms-search:not(#\#) .bms-search__filter { border-radius: 10px !important; }
  html.bms-phone-v2 .dashboard-approval-card, html.bms-phone-v2 .production-progress-dashboard, html.bms-phone-v2 .dashboard-approval-card > * { border-radius: 0 !important; border-left: 0 !important; border-right: 0 !important; box-shadow: none !important; }
  /* thanh bước: vạch màu + tên bước đang mở + mũi tên ‹ › (12 bước dự án, 7 bước Mua hàng) */
  html.bms-phone-v2 .ph-stepbar { display: flex; align-items: center; gap: 8px; background: var(--ph-card); padding: 8px 8px 10px; border-bottom: 1px solid var(--ph-line); margin: 0; }
  html.bms-phone-v2 .ph-stepbar .arr { width: 44px; height: 44px; flex: 0 0 44px; border: 0; border-radius: 10px; background: var(--ph-chip-bg); color: var(--ph-ink); font: 700 24px/1 Roboto, system-ui, sans-serif; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  html.bms-phone-v2 .ph-stepbar .arr[disabled] { opacity: .35; }
  html.bms-phone-v2 .ph-stepbar .mid { flex: 1; min-width: 0; text-align: center; }
  html.bms-phone-v2 .ph-stepbar .nm { font-size: 15px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-stepbar .nm small { font-weight: 500; color: var(--ph-muted); font-size: 12px; margin-left: 6px; }
  html.bms-phone-v2 .ph-stepbar .segs { display: flex; gap: 3px; margin-top: 7px; align-items: center; height: 14px; }
  html.bms-phone-v2 .ph-stepbar .segs i { flex: 1; height: 8px; border-radius: 2px; background: var(--ph-seg-off); cursor: pointer; }
  html.bms-phone-v2 .ph-stepbar .segs i.d { background: var(--ph-ok); }
  html.bms-phone-v2 .ph-stepbar .segs i.w { background: var(--ph-warn); }
  html.bms-phone-v2 .ph-stepbar .segs i.c { background: var(--ph-primary); }
  html.bms-phone-v2 .ph-stepbar .segs i.v { height: 14px; box-shadow: 0 0 0 2px var(--ph-card), 0 0 0 4px var(--ph-primary); }
  html.bms-phone-v2 #workflowStrip.ph-has-stepbar .workflow-track { display: none !important; }
  html.bms-phone-v2 body:has(#workflowStrip:not([hidden]).ph-has-stepbar):not(:has(.panel[data-panel="project"].active.project-hub-mode)) .workspace { margin-top: 126px; }
  html.bms-phone-v2 .srm-purchase-rail-seven.ph-has-stepbar { display: block !important; padding: 0 !important; margin: 0 0 8px !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  html.bms-phone-v2 .srm-purchase-rail-seven.ph-has-stepbar > .srm-purchase-step { display: none !important; }

  /* danh sách dự án: chip trạng thái nằm trong bảng Lọc của ô tìm kiếm; dưới ô tìm chỉ còn dòng "Đang lọc" */
  html.bms-phone-v2 .ph-chips.ph-in-filter { flex-wrap: wrap; overflow: visible; padding: 0 0 8px; }
  html.bms-phone-v2 .ph-filterline { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 12px 8px; font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 .ph-filterline b { color: var(--ph-ink); }
  html.bms-phone-v2 .ph-filterline button { border: 0; background: transparent; color: var(--ph-primary); font: 500 13px/1 Roboto, system-ui, sans-serif; padding: 6px 0; }
  html.bms-phone-v2 .panel[data-panel="project"].project-hub-mode .project-queue-actions .bms-search { width: 100%; }
}

/* ===== Đợt 4: khớp mockup Flat bản 20 — ghi chú bước, bảng 12 bước, Trang chủ, danh sách dự án (2026-10-15) ===== */
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* thanh trên: ẩn nút nổi (🤖) trên điện thoại; ẩn 🔍 ở Trang chủ (mockup s01 chỉ có chat + chuông) */
  html.bms-phone-v2 #floatingActionsContainer .floating-action-host:has(.pop-nexus-launcher) { display: none !important; }
  html.bms-phone-v2[data-ph-panel="dashboard"] .ph-search-btn { display: none !important; }
  html.bms-phone-v2 #shellBreadcrumbCurrent[data-ph-count]::after { content: " · " attr(data-ph-count); font-weight: 400; font-size: 14px; opacity: .85; }
  /* Trang chủ: thẻ chờ duyệt → 2 nút Duyệt xanh / Từ chối đỏ tràn ngang (mockup s01) */
  html.bms-phone-v2 .dashboard-approval-item { display: block !important; padding: 10px 12px 12px !important; }
  html.bms-phone-v2 .dashboard-approval-toggle { width: 100%; display: flex !important; flex-direction: column; align-items: flex-start !important; gap: 2px; text-align: left; padding: 0 !important; background: transparent !important; border: 0 !important; }
  html.bms-phone-v2 .dashboard-approval-toggle strong { font-size: 15px; color: var(--ph-ink); }
  html.bms-phone-v2 .dashboard-approval-toggle span { font-size: 13px; color: var(--ph-muted); }
  html.bms-phone-v2 .dashboard-approval-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; width: 100%; }
  html.bms-phone-v2 .dashboard-approval-actions .btn { height: 42px !important; min-height: 42px !important; font-size: 14px !important; font-weight: 700 !important; border-radius: 10px !important; justify-content: center; }
  html.bms-phone-v2 .dashboard-approval-actions .btn.success { background: var(--ph-ok) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 .dashboard-approval-actions .btn.danger { background: var(--ph-danger) !important; color: var(--ph-card) !important; border: 0 !important; }
  /* ghi chú bước dưới thanh bước (mockup s06) */
  html.bms-phone-v2 .ph-stepnote-wrap { background: var(--ph-card); margin: 0 0 8px; }
  html.bms-phone-v2 .ph-stepnote { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--ph-bg); }
  html.bms-phone-v2 .ph-stepnote.warn { background: var(--ph-warn-soft); }
  html.bms-phone-v2 .ph-stepnote.doing { background: var(--ph-primary-soft); }
  html.bms-phone-v2 .ph-stepnote.ok { background: var(--ph-ok-soft); }
  html.bms-phone-v2 .ph-stepnote .l { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; cursor: pointer; }
  html.bms-phone-v2 .ph-stepnote .l .status { align-self: flex-start; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; background: var(--ph-chip-bg); color: var(--ph-muted); }
  html.bms-phone-v2 .ph-stepnote .l .status.ok { background: var(--ph-ok-soft); color: var(--ph-ok); }
  html.bms-phone-v2 .ph-stepnote .l .status.doing { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-stepnote .l .status.warn { background: var(--ph-warn-soft); color: var(--ph-warn); outline: 1px solid var(--ph-warn); }
  html.bms-phone-v2 .ph-stepnote .l b { font-size: 15px; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-stepnote .l small { font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-stepnote .ph-open-step { flex: 0 0 auto; height: 40px !important; min-height: 40px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 10px !important; }
  html.bms-phone-v2 .ph-sec { display: flex; align-items: center; justify-content: space-between; padding: 12px 12px 6px; }
  html.bms-phone-v2 .ph-sec h2 { margin: 0; font-size: 15px; font-weight: 700; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-sec .ph-all { border: 0; background: transparent; color: var(--ph-primary); font-size: 13px; font-weight: 500; padding: 4px 0; }
  html.bms-phone-v2 .ph-recent > div, html.bms-phone-v2 .ph-stepsheet .list > div { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--ph-line); cursor: pointer; }
  html.bms-phone-v2 .ph-recent > div:last-child { border-bottom: 1px solid var(--ph-line); }
  html.bms-phone-v2 .ph-recent .av, html.bms-phone-v2 .ph-stepsheet .av { width: 28px; height: 28px; border-radius: 50%; flex: 0 0 28px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; background: var(--ph-chip-bg); color: var(--ph-ink); }
  html.bms-phone-v2 .ph-recent .av.ok, html.bms-phone-v2 .ph-stepsheet .av.ok { background: var(--ph-ok-soft); color: var(--ph-ok); }
  html.bms-phone-v2 .ph-recent .av.doing, html.bms-phone-v2 .ph-stepsheet .av.doing { background: var(--ph-primary); color: var(--ph-card); }
  html.bms-phone-v2 .ph-recent .av.warn, html.bms-phone-v2 .ph-stepsheet .av.warn { background: var(--ph-warn-soft); color: var(--ph-warn); }
  html.bms-phone-v2 .ph-recent .t, html.bms-phone-v2 .ph-stepsheet .t { flex: 1; min-width: 0; }
  html.bms-phone-v2 .ph-recent .t b, html.bms-phone-v2 .ph-stepsheet .t b { display: block; font-size: 14px; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-recent .t small, html.bms-phone-v2 .ph-stepsheet .t small { display: block; font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-recent .status, html.bms-phone-v2 .ph-stepsheet .status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; background: var(--ph-chip-bg); color: var(--ph-muted); white-space: nowrap; }
  html.bms-phone-v2 .ph-recent .status.ok { background: var(--ph-ok-soft); color: var(--ph-ok); }
  html.bms-phone-v2 .ph-recent .status.doing, html.bms-phone-v2 .ph-stepsheet .status.ph-cur { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-recent .status.warn { background: var(--ph-warn-soft); color: var(--ph-warn); }
  /* bảng 12 bước (mockup s07) */
  html.bms-phone-v2 .ph-stepsheet { padding-left: 0; padding-right: 0; }
  html.bms-phone-v2 .ph-stepsheet h3 { margin: 0 16px 8px; font-size: 16px; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-stepsheet .list > div.cur { background: var(--ph-primary-soft); }
  html.bms-phone-v2 .ph-stepsheet .list > div.off { opacity: .45; }
  html.bms-phone-v2 .ph-stepsheet .chev { color: var(--ph-muted); font-size: 18px; }
  html.bms-phone-v2 .ph-stepbar .nm { cursor: pointer; }
  html.bms-phone-v2 #workflowStrip .ph-stepbar .nm::after { content: " ⌄"; color: var(--ph-muted); font-weight: 400; }
}

/* ===== Đợt 4b: 4 phần nghiệp vụ + Tác vụ + Gantt theo mockup Flat p01–p21 (2026-10-15) ===== */
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* --- chung: chip trong bảng Lọc, ô tìm có nút Lọc do shell thêm, thanh ủy quyền --- */
  html.bms-phone-v2 .ph-chipwrap { padding: 4px 0 10px; border-bottom: 1px solid var(--ph-line); margin-bottom: 10px; }
  html.bms-phone-v2 .ph-chipwrap > small { display: block; font-size: 12px; color: var(--ph-muted); margin-bottom: 6px; }
  html.bms-phone-v2 .ph-chipwrap .ph-chips { display: flex !important; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; overflow: visible; background: transparent !important; border: 0 !important; width: auto !important; }
  html.bms-phone-v2 .ph-chipwrap .ph-chips > button, html.bms-phone-v2 .ph-chipwrap .ph-chips > [role="radio"] { flex: 0 0 auto; height: 34px; padding: 0 12px; border-radius: 10px; border: 0 !important; background: var(--ph-chip-bg) !important; color: var(--ph-ink) !important; font-size: 13px; font-weight: 600; box-shadow: none !important; width: auto !important; }
  html.bms-phone-v2 .ph-chipwrap .ph-chips > :is(.active, .on, .is-active, [aria-pressed="true"], [aria-checked="true"], [aria-selected="true"]) { background: var(--ph-primary) !important; color: var(--ph-card) !important; }
  html.bms-phone-v2 .ph-chipwrap .ph-chips b, html.bms-phone-v2 .ph-chipwrap .ph-chips i { font-style: normal; font-size: 11px; margin-left: 4px; opacity: .85; }
  html.bms-phone-v2 .bms-search.ph-has-filter { display: flex; align-items: center; }
  html.bms-phone-v2 .bms-search.ph-has-filter .ph-pop { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; background: var(--ph-card); border-radius: 12px; padding: 12px; border: 1px solid var(--ph-line); }
  html.bms-phone-v2 .bms-search.ph-has-filter { position: relative; }
  html.bms-phone-v2 .ph-filterline { display: flex; justify-content: space-between; align-items: center; padding: 6px 12px 0; }
  html.bms-phone-v2 .ph-filterline[hidden] { display: none; }
  html.bms-phone-v2 .ph-proxied .srm-step-toolbar-actions, html.bms-phone-v2 .ph-proxied .srm-cart-bulk-delete { display: none !important; }
  html.bms-phone-v2 .ph-proxy-bar .btn.danger { background: var(--ph-danger-soft) !important; color: var(--ph-danger) !important; border: 0 !important; }
  /* --- Tác vụ › Công việc (s03): 4 ô số màu, segmented xanh, tab Phê duyệt đứng thứ 2 --- */
  html.bms-phone-v2 #taskMetrics { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 12px 10px; }
  html.bms-phone-v2 #taskMetrics .task-metric { display: flex; flex-direction: column; gap: 2px; padding: 10px 8px; border-radius: 12px; border: 0 !important; box-shadow: none !important; min-width: 0; background: var(--ph-primary-soft); }
  html.bms-phone-v2 #taskMetrics .task-metric > span { font-size: 11px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 #taskMetrics .task-metric > strong { font-size: 20px; line-height: 1.1; color: var(--ph-primary); }
  html.bms-phone-v2 #taskMetrics .task-metric:nth-child(2) { background: var(--ph-warn-soft); } html.bms-phone-v2 #taskMetrics .task-metric:nth-child(2) > strong { color: var(--ph-warn); }
  html.bms-phone-v2 #taskMetrics .task-metric:nth-child(3) { background: var(--ph-danger-soft); } html.bms-phone-v2 #taskMetrics .task-metric:nth-child(3) > strong { color: var(--ph-danger); }
  html.bms-phone-v2 #taskMetrics .task-metric:nth-child(4) { background: var(--ph-ok-soft); } html.bms-phone-v2 #taskMetrics .task-metric:nth-child(4) > strong { color: var(--ph-ok); }
  html.bms-phone-v2 .task-view-tabs, html.bms-phone-v2 .hrm-approval-switch, html.bms-phone-v2 .wk-seg, html.bms-phone-v2 .ifm-lane-switch { display: flex !important; gap: 4px; padding: 4px; border-radius: 12px; background: var(--ph-chip-bg); border: 0 !important; margin: 0 12px 10px; }
  html.bms-phone-v2 :is(.task-view-tabs, .hrm-approval-switch, .wk-seg, .ifm-lane-switch) > button { flex: 1 1 0; min-width: 0; height: 36px; border: 0 !important; border-radius: 9px; background: transparent !important; color: var(--ph-muted) !important; font-size: 13px; font-weight: 600; box-shadow: none !important; padding: 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 :is(.task-view-tabs, .hrm-approval-switch, .wk-seg, .ifm-lane-switch) > button:is(.active, .is-active, [aria-pressed="true"], [aria-selected="true"]) { background: var(--ph-primary) !important; color: var(--ph-card) !important; }
  html.bms-phone-v2 :is(.hrm-approval-switch, .ifm-lane-switch) > button :is(.hrm-count, strong) { margin-left: 4px; font-size: 11px; opacity: .9; }
  html.bms-phone-v2 #tasksHubTabs { display: flex; }
  html.bms-phone-v2 #tasksHubTabs > [data-tasks-hub-tab="approvals"] { order: -1; }
  html.bms-phone-v2 #tasksHubTabs > [data-tasks-hub-tab="work"] { order: -2; }
  html.bms-phone-v2 .task-toolbar { display: flex; flex-direction: column; gap: 8px; }
  html.bms-phone-v2 .task-toolbar .task-search { margin: 0 12px; }
  html.bms-phone-v2 .task-row { border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; }
  /* --- Tác vụ › Phê duyệt (p01–p04) --- */
  html.bms-phone-v2 .hrm-approval-bar { display: flex; flex-direction: column; gap: 8px; }
  html.bms-phone-v2 #hrmWorkflowAdmin { height: 36px !important; min-height: 36px !important; border: 0 !important; background: transparent !important; color: var(--ph-primary) !important; font-size: 13px !important; padding: 0 12px !important; align-self: flex-end; }
  html.bms-phone-v2 .hrm-request-card { border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px !important; }
  html.bms-phone-v2 .hrm-request-card .hrm-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
  html.bms-phone-v2 .hrm-request-card .hrm-actions .hrm-open-request { grid-column: 1 / -1; display: none; }
  html.bms-phone-v2 .hrm-request-card .hrm-actions .btn { height: 40px !important; min-height: 40px !important; font-size: 14px !important; font-weight: 700 !important; border-radius: 10px !important; justify-content: center; }
  html.bms-phone-v2 .hrm-request-card .hrm-actions .btn.danger { background: var(--ph-card) !important; color: var(--ph-danger) !important; border: 2px solid var(--ph-danger) !important; }
  html.bms-phone-v2 .hrm-request-card .hrm-actions .hrm-approval-more > summary { background: var(--ph-ok) !important; color: var(--ph-card) !important; border: 0 !important; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-weight: 700; }
  html.bms-phone-v2 .hrm-request-card header { cursor: pointer; }
  html.bms-phone-v2 dialog.hrm-request-dialog { padding: 0 !important; border: 0 !important; border-radius: 0 !important; width: 100vw !important; max-width: 100vw !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; inset: 0 !important; background: var(--ph-bg) !important; }
  html.bms-phone-v2 dialog.hrm-request-dialog > h3 { margin: 0; padding: 0 16px; height: 56px; display: flex; align-items: center; background: var(--ph-primary); color: var(--ph-card); font-size: 17px; }
  html.bms-phone-v2 dialog.hrm-request-dialog form { padding: 12px; }
  html.bms-phone-v2 dialog.hrm-request-dialog .hrm-template-field, html.bms-phone-v2 dialog.hrm-request-dialog.ph-tpl-chosen .ph-tpl-list { display: none !important; }
  html.bms-phone-v2 dialog.hrm-request-dialog.ph-tpl-chosen .hrm-template-field { display: block !important; }
  html.bms-phone-v2 dialog.hrm-request-dialog:not(.ph-tpl-chosen) :is(#hrmDynamicFields, .hrm-form-actions) { display: none !important; }
  html.bms-phone-v2 .ph-tpl-list { background: var(--ph-card); margin: 0 -12px; }
  html.bms-phone-v2 .ph-tpl-list h4 { margin: 0; padding: 12px 12px 6px; font-size: 14px; color: var(--ph-ink); display: flex; justify-content: space-between; background: var(--ph-bg); }
  html.bms-phone-v2 .ph-tpl-list h4 small { color: var(--ph-primary); font-weight: 500; }
  html.bms-phone-v2 .ph-tpl-list > button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px; border: 0; border-bottom: 1px solid var(--ph-line); background: var(--ph-card); text-align: left; font-size: 15px; color: var(--ph-ink); }
  html.bms-phone-v2 .ph-tpl-list > button i { font-style: normal; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 10px; background: var(--ph-primary-soft); color: var(--ph-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
  html.bms-phone-v2 .ph-tpl-list > button span { flex: 1; min-width: 0; }
  html.bms-phone-v2 .ph-tpl-list > button em { font-style: normal; color: var(--ph-muted); }
  html.bms-phone-v2 dialog.hrm-request-dialog .hrm-form-actions, html.bms-phone-v2 dialog.hrm-form-dialog .hrm-request-detail-actions { position: sticky; bottom: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0)); background: var(--ph-card); border-top: 1px solid var(--ph-line); margin: 12px -12px -12px; }
  html.bms-phone-v2 dialog.hrm-form-dialog .hrm-request-detail-actions > [data-close] { display: none; }
  html.bms-phone-v2 dialog.hrm-form-dialog :is(.hrm-form-actions, .hrm-request-detail-actions) .btn { height: 44px !important; min-height: 44px !important; border-radius: 10px !important; font-size: 15px !important; font-weight: 700 !important; justify-content: center; }
  html.bms-phone-v2 dialog.hrm-form-dialog .hrm-request-detail-actions .btn.primary { background: var(--ph-ok) !important; border: 0 !important; }
  html.bms-phone-v2 dialog.hrm-form-dialog .hrm-request-detail-actions .btn.danger { background: var(--ph-danger) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 .hrm-request-timeline { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; }
  html.bms-phone-v2 .hrm-request-timeline > * { border: 0 !important; border-radius: 10px; background: var(--ph-bg); padding: 8px 6px; text-align: center; font-size: 12px; }
  /* --- Mua hàng 7 bước (p05–p12) --- */
  html.bms-phone-v2 #srmV2PurchaseContent .srm-v2-card { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; background: var(--ph-card); }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-head { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px 4px; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-head h3 { font-size: 15px; margin: 0; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-toolbar { display: flex; flex-direction: column; gap: 8px; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-toolbar .bms-search { width: 100%; }
  html.bms-phone-v2 #srmV2PurchaseContent :is(.srm-plan-count, .srm-cart-result-count, .srm-payable-filter-count) { font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-admin-tools { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .ph-tcard tbody tr { border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .relationship-notice, html.bms-phone-v2 #srmV2PurchaseContent .srm-empty { margin: 8px 12px; border: 0 !important; border-radius: 10px; background: var(--ph-primary-soft); }
  html.bms-phone-v2 #srmV2PurchaseContent :is(.srm-approval-actions, .srm-inline-head-actions, .srm-wh-actions, .srm-po-inline-foot) { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 8px 12px; }
  html.bms-phone-v2 #srmV2PurchaseContent :is(.srm-approval-actions, .srm-inline-head-actions, .srm-wh-actions, .srm-po-inline-foot) .btn { height: 42px !important; min-height: 42px !important; border-radius: 10px !important; font-weight: 700 !important; justify-content: center; }
  html.bms-phone-v2 #srmV2PurchaseContent .btn.success { background: var(--ph-ok) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-create-order-btn, html.bms-phone-v2 #srmV2PurchaseContent [data-srm-delivery-row].btn, html.bms-phone-v2 #srmV2PurchaseContent [data-srm-create-payment] { width: 100%; height: 40px !important; border-radius: 10px !important; font-weight: 700 !important; }
  html.bms-phone-v2 body:has(.ph-proxy-bar:not([hidden])) .workspace { padding-bottom: 150px; }
  /* --- IFM › Duyệt thanh toán (p13–p16) --- */
  html.bms-phone-v2 .ifm-payment-heading { display: none !important; }
  html.bms-phone-v2 .ifm-payment-toolbar { padding: 8px 0 0; }
  html.bms-phone-v2 .ifm-lane-switch > button .is-short { display: inline; }
  html.bms-phone-v2 .ifm-payment-filterbar { padding: 0 12px 8px; }
  html.bms-phone-v2 .ifm-topay-stats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 12px 10px; }
  html.bms-phone-v2 .ifm-topay-stat { display: flex !important; flex-direction: column; gap: 2px; min-width: 0; padding: 10px 8px !important; border: 0 !important; border-radius: 12px !important; box-shadow: none !important; background: var(--ph-primary-soft) !important; text-align: left; }
  html.bms-phone-v2 .ifm-topay-stat > span { font-size: 11px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ifm-topay-stat > strong { font-size: 20px; line-height: 1.1; color: var(--ph-primary); }
  html.bms-phone-v2 .ifm-topay-stat > small { font-size: 11px; color: var(--ph-muted); }
  html.bms-phone-v2 .ifm-topay-stat.is-overdue { background: var(--ph-danger-soft) !important; } html.bms-phone-v2 .ifm-topay-stat.is-overdue > strong { color: var(--ph-danger); }
  html.bms-phone-v2 .ifm-topay-stat.is-due-soon { background: var(--ph-warn-soft) !important; } html.bms-phone-v2 .ifm-topay-stat.is-due-soon > strong { color: var(--ph-warn); }
  html.bms-phone-v2 .ifm-topay-stat[aria-pressed="true"] { outline: 2px solid var(--ph-primary); outline-offset: -2px; }
  html.bms-phone-v2 .ifm-payment-lane { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; background: var(--ph-card); }
  html.bms-phone-v2 .ifm-empty { margin: 8px 12px; border: 0 !important; border-radius: 10px; background: var(--ph-primary-soft); }
  html.bms-phone-v2 .ifm-payment-request-card { border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px !important; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-quick-decisions { display: grid !important; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 10px; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-quick-decisions .btn { height: 40px !important; min-height: 40px !important; border-radius: 10px !important; font-size: 13px !important; font-weight: 700 !important; justify-content: center; width: 100%; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-quick-decisions .btn.primary { background: var(--ph-ok) !important; border: 0 !important; order: 3; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-quick-decisions .btn.danger { background: var(--ph-card) !important; color: var(--ph-danger) !important; border: 2px solid var(--ph-danger) !important; order: 1; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-quick-decisions .btn.secondary { order: 2; }
  html.bms-phone-v2 .ifm-payment-request-card [data-ifm-payment-approval].btn { display: none; }
  html.bms-phone-v2 .ifm-payment-request-card .ifm-payment-card-body > header { cursor: pointer; }
  html.bms-phone-v2 .ifm-payment-selection-bar { position: fixed; left: 0; right: 0; bottom: calc(64px + env(safe-area-inset-bottom, 0)); z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: var(--ph-card); border-top: 1px solid var(--ph-line); }
  html.bms-phone-v2 .ifm-payment-selection-bar .btn { height: 44px !important; border-radius: 10px !important; font-weight: 700 !important; }
  html.bms-phone-v2 .ifm-payment-plan-row, html.bms-phone-v2 [data-ifm-payment-plan] { }
  /* --- Quản lý kho (p17–p21): bỏ ô số, danh sách gọn 1 dòng/mã --- */
  html.bms-phone-v2 .warehouse-panel :is(#warehouseMetrics, #warehouseFgMetrics, .sir-metrics) { display: none !important; }
  html.bms-phone-v2 .warehouse-panel .wk-card { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; background: var(--ph-card); }
  html.bms-phone-v2 .warehouse-panel .wk-head { display: flex; flex-direction: column; gap: 8px; padding: 10px 0 6px; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools { display: flex; gap: 8px; align-items: center; padding: 0 12px; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools .wk-search-host, html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools .bms-search { flex: 1 1 auto; min-width: 0; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 10px 12px !important; border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .r { display: contents; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-name { grid-column: 1; font-size: 15px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-chip { grid-column: 2; grid-row: 2; justify-self: end; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-meta > * { font-size: 12px; color: var(--ph-muted); }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-meta > span:not(.wk-code) { display: none; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q { grid-column: 2; grid-row: 1; justify-self: end; font-size: 14px; font-weight: 700; color: var(--ph-ink); display: flex; gap: 8px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q > span:not(:first-child) { display: none; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-menu, html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-row-btn { grid-column: 1 / -1; }
  html.bms-phone-v2 .warehouse-panel .wk-mfoot { padding: 8px 12px; }
  html.bms-phone-v2 .warehouse-panel .sir-card { border: 0 !important; border-bottom: 1px solid var(--ph-line) !important; border-radius: 0 !important; box-shadow: none !important; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-head .wk-ledger-title { padding: 0 12px; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-kpis { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 12px 10px; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-kpis .wk-kpi { border: 0 !important; border-radius: 12px !important; background: var(--ph-primary-soft) !important; box-shadow: none !important; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-kpis .wk-kpi:nth-child(2) { background: var(--ph-ok-soft) !important; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-kpis .wk-kpi:nth-child(3) { background: var(--ph-warn-soft) !important; }
  html.bms-phone-v2 .warehouse-panel .wk-ledger-kpis .wk-kpi:nth-child(n+4) { display: none; }
  html.bms-phone-v2 .warehouse-panel [data-etw-lend].ph-fab { width: auto !important; padding: 0 18px !important; border-radius: 14px !important; }
  /* --- Trang chủ: Gantt gọn (s01) + ngăn kéo nhật ký dạng tấm (s08) --- */
  html.bms-phone-v2 .production-progress__zoom [data-progress-scale], html.bms-phone-v2 #productionProgressFilterToggle { display: none !important; }
  html.bms-phone-v2 .production-progress__toolbar { padding: 6px 12px !important; }
  html.bms-phone-v2 .production-progress__title-bar { background: var(--ph-card) !important; border-bottom: 0 !important; padding: 10px 12px 2px !important; }
  html.bms-phone-v2 #productionProgressTitle { font-size: 15px !important; color: var(--ph-ink) !important; text-align: left !important; }
  html.bms-phone-v2 #productionProgressExpand { border: 0 !important; background: var(--ph-primary-soft) !important; color: var(--ph-primary) !important; border-radius: 10px !important; }
  html.bms-phone-v2 .production-progress__footer { padding: 6px 12px !important; }
  html.bms-phone-v2 #productionProgressDrawer { position: fixed !important; inset: auto 0 0 0 !important; width: 100vw !important; max-width: 100vw !important; height: 86dvh !important; max-height: 86dvh !important; border-radius: 20px 20px 0 0 !important; transform: translateY(100%); transition: transform .22s ease; z-index: 95 !important; background: var(--ph-card) !important; box-shadow: none !important; display: flex; flex-direction: column; }
  html.bms-phone-v2 #productionProgressDrawer.open { transform: none; }
  html.bms-phone-v2 #productionProgressBackdrop { z-index: 94 !important; }
  html.bms-phone-v2 .production-progress__drawer-head { padding: 14px 16px 8px !important; border-bottom: 1px solid var(--ph-line); }
  html.bms-phone-v2 .production-progress__drawer-head::before { content: ""; display: block; width: 40px; height: 4px; border-radius: 2px; background: var(--ph-seg-off); margin: 0 auto 10px; }
  html.bms-phone-v2 .production-progress__project-summary { padding: 10px 16px !important; }
  html.bms-phone-v2 .production-progress__facts { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
  html.bms-phone-v2 .production-progress__activity-section { padding: 0 16px 16px !important; overflow: auto; }
  html.bms-phone-v2 #productionProgressAddLog { width: 100%; height: 44px; border: 0 !important; border-radius: 10px !important; background: var(--ph-primary) !important; color: var(--ph-card) !important; font-weight: 700; }
  html.bms-phone-v2 .production-progress__composer-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  html.bms-phone-v2 .production-progress__composer-actions button { height: 42px; border-radius: 10px !important; font-weight: 700; }
  html.bms-phone-v2 .production-progress__submit-log { background: var(--ph-primary) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 .production-progress__cancel-log { background: var(--ph-card) !important; color: var(--ph-primary) !important; border: 2px solid var(--ph-primary) !important; }
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* chỉnh sau ảnh rs52 */
  html.bms-phone-v2 .task-metrics#taskMetrics { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; margin: 0 12px 10px !important; }
  html.bms-phone-v2 .task-metrics#taskMetrics > * { background: var(--ph-primary-soft) !important; border-radius: 12px !important; min-height: 56px; padding: 8px 8px !important; }
  html.bms-phone-v2 .task-metrics#taskMetrics > :nth-child(2) { background: var(--ph-warn-soft) !important; }
  html.bms-phone-v2 .task-metrics#taskMetrics > :nth-child(3) { background: var(--ph-danger-soft) !important; }
  html.bms-phone-v2 .task-metrics#taskMetrics > :nth-child(4) { background: var(--ph-ok-soft) !important; }
  html.bms-phone-v2 :is(.task-view-tabs, .hrm-approval-switch, .wk-seg, .ifm-lane-switch) { border-radius: 12px !important; padding: 4px !important; }
  html.bms-phone-v2 :is(.task-view-tabs, .hrm-approval-switch, .wk-seg, .ifm-lane-switch) > button { border-radius: 9px !important; font-size: 12.5px; padding: 0 4px !important; }
  html.bms-phone-v2 .ifm-lane-switch > button { display: inline-flex !important; align-items: center; justify-content: center; gap: 4px; }
  html.bms-phone-v2 #srmV2PurchaseContent .ph-filterline { text-align: left; }
  html.bms-phone-v2 #srmV2PurchaseContent .relationship-notice { border: 0 !important; }
  html.bms-phone-v2 .warehouse-panel .btn.wk-primary-text { width: auto !important; padding: 0 16px !important; }
  html.bms-phone-v2 .warehouse-panel .btn.wk-primary-text span { display: inline !important; }
  html.bms-phone-v2 .production-progress__drawer h2 { font-size: 17px !important; color: var(--ph-ink) !important; }
  html.bms-phone-v2 .production-progress__drawer-head { padding: 10px 16px 8px !important; }
  html.bms-phone-v2 .production-progress__composer-media { background: var(--ph-primary-soft) !important; color: var(--ph-primary) !important; min-height: 96px !important; border-radius: 10px 10px 0 0; }
  html.bms-phone-v2 .production-progress__composer-media-empty small { color: var(--ph-muted) !important; }
  html.bms-phone-v2 .production-progress__facts { border: 0 !important; background: transparent !important; gap: 8px !important; }
  html.bms-phone-v2 .production-progress__fact { border-radius: 10px; background: var(--ph-bg) !important; }
  html.bms-phone-v2 .production-progress__activity-card { box-shadow: none !important; border: 1px solid var(--ph-line); }
  html.bms-phone-v2 .production-progress__project-summary { background: var(--ph-card) !important; }
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  html.bms-phone-v2 .task-view-tabs > button { flex: 1 1 0 !important; width: auto !important; max-width: none !important; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools > * { min-width: 0; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools .bms-search { min-width: 0 !important; width: 100% !important; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools .wk-menu, html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools > .btn { flex: 0 0 auto; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-plan-count { border: 0 !important; background: transparent !important; padding: 0 !important; border-radius: 0 !important; text-align: left; align-self: flex-start; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-v2-table { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-v2-table.ph-tcard tbody tr { background: var(--ph-card) !important; }
  html.bms-phone-v2 .warehouse-panel .sir-empty-state { border: 0 !important; border-radius: 10px; background: var(--ph-primary-soft); margin: 8px 12px; }
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* Trang chủ: Sự kiện sắp tới (mockup s01) */
  html.bms-phone-v2 .ph-upcoming { background: var(--ph-card); margin: 8px 0 0; order: 4; }
  html.bms-phone-v2 .ph-upcoming .ph-recent > div:first-child { border-top: 1px solid var(--ph-line); }
  html.bms-phone-v2 .ph-upcoming .av.warn { background: var(--ph-warn-soft); color: var(--ph-warn); }
  html.bms-phone-v2 .ph-upcoming .av.ok { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-upcoming .av.danger, html.bms-phone-v2 .ph-upcoming .status.danger { background: var(--ph-danger-soft); color: var(--ph-danger); }
  html.bms-phone-v2 .ph-upcoming .status.warn { background: var(--ph-warn-soft); color: var(--ph-warn); }
  html.bms-phone-v2 .ph-upcoming .status.ok { background: var(--ph-primary-soft); color: var(--ph-primary); }
  html.bms-phone-v2 .ph-upcoming .ph-empty { padding: 10px 12px 12px; font-size: 13px; color: var(--ph-muted); border-top: 1px solid var(--ph-line); }
}
/* ===== Đợt 5: vòng 3 rà mockup Flat v20 (2026-10-15) — Mua hàng thẻ gọn, Gantt gọn, Kho, Phê duyệt, DS dự án ===== */
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* --- DS dự án (s04): thẻ = mã + chip / Khách · N hạng mục / vạch 12 bước / Giao + tiền; bỏ dòng tên dài và chip "Đang mở" --- */
  html.bms-phone-v2 .ph-pc .name, html.bms-phone-v2 .ph-pc .code .chip.doing { display: none; }
  html.bms-phone-v2 #phProjectFilterLine[hidden] { display: none; }
  /* --- Mua hàng (p05–p12): bỏ tiêu đề phụ + đếm, thẻ gọn, chi tiết toàn màn --- */
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-head > div:first-child:has(h3), html.bms-phone-v2 #srmV2PurchaseContent .srm-step-head > h3,
  html.bms-phone-v2 #srmV2PurchaseContent :is(.srm-cart-result-count, .srm-plan-count, .srm-payable-filter-count) { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-step-head { padding-top: 8px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; grid-auto-rows: auto; column-gap: 10px; row-gap: 2px; align-items: center; padding: 12px !important; position: relative; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card:has(> .ph-k-check) { padding-left: 42px !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td { padding: 0 !important; width: auto !important; display: block; min-width: 0; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td::before { display: none; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-check { position: absolute; left: 12px; top: 14px; width: 22px !important; display: flex; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-head { grid-column: 1; grid-row: 1; font-size: 15px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-head strong { display: inline; font-size: 15px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-head small { font-weight: 500; color: var(--ph-muted); font-size: 12px; margin-left: 6px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-status { grid-column: 2; grid-row: 1; justify-self: end; font-size: 11px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-status :is(.status, .srm-po-pay-chip, .badge, span) { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sup { grid-column: 1; grid-row: 2; font-size: 13px; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-money { grid-column: 2; grid-row: 2; justify-self: end; font-size: 15px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-money :is(strong, b) { font-size: 15px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sub { grid-column: 1 / -1; font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sub::before { display: inline; content: attr(data-label) ": "; flex: none; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sub ~ td.ph-k-sub ~ td.ph-k-sub { display: none; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-act, html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > .ph-srm-btns { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-act > :not(.btn) { display: none; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > :is(td.ph-k-act, .ph-srm-btns) .btn { height: 40px !important; min-height: 40px !important; border-radius: 10px !important; font-size: 14px !important; font-weight: 700 !important; justify-content: center; width: 100%; margin: 0 !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-srm-btns .btn.secondary { background: var(--ph-card) !important; color: var(--ph-primary) !important; border: 2px solid var(--ph-primary) !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-srm-btns .btn.danger { background: var(--ph-card) !important; color: var(--ph-danger) !important; border: 2px solid var(--ph-danger) !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-srm-btns .btn.success { background: var(--ph-ok) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card:has(> td.ph-k-act .btn) > .ph-srm-btns { display: none; }
  /* chi tiết (dòng mở) = màn riêng toàn màn hình (p07): thanh trên xanh "‹ Mã", nút Đóng gốc ẩn, nút hành động dính đáy */
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row { position: fixed !important; inset: 0 !important; z-index: 90; overflow: auto; background: var(--ph-bg) !important; padding: 56px 0 96px !important; border: 0 !important; margin: 0 !important; display: block !important; width: 100vw !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row > td { display: block; padding: 0 !important; width: 100% !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row > td::before { display: none; }
  html.bms-phone-v2 .ph-detail-head { position: fixed; top: 0; left: 0; right: 0; height: 56px; z-index: 2; display: flex; align-items: center; gap: 4px; padding: 0 8px 0 4px; background: var(--ph-primary); color: var(--ph-card); }
  html.bms-phone-v2 .ph-detail-head .back { width: 44px; height: 44px; border: 0; background: transparent; color: var(--ph-card); font: 700 28px/1 Roboto, system-ui, sans-serif; }
  html.bms-phone-v2 .ph-detail-head b { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row :is(.srm-v8-close, [data-srm-close-plan], [data-srm-close-approval], [data-srm-close-package], [data-srm-close-payable], [data-srm-close-payment]) { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row :is(.srm-approval-inline-detail, .srm-plan-expanded, .srm-payable-inline-detail, .srm-pay-detail, .srm-wh-detail) { background: var(--ph-card); padding: 12px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row :is(.srm-approval-actions, .srm-wh-actions, .srm-po-inline-foot) { position: fixed; left: 0; right: 0; bottom: 0; z-index: 3; background: var(--ph-card); border-top: 1px solid var(--ph-line); padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0)); margin: 0; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-approval-actions .btn.danger { background: var(--ph-danger) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2.ph-srm-detail-open .ph-tabbar, html.bms-phone-v2.ph-srm-detail-open .ph-proxy-bar, html.bms-phone-v2.ph-srm-detail-open .ph-fab { display: none !important; }
  /* --- IFM (p15/p16): thanh "Tạo kế hoạch chi" chỉ khi đã chọn; khung trống nhỏ --- */
  html.bms-phone-v2 .ifm-payment-selection-bar:not(.has-selection) { display: none !important; }
  html.bms-phone-v2 .ifm-empty { padding: 14px 12px !important; min-height: 0 !important; font-size: 13px; }
  /* --- Kho (p17–p21): hàng công cụ không tràn, bỏ ⋯ ở vật tư/thành phẩm, nút + vuông, dòng gọn --- */
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools { flex-wrap: wrap; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools :is(.wk-search-host, .bms-search.sir-search-bar) { flex: 1 1 100% !important; width: 100% !important; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools .wk-search-host .bms-search { width: 100% !important; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools > .btn:not(.ph-fab), html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools > .wk-menu { margin-left: auto; height: 36px !important; min-height: 36px !important; font-size: 13px !important; }
  html.bms-phone-v2 .warehouse-panel .wk-head .wk-tools > .btn.wk-icon { width: 36px !important; padding: 0 !important; }
  html.bms-phone-v2 :is(#warehouseMaterialSection, #warehouseFinishedSection) .wk-head .wk-tools .wk-menu, html.bms-phone-v2 .warehouse-panel [data-sir-refresh], html.bms-phone-v2 .warehouse-panel .wk-head .wk-sub { display: none !important; }
  html.bms-phone-v2 #warehouseCreateBtn.ph-fab { width: 52px !important; height: 52px !important; min-height: 52px !important; border-radius: 14px !important; padding: 0 !important; font-size: 26px !important; }
  html.bms-phone-v2 #warehouseCreateBtn.ph-fab span { display: none !important; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-chip { grid-column: 2; grid-row: 2; background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 11px; font-weight: 600; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q > span:first-child { font-size: 0; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q > span:first-child > b { font-size: 14px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-meta .wk-code { grid-column: 1; grid-row: 2; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-row-actions { grid-column: 1 / -1; display: flex; gap: 8px; margin-top: 6px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-row-actions .btn { flex: 1; height: 38px !important; border-radius: 10px !important; font-weight: 700 !important; justify-content: center; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card { display: grid !important; grid-template-columns: 36px minmax(0, 1fr) auto; column-gap: 10px; row-gap: 1px; align-items: center; padding: 10px 12px !important; width: 100%; text-align: left; background: var(--ph-card) !important; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card::before { content: attr(data-ph-ini); grid-column: 1; grid-row: 1 / span 3; width: 36px; height: 36px; border-radius: 10px; background: var(--ph-primary-soft); color: var(--ph-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card .sir-card-row { display: contents; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card .sir-card-title { grid-column: 2; grid-row: 1; font-size: 14px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card .sir-card-row > :not(.sir-card-title) { grid-column: 3; grid-row: 1; justify-self: end; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card .sir-card-meta { grid-column: 2 / -1; display: flex; gap: 6px; font-size: 12px; color: var(--ph-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card .sir-card-meta > span:empty { display: none; }
  html.bms-phone-v2 .sir-warehouse.etw .sir-card[aria-pressed="true"] { box-shadow: inset 3px 0 0 var(--ph-primary); }
  /* --- Trang chủ: Gantt gọn (s01) thay bảng thời gian; bảng đầy đủ chỉ hiện khi "Xem ngang" --- */
  html.bms-phone-v2 #productionProgressDashboard:not(.is-expanded) :is(.production-progress__toolbar, #productionProgressSummary, #productionProgressBoard, .production-progress__footer) { display: none !important; }
  html.bms-phone-v2 #productionProgressDashboard.is-expanded #phGantt { display: none !important; }
  html.bms-phone-v2 .ph-gantt { background: var(--ph-card); padding: 0 12px 8px; }
  html.bms-phone-v2 .ph-gantt .list > div { display: grid; grid-template-columns: 96px minmax(0, 1fr) 40px; gap: 10px; align-items: center; height: 32px; cursor: pointer; }
  html.bms-phone-v2 .ph-gantt .list > div.sel .code { color: var(--ph-primary); }
  html.bms-phone-v2 .ph-gantt .code { font-size: 12px; font-weight: 700; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 .ph-gantt .bar { display: block; height: 10px; border-radius: 5px; background: var(--ph-seg-off); overflow: hidden; }
  html.bms-phone-v2 .ph-gantt .bar i { display: block; height: 100%; background: var(--ph-primary); border-radius: 5px; }
  html.bms-phone-v2 .ph-gantt .bar.warn i { background: var(--ph-warn); }
  html.bms-phone-v2 .ph-gantt .bar.danger i { background: var(--ph-danger); }
  html.bms-phone-v2 .ph-gantt b { font-size: 11px; color: var(--ph-muted); text-align: right; }
  html.bms-phone-v2 .ph-gantt .foot { display: flex; justify-content: space-between; align-items: center; padding-top: 6px; }
  html.bms-phone-v2 .ph-gantt .lg { font-size: 11px; color: var(--ph-muted); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
  html.bms-phone-v2 .ph-gantt .lg i { width: 8px; height: 8px; border-radius: 50%; background: var(--ph-primary); margin-left: 6px; }
  html.bms-phone-v2 .ph-gantt .lg i:first-child { margin-left: 0; }
  html.bms-phone-v2 .ph-gantt .lg i.warn { background: var(--ph-warn); }
  html.bms-phone-v2 .ph-gantt .lg i.danger { background: var(--ph-danger); }
  html.bms-phone-v2 .ph-gantt .ph-all { border: 0; background: transparent; color: var(--ph-primary); font-size: 13px; font-weight: 600; padding: 4px 0; }
  html.bms-phone-v2 .ph-gantt .ph-empty { font-size: 13px; color: var(--ph-muted); padding: 8px 0; }
  /* --- Phê duyệt › điền mẫu (p03): "‹ Mẫu: …" thay ô chọn, nút dính đáy màn hình --- */
  html.bms-phone-v2 dialog.hrm-request-dialog.ph-tpl-chosen .hrm-template-field { display: none !important; }
  html.bms-phone-v2 dialog.hrm-request-dialog .ph-tpl-title { display: none; align-items: center; gap: 4px; margin: -12px -12px 12px; padding: 0 8px 0 0; height: 48px; background: var(--ph-card); border-bottom: 1px solid var(--ph-line); }
  html.bms-phone-v2 dialog.hrm-request-dialog.ph-tpl-chosen .ph-tpl-title { display: flex; }
  html.bms-phone-v2 dialog.hrm-request-dialog .ph-tpl-title .back { width: 44px; height: 44px; border: 0; background: transparent; color: var(--ph-primary); font: 700 28px/1 Roboto, system-ui, sans-serif; }
  html.bms-phone-v2 dialog.hrm-request-dialog .ph-tpl-title b { font-size: 15px; color: var(--ph-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html.bms-phone-v2 dialog.hrm-request-dialog form { padding-bottom: 90px; }
  html.bms-phone-v2 dialog.hrm-request-dialog.ph-tpl-chosen .hrm-form-actions { position: fixed; left: 0; right: 0; bottom: 0; margin: 0; z-index: 2; }
  html.bms-phone-v2 dialog.hrm-request-dialog .hrm-form-actions .btn.secondary { background: var(--ph-card) !important; color: var(--ph-primary) !important; border: 2px solid var(--ph-primary) !important; }
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* DS dự án: bỏ dòng tiêu đề/đếm "Tất cả · 25" trên ô tìm (số đã nằm cạnh tiêu đề thanh trên) */
  html.bms-phone-v2 .panel[data-panel="project"].project-hub-mode .project-queue-title { display: none !important; }
}
/* ===== Đợt 5b: sau rà vòng 3 — chi tiết giỏ, thẻ Công nợ, dòng Kho, hàng công cụ Thiết bị ===== */
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* --- Mua hàng › chi tiết giỏ (p07): phẳng tràn màn, NCC dưới mã, dòng hàng "tên / SL × giá / thành tiền", dải tổng xanh đậm --- */
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row :is(.srm-plan-expanded, .srm-cart-workspace, .srm-cart-layout, .srm-plan-lines-table, .srm-cart-table-bar) { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background: var(--ph-card) !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-expanded { padding: 0 !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-expanded > .relationship-notice { margin: 8px 12px !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-cart-table-bar { padding: 10px 12px !important; display: block !important; border-bottom: 1px solid var(--ph-line) !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .cost-active-product { display: flex; flex-direction: column; gap: 2px; margin: 0; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .cost-active-product strong { font-size: 16px; color: var(--ph-ink); }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .cost-active-product small { white-space: normal; font-size: 12px; color: var(--ph-muted); overflow: visible; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody tr { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; padding: 10px 12px !important; border-bottom: 1px solid var(--ph-line) !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td { display: block; width: auto !important; padding: 0 !important; font-size: 13px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td::before { display: none; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Mặt hàng"] { flex: 1 1 100%; order: 1; font-size: 14px; font-weight: 700; color: var(--ph-ink); }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Mặt hàng"] small { display: block; font-weight: 500; color: var(--ph-muted); font-size: 12px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Số lượng"] { order: 2; color: var(--ph-muted); }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Số lượng"] strong { font-weight: 500; font-size: 13px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Đơn giá"] { order: 3; color: var(--ph-muted); }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Đơn giá"]::before { display: inline; content: "× "; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td[data-label^="Thành tiền có VAT"] { order: 4; margin-left: auto; font-weight: 700; color: var(--ph-ink); font-size: 14px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td:is([data-label="Mã hàng"], [data-label="VAT"], [data-label^="Thành tiền (chưa VAT)"]) { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td input, html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table.ph-tcard tbody td select { width: auto !important; min-width: 80px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot tr { display: flex !important; align-items: center; gap: 8px; padding: 12px !important; background: var(--ph-primary-deep) !important; color: var(--ph-card) !important; margin: 8px 0 0 !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td { display: block; width: auto !important; padding: 0 !important; border: 0 !important; color: inherit !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td::before { display: none; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td:first-child { flex: 1; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td:first-child strong { display: block; font-size: 13px; opacity: .9; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td:first-child small { opacity: .8; font-size: 11px; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td.ph-empty, html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td[data-label^="Thành tiền (chưa VAT)"] { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td[data-label^="Thành tiền có VAT"] strong { font-size: 18px; color: var(--ph-card); }
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-cart-pop:not([hidden]) { position: static !important; margin: 8px 12px; border: 1px solid var(--ph-line) !important; border-radius: 10px; box-shadow: none !important; }
  /* --- Mua hàng › Công nợ (bước 6): "NCC", hóa đơn/hạn, "Còn nợ" + số bên phải --- */
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-hide { display: none !important; }
  html.bms-phone-v2 #srmV2PurchaseContent .ph-tcard tr[data-srm-payable-row].ph-srm-card > td.ph-k-money::before { display: block; content: "Còn nợ"; font-size: 11px; font-weight: 500; color: var(--ph-muted); text-align: right; }
  html.bms-phone-v2 #srmV2PurchaseContent .ph-tcard tr[data-srm-payable-row].ph-srm-card > td.ph-k-money { align-self: start; text-align: right; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-money small { display: block; font-size: 11px; font-weight: 500; color: var(--ph-muted); }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sub small { margin-left: 4px; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-status .srm-ps-i { display: inline-flex; align-items: center; gap: 4px; }
  /* --- Kho vật tư / thành phẩm (p17, p19): tên + tồn dòng 1, mã + trạng thái dòng 2 --- */
  html.bms-phone-v2 .warehouse-panel .wk-mcard { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; grid-template-rows: auto auto; align-items: center; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard > .r, html.bms-phone-v2 .warehouse-panel .wk-mcard > .q { display: contents !important; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-name { grid-column: 1 !important; grid-row: 1 !important; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q > span:first-child { grid-column: 2 !important; grid-row: 1 !important; justify-self: end; font-size: 0; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .q > span:first-child > b { font-size: 14px; font-weight: 700; color: var(--ph-ink); }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-meta .wk-code { grid-column: 1 !important; grid-row: 2 !important; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-chip { grid-column: 2 !important; grid-row: 2 !important; justify-self: end; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-chip::before { display: none; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard .wk-ledger-text { grid-column: 1 / -1; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard.is-static { display: flex !important; flex-direction: column; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard.is-static > .r, html.bms-phone-v2 .warehouse-panel .wk-mcard.is-static > .q { display: flex !important; justify-content: space-between; gap: 8px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard.is-static .q > span:first-child { font-size: 12px; }
  html.bms-phone-v2 .warehouse-panel .wk-mcard.is-static .q > span:not(:first-child) { display: inline; }
  /* nút "Nhập kho từ QC" thành dòng chữ nhỏ bên phải (không chiếm riêng hàng cao) */
  html.bms-phone-v2 #warehouseFgReceiveQueueBtn { height: 30px !important; min-height: 30px !important; padding: 0 8px !important; border: 0 !important; background: transparent !important; color: var(--ph-primary) !important; font-size: 13px !important; box-shadow: none !important; }
  html.bms-phone-v2 #warehouseFgReceiveQueueBtn[aria-pressed="true"] { background: var(--ph-primary-soft) !important; border-radius: 8px !important; }
  html.bms-phone-v2 #warehouseFinishedSection .wk-head { gap: 2px; }
  /* --- Thiết bị & CCDC: nút ⋯ nằm cùng hàng ô tìm (nút Giao / cho mượn đã là nút nổi) --- */
  html.bms-phone-v2 .sir-warehouse.etw .wk-head .wk-tools .bms-search.sir-search-bar { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; }
  html.bms-phone-v2 .sir-warehouse.etw .wk-head .wk-tools > .wk-menu { margin-left: 0; }
  html.bms-phone-v2 .sir-warehouse.etw .wk-head .wk-tools > .wk-menu > .btn { height: 40px !important; min-height: 40px !important; width: 40px !important; border-radius: 10px !important; }
}
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  /* dải tổng giỏ: ô con không nền trắng, chữ trắng */
  html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td, html.bms-phone-v2 #srmV2PurchaseContent tr.srm-plan-detail-row .srm-plan-lines-table tfoot td :is(strong, small, span, b) { background: transparent !important; color: var(--ph-card) !important; box-shadow: none !important; border: 0 !important; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-sub small { display: inline; }
}
/* ===== Đợt 5c: có dữ liệu mẫu — Bể nhu cầu (p05) và Phê duyệt (p01) thành thẻ gọn ===== */
@media (max-width: 900px), (max-width: 950px) and (max-height: 500px) {
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-head small { display: block; font-weight: 500; color: var(--ph-muted); font-size: 12px; margin: 0; }
  html.bms-phone-v2 :is(#srmV2PurchaseContent, #taskApprovalsContent) .ph-tcard tr.ph-srm-card > td.ph-k-head .hrm-approval-open { padding: 0; border: 0; background: transparent; font: inherit; color: inherit; text-align: left; }
  /* Bể nhu cầu: "Thiếu N" bên phải, nguồn nhu cầu 1 dòng */
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard tr.ph-srm-card > td.ph-k-money::before { display: inline; content: "Thiếu "; font-size: 11px; font-weight: 500; color: var(--ph-danger); }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard tr.ph-srm-card > td.ph-k-money { color: var(--ph-danger); }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard tr.ph-srm-card > td.srm-dsrc-cell::before { display: none; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard tr.ph-srm-card > td.srm-dsrc-cell .srm-dsrc { font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-right: 4px; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard tr.ph-srm-card > td.srm-dsrc-cell small { margin-left: 4px; }
  html.bms-phone-v2 #srmV2PurchaseContent .srm-demand-board .ph-tcard-form tr.ph-srm-card > td.ph-k-check { flex-direction: row !important; }
  /* Phê duyệt: Từ chối | Khác | Duyệt trên một hàng; menu Khác thả xuống bên dưới */
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act.ph-has-inrow { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; align-items: start; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act.ph-has-inrow > :not(.btn) { display: block; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .ph-srm-btns { margin: 0; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; position: relative; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-actions .btn.success { order: 2; background: var(--ph-ok) !important; color: var(--ph-card) !important; border: 0 !important; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-more { order: 1; position: static; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-more > summary { list-style: none; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-weight: 700; background: var(--ph-chip-bg) !important; color: var(--ph-ink) !important; border: 0 !important; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-more > summary::-webkit-details-marker { display: none; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 5; display: grid; gap: 6px; padding: 8px; background: var(--ph-card); border: 1px solid var(--ph-line); border-radius: 10px; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-menu .btn { height: 40px !important; min-height: 40px !important; border-radius: 10px !important; justify-content: center; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-act .hrm-approval-menu .btn.danger { display: none; }
  html.bms-phone-v2 #taskApprovalsContent .ph-tcard tr.ph-srm-card > td.ph-k-status .hrm-status { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 6px; }
  html.bms-phone-v2 #taskApprovalsContent .hrm-approval-table-wrap { padding: 0; }
}
