/* ═════════════════════════════════════════════════════════════════════════
   Destini GrandPlan — css/nextmove.css — Hộp NextMove (js/nextmove.js) + Plan Diff + dải Dashboard + lối vào trong Inbox
   v36.110 (J26-75) · tag [C2.T0.S2085-AD-26.10.26]
   Tương phản (rule UI Contrast): mọi khối có NỀN TỰ CHỨA (--bg-light / --bg-lighter) + chữ var(--text) / var(--text-dim) — đổi theo theme;
   nút có màu ép cặp nền + chữ cố định đạt AA ở CẢ 2 theme: chính #5A4FE0/#fff 5.79:1 · duyệt #047857/#fff 5.48:1 · bỏ #b91c1c/#fff 6.47:1.
   Chữ màu trạng thái dùng token --c-* (đã đạt AA ở theme sáng, style.css). Không dùng opacity để ẩn/hiện chữ.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Trang Hộp NextMove ── */
.nm-page { max-width: 880px; margin: 0 auto; padding: 4px 0 28px; color: var(--text); }
.nm-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.nm-head-l { flex: 1 1 320px; min-width: 0; }
.nm-title { font-size: 22px; font-weight: 700; color: var(--text); margin: 0; display: flex; align-items: center; gap: 8px; line-height: 1.3; }
.nm-count { font-size: 12px; font-weight: 700; color: #fff; background: #5A4FE0; border-radius: 999px; padding: 2px 9px; }
.nm-sub { font-size: 12.5px; color: var(--text-dim); margin: 4px 0 0; max-width: 640px; line-height: 1.55; }

.nm-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 8px; }
.nm-tab {
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; min-height: 36px; padding: 6px 14px;
  border-radius: 999px; border: 1px solid var(--border); background: var(--bg-light); color: var(--text);
}
.nm-tab[aria-selected="true"] { background: #5A4FE0; border-color: #5A4FE0; color: #fff; }
.nm-tab-n { font-variant-numeric: tabular-nums; font-weight: 700; margin-left: 2px; }

.nm-filters { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.nm-filter-l { font-size: 11px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: .4px; margin: 0 2px 0 8px; }
.nm-filter {
  font: inherit; font-size: 12px; cursor: pointer; min-height: 32px; padding: 4px 11px;
  border-radius: 999px; border: 1px solid var(--border); background: var(--bg-light); color: var(--text-dim);
}
.nm-filter.on { color: var(--text); border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); font-weight: 700; }

.nm-list { display: flex; flex-direction: column; gap: 12px; }
.nm-card {
  --nm-src: #5A4FE0;
  background: var(--bg-light); color: var(--text);
  border: 1px solid var(--border); border-left: 4px solid var(--nm-src);
  border-radius: 14px; padding: 14px 16px; box-shadow: var(--shadow-sm);
}
.nm-card[data-src="evovi"] { --nm-src: #c026d3; }
.nm-card[data-src="thinkspace"] { --nm-src: #0ea5e9; }
.nm-card[data-src="tinodrill"] { --nm-src: #d97706; }
.nm-card[data-src="crossai"] { --nm-src: #059669; }
.nm-card[data-src="mcp"] { --nm-src: #64748b; }
.nm-card[data-src="shortcut"] { --nm-src: #db2777; }
.nm-card.nm-hl { box-shadow: 0 0 0 2px var(--primary), var(--shadow-md); animation: nmFlash 1.4s ease 1; }
@keyframes nmFlash { 0%, 60% { box-shadow: 0 0 0 4px var(--primary), var(--shadow-md); } 100% { box-shadow: 0 0 0 2px var(--primary), var(--shadow-md); } }

.nm-card-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.nm-chip {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; line-height: 1.6;
  color: var(--text); background: var(--bg-lighter); border: 1px solid var(--border); border-radius: 999px; padding: 1px 9px;
}
.nm-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.nm-score { margin-left: auto; font-size: 12.5px; font-weight: 700; color: #fff; background: #5A4FE0; border-radius: 999px; padding: 2px 10px; white-space: nowrap; }
.nm-goal { font-size: 16px; font-weight: 700; color: var(--text); margin: 8px 0 4px; line-height: 1.4; overflow-wrap: anywhere; }
.nm-why { font-size: 13.5px; color: var(--text); margin: 0 0 6px; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
.nm-meta { font-size: 12px; color: var(--text-dim); display: flex; flex-wrap: wrap; gap: 4px 14px; }
.nm-explain, .nm-evidence, .nm-related { font-size: 11.5px; color: var(--text-dim); margin-top: 4px; line-height: 1.5; overflow-wrap: anywhere; }
.nm-link {
  font: inherit; font-size: inherit; font-weight: 600; color: var(--primary); background: none; border: none; padding: 0;
  cursor: pointer; text-decoration: underline; text-underline-offset: 2px; text-align: left;
}
.nm-state { font-size: 12.5px; font-weight: 700; margin-top: 8px; }
.nm-state-def { color: var(--c-amber); }
.nm-state-ok { color: var(--c-emerald); }
.nm-state-no { color: var(--c-red); }

.nm-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.nm-btn {
  font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; line-height: 1.3;
  min-height: 40px; padding: 8px 16px; border-radius: 10px;
  border: 1px solid var(--border); background: var(--bg-lighter); color: var(--text);
}
.nm-btn:hover { border-color: var(--primary); }
.nm-btn-sm { min-height: 36px; padding: 6px 12px; font-size: 13px; }
.nm-btn-main { background: #5A4FE0; border-color: #5A4FE0; color: #fff; }
.nm-btn-main:hover { background: #4a40c4; border-color: #4a40c4; }
.nm-btn-accept { background: #047857; border-color: #047857; color: #fff; }
.nm-btn-accept:hover { background: #065f46; border-color: #065f46; }
.nm-btn-danger { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.nm-btn-danger:hover { background: #991b1b; border-color: #991b1b; }
.nm-btn:focus-visible, .nm-tab:focus-visible, .nm-filter:focus-visible, .nm-link:focus-visible, .nm-x:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

.nm-menu {
  margin-top: 10px; padding: 10px; border-radius: 10px; background: var(--bg-lighter); color: var(--text);
  border: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.nm-menu[hidden] { display: none; }
.nm-menu-f { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-dim); }
.nm-in {
  font: inherit; font-size: 16px;                       /* ≥ 16px: iOS không tự phóng to khi chạm vào ô */
  background: var(--bg); color: var(--text); border: 1px solid var(--border); border-radius: 8px;
  padding: 6px 10px; min-height: 38px; box-sizing: border-box; max-width: 100%;
}
.nm-in::placeholder { color: var(--text-dim); }
.nm-in:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 2px var(--glass-light); }
.nm-in-grow { flex: 1 1 180px; min-width: 0; }
input.nm-in[type="date"] { color-scheme: light dark; }

.nm-empty { text-align: center; padding: 36px 16px; background: var(--bg-light); color: var(--text); border: 1px dashed var(--border); border-radius: 14px; }
.nm-empty-sm { padding: 22px 16px; font-size: 13px; color: var(--text-dim); }
.nm-empty-ico { font-size: 34px; margin-bottom: 6px; }
.nm-empty-t { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.nm-empty-s { font-size: 12.5px; color: var(--text-dim); max-width: 460px; margin: 0 auto 14px; line-height: 1.55; }
.nm-foot { font-size: 11px; color: var(--text-dim); margin-top: 14px; text-align: center; line-height: 1.5; }

/* ── Plan Diff (lớp phủ) ── */
.nm-ov { position: fixed; inset: 0; z-index: 20100; background: rgba(8, 9, 18, 0.55); display: flex; align-items: center; justify-content: center; padding: 12px; }
.nm-ov-box {
  background: var(--bg-light); color: var(--text); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-lg);
  width: min(640px, 100%); max-height: 90vh; max-height: 90dvh; overflow-y: auto; box-sizing: border-box; padding: 14px 16px 16px;
}
.nm-ov-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nm-ov-title { font-size: 15px; font-weight: 700; color: var(--text); }
.nm-x {
  font: inherit; font-size: 16px; cursor: pointer; color: var(--text); background: var(--bg-lighter);
  border: 1px solid var(--border); border-radius: 10px; min-width: 40px; min-height: 40px;
}
.nm-ov-sub { font-size: 12px; color: var(--text-dim); margin: 4px 0 10px; }
.nm-ov-goal { font-size: 14px; color: var(--text); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; overflow-wrap: anywhere; }
.nm-ov-why { font-size: 12.5px; color: var(--text-dim); margin-top: 4px; white-space: pre-line; overflow-wrap: anywhere; }
.nm-diff { margin-top: 12px; padding: 12px; border-radius: 12px; background: var(--bg-lighter); color: var(--text); border: 1px solid var(--border); }
.nm-diff-h { font-size: 12.5px; font-weight: 700; color: var(--text); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nm-tag { font-size: 10.5px; font-weight: 700; color: var(--text); background: var(--bg-light); border: 1px solid var(--border); border-radius: 999px; padding: 1px 8px; }
.nm-f { display: flex; flex-direction: column; gap: 4px; flex: 1 1 160px; min-width: 0; }
.nm-f-wide { width: 100%; }
.nm-f-l { font-size: 11.5px; font-weight: 600; color: var(--text-dim); }
.nm-f-h { font-size: 11px; font-style: italic; color: var(--text-dim); min-height: 14px; overflow-wrap: anywhere; }
.nm-f-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.nm-f .nm-in { width: 100%; }
.nm-diff-rel { font-size: 13px; color: var(--text); overflow-wrap: anywhere; }
.nm-slot-who { font-size: 12px; color: var(--text-dim); }
.nm-slot { font-size: 14px; color: var(--text); margin-top: 2px; }
.nm-slot-none { color: var(--text-dim); font-size: 13px; }
.nm-note { font-size: 11.5px; color: var(--text-dim); margin-top: 6px; line-height: 1.5; }
.nm-ov-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; flex-wrap: wrap; }

/* ── Dải trên Dashboard (dưới "⏭ Việc tiếp theo") ── */
.nm-dash { background: var(--glass); color: var(--text); border-radius: 14px; padding: 14px 18px; margin-bottom: 16px; border-left: 3px solid #5A4FE0; }
.nm-dash-h { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.nm-dash-body { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.nm-dash-info { flex: 1 1 260px; min-width: 0; }
.nm-dash-goal { font-size: 15px; font-weight: 600; color: var(--text); line-height: 1.4; overflow-wrap: anywhere; }
.nm-dash-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.nm-dash-meta .nm-score { margin-left: 0; }
.nm-dash-why { font-size: 12px; color: var(--text-dim); flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.nm-dash-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── Lối vào Hộp NextMove trong GTD Inbox (js/inbox.js) ── */
.nm-inbox-entry {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
  background: var(--bg-light); color: var(--text); border: 1px solid var(--border); border-left: 3px solid #5A4FE0;
  border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; font-size: 12.5px; line-height: 1.5;
}
.nm-inbox-entry-t { flex: 1 1 260px; min-width: 0; color: var(--text); }

/* ── Mobile: nút ≥ 44px, lớp phủ sát đáy + safe-area, chừa chỗ thanh điều hướng dưới ── */
@media (max-width: 768px), (pointer: coarse) {
  .nm-btn, .nm-btn-sm, .nm-tab, .nm-filter, .nm-x, .nm-in, .nm-link { min-height: 44px; }
  .nm-x { min-width: 44px; }
  .nm-link { display: inline-flex; align-items: center; }
}
@media (max-width: 768px) {
  .nm-page { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .nm-title { font-size: 19px; }
  .nm-card { padding: 12px 12px; }
  .nm-actions .nm-btn { flex: 1 1 auto; }
  .nm-score { margin-left: 0; }
  .nm-ov { align-items: flex-end; padding: 0; }
  .nm-ov-box {
    width: 100%; border-radius: 16px 16px 0 0; border-bottom: none;
    max-height: 92vh; max-height: 92dvh; padding: 14px 14px calc(14px + env(safe-area-inset-bottom));
  }
  .nm-ov-actions .nm-btn { flex: 1 1 0; }
  .nm-dash { padding: 12px 14px; }
  .nm-dash-actions .nm-btn { flex: 1 1 auto; }
}

/* ═════ v36.110 (J26-75) — vòng hoàn thiện (BENCHMARK NextMove P0): chip "vì sao" = phân rã điểm · Bắt buộc · pill N mới · menu ⋯ · chẩn đoán · phím tắt ═════ */
.nm-head-r { display: flex; align-items: center; gap: 8px; position: relative; flex-wrap: wrap; }
.nm-btn-icon { min-width: 40px; padding: 8px 12px; font-size: 16px; line-height: 1; }
.nm-more {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; display: flex; flex-direction: column; gap: 6px; min-width: 220px;
  background: var(--bg-light); color: var(--text); border: 1px solid var(--border); border-radius: 12px; padding: 8px; box-shadow: var(--shadow-lg);
}
.nm-more[hidden] { display: none; }
.nm-more .nm-btn { width: 100%; text-align: left; }
.nm-pill-wrap { min-height: 0; margin: 2px 0 6px; }
.nm-pill { font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; min-height: 36px; padding: 6px 14px; border-radius: 999px; border: 1px solid #5A4FE0; background: #5A4FE0; color: #fff; }
.nm-pill:hover { background: #4a40c4; border-color: #4a40c4; }
.nm-ask {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0; padding: 10px 12px; border-radius: 12px; font-size: 12.5px; line-height: 1.5;
  background: var(--bg-light); color: var(--text); border: 1px solid var(--border); border-left: 3px solid #d97706;
}
.nm-ask > span { flex: 1 1 260px; min-width: 0; }
.nm-card.nm-tier0 { border-left-color: #b91c1c; }
.nm-card.nm-kbd, .nm-card:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.nm-chip-hot { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.nm-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 2px 0 6px; }
.nm-pt { font-size: 11.5px; line-height: 1.6; color: var(--text); background: var(--bg-lighter); border: 1px solid var(--border); border-radius: 8px; padding: 1px 8px; }
.nm-pt b { font-weight: 700; }
.nm-pt-neg { color: var(--c-red); }
.nm-pt-hot { border-color: var(--c-red); }
.nm-place { font-size: 12px; color: var(--text); margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.nm-menu-h { font-size: 12px; font-weight: 600; color: var(--text-dim); width: 100%; }
.nm-morebar { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.nm-capnote { font-size: 11.5px; color: var(--text-dim); }
.nm-ov-sm { width: min(420px, 100%); }
.nm-ov-wide { width: min(860px, 100%); }
.nm-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nm-bench { font-size: 12.5px; font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.nm-tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nm-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; color: var(--text); }
.nm-tbl th { text-align: left; font-weight: 600; color: var(--text-dim); padding: 6px 8px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.nm-tbl td { padding: 6px 8px; border-bottom: 1px solid var(--border); vertical-align: top; font-variant-numeric: tabular-nums; }
.nm-kbdk { display: inline-block; min-width: 26px; text-align: center; font: 600 12px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text); background: var(--bg-lighter); border: 1px solid var(--border); border-radius: 6px; padding: 1px 6px; }
@media (max-width: 768px), (pointer: coarse) {
  .nm-pill, .nm-btn-icon { min-height: 44px; }
  .nm-btn-icon { min-width: 44px; }
}
@media (max-width: 768px) {
  .nm-more { left: 0; right: auto; }
  .nm-head-r { width: 100%; }
  .nm-head-r > .nm-btn[data-act="scan"] { flex: 1 1 auto; }
}

/* ═════ v36.112 (J26-86) — 🧭 mục sidebar cấp cao nhất · chip "vì sao" bấm được + popover giải thích · ⓘ cách tính · 📘 hướng dẫn · Plan Diff theo loại thẻ ═════
   Tương phản (rule UI Contrast, đo theo WCAG): mọi khối mới có nền tự chứa + chữ đổi theo theme; màu cố định đã kiểm cả 2 theme. */

/* A. Mục 🧭 NextMove ĐẦU sidebar (trên "🚀 Ⅰ. GRANDPLAN COCKPIT") — khung riêng, KHÔNG phải .sidebar-section ⇒ không bao giờ bị gập theo nhóm
   tối: chữ #e8e6f0 trên nền tím pha ≈ #22213f ≈ 13:1 · sáng: #1c1c1e trên #ecebfd ≈ 15:1
   đang mở: #fff trên #5A4FE0 = 5,79:1 (cố ý KHÔNG dùng --primary #7c74ff của theme tối — chữ trắng trên đó chỉ 3,6:1) · số đếm #fff / #5A4FE0 5,79:1 */
.nm-sb-top { padding: 0 10px; margin: 0 0 14px; }
.sidebar .sidebar-item.nm-sb-item {
  color: var(--text); font-weight: 600; background: rgba(124, 116, 255, 0.14);
  border: 1px solid rgba(124, 116, 255, 0.42); border-left: 3px solid #7c74ff;
}
.sidebar .sidebar-item.nm-sb-item:hover { background: rgba(124, 116, 255, 0.24); color: var(--text); }
.sidebar .sidebar-item.nm-sb-item.active { background: #5A4FE0; border-color: #5A4FE0; color: #fff; }
[data-theme="light"] .sidebar .sidebar-item.nm-sb-item { background: #ecebfd; border-color: #c9c5f7; border-left-color: #5A4FE0; color: #1c1c1e; }
[data-theme="light"] .sidebar .sidebar-item.nm-sb-item:hover { background: #dedbfb; color: #1c1c1e; }
[data-theme="light"] .sidebar .sidebar-item.nm-sb-item.active { background: #5A4FE0; border-color: #5A4FE0; color: #fff; }
.nm-sb-label { flex: 1 1 auto; min-width: 0; }
.sidebar .nm-sb-item .nm-sb-badge { background: #5A4FE0; color: #fff; }
.sidebar .nm-sb-item.active .nm-sb-badge { background: #fff; color: #3b31c4; }   /* #3b31c4 / #fff ≈ 8,7:1 */

/* F. Chip "vì sao" + chip đầu thẻ = NÚT (bấm / chạm mở popover) — giữ nguyên dáng cũ, thêm con trỏ + viền khi rê */
button.nm-pt { font: inherit; font-size: 11.5px; line-height: 1.6; cursor: pointer; text-align: left; }
button.nm-pt:hover, .nm-chip-x:hover { border-color: var(--primary); }
.nm-chip-x { font: inherit; font-size: 11.5px; font-weight: 600; line-height: 1.6; cursor: pointer; }
.nm-chip-warn { background: #fde68a; border-color: #d97706; color: #78350f; }   /* tự chứa: #78350f / #fde68a ≈ 7,6:1 ở cả 2 theme */
.nm-tag-warn { background: #fde68a; border-color: #d97706; color: #78350f; }
.nm-info {
  font: inherit; font-size: 13px; font-weight: 700; line-height: 1; cursor: pointer; min-width: 26px; min-height: 26px; padding: 0 6px;
  border-radius: 999px; border: 1px solid var(--border); background: var(--bg-lighter); color: var(--text);
}
.nm-info:hover { border-color: var(--primary); }
button.nm-pt:focus-visible, .nm-chip-x:focus-visible, .nm-info:focus-visible, .nm-opt input:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.nm-pop {
  position: fixed; z-index: 20300; width: max-content; max-width: min(380px, calc(100vw - 16px)); box-sizing: border-box;
  background: var(--bg-light); color: var(--text); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-lg);
  padding: 10px 12px 12px; font-size: 13px; line-height: 1.55;
}
.nm-pop-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; color: var(--text); }
.nm-pop-x { min-width: 32px; min-height: 32px; font-size: 13px; flex-shrink: 0; }
.nm-pop-body { white-space: pre-line; overflow-wrap: anywhere; color: var(--text); }
.nm-pop.nm-pop-sheet {          /* điện thoại: tấm dưới đáy, không dựa vào hover */
  left: 0; right: 0; bottom: 0; width: 100%; max-width: none; border-radius: 16px 16px 0 0; border-bottom: none;
  padding: 12px 16px calc(16px + env(safe-area-inset-bottom)); max-height: 70vh; max-height: 70dvh; overflow-y: auto;
}

/* G. Plan Diff theo loại thẻ: câu "Sẽ: …" nổi bật · ghim lịch · dời hạn / chốt xong */
.nm-say {
  margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--bg-lighter); color: var(--text);
  border: 1px solid var(--border); border-left: 3px solid #047857; font-size: 13.5px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere;
}
.nm-pin-line { font-size: 14px; color: var(--text); margin-bottom: 4px; line-height: 1.5; overflow-wrap: anywhere; }
.nm-opt { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text); min-height: 40px; cursor: pointer; margin-top: 4px; }
.nm-opt input[type="radio"] { width: 18px; height: 18px; accent-color: #5A4FE0; flex-shrink: 0; }
.nm-opt-sub { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 6px 26px; }
.nm-opt-sub .nm-in { max-width: 180px; }

/* B/C. Chẩn đoán: 2 chỉ số slop + 2 bảng hệ số học */
.nm-kpis { gap: 12px; }
.nm-kpi { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; padding: 8px 10px; border-radius: 10px; background: var(--bg-light); border: 1px solid var(--border); color: var(--text); }
.nm-kpi b { font-size: 18px; font-variant-numeric: tabular-nums; color: var(--text); }
.nm-kpi span { font-size: 11.5px; color: var(--text-dim); line-height: 1.4; }

/* F. 📘 Hướng dẫn Hộp NextMove */
.nm-guide h4 { font-size: 13.5px; font-weight: 700; margin: 14px 0 4px; color: var(--text); }
.nm-guide p, .nm-guide li { font-size: 12.5px; line-height: 1.6; color: var(--text); }
.nm-guide p { margin: 6px 0 0; }
.nm-guide ul { margin: 0 0 0 18px; padding: 0; }
.nm-guide li { margin: 3px 0; }

@media (max-width: 768px), (pointer: coarse) {
  button.nm-pt, .nm-chip-x { min-height: 36px; }
  .nm-info { min-width: 36px; min-height: 36px; }
  .nm-opt { min-height: 44px; }
  .nm-pop-x { min-width: 44px; min-height: 44px; }
}
