/* tokens.css — token thiết kế của Bản đồ định vị Co-Intelligence (STD-05)
   Một nguồn sự thật cùng tokens.json; hai file phải cùng giá trị (test_standards.py kiểm).
   Đổi giá trị: sửa cả hai file, ghi ADR, tăng phiên bản phụ (URS-11 mục 3 bước 4).
   Hướng dẫn dùng: 2_design/05_huong_dan_trinh_bay.md
   Phiên bản 0.4.0 · 20/10/2026 · màu theo ADR-013 (đỏ – vàng – xanh so le độ sáng);
   chuyển động, bo góc nút và thẻ, bóng nổi, phông Be Vietnam Pro theo ADR-017 (mục Hệ quả)
   Tên biến = đường dẫn trong tokens.json, nối bằng "-", "_" đổi thành "-".
   Ô của lưới 3 × 2 theo mã ADR-012: tren-1 Không dùng · tren-2 Cùng nghĩ, người kiểm ·
   tren-3 Cùng nghĩ, người duyệt kết quả · duoi-1 Điều khiển · duoi-2 Cùng nghĩ · duoi-3 Giao việc. */

:root {
  /* Sáu ô (ADR-013). fill/ink: chấm bước và số; bg/label: nền ô, tên ô, viền chấm bước. */
  --color-o-tren-1-fill: #a32d2d;
  --color-o-tren-1-ink: #ffffff;
  --color-o-tren-1-bg: #fcebeb;
  --color-o-tren-1-label: #791f1f;
  --color-o-tren-2-fill: #faeeda;
  --color-o-tren-2-ink: #633806;
  --color-o-tren-2-bg: #faeeda;
  --color-o-tren-2-label: #633806;
  --color-o-tren-3-fill: #ef9f27;
  --color-o-tren-3-ink: #412402;
  --color-o-tren-3-bg: #fadeb6;
  --color-o-tren-3-label: #633806;
  --color-o-duoi-1-fill: #b4b2a9;
  --color-o-duoi-1-ink: #2c2c2a;
  --color-o-duoi-1-bg: #f1efe8;
  --color-o-duoi-1-label: #444441;
  --color-o-duoi-2-fill: #faeeda;
  --color-o-duoi-2-ink: #633806;
  --color-o-duoi-2-bg: #faeeda;
  --color-o-duoi-2-label: #633806;
  --color-o-duoi-3-fill: #c0dd97;
  --color-o-duoi-3-ink: #27500a;
  --color-o-duoi-3-bg: #eaf3de;
  --color-o-duoi-3-label: #27500a;

  /* Bong bóng công cụ theo mức tự chủ 1–3: cùng họ màu cột, nhạt vì là mảng lớn (ADR-013) */
  --color-tool-1-fill: #d3d1c7;
  --color-tool-1-ink: #444441;
  --color-tool-2-fill: #fac775;
  --color-tool-2-ink: #633806;
  --color-tool-3-fill: #c0dd97;
  --color-tool-3-ink: #27500a;

  /* Luồng (ADR-008), quỹ đạo (ADR-013) */
  --color-flow-stroke: #534ab7;
  --color-trajectory-stroke: #d4537e;
  --color-trajectory-ink: #993556;

  /* Ba loại sự kiện và mốc năm: ra mắt theo ADR-013, còn lại ADR-008 */
  --color-event-ra-mat: #378add;
  --color-event-luat: #d85a30;
  --color-event-bao-cao: #888780;
  --color-event-moc-nam: #c9c7bf;

  /* Thang xám */
  --color-gray-0: #ffffff;
  --color-gray-50: #fbfaf7;
  --color-gray-100: #f1efe8;
  --color-gray-200: #d3d1c7;
  --color-gray-300: #b4b2a9;
  --color-gray-400: #888780;
  --color-gray-500: #6b6a65;
  --color-gray-600: #5f5e5a;
  --color-gray-700: #444441;
  --color-gray-900: #2c2c2a;

  /* Chữ và nền. #888780 trở xuống không dùng cho chữ (tương phản < 4,5:1). */
  --color-text-primary: #2c2c2a;
  --color-text-secondary: #444441;
  --color-text-note: #6b6a65;
  --color-text-inverse: #ffffff;
  --color-surface-page: #ffffff;
  --color-surface-panel: #fbfaf7;
  --color-surface-grid-line: #d3d1c7;

  /* Khung trang V1 (canvas đã duyệt 20/10/2026): nút, thẻ đang bật; chấm trạng thái dữ liệu */
  --color-accent-bg: #eeedfe;
  --color-accent-ink: #3c3489;
  --color-status-ok: #639922;

  /* Viền có nghĩa */
  --color-tier-dn-stroke: #2c2c2a;
  --color-selected-stroke: #2c2c2a;

  /* Độ mờ */
  --opacity-conf-h: 0.6;
  --opacity-dim: 0.25;

  /* Chữ: 4 cấp (IG-05), độ đậm 400 và 600 (IG-05; phông tự lưu thêm 500 theo ADR-017 nhưng chưa dùng), khoảng dòng ≥ 1,4 */
  --font-family: "Be Vietnam Pro", "Segoe UI", "Noto Sans", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-size-title: 20px;
  --font-size-subtitle: 14px;
  --font-size-label: 12px;
  --font-size-note: 11px;
  --font-size-present-title: 25px;
  --font-size-present-subtitle: 17.5px;
  --font-size-present-label: 15px;
  --font-size-present-note: 13.75px;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-line-height-text: 1.5;
  --font-line-height-label: 1.4;

  /* Khoảng cách: lưới 8 px, có nửa bước 4 px cho khoảng hở trong thành phần */
  --space-half: 4px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 40px;
  --space-6: 48px;

  /* Độ dày nét */
  --stroke-grid: 0.8px;
  --stroke-connector: 0.6px;
  --stroke-step: 1.4px;
  --stroke-step-gate: 2.2px;
  --stroke-flow: 1.8px;
  --stroke-tier-dn: 1.8px;
  --stroke-trajectory: 1.5px;
  --stroke-selected: 3px;

  /* Nét đứt (stroke-dasharray): E nét liền, I nét đứt, H nét chấm (IG-08) */
  --dash-conf-i: 4 3;
  --dash-conf-h: 1 3;
  --dash-trajectory: 6 4;
  --dash-grid: 4 4;
  --dash-connector: 2 3;

  /* Bán kính */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;
  --radius-pill: 999px;
  --radius-btn: 10px;
  --radius-card: 14px;

  /* Kích thước */
  --size-no-number-dot: 4px;
  --size-hit-min: 24px;
  --size-hit-extend: 12px;

  /* Thời gian bản đồ (ADR-017 mục 3): 1× đi 36,5 ngày mỗi giây; mỗi đoạn trượt ≤ 180 ngày; vào, rời 25 ngày */
  --time-days-per-second: 36.5;
  --time-slide-max-days: 180;
  --time-enter-days: 25;

  /* Chuyển động giao diện (ADR-017 mục 3, 5): nhanh cho trạng thái nút, vừa cho tooltip và gợi ý */
  --motion-fast: 180ms;
  --motion-base: 260ms;
  --motion-open: 650ms;
  --motion-arrive-ring: 900ms;
  --motion-event-hold: 1500ms;
  --motion-event-toast: 3200ms;
  --ease-out: cubic-bezier(.2,.8,.2,1);

  /* Đường đi khi công cụ trượt (ADR-017 mục 3): phần đã đi nét liền, phần còn lại nét đứt */
  --route-done: 1.1px;
  --route-rest: 0.9px;

  /* Bóng nổi: chỉ thanh phát, nút nổi, tooltip (ADR-017 mục 4); bản đồ và phần tử dữ liệu không bóng (IG-07) */
  --elev-float: 0 6px 24px rgb(20 20 40 / .12);
}

/* Phông Be Vietnam Pro tự lưu (ADR-017 mục 4; OFL 1.1, nguồn ở fonts/NGUON.md): không gọi Google Fonts vì header
   bảo mật chỉ cho nguồn của chính trang (ADR-014). Ba bộ ký tự theo unicode-range: trình duyệt chỉ tải bộ trang cần. */
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/be-vietnam-pro-vietnamese-400-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/be-vietnam-pro-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/be-vietnam-pro-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/be-vietnam-pro-vietnamese-500-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/be-vietnam-pro-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/be-vietnam-pro-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/be-vietnam-pro-vietnamese-600-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/be-vietnam-pro-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Be Vietnam Pro";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/be-vietnam-pro-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Chế độ trình chiếu: bốn cấp chữ nhân 1,25 (IG-05, QR-10) */
[data-mode="trinh-chieu"] {
  --font-size-title: var(--font-size-present-title);
  --font-size-subtitle: var(--font-size-present-subtitle);
  --font-size-label: var(--font-size-present-label);
  --font-size-note: var(--font-size-present-note);
}

/* Huy hiệu dùng chung (STD-06): cùng hình dạng, cùng màu chữ ở mọi nơi.
   fmt.js fmtConf(conf, {html: true}) sinh <span class="badge badge-conf badge-conf-e">E</span>. */
.badge {
  display: inline-block;
  padding: 0 var(--space-half);
  border: var(--stroke-grid) solid var(--color-text-note);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-note);
  font-weight: var(--font-weight-semibold);
  line-height: var(--font-line-height-label);
  color: var(--color-text-secondary);
  background: var(--color-surface-page);
}
.badge-conf-i { border-style: dashed; }
.badge-conf-h { border-style: dotted; }
