/* Shared semantic tokens. Legacy Chat variables remain scoped to its existing stylesheet. */
:root{--nx-navy:#0d2542;--nx-navy-2:#12355d;--nx-gold:#8fd3ff;--nx-blue:#0665ed;--nx-blue-hover:#0753bc;--nx-ink:#20334d;--nx-muted:#56687f;--nx-paper:#fff;--nx-bg:#f2f5f9;--nx-border:#dce5ef;--nx-light:#edf4ff;--nx-danger:#b42318;--nx-warning:#915b00;--nx-success:#167548;--nx-focus:#0665ed;--nx-radius:5px;--nx-font:"Be Vietnam Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.nx-mark{width:36px;height:36px;flex:none;display:block}.nx-wordmark{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}.nx-wordmark span{font-weight:400;color:#8dc5ff}
#auth,#loading,#cde,.issue-assignment-dialog{--accent:var(--nx-blue);--ink:var(--nx-ink);--line:var(--nx-border);--muted:var(--nx-muted);font-family:var(--nx-font)}
:is(#auth,#cde,.issue-assignment-dialog) :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--nx-focus);outline-offset:3px}
#auth .primary:hover{background:var(--nx-blue-hover)}

body.auth-mode #modal,body:has(#workspace.cde-mode) #modal{--accent:var(--nx-blue);--ink:var(--nx-ink);--muted:var(--nx-muted);--line:var(--nx-border);color:var(--nx-ink);border-radius:8px}body.auth-mode #modal .primary,body:has(#workspace.cde-mode) #modal .primary{border-radius:var(--nx-radius)}body.auth-mode #modal :focus-visible,body:has(#workspace.cde-mode) #modal :focus-visible{outline-color:var(--nx-focus)}

/* Shared issue-state semantics across workspace and dashboards. */
.cde-badge.open{color:#687c95;background:#f0f3f7}.cde-badge.in_progress{color:#0665ed;background:#edf4ff}.cde-badge.in_review{color:#a16b00;background:#fff5df}.cde-badge.closed{color:#167548;background:#e8f7ed}.cde-badge.cancelled{color:#727d8c;background:#f0f2f5}
/* Nhận diện CDE Nexus: chữ «Nexus» trong wordmark theo dải màu logo BEI (xanh ngọc → xanh lá) */
.brand strong span,.nx-wordmark span,.app-topbar-brand span,#cde .cde-brand span,.dp-brand b span,.invitation-header a span,.rg-header a span{background:linear-gradient(90deg,#2bd0dc,#8fd43a);-webkit-background-clip:text;background-clip:text;color:transparent!important}
.nx-mark,.nexus-cube{border-radius:50%}

/* ===== Dải navy đầu trang (duyệt 30/09 23:02) — dùng chung mọi trang: tiêu đề + số liệu nhanh + nhóm lớn + nút thao tác.
   Thêm lớp .nx-band vào khối tiêu đề của trang. Nút trong dải: viền trắng mảnh; nút chính nền trắng chữ navy. ===== */
body .nx-band{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--nx-navy);color:#fff;border-radius:12px;padding:14px 20px;margin-bottom:14px;box-shadow:0 6px 18px #0b234026}
body .nx-band h1{color:#fff!important;margin:0;font-size:22px;letter-spacing:-.2px;line-height:1.2}
body .nx-band p,body .nx-band small,body .nx-band .muted{color:#a9bad0!important}
body .nx-band p b,body .nx-band small b{color:#fff}
body .nx-band a:not([class]){color:#d6e4f7}
body .nx-band .crumbs,body .nx-band .crumbs a,body .nx-band .crumbs span{color:#8fa4bf!important}
body .nx-band :is(.cde-button,.outline,button.secondary,.btn,a.btn,.ghost,button:not([class])):not(.primary){background:transparent!important;border:1px solid #ffffff40!important;color:#fff!important;box-shadow:none!important}
body .nx-band :is(.cde-button,.outline,button.secondary,.btn,a.btn,.ghost,button:not([class])):not(.primary):hover{background:#ffffff14!important;border-color:#ffffff66!important}
body .nx-band :is(.cde-button.primary,button.primary,a.primary,.btn.primary,summary.primary){background:var(--nx-blue)!important;border-color:var(--nx-blue)!important;color:#fff!important;font-weight:600;box-shadow:0 4px 12px #0665ed59!important}
body .nx-band :is(.cde-button.primary,button.primary,a.primary,.btn.primary,summary.primary):hover{background:var(--nx-blue-hover)!important}
body .nx-band select{background:#ffffff14;border:1px solid #ffffff40;color:#fff;border-radius:6px}
body .nx-band select option{color:#1b2b3f}
body .nx-band [role=menu],body .nx-band .menu,body .nx-band .cde-create-options,body .nx-band details>div{color:var(--nx-ink)}
@media(max-width:700px){body .nx-band{padding:12px 14px;border-radius:10px}body .nx-band h1{font-size:19px}}
/* Dải tràn lề (nav.js bleedBands): vuông góc, bám sát thanh trên / thanh trái. */
body .nx-band.nx-band-bleed{border-radius:0;box-shadow:none}
body .nx-band>.crumbs{width:100%;margin:0 0 -8px;font-size:11.5px}

/* ===== Hệ nhận diện P0 (đồng bộ app, duyệt 30/09 23:54): phông Be Vietnam Pro (kèm máy chủ, SIL OFL), đầu màn xanh đậm
   #0d2542 → #12355d có lưới bản vẽ — thanh trên, thanh trái và dải đầu trang dùng chung một nền cố định nên liền một khối. ===== */
@font-face{font-family:"Be Vietnam Pro";src:url(/fonts/BeVietnamPro-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url(/fonts/BeVietnamPro-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url(/fonts/BeVietnamPro-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url(/fonts/BeVietnamPro-700.woff2) format("woff2");font-weight:700 900;font-style:normal;font-display:swap}
body{font-family:var(--nx-font)}
button,input,select,textarea{font-family:inherit}
:is(.cde-topbar,header.topbar,.app-header,.st-top,.app-topbar,.nx-nav,.nx-band,.nx-blueprint){background:linear-gradient(#ffffff0e 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,#ffffff0e 1px,transparent 1px) 0 0/24px 24px,linear-gradient(135deg,#0d2542,#12355d)!important;background-attachment:fixed!important}
body .nx-band h1{font-size:27px;letter-spacing:-.3px}
body .nx-band :is(.cde-button,.outline,button.secondary,.btn,a.btn,.ghost,.cde-button.primary,button.primary,a.primary,summary.primary){border-radius:12px!important;min-height:40px}
